Clone this repository
For self-hosted knots, clone URLs may differ based on your setup.
Store agent ID in SQLite config table. First run creates the agent,
subsequent runs reuse it — no more creating a new agent each time.
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
Tools were only registered on the ephemeral createAgent session
(which gets closed immediately). The working createSession needs
tools + bypassPermissions too, otherwise the agent cant see or
call island_save.
Also simplified tool schema to flat strings (parsed on execute)
since nested array-of-objects schemas may not register reliably.
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
- Revert to runTurn() — stream() yields token deltas not messages
- Add allowedTools: [island_save] so agent cant use memory or other
built-in tools
- Remove unused SDKMessage import
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
Speeds up island:analyze significantly. Override with --model=claude-sonnet-4-20250514 etc.
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>
Use session.send() + session.stream() instead of runTurn() so the
agent thinking, tool calls, and results are logged to stderr in
real-time as the analysis runs.
👾 Generated with [Letta Code](https://letta.com)
Co-Authored-By: Letta Code <noreply@letta.com>