Commit Graph

25 Commits

Author SHA1 Message Date
eedc6757d8 使用中文提交内容
Some checks failed
Build / idf-build (push) Has been cancelled
适配ESP-IDF v6.0编译 补充项目相关文档

* 修复16处头文件缺失、flash配置错误、WiFi断开原因码兼容问题
* 新增ESP-IDF v6.0迁移适配文档
* 更新变更日志,补充v1.0.0功能清单及v1.1.0版本规划
* 整理讨论记录,新增v6.0适配及国内大模型接入内容
2026-03-31 21:34:59 +08:00
crispyberry
85459fb210 Merge pull request #127 from IRONICBo/feat/gpio-skill-support 2026-03-13 12:13:47 +08:00
Asklv
16eb01b49a fix(build): add esp_driver_gpio dependency for GPIO tool 2026-03-08 12:32:37 +08:00
crispyberry
6c283553f9 feat: add WiFi onboarding captive portal
When no WiFi credentials are configured or connection fails, the device
automatically starts a soft AP (MimiClaw-XXXX) with a captive portal.
Users can configure WiFi, LLM, Telegram, Feishu, Proxy and Search
settings via a mobile-friendly web page, then the device restarts and
connects with the new credentials.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 12:15:26 +08:00
Asklv
d30b3611f3 feat: register GPIO tools in registry and build system 2026-03-07 23:50:32 +08:00
Asklv
040f5bed0f feat: use websocket for feishu inbound
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-04 19:16:00 +08:00
Asklv
56c6db438a feat: add feishu bot core
Signed-off-by: Asklv <boironic@gmail.com>
2026-03-02 19:16:00 +08:00
Asklv
e9081fdb8f build: remove IMU and button sources from CMakeLists.txt
Remove button and IMU source files from the build. Drop the 'driver'
component dependency which was only needed for GPIO/I2C used by the
removed peripherals.

Signed-off-by: Asklv <boironic@gmail.com>
2026-02-25 14:00:00 +08: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
ce198ccbe8 chore: remove display and rgb source trees
Signed-off-by: Bo <boironic@gmail.com>
2026-02-20 00:08:05 +08:00
Bo
9c889ef3f2 build: drop display and led component dependencies
Signed-off-by: Bo <boironic@gmail.com>
2026-02-20 00:07:26 +08:00
Bo
cba7444b26 fix: fix telegram sent error in cron task.
Signed-off-by: Bo <boironic@gmail.com>
2026-02-18 17:16:00 +08:00
crispyberry
31a88b53c0 feat: add skills system with weather, daily-briefing, and skill-creator
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 01:06:16 +08:00
crispyberry
ebff0ccb04 feat: add heartbeat service for periodic task checking
Adds a heartbeat timer that reads /spiffs/config/HEARTBEAT.md every 30
minutes and sends a prompt to the agent if actionable tasks are found.
Skips empty lines, headers, and completed checkboxes. Includes a
heartbeat_trigger CLI command for manual testing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 01:23:13 +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
7918bab27d feat: add config view for lvgl.
Signed-off-by: Bo <boironic@gmail.com>
2026-02-10 15:58:19 +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
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
crispyberry
3822928e6d feat: add HTTP CONNECT proxy support for Telegram and Claude API
Enable ESP32-S3 to reach api.telegram.org and api.anthropic.com through
an HTTP CONNECT proxy (e.g. Clash Verge), required in regions where
these services are blocked.

- New proxy module (http_proxy.c/h): CONNECT tunnel + TLS via esp_tls
  with pre-connected socket injection (esp_tls_set_conn_sockfd)
- Telegram and LLM modules split into direct/proxy paths
- CLI commands: set_proxy <host> <port>, clear_proxy
- Proxy config persisted in NVS
- Fix TLS buffer: MBEDTLS_SSL_IN_CONTENT_LEN 4096 → 16384
- Increase task stacks for TLS overhead (poll 12KB, agent 12KB, outbound 8KB)
- Default model changed to claude-opus-4-6
- Capture raw error body for non-200 API responses

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 22:40:28 +08:00
crispyberry
8b5213df87 fix: add TLS certificate bundle for HTTPS connections
All HTTP clients (Telegram, Claude API, OTA) were missing
crt_bundle_attach, causing TLS handshake failures. Add esp-tls
dependency to CMakeLists.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 21:18:21 +08:00
crispyberry
1b5f00bea5 feat: add app_update dependency and sdkconfig defaults
Add app_update component to CMakeLists REQUIRES for OTA version
reporting. Add sdkconfig.defaults scaffold and gitignore nanobot
reference repo.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 18:44:51 +08:00
crispyberry
fa4582bf70 feat: wire up app_main with all subsystems
Startup sequence: NVS → SPIFFS → bus → memory → WiFi → CLI →
Telegram → agent loop → WebSocket → outbound dispatch.
CMakeLists registers all source files and ESP-IDF dependencies.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:56:04 +08:00
crispyberry
e676abf2d2 feat: new project 2026-02-05 12:38:18 +08:00