0xray 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mcp.json +15 -55
- package/.xray/features.json +2 -2
- package/AGENTS-consumer.md +6 -6
- package/AGENTS.md +9 -9
- package/README.md +19 -19
- package/SKILLS.md +2 -2
- package/dist/AGENTS.md +9 -9
- package/dist/CHANGELOG.md +54 -2
- package/dist/README.md +19 -19
- package/dist/SKILLS.md +2 -2
- package/dist/cli/commands/foundry-mint-wear.d.ts +2 -0
- package/dist/cli/commands/foundry-mint-wear.js +14 -0
- package/dist/cli/commands/hermes-install.js +2 -0
- package/dist/cli/commands/openclaw-install.js +2 -0
- package/dist/cli/commands/opencode-install.js +2 -0
- package/dist/cli/index.js +10 -1
- package/dist/enforcement/enforcer-tools.d.ts +7 -0
- package/dist/enforcement/enforcer-tools.js +18 -109
- package/dist/integrations/grok/grok-cli.js +2 -0
- package/dist/integrations/hermes-agent/bridge.mjs +7 -0
- package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +4 -2
- package/dist/processors/implementations/version-compliance-processor.d.ts +3 -34
- package/dist/processors/implementations/version-compliance-processor.js +8 -135
- package/opencode.json +0 -8
- package/package.json +15 -14
- package/scripts/foundry/CHANGELOG.md +34 -0
- package/scripts/foundry/LICENSE +21 -0
- package/scripts/foundry/README.md +67 -0
- package/scripts/foundry/ci-monitor.mjs +115 -0
- package/scripts/foundry/cli.js +2 -0
- package/scripts/foundry/cli.mjs +55 -0
- package/scripts/foundry/docs-build.mjs +38 -0
- package/scripts/foundry/hooks.mjs +36 -0
- package/scripts/foundry/mill-root.mjs +62 -0
- package/scripts/foundry/mint-suit.cjs +313 -0
- package/scripts/foundry/mint.mjs +33 -0
- package/scripts/foundry/package.json +53 -0
- package/scripts/foundry/reconcile-version.mjs +150 -0
- package/scripts/foundry/release-gate.mjs +100 -0
- package/scripts/foundry/release.mjs +266 -0
- package/scripts/foundry/validate-release-docs.mjs +316 -0
- package/scripts/foundry/version-manager.mjs +444 -0
- package/scripts/node/ci-cd-auto-fix.cjs +12 -257
- package/scripts/node/consumer-install-smoke.mjs +57 -2
- package/scripts/node/enforce-version-compliance.sh +5 -20
- package/scripts/node/enforce-version-compliance.ts +13 -113
- package/scripts/node/foundry-shim.mjs +19 -0
- package/scripts/node/github-actions-monitor.cjs +13 -18
- package/scripts/node/postinstall.cjs +36 -1
- package/scripts/node/reconcile-version.mjs +3 -146
- package/scripts/node/release-gate.mjs +3 -74
- package/scripts/node/release.mjs +3 -171
- package/scripts/node/validate-release-docs.mjs +3 -285
- package/scripts/node/version-manager.mjs +3 -708
- package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +4 -2
- package/xray/features.json +2 -2
- package/scripts/node/release.js +0 -17
- package/scripts/node/sync-versions.mjs +0 -18
- package/scripts/node/universal-version-manager.js +0 -1043
package/.mcp.json
CHANGED
|
@@ -1,79 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"xray-governance": {
|
|
4
|
-
"command": "
|
|
5
|
-
"args": [
|
|
6
|
-
"-y",
|
|
7
|
-
"0xray",
|
|
8
|
-
"mcp",
|
|
9
|
-
"governance"
|
|
10
|
-
],
|
|
4
|
+
"command": "node",
|
|
5
|
+
"args": ["dist/cli/index.js", "mcp", "governance"],
|
|
11
6
|
"env": {
|
|
12
7
|
"XRAY_FORCE_MCP_GOVERNANCE": "true"
|
|
13
8
|
}
|
|
14
9
|
},
|
|
15
10
|
"xray-skills": {
|
|
16
|
-
"command": "
|
|
17
|
-
"args": [
|
|
18
|
-
"-y",
|
|
19
|
-
"0xray",
|
|
20
|
-
"mcp",
|
|
21
|
-
"skills"
|
|
22
|
-
]
|
|
11
|
+
"command": "node",
|
|
12
|
+
"args": ["dist/cli/index.js", "mcp", "skills"]
|
|
23
13
|
},
|
|
24
14
|
"xray-enforcer": {
|
|
25
|
-
"command": "
|
|
26
|
-
"args": [
|
|
27
|
-
"-y",
|
|
28
|
-
"0xray",
|
|
29
|
-
"mcp",
|
|
30
|
-
"enforcer"
|
|
31
|
-
]
|
|
15
|
+
"command": "node",
|
|
16
|
+
"args": ["dist/cli/index.js", "mcp", "enforcer"]
|
|
32
17
|
},
|
|
33
18
|
"xray-orchestrator": {
|
|
34
|
-
"command": "
|
|
35
|
-
"args": [
|
|
36
|
-
"-y",
|
|
37
|
-
"0xray",
|
|
38
|
-
"mcp",
|
|
39
|
-
"orchestrator"
|
|
40
|
-
]
|
|
19
|
+
"command": "node",
|
|
20
|
+
"args": ["dist/cli/index.js", "mcp", "orchestrator"]
|
|
41
21
|
},
|
|
42
22
|
"xray-researcher": {
|
|
43
|
-
"command": "
|
|
44
|
-
"args": [
|
|
45
|
-
"-y",
|
|
46
|
-
"0xray",
|
|
47
|
-
"mcp",
|
|
48
|
-
"researcher"
|
|
49
|
-
]
|
|
23
|
+
"command": "node",
|
|
24
|
+
"args": ["dist/cli/index.js", "mcp", "researcher"]
|
|
50
25
|
},
|
|
51
26
|
"xray-code-review": {
|
|
52
|
-
"command": "
|
|
53
|
-
"args": [
|
|
54
|
-
"-y",
|
|
55
|
-
"0xray",
|
|
56
|
-
"mcp",
|
|
57
|
-
"code-review"
|
|
58
|
-
]
|
|
27
|
+
"command": "node",
|
|
28
|
+
"args": ["dist/cli/index.js", "mcp", "code-review"]
|
|
59
29
|
},
|
|
60
30
|
"xray-architect-tools": {
|
|
61
|
-
"command": "
|
|
62
|
-
"args": [
|
|
63
|
-
"-y",
|
|
64
|
-
"0xray",
|
|
65
|
-
"mcp",
|
|
66
|
-
"architect-tools"
|
|
67
|
-
]
|
|
31
|
+
"command": "node",
|
|
32
|
+
"args": ["dist/cli/index.js", "mcp", "architect-tools"]
|
|
68
33
|
},
|
|
69
34
|
"repertoire": {
|
|
70
35
|
"command": "node",
|
|
71
|
-
"args": [
|
|
72
|
-
"/tmp/xray-v4-validate/node_modules/@0xray/repertoire/dist/mcp/server.js"
|
|
73
|
-
],
|
|
74
|
-
"env": {
|
|
75
|
-
"XRAY_ROOT": "/tmp/xray-v4-validate"
|
|
76
|
-
}
|
|
36
|
+
"args": ["scripts/mjs/run-repertoire-mcp.mjs"]
|
|
77
37
|
}
|
|
78
38
|
}
|
|
79
39
|
}
|
package/.xray/features.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./features.schema.json",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "0xRay Framework - Unified Feature Configuration",
|
|
5
5
|
"suit_temperament": {
|
|
6
6
|
"profile": "auto",
|
|
@@ -182,4 +182,4 @@
|
|
|
182
182
|
"onChain": false
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
|
-
}
|
|
185
|
+
}
|
package/AGENTS-consumer.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- 0xray-managed -->
|
|
4
4
|
|
|
5
|
-
Quick reference for the 0xRay AI orchestration framework
|
|
5
|
+
Quick reference for the 0xRay AI orchestration framework worn on **{{CONSUMER_NAME}}**{{CONSUMER_VERSION_PAREN}}.
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**4.0** — a suit that survives the context window
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Same **three-subsystem OS** as v2 (Inference · External Governance · Autonomous Engine). Constitution always on. Temperament scales ceremony. Four platform bridges. Repertoire organ ships **on** (vendored 0.2); opt out with `"enabled": false, "provider": "repertoire"`. Trim fat, do not gut the design.
|
|
10
10
|
|
|
11
11
|
**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
12
|
|
|
@@ -19,9 +19,9 @@ Before other work, Read `.xray/state/STATION.md`. Compaction and host change are
|
|
|
19
19
|
`npm install 0xray` runs `install-bridges.cjs` and:
|
|
20
20
|
|
|
21
21
|
- Copies this file → **`AGENTS.md`** in your project root
|
|
22
|
-
-
|
|
22
|
+
- Syncs **45 mill skills** to platform skill directories, then overlays **your** `src/skills` (same name wins). Does **not** write root **`SKILLS.md`**
|
|
23
23
|
- Seeds **`.gitignore`** (from template, if absent)
|
|
24
|
-
- Deploys **`.xray/`** (`codex.json`, `features.json`, `config.json`)
|
|
24
|
+
- 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`)
|
|
25
25
|
- Writes **`.mcp.json`** with 7 MCPs servers (`npx -y 0xray mcp …`)
|
|
26
26
|
- Installs bridges: **OpenCode**, **Grok**, **Hermes**, **OpenClaw**
|
|
27
27
|
|
|
@@ -63,7 +63,7 @@ Governance deliberation uses **code-review**, **security-audit** (via enforcer/s
|
|
|
63
63
|
|
|
64
64
|
xray operates under the three-subsystem model: **Inference** + **External Governance** (Dynamo Solar SSOT) + **Autonomous Engine** (thinDispatch 7-flow in MCP orchestrator). All actions are validated against the Universal Development Codex before execution.
|
|
65
65
|
|
|
66
|
-
**Codex**: `.xray/codex.json` — **
|
|
66
|
+
**Codex**: `.xray/codex.json` — **69 terms** across all agent interactions.
|
|
67
67
|
|
|
68
68
|
## thinDispatch Routing
|
|
69
69
|
|
package/AGENTS.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# xray Agents
|
|
2
2
|
|
|
3
|
-
Quick reference for the xray AI orchestration framework (**
|
|
3
|
+
Quick reference for the xray AI orchestration framework (**4.0**).
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**4.0** — a suit that survives the context window.
|
|
6
6
|
|
|
7
7
|
**Exo, not catalog.** Three-subsystem OS (Inference · External Governance · Autonomous Engine) · constitution always on · temperament by host · 4 floors · Repertoire when it resolves.
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ Before other work, Read `.xray/state/STATION.md`. Compaction and host change are
|
|
|
16
16
|
|
|
17
17
|
xray provides intelligent multi-agent orchestration with automatic delegation and Codex compliance validation under the pure v2 three-subsystem model:
|
|
18
18
|
|
|
19
|
-
- **Inference** — proposals, reflection, memory routing (
|
|
19
|
+
- **Inference** — proposals, reflection, memory routing (Repertoire organ on in 4.0)
|
|
20
20
|
- **External Governance** — Dynamo Solar SSOT, 69-term Codex
|
|
21
21
|
- **Autonomous Engine** — thinDispatch 7-flow, AsideContext, confidence gate
|
|
22
22
|
|
|
@@ -38,12 +38,12 @@ Registered in `.mcp.json`, invoked via `npx -y 0xray mcp <cmd>`:
|
|
|
38
38
|
|
|
39
39
|
Governance deliberation: **code-review**, **security-audit**, **researcher** within the 7-server set.
|
|
40
40
|
|
|
41
|
-
## Postinstall
|
|
41
|
+
## Postinstall
|
|
42
42
|
|
|
43
43
|
`postinstall.cjs` → `installAllBridges()`:
|
|
44
44
|
|
|
45
45
|
1. `AGENTS-consumer.md` → `AGENTS.md`
|
|
46
|
-
2. `SKILLS.md` +
|
|
46
|
+
2. `SKILLS.md` + 45 skills → platform skill directories
|
|
47
47
|
3. `.gitignore.default` → `.gitignore` (if absent)
|
|
48
48
|
4. `.xray/` config (`codex.json`, `features.json`, `config.json`)
|
|
49
49
|
5. `.mcp.json` (7 servers)
|
|
@@ -58,11 +58,11 @@ Governance deliberation: **code-review**, **security-audit**, **researcher** wit
|
|
|
58
58
|
"memory_routing": {
|
|
59
59
|
"enabled": true,
|
|
60
60
|
"provider": "repertoire",
|
|
61
|
-
"module_path": "
|
|
61
|
+
"module_path": "node_modules/@0xray/repertoire/dist/provider/memory-routing-provider.js",
|
|
62
62
|
"config": {
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
63
|
+
"signalsPath": "node_modules/@0xray/repertoire/data/curated_signals.json",
|
|
64
|
+
"statePath": ".xray/state/repertoire/inference-state.json",
|
|
65
|
+
"feedbackDir": ".xray/state/repertoire/feedback"
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
```
|
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# xray — exo for coding agents
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**4.0** — a suit that survives the context window
|
|
4
|
+
|
|
5
|
+

|
|
4
6
|
|
|
5
7
|
Not a catalog of agents. The product is the **skeleton you wear**.
|
|
6
8
|
|
|
@@ -48,7 +50,7 @@ Docs: [guides/autonomy-command](docs-site/docs/guides/autonomy-command.md) · Sk
|
|
|
48
50
|
|
|
49
51
|
| Version | Highlights |
|
|
50
52
|
|---------|------------|
|
|
51
|
-
| **4.0.0** | Exo + temperament. Constitution always on; ceremony by host. Repertoire
|
|
53
|
+
| **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) |
|
|
52
54
|
| **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. |
|
|
53
55
|
| **3.3.1** | Orchestrator confidence gate wired into execution planning. |
|
|
54
56
|
| **3.3.0** | Pluggable **Memory Routing** (`features.json` → `memory_routing`). Repertoire is the default provider in the framework repo. |
|
|
@@ -149,11 +151,11 @@ Pluggable `memory_routing` block in `features.json` (validated by `features.sche
|
|
|
149
151
|
"memory_routing": {
|
|
150
152
|
"enabled": true,
|
|
151
153
|
"provider": "repertoire",
|
|
152
|
-
"module_path": "
|
|
154
|
+
"module_path": "node_modules/@0xray/repertoire/dist/provider/memory-routing-provider.js",
|
|
153
155
|
"config": {
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"
|
|
156
|
+
"signalsPath": "node_modules/@0xray/repertoire/data/curated_signals.json",
|
|
157
|
+
"statePath": ".xray/state/repertoire/inference-state.json",
|
|
158
|
+
"feedbackDir": ".xray/state/repertoire/feedback"
|
|
157
159
|
}
|
|
158
160
|
}
|
|
159
161
|
```
|
|
@@ -183,7 +185,7 @@ Docs: [memory routing](docs-site/docs/guides/memory-routing.md) · [Repertoire](
|
|
|
183
185
|
|
|
184
186
|
## Governance & Codex
|
|
185
187
|
|
|
186
|
-
- **
|
|
188
|
+
- **69 terms** in `.xray/codex.json` — core, architecture, testing, performance, security, operations, governance (Codex 69: no new MCP/skill/handler surface)
|
|
187
189
|
- CodexPolicyService — Governance-owned SSOT for codex loading
|
|
188
190
|
- Pre-governance gate blocks non-compliant proposals
|
|
189
191
|
- Active codex snapshot via `get_active_codex` MCP tool
|
|
@@ -191,27 +193,25 @@ Docs: [memory routing](docs-site/docs/guides/memory-routing.md) · [Repertoire](
|
|
|
191
193
|
|
|
192
194
|
## Testing
|
|
193
195
|
|
|
194
|
-
| Suite | Status (
|
|
196
|
+
| Suite | Status (v4.0.1) |
|
|
195
197
|
|-------|-----------------|
|
|
196
|
-
|
|
|
197
|
-
|
|
|
198
|
-
| Grok CLI E2E | 62/0 failures (v3.2.0 verified) |
|
|
199
|
-
| OpenClaw E2E | 9/9 (v3.2.0 verified) |
|
|
200
|
-
| Hermes E2E | 44/0/0 (v3.2.0 verified) |
|
|
201
|
-
| Consumer smoke | `npm run release:gate` — pack → clean install → 7 MCPs + 4 bridges |
|
|
198
|
+
| Four-floor consumer e2e | OpenCode 34/0 · Grok 63/0 · Hermes 39/0/2 · OpenClaw 96/0/1 (npm 4.0.0 pack) |
|
|
199
|
+
| Consumer smoke | `npm run release:gate` — pack → clean install → 7 MCPs + 4 bridges + organ on |
|
|
202
200
|
|
|
203
201
|
```bash
|
|
204
202
|
npm test
|
|
205
|
-
npm run release:gate # full release gate
|
|
203
|
+
npm run release:gate # full release gate (before upload)
|
|
204
|
+
npm run release:npm # gate + prepare + npm publish --access public
|
|
206
205
|
```
|
|
207
206
|
|
|
208
207
|
## Release
|
|
209
208
|
|
|
209
|
+
Product **4.0.0** 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.
|
|
210
|
+
|
|
210
211
|
```bash
|
|
211
|
-
npm run release:
|
|
212
|
-
npm run release:
|
|
213
|
-
npm run release:
|
|
214
|
-
npm run release:patch -- --dry-run
|
|
212
|
+
npm run release:gate
|
|
213
|
+
npm run release:npm # after gate is green; uses npm publish --access public
|
|
214
|
+
npm run release:patch # version bump pipeline (not for a already-bumped 4.0.0)
|
|
215
215
|
```
|
|
216
216
|
|
|
217
217
|
Pipeline: reconcile-version → release-gate (build + test + consumer smoke) → CHANGELOG/README/AGENTS artifacts → commit → tag → npm publish.
|
package/SKILLS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 0xray Skills
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**4.0** — **45 skills** · invoked via `xray-skills` MCP · synced on postinstall
|
|
4
4
|
|
|
5
5
|
xray ships 45 knowledge skills (`src/skills/<name>/SKILL.md`) across the full software lifecycle. Lead-dev operating model lives in **`orchestrator`** skill + `multi_agent_orchestration.lead_dev_mode` in features.json. Skills load on demand via the **xray-skills** MCP server (`npx -y 0xray mcp skills`), agent `@mentions`, or platform skill directories after postinstall.
|
|
6
6
|
|
|
@@ -157,7 +157,7 @@ npx 0xray skill:install <source>
|
|
|
157
157
|
|---------|------------------|
|
|
158
158
|
| **Memory routing** (v3.3) | Researcher uses Repertoire signals; optional `@0xray/repertoire` MCP |
|
|
159
159
|
| **AsideContext** (v3.2) | Orchestrator subcontexts during skill dispatch |
|
|
160
|
-
| **7 MCP servers** (
|
|
160
|
+
| **7 MCP servers** (v4.0.1) | `xray-skills` is the primary skill invocation surface |
|
|
161
161
|
|
|
162
162
|
Docs: [AGENTS.md](AGENTS.md) · [README.md](README.md) · [Docusaurus guides](docs-site/docs/guides/)
|
|
163
163
|
|
package/dist/AGENTS.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# xray Agents
|
|
2
2
|
|
|
3
|
-
Quick reference for the xray AI orchestration framework (**
|
|
3
|
+
Quick reference for the xray AI orchestration framework (**4.0**).
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**4.0** — a suit that survives the context window.
|
|
6
6
|
|
|
7
7
|
**Exo, not catalog.** Three-subsystem OS (Inference · External Governance · Autonomous Engine) · constitution always on · temperament by host · 4 floors · Repertoire when it resolves.
|
|
8
8
|
|
|
@@ -16,7 +16,7 @@ Before other work, Read `.xray/state/STATION.md`. Compaction and host change are
|
|
|
16
16
|
|
|
17
17
|
xray provides intelligent multi-agent orchestration with automatic delegation and Codex compliance validation under the pure v2 three-subsystem model:
|
|
18
18
|
|
|
19
|
-
- **Inference** — proposals, reflection, memory routing (
|
|
19
|
+
- **Inference** — proposals, reflection, memory routing (Repertoire organ on in 4.0)
|
|
20
20
|
- **External Governance** — Dynamo Solar SSOT, 69-term Codex
|
|
21
21
|
- **Autonomous Engine** — thinDispatch 7-flow, AsideContext, confidence gate
|
|
22
22
|
|
|
@@ -38,12 +38,12 @@ Registered in `.mcp.json`, invoked via `npx -y 0xray mcp <cmd>`:
|
|
|
38
38
|
|
|
39
39
|
Governance deliberation: **code-review**, **security-audit**, **researcher** within the 7-server set.
|
|
40
40
|
|
|
41
|
-
## Postinstall
|
|
41
|
+
## Postinstall
|
|
42
42
|
|
|
43
43
|
`postinstall.cjs` → `installAllBridges()`:
|
|
44
44
|
|
|
45
45
|
1. `AGENTS-consumer.md` → `AGENTS.md`
|
|
46
|
-
2. `SKILLS.md` +
|
|
46
|
+
2. `SKILLS.md` + 45 skills → platform skill directories
|
|
47
47
|
3. `.gitignore.default` → `.gitignore` (if absent)
|
|
48
48
|
4. `.xray/` config (`codex.json`, `features.json`, `config.json`)
|
|
49
49
|
5. `.mcp.json` (7 servers)
|
|
@@ -58,11 +58,11 @@ Governance deliberation: **code-review**, **security-audit**, **researcher** wit
|
|
|
58
58
|
"memory_routing": {
|
|
59
59
|
"enabled": true,
|
|
60
60
|
"provider": "repertoire",
|
|
61
|
-
"module_path": "
|
|
61
|
+
"module_path": "node_modules/@0xray/repertoire/dist/provider/memory-routing-provider.js",
|
|
62
62
|
"config": {
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
63
|
+
"signalsPath": "node_modules/@0xray/repertoire/data/curated_signals.json",
|
|
64
|
+
"statePath": ".xray/state/repertoire/inference-state.json",
|
|
65
|
+
"feedbackDir": ".xray/state/repertoire/feedback"
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
```
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -4,9 +4,61 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Conventional Commits](https://www.conventionalcommits.org/).
|
|
6
6
|
|
|
7
|
-
## [
|
|
7
|
+
## [Unreleased]
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
### 🔧 Maintenance
|
|
10
|
+
- Foundry mill: one bumper (`reconcile-version.mjs`); `version-manager.mjs` is `--artifacts-only` (JSON + CHANGELOG). Bump and `--tag` are refused.
|
|
11
|
+
- Docs mill verifies era kernel headers (`4.0`) and skill counts; it does not rewrite markdown prose.
|
|
12
|
+
- Exo cannot ship: `executeReleaseWorkflow` is blocked (`FOUNDRY_EXO_CANNOT_SHIP`).
|
|
13
|
+
- Full `release-gate` now runs `validate-release-docs` (not only `--verify-only`).
|
|
14
|
+
- `VersionComplianceProcessor` treats `package.json` as SSOT; UVM is frozen.
|
|
15
|
+
- CI: version-compliance and AGENTS.md workflows target `main`; mill check is `validate-release-docs` (not UVM 1-ahead). `publish.yml` runs the docs mill before PUT.
|
|
16
|
+
- Mill extracted to `scripts/foundry/` (`@0xray/foundry`). `release:npm` is `release.mjs --publish-only`. UVM file removed. Consumer mint writes `foundry-inventory.json` from their package.json.
|
|
17
|
+
- Consumer postinstall overlays their mill SSOT onto the hanger: constitution (`xray/codex.json`), features/temperament, config, `src/skills/<name>/SKILL.md`, `src/opencode/agents/*.yml`. Remap with `foundry.json`. Overlay is **project** skill hangers. JSON mill-fill always merges. CLI re-wear mints once after mill copies. `npx @0xray/foundry mint` reapplies overlay.
|
|
18
|
+
- `@0xray/foundry@0.1.0` mills `FOUNDRY_ROOT` or cwd. Full docs corpus only on the 0xray exo; light mill otherwise. Stamp creates CHANGELOG when missing. Publish refuses a nameless `package.json`. Mill PUT is `cd scripts/foundry && npm publish`; stranger `release` does not force `--access public`. Deprecated `sync-versions.mjs` and `release.js` wrappers removed.
|
|
19
|
+
- Honesty: consumer card does not claim it writes root `SKILLS.md`; mill help is `npx @0xray/foundry`; shims mill cwd; mill-managed `AGENTS.md` overlays from `xray/AGENTS.md`. Mill-fill stays law.
|
|
20
|
+
- Scar tissue cut: no `homeSkills`, no `codexMode`/`featuresMode`/`configMode`. JSON always merge. One `mintConsumerSuit` after mill copies (not inside `syncBuiltinSkills`).
|
|
21
|
+
- Mill flesh: live `npx @0xray/foundry release` is opt-in (`--i-mean-it` / `FOUNDRY_RELEASE=1`). Packed mill mint and Unreleased stamp are executed tests. `@0xray/foundry` tree is 0.1.1 (not a 0xray bump).
|
|
22
|
+
- Mill CI: `0xRay CI/CD` is the mill gate on `main` (typecheck, lint, mill tests, build, curated tests, smoke). Monitor reports Actions; it does not auto-push. `npx @0xray/foundry ci` / `hooks`. Mill package 0.1.2.
|
|
23
|
+
- GitHub Pages: stop copying stale `docs-site/static/index.html` over the Docusaurus homepage (unprefixed `/docs` links 404ed). `npx @0xray/foundry docs-build` is the mill Docusaurus build. Mill 0.1.3.
|
|
24
|
+
- Mill self-host: `0xRay CI/CD` lives in `mill-ci.yml` so GitHub registers push/PR after the inactivity disable. Mill CI always builds Docusaurus.
|
|
25
|
+
- GitHub Pages homepage: no client `<Redirect to="/docs/…">` (that 404s at the org root). Meta refresh + `useBaseUrl('/docs/')`. `.nojekyll` in static.
|
|
26
|
+
- Mill CI report: `mill-monitor.yml` (fresh workflow ID) listens for mill CI completion. Report only.
|
|
27
|
+
- Published mill `hooks` uses the 0xray garment installer (`node_modules/0xray/scripts/hooks`), not `node_modules/@0xray/hooks`. Mill tree 0.1.4 (not a 0xray bump).
|
|
28
|
+
- Nested mill in the 0xray tarball (`scripts/foundry/`). Wear no longer needs a second `npm i @0xray/foundry` for mint-on-install. 4.0.2.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## [4.0.2] - 2026-09-04
|
|
33
|
+
|
|
34
|
+
Nested mill in the **0xray tarball**. `npm i 0xray` mill-fills via `scripts/foundry/` (postinstall + CLI re-wear `require` it). `@0xray/foundry` stays the standalone mill CLI (**0.1.4**). Not 5.0.0.
|
|
35
|
+
|
|
36
|
+
Pack tests and consumer smoke require `scripts/foundry/mint-suit.cjs` in the tarball. Mill self-host (mill-ci, mill-monitor, Pages `docs-build`, mill-fill overlay) was already on main; this patch is the npm PUT of that mill next to the garment.
|
|
37
|
+
|
|
38
|
+
### 🐛 Bug Fixes
|
|
39
|
+
- Processor-test ESLint config is ESLint 9 ESM
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## [4.0.1] - 2026-09-02
|
|
44
|
+
|
|
45
|
+
Patch on the 4.0 temperament line. npm **4.0.0** stays latest until this tag publishes.
|
|
46
|
+
|
|
47
|
+
### 🐛 Bug Fixes
|
|
48
|
+
- CLI `-V` / `--version` no longer dumps a Commander stack after `exitOverride`
|
|
49
|
+
- Hermes: post-processor logs `[nudge]`; e2e calls `session-start`
|
|
50
|
+
- OpenClaw e2e reads `plugins.entries` (OpenClaw 2026.8.2)
|
|
51
|
+
- Release gate: consumer smoke expects organ **on**; no `scripts.publish` after the registry PUT; reconcile allows tagged-but-unpublished
|
|
52
|
+
|
|
53
|
+
### 📚 Documentation
|
|
54
|
+
- Archive catalog / enterprise Docusaurus boiler; live site is exo wear
|
|
55
|
+
- Version-manager stamps live Docusaurus kernel headers (no archived `docs-site/docs/README.md`)
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## [4.0.0] - 2026-09-02
|
|
60
|
+
|
|
61
|
+
First ship of the **temperament** line on the **v2 three-subsystem OS** (Inference · External Governance · Autonomous Engine). npm **4.0.0**. Tag `v4.0.0` on `0xRayAI/xray` `main` (`f80b42c`).
|
|
10
62
|
|
|
11
63
|
### ✨ Features
|
|
12
64
|
- **Factory memory organ** — `@0xray/repertoire@0.2.0` vendored as a runtime dependency. Shipped `memory_routing` is **on** (8 factory primitives). Extra host MCP stays `repertoire`, not an 8th `xray-*` server. Compact ingest writes `.xray/state/repertoire/`. Explicit opt-out: `enabled: false` + `provider: "repertoire"`.
|
package/dist/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# xray — exo for coding agents
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**4.0** — a suit that survives the context window
|
|
4
|
+
|
|
5
|
+

|
|
4
6
|
|
|
5
7
|
Not a catalog of agents. The product is the **skeleton you wear**.
|
|
6
8
|
|
|
@@ -48,7 +50,7 @@ Docs: [guides/autonomy-command](docs-site/docs/guides/autonomy-command.md) · Sk
|
|
|
48
50
|
|
|
49
51
|
| Version | Highlights |
|
|
50
52
|
|---------|------------|
|
|
51
|
-
| **4.0.0** | Exo + temperament. Constitution always on; ceremony by host. Repertoire
|
|
53
|
+
| **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) |
|
|
52
54
|
| **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. |
|
|
53
55
|
| **3.3.1** | Orchestrator confidence gate wired into execution planning. |
|
|
54
56
|
| **3.3.0** | Pluggable **Memory Routing** (`features.json` → `memory_routing`). Repertoire is the default provider in the framework repo. |
|
|
@@ -149,11 +151,11 @@ Pluggable `memory_routing` block in `features.json` (validated by `features.sche
|
|
|
149
151
|
"memory_routing": {
|
|
150
152
|
"enabled": true,
|
|
151
153
|
"provider": "repertoire",
|
|
152
|
-
"module_path": "
|
|
154
|
+
"module_path": "node_modules/@0xray/repertoire/dist/provider/memory-routing-provider.js",
|
|
153
155
|
"config": {
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"
|
|
156
|
+
"signalsPath": "node_modules/@0xray/repertoire/data/curated_signals.json",
|
|
157
|
+
"statePath": ".xray/state/repertoire/inference-state.json",
|
|
158
|
+
"feedbackDir": ".xray/state/repertoire/feedback"
|
|
157
159
|
}
|
|
158
160
|
}
|
|
159
161
|
```
|
|
@@ -183,7 +185,7 @@ Docs: [memory routing](docs-site/docs/guides/memory-routing.md) · [Repertoire](
|
|
|
183
185
|
|
|
184
186
|
## Governance & Codex
|
|
185
187
|
|
|
186
|
-
- **
|
|
188
|
+
- **69 terms** in `.xray/codex.json` — core, architecture, testing, performance, security, operations, governance (Codex 69: no new MCP/skill/handler surface)
|
|
187
189
|
- CodexPolicyService — Governance-owned SSOT for codex loading
|
|
188
190
|
- Pre-governance gate blocks non-compliant proposals
|
|
189
191
|
- Active codex snapshot via `get_active_codex` MCP tool
|
|
@@ -191,27 +193,25 @@ Docs: [memory routing](docs-site/docs/guides/memory-routing.md) · [Repertoire](
|
|
|
191
193
|
|
|
192
194
|
## Testing
|
|
193
195
|
|
|
194
|
-
| Suite | Status (
|
|
196
|
+
| Suite | Status (v4.0.1) |
|
|
195
197
|
|-------|-----------------|
|
|
196
|
-
|
|
|
197
|
-
|
|
|
198
|
-
| Grok CLI E2E | 62/0 failures (v3.2.0 verified) |
|
|
199
|
-
| OpenClaw E2E | 9/9 (v3.2.0 verified) |
|
|
200
|
-
| Hermes E2E | 44/0/0 (v3.2.0 verified) |
|
|
201
|
-
| Consumer smoke | `npm run release:gate` — pack → clean install → 7 MCPs + 4 bridges |
|
|
198
|
+
| Four-floor consumer e2e | OpenCode 34/0 · Grok 63/0 · Hermes 39/0/2 · OpenClaw 96/0/1 (npm 4.0.0 pack) |
|
|
199
|
+
| Consumer smoke | `npm run release:gate` — pack → clean install → 7 MCPs + 4 bridges + organ on |
|
|
202
200
|
|
|
203
201
|
```bash
|
|
204
202
|
npm test
|
|
205
|
-
npm run release:gate # full release gate
|
|
203
|
+
npm run release:gate # full release gate (before upload)
|
|
204
|
+
npm run release:npm # gate + prepare + npm publish --access public
|
|
206
205
|
```
|
|
207
206
|
|
|
208
207
|
## Release
|
|
209
208
|
|
|
209
|
+
Product **4.0.0** 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.
|
|
210
|
+
|
|
210
211
|
```bash
|
|
211
|
-
npm run release:
|
|
212
|
-
npm run release:
|
|
213
|
-
npm run release:
|
|
214
|
-
npm run release:patch -- --dry-run
|
|
212
|
+
npm run release:gate
|
|
213
|
+
npm run release:npm # after gate is green; uses npm publish --access public
|
|
214
|
+
npm run release:patch # version bump pipeline (not for a already-bumped 4.0.0)
|
|
215
215
|
```
|
|
216
216
|
|
|
217
217
|
Pipeline: reconcile-version → release-gate (build + test + consumer smoke) → CHANGELOG/README/AGENTS artifacts → commit → tag → npm publish.
|
package/dist/SKILLS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 0xray Skills
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**4.0** — **45 skills** · invoked via `xray-skills` MCP · synced on postinstall
|
|
4
4
|
|
|
5
5
|
xray ships 45 knowledge skills (`src/skills/<name>/SKILL.md`) across the full software lifecycle. Lead-dev operating model lives in **`orchestrator`** skill + `multi_agent_orchestration.lead_dev_mode` in features.json. Skills load on demand via the **xray-skills** MCP server (`npx -y 0xray mcp skills`), agent `@mentions`, or platform skill directories after postinstall.
|
|
6
6
|
|
|
@@ -157,7 +157,7 @@ npx 0xray skill:install <source>
|
|
|
157
157
|
|---------|------------------|
|
|
158
158
|
| **Memory routing** (v3.3) | Researcher uses Repertoire signals; optional `@0xray/repertoire` MCP |
|
|
159
159
|
| **AsideContext** (v3.2) | Orchestrator subcontexts during skill dispatch |
|
|
160
|
-
| **7 MCP servers** (
|
|
160
|
+
| **7 MCP servers** (v4.0.1) | `xray-skills` is the primary skill invocation surface |
|
|
161
161
|
|
|
162
162
|
Docs: [AGENTS.md](AGENTS.md) · [README.md](README.md) · [Docusaurus guides](docs-site/docs/guides/)
|
|
163
163
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { createRequire } from "module";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
6
|
+
const packageRoot = path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "..");
|
|
7
|
+
/** Re-apply mill overlay after CLI re-wear copies mill skills. */
|
|
8
|
+
export function mintAfterWear(targetDir) {
|
|
9
|
+
const { mintConsumerSuit } = require(path.join(packageRoot, "scripts/foundry/mint-suit.cjs"));
|
|
10
|
+
mintConsumerSuit(packageRoot, targetDir, (component, action, status, details) => {
|
|
11
|
+
const level = status === "error" ? "error" : "info";
|
|
12
|
+
frameworkLogger.log(component, action, level, details);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -4,6 +4,7 @@ import { homedir } from 'os';
|
|
|
4
4
|
import { createRequire } from 'module';
|
|
5
5
|
import { frameworkLogger } from '../../core/framework-logger.js';
|
|
6
6
|
import { syncBuiltinSkills } from './skill-install.js';
|
|
7
|
+
import { mintAfterWear } from './foundry-mint-wear.js';
|
|
7
8
|
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
8
9
|
const require = createRequire(import.meta.url);
|
|
9
10
|
const packageRoot = path.join(__dirname, '..', '..', '..');
|
|
@@ -68,6 +69,7 @@ async function installForHermes(options = {}) {
|
|
|
68
69
|
frameworkLogger.log('hermes-integration', 'hooks-copied', 'info', {});
|
|
69
70
|
}
|
|
70
71
|
const wired = wiring.wireHermesBridge(targetDir);
|
|
72
|
+
mintAfterWear(targetDir);
|
|
71
73
|
console.log(`\x1b[32m✓ Wired Hermes mcp_servers (${wired.count} servers)\x1b[0m`);
|
|
72
74
|
console.log(`\x1b[32m✓ Consumer root → ${targetDir}\x1b[0m`);
|
|
73
75
|
const afterInstallPath = path.join(targetPluginDir, 'after-install.md');
|
|
@@ -4,6 +4,7 @@ import { homedir } from 'os';
|
|
|
4
4
|
import { createRequire } from 'module';
|
|
5
5
|
import { frameworkLogger } from '../../core/framework-logger.js';
|
|
6
6
|
import { syncBuiltinSkills } from './skill-install.js';
|
|
7
|
+
import { mintAfterWear } from './foundry-mint-wear.js';
|
|
7
8
|
import { OpenClawConfigLoader } from '../../integrations/openclaw/config.js';
|
|
8
9
|
import { writeSuitSessionBoot } from '../../nucleus/suit-temperament.js';
|
|
9
10
|
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
@@ -45,6 +46,7 @@ async function installForOpenClaw(options = {}) {
|
|
|
45
46
|
console.log(`\x1b[32m✓ Synced ${skillsCopied} builtin skills to ~/.openclaw/skills/\x1b[0m`);
|
|
46
47
|
}
|
|
47
48
|
frameworkLogger.log('openclaw-integration', 'skills-synced', 'info', { count: skillsCopied });
|
|
49
|
+
mintAfterWear(targetDir);
|
|
48
50
|
const wired = wiring.wireOpenClawBridge(targetDir);
|
|
49
51
|
console.log(`\x1b[32m✓ Wired OpenClaw MCP servers (${wired.count} via ${wired.method}) → ${wired.path}\x1b[0m`);
|
|
50
52
|
console.log(`\x1b[32m✓ Consumer root → ${targetDir}\x1b[0m`);
|
|
@@ -3,6 +3,7 @@ import path from 'path';
|
|
|
3
3
|
import { createRequire } from 'module';
|
|
4
4
|
import { frameworkLogger } from '../../core/framework-logger.js';
|
|
5
5
|
import { syncBuiltinSkills } from './skill-install.js';
|
|
6
|
+
import { mintAfterWear } from './foundry-mint-wear.js';
|
|
6
7
|
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
7
8
|
const require = createRequire(import.meta.url);
|
|
8
9
|
const wiring = require(path.join(__dirname, '..', '..', '..', 'scripts', 'node', 'bridge-mcp-wiring.cjs'));
|
|
@@ -133,6 +134,7 @@ async function installForOpencode(options = {}) {
|
|
|
133
134
|
console.log(`\x1b[32m✓ Seeded opencode.json from 0xRay template\x1b[0m`);
|
|
134
135
|
}
|
|
135
136
|
const mcpCount = wiring.wireOpencodeBridge(process.cwd());
|
|
137
|
+
mintAfterWear(process.cwd());
|
|
136
138
|
console.log(`\x1b[32m✓ Wired opencode.json mcp (${mcpCount} servers)\x1b[0m`);
|
|
137
139
|
console.log('\n✅ 0xRay OpenCode plugin installed!');
|
|
138
140
|
console.log('Restart OpenCode or run `opencode mcp list` to verify MCP servers.');
|
package/dist/cli/index.js
CHANGED
|
@@ -984,4 +984,13 @@ For more information, visit: https://github.com/0xRayAI/xray
|
|
|
984
984
|
`);
|
|
985
985
|
// Parse command line arguments
|
|
986
986
|
program.exitOverride();
|
|
987
|
-
|
|
987
|
+
try {
|
|
988
|
+
program.parse();
|
|
989
|
+
}
|
|
990
|
+
catch (err) {
|
|
991
|
+
const code = err && typeof err === 'object' && 'code' in err ? String(err.code) : '';
|
|
992
|
+
if (code === 'commander.helpDisplayed' || code === 'commander.help' || code === 'commander.version') {
|
|
993
|
+
process.exit(0);
|
|
994
|
+
}
|
|
995
|
+
throw err;
|
|
996
|
+
}
|
|
@@ -18,6 +18,13 @@ export declare function preProcessAndRoute(operation: string, context: RuleValid
|
|
|
18
18
|
enhancedContext: RuleValidationContext;
|
|
19
19
|
routing: RoutingRecommendation;
|
|
20
20
|
}>;
|
|
21
|
+
/** Foundry mill ships. The worn exo must not bump, commit, or publish. */
|
|
22
|
+
export declare const FOUNDRY_EXO_CANNOT_SHIP = "Exo cannot ship. Use: node scripts/node/release.mjs [patch|minor|major]";
|
|
23
|
+
/**
|
|
24
|
+
* Release keyword used to run version-manager + git add -A + npm publish from the exo.
|
|
25
|
+
* That path is refused. Canonical mill: reconcile → artifacts-only → gate → PUT → tag.
|
|
26
|
+
*/
|
|
27
|
+
export declare function executeReleaseWorkflow(operation: string, _context: RuleValidationContext, jobId: string, _routing: RoutingRecommendation): Promise<EnforcementResult>;
|
|
21
28
|
export interface EnforcementResult {
|
|
22
29
|
operation: string;
|
|
23
30
|
passed: boolean;
|