0xray 4.0.30 → 4.0.31

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 (39) hide show
  1. package/.grok-plugin/plugin.json +1 -1
  2. package/.opencode/skills/orchestrator/SKILL.md +12 -0
  3. package/.xray/features.json +1 -1
  4. package/dist/CHANGELOG.md +9 -0
  5. package/dist/cli/commands/validate.js +5 -0
  6. package/dist/cli/index.js +16 -1
  7. package/dist/integrations/grok/hooks/grok-hook-utils.js +24 -4
  8. package/dist/integrations/grok/hooks/post-tool-use.js +2 -1
  9. package/dist/integrations/grok/hooks/pre-tool-use.js +90 -5
  10. package/dist/integrations/grok/hooks/session-start.js +7 -2
  11. package/dist/integrations/hooks/goggles-pipeline.mjs +568 -0
  12. package/dist/integrations/hooks/goggles-planes.json +28 -0
  13. package/dist/integrations/hooks/plates.cjs +23 -0
  14. package/dist/integrations/hooks/station-hook-runtime.cjs +40 -11
  15. package/dist/integrations/hooks/station-memory-ingest.mjs +3 -0
  16. package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
  17. package/dist/mcps/orchestrator/config/agent-capabilities.js +7 -0
  18. package/dist/memory-routing/plates.d.ts +1 -1
  19. package/dist/memory-routing/plates.js +5 -0
  20. package/dist/memory-routing/provider-loader.js +2 -0
  21. package/dist/nucleus/thin-dispatch.d.ts +1 -0
  22. package/dist/nucleus/thin-dispatch.js +4 -2
  23. package/dist/skills/orchestrator/SKILL.md +12 -0
  24. package/docs-site/docs/plates/glossary.md +27 -0
  25. package/docs-site/docs/plates/goggles.md +18 -0
  26. package/docs-site/docs/plates/grokbot.md +41 -0
  27. package/docs-site/docs/plates/host-pack.md +32 -0
  28. package/docs-site/docs/plates/house.md +42 -39
  29. package/docs-site/docs/plates/index.md +13 -1
  30. package/docs-site/docs/plates/kits.md +28 -0
  31. package/docs-site/docs/plates/suit.md +40 -0
  32. package/package.json +1 -1
  33. package/scripts/foundry/assert-packed-dist-cli.mjs +5 -0
  34. package/scripts/node/consumer-install-smoke.mjs +5 -0
  35. package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
  36. package/src/mcps/orchestrator/config/agent-capabilities.ts +8 -0
  37. package/src/skills/orchestrator/SKILL.md +12 -0
  38. package/vendor/@0xray/repertoire/dist/paths.js +4 -0
  39. package/xray/features.json +1 -1
@@ -14,6 +14,7 @@ import {
14
14
  fromMemoryCapabilityMap,
15
15
  } from './memory-routing-bridge.js';
16
16
  import { routeSubagent } from '../../../nucleus/autonomy-kernel.js';
17
+ import { scoreAndRoute } from '../../../nucleus/thin-dispatch.js';
17
18
 
18
19
  /** routeSubagent names → AGENT_REGISTRY keys */
19
20
  const ROUTE_AGENT_ALIASES: Record<string, string> = {
@@ -102,6 +103,13 @@ export class AgentCapabilitiesManager {
102
103
  operationDescription = '',
103
104
  taskType = '',
104
105
  ): string | null {
106
+ if (operationDescription.trim()) {
107
+ const routed = scoreAndRoute(operationDescription, {});
108
+ if (routed.memoryRouting?.overridden && this.capabilities.has(routed.agent)) {
109
+ return routed.agent;
110
+ }
111
+ }
112
+
105
113
  if (taskType.trim()) {
106
114
  const routed = routeSubagent(taskType);
107
115
  const resolved = resolveRoutedAgent(routed, this.capabilities);
@@ -53,6 +53,18 @@ When `multi_agent_orchestration.lead_dev_mode` is true in `features.json` (defau
53
53
  | Test failures | bug-triage |
54
54
  | Review | code-review |
55
55
 
56
+ ## Goggles
57
+
58
+ Pushed on `feat/goggles-look`. Not merged. Not published. Grok CLI has not shipped this. Wear the local build. From the worn checkout run `node dist/integrations/hooks/goggles-pipeline.mjs`. Do not run `npx 0xray goggles`. If `dist` is older than `src/integrations/hooks/goggles-pipeline.mjs`, build that tree and wear that `dist`. A subagent wears this same local build.
59
+
60
+ Kind 0 is actuality. It compares the list in the file to the same six names in the code. It speaks only when those lists differ. A match is quiet. It does not read the suit that is running. It is not a plate type.
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. Calling stays off.
63
+
64
+ `digest` and `triage` return the card already built by `assemblePlane`. The fields are from, digest, plate, entry, exit, files, skills, setup, teardown, and worn. Empty stays empty. The rows are ground, routing, house, boot, governance, memory-recall, orchestration, processor, and reporting. Those nine are not Kind 0. `digest` fills the card. Entry and exit are the plate's input and output box titles when that plate has them. Setup and teardown stay empty unless the row names them. The mill path is `scripts/foundry`. `triage` adds the empty fields and whether the row holds. Zoom after the card is the same ladder: ecosystem, part, one flow, one artifact. One file is one artifact. Several files are not narrowed to a guessed file.
65
+
66
+ The hold lasts for the work that named the plane. It does not stop one tool and then forget. Work that says goggles clears the hold and stays quiet. The suit does not invent the plane.
67
+
56
68
  ## Hooks (rewired, not new MCPs)
57
69
 
58
70
  - **SessionStart** → `session-start.js` boots lead_dev_mode
@@ -421,6 +421,10 @@ export function reloadOpProc(cwd = process.cwd()) {
421
421
  }
422
422
  function mergeProjectOverlays(destPath) {
423
423
  mergeStackOverlay(destPath);
424
+ // Suit heat keeps repo-* off the project file. A wake that merges them
425
+ // and then prunes them records a fake 59 → 45 drop on every compact.
426
+ if (process.env.REPERTOIRE_SUBJECT_OVERLAY === '0')
427
+ return;
424
428
  mergeSubjectOverlay(destPath);
425
429
  }
426
430
  export function hydrateWritableSignals(seedPath, cwd = process.cwd()) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./features.schema.json",
3
- "version": "4.0.30",
3
+ "version": "4.0.31",
4
4
  "description": "0xRay Framework - Unified Feature Configuration",
5
5
  "suit_temperament": {
6
6
  "profile": "auto",