Commit Graph

70 Commits

Author SHA1 Message Date
Asklv
e196c88c49 fix: resolve skill_loader compilation errors 2026-02-17 01:06:16 +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
85e595a141 docs: add cron tasks and heartbeat sections to READMEs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 03:37:51 +08:00
crispyberry
a2ed88a54b Merge pull request #4 from memovai/cron 2026-02-17 03:03:55 +08:00
Bo
c120a6fe45 fix cron/heartbeat e2e stability and build issues 2026-02-16 23:00:00 +08:00
crispyberry
680f41133a Merge pull request #28 from IRONICBo/feat/add-onboarding-view
feat: add interactive onboarding view
2026-02-16 22:47:07 +08:00
crispyberry
a662fe9485 docs: reorder README headers with centered banner, badges, and language links
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 22:44:21 +08:00
Asklv
5c54352ce0 fix: add missing stdbool.h include in heartbeat.h 2026-02-15 16:00:00 +08:00
crispyberry
a7ba2e2151 docs: update READMEs to document OpenAI provider support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 18:38:56 +08:00
crispyberry
710b73747e docs: JA docs 2026-02-14 18:12:43 +08:00
crispyberry
c9a4eae8f2 docs: add USB port warning to prevent plugging into wrong port
Many ESP32-S3 boards have two USB-C ports (USB and COM). Added a
callout with a reference photo reminding users to use the USB
(Serial/JTAG) port instead of the COM (UART bridge) port.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 22:06:21 +08:00
crispyberry
e4d482cfcc Merge pull request #27 from IRONICBo/feat/add-openai-model 2026-02-12 13:35:46 +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
Bo
e79e4e4932 feat: add wifi scaner in uart.
Signed-off-by: Bo <boironic@gmail.com>
2026-02-10 15:57:14 +08:00
crispyberry
5bcb28abbd ci: add build & release workflow 2026-02-09 22:07:28 +08:00
crispyberry
003323754d feat: add GitHub issue templates for bug, feature, and question
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 20:05:47 +08:00
crispyberry
d2c2188a72 Merge pull request #8 from IRONICBo/docs/add-arch 2026-02-09 13:59:47 +08:00
crispyberry
ba11f51955 docs: add Discord badge to READMEs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:35:29 +08:00
crispyberry
68ecb4e33c docs: add Star History chart to READMEs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:17:13 +08:00
Asklv
2636c21ed0 feat: add mimiclaw architecture.
Signed-off-by: Asklv <boironic@gmail.com>
2026-02-09 02:45:00 +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
crispyberry
1242119bb8 feat: strengthen system prompt memory guidance for proactive persistence
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 22:43:13 +08:00
crispyberry
8257a2bf50 docs: remove Discord badge from READMEs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 22:23:48 +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
9eb26587ed docs: add MIT, DeepWiki, Discord, and X badges to READMEs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 13:47:46 +08:00
crispyberry
353c404a7e docs: add MIT license
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 11:59:29 +08:00
crispyberry
b715021bd7 docs: specify ESP-IDF v5.5+ requirement
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 00:16:03 +08:00
crispyberry
39794e7f28 docs: update build/flash instructions with fullclean and port detection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 23:09:40 +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
43ded65713 feat: randomize working indicator phrase before each API call
Move working indicator into ReAct loop so it fires before every
llm_chat_tools call (including tool-use iterations), and randomly
select from 5 cute phrases using esp_random().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 18:36:51 +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
0ed0febcd0 feat: add working indicator and get_current_time to system prompt
Send "mimi😗is working..." to user when processing starts.
List get_current_time in system prompt available tools so the agent
knows to call it for time/date queries. Remove auto time fetch from
system prompt builder — agent calls the tool on demand.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:54:23 +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
041fd6b59e docs: add web_search tool 2026-02-07 11:06:36 +08:00
crispyberry
dbeaea2b2b fix: silence noisy esp-x509-crt-bundle INFO logs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 10:46:35 +08:00
crispyberry
e04254fa94 docs: update for ReAct tool use, web_search, and build-time config
Update READMEs with config file setup (Option A/B), tool section,
set_search_key command, and touch-before-build note. Update
ARCHITECTURE.md with ReAct data flow, tools module map, non-streaming
API protocol, and config priority. Mark tool use items done in TODO.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 00:37:49 +08:00
crispyberry
0e1da79b74 feat: add ReAct agent loop and build-time config (mimi_secrets.h)
Rewrite agent_loop.c with ReAct tool use loop: LLM call → tool
execution → repeat until end_turn (max 10 iterations). Add tool
guidance to system prompt. Add set_search_key CLI command.

Add mimi_secrets.h for build-time credentials with highest priority
over NVS/CLI values. All modules (wifi, telegram, llm, proxy,
web_search) check build-time secrets first, fall back to NVS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 00:37:43 +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
7a6609b722 docs: add memory write via tool use to TODO, mark proxy as done
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 23:12:57 +08:00
crispyberry
37d645474a fix: heap-allocate memory_read buffer to prevent stack overflow
CLI task stack is 4KB; the 4096-byte stack buffer in cmd_memory_read
was overflowing and corrupting the heap. Use malloc instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 23:04:09 +08:00
crispyberry
9b8121c4ce docs: add Chinese README, update proxy commands and model name
- Add README_CN.md with proxy setup guide for users in China
- Add language switcher to both READMEs
- Add set_proxy/clear_proxy to More Commands section
- Update default model to claude-opus-4-6
- Add Nanobot to acknowledgments
- Update ARCHITECTURE.md: proxy module, stack sizes, NVS config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 23:01:05 +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
5cab441035 docs: update How It Works with agent loop architecture diagram
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 20:35:15 +08:00
crispyberry
dd17c74eee docs: features 2026-02-06 18:55:11 +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
3b53610bdf docs: rewrite README for general audience, move tech details to docs
Simplified language, plain diagrams, human-readable memory table.
Technical architecture stays in docs/ARCHITECTURE.md.
No Linux, inspired by OpenClaw.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 19:12:20 +08:00
crispyberry
bf772cb892 docs: add architecture design and feature gap tracker
ARCHITECTURE.md covers system diagram, data flow, module map,
task layout, memory budget, flash partitions, NVS config,
protocols, and nanobot reference mapping.
TODO.md tracks unimplemented features vs nanobot (P0/P1/P2).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:56:14 +08:00