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.
- package/CHANGELOG.md +56 -15
- package/MATURITY.md +6 -2
- package/README.md +125 -26
- package/ROADMAP.md +36 -28
- package/dist/cli/register-basic-commands.js +3 -2
- package/dist/cli/register-mcp-dag-cron-screenshot-commands.js +2 -0
- package/dist/cli/register-spec-agent-goal-commands.js +45 -0
- package/dist/cli/register-tool-commands.js +11 -0
- package/dist/cli/register-workflow-commands.js +1 -0
- package/dist/cli/registry/tooling.js +3 -2
- package/dist/cli/release-promotion-gate.d.ts +14 -0
- package/dist/cli/release-promotion-gate.js +71 -0
- package/dist/cli/v2/release-commands.d.ts +29 -0
- package/dist/cli/v2/release-commands.js +95 -0
- package/dist/commands/chat/core.js +5 -0
- package/dist/commands/chat/native-root-loop.js +74 -1
- package/dist/commands/chat/slash/commands/session.js +19 -1
- package/dist/commands/dag-from-spec.d.ts +1 -0
- package/dist/commands/dag-from-spec.js +61 -1
- package/dist/commands/goal-interview.d.ts +18 -0
- package/dist/commands/goal-interview.js +396 -0
- package/dist/commands/graph.d.ts +62 -0
- package/dist/commands/graph.js +182 -0
- package/dist/commands/merge.d.ts +1 -0
- package/dist/commands/merge.js +88 -0
- package/dist/commands/parallel/core.js +3 -3
- package/dist/commands/provider.js +5 -3
- package/dist/commands/star.js +6 -1
- package/dist/commands/summary.d.ts +4 -1
- package/dist/commands/summary.js +103 -1
- package/dist/commands/team.d.ts +1 -0
- package/dist/commands/team.js +38 -0
- package/dist/contracts/interview.d.ts +106 -0
- package/dist/contracts/interview.js +9 -0
- package/dist/contracts/provider-health.d.ts +42 -0
- package/dist/contracts/provider-health.js +9 -0
- package/dist/evidence/index.d.ts +4 -0
- package/dist/evidence/index.js +2 -0
- package/dist/evidence/proof-trust-cli.d.ts +8 -0
- package/dist/evidence/proof-trust-cli.js +27 -0
- package/dist/evidence/proof-trust.d.ts +14 -0
- package/dist/evidence/proof-trust.js +381 -0
- package/dist/evidence/regression-proof-matrix.d.ts +42 -0
- package/dist/evidence/regression-proof-matrix.js +72 -0
- package/dist/goal/intent-frame.d.ts +30 -0
- package/dist/goal/intent-frame.js +39 -9
- package/dist/goal/interview-assimilation.d.ts +13 -0
- package/dist/goal/interview-assimilation.js +383 -0
- package/dist/goal/interview-question-bank.d.ts +11 -0
- package/dist/goal/interview-question-bank.js +225 -0
- package/dist/goal/interview-scoring.d.ts +31 -0
- package/dist/goal/interview-scoring.js +187 -0
- package/dist/goal/interview-session.d.ts +25 -0
- package/dist/goal/interview-session.js +116 -0
- package/dist/input/input-envelope.d.ts +22 -0
- package/dist/input/input-envelope.js +1 -0
- package/dist/memory/local-graph-memory-store.d.ts +15 -0
- package/dist/memory/local-graph-memory-store.js +176 -0
- package/dist/memory/memory-store.d.ts +18 -0
- package/dist/memory/memory-store.js +18 -0
- package/dist/orchestration/adaptorch-topology.d.ts +59 -0
- package/dist/orchestration/adaptorch-topology.js +194 -0
- package/dist/orchestration/capability-routing.d.ts +23 -0
- package/dist/orchestration/capability-routing.js +56 -0
- package/dist/orchestration/dag-compiler-types.d.ts +3 -0
- package/dist/orchestration/dag-compiler.js +14 -1
- package/dist/orchestration/parallel-orchestrator.d.ts +6 -0
- package/dist/orchestration/parallel-orchestrator.js +31 -0
- package/dist/providers/provider-health.d.ts +39 -0
- package/dist/providers/provider-health.js +161 -0
- package/dist/runtime/advanced-control-loop.d.ts +60 -0
- package/dist/runtime/advanced-control-loop.js +136 -0
- package/dist/runtime/agent-runtime.d.ts +10 -0
- package/dist/runtime/blast-radius.d.ts +10 -0
- package/dist/runtime/blast-radius.js +14 -0
- package/dist/runtime/context-broker.d.ts +13 -4
- package/dist/runtime/context-broker.js +14 -1
- package/dist/runtime/contracts/evidence.d.ts +87 -0
- package/dist/runtime/contracts/evidence.js +7 -0
- package/dist/runtime/contracts/router-v2.d.ts +44 -0
- package/dist/runtime/contracts/router-v2.js +4 -0
- package/dist/runtime/contracts/weakness-remediation.d.ts +67 -0
- package/dist/runtime/contracts/weakness-remediation.js +36 -0
- package/dist/runtime/headroom-policy.d.ts +37 -0
- package/dist/runtime/headroom-policy.js +122 -0
- package/dist/runtime/kimi-api-runtime.js +59 -1
- package/dist/runtime/ouroboros-policy.d.ts +57 -0
- package/dist/runtime/ouroboros-policy.js +134 -0
- package/dist/runtime/proof-bundle-trust.d.ts +74 -0
- package/dist/runtime/proof-bundle-trust.js +100 -0
- package/dist/runtime/provider-maturity-gate.d.ts +41 -0
- package/dist/runtime/provider-maturity-gate.js +101 -0
- package/dist/runtime/public-surface.d.ts +93 -0
- package/dist/runtime/public-surface.js +146 -0
- package/dist/runtime/router-v2-scoring.d.ts +11 -0
- package/dist/runtime/router-v2-scoring.js +151 -0
- package/dist/runtime/runtime-backed-task-runner.js +9 -1
- package/dist/runtime/tool-dispatch-contracts.d.ts +57 -1
- package/dist/runtime/tool-dispatch-contracts.js +79 -3
- package/dist/runtime/weakness-remediation-index.d.ts +27 -0
- package/dist/runtime/weakness-remediation-index.js +37 -0
- package/dist/safety/tool-authority-gate.d.ts +62 -0
- package/dist/safety/tool-authority-gate.js +108 -0
- package/dist/schema/proof-bundle.schema.d.ts +26 -26
- package/dist/schema/provider.schema.d.ts +4 -4
- package/dist/util/clipboard-image.d.ts +49 -0
- package/dist/util/clipboard-image.js +263 -0
- package/dist/util/first-run-star.d.ts +9 -0
- package/dist/util/first-run-star.js +42 -1
- package/dist/util/terminal-input.d.ts +20 -0
- package/dist/util/terminal-input.js +32 -0
- package/dist/util/update-check.d.ts +6 -1
- package/dist/util/update-check.js +35 -1
- package/docs/2026-06-08/critical-issues.md +20 -0
- package/docs/2026-06-08/improvements.md +14 -0
- package/docs/2026-06-08/init-checklist.md +25 -0
- package/docs/2026-06-08/plan.md +20 -0
- package/docs/2026-06-09/critical-issues.md +20 -0
- package/docs/2026-06-09/improvements.md +14 -0
- package/docs/2026-06-09/init-checklist.md +25 -0
- package/docs/2026-06-09/plan.md +20 -0
- package/docs/getting-started.md +31 -3
- package/docs/github-organic-promotion.md +127 -0
- package/docs/integrations/ouroboros.md +96 -0
- package/docs/native-root-runtime-algorithms.md +301 -0
- package/docs/provider-maturity.md +1 -1
- package/docs/versioning.md +3 -3
- package/package.json +4 -3
- package/readmeasset/ASSET_INDEX.md +1 -0
- package/templates/skills/agents/omk-agent-reach-websearch/SKILL.md +55 -0
- package/templates/skills/kimi/omk-agent-reach-websearch/SKILL.md +55 -0
- package/dist/native/linux-x64/omk-safety +0 -0
package/docs/getting-started.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# Getting Started
|
|
2
2
|
|
|
3
|
-
Source release target:
|
|
3
|
+
Source release target: `open-multi-agent-kit@0.78.1` (`pre-1.0`).
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
7
7
|
- Node.js 20+
|
|
8
8
|
- Git
|
|
9
|
-
- At least one
|
|
9
|
+
- At least one configured provider or local runtime adapter. Kimi is the most mature authority path; other lanes depend on local CLI/API availability and the provider-maturity contract.
|
|
10
10
|
|
|
11
11
|
## Install
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
npm install -g
|
|
14
|
+
npm install -g open-multi-agent-kit
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
## Initialize a project
|
|
@@ -35,3 +35,31 @@ omk chat
|
|
|
35
35
|
omk plan "refactor auth module"
|
|
36
36
|
omk run feature-dev "add user dashboard"
|
|
37
37
|
```
|
|
38
|
+
|
|
39
|
+
## Updates
|
|
40
|
+
|
|
41
|
+
On startup OMK checks npm for a newer release and, when one exists, shows an
|
|
42
|
+
interactive prompt (Update now / Skip this version / Remind me later). Choosing
|
|
43
|
+
"Update now" runs `npm i -g open-multi-agent-kit`.
|
|
44
|
+
|
|
45
|
+
- **Automatic (non-interactive) updates:** set `OMK_AUTO_UPDATE=1` (also accepts
|
|
46
|
+
`true|yes|on|always`). When OMK is outdated it self-updates on startup without
|
|
47
|
+
prompting. CI is always skipped, and `OMK_UPDATE_PROMPT=off` disables update
|
|
48
|
+
checks entirely.
|
|
49
|
+
- Manual check: `omk update check` (add `--refresh` to bypass the cache).
|
|
50
|
+
|
|
51
|
+
## Adaptive runtime algorithms
|
|
52
|
+
|
|
53
|
+
OMK embeds three adaptive control behaviors (all additive, safe defaults, non-fatal fallback):
|
|
54
|
+
|
|
55
|
+
- **Topology-routed first run** — on the first DAG composition OMK derives structural features (width, critical depth, coupling, parallel ratio) and selects an execution topology (parallel / pipeline / map-reduce / hierarchical / hybrid / dag) with layered waves. Toggle with `OMK_ADAPTORCH_ROUTING=off`.
|
|
56
|
+
- **Context guard before 90%** — before the context window crosses a threshold (default `0.90`) OMK compacts via [headroom](https://github.com/chopratejas/headroom) when available, otherwise its built-in budget optimizer. Tune with `OMK_HEADROOM_THRESHOLD` (0.50–0.99), `OMK_CONTEXT_WINDOW`, or disable with `OMK_HEADROOM=off`.
|
|
57
|
+
- **Spec-first via Ouroboros** — goal/spec/orchestration intents prefer the embedded Ouroboros flow by default; when Ouroboros is not installed OMK degrades to the native path with no error. Modes: `OMK_OUROBOROS=always` (default) `| auto | off`. See [Ouroboros integration](integrations/ouroboros.md).
|
|
58
|
+
|
|
59
|
+
## Support the project (GitHub star)
|
|
60
|
+
|
|
61
|
+
First-time users get a one-time prompt to star the repository. If the GitHub CLI
|
|
62
|
+
(`gh`) is authenticated the star is applied directly; otherwise OMK prints the
|
|
63
|
+
repo URL and, on a desktop session, opens it in your browser so you can star in
|
|
64
|
+
one click. You can star anytime with `omk star`, check status with
|
|
65
|
+
`omk star --status`, and disable the prompt with `OMK_STAR_PROMPT=off`.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# GitHub organic promotion checklist
|
|
2
|
+
|
|
3
|
+
OMK's strongest GitHub search position is:
|
|
4
|
+
|
|
5
|
+
> Provider-neutral multi-agent control plane for coding agents: route runtimes, scope MCP tools, run DAG workers, verify evidence, and replay agent runs.
|
|
6
|
+
|
|
7
|
+
## Repository About
|
|
8
|
+
|
|
9
|
+
Recommended GitHub About description:
|
|
10
|
+
|
|
11
|
+
```txt
|
|
12
|
+
Provider-neutral multi-agent control plane for coding agents. Route runtimes, scope MCP tools, run DAG workers, verify evidence, and replay agent runs from the omk CLI.
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Apply after maintainer confirmation:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
gh repo edit dmae97/open-multi-agent-kit \
|
|
19
|
+
--description "Provider-neutral multi-agent control plane for coding agents. Route runtimes, scope MCP tools, run DAG workers, verify evidence, and replay agent runs from the omk CLI."
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## GitHub Topics
|
|
23
|
+
|
|
24
|
+
Use all 20 topics:
|
|
25
|
+
|
|
26
|
+
```txt
|
|
27
|
+
ai-agent
|
|
28
|
+
ai-agents
|
|
29
|
+
llm
|
|
30
|
+
coding-agent
|
|
31
|
+
ai-coding
|
|
32
|
+
agentic-coding
|
|
33
|
+
multi-agent
|
|
34
|
+
multi-agent-orchestration
|
|
35
|
+
agent-orchestration
|
|
36
|
+
agent-runtime
|
|
37
|
+
agent-control-plane
|
|
38
|
+
developer-tools
|
|
39
|
+
ai-devtools
|
|
40
|
+
cli
|
|
41
|
+
typescript
|
|
42
|
+
nodejs
|
|
43
|
+
mcp
|
|
44
|
+
model-context-protocol
|
|
45
|
+
workflow-automation
|
|
46
|
+
provider-neutral
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Apply after maintainer confirmation:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
gh repo edit dmae97/open-multi-agent-kit \
|
|
53
|
+
--add-topic ai-agent \
|
|
54
|
+
--add-topic ai-agents \
|
|
55
|
+
--add-topic llm \
|
|
56
|
+
--add-topic coding-agent \
|
|
57
|
+
--add-topic ai-coding \
|
|
58
|
+
--add-topic agentic-coding \
|
|
59
|
+
--add-topic multi-agent \
|
|
60
|
+
--add-topic multi-agent-orchestration \
|
|
61
|
+
--add-topic agent-orchestration \
|
|
62
|
+
--add-topic agent-runtime \
|
|
63
|
+
--add-topic agent-control-plane \
|
|
64
|
+
--add-topic developer-tools \
|
|
65
|
+
--add-topic ai-devtools \
|
|
66
|
+
--add-topic cli \
|
|
67
|
+
--add-topic typescript \
|
|
68
|
+
--add-topic nodejs \
|
|
69
|
+
--add-topic mcp \
|
|
70
|
+
--add-topic model-context-protocol \
|
|
71
|
+
--add-topic workflow-automation \
|
|
72
|
+
--add-topic provider-neutral
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Social preview
|
|
76
|
+
|
|
77
|
+
Upload this generated image in GitHub repository settings:
|
|
78
|
+
|
|
79
|
+
```txt
|
|
80
|
+
readmeasset/social-preview.png
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
It uses the message:
|
|
84
|
+
|
|
85
|
+
```txt
|
|
86
|
+
OMK
|
|
87
|
+
Provider-Neutral Multi-Agent Control Plane
|
|
88
|
+
Route. Verify. Replay.
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Awesome-list PR entries
|
|
92
|
+
|
|
93
|
+
### bradAGI/awesome-cli-coding-agents
|
|
94
|
+
|
|
95
|
+
Preferred section: `Harnesses & orchestration`.
|
|
96
|
+
|
|
97
|
+
```md
|
|
98
|
+
- **[OMK](https://github.com/dmae97/open-multi-agent-kit)** `⭐ <current>` — Provider-neutral CLI control plane for coding agents: routes runtimes, scopes MCP, runs DAG workers, and verifies evidence before completion. MIT.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### e2b-dev/awesome-ai-sdks
|
|
102
|
+
|
|
103
|
+
```md
|
|
104
|
+
## [OMK](https://github.com/dmae97/open-multi-agent-kit)
|
|
105
|
+
|
|
106
|
+
OMK is a provider-neutral multi-agent control plane for coding workflows. It routes agent runtimes, scopes MCP tools, runs DAG-based workers, verifies evidence, and preserves replayable run artifacts.
|
|
107
|
+
|
|
108
|
+
### Links
|
|
109
|
+
|
|
110
|
+
- [GitHub](https://github.com/dmae97/open-multi-agent-kit)
|
|
111
|
+
- [npm](https://www.npmjs.com/package/open-multi-agent-kit)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### punkpeye/awesome-mcp-devtools
|
|
115
|
+
|
|
116
|
+
Preferred section: `Frameworks` or `Development Tools`.
|
|
117
|
+
|
|
118
|
+
```md
|
|
119
|
+
- [OMK](https://github.com/dmae97/open-multi-agent-kit) - TypeScript CLI control plane for coding agents with scoped MCP injection, provider routing, evidence gates, and replayable run telemetry.
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Measurement plan
|
|
123
|
+
|
|
124
|
+
- Topics applied + 7 days: inspect GitHub topic/search traffic.
|
|
125
|
+
- First awesome PR merged + 7 days: check `Referring sites` for that awesome repo.
|
|
126
|
+
- 2 weeks: compare visitors, clones, npm downloads, and popular README content.
|
|
127
|
+
- 4 weeks: review visitor-to-star conversion; 1-3% is acceptable for early OSS.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Ouroboros integration (embedded in OMK)
|
|
2
|
+
|
|
3
|
+
[Ouroboros](https://github.com/Q00/ouroboros) is a spec-first "Agent OS"
|
|
4
|
+
(PyPI `ouroboros-ai`). OMK embeds it through the documented runtime-adapter
|
|
5
|
+
surface that Ouroboros already supports for the `pi`-family CLI that OMK builds
|
|
6
|
+
on:
|
|
7
|
+
|
|
8
|
+
- an **MCP server** (`ouroboros mcp serve`, ~29 `ouroboros_*` tools) registered in OMK's MCP config,
|
|
9
|
+
- the official **`ooo` bridge extension** installed into OMK's agent extensions dir, so `ooo ...` works inside interactive OMK sessions, and
|
|
10
|
+
- the 20 Ouroboros **skills** (SKILL.md) installed namespaced as `ouroboros-*`.
|
|
11
|
+
|
|
12
|
+
Ouroboros owns its own workflow engine; the OMK runtime CLI is selected as its
|
|
13
|
+
`runtime_backend` (a `--mode json` subprocess). This follows the runtime guide
|
|
14
|
+
in the Ouroboros repository.
|
|
15
|
+
|
|
16
|
+
## Prerequisites
|
|
17
|
+
|
|
18
|
+
- Python `>=3.12`, `uv` (or `pipx`), and the OMK runtime CLI on `PATH`.
|
|
19
|
+
- OMK global agent dir at `~/.omk/agent` (extensions, skills, `mcp.json`).
|
|
20
|
+
|
|
21
|
+
## Install (reproducible)
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# 0. Back up the global MCP config (mode 600, contains secrets) before merging.
|
|
25
|
+
ts=$(date +%Y%m%d-%H%M%S)
|
|
26
|
+
cp -a ~/.omk/agent/mcp.json ~/.omk/agent/mcp.json.bak-$ts
|
|
27
|
+
|
|
28
|
+
# 1. Install the package with MCP support.
|
|
29
|
+
uv tool install 'ouroboros-ai[mcp,claude]' # or: pipx install 'ouroboros-ai[mcp,claude]'
|
|
30
|
+
|
|
31
|
+
# 2. Non-interactive runtime setup: writes ~/.ouroboros/config.yaml
|
|
32
|
+
# (runtime_backend) and generates the ooo bridge extension.
|
|
33
|
+
ouroboros setup --runtime pi --non-interactive
|
|
34
|
+
|
|
35
|
+
# 3. Mirror the generated ooo bridge into OMK's extension dir.
|
|
36
|
+
# (locate the file Ouroboros generated, regardless of upstream dir)
|
|
37
|
+
BRIDGE_SRC=$(find "$HOME" -maxdepth 4 -name ouroboros-ooo-bridge.ts -not -path '*/.omk/*' 2>/dev/null | head -1)
|
|
38
|
+
cp "$BRIDGE_SRC" ~/.omk/agent/extensions/ouroboros-ooo-bridge.ts
|
|
39
|
+
|
|
40
|
+
# 4. Register the MCP server in OMK (additive jq merge; keep mode 600).
|
|
41
|
+
OURO_BIN="$(command -v ouroboros)"
|
|
42
|
+
jq --arg bin "$OURO_BIN" '.mcpServers.ouroboros = {command:$bin, args:["mcp","serve"], env:{}}' \
|
|
43
|
+
~/.omk/agent/mcp.json > /tmp/omk-mcp.new \
|
|
44
|
+
&& python3 -m json.tool < /tmp/omk-mcp.new >/dev/null \
|
|
45
|
+
&& install -m600 /tmp/omk-mcp.new ~/.omk/agent/mcp.json && rm -f /tmp/omk-mcp.new
|
|
46
|
+
|
|
47
|
+
# 5. Install the 20 Ouroboros skills (namespaced).
|
|
48
|
+
git clone --depth 1 https://github.com/Q00/ouroboros.git /tmp/ouroboros-src
|
|
49
|
+
for d in /tmp/ouroboros-src/skills/*/; do b=$(basename "$d");
|
|
50
|
+
mkdir -p ~/.omk/agent/skills/ouroboros-$b;
|
|
51
|
+
cp "$d/SKILL.md" ~/.omk/agent/skills/ouroboros-$b/SKILL.md; done
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
> The MCP entry uses the absolute `ouroboros` binary path because OMK sanitizes
|
|
55
|
+
> the child environment; a bare `ouroboros`/`uvx` command may not resolve under
|
|
56
|
+
> the sanitized `PATH`.
|
|
57
|
+
|
|
58
|
+
## Verify
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
ouroboros --version
|
|
62
|
+
ouroboros mcp serve --help # MCP entrypoint
|
|
63
|
+
ouroboros dispatch --help # ooo bridge dispatch entrypoint
|
|
64
|
+
test -f ~/.omk/agent/extensions/ouroboros-ooo-bridge.ts && echo "omk bridge OK"
|
|
65
|
+
grep -q ouroboros ~/.omk/agent/mcp.json && echo "mcp registered"
|
|
66
|
+
ls -d ~/.omk/agent/skills/ouroboros-* | wc -l # expect 20
|
|
67
|
+
grep runtime_backend ~/.ouroboros/config.yaml # expect: pi
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
A successful MCP handshake reports `serverInfo: ouroboros-mcp` and ~29
|
|
71
|
+
`ouroboros_*` tools. In an interactive OMK session, after restart or `/reload`:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
ooo status
|
|
75
|
+
ooo auto build a small CLI
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Scope and safety notes
|
|
79
|
+
|
|
80
|
+
- The `ouroboros` MCP server is registered in the **global** `~/.omk/agent/mcp.json`,
|
|
81
|
+
so it is available under all-scope MCP sessions. Default project-scope sessions
|
|
82
|
+
(`omk-project` only) are unaffected, so OMK startup is not slowed by Ouroboros.
|
|
83
|
+
- `ouroboros setup` mutates `~/.ouroboros/config.yaml` and the upstream runtime's
|
|
84
|
+
global extensions dir; it does not touch the OMK repo.
|
|
85
|
+
- First MCP cold start resolves the uv tool venv and can be slow; `omk mcp doctor
|
|
86
|
+
ouroboros` may need a longer timeout on first run.
|
|
87
|
+
|
|
88
|
+
## Rollback
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
ts=<backup timestamp>
|
|
92
|
+
rm -f ~/.omk/agent/extensions/ouroboros-ooo-bridge.ts
|
|
93
|
+
[ -f ~/.omk/agent/mcp.json.bak-$ts ] && install -m600 ~/.omk/agent/mcp.json.bak-$ts ~/.omk/agent/mcp.json
|
|
94
|
+
rm -rf ~/.omk/agent/skills/ouroboros-*
|
|
95
|
+
uv tool uninstall ouroboros-ai # or: pipx uninstall ouroboros-ai
|
|
96
|
+
```
|
|
@@ -400,3 +400,304 @@ Recent OMK revisions harden worker execution by removing prompt payloads from pr
|
|
|
400
400
|
- Provider stderr diagnostics still require continued redaction/debug-gating work; safety claims depend on the exact adapter path and tests.
|
|
401
401
|
- Provider health probes are improving, but binary/API presence, auth state, model support, and quota state are not yet uniformly separated across every adapter; Algorithm 5 routes by available registry/capability/evidence metadata, not by universal quota-aware health.
|
|
402
402
|
- ActionAtom, Novelty Guard, and provider-lane fanout language in prompt/harness surfaces remains contract-level unless backed by a concrete runtime implementation and tests.
|
|
403
|
+
|
|
404
|
+
# Appendix: OMK Next-Step Runtime Hardening Algorithms
|
|
405
|
+
|
|
406
|
+
This appendix defines the hardening gate algorithms used to advance the OMK native root runtime from internal → pre-release → stable. Each algorithm returns a score or verdict; the thresholds and weights below must be preserved exactly.
|
|
407
|
+
|
|
408
|
+
## Algorithm 1: Next Implementation Stage Controller
|
|
409
|
+
|
|
410
|
+
**Inputs**
|
|
411
|
+
|
|
412
|
+
- Current stage $s \in \{\text{internal}, \text{pre-release}, \text{stable}\}$
|
|
413
|
+
- Proof trust score $T_b$
|
|
414
|
+
- Evidence item trust $T_e$
|
|
415
|
+
- Public surface count $P$
|
|
416
|
+
- Router v2 cutover status $C_r \in \{\text{shadow}, \text{cutover}\}$
|
|
417
|
+
|
|
418
|
+
**Output**
|
|
419
|
+
|
|
420
|
+
- Next stage $s'$
|
|
421
|
+
|
|
422
|
+
**Pseudocode**
|
|
423
|
+
|
|
424
|
+
```text
|
|
425
|
+
function NextStage(s, T_b, T_e, P, C_r):
|
|
426
|
+
if P > 7:
|
|
427
|
+
return s
|
|
428
|
+
if s = internal:
|
|
429
|
+
if T_b ≥ 0.60 and T_e ≥ 0.75:
|
|
430
|
+
return pre-release
|
|
431
|
+
if s = pre-release:
|
|
432
|
+
if T_b ≥ 0.75 and T_e ≥ 0.75 and C_r = cutover:
|
|
433
|
+
return stable
|
|
434
|
+
return s
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
## Algorithm 2: Public Surface Freeze
|
|
438
|
+
|
|
439
|
+
**Inputs**
|
|
440
|
+
|
|
441
|
+
- Public surface set $S_{\text{pub}}$ (documented API, CLI commands, environment variables)
|
|
442
|
+
- Freeze baseline $B_{\text{pub}}$
|
|
443
|
+
|
|
444
|
+
**Output**
|
|
445
|
+
|
|
446
|
+
- Freeze verdict $\in \{\text{pass}, \text{fail}\}$
|
|
447
|
+
|
|
448
|
+
**Pseudocode**
|
|
449
|
+
|
|
450
|
+
```text
|
|
451
|
+
function PublicSurfaceFreeze(S_pub, B_pub):
|
|
452
|
+
P ← |S_pub|
|
|
453
|
+
Δ ← S_pub \ B_pub
|
|
454
|
+
if P > 7:
|
|
455
|
+
return fail
|
|
456
|
+
if |Δ| > 0:
|
|
457
|
+
return fail
|
|
458
|
+
return pass
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
**Invariant**
|
|
462
|
+
|
|
463
|
+
- Surface public count $P \le 7$.
|
|
464
|
+
- No new public members may be added after the freeze baseline.
|
|
465
|
+
|
|
466
|
+
## Algorithm 3: Proof Trust MVP
|
|
467
|
+
|
|
468
|
+
**Inputs**
|
|
469
|
+
|
|
470
|
+
- Eight normalized proof dimensions $b_1 \dots b_8$:
|
|
471
|
+
1. Unit test pass rate
|
|
472
|
+
2. Lint / format gate
|
|
473
|
+
3. Type-check gate
|
|
474
|
+
4. Secret-scan gate
|
|
475
|
+
5. Smoke test gate
|
|
476
|
+
6. Code-review sign-off
|
|
477
|
+
7. Documentation sync
|
|
478
|
+
8. Build / provenance gate
|
|
479
|
+
|
|
480
|
+
**Formula**
|
|
481
|
+
|
|
482
|
+
$$
|
|
483
|
+
T_b = 0.15 b_1 + 0.15 b_2 + 0.10 b_3 + 0.15 b_4 + 0.15 b_5 + 0.15 b_6 + 0.05 b_7 + 0.10 b_8
|
|
484
|
+
$$
|
|
485
|
+
|
|
486
|
+
**Thresholds**
|
|
487
|
+
|
|
488
|
+
- Stable: $T_b \ge \tau_{\text{proof}} = 0.85$
|
|
489
|
+
- Pre-release: $T_b \ge 0.75$
|
|
490
|
+
- Internal: $T_b \ge 0.60$
|
|
491
|
+
|
|
492
|
+
## Algorithm 4: Evidence Item Trust
|
|
493
|
+
|
|
494
|
+
**Inputs**
|
|
495
|
+
|
|
496
|
+
- Six normalized evidence dimensions $e_1 \dots e_6$:
|
|
497
|
+
1. Changed-file inventory
|
|
498
|
+
2. Commands-run log
|
|
499
|
+
3. Passed quality gates
|
|
500
|
+
4. Failure disclosure completeness
|
|
501
|
+
5. Risk note presence
|
|
502
|
+
6. Harness artifact presence
|
|
503
|
+
|
|
504
|
+
**Formula**
|
|
505
|
+
|
|
506
|
+
$$
|
|
507
|
+
T_e = 0.25 e_1 + 0.20 e_2 + 0.15 e_3 + 0.20 e_4 + 0.10 e_5 + 0.10 e_6
|
|
508
|
+
$$
|
|
509
|
+
|
|
510
|
+
**Threshold**
|
|
511
|
+
|
|
512
|
+
- $\tau_{\text{evidence}} = 0.75$
|
|
513
|
+
|
|
514
|
+
## Algorithm 5: Provider Maturity MVP
|
|
515
|
+
|
|
516
|
+
**Inputs**
|
|
517
|
+
|
|
518
|
+
- Eight normalized provider dimensions $p_1 \dots p_8$:
|
|
519
|
+
1. Binary / package presence
|
|
520
|
+
2. Authentication health
|
|
521
|
+
3. Model list currency
|
|
522
|
+
4. Quota-separation probe
|
|
523
|
+
5. Recent error rate
|
|
524
|
+
6. Fallback success rate
|
|
525
|
+
7. Stderr redaction coverage
|
|
526
|
+
8. Sandbox hint enforcement
|
|
527
|
+
|
|
528
|
+
**Formula**
|
|
529
|
+
|
|
530
|
+
$$
|
|
531
|
+
M_p = 0.10 p_1 + 0.10 p_2 + 0.15 p_3 + 0.10 p_4 + 0.15 p_5 + 0.15 p_6 + 0.15 p_7 + 0.10 p_8
|
|
532
|
+
$$
|
|
533
|
+
|
|
534
|
+
**Cutoffs**
|
|
535
|
+
|
|
536
|
+
- $M_p \ge 0.75$ required for pre-release worker eligibility.
|
|
537
|
+
- $M_p \ge 0.85$ recommended for stable default authority.
|
|
538
|
+
|
|
539
|
+
## Algorithm 6: Router v2 Cutover
|
|
540
|
+
|
|
541
|
+
**Inputs**
|
|
542
|
+
|
|
543
|
+
- Six positive router quality dimensions $r_1 \dots r_6$:
|
|
544
|
+
1. Intent classification accuracy
|
|
545
|
+
2. Median routing latency
|
|
546
|
+
3. Fallback utilization
|
|
547
|
+
4. Evidence-pass rate
|
|
548
|
+
5. Decision-trace completeness
|
|
549
|
+
6. Health-separation coverage
|
|
550
|
+
- Two penalty terms $r_7, r_8$
|
|
551
|
+
|
|
552
|
+
**Formula**
|
|
553
|
+
|
|
554
|
+
$$
|
|
555
|
+
Q_r = 0.25 r_1 + 0.15 r_2 + 0.20 r_3 + 0.15 r_4 + 0.10 r_5 + 0.10 r_6 - 0.15 r_7 - 0.10 r_8
|
|
556
|
+
$$
|
|
557
|
+
|
|
558
|
+
**Shadow rule**
|
|
559
|
+
|
|
560
|
+
- If $\texttt{OMK\_ROUTER\_V2} = \text{shadow}$:
|
|
561
|
+
- Execute Router v2 alongside Router v1.
|
|
562
|
+
- Record both decisions and discrepancies.
|
|
563
|
+
- Cutover is allowed only when $Q_r \ge 0.85$ and the discrepancy rate is zero across the minimal verified demo run.
|
|
564
|
+
|
|
565
|
+
## Algorithm 7: Minimal Verified Demo Run
|
|
566
|
+
|
|
567
|
+
**Inputs**
|
|
568
|
+
|
|
569
|
+
- Runtime $\mathcal{R}$
|
|
570
|
+
- Demo scenario set $D = \{d_{\text{read}}, d_{\text{write}}, d_{\text{shell}}, d_{\text{fallback}}\}$
|
|
571
|
+
|
|
572
|
+
**Output**
|
|
573
|
+
|
|
574
|
+
- Demo verdict and evidence bundle $\mathcal{E}_D$
|
|
575
|
+
|
|
576
|
+
**Pseudocode**
|
|
577
|
+
|
|
578
|
+
```text
|
|
579
|
+
function MinimalVerifiedDemoRun(R, D):
|
|
580
|
+
E_D ← ∅
|
|
581
|
+
for d in D:
|
|
582
|
+
r ← R.Execute(d, abortSignal=NewAbortController())
|
|
583
|
+
if r.exitCode ≠ 0:
|
|
584
|
+
return (fail, E_D)
|
|
585
|
+
if SecretScan(r.stdout, r.stderr) ≠ clean:
|
|
586
|
+
return (fail, E_D)
|
|
587
|
+
E_D ← E_D ∪ {d, r.metadata, r.evidence}
|
|
588
|
+
T_e ← ComputeEvidenceTrust(E_D)
|
|
589
|
+
if T_e < 0.75:
|
|
590
|
+
return (fail, E_D)
|
|
591
|
+
return (pass, E_D)
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
## Algorithm 8: Release Promotion Gate
|
|
595
|
+
|
|
596
|
+
**Inputs**
|
|
597
|
+
|
|
598
|
+
- Nine positive release dimensions $v_1 \dots v_9$:
|
|
599
|
+
1. Proof trust $T_b$
|
|
600
|
+
2. Evidence trust $T_e$
|
|
601
|
+
3. Public surface freeze pass
|
|
602
|
+
4. Provider maturity $M_p$
|
|
603
|
+
5. Router v2 quality $Q_r$
|
|
604
|
+
6. Minimal demo run pass
|
|
605
|
+
7. Security review closure
|
|
606
|
+
8. Docs / changelog sync
|
|
607
|
+
9. Issue closure rate
|
|
608
|
+
- One penalty term $v_{10}$ for unresolved high-severity risk
|
|
609
|
+
|
|
610
|
+
**Formula**
|
|
611
|
+
|
|
612
|
+
$$
|
|
613
|
+
R_v = 0.15 v_1 + 0.10 v_2 + 0.10 v_3 + 0.10 v_4 + 0.10 v_5 + 0.15 v_6 + 0.15 v_7 + 0.10 v_8 + 0.10 v_9 - 0.15 v_{10}
|
|
614
|
+
$$
|
|
615
|
+
|
|
616
|
+
**Promotion logic**
|
|
617
|
+
|
|
618
|
+
```text
|
|
619
|
+
function ReleasePromotion(R_v, T_b, T_e, P, Δ):
|
|
620
|
+
if P > 7 or |Δ| > 0:
|
|
621
|
+
return internal
|
|
622
|
+
if R_v ≥ 0.85 and T_b ≥ 0.85 and T_e ≥ 0.75:
|
|
623
|
+
return stable
|
|
624
|
+
if R_v ≥ 0.75 and T_b ≥ 0.75 and T_e ≥ 0.75:
|
|
625
|
+
return pre-release
|
|
626
|
+
return internal
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
> **Final Rule 1:** No stage promotion may occur while the public surface count exceeds 7 or any new public surface has been added since the freeze baseline.
|
|
630
|
+
|
|
631
|
+
> **Final Rule 2:** Router v2 cutover remains in `OMK_ROUTER_V2=shadow` mode until $Q_r$ exceeds the stable threshold and zero decision regressions are observed across the minimal verified demo run.
|
|
632
|
+
|
|
633
|
+
> **Final Rule 3:** Release promotion to stable requires $\tau_{\text{proof}} \ge 0.85$, $\tau_{\text{evidence}} \ge 0.75$, and all eight algorithms to report pass with recorded harness artifacts.
|
|
634
|
+
|
|
635
|
+
## Algorithm 9: Regression Proof Matrix
|
|
636
|
+
|
|
637
|
+
Algorithm 9 is the release-defense proof that Algorithms 1--8 are not only documented or implemented, but repeatedly verifiable through tests, proof bundles, decision traces, and reachable CLI surfaces.
|
|
638
|
+
|
|
639
|
+
**Inputs**
|
|
640
|
+
|
|
641
|
+
- Algorithm set $A = \{a_1, \dots, a_8\}$
|
|
642
|
+
- Test suite $T$
|
|
643
|
+
- Proof bundles $B$
|
|
644
|
+
- Release candidate $v$
|
|
645
|
+
|
|
646
|
+
**Per-algorithm coverage**
|
|
647
|
+
|
|
648
|
+
For each algorithm $a_i$:
|
|
649
|
+
|
|
650
|
+
$$
|
|
651
|
+
coverage_i =
|
|
652
|
+
0.35\mathbf{1}[|t_i|>0]
|
|
653
|
+
+0.30\mathbf{1}[|b_i|>0]
|
|
654
|
+
+0.20\mathbf{1}[|d_i|>0]
|
|
655
|
+
+0.15\mathbf{1}[c_i=\texttt{reachable}]
|
|
656
|
+
$$
|
|
657
|
+
|
|
658
|
+
Where:
|
|
659
|
+
|
|
660
|
+
- $t_i$ is the set of tests linked to algorithm $a_i$
|
|
661
|
+
- $b_i$ is the set of proof bundles linked to algorithm $a_i$
|
|
662
|
+
- $d_i$ is the set of decision traces linked to algorithm $a_i$
|
|
663
|
+
- $c_i$ is whether the algorithm has a reachable CLI or runtime surface
|
|
664
|
+
|
|
665
|
+
**Pseudocode**
|
|
666
|
+
|
|
667
|
+
```text
|
|
668
|
+
function RegressionProofMatrix(A, T, B, v):
|
|
669
|
+
for a_i in A:
|
|
670
|
+
t_i ← FindTestsForAlgorithm(a_i, T)
|
|
671
|
+
b_i ← FindProofBundlesForAlgorithm(a_i, B)
|
|
672
|
+
d_i ← FindDecisionTraceForAlgorithm(a_i, B)
|
|
673
|
+
c_i ← FindCliSurfaceForAlgorithm(a_i, v)
|
|
674
|
+
|
|
675
|
+
coverage_i ←
|
|
676
|
+
0.35 * 1[|t_i| > 0]
|
|
677
|
+
+ 0.30 * 1[|b_i| > 0]
|
|
678
|
+
+ 0.20 * 1[|d_i| > 0]
|
|
679
|
+
+ 0.15 * 1[c_i = reachable]
|
|
680
|
+
|
|
681
|
+
if coverage_i < 0.75:
|
|
682
|
+
return fail
|
|
683
|
+
|
|
684
|
+
trust ← MedianProofTrust(B)
|
|
685
|
+
router ← RouterShadowSafetyPass(B)
|
|
686
|
+
maturity ← ProviderAuthorityInvariantPass(B)
|
|
687
|
+
demo ← MinimalVerifiedDemoPass(v)
|
|
688
|
+
|
|
689
|
+
if trust ≥ 0.75 and router = 1 and maturity = 1 and demo = 1:
|
|
690
|
+
return pass
|
|
691
|
+
return fail
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
**Implementation targets**
|
|
695
|
+
|
|
696
|
+
- `src/evidence/regression-proof-matrix.ts`
|
|
697
|
+
- `scripts/regression-proof-matrix.mjs`
|
|
698
|
+
- `test/regression-proof-matrix.test.mjs`
|
|
699
|
+
- `proof/verified-runs/011-regression-proof-matrix/`
|
|
700
|
+
|
|
701
|
+
**Release rule**
|
|
702
|
+
|
|
703
|
+
> Algorithms 1--8 are release-defensible only when Algorithm 9 returns `pass` and `scripts/proof-check.mjs --trust --json` validates the corresponding proof bundles.
|
package/docs/versioning.md
CHANGED
|
@@ -4,11 +4,11 @@ OMK uses two version fields in release artifacts:
|
|
|
4
4
|
|
|
5
5
|
| Field | Current value | Source | Meaning |
|
|
6
6
|
| --- | --- | --- | --- |
|
|
7
|
-
| Package version | `0.78.
|
|
7
|
+
| Package version | `0.78.1` | `package.json`, `package-lock.json` | npm/package source version. |
|
|
8
8
|
| Runtime version | `v1.2` | `src/version.ts`, JSON schemas | Contract/runtime family used by OMK envelopes. |
|
|
9
9
|
| Release channel | `pre-1.0` | `src/version.ts` | Pre-1.0 package channel. |
|
|
10
10
|
|
|
11
|
-
`0.78.
|
|
11
|
+
`0.78.1` is the package source version for the `v1.2` runtime contract family.
|
|
12
12
|
Use `v1.2` only for runtime contracts; do not substitute it for the package version.
|
|
13
13
|
|
|
14
14
|
## Contract versions
|
|
@@ -44,6 +44,6 @@ The `version --json` command emits one `omk.contract.v1` envelope whose data pay
|
|
|
44
44
|
|
|
45
45
|
## Documentation rules
|
|
46
46
|
|
|
47
|
-
- Use `0.78.
|
|
47
|
+
- Use `0.78.1` when referring to the current package source version.
|
|
48
48
|
- Use `v1.2` only for the runtime contract family.
|
|
49
49
|
- Keep historical changelog entries unchanged unless the text is not clearly historical.
|
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "open-multi-agent-kit",
|
|
3
|
-
"version": "0.78.
|
|
3
|
+
"version": "0.78.2",
|
|
4
4
|
"description": "Provider-neutral multi-agent control plane for coding workflows: route agents, verify evidence, orchestrate MCP-aware DAGs, and control the loop from the omk CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"omk": "dist/cli.js",
|
|
8
7
|
"omk-project-mcp": "dist/mcp/omk-project-server.js",
|
|
9
8
|
"omk-acp": "dist/mcp/acp-server.js",
|
|
10
9
|
"omk-mcp-host": "dist/mcp/host.js"
|
|
@@ -33,7 +32,9 @@
|
|
|
33
32
|
"version:check": "node scripts/check-version-consistency.mjs",
|
|
34
33
|
"contract:check": "npm run build:clean && npm run schema:check && node scripts/check-json-stdout.mjs",
|
|
35
34
|
"verify:contracts": "npm run contract:check",
|
|
36
|
-
"release:check": "
|
|
35
|
+
"release:check": "node scripts/release-gate.mjs",
|
|
36
|
+
"release:full": "npm run verify && npm run verify:no-kimi && npm run contract:check && npm run schema:check && npm run version:check && npm run proof:check && npm run smoke:execution && npm run native:build && npm run pack:dry && npm run audit:package && npm run smoke:pack",
|
|
37
|
+
"regression:matrix": "node scripts/regression-proof-matrix.mjs",
|
|
37
38
|
"release:rc": "npm run verify && npm run verify:no-kimi && npm run contract:check && npm run schema:check && npm run version:check && npm run proof:check && npm run smoke:execution && npm run native:build && npm run pack:dry && npm run audit:package && npm run smoke:pack",
|
|
38
39
|
"smoke:no-kimi:chat": "OMK_MCP_PREFLIGHT=off OMK_PROJECT_ROOT=\"$PWD\" node dist/cli.js chat --provider auto --mode agent --execution ask --layout plain --mcp-scope none --smoke --json",
|
|
39
40
|
"smoke:no-kimi:codex": "OMK_MCP_PREFLIGHT=off OMK_PROJECT_ROOT=\"$PWD\" node dist/cli.js chat --provider codex --mode agent --execution ask --layout plain --mcp-scope none --smoke --json",
|
|
@@ -6,6 +6,7 @@ Curated OMK//CONTROL assets in this directory. Assets are provenance-covered and
|
|
|
6
6
|
| ------------------------------- | --------- | ---------------------------------------------- | ------------------------------------------ | ----------- | ------ | -----: |
|
|
7
7
|
| `omk-control.webp` | yes | Canonical README hero | Codex/OpenAI Images reviewed source | `1536x1024` | `WEBP` | 164502 |
|
|
8
8
|
| `omk-social-preview.png` | yes | GitHub/NPM social preview | local crop from omk-control.webp | `1200x630` | `PNG` | 737974 |
|
|
9
|
+
| `social-preview.png` | repo-only | GitHub social preview upload candidate | local Pillow render from omk-control.webp | `1280x640` | `PNG` | 441349 |
|
|
9
10
|
| `omk-tui-0.78.0.webp` | yes | 0.78.0 TUI mockup | Codex OAuth gpt-image-2 + local correction | `1536x1024` | `WEBP` | 244008 |
|
|
10
11
|
| `omk_tui.png` | yes | GitHub README terminal dashboard screenshot | existing OMK TUI capture | `1712x1129` | `PNG` | 141653 |
|
|
11
12
|
| `omk-runtime-flow-0.78.0.webp` | yes | 0.78.0 runtime flow diagram | Codex OAuth gpt-image-2 + local correction | `1536x1024` | `WEBP` | 235842 |
|