0xray 4.0.42 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitignore.default +4 -1
- package/.grok-plugin/plugin.json +1 -1
- package/.opencode/skills/orchestrator/SKILL.md +1 -7
- package/.plugin/plugin.json +1 -1
- package/.xray/features.json +8 -5
- package/.xray/features.schema.json +8 -0
- package/AGENTS-consumer.md +9 -7
- package/AGENTS.md +19 -10
- package/LICENSE +1 -1
- package/README.md +15 -9
- package/SKILLS.md +3 -1
- package/dist/.gitignore.default +4 -1
- package/dist/AGENTS.md +19 -10
- package/dist/CHANGELOG.md +109 -11
- package/dist/LICENSE +1 -1
- package/dist/README.md +15 -9
- package/dist/SKILLS.md +3 -1
- package/dist/cli/commands/opencode-install.js +3 -9
- package/dist/cli/commands/plugin-commands.d.ts +4 -0
- package/dist/cli/commands/plugin-commands.js +84 -41
- package/dist/cli/commands/skill-install.js +10 -5
- package/dist/cli/goggles-status.d.ts +2 -5
- package/dist/cli/goggles-status.js +5 -53
- package/dist/cli/index.js +2 -2
- package/dist/core/config-loader.js +4 -4
- package/dist/core/features-config.d.ts +1 -1
- package/dist/core/features-config.js +3 -3
- package/dist/enforcement/enforcer-tools.d.ts +1 -1
- package/dist/enforcement/enforcer-tools.js +1 -1
- package/dist/integrations/cursor/README.md +1 -1
- package/dist/integrations/cursor/hooks/hooks.json +6 -3
- package/dist/integrations/cursor/hooks/pre-tool-use.js +104 -37
- package/dist/integrations/cursor/hooks/xray-cloud-hook.sh +9 -1
- package/dist/integrations/grok/grok-cli.js +5 -7
- package/dist/integrations/grok/hooks/grok-hook-utils.js +4 -1
- package/dist/integrations/grok/hooks/pre-tool-use.js +6 -76
- package/dist/integrations/grok/hooks/session-start.js +4 -2
- package/dist/integrations/hermes-agent/bridge.mjs +17 -1
- package/dist/integrations/hooks/delegation-gate-runtime.mjs +3 -2
- package/dist/integrations/hooks/goggles-mcp.mjs +23 -181
- package/dist/integrations/hooks/goggles-pipeline.mjs +606 -571
- package/dist/integrations/hooks/goggles-planes.json +95 -46
- package/dist/integrations/hooks/plates.cjs +84 -0
- package/dist/integrations/hooks/pre-tool-speak.mjs +74 -0
- package/dist/integrations/hooks/skill-seek.mjs +115 -0
- package/dist/integrations/hooks/station-hook-runtime.cjs +4 -1
- package/dist/integrations/openclaw/hooks/pre-tool-gate-runtime.mjs +24 -7
- package/dist/integrations/openclaw/plugin/xray-pre-tool/index.js +26 -2
- package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
- package/dist/memory-routing/plates.d.ts +1 -1
- package/dist/memory-routing/plates.js +14 -0
- package/dist/monitoring/{nudge-watchdog.d.ts → nudge-monitor.d.ts} +14 -5
- package/dist/monitoring/{nudge-watchdog.js → nudge-monitor.js} +42 -17
- package/dist/nucleus/thin-dispatch.d.ts +1 -1
- package/dist/nucleus/thin-dispatch.js +1 -1
- package/dist/nucleus/work-freshness.mjs +10 -0
- package/dist/plugin/xray-codex-injection.js +20 -0
- package/dist/processors/implementations/nudge-processor.d.ts +1 -1
- package/dist/processors/implementations/nudge-processor.js +4 -4
- package/dist/skills/orchestrator/SKILL.md +1 -7
- package/docs-site/docs/plates/activity-log.md +1 -1
- package/docs-site/docs/plates/asides.md +35 -0
- package/docs-site/docs/plates/bifrost.md +48 -0
- package/docs-site/docs/plates/boot.md +2 -2
- package/docs-site/docs/plates/centrifuge.md +1 -1
- package/docs-site/docs/plates/confer.md +35 -0
- package/docs-site/docs/plates/consumer-mcp.md +35 -0
- package/docs-site/docs/plates/cursor-compact.md +1 -1
- package/docs-site/docs/plates/delegation-gate.md +35 -0
- package/docs-site/docs/plates/dynamo.md +35 -0
- package/docs-site/docs/plates/foundry.md +35 -0
- package/docs-site/docs/plates/glossary.md +7 -3
- package/docs-site/docs/plates/goggles.md +12 -1
- package/docs-site/docs/plates/governance.md +1 -1
- package/docs-site/docs/plates/grok-compact.md +1 -1
- package/docs-site/docs/plates/grokbot.md +3 -1
- package/docs-site/docs/plates/ground.md +35 -0
- package/docs-site/docs/plates/hermes.md +35 -0
- package/docs-site/docs/plates/host-pack.md +1 -1
- package/docs-site/docs/plates/house.md +1 -1
- package/docs-site/docs/plates/index.md +16 -7
- package/docs-site/docs/plates/inference-cycle.md +35 -0
- package/docs-site/docs/plates/inference-files.md +1 -1
- package/docs-site/docs/plates/kept-line.md +1 -1
- package/docs-site/docs/plates/kits.md +1 -1
- package/docs-site/docs/plates/lens-gate.md +8 -6
- package/docs-site/docs/plates/lens-page.md +1 -1
- package/docs-site/docs/plates/memory-recall.md +1 -1
- package/docs-site/docs/plates/notes-page.md +2 -2
- package/docs-site/docs/plates/openclaw.md +35 -0
- package/docs-site/docs/plates/opencode.md +35 -0
- package/docs-site/docs/plates/orchestration.md +1 -1
- package/docs-site/docs/plates/package-face.md +1 -1
- package/docs-site/docs/plates/payload-heat.md +1 -1
- package/docs-site/docs/plates/pickup-stamp.md +1 -1
- package/docs-site/docs/plates/pre-tool.md +1 -1
- package/docs-site/docs/plates/processor.md +1 -1
- package/docs-site/docs/plates/record-map.md +1 -1
- package/docs-site/docs/plates/reflection-page.md +1 -1
- package/docs-site/docs/plates/repertoire.md +35 -0
- package/docs-site/docs/plates/reporting.md +1 -1
- package/docs-site/docs/plates/review.md +1 -1
- package/docs-site/docs/plates/routing.md +1 -1
- package/docs-site/docs/plates/session-capture.md +1 -1
- package/docs-site/docs/plates/site-manual.md +1 -1
- package/docs-site/docs/plates/stamp-plate.md +1 -1
- package/docs-site/docs/plates/station-card.md +1 -1
- package/docs-site/docs/plates/station-heat.md +1 -1
- package/docs-site/docs/plates/suit-organs.md +1 -1
- package/docs-site/docs/plates/suit-settings.md +1 -1
- package/docs-site/docs/plates/suit-wear.md +1 -1
- package/docs-site/docs/plates/suit.md +3 -3
- package/docs-site/docs/plates/synthesis.md +35 -0
- package/docs-site/docs/plates/temperament.md +35 -0
- package/docs-site/docs/plates/trail-state.md +2 -2
- package/docs-site/docs/plates/work-fresh.md +1 -1
- package/docs-site/docs/plates/write-home.md +1 -1
- package/llms.txt +14 -6
- package/package.json +3 -3
- package/scripts/foundry/README.md +5 -3
- package/scripts/foundry/mint-suit.cjs +120 -2
- package/scripts/foundry/plant/skills/mill/SKILL.md +1 -1
- package/scripts/foundry/reconcile-version.mjs +10 -3
- package/scripts/foundry/release-gate.mjs +111 -15
- package/scripts/foundry/release.mjs +9 -1
- package/scripts/foundry/validate-release-docs.mjs +2 -2
- package/scripts/foundry/version-manager.mjs +12 -4
- package/scripts/mjs/verify-pipeline-facets.mjs +1 -1
- package/scripts/node/install-bridges.cjs +91 -46
- package/scripts/node/pack-tmp-suit-proof.mjs +37 -10
- package/src/integrations/openclaw/plugin/xray-pre-tool/index.js +26 -2
- package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
- package/src/skills/orchestrator/SKILL.md +1 -7
- package/vendor/@0xray/repertoire/README.md +1 -1
- package/xray/agents_template.md +2 -2
- package/xray/features.json +8 -5
- package/xray/features.schema.json +8 -0
- package/docs-site/docs/plates/live-mesh.md +0 -41
package/.gitignore.default
CHANGED
package/.grok-plugin/plugin.json
CHANGED
|
@@ -57,13 +57,7 @@ When `multi_agent_orchestration.lead_dev_mode` is true in `features.json` (defau
|
|
|
57
57
|
|
|
58
58
|
The command is `0xray look`. `0xray goggles` is the same organ. A pipe keeps the line card. A terminal shows that card as a pane. Chat seats without hooks use the `goggles` MCP tools `look` and `status_lens`. Same organ.
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
Kind 1 names one plane: dichotomy, syncopate, synthesis, or loop. The lens holds that plane. An action on that plane is quiet. An action on another plane, or on a pipeline drawing, is stopped. A pipeline drawing is not a scope stop. Ground is not a scope stop. Scope, when named, is ecosystem, part, one flow, or one artifact, and an action wider than that scope is stopped. One kind and one scope level at a time. Two planes, calling, ground, and a pipeline name do not arm the lens. `outer` without one plane is `Name one plane.` After 1 is empty. Nothing is picked.
|
|
63
|
-
|
|
64
|
-
Naming a plane, `digest`, or `triage` returns that plane's view. The fields are from, digest, plate, entry, exit, files, skills, setup, teardown, and worn. Each field has a pipe. The pipe writes what it can see from the plate or the tree, and the view keeps that field. A field the pipe cannot see yet stays on the view for the next look. The rows are ground, routing, house, boot, governance, memory-recall, orchestration, processor, and reporting. Those nine are not Kind 0. The mill path is `scripts/foundry`. `triage` names the fields still open and whether the row holds. Zoom after the card is the same ladder: ecosystem, part, one flow, one artifact.
|
|
65
|
-
|
|
66
|
-
The hold lasts for the work that named the plane. A sentence that does not say look or name does not arm it and does not drop it. Work that says goggles clears the hold and stays quiet. When a tool names one card plane, the suit adds that plane's file as a hint.
|
|
60
|
+
A session starts on dev. The boot payload includes that card from `.xray/state/LENS.md`. The planes are dev, integration, domain, and ecosystem. A search inside the current card runs. Any other search returns the current card and does not run. Opening a file on the current card adds nothing. Opening a file on another plane switches to that card and the open proceeds. A file on no card stays on the current plane and returns that card. Compact writes that same card back. A thing on that plane has its own card. One card has its own plate and can name more. A missing plate names the stamp-plate skill. Stamp one plate for that card. The cards and plates that stay are what the next agent reads. Saying goggles clears a stale card line on the station.
|
|
67
61
|
|
|
68
62
|
## Hooks (rewired, not new MCPs)
|
|
69
63
|
|
package/.plugin/plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "0xray",
|
|
3
3
|
"name": "0xRay",
|
|
4
4
|
"version": "3.1.0",
|
|
5
|
-
"description": "
|
|
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": {
|
package/.xray/features.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./features.schema.json",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.1",
|
|
4
4
|
"description": "0xRay Framework - Unified Feature Configuration",
|
|
5
5
|
"suit_temperament": {
|
|
6
6
|
"profile": "auto",
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
"generic": "guided"
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
|
+
"goggles": {
|
|
16
|
+
"enabled": true
|
|
17
|
+
},
|
|
15
18
|
"token_optimization": {
|
|
16
19
|
"enabled": true,
|
|
17
20
|
"max_context_tokens": 20000,
|
|
@@ -54,16 +57,16 @@
|
|
|
54
57
|
"auto_provision_worktree": false
|
|
55
58
|
}
|
|
56
59
|
},
|
|
57
|
-
"grok_postprocessor_light":
|
|
60
|
+
"grok_postprocessor_light": false,
|
|
58
61
|
"inference_session_capture": {
|
|
59
62
|
"enabled": true,
|
|
60
63
|
"min_commits": 3,
|
|
61
64
|
"lookback_commits": 20
|
|
62
65
|
},
|
|
63
66
|
"autonomous_reporting": {
|
|
64
|
-
"enabled":
|
|
67
|
+
"enabled": false,
|
|
65
68
|
"interval_minutes": 60,
|
|
66
|
-
"auto_schedule":
|
|
69
|
+
"auto_schedule": false,
|
|
67
70
|
"include_health_assessment": true,
|
|
68
71
|
"include_agent_activities": true,
|
|
69
72
|
"include_pipeline_operations": true,
|
|
@@ -174,7 +177,7 @@
|
|
|
174
177
|
"every_n_todos_completed": 0
|
|
175
178
|
},
|
|
176
179
|
"inference": {
|
|
177
|
-
"description": "
|
|
180
|
+
"description": "The cycle runs from the CLI command inference:run and the session wake does not start it.",
|
|
178
181
|
"enabled": true,
|
|
179
182
|
"workflow_dir": ".xray/inference",
|
|
180
183
|
"reports_dir": ".xray/reports",
|
|
@@ -132,6 +132,14 @@
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
},
|
|
135
|
+
"goggles": {
|
|
136
|
+
"type": "object",
|
|
137
|
+
"description": "The suit keeps goggles on. enabled false fails wear and doctor.",
|
|
138
|
+
"properties": {
|
|
139
|
+
"enabled": { "type": "boolean" }
|
|
140
|
+
},
|
|
141
|
+
"required": ["enabled"]
|
|
142
|
+
},
|
|
135
143
|
"synthesis": {
|
|
136
144
|
"type": "object",
|
|
137
145
|
"properties": {
|
package/AGENTS-consumer.md
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- 0xray-managed -->
|
|
4
4
|
|
|
5
|
-
Quick reference for the 0xRay
|
|
5
|
+
Quick reference for the 0xRay suit worn on **{{CONSUMER_NAME}}**{{CONSUMER_VERSION_PAREN}}.
|
|
6
6
|
|
|
7
|
-
**4.
|
|
7
|
+
**4.1** — a suit that survives the context window
|
|
8
8
|
|
|
9
9
|
Confer votes. Burst runs the swarm.
|
|
10
10
|
|
|
11
|
-
|
|
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"`.
|
|
12
12
|
|
|
13
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.
|
|
14
14
|
|
|
@@ -20,10 +20,12 @@ A peer lead continues from this card + Repertoire + the `orchestrator` skill. Du
|
|
|
20
20
|
|
|
21
21
|
## Postinstall (automatic)
|
|
22
22
|
|
|
23
|
-
`npm install 0xray`
|
|
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:
|
|
24
26
|
|
|
25
27
|
- Copies this file → **`AGENTS.md`** in your project root
|
|
26
|
-
- 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.
|
|
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. The mill suit also wears every catalog skill and every role file. A blip or sound seat fastens that plant only. A name outside the fastened set still fails inspect. Does **not** write root **`SKILLS.md`**
|
|
27
29
|
- Factory shop plant (`shop-extract`, `shop-witness`, `shop-pin` from groover-hangar) is first-class with mill plant. Extra shops: `foundry.json` `"shopPlant"`. Not costume.
|
|
28
30
|
- Seeds **`.gitignore`** (from template, if absent)
|
|
29
31
|
- Deploys **`.xray/`** (`codex.json`, `features.json`, `config.json`) then overlays **your** mill SSOT (`xray/codex.json`, `xray/features.json`, `src/skills`, `src/opencode/agents`; remap with `foundry.json`)
|
|
@@ -54,7 +56,7 @@ Governance deliberation uses **code-review**, **security-audit** (via enforcer/s
|
|
|
54
56
|
|---------|-------------|
|
|
55
57
|
| `npx 0xray setup` | Symlinks, hook extras, Hermes skill sync |
|
|
56
58
|
| `npx 0xray status` | Verify installation |
|
|
57
|
-
| `npx 0xray opencode install` | OpenCode bridge
|
|
59
|
+
| `npx 0xray opencode install` | OpenCode bridge. `npx 0xray wear` writes it too. |
|
|
58
60
|
| `npx 0xray grok install` | Project `.grok/plugins/0xray` + 7 MCPs servers (machine plugin not last-wins) |
|
|
59
61
|
| `npx 0xray hermes install` | Hermes plugin bridge |
|
|
60
62
|
| `npx 0xray openclaw install` | OpenClaw config + skills |
|
|
@@ -160,7 +162,7 @@ When the suit is worn, **lead dev mode** is ON via existing config + hooks:
|
|
|
160
162
|
|
|
161
163
|
## Skills
|
|
162
164
|
|
|
163
|
-
Full catalog in root **`SKILLS.md
|
|
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`).
|
|
164
166
|
|
|
165
167
|
## File Organization
|
|
166
168
|
|
package/AGENTS.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# xray Agents
|
|
2
2
|
|
|
3
|
-
Quick reference for the
|
|
3
|
+
Quick reference for the 0xRay suit (**4.1**).
|
|
4
4
|
|
|
5
|
-
**4.
|
|
5
|
+
**4.1** — a suit that survives the context window.
|
|
6
6
|
|
|
7
7
|
Confer votes. Burst runs the swarm.
|
|
8
8
|
|
|
9
|
-
**
|
|
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).
|
|
10
10
|
|
|
11
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`.
|
|
12
12
|
|
|
@@ -18,13 +18,13 @@ Before other work, Read `.xray/state/STATION.md`. Compaction and host change are
|
|
|
18
18
|
|
|
19
19
|
## What is xray?
|
|
20
20
|
|
|
21
|
-
|
|
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.
|
|
22
22
|
|
|
23
23
|
- **Inference** — proposals, reflection, memory routing (Repertoire organ on in 4.0)
|
|
24
|
-
- **External Governance** — Dynamo Solar SSOT, 69-term Codex
|
|
24
|
+
- **External Governance** — Dynamo Solar SSOT, 69-term Codex. Judgement stays on.
|
|
25
25
|
- **Autonomous Engine** — thinDispatch 7-flow, AsideContext, confidence gate
|
|
26
26
|
|
|
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
|
|
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**. The mill suit also wears every catalog skill and every role file (`AGENTS-consumer.md` → `AGENTS.md`). Factory hangar shops coexist via shop plant. See [llms.txt](llms.txt).
|
|
28
28
|
|
|
29
29
|
## Consumer MCP surface (7 servers)
|
|
30
30
|
|
|
@@ -44,10 +44,12 @@ Governance deliberation: **code-review**, **security-audit**, **researcher** wit
|
|
|
44
44
|
|
|
45
45
|
## Postinstall
|
|
46
46
|
|
|
47
|
-
`postinstall.cjs`
|
|
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`:
|
|
48
50
|
|
|
49
51
|
1. `AGENTS-consumer.md` → `AGENTS.md` (does **not** write consumer-root `SKILLS.md`)
|
|
50
|
-
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).
|
|
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). The mill suit also wears every catalog skill and every OpenCode role file. A blip or sound seat fastens that plant only. A name outside the fastened set still fails inspect.
|
|
51
53
|
3. `.gitignore.default` → `.gitignore` (if absent)
|
|
52
54
|
4. `.xray/` config (`codex.json`, `features.json`, `config.json`) then overlay their plant
|
|
53
55
|
5. `.mcp.json` (7 servers)
|
|
@@ -63,7 +65,7 @@ Governance deliberation: **code-review**, **security-audit**, **researcher** wit
|
|
|
63
65
|
|
|
64
66
|
## Memory routing + Repertoire (preferred, v3.3+)
|
|
65
67
|
|
|
66
|
-
**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
|
|
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`.
|
|
67
69
|
|
|
68
70
|
`xray/features.json` → `memory_routing` (schema: `features.schema.json`):
|
|
69
71
|
|
|
@@ -230,8 +232,15 @@ Full skill mapping: [SKILLS.md](SKILLS.md).
|
|
|
230
232
|
| Station vs Repertoire 0.1 | `docs-site/docs/guides/station-vs-repertoire.md` |
|
|
231
233
|
| AsideContext | `docs-site/docs/guides/aside-context.md` |
|
|
232
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` |
|
|
233
238
|
| Docusaurus site | https://0xrayai.github.io/xray/ |
|
|
234
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
|
+
|
|
235
244
|
## Release artifacts
|
|
236
245
|
|
|
237
|
-
`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,22 +1,26 @@
|
|
|
1
|
-
# xray —
|
|
1
|
+
# xray — a suit for coding agents
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+

|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**4.1** — a suit that survives the context window
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Bifrost is the live board. Goggles views one plane. A search runs inside that card.
|
|
8
8
|
|
|
9
|
-
|
|
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**.
|
|
10
14
|
|
|
11
15
|
## Your AI Power Suit
|
|
12
16
|
|
|
13
17
|
**Your AI Power ⚡️ Suit 🦾** — an exoskeleton that blocks AI slop from becoming real damage.
|
|
14
18
|
|
|
15
|
-
- **Bone** — three-subsystem
|
|
19
|
+
- **Bone** — three-subsystem engine: Inference · External Governance (Dynamo / Codex) · Autonomous Engine (thinDispatch)
|
|
16
20
|
- **Always on** — Codex 11 / 29 / 69, destructive shell, no new MCP/skill/handler surface
|
|
17
21
|
- **Temperament** — `frontier` | `guided` | `strict` | `auto` — how loud the engine is, not whether governance exists
|
|
18
22
|
- **Wear** — Grok, OpenCode, Hermes, OpenClaw, plus Cursor project hooks. One SSOT gate
|
|
19
|
-
- **Muscle** — **Repertoire is preferred.** Vendored 0.2.9 ships **on**. Dest is named laws, not hangar `repo-*` or git slugs. Station is the
|
|
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.
|
|
20
24
|
|
|
21
25
|
```bash
|
|
22
26
|
npm install 0xray
|
|
@@ -55,6 +59,8 @@ Docs: [guides/autonomy-command](docs-site/docs/guides/autonomy-command.md) · Sk
|
|
|
55
59
|
|
|
56
60
|
| Version | Highlights |
|
|
57
61
|
|---------|------------|
|
|
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 views one plane. The card is in LENS.md. A search runs inside that card. |
|
|
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. |
|
|
58
64
|
| **4.0.42** | Confer votes. Burst runs the swarm. |
|
|
59
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. |
|
|
60
66
|
| **4.0.40** | Live mesh runs the full loop: feed watch, render, direction, deploy, health, and the ledger both ways. |
|
|
@@ -259,7 +265,7 @@ npm run release:npm # gate + prepare + npm publish --access public
|
|
|
259
265
|
|
|
260
266
|
## Release
|
|
261
267
|
|
|
262
|
-
The **4.
|
|
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.
|
|
263
269
|
|
|
264
270
|
```bash
|
|
265
271
|
npm run release:gate
|
|
@@ -275,4 +281,4 @@ MIT — see [LICENSE](LICENSE)
|
|
|
275
281
|
|
|
276
282
|
---
|
|
277
283
|
|
|
278
|
-
*xray —
|
|
284
|
+
*xray — a three-subsystem autonomous engine. The suit is the wear.*
|
package/SKILLS.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# 0xray Skills
|
|
2
2
|
|
|
3
|
-
**4.
|
|
3
|
+
**4.1** — a suit that survives the context window
|
|
4
4
|
|
|
5
5
|
Confer votes. Burst runs the swarm.
|
|
6
6
|
|
|
7
|
+
0xRay is a three-subsystem autonomous engine. The suit is the wear. This file is the catalog.
|
|
8
|
+
|
|
7
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).
|
|
8
10
|
|
|
9
11
|
xray ships 45 knowledge skills (`src/skills/<name>/SKILL.md`) as the **costume / self-plant catalog**. Lead-dev operating model lives in **`orchestrator`** skill + `multi_agent_orchestration.lead_dev_mode` in features.json. **Repertoire is preferred** for long-term judgment (vendored 0.2.9, dest = named laws). Station is the compact ticket, not a skill and not a keyword store. Skills load on demand via the **xray-skills** MCP server (`npx -y 0xray mcp skills`) or when you plant them. This file is the exo catalog — mill does **not** write it to the consumer root.
|
package/dist/.gitignore.default
CHANGED
package/dist/AGENTS.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# xray Agents
|
|
2
2
|
|
|
3
|
-
Quick reference for the
|
|
3
|
+
Quick reference for the 0xRay suit (**4.1**).
|
|
4
4
|
|
|
5
|
-
**4.
|
|
5
|
+
**4.1** — a suit that survives the context window.
|
|
6
6
|
|
|
7
7
|
Confer votes. Burst runs the swarm.
|
|
8
8
|
|
|
9
|
-
**
|
|
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).
|
|
10
10
|
|
|
11
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`.
|
|
12
12
|
|
|
@@ -18,13 +18,13 @@ Before other work, Read `.xray/state/STATION.md`. Compaction and host change are
|
|
|
18
18
|
|
|
19
19
|
## What is xray?
|
|
20
20
|
|
|
21
|
-
|
|
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.
|
|
22
22
|
|
|
23
23
|
- **Inference** — proposals, reflection, memory routing (Repertoire organ on in 4.0)
|
|
24
|
-
- **External Governance** — Dynamo Solar SSOT, 69-term Codex
|
|
24
|
+
- **External Governance** — Dynamo Solar SSOT, 69-term Codex. Judgement stays on.
|
|
25
25
|
- **Autonomous Engine** — thinDispatch 7-flow, AsideContext, confidence gate
|
|
26
26
|
|
|
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
|
|
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**. The mill suit also wears every catalog skill and every role file (`AGENTS-consumer.md` → `AGENTS.md`). Factory hangar shops coexist via shop plant. See [llms.txt](llms.txt).
|
|
28
28
|
|
|
29
29
|
## Consumer MCP surface (7 servers)
|
|
30
30
|
|
|
@@ -44,10 +44,12 @@ Governance deliberation: **code-review**, **security-audit**, **researcher** wit
|
|
|
44
44
|
|
|
45
45
|
## Postinstall
|
|
46
46
|
|
|
47
|
-
`postinstall.cjs`
|
|
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`:
|
|
48
50
|
|
|
49
51
|
1. `AGENTS-consumer.md` → `AGENTS.md` (does **not** write consumer-root `SKILLS.md`)
|
|
50
|
-
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).
|
|
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). The mill suit also wears every catalog skill and every OpenCode role file. A blip or sound seat fastens that plant only. A name outside the fastened set still fails inspect.
|
|
51
53
|
3. `.gitignore.default` → `.gitignore` (if absent)
|
|
52
54
|
4. `.xray/` config (`codex.json`, `features.json`, `config.json`) then overlay their plant
|
|
53
55
|
5. `.mcp.json` (7 servers)
|
|
@@ -63,7 +65,7 @@ Governance deliberation: **code-review**, **security-audit**, **researcher** wit
|
|
|
63
65
|
|
|
64
66
|
## Memory routing + Repertoire (preferred, v3.3+)
|
|
65
67
|
|
|
66
|
-
**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
|
|
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`.
|
|
67
69
|
|
|
68
70
|
`xray/features.json` → `memory_routing` (schema: `features.schema.json`):
|
|
69
71
|
|
|
@@ -230,8 +232,15 @@ Full skill mapping: [SKILLS.md](SKILLS.md).
|
|
|
230
232
|
| Station vs Repertoire 0.1 | `docs-site/docs/guides/station-vs-repertoire.md` |
|
|
231
233
|
| AsideContext | `docs-site/docs/guides/aside-context.md` |
|
|
232
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` |
|
|
233
238
|
| Docusaurus site | https://0xrayai.github.io/xray/ |
|
|
234
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
|
+
|
|
235
244
|
## Release artifacts
|
|
236
245
|
|
|
237
|
-
`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,115 @@ The format is based on [Conventional Commits](https://www.conventionalcommits.or
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [4.1.1] - 2026-10-18
|
|
10
|
+
|
|
11
|
+
Work on main after 4.1.0.
|
|
12
|
+
|
|
13
|
+
### Wear
|
|
14
|
+
|
|
15
|
+
The mill suit wears every catalog skill and every role file when costume is off. The mill plant stays `mill` and `inspect`. A blip or sound seat fastens that plant only. A name outside the fastened set still fails inspect. (#379)
|
|
16
|
+
|
|
17
|
+
### Goggles
|
|
18
|
+
|
|
19
|
+
The lens file is `.xray/state/LENS.md`. The planes are dev, integration, domain, and ecosystem. A search runs only inside the current card. Any other search returns that card and does not run. A path switches the card. (#371)
|
|
20
|
+
|
|
21
|
+
Each card lists three to five skills in hand order. That list is the skills seek. The first skill that fits wins. If none fit, plate recall returns a skill name or declines. The seek does not call a model. A stored lens that still points at the catalog is rewritten to that list before the seek. Wear and doctor fail when a fastened suit turns goggles off. (#390)
|
|
22
|
+
|
|
23
|
+
### Live inbox
|
|
24
|
+
|
|
25
|
+
A seat can ack an inbox line after the pull has merged or the line was dropped. (#375)
|
|
26
|
+
|
|
27
|
+
### Docs
|
|
28
|
+
|
|
29
|
+
Four broken repository links on the docs site are fixed. (#383)
|
|
30
|
+
|
|
31
|
+
The grok-bot notes cover the memory packet, the duplicate-agent guard, and no local builds. (#378)
|
|
32
|
+
|
|
33
|
+
### Skills
|
|
34
|
+
|
|
35
|
+
`draw-stamped-card` and the bifrost-storyboard recipe are in the catalog. (#370)
|
|
36
|
+
|
|
37
|
+
## [4.1.0] - 2026-10-15
|
|
38
|
+
|
|
39
|
+
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.
|
|
40
|
+
|
|
41
|
+
### Bifrost board
|
|
42
|
+
|
|
43
|
+
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.
|
|
44
|
+
|
|
45
|
+
- 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.
|
|
46
|
+
- `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.
|
|
47
|
+
- `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.
|
|
48
|
+
- 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.
|
|
49
|
+
- Railway deploy polls stamp BUILDING, then DEPLOYING, then the terminal status. A poll that first sees SUCCESS backfills the stages it missed.
|
|
50
|
+
- 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`.
|
|
51
|
+
- 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)
|
|
52
|
+
|
|
53
|
+
### Nudge
|
|
54
|
+
|
|
55
|
+
`evalNudges` in `house/live/app/server.mjs` is the one nudge path.
|
|
56
|
+
|
|
57
|
+
- 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.
|
|
58
|
+
- 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.
|
|
59
|
+
- A missing handoff nudges the owing seat at L1, again at L2, and again at L3. The CoS role is woken once at L3.
|
|
60
|
+
|
|
61
|
+
### Wake routine
|
|
62
|
+
|
|
63
|
+
`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.
|
|
64
|
+
|
|
65
|
+
### live-inbox
|
|
66
|
+
|
|
67
|
+
`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.
|
|
68
|
+
|
|
69
|
+
### Lexicon
|
|
70
|
+
|
|
71
|
+
`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.
|
|
72
|
+
|
|
73
|
+
### Nudge monitor
|
|
74
|
+
|
|
75
|
+
`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)
|
|
76
|
+
|
|
77
|
+
## [4.0.43] - 2026-10-12
|
|
78
|
+
|
|
79
|
+
### 🔄 Changes
|
|
80
|
+
|
|
81
|
+
- A Cursor pre-tool error denies the tool unless that error is EACCES. A cloud wrapper that cannot write dest still allows the tool.
|
|
82
|
+
- 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.
|
|
83
|
+
- 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.
|
|
84
|
+
- 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`.
|
|
85
|
+
- Consumer smoke inspects an empty machine home, so a Grok plugin on the real machine does not fail that seat.
|
|
86
|
+
- OpenCode mill install copies the plugin and leaves leftover init.sh uncopied.
|
|
87
|
+
- 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.
|
|
88
|
+
|
|
89
|
+
### 🐛 Bug Fixes
|
|
90
|
+
- fix: stop the vendored complete-todo command from minting PASS (39c88c8fa)
|
|
91
|
+
- fix: bind Confer receipts to a synthesis cycle (5134c5d05)
|
|
92
|
+
- fix: treat ambiguous Confer text as UNREVIEWED (06acc24f1)
|
|
93
|
+
- fix: complete Confer only on a real approve (8776562d7)
|
|
94
|
+
- fix: parse only the first Confer DECISION token (c06747d95)
|
|
95
|
+
- 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).
|
|
96
|
+
|
|
97
|
+
### 🧪 Tests
|
|
98
|
+
- test: lock no-LLM confer votes out of a PASS merge (e30628fef)
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## [4.0.42] - 2026-10-09
|
|
103
|
+
|
|
104
|
+
### 🔄 Changes
|
|
105
|
+
|
|
106
|
+
Confer votes. Burst runs the swarm.
|
|
107
|
+
|
|
108
|
+
- 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.
|
|
109
|
+
- 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.
|
|
110
|
+
- 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.
|
|
111
|
+
- 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`.
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
### Notes above this cut in the published package
|
|
115
|
+
|
|
116
|
+
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.
|
|
117
|
+
|
|
9
118
|
### Features
|
|
10
119
|
- **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
120
|
- **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,17 +151,6 @@ The format is based on [Conventional Commits](https://www.conventionalcommits.or
|
|
|
42
151
|
- Archive root `integrations/` costume SKILL dump → `docs/archive/integrations-costume/`. Live wear is `src/integrations`.
|
|
43
152
|
- Archive root `commands/` stale copy → `docs/archive/commands-copy/`. Live wear is `src/opencode/commands`.
|
|
44
153
|
|
|
45
|
-
## [4.0.42] - 2026-10-09
|
|
46
|
-
|
|
47
|
-
### 🔄 Changes
|
|
48
|
-
|
|
49
|
-
Confer votes. Burst runs the swarm.
|
|
50
|
-
|
|
51
|
-
- 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.
|
|
52
|
-
- 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.
|
|
53
|
-
- 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.
|
|
54
|
-
- A SENT prompt holds that seat working for 10 minutes. A posted seat must match the installation token. Legacy prompt lines are read, and the prompts file defaults to `fleet/prompts.jsonl`.
|
|
55
|
-
|
|
56
154
|
---
|
|
57
155
|
|
|
58
156
|
## [4.0.41] - 2026-10-07
|
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.
|
package/dist/README.md
CHANGED
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
# xray —
|
|
1
|
+
# xray — a suit for coding agents
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+

|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**4.1** — a suit that survives the context window
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Bifrost is the live board. Goggles views one plane. A search runs inside that card.
|
|
8
8
|
|
|
9
|
-
|
|
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**.
|
|
10
14
|
|
|
11
15
|
## Your AI Power Suit
|
|
12
16
|
|
|
13
17
|
**Your AI Power ⚡️ Suit 🦾** — an exoskeleton that blocks AI slop from becoming real damage.
|
|
14
18
|
|
|
15
|
-
- **Bone** — three-subsystem
|
|
19
|
+
- **Bone** — three-subsystem engine: Inference · External Governance (Dynamo / Codex) · Autonomous Engine (thinDispatch)
|
|
16
20
|
- **Always on** — Codex 11 / 29 / 69, destructive shell, no new MCP/skill/handler surface
|
|
17
21
|
- **Temperament** — `frontier` | `guided` | `strict` | `auto` — how loud the engine is, not whether governance exists
|
|
18
22
|
- **Wear** — Grok, OpenCode, Hermes, OpenClaw, plus Cursor project hooks. One SSOT gate
|
|
19
|
-
- **Muscle** — **Repertoire is preferred.** Vendored 0.2.9 ships **on**. Dest is named laws, not hangar `repo-*` or git slugs. Station is the
|
|
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.
|
|
20
24
|
|
|
21
25
|
```bash
|
|
22
26
|
npm install 0xray
|
|
@@ -55,6 +59,8 @@ Docs: [guides/autonomy-command](docs-site/docs/guides/autonomy-command.md) · Sk
|
|
|
55
59
|
|
|
56
60
|
| Version | Highlights |
|
|
57
61
|
|---------|------------|
|
|
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 views one plane. The card is in LENS.md. A search runs inside that card. |
|
|
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. |
|
|
58
64
|
| **4.0.42** | Confer votes. Burst runs the swarm. |
|
|
59
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. |
|
|
60
66
|
| **4.0.40** | Live mesh runs the full loop: feed watch, render, direction, deploy, health, and the ledger both ways. |
|
|
@@ -259,7 +265,7 @@ npm run release:npm # gate + prepare + npm publish --access public
|
|
|
259
265
|
|
|
260
266
|
## Release
|
|
261
267
|
|
|
262
|
-
The **4.
|
|
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.
|
|
263
269
|
|
|
264
270
|
```bash
|
|
265
271
|
npm run release:gate
|
|
@@ -275,4 +281,4 @@ MIT — see [LICENSE](LICENSE)
|
|
|
275
281
|
|
|
276
282
|
---
|
|
277
283
|
|
|
278
|
-
*xray —
|
|
284
|
+
*xray — a three-subsystem autonomous engine. The suit is the wear.*
|