You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/architecture/module-boundaries.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,17 +7,22 @@ This project uses explicit backend layers to keep client-specific behavior isola
7
7
-`domain/`
8
8
- Owns adapter interface (`ClientAdapter`) and client profile/capability definitions.
9
9
- Contains types that describe adapter behavior without binding to concrete client implementations.
10
+
-`detection/`
11
+
- Owns detector interface (`ClientDetector`) and shared detection framework.
12
+
- Defines detector registry and per-client detector implementations that emit one schema.
10
13
-`adapters/`
11
14
- Contains concrete adapter implementations for each supported client.
12
15
- Current scaffold adapters: Claude Code, Codex CLI, Cursor, Codex App.
13
16
-`infra/`
14
17
- Provides infrastructure wiring (`AdapterRegistry`) that composes adapters.
15
18
- Exposes registry lookup/iteration used by application services.
16
19
-`application/`
17
-
- Coordinates use-cases (`AdapterService`) and maps adapter outputs to command contracts.
20
+
- Coordinates use-cases (`AdapterService`) and maps detector/adapter outputs to command contracts.
18
21
-`commands/`
19
22
- Thin Tauri command boundary; handles envelope metadata and delegates business flow.
20
23
21
24
## Extension Rule
22
25
23
-
To add a new client adapter, implement `ClientAdapter` in a new file under `adapters/` and register it in `infra/adapter_registry.rs`. Command and UI layers should remain unchanged.
26
+
To add a new client adapter, implement `ClientAdapter` in a new file under `adapters/` and register it in `infra/adapter_registry.rs`.
27
+
To add a new detector, implement `ClientDetector` in `detection/clients/` and register it in `detection/detector_registry.rs`.
0 commit comments