open-multi-agent-kit 0.78.0 → 0.78.2

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 (132) hide show
  1. package/CHANGELOG.md +56 -15
  2. package/MATURITY.md +6 -2
  3. package/README.md +125 -26
  4. package/ROADMAP.md +36 -28
  5. package/dist/cli/register-basic-commands.js +3 -2
  6. package/dist/cli/register-mcp-dag-cron-screenshot-commands.js +2 -0
  7. package/dist/cli/register-spec-agent-goal-commands.js +45 -0
  8. package/dist/cli/register-tool-commands.js +11 -0
  9. package/dist/cli/register-workflow-commands.js +1 -0
  10. package/dist/cli/registry/tooling.js +3 -2
  11. package/dist/cli/release-promotion-gate.d.ts +14 -0
  12. package/dist/cli/release-promotion-gate.js +71 -0
  13. package/dist/cli/v2/release-commands.d.ts +29 -0
  14. package/dist/cli/v2/release-commands.js +95 -0
  15. package/dist/commands/chat/core.js +5 -0
  16. package/dist/commands/chat/native-root-loop.js +74 -1
  17. package/dist/commands/chat/slash/commands/session.js +19 -1
  18. package/dist/commands/dag-from-spec.d.ts +1 -0
  19. package/dist/commands/dag-from-spec.js +61 -1
  20. package/dist/commands/goal-interview.d.ts +18 -0
  21. package/dist/commands/goal-interview.js +396 -0
  22. package/dist/commands/graph.d.ts +62 -0
  23. package/dist/commands/graph.js +182 -0
  24. package/dist/commands/merge.d.ts +1 -0
  25. package/dist/commands/merge.js +88 -0
  26. package/dist/commands/parallel/core.js +3 -3
  27. package/dist/commands/provider.js +5 -3
  28. package/dist/commands/star.js +6 -1
  29. package/dist/commands/summary.d.ts +4 -1
  30. package/dist/commands/summary.js +103 -1
  31. package/dist/commands/team.d.ts +1 -0
  32. package/dist/commands/team.js +38 -0
  33. package/dist/contracts/interview.d.ts +106 -0
  34. package/dist/contracts/interview.js +9 -0
  35. package/dist/contracts/provider-health.d.ts +42 -0
  36. package/dist/contracts/provider-health.js +9 -0
  37. package/dist/evidence/index.d.ts +4 -0
  38. package/dist/evidence/index.js +2 -0
  39. package/dist/evidence/proof-trust-cli.d.ts +8 -0
  40. package/dist/evidence/proof-trust-cli.js +27 -0
  41. package/dist/evidence/proof-trust.d.ts +14 -0
  42. package/dist/evidence/proof-trust.js +381 -0
  43. package/dist/evidence/regression-proof-matrix.d.ts +42 -0
  44. package/dist/evidence/regression-proof-matrix.js +72 -0
  45. package/dist/goal/intent-frame.d.ts +30 -0
  46. package/dist/goal/intent-frame.js +39 -9
  47. package/dist/goal/interview-assimilation.d.ts +13 -0
  48. package/dist/goal/interview-assimilation.js +383 -0
  49. package/dist/goal/interview-question-bank.d.ts +11 -0
  50. package/dist/goal/interview-question-bank.js +225 -0
  51. package/dist/goal/interview-scoring.d.ts +31 -0
  52. package/dist/goal/interview-scoring.js +187 -0
  53. package/dist/goal/interview-session.d.ts +25 -0
  54. package/dist/goal/interview-session.js +116 -0
  55. package/dist/input/input-envelope.d.ts +22 -0
  56. package/dist/input/input-envelope.js +1 -0
  57. package/dist/memory/local-graph-memory-store.d.ts +15 -0
  58. package/dist/memory/local-graph-memory-store.js +176 -0
  59. package/dist/memory/memory-store.d.ts +18 -0
  60. package/dist/memory/memory-store.js +18 -0
  61. package/dist/orchestration/adaptorch-topology.d.ts +59 -0
  62. package/dist/orchestration/adaptorch-topology.js +194 -0
  63. package/dist/orchestration/capability-routing.d.ts +23 -0
  64. package/dist/orchestration/capability-routing.js +56 -0
  65. package/dist/orchestration/dag-compiler-types.d.ts +3 -0
  66. package/dist/orchestration/dag-compiler.js +14 -1
  67. package/dist/orchestration/parallel-orchestrator.d.ts +6 -0
  68. package/dist/orchestration/parallel-orchestrator.js +31 -0
  69. package/dist/providers/provider-health.d.ts +39 -0
  70. package/dist/providers/provider-health.js +161 -0
  71. package/dist/runtime/advanced-control-loop.d.ts +60 -0
  72. package/dist/runtime/advanced-control-loop.js +136 -0
  73. package/dist/runtime/agent-runtime.d.ts +10 -0
  74. package/dist/runtime/blast-radius.d.ts +10 -0
  75. package/dist/runtime/blast-radius.js +14 -0
  76. package/dist/runtime/context-broker.d.ts +13 -4
  77. package/dist/runtime/context-broker.js +14 -1
  78. package/dist/runtime/contracts/evidence.d.ts +87 -0
  79. package/dist/runtime/contracts/evidence.js +7 -0
  80. package/dist/runtime/contracts/router-v2.d.ts +44 -0
  81. package/dist/runtime/contracts/router-v2.js +4 -0
  82. package/dist/runtime/contracts/weakness-remediation.d.ts +67 -0
  83. package/dist/runtime/contracts/weakness-remediation.js +36 -0
  84. package/dist/runtime/headroom-policy.d.ts +37 -0
  85. package/dist/runtime/headroom-policy.js +122 -0
  86. package/dist/runtime/kimi-api-runtime.js +59 -1
  87. package/dist/runtime/ouroboros-policy.d.ts +57 -0
  88. package/dist/runtime/ouroboros-policy.js +134 -0
  89. package/dist/runtime/proof-bundle-trust.d.ts +74 -0
  90. package/dist/runtime/proof-bundle-trust.js +100 -0
  91. package/dist/runtime/provider-maturity-gate.d.ts +41 -0
  92. package/dist/runtime/provider-maturity-gate.js +101 -0
  93. package/dist/runtime/public-surface.d.ts +93 -0
  94. package/dist/runtime/public-surface.js +146 -0
  95. package/dist/runtime/router-v2-scoring.d.ts +11 -0
  96. package/dist/runtime/router-v2-scoring.js +151 -0
  97. package/dist/runtime/runtime-backed-task-runner.js +9 -1
  98. package/dist/runtime/tool-dispatch-contracts.d.ts +57 -1
  99. package/dist/runtime/tool-dispatch-contracts.js +79 -3
  100. package/dist/runtime/weakness-remediation-index.d.ts +27 -0
  101. package/dist/runtime/weakness-remediation-index.js +37 -0
  102. package/dist/safety/tool-authority-gate.d.ts +62 -0
  103. package/dist/safety/tool-authority-gate.js +108 -0
  104. package/dist/schema/proof-bundle.schema.d.ts +26 -26
  105. package/dist/schema/provider.schema.d.ts +4 -4
  106. package/dist/util/clipboard-image.d.ts +49 -0
  107. package/dist/util/clipboard-image.js +263 -0
  108. package/dist/util/first-run-star.d.ts +9 -0
  109. package/dist/util/first-run-star.js +42 -1
  110. package/dist/util/terminal-input.d.ts +20 -0
  111. package/dist/util/terminal-input.js +32 -0
  112. package/dist/util/update-check.d.ts +6 -1
  113. package/dist/util/update-check.js +35 -1
  114. package/docs/2026-06-08/critical-issues.md +20 -0
  115. package/docs/2026-06-08/improvements.md +14 -0
  116. package/docs/2026-06-08/init-checklist.md +25 -0
  117. package/docs/2026-06-08/plan.md +20 -0
  118. package/docs/2026-06-09/critical-issues.md +20 -0
  119. package/docs/2026-06-09/improvements.md +14 -0
  120. package/docs/2026-06-09/init-checklist.md +25 -0
  121. package/docs/2026-06-09/plan.md +20 -0
  122. package/docs/getting-started.md +31 -3
  123. package/docs/github-organic-promotion.md +127 -0
  124. package/docs/integrations/ouroboros.md +96 -0
  125. package/docs/native-root-runtime-algorithms.md +301 -0
  126. package/docs/provider-maturity.md +1 -1
  127. package/docs/versioning.md +3 -3
  128. package/package.json +4 -3
  129. package/readmeasset/ASSET_INDEX.md +1 -0
  130. package/templates/skills/agents/omk-agent-reach-websearch/SKILL.md +55 -0
  131. package/templates/skills/kimi/omk-agent-reach-websearch/SKILL.md +55 -0
  132. package/dist/native/linux-x64/omk-safety +0 -0
package/CHANGELOG.md CHANGED
@@ -1,35 +1,76 @@
1
1
  # Changelog
2
2
 
3
- ## v0.78.0@omk/cli release (2026-06-07)
3
+ ## UnreleasedDeep Interview + Clipboard Image Paste
4
+
5
+ ### Added
6
+
7
+ - `omk goal interview [input]` and `omk goal refine <goal-id>` commands under the existing `goal` group, adding an evidence-driven clarification step before planning.
8
+ - Deterministic deep interview that scores goal ambiguity (`0..1`), ranks targeted questions (`informationGain*0.35 + riskReduction*0.25 + dagImpact*0.20 + evidenceImpact*0.15 - userCost*0.05`), and computes a completeness score from assimilated answers.
9
+ - Spec-delta assimilation that folds interview answers into a structured `GoalSpec` with conflict resolution, selectable depth (`light|standard|deep`, auto-selected by ambiguity when omitted), and `--write-spec` persistence.
10
+ - `omk.interview.v1` JSON contract (`schemas/omk.interview.v1.schema.json`) plus the `omk.interview-delta.v1` spec-delta envelope.
11
+ - Per-session interview artifacts (`interview.json`, `spec-delta.json`, `questions.md`, `answers.jsonl`, `interview-report.md`) under `.omk/goals/<goalId>/interviews/<sessionId>/` (or `.omk/interviews/<sessionId>/` before `--write-spec`).
12
+ - GitHub organic growth kit: README first-screen positioning, runnable awesome-list examples, a 1280x640 social preview upload candidate, and reusable Topics/About/awesome-list PR copy in `docs/github-organic-promotion.md`.
13
+ - Clipboard image paste support: `/paste` slash command in chat REPL, `--image` flag on `omk goal interview`, cross-platform clipboard reader (macOS/Linux/Windows), `InputAttachment` type for multimodal image handling.
14
+
15
+ ## v0.78.1 — package alignment, JSON contract envelopes, and adaptive runtime algorithms (2026-06-07)
16
+
17
+ ### Overview
18
+
19
+ Pre-1.0 source release target for `open-multi-agent-kit`. This entry aligns the public docs with the actual npm package name, makes the `v1.2` runtime label explicit as a contract family, and avoids implying that every provider lane has the same write/merge authority. It also records the runtime, CI, and orchestration work that ships between the prior release commit and this release: machine-readable `omk.contract.v1` JSON envelopes, real-run graph/proof linkage, an opt-in tool-authority gate, opt-in self-update and first-run star, and adaptorch/headroom/ouroboros adaptive runtime algorithms.
20
+
21
+ ### Added
22
+
23
+ - Fast-gate CI job and a unified release-truthfulness check that ties publish/tag claims to the exact target commit and gate state.
24
+ - Standard `ProviderHealth` shape embedded additively in `omk provider doctor --json`.
25
+ - `omk.contract.v1` JSON envelope for `omk summary --json`.
26
+ - `omk.contract.v1` JSON envelopes for the `omk dag`, `omk team`, and `omk merge` machine-readable surfaces.
27
+ - Real-run linkage into graph memory plus `omk graph audit`, which validates links across run manifest, evidence JSONL, decision JSONL, and provider-route nodes.
28
+ - Pure tool-authority decision-gate primitive that classifies tool calls against per-lane write authority.
29
+ - `OMK_AUTO_UPDATE` opt-in for non-interactive startup self-update.
30
+ - First-run GitHub star with a browser-open fallback when the `gh` CLI is unavailable.
31
+ - Adaptive runtime algorithms in the package: adaptorch-style topology routing on first DAG composition (`OMK_ADAPTORCH_ROUTING`), headroom context-guard compaction before the 90% context window (`OMK_HEADROOM` / `OMK_HEADROOM_THRESHOLD`), and embedded-ouroboros preference for goal/spec intents with native fallback (`OMK_OUROBOROS`).
32
+ - Ouroboros integration documentation covering the MCP server, bridge, and skills surface.
33
+
34
+ ### Changed
35
+
36
+ - README install, badge, package contract, and npm links now use `open-multi-agent-kit` instead of the unavailable `@omk/cli` scope.
37
+ - ROADMAP now separates public `0.78.x` package releases from historical v1.1.x/v1.2 source milestones.
38
+ - Provider-lane wording now points readers to the provider-maturity contract before treating non-Kimi lanes as authority paths.
39
+ - Release wording now treats npm publish/tag claims as gated by the exact target commit, CI/smoke status, package audit, and dist-tag state.
40
+ - The tool-authority gate is wired into dispatch in shadow/opt-in mode; enforcement stays off by default and is enabled only by `OMK_TOOL_AUTHORITY_ENFORCE`.
41
+ - Chat startup now resumes paused stdin before the native loop so first-run chat stays interactive.
42
+
43
+ ### Notes
44
+
45
+ - Default MCP configuration excludes the adaptorch MCP server; adaptorch is not auto-injected and is opt-in only.
46
+ - The new runtime behaviors are opt-in through environment flags and default to off, so existing default runs are unchanged.
47
+
48
+ ### Verification
49
+
50
+ Release readiness requires `npm run release:check` or the documented CI equivalent, native safety build, package audit, and tarball install smoke before npm publish or git tag.
51
+
52
+ ## v0.78.0 — initial public npm release (2026-06-07)
4
53
 
5
54
  ### Overview
6
55
 
7
- Stable `0.78.0` npm release for `@omk/cli` as the provider-neutral multi-agent control plane for coding workflows. OMK routes, verifies, measures, and controls agent execution with DAG orchestration, evidence gates, and scoped MCP/skills/hooks injection while the package remains on the pre-1.0 channel.
56
+ Initial `0.78.0` npm publication for `open-multi-agent-kit` as a pre-1.0 provider-neutral multi-agent control plane for coding workflows. OMK routes, verifies, measures, and controls agent execution with DAG orchestration, evidence gates, and scoped MCP/skills/hooks injection.
8
57
 
9
58
  ### Core
10
59
 
11
60
  - **OMK//CONTROL** brand system with operator TUI, runtime-flow diagrams, and telemetry.
12
- - **Provider-neutral architecture** Codex, MiMo, Kimi API, DeepSeek, Qwen, OpenRouter, and local adapters share the same control plane.
61
+ - **Provider-neutral architecture** with provider-specific maturity limits; Kimi remains the most mature authority path.
13
62
  - **DAG orchestration**: Goal → DAG plan → parallel lanes → evidence bundle → verify gate → merge / replay / inspect.
14
- - **Evidence gates** Command output, diff, artifact, metric, and review proof required before completion claims.
15
- - **Scoped capability injection** Project MCP, skills, hooks, and graph memory scoped per-run; global secrets not imported silently.
16
- - **Worktree isolation** Parallel lanes stay bounded, reviewable, and recoverable.
17
-
18
- ### CLI surface
19
-
20
- `omk init`, `omk doctor`, `omk chat`, `omk plan`, `omk run`, `omk parallel`, `omk review`, `omk verify`, `omk goal`, `omk provider`, `omk mcp`, `omk skill`, `omk agent`, `omk graph`, `omk replay`, `omk inspect`, `omk codex auth`, `omk image`.
63
+ - **Evidence gates**: command output, diff, artifact, metric, and review proof before completion claims.
64
+ - **Scoped capability injection**: project MCP, skills, hooks, and graph memory scoped per-run; global secrets not imported silently.
65
+ - **Worktree isolation**: parallel lanes stay bounded, reviewable, and recoverable.
21
66
 
22
67
  ### Package contract
23
68
 
24
- - Package: `@omk/cli`
69
+ - Package: `open-multi-agent-kit`
25
70
  - Bins: `omk`, `omk-project-mcp`, `omk-acp`, `omk-mcp-host`
26
71
  - Engine: Node.js >=20, npm >=10
27
72
  - License: MIT
28
73
 
29
- ### Verification
30
-
31
- Release readiness requires `npm run release:check`, native safety build, package audit, and tarball install smoke before npm publish or git tag.
32
-
33
74
  ## v1.2.0-rc.0 — Version and provider documentation alignment (2026-05-31)
34
75
 
35
76
  ### Added
package/MATURITY.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # OMK Command Maturity Matrix
2
2
 
3
3
  Last updated: 2026-06-07
4
- Current source version: v0.78.0 (`v1.2` runtime contract family)
4
+ Current source version: v0.78.1 (`v1.2` runtime contract family)
5
5
 
6
6
  | Level | Meaning |
7
7
  |-------|---------|
@@ -63,6 +63,10 @@ Current source version: v0.78.0 (`v1.2` runtime contract family)
63
63
  | `omk research` | Core runtime web research wrapper; depends on Kimi tool availability. |
64
64
  | `omk open-design-agent` | Local Open Design CLI bridge. |
65
65
 
66
+ ## Regression Proof Matrix Claim Boundary
67
+
68
+ Regression Proof Matrix is a release-defense gate, not a stable-release claim. Stable promotion still requires full `npm test`, live provider maturity data, and a minimal verified demo pass.
69
+
66
70
  ## Automation Contract Status
67
71
 
68
72
  | Area | Current state | Next hardening |
@@ -72,6 +76,6 @@ Current source version: v0.78.0 (`v1.2` runtime contract family)
72
76
  | Native runtime safety | OMK owns the root-orchestrator direction, but native chat must still lock turn-risk inference, approval/sandbox propagation, authority resolution, provider health probes, and DeepSeek read-only enforcement before stable provider-neutral claims. | Treat `docs/native-root-runtime-hardening.md` and `.omk/specs/native-orchestrator-phase1/` as the active hardening contract. |
73
77
  | MCP diagnostics | `mcp list/doctor/test` exist; invalid project/global MCP JSON now fails visibly through diagnostics without exposing config contents. | Add machine-readable MCP JSON and structured failure categories for command resolution, timeout, permission, and server health. |
74
78
  | Skills and harness templates | `omk skill` exposes current core/TypeScript/review packs, while init templates document project MCP scope, runtime skills, portable `.agents/skills`, and run-scoped harness manifests. | Keep external-inspired skills compact, source-linked, and non-vendored; verify install/sync through `skill-command` tests and package audit. |
75
- | Release docs and site | README, CHANGELOG, MATURITY, ROADMAP, versioning docs, provider-maturity docs, package audit, and release-gate commands distinguish the `0.78.0` package release from the `v1.2` runtime contract family while documenting alpha/experimental surfaces, current harness templates, provider limits, and the public project repository at `https://github.com/dmae97/open-multi-agent-kit`. | Treat `npm run release:check`, native safety packaging, tarball install smoke, and CI evidence on the exact commit as the publish/deploy gate before claiming `0.78.0` published or release-ready. |
79
+ | Release docs and site | README, CHANGELOG, MATURITY, ROADMAP, versioning docs, provider-maturity docs, package audit, and release-gate commands distinguish the `0.78.x` public package line from the `v1.2` runtime contract family while documenting alpha/experimental surfaces, current harness templates, provider limits, and the public project repository at `https://github.com/dmae97/open-multi-agent-kit`. | Treat `npm run release:check`, native safety packaging, tarball install smoke, and CI evidence on the exact commit as the publish/deploy gate before claiming `0.78.1` published or release-ready. |
76
80
  | Public proof bundles | `omk.proof-bundle.v1`, `npm run proof:check`, `npm run proof:index`, and ten scoped RC hardening bundles now cover no-Kimi, provider/doctor, fallback routing, native safety, contract/version, evidence-block, replay/inspect, and graph-audit axes. Proof integrity includes runId/commit/evidence/decision linkage and per-bundle `sha256sums.txt` artifact hashes. | Keep strengthening proof authenticity with sanitized repo-relative artifacts, non-empty known limitations, and broader provider fallback variants. |
77
81
  | Goal planner | Goal lifecycle exists, including continue, generated plan/evidence criteria, and verification. | Expand planner quality scoring and release evidence. |
package/README.md CHANGED
@@ -13,16 +13,17 @@
13
13
  </p>
14
14
 
15
15
  <p align="center">
16
- <a href="https://www.npmjs.com/package/@omk/cli"><img alt="npm version" src="https://img.shields.io/npm/v/%40omk%2Fcli?color=00D6FF"></a>
17
- <a href="https://www.npmjs.com/package/@omk/cli"><img alt="npm package" src="https://img.shields.io/badge/package-%40omk%2Fcli-FF47B2"></a>
18
- <a href="docs/versioning.md"><img alt="runtime" src="https://img.shields.io/badge/runtime-v1.2-9D4EDD"></a>
19
- <a href="https://github.com/dmae97/open-multi-agent-kit/blob/main/proof/PROOF_INDEX.md"><img alt="proof gate" src="https://img.shields.io/badge/proof--gate-passing-00FFC2"></a>
16
+ <a href="https://www.npmjs.com/package/open-multi-agent-kit"><img alt="npm version" src="https://img.shields.io/npm/v/open-multi-agent-kit?color=00D6FF"></a>
17
+ <a href="https://www.npmjs.com/package/open-multi-agent-kit"><img alt="npm package" src="https://img.shields.io/badge/package-open--multi--agent--kit-FF47B2"></a>
18
+ <a href="docs/versioning.md"><img alt="runtime contract" src="https://img.shields.io/badge/contract-v1.2_pre--1.0-9D4EDD"></a>
19
+ <a href="https://github.com/dmae97/open-multi-agent-kit/blob/main/proof/PROOF_INDEX.md"><img alt="proof check" src="https://img.shields.io/badge/proof--check-source-00FFC2"></a>
20
20
  <a href="LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
21
21
  </p>
22
22
 
23
23
  <p align="center">
24
24
  <a href="#install">Install</a> ·
25
25
  <a href="#quick-start">Quick start</a> ·
26
+ <a href="#who-is-this-for">Who is this for?</a> ·
26
27
  <a href="#current-runtime-algorithm">Runtime algorithm</a> ·
27
28
  <a href="docs/getting-started.md">Docs</a> ·
28
29
  <a href="readmeasset/ASSET_INDEX.md">Visual assets</a>
@@ -30,11 +31,50 @@
30
31
 
31
32
  `OMK` (`omk`) turns a coding goal into a bounded, evidence-gated agent run.
32
33
 
33
- > Current package source version: `@omk/cli@0.78.0`.
34
- > Runtime contract family: `v1.2`.
34
+ Use OMK when one coding agent is not enough: route Codex, OpenCode, Kimi, DeepSeek, Qwen, OpenRouter, and local runtimes through one evidence-gated control loop.
35
+
36
+ ## Who is this for?
37
+
38
+ - Developers running multiple coding agents from the terminal.
39
+ - Teams that need MCP-scoped agent execution instead of unrestricted tool access.
40
+ - Agent builders who want routing, fallback, evidence gates, telemetry, and replay.
41
+
42
+ > Current package source target: `open-multi-agent-kit@0.78.1`.
43
+ > Public package name: `open-multi-agent-kit` (`@omk/cli` is not the active npm package).
44
+ > Runtime contract family: `v1.2` (contract family, not a stable npm `1.x` release).
35
45
  > Release channel: `pre-1.0`.
36
46
  > See [versioning](docs/versioning.md) and [provider maturity](docs/provider-maturity.md).
37
47
 
48
+ ## Quickstart (3 minutes)
49
+
50
+ A beginner reads this, runs four commands, and reaches an initialized OMK chat/doctor flow.
51
+
52
+ ```bash
53
+ npm i -g open-multi-agent-kit
54
+ omk init
55
+ omk doctor
56
+ omk chat
57
+ ```
58
+
59
+ ## Examples for agent tooling lists
60
+
61
+ - [Codex MCP evidence run](https://github.com/dmae97/open-multi-agent-kit/tree/main/examples/codex-mcp-evidence-run): project-scoped MCP setup plus evidence-gated DAG dry run.
62
+ - [Provider fallback](https://github.com/dmae97/open-multi-agent-kit/tree/main/examples/provider-fallback): `--provider auto` routing with parallel worker planning.
63
+
64
+ ## Current release reality
65
+
66
+ - The public npm line is `open-multi-agent-kit@0.78.x`. Published npm `latest` is `0.78.0`;
67
+ source/target is `0.78.1` and is published only after the release workflow passes on the tagged commit.
68
+ - The `v1.2` label in docs is a runtime contract family for the source tree, not a claim that
69
+ an npm `1.2.x` stable release exists.
70
+ - Provider support is intentionally uneven: Kimi remains the most mature authority path;
71
+ Codex/OpenCode/CommandCode depend on local CLIs; MiMo/DeepSeek/Qwen/OpenRouter/local LLM
72
+ lanes are scoped by the provider-maturity contract.
73
+ - Safety and evidence claims apply to the exact adapter, command, and verification gate that
74
+ produced them.
75
+ - Regression Proof Matrix is a release-defense coverage gate, not a stable-release claim.
76
+ Stable promotion still requires full tests, live provider maturity data, and a minimal verified demo pass.
77
+
38
78
  ## Why OMK
39
79
 
40
80
  Most coding agents optimize for a single prompt/result loop. OMK wraps agent execution with a control-plane algorithm:
@@ -68,26 +108,28 @@ The GitHub visual set presents OMK as a Night City Ops Console: route status, DA
68
108
 
69
109
  ## Install
70
110
 
71
- Requires Node.js `>=20` and npm `>=10`.
111
+ Requires Node.js `>=20` and npm `>=10`. The [3-minute route](#quickstart-3-minutes) uses the global install; these are the alternatives:
112
+
113
+ Project/local install:
72
114
 
73
115
  ```bash
74
- npm install -g @omk/cli
75
- omk --help
116
+ npm i open-multi-agent-kit
117
+ npx omk --help
76
118
  ```
77
119
 
78
- No global install:
120
+ No install:
79
121
 
80
122
  ```bash
81
- npx -p @omk/cli omk doctor
123
+ npx -p open-multi-agent-kit omk doctor
82
124
  ```
83
125
 
84
126
  ## Quick start
85
127
 
128
+ The [3-minute route](#quickstart-3-minutes) is the canonical path. Beyond it, add provider auth and orchestration:
129
+
86
130
  ```bash
87
- omk init # scaffold AGENTS.md, DESIGN.md, .omk/
88
- omk doctor # check runtime, providers, MCP, skills, hooks
89
- omk codex auth --choice plus-pro # prefer official Codex app/CLI OAuth for Codex lanes
90
- omk chat --provider codex --mode agent
131
+ omk codex auth --choice plus-pro # optional; requires official Codex app/CLI login
132
+ omk chat --provider auto --mode agent
91
133
  omk orchestrate "ship feature" --workers 4 --dry-run
92
134
  ```
93
135
 
@@ -133,7 +175,7 @@ DAG node
133
175
  → TaskResult with selected runtime + fallback chain
134
176
  ```
135
177
 
136
- OMK converts DAG context into an adapter-neutral task so Codex, MiMo, Kimi API/print lanes, DeepSeek, Qwen, OpenRouter, local adapters, or future runtimes can participate through the same contract.
178
+ OMK converts DAG context into an adapter-neutral task so Codex, MiMo, Kimi API/print lanes, DeepSeek, Qwen, OpenRouter, local adapters, or future runtimes can participate through the same contract when configured. That contract does not imply equal write/merge authority for every adapter.
137
179
 
138
180
  ### 4. Intent-aware runtime routing and fallback
139
181
 
@@ -166,6 +208,59 @@ Kimi worker prompts use stdin with `--input-format text` where that adapter path
166
208
  Goal → DAG plan → parallel lanes → evidence bundle → verify gate → merge / replay / inspect
167
209
  ```
168
210
 
211
+ ## Goal lifecycle
212
+
213
+ `omk goal` turns a raw goal into a planned, evidence-gated run. The **OMK Deep Interview** is an uncertainty reducer that clarifies the goal before planning, so the DAG is compiled from a structured spec instead of a vague prompt.
214
+
215
+ Recommended flow:
216
+
217
+ ```bash
218
+ omk goal interview "<raw goal>" --depth deep --write-spec
219
+ omk goal plan <goal-id>
220
+ omk goal run <goal-id> --provider auto --approval-policy interactive
221
+ omk goal verify <goal-id>
222
+ ```
223
+
224
+ ### `omk goal interview [input]`
225
+
226
+ Runs a deterministic deep interview that scores goal ambiguity (`0..1`), ranks targeted questions, assimilates answers into a structured spec delta, computes a completeness score, and (with `--write-spec`) creates or updates a `GoalSpec`. Question ranking is deterministic:
227
+
228
+ ```text
229
+ score = informationGain*0.35 + riskReduction*0.25 + dagImpact*0.20 + evidenceImpact*0.15 - userCost*0.05
230
+ ```
231
+
232
+ | Option | Purpose |
233
+ | -------------------------- | -------------------------------------------------------------- |
234
+ | `--goal-id <id>` | Target an existing goal. |
235
+ | `--mode <create\|refine>` | Create a new spec or refine an existing one. |
236
+ | `--depth <light\|standard\|deep>` | Interview depth; omit to auto-select by ambiguity. |
237
+ | `--max-questions <n>` | Cap the number of ranked questions. |
238
+ | `--answers <file>` | Supply answers non-interactively. |
239
+ | `--write-spec` | Persist the spec delta into a `GoalSpec`. |
240
+ | `--json` | Emit the `omk.interview.v1` JSON contract. |
241
+
242
+ ### `omk goal refine <goal-id>`
243
+
244
+ Applies the latest interview spec delta to a goal and optionally replans.
245
+
246
+ | Option | Purpose |
247
+ | ----------------------- | ------------------------------------------------ |
248
+ | `--from-interview <id>` | Source interview session (default: latest). |
249
+ | `--plan` | Replan the goal after applying the delta. |
250
+ | `--json` | Emit machine-readable output. |
251
+
252
+ Answers file format (`--answers answers.json`):
253
+
254
+ ```json
255
+ {
256
+ "answers": [
257
+ { "questionId": "q-success-criteria", "answer": "..." }
258
+ ]
259
+ }
260
+ ```
261
+
262
+ Session artifacts (`interview.json`, `spec-delta.json`, `questions.md`, `answers.jsonl`, `interview-report.md`) are written under `.omk/goals/<goalId>/interviews/<sessionId>/`, or `.omk/interviews/<sessionId>/` before `--write-spec`.
263
+
169
264
  ## What OMK controls
170
265
 
171
266
  | Surface | What OMK does |
@@ -180,13 +275,16 @@ Goal → DAG plan → parallel lanes → evidence bundle → verify gate → mer
180
275
 
181
276
  ## Provider lanes
182
277
 
183
- OMK is provider-neutral. The configured runtime decides which adapters are available, but the control plane is the same:
278
+ OMK is provider-neutral, but providers are not equally mature or equally authorized:
279
+
280
+ - **Kimi API / print lanes**: most mature authority path and compatibility fallback when configured.
281
+ - **MiMo**: default/read-review-thinking path when configured; direct workspace-write authority is not claimed for the API runtime.
282
+ - **Codex app / CLI OAuth lanes**: compatibility path through the official Codex CLI/app login; local CLI availability and policy decide what can run.
283
+ - **OpenCode / CommandCode CLI lanes**: compatibility paths when the local CLI and auth are present.
284
+ - **DeepSeek, Qwen, OpenRouter, local LLM adapters**: advisory/read/review/QA/research lanes unless a tested contract grants more authority.
285
+ - **GPT Image 2 asset lane**: visual asset workflow only when explicitly selected and separately configured.
184
286
 
185
- - **Codex app / CLI OAuth lanes** for Codex-backed coding sessions;
186
- - **MiMo** as the default provider path when configured;
187
- - **Kimi API / print lanes** as explicit provider adapters, not the root identity;
188
- - **DeepSeek, Qwen, OpenRouter, local adapters** for advisory or execution lanes when capability contracts match;
189
- - **GPT Image 2 asset lane** for visual assets when the image workflow is explicitly selected.
287
+ See [provider maturity](docs/provider-maturity.md) before treating any non-Kimi lane as an authority/write/merge path.
190
288
 
191
289
  ## Codex app / OAuth first
192
290
 
@@ -206,9 +304,9 @@ The npm package is intentionally package-safe:
206
304
 
207
305
  | Contract | Value |
208
306
  | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
209
- | Package | [`@omk/cli`](https://www.npmjs.com/package/@omk/cli) |
210
- | Version | `0.78.0` |
211
- | Runtime family | `v1.2` |
307
+ | Package | [`open-multi-agent-kit`](https://www.npmjs.com/package/open-multi-agent-kit) |
308
+ | Version | `0.78.1` |
309
+ | Runtime contract family | `v1.2` |
212
310
  | Bins | `omk`, `omk-project-mcp`, `omk-acp`, `omk-mcp-host` |
213
311
  | Packaged docs | `README.md`, `docs/`, `SECURITY.md`, `ROADMAP.md`, `MATURITY.md`, `DESIGN.md` |
214
312
  | Packaged branding | Canonical hero/social/TUI/runtime images plus the curated derivative gallery documented in [`readmeasset/ASSET_INDEX.md`](readmeasset/ASSET_INDEX.md) and [`readmeasset/ASSET_PROVENANCE.md`](readmeasset/ASSET_PROVENANCE.md) |
@@ -262,6 +360,7 @@ Public copy stays OMK-owned: **OMK//CONTROL**, **NEON GRID ONLINE**, route/evide
262
360
  - [Provider maturity](docs/provider-maturity.md)
263
361
  - [Native root runtime algorithms](docs/native-root-runtime-algorithms.md)
264
362
  - [Codex OAuth setup](docs/codex-oauth-setup.md)
363
+ - [Ouroboros integration](docs/integrations/ouroboros.md)
265
364
  - [Security policy](SECURITY.md)
266
365
 
267
366
  ## Security
@@ -271,7 +370,7 @@ Safe by default: child env is sanitized, ambient secrets are dropped, and worksp
271
370
  ## Links
272
371
 
273
372
  - GitHub: <https://github.com/dmae97/open-multi-agent-kit>
274
- - NPM: <https://www.npmjs.com/package/@omk/cli>
373
+ - NPM: <https://www.npmjs.com/package/open-multi-agent-kit>
275
374
  - Releases: <https://github.com/dmae97/open-multi-agent-kit/releases>
276
375
 
277
376
  ## License
package/ROADMAP.md CHANGED
@@ -1,21 +1,27 @@
1
1
  # Roadmap
2
2
 
3
- Current source version: v0.78.0 (`v1.2` runtime contract family)
3
+ Current source version: v0.78.1 (`v1.2` runtime contract family)
4
4
  Last updated: 2026-06-07
5
5
 
6
- ## Historical 2026-05-31 v1.2 RC status
6
+ ## 2026-06-07 release reality
7
7
 
8
- At the 2026-05-31 RC checkpoint, the source tree was aligned to package version `1.2.0-rc.0`, runtime version `v1.2`, and release channel `rc`. The architecture direction is OMK-as-root with providers as adapters. Kimi remains the most mature authority path in this RC line; other providers have narrower or advisory maturity unless tests and contracts say otherwise.
8
+ The public npm package line is `open-multi-agent-kit@0.78.x`. The `v1.2` label below is the source-tree runtime contract family, not a claim that a stable npm `1.2.x` package has shipped.
9
+
10
+ The v1.1.x/v1.2 rows in this file are historical source checkpoints and architecture milestones unless a row explicitly says it was npm-published. Current public-release work should be judged against the exact target commit, CI/smoke status, package audit, and npm dist-tag state.
11
+
12
+ ## Historical 2026-05-31 v1.2 contract checkpoint
13
+
14
+ At the 2026-05-31 checkpoint, the source tree was being aligned toward a `v1.2` runtime contract and an internal RC packaging target. That checkpoint is useful architectural history, but it is not the current public npm package line. The architecture direction is OMK-as-root with providers as adapters. Kimi remains the most mature authority path; other providers have narrower or advisory maturity unless tests and contracts say otherwise.
9
15
 
10
16
  - Version contract details: `docs/versioning.md`.
11
17
  - Provider status and limitations: `docs/provider-maturity.md`.
12
18
  - Public proof index: `proof/PROOF_INDEX.md`.
13
19
  - Active native-runtime backlog: `docs/native-root-runtime-hardening.md`, `docs/native-root-runtime-algorithms.md`, and `.omk/specs/native-orchestrator-phase1/`.
14
- - Do not claim stable `v1.2` until release gates pass on the exact target commit and the stable package/tag is published.
20
+ - Do not claim stable npm `1.x` status until release gates pass on the exact target commit and the stable package/tag is published.
15
21
 
16
- ## Historical v1.1.9 reality
22
+ ## Historical v1.1.9 source reality
17
23
 
18
- Provider routing and graph viewing are no longer purely future work:
24
+ Provider routing and graph viewing are no longer purely future work in the source tree, but these notes are historical and provider-dependent:
19
25
 
20
26
  - `omk run`, `omk parallel`, and DAG replay expose `--provider auto|kimi`.
21
27
  - `omk provider` / `omk deepseek` manage DeepSeek enablement, key setup, availability checks, and default fallback to the most mature adapter.
@@ -23,7 +29,7 @@ Provider routing and graph viewing are no longer purely future work:
23
29
  - `omk graph view` generates an HTML view from `.omk/memory/graph-state.json`.
24
30
  - `omk goal` has a persisted lifecycle, continue loop, generated plan/evidence criteria, and verification flow.
25
31
 
26
- ## v1.2 RC — Native Orchestrator Decoupling
32
+ ## v1.2 contract hardening — Native Orchestrator Decoupling
27
33
 
28
34
  ### Phase 0: Foundation & Spec
29
35
 
@@ -64,35 +70,35 @@ Provider routing and graph viewing are no longer purely future work:
64
70
  - Deprecate Kimi-only subagent language where OMK `ParallelOrchestrator` is the actual spawn surface.
65
71
  - Mark v1.2.x stable only after provider fallback, evidence gates, DAG replay, version contracts, and provider-maturity docs are green across supported adapters.
66
72
 
67
- ## v1.3Hardening the current surface
73
+ ## Post-0.78 hardening — current surface
68
74
 
69
75
  ### P0: release and contract gates
70
76
 
71
- - Done: YAML validation now runs in local `verify` plus CI/smoke workflows.
72
- - Done: package dry-pack, package audit, tarball smoke, native safety build, and release matrix gates were re-verified during the v1.1.x release-prep line; v1.2 RC publish/tag claims now depend on `npm run release:check` on the exact target commit.
73
- - Required before stable v1.2 publish/tag: regenerate the native safety binary, pass package audit, pass smoke-pack/tarball install smoke, and pass `npm run release:check` on the exact intended release diff.
74
- - Required before stable v1.2 publish/tag: CI and smoke checks must pass on the exact intended commit.
75
- - Done: provider/deepseek and screenshot JSON command contracts gained hermetic regression tests.
76
- - Done: proof bundle schema/check/index scaffolding exists, with ten scoped RC hardening bundles covering no-Kimi smoke, doctor-provider, fallback-route, native-safety, contract-version, evidence-block, replay/inspect, graph-audit, deeper no-Kimi verification, and provider fallback-routing gates.
77
- - Done: proof integrity now enforces artifact linkage plus per-bundle `sha256sums.txt` hash validation.
78
- - Done: current AGENTS/init templates and packaged workflow skills were aligned with the active skills/MCP/agents/harness surface, including all generated agent MCP/skills/hooks flags and parallel subagent orchestration guidance.
79
- - Remaining: lock runtime safety gates for native turn risk, approval/sandbox propagation, authority-provider resolution, provider health probes, and DeepSeek read-only routing.
80
- - Remaining: lock broader provider fallback metadata with tests for rate limit, timeout, and default fallback variants.
81
- - Remaining: define minimum machine-readable CLI envelopes for the rest of the automation-critical commands.
82
- - Remaining: promote additional real proof bundles beyond the RC ten-bundle baseline, especially provider fallback variants for rate limit, timeout, and default route behavior.
77
+ - Source implemented: YAML validation runs in local `verify` plus CI/smoke workflows.
78
+ - Source verified in recent gates: package dry-pack, package audit, tarball smoke, native safety build, and release matrix coverage. Public publish/tag claims still depend on the exact target commit.
79
+ - Required before a public npm publish/tag: regenerate the native safety binary if the target platform artifacts changed, pass package audit, pass smoke-pack/tarball install smoke, and pass `npm run release:check` or the documented CI equivalent on the exact intended release diff.
80
+ - Required before a public npm publish/tag: CI and smoke checks must pass on the exact intended commit.
81
+ - Source implemented: provider/deepseek and screenshot JSON command contracts have hermetic regression tests.
82
+ - Source implemented: proof bundle schema/check/index scaffolding exists, with scoped hardening bundles covering no-Kimi smoke, doctor-provider, fallback-route, native-safety, contract-version, evidence-block, replay/inspect, graph-audit, deeper no-Kimi verification, and provider fallback-routing gates.
83
+ - Source implemented: proof integrity enforces artifact linkage plus per-bundle `sha256sums.txt` hash validation.
84
+ - Source implemented: current AGENTS/init templates and packaged workflow skills align with the active skills/MCP/agents/harness surface.
85
+ - Still required: lock runtime safety gates for native turn risk, approval/sandbox propagation, authority-provider resolution, provider health probes, and DeepSeek read-only routing.
86
+ - Still required: lock broader provider fallback metadata with tests for rate limit, timeout, and default fallback variants.
87
+ - Still required: define minimum machine-readable CLI envelopes for the rest of the automation-critical commands.
88
+ - Still required: promote additional proof bundles beyond the current baseline, especially provider fallback variants for rate limit, timeout, and default route behavior.
83
89
 
84
90
  ### P1: observability and diagnostics
85
91
 
86
- - Done: provider route/fallback counts are now emitted in run summaries/reports and summary terminal output.
87
- - Done: invalid MCP JSON is reported as a visible diagnostic without leaking secret-like config values.
88
- - Done: `omk mcp doctor --json` exposes structured server status, command resolution, timeout, permission, and config-source fields.
92
+ - Source implemented: provider route/fallback counts are emitted in run summaries/reports and summary terminal output.
93
+ - Source implemented: invalid MCP JSON is reported as a visible diagnostic without leaking secret-like config values.
94
+ - Source implemented: `omk mcp doctor --json` exposes structured server status, command resolution, timeout, permission, and config-source fields.
89
95
  - Expand JSON output for DAG, summary, and workflow commands where CI or agents consume results.
90
96
  - Link live graph nodes back to runs, goals, providers, and evidence so `omk graph audit` can validate real project graph memory, not only compact proof fixtures.
91
97
 
92
98
  ### P2: execution depth and planner quality
93
99
 
94
100
  - Deepen `omk team` runtime reporting: worker state, pane/session health, artifacts, and verification handoff.
95
- - Done: replace the `omk goal plan` stub with a planner that emits steps, acceptance criteria, risks, and evidence gates.
101
+ - Source implemented: replace the `omk goal plan` stub with a planner that emits steps, acceptance criteria, risks, and evidence gates.
96
102
  - Add provider-quality gates before broader non-Kimi worker pools.
97
103
  - Keep Kimi execution as the safe fallback path for every run.
98
104
 
@@ -109,10 +115,12 @@ Provider routing and graph viewing are no longer purely future work:
109
115
  - Materialize provider routes, fallback events, goals, evidence gates, and run artifacts in the local graph/Kuzu ontology.
110
116
  - Keep `omk graph view` local-first and safe for private repositories.
111
117
 
112
- ### Historical milestones
118
+ ### Historical source milestones
119
+
120
+ These are source/development checkpoints unless a release note explicitly says the version was npm-published.
113
121
 
114
- | Version | Focus |
115
- |---------|-------|
122
+ | Source checkpoint | Focus |
123
+ | --- | --- |
116
124
  | v0.1 | init / doctor / chat, P0 skills, AGENTS.md / DESIGN.md generation, quality gate hooks |
117
125
  | v0.2 | wire controller, HUD, run state, worker logs |
118
126
  | v0.3 | worktree team, merge queue, reviewer / QA / integrator agents |
@@ -127,4 +135,4 @@ Provider routing and graph viewing are no longer purely future work:
127
135
  | v1.1.16 | Deterministic IntentFrame/ActionAtom orchestration, chat schema preflight, MCP duplicate policy, agent capability propagation, and doctor/init/pack smoke fixes |
128
136
  | v1.1.17 | Full generated-agent MCP/skills/hooks enablement, parallel subagent orchestration emphasis, and v1.1.17 release docs |
129
137
  | v1.1.18 | Historical Kimi-wrapper dominant release-prep line: package source version alignment, native safety package gate, typed doctor repair plans, startup update prompt UX, and parallel subagent orchestration release-doc alignment |
130
- | v1.2.0-rc.0 | Package RC for the `v1.2` runtime contract family, provider-neutral docs alignment, version contract docs, and provider maturity limits |
138
+ | v1.2.0-rc.0 | Internal RC target for the `v1.2` runtime contract family, provider-neutral docs alignment, version contract docs, and provider maturity limits |
@@ -268,9 +268,10 @@ export function registerBasicCommands(program) {
268
268
  program
269
269
  .command("summary")
270
270
  .description(t("cmd.summaryDesc"))
271
- .action(async () => {
271
+ .option("--json", "Output the latest run summary as a JSON envelope")
272
+ .action(async (options) => {
272
273
  const { summaryLatestCommand } = await import("../commands/summary.js");
273
- await summaryLatestCommand();
274
+ await summaryLatestCommand(options);
274
275
  });
275
276
  program
276
277
  .command("summary-show [run-id]")
@@ -157,6 +157,7 @@ export function registerMcpDagCronScreenshotCommands(program) {
157
157
  .option("-o, --output <path>", "Output JSON file path")
158
158
  .option("-p, --parallel", "Enable intra-phase parallelism")
159
159
  .option("-r, --run <id>", "Use spec from run ID (latest)")
160
+ .option("--json", "Output the DAG artifact as a JSON envelope")
160
161
  .action(async (specDir, options) => {
161
162
  const { dagFromSpecCommand } = await import("../commands/dag-from-spec.js");
162
163
  const root = (await import("../util/fs.js")).getProjectRoot();
@@ -165,6 +166,7 @@ export function registerMcpDagCronScreenshotCommands(program) {
165
166
  output: options.output,
166
167
  parallel: Boolean(options.parallel),
167
168
  run: options.run,
169
+ json: Boolean(options.json),
168
170
  });
169
171
  });
170
172
  dag
@@ -159,6 +159,51 @@ export function registerSpecAgentGoalCommands(program) {
159
159
  throw err;
160
160
  }
161
161
  });
162
+ goal
163
+ .command("interview [input]")
164
+ .description("[Alpha] Run a deep interview to reduce goal uncertainty before planning")
165
+ .option("--goal-id <id>", "Existing goal id to refine")
166
+ .option("--mode <create|refine>", "Interview mode (create | refine)", "create")
167
+ .option("--depth <light|standard|deep>", "Interview depth (omit to auto-select by ambiguity)")
168
+ .option("--max-questions <n>", "Maximum number of questions")
169
+ .option("--answers <file>", "Answers JSON file: { \"answers\": [{ \"questionId\", \"answer\" }] }")
170
+ .option("--image <file>", "Attach an image file (screenshot/diagram) to the interview")
171
+ .option("--write-spec", "Create or update the goal spec from interview answers")
172
+ .option("--json", t("cmd.goalJsonOption"))
173
+ .action(async (input, options) => {
174
+ const { goalInterviewCommand } = await import("../commands/goal-interview.js");
175
+ try {
176
+ await goalInterviewCommand(input, options);
177
+ }
178
+ catch (err) {
179
+ if (err instanceof CliError) {
180
+ if (process.exitCode === undefined)
181
+ process.exitCode = err.exitCode;
182
+ return;
183
+ }
184
+ throw err;
185
+ }
186
+ });
187
+ goal
188
+ .command("refine <goal-id>")
189
+ .description("[Alpha] Apply the latest interview spec delta to a goal and optionally replan")
190
+ .option("--from-interview <id>", "Interview session id (default: latest)", "latest")
191
+ .option("--plan", "Rebuild the plan after applying the interview delta")
192
+ .option("--json", t("cmd.goalJsonOption"))
193
+ .action(async (goalId, options) => {
194
+ const { goalRefineCommand } = await import("../commands/goal-interview.js");
195
+ try {
196
+ await goalRefineCommand(goalId, options);
197
+ }
198
+ catch (err) {
199
+ if (err instanceof CliError) {
200
+ if (process.exitCode === undefined)
201
+ process.exitCode = err.exitCode;
202
+ return;
203
+ }
204
+ throw err;
205
+ }
206
+ });
162
207
  goal
163
208
  .command("list")
164
209
  .description(t("cmd.goalListDesc"))
@@ -14,6 +14,16 @@ export function registerToolCommands(program) {
14
14
  const { graphViewCommand } = await import("../commands/graph.js");
15
15
  await graphViewCommand(options);
16
16
  });
17
+ graph
18
+ .command("audit")
19
+ .description("Audit linked run subgraphs (run -> route/provider/evidence/decision/artifact)")
20
+ .option("--run <id>", "Audit a single run id (default: all runs under .omk/runs)")
21
+ .option("--input <path>", "Graph state JSON path (default: .omk/memory/graph-state.json)")
22
+ .option("--json", "Output machine-readable omk.contract.v1 JSON verdict")
23
+ .action(async (options) => {
24
+ const { graphAuditCommand } = await import("../commands/graph.js");
25
+ await graphAuditCommand({ run: options.run, input: options.input, json: Boolean(options.json) });
26
+ });
17
27
  program
18
28
  .command("hud")
19
29
  .description(t("cmd.hudDesc"))
@@ -47,6 +57,7 @@ export function registerToolCommands(program) {
47
57
  .option("--run <id>", "run ID", "latest")
48
58
  .option("--strategy <strategy>", "merge strategy (first | best)", "first")
49
59
  .option("--dry-run", "preview merge without applying")
60
+ .option("--json", "Output the merge preview as a JSON envelope")
50
61
  .action(async (runIdArg, options) => {
51
62
  const globalOpts = program.opts();
52
63
  const { mergeCommand } = await import("../commands/merge.js");
@@ -72,6 +72,7 @@ export function registerWorkflowCommands(program) {
72
72
  .command("team")
73
73
  .description(t("cmd.teamDesc"))
74
74
  .option("--workers <n>", t("cmd.teamWorkersOption"), "auto")
75
+ .option("--json", "Output the team layout as a JSON envelope")
75
76
  .action(async (options) => {
76
77
  const globalOpts = program.opts();
77
78
  const { teamCommand } = await import("../commands/team.js");
@@ -89,9 +89,10 @@ export function registerToolingCommands(program) {
89
89
  program
90
90
  .command("summary")
91
91
  .description(t("cmd.summaryDesc"))
92
- .action(async () => {
92
+ .option("--json", "Output the latest run summary as a JSON envelope")
93
+ .action(async (options) => {
93
94
  const { summaryLatestCommand } = await import("../../commands/summary.js");
94
- await summaryLatestCommand();
95
+ await summaryLatestCommand(options);
95
96
  });
96
97
  program
97
98
  .command("summary-show [run-id]")