0xray 4.0.35 → 4.0.37
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/.grok-plugin/plugin.json +1 -1
- package/.xray/features.json +1 -1
- package/dist/CHANGELOG.md +25 -0
- package/dist/analytics/emerging-pattern-detector.d.ts +12 -1
- package/dist/analytics/emerging-pattern-detector.js +37 -12
- package/dist/analytics/pattern-learning-engine.js +1 -9
- package/dist/analytics/predictive-analytics.js +51 -33
- package/dist/analytics/prompt-pattern-analyzer.d.ts +1 -0
- package/dist/analytics/prompt-pattern-analyzer.js +39 -20
- package/dist/analytics/routing-performance-analyzer.d.ts +2 -0
- package/dist/analytics/routing-performance-analyzer.js +89 -37
- package/dist/analytics/simple-pattern-analyzer.d.ts +4 -0
- package/dist/analytics/simple-pattern-analyzer.js +66 -28
- package/dist/architect/architect-tools.d.ts +3 -0
- package/dist/architect/architect-tools.js +22 -0
- package/dist/cli/commands/grok-install.js +1 -1
- package/dist/cli/commands/hermes-install.js +11 -5
- package/dist/cli/commands/openclaw-install.js +13 -7
- package/dist/cli/commands/opencode-install.js +7 -4
- package/dist/cli/commands/suit-monitor.d.ts +30 -0
- package/dist/cli/commands/suit-monitor.js +128 -0
- package/dist/cli/index.js +52 -15
- package/dist/cli/suit-pulse.d.ts +29 -0
- package/dist/cli/suit-pulse.js +270 -0
- package/dist/delegation/agent-delegator.d.ts +4 -2
- package/dist/delegation/agent-delegator.js +46 -27
- package/dist/delegation/agent-expertise.js +2 -1
- package/dist/delegation/analytics/outcome-tracker.d.ts +6 -0
- package/dist/delegation/analytics/outcome-tracker.js +17 -3
- package/dist/delegation/ast-code-parser.d.ts +5 -0
- package/dist/delegation/ast-code-parser.js +53 -48
- package/dist/delegation/codebase-context-analyzer.d.ts +3 -7
- package/dist/delegation/codebase-context-analyzer.js +188 -159
- package/dist/delegation/session-coordinator.js +3 -2
- package/dist/enforcement/loaders/codex-loader.js +18 -14
- package/dist/enforcement/validators/architecture-validators.js +115 -9
- package/dist/governance/codex-policy.service.d.ts +12 -2
- package/dist/governance/codex-policy.service.js +91 -16
- package/dist/integrations/grok/hooks/session-start.js +6 -6
- package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +6 -6
- package/dist/integrations/hooks/goggles-mcp.mjs +10 -3
- package/dist/integrations/hooks/goggles-pipeline.mjs +221 -44
- package/dist/integrations/hooks/goggles-planes.json +172 -8
- package/dist/integrations/hooks/plates.cjs +138 -0
- package/dist/integrations/hooks/station-hook-runtime.cjs +63 -5
- package/dist/integrations/hooks/write-home.cjs +59 -0
- package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
- package/dist/mcps/architect-tools.server.d.ts +6 -0
- package/dist/mcps/architect-tools.server.js +19 -18
- package/dist/mcps/orchestrator/server.d.ts +4 -3
- package/dist/mcps/orchestrator/server.js +29 -17
- package/dist/memory-routing/lookup-cache.d.ts +8 -0
- package/dist/memory-routing/lookup-cache.js +72 -0
- package/dist/memory-routing/plates.d.ts +1 -1
- package/dist/memory-routing/plates.js +26 -0
- package/dist/memory-routing/provider-loader.js +3 -0
- package/dist/metrics/agent-metrics.d.ts +14 -5
- package/dist/metrics/agent-metrics.js +362 -224
- package/dist/nucleus/synthesis-consult-receipt.js +38 -16
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +5 -0
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +9 -0
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js +1 -2
- package/dist/orchestrator/orchestrator.js +1 -2
- package/dist/processors/implementations/agents-md-validation-processor.d.ts +0 -1
- package/dist/processors/implementations/agents-md-validation-processor.js +0 -11
- package/dist/processors/implementations/console-log-guard-processor.js +39 -50
- package/dist/processors/implementations/performance-budget-processor.d.ts +0 -5
- package/dist/processors/implementations/performance-budget-processor.js +29 -38
- package/dist/processors/implementations/storytelling-trigger-processor.d.ts +5 -0
- package/dist/processors/implementations/storytelling-trigger-processor.js +69 -16
- package/dist/processors/implementations/test-auto-creation-processor.js +39 -36
- package/dist/reporting/framework-reporting-system.d.ts +3 -0
- package/dist/reporting/framework-reporting-system.js +61 -8
- package/dist/reporting/log-parser.js +188 -105
- package/dist/reporting/metrics.js +42 -18
- package/dist/security/prompt-security-validator.js +8 -7
- package/dist/security/security-auditor.d.ts +4 -0
- package/dist/security/security-auditor.js +132 -57
- package/dist/security/security-hardener.d.ts +2 -0
- package/dist/security/security-hardener.js +31 -6
- package/dist/security/security-headers.d.ts +2 -0
- package/dist/security/security-headers.js +23 -21
- package/dist/security/security-scanner.js +18 -4
- package/dist/session/session-cleanup-manager.d.ts +2 -0
- package/dist/session/session-cleanup-manager.js +29 -8
- package/dist/session/session-monitor.d.ts +14 -4
- package/dist/session/session-monitor.js +208 -106
- package/dist/session/session-state-manager.d.ts +11 -0
- package/dist/session/session-state-manager.js +90 -8
- package/docs-site/docs/plates/activity-log.md +38 -0
- package/docs-site/docs/plates/cursor-compact.md +35 -0
- package/docs-site/docs/plates/grok-compact.md +35 -0
- package/docs-site/docs/plates/index.md +25 -3
- package/docs-site/docs/plates/inference-files.md +35 -0
- package/docs-site/docs/plates/kept-line.md +35 -0
- package/docs-site/docs/plates/lens-gate.md +35 -0
- package/docs-site/docs/plates/lens-page.md +35 -0
- package/docs-site/docs/plates/notes-page.md +35 -0
- package/docs-site/docs/plates/package-face.md +35 -0
- package/docs-site/docs/plates/payload-heat.md +35 -0
- package/docs-site/docs/plates/pickup-stamp.md +35 -0
- package/docs-site/docs/plates/pre-tool.md +35 -0
- package/docs-site/docs/plates/record-map.md +41 -0
- package/docs-site/docs/plates/reflection-page.md +35 -0
- package/docs-site/docs/plates/review.md +57 -0
- package/docs-site/docs/plates/session-capture.md +38 -0
- package/docs-site/docs/plates/site-manual.md +35 -0
- package/docs-site/docs/plates/stamp-plate.md +35 -0
- package/docs-site/docs/plates/station-card.md +35 -0
- package/docs-site/docs/plates/station-heat.md +35 -0
- package/docs-site/docs/plates/suit-organs.md +38 -0
- package/docs-site/docs/plates/suit-settings.md +35 -0
- package/docs-site/docs/plates/suit-wear.md +37 -0
- package/docs-site/docs/plates/trail-state.md +35 -0
- package/docs-site/docs/plates/work-fresh.md +35 -0
- package/docs-site/docs/plates/write-home.md +38 -0
- package/package.json +4 -2
- package/scripts/mjs/run-grok-hook.mjs +50 -0
- package/scripts/node/install-bridges.cjs +305 -81
- package/scripts/node/postinstall.cjs +14 -3
- package/src/integrations/grok/plugin/0xray/hooks/hooks.json +6 -6
- package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
- package/src/mcps/architect-tools.server.ts +25 -20
- package/src/mcps/orchestrator/server.ts +33 -19
- package/xray/features.json +1 -1
- package/vendor/@0xray/repertoire/dist/RepertoireService.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/RepertoireService.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/governance/ontological-trap-enforcer.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/governance/ontological-trap-enforcer.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/index.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/index.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/groover-log-ingester.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/groover-log-ingester.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/groover-log-parser.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/groover-log-parser.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/orchestrator-feedback-ingester.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/orchestrator-feedback-ingester.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/mcp/server.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/mcp/server.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/RepertoireOrchestratorBridge.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/RepertoireOrchestratorBridge.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/capability-enhancer.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/capability-enhancer.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-agent-affinity.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-agent-affinity.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/paths.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/paths.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/InferenceStateManager.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/InferenceStateManager.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/confidence-decay.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/confidence-decay.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/signal-prune.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/registry/signal-prune.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/concrete-sections.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/concrete-sections.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/meta-inference-engine.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/meta-inference-engine.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/primitive-confidence-aggregator.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/primitive-confidence-aggregator.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/synthesis-prompt-builder.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/synthesis/synthesis-prompt-builder.js.map +0 -1
- package/vendor/@0xray/repertoire/dist/types.d.ts.map +0 -1
- package/vendor/@0xray/repertoire/dist/types.js.map +0 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Pre tool
|
|
3
|
+
sidebar_label: Pre tool
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Pre tool
|
|
7
|
+
|
|
8
|
+
The tool hook is where the lens gate runs.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ the tool name and its arguments │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ join the command, the content, and the paths │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ deny when the lens gate denies │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
pre-tool-use.js joins the command, the written content, and the paths, then calls lensBeforeResearch. A deny ends the hook. The plate that belongs here is lens-gate.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Record map
|
|
3
|
+
sidebar_label: Record map
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Record map
|
|
7
|
+
|
|
8
|
+
Five pages are what an agent writes, the package face is what a release writes, and the trail is what the suit writes under .xray.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌──────────────────┐ │
|
|
14
|
+
│ │ which file │ │
|
|
15
|
+
│ └────────┬─────────┘ │
|
|
16
|
+
└────────────┼───────────────────────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ five pages · package face · trail under .xray │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌──────────────────────────┐ │
|
|
28
|
+
│ │ the one path to open │ │
|
|
29
|
+
│ └──────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Five pages: station card `.xray/state/STATION.md`, notes `.xray/state/NOTES.md`, a plate `docs-site/docs/plates/<id>.md`, the lens page for one plane, a reflection `docs/reflections/`.
|
|
34
|
+
|
|
35
|
+
Package face: `README.md`, `package.json`, `AGENTS.md`, `llms.txt`, `CHANGELOG.md`, `SKILLS.md`, and each `SKILL.md`.
|
|
36
|
+
|
|
37
|
+
Trail: state and logs under `.xray`. Codex is already loaded. This plate is the file ref.
|
|
38
|
+
|
|
39
|
+
The published manual is `docs-site/docs/`. The rule sheet is `grok-bot/OP-PROC.md`. Neither is one of the five pages.
|
|
40
|
+
|
|
41
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Reflection page
|
|
3
|
+
sidebar_label: Reflection page
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Reflection page
|
|
7
|
+
|
|
8
|
+
A reflection is one episode written under docs/reflections.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ a session ends │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ write what the session learned │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ one reflection file │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The loader is `loadReflectionInferences` in `src/inference/inference-accumulator.ts`. A reflection is not a repertoire law.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Review
|
|
3
|
+
sidebar_label: Review
|
|
4
|
+
plate_type: state flow
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Review
|
|
8
|
+
|
|
9
|
+
A state flow plate: one critic pass, one fix, one re-review, then stop.
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
┌──────────────────────────────┐
|
|
13
|
+
│ DIFF │
|
|
14
|
+
├──────────────────────────────┤
|
|
15
|
+
│ · one head on a branch │
|
|
16
|
+
│ · the test claims the change │
|
|
17
|
+
└──────────────────────────────┘
|
|
18
|
+
│
|
|
19
|
+
v
|
|
20
|
+
┌──────────────────────────────┐
|
|
21
|
+
│ CRITIC │
|
|
22
|
+
├──────────────────────────────┤
|
|
23
|
+
│ · one pass on that head │
|
|
24
|
+
│ · FAIL names the file and a │
|
|
25
|
+
│ test that fails on the old │
|
|
26
|
+
│ code │
|
|
27
|
+
│ · a note is not a FAIL │
|
|
28
|
+
└──────────────┬───────────────┘
|
|
29
|
+
│
|
|
30
|
+
┌─────────┴──────────┐
|
|
31
|
+
│ PASS │ FAIL
|
|
32
|
+
v v
|
|
33
|
+
┌─────────┐ ┌──────────────────────────┐
|
|
34
|
+
│ STOP │ │ ONE FIX │
|
|
35
|
+
├─────────┤ ├──────────────────────────┤
|
|
36
|
+
│ · notes │ │ · that hole, one author │
|
|
37
|
+
│ stay │ │ · a second session waits │
|
|
38
|
+
└─────────┘ └────────────┬─────────────┘
|
|
39
|
+
│
|
|
40
|
+
v
|
|
41
|
+
┌──────────────────────────┐
|
|
42
|
+
│ RE-REVIEW │
|
|
43
|
+
├──────────────────────────┤
|
|
44
|
+
│ · one pass on the new │
|
|
45
|
+
│ head │
|
|
46
|
+
│ · a missed hole returns │
|
|
47
|
+
│ to ONE FIX │
|
|
48
|
+
└────────────┬─────────────┘
|
|
49
|
+
│
|
|
50
|
+
PASS │
|
|
51
|
+
v
|
|
52
|
+
STOP
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
A FAIL names the file and a test that fails on the old code. One author fixes that hole. A second session waits while the verdict is open. Re-review that new head. A hole the new test did not lock returns to ONE FIX. A PASS ends the plate. A note stays a note and does not open another lap.
|
|
56
|
+
|
|
57
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Session capture
|
|
3
|
+
sidebar_label: Session capture
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Session capture
|
|
7
|
+
|
|
8
|
+
Station writes latest-session.json when HEAD moves, and saveSessionInference writes the same kind of file for a graded session.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────┐ ┌──────────────────────────┐ │
|
|
14
|
+
│ │ station HEAD move │ │ saveSessionInference │ │
|
|
15
|
+
│ └─────────┬──────────┘ └────────────┬─────────────┘ │
|
|
16
|
+
│ └──────────────┬─────────────┘ │
|
|
17
|
+
└────────────────────────────┼──────────────────────────────┘
|
|
18
|
+
v
|
|
19
|
+
┌────────────────────────────┼──────────────────────────────┐
|
|
20
|
+
│ PROCESSING LAYER v │
|
|
21
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
22
|
+
│ │ one JSON · span · problems · approaches │ │
|
|
23
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
24
|
+
└──────────────────────────────┼────────────────────────────┘
|
|
25
|
+
v
|
|
26
|
+
┌──────────────────────────────┼────────────────────────────┐
|
|
27
|
+
│ OUTPUT LAYER v │
|
|
28
|
+
│ ┌──────────────────────────────────────────────────┐ │
|
|
29
|
+
│ │ .xray/inference/latest-session.json │ │
|
|
30
|
+
│ └──────────────────────────────────────────────────┘ │
|
|
31
|
+
└────────────────────────────────────────────────────────────┘
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Today that file is `docs/inference/latest-session.json`. The home is `.xray/inference/latest-session.json`. Cycle state is already `.xray/inference/inference-cycle-state.json`.
|
|
35
|
+
|
|
36
|
+
Station reads the file for heat. The inference accumulator reads `session-*.json` beside it. Do not mint a `session-<date>-<sha>` file for the station note.
|
|
37
|
+
|
|
38
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Site manual
|
|
3
|
+
sidebar_label: Site manual
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Site manual
|
|
7
|
+
|
|
8
|
+
The published manual is docs-site/docs.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ the product changed │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ edit the guide that says the old thing │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ the manual matches the product │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Guides, architecture, and introduction live here. Factory notes under `docs/` are a different set. Reflections stay in `docs/reflections/`.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Stamp plate
|
|
3
|
+
sidebar_label: Stamp plate
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Stamp plate
|
|
7
|
+
|
|
8
|
+
A stamped plate is one drawing for one plane.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ one plane that was opened │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ write the drawing and list one skill │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ the plate the lens can open │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The file is `docs-site/docs/plates/<id>.md`. Each opened segue gets its own plate. The hook does not author this file. The plate that belongs here is review.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Station card
|
|
3
|
+
sidebar_label: Station card
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Station card
|
|
7
|
+
|
|
8
|
+
The station card is the one-line ticket at .xray/state/STATION.md.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ the card on disk │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ keep the intent · put the body in notes │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ the same job continues │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Read it after a compact. Leave Intent alone. The plan is the next cut. The long body belongs in notes.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Station heat
|
|
3
|
+
sidebar_label: Station heat
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Station heat
|
|
7
|
+
|
|
8
|
+
On a compact event applyStationHeat stamps the notes pickup line.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ the compact hook │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ stamp the pickup line │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ the pickup matches intent │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`isCompactHook` is true when the hook name contains compact. The body of NOTES.md is left alone. The plates that belong here are pickup-stamp and notes-page.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Suit organs
|
|
3
|
+
sidebar_label: Suit organs
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Suit organs
|
|
7
|
+
|
|
8
|
+
Reporting, station, and the inference cycle are the organs that read or write the activity log and the session file.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌──────────────────┐ ┌────────────────────────────┐ │
|
|
14
|
+
│ │ activity log │ │ latest-session.json │ │
|
|
15
|
+
│ └────────┬─────────┘ └─────────────┬──────────────┘ │
|
|
16
|
+
│ └──────────────┬─────────────┘ │
|
|
17
|
+
└───────────────────────────┼───────────────────────────────┘
|
|
18
|
+
v
|
|
19
|
+
┌───────────────────────────┼───────────────────────────────┐
|
|
20
|
+
│ PROCESSING LAYER v │
|
|
21
|
+
│ ┌────────────┐ ┌────────────┐ ┌──────────────────────┐ │
|
|
22
|
+
│ │ reporting │ │ station │ │ inference cycle │ │
|
|
23
|
+
│ └─────┬──────┘ └─────┬──────┘ └──────────┬───────────┘ │
|
|
24
|
+
└─────────┴──────────────┴───────────────────┴─────────────┘
|
|
25
|
+
v
|
|
26
|
+
┌────────────────────────────────────────────────────────────┐
|
|
27
|
+
│ OUTPUT LAYER │
|
|
28
|
+
│ ┌────────────┐ ┌────────────┐ ┌──────────────────────┐ │
|
|
29
|
+
│ │ report │ │ heat line │ │ cycle state │ │
|
|
30
|
+
│ └────────────┘ └────────────┘ └──────────────────────┘ │
|
|
31
|
+
└────────────────────────────────────────────────────────────┘
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Reporting reads the activity log and may write a report. Station reads `latest-session.json` and writes the next one. The inference cycle writes `.xray/inference/inference-cycle-state.json` and the history beside it.
|
|
35
|
+
|
|
36
|
+
Repertoire already keeps `inference-state.json` and the day log under `.xray/state/repertoire/`. Goggles does not write these files. It reads a plate when one plane is named.
|
|
37
|
+
|
|
38
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Suit settings
|
|
3
|
+
sidebar_label: Suit settings
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Suit settings
|
|
7
|
+
|
|
8
|
+
Suit settings are features, config, and codex.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ the suit is worn │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ wear writes the consumer copies │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ the agent reads settings │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
There is no settings.json. The files are `.xray/features.json`, `.xray/config.json`, and `.xray/codex.json`. The package copies live under `xray/`.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Suit wear
|
|
3
|
+
sidebar_label: Suit wear
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Suit wear
|
|
7
|
+
|
|
8
|
+
Wear copies hooks, features.json, and the consumer gitignore into the project, and those copies still name the old log folder.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌──────────────────────┐ │
|
|
14
|
+
│ │ wear / postinstall │ │
|
|
15
|
+
│ └──────────┬───────────┘ │
|
|
16
|
+
└──────────────┼─────────────────────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌──────────────┼─────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ hooks · features.json · consumer gitignore │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌──────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ consumer .xray/logs and .xray/inference │ │
|
|
29
|
+
│ └──────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`xray/features.json` sets `activity_logging.log_path` to `.opencode/logs`. `scripts/node/consumer-gitignore.cjs` ignores `logs/framework/`. The installed hooks append that old path.
|
|
34
|
+
|
|
35
|
+
A worn project is a consumer. Its writes go to its own `.xray/logs` and `.xray/inference`, not into `docs/` and not into `.opencode/logs`.
|
|
36
|
+
|
|
37
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Trail state
|
|
3
|
+
sidebar_label: Trail state
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Trail state
|
|
7
|
+
|
|
8
|
+
The suit writes its trail under .xray.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ a wake starts │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ the suit writes state │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ state under .xray │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Session boot, the lens match line, and the station card are state. The agent reads them. Do not commit `.xray/state`.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Work fresh
|
|
3
|
+
sidebar_label: Work fresh
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Work fresh
|
|
7
|
+
|
|
8
|
+
Refresh writes one Fresh line from git and the published package.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ the repo and the published version │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ describe one Fresh line │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ one line on the station card │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
refreshFreshness in src/nucleus/work-freshness.mjs fetches origin, reads npm view 0xray version, and returns that one line. A compact hook does not call it. The plate that belongs here is station-card.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.0.36
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Write home
|
|
3
|
+
sidebar_label: Write home
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Write home
|
|
7
|
+
|
|
8
|
+
Every runtime write belongs under .xray, and the consumers and organs that still name logs/framework, docs/inference, or .opencode/logs have to be pointed at that home.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌──────────────┐ ┌─────────────────┐ ┌───────────────┐ │
|
|
14
|
+
│ │ activity log │ │ inference files │ │ cycle state │ │
|
|
15
|
+
│ └──────┬───────┘ └────────┬────────┘ └───────┬───────┘ │
|
|
16
|
+
│ └──────────────────┴─────────┬────────┘ │
|
|
17
|
+
└────────────────────────────────────────┼──────────────────┘
|
|
18
|
+
v
|
|
19
|
+
┌────────────────────────────────────────┼──────────────────┐
|
|
20
|
+
│ PROCESSING LAYER v │
|
|
21
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
22
|
+
│ │ write-home.cjs · one path for every writer │ │
|
|
23
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
24
|
+
└──────────────────────────────┼────────────────────────────┘
|
|
25
|
+
v
|
|
26
|
+
┌──────────────────────────────┼────────────────────────────┐
|
|
27
|
+
│ OUTPUT LAYER v │
|
|
28
|
+
│ ┌──────────────────────────┐ ┌─────────────────────┐ │
|
|
29
|
+
│ │ .xray/logs/activity.log │ │ .xray/inference │ │
|
|
30
|
+
│ └──────────────────────────┘ └─────────────────────┘ │
|
|
31
|
+
└────────────────────────────────────────────────────────────┘
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The path table is `src/integrations/hooks/write-home.cjs`. Writers use it. Readers open the new file, and the old file only when the new one is not there yet.
|
|
35
|
+
|
|
36
|
+
Still on the old path until each caller is rewired: the activity logger, the framework logger, the pipeline hook, the Grok hook, the Hermes bridge, station capture, `saveSessionInference`, reporting, pulse, monitor, and `features.json` `log_path`.
|
|
37
|
+
|
|
38
|
+
stamped · 0xray 4.0.36
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "0xray",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.37",
|
|
4
4
|
"description": "Multi-agent orchestration and Codex governance for OpenCode, Hermes, Grok Build, and OpenClaw",
|
|
5
5
|
"readme": "README.md",
|
|
6
6
|
"license": "MIT",
|
|
@@ -171,6 +171,7 @@
|
|
|
171
171
|
"scripts/mjs/verify-four-floor-compact.mjs",
|
|
172
172
|
"scripts/mjs/run-repertoire-mcp.mjs",
|
|
173
173
|
"scripts/mjs/run-goggles-mcp.mjs",
|
|
174
|
+
"scripts/mjs/run-grok-hook.mjs",
|
|
174
175
|
"scripts/mjs/verify-delegation-gate-core.mjs",
|
|
175
176
|
"scripts/mjs/delegation-gate-fixture.mjs",
|
|
176
177
|
"src/opencode/",
|
|
@@ -212,7 +213,8 @@
|
|
|
212
213
|
".xray/config.json",
|
|
213
214
|
".gitignore.default",
|
|
214
215
|
"LICENSE",
|
|
215
|
-
"vendor/@0xray/repertoire/"
|
|
216
|
+
"vendor/@0xray/repertoire/",
|
|
217
|
+
"!vendor/**/*.map"
|
|
216
218
|
],
|
|
217
219
|
"dependencies": {
|
|
218
220
|
"@0xray/blip": "^0.1.2",
|