@@ -25,20 +25,22 @@ The ECA codebase follows a pragmatic **layered layout** that separates concerns
2525 ├─ ` rules.clj ` | Guards that enforce user-defined project rules.
2626 ├─ ` tools.clj ` | Registry of built-in tool descriptors (run, approve…).
2727 └─ ` tools/ ` | Implementation of side-effectful tools:
28- • ` filesystem.clj ` | read/write/edit helpers
29- • ` shell.clj ` | runs user-approved shell commands
30- • ` mcp.clj ` | Multi-Command Plan supervisor
31- • ` util.clj ` | misc helpers shared by tools.
28+ ──├─ ` filesystem.clj ` | read/write/edit helpers
29+ ──├─ ` shell.clj ` | runs user-approved shell commands
30+ ──├─ ` mcp.clj ` | Multi-Command Plan supervisor
31+ ──└─ ` util.clj ` | misc helpers shared by tools.
3232 ` src/eca/messenger.clj ` | To send back to client requests/notifications over stdio.
3333 ` src/eca/handlers.clj ` | Entrypoint for all features.
3434 ` src/eca/server.clj ` | stdio ** entry point** ; wires everything together via ` lsp4clj ` .
3535 ` src/eca/main.clj ` | The CLI interface.
3636 ` src/eca/nrepl.clj ` | Starts an nREPL when ` :debug ` flag is passed.
3737
3838Together these files implement the request flow:
39+
3940` client/editor ` → ` stdin JSON-RPC ` → ` handlers ` → ` features ` → ` llm_api ` → ` llm_provider ` → results streamed back.
4041
4142With this map you can usually answer:
43+
4244• _ “Where does request X enter the system?”_ – look in ` handlers.clj ` .
4345• _ “How is tool Y executed?”_ – see ` src/eca/features/tools/<y>.clj ` .
4446• _ “How do we talk to provider Z?”_ – adapter under ` llm_providers/ ` .
0 commit comments