@openlife/cli 1.7.4 → 1.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +186 -0
- package/CODE_OF_CONDUCT.md +31 -0
- package/CONTRIBUTING.md +133 -0
- package/README.md +25 -9
- package/dist/cli/InstallModules.js +37 -0
- package/dist/cli/InstallWizard.js +46 -8
- package/dist/index.js +11 -0
- package/dist/test_install_wizard.js +86 -21
- package/docs/getting-started.md +137 -0
- package/package.json +11 -2
- package/docs/CHANGELOG_FEATURE_ROLLOUT_DESIGNMD.md +0 -43
- package/docs/EXTERNAL_SOURCES_AND_SECURITY_GUARD.md +0 -33
- package/docs/OPENLIFE_AUDIT_2026-05-06.md +0 -170
- package/docs/OPENLIFE_CONSOLIDATED_PLAN_2026-05-06.md +0 -299
- package/docs/OPENLIFE_DUAL_MODE_IMPLEMENTATION_PLAN.md +0 -205
- package/docs/OPENLIFE_EVOLUTION_SURFACE_2026-05-07.md +0 -53
- package/docs/OPENLIFE_SKILLS_IMPORT_2026-05-07.json +0 -223
- package/docs/OPENLIFE_SQUADS_IMPORT_2026-05-07.json +0 -184
- package/docs/PAPERCLIP_OPENLIFE_INVESTIGATION.md +0 -85
- package/docs/RELEASE_ORGANIZATION_PLAN.md +0 -164
- package/docs/audit/CLI-EXECUTION-RESULTS.md +0 -113
- package/docs/audit/CLI-MATRIX.md +0 -556
- package/docs/audit/DOC-PARITY-GAPS.md +0 -351
- package/docs/audit/ORCHESTRATOR-MATRIX.md +0 -136
- package/docs/audit/TEST-COVERAGE-GAPS.md +0 -334
- package/docs/audit/integrations/SKIPPED.md +0 -101
- package/docs/autonomous-install.md +0 -79
- package/docs/capability-genesis.md +0 -137
- package/docs/capability-pack-schema.md +0 -157
- package/docs/commands.md +0 -82
- package/docs/deep-research-capability.md +0 -114
- package/docs/development/typescript-conventions.md +0 -95
- package/docs/host-installers.md +0 -68
- package/docs/install/aiobuilder.md +0 -70
- package/docs/install/claude-code.md +0 -83
- package/docs/install/codex.md +0 -64
- package/docs/install/gemini-cli.md +0 -64
- package/docs/install/runtime-profiles.md +0 -83
- package/docs/openlife-agent-os-blueprint.md +0 -114
- package/docs/openlife-install-backlog.md +0 -115
- package/docs/openlife-install-spec.md +0 -306
- package/docs/operations/CLOUD_CUTOVER_AUDIT.md +0 -37
- package/docs/operations/PHASE_PROGRESS_CONTINUATION.md +0 -24
- package/docs/performance-benchmarks.md +0 -83
- package/docs/planning/v1.3-capability-genesis.md +0 -157
- package/docs/plans/2026-05-05-admin-interface-professional-dark-premium-plan.md +0 -84
- package/docs/plans/2026-05-05-openlife-autonomous-domain-marketplace-masterplan.md +0 -122
- package/docs/roadmap/OPENLIFE_MASTER_PLAN_CLOUD_V3.md +0 -97
- package/docs/sandboxing-research.md +0 -117
- package/docs/stories/epic-feature-audit/1.1.story.md +0 -84
- package/docs/stories/epic-feature-audit/1.2.story.md +0 -102
- package/docs/stories/epic-feature-audit/1.3.story.md +0 -93
- package/docs/stories/epic-feature-audit/1.5.story.md +0 -121
- package/docs/stories/epic-feature-audit/1.6.story.md +0 -80
- package/docs/stories/epic-feature-completeness/2.1.story.md +0 -70
- package/docs/stories/epic-feature-completeness/2.2.story.md +0 -49
- package/docs/stories/epic-feature-completeness/2.3.story.md +0 -74
- package/docs/stories/epic-feature-completeness/2.4.story.md +0 -71
- package/docs/stories/epic-feature-completeness/3.1.story.md +0 -56
- package/docs/stories/epic-feature-completeness/3.2.story.md +0 -80
- package/docs/stories/epic-feature-completeness/3.3.story.md +0 -68
- package/docs/stories/epic-feature-completeness/3.4.story.md +0 -71
- package/docs/stories/epic-feature-completeness/3.5.story.md +0 -72
- package/docs/stories/epic-feature-completeness/3.6.story.md +0 -69
- package/docs/stories/epic-feature-completeness/3.7.story.md +0 -68
- package/docs/stories/epic-feature-completeness/3.8.story.md +0 -57
- package/docs/v1.4-changelog.md +0 -159
- package/docs/v1.5-changelog.md +0 -106
- package/docs/v1.5-roadmap.md +0 -121
- package/docs/v1.6-changelog.md +0 -67
- package/docs/v1.6-roadmap.md +0 -89
|
@@ -1,351 +0,0 @@
|
|
|
1
|
-
# Doc/Code Parity Gaps — openlife-cli
|
|
2
|
-
|
|
3
|
-
**Source of truth:** `docs/audit/CLI-MATRIX.md` (156 `.command()` registrations; 125 leaf commands across 11 top-level standalones + 34 groups + 2 subgroups)
|
|
4
|
-
**Docs cross-checked:** `INSTALL.md` (139 lines), `README.md` (137 lines), `CLAUDE.md` (467 lines, focus on "Build / Run / Test")
|
|
5
|
-
**Generated:** 2026-05-11
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Summary
|
|
10
|
-
|
|
11
|
-
| Severity | Count |
|
|
12
|
-
|----------|-------|
|
|
13
|
-
| DRIFT-CRITICAL (doc says X, code doesn't) | 3 |
|
|
14
|
-
| DRIFT-HIGH (in code, undocumented anywhere) | 105 |
|
|
15
|
-
| DRIFT-MEDIUM (in some docs but not others) | 12 |
|
|
16
|
-
| DRIFT-LOW (description/default value drift) | 4 |
|
|
17
|
-
| **Total gaps** | **124** |
|
|
18
|
-
|
|
19
|
-
Out of 125 leaf commands in the matrix, **only 20 are mentioned in any of the three docs**. The vast majority of the CLI surface is undocumented. The three critical drift items are doc-side: docs reference commands that do not exist in code (`mode`, `chat`).
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## DRIFT-CRITICAL
|
|
24
|
-
|
|
25
|
-
Docs reference commands or flag combinations that **do not exist** in `src/index.ts`. Users following the docs will see "unknown command".
|
|
26
|
-
|
|
27
|
-
| # | Doc reference | What the doc says | What code actually does | Fix recommendation |
|
|
28
|
-
|---|--------------|-------------------|--------------------------|--------------------|
|
|
29
|
-
| 1 | `INSTALL.md` line 66 ("Primeiro uso") | `openlife mode set framework --host claude-code` | No top-level `mode` command exists. There is **no** `mode` group anywhere in `src/index.ts`. Closest equivalent: `system install --profile framework --host claude-code` (line 467) or `system setup --profile framework --host claude-code` (line 505). | Replace with `openlife system setup --profile framework --host claude-code` (already used on `INSTALL.md` line 11) **or** add a `mode` command alias in code. |
|
|
30
|
-
| 2 | `INSTALL.md` line 129 ("Diagnóstico") | `openlife mode status` | No `mode` command. No `mode status` either. Likely intended: `system status` or `models status`. | Replace with `openlife system status` (already on line 128) or remove the line. |
|
|
31
|
-
| 3 | `README.md` line 65 ("Chat local") | `openlife chat` | No top-level `chat` command exists. The closest is `aiobuilder chat <mensagem...>` (line 1845) which is scoped to design-mode intents only — not a general chat surface. `ask <mensagem...>` (line 399) is the canonical "send to Gatekeeper" entry but is not mentioned in README. | Replace with `openlife ask "<message>"` (semantically the chat-equivalent), or document `aiobuilder chat <message>` if the intent was design-mode only. |
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## DRIFT-HIGH
|
|
36
|
-
|
|
37
|
-
Leaf commands present in `src/index.ts` (per CLI-MATRIX.md) that are **not mentioned in INSTALL.md, README.md, or CLAUDE.md**.
|
|
38
|
-
|
|
39
|
-
Grouped by command group. Count: 105.
|
|
40
|
-
|
|
41
|
-
### Top-level standalone commands (3 of 11 undocumented)
|
|
42
|
-
| # | Command | Where it lives | Why it should be documented |
|
|
43
|
-
|---|---------|----------------|------------------------------|
|
|
44
|
-
| 1 | `restart` | src/index.ts:1171 | Operator-facing daemon control; users need it for autonomous mode |
|
|
45
|
-
| 2 | `update` | src/index.ts:1186 | Dev-mode self-update; should be mentioned in INSTALL §9 (PATH/postinstall) |
|
|
46
|
-
| 3 | `dream <entry...>` (alias `/dream`) | src/index.ts:1345 | User-facing personal journaling command; visible in `--help` |
|
|
47
|
-
|
|
48
|
-
### `auth` group (2/2 undocumented)
|
|
49
|
-
| # | Command | Where | Why |
|
|
50
|
-
|---|---------|-------|-----|
|
|
51
|
-
| 4 | `auth gemini` | src/index.ts:246 | Required for Gemini CLI executor; INSTALL §1 lists Gemini as optional but never shows the OAuth command |
|
|
52
|
-
| 5 | `auth openai` (alias `codex`) | src/index.ts:259 | Required for Codex CLI executor; same omission |
|
|
53
|
-
|
|
54
|
-
### `models` group (5/6 undocumented; `models status` mentioned in README & INSTALL)
|
|
55
|
-
| # | Command | Where | Why |
|
|
56
|
-
|---|---------|-------|-----|
|
|
57
|
-
| 6 | `models set <provider/model>` | 323 | Primary model swap; users hit this whenever they change provider |
|
|
58
|
-
| 7 | `models fallbacks list` | 339 | Fallback chain inspection |
|
|
59
|
-
| 8 | `models fallbacks add <provider/model>` | 348 | Fallback chain mutation |
|
|
60
|
-
| 9 | `models fallbacks remove <provider/model>` | 369 | Fallback chain mutation |
|
|
61
|
-
| 10 | `models fallbacks clear` | 384 | Fallback chain reset |
|
|
62
|
-
|
|
63
|
-
### `system` group (3/7 undocumented; `system setup`, `system doctor`, `system status` mentioned)
|
|
64
|
-
| # | Command | Where | Why |
|
|
65
|
-
|---|---------|-------|-----|
|
|
66
|
-
| 11 | `system install` | 467 | Alias of `system setup` per matrix description, but docs only show `system setup` |
|
|
67
|
-
| 12 | `system init-project` | 552 | Creates `OPENLIFE_PROJECT.md` — first-day onboarding step |
|
|
68
|
-
| 13 | `system doctor-world` | 560 | World-class diagnostic |
|
|
69
|
-
| 14 | `system bootstrap-world` | 567 | World-class bootstrap |
|
|
70
|
-
|
|
71
|
-
### `memory` group (5/5 undocumented)
|
|
72
|
-
| # | Command | Where |
|
|
73
|
-
|---|---------|-------|
|
|
74
|
-
| 15 | `memory status` | 573 |
|
|
75
|
-
| 16 | `memory provider-list` | 577 |
|
|
76
|
-
| 17 | `memory provider-use <name>` | 581 |
|
|
77
|
-
| 18 | `memory test <name>` | 585 |
|
|
78
|
-
| 19 | `memory search <query...>` | 589 |
|
|
79
|
-
|
|
80
|
-
### `swarm` group (2/2 undocumented)
|
|
81
|
-
| # | Command | Where |
|
|
82
|
-
|---|---------|-------|
|
|
83
|
-
| 20 | `swarm run [goal...]` | 600 |
|
|
84
|
-
| 21 | `swarm consensus-test` | 621 |
|
|
85
|
-
|
|
86
|
-
### `governance` group (5/5 undocumented)
|
|
87
|
-
| # | Command | Where |
|
|
88
|
-
|---|---------|-------|
|
|
89
|
-
| 22 | `governance status` | 627 |
|
|
90
|
-
| 23 | `governance audit` | 631 |
|
|
91
|
-
| 24 | `governance risk-check <goal>` | 635 |
|
|
92
|
-
| 25 | `governance consent <scope> <userId>` | 639 |
|
|
93
|
-
| 26 | `governance policy show` | 644 |
|
|
94
|
-
|
|
95
|
-
### `benchmark` group (3/3 undocumented)
|
|
96
|
-
| # | Command | Where |
|
|
97
|
-
|---|---------|-------|
|
|
98
|
-
| 27 | `benchmark run` | 669 |
|
|
99
|
-
| 28 | `benchmark compare` | 673 |
|
|
100
|
-
| 29 | `benchmark report` | 677 |
|
|
101
|
-
|
|
102
|
-
### `agents` group (2/3 undocumented; `agents list` in README only)
|
|
103
|
-
| # | Command | Where |
|
|
104
|
-
|---|---------|-------|
|
|
105
|
-
| 30 | `agents create <id>` | 692 |
|
|
106
|
-
| 31 | `agents show <id>` | 703 |
|
|
107
|
-
|
|
108
|
-
### `squads` group (1/2 undocumented; `squads list` in README only)
|
|
109
|
-
| # | Command | Where |
|
|
110
|
-
|---|---------|-------|
|
|
111
|
-
| 32 | `squads create <id>` | 747 |
|
|
112
|
-
|
|
113
|
-
### `skills` group (1/2 undocumented; `skills list` in README only)
|
|
114
|
-
| # | Command | Where |
|
|
115
|
-
|---|---------|-------|
|
|
116
|
-
| 33 | `skills create <id>` | 766 |
|
|
117
|
-
|
|
118
|
-
### `route` group (1/1 undocumented)
|
|
119
|
-
| # | Command | Where |
|
|
120
|
-
|---|---------|-------|
|
|
121
|
-
| 34 | `route intent <goal...>` | 869 |
|
|
122
|
-
|
|
123
|
-
### `mcp` group (1/2 undocumented; `mcp status --real` in README only)
|
|
124
|
-
| # | Command | Where |
|
|
125
|
-
|---|---------|-------|
|
|
126
|
-
| 35 | `mcp create <id>` | 900 |
|
|
127
|
-
|
|
128
|
-
### `catalog` group (2/2 undocumented)
|
|
129
|
-
| # | Command | Where |
|
|
130
|
-
|---|---------|-------|
|
|
131
|
-
| 36 | `catalog doctor` | 933 |
|
|
132
|
-
| 37 | `catalog list` | 952 |
|
|
133
|
-
|
|
134
|
-
### `teams` group (2/2 undocumented)
|
|
135
|
-
| # | Command | Where |
|
|
136
|
-
|---|---------|-------|
|
|
137
|
-
| 38 | `teams list` | 958 |
|
|
138
|
-
| 39 | `teams upsert <id>` | 969 |
|
|
139
|
-
|
|
140
|
-
### `networks` group (2/2 undocumented)
|
|
141
|
-
| # | Command | Where |
|
|
142
|
-
|---|---------|-------|
|
|
143
|
-
| 40 | `networks list` | 986 |
|
|
144
|
-
| 41 | `networks upsert <id>` | 996 |
|
|
145
|
-
|
|
146
|
-
### `media` group (4/4 undocumented)
|
|
147
|
-
| # | Command | Where |
|
|
148
|
-
|---|---------|-------|
|
|
149
|
-
| 42 | `media route` | 1013 |
|
|
150
|
-
| 43 | `media route-status` | 1027 |
|
|
151
|
-
| 44 | `media doctor` | 1061 |
|
|
152
|
-
| 45 | `media read-image <imagePath>` | 1083 |
|
|
153
|
-
|
|
154
|
-
### `orchestration` group (2/2 undocumented)
|
|
155
|
-
| # | Command | Where |
|
|
156
|
-
|---|---------|-------|
|
|
157
|
-
| 46 | `orchestration contract` | 1126 |
|
|
158
|
-
| 47 | `orchestration snapshot` | 1130 |
|
|
159
|
-
|
|
160
|
-
### `smoke` group (2/2 undocumented)
|
|
161
|
-
| # | Command | Where |
|
|
162
|
-
|---|---------|-------|
|
|
163
|
-
| 48 | `smoke railway` | 1324 |
|
|
164
|
-
| 49 | `smoke telegram` | 1331 |
|
|
165
|
-
|
|
166
|
-
### `service` group (6/6 undocumented)
|
|
167
|
-
| # | Command | Where |
|
|
168
|
-
|---|---------|-------|
|
|
169
|
-
| 50 | `service list` | 1358 |
|
|
170
|
-
| 51 | `service create <serviceId>` | 1367 |
|
|
171
|
-
| 52 | `service status <serviceId>` | 1380 |
|
|
172
|
-
| 53 | `service pause <serviceId>` | 1393 |
|
|
173
|
-
| 54 | `service resume <serviceId>` | 1406 |
|
|
174
|
-
| 55 | `service events <serviceId>` | 1419 |
|
|
175
|
-
|
|
176
|
-
### `task` group (3/3 undocumented)
|
|
177
|
-
| # | Command | Where |
|
|
178
|
-
|---|---------|-------|
|
|
179
|
-
| 56 | `task list` | 1434 |
|
|
180
|
-
| 57 | `task run <goal...>` | 1444 |
|
|
181
|
-
| 58 | `task status <taskId>` | 1457 |
|
|
182
|
-
|
|
183
|
-
### `job` group (2/2 undocumented)
|
|
184
|
-
| # | Command | Where |
|
|
185
|
-
|---|---------|-------|
|
|
186
|
-
| 59 | `job list` | 1470 |
|
|
187
|
-
| 60 | `job events <jobId>` | 1477 |
|
|
188
|
-
|
|
189
|
-
### `runtime` group (2/2 undocumented)
|
|
190
|
-
| # | Command | Where |
|
|
191
|
-
|---|---------|-------|
|
|
192
|
-
| 61 | `runtime probe` | 1483 |
|
|
193
|
-
| 62 | `runtime list` | 1487 |
|
|
194
|
-
|
|
195
|
-
### `reversa` group (6/6 undocumented)
|
|
196
|
-
| # | Command | Where |
|
|
197
|
-
|---|---------|-------|
|
|
198
|
-
| 63 | `reversa status` | 1493 |
|
|
199
|
-
| 64 | `reversa next` | 1499 |
|
|
200
|
-
| 65 | `reversa mode` | 1506 |
|
|
201
|
-
| 66 | `reversa run-phase <phase>` | 1516 |
|
|
202
|
-
| 67 | `reversa run-all` | 1522 |
|
|
203
|
-
| 68 | `reversa export-json` | 1526 |
|
|
204
|
-
|
|
205
|
-
### `sources` group (4/4 undocumented)
|
|
206
|
-
| # | Command | Where |
|
|
207
|
-
|---|---------|-------|
|
|
208
|
-
| 69 | `sources list` | 1532 |
|
|
209
|
-
| 70 | `sources guard-check <url>` | 1536 |
|
|
210
|
-
| 71 | `sources scaffold <type> <id>` | 1543 |
|
|
211
|
-
| 72 | `sources import-ref <type> <id> <url>` | 1559 |
|
|
212
|
-
|
|
213
|
-
### `teammate` group (2/2 undocumented)
|
|
214
|
-
| # | Command | Where |
|
|
215
|
-
|---|---------|-------|
|
|
216
|
-
| 73 | `teammate list` | 1579 |
|
|
217
|
-
| 74 | `teammate upsert <id> <owner> <status> <title>` | 1586 |
|
|
218
|
-
|
|
219
|
-
### `learning` group (2/2 undocumented) — distinct from `learn` group
|
|
220
|
-
| # | Command | Where |
|
|
221
|
-
|---|---------|-------|
|
|
222
|
-
| 75 | `learning add <taskId> <summary>` | 1593 |
|
|
223
|
-
| 76 | `learning list` | 1597 |
|
|
224
|
-
|
|
225
|
-
### `context` group (3/3 undocumented)
|
|
226
|
-
| # | Command | Where |
|
|
227
|
-
|---|---------|-------|
|
|
228
|
-
| 77 | `context init` | 1605 |
|
|
229
|
-
| 78 | `context doctor` | 1608 |
|
|
230
|
-
| 79 | `context summary` | 1613 |
|
|
231
|
-
|
|
232
|
-
### `plugin` group (5/5 undocumented)
|
|
233
|
-
| # | Command | Where |
|
|
234
|
-
|---|---------|-------|
|
|
235
|
-
| 80 | `plugin install <id>` | 1626 |
|
|
236
|
-
| 81 | `plugin list` | 1629 |
|
|
237
|
-
| 82 | `plugin inspect <id>` | 1632 |
|
|
238
|
-
| 83 | `plugin disable <id>` | 1635 |
|
|
239
|
-
| 84 | `plugin enable <id>` | 1638 |
|
|
240
|
-
|
|
241
|
-
### `pilot` group (4/4 undocumented)
|
|
242
|
-
| # | Command | Where |
|
|
243
|
-
|---|---------|-------|
|
|
244
|
-
| 85 | `pilot create <id>` | 1646 |
|
|
245
|
-
| 86 | `pilot list` | 1649 |
|
|
246
|
-
| 87 | `pilot report <id>` | 1652 |
|
|
247
|
-
| 88 | `pilot complete <id>` | 1657 |
|
|
248
|
-
|
|
249
|
-
### `eval` group (2/2 undocumented)
|
|
250
|
-
| # | Command | Where |
|
|
251
|
-
|---|---------|-------|
|
|
252
|
-
| 89 | `eval judge` | 1665 |
|
|
253
|
-
| 90 | `eval report <mission>` | 1668 |
|
|
254
|
-
|
|
255
|
-
### `learn` group (2/2 undocumented)
|
|
256
|
-
| # | Command | Where |
|
|
257
|
-
|---|---------|-------|
|
|
258
|
-
| 91 | `learn from-last-run` | 1676 |
|
|
259
|
-
| 92 | `learn list` | 1679 |
|
|
260
|
-
|
|
261
|
-
### `enterprise` group (1/1 undocumented)
|
|
262
|
-
| # | Command | Where |
|
|
263
|
-
|---|---------|-------|
|
|
264
|
-
| 93 | `enterprise doctor` | 1684 |
|
|
265
|
-
|
|
266
|
-
### `designmd` group (5/5 undocumented)
|
|
267
|
-
| # | Command | Where |
|
|
268
|
-
|---|---------|-------|
|
|
269
|
-
| 94 | `designmd status` | 1691 |
|
|
270
|
-
| 95 | `designmd import` | 1698 |
|
|
271
|
-
| 96 | `designmd list` | 1711 |
|
|
272
|
-
| 97 | `designmd show <profileId>` | 1715 |
|
|
273
|
-
| 98 | `designmd apply <profileId> <source> <title> <designPath>` | 1720 |
|
|
274
|
-
|
|
275
|
-
### `aiobuilder` group (6/6 undocumented)
|
|
276
|
-
| # | Command | Where |
|
|
277
|
-
|---|---------|-------|
|
|
278
|
-
| 99 | `aiobuilder mode` | 1730 |
|
|
279
|
-
| 100 | `aiobuilder create-agent <id>` | 1741 |
|
|
280
|
-
| 101 | `aiobuilder create-squad <id>` | 1749 |
|
|
281
|
-
| 102 | `aiobuilder validate-catalog` | 1754 |
|
|
282
|
-
| 103 | `aiobuilder generate-ui <featureName>` | 1763 |
|
|
283
|
-
| 104 | `aiobuilder chat <mensagem...>` | 1845 |
|
|
284
|
-
|
|
285
|
-
### `ask` (1/1 — top-level, not mentioned in any doc by name)
|
|
286
|
-
| # | Command | Where |
|
|
287
|
-
|---|---------|-------|
|
|
288
|
-
| 105 | `ask <mensagem...>` | 399 |
|
|
289
|
-
|
|
290
|
-
Note: `ask` is the canonical user-facing entry to the Gatekeeper and is heavily exercised in tests, yet is referenced in **none** of the three docs. README's `openlife chat` (drift-critical #3) is the closest doc-side intent and should be replaced by `openlife ask`.
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## DRIFT-MEDIUM
|
|
295
|
-
|
|
296
|
-
Commands that **are** documented in at least one doc but missing from another where they would be relevant.
|
|
297
|
-
|
|
298
|
-
| # | Command | In README? | In INSTALL? | In CLAUDE? | Gap description |
|
|
299
|
-
|---|---------|-----------|-------------|-----------|------------------|
|
|
300
|
-
| 1 | `install` (top-level) | YES (line 31) | NO | NO | INSTALL.md has its own bash recipe and mentions `npm install -g`; the actual `openlife install` interactive command isn't mentioned in INSTALL — paradoxical |
|
|
301
|
-
| 2 | `up` | YES (line 53) | NO | NO | One-shot daily-driver command. Should appear in INSTALL §6 or §10 |
|
|
302
|
-
| 3 | `start --daemon` | YES (line 59) | NO | NO | Manual daemon start. INSTALL §6 talks about autonomous mode but uses `agent start` instead of `start --daemon` |
|
|
303
|
-
| 4 | `status` (top-level) | YES (line 82, 128) | NO | NO | INSTALL §10 (Diagnóstico) lists `system status` and `mode status` but not the top-level `status` |
|
|
304
|
-
| 5 | `doctor` (top-level) | YES (line 83, 126) | NO | NO | INSTALL §10 lists `system doctor` only, not the universal top-level `doctor` |
|
|
305
|
-
| 6 | `phase1-check` | YES (line 85, 129) | NO | NO | INSTALL never mentions phase1-check |
|
|
306
|
-
| 7 | `agents list` | YES (line 86) | NO | NO | INSTALL has no command examples beyond `models status`/`system doctor`/etc. |
|
|
307
|
-
| 8 | `squads list` | YES (line 87) | NO | NO | Same gap as agents list |
|
|
308
|
-
| 9 | `skills list` | YES (line 88) | NO | NO | Same |
|
|
309
|
-
| 10 | `mcp status --real` | YES (line 89) | NO | NO | Same |
|
|
310
|
-
| 11 | `system setup` (full form) | YES (line 41, 47) | YES (line 11) | NO | CLAUDE.md "Build / Run / Test" never shows the install/setup commands — only `npm run build` and `node bin/openlife.js --help` |
|
|
311
|
-
| 12 | `agent install`/`agent start`/`agent status` | NO | YES (lines 17, 23, 82-83) | NO | INSTALL uses `openlife agent` alias; README uses `start --daemon` instead — the two docs disagree on which surface to teach |
|
|
312
|
-
|
|
313
|
-
---
|
|
314
|
-
|
|
315
|
-
## DRIFT-LOW
|
|
316
|
-
|
|
317
|
-
Description/default-value drift. Short paragraphs, no table needed.
|
|
318
|
-
|
|
319
|
-
1. **`install --host` default vs INSTALL recipe.** Matrix line 18 shows `--host` defaults to `claude-code`. INSTALL.md hard-codes `--host claude-code` on the recipes, which is fine, but README mirrors the same hard-coding; neither doc states that the flag is optional and defaults to `claude-code`. Low-impact but a documentation polish item.
|
|
320
|
-
|
|
321
|
-
2. **`system setup` description.** The matrix records `system setup` as "Alias de system install para onboarding completo" (line 505). INSTALL.md (line 11) and README.md (lines 41, 47) all surface `system setup` as the canonical command; **`system install` is never mentioned in docs at all** (already captured as DRIFT-HIGH #11). Calling `system setup` an alias of an undocumented command is confusing — recommend updating the description in `src/index.ts` to drop the "alias" language or swap which command is documented.
|
|
322
|
-
|
|
323
|
-
3. **`media route --prefer-gemini` default.** Default is `'true'` (string) per matrix line 1013. Not documented anywhere, so users can't know the default. Minor, since the only references to media routing in docs are the `OPENLIFE_PREFER_GEMINI_FOR_MEDIA` env var in CLAUDE.md (line 184).
|
|
324
|
-
|
|
325
|
-
4. **`dream` alias `/dream`.** The Telegram-style alias is registered (matrix line 1345) but neither README nor INSTALL mentions `dream` or `/dream`. CLAUDE.md mentions it only in the dev-time test fixture context. Minor — but the alias is unusual enough (starts with `/`) that documentation would help.
|
|
326
|
-
|
|
327
|
-
---
|
|
328
|
-
|
|
329
|
-
## Notes
|
|
330
|
-
|
|
331
|
-
- **Commands clearly internal/diagnostic** — these may not warrant prominent doc placement but should still appear in a comprehensive `docs/commands.md` (referenced by INSTALL §11 but not present in repo):
|
|
332
|
-
- `phase1-check` (Phase-1 runtime check)
|
|
333
|
-
- `smoke railway`, `smoke telegram` (CI smokes)
|
|
334
|
-
- `enterprise doctor`, `media doctor`, `catalog doctor`, `system doctor-world`, `governance audit`
|
|
335
|
-
- `orchestration contract`, `orchestration snapshot`
|
|
336
|
-
- `runtime probe`, `runtime list`
|
|
337
|
-
- `swarm consensus-test`, `benchmark run/compare/report`
|
|
338
|
-
|
|
339
|
-
- **Narrative-only references** in the three docs that are *not* drift, just descriptive prose (correctly excluded from counts above):
|
|
340
|
-
- INSTALL "Bundle automatizado (local/WSL/Linux)" referring to a shell script, not a CLI command
|
|
341
|
-
- README "Telegram" section describing routing behavior (no CLI surface invoked)
|
|
342
|
-
- CLAUDE.md "Test suite — important pattern" section showing `npm run test:*` (npm scripts, not CLI commands)
|
|
343
|
-
- CLAUDE.md "Build / Run / Test" mentions `npm run admin` → admin server, not a CLI command
|
|
344
|
-
|
|
345
|
-
- **Linked docs not yet present**: INSTALL.md §11 links to `docs/quickstart.md`, `docs/commands.md`, `docs/autonomous-install.md` — only `docs/autonomous-install.md` is confirmed to exist (`test_distribution_installability.ts` line 21). The other two would be the natural homes for the 105 DRIFT-HIGH commands and were not scored here as gaps because they are missing files, not drift.
|
|
346
|
-
|
|
347
|
-
- **Doc-only doctor-set bias.** Both INSTALL and README repeat similar small diagnostic command sets (`status`, `doctor`, `system doctor`, `models status`) rather than steering users to the broader `catalog doctor`, `media doctor`, `enterprise doctor`, `runtime probe` surface. Worth a future doc consolidation.
|
|
348
|
-
|
|
349
|
-
- **`agent <verb>` is an alias bridge.** Top-level `agent <verb>` (line 1248, "Alias compatível com documentação: agent install|start|status → autonomous lifecycle") is *deliberately* documented in INSTALL.md even though the underlying lifecycle command structure is different. No drift to flag.
|
|
350
|
-
|
|
351
|
-
- **CLAUDE.md scope.** The brief asked to focus on CLAUDE.md's "Build / Run / Test" section. That section references only build/test scripts (`npm install`, `npm run build`, `node bin/openlife.js --help`, `npm run dev`, `npm run admin`, `npm run test:*`). No `openlife <subcommand>` invocations outside `--help` appear, so CLAUDE.md effectively contributes no command-level documentation coverage and is the most under-documented of the three docs from a CLI-surface standpoint.
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
# Orchestrator Matrix — openlife-cli
|
|
2
|
-
|
|
3
|
-
**Source:** `src/orchestrator/` (79 .ts files + `providers/` with 12 .ts files = 91 total)
|
|
4
|
-
**Total classes:** 91 (82 core + 9 in `providers/`)
|
|
5
|
-
**Generated:** 2026-05-11
|
|
6
|
-
|
|
7
|
-
Phase 1 of Total Feature Audit. Captures public surface area (constructor + non-`private`/non-`protected` methods) for every class. Subsequent phases will derive unit tests from this matrix.
|
|
8
|
-
|
|
9
|
-
## Core Classes
|
|
10
|
-
|
|
11
|
-
| # | File | Class | Constructor | Public Methods | Collaborators | Responsibility |
|
|
12
|
-
|---|------|-------|-------------|----------------|---------------|----------------|
|
|
13
|
-
| 1 | `AgentRegistry.ts` | `AgentRegistry` | `(private provider: AgentProvider = new CompositeAgentProvider( new CloudAgentProvider(process.env....)` | `all(): RegisteredAgent[]`<br>`findByCapability(capability): RegisteredAgent[]`<br>`registerTemporary(agent)`<br>`findMiniSquad(capabilities): RegisteredAgent[]`<br>`findPrioritySet(): RegisteredAgent[]` | `AgentProvider`, `FileAgentProvider`, `CloudAgentProvider`, `CompositeAgentProvider` | Asset registry for agent |
|
|
14
|
-
| 2 | `AgentScoring.ts` | `AgentScoring` | `()` | `getAll(): Record<string, AgentScore>`<br>`record(agentId, status)` | — | Tracks agent scores |
|
|
15
|
-
| 3 | `AgentTeam.ts` | `AgentTeamRegistry` | `(seed?: AgentTeam[])` | `list(): AgentTeam[]`<br>`upsert(team): void`<br>`resolveByDomain(domain): AgentTeam \| null` | — | Asset registry for agentteam |
|
|
16
|
-
| 4 | `ArbitrationAgent.ts` | `ArbitrationAgent` | `(private brain: Brain)` | `arbitrate(goal, branches): Promise<ArbitrationResult>` | `Brain` | Arbitration agent (LLM-backed) |
|
|
17
|
-
| 5 | `ArbitrationScorecard.ts` | `ArbitrationScorecard` | `()` | `score(branches): BranchScore[]` | — | Scores/ranks arbitration |
|
|
18
|
-
| 6 | `AssetPromotionEngine.ts` | `AssetPromotionEngine` | `()` | `promote(candidate): PromotedAsset` | `PromotionCandidate` | AssetPromotion engine |
|
|
19
|
-
| 7 | `AssetReuseRouter.ts` | `AssetReuseRouter` | `()` | `find(goal): ReusedAsset[]` | — | Routes assetreuse requests to handlers |
|
|
20
|
-
| 8 | `BenchmarkEngine.ts` | `BenchmarkEngine` | `()` | `record(sample)`<br>`compare(benchmarkId)`<br>`getAll(): BenchmarkSample[]` | — | Benchmark engine |
|
|
21
|
-
| 9 | `Brain.ts` | `Brain` | `()` | `think(systemPrompt, userMessage): Promise<string>`<br>`formatProviderError(provider, model, error, opts): Error` | `ModelManager` | Brain component |
|
|
22
|
-
| 10 | `CadenceEngine.ts` | `CadenceEngine` | `()` | `schedule(kind, title, ownerRole, linkedMissionId): CadenceEvent`<br>`updateStatus(id, status)`<br>`getAll(): CadenceEvent[]` | — | Cadence engine |
|
|
23
|
-
| 11 | `CapabilityRouter.ts` | `CapabilityRouter` | `(private registry: AgentRegistry)` | `route(task, input): CapabilityRoute` | `RegisteredAgent`, `AgentRegistry`, `ClassifiedTask`, `TaskIntent` | Routes capability requests to handlers |
|
|
24
|
-
| 12 | `CommandLanguage.ts` | `CommandLanguage` | `()` | `parse(input): ParsedCommand` | — | Parses command language |
|
|
25
|
-
| 13 | `CommandRouter.ts` | `CommandRouter` | `()` | `route(parsed): string \| null` | `ParsedCommand`, `AgentRegistry`, `SquadRegistry`, `SkillRegistryV2`, `OrgStructure` | Routes command requests to handlers |
|
|
26
|
-
| 14 | `ConsequenceForecaster.ts` | `ConsequenceForecaster` | `()` | `forecast(goal, governanceRisk, basePolicy, executors): ConsequenceForecast` | `ExecutionPolicyDecision`, `ExecutorKind` | Forecasts consequence |
|
|
27
|
-
| 15 | `DynamicAgentBuilder.ts` | `DynamicAgentBuilder` | `(private brain: Brain)` | `propose(goal, existingAgents): Promise<DynamicAgentSpec \| null>` | `Brain`, `RegisteredAgent` | Builds dynamicagent |
|
|
28
|
-
| 16 | `DynamicAgentExecutor.ts` | `DynamicAgentExecutor` | `(private taskExecutor: TaskExecutor)` | `execute(agent, goal, taskId): Promise<string>` | `TaskExecutor`, `DynamicAgentSpec` | Executes dynamicagent |
|
|
29
|
-
| 17 | `EnterpriseAgenticCore.ts` | `EnterpriseDoctor` | `(private root = process.cwd())` | `run()` | — | Diagnoses Enterprise health |
|
|
30
|
-
| 18 | `ExecutionBoard.ts` | `ExecutionBoard` | `()` | `add(item)`<br>`updateStatus(id, status, blockerReason)`<br>`updateDependencies(id, dependencies)`<br>`getAll(): BoardItem[]` | — | Execution board / list state |
|
|
31
|
-
| 19 | `ExecutionModePolicy.ts` | `ExecutionModePolicy` | `()` | `decide(task, input): ExecutionPolicyDecision` | `ClassifiedTask`, `TaskIntent` | Policy decisions for executionmode |
|
|
32
|
-
| 20 | `ExecutionRouter.ts` | `ExecutionRouter` | `()` | `route(intent): RoutedExecutionPath` | `ExecutionIntent` | Routes execution requests to handlers |
|
|
33
|
-
| 21 | `ExecutorHealth.ts` | `ExecutorHealth` | `()` | `getAll(): Record<string, ExecutorHealthState>` | `ExecutorKind` | ExecutorHealth component |
|
|
34
|
-
| 22 | `ExternalCatalogRegistry.ts` | `ExternalCatalogRegistry` | `()` | `list(): ExternalCatalogSource[]` | — | Asset registry for externalcatalog |
|
|
35
|
-
| 23 | `Gatekeeper.ts` | `Gatekeeper` | `()` | `routeTask(task, userInput, userId, options): Promise<string>` | `TaskIntent`, `ClassifiedTask`, `OmniMemory`, `SquadManager`, `SkillRegistry` | Gatekeeper component |
|
|
36
|
-
| 24 | `Gateway.ts` | `Gateway` | `()` | `start()`<br>`shutdown(reason): Promise<void>`<br>`processTextForTest(userId, text): Promise<string>`<br>`processImageForTest(userId, imagePath, caption): Promise<string>` | `IntentClassifier`, `Gatekeeper`, `VoiceManager`, `GovernanceLayer` | Gateway component |
|
|
37
|
-
| 25 | `GovernanceConsentStore.ts` | `GovernanceConsentStore` | `(private root: string = process.cwd())` | `approve(userId, scope)`<br>`hasRecentApproval(userId, scope, windowMinutes): boolean` | — | Persistent store for governanceconsent |
|
|
38
|
-
| 26 | `GovernanceLayer.ts` | `GovernanceLayer` | `()` | `evaluate(goal, project): GovernanceDecision`<br>`redact(text): string` | `GovernancePolicyStore` | Governance layer |
|
|
39
|
-
| 27 | `GovernancePolicyStore.ts` | `GovernancePolicyStore` | `(private root: string = process.cwd())` | `load(project)` | — | Persistent store for governancepolicy |
|
|
40
|
-
| 28 | `GovernanceScopePolicy.ts` | `GovernanceScopePolicy` | `()` | `decide(task, input, project): GovernanceScopeDecision`<br>`filterCapabilities(capabilities, scope)` | `ClassifiedTask`, `TaskIntent`, `GovernancePolicyStore` | Policy decisions for governancescope |
|
|
41
|
-
| 29 | `EnterpriseAgenticCore.ts` | `InstitutionalContextStore` | `(private root = process.cwd())` | `requiredFiles()`<br>`init(name)`<br>`doctor()`<br>`summary()` | — | Persistent store for institutionalcontext |
|
|
42
|
-
| 30 | `IntentClassifier.ts` | `IntentClassifier` | `()` | `classify(userInput): Promise<ClassifiedTask>` | — | O Classificador Cognitivo do OPEN-LIFE. |
|
|
43
|
-
| 31 | `JobLifecycle.ts` | `JobLifecycleStore` | `(workspaceId = 'default')` | `enqueue(goal, workspaceId, serviceId, taskId): JobRecord`<br>`transition(jobId, workspaceId, status, summary, ownerAgentId, blocker): JobRecord \| null`<br>`list(limit): JobRecord[]`<br>`events(jobId): JobEvent[]` | — | Persistent store for joblifecycle |
|
|
44
|
-
| 32 | `EnterpriseAgenticCore.ts` | `LearningLoopStore` | `(private root = process.cwd())` | `fromLastRun(mission, feedback)`<br>`list()` | — | Persistent store for learningloop |
|
|
45
|
-
| 33 | `LearningRouter.ts` | `LearningRouter` | `(private capabilityRouter: CapabilityRouter, private scoring: AgentScoring)` | `route(task, input): CapabilityRoute` | `CapabilityRouter`, `CapabilityRoute`, `AgentScoring`, `PerformanceScorecard` | Routes learning requests to handlers |
|
|
46
|
-
| 34 | `MediaManager.ts` | `MediaManager` | `()` | `extractAudio(inputPath, outputFilename): Promise<string>`<br>`cutVideo(inputPath, startTime, duration, outputFilename): Promise<string>` | — | Manages media |
|
|
47
|
-
| 35 | `MemoryCuratorAgent.ts` | `MemoryCuratorAgent` | `(private brain: Brain)` | `curate(state): Promise<string[]>` | `Brain`, `MissionState` | MemoryCurator agent (LLM-backed) |
|
|
48
|
-
| 36 | `EnterpriseAgenticCore.ts` | `MissionEvaluationStore` | `(private root = process.cwd())` | `judge(mission, criteriaCsv)`<br>`report(mission)`<br>`list()` | — | Persistent store for missionevaluation |
|
|
49
|
-
| 37 | `MissionState.ts` | `MissionStateStore` | `()` | `persist(state): string` | `ExecutionState`, `RegisteredAgent`, `RegisteredSquad`, `RegisteredSkill` | Persistent store for missionstate |
|
|
50
|
-
| 38 | `ModelManager.ts` | `ModelManager` | `()` | `getModelConfig(): ModelConfig`<br>`saveConfig(config)`<br>`parseModelString(input): ModelIdentifier` | — | Manages model |
|
|
51
|
-
| 39 | `OperatingSystem.ts` | `OperatingSystem` | `()` | `decide(missionId): OperatingDecision`<br>`scheduleWeeklyCadence(anchor)` | `ExecutionBoard`, `BoardItem`, `RoleHandoff`, `CadenceEngine` | OperatingSystem component |
|
|
52
|
-
| 40 | `OperationalMemoryStore.ts` | `OperationalMemoryStore` | `()` | `add(entry, namespace)`<br>`getAll(): OperationalMemoryEntry[]` | `LocalMemoryProvider`, `MemoryNamespace`, `MemoryRecord`, `MemoryOrchestrator` | Persistent store for operationalmemory |
|
|
53
|
-
| 41 | `OptimizationLoop.ts` | `OptimizationLoop` | `()` | `generateSuggestions(): OptimizationSuggestion[]` | `PerformanceScorecard` | Optimization loop runner |
|
|
54
|
-
| 42 | `OrchestrationLoop.ts` | `OrchestrationLoop` | `(private brain: Brain, private taskExecutor: TaskExecutor)` | `run(task, input, userId, recentHistory, intent): Promise<` | `Brain`, `TaskExecutor`, `ClassifiedTask`, `TaskIntent`, `createExecutionState` | Orchestration loop runner |
|
|
55
|
-
| 43 | `OrgStructure.ts` | `OrgStructure` | `()` | `all(): OrgRole[]` | — | OrgStructure component |
|
|
56
|
-
| 44 | `OutcomeSimulator.ts` | `OutcomeSimulator` | `()` | `simulate(input): OutcomeSimulationResult` | `ExecutorKind`, `ExecutionPolicyDecision` | Simulates outcome |
|
|
57
|
-
| 45 | `ParallelOrchestrationLoop.ts` | `ParallelOrchestrationLoop` | `(private brain: Brain, private taskExecutor: TaskExecutor)` | `runResearchBranches(goal, taskId, maxBranches): Promise<ParallelRunResult>` | `Brain`, `TaskExecutor`, `ArbitrationAgent`, `ArbitrationResult`, `ArbitrationScorecard` | ParallelOrchestration loop runner |
|
|
58
|
-
| 46 | `PerformanceScorecard.ts` | `PerformanceScorecard` | `()` | `record(entry)`<br>`getAll(): Record<string, PerformanceAggregate>` | — | Scores/ranks performance |
|
|
59
|
-
| 47 | `EnterpriseAgenticCore.ts` | `PilotStore` | `(private root = process.cwd())` | `create(id, metric, service)`<br>`list()`<br>`report(id)`<br>`complete(id, outcome)` | — | Persistent store for pilot |
|
|
60
|
-
| 48 | `PlannerAgent.ts` | `PlannerAgent` | `(private brain: Brain)` | `plan(input, recentHistory): Promise<PlannerOutput>` | `Brain` | Planner agent (LLM-backed) |
|
|
61
|
-
| 49 | `EnterpriseAgenticCore.ts` | `PluginManifestStore` | `(private root = process.cwd())` | `riskTemplate(risk)`<br>`install(id, capabilities, risk)`<br>`list()`<br>`inspect(id)`<br>`setStatus(id, status)` | — | Persistent store for pluginmanifest |
|
|
62
|
-
| 50 | `PromotionPipeline.ts` | `PromotionPipeline` | `()` | `add(candidate, context)`<br>`getAll(): PromotionCandidate[]`<br>`clear()` | `MemoryNamespacePolicy`, `MemoryPromotionFlow` | Promotion pipeline |
|
|
63
|
-
| 51 | `PromotionReviewGate.ts` | `PromotionReviewGate` | `()` | `approve(candidate): boolean` | `PromotionCandidate` | PromotionReview gate |
|
|
64
|
-
| 52 | `ReleaseGate.ts` | `ReleaseGate` | `()` | `run(releaseId, missionId): Promise<ReleaseChecklist>` | `SystemDoctor`, `TestHarness`, `ReleaseWorkflow`, `ReleaseChecklist`, `OperatingSystem` | Release gate |
|
|
65
|
-
| 53 | `ReleaseWorkflow.ts` | `ReleaseWorkflow` | `()` | `create(releaseId, checks): ReleaseChecklist`<br>`getAll(): ReleaseChecklist[]` | — | Release workflow |
|
|
66
|
-
| 54 | `ReuseEngine.ts` | `ReuseEngine` | `()` | `findHints(goal): ReuseHint[]`<br>`enrichAgents(agents, hints): RegisteredAgent[]` | `RegisteredAgent` | Reuse engine |
|
|
67
|
-
| 55 | `ReviewerAgent.ts` | `ReviewerAgent` | `(private brain: Brain)` | `review(goal, executorOutput, successCriteria): Promise<ReviewFinding>` | `Brain`, `ReviewFinding` | Reviewer agent (LLM-backed) |
|
|
68
|
-
| 56 | `RoleHandoff.ts` | `RoleHandoff` | `()` | `create(input)`<br>`updateStatus(id, status)`<br>`getAll(): HandoffRecord[]` | — | RoleHandoff component |
|
|
69
|
-
| 57 | `RuntimeHealthMonitor.ts` | `RuntimeHealthMonitor` | `(private root: string = process.cwd())` | `isCoolingDown(executor): boolean`<br>`markFailure(executor, reason, cooldownMinutes)`<br>`markHealthy(executor)`<br>`all(): Record<string, RuntimeCooldownState>` | `ExecutorKind` | Monitors runtimehealth |
|
|
70
|
-
| 58 | `RuntimePolicy.ts` | `RuntimePolicy` | `()` | `decide(intent, explicitExecutors): RuntimePolicyDecision`<br>`recordResult(executor, ok, reason)`<br>`status()`<br>`saveSnapshot()` | `ExecutorKind`, `ExecutorHealth`, `RuntimeHealthMonitor` | Policy decisions for runtime |
|
|
71
|
-
| 59 | `RuntimeProbe.ts` | `RuntimeProbe` | `()` | `probeAll(): Promise<RuntimeProbeResult[]>`<br>`probe(executor): Promise<RuntimeProbeResult>` | `ExecutorKind`, `ExecutorHealth`, `ExecutorHealthState` | Probes runtime health |
|
|
72
|
-
| 60 | `RuntimeRegistry.ts` | `RuntimeRegistry` | `(workspaceId = 'default')` | `probe(): RuntimeEntry[]`<br>`list(): RuntimeEntry[]` | — | Asset registry for runtime |
|
|
73
|
-
| 61 | `SandboxPolicy.ts` | `SandboxPolicy` | `()` | `evaluate(executor, riskLevel): SandboxDecision` | `ExecutorKind` | Policy decisions for sandbox |
|
|
74
|
-
| 62 | `SecurityDownloadGuard.ts` | `SecurityDownloadGuard` | `()` | `validateUrl(url): GuardScanResult`<br>`scanFileList(paths): GuardScanResult`<br>`scanExtractedDir(rootDir): GuardScanResult` | — | Guards securitydownload |
|
|
75
|
-
| 63 | `SecurityEventStore.ts` | `SecurityEventStore` | `(private root: string = process.cwd())` | `append(event)`<br>`exists(): boolean`<br>`path(): string` | `GovernanceAuditEvent` | Persistent store for securityevent |
|
|
76
|
-
| 64 | `ServiceCompletionPolicy.ts` | `ServiceCompletionPolicy` | `()` | `enforceCriteria(criteria): string[]`<br>`evaluate(state): ServiceCompletionReport` | `ExecutionState` | Policy decisions for servicecompletion |
|
|
77
|
-
| 65 | `ServiceState.ts` | `ServiceStateStore` | `(private workspaceId = 'default')` | `list(limit): ServiceState[]`<br>`upsertFromMission(state): string \| null`<br>`setStatus(serviceId, status, reason, taskId): ServiceState \| null`<br>`listEvents(serviceId, limit): ServiceEvent[]`<br>`promoteTaskToService(state, serviceId, objective): ServiceState` | `MissionState` | Persistent store for servicestate |
|
|
78
|
-
| 66 | `SkillLearningLoop.ts` | `SkillLearningLoopStore` | `(private workspaceId = 'default')` | `add(sourceTaskId, summary): SkillLearningCandidate` | — | Persistent store for skilllearningloop |
|
|
79
|
-
| 67 | `SkillManager.ts` | `SkillManager` | `(private cloudFile: string = process.env.OPENLIFE_CLOUD_SKILLS_FILE \|\| '.artifacts/cloud-skills.json')` | `create(skill)`<br>`patch(id, content)`<br>`setStatus(id, status)` | — | Manages skill |
|
|
80
|
-
| 68 | `SkillNetwork.ts` | `SkillNetworkRegistry` | `(seed?: SkillNetwork[])` | `list(): SkillNetwork[]`<br>`upsert(network): void`<br>`resolveCapabilities(domain, goal): string[]` | — | Asset registry for skillnetwork |
|
|
81
|
-
| 69 | `SkillRegistryV2.ts` | `SkillRegistryV2` | `(private provider: SkillProvider = new CompositeSkillProvider( new CloudSkillProvider(process.env....)` | `all(): RegisteredSkill[]`<br>`findByCapability(capability): RegisteredSkill[]` | `SkillProvider`, `FileSkillProvider`, `CloudSkillProvider`, `CompositeSkillProvider` | SkillRegistryV2 component |
|
|
82
|
-
| 70 | `SkillScoring.ts` | `SkillScoring` | `()` | `record(skillId, status)`<br>`getAll(): Record<string, SkillScore>` | — | Tracks skill scores |
|
|
83
|
-
| 71 | `SquadAutoCreator.ts` | `SquadAutoCreator` | `(private baseDir: string = process.env.OPENLIFE_CLOUD_ASSETS_DIR \|\| '.artifacts/cloud-assets')` | `create(goal, squadId): SquadAssetBundle` | — | Auto-creates squad |
|
|
84
|
-
| 72 | `SquadRegistry.ts` | `SquadRegistry` | `(private provider: SquadProvider = new CompositeSquadProvider( new CloudSquadProvider(process.env....)` | `all(): RegisteredSquad[]`<br>`findByCapability(capability): RegisteredSquad[]` | `SquadProvider`, `FileSquadProvider`, `CloudSquadProvider`, `CompositeSquadProvider` | Asset registry for squad |
|
|
85
|
-
| 73 | `SquadRouter.ts` | `SquadRouter` | `(private registry: SquadRegistry)` | `route(task, input): SquadRoute` | `ClassifiedTask`, `TaskIntent`, `SquadRegistry`, `RegisteredSquad` | Routes squad requests to handlers |
|
|
86
|
-
| 74 | `SquadScoring.ts` | `SquadScoring` | `()` | `record(squadId, status)`<br>`getAll(): Record<string, SquadScore>` | — | Tracks squad scores |
|
|
87
|
-
| 75 | `SubagentLifecycle.ts` | `SubagentLifecycle` | `(private filePath: string = process.env.OPENLIFE_CLOUD_SUBAGENTS_FILE \|\| '.artifacts/cloud-subagen...)` | `create(name, capabilities): SubagentRecord`<br>`transition(id, state): SubagentRecord \| null` | — | Subagent lifecycle tracker |
|
|
88
|
-
| 76 | `SynthesizerAgent.ts` | `SynthesizerAgent` | `(private brain: Brain)` | `synthesize(state, lastOutput, review): Promise<string>` | `Brain`, `ExecutionState`, `ReviewFinding` | Synthesizer agent (LLM-backed) |
|
|
89
|
-
| 77 | `SystemDoctor.ts` | `SystemDoctor` | `(private root: string = process.cwd())` | `run(): DoctorCheck[]`<br>`runRuntimeChecks(): Promise<DoctorCheck[]>` | `RuntimeProbe` | Diagnoses System health |
|
|
90
|
-
| 78 | `TaskExecutor.ts` | `TaskExecutor` | `()` | `execute(kind, prompt, projectName): Promise<ExecutionResult>`<br>`executeWithCodex(prompt, projectName): Promise<ExecutionResult>`<br>`executeWithGemini(prompt, projectName): Promise<ExecutionResult>`<br>`executeWithClaude(prompt, projectName, cliName): Promise<ExecutionResult>`<br>`maskSensitiveText(text): string` | — | Executes task |
|
|
91
|
-
| 79 | `TeammateBoard.ts` | `TeammateBoardStore` | `(private workspaceId = 'default')` | `upsert(card): void` | — | Persistent store for teammateboard |
|
|
92
|
-
| 80 | `TestHarness.ts` | `TestHarness` | `()` | `runPhase1Checks(): Promise<HarnessResult[]>` | `Brain`, `Gatekeeper`, `VoiceManager`, `ModelManager`, `Gateway` | Test test harness |
|
|
93
|
-
| 81 | `VoiceManager.ts` | `VoiceManager` | `()` | `processAudioInput(fileLink): Promise<string>`<br>`generateSpeech(text, voiceId): Promise<string>`<br>`logMediaRoute(kind, provider, status, detail): void` | `VoiceRouter` | Manages voice |
|
|
94
|
-
| 82 | `VoiceRouter.ts` | `VoiceRouter` | `()` | `getConfig(): VoiceConfig`<br>`getProfile(profileName): VoiceProfile`<br>`getTtsOrder(profileName): string[]`<br>`getSttOrder(profileName): string[]`<br>`getDefaultVoice(profileName): string \| undefined` | — | Routes voice requests to handlers |
|
|
95
|
-
|
|
96
|
-
## `providers/` subdirectory
|
|
97
|
-
|
|
98
|
-
Pluggable asset providers, one class per entity × source. The `Composite*Provider` chains the primary provider over a fallback (typically `File*` over `Cloud*`).
|
|
99
|
-
|
|
100
|
-
| Entity | File provider | Cloud provider | Composite (chains primary → fallback) |
|
|
101
|
-
|--------|---------------|----------------|----------------------------------------|
|
|
102
|
-
| Agent | `FileAgentProvider` | `CloudAgentProvider` | `CompositeAgentProvider` |
|
|
103
|
-
| Skill | `FileSkillProvider` | `CloudSkillProvider` | `CompositeSkillProvider` |
|
|
104
|
-
| Squad | `FileSquadProvider` | `CloudSquadProvider` | `CompositeSquadProvider` |
|
|
105
|
-
|
|
106
|
-
**Common surface (all 9 provider classes):**
|
|
107
|
-
- Constructor varies by class:
|
|
108
|
-
- `File*Provider(roots: string[])` — reads from local `.catalog/` roots
|
|
109
|
-
- `Cloud*Provider(cloudFile: string)` — reads from `OPENLIFE_CLOUD_*_FILE` env var
|
|
110
|
-
- `Composite*Provider(primary, fallback)` — chains two providers
|
|
111
|
-
- Public method: `load(): {Agent|Skill|Squad}Record[]`
|
|
112
|
-
|
|
113
|
-
Type-only files in providers/: `AgentProvider.ts`, `SkillProvider.ts`, `SquadProvider.ts` (interface definitions).
|
|
114
|
-
|
|
115
|
-
## Summary
|
|
116
|
-
|
|
117
|
-
- Total files in `src/orchestrator/`: **79**
|
|
118
|
-
- Total files in `src/orchestrator/providers/`: **12**
|
|
119
|
-
- Classes cataloged in Core Classes table: **82**
|
|
120
|
-
- Classes cataloged in `providers/` table (aggregate row): **9**
|
|
121
|
-
- **Total classes:** **91**
|
|
122
|
-
- Files with multiple classes: `EnterpriseAgenticCore.ts` (6 classes — InstitutionalContextStore, PluginManifestStore, PilotStore, MissionEvaluationStore, LearningLoopStore, EnterpriseDoctor)
|
|
123
|
-
- Type-only / interface files (no `export class`): `ExecutionIntent.ts`, `ExecutionState.ts`, `providers/AgentProvider.ts`, `providers/SkillProvider.ts`, `providers/SquadProvider.ts` (5 total)
|
|
124
|
-
|
|
125
|
-
## Anomalies
|
|
126
|
-
|
|
127
|
-
- **Type-only files** (export only types/interfaces; no class):
|
|
128
|
-
- `ExecutionIntent.ts` — exports `ExecutionIntent` type alias and helpers
|
|
129
|
-
- `ExecutionState.ts` — exports `ExecutionState` type and `createExecutionState` factory function
|
|
130
|
-
- `providers/AgentProvider.ts` — interface `AgentProvider` only
|
|
131
|
-
- `providers/SkillProvider.ts` — interface `SkillProvider` only
|
|
132
|
-
- `providers/SquadProvider.ts` — interface `SquadProvider` only
|
|
133
|
-
- **Classes with no public methods beyond the constructor:** none detected — every class exposes at least one public method.
|
|
134
|
-
- **Naming irregularity:** several stores use `*Store` suffix on the class while the file is named without it (e.g. `JobLifecycle.ts` exports `JobLifecycleStore`, `MissionState.ts` exports `MissionStateStore`, `ServiceState.ts` exports `ServiceStateStore`, `SkillLearningLoop.ts` exports `SkillLearningLoopStore`, `TeammateBoard.ts` exports `TeammateBoardStore`). Also `AgentTeam.ts` exports `AgentTeamRegistry`, `SkillNetwork.ts` exports `SkillNetworkRegistry`. These differ from the file basename so tests should import by class name, not by inferring from filename.
|
|
135
|
-
- **Multi-class file:** `EnterpriseAgenticCore.ts` exports 6 sibling stores under the Enterprise Agentic Core umbrella. Each is independent and should be tested individually.
|
|
136
|
-
- **Truncated constructor signatures** in the table (suffix `...`) indicate default parameter expressions longer than 100 chars (typically `new CompositeXProvider(new CloudXProvider(process.env.OPENLIFE_CLOUD_..._FILE || '...'), new FileXProvider([...]))`). The full default chains the cloud provider over a file provider — see `AgentRegistry.ts`, `SkillRegistryV2.ts`, `SquadRegistry.ts` source for verbatim.
|