Commit Graph

19 Commits

Author SHA1 Message Date
Asklv
2de7087e2b feat(search): route web_search through Tavily when key is configured
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
3a76f02f2f feat(search): implement Tavily HTTP client for direct and proxy modes
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
2ad5101a77 feat(search): add Tavily result formatter
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
34fde9c82c refactor(search): isolate Brave HTTP paths for multi-provider support
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
06de1fe05b refactor(search): track Brave/Tavily providers and key loading
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Asklv
a0b6cb34cf chore(search): add Tavily key config placeholders
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Bin Meng
22886cf0f2 chore: avoid hardcoding file paths via MIMI_SPIFFS_BASE
Use MIMI_SPIFFS_BASE to centralize file path definitions, making the
base path configurable instead of hardcoded.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
2026-02-26 11:37:34 +08:00
Michael Mogenson
2e3ed9f259 Fix get_current_time tool
On ESP IDF 5.5 the get_current_time tool returns ESP_ERR_NOT_FOUND because
there is no "Date" header. This is because esp_http_client_get_header
only reads request headers. Response headers are only available via the
HTTP_EVENT_ON_HEADER event callback. They're dispatched and freed as they're
parsed.

Register an event handler that captures the "Date" header during HTTP response
parsing. The date string from this header is available as part of user context
after the HTTP request is finished.
2026-02-22 21:45:25 -05:00
crispyberry
c06f706ffd chore: remove dead code and fix unsafe patterns
- Remove unused context_build_messages() (superseded by direct cJSON in agent_loop)
- Remove unused llm_chat() and its helper extract_text_* functions (superseded by llm_chat_tools)
- Remove ota_manager.c from build (never called)
- Remove config_screen.c stub from build (no-op module)
- Remove unused PWR_KEY_State, Button_GPIO_Get_Level; drop config_screen dependency from button_driver
- Fix incorrect type cast in tool_get_time.c (char[64] cast to char**)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 17:11:15 +08:00
Bo
3232de772a chore: simplify llm serial log.
Signed-off-by: Bo <boironic@gmail.com>
2026-02-18 19:16:00 +08:00
Bo
4ce0735c9a feat: add skill verification CLI commands and preflash SPIFFS image 2026-02-17 01:26:18 +08:00
Bo
c120a6fe45 fix cron/heartbeat e2e stability and build issues 2026-02-16 23:00:00 +08:00
crispyberry
dbab65bd47 feat: add cron scheduled task service with tool_use integration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 01:02:33 +08:00
Bo
106fe3b5b0 feat: add mimiclaw onboarding page.
Signed-off-by: Bo <boironic@gmail.com>
2026-02-10 15:58:12 +08:00
crispyberry
da43c27003 feat: restore NVS runtime config with CLI commands (NVS > build-time priority)
Bring back two-layer configuration: build-time defaults from mimi_secrets.h
with runtime NVS overrides via serial CLI. NVS values take highest priority
so a pre-flashed board can be reconfigured anywhere with just a USB cable.

Restored CLI commands: wifi_set, set_tg_token, set_api_key, set_model,
set_proxy, clear_proxy, set_search_key. Added new commands: config_show
(displays all config with sensitive fields masked), config_reset (clears
all NVS overrides), and help (lists all commands).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 20:42:10 +08:00
crispyberry
82f93b617b refactor: remove NVS/CLI config, use mimi_secrets.h as sole configuration method
All configuration is now done exclusively through mimi_secrets.h at build time.
Removed NVS read/write logic, CLI config commands (wifi_set, set_tg_token,
set_api_key, set_model, set_proxy, clear_proxy, set_search_key), and setter
functions from all modules. CLI retains debug/maintenance commands only.
Updated all documentation to reflect the change.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 23:04:24 +08:00
crispyberry
31b15aa1f9 feat: add file tools (read/write/edit/list_dir) for agent memory writes
Enable the agent to persist memories by adding 4 SPIFFS file tools
(read_file, write_file, edit_file, list_dir) with path validation,
and update the system prompt with memory guidelines pointing to
/spiffs/memory/MEMORY.md and daily notes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 17:54:52 +08:00
crispyberry
78c7fc9b1a feat: add get_current_time built-in tool and timezone config
Fetches real time via HTTP Date header (works through proxy),
sets system clock, and returns formatted local time to the agent.
Also adds MIMI_TIMEZONE config and updates default model to claude-opus-4-5.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:05:02 +08:00
crispyberry
2fe81b8ee1 feat: add non-streaming LLM API, tool registry, and web_search tool
Replace SSE streaming with non-streaming JSON for Anthropic API.
Add llm_chat_tools() returning structured llm_response_t with text
and tool_use blocks. Implement tool registry with dispatch-by-name
and web_search tool via Brave Search API (direct + proxy support).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 00:37:36 +08:00