open-multi-agent-kit 0.79.3 → 0.80.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 (128) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/MATURITY.md +2 -2
  3. package/README.md +86 -39
  4. package/ROADMAP.md +20 -17
  5. package/dist/brand/night-city.theme.json +122 -24
  6. package/dist/brand/rust-forge.theme.json +1 -1
  7. package/dist/commands/chat/native-root-loop.d.ts +27 -3
  8. package/dist/commands/chat/native-root-loop.js +370 -49
  9. package/dist/commands/dag.js +45 -0
  10. package/dist/commands/init/content.d.ts +1 -1
  11. package/dist/commands/init/content.js +3 -3
  12. package/dist/commands/init.js +3 -3
  13. package/dist/commands/verify.js +59 -1
  14. package/dist/contracts/dag.d.ts +9 -1
  15. package/dist/evidence/graph-ontology-relation-gate.d.ts +10 -0
  16. package/dist/evidence/graph-ontology-relation-gate.js +46 -0
  17. package/dist/evidence/headroom-replay-verifier.d.ts +19 -0
  18. package/dist/evidence/headroom-replay-verifier.js +86 -0
  19. package/dist/memory/local-graph-memory-store.d.ts +75 -0
  20. package/dist/memory/local-graph-memory-store.js +570 -0
  21. package/dist/orchestration/dag.d.ts +22 -1
  22. package/dist/orchestration/evidence-gate.js +12 -0
  23. package/dist/orchestration/executor.js +111 -15
  24. package/dist/orchestration/loop-controller-headroom.d.ts +6 -0
  25. package/dist/orchestration/loop-controller-headroom.js +33 -0
  26. package/dist/orchestration/scheduler.d.ts +2 -0
  27. package/dist/orchestration/scheduler.js +3 -0
  28. package/dist/orchestration/task-graph.d.ts +17 -0
  29. package/dist/orchestration/task-graph.js +38 -0
  30. package/dist/providers/codex-cli-runner.js +17 -2
  31. package/dist/runtime/agent-runtime.d.ts +32 -3
  32. package/dist/runtime/agent-runtime.js +20 -7
  33. package/dist/runtime/authority-matrix.d.ts +23 -0
  34. package/dist/runtime/authority-matrix.js +171 -0
  35. package/dist/runtime/chat-advisory-runtime.js +3 -0
  36. package/dist/runtime/codex-cli-runtime.js +2 -0
  37. package/dist/runtime/codex-runtime.d.ts +4 -1
  38. package/dist/runtime/codex-runtime.js +34 -12
  39. package/dist/runtime/context-broker-converter.js +32 -2
  40. package/dist/runtime/context-broker.js +18 -0
  41. package/dist/runtime/contracts/evidence.d.ts +52 -0
  42. package/dist/runtime/contracts/evidence.js +138 -1
  43. package/dist/runtime/contracts/shared.d.ts +27 -0
  44. package/dist/runtime/data-retention-gate.d.ts +42 -0
  45. package/dist/runtime/data-retention-gate.js +123 -0
  46. package/dist/runtime/deepseek-runtime.d.ts +5 -1
  47. package/dist/runtime/deepseek-runtime.js +13 -7
  48. package/dist/runtime/external-cli-adapter.js +20 -7
  49. package/dist/runtime/freedomd-evidence-envelope.d.ts +57 -0
  50. package/dist/runtime/freedomd-evidence-envelope.js +110 -0
  51. package/dist/runtime/freedomd-exception.d.ts +32 -0
  52. package/dist/runtime/freedomd-exception.js +95 -0
  53. package/dist/runtime/freedomd-incidents.d.ts +23 -0
  54. package/dist/runtime/freedomd-incidents.js +103 -0
  55. package/dist/runtime/freedomd-policy.d.ts +35 -0
  56. package/dist/runtime/freedomd-policy.js +114 -0
  57. package/dist/runtime/freedomd-router.d.ts +66 -0
  58. package/dist/runtime/freedomd-router.js +433 -0
  59. package/dist/runtime/headroom-aware-loop-decision.d.ts +21 -0
  60. package/dist/runtime/headroom-aware-loop-decision.js +67 -0
  61. package/dist/runtime/headroom-loop-risk.d.ts +19 -0
  62. package/dist/runtime/headroom-loop-risk.js +43 -0
  63. package/dist/runtime/headroom-policy.d.ts +14 -1
  64. package/dist/runtime/headroom-policy.js +74 -12
  65. package/dist/runtime/kimi-api-runtime.d.ts +4 -1
  66. package/dist/runtime/kimi-api-runtime.js +35 -11
  67. package/dist/runtime/kimi-print-runtime.js +21 -0
  68. package/dist/runtime/kimi-wire-protocol-runtime.js +17 -1
  69. package/dist/runtime/local-llm-runtime.d.ts +5 -1
  70. package/dist/runtime/local-llm-runtime.js +14 -23
  71. package/dist/runtime/private-stderr.d.ts +13 -0
  72. package/dist/runtime/private-stderr.js +69 -0
  73. package/dist/runtime/prompt-envelope.d.ts +1 -1
  74. package/dist/runtime/provider-sovereignty.d.ts +81 -0
  75. package/dist/runtime/provider-sovereignty.js +285 -0
  76. package/dist/runtime/runtime-backed-task-runner.d.ts +1 -0
  77. package/dist/runtime/runtime-backed-task-runner.js +282 -10
  78. package/dist/runtime/runtime-bootstrap.d.ts +12 -0
  79. package/dist/runtime/runtime-bootstrap.js +54 -11
  80. package/dist/runtime/runtime-failure-classifier.d.ts +15 -0
  81. package/dist/runtime/runtime-failure-classifier.js +107 -0
  82. package/dist/runtime/runtime-health-probes.d.ts +30 -0
  83. package/dist/runtime/runtime-health-probes.js +102 -0
  84. package/dist/runtime/runtime-router.d.ts +6 -2
  85. package/dist/runtime/runtime-router.js +575 -53
  86. package/dist/runtime/structured-compaction.d.ts +107 -0
  87. package/dist/runtime/structured-compaction.js +414 -0
  88. package/dist/runtime/tool-dispatch-contracts.d.ts +7 -5
  89. package/dist/runtime/tool-dispatch-contracts.js +15 -4
  90. package/dist/runtime/tool-plane.d.ts +1 -1
  91. package/dist/runtime/tool-plane.js +49 -1
  92. package/dist/runtime/worker-manifest.js +1 -1
  93. package/dist/schema/evidence-bundle.schema.d.ts +8 -8
  94. package/dist/schema/proof-bundle.schema.d.ts +2 -2
  95. package/dist/util/hash.d.ts +2 -0
  96. package/dist/util/hash.js +13 -0
  97. package/dist/util/session.js +5 -4
  98. package/docs/2026-06-16/critical-issues.md +19 -0
  99. package/docs/2026-06-16/improvements.md +15 -0
  100. package/docs/2026-06-16/init-checklist.md +25 -0
  101. package/docs/2026-06-16/plan.md +20 -0
  102. package/docs/2026-06-17/critical-issues.md +19 -0
  103. package/docs/2026-06-17/improvements.md +15 -0
  104. package/docs/2026-06-17/init-checklist.md +25 -0
  105. package/docs/2026-06-17/plan.md +20 -0
  106. package/docs/ARCHITECTURE_ANALYSIS_CODEGRAPH.md +2 -1
  107. package/docs/GSTACK_MIGRATION.md +1 -1
  108. package/docs/algorithm-hardening-playbook.md +219 -0
  109. package/docs/claims.md +1 -1
  110. package/docs/getting-started.md +1 -1
  111. package/docs/native-root-runtime-hardening.md +42 -32
  112. package/docs/post-0793-hardening-roadmap.md +123 -0
  113. package/docs/provider-maturity.md +18 -16
  114. package/docs/versioning.md +3 -3
  115. package/docs/what-is-omk.md +1 -1
  116. package/package.json +8 -4
  117. package/readmeasset/.npmignore +2 -0
  118. package/readmeasset/ASSET_INDEX.md +2 -0
  119. package/readmeasset/ASSET_PROVENANCE.md +40 -20
  120. package/readmeasset/omk-adaptorch-ouroboros-supermemory.svg +1 -1
  121. package/readmeasset/omk-control-surfaces.svg +1 -1
  122. package/readmeasset/omk-core-loop.svg +1 -1
  123. package/readmeasset/omk-freedomd-control-plane.svg +59 -0
  124. package/readmeasset/omk-freedomd-control-plane.webp +0 -0
  125. package/readmeasset/omk-init-control-loop.svg +1 -1
  126. package/readmeasset/omk-logo-mark.svg +1 -1
  127. package/readmeasset/omk-parallel-subagents.svg +1 -1
  128. package/readmeasset/omk-release-assertions.svg +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,44 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ### Added
6
+
7
+ - Reserved for changes after v0.80.2.
8
+
9
+ ## v0.80.2 — CI release gate stabilization (2026-06-16)
10
+
11
+ ### Fixed
12
+
13
+ - Fixed run directory creation after stricter run artifact path validation.
14
+ - Stabilized executor evidence gates so explicit output gates stay enforced while routing-only evidence hints do not block low-risk read/review lanes.
15
+ - Preserved explicit runtime MCP/tool-calling capabilities when applying the provider authority matrix.
16
+ - Required structured summary markers for summary/review evidence gates, preventing plain stdout from satisfying release evidence.
17
+
18
+ ## v0.80.1 — CI lint cleanup and registry-aligned patch release (2026-06-16)
19
+
20
+ ### Fixed
21
+
22
+ - Removed release-blocking ESLint warnings/errors in native root loop, Headroom replay verifier, Freedomd runtime files, structured compaction, and session utilities.
23
+ - Aligned package/docs/theme metadata for the `0.80.1` patch release after publishing `0.80.0`.
24
+
25
+ ## v0.80.0 — Freedomd sovereignty, default agent freedom, and release-ready GitHub docs (2026-06-16)
26
+
27
+ ### Added
28
+
29
+ - Added Freedomd provider-sovereignty control plane: policy compiler, sovereignty scoring, retention gate, cutoff-resilient routing, degraded plans, local-first evidence envelopes, incident feeds, and provider exception artifacts.
30
+ - Added default agent freedom behavior with strict guardrails opt-in via `OMK_STRICT_GUARDRAIL=1`; Freedomd routing remains explicitly controlled with `OMK_FREEDOMD_MODE=balanced|strict`.
31
+ - Added Headroom control-plane hardening: loop-risk signals, replay verifier, compaction quality gate, artifact hashing, ontology relation gate, and adapter compaction consumption.
32
+ - Added Freedomd README/release asset provenance and GitHub-facing documentation for provider independence, retention safety, and evidence portability.
33
+
34
+ ### Changed
35
+
36
+ - Refreshed README, docs, roadmap, maturity notes, init templates, themes, and package metadata to align with `open-multi-agent-kit@0.80.0` and runtime contract family `v1.2`.
37
+ - Wired Freedomd routing into the runtime-backed task runner and propagated sovereignty metadata through DAG/node routing, task context, and worker manifests.
38
+
39
+ ### Fixed
40
+
41
+ - Closed remaining post-0.79.3 runtime hardening risks around prompt privacy, evidence gates, private stderr retention, provider health escalation, adapter cutoff handling, and graph ontology consistency.
42
+
5
43
  ## v0.79.3 — GLM 5.2 max thinking, scroll-safe TTY, and OSS CLI polish (2026-06-15)
6
44
 
7
45
  ### Added
package/MATURITY.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # OMK Command Maturity Matrix
2
2
 
3
3
  Last updated: 2026-05-24
4
- Current source version: v0.79.3
4
+ Current source version: v0.80.2
5
5
 
6
6
  | Level | Meaning |
7
7
  |-------|---------|
@@ -72,5 +72,5 @@ Current source version: v0.79.3
72
72
  | 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
73
  | 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
74
  | 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, getting-started docs, package audit, and release-gate commands now distinguish the v0.79.3 source target from registry-published claims while documenting alpha/experimental surfaces, parallel subagent orchestration, typed doctor repair plans, startup update prompts, native safety package readiness, current harness templates, packaged workflow skills, 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, GitHub Smoke Test, registry verification, and GitHub CI evidence on the exact commit as the publish/deploy gate before claiming v0.79.3 as released. |
75
+ | Release docs and site | README, CHANGELOG, MATURITY, ROADMAP, getting-started docs, package audit, and release-gate commands now distinguish the v0.80.2 source target from registry-published claims while documenting alpha/experimental surfaces, parallel subagent orchestration, typed doctor repair plans, startup update prompts, native safety package readiness, current harness templates, packaged workflow skills, 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, GitHub Smoke Test, registry verification, and GitHub CI evidence on the exact commit as the publish/deploy gate before claiming v0.80.2 as released. |
76
76
  | Goal planner | Goal lifecycle exists, including continue, generated plan/evidence criteria, and verification. | Expand planner quality scoring and release evidence. |
package/README.md CHANGED
@@ -1,25 +1,36 @@
1
- # OMK
1
+ # OMK — Freedomd agent control plane
2
2
 
3
- Run multiple coding agents safely in one repo.
3
+ **Local-first, multi-provider, evidence-based orchestration for coding agents.**
4
4
 
5
- OMK turns a coding task into a scoped DAG run: it routes the right model, limits tool access, requires evidence, and saves replayable artifacts before claiming success.
5
+ OMK turns a coding goal into a scoped DAG run, routes it across compatible runtimes, limits authority per lane, records local evidence, and keeps the loop moving even when a provider is unavailable, retained, export-restricted, or policy-blocked.
6
6
 
7
- Use it when one agent is too loose, too risky, or too hard to audit.
7
+ ![OMK Freedomd runtime control plane](readmeasset/omk-freedomd-control-plane.webp)
8
8
 
9
9
  <p>
10
- <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>
10
+ <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=F2A900"></a>
11
11
  <a href="LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-blue.svg"></a>
12
- <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>
12
+ <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-2F9B4A"></a>
13
13
  <a href="https://github.com/dmae97/open-multi-agent-kit/discussions"><img alt="discussions" src="https://img.shields.io/badge/discussions-open-9D4EDD"></a>
14
14
  </p>
15
15
 
16
+ ## What changed in v0.80.2
17
+
18
+ OMK now has a **Freedomd** control-plane direction:
19
+
20
+ - **Provider sovereignty scoring** — route by health, authority, capability, retention, jurisdiction, cutoff risk, locality, and portability.
21
+ - **Retention gate** — classify task data and decide `allow`, `redact`, `downgrade`, or `block` before a prompt leaves the local control plane.
22
+ - **Cutoff-resilient routing** — provider incidents and policy blocks degrade to local authority, read-only review, artifact replay, or a clear diagnostic instead of silently stalling.
23
+ - **Local-first evidence envelopes** — persist provider-independent evidence under `.omk/runs/<run-id>/freedomd/` with hashes for replay and audit.
24
+ - **Default agent freedom** — high-autonomy agent behavior is default; strict guardrails are opt-in with `OMK_STRICT_GUARDRAIL=1`.
25
+ - **Explicit Freedomd mode** — sovereignty routing is opt-in with `OMK_FREEDOMD_MODE=balanced` or `OMK_FREEDOMD_MODE=strict`.
26
+
16
27
  ## 30-second demo
17
28
 
18
29
  ```bash
19
30
  npx -y -p open-multi-agent-kit omk do "review this repo for release risk" --dry-run --json
20
31
  ```
21
32
 
22
- OMK should produce a bounded plan before changing files:
33
+ A dry run produces bounded planning artifacts before changing files:
23
34
 
24
35
  ```txt
25
36
  goal
@@ -28,13 +39,13 @@ goal
28
39
  flow
29
40
  goal -> input envelope -> DAG -> scoped lanes -> evidence -> verify
30
41
 
31
- artifacts (dry run)
42
+ artifacts
32
43
  .omk/runs/<run-id>/input-envelope.json
33
44
  .omk/runs/<run-id>/dag.json
34
45
  .omk/runs/<run-id>/dag-compile-report.json
35
46
  ```
36
47
 
37
- Executing (not dry-run) adds loop artifacts such as `.omk/runs/<run-id>/loop-state.json` and `.omk/runs/<run-id>/loop-decisions.jsonl`. Artifact names can evolve with the runtime contract; the invariant is that OMK persists reviewable run state before a worker claims completion.
48
+ Executing a run adds loop state, route decisions, evidence observations, and replayable artifacts under `.omk/runs/<run-id>/`.
38
49
 
39
50
  ## Install
40
51
 
@@ -45,7 +56,7 @@ omk doctor
45
56
  omk chat
46
57
  ```
47
58
 
48
- For local verification from a checkout:
59
+ Local checkout verification:
49
60
 
50
61
  ```bash
51
62
  npm ci
@@ -54,58 +65,94 @@ node dist/cli.js do "explain this repo" --dry-run --json
54
65
  npm run verify:no-kimi
55
66
  ```
56
67
 
57
- ## Use OMK if you
68
+ ## Configure Freedomd
58
69
 
59
- - use Codex, Claude Code, OpenCode, DeepSeek, Qwen, OpenRouter, MiMo, or local models in the same repo;
60
- - want agents to produce evidence before saying “done”;
61
- - need read/write/shell authority separated by task;
62
- - want replayable `.omk/runs/` artifacts for review;
63
- - need project-scoped MCP, skills, hooks, and provider lanes instead of ambient global tool access.
70
+ Balanced mode prefers provider diversity and records sovereignty diagnostics:
64
71
 
65
- ## How OMK differs
72
+ ```bash
73
+ OMK_FREEDOMD_MODE=balanced omk chat
74
+ ```
66
75
 
67
- | Tool type | Good at | Missing piece | OMK adds |
68
- | --- | --- | --- | --- |
69
- | Codex / Claude Code | Strong single-agent execution | Audit and routing layer | DAG, evidence, replay |
70
- | OpenCode | Terminal coding loop | Multi-provider governance | Provider authority + gates |
71
- | MCP servers | Tool access | Task-level control | Scoped MCP per lane |
72
- | CI | Post-hoc verification | Agent-time enforcement | Evidence before completion |
76
+ Strict mode prefers local/self-hosted paths and blocks retained/export-restricted providers more aggressively:
77
+
78
+ ```bash
79
+ OMK_FREEDOMD_MODE=strict OMK_MAX_RETENTION_DAYS=0 omk chat
80
+ ```
81
+
82
+ Provider incident overrides are local and auditable:
83
+
84
+ ```json
85
+ {
86
+ "schemaVersion": "omk.provider-incidents.v1",
87
+ "incidents": [
88
+ {
89
+ "providerId": "anthropic",
90
+ "kind": "export-control",
91
+ "severity": "block",
92
+ "reason": "operator policy override",
93
+ "updatedAt": "2026-06-16T00:00:00.000Z"
94
+ }
95
+ ]
96
+ }
97
+ ```
98
+
99
+ Save that as `.omk/provider-incidents.json`, or set `OMK_PROVIDER_INCIDENTS` to the same JSON. Optional public feeds can be supplied with `OMK_FREEDOMD_FEED_URLS`; feed failures never block routing and local overrides win.
100
+
101
+ ## Use OMK if you
102
+
103
+ - use Codex, OpenCode, CommandCode, Kimi, DeepSeek, GLM, Qwen, OpenRouter, MiMo, or local models in the same repo;
104
+ - want provider availability, retention, jurisdiction, and exportability treated as runtime risks;
105
+ - need read/write/shell/merge authority separated by task;
106
+ - want agents to produce replayable evidence before saying “done”;
107
+ - need project-scoped MCP, skills, hooks, and graph memory instead of ambient global tool access;
108
+ - need degraded local/review/replay modes when frontier providers are blocked.
73
109
 
74
110
  ## What OMK controls
75
111
 
76
112
  ```text
77
- Goal DAG plan scoped lanes evidence bundle verify gate replay / inspect
113
+ Goal -> DAG -> lane grants -> runtime routing -> evidence envelope -> verify -> replay
78
114
  ```
79
115
 
80
- - **Routing**: choose a compatible provider/runtime for the task.
81
- - **Authority**: keep read, write, shell, and merge powers explicit.
116
+ - **Routing**: choose compatible provider/runtime lanes with capability and sovereignty scores.
117
+ - **Authority**: keep read, write, patch, shell, MCP, and merge power explicit.
82
118
  - **Evidence**: require command output, diff, artifact, metric, or review proof.
83
- - **Replay**: save run artifacts under `.omk/runs/<run-id>/` for review.
119
+ - **Replay**: save run artifacts under `.omk/runs/<run-id>/` for audit.
120
+ - **Fallback**: degrade to local/review/replay modes when policy or provider health blocks execution.
84
121
  - **Scope**: keep MCP servers, skills, hooks, and memory bounded per lane.
85
122
 
86
- ## Examples
123
+ ## How OMK differs
87
124
 
88
- - [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.
89
- - [Provider fallback](https://github.com/dmae97/open-multi-agent-kit/tree/main/examples/provider-fallback): `--provider auto` routing with fallback planning.
90
- - [Proof index](https://github.com/dmae97/open-multi-agent-kit/blob/main/proof/PROOF_INDEX.md): source-controlled proof bundles checked by `npm run proof:check`.
125
+ | Surface | Common failure | OMK adds |
126
+ | --- | --- | --- |
127
+ | Single-agent coding CLIs | Strong execution but weak audit | DAG, lane grants, local evidence, replay |
128
+ | Cloud frontier providers | Policy/retention/export cutoff risk | Freedomd sovereignty scoring and degraded fallback |
129
+ | MCP servers | Ambient tool access | Per-lane MCP/tool/shell authority |
130
+ | CI | Post-hoc verification | Agent-time evidence gates before completion |
131
+ | Local LLMs | Lower capability but high sovereignty | Local-first fallback and review/replay modes |
91
132
 
92
- ## Maturity and safety claims
133
+ ## Release and safety claims
93
134
 
94
- Current source version: `open-multi-agent-kit@0.79.3`.
135
+ Current source version: `open-multi-agent-kit@0.80.2`.
95
136
 
96
- - Public package name: `open-multi-agent-kit`.
97
- - Runtime contract family: `v1.2` means contract family, not a stable npm `1.x` release.
137
+ - Runtime contract family: `v1.2`.
98
138
  - Release channel: `pre-1.0`.
99
- - OS-level sandboxing is planned, not claimed; child env hardening and approval gates are adapter-specific.
100
- - registry verification: treat npm `latest` claims as valid only after tagged CI and registry checks pass.
139
+ - OS-level sandboxing is **not** claimed; safety relies on authority gates, approval/sandbox policy, scoped capabilities, evidence, and local artifacts.
140
+ - npm `latest` claims are valid only after tagged CI and registry verification both pass.
141
+ - README hero generation used the local Codex OAuth `gpt-image-2` workflow; the official `omk image` OpenAI Images API path still requires an OpenAI Platform project API key supplied only at runtime.
101
142
 
102
- See [versioning](docs/versioning.md), [provider maturity](docs/provider-maturity.md), and [SECURITY.md](SECURITY.md).
143
+ See [versioning](docs/versioning.md), [claims](docs/claims.md), [provider maturity](docs/provider-maturity.md), and [SECURITY.md](SECURITY.md).
144
+
145
+ ## Examples
146
+
147
+ - [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.
148
+ - [Provider fallback](https://github.com/dmae97/open-multi-agent-kit/tree/main/examples/provider-fallback): `--provider auto` routing with fallback planning.
149
+ - [Proof index](https://github.com/dmae97/open-multi-agent-kit/blob/main/proof/PROOF_INDEX.md): source-controlled proof bundles checked by `npm run proof:check`.
103
150
 
104
151
  ## Community
105
152
 
106
153
  - Ask setup and provider questions in [Discussions](https://github.com/dmae97/open-multi-agent-kit/discussions).
107
154
  - File reproducible bugs in [Issues](https://github.com/dmae97/open-multi-agent-kit/issues).
108
- - If you want safer multi-agent coding runs, star the repo to follow the `v0.8` release line.
155
+ - Star the repo to follow the `0.80.x` pre-1.0 Freedomd release line.
109
156
 
110
157
  ## License
111
158
 
package/ROADMAP.md CHANGED
@@ -1,15 +1,17 @@
1
1
  # Roadmap
2
2
 
3
- Current source version: v1.1.18
4
- Last updated: 2026-05-24
3
+ Current source version: `open-multi-agent-kit@0.80.2` (`pre-1.0`; runtime contract family `v1.2`)
4
+ Last updated: 2026-06-15
5
5
 
6
- ## 2026-05-24 runtime hardening status
6
+ ## 2026-06-15 release truth status
7
7
 
8
- Latest pushed source on `new-origin/main` is `6305e2b62185c11549f59e2340936769a3027cdd`. This supersedes the earlier native-root pivot commit in the same line. The architecture direction remains OMK-as-root with Kimi as the default coding adapter, but the current line is still hardening-gated:
8
+ Current source and npm target is `open-multi-agent-kit@0.80.2` on the `v1.2` runtime contract family and `pre-1.0` release channel.
9
9
 
10
- - GitHub Actions Smoke Test is green on `6305e2b`.
11
- - GitHub Actions CI is red on Windows jobs on `6305e2b`; do not publish/tag v1.1.18 until this is fixed.
12
- - The active architecture backlog is now tracked in `docs/native-root-runtime-hardening.md`, `docs/native-root-runtime-algorithms.md`, and `.omk/specs/native-orchestrator-phase1/`.
10
+ - Main CI and main Smoke are green on the `0.80.2` release commit.
11
+ - Tag Release and tag Smoke are green for `v0.80.2`.
12
+ - npm `latest` is registry-verified as `open-multi-agent-kit@0.80.2`.
13
+ - OS-level sandboxing is still planned, not claimed; current safety relies on authority gates, approval policy, evidence, replay, and scoped runtime capabilities.
14
+ - The active architecture backlog is tracked in `docs/native-root-runtime-hardening.md`, `docs/native-root-runtime-algorithms.md`, and `.omk/specs/native-orchestrator-phase1/`.
13
15
 
14
16
  ## v1.1.9 reality
15
17
 
@@ -17,7 +19,7 @@ Provider routing and graph viewing are no longer purely future work:
17
19
 
18
20
  - `omk run`, `omk parallel`, and DAG replay expose `--provider auto|kimi`.
19
21
  - `omk provider` / `omk deepseek` manage DeepSeek enablement, key setup, availability checks, and default fallback to the most mature adapter.
20
- - DeepSeek is an opportunistic read-only/advisory worker; Kimi remains the most mature adapter, orchestrator, writer, merger, and final authority.
22
+ - DeepSeek and similar API providers remain read/review/advisory by default; write/shell/merge authority is selected by runtime-mode capability, health, approval policy, and sandbox constraints.
21
23
  - `omk graph view` generates an HTML view from `.omk/memory/graph-state.json`.
22
24
  - `omk goal` has a persisted lifecycle, continue loop, generated plan/evidence criteria, and verification flow.
23
25
 
@@ -67,13 +69,14 @@ Provider routing and graph viewing are no longer purely future work:
67
69
  ### P0: release and contract gates
68
70
 
69
71
  - Done: YAML validation now runs in local `verify` plus CI/smoke workflows.
70
- - Done: package dry-pack, package audit, tarball smoke, native safety build, and release matrix gates were re-verified against v1.1.17 artifacts.
71
- - Required before v1.1.18 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.
72
- - Required before v1.1.18 publish/tag: GitHub Actions CI and Smoke Test must both pass on the exact intended commit.
73
- - Done: provider/deepseek and screenshot JSON command contracts gained hermetic regression tests.
74
- - 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.
75
- - Remaining: lock runtime safety gates for native turn risk, approval/sandbox propagation, authority-provider resolution, provider health probes, and DeepSeek read-only routing.
76
- - Remaining: lock broader provider fallback metadata with tests for rate limit, timeout, and default fallback variants.
72
+ - Done: package dry-pack, package audit, tarball smoke, release matrix gates, GitHub Release, and npm registry verification were re-verified for `0.80.2`.
73
+ - Done: `version:check` now validates current-version Markdown claims in README, docs, ROADMAP, and init templates.
74
+ - Done: native turn risk defaults are safer: explicit read-only constraints override write keywords, ambiguous turns fall back to `ask`, and write/shell/merge turns require evidence gates.
75
+ - Done: tool authority has staged `shadow|warn|enforce` modes, with native turn dispatch blocking in enforce mode.
76
+ - Done: runtime routing is health-aware for async execution paths and records `executeTask` decision traces.
77
+ - Done: headroom compaction can feed the effective runtime context capsule.
78
+ - Required before any future publish/tag: pass `npm run release:check`, tag CI/smoke, tarball install smoke, package audit, and registry verification on the exact intended release diff.
79
+ - Remaining: expand provider health from available/unavailable to binary/auth/model/quota/rate-limit/latency vectors across all adapters.
77
80
  - Remaining: define minimum machine-readable CLI envelopes for the rest of the automation-critical commands.
78
81
 
79
82
  ### P1: observability and diagnostics
@@ -95,8 +98,8 @@ Provider routing and graph viewing are no longer purely future work:
95
98
 
96
99
  ### Provider routing maturity
97
100
 
98
- - Keep Kimi as the most mature adapter and main orchestrator, planner, merger, and final synthesis runtime.
99
- - Use provider hints for explorer, reviewer, QA, planner, and documentation roles only when preflight is healthy and task risk is low.
101
+ - Keep authority at the runtime-mode level: API runtimes are advisory/read/review unless a runtime-mode contract grants write/shell/merge authority.
102
+ - Use provider hints for explorer, reviewer, QA, planner, and documentation roles only when runtime health is acceptable and task risk is low.
100
103
  - Record provider attempts, route confidence, fallback reason, and final authority in run evidence.
101
104
 
102
105
  ### Graph and memory maturity
@@ -17,32 +17,129 @@
17
17
  "muted": "#9DB3C7",
18
18
  "gray": "#758FA8"
19
19
  },
20
- "backgrounds": ["dark", "surface"],
20
+ "backgrounds": [
21
+ "dark",
22
+ "surface"
23
+ ],
21
24
  "semantics": {
22
- "route.active": { "color": "cyan", "glyph": "▸", "usage": "text" },
23
- "route.fallback": { "color": "amber", "glyph": "↻", "usage": "text" },
24
- "route.dead": { "color": "red", "glyph": "", "usage": "text" },
25
- "evidence.pass": { "color": "mint", "glyph": "✓", "usage": "text" },
26
- "evidence.fail": { "color": "red", "glyph": "✗", "usage": "text" },
27
- "evidence.pending": { "color": "amber", "glyph": "◐", "usage": "text" },
28
- "dag.lane.running": { "color": "cyan", "glyph": "▶", "usage": "text" },
29
- "dag.lane.blocked": { "color": "amber", "glyph": "", "usage": "text" },
30
- "dag.lane.done": { "color": "mint", "glyph": "●", "usage": "text" },
31
- "dag.lane.queued": { "color": "muted", "glyph": "◌", "usage": "text" },
32
- "telemetry.info": { "color": "cream", "glyph": "·", "usage": "text" },
33
- "telemetry.warn": { "color": "amber", "glyph": "▲", "usage": "text" },
34
- "telemetry.error": { "color": "red", "glyph": "", "usage": "text" },
35
- "control.accent": { "color": "purple", "glyph": "◆", "kind": "chrome", "usage": "indicator" },
36
- "control.dim": { "color": "gray", "glyph": "┊", "kind": "chrome", "usage": "text" },
37
- "control.fg": { "color": "cream", "kind": "chrome", "usage": "text" },
38
- "control.bg": { "color": "dark", "kind": "background", "usage": "background" }
25
+ "route.active": {
26
+ "color": "cyan",
27
+ "glyph": "",
28
+ "usage": "text"
29
+ },
30
+ "route.fallback": {
31
+ "color": "amber",
32
+ "glyph": "",
33
+ "usage": "text"
34
+ },
35
+ "route.dead": {
36
+ "color": "red",
37
+ "glyph": "",
38
+ "usage": "text"
39
+ },
40
+ "evidence.pass": {
41
+ "color": "mint",
42
+ "glyph": "✓",
43
+ "usage": "text"
44
+ },
45
+ "evidence.fail": {
46
+ "color": "red",
47
+ "glyph": "✗",
48
+ "usage": "text"
49
+ },
50
+ "evidence.pending": {
51
+ "color": "amber",
52
+ "glyph": "◐",
53
+ "usage": "text"
54
+ },
55
+ "dag.lane.running": {
56
+ "color": "cyan",
57
+ "glyph": "▶",
58
+ "usage": "text"
59
+ },
60
+ "dag.lane.blocked": {
61
+ "color": "amber",
62
+ "glyph": "⏸",
63
+ "usage": "text"
64
+ },
65
+ "dag.lane.done": {
66
+ "color": "mint",
67
+ "glyph": "●",
68
+ "usage": "text"
69
+ },
70
+ "dag.lane.queued": {
71
+ "color": "muted",
72
+ "glyph": "◌",
73
+ "usage": "text"
74
+ },
75
+ "telemetry.info": {
76
+ "color": "cream",
77
+ "glyph": "·",
78
+ "usage": "text"
79
+ },
80
+ "telemetry.warn": {
81
+ "color": "amber",
82
+ "glyph": "▲",
83
+ "usage": "text"
84
+ },
85
+ "telemetry.error": {
86
+ "color": "red",
87
+ "glyph": "✖",
88
+ "usage": "text"
89
+ },
90
+ "control.accent": {
91
+ "color": "purple",
92
+ "glyph": "◆",
93
+ "kind": "chrome",
94
+ "usage": "indicator"
95
+ },
96
+ "control.dim": {
97
+ "color": "gray",
98
+ "glyph": "┊",
99
+ "kind": "chrome",
100
+ "usage": "text"
101
+ },
102
+ "control.fg": {
103
+ "color": "cream",
104
+ "kind": "chrome",
105
+ "usage": "text"
106
+ },
107
+ "control.bg": {
108
+ "color": "dark",
109
+ "kind": "background",
110
+ "usage": "background"
111
+ }
39
112
  },
40
113
  "components": {
41
- "statusCard": { "border": "control.accent", "title": "control.fg", "body": "telemetry.info", "meta": "control.dim" },
42
- "routerTable": { "active": "route.active", "fallback": "route.fallback", "dead": "route.dead", "header": "control.accent" },
43
- "evidenceGate": { "pass": "evidence.pass", "fail": "evidence.fail", "pending": "evidence.pending" },
44
- "dagLanes": { "running": "dag.lane.running", "blocked": "dag.lane.blocked", "done": "dag.lane.done", "queued": "dag.lane.queued" },
45
- "logStream": { "info": "telemetry.info", "warn": "telemetry.warn", "error": "telemetry.error", "dim": "control.dim" }
114
+ "statusCard": {
115
+ "border": "control.accent",
116
+ "title": "control.fg",
117
+ "body": "telemetry.info",
118
+ "meta": "control.dim"
119
+ },
120
+ "routerTable": {
121
+ "active": "route.active",
122
+ "fallback": "route.fallback",
123
+ "dead": "route.dead",
124
+ "header": "control.accent"
125
+ },
126
+ "evidenceGate": {
127
+ "pass": "evidence.pass",
128
+ "fail": "evidence.fail",
129
+ "pending": "evidence.pending"
130
+ },
131
+ "dagLanes": {
132
+ "running": "dag.lane.running",
133
+ "blocked": "dag.lane.blocked",
134
+ "done": "dag.lane.done",
135
+ "queued": "dag.lane.queued"
136
+ },
137
+ "logStream": {
138
+ "info": "telemetry.info",
139
+ "warn": "telemetry.warn",
140
+ "error": "telemetry.error",
141
+ "dim": "control.dim"
142
+ }
46
143
  },
47
144
  "fallback16": {
48
145
  "route.active": "brightCyan",
@@ -75,6 +172,7 @@
75
172
  "readmeasset/omk-evidence-ledger.svg",
76
173
  "readmeasset/omk-logo-mark.svg",
77
174
  "readmeasset/omk-provider-lanes.svg"
78
- ]
175
+ ],
176
+ "omkVersion": "0.80.2"
79
177
  }
80
178
  }
@@ -210,7 +210,7 @@
210
210
  "meta": {
211
211
  "provenance": "Standalone oxidized rust-forge palette for the OMK orchestration console. Warm coal/iron/anvil backgrounds, rust-orange + molten + copper + ember heat accents, oxide/quench/verdigris patina greens for pass/done, crimson for fail/dead, steel/scale/ash grays, and bone foreground. Forge-specific heat/anvil/quench semantics make OMK control surfaces distinct from provider branding while preserving NO_COLOR glyph safety.",
212
212
  "tierAssumptions": "16-color tier gated against stock VGA/xterm ANSI values; terminals with remapped ANSI-16 palettes are outside the contract — glyphs are the safety net. NO_COLOR note: control.dim uses ┊ so logStream info (telemetry.info ·) and dim rows stay distinguishable without color.",
213
- "omkVersion": "0.78.6",
213
+ "omkVersion": "0.80.2",
214
214
  "independence": "OMK is the control plane; providers and models are adapter lanes, never the product identity or final authority."
215
215
  }
216
216
  }
@@ -1,8 +1,9 @@
1
- import type { TaskRunner } from "../../contracts/orchestration.js";
1
+ import type { TaskResult, TaskRunner } from "../../contracts/orchestration.js";
2
2
  import type { RuntimeBootstrap } from "../../runtime/runtime-bootstrap.js";
3
3
  import type { ChatLayout } from "./utils.js";
4
4
  import { type DagNode } from "../../orchestration/dag.js";
5
5
  import type { CliRenderer } from "../../cli/ui/renderer.js";
6
+ import type { TaskRunContext } from "../../contracts/worker-context.js";
6
7
  import type { OmkBrandThemeName, OmkTuiMotion } from "../../brand/theme.js";
7
8
  import type { TuiView } from "../../tui/model.js";
8
9
  export interface NativeRootLoopInput {
@@ -44,8 +45,18 @@ export declare function createNativeRootSessionState(input: {
44
45
  bootstrap: RuntimeBootstrap;
45
46
  executionPrompt?: string;
46
47
  }): NativeRootSessionState;
47
- export type NativeTurnRisk = "read" | "write" | "shell" | "merge";
48
- export declare function inferNativeTurnRisk(prompt: string): NativeTurnRisk;
48
+ export type NativeTurnRisk = "read" | "write" | "shell" | "merge" | "ask";
49
+ export interface NativeTurnRiskTrace {
50
+ readonly risk: NativeTurnRisk;
51
+ readonly confidence: number;
52
+ readonly matchedSignal: string;
53
+ readonly readOnlyOverride: boolean;
54
+ readonly positiveSignals: readonly string[];
55
+ readonly negativeScopes: readonly string[];
56
+ readonly requestedOps: readonly NativeTurnRisk[];
57
+ readonly excludedOps: readonly NativeTurnRisk[];
58
+ }
59
+ export declare function inferNativeTurnRisk(prompt: string): NativeTurnRiskTrace;
49
60
  export declare function buildNativeRootLoopTurnNode(input: {
50
61
  bootstrap: RuntimeBootstrap;
51
62
  prompt: string;
@@ -54,5 +65,18 @@ export declare function buildNativeRootLoopTurnNode(input: {
54
65
  skillNames?: readonly string[];
55
66
  hookNames?: readonly string[];
56
67
  executionPrompt?: string;
68
+ runId?: string;
57
69
  }): DagNode;
70
+ export declare function executeNativeRootTurn(input: {
71
+ taskRunner: TaskRunner;
72
+ node: DagNode;
73
+ env: Record<string, string>;
74
+ signal: AbortSignal;
75
+ heartbeatEnabled: boolean;
76
+ renderer?: CliRenderer;
77
+ mcpAllowlist?: readonly string[];
78
+ skillNames?: readonly string[];
79
+ hookNames?: readonly string[];
80
+ runContext?: TaskRunContext;
81
+ }): Promise<TaskResult>;
58
82
  export declare function runNativeOmkRootLoop(input: NativeRootLoopInput): Promise<number>;