0xray 4.0.41 → 4.1.0

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 (148) hide show
  1. package/.grok-plugin/plugin.json +1 -1
  2. package/.opencode/skills/orchestrator/SKILL.md +12 -0
  3. package/.plugin/plugin.json +1 -1
  4. package/.xray/features.json +5 -5
  5. package/.xray/features.schema.json +1 -1
  6. package/AGENTS-consumer.md +10 -6
  7. package/AGENTS.md +19 -8
  8. package/LICENSE +1 -1
  9. package/README.md +65 -19
  10. package/SKILLS.md +5 -1
  11. package/dist/AGENTS.md +19 -8
  12. package/dist/CHANGELOG.md +85 -0
  13. package/dist/LICENSE +1 -1
  14. package/dist/README.md +65 -19
  15. package/dist/SKILLS.md +5 -1
  16. package/dist/cli/commands/openclaw-install.js +1 -1
  17. package/dist/cli/commands/plugin-commands.d.ts +4 -0
  18. package/dist/cli/commands/plugin-commands.js +84 -41
  19. package/dist/cli/index.js +12 -0
  20. package/dist/core/config-loader.js +4 -4
  21. package/dist/core/features-config.d.ts +1 -1
  22. package/dist/core/features-config.js +3 -3
  23. package/dist/enforcement/index.d.ts +4 -0
  24. package/dist/enforcement/index.js +4 -0
  25. package/dist/enforcement/validators/code-quality-validators.js +6 -4
  26. package/dist/governance/llm-governance-provider.d.ts +7 -1
  27. package/dist/governance/llm-governance-provider.js +72 -14
  28. package/dist/governance/local-confer.d.ts +4 -1
  29. package/dist/governance/local-confer.js +22 -1
  30. package/dist/integrations/cursor/hooks/hooks.json +6 -3
  31. package/dist/integrations/cursor/hooks/pre-tool-use.js +100 -37
  32. package/dist/integrations/cursor/hooks/xray-cloud-hook.sh +9 -1
  33. package/dist/integrations/grok/grok-cli.js +10 -37
  34. package/dist/integrations/grok/hooks/grok-hook-utils.js +8 -1
  35. package/dist/integrations/grok/hooks/pre-tool-use.js +2 -58
  36. package/dist/integrations/hermes-agent/bridge.mjs +14 -1
  37. package/dist/integrations/hooks/confer-hook-runtime.mjs +23 -1
  38. package/dist/integrations/hooks/delegation-gate-runtime.mjs +3 -2
  39. package/dist/integrations/hooks/goggles-mcp.mjs +35 -17
  40. package/dist/integrations/hooks/goggles-pipeline.mjs +46 -1
  41. package/dist/integrations/hooks/goggles-planes.json +11 -7
  42. package/dist/integrations/hooks/pre-tool-speak.mjs +76 -0
  43. package/dist/integrations/openclaw/hooks/pre-tool-gate-runtime.mjs +21 -4
  44. package/dist/integrations/openclaw/plugin/xray-pre-tool/index.js +17 -2
  45. package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
  46. package/dist/mcps/architect-tools.server.d.ts +6 -0
  47. package/dist/mcps/architect-tools.server.js +19 -2
  48. package/dist/mcps/config/server-config-registry.js +8 -6
  49. package/dist/mcps/governance.server.d.ts +1 -0
  50. package/dist/mcps/governance.server.js +46 -0
  51. package/dist/mcps/knowledge-skills/code-review.server.js +7 -0
  52. package/dist/mcps/knowledge-skills/security-audit.server.js +5 -3
  53. package/dist/mcps/mcp-client.js +1 -1
  54. package/dist/mcps/orchestrator/handlers/complexity-handler.js +2 -2
  55. package/dist/mcps/researcher.server.js +12 -3
  56. package/dist/monitoring/{nudge-watchdog.d.ts → nudge-monitor.d.ts} +14 -5
  57. package/dist/monitoring/{nudge-watchdog.js → nudge-monitor.js} +42 -17
  58. package/dist/nucleus/autonomy-kernel.d.ts +2 -0
  59. package/dist/nucleus/autonomy-kernel.js +17 -13
  60. package/dist/nucleus/confer-host.d.ts +35 -0
  61. package/dist/nucleus/confer-host.js +55 -0
  62. package/dist/nucleus/confer.d.ts +19 -3
  63. package/dist/nucleus/confer.js +111 -55
  64. package/dist/nucleus/lead-dev-plan-persistence.js +4 -2
  65. package/dist/nucleus/suit-temperament.d.ts +1 -1
  66. package/dist/nucleus/suit-temperament.js +2 -2
  67. package/dist/nucleus/synthesis-consult-receipt.d.ts +7 -1
  68. package/dist/nucleus/synthesis-consult-receipt.js +86 -35
  69. package/dist/plugin/xray-codex-injection.js +18 -0
  70. package/dist/processors/implementations/nudge-processor.d.ts +1 -1
  71. package/dist/processors/implementations/nudge-processor.js +4 -4
  72. package/dist/reporting/framework-reporting-system.js +2 -5
  73. package/dist/reporting/log-parser.d.ts +2 -0
  74. package/dist/reporting/log-parser.js +7 -6
  75. package/dist/skills/orchestrator/SKILL.md +12 -0
  76. package/docs-site/docs/plates/activity-log.md +1 -1
  77. package/docs-site/docs/plates/bifrost.md +48 -0
  78. package/docs-site/docs/plates/boot.md +2 -2
  79. package/docs-site/docs/plates/centrifuge.md +1 -1
  80. package/docs-site/docs/plates/cursor-compact.md +1 -1
  81. package/docs-site/docs/plates/glossary.md +7 -3
  82. package/docs-site/docs/plates/goggles.md +13 -2
  83. package/docs-site/docs/plates/governance.md +1 -1
  84. package/docs-site/docs/plates/grok-compact.md +1 -1
  85. package/docs-site/docs/plates/grokbot.md +3 -1
  86. package/docs-site/docs/plates/host-pack.md +1 -1
  87. package/docs-site/docs/plates/house.md +1 -1
  88. package/docs-site/docs/plates/index.md +4 -2
  89. package/docs-site/docs/plates/inference-files.md +1 -1
  90. package/docs-site/docs/plates/kept-line.md +1 -1
  91. package/docs-site/docs/plates/kits.md +1 -1
  92. package/docs-site/docs/plates/lens-gate.md +3 -1
  93. package/docs-site/docs/plates/lens-page.md +1 -1
  94. package/docs-site/docs/plates/memory-recall.md +1 -1
  95. package/docs-site/docs/plates/notes-page.md +2 -2
  96. package/docs-site/docs/plates/orchestration.md +1 -1
  97. package/docs-site/docs/plates/package-face.md +1 -1
  98. package/docs-site/docs/plates/payload-heat.md +1 -1
  99. package/docs-site/docs/plates/pickup-stamp.md +1 -1
  100. package/docs-site/docs/plates/pre-tool.md +1 -1
  101. package/docs-site/docs/plates/processor.md +1 -1
  102. package/docs-site/docs/plates/record-map.md +1 -1
  103. package/docs-site/docs/plates/reflection-page.md +1 -1
  104. package/docs-site/docs/plates/reporting.md +1 -1
  105. package/docs-site/docs/plates/review.md +1 -1
  106. package/docs-site/docs/plates/routing.md +1 -1
  107. package/docs-site/docs/plates/session-capture.md +1 -1
  108. package/docs-site/docs/plates/site-manual.md +1 -1
  109. package/docs-site/docs/plates/stamp-plate.md +1 -1
  110. package/docs-site/docs/plates/station-card.md +1 -1
  111. package/docs-site/docs/plates/station-heat.md +1 -1
  112. package/docs-site/docs/plates/suit-organs.md +1 -1
  113. package/docs-site/docs/plates/suit-settings.md +1 -1
  114. package/docs-site/docs/plates/suit-wear.md +1 -1
  115. package/docs-site/docs/plates/suit.md +3 -3
  116. package/docs-site/docs/plates/trail-state.md +1 -1
  117. package/docs-site/docs/plates/work-fresh.md +1 -1
  118. package/docs-site/docs/plates/write-home.md +1 -1
  119. package/llms.txt +16 -6
  120. package/package.json +4 -4
  121. package/scripts/foundry/README.md +2 -2
  122. package/scripts/foundry/release-gate.mjs +111 -15
  123. package/scripts/foundry/release.mjs +8 -0
  124. package/scripts/mjs/verify-confer-core.mjs +153 -29
  125. package/scripts/mjs/verify-pipeline-facets.mjs +1 -1
  126. package/scripts/mjs/verify-user-aside-core.mjs +3 -4
  127. package/scripts/node/bridge-mcp-wiring.cjs +236 -5
  128. package/scripts/node/confer-switch.cjs +66 -0
  129. package/scripts/node/install-bridges.cjs +44 -53
  130. package/scripts/node/pack-tmp-suit-proof.mjs +14 -6
  131. package/src/integrations/openclaw/plugin/xray-pre-tool/index.js +17 -2
  132. package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
  133. package/src/mcps/architect-tools.server.ts +26 -2
  134. package/src/mcps/config/__tests__/server-config-registry.test.ts +15 -6
  135. package/src/mcps/config/server-config-registry.ts +9 -6
  136. package/src/mcps/governance.server.ts +49 -0
  137. package/src/mcps/knowledge-skills/code-review.server.ts +8 -0
  138. package/src/mcps/knowledge-skills/security-audit.server.ts +11 -12
  139. package/src/mcps/mcp-client.ts +1 -1
  140. package/src/mcps/orchestrator/handlers/complexity-handler.ts +2 -1
  141. package/src/mcps/researcher.server.ts +19 -10
  142. package/src/skills/orchestrator/SKILL.md +12 -0
  143. package/vendor/@0xray/repertoire/README.md +1 -1
  144. package/vendor/@0xray/repertoire/scripts/run-live-synthesis-checkpoint.mjs +5 -51
  145. package/xray/agents_template.md +2 -2
  146. package/xray/features.json +5 -5
  147. package/xray/features.schema.json +1 -1
  148. package/docs-site/docs/plates/live-mesh.md +0 -41
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "0xray",
3
- "version": "4.0.41",
3
+ "version": "4.1.0",
4
4
  "description": "0xRay suit for Grok, Hermes, OpenClaw, OpenCode: mill+inspect, Codex, 7 MCP servers. Costume 45/42 is opt-in foundry, not the default wear.",
5
5
  "author": {
6
6
  "name": "0xRay AI",
@@ -72,6 +72,18 @@ The hold lasts for the work that named the plane. A sentence that does not say l
72
72
 
73
73
  Config: `features.json` → `multi_agent_orchestration.lead_dev_mode`
74
74
 
75
+ ## Confer
76
+
77
+ The TUI that is wearing the suit already spawned the MCP servers. Confer uses those servers. It does not start a private server and it does not run `hermes -z`.
78
+
79
+ When `.xray/state/confer-ask-s.1.json`, `confer-ask-s.2.json`, and `confer-ask-s.3.json` are on disk:
80
+
81
+ 1. Call the server and tool named in each ask. Researcher and code-review return evidence. Architect returns the assessment with `Verdict: UNREVIEWED`.
82
+ 2. Write one verdict line from this TUI's model: `Verdict: PASS`, `Verdict: CONDITIONAL`, or `Verdict: FAIL`, plus top risks and a hardening note.
83
+ 3. Call `record_confer_receipt` on `xray-governance` with `todoId`, `subagent`, `sessionId`, and that text.
84
+
85
+ Only `Verdict: PASS` completes the todo. FAIL, CONDITIONAL, and UNREVIEWED stay open. A session id that does not match the plan does not complete the todo. Grok, OpenCode, Hermes, and OpenClaw use these same three steps. Hermes is a voter only when Hermes is the TUI, and then only as that TUI's own model.
86
+
75
87
  ## Lead cadence (syncopation)
76
88
 
77
89
  The seven rules are the engine. The cadence is the time signature. Disk SSOT: `grok-bot/OP-PROC.md` (team specifics live in `house/`).
@@ -2,7 +2,7 @@
2
2
  "id": "0xray",
3
3
  "name": "0xRay",
4
4
  "version": "3.1.0",
5
- "description": "Multi-agent orchestration, Codex governance, and AI-powered development tools. 13 MCP tools (code review, security audit, API design, database design, project analysis, testing, performance, UI/UX, DevOps, documentation, storytelling) plus 44 knowledge skills for best-practice guidance across the full software development lifecycle.",
5
+ "description": "Three-subsystem autonomous engine. The suit is the wear: memory, judgement, payments, and the wake. Seven consumer MCP servers. The skill catalog is opt-in.",
6
6
  "author": "0xRay AI",
7
7
  "homepage": "https://github.com/0xRayAI/xray",
8
8
  "components": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./features.schema.json",
3
- "version": "4.0.41",
3
+ "version": "4.1.0",
4
4
  "description": "0xRay Framework - Unified Feature Configuration",
5
5
  "suit_temperament": {
6
6
  "profile": "auto",
@@ -54,16 +54,16 @@
54
54
  "auto_provision_worktree": false
55
55
  }
56
56
  },
57
- "grok_postprocessor_light": true,
57
+ "grok_postprocessor_light": false,
58
58
  "inference_session_capture": {
59
59
  "enabled": true,
60
60
  "min_commits": 3,
61
61
  "lookback_commits": 20
62
62
  },
63
63
  "autonomous_reporting": {
64
- "enabled": true,
64
+ "enabled": false,
65
65
  "interval_minutes": 60,
66
- "auto_schedule": true,
66
+ "auto_schedule": false,
67
67
  "include_health_assessment": true,
68
68
  "include_agent_activities": true,
69
69
  "include_pipeline_operations": true,
@@ -174,7 +174,7 @@
174
174
  "every_n_todos_completed": 0
175
175
  },
176
176
  "inference": {
177
- "description": "Self-improvement cycle that grades a new named session into repertoire",
177
+ "description": "The cycle runs from the CLI command inference:run and the session wake does not start it.",
178
178
  "enabled": true,
179
179
  "workflow_dir": ".xray/inference",
180
180
  "reports_dir": ".xray/reports",
@@ -45,7 +45,7 @@
45
45
  },
46
46
  "confer_on_synthesis": {
47
47
  "type": "boolean",
48
- "description": "Auto-run 3-agent confer quorum at synthesis checkpoint (default true)"
48
+ "description": "Opt in to the 3-agent confer quorum. A missing key stays off."
49
49
  },
50
50
  "confer": {
51
51
  "type": "object",
@@ -2,11 +2,13 @@
2
2
 
3
3
  <!-- 0xray-managed -->
4
4
 
5
- Quick reference for the 0xRay AI orchestration framework worn on **{{CONSUMER_NAME}}**{{CONSUMER_VERSION_PAREN}}.
5
+ Quick reference for the 0xRay suit worn on **{{CONSUMER_NAME}}**{{CONSUMER_VERSION_PAREN}}.
6
6
 
7
- **4.0** — a suit that survives the context window
7
+ **4.1** — a suit that survives the context window
8
8
 
9
- Same **three-subsystem OS** as v2 (Inference · External Governance · Autonomous Engine). Constitution always on. Temperament scales ceremony. Four chat bridges plus Cursor project hooks. **Repertoire is preferred** — vendored 0.2.9 ships **on**. Dest is named laws, not keywords. Station is the compact ticket, not a substitute. Explicit opt-out only: `"enabled": false, "provider": "repertoire"`. Trim fat, do not gut the design.
9
+ Confer votes. Burst runs the swarm.
10
+
11
+ 0xRay is a three-subsystem autonomous engine (Inference · External Governance · Autonomous Engine). The suit is the wear. Constitution always on. Temperament scales ceremony. Four chat bridges plus Cursor project hooks. **Repertoire is preferred** — vendored 0.2.9 ships **on**. Dest is named laws, not keywords. Station is the wake ticket, not a substitute. Explicit opt-out only: `"enabled": false, "provider": "repertoire"`.
10
12
 
11
13
  **Governance always on** (Codex PreToolUse, no new surface, no `eval`). **Engine ceremony** (analyze-complexity before spawn, confer) is **guided** by default so free-model OpenCode/Hermes stay in check. Frontier hosts (Grok 4.6 class) with `suit_temperament.profile: auto` **warn** on spawn-without-plan instead of deny — the engine is still there. Existing `.xray/features.json` without `suit_temperament` stays **guided**. Docs: v3 from v2 · Suit temperament.
12
14
 
@@ -18,7 +20,9 @@ A peer lead continues from this card + Repertoire + the `orchestrator` skill. Du
18
20
 
19
21
  ## Postinstall (automatic)
20
22
 
21
- `npm install 0xray` runs `install-bridges.cjs` and:
23
+ `npm install 0xray` links vendored `@0xray/repertoire` and prints `npx 0xray wear`. It does not write `AGENTS.md`, `.mcp.json`, or the chat bridges.
24
+
25
+ `npx 0xray wear` writes the consumer suit:
22
26
 
23
27
  - Copies this file → **`AGENTS.md`** in your project root
24
28
  - Fastens mill plant (`mill` + `inspect`) then overlays **your** `src/skills` (same name wins). Fasten is **foundry-plant/0**: builtin plant is mill+inspect only. `foundry.json` `"plant": "@0xray/blip"` (aliases `"plant": "blip"` / `"plant": "sound"`) fastens whatever that mill package declares (blip-inspect, blip-vibe, blip-looker, sound-inspect, sound-mixer live in the mill). `npx @0xray/foundry sound mix` / `sound render` / `blip render` are CLI shims (0.1.11+). `npx @0xray/foundry inspect` runs mill-exported inspect; on a sound seat the last bed receipt; on a blip seat the last 4.44s receipt. Chat is not a receipt. Does **not** dump 45/42 costume unless `foundry.json` `"costume": true`. Does **not** write root **`SKILLS.md`**
@@ -52,7 +56,7 @@ Governance deliberation uses **code-review**, **security-audit** (via enforcer/s
52
56
  |---------|-------------|
53
57
  | `npx 0xray setup` | Symlinks, hook extras, Hermes skill sync |
54
58
  | `npx 0xray status` | Verify installation |
55
- | `npx 0xray opencode install` | OpenCode bridge (also runs on postinstall) |
59
+ | `npx 0xray opencode install` | OpenCode bridge. `npx 0xray wear` writes it too. |
56
60
  | `npx 0xray grok install` | Project `.grok/plugins/0xray` + 7 MCPs servers (machine plugin not last-wins) |
57
61
  | `npx 0xray hermes install` | Hermes plugin bridge |
58
62
  | `npx 0xray openclaw install` | OpenClaw config + skills |
@@ -158,7 +162,7 @@ When the suit is worn, **lead dev mode** is ON via existing config + hooks:
158
162
 
159
163
  ## Skills
160
164
 
161
- Full catalog in root **`SKILLS.md`** (shipped on postinstall). **`orchestrator`** skill documents lead-dev mode. Invoke via `@orchestrator` or `xray-skills` MCP (`invoke-skill`, `list-skills`).
165
+ Full catalog in root **`SKILLS.md`**. Wear does not write a consumer-root `SKILLS.md`. **`orchestrator`** skill documents lead-dev mode. Invoke via `@orchestrator` or `xray-skills` MCP (`invoke-skill`, `list-skills`).
162
166
 
163
167
  ## File Organization
164
168
 
package/AGENTS.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # xray Agents
2
2
 
3
- Quick reference for the xray AI orchestration framework (**4.0**).
3
+ Quick reference for the 0xRay suit (**4.1**).
4
4
 
5
- **4.0** — a suit that survives the context window.
5
+ **4.1** — a suit that survives the context window.
6
6
 
7
- **Exo, not catalog.** Three-subsystem OS (Inference · External Governance · Autonomous Engine) · constitution always on · temperament by host · 4 floors · **Repertoire preferred** (vendored 0.2.9, dest = laws).
7
+ Confer votes. Burst runs the swarm.
8
+
9
+ **The suit is the wear.** Three-subsystem autonomous engine (Inference · External Governance · Autonomous Engine) · constitution always on · temperament by host · 4 floors · **Repertoire preferred** (vendored 0.2.9, dest = laws).
8
10
 
9
11
  **Temperament:** ceremony (analyze-complexity before spawn, confer) is **guided** by default so free-model OpenCode/Hermes stay in check. Frontier hosts (Grok 4.6 class) with `suit_temperament.profile: auto` **warn** on spawn-without-plan; Codex 11/29/69 still **deny**. Missing `suit_temperament` stays guided. See `docs-site/docs/architecture/v3-from-v2.md`.
10
12
 
@@ -16,10 +18,10 @@ Before other work, Read `.xray/state/STATION.md`. Compaction and host change are
16
18
 
17
19
  ## What is xray?
18
20
 
19
- xray provides intelligent multi-agent orchestration with automatic delegation and Codex compliance validation under the pure v2 three-subsystem model:
21
+ 0xRay is a three-subsystem autonomous engine. The suit is the wear. The host you already run wears it. When the window closes, the next session wakes with the job.
20
22
 
21
23
  - **Inference** — proposals, reflection, memory routing (Repertoire organ on in 4.0)
22
- - **External Governance** — Dynamo Solar SSOT, 69-term Codex
24
+ - **External Governance** — Dynamo Solar SSOT, 69-term Codex. Judgement stays on.
23
25
  - **Autonomous Engine** — thinDispatch 7-flow, AsideContext, confidence gate
24
26
 
25
27
  Agents are declared in `src/opencode/agents/*.yml` — the YML SSOT. Skills live in `src/skills/*/SKILL.md` — see [SKILLS.md](SKILLS.md) for the exo catalog. Consumer default plant is **mill + inspect**, not a 45-skill sync (`AGENTS-consumer.md` → `AGENTS.md`). Factory hangar shops coexist via shop plant. See [llms.txt](llms.txt).
@@ -42,7 +44,9 @@ Governance deliberation: **code-review**, **security-audit**, **researcher** wit
42
44
 
43
45
  ## Postinstall
44
46
 
45
- `postinstall.cjs` → `installAllBridges()`:
47
+ `postinstall.cjs` links vendored `@0xray/repertoire` and prints `npx 0xray wear`. It does not write `.mcp.json` or the chat bridges.
48
+
49
+ `npx 0xray wear` runs `installAllBridges()` from `install-bridges.cjs`:
46
50
 
47
51
  1. `AGENTS-consumer.md` → `AGENTS.md` (does **not** write consumer-root `SKILLS.md`)
48
52
  2. Fasten mill plant (`mill` + `inspect`). Fasten is **foundry-plant/0**: builtin plant is mill+inspect only. `foundry.json` `"plant": "@0xray/blip"` (aliases `"plant": "blip"` / `"plant": "sound"`) fastens whatever that mill package declares (looker, vibe, mixer, blip-inspect, blip-vibe, blip-looker, sound-inspect, sound-mixer live in the mill). Not a 45-skill costume dump unless `foundry.json` `"costume": true`
@@ -61,7 +65,7 @@ Governance deliberation: **code-review**, **security-audit**, **researcher** wit
61
65
 
62
66
  ## Memory routing + Repertoire (preferred, v3.3+)
63
67
 
64
- **Wear Repertoire.** It is the long-term judgment organ. Dest is named invariants (factory + stack laws), not hangar `repo-*` or git slugs. **Station is the compact ticket** (Read `.xray/state/STATION.md`) — not a substitute for Repertoire. The worn mill reads the **project copy** under `.xray/state/repertoire/`. 0.1.0–0.1.8 were the same judgment organ; do not pin 0.1.8. Split: `docs-site/docs/guides/station-vs-repertoire.md`.
68
+ **Wear Repertoire.** It is the long-term judgment organ. Dest is named invariants (factory + stack laws), not hangar `repo-*` or git slugs. **Station is the wake ticket** (Read `.xray/state/STATION.md`) — not a substitute for Repertoire. The worn mill reads the **project copy** under `.xray/state/repertoire/`. 0.1.0–0.1.8 were the same judgment organ; do not pin 0.1.8. Split: `docs-site/docs/guides/station-vs-repertoire.md`.
65
69
 
66
70
  `xray/features.json` → `memory_routing` (schema: `features.schema.json`):
67
71
 
@@ -228,8 +232,15 @@ Full skill mapping: [SKILLS.md](SKILLS.md).
228
232
  | Station vs Repertoire 0.1 | `docs-site/docs/guides/station-vs-repertoire.md` |
229
233
  | AsideContext | `docs-site/docs/guides/aside-context.md` |
230
234
  | Consumer migration | `docs-site/docs/guides/consumer-migration.md` |
235
+ | Bifrost board | `docs-site/docs/plates/bifrost.md` |
236
+ | Seat wake | `grok-bot/templates/house/fleet/WAKE-ROUTINE.md` |
237
+ | Fleet lexicon | `grok-bot/LEXICON.md` |
231
238
  | Docusaurus site | https://0xrayai.github.io/xray/ |
232
239
 
240
+ ## Live board
241
+
242
+ The board seats see is the collector board (`house/live/feed/live_mesh.py`). A cloud agent is a board row (`bcId`, owning seat, linked card, state `running`, `finished`, or `failed`). The seat wake is `grok-bot/templates/house/fleet/WAKE-ROUTINE.md`: `live-inbox <seat> --turn start` on every turn, and `--turn end` on every exit. `live-inbox` requires `LIVE_URL`, `SEAT_KEYS_DIR`, and `LIVE_CURSORS`. A missing or empty one exits 2 and names it. A stuck card sends L1 to the next owner or the card owner, and L2 to the CoS role. An unacked line and a missing handoff stay on that seat through L3, and the CoS role is woken at L3.
243
+
233
244
  ## Release artifacts
234
245
 
235
- `npm run release:patch` updates: `package.json`, `CHANGELOG.md`, `README.md`, `AGENTS.md`, `AGENTS-consumer.md`, `SKILLS.md`, `llms.txt`, Docusaurus guides.
246
+ `npm run release:patch` updates: `package.json`, `CHANGELOG.md`, `README.md`, `AGENTS.md`, `AGENTS-consumer.md`, `SKILLS.md`, `llms.txt`, Docusaurus guides.
package/LICENSE CHANGED
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,37 +1,45 @@
1
- # xray — exo for coding agents
1
+ # xray — a suit for coding agents
2
2
 
3
- **4.0** — a suit that survives the context window
3
+ ![0xRay — A Power Suit for AI Agents. survive compaction. build foundries. monitor the swarm.](docs-site/static/img/readme-hero.jpg)
4
4
 
5
- ![0xRay v4 exo — CONSTITUTION ON](docs-site/static/img/exo-skeleton-v4.jpg)
5
+ **4.1** — a suit that survives the context window
6
6
 
7
- Not a catalog of agents. The product is the **skeleton you wear**.
7
+ Bifrost is the live board. Goggles reads one named plane.
8
+
9
+ 0xRay is a three-subsystem autonomous engine. The suit is the wear. Inference remembers. External Governance judges. The Autonomous Engine runs the work. The host you already run wears it: Grok, OpenCode, Hermes, OpenClaw, or Cursor. Memory, judgement, and payments come on with the suit. When the window closes, the next session wakes with the job, the page, and the laws.
10
+
11
+ Bifrost turns each pull request, issue, and comment into one card and a line in the right seat's inbox, then wakes that seat. Confer still completes only on a real yes. A foundry is built from mills and hangars. The mill builds and ships. The hangar is the shop.
12
+
13
+ The product is the **skeleton you wear**.
8
14
 
9
15
  ## Your AI Power Suit
10
16
 
11
17
  **Your AI Power ⚡️ Suit 🦾** — an exoskeleton that blocks AI slop from becoming real damage.
12
18
 
13
- - **Bone** — three-subsystem OS: Inference · External Governance (Dynamo / Codex) · Autonomous Engine (thinDispatch)
19
+ - **Bone** — three-subsystem engine: Inference · External Governance (Dynamo / Codex) · Autonomous Engine (thinDispatch)
14
20
  - **Always on** — Codex 11 / 29 / 69, destructive shell, no new MCP/skill/handler surface
15
21
  - **Temperament** — `frontier` | `guided` | `strict` | `auto` — how loud the engine is, not whether governance exists
16
22
  - **Wear** — Grok, OpenCode, Hermes, OpenClaw, plus Cursor project hooks. One SSOT gate
17
- - **Muscle** — **Repertoire is preferred.** Vendored 0.2.9 ships **on**. Dest is named laws, not hangar `repo-*` or git slugs. Station is the compact-survival ticket — not a substitute for Repertoire.
23
+ - **Muscle** — **Repertoire is preferred.** Vendored 0.2.9 ships **on**. Dest is named laws, not hangar `repo-*` or git slugs. Station is the wake ticket — not a substitute for Repertoire.
18
24
 
19
25
  ```bash
20
26
  npm install 0xray
27
+ npx 0xray wear
21
28
  ```
22
29
 
23
- Consumer `npm install 0xray` auto-wires four chat bridges, Cursor project hooks, and seven MCP servers. **Repertoire is preferred** — vendored **0.2.9** ships on: factory + stack laws, in-process routing, extra host MCP `repertoire`. Not an eighth `xray-*` server. Dest is a judgment index. Explicit opt-out only: `"enabled": false, "provider": "repertoire"`. Do not pin 0.1.8.
30
+ `npm install 0xray` links vendored `@0xray/repertoire` and prints `npx 0xray wear`. It does not write `.mcp.json` or the chat bridges. Wear writes the consumer suit: managed `AGENTS.md`, `.xray` config, seven MCP servers, and the OpenCode, Grok, Hermes, and OpenClaw bridges (`install-bridges.cjs`). Inside a git checkout, wear also fastens Cursor project hooks. **Repertoire is preferred** — vendored **0.2.9** ships on: factory + stack laws, in-process routing, extra host MCP `repertoire`. Not an eighth `xray-*` server. Dest is a judgment index. Explicit opt-out only: `"enabled": false, "provider": "repertoire"`. Do not pin 0.1.8.
24
31
 
25
32
  ## Quick Start
26
33
 
27
34
  ```bash
28
- npm install 0xray # postinstall: mill+inspect plant + 4 bridges + 7 MCPs + AGENTS.md + .mcp.json
29
- npx 0xray status # verify install
30
- npx 0xray setup # optional: symlinks, hook extras
35
+ npm install 0xray
36
+ npx 0xray wear
37
+ npx 0xray status
38
+ npx 0xray setup --git-hooks # optional: git hooks only
31
39
  npx @0xray/foundry inspect --skip-live # mill receipt (chat is not a receipt)
32
40
  ```
33
41
 
34
- Manual per-platform install (idempotent, same result as postinstall):
42
+ Manual per-platform install (idempotent, same bridges wear writes):
35
43
 
36
44
  ```bash
37
45
  npx 0xray opencode install
@@ -51,12 +59,50 @@ Docs: [guides/autonomy-command](docs-site/docs/guides/autonomy-command.md) · Sk
51
59
 
52
60
  | Version | Highlights |
53
61
  |---------|------------|
54
- | **Unreleased** | Fasten is **foundry-plant/0**: builtin plant is mill+inspect only. `foundry.json` `"plant": "@0xray/blip"` (aliases `"plant": "blip"` / `"plant": "sound"`) fastens whatever that mill declares (looker / vibe / mixer live in the mill). Nested mill `@0xray/foundry@0.1.12`. CLI shims `foundry blip\|sound` remain (0.1.11+). Shop plant first-class (`shop-extract`, `shop-witness`, `shop-pin` + `foundry.json` `shopPlant`). |
62
+ | **4.1.0** | Bifrost is the collector board. A cloud agent is a board row. A stuck card's L2 nudge goes to the CoS role. `live-inbox` requires `LIVE_URL`, `SEAT_KEYS_DIR`, and `LIVE_CURSORS`. Goggles reads one named plane. |
63
+ | **4.0.43** | Confer completes only on a real PASS. Cursor gate events fail closed, except EACCES when a cloud wrapper cannot write dest. Gate C cannot be skipped. |
64
+ | **4.0.42** | Confer votes. Burst runs the swarm. |
65
+ | **4.0.41** | Wake cascade stays on the station module. A fresh wear fastens mill and inspect. Goggles records the worn package path. The live page plays the mesh in the browser. |
66
+ | **4.0.40** | Live mesh runs the full loop: feed watch, render, direction, deploy, health, and the ledger both ways. |
67
+ | **4.0.39** | The seven stack laws stay worn. Repertoire in the suit is 0.2.9. |
68
+ | **4.0.38** | Codex term 70 requires the current source and the worn npm package. Dynamo's recommendation is honored. |
69
+ | **4.0.37** | A naked checkout wakes with repertoire on. |
70
+ | **4.0.36** | Goggles holds the stop through search, read, and a dist wipe. |
71
+ | **4.0.35** | Wear rewrites a checkout `dist/cli` launch to `node_modules/0xray`. |
72
+ | **4.0.34** | The lens stays on the worn build when the source is not packed. |
73
+ | **4.0.33** | Version bump. |
74
+ | **4.0.32** | `0xray look` opens one plane. Digest and triage return the card. Calling and confer stay off. |
75
+ | **4.0.31** | Goggles looks at one pipeline. Kind 0 stays quiet when the worn list matches the map. Calling and confer stay off. |
55
76
  | **4.0.30** | Fixes 4.0.29: `npx 0xray wear` and `setup` work outside a git checkout again. They write the 4.0.28 project setup, skip only Cursor hooks, and print one warning. Inside a git checkout they restore the 4.0.28 project setup, and `wear` adds Cursor hooks plus the unwear snapshot. Companion `@0xray/grok-bot` 0.1.8. Released 2026-09-28. |
56
77
  | **4.0.29** | `npm install` only creates the relative `node_modules/@0xray/repertoire` link to the vendored repertoire and prints `npx 0xray wear`. Run `npx 0xray wear` after install. Wear writes only the consumer project's `.cursor/hooks.json` (installed dist hooks, beside user entries); `npx 0xray unwear` restores the snapshot. Companion `@0xray/grok-bot` 0.1.8. Released 2026-09-28. |
57
78
  | **4.0.28** | MCP servers start through `scripts/node/mcp-launch.cjs` and only see PATH, HOME, XRAY_ROOT, plus names on their keep list. Tokens such as NPM_TOKEN are not inherited. User env values stay out of argv. Postinstall keeps user edits to AGENTS.md, .mcp.json, and opencode.json. `house init` does not copy EXAMPLE.md; doctor FAILs while `house/EXAMPLE.md` exists. Inspect adds a machinePlugin check. The Cursor hook defaults XRAY_ROOT to the suit. Companion `@0xray/grok-bot` 0.1.7. Released 2026-09-27. |
58
79
  | **4.0.27** | Host compact proof needs a generation id and a numeric usage percent, and the same preCompact receipt is mirrored to nested consumer wear roots. Memory scoring: [docs/memory-scoring.md](docs/memory-scoring.md) (orchestrator links it). Companion `@0xray/grok-bot` 0.1.6: general page vs `house/` overlay, `templates/house/`, `grok-bot house init`, doctor `GROK_BOT_HOUSE` or walk-up. Released 2026-09-26. |
80
+ | **4.0.26** | A lesson is stored when the task matches no signal. A Cursor compact cut is proved with a session log and a per-session receipt. |
81
+ | **4.0.25** | Plate schematics ship in the package. A worn suit resolves them from `dist/integrations/hooks/plates.cjs`. |
82
+ | **4.0.24** | Compaction and a host change are the same cut. The station card is the handoff. Repertoire in that suit is 0.2.8. |
83
+ | **4.0.23** | The Dynamo client starts when external governance is required. Proposals score locally when that governance is off. |
84
+ | **4.0.22** | The stamper strips present-tense patch pins from shipped prose. The cursor gate follows the suit mill. |
85
+ | **4.0.21** | Dest is named laws, not hangar slugs. Cleanup heat grows the project copy when Repertoire is on. |
86
+ | **4.0.20** | Heat grows the project copy. Session boot rewrites when HEAD moves. |
87
+ | **4.0.19** | Vendored Repertoire 0.2.5. Wear replaces older leftovers. |
88
+ | **4.0.18** | Wake heat joins bookmark, index, and mind. |
89
+ | **4.0.17** | Cursor heat writes session files when HEAD moves. |
90
+ | **4.0.16** | `npx 0xray validate` is a wear check. |
91
+ | **4.0.15** | Fasten is **foundry-plant/0**: builtin plant is mill+inspect only. `foundry.json` `"plant": "@0xray/blip"` (aliases `"plant": "blip"` / `"plant": "sound"`) fastens whatever that mill declares (looker / vibe / mixer live in the mill). Nested mill `@0xray/foundry@0.1.12`. CLI shims `foundry blip\|sound` remain (0.1.11+). Shop plant first-class (`shop-extract`, `shop-witness`, `shop-pin` + `foundry.json` `shopPlant`). |
92
+ | **4.0.14** | Factory-blip beds stamp the hook cell and keep six tellable bodies. |
93
+ | **4.0.13** | Station PreCompact merge keeps custom STATION.md keys. |
94
+ | **4.0.12** | Project-scoped Grok plugin dest so multi-seat wear does not clobber the machine plugin. |
95
+ | **4.0.11** | The npm pack includes `.grok-plugin/` so the Grok marketplace manifest ships. |
96
+ | **4.0.10** | Version bump. |
59
97
  | **4.0.9** | Mill target: postinstall does not mill npm global prefix or `_npx` as a consumer. Isolated HOME skips machine `~/.grok`. |
98
+ | **4.0.8** | Confer abstains locally instead of rubber-stamping a proposal. |
99
+ | **4.0.7** | Nested mill 0.1.9. Inventory writes `dna`. The mill does not mint on chain. |
100
+ | **4.0.6** | Nested mill 0.1.8. Isolated HOME skips machine Hermes and OpenClaw. |
101
+ | **4.0.5** | Inspect is a mill command. A costume dump fails mint. Mill plant stays mill + inspect. |
102
+ | **4.0.4** | Mill fastens an inspect suit. Costume is opt-in with `foundry.json` `"costume": true`. |
103
+ | **4.0.3** | Their plant is the suit. The mill plant is the factory discipline on the hanger. |
104
+ | **4.0.2** | The nested mill ships in the 0xray tarball. `@0xray/foundry` stays the standalone mill CLI. |
105
+ | **4.0.1** | CLI `--version` no longer dumps a Commander stack. The release gate smokes the organ and does not run another publish from a lifecycle script. |
60
106
  | **4.0.0** | Exo + temperament. Constitution always on; ceremony by host. Repertoire organ on (vendored 0.2). Station card survives compact/host-swap. **On npm.** [vision](docs-site/docs/architecture/v4-vision.md) · [now](docs-site/docs/architecture/v4-now.md) |
61
107
  | **3.4.1** | Unified `install-bridges.cjs` on postinstall — OpenCode, Grok, Hermes, OpenClaw in one pass. All 7 MCPs servers via `npx -y 0xray mcp <cmd>` (no `dist/` paths). Canonical `release.mjs` pipeline. |
62
108
  | **3.3.1** | Orchestrator confidence gate wired into execution planning. |
@@ -102,9 +148,9 @@ Docs: [guides/autonomy-command](docs-site/docs/guides/autonomy-command.md) · Sk
102
148
  - **External Governance** — Dynamo Solar SSOT; CodexPolicyService; weighted PHI/TAU deliberation.
103
149
  - **Autonomous Engine** — thinDispatch 7-flow routing; orchestrator confidence gate (v3.3.1).
104
150
 
105
- ## Consumer Install (postinstall)
151
+ ## Consumer Install (wear)
106
152
 
107
- On `npm install 0xray` in a consumer project, postinstall automatically:
153
+ `npm install 0xray` links the vendored repertoire and prints `npx 0xray wear`. Wear then:
108
154
 
109
155
  1. Copies **`AGENTS-consumer.md` → `AGENTS.md`**. Does **not** write consumer-root **`SKILLS.md`**.
110
156
  2. Fastens **mill plant** (`mill` + `inspect`). Fasten is **foundry-plant/0**: builtin plant is mill+inspect only. `foundry.json` `"plant": "@0xray/blip"` (aliases `"plant": "blip"` / `"plant": "sound"`) fastens whatever that mill package declares — organs (looker, vibe, mixer) live in the mill, not an xray catalog. Nested mill `@0xray/foundry@0.1.12`. CLI shims `foundry blip|sound` still exist on foundry 0.1.11+; fasten is the new cut. Not a 45-skill / 42-agent costume dump. `foundry.json` `"costume": true` is the opt-in dump.
@@ -113,7 +159,7 @@ On `npm install 0xray` in a consumer project, postinstall automatically:
113
159
  5. Writes project **`.mcp.json`** with 7 MCPs servers (`npx -y 0xray mcp …`)
114
160
  6. Installs **4 chat bridges**: OpenCode, Grok, Hermes, OpenClaw, plus **Cursor** `.cursor/hooks.json` (PPE + wiring; mill plant, not costume)
115
161
  7. Factory shop plant (`shop-extract`, `shop-witness`, `shop-pin` from groover-hangar) may coexist when worn. Extra shops: `foundry.json` `shopPlant`. Not costume.
116
- 8. Installs git pre-commit hook (non-blocking if not a git repo)
162
+ 8. Inside a git checkout, fastens Cursor `.cursor/hooks.json` and the hook scripts, and keeps an unwear snapshot. Outside a git checkout, skips those hooks and prints one warning. `npx 0xray setup --git-hooks` is what installs git hooks.
117
163
 
118
164
  See [llms.txt](llms.txt) for the agent map. Catalog of 45 skills lives in [SKILLS.md](SKILLS.md) — that is the exo catalog, not default consumer wear.
119
165
 
@@ -186,13 +232,13 @@ Docs: [memory routing](docs-site/docs/guides/memory-routing.md) · [Repertoire](
186
232
 
187
233
  ## Integrations
188
234
 
189
- | Platform | Install | Postinstall behavior |
235
+ | Platform | Install | What that command writes |
190
236
  |----------|---------|----------------------|
191
237
  | **OpenCode** | `npx 0xray opencode install` | Merges `opencode.json`, copies agent YML surfaces |
192
238
  | **Grok CLI / Build** | `npx 0xray grok install` | Project `.grok/plugins/0xray` (shared HOME does not clobber machine plugin), 7 MCPs servers |
193
239
  | **Hermes Agent** | `npx 0xray hermes install` | `~/.hermes/plugins/xray-hermes`, consumer root marker |
194
240
  | **OpenClaw** | `npx 0xray openclaw install` | `.xray/config/openclaw.json`, skill sync |
195
- | **Cursor** | postinstall (`installCursorBridge`) | Fastens `.cursor/hooks.json` + relative `.cursor/hooks/*.sh`. Rewrites leftover env-assignment one-liners. Not a fifth chat TUI. |
241
+ | **Cursor** | `npx 0xray wear` inside a git checkout | Fastens `.cursor/hooks.json` + relative `.cursor/hooks/*.sh`. Rewrites leftover env-assignment one-liners. Not a fifth chat TUI. |
196
242
 
197
243
  ## Governance & Codex
198
244
 
@@ -219,7 +265,7 @@ npm run release:npm # gate + prepare + npm publish --access public
219
265
 
220
266
  ## Release
221
267
 
222
- The **4.0** line is on npm. Do **not** run `release:major` to ship a 4.x fix (that becomes 5.0.0). Do **not** put a `scripts.publish` lifecycle that re-runs the gate after the registry PUT. Patch number lives in `package.json` + CHANGELOG.
268
+ The **4.1** line is on npm. Do **not** run `release:major` to ship a 4.x fix (that becomes 5.0.0). Do **not** put a `scripts.publish` lifecycle that re-runs the gate after the registry PUT. Patch number lives in `package.json` + CHANGELOG.
223
269
 
224
270
  ```bash
225
271
  npm run release:gate
@@ -235,4 +281,4 @@ MIT — see [LICENSE](LICENSE)
235
281
 
236
282
  ---
237
283
 
238
- *xray — MCP-centric, governed, autonomous. Pure v2 three-subsystem.*
284
+ *xray — a three-subsystem autonomous engine. The suit is the wear.*
package/SKILLS.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # 0xray Skills
2
2
 
3
- **4.0** — a suit that survives the context window
3
+ **4.1** — a suit that survives the context window
4
+
5
+ Confer votes. Burst runs the swarm.
6
+
7
+ 0xRay is a three-subsystem autonomous engine. The suit is the wear. This file is the catalog.
4
8
 
5
9
  **45 skills** in this exo catalog. Default consumer plant is **`mill` + `inspect`**, not this dump. `npm install 0xray` does **not** sync 45 skills unless `foundry.json` `"costume": true`. Factory shop plant (`shop-extract`, `shop-witness`, `shop-pin`) coexists with mill plant when a hangar wears those shops. Extra shops: `foundry.json` `shopPlant`. Fasten is **foundry-plant/0**: builtin plant is mill+inspect only. `foundry.json` `"plant": "@0xray/blip"` (aliases `"plant": "blip"` / `"plant": "sound"`) fastens whatever that mill package declares — organs (looker, vibe, mixer) live in the mill, not this catalog. Nested mill `@0xray/foundry@0.1.12`. CLI shims `foundry blip|sound` still exist on foundry 0.1.11+. Agent map: [llms.txt](llms.txt).
6
10
 
package/dist/AGENTS.md CHANGED
@@ -1,10 +1,12 @@
1
1
  # xray Agents
2
2
 
3
- Quick reference for the xray AI orchestration framework (**4.0**).
3
+ Quick reference for the 0xRay suit (**4.1**).
4
4
 
5
- **4.0** — a suit that survives the context window.
5
+ **4.1** — a suit that survives the context window.
6
6
 
7
- **Exo, not catalog.** Three-subsystem OS (Inference · External Governance · Autonomous Engine) · constitution always on · temperament by host · 4 floors · **Repertoire preferred** (vendored 0.2.9, dest = laws).
7
+ Confer votes. Burst runs the swarm.
8
+
9
+ **The suit is the wear.** Three-subsystem autonomous engine (Inference · External Governance · Autonomous Engine) · constitution always on · temperament by host · 4 floors · **Repertoire preferred** (vendored 0.2.9, dest = laws).
8
10
 
9
11
  **Temperament:** ceremony (analyze-complexity before spawn, confer) is **guided** by default so free-model OpenCode/Hermes stay in check. Frontier hosts (Grok 4.6 class) with `suit_temperament.profile: auto` **warn** on spawn-without-plan; Codex 11/29/69 still **deny**. Missing `suit_temperament` stays guided. See `docs-site/docs/architecture/v3-from-v2.md`.
10
12
 
@@ -16,10 +18,10 @@ Before other work, Read `.xray/state/STATION.md`. Compaction and host change are
16
18
 
17
19
  ## What is xray?
18
20
 
19
- xray provides intelligent multi-agent orchestration with automatic delegation and Codex compliance validation under the pure v2 three-subsystem model:
21
+ 0xRay is a three-subsystem autonomous engine. The suit is the wear. The host you already run wears it. When the window closes, the next session wakes with the job.
20
22
 
21
23
  - **Inference** — proposals, reflection, memory routing (Repertoire organ on in 4.0)
22
- - **External Governance** — Dynamo Solar SSOT, 69-term Codex
24
+ - **External Governance** — Dynamo Solar SSOT, 69-term Codex. Judgement stays on.
23
25
  - **Autonomous Engine** — thinDispatch 7-flow, AsideContext, confidence gate
24
26
 
25
27
  Agents are declared in `src/opencode/agents/*.yml` — the YML SSOT. Skills live in `src/skills/*/SKILL.md` — see [SKILLS.md](SKILLS.md) for the exo catalog. Consumer default plant is **mill + inspect**, not a 45-skill sync (`AGENTS-consumer.md` → `AGENTS.md`). Factory hangar shops coexist via shop plant. See [llms.txt](llms.txt).
@@ -42,7 +44,9 @@ Governance deliberation: **code-review**, **security-audit**, **researcher** wit
42
44
 
43
45
  ## Postinstall
44
46
 
45
- `postinstall.cjs` → `installAllBridges()`:
47
+ `postinstall.cjs` links vendored `@0xray/repertoire` and prints `npx 0xray wear`. It does not write `.mcp.json` or the chat bridges.
48
+
49
+ `npx 0xray wear` runs `installAllBridges()` from `install-bridges.cjs`:
46
50
 
47
51
  1. `AGENTS-consumer.md` → `AGENTS.md` (does **not** write consumer-root `SKILLS.md`)
48
52
  2. Fasten mill plant (`mill` + `inspect`). Fasten is **foundry-plant/0**: builtin plant is mill+inspect only. `foundry.json` `"plant": "@0xray/blip"` (aliases `"plant": "blip"` / `"plant": "sound"`) fastens whatever that mill package declares (looker, vibe, mixer, blip-inspect, blip-vibe, blip-looker, sound-inspect, sound-mixer live in the mill). Not a 45-skill costume dump unless `foundry.json` `"costume": true`
@@ -61,7 +65,7 @@ Governance deliberation: **code-review**, **security-audit**, **researcher** wit
61
65
 
62
66
  ## Memory routing + Repertoire (preferred, v3.3+)
63
67
 
64
- **Wear Repertoire.** It is the long-term judgment organ. Dest is named invariants (factory + stack laws), not hangar `repo-*` or git slugs. **Station is the compact ticket** (Read `.xray/state/STATION.md`) — not a substitute for Repertoire. The worn mill reads the **project copy** under `.xray/state/repertoire/`. 0.1.0–0.1.8 were the same judgment organ; do not pin 0.1.8. Split: `docs-site/docs/guides/station-vs-repertoire.md`.
68
+ **Wear Repertoire.** It is the long-term judgment organ. Dest is named invariants (factory + stack laws), not hangar `repo-*` or git slugs. **Station is the wake ticket** (Read `.xray/state/STATION.md`) — not a substitute for Repertoire. The worn mill reads the **project copy** under `.xray/state/repertoire/`. 0.1.0–0.1.8 were the same judgment organ; do not pin 0.1.8. Split: `docs-site/docs/guides/station-vs-repertoire.md`.
65
69
 
66
70
  `xray/features.json` → `memory_routing` (schema: `features.schema.json`):
67
71
 
@@ -228,8 +232,15 @@ Full skill mapping: [SKILLS.md](SKILLS.md).
228
232
  | Station vs Repertoire 0.1 | `docs-site/docs/guides/station-vs-repertoire.md` |
229
233
  | AsideContext | `docs-site/docs/guides/aside-context.md` |
230
234
  | Consumer migration | `docs-site/docs/guides/consumer-migration.md` |
235
+ | Bifrost board | `docs-site/docs/plates/bifrost.md` |
236
+ | Seat wake | `grok-bot/templates/house/fleet/WAKE-ROUTINE.md` |
237
+ | Fleet lexicon | `grok-bot/LEXICON.md` |
231
238
  | Docusaurus site | https://0xrayai.github.io/xray/ |
232
239
 
240
+ ## Live board
241
+
242
+ The board seats see is the collector board (`house/live/feed/live_mesh.py`). A cloud agent is a board row (`bcId`, owning seat, linked card, state `running`, `finished`, or `failed`). The seat wake is `grok-bot/templates/house/fleet/WAKE-ROUTINE.md`: `live-inbox <seat> --turn start` on every turn, and `--turn end` on every exit. `live-inbox` requires `LIVE_URL`, `SEAT_KEYS_DIR`, and `LIVE_CURSORS`. A missing or empty one exits 2 and names it. A stuck card sends L1 to the next owner or the card owner, and L2 to the CoS role. An unacked line and a missing handoff stay on that seat through L3, and the CoS role is woken at L3.
243
+
233
244
  ## Release artifacts
234
245
 
235
- `npm run release:patch` updates: `package.json`, `CHANGELOG.md`, `README.md`, `AGENTS.md`, `AGENTS-consumer.md`, `SKILLS.md`, `llms.txt`, Docusaurus guides.
246
+ `npm run release:patch` updates: `package.json`, `CHANGELOG.md`, `README.md`, `AGENTS.md`, `AGENTS-consumer.md`, `SKILLS.md`, `llms.txt`, Docusaurus guides.
package/dist/CHANGELOG.md CHANGED
@@ -6,6 +6,89 @@ The format is based on [Conventional Commits](https://www.conventionalcommits.or
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ Groundwork before the 4.1.0 publish. The notes under [4.1.0] are the cut. npm latest is still 4.0.42.
10
+
11
+ ## [4.1.0] - 2026-10-15
12
+
13
+ Work on main after 4.0.42. The [4.0.43] section below is the earlier confer and hook cut. 4.0.43 was stamped and not published.
14
+
15
+ ### Bifrost board
16
+
17
+ The board seats see is the collector board. `house/live/feed/live_mesh.py` runs the collector and the board every `LIVE_WATCH_S` seconds (default 45). An empty box board does not replace those cards.
18
+
19
+ - A pull request or issue is one card. Reviews, merges, CI, pushes, reopens, drafts, and a quiet pull request land on that card. CI stays on the card and is not board traffic.
20
+ - `merged_by` is the GitHub user who merged. A pulls list that omits `merged_by`, or that only has the author, is corrected with `GET /pulls/:n` (`house/live/feed/live_collect.py`). The author is not stored as the merger.
21
+ - `live-inbox <seat> --card <owner/repo#n> --start-after <ISO>` parks the card until that time, then one inbox line wakes the owning seat. A GitHub comment whose first line is `Start after: <ISO>` sets the same field only when the comment is from the card owner or a fleet seat, and only within 30 days.
22
+ - Handoff is `live-inbox <seat> --handoff <to> --pr <owner/repo#n> --kind <ready|critic_fail|live_pass|merge|ci_fail> --sha <head>`. `--sha` is 7 to 64 hex digits. The command posts one inbox packet and prints the 1:1 line. A room post does not clear a missing packet.
23
+ - Railway deploy polls stamp BUILDING, then DEPLOYING, then the terminal status. A poll that first sees SUCCESS backfills the stages it missed.
24
+ - Deploy goes through `house/live/app/deploy.sh`, which assembles `collector/`. A Railway build straight from git stops in the Dockerfile with `ERROR: collector/ is not assembled`.
25
+ - A cloud agent is a board row (`cloud_agents`, also `board.cloud_agents` when a card board is present). Each row has `bcId`, owning seat, linked card, `pr` when the webhook sent one, state `running`, `finished`, or `failed`, and `updated_ct`. `POST /cursor/webhook` appends `agents.jsonl` after the signature check. `POST /activity` with kind `cloud_agent` or `agent` and action `launch`, `reply`, `finished`, or `cancel` is the other feed. Webhook `ERROR`, `FAILED`, `TIMED_OUT`, and `CANCELLED` are `failed`. The newest line sets the state. (#367)
26
+
27
+ ### Nudge
28
+
29
+ `evalNudges` in `house/live/app/server.mjs` is the one nudge path.
30
+
31
+ - A live card with no beat for `NUDGE_L1_S` (default 3600) sends L1 to the next owner, or else the card owner. L2 goes to the CoS role after `NUDGE_L2_S` (default 1800). L3 repeats to the L1 seat after `NUDGE_L3_S` (default 7200), and the CoS role is woken once to reassign.
32
+ - An unacked inbox line steps L1, L2, and L3 on that same seat, `NUDGE_LINE_S` apart (default 900). The CoS role is woken at L3.
33
+ - A missing handoff nudges the owing seat at L1, again at L2, and again at L3. The CoS role is woken once at L3.
34
+
35
+ ### Wake routine
36
+
37
+ `grok-bot/templates/house/fleet/WAKE-ROUTINE.md` is the seat wake. Every turn runs `live-inbox <seat> --turn start`. Turn end runs on every exit. An owner message runs `live-inbox <seat> --prompt` first. Compaction is a wake: read Station, then NOTES, before the inbox. Notes are appended after every beat. Before launching a cloud agent for a card, the seat checks for one already running or finished with a pull request for that card.
38
+
39
+ ### live-inbox
40
+
41
+ `house/live/tools/live-inbox` requires `LIVE_URL`, `SEAT_KEYS_DIR`, and `LIVE_CURSORS`. A missing or empty one exits 2 and names it. The tool does not guess. The installed copy is `$HOME/.burst/bin/live-inbox` unless `LIVE_INBOX_BIN` is set. The wake template ships the export line.
42
+
43
+ ### Lexicon
44
+
45
+ `grok-bot/LEXICON.md` records the handoff `--sha` row and the practice **button up**: when weekly burn hits the hold line, every seat stops new work, runs no local builds, tests, or deploys on its own computer, pauses its Bifrost inbox wake until the reset, leaves only cloud agents for anything essential, and reports and acks in the room.
46
+
47
+ ### Nudge monitor
48
+
49
+ `src/monitoring/nudge-watchdog.ts` is now `nudge-monitor.ts` (`NudgeMonitor`, `nudgeMonitor`, `getNudgeMonitor`) and the config key is `features.nudge_monitor`. The old key `features.nudge_watchdog` still works as a deprecated alias when `nudge_monitor` is unset (the new key wins if both are set) and logs a one-time deprecation warning. (#303)
50
+
51
+ ## [4.0.43] - 2026-10-12
52
+
53
+ ### 🔄 Changes
54
+
55
+ - A Cursor pre-tool error denies the tool unless that error is EACCES. A cloud wrapper that cannot write dest still allows the tool.
56
+ - Cursor gate events (preToolUse, beforeShellExecution, beforeReadFile) fail closed. A crashed gate, empty or malformed input, or a missing node or hook file denies the tool. The one exception is EACCES when a cloud wrapper cannot write dest, which still allows the tool. Wear and re-wear set failClosed on those events.
57
+ - Hermes, OpenCode, OpenClaw, and Cursor run the lens and the repertoire route on the pre-tool allow path. The lens sees the tool path. A research call with no named plane stops. One named plane allows.
58
+ - The shipped plant does not write the autonomous-reporting schedule or the post-tool light marker. Turn either switch on and the writer still runs. The inference cycle still starts from `inference:run`.
59
+ - Consumer smoke inspects an empty machine home, so a Grok plugin on the real machine does not fail that seat.
60
+ - OpenCode mill install copies the plugin and leaves leftover init.sh uncopied.
61
+ - Gate C cannot be skipped. Gate D is proven only when npm lists the version, the annotated tag points at that commit, and the GitHub Release page exists. A local gate pass is not that proof.
62
+
63
+ ### 🐛 Bug Fixes
64
+ - fix: stop the vendored complete-todo command from minting PASS (39c88c8fa)
65
+ - fix: bind Confer receipts to a synthesis cycle (5134c5d05)
66
+ - fix: treat ambiguous Confer text as UNREVIEWED (06acc24f1)
67
+ - fix: complete Confer only on a real approve (8776562d7)
68
+ - fix: parse only the first Confer DECISION token (c06747d95)
69
+ - fix: keep Confer off unless it is explicitly enabled (8cd356c24). These confer fixes, and the no-LLM confer test below, are ancestors of the v4.0.42 tag. The new work in this stamp is the Cursor fail-closed cut (#255).
70
+
71
+ ### 🧪 Tests
72
+ - test: lock no-LLM confer votes out of a PASS merge (e30628fef)
73
+
74
+ ---
75
+
76
+ ## [4.0.42] - 2026-10-09
77
+
78
+ ### 🔄 Changes
79
+
80
+ Confer votes. Burst runs the swarm.
81
+
82
+ - Confer asks the MCP servers the wearing chat already spawned. Only a real PASS completes the consult. A PASS that belongs to another session is asked again.
83
+ - Wear pins Grok at the installed CLI. Hermes codex-check catches a console call. OpenClaw stays on the installed plugin. Cursor hooks stay on a git checkout.
84
+ - Burst runs the swarm live. The board keeps an honest LIVE pill and one seat state. The box posts one delta while `push.sh` holds the lock, retries once on 409, and keeps the ingest secret in the header.
85
+ - A SENT prompt holds that seat working for 10 minutes. A posted seat must match the installation token. Legacy prompt lines are still read from `fleet/prompts.jsonl`. Seats post a prompt with `live-inbox <seat> --prompt`.
86
+
87
+
88
+ ### Notes above this cut in the published package
89
+
90
+ These notes were `[Unreleased]` in the 4.0.42 package. #368 removed them from `main`. They are not new in 4.1. `[4.0.22]` through `[4.0.41]` keep the short commit lines. This is the prose.
91
+
9
92
  ### Features
10
93
  - **Goggles.** Proposed plates for goggles, suit, kits, host pack, and glossary. Goggles views one plane. Recall opens a plate when speech names that plate. Plates only. Not a new skill.
11
94
  - **Plates.** Pipeline schematics live in `docs-site/docs/plates/` (routing, governance, boot, orchestration, processor, reporting, memory-recall). Station keeps one pointer line. Pre-compact and the `MEMORY_ROUTING` inject carry that one schematic. A lesson is an episode. A plate is the machine. Not a new skill.
@@ -42,6 +125,8 @@ The format is based on [Conventional Commits](https://www.conventionalcommits.or
42
125
  - Archive root `integrations/` costume SKILL dump → `docs/archive/integrations-costume/`. Live wear is `src/integrations`.
43
126
  - Archive root `commands/` stale copy → `docs/archive/commands-copy/`. Live wear is `src/opencode/commands`.
44
127
 
128
+ ---
129
+
45
130
  ## [4.0.41] - 2026-10-07
46
131
 
47
132
  ### 🔄 Changes
package/dist/LICENSE CHANGED
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
21
+ SOFTWARE.