Commit Graph

22 Commits

Author SHA1 Message Date
Ettore Di Giacinto e4cc5598e3 fixup tests
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-02-15 23:05:51 +00:00
Ettore Di Giacinto aa7fa3e148 Drop last message from subtasks in plan execution
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-02-15 23:05:51 +00:00
Ettore Di Giacinto 7a37056d12 feat: improve control loop
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-02-15 23:05:51 +00:00
Ettore Di Giacinto ef0538f67c feat(planning): support multiple reviewers (#29)
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-01-19 22:41:19 +01:00
Ettore Di Giacinto f195b2553f feat(todo): add todo-based goal execution similar to cursor agent mode (#25)
* feat(todo): add todo-based goal execution similar to cursor agent mode

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* reinforce tests

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Bump timeout for tests

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* feat: guided tools

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

---------

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-01-15 21:19:15 +01:00
Ettore Di Giacinto 1a6237e2ec chore: move logging to its own package so can be shared across repos (#23)
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-12-19 23:02:17 +01:00
Ettore Di Giacinto 5f46a5b9e3 fix: make fragment status a pointer (#12)
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-22 17:19:54 +02:00
Ettore Di Giacinto 8b24a604fc Fixups
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-21 22:58:07 +02:00
Ettore Di Giacinto 1f801b9354 fix(plan): always update plan status also in case of error (#11)
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-21 22:31:10 +02:00
Ettore Di Giacinto 921ed81d33 Small refactorings
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-21 20:00:18 +02:00
Ettore Di Giacinto a49cf79c2e feat: re-attempt plans only if enabled, emit ErrgoalNotAchieved
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-21 18:49:11 +02:00
Ettore Di Giacinto 6da5735ef0 fix: better error propagation
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-21 18:46:33 +02:00
Ettore Di Giacinto 6e542ad1b1 chore: track plan description (#10)
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-21 16:07:10 +02:00
Ettore Di Giacinto 9c04ac0b45 Correctly handle errors
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-21 12:48:53 +02:00
Ettore Di Giacinto f21710b138 chore(plans): improve planning when no tool calls are called
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-20 22:40:43 +02:00
Ettore Di Giacinto 3832318bdf chore: add debugging calls
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-20 22:33:03 +02:00
Ettore Di Giacinto a22dd87a31 chore(plan): record executed plans
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-20 10:04:18 +02:00
Ettore Di Giacinto 2f0f800d95 feat(tools): allow to automatically plan (#9)
* feat(tools): allow to automatically plan

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* feat(mcp): display MCPs prompts during tool selection

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* feature gate mcp prompts

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Add test

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* fix plans, strict tests

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

---------

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-13 09:11:13 +02:00
Ettore Di Giacinto 6307cdecae feat(mcp): Support MCP sessions to source available tools (#8)
* feat(mcp): Support MCP sessions to source available tools

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* chore: docs

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* add e2e test

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* docs

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Update README

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Style cleanup

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

---------

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-10-08 23:40:41 +02:00
Ettore Di Giacinto d865935087 Improve planning and add tests (#4)
* WIP

* Make test pass

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Fixups

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

---------

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-09-30 23:23:32 +02:00
Ettore Di Giacinto 2f20fcce01 Change LLM to interface, split tests, improve content review loop (#3)
* Split e2e and unit tests

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Abstract away LLM to an interface

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Update README

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Fixups

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Enhance content improve generation

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Add unit test for reviewer

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Better handling of result status of tool calls

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Fixups

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* Add tools test file

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

---------

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-09-29 22:55:43 +02:00
Ettore Di Giacinto af41faaa19 Initial import
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-09-23 23:24:00 +02:00