open-multi-agent-kit 0.78.8 → 0.79.3

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 (162) hide show
  1. package/AGENTS.md +131 -2
  2. package/CHANGELOG.md +32 -0
  3. package/CLAUDE.md +105 -3
  4. package/DESIGN.md +141 -117
  5. package/MATURITY.md +7 -12
  6. package/README.md +66 -347
  7. package/ROADMAP.md +33 -47
  8. package/dist/adapters/kimi/runner.js +2 -2
  9. package/dist/brand/theme.js +2 -2
  10. package/dist/cli/register-basic-commands.js +3 -2
  11. package/dist/cli/register-mcp-dag-cron-screenshot-commands.js +1 -1
  12. package/dist/cli/root.d.ts +1 -0
  13. package/dist/cli/root.js +2 -0
  14. package/dist/cli/runtime/command-bus.js +14 -1
  15. package/dist/cli/theme/terminal-capability.js +1 -1
  16. package/dist/cli/theme/theme-registry.js +90 -2
  17. package/dist/cli/ui/event.d.ts +1 -0
  18. package/dist/cli/ui/neon-grid-renderer.d.ts +8 -0
  19. package/dist/cli/ui/neon-grid-renderer.js +84 -14
  20. package/dist/cli/ui/plain-renderer.js +3 -1
  21. package/dist/cli/ui/system24-renderer.js +3 -1
  22. package/dist/cli/v2/chat-repl.d.ts +2 -1
  23. package/dist/cli/v2/chat-repl.js +58 -2
  24. package/dist/cli/v2/cli-v2-skeleton.js +7 -4
  25. package/dist/cli/v2/interactive-prompt.js +4 -3
  26. package/dist/commands/auth.js +2 -0
  27. package/dist/commands/chat/native-root-loop.d.ts +1 -0
  28. package/dist/commands/chat/native-root-loop.js +162 -13
  29. package/dist/commands/chat/runtime.js +9 -0
  30. package/dist/commands/chat/slash/commands/routing.js +31 -1
  31. package/dist/commands/chat/utils.js +3 -1
  32. package/dist/commands/cockpit/render.js +2 -1
  33. package/dist/commands/doctor/checks.js +2 -2
  34. package/dist/commands/init/core.js +2 -2
  35. package/dist/commands/init.js +2 -2
  36. package/dist/commands/mcp/config.js +38 -16
  37. package/dist/commands/mcp/doctor.js +7 -8
  38. package/dist/commands/mcp/list.js +4 -3
  39. package/dist/commands/mcp/shared.d.ts +4 -1
  40. package/dist/commands/mcp/shared.js +21 -3
  41. package/dist/commands/mcp/test.js +13 -12
  42. package/dist/commands/model.js +4 -0
  43. package/dist/commands/provider.js +5 -1
  44. package/dist/commands/version.d.ts +1 -0
  45. package/dist/commands/version.js +18 -0
  46. package/dist/contracts/command.d.ts +25 -0
  47. package/dist/contracts/command.js +1 -0
  48. package/dist/contracts/evidence-bundle.d.ts +52 -0
  49. package/dist/contracts/evidence-bundle.js +1 -0
  50. package/dist/contracts/index.d.ts +2 -0
  51. package/dist/contracts/index.js +2 -0
  52. package/dist/contracts/web-bridge.d.ts +1 -1
  53. package/dist/contracts/web-bridge.js +1 -1
  54. package/dist/evidence/bundle-validator.d.ts +7 -0
  55. package/dist/evidence/bundle-validator.js +103 -0
  56. package/dist/evidence/index.d.ts +5 -0
  57. package/dist/evidence/index.js +2 -0
  58. package/dist/evidence/proof-trust.js +2 -10
  59. package/dist/evidence/trust-calibration.d.ts +25 -0
  60. package/dist/evidence/trust-calibration.js +151 -0
  61. package/dist/mcp/omk-project-server.js +1 -1
  62. package/dist/metrics/provenance-ratio.d.ts +16 -0
  63. package/dist/metrics/provenance-ratio.js +33 -0
  64. package/dist/orchestration/dag.d.ts +17 -0
  65. package/dist/orchestration/ensemble-decision.d.ts +2 -0
  66. package/dist/orchestration/ensemble-decision.js +4 -0
  67. package/dist/orchestration/hedge-persona-weights.d.ts +25 -0
  68. package/dist/orchestration/hedge-persona-weights.js +43 -0
  69. package/dist/orchestration/parallel-ui.d.ts +1 -0
  70. package/dist/orchestration/parallel-ui.js +12 -3
  71. package/dist/orchestration/route-calibration.d.ts +27 -0
  72. package/dist/orchestration/route-calibration.js +123 -0
  73. package/dist/orchestration/routing/mcp-config.js +5 -1
  74. package/dist/orchestration/routing/types.d.ts +21 -0
  75. package/dist/orchestration/routing.d.ts +10 -0
  76. package/dist/orchestration/routing.js +89 -3
  77. package/dist/providers/model-registry.d.ts +2 -1
  78. package/dist/providers/model-registry.js +76 -4
  79. package/dist/providers/provider-runtime.js +9 -1
  80. package/dist/providers/thinking-levels.js +2 -0
  81. package/dist/providers/types.d.ts +1 -1
  82. package/dist/runtime/glm-api-runtime.d.ts +4 -0
  83. package/dist/runtime/glm-api-runtime.js +15 -0
  84. package/dist/runtime/index.d.ts +1 -0
  85. package/dist/runtime/index.js +1 -0
  86. package/dist/runtime/kimi-api-runtime.d.ts +6 -1
  87. package/dist/runtime/kimi-api-runtime.js +10 -4
  88. package/dist/runtime/recovery-artifact-store.d.ts +39 -0
  89. package/dist/runtime/recovery-artifact-store.js +111 -0
  90. package/dist/runtime/runtime-backed-task-runner.js +10 -0
  91. package/dist/runtime/runtime-bootstrap.js +17 -1
  92. package/dist/runtime/slash-commands.js +38 -5
  93. package/dist/schema/command.schema.d.ts +121 -0
  94. package/dist/schema/command.schema.js +25 -0
  95. package/dist/schema/envelope.schema.d.ts +2 -2
  96. package/dist/schema/evidence-bundle.schema.d.ts +196 -0
  97. package/dist/schema/evidence-bundle.schema.js +38 -0
  98. package/dist/schema/index.d.ts +2 -0
  99. package/dist/schema/index.js +2 -0
  100. package/dist/schema/proof-bundle.schema.d.ts +2 -2
  101. package/dist/theme/external-theme-adapters.d.ts +27 -0
  102. package/dist/theme/external-theme-adapters.js +52 -0
  103. package/dist/theme/library-effects.d.ts +12 -0
  104. package/dist/theme/library-effects.js +47 -0
  105. package/dist/theme/parallel.js +3 -2
  106. package/dist/tui/terminal-frame-renderer.d.ts +9 -1
  107. package/dist/tui/terminal-frame-renderer.js +77 -7
  108. package/dist/util/chat-cockpit.d.ts +3 -1
  109. package/dist/util/chat-cockpit.js +44 -5
  110. package/dist/util/command-envelope.d.ts +19 -0
  111. package/dist/util/command-envelope.js +31 -0
  112. package/dist/util/events-logger.d.ts +1 -1
  113. package/dist/util/events-logger.js +23 -16
  114. package/dist/util/fs/mcp-diagnose.js +2 -1
  115. package/dist/util/fs/mcp-runtime-config.js +14 -2
  116. package/dist/util/i18n.js +2 -2
  117. package/dist/util/screenshot-store.d.ts +7 -0
  118. package/dist/util/screenshot-store.js +30 -0
  119. package/dist/util/terminal-kit-bridge.d.ts +24 -0
  120. package/dist/util/terminal-kit-bridge.js +60 -0
  121. package/dist/util/terminal-owner.d.ts +1 -0
  122. package/dist/util/terminal-owner.js +31 -0
  123. package/dist/version.d.ts +3 -1
  124. package/dist/version.js +4 -0
  125. package/docs/2026-05-18-project-direction.md +1 -1
  126. package/docs/2026-06-14/critical-issues.md +19 -0
  127. package/docs/2026-06-14/improvements.md +15 -0
  128. package/docs/2026-06-14/init-checklist.md +25 -0
  129. package/docs/2026-06-14/plan.md +20 -0
  130. package/docs/2026-06-15/critical-issues.md +19 -0
  131. package/docs/2026-06-15/improvements.md +15 -0
  132. package/docs/2026-06-15/init-checklist.md +25 -0
  133. package/docs/2026-06-15/plan.md +20 -0
  134. package/docs/claims.md +85 -0
  135. package/docs/comparisons/omk-vs-claude-code.md +31 -0
  136. package/docs/comparisons/omk-vs-codex.md +33 -0
  137. package/docs/comparisons/omk-vs-mcp-agent.md +33 -0
  138. package/docs/comparisons/omk-vs-opencode.md +32 -0
  139. package/docs/decision-layer-calibration.md +20 -0
  140. package/docs/geo-eval-prompts.md +53 -0
  141. package/docs/getting-started.md +3 -31
  142. package/docs/headroom-omk-setup-guide.md +2 -2
  143. package/docs/integrations/adaptorch.md +46 -0
  144. package/docs/native-root-runtime-algorithms.md +2 -303
  145. package/docs/native-root-runtime-hardening.md +1 -1
  146. package/docs/provider-maturity.md +1 -1
  147. package/docs/use-cases/evidence-gated-coding-agents.md +52 -0
  148. package/docs/use-cases/no-kimi-mode.md +38 -0
  149. package/docs/use-cases/provider-routing-for-ai-coding.md +36 -0
  150. package/docs/use-cases/replayable-agent-runs.md +40 -0
  151. package/docs/use-cases/scoped-mcp-for-coding-agents.md +34 -0
  152. package/docs/versioning.md +9 -3
  153. package/docs/what-is-omk.md +64 -0
  154. package/llms.txt +28 -18
  155. package/package.json +7 -2
  156. package/readmeasset/.npmignore +3 -0
  157. package/readmeasset/ASSET_INDEX.md +3 -0
  158. package/readmeasset/ASSET_PROVENANCE.md +6 -0
  159. package/readmeasset/omk-adaptorch-ouroboros-supermemory.svg +95 -0
  160. package/readmeasset/omk-init-control-loop.svg +118 -0
  161. package/readmeasset/omk-parallel-subagents.svg +97 -0
  162. package/templates/web-bridge/chrome-extension/background.js +1 -1
package/llms.txt CHANGED
@@ -1,35 +1,45 @@
1
1
  # open-multi-agent-kit
2
2
 
3
- > Provider-neutral multi-agent orchestration harness for OMK-managed coding agents.
3
+ > OMK is an evidence-gated control plane for AI coding agents. It routes coding tasks into scoped DAG lanes, limits provider authority, requires evidence before completion, and saves replayable artifacts under `.omk/runs/`.
4
4
 
5
- ## What is open-multi-agent-kit?
5
+ OMK is useful for developers running Codex, Claude Code, OpenCode, DeepSeek, Qwen, OpenRouter, MiMo, optional Kimi-compatible adapters, or local LLMs in the same repository.
6
6
 
7
- open-multi-agent-kit (OMK) is an open-source CLI tool that turns agent CLIs and model APIs into a parallel, multi-role coding team. OMK is the root orchestrator: it assigns provider lanes, skills, hooks, MCP scope, real-time quality gates, Git worktree-based isolated agent workspaces, local graph memory, and built-in MCP / LSP integration.
7
+ ## Core docs
8
8
 
9
- ## Key Features
9
+ - [README](https://github.com/dmae97/open-multi-agent-kit): Installation, quick start, and project overview.
10
+ - [What is OMK?](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/what-is-omk.md): Canonical definition and use cases.
11
+ - [Evidence-gated coding agents](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/use-cases/evidence-gated-coding-agents.md): How OMK requires evidence before completion.
12
+ - [Provider routing for AI coding](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/use-cases/provider-routing-for-ai-coding.md): How OMK routes Codex, OpenCode, DeepSeek, and local models.
13
+ - [Scoped MCP for coding agents](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/use-cases/scoped-mcp-for-coding-agents.md): Project-scoped MCP and tool authority.
14
+ - [Replayable agent runs](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/use-cases/replayable-agent-runs.md): The `.omk/runs/` artifacts.
15
+ - [No-Kimi mode](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/use-cases/no-kimi-mode.md): Running OMK without Kimi.
16
+ - [OMK claims and evidence](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/claims.md): Claim, status, evidence, and verification command for each capability.
10
17
 
11
- - **Multi-Agent Orchestration** — Run planner, coder, reviewer, QA, and security agents in parallel via Git worktrees
12
- - **DESIGN.md Integration** — Generate UI from Google DESIGN.md standards
13
- - **Real-Time Quality Gates** — Automated lint, typecheck, test, and build verification
14
- - **Live HUD / Cockpit** — Terminal dashboard for monitoring parallel agent execution
15
- - **Local Graph Memory** — Project/session memory stored in `.omk/memory/graph-state.json` with optional Neo4j/Kuzu backends
16
- - **MCP & LSP Integration** — Seamless Model Context Protocol servers and bundled TypeScript language server
17
- - **16 Built-in Agent Roles** — planner, coder, reviewer, qa, security, architect, explorer, tester, docs, merger, release, integrator, interviewer, researcher, vision-debugger
18
+ ## Comparisons
19
+
20
+ - [OMK vs Codex](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/comparisons/omk-vs-codex.md)
21
+ - [OMK vs Claude Code](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/comparisons/omk-vs-claude-code.md)
22
+ - [OMK vs OpenCode](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/comparisons/omk-vs-opencode.md)
23
+ - [OMK vs MCP agent frameworks](https://github.com/dmae97/open-multi-agent-kit/blob/main/docs/comparisons/omk-vs-mcp-agent.md)
18
24
 
19
25
  ## Install
20
26
 
21
27
  ```bash
22
28
  npm install -g open-multi-agent-kit
29
+ omk init
30
+ omk doctor
31
+ omk do "review this repo for release risk" --dry-run --json
23
32
  ```
24
33
 
25
- ## Quick Start
34
+ ## Key terms
26
35
 
27
- ```bash
28
- omk init # Scaffold project
29
- omk doctor # Verify environment
30
- omk chat # Start interactive OMK session
31
- omk hud # Launch live dashboard
32
- ```
36
+ - evidence-gated coding agents
37
+ - AI coding agent control plane
38
+ - scoped DAG runner
39
+ - MCP orchestration for coding agents
40
+ - provider authority and routing
41
+ - replayable agent runs
42
+ - local-first coding agent runtime
33
43
 
34
44
  ## Repository
35
45
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-multi-agent-kit",
3
- "version": "0.78.8",
3
+ "version": "0.79.3",
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": {
@@ -32,6 +32,8 @@
32
32
  "assets:build": "node scripts/assets-build.mjs",
33
33
  "assets:check": "node scripts/assets-check.mjs",
34
34
  "color:gate": "node scripts/color-literal-gate.mjs",
35
+ "file-size:check": "node scripts/check-file-size.mjs",
36
+ "provenance:ratio": "node scripts/provenance-ratio.mjs",
35
37
  "proof:index": "node scripts/build-proof-index.mjs",
36
38
  "proof:check": "node scripts/proof-check.mjs",
37
39
  "version:check": "node scripts/check-version-consistency.mjs",
@@ -125,6 +127,7 @@
125
127
  "dependencies": {
126
128
  "@clack/prompts": "^1.4.0",
127
129
  "@inquirer/prompts": "^7.0.0",
130
+ "chalk-animation": "^2.0.3",
128
131
  "cli-boxes": "^4.0.1",
129
132
  "clipanion": "^4.0.0-rc.4",
130
133
  "commander": "^14.0.0",
@@ -132,8 +135,10 @@
132
135
  "figlet": "^1.11.0",
133
136
  "fs-extra": "^11.0.0",
134
137
  "gradient-string": "^3.0.0",
138
+ "ink-gradient": "^4.0.1",
135
139
  "node-pty": "^1.1.0",
136
140
  "pyright": "^1.1.410",
141
+ "terminal-kit": "^3.1.2",
137
142
  "typescript": "^5.9.3",
138
143
  "typescript-language-server": "^5.1.3",
139
144
  "yaml": "^2.0.0",
@@ -145,7 +150,7 @@
145
150
  "@types/node": "^22.0.0",
146
151
  "eslint": "^9.0.0",
147
152
  "globals": "^15.0.0",
148
- "tsx": "^4.0.0",
153
+ "tsx": "^4.22.4",
149
154
  "typescript-eslint": "^8.0.0"
150
155
  },
151
156
  "files": [
@@ -19,4 +19,7 @@
19
19
  !omk-core-loop.svg
20
20
  !omk-control-surfaces.svg
21
21
  !omk-release-assertions.svg
22
+ !omk-parallel-subagents.svg
23
+ !omk-adaptorch-ouroboros-supermemory.svg
24
+ !omk-init-control-loop.svg
22
25
  !.npmignore
@@ -33,6 +33,9 @@ Curated OMK//CONTROL assets in this directory. Assets are provenance-covered and
33
33
  | `omk-core-loop.svg` | yes | OMK Core Loop | local SVG render from OMK palette | `1200x420` | `SVG` | 2731 |
34
34
  | `omk-control-surfaces.svg` | yes | Operator control surfaces | local SVG render from OMK palette | `1200x420` | `SVG` | 3325 |
35
35
  | `omk-release-assertions.svg` | yes | Release assertion card | local SVG render from OMK palette | `1200x420` | `SVG` | 3052 |
36
+ | `omk-init-control-loop.svg` | yes | Init to control loop | local SVG render from OMK palette | `1200x520` | `SVG` | 7339 |
37
+ | `omk-parallel-subagents.svg` | yes | Parallel subagent lanes | local SVG render from OMK palette | `1200x520` | `SVG` | 6559 |
38
+ | `omk-adaptorch-ouroboros-supermemory.svg` | yes | Adaptive memory stack | local SVG render from OMK palette | `1200x520` | `SVG` | 6404 |
36
39
  | `omk-provider-lanes.svg` | repo-only | Provider Lanes | local SVG render from OMK palette | `1200x420` | `SVG` | 2753 |
37
40
  | `omk-evidence-ledger.svg` | repo-only | Evidence Ledger | local SVG render from OMK palette | `1200x420` | `SVG` | 2411 |
38
41
  | `omk-badges.svg` | repo-only | OMK Badges | local SVG render from OMK palette | `1200x420` | `SVG` | 2405 |
@@ -90,6 +90,9 @@
90
90
  | `omk-core-loop.svg` | themes/night-city.theme.json via scripts/assets-build.mjs | OMK Core Loop | `1200x420` | `SVG` | 2731 | `0f60a453833c541a05db3b509f9d56fae02c38c89334c7c57357f281cad439f2` |
91
91
  | `omk-control-surfaces.svg` | themes/night-city.theme.json via scripts/assets-build.mjs | Operator control surfaces | `1200x420` | `SVG` | 3325 | `2295e2048336452a7abef90c0636107be36845946976fd79563f10092b22bd99` |
92
92
  | `omk-release-assertions.svg` | themes/night-city.theme.json via scripts/assets-build.mjs | Release assertion card | `1200x420` | `SVG` | 3052 | `8040d23c46bf48fd7f946f9ff491dcad8aa41ce023b7b062ff5475667c8f283d` |
93
+ | `omk-init-control-loop.svg` | themes/night-city.theme.json via scripts/assets-build.mjs | Init to control loop | `1200x520` | `SVG` | 7339 | `e6225f8b66a89353aff109d29b2943b0b292f10195a84a770030a63687478739` |
94
+ | `omk-parallel-subagents.svg` | themes/night-city.theme.json via scripts/assets-build.mjs | Parallel subagent lanes | `1200x520` | `SVG` | 6559 | `16de0ab85063c45260f6d6545df0c5721ca6cf8c650c8d1223296acea22d0017` |
95
+ | `omk-adaptorch-ouroboros-supermemory.svg` | themes/night-city.theme.json via scripts/assets-build.mjs | Adaptive memory stack | `1200x520` | `SVG` | 6404 | `6f7318675939f9190ed9011f2f0f02e2a5a34d1ab2fac8d3fe10a92f9a441d54` |
93
96
  | `omk-provider-lanes.svg` | themes/night-city.theme.json via scripts/assets-build.mjs | Provider Lanes | `1200x420` | `SVG` | 2753 | `d7d85098e02e78d37d10a9886a041a8546bfa8438dd3f29bb157ce848bfd0b83` |
94
97
  | `omk-evidence-ledger.svg` | themes/night-city.theme.json via scripts/assets-build.mjs | Evidence Ledger | `1200x420` | `SVG` | 2411 | `01f0d66d2ba9915d9975bd7f93bb790e7ab0e11adbaedf84b4e5c25be6fe837c` |
95
98
  | `omk-badges.svg` | themes/night-city.theme.json via scripts/assets-build.mjs | OMK Badges | `1200x420` | `SVG` | 2405 | `4a4c94daca5d81e10a1ca185d3c07d4dfa6ac732363ecbc4bdbde841d4624cf6` |
@@ -106,5 +109,8 @@
106
109
  - derived-from: omk.theme.v1/night-city@e5daf40d789d — `omk-core-loop.svg`
107
110
  - derived-from: omk.theme.v1/night-city@e5daf40d789d — `omk-evidence-ledger.svg`
108
111
  - derived-from: omk.theme.v1/night-city@e5daf40d789d — `omk-logo-mark.svg`
112
+ - derived-from: omk.theme.v1/night-city@e5daf40d789d — `omk-parallel-subagents.svg`
109
113
  - derived-from: omk.theme.v1/night-city@e5daf40d789d — `omk-provider-lanes.svg`
110
114
  - derived-from: omk.theme.v1/night-city@e5daf40d789d — `omk-release-assertions.svg`
115
+ - derived-from: omk.theme.v1/night-city@e5daf40d789d — `omk-adaptorch-ouroboros-supermemory.svg`
116
+ - derived-from: omk.theme.v1/night-city@e5daf40d789d — `omk-init-control-loop.svg`
@@ -0,0 +1,95 @@
1
+ <!-- derived-from: omk.theme.v1/night-city@e5daf40d789d -->
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="520" viewBox="0 0 1200 520" role="img" aria-labelledby="title desc">
3
+ <title id="title">OMK adaptive memory stack</title>
4
+ <desc id="desc">Adaptorch routes topology, Ouroboros clarifies and evolves goals, and Supermemory recalls stable facts for the OMK control loop.</desc>
5
+ <metadata>omk.asset.v1 name=omk-adaptorch-ouroboros-supermemory packaged=yes source=themes/night-city.theme.json via scripts/assets-build.mjs text=ascii</metadata>
6
+ <defs>
7
+ <linearGradient id="bg" x1="0" x2="1" y1="0" y2="1">
8
+ <stop offset="0" stop-color="#070B14"/>
9
+ <stop offset="0.42" stop-color="#101826"/>
10
+ <stop offset="1" stop-color="#070B14"/>
11
+ </linearGradient>
12
+ <linearGradient id="ring" x1="0" x2="1">
13
+ <stop offset="0" stop-color="#9D4EDD"/>
14
+ <stop offset="0.5" stop-color="#00D6FF"/>
15
+ <stop offset="1" stop-color="#00FFC2"/>
16
+ </linearGradient>
17
+ <filter id="glow" x="-25%" y="-25%" width="150%" height="150%">
18
+ <feGaussianBlur stdDeviation="3" result="blur"/>
19
+ <feMerge>
20
+ <feMergeNode in="blur"/>
21
+ <feMergeNode in="SourceGraphic"/>
22
+ </feMerge>
23
+ </filter>
24
+ <marker id="arrow" markerWidth="12" markerHeight="12" refX="10" refY="5" orient="auto">
25
+ <path d="M0,0 L0,10 L11,5 z" fill="#00D6FF"/>
26
+ </marker>
27
+ <marker id="arrowP" markerWidth="12" markerHeight="12" refX="10" refY="5" orient="auto">
28
+ <path d="M0,0 L0,10 L11,5 z" fill="#9D4EDD"/>
29
+ </marker>
30
+ </defs>
31
+ <rect width="1200" height="520" rx="36" fill="url(#bg)"/>
32
+ <rect x="26" y="26" width="1148" height="468" rx="26" fill="none" stroke="url(#ring)" stroke-width="3" filter="url(#glow)"/>
33
+ <g opacity="0.26" stroke="#758FA8" stroke-width="1">
34
+ <path d="M86 146 H1114 M86 202 H1114 M86 258 H1114 M86 314 H1114 M86 370 H1114"/>
35
+ <path d="M150 124 V416 M250 124 V416 M350 124 V416 M450 124 V416 M550 124 V416 M650 124 V416 M750 124 V416 M850 124 V416 M950 124 V416 M1050 124 V416"/>
36
+ </g>
37
+ <g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" fill="#00FFC2" font-size="12" opacity="0.22">
38
+ <text x="72" y="156">1001 0010 1110</text>
39
+ <text x="994" y="188">0110 1101 0011</text>
40
+ <text x="92" y="390">facts decisions blockers</text>
41
+ <text x="922" y="410">route synth recall</text>
42
+ </g>
43
+
44
+ <text x="60" y="74" fill="#E8F8FF" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="34" font-weight="800">OMK//ADAPTIVE MEMORY STACK</text>
45
+ <text x="60" y="112" fill="#9DB3C7" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="18">Adaptorch, Ouroboros, and Supermemory feed one evidence-gated control loop</text>
46
+
47
+ <g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace">
48
+ <rect x="72" y="156" width="286" height="130" rx="20" fill="#101826" stroke="#9D4EDD" stroke-width="3" filter="url(#glow)"/>
49
+ <text x="104" y="196" fill="#9D4EDD" font-size="24" font-weight="800">OUROBOROS</text>
50
+ <text x="104" y="228" fill="#E8F8FF" font-size="16">spec-first goal loop</text>
51
+ <text x="104" y="254" fill="#9DB3C7" font-size="14">interview - seed - run</text>
52
+
53
+ <rect x="842" y="156" width="286" height="130" rx="20" fill="#101826" stroke="#00D6FF" stroke-width="3" filter="url(#glow)"/>
54
+ <text x="874" y="196" fill="#00D6FF" font-size="24" font-weight="800">ADAPTORCH</text>
55
+ <text x="874" y="228" fill="#E8F8FF" font-size="16">topology route + synth</text>
56
+ <text x="874" y="254" fill="#9DB3C7" font-size="14">width depth coupling</text>
57
+
58
+ <rect x="72" y="328" width="286" height="124" rx="20" fill="#101826" stroke="#00FFC2" stroke-width="3" filter="url(#glow)"/>
59
+ <text x="104" y="368" fill="#00FFC2" font-size="24" font-weight="800">SUPERMEMORY</text>
60
+ <text x="104" y="400" fill="#E8F8FF" font-size="16">cross-lane durable recall</text>
61
+ <text x="104" y="426" fill="#9DB3C7" font-size="14">facts contracts blockers</text>
62
+
63
+ <rect x="842" y="328" width="286" height="124" rx="20" fill="#101826" stroke="#FFB000" stroke-width="3" filter="url(#glow)"/>
64
+ <text x="874" y="368" fill="#FFB000" font-size="24" font-weight="800">NATIVE FALLBACK</text>
65
+ <text x="874" y="400" fill="#E8F8FF" font-size="16">safe when optional tools</text>
66
+ <text x="874" y="426" fill="#9DB3C7" font-size="14">are absent or disabled</text>
67
+ </g>
68
+
69
+ <g transform="translate(600 294)" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" text-anchor="middle">
70
+ <circle r="132" fill="#070B14" stroke="url(#ring)" stroke-width="4" filter="url(#glow)"/>
71
+ <circle r="94" fill="none" stroke="#758FA8" stroke-width="1" stroke-dasharray="7 9"/>
72
+ <circle r="58" fill="#101826" stroke="#FF47B2" stroke-width="3"/>
73
+ <text y="-18" fill="#FF47B2" font-size="22" font-weight="800">OMK CORE</text>
74
+ <text y="10" fill="#E8F8FF" font-size="15">intent - DAG - run</text>
75
+ <text y="36" fill="#00FFC2" font-size="15" font-weight="800">evidence gate</text>
76
+ <text x="-100" y="-84" fill="#9DB3C7" font-size="13">goal spec</text>
77
+ <text x="104" y="-84" fill="#9DB3C7" font-size="13">topology</text>
78
+ <text x="-104" y="104" fill="#9DB3C7" font-size="13">recall</text>
79
+ <text x="104" y="104" fill="#9DB3C7" font-size="13">fallback</text>
80
+ </g>
81
+
82
+ <g fill="none" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
83
+ <path d="M358 220 C430 220 442 206 484 226" stroke="#9D4EDD" marker-end="url(#arrowP)"/>
84
+ <path d="M716 226 C760 206 774 220 842 220" stroke="#00D6FF" marker-end="url(#arrow)"/>
85
+ <path d="M842 390 C760 390 744 386 706 370" stroke="#FFB000" marker-end="url(#arrow)"/>
86
+ <path d="M494 370 C452 392 424 390 358 390" stroke="#00FFC2" marker-end="url(#arrow)"/>
87
+ <path d="M218 328 C240 302 270 284 330 270" stroke="#00FFC2" stroke-dasharray="8 10" marker-end="url(#arrow)"/>
88
+ <path d="M982 286 C960 304 934 318 884 328" stroke="#FFB000" stroke-dasharray="8 10" marker-end="url(#arrow)"/>
89
+ </g>
90
+
91
+ <g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="14" font-weight="800" text-anchor="middle">
92
+ <rect x="398" y="444" width="404" height="32" rx="16" fill="#070B14" stroke="#00D6FF"/>
93
+ <text x="600" y="465" fill="#00D6FF">optional integrations are additive, scoped, and non-fatal</text>
94
+ </g>
95
+ </svg>
@@ -0,0 +1,118 @@
1
+ <!-- derived-from: omk.theme.v1/night-city@e5daf40d789d -->
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="520" viewBox="0 0 1200 520" role="img" aria-labelledby="title desc">
3
+ <title id="title">OMK init to control loop</title>
4
+ <desc id="desc">The OMK setup path creates scoped project files, runs doctor checks, then enters the evidence-gated control loop.</desc>
5
+ <metadata>omk.asset.v1 name=omk-init-control-loop packaged=yes source=themes/night-city.theme.json via scripts/assets-build.mjs text=ascii</metadata>
6
+ <defs>
7
+ <linearGradient id="bg" x1="0" x2="1" y1="0" y2="1">
8
+ <stop offset="0" stop-color="#070B14"/>
9
+ <stop offset="0.46" stop-color="#101826"/>
10
+ <stop offset="1" stop-color="#070B14"/>
11
+ </linearGradient>
12
+ <linearGradient id="rail" x1="0" x2="1">
13
+ <stop offset="0" stop-color="#00D6FF"/>
14
+ <stop offset="0.46" stop-color="#00FFC2"/>
15
+ <stop offset="1" stop-color="#FF47B2"/>
16
+ </linearGradient>
17
+ <filter id="glow" x="-25%" y="-25%" width="150%" height="150%">
18
+ <feGaussianBlur stdDeviation="3" result="blur"/>
19
+ <feMerge>
20
+ <feMergeNode in="blur"/>
21
+ <feMergeNode in="SourceGraphic"/>
22
+ </feMerge>
23
+ </filter>
24
+ <marker id="arrow" markerWidth="12" markerHeight="12" refX="10" refY="5" orient="auto">
25
+ <path d="M0,0 L0,10 L11,5 z" fill="#00D6FF"/>
26
+ </marker>
27
+ <marker id="arrowM" markerWidth="12" markerHeight="12" refX="10" refY="5" orient="auto">
28
+ <path d="M0,0 L0,10 L11,5 z" fill="#FF47B2"/>
29
+ </marker>
30
+ </defs>
31
+ <rect width="1200" height="520" rx="36" fill="url(#bg)"/>
32
+ <rect x="26" y="26" width="1148" height="468" rx="26" fill="none" stroke="url(#rail)" stroke-width="3" filter="url(#glow)"/>
33
+ <g opacity="0.28" stroke="#758FA8" stroke-width="1">
34
+ <path d="M70 144 H1130 M70 206 H1130 M70 268 H1130 M70 330 H1130 M70 392 H1130"/>
35
+ <path d="M150 128 V430 M270 128 V430 M390 128 V430 M510 128 V430 M630 128 V430 M750 128 V430 M870 128 V430 M990 128 V430 M1110 128 V430"/>
36
+ </g>
37
+
38
+ <text x="60" y="74" fill="#E8F8FF" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="34" font-weight="800">OMK//INIT TO CONTROL LOOP</text>
39
+ <text x="60" y="112" fill="#9DB3C7" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="18">install once; every run is scoped, measured, replayable</text>
40
+
41
+ <g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" text-anchor="middle">
42
+ <path d="M92 220 H1108" stroke="url(#rail)" stroke-width="8" stroke-linecap="round"/>
43
+
44
+ <g transform="translate(116 220)">
45
+ <circle r="46" fill="#070B14" stroke="#00D6FF" stroke-width="4" filter="url(#glow)"/>
46
+ <text y="-6" fill="#00D6FF" font-size="17" font-weight="800">npm i</text>
47
+ <text y="18" fill="#E8F8FF" font-size="13">package</text>
48
+ </g>
49
+ <g transform="translate(270 220)">
50
+ <circle r="46" fill="#070B14" stroke="#9D4EDD" stroke-width="4" filter="url(#glow)"/>
51
+ <text y="-6" fill="#9D4EDD" font-size="17" font-weight="800">omk init</text>
52
+ <text y="18" fill="#E8F8FF" font-size="13">scaffold</text>
53
+ </g>
54
+ <g transform="translate(424 220)">
55
+ <circle r="46" fill="#070B14" stroke="#FFB000" stroke-width="4" filter="url(#glow)"/>
56
+ <text y="-6" fill="#FFB000" font-size="17" font-weight="800">doctor</text>
57
+ <text y="18" fill="#E8F8FF" font-size="13">preflight</text>
58
+ </g>
59
+ <g transform="translate(578 220)">
60
+ <circle r="46" fill="#070B14" stroke="#00FFC2" stroke-width="4" filter="url(#glow)"/>
61
+ <text y="-6" fill="#00FFC2" font-size="17" font-weight="800">chat/run</text>
62
+ <text y="18" fill="#E8F8FF" font-size="13">goal input</text>
63
+ </g>
64
+ <g transform="translate(732 220)">
65
+ <circle r="46" fill="#070B14" stroke="#00D6FF" stroke-width="4" filter="url(#glow)"/>
66
+ <text y="-6" fill="#00D6FF" font-size="17" font-weight="800">DAG</text>
67
+ <text y="18" fill="#E8F8FF" font-size="13">compile</text>
68
+ </g>
69
+ <g transform="translate(886 220)">
70
+ <circle r="46" fill="#070B14" stroke="#FF47B2" stroke-width="4" filter="url(#glow)"/>
71
+ <text y="-6" fill="#FF47B2" font-size="17" font-weight="800">router</text>
72
+ <text y="18" fill="#E8F8FF" font-size="13">workers</text>
73
+ </g>
74
+ <g transform="translate(1040 220)">
75
+ <circle r="46" fill="#070B14" stroke="#00FFC2" stroke-width="4" filter="url(#glow)"/>
76
+ <text y="-6" fill="#00FFC2" font-size="17" font-weight="800">verify</text>
77
+ <text y="18" fill="#E8F8FF" font-size="13">replay</text>
78
+ </g>
79
+ </g>
80
+
81
+ <g fill="none" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
82
+ <path d="M162 220 H218" stroke="#00D6FF" marker-end="url(#arrow)"/>
83
+ <path d="M316 220 H372" stroke="#9D4EDD" marker-end="url(#arrow)"/>
84
+ <path d="M470 220 H526" stroke="#FFB000" marker-end="url(#arrow)"/>
85
+ <path d="M624 220 H680" stroke="#00FFC2" marker-end="url(#arrow)"/>
86
+ <path d="M778 220 H834" stroke="#00D6FF" marker-end="url(#arrow)"/>
87
+ <path d="M932 220 H988" stroke="#FF47B2" marker-end="url(#arrowM)"/>
88
+ </g>
89
+
90
+ <g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace">
91
+ <rect x="76" y="318" width="330" height="124" rx="20" fill="#101826" stroke="#9D4EDD" stroke-width="2"/>
92
+ <text x="106" y="354" fill="#9D4EDD" font-size="20" font-weight="800">INIT WRITES</text>
93
+ <text x="106" y="382" fill="#E8F8FF" font-size="15">AGENTS.md + runtime docs</text>
94
+ <text x="106" y="406" fill="#E8F8FF" font-size="15">.omk/mcp.json + skills</text>
95
+ <text x="106" y="430" fill="#9DB3C7" font-size="14">project-scoped defaults</text>
96
+
97
+ <rect x="436" y="318" width="330" height="124" rx="20" fill="#101826" stroke="#00D6FF" stroke-width="2"/>
98
+ <text x="466" y="354" fill="#00D6FF" font-size="20" font-weight="800">CONTROL STATE</text>
99
+ <text x="466" y="382" fill="#E8F8FF" font-size="15">provider route + fallback</text>
100
+ <text x="466" y="406" fill="#E8F8FF" font-size="15">MCP scope + approvals</text>
101
+ <text x="466" y="430" fill="#9DB3C7" font-size="14">timeouts, sandbox, run id</text>
102
+
103
+ <rect x="796" y="318" width="330" height="124" rx="20" fill="#101826" stroke="#00FFC2" stroke-width="2"/>
104
+ <text x="826" y="354" fill="#00FFC2" font-size="20" font-weight="800">PROOF SURFACE</text>
105
+ <text x="826" y="382" fill="#E8F8FF" font-size="15">commands, diffs, artifacts</text>
106
+ <text x="826" y="406" fill="#E8F8FF" font-size="15">verify gates + replay logs</text>
107
+ <text x="826" y="430" fill="#9DB3C7" font-size="14">claims require evidence</text>
108
+ </g>
109
+
110
+ <g fill="none" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" opacity="0.92">
111
+ <path d="M272 318 C272 278 270 278 270 266" stroke="#9D4EDD" marker-end="url(#arrow)"/>
112
+ <path d="M600 318 C600 282 584 276 584 266" stroke="#00D6FF" marker-end="url(#arrow)"/>
113
+ <path d="M960 318 C1016 292 1038 278 1038 266" stroke="#00FFC2" marker-end="url(#arrow)"/>
114
+ <path d="M1038 442 C1038 482 176 482 176 266" stroke="#FF47B2" stroke-dasharray="10 12" marker-end="url(#arrowM)"/>
115
+ </g>
116
+
117
+ <text x="600" y="482" fill="#9DB3C7" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="17" text-anchor="middle">The loop never trusts narration alone: route, execute, collect, verify, replay.</text>
118
+ </svg>
@@ -0,0 +1,97 @@
1
+ <!-- derived-from: omk.theme.v1/night-city@e5daf40d789d -->
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="520" viewBox="0 0 1200 520" role="img" aria-labelledby="title desc">
3
+ <title id="title">OMK parallel subagents</title>
4
+ <desc id="desc">OMK root control fans out scoped subagent lanes, collects evidence, then synthesizes and verifies the result.</desc>
5
+ <metadata>omk.asset.v1 name=omk-parallel-subagents packaged=yes source=themes/night-city.theme.json via scripts/assets-build.mjs text=ascii</metadata>
6
+ <defs>
7
+ <linearGradient id="bg" x1="0" x2="1" y1="0" y2="1">
8
+ <stop offset="0" stop-color="#070B14"/>
9
+ <stop offset="0.48" stop-color="#101826"/>
10
+ <stop offset="1" stop-color="#070B14"/>
11
+ </linearGradient>
12
+ <linearGradient id="neon" x1="0" x2="1">
13
+ <stop offset="0" stop-color="#00D6FF"/>
14
+ <stop offset="0.5" stop-color="#00FFC2"/>
15
+ <stop offset="1" stop-color="#FF47B2"/>
16
+ </linearGradient>
17
+ <filter id="glow" x="-25%" y="-25%" width="150%" height="150%">
18
+ <feGaussianBlur stdDeviation="3" result="blur"/>
19
+ <feMerge>
20
+ <feMergeNode in="blur"/>
21
+ <feMergeNode in="SourceGraphic"/>
22
+ </feMerge>
23
+ </filter>
24
+ <marker id="arrowC" markerWidth="12" markerHeight="12" refX="10" refY="5" orient="auto">
25
+ <path d="M0,0 L0,10 L11,5 z" fill="#00D6FF"/>
26
+ </marker>
27
+ <marker id="arrowM" markerWidth="12" markerHeight="12" refX="10" refY="5" orient="auto">
28
+ <path d="M0,0 L0,10 L11,5 z" fill="#FF47B2"/>
29
+ </marker>
30
+ </defs>
31
+ <rect width="1200" height="520" rx="36" fill="url(#bg)"/>
32
+ <rect x="26" y="26" width="1148" height="468" rx="26" fill="none" stroke="url(#neon)" stroke-width="3" filter="url(#glow)"/>
33
+ <g opacity="0.36" stroke="#758FA8" stroke-width="1">
34
+ <path d="M64 142 H1136 M64 190 H1136 M64 238 H1136 M64 286 H1136 M64 334 H1136 M64 382 H1136"/>
35
+ <path d="M112 118 V420 M208 118 V420 M304 118 V420 M400 118 V420 M496 118 V420 M592 118 V420 M688 118 V420 M784 118 V420 M880 118 V420 M976 118 V420 M1072 118 V420"/>
36
+ </g>
37
+ <g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="12" fill="#00FFC2" opacity="0.24">
38
+ <text x="76" y="164">0101 1010 0011</text>
39
+ <text x="970" y="154">1011 0100 1110</text>
40
+ <text x="994" y="376">0010 1111 0101</text>
41
+ <text x="108" y="404">1100 0011 1001</text>
42
+ </g>
43
+
44
+ <text x="60" y="74" fill="#E8F8FF" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="34" font-weight="800">OMK//PARALLEL SUBAGENTS</text>
45
+ <text x="60" y="112" fill="#9DB3C7" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="18">root orchestrator fans out scoped lanes, then merges evidence</text>
46
+
47
+ <g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace">
48
+ <rect x="60" y="184" width="218" height="168" rx="20" fill="#101826" stroke="#00D6FF" stroke-width="3" filter="url(#glow)"/>
49
+ <text x="88" y="226" fill="#00D6FF" font-size="24" font-weight="800">ROOT CONTROL</text>
50
+ <text x="88" y="258" fill="#E8F8FF" font-size="16">goal - DAG - budget</text>
51
+ <text x="88" y="286" fill="#9DB3C7" font-size="15">scope every lane</text>
52
+ <text x="88" y="314" fill="#9DB3C7" font-size="15">own synthesis</text>
53
+
54
+ <rect x="352" y="138" width="218" height="104" rx="16" fill="#101826" stroke="#00D6FF" stroke-width="2"/>
55
+ <text x="376" y="171" fill="#00D6FF" font-size="20" font-weight="800">EXPLORER</text>
56
+ <text x="376" y="199" fill="#E8F8FF" font-size="15">read-only map</text>
57
+ <text x="376" y="222" fill="#9DB3C7" font-size="13">MCP: fs + git</text>
58
+
59
+ <rect x="630" y="138" width="218" height="104" rx="16" fill="#101826" stroke="#9D4EDD" stroke-width="2"/>
60
+ <text x="654" y="171" fill="#9D4EDD" font-size="20" font-weight="800">PLANNER</text>
61
+ <text x="654" y="199" fill="#E8F8FF" font-size="15">topology + risk</text>
62
+ <text x="654" y="222" fill="#9DB3C7" font-size="13">AUTH: advisory</text>
63
+
64
+ <rect x="352" y="280" width="218" height="104" rx="16" fill="#101826" stroke="#00FFC2" stroke-width="2"/>
65
+ <text x="376" y="313" fill="#00FFC2" font-size="20" font-weight="800">CODER</text>
66
+ <text x="376" y="341" fill="#E8F8FF" font-size="15">disjoint files</text>
67
+ <text x="376" y="364" fill="#9DB3C7" font-size="13">AUTH: scoped write</text>
68
+
69
+ <rect x="630" y="280" width="218" height="104" rx="16" fill="#101826" stroke="#FFB000" stroke-width="2"/>
70
+ <text x="654" y="313" fill="#FFB000" font-size="20" font-weight="800">QA + REVIEW</text>
71
+ <text x="654" y="341" fill="#E8F8FF" font-size="15">parallel gates</text>
72
+ <text x="654" y="364" fill="#9DB3C7" font-size="13">AUTH: read + test</text>
73
+
74
+ <rect x="928" y="168" width="214" height="198" rx="22" fill="#101826" stroke="#FF47B2" stroke-width="3" filter="url(#glow)"/>
75
+ <text x="958" y="211" fill="#FF47B2" font-size="23" font-weight="800">SYNTHESIS</text>
76
+ <text x="958" y="244" fill="#E8F8FF" font-size="16">merge findings</text>
77
+ <text x="958" y="272" fill="#E8F8FF" font-size="16">verify evidence</text>
78
+ <text x="958" y="300" fill="#E8F8FF" font-size="16">replay inspect</text>
79
+ <rect x="958" y="322" width="146" height="22" rx="11" fill="#070B14" stroke="#00FFC2"/>
80
+ <text x="981" y="338" fill="#00FFC2" font-size="13" font-weight="800">DONE NEEDS PROOF</text>
81
+ </g>
82
+
83
+ <g fill="none" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" opacity="0.92">
84
+ <path d="M278 250 C314 250 316 190 346 190" stroke="#00D6FF" marker-end="url(#arrowC)"/>
85
+ <path d="M278 250 C314 250 316 332 346 332" stroke="#00FFC2" marker-end="url(#arrowC)"/>
86
+ <path d="M570 190 H624" stroke="#9D4EDD" marker-end="url(#arrowC)"/>
87
+ <path d="M570 332 H624" stroke="#FFB000" marker-end="url(#arrowC)"/>
88
+ <path d="M848 190 C888 190 888 236 922 236" stroke="#FF47B2" marker-end="url(#arrowM)"/>
89
+ <path d="M848 332 C888 332 888 296 922 296" stroke="#FF47B2" marker-end="url(#arrowM)"/>
90
+ </g>
91
+
92
+ <g font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="14" font-weight="800" text-anchor="middle">
93
+ <rect x="378" y="424" width="444" height="32" rx="16" fill="#070B14" stroke="#00D6FF"/>
94
+ <text x="600" y="445" fill="#00D6FF">OMK_WORKERS caps fanout; every lane returns artifacts</text>
95
+ </g>
96
+ <text x="600" y="482" fill="#9DB3C7" font-family="ui-monospace, SFMono-Regular, Menlo, Consolas, monospace" font-size="17" text-anchor="middle">Workers execute. OMK controls route, scope, evidence, and final authority.</text>
97
+ </svg>
@@ -1,4 +1,4 @@
1
- const HOST_NAME = "io.ohmykimi.web_bridge";
1
+ const HOST_NAME = "io.omk.web_bridge";
2
2
  const SCHEMA_VERSION = 1;
3
3
 
4
4
  chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {