@maiaos/cli 0.1.0-canary.44938d4.manual.1

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.
Files changed (75) hide show
  1. package/README.md +382 -0
  2. package/dist/bin/maia.NOTICES.txt +31 -0
  3. package/dist/bin/maia.cdx.json +138 -0
  4. package/dist/bin/maia.mjs +115 -0
  5. package/dist/command-line/arguments.d.ts +21 -0
  6. package/dist/command-line/arguments.js +99 -0
  7. package/dist/command-line/context.d.ts +112 -0
  8. package/dist/command-line/context.js +2 -0
  9. package/dist/command-line/help.d.ts +36 -0
  10. package/dist/command-line/help.js +267 -0
  11. package/dist/command-line/output.d.ts +2111 -0
  12. package/dist/command-line/output.js +643 -0
  13. package/dist/command-line/stdin.d.ts +7 -0
  14. package/dist/command-line/stdin.js +34 -0
  15. package/dist/command-receipt/command.d.ts +3 -0
  16. package/dist/command-receipt/command.js +63 -0
  17. package/dist/command-receipt/compact-list.d.ts +18 -0
  18. package/dist/command-receipt/compact-list.js +18 -0
  19. package/dist/context/client.d.ts +4 -0
  20. package/dist/context/client.js +19 -0
  21. package/dist/context/commands.d.ts +3 -0
  22. package/dist/context/commands.js +13 -0
  23. package/dist/index.d.ts +7 -0
  24. package/dist/index.js +202 -0
  25. package/dist/integration-authorization/client.d.ts +16 -0
  26. package/dist/integration-authorization/client.js +30 -0
  27. package/dist/integration-authorization/commands.d.ts +3 -0
  28. package/dist/integration-authorization/commands.js +92 -0
  29. package/dist/local-node/client.d.ts +31 -0
  30. package/dist/local-node/client.js +99 -0
  31. package/dist/orchestration/client.d.ts +59 -0
  32. package/dist/orchestration/client.js +66 -0
  33. package/dist/orchestration/commands.d.ts +3 -0
  34. package/dist/orchestration/commands.js +336 -0
  35. package/dist/orchestration/compact-aggregate.d.ts +123 -0
  36. package/dist/orchestration/compact-aggregate.js +110 -0
  37. package/dist/orchestration/compact-run-list.d.ts +19 -0
  38. package/dist/orchestration/compact-run-list.js +16 -0
  39. package/dist/project-workspace/client.d.ts +43 -0
  40. package/dist/project-workspace/client.js +54 -0
  41. package/dist/project-workspace/commands.d.ts +5 -0
  42. package/dist/project-workspace/commands.js +239 -0
  43. package/dist/runtime/client.d.ts +6 -0
  44. package/dist/runtime/client.js +10 -0
  45. package/dist/runtime/command.d.ts +3 -0
  46. package/dist/runtime/command.js +20 -0
  47. package/dist/session/client.d.ts +32 -0
  48. package/dist/session/client.js +30 -0
  49. package/dist/session/commands.d.ts +3 -0
  50. package/dist/session/commands.js +160 -0
  51. package/dist/status/client.d.ts +5 -0
  52. package/dist/status/client.js +15 -0
  53. package/dist/status/command.d.ts +3 -0
  54. package/dist/status/command.js +17 -0
  55. package/dist/status/compact.d.ts +31 -0
  56. package/dist/status/compact.js +46 -0
  57. package/dist/terminal/arguments.d.ts +12 -0
  58. package/dist/terminal/arguments.js +79 -0
  59. package/dist/terminal/client.d.ts +45 -0
  60. package/dist/terminal/client.js +48 -0
  61. package/dist/terminal/commands.d.ts +3 -0
  62. package/dist/terminal/commands.js +151 -0
  63. package/dist/terminal/compact-list.d.ts +148 -0
  64. package/dist/terminal/compact-list.js +152 -0
  65. package/dist/terminal/control-commands.d.ts +7 -0
  66. package/dist/terminal/control-commands.js +211 -0
  67. package/dist/turn/client.d.ts +17 -0
  68. package/dist/turn/client.js +23 -0
  69. package/dist/turn/commands.d.ts +3 -0
  70. package/dist/turn/commands.js +126 -0
  71. package/dist/turn/prompt.d.ts +2 -0
  72. package/dist/turn/prompt.js +9 -0
  73. package/guidance/maia-cli/SKILL.md +75 -0
  74. package/guidance/maia-orchestration/SKILL.md +54 -0
  75. package/package.json +50 -0
package/README.md ADDED
@@ -0,0 +1,382 @@
1
+ # `@maiaos/cli`
2
+
3
+ > **Publication status:** Source-implemented candidate, canary-only. npm
4
+ > canaries use the
5
+ > `canary` dist-tag for installation evidence and remain
6
+ > `releaseQualified: false`. No stable version or `latest` dist-tag is
7
+ > released.
8
+
9
+ JSON-first package for the `maia` executable.
10
+
11
+ The source manifest is prepared for npm packing with exact pnpm 11.20.0, built
12
+ output, offline guidance, and no install lifecycle script. The built executable
13
+ embeds the manifest's exact Node version and exits before command handling when
14
+ the runtime is not Node 24.19.0. The source manifest remains `0.0.0`; release
15
+ tooling prepares an exact canary version only in an isolated pack copy.
16
+ Homebrew is a later channel for the same CLI contract, not a second
17
+ implementation.
18
+
19
+ This is the first complete client and the qualification boundary for every
20
+ planned Build, Teammates, Rooms, Routines, Skill Studio, Activity, and Advanced
21
+ Runtime Extensions slice. Those domains must work headlessly through node,
22
+ protocol, SDK, and this CLI before Desktop or mobile depend on them. The
23
+ planned exact-version `maia-cli` and `maia-orchestration` Skill bundles and
24
+ their recommendation/install/sync commands are not implemented or present in
25
+ the source registry.
26
+
27
+ Offline `guidance/maia-cli/SKILL.md` and
28
+ `guidance/maia-orchestration/SKILL.md` copies ship in the npm pack for
29
+ offline inspection of the installed package. They are digest-locked
30
+ markdown guidance, not installed Skills, and they request no capabilities.
31
+ Recommendation, install, and sync remain planned; there is no `skill` or
32
+ `guidance` command family.
33
+
34
+ Callable foundation commands in the source registry:
35
+
36
+ - `maia help` / `maia --help` — human text lists the 60 current usage
37
+ rows. `maia help --json` is the classified command index (no usage dump,
38
+ `registryDigest`, per-family implemented/candidate counts, budget 2,048 B).
39
+ `maia help <family> --json` is the allowlisted family page. Availability is
40
+ only `implemented` or `source_implemented_candidate`. Help `implemented` is
41
+ the classified index label, not the AGENTS release-gated Implemented
42
+ vocabulary and not product enablement. This is not an Orca
43
+ help/`agent-context` pair and does not claim a byte/token win.
44
+ - `maia status`
45
+ - `maia version` / `maia --version`
46
+ - `maia project add <repository>`
47
+ - `maia project list`
48
+ - `maia project show <project-id>`
49
+ - `maia workspace list --project <project-id>`
50
+ - `maia workspace show <workspace-id>`
51
+ - `maia workspace repo add <workspace-id> <repository> --expected-revision <revision>`
52
+ - `maia receipt show <command-id>`
53
+ - `maia receipt list [--limit <1..32>] [--after] [--actor] [--method] [--since] [--until]`
54
+ - `maia runtime probe codex`
55
+
56
+ The source also exposes the release-disabled neutral execution-selection
57
+ candidate:
58
+
59
+ - `maia execution catalog`
60
+ - `maia workspace execution show <workspace-id>`
61
+ - `maia workspace execution set <workspace-id> (--profile <profile-id> | --policy <policy-id>) --expected-revision <revision>`
62
+ - `maia workspace execution clear <workspace-id> --expected-revision <revision>`
63
+
64
+ Set and clear map to the single receipt-backed
65
+ `workspace.execution.configure` protocol mutation. The exact built-in catalog
66
+ contains one `trusted_host` local provider, one local profile, and one default
67
+ policy. Resolution remains explicitly `unavailable` with reason
68
+ `local_provider_unbound`; these commands do not bind a provider, create or
69
+ launch an execution instance, start a process, or grant local or remote
70
+ execution authority.
71
+
72
+ The source also exposes `maia runtime list` as a blocked, release-disabled
73
+ candidate for the closed installed-harness inventory. `@maiaos/sdk`
74
+ `listInstalledHarnesses` returns the full protocol catalog. The CLI `--json`
75
+ projection is the compact `runtime.list` item list (`harnessId`, `status`,
76
+ and `reason` when present): 337 UTF-8 bytes
77
+ (`ceil(337/4) = 85` token estimate) for the mixed four-item page, under the
78
+ 2,048-byte list-summary budget. Installed Orca `1.4.182` has no equivalent
79
+ installed-harness command; this slice does not claim a byte/token win against
80
+ `account list` or `agent-context`. Omitted protocol fields are schema-v1
81
+ invariants (`displayName` from `harnessId`, `method` `harness.installed.list`,
82
+ `schemaVersion` 1, `selected`/`authorized` false, `detected` from `status`).
83
+ Human output stays one terse TSV row per item. The command does not launch,
84
+ select, authorize, or version-probe a harness.
85
+
86
+ The source also exposes the macOS-only, release-disabled Codex integration
87
+ authorization family:
88
+
89
+ - `maia integration plan codex`
90
+ - `maia integration apply <plan-id> [--command-id <id>]`
91
+ - `maia integration status codex`
92
+ - `maia integration remove codex [--command-id <id>]`
93
+
94
+ All four commands use the authenticated local node through `@maiaos/sdk`.
95
+ Callers cannot provide an executable path, digest, owner allowlist, adapter, or
96
+ policy revision. Plan resolves only the closed catalog from startup-captured
97
+ `PATH` and launches nothing; apply revalidates the unchanged five-minute plan;
98
+ status returns exactly one bounded item; remove persists the fence before
99
+ manager-owned cleanup and returns exit 76 with a lossless `cleanup_unknown`
100
+ result when cleanup cannot be proved. The exact built CLI/SDK/authenticated-node
101
+ path is source-qualified at revision
102
+ `80631fb5c9adeb38ab58b12a7db80647161d5871`, including replay, restart, expiry,
103
+ hostile replacement, active-tree removal, bounded output, and
104
+ `cleanup_unknown` recovery. The source candidate does not enable Codex
105
+ Sessions/Turns and is not release-qualified.
106
+
107
+ The source also exposes the release-disabled Pi RPC authorization, probe, and
108
+ conversation-only grammar:
109
+
110
+ - `maia integration plan pi-rpc`
111
+ - `maia integration apply <plan-id> --integration pi-rpc [--command-id <id>]`
112
+ - `maia integration status pi-rpc`
113
+ - `maia integration remove pi-rpc`
114
+ - `maia runtime probe pi-rpc`
115
+
116
+ These commands are callable source candidates, not release-enabled product
117
+ behavior or evidence that Pi is installed or available. Their separate
118
+ schema-v14 authorization projects the exact owner set `pi-rpc-probe`,
119
+ `pi-rpc-session`. The probe performs `set_auto_retry`,
120
+ `set_auto_compaction`, and `get_state`, with both automatic-work flags required
121
+ false. Apply requires the explicit integration selector so an arbitrary plan
122
+ identifier cannot choose authority implicitly; omitting it preserves the
123
+ existing Codex apply grammar.
124
+
125
+ - `maia session create <workspace-id> --runtime <codex|pi> [--profile <codex|pi-rpc>]`
126
+ - `maia session list --project <project-id>`
127
+ - `maia session show <session-id>`
128
+ - `maia session events <session-id>`
129
+
130
+ The session ledger commands above are source-callable foundations. The source
131
+ also exports `maia session start <session-id> --expected-revision <revision>`.
132
+ For runtime `pi` and profile `pi-rpc`, it routes to the exact active Pi
133
+ authorization, workspace-attributed process owner, and one private Pi 0.84.2
134
+ v3 Session file. Codex activation remains blocked outside its exact internal
135
+ test authority. Neither classification nor presence in `maia help --json`
136
+ qualifies this source candidate.
137
+
138
+ The source now routes `turn send`, `turn show`, and `turn interrupt` through
139
+ the ordinary CLI/SDK family. Pi send/interrupt require the exact active
140
+ conversation authorization; Pi history remains showable after authorization
141
+ loss. Ordinary Codex Turn content remains denied without its internal source
142
+ authority. The Pi candidate accepts at most one active prompt per Session,
143
+ persists assistant-only completion, and supports bounded interrupt, but the
144
+ clean runtime environment has no credential/provider binding. No real model
145
+ turn, tool, approval, attachment, repository mutation, or release enablement is
146
+ claimed.
147
+ H2 and its current G2 record are source-qualified only for revision
148
+ `e7f784b4aa567d19311235d729b047f96c9dfc7c` and its exact bound artifact;
149
+ prior records remain sealed for their own identities. Ordinary Darwin-arm64
150
+ composition verifies the embedded sibling helper but rejects every process
151
+ consumer before native preparation. The exact manager migrations,
152
+ current-source real-Codex lifecycle, and bounded coding-task proofs now pass
153
+ only for their named revisions. The CLI session/turn consumers remain blocked
154
+ and release-disabled. A1 installs `maia` and `maia-node` from exact npm
155
+ tarballs; package closure, integrity/provenance, carried-helper identity, clean
156
+ installation, and an explicit release decision remain. Homebrew is a later CLI
157
+ channel. The retained macOS F1/H2 manifest remains historical exact-artifact
158
+ evidence; its app/DMG deficits belong to later Desktop/native qualification.
159
+
160
+ The source also exposes the local-v1 orchestration candidate:
161
+
162
+ - `maia run create <workspace-id> <terminal-id> --graph-stdin`
163
+ - `maia run list --workspace <workspace-id>`
164
+ - `maia run show <run-id>`
165
+ - `maia run task list <run-id>`
166
+ - `maia run task show <run-id> <task-id>`
167
+ - `maia run dispatch show <run-id>`
168
+ - `maia run inbox check <run-id>` / `maia run inbox ack <run-id>`
169
+ - `maia run question open <run-id> <dispatch-id> --body-stdin`
170
+ - `maia run question reply <run-id> <dispatch-id> <question-id> --answer-stdin`
171
+ - `maia run question cancel <run-id> <dispatch-id> <question-id>`
172
+ - `maia run dispatch settle-terminal <run-id> <dispatch-id>`
173
+
174
+ The CLI is only a compact SDK client. Task graphs, Question bodies, and reply
175
+ answers use bounded fatal-UTF-8 stdin readers that advance one chunk on demand;
176
+ the bounded Question subject remains an explicit `--subject` argv value. Check
177
+ is non-blocking, acknowledgement is one Delivery at a time with compact
178
+ CLI stdout rather than a protocol dump, and no command
179
+ starts a Worker, model turn, PTY, planner, waiter, execution instance, provider,
180
+ automation, or remote authority. This family is source-implemented and
181
+ built-boundary tested, but it remains blocked and release-disabled.
182
+
183
+ `maia context show --json` is a source-implemented, release-disabled Client
184
+ principal candidate. It calls the transport-neutral SDK `showCurrentContext`
185
+ query and prints a compact, deterministic projection of the authenticated
186
+ local Client, `actor_local_user`, allowed actions, and context revision. It
187
+ omits `nodeId` until ADR-014 NodeBootstrap allocates an authoritative value.
188
+ It does not accept an identity override, read cwd/Git/project files
189
+ as authority, expose an attachment, or let `--session-id` turn a selector into
190
+ caller identity. Session/Run/Dispatch principals remain absent. Explicit
191
+ `run inbox check` prints a compact CLI/human projection of the lossless SDK
192
+ result. Inbox `--scope current` waits for a mailbox-owning principal.
193
+ `run create`, `run show`, `run question open|reply|cancel`, and
194
+ `run dispatch settle-terminal` share one compact aggregate CLI/human
195
+ projection; `@maiaos/sdk` remains lossless over the full protocol
196
+ aggregate.
197
+
198
+ `maia receipt list` is a bounded newest-first identity index. Default page
199
+ size is 8 and the maximum is 32. Compact `--json` is
200
+ `{ command, count, items, nextCursor? }` with no `result`, digest, or path
201
+ (measured wrapped UTF-8: empty 69, one item object 195, default 8 + cursor
202
+ 1,662, max 32 6,341). Human TSV is
203
+ `receipt.list\t<count>\t<cursor|->` then identity rows. Classified
204
+ `maia help receipt --json` marks both `receipt list` and `receipt show`
205
+ `implemented`; the public v1 line remains a source-implemented candidate and
206
+ is not release-qualified. `receipt show` stays keyed recovery after a known
207
+ command ID.
208
+
209
+ The terminal commands are a blocked, release-disabled, source-implemented
210
+ macOS live-terminal candidate, not release-qualified product behavior.
211
+ Installed help identifies this status directly; callable source is not evidence
212
+ of release enablement or qualification.
213
+ CLI `--json` now projects compact terminal list/show/events/read envelopes;
214
+ `@maiaos/sdk` and `@maiaos/protocol` stay lossless. Measured compact bytes
215
+ and the `winClaim: false` near-miss posture are owned by
216
+ [token-efficiency budgets](../README.md#cli-node-implementation-plan--token-efficiency-budgets).
217
+ Interactive creation selects only the node-owned fixed login-shell profile;
218
+ callers supply no executable, argv, environment, or cwd. The exact 13-command
219
+ active public surface is create/list/show/events/read, controller
220
+ request/show/acquire/release, input write, resize/signal/close. Observer
221
+ attach/check/detach/resync, controller renew, restart, delete, and reconcile
222
+ are unavailable or inert. The compatibility tier is cooperative local-user
223
+ execution, not hard containment, and it grants no runtime, model, worker,
224
+ plugin, or remote authority.
225
+
226
+ Add `--json` for a stable JSON success or error object. Successful output is
227
+ written to stdout; errors are written to stderr and exit with status 64 for
228
+ invalid or unimplemented input, 66 for a missing requested record, 69 for an
229
+ unavailable node, 74 for a request deadline, 75 for another retryable operation
230
+ failure, 76 when the mutation outcome is unknown, 77 for denied authority, and
231
+ 70 for other software/data-integrity failures. Unknown codes fail to 70 rather
232
+ than being misclassified as usage errors. Unexpected CLI implementation
233
+ failures are redacted, non-retryable `internal_error` results at 70; they are
234
+ never mislabeled as node unavailability.
235
+ `maia status` also renders the authenticated process-resource pressure,
236
+ admission headroom, active/fenced/cleanup-unknown and watcher counts,
237
+ capability truth, and one bounded next step. Human output remains the operator
238
+ hatch for per-metric trees; `--json` is the compact agent projection and
239
+ `@maiaos/sdk` `readStatus` stays lossless. macOS
240
+ output says hard limits are unavailable and observed-pressure termination is
241
+ disabled. It may direct the local user to
242
+ close a terminal or inspect cleanup uncertainty, but it never claims or invokes
243
+ automatic PID/PGID cleanup.
244
+ `runtime probe codex` and the release-disabled `runtime probe pi-rpc`
245
+ candidate always write their typed compatibility result to stdout; `ready`
246
+ exits 0, `unavailable` exits 69, and `incompatible` exits 70 so shell
247
+ automation cannot mistake inspection data for runtime readiness. A Pi result
248
+ remains explicitly request-scoped, no-model, and `releaseQualified: false`.
249
+
250
+ Mutations generate their command ID before transport dispatch. If the
251
+ connection fails after the node may have committed, JSON errors include a
252
+ bounded `recovery.commandId`; human output prints the exact
253
+ `maia receipt show <command-id>` recovery command. Reuse that ID to inspect or
254
+ idempotently replay the operation instead of starting a new mutation.
255
+ Unattended automations and LLM callers should generate and durably retain an
256
+ explicit `--command-id` before invoking a mutation. The CLI-generated ID is a
257
+ human-convenience fallback that survives an ambiguous response while the CLI
258
+ process remains alive; a hard process kill before output can still lose that
259
+ locally generated identifier. Recover it with `maia receipt list` when the
260
+ command ID is unknown, then `maia receipt show <command-id>` for the keyed
261
+ result.
262
+ The parser rejects more than 32 arguments, tokens above 4 KiB, or commands
263
+ above 16 KiB before loading operational modules; orchestration graph content
264
+ uses the independently bounded stdin path rather than that argv ceiling.
265
+ Hostile values are never echoed into diagnostics. List operations default to
266
+ two records except `receipt list`, which defaults to 8 and accepts at most 32. Registry
267
+ pages accept an explicit maximum of 100; session and terminal event pages
268
+ accept at most 32 records, terminal reads accept at most eight chunks, and node
269
+ event pages are also bounded by encoded bytes.
270
+
271
+ Node-facing commands lazily load the Node SDK adapter, securely resolve the
272
+ current profile's private descriptor, authenticate over local IPC, and verify
273
+ the live process identity. They do not start or stop a node. Project
274
+ registration records one canonical Git repository and a `local-main`
275
+ workspace; repository attachment is explicit and optimistic-revision guarded.
276
+ The node retains local paths while public JSON uses opaque location IDs. The
277
+ session ledger commands create and inspect a durable node-owned record. The
278
+ blocked `session start` candidate commits its receipt and activation intent
279
+ before the node launches Codex; its asynchronous result is observed through
280
+ `session show` and `session events` when exercising candidate source.
281
+ Git-worktree creation/removal, structured Session attachments, approvals,
282
+ steering, release-qualified interruption, diffs, automation, remote terminal
283
+ operation, and network command families remain unimplemented. Client node registration,
284
+ `--node` selection, create/pair/use/forget flows, and every bootstrap provider
285
+ also remain planned only; the current profile resolver is not a multi-company
286
+ authority switcher. The candidate Turn family is
287
+ omitted from ordinary help and fails closed at both CLI and node boundaries.
288
+ Terminal candidates may appear in alpha help but must not be presented as
289
+ release-qualified or release-enabled.
290
+
291
+ ADR-015 accepts two later CLI families: registry-backed `maia api
292
+ list/show/invoke` and Session-bound `maia notebook` lifecycle, execute,
293
+ variable, checkpoint, branch, handoff, and close commands. None is present in
294
+ the source registry or installed help. `maia api` will project the exact built
295
+ Public operation catalog generated by `@maiaos/protocol` through `@maiaos/sdk`; it
296
+ will exclude CLI presentation, NodeBootstrap, roadmap-only, database, Worker-
297
+ administration, provider-internal, and private service behavior. Generic
298
+ invocation must preserve the named operation's validation, Capability,
299
+ Approval, revision, idempotency, Receipt, cancellation, and availability
300
+ semantics.
301
+
302
+ The first Notebook slice stores one active Notebook per Session and returns an
303
+ explicit containment-unavailable result for execution. The CLI never evaluates
304
+ TypeScript, owns Notebook state, or supervises its Runtime process. Execution
305
+ remains blocked until A6/W3 hard containment and the canonical recovery,
306
+ security, limit, cross-Harness, and product-value gates pass. See the
307
+ [accepted Notebook contract](../../services/README.md#execution--portable-notebooks)
308
+ and [M3.25/M6 roadmap split](../README.md#cli-roadmap--m325-public-operation-catalog-and-notebook-records).
309
+
310
+ Every future node-facing command must follow this dependency chain:
311
+
312
+ ```text
313
+ @maiaos/cli ──► @maiaos/sdk ── authenticated local IPC ──► maia-node
314
+ ╲ ╱
315
+ ╲══► @maiaos/protocol ◄═══════════╱
316
+ ```
317
+
318
+ The CLI owns argument parsing, terminal interaction, and human/JSON/NDJSON
319
+ presentation. `@maiaos/sdk` owns commands, queries, subscriptions, validation,
320
+ cancellation, cursors, and local or remote transport adapters. The CLI must not
321
+ open node IPC directly, read node storage, supervise an agent runtime, or
322
+ silently compete with the desktop lifecycle owner.
323
+
324
+ The source keeps operational modules behind dynamic boundaries, and the build
325
+ tree-shakes and minifies the complete entry into one standalone executable.
326
+ The sealed macOS F1 CLI artifact is 152,823 bytes with SHA-256
327
+ `51ecc0d535314978550b5e0bd7169e28ae999353ff98cf509944dee1ea12c367`;
328
+ 33 CLI tests passed and the full repository `pnpm check` was green. This exact
329
+ snapshot measured built CLI status at 66.62 ms p95 in its local artifact-bound
330
+ startup run. The earlier 2026-08-10 Apple M4 Pro/repository-pinned Node 24.19.0
331
+ session-activation, runtime-probe, and
332
+ standalone-minification artifact is 143,119 bytes and measured 62.86 ms p95 across 30 real
333
+ `maia status --json` processes and emitted exactly 324 bytes per response.
334
+ That retained output-size evidence predates the process-resource health fields
335
+ and does not qualify the current source-candidate response size.
336
+ Help/version remain dependency-light; their latest
337
+ dedicated 30-process measurements predate this session-activation artifact and are not
338
+ attributed to it. The bundle has a linked external source map, metafile,
339
+ exact-input notices, and a CycloneDX SBOM tied to its SHA-256 digest. A copied
340
+ artifact test proves version output without package metadata or dependencies.
341
+ The earlier unavailable-terminal pack-layout and production-deploy observations are recorded in the
342
+ [benchmark ledger](../../services/README.md#benchmarks--historical-durable-unavailable-terminal-footprint-decision);
343
+ the local-v1 orchestration artifact and latency observation is recorded in the
344
+ [same ledger](../../services/README.md#benchmarks--local-v1-orchestration-candidate). The
345
+ equivalent-feature comparison remains a later gate.
346
+
347
+ The sealed live-terminal standalone predecessor is 217,323 bytes with SHA-256
348
+ `7f74874f5d87622588cf5538847e36cfbe43da17b37bea7a1e2c9efeaaa5eb`,
349
+ 4.986449% above its then-strict 207,001-byte reference. The coordinator later
350
+ approved one new one-time standalone comparison identity: 248,047 bytes with
351
+ SHA-256
352
+ `905b3a533cd504d9af54c20a31a51d301aad6c4f182cd13899f89442eee23ed7`.
353
+ The hard ceiling remains 262,144 bytes; this identity does not raise that
354
+ limit, is not a blanket waiver, and does not qualify the terminal product, F1,
355
+ or a release. The live-terminal package-layout predecessor remains 250,058
356
+ packed bytes, 1,168,775 unpacked bytes, and 106 entries. After omitting
357
+ declaration maps, unpublished-`src/` library JavaScript maps, and the unused
358
+ bin declaration emit, the published CLI pack comparison identity is 1,043,804
359
+ unpacked bytes and 71 entries; the exact packed archive bytes are owned by the
360
+ benchmark ledger so this tarball README cannot oscillate against its own
361
+ archive size. The collapsed SDK comparison identity is 17,997 packed bytes,
362
+ 85,879 unpacked bytes, and 8 entries. Direct dependencies remain two, bundled dependencies remain zero, and
363
+ the standalone SBOM remains four components and five dependency nodes. Local
364
+ `dist` still keeps the linked standalone `dist/bin/maia.mjs.map`, compact
365
+ esbuild metafile, notices, and digest-bound SBOM. Future growth compares
366
+ against the collapsed identities and the 248,047-byte standalone identity
367
+ under the unchanged 262,144-byte ceiling. See the
368
+ [owning decision](../../services/README.md#benchmarks--sdkcli-collapsed-pack-and-standalone-comparison-identity-approved)
369
+ and the
370
+ [live-terminal predecessor](../../services/README.md#benchmarks--live-terminal-sdkcli-package-footprint-baseline-decision-approved).
371
+
372
+ A future explicit foreground `maia` device-capability host may answer approved
373
+ node invocations while the process remains running. That planned role uses a
374
+ separate host identity and grant and never turns ordinary CLI commands into
375
+ ambient desktop authority. No such CLI surface exists today; see
376
+ [Device capabilities](../../services/README.md#device-capabilities).
377
+
378
+ See the [Maia CLI roadmap](../README.md#cli-roadmap),
379
+ [canonical roadmap](../../ROADMAP.md), and
380
+ [ADE parity ledger](../README.md#ade-parity) for the planned project,
381
+ workspace, terminal, runtime, session, orchestration, Public operation catalog,
382
+ Notebook, automation, and headless contracts.
@@ -0,0 +1,31 @@
1
+ Maia CLI third-party notices
2
+
3
+ Generated from the exact esbuild input graph. Do not edit by hand.
4
+
5
+ ================================================================================
6
+ effect 4.0.0-beta.106
7
+ Declared license: MIT
8
+ Bundled source: node_modules/.pnpm/effect@4.0.0-beta.106/node_modules/effect
9
+
10
+ --- LICENSE ---
11
+ MIT License
12
+
13
+ Copyright (c) 2023 Effectful Technologies Inc
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ of this software and associated documentation files (the "Software"), to deal
17
+ in the Software without restriction, including without limitation the rights
18
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ copies of the Software, and to permit persons to whom the Software is
20
+ furnished to do so, subject to the following conditions:
21
+
22
+ The above copyright notice and this permission notice shall be included in all
23
+ copies or substantial portions of the Software.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
+ SOFTWARE.
@@ -0,0 +1,138 @@
1
+ {
2
+ "$schema": "https://cyclonedx.org/schema/bom-1.6.schema.json",
3
+ "bomFormat": "CycloneDX",
4
+ "components": [
5
+ {
6
+ "bom-ref": "@maiaos/local-ipc@0.1.0-canary.44938d4.manual.1",
7
+ "name": "@maiaos/local-ipc",
8
+ "properties": [
9
+ {
10
+ "name": "maia:source-kind",
11
+ "value": "workspace"
12
+ },
13
+ {
14
+ "name": "maia:source-path",
15
+ "value": "packages/local-ipc"
16
+ }
17
+ ],
18
+ "purl": "pkg:npm/%40maiaos/local-ipc@0.1.0-canary.44938d4.manual.1",
19
+ "scope": "required",
20
+ "type": "library",
21
+ "version": "0.1.0-canary.44938d4.manual.1"
22
+ },
23
+ {
24
+ "bom-ref": "@maiaos/protocol@0.1.0-canary.44938d4.manual.1",
25
+ "name": "@maiaos/protocol",
26
+ "properties": [
27
+ {
28
+ "name": "maia:source-kind",
29
+ "value": "workspace"
30
+ },
31
+ {
32
+ "name": "maia:source-path",
33
+ "value": "packages/protocol"
34
+ }
35
+ ],
36
+ "purl": "pkg:npm/%40maiaos/protocol@0.1.0-canary.44938d4.manual.1",
37
+ "scope": "required",
38
+ "type": "library",
39
+ "version": "0.1.0-canary.44938d4.manual.1"
40
+ },
41
+ {
42
+ "bom-ref": "@maiaos/sdk@0.1.0-canary.44938d4.manual.1",
43
+ "name": "@maiaos/sdk",
44
+ "properties": [
45
+ {
46
+ "name": "maia:source-kind",
47
+ "value": "workspace"
48
+ },
49
+ {
50
+ "name": "maia:source-path",
51
+ "value": "packages/sdk"
52
+ }
53
+ ],
54
+ "purl": "pkg:npm/%40maiaos/sdk@0.1.0-canary.44938d4.manual.1",
55
+ "scope": "required",
56
+ "type": "library",
57
+ "version": "0.1.0-canary.44938d4.manual.1"
58
+ },
59
+ {
60
+ "bom-ref": "effect@4.0.0-beta.106",
61
+ "licenses": [
62
+ {
63
+ "license": {
64
+ "name": "MIT"
65
+ }
66
+ }
67
+ ],
68
+ "name": "effect",
69
+ "properties": [
70
+ {
71
+ "name": "maia:source-kind",
72
+ "value": "third-party"
73
+ },
74
+ {
75
+ "name": "maia:source-path",
76
+ "value": "node_modules/.pnpm/effect@4.0.0-beta.106/node_modules/effect"
77
+ }
78
+ ],
79
+ "purl": "pkg:npm/effect@4.0.0-beta.106",
80
+ "scope": "required",
81
+ "type": "library",
82
+ "version": "4.0.0-beta.106"
83
+ }
84
+ ],
85
+ "dependencies": [
86
+ {
87
+ "dependsOn": [
88
+ "@maiaos/local-ipc@0.1.0-canary.44938d4.manual.1",
89
+ "@maiaos/protocol@0.1.0-canary.44938d4.manual.1",
90
+ "@maiaos/sdk@0.1.0-canary.44938d4.manual.1",
91
+ "effect@4.0.0-beta.106"
92
+ ],
93
+ "ref": "@maiaos/cli@0.1.0-canary.44938d4.manual.1"
94
+ },
95
+ {
96
+ "dependsOn": [],
97
+ "ref": "@maiaos/local-ipc@0.1.0-canary.44938d4.manual.1"
98
+ },
99
+ {
100
+ "dependsOn": [],
101
+ "ref": "@maiaos/protocol@0.1.0-canary.44938d4.manual.1"
102
+ },
103
+ {
104
+ "dependsOn": [],
105
+ "ref": "@maiaos/sdk@0.1.0-canary.44938d4.manual.1"
106
+ },
107
+ {
108
+ "dependsOn": [],
109
+ "ref": "effect@4.0.0-beta.106"
110
+ }
111
+ ],
112
+ "metadata": {
113
+ "component": {
114
+ "bom-ref": "@maiaos/cli@0.1.0-canary.44938d4.manual.1",
115
+ "hashes": [
116
+ {
117
+ "alg": "SHA-256",
118
+ "content": "79cea5139557653509c7100ff027d9169503d707cefb367f66bbf5382f3de671"
119
+ }
120
+ ],
121
+ "name": "@maiaos/cli",
122
+ "type": "application",
123
+ "version": "0.1.0-canary.44938d4.manual.1"
124
+ },
125
+ "properties": [
126
+ {
127
+ "name": "maia:artifact",
128
+ "value": "dist/bin/maia.mjs"
129
+ },
130
+ {
131
+ "name": "maia:generator",
132
+ "value": "apps/cli/scripts/build-executable.mjs"
133
+ }
134
+ ]
135
+ },
136
+ "specVersion": "1.6",
137
+ "version": 1
138
+ }