0xray 3.5.5 → 4.0.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.
Files changed (233) hide show
  1. package/.mcp.json +18 -14
  2. package/.opencode/skills/api-design/SKILL.md +1 -1
  3. package/.opencode/skills/architect-tools/SKILL.md +1 -1
  4. package/.opencode/skills/architecture-patterns/SKILL.md +1 -1
  5. package/.opencode/skills/auto-format/SKILL.md +1 -1
  6. package/.opencode/skills/boot-orchestrator/SKILL.md +2 -6
  7. package/.opencode/skills/bug-triage/SKILL.md +1 -1
  8. package/.opencode/skills/code-analyzer/SKILL.md +1 -1
  9. package/.opencode/skills/code-review/SKILL.md +1 -1
  10. package/.opencode/skills/enforcer/SKILL.md +1 -1
  11. package/.opencode/skills/framework-compliance-audit/SKILL.md +1 -1
  12. package/.opencode/skills/git-workflow/SKILL.md +1 -1
  13. package/.opencode/skills/hermes-agent/SKILL.md +36 -36
  14. package/.opencode/skills/inference-improve/SKILL.md +1 -1
  15. package/.opencode/skills/lint/SKILL.md +1 -1
  16. package/.opencode/skills/log-monitor/SKILL.md +1 -1
  17. package/.opencode/skills/model-health-check/SKILL.md +1 -1
  18. package/.opencode/skills/multimodal-looker/SKILL.md +1 -1
  19. package/.opencode/skills/orchestrator/SKILL.md +38 -14
  20. package/.opencode/skills/performance-analysis/SKILL.md +1 -1
  21. package/.opencode/skills/performance-optimization/SKILL.md +1 -1
  22. package/.opencode/skills/processor-pipeline/SKILL.md +1 -1
  23. package/.opencode/skills/project-analysis/SKILL.md +1 -1
  24. package/.opencode/skills/refactoring-strategies/SKILL.md +1 -1
  25. package/.opencode/skills/registry.json +65 -0
  26. package/.opencode/skills/researcher/SKILL.md +18 -5
  27. package/.opencode/skills/security-audit/SKILL.md +1 -1
  28. package/.opencode/skills/security-scan/SKILL.md +1 -1
  29. package/.opencode/skills/session-management/SKILL.md +1 -1
  30. package/.opencode/skills/state-manager/SKILL.md +1 -1
  31. package/.opencode/skills/storyteller/SKILL.md +1 -1
  32. package/.opencode/skills/strategist/SKILL.md +12 -0
  33. package/.opencode/skills/testing-best-practices/SKILL.md +37 -0
  34. package/.opencode/skills/testing-strategy/SKILL.md +14 -3
  35. package/.opencode/skills/ui-ux-design/SKILL.md +1 -1
  36. package/.opencode/skills/xray-orchestrator/index.ts +267 -0
  37. package/.xray/codex.json +12 -3
  38. package/.xray/features.json +28 -6
  39. package/.xray/features.schema.json +31 -0
  40. package/AGENTS-consumer.md +17 -7
  41. package/AGENTS.md +18 -10
  42. package/README.md +30 -27
  43. package/SKILLS.md +2 -2
  44. package/dist/AGENTS.md +18 -10
  45. package/dist/CHANGELOG.md +81 -11
  46. package/dist/README.md +30 -27
  47. package/dist/SKILLS.md +2 -2
  48. package/dist/cli/commands/hermes-install.js +3 -0
  49. package/dist/cli/commands/openclaw-install.js +14 -0
  50. package/dist/cli/index.js +10 -1
  51. package/dist/core/features-config.d.ts +15 -2
  52. package/dist/infrastructure/schemas/cloud-schemas.d.ts +1 -1
  53. package/dist/integrations/grok/grok-cli.d.ts +3 -0
  54. package/dist/integrations/grok/grok-cli.js +92 -4
  55. package/dist/integrations/grok/hooks/grok-hook-utils.js +53 -7
  56. package/dist/integrations/grok/hooks/post-tool-use.js +68 -46
  57. package/dist/integrations/grok/hooks/pre-tool-use.js +14 -31
  58. package/dist/integrations/grok/hooks/session-start.js +86 -4
  59. package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +31 -24
  60. package/dist/integrations/hermes-agent/bridge.mjs +26 -1
  61. package/dist/integrations/hooks/delegation-gate-runtime.mjs +32 -3
  62. package/dist/integrations/hooks/pipeline-hook-runtime.mjs +1 -1
  63. package/dist/integrations/hooks/station-hook-runtime.cjs +421 -0
  64. package/dist/integrations/hooks/station-hook-runtime.mjs +24 -0
  65. package/dist/integrations/hooks/station-memory-ingest.mjs +45 -0
  66. package/dist/integrations/hooks/station-memory-match.mjs +47 -0
  67. package/dist/integrations/openclaw/client.d.ts +5 -1
  68. package/dist/integrations/openclaw/client.js +17 -9
  69. package/dist/integrations/openclaw/config.js +0 -1
  70. package/dist/integrations/openclaw/hooks/pre-tool-gate-runtime.mjs +102 -0
  71. package/dist/integrations/openclaw/index.js +17 -0
  72. package/dist/integrations/openclaw/plugin/xray-pre-tool/index.js +75 -0
  73. package/dist/integrations/openclaw/plugin/xray-pre-tool/openclaw.plugin.json +10 -0
  74. package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +12 -0
  75. package/dist/integrations/openclaw/pre-tool-gate.d.ts +19 -0
  76. package/dist/integrations/openclaw/pre-tool-gate.js +39 -0
  77. package/dist/mcps/orchestrator/handlers/complexity-handler.js +2 -2
  78. package/dist/memory-routing/index.d.ts +1 -1
  79. package/dist/memory-routing/index.js +1 -1
  80. package/dist/memory-routing/provider-loader.d.ts +4 -0
  81. package/dist/memory-routing/provider-loader.js +44 -2
  82. package/dist/memory-routing/provider-registry.js +3 -2
  83. package/dist/nucleus/autonomy-kernel.d.ts +2 -2
  84. package/dist/nucleus/autonomy-kernel.js +17 -6
  85. package/dist/nucleus/confer.js +17 -3
  86. package/dist/nucleus/delegation-gate.d.ts +14 -8
  87. package/dist/nucleus/delegation-gate.js +151 -16
  88. package/dist/nucleus/suit-temperament.d.ts +40 -0
  89. package/dist/nucleus/suit-temperament.js +157 -0
  90. package/dist/nucleus/user-aside.js +1 -1
  91. package/dist/plugin/xray-codex-injection.js +14 -3
  92. package/dist/postprocessor/triggers/GitHookTrigger.js +11 -5
  93. package/opencode.json +80 -0
  94. package/package.json +15 -5
  95. package/scripts/hooks/install-hooks.cjs +18 -3
  96. package/scripts/hooks/run-hook.js +67 -3
  97. package/scripts/mjs/run-repertoire-mcp.mjs +39 -0
  98. package/scripts/mjs/verify-confer-core.mjs +1 -1
  99. package/scripts/mjs/verify-delegation-gate-core.mjs +29 -2
  100. package/scripts/mjs/verify-four-floor-compact.mjs +524 -0
  101. package/scripts/mjs/verify-pipeline-facets.mjs +215 -0
  102. package/scripts/mjs/verify-temperament-live.mjs +261 -0
  103. package/scripts/node/bridge-mcp-wiring.cjs +277 -29
  104. package/scripts/node/consumer-install-smoke.mjs +55 -2
  105. package/scripts/node/install-bridges.cjs +195 -33
  106. package/scripts/node/postinstall.cjs +50 -27
  107. package/scripts/node/reconcile-version.mjs +0 -4
  108. package/scripts/node/release-gate.mjs +1 -1
  109. package/scripts/node/release.mjs +2 -2
  110. package/scripts/node/universal-version-manager.js +1 -1
  111. package/scripts/node/validate-release-docs.mjs +20 -33
  112. package/scripts/node/version-manager.mjs +63 -18
  113. package/src/integrations/grok/plugin/0xray/hooks/hooks.json +31 -24
  114. package/src/integrations/openclaw/README.md +134 -0
  115. package/src/integrations/openclaw/plugin/xray-pre-tool/index.js +75 -0
  116. package/src/integrations/openclaw/plugin/xray-pre-tool/openclaw.plugin.json +10 -0
  117. package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +12 -0
  118. package/src/mcps/orchestrator/handlers/complexity-handler.ts +2 -1
  119. package/vendor/@0xray/repertoire/AGENTS.md +163 -0
  120. package/vendor/@0xray/repertoire/LICENSE +21 -0
  121. package/vendor/@0xray/repertoire/README.md +120 -0
  122. package/vendor/@0xray/repertoire/data/curated_signals.json +208 -0
  123. package/vendor/@0xray/repertoire/dist/RepertoireService.d.ts +78 -0
  124. package/vendor/@0xray/repertoire/dist/RepertoireService.d.ts.map +1 -0
  125. package/vendor/@0xray/repertoire/dist/RepertoireService.js +153 -0
  126. package/vendor/@0xray/repertoire/dist/RepertoireService.js.map +1 -0
  127. package/vendor/@0xray/repertoire/dist/governance/ontological-trap-enforcer.d.ts +39 -0
  128. package/vendor/@0xray/repertoire/dist/governance/ontological-trap-enforcer.d.ts.map +1 -0
  129. package/vendor/@0xray/repertoire/dist/governance/ontological-trap-enforcer.js +60 -0
  130. package/vendor/@0xray/repertoire/dist/governance/ontological-trap-enforcer.js.map +1 -0
  131. package/vendor/@0xray/repertoire/dist/index.d.ts +14 -0
  132. package/vendor/@0xray/repertoire/dist/index.d.ts.map +1 -0
  133. package/vendor/@0xray/repertoire/dist/index.js +14 -0
  134. package/vendor/@0xray/repertoire/dist/index.js.map +1 -0
  135. package/vendor/@0xray/repertoire/dist/ingestion/groover-log-ingester.d.ts +26 -0
  136. package/vendor/@0xray/repertoire/dist/ingestion/groover-log-ingester.d.ts.map +1 -0
  137. package/vendor/@0xray/repertoire/dist/ingestion/groover-log-ingester.js +109 -0
  138. package/vendor/@0xray/repertoire/dist/ingestion/groover-log-ingester.js.map +1 -0
  139. package/vendor/@0xray/repertoire/dist/ingestion/groover-log-parser.d.ts +18 -0
  140. package/vendor/@0xray/repertoire/dist/ingestion/groover-log-parser.d.ts.map +1 -0
  141. package/vendor/@0xray/repertoire/dist/ingestion/groover-log-parser.js +94 -0
  142. package/vendor/@0xray/repertoire/dist/ingestion/groover-log-parser.js.map +1 -0
  143. package/vendor/@0xray/repertoire/dist/ingestion/orchestrator-feedback-ingester.d.ts +7 -0
  144. package/vendor/@0xray/repertoire/dist/ingestion/orchestrator-feedback-ingester.d.ts.map +1 -0
  145. package/vendor/@0xray/repertoire/dist/ingestion/orchestrator-feedback-ingester.js +18 -0
  146. package/vendor/@0xray/repertoire/dist/ingestion/orchestrator-feedback-ingester.js.map +1 -0
  147. package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.d.ts +31 -0
  148. package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.d.ts.map +1 -0
  149. package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.js +83 -0
  150. package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.js.map +1 -0
  151. package/vendor/@0xray/repertoire/dist/mcp/server.d.ts +6 -0
  152. package/vendor/@0xray/repertoire/dist/mcp/server.d.ts.map +1 -0
  153. package/vendor/@0xray/repertoire/dist/mcp/server.js +173 -0
  154. package/vendor/@0xray/repertoire/dist/mcp/server.js.map +1 -0
  155. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/RepertoireOrchestratorBridge.d.ts +27 -0
  156. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/RepertoireOrchestratorBridge.d.ts.map +1 -0
  157. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/RepertoireOrchestratorBridge.js +107 -0
  158. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/RepertoireOrchestratorBridge.js.map +1 -0
  159. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/capability-enhancer.d.ts +11 -0
  160. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/capability-enhancer.d.ts.map +1 -0
  161. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/capability-enhancer.js +32 -0
  162. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/capability-enhancer.js.map +1 -0
  163. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.d.ts +9 -0
  164. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.d.ts.map +1 -0
  165. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.js +72 -0
  166. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.js.map +1 -0
  167. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-agent-affinity.d.ts +5 -0
  168. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-agent-affinity.d.ts.map +1 -0
  169. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-agent-affinity.js +18 -0
  170. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-agent-affinity.js.map +1 -0
  171. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.d.ts +31 -0
  172. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.d.ts.map +1 -0
  173. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.js +218 -0
  174. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.js.map +1 -0
  175. package/vendor/@0xray/repertoire/dist/paths.d.ts +24 -0
  176. package/vendor/@0xray/repertoire/dist/paths.d.ts.map +1 -0
  177. package/vendor/@0xray/repertoire/dist/paths.js +74 -0
  178. package/vendor/@0xray/repertoire/dist/paths.js.map +1 -0
  179. package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.d.ts +141 -0
  180. package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.d.ts.map +1 -0
  181. package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.js +210 -0
  182. package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.js.map +1 -0
  183. package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.d.ts +48 -0
  184. package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.d.ts.map +1 -0
  185. package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.js +221 -0
  186. package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.js.map +1 -0
  187. package/vendor/@0xray/repertoire/dist/registry/InferenceStateManager.d.ts +11 -0
  188. package/vendor/@0xray/repertoire/dist/registry/InferenceStateManager.d.ts.map +1 -0
  189. package/vendor/@0xray/repertoire/dist/registry/InferenceStateManager.js +43 -0
  190. package/vendor/@0xray/repertoire/dist/registry/InferenceStateManager.js.map +1 -0
  191. package/vendor/@0xray/repertoire/dist/registry/signal-prune.d.ts +15 -0
  192. package/vendor/@0xray/repertoire/dist/registry/signal-prune.d.ts.map +1 -0
  193. package/vendor/@0xray/repertoire/dist/registry/signal-prune.js +35 -0
  194. package/vendor/@0xray/repertoire/dist/registry/signal-prune.js.map +1 -0
  195. package/vendor/@0xray/repertoire/dist/synthesis/concrete-sections.d.ts +3 -0
  196. package/vendor/@0xray/repertoire/dist/synthesis/concrete-sections.d.ts.map +1 -0
  197. package/vendor/@0xray/repertoire/dist/synthesis/concrete-sections.js +24 -0
  198. package/vendor/@0xray/repertoire/dist/synthesis/concrete-sections.js.map +1 -0
  199. package/vendor/@0xray/repertoire/dist/synthesis/meta-inference-engine.d.ts +24 -0
  200. package/vendor/@0xray/repertoire/dist/synthesis/meta-inference-engine.d.ts.map +1 -0
  201. package/vendor/@0xray/repertoire/dist/synthesis/meta-inference-engine.js +148 -0
  202. package/vendor/@0xray/repertoire/dist/synthesis/meta-inference-engine.js.map +1 -0
  203. package/vendor/@0xray/repertoire/dist/synthesis/primitive-confidence-aggregator.d.ts +4 -0
  204. package/vendor/@0xray/repertoire/dist/synthesis/primitive-confidence-aggregator.d.ts.map +1 -0
  205. package/vendor/@0xray/repertoire/dist/synthesis/primitive-confidence-aggregator.js +44 -0
  206. package/vendor/@0xray/repertoire/dist/synthesis/primitive-confidence-aggregator.js.map +1 -0
  207. package/vendor/@0xray/repertoire/dist/synthesis/synthesis-prompt-builder.d.ts +22 -0
  208. package/vendor/@0xray/repertoire/dist/synthesis/synthesis-prompt-builder.d.ts.map +1 -0
  209. package/vendor/@0xray/repertoire/dist/synthesis/synthesis-prompt-builder.js +66 -0
  210. package/vendor/@0xray/repertoire/dist/synthesis/synthesis-prompt-builder.js.map +1 -0
  211. package/vendor/@0xray/repertoire/dist/types.d.ts +210 -0
  212. package/vendor/@0xray/repertoire/dist/types.d.ts.map +1 -0
  213. package/vendor/@0xray/repertoire/dist/types.js +2 -0
  214. package/vendor/@0xray/repertoire/dist/types.js.map +1 -0
  215. package/vendor/@0xray/repertoire/docs/MEMORY-ROUTING-PROVIDER.md +54 -0
  216. package/vendor/@0xray/repertoire/hermes-mcp.example.json +20 -0
  217. package/vendor/@0xray/repertoire/mcp-config.example.json +11 -0
  218. package/vendor/@0xray/repertoire/package.json +124 -0
  219. package/vendor/@0xray/repertoire/schemas/curated-signal.schema.json +68 -0
  220. package/vendor/@0xray/repertoire/schemas/inference-log.schema.json +82 -0
  221. package/vendor/@0xray/repertoire/scripts/confirm-suit-all.mjs +253 -0
  222. package/vendor/@0xray/repertoire/scripts/confirm-suit-harness.mjs +220 -0
  223. package/vendor/@0xray/repertoire/scripts/run-live-synthesis-checkpoint.mjs +215 -0
  224. package/vendor/@0xray/repertoire/scripts/suit-bridge-shared.mjs +139 -0
  225. package/vendor/@0xray/repertoire/scripts/verify-grok-suit.mjs +304 -0
  226. package/vendor/@0xray/repertoire/scripts/verify-hermes-suit.mjs +163 -0
  227. package/vendor/@0xray/repertoire/scripts/verify-openclaw-suit.mjs +125 -0
  228. package/vendor/@0xray/repertoire/scripts/verify-opencode-suit.mjs +127 -0
  229. package/vendor/@0xray/repertoire/scripts/verify-synthesis-dogfood.mjs +207 -0
  230. package/vendor/@0xray/repertoire/skills/repertoire-trap-handling/SKILL.md +206 -0
  231. package/xray/codex.json +12 -3
  232. package/xray/features.json +28 -6
  233. package/xray/features.schema.json +31 -0
@@ -0,0 +1,54 @@
1
+ # Implementing a Custom MemoryRoutingProvider
2
+
3
+ 0xRay loads memory routing providers dynamically. Repertoire is the reference implementation.
4
+
5
+ ## Contract
6
+
7
+ Export from your package:
8
+
9
+ ```typescript
10
+ export function createMemoryRoutingProvider(
11
+ config?: Record<string, unknown>
12
+ ): MemoryRoutingProvider
13
+ ```
14
+
15
+ Interface (mirror of `xray/src/memory-routing/types.ts`):
16
+
17
+ | Method | Purpose |
18
+ |--------|---------|
19
+ | `isAvailable()` | Whether provider data is reachable |
20
+ | `buildRoutingContext(operation)` | Match signals/tags for an operation |
21
+ | `enhanceAgentCapabilities(map)` | Add memory dimensions to agents |
22
+ | `enrichTasks(tasks)` | Attach metadata before planning |
23
+ | `buildInheritedContext(tasks)` | Context for AsideContext |
24
+ | `selectAgent(...)` | Signal-aware agent selection |
25
+ | `resolveThinDispatch(...)` | Adjust score + agent override |
26
+ | `ingestFeedback?(entry)` | Close feedback loop |
27
+
28
+ ## 0xRay Configuration
29
+
30
+ In `xray/features.json` or `.xray/features.json`:
31
+
32
+ ```json
33
+ "memory_routing": {
34
+ "enabled": true,
35
+ "provider": "custom",
36
+ "module_path": "../your-provider/dist/memory-routing-provider.js",
37
+ "config": {}
38
+ }
39
+ ```
40
+
41
+ Set `provider: "null"` to disable without removing config.
42
+
43
+ ## Repertoire as Provider
44
+
45
+ ```json
46
+ "memory_routing": {
47
+ "enabled": true,
48
+ "provider": "repertoire",
49
+ "module_path": "../repertoire/dist/provider/memory-routing-provider.js",
50
+ "config": {
51
+ "signalsPath": "../repertoire/data/curated_signals.json"
52
+ }
53
+ }
54
+ ```
@@ -0,0 +1,20 @@
1
+ {
2
+ "mcpServers": {
3
+ "repertoire": {
4
+ "command": "npx",
5
+ "args": ["-y", "@0xray/repertoire", "mcp"]
6
+ },
7
+ "xray-researcher": {
8
+ "command": "npx",
9
+ "args": ["-y", "0xray", "mcp", "researcher"]
10
+ },
11
+ "xray-architect-tools": {
12
+ "command": "npx",
13
+ "args": ["-y", "0xray", "mcp", "architect-tools"]
14
+ },
15
+ "xray-governance": {
16
+ "command": "npx",
17
+ "args": ["-y", "0xray", "mcp", "governance"]
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "mcpServers": {
3
+ "repertoire": {
4
+ "command": "node",
5
+ "args": ["/absolute/path/to/repertoire/dist/mcp/server.js"],
6
+ "env": {
7
+ "CURATED_SIGNALS_PATH": "/absolute/path/to/repertoire/data/curated_signals.json"
8
+ }
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,124 @@
1
+ {
2
+ "name": "@0xray/repertoire",
3
+ "version": "0.2.0",
4
+ "description": "Factory memory organ for 0xRay — seed primitives, memory routing, extra MCP",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "readme": "README.md",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/0xRayAI/repertoire.git"
11
+ },
12
+ "homepage": "https://github.com/0xRayAI/repertoire#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/0xRayAI/repertoire/issues"
15
+ },
16
+ "keywords": [
17
+ "0xray",
18
+ "repertoire",
19
+ "mcp",
20
+ "memory-routing",
21
+ "orchestration",
22
+ "groover",
23
+ "agent",
24
+ "governance"
25
+ ],
26
+ "engines": {
27
+ "node": ">=18"
28
+ },
29
+ "publishConfig": {
30
+ "access": "public"
31
+ },
32
+ "main": "dist/index.js",
33
+ "types": "dist/index.d.ts",
34
+ "exports": {
35
+ ".": {
36
+ "types": "./dist/index.d.ts",
37
+ "import": "./dist/index.js"
38
+ },
39
+ "./package.json": "./package.json",
40
+ "./provider/memory-routing-provider": {
41
+ "types": "./dist/provider/memory-routing-provider.d.ts",
42
+ "import": "./dist/provider/memory-routing-provider.js"
43
+ }
44
+ },
45
+ "bin": {
46
+ "repertoire-mcp": "./dist/mcp/server.js",
47
+ "repertoire-verify-suit": "./scripts/verify-grok-suit.mjs"
48
+ },
49
+ "files": [
50
+ "dist/",
51
+ "scripts/verify-grok-suit.mjs",
52
+ "scripts/verify-synthesis-dogfood.mjs",
53
+ "scripts/run-live-synthesis-checkpoint.mjs",
54
+ "scripts/suit-bridge-shared.mjs",
55
+ "scripts/confirm-suit-harness.mjs",
56
+ "scripts/confirm-suit-all.mjs",
57
+ "scripts/verify-hermes-suit.mjs",
58
+ "scripts/verify-opencode-suit.mjs",
59
+ "scripts/verify-openclaw-suit.mjs",
60
+ "data/curated_signals.json",
61
+ "schemas/",
62
+ "skills/repertoire-trap-handling/",
63
+ "docs/MEMORY-ROUTING-PROVIDER.md",
64
+ "hermes-mcp.example.json",
65
+ "mcp-config.example.json",
66
+ "AGENTS.md",
67
+ "README.md",
68
+ "LICENSE"
69
+ ],
70
+ "scripts": {
71
+ "build": "tsc",
72
+ "prepublishOnly": "npm run build && npm test && node scripts/consumer-install-smoke.mjs",
73
+ "pack:check": "npm run build && node scripts/consumer-install-smoke.mjs && npm pack --dry-run",
74
+ "ingest": "node --import tsx scripts/ingest.ts",
75
+ "health:repertoire": "node --import tsx scripts/repertoire-health.ts",
76
+ "signals:hygiene": "node --import tsx scripts/signals-hygiene.ts",
77
+ "enrich": "node --import tsx scripts/enrich-repertoire.ts",
78
+ "ingest:moltbook-agents": "node --import tsx scripts/ingest-moltbook-agents.ts",
79
+ "meta-inference": "node --import tsx scripts/run-meta-inference.ts",
80
+ "pipeline": "node --import tsx scripts/run-pipeline.ts",
81
+ "feedback-cycle": "node --import tsx scripts/run-feedback-cycle.ts",
82
+ "query": "node --import tsx scripts/query-signals.ts",
83
+ "mcp": "node dist/mcp/server.js",
84
+ "test": "vitest run",
85
+ "test:e2e": "vitest run scripts/e2e-confidence-loop.test.ts",
86
+ "test:mcp": "npm run build && vitest run scripts/test-mcp-stdio.test.ts",
87
+ "test:trap-routing": "npm run build && vitest run --config vitest.trap-routing.config.ts",
88
+ "verify:suit": "npm run build && node scripts/verify-grok-suit.mjs",
89
+ "verify:synthesis-dogfood": "npm run build && node scripts/verify-synthesis-dogfood.mjs",
90
+ "synthesis:live": "node scripts/run-live-synthesis-checkpoint.mjs",
91
+ "verify:grok-delegation-gate": "node node_modules/0xray/scripts/mjs/verify-grok-delegation-gate.mjs",
92
+ "confirm:suit": "npm run verify:suit && npm run verify:synthesis-dogfood && node scripts/confirm-suit-harness.mjs && npm run test:trap-routing",
93
+ "verify:suit:all": "npm run build && node scripts/confirm-suit-all.mjs",
94
+ "confirm:suit:all": "npm run build && node scripts/confirm-suit-all.mjs --install --grok-harness && npm run test:trap-routing",
95
+ "confirm:suit:full": "npm run build && node scripts/confirm-suit-all.mjs --install --grok-harness --pipeline-audit && npm run test:trap-routing",
96
+ "verify:pipeline-facets": "npm run build --prefix node_modules/0xray 2>/dev/null || npm run build && node node_modules/0xray/scripts/mjs/verify-pipeline-facets.mjs",
97
+ "install:bridges": "npx 0xray grok install --force && npx 0xray hermes install --force && npx 0xray opencode install --force && npx 0xray openclaw install --force",
98
+ "verify:hermes": "node scripts/verify-hermes-suit.mjs",
99
+ "verify:opencode": "node scripts/verify-opencode-suit.mjs",
100
+ "verify:openclaw": "node scripts/verify-openclaw-suit.mjs",
101
+ "confirm:hermes": "npm run build && npx 0xray hermes install --force && npm run verify:hermes",
102
+ "confirm:opencode": "npm run build && npx 0xray opencode install --force && npm run verify:opencode",
103
+ "confirm:openclaw": "npm run build && npx 0xray openclaw install --force && npm run verify:openclaw",
104
+ "test:watch": "vitest"
105
+ },
106
+ "dependencies": {
107
+ "@modelcontextprotocol/sdk": "^1.12.0"
108
+ },
109
+ "peerDependencies": {
110
+ "0xray": ">=3.5.5"
111
+ },
112
+ "peerDependenciesMeta": {
113
+ "0xray": {
114
+ "optional": true
115
+ }
116
+ },
117
+ "devDependencies": {
118
+ "0xray": "file:../xray",
119
+ "@types/node": "^22.15.0",
120
+ "tsx": "^4.19.0",
121
+ "typescript": "^5.6.0",
122
+ "vitest": "^4.1.8"
123
+ }
124
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://repertoire.0xray.ai/schemas/curated-signal.schema.json",
4
+ "title": "CuratedSignal",
5
+ "type": "object",
6
+ "required": [
7
+ "name",
8
+ "definition",
9
+ "tags",
10
+ "priority",
11
+ "evaluation_criteria",
12
+ "validation_experiment",
13
+ "master_index_integration",
14
+ "implementation_notes"
15
+ ],
16
+ "properties": {
17
+ "name": {
18
+ "type": "string",
19
+ "pattern": "^[a-z0-9][a-z0-9_-]*$",
20
+ "description": "Kebab-case primitive identifier"
21
+ },
22
+ "definition": {
23
+ "type": "string",
24
+ "minLength": 10
25
+ },
26
+ "example_inference_snippet": {
27
+ "type": "string"
28
+ },
29
+ "tags": {
30
+ "type": "array",
31
+ "items": { "type": "string" },
32
+ "minItems": 1
33
+ },
34
+ "batches": {
35
+ "type": "array",
36
+ "items": { "type": "integer", "minimum": 1 }
37
+ },
38
+ "first_seen": {
39
+ "type": "string",
40
+ "format": "date"
41
+ },
42
+ "status": {
43
+ "type": "string",
44
+ "enum": ["proposed", "validated", "integrated", "deprecated"]
45
+ },
46
+ "priority": {
47
+ "type": "string",
48
+ "enum": ["high", "medium", "low"]
49
+ },
50
+ "evaluation_criteria": {
51
+ "type": "string",
52
+ "minLength": 10
53
+ },
54
+ "validation_experiment": {
55
+ "type": "string",
56
+ "minLength": 10
57
+ },
58
+ "master_index_integration": {
59
+ "type": "string",
60
+ "minLength": 10
61
+ },
62
+ "implementation_notes": {
63
+ "type": "string",
64
+ "minLength": 10
65
+ }
66
+ },
67
+ "additionalProperties": false
68
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://repertoire.0xray.ai/schemas/inference-log.schema.json",
4
+ "title": "InferenceLogEntry",
5
+ "type": "object",
6
+ "required": ["timestamp", "source", "inference"],
7
+ "properties": {
8
+ "timestamp": {
9
+ "type": "string",
10
+ "format": "date-time"
11
+ },
12
+ "source": {
13
+ "type": "string",
14
+ "enum": ["groover", "xray", "dynamo", "orchestrator"]
15
+ },
16
+ "post_id": { "type": "string" },
17
+ "post_title": { "type": "string" },
18
+ "comment_id": { "type": "string" },
19
+ "session_id": { "type": "string" },
20
+ "inference": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ },
24
+ "public_reply": { "type": "string" },
25
+ "inference_type": {
26
+ "type": "string",
27
+ "enum": [
28
+ "theoretical",
29
+ "temporal-drift",
30
+ "practical-workflow",
31
+ "ontological-trap",
32
+ "provenance-failure"
33
+ ]
34
+ },
35
+ "matched_primitives": {
36
+ "type": "array",
37
+ "items": { "type": "string" }
38
+ },
39
+ "match_confidence": {
40
+ "type": "object",
41
+ "additionalProperties": {
42
+ "type": "number",
43
+ "minimum": 0,
44
+ "maximum": 1
45
+ }
46
+ },
47
+ "governance_forced": {
48
+ "type": "boolean"
49
+ },
50
+ "dynamo_result": {
51
+ "type": "object",
52
+ "properties": {
53
+ "result": {
54
+ "oneOf": [
55
+ { "type": "null" },
56
+ {
57
+ "type": "object",
58
+ "properties": {
59
+ "recommendation": {
60
+ "type": "string",
61
+ "enum": ["PASS", "NEEDS_REVISION", "REJECT"]
62
+ },
63
+ "resonanceScore": { "type": "number", "minimum": 0, "maximum": 1 }
64
+ }
65
+ }
66
+ ]
67
+ },
68
+ "matchedPrimitives": {
69
+ "type": "array",
70
+ "items": { "type": "string" }
71
+ },
72
+ "error": { "type": "string" },
73
+ "status": { "type": "integer" }
74
+ }
75
+ },
76
+ "repertoire_signals": {
77
+ "type": "array",
78
+ "items": { "type": "string" }
79
+ }
80
+ },
81
+ "additionalProperties": true
82
+ }
@@ -0,0 +1,253 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Unified 0xRay suit wear matrix — all 4 plugin environments.
4
+ *
5
+ * Usage:
6
+ * node scripts/confirm-suit-all.mjs # verify all bridges (no install)
7
+ * node scripts/confirm-suit-all.mjs --install # native 0xray install + verify
8
+ * node scripts/confirm-suit-all.mjs --grok-harness # include Grok Layer 2a/2c harness
9
+ * node scripts/confirm-suit-all.mjs --only=hermes,opencode
10
+ *
11
+ * npm scripts:
12
+ * verify:suit:all — matrix verify only
13
+ * confirm:suit:all — build + install all + verify + Grok harness + trap-routing test
14
+ */
15
+ import { execSync, spawnSync } from 'node:child_process';
16
+ import { existsSync, readFileSync } from 'node:fs';
17
+ import { resolve, join } from 'node:path';
18
+ import { HERMES_PLUGIN_DIR, readInstalledXrayVersion } from './suit-bridge-shared.mjs';
19
+
20
+ const root = resolve(import.meta.dirname, '..');
21
+ const args = process.argv.slice(2);
22
+
23
+ const flags = {
24
+ install: args.includes('--install'),
25
+ grokHarness: args.includes('--grok-harness'),
26
+ verifyOnly: args.includes('--verify-only'),
27
+ pipelineAudit: args.includes('--pipeline-audit'),
28
+ };
29
+ const onlyArg = args.find((a) => a.startsWith('--only='));
30
+ const onlySet = onlyArg
31
+ ? new Set(onlyArg.slice('--only='.length).split(',').map((s) => s.trim().toLowerCase()))
32
+ : null;
33
+
34
+ /** Hermes last — consumer root marker must win over any stale npx-cache path. */
35
+ const BRIDGES = [
36
+ {
37
+ id: 'grok',
38
+ label: 'Grok Build',
39
+ cli: null,
40
+ installCmd: 'npx 0xray grok install --force',
41
+ verifyScript: 'verify-grok-suit.mjs',
42
+ harnessScript: 'confirm-suit-harness.mjs',
43
+ },
44
+ {
45
+ id: 'opencode',
46
+ label: 'OpenCode',
47
+ cli: 'opencode',
48
+ installCmd: 'npx 0xray opencode install --force',
49
+ verifyScript: 'verify-opencode-suit.mjs',
50
+ },
51
+ {
52
+ id: 'openclaw',
53
+ label: 'OpenClaw',
54
+ cli: 'openclaw',
55
+ installCmd: 'npx 0xray openclaw install --force',
56
+ verifyScript: 'verify-openclaw-suit.mjs',
57
+ },
58
+ {
59
+ id: 'hermes',
60
+ label: 'Hermes',
61
+ cli: 'hermes',
62
+ installCmd: 'npx 0xray hermes install --force',
63
+ verifyScript: 'verify-hermes-suit.mjs',
64
+ },
65
+ ];
66
+
67
+ function ensureHermesConsumerRoot() {
68
+ const markerPath = join(HERMES_PLUGIN_DIR, 'xray-consumer-root.txt');
69
+ if (!existsSync(markerPath)) return;
70
+ const marked = readFileSync(markerPath, 'utf8').trim();
71
+ if (marked === root) return;
72
+ if (!cliAvailable('hermes')) return;
73
+ console.log(`⚠ Hermes consumer root drift (${marked}) — re-running hermes install\n`);
74
+ runInstall('npx 0xray hermes install --force');
75
+ }
76
+
77
+ function bridgeEnabled(bridge) {
78
+ return !onlySet || onlySet.has(bridge.id);
79
+ }
80
+
81
+ function cliAvailable(cmd) {
82
+ if (!cmd) return true;
83
+ try {
84
+ execSync(`which ${cmd}`, { encoding: 'utf8', stdio: 'pipe' });
85
+ return true;
86
+ } catch {
87
+ return false;
88
+ }
89
+ }
90
+
91
+ function runScript(scriptName, { inheritOutput = true } = {}) {
92
+ const scriptPath = join(root, 'scripts', scriptName);
93
+ if (!existsSync(scriptPath)) {
94
+ return { ok: false, status: 'error', detail: `${scriptName} missing` };
95
+ }
96
+ const result = spawnSync('node', [scriptPath], {
97
+ cwd: root,
98
+ encoding: 'utf8',
99
+ stdio: inheritOutput ? 'inherit' : ['inherit', 'pipe', 'pipe'],
100
+ });
101
+ const combined = `${result.stdout ?? ''}${result.stderr ?? ''}`;
102
+ const failCount = (combined.match(/❌/g) ?? []).length;
103
+ return {
104
+ ok: result.status === 0,
105
+ status: result.status === 0 ? 'green' : 'red',
106
+ detail: result.status === 0 ? 'wearable' : `${failCount || 1} check(s) failed`,
107
+ exitCode: result.status ?? 1,
108
+ };
109
+ }
110
+
111
+ function runInstall(cmd) {
112
+ try {
113
+ execSync(cmd, { cwd: root, stdio: 'inherit' });
114
+ return { ok: true };
115
+ } catch (e) {
116
+ return { ok: false, detail: e.message?.slice(0, 120) ?? 'install failed' };
117
+ }
118
+ }
119
+
120
+ console.log('═══ 0xRay Suit Wear Matrix (4 plugin environments) ═══\n');
121
+ console.log(`0xray@${readInstalledXrayVersion()} · consumer ${root}\n`);
122
+
123
+ if (flags.install) {
124
+ console.log('Phase 0 — Native bridge install (--install)\n');
125
+ for (const bridge of BRIDGES) {
126
+ if (!bridgeEnabled(bridge)) continue;
127
+ if (bridge.cli && !cliAvailable(bridge.cli)) {
128
+ console.log(`⏭ ${bridge.label} install skipped — ${bridge.cli} not on PATH`);
129
+ continue;
130
+ }
131
+ console.log(`→ ${bridge.installCmd}`);
132
+ const install = runInstall(bridge.installCmd);
133
+ if (!install.ok) {
134
+ console.error(`❌ ${bridge.label} install failed — ${install.detail}`);
135
+ }
136
+ }
137
+ ensureHermesConsumerRoot();
138
+ console.log('');
139
+ }
140
+
141
+ const matrix = [];
142
+
143
+ console.log('Phase 1 — Per-bridge verification\n');
144
+ for (const bridge of BRIDGES) {
145
+ if (!bridgeEnabled(bridge)) continue;
146
+
147
+ if (bridge.cli && !cliAvailable(bridge.cli)) {
148
+ matrix.push({
149
+ id: bridge.id,
150
+ label: bridge.label,
151
+ status: 'skip',
152
+ detail: `${bridge.cli} not on PATH`,
153
+ });
154
+ console.log(`⏭ ${bridge.label} — skipped (${bridge.cli} not installed)\n`);
155
+ continue;
156
+ }
157
+
158
+ console.log(`── ${bridge.label} (${bridge.verifyScript}) ──\n`);
159
+ const verify = runScript(bridge.verifyScript);
160
+ matrix.push({
161
+ id: bridge.id,
162
+ label: bridge.label,
163
+ status: verify.status,
164
+ detail: verify.detail,
165
+ });
166
+ console.log('');
167
+ }
168
+
169
+ let grokHarnessOk = null;
170
+ if (flags.grokHarness && bridgeEnabled(BRIDGES[0])) {
171
+ console.log('Phase 2 — Grok harness (Layer 2a + 2c stdio probes)\n');
172
+ const harnessResult = spawnSync(
173
+ 'node',
174
+ [join(root, 'scripts', 'confirm-suit-harness.mjs'), '--skip-layer1'],
175
+ { cwd: root, encoding: 'utf8', stdio: 'inherit' },
176
+ );
177
+ const harness = {
178
+ ok: harnessResult.status === 0,
179
+ detail: harnessResult.status === 0 ? 'automated probes pass' : 'harness probe(s) failed',
180
+ };
181
+ grokHarnessOk = harness.ok;
182
+ if (!harness.ok) {
183
+ matrix.push({
184
+ id: 'grok-harness',
185
+ label: 'Grok harness (2a/2c)',
186
+ status: 'red',
187
+ detail: harness.detail,
188
+ });
189
+ } else {
190
+ matrix.push({
191
+ id: 'grok-harness',
192
+ label: 'Grok harness (2a/2c)',
193
+ status: 'green',
194
+ detail: 'automated probes pass',
195
+ });
196
+ }
197
+ console.log('');
198
+ }
199
+
200
+ // ── Wear matrix verdict ─────────────────────────────────────────────────────
201
+ console.log('Suit wear matrix\n');
202
+ const statusIcon = { green: '✅', red: '❌', skip: '⏭ ' };
203
+ for (const row of matrix) {
204
+ const icon = statusIcon[row.status] ?? '?';
205
+ console.log(` ${icon} ${row.label.padEnd(22)} ${row.detail}`);
206
+ }
207
+
208
+ const verified = matrix.filter((r) => r.status !== 'skip');
209
+ const allGreen = verified.length > 0 && verified.every((r) => r.status === 'green');
210
+ const anyRed = verified.some((r) => r.status === 'red');
211
+ const skipped = matrix.filter((r) => r.status === 'skip').length;
212
+
213
+ console.log(`
214
+ Summary
215
+ Green: ${verified.filter((r) => r.status === 'green').length}/${verified.length}
216
+ Skipped: ${skipped} (CLI not on PATH)
217
+ 0xray: ${readInstalledXrayVersion()}
218
+
219
+ Verdict
220
+ FULL = all enabled bridges green${flags.grokHarness ? ' + Grok harness green' : ''}
221
+ PARTIAL = Grok green + ≥1 other bridge red/skipped
222
+ BROKEN = Grok red OR core MCP surface unreachable
223
+
224
+ Grok Layer 2b (harness CallMcpTool) is agent-verified after reboot — see confirm-suit-harness.mjs.
225
+ `);
226
+
227
+ if (anyRed) {
228
+ console.error('❌ Suit wear matrix FAILED — fix red bridges before operating.');
229
+ process.exit(1);
230
+ }
231
+
232
+ if (flags.grokHarness && grokHarnessOk === false) {
233
+ console.error('❌ Grok harness FAILED — memory routing / stdio probes not ready.');
234
+ process.exit(1);
235
+ }
236
+
237
+ if (flags.pipelineAudit) {
238
+ console.log('Phase 3 — Pipeline facet verify\n');
239
+ const pipelineScript = join(root, 'node_modules', '0xray', 'scripts', 'mjs', 'verify-pipeline-facets.mjs');
240
+ const pipelineResult = spawnSync('node', [pipelineScript], {
241
+ cwd: root,
242
+ encoding: 'utf8',
243
+ stdio: 'inherit',
244
+ });
245
+ if (pipelineResult.status !== 0) {
246
+ console.error('❌ Pipeline facet verify FAILED');
247
+ process.exit(1);
248
+ }
249
+ console.log('');
250
+ }
251
+
252
+ console.log('✅ Suit wear matrix PASS — all verified bridges wearable.');
253
+ process.exit(0);