0xray 4.1.0 → 4.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitignore.default +4 -1
- package/.grok-plugin/plugin.json +1 -1
- package/.opencode/skills/orchestrator/SKILL.md +1 -7
- package/.xray/features.json +4 -1
- package/.xray/features.schema.json +8 -0
- package/AGENTS-consumer.md +1 -1
- package/AGENTS.md +2 -2
- package/README.md +2 -2
- package/dist/.gitignore.default +4 -1
- package/dist/AGENTS.md +2 -2
- package/dist/CHANGELOG.md +27 -1
- package/dist/README.md +2 -2
- package/dist/cli/commands/opencode-install.js +3 -9
- package/dist/cli/commands/skill-install.js +10 -5
- package/dist/cli/goggles-status.d.ts +2 -5
- package/dist/cli/goggles-status.js +5 -53
- package/dist/cli/index.js +2 -2
- package/dist/enforcement/enforcer-tools.d.ts +1 -1
- package/dist/enforcement/enforcer-tools.js +1 -1
- package/dist/integrations/cursor/README.md +1 -1
- package/dist/integrations/cursor/hooks/pre-tool-use.js +4 -0
- package/dist/integrations/grok/grok-cli.js +5 -7
- package/dist/integrations/grok/hooks/grok-hook-utils.js +4 -1
- package/dist/integrations/grok/hooks/pre-tool-use.js +4 -18
- package/dist/integrations/grok/hooks/session-start.js +4 -2
- package/dist/integrations/hermes-agent/bridge.mjs +4 -1
- package/dist/integrations/hooks/goggles-mcp.mjs +20 -196
- package/dist/integrations/hooks/goggles-pipeline.mjs +606 -616
- package/dist/integrations/hooks/goggles-planes.json +88 -40
- package/dist/integrations/hooks/plates.cjs +84 -0
- package/dist/integrations/hooks/pre-tool-speak.mjs +2 -4
- package/dist/integrations/hooks/skill-seek.mjs +115 -0
- package/dist/integrations/hooks/station-hook-runtime.cjs +4 -1
- package/dist/integrations/openclaw/hooks/pre-tool-gate-runtime.mjs +4 -4
- package/dist/integrations/openclaw/plugin/xray-pre-tool/index.js +10 -1
- package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
- package/dist/memory-routing/plates.d.ts +1 -1
- package/dist/memory-routing/plates.js +14 -0
- package/dist/nucleus/thin-dispatch.d.ts +1 -1
- package/dist/nucleus/thin-dispatch.js +1 -1
- package/dist/nucleus/work-freshness.mjs +10 -0
- package/dist/plugin/xray-codex-injection.js +3 -1
- package/dist/skills/orchestrator/SKILL.md +1 -7
- package/docs-site/docs/plates/asides.md +35 -0
- package/docs-site/docs/plates/confer.md +35 -0
- package/docs-site/docs/plates/consumer-mcp.md +35 -0
- package/docs-site/docs/plates/delegation-gate.md +35 -0
- package/docs-site/docs/plates/dynamo.md +35 -0
- package/docs-site/docs/plates/foundry.md +35 -0
- package/docs-site/docs/plates/goggles.md +8 -8
- package/docs-site/docs/plates/ground.md +35 -0
- package/docs-site/docs/plates/hermes.md +35 -0
- package/docs-site/docs/plates/index.md +12 -5
- package/docs-site/docs/plates/inference-cycle.md +35 -0
- package/docs-site/docs/plates/lens-gate.md +6 -6
- package/docs-site/docs/plates/openclaw.md +35 -0
- package/docs-site/docs/plates/opencode.md +35 -0
- package/docs-site/docs/plates/repertoire.md +35 -0
- package/docs-site/docs/plates/synthesis.md +35 -0
- package/docs-site/docs/plates/temperament.md +35 -0
- package/docs-site/docs/plates/trail-state.md +1 -1
- package/package.json +1 -1
- package/scripts/foundry/README.md +3 -1
- package/scripts/foundry/mint-suit.cjs +120 -2
- package/scripts/foundry/plant/skills/mill/SKILL.md +1 -1
- package/scripts/foundry/reconcile-version.mjs +10 -3
- package/scripts/foundry/release.mjs +1 -1
- package/scripts/foundry/validate-release-docs.mjs +2 -2
- package/scripts/foundry/version-manager.mjs +12 -4
- package/scripts/node/install-bridges.cjs +63 -34
- package/scripts/node/pack-tmp-suit-proof.mjs +23 -4
- package/src/integrations/openclaw/plugin/xray-pre-tool/index.js +10 -1
- package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
- package/src/skills/orchestrator/SKILL.md +1 -7
- package/xray/features.json +4 -1
- package/xray/features.schema.json +8 -0
|
@@ -135,11 +135,21 @@ function freshnessFile(projectRoot) {
|
|
|
135
135
|
return join(projectRoot, '.xray', 'state', 'freshness.json');
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
export const FRESHNESS_MAX_AGE_MS = 60 * 60 * 1000;
|
|
139
|
+
|
|
138
140
|
export function readSavedFreshness(projectRoot) {
|
|
139
141
|
const saved = readJson(freshnessFile(projectRoot));
|
|
140
142
|
return saved ? describeFreshness(saved) : null;
|
|
141
143
|
}
|
|
142
144
|
|
|
145
|
+
/** A missing stamp or a stamp older than an hour is due. */
|
|
146
|
+
export function freshnessNeedsRefresh(projectRoot, now = Date.now()) {
|
|
147
|
+
const saved = readJson(freshnessFile(projectRoot));
|
|
148
|
+
const at = saved && saved.checkedAt ? Date.parse(String(saved.checkedAt)) : NaN;
|
|
149
|
+
if (!Number.isFinite(at)) return true;
|
|
150
|
+
return now - at >= FRESHNESS_MAX_AGE_MS;
|
|
151
|
+
}
|
|
152
|
+
|
|
143
153
|
export function probeFreshness(projectRoot) {
|
|
144
154
|
const saved = readJson(freshnessFile(projectRoot));
|
|
145
155
|
if (saved && saved.behind != null) return decideFreshness(saved);
|
|
@@ -124,9 +124,11 @@ export default async function xrayCodexPlugin(input) {
|
|
|
124
124
|
if (speak) {
|
|
125
125
|
const spoken = `${tool} ${JSON.stringify(args ?? {})}`.slice(0, 500);
|
|
126
126
|
const lens = speak.lensDecision(directory, tool, spoken);
|
|
127
|
-
if (lens) {
|
|
127
|
+
if (lens?.decision === "deny") {
|
|
128
128
|
throw new Error(`DELEGATION GATE: ${lens.reason ?? "lens"}`);
|
|
129
129
|
}
|
|
130
|
+
if (lens?.reason)
|
|
131
|
+
logger.log(lens.reason);
|
|
130
132
|
const additional = speak.repertoireRoute(spoken)?.hookSpecificOutput?.additionalContext;
|
|
131
133
|
if (additional) {
|
|
132
134
|
logger.log(additional);
|
|
@@ -57,13 +57,7 @@ When `multi_agent_orchestration.lead_dev_mode` is true in `features.json` (defau
|
|
|
57
57
|
|
|
58
58
|
The command is `0xray look`. `0xray goggles` is the same organ. A pipe keeps the line card. A terminal shows that card as a pane. Chat seats without hooks use the `goggles` MCP tools `look` and `status_lens`. Same organ.
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
Kind 1 names one plane: dichotomy, syncopate, synthesis, or loop. The lens holds that plane. An action on that plane is quiet. An action on another plane, or on a pipeline drawing, is stopped. A pipeline drawing is not a scope stop. Ground is not a scope stop. Scope, when named, is ecosystem, part, one flow, or one artifact, and an action wider than that scope is stopped. One kind and one scope level at a time. Two planes, calling, ground, and a pipeline name do not arm the lens. `outer` without one plane is `Name one plane.` After 1 is empty. Nothing is picked.
|
|
63
|
-
|
|
64
|
-
Naming a plane, `digest`, or `triage` returns that plane's view. The fields are from, digest, plate, entry, exit, files, skills, setup, teardown, and worn. Each field has a pipe. The pipe writes what it can see from the plate or the tree, and the view keeps that field. A field the pipe cannot see yet stays on the view for the next look. The rows are ground, routing, house, boot, governance, memory-recall, orchestration, processor, and reporting. Those nine are not Kind 0. The mill path is `scripts/foundry`. `triage` names the fields still open and whether the row holds. Zoom after the card is the same ladder: ecosystem, part, one flow, one artifact.
|
|
65
|
-
|
|
66
|
-
The hold lasts for the work that named the plane. A sentence that does not say look or name does not arm it and does not drop it. Work that says goggles clears the hold and stays quiet. When a tool names one card plane, the suit adds that plane's file as a hint.
|
|
60
|
+
A session starts on dev. The boot payload includes that card from `.xray/state/LENS.md`. The planes are dev, integration, domain, and ecosystem. A search inside the current card runs. Any other search returns the current card and does not run. Opening a file on the current card adds nothing. Opening a file on another plane switches to that card and the open proceeds. A file on no card stays on the current plane and returns that card. Compact writes that same card back. A thing on that plane has its own card. One card has its own plate and can name more. A missing plate names the stamp-plate skill. Stamp one plate for that card. The cards and plates that stay are what the next agent reads. Saying goggles clears a stale card line on the station.
|
|
67
61
|
|
|
68
62
|
## Hooks (rewired, not new MCPs)
|
|
69
63
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Asides
|
|
3
|
+
sidebar_label: Asides
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Asides
|
|
7
|
+
|
|
8
|
+
A user aside is one parallel track.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ a named track │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ read the aside file │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ that track, or the main line │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
State is `.xray/state/asides/{id}.json` and `_active.json`. A todo id looks like `{asideId}.a.1.1`. The code is `src/nucleus/user-aside.ts`. The guides aside-context, user-asides, and parallel-work-tracks describe this one thing.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Confer
|
|
3
|
+
sidebar_label: Confer
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Confer
|
|
7
|
+
|
|
8
|
+
Confer stays off unless it is enabled.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ a synthesis checkpoint │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ stay off │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ skipped, unless it is enabled │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`src/nucleus/confer.ts` defaults to enabled false and on_synthesis false. A missing key stays off. A confer todo completes only on a real model PASS.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Consumer MCP
|
|
3
|
+
sidebar_label: Consumer MCP
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Consumer MCP
|
|
7
|
+
|
|
8
|
+
The worn checkout lists seven MCP servers.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ a worn checkout │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ read .mcp.json │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ the seven servers │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The card owns `src/mcps`. A longer card still wins. The seven servers are xray-governance, xray-skills, xray-enforcer, xray-orchestrator, xray-researcher, xray-code-review, and xray-architect-tools. Repertoire and goggles sit beside them in `.mcp.json`. `src/mcps/registry.json` is the community catalog. Orchestrator and governance keep their own cards.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Delegation gate
|
|
3
|
+
sidebar_label: Delegation gate
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Delegation gate
|
|
7
|
+
|
|
8
|
+
The pre-tool gate for every host.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ a tool call │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ constitution, then the spawn plan │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ allow, or deny │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Hosts call `evaluatePreToolGate` through `src/integrations/hooks/delegation-gate-runtime.cjs`. Codex 11, 29, 69, and 70 live in `src/nucleus/delegation-gate.ts`. A spawn with no plan follows the host temperament.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Dynamo
|
|
3
|
+
sidebar_label: Dynamo
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Dynamo
|
|
7
|
+
|
|
8
|
+
Dynamo is the external governance service.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ a proposal │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ the codex and the solar vote │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ pass, revision, or reject │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The guide is `docs-site/docs/guides/self-hosting-dynamo.md`. The service code stays on the governance card. This drawing is the guide.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Foundry
|
|
3
|
+
sidebar_label: Foundry
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Foundry
|
|
7
|
+
|
|
8
|
+
The mill builds and ships a suit.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ a version bump │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ gate, then publish, then tag │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ the registry lists that version │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The card owns `scripts/foundry`. The release script is `scripts/foundry/release.mjs`. That script is the only stamp. A longer card still wins. A live publish needs `--i-mean-it`. The OTP link is the `npm-publish` lens.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|
|
@@ -6,7 +6,7 @@ plate_type: domain model
|
|
|
6
6
|
|
|
7
7
|
# Goggles
|
|
8
8
|
|
|
9
|
-
It views one plane.
|
|
9
|
+
It views one plane.
|
|
10
10
|
|
|
11
11
|
```
|
|
12
12
|
┌────────────────────────────────────────────────────────────┐
|
|
@@ -14,19 +14,19 @@ It views one plane. The lens check is the one look that spans planes.
|
|
|
14
14
|
├────────────────────────────────────────────────────────────┤
|
|
15
15
|
│ · it views one plane │
|
|
16
16
|
│ · not every plane at once │
|
|
17
|
-
│ ·
|
|
18
|
-
│ ·
|
|
17
|
+
│ · a session starts on dev │
|
|
18
|
+
│ · the card is in LENS.md │
|
|
19
19
|
├────────────────────────────────────────────────────────────┤
|
|
20
20
|
│ REFUSED │
|
|
21
|
-
│ ·
|
|
22
|
-
│ · kind and outer together │
|
|
23
|
-
│ · a plane on an outer that has no card │
|
|
21
|
+
│ · a search outside the card does not run │
|
|
24
22
|
└────────────────────────────────────────────────────────────┘
|
|
25
23
|
```
|
|
26
24
|
|
|
27
|
-
A
|
|
25
|
+
A session starts on dev. The card is in `.xray/state/LENS.md`. The planes are dev, integration, domain, and ecosystem. A search inside the current card runs. Any other search returns the card and does not run. Opening a file on another plane switches to that card.
|
|
28
26
|
|
|
29
|
-
|
|
27
|
+
A thing on that plane has its own card. A card with no plate names the stamp-plate skill. Stamp one plate for that card.
|
|
28
|
+
|
|
29
|
+
A name that is not a plane or a card says `Name one plane.`
|
|
30
30
|
|
|
31
31
|
A checkout named `0xray` records `scripts/mjs/run-goggles-mcp.mjs`. Any other project records `node_modules/0xray/scripts/mjs/run-goggles-mcp.mjs`.
|
|
32
32
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Ground
|
|
3
|
+
sidebar_label: Ground
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Ground
|
|
7
|
+
|
|
8
|
+
Home. The dev plane.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ this checkout │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ read the dev card │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ a change that stays in this repo │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The card lists src, grok-bot/OP-PROC.md, grok-bot/LEXICON.md, src/opencode/agents, AGENTS.md, src/integrations, and package.json. The session starts on the dev plane.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Hermes
|
|
3
|
+
sidebar_label: Hermes
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Hermes
|
|
7
|
+
|
|
8
|
+
Hermes wears the suit through its bridge.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ a Hermes session │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ the bridge │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ the suit on that host │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The host pack names Hermes. This card is `src/integrations/hermes-agent`. The bridge is `bridge.mjs`.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|
|
@@ -27,21 +27,21 @@ Plates have a type. A domain model plate shows how named parts fit. A state flow
|
|
|
27
27
|
|
|
28
28
|
## Pipeline
|
|
29
29
|
|
|
30
|
-
[Routing](./routing.md) · [Governance](./governance.md) · [Boot](./boot.md) · [Orchestration](./orchestration.md) · [Processor](./processor.md) · [Reporting](./reporting.md) · [Memory recall](./memory-recall.md) · [Stamp plate](./stamp-plate.md)
|
|
30
|
+
[Routing](./routing.md) · [Governance](./governance.md) · [Boot](./boot.md) · [Orchestration](./orchestration.md) · [Processor](./processor.md) · [Reporting](./reporting.md) · [Memory recall](./memory-recall.md) · [Stamp plate](./stamp-plate.md) · [Ground](./ground.md) · [Synthesis](./synthesis.md)
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
The planes are dev, integration, domain, and ecosystem. Each drawing above is a card on one of those planes. A plate id is not a plane.
|
|
33
33
|
|
|
34
34
|
## Write home
|
|
35
35
|
|
|
36
36
|
[Record map](./record-map.md) · [Write home](./write-home.md) · [Activity log](./activity-log.md) · [Session capture](./session-capture.md) · [Suit wear](./suit-wear.md) · [Suit organs](./suit-organs.md)
|
|
37
37
|
|
|
38
|
-
These six are the file ref. Each one is a
|
|
38
|
+
These six are the file ref. Each one is a card. The planes stay dev, integration, domain, and ecosystem.
|
|
39
39
|
|
|
40
40
|
## Hands
|
|
41
41
|
|
|
42
42
|
[Station card](./station-card.md) · [Notes page](./notes-page.md) · [Reflection page](./reflection-page.md) · [Site manual](./site-manual.md) · [Package face](./package-face.md) · [Suit settings](./suit-settings.md) · [Trail state](./trail-state.md) · [Inference files](./inference-files.md)
|
|
43
43
|
|
|
44
|
-
These eight are the pages the file ref names. Each one is a
|
|
44
|
+
These eight are the pages the file ref names. Each one is a card. Each card lists one skill.
|
|
45
45
|
|
|
46
46
|
## Compact path
|
|
47
47
|
|
|
@@ -51,6 +51,13 @@ These eight are the pages the file ref names. Each one is a search lens. Each le
|
|
|
51
51
|
|
|
52
52
|
[Work fresh](./work-fresh.md) · [Kept line](./kept-line.md) · [Lens gate](./lens-gate.md) · [Pre tool](./pre-tool.md) · [Lens page](./lens-page.md)
|
|
53
53
|
|
|
54
|
-
These five are the compact path that was opened. Each one is a
|
|
54
|
+
These five are the compact path that was opened. Each one is a card. Each card lists one skill.
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
## Spectra
|
|
58
|
+
|
|
59
|
+
[Repertoire](./repertoire.md) · [Dynamo](./dynamo.md) · [Foundry](./foundry.md) · [Delegation gate](./delegation-gate.md) · [Temperament](./temperament.md) · [Asides](./asides.md) · [Inference cycle](./inference-cycle.md) · [Hermes](./hermes.md) · [OpenClaw](./openclaw.md) · [OpenCode](./opencode.md) · [Consumer MCP](./consumer-mcp.md) · [Confer](./confer.md)
|
|
60
|
+
|
|
61
|
+
Each one is a card. One top file. The planes stay dev, integration, domain, and ecosystem.
|
|
55
62
|
|
|
56
63
|
stamped · 0xray 4.1.0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Inference cycle
|
|
3
|
+
sidebar_label: Inference cycle
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Inference cycle
|
|
7
|
+
|
|
8
|
+
The inference cycle turns a corpus into a proposal.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ a session corpus │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ propose, then the codex votes │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ a governed proposal, or no change │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The class is `InferenceCycle` in `src/inference/inference-cycle.ts`. The phases are collect, propose, govern, apply, deploy, and verify. Nearby files keep their own cards.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|
|
@@ -5,33 +5,33 @@ sidebar_label: Lens gate
|
|
|
5
5
|
|
|
6
6
|
# Lens gate
|
|
7
7
|
|
|
8
|
-
A search
|
|
8
|
+
A search inside the current card runs.
|
|
9
9
|
|
|
10
10
|
```
|
|
11
11
|
┌────────────────────────────────────────────────────────────┐
|
|
12
12
|
│ INPUT LAYER │
|
|
13
13
|
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
-
│ │ the tool
|
|
14
|
+
│ │ the tool call and the file path │ │
|
|
15
15
|
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
16
|
└──────────────────────────────┼─────────────────────────────┘
|
|
17
17
|
v
|
|
18
18
|
┌────────────┼───────────────────────────────────────────────┐
|
|
19
19
|
│ PROCESSING LAYER │
|
|
20
20
|
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
-
│ │
|
|
21
|
+
│ │ which plane the path is on │ │
|
|
22
22
|
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
23
|
└──────────────────────────────┼─────────────────────────────┘
|
|
24
24
|
v
|
|
25
25
|
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
26
|
│ OUTPUT LAYER v │
|
|
27
27
|
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
-
│ │
|
|
28
|
+
│ │ the card for the plane you are on │ │
|
|
29
29
|
│ └────────────────────────────────────────────────────┘ │
|
|
30
30
|
└────────────────────────────────────────────────────────────┘
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
lensBeforeResearch in src/integrations/hooks/goggles-pipeline.mjs
|
|
33
|
+
lensBeforeResearch in src/integrations/hooks/goggles-pipeline.mjs looks at the path. A search inside the current card runs. Any other search returns the current card and does not run. Opening a file on the current plane adds nothing. Opening a file on another plane switches and returns that card. A file on no plane stays and returns the current card. The hook does not search the repo.
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
A session starts on dev. Compact writes that same card back.
|
|
36
36
|
|
|
37
37
|
stamped · 0xray 4.1.0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: OpenClaw
|
|
3
|
+
sidebar_label: OpenClaw
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OpenClaw
|
|
7
|
+
|
|
8
|
+
OpenClaw wears the suit through its plugin.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ an OpenClaw session │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ the plugin │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ the suit on that host │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The host pack names OpenClaw. This card is `src/integrations/openclaw`.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: OpenCode
|
|
3
|
+
sidebar_label: OpenCode
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OpenCode
|
|
7
|
+
|
|
8
|
+
OpenCode install writes the plugin.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ INPUT LAYER │
|
|
13
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
14
|
+
│ │ an install │ │
|
|
15
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
16
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
17
|
+
v
|
|
18
|
+
┌────────────┼───────────────────────────────────────────────┐
|
|
19
|
+
│ PROCESSING LAYER │
|
|
20
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
21
|
+
│ │ copy the bridge and keep local edits │ │
|
|
22
|
+
│ └──────────────────────────┬─────────────────────────┘ │
|
|
23
|
+
└──────────────────────────────┼─────────────────────────────┘
|
|
24
|
+
v
|
|
25
|
+
┌──────────────────────────────┼─────────────────────────────┐
|
|
26
|
+
│ OUTPUT LAYER v │
|
|
27
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
28
|
+
│ │ the OpenCode plugin on disk │ │
|
|
29
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
30
|
+
└────────────────────────────────────────────────────────────┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The command is `src/cli/commands/opencode-install.ts`. Existing `.yml`, `.yaml`, and `.md` files stay. `xray/features.json` is merged.
|
|
34
|
+
|
|
35
|
+
stamped · 0xray 4.1.0
|