0xray 3.5.3 → 3.5.5
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/.xray/features.json +5 -1
- package/.xray/features.schema.json +56 -0
- package/AGENTS-consumer.md +1 -1
- package/AGENTS.md +11 -1
- package/README.md +1 -1
- package/SKILLS.md +1 -1
- package/dist/AGENTS.md +11 -1
- package/dist/CHANGELOG.md +54 -0
- package/dist/README.md +1 -1
- package/dist/SKILLS.md +1 -1
- package/dist/cli/commands/hermes-install.js +3 -1
- package/dist/cli/index.js +0 -0
- package/dist/core/features-config.d.ts +15 -0
- package/dist/governance/governance-service.d.ts +1 -0
- package/dist/governance/governance-service.js +81 -6
- package/dist/integrations/enforcement-gate.js +15 -5
- package/dist/integrations/grok/grok-cli.js +1 -10
- package/dist/integrations/grok/hooks/grok-hook-utils.js +46 -2
- package/dist/integrations/grok/hooks/post-tool-use.js +48 -14
- package/dist/integrations/grok/hooks/pre-tool-use.js +20 -0
- package/dist/integrations/grok/hooks/session-start.js +28 -0
- package/dist/integrations/hermes-agent/__init__.py +11 -1
- package/dist/integrations/hermes-agent/__pycache__/__init__.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/schemas.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/tools.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/bridge.mjs +73 -10
- package/dist/integrations/hooks/confer-hook-runtime.mjs +49 -0
- package/dist/integrations/hooks/delegation-gate-runtime.mjs +6 -0
- package/dist/integrations/hooks/pipeline-hook-runtime.mjs +211 -0
- package/dist/integrations/hooks/plan-hook-runtime.mjs +68 -0
- package/dist/integrations/hooks/user-aside-hook-runtime.mjs +49 -0
- package/dist/mcps/architect-tools.server.js +6 -1
- package/dist/mcps/orchestrator/handlers/complexity-handler.d.ts +7 -0
- package/dist/mcps/orchestrator/handlers/complexity-handler.js +106 -7
- package/dist/mcps/orchestrator/handlers/task-handler.d.ts +6 -0
- package/dist/mcps/orchestrator/handlers/task-handler.js +75 -0
- package/dist/mcps/orchestrator/server.js +54 -5
- package/dist/memory-routing/provider-loader.js +30 -2
- package/dist/nucleus/aside-worktree.d.ts +41 -0
- package/dist/nucleus/aside-worktree.js +164 -0
- package/dist/nucleus/confer.d.ts +57 -0
- package/dist/nucleus/confer.js +308 -0
- package/dist/nucleus/delegation-gate.d.ts +12 -1
- package/dist/nucleus/delegation-gate.js +113 -13
- package/dist/nucleus/lead-dev-plan-persistence.d.ts +27 -3
- package/dist/nucleus/lead-dev-plan-persistence.js +222 -18
- package/dist/nucleus/spawn-plan-resolution.d.ts +20 -0
- package/dist/nucleus/spawn-plan-resolution.js +42 -0
- package/dist/nucleus/synthesis-consult-receipt.d.ts +32 -0
- package/dist/nucleus/synthesis-consult-receipt.js +171 -0
- package/dist/nucleus/synthesis-context.js +1 -1
- package/dist/nucleus/user-aside.d.ts +70 -0
- package/dist/nucleus/user-aside.js +393 -0
- package/dist/plugin/xray-codex-injection.js +1 -1
- package/dist/postprocessor/PostProcessor.d.ts +1 -0
- package/dist/postprocessor/PostProcessor.js +11 -0
- package/dist/processors/implementations/session-summary-processor.d.ts +1 -1
- package/dist/processors/implementations/session-summary-processor.js +9 -6
- package/package.json +14 -5
- package/scripts/hooks/install-hooks.cjs +3 -3
- package/scripts/hooks/run-hook.js +171 -86
- package/scripts/mjs/verify-confer-core.mjs +103 -0
- package/scripts/mjs/verify-delegation-gate-core.mjs +48 -2
- package/scripts/mjs/verify-hermes-session-start.mjs +137 -0
- package/scripts/mjs/verify-pre-push-diff-core.mjs +87 -0
- package/scripts/mjs/verify-user-aside-core.mjs +137 -0
- package/scripts/node/bridge-mcp-wiring.cjs +10 -0
- package/scripts/node/install-bridges.cjs +3 -11
- package/scripts/node/load-reflection-config.mjs +2 -2
- package/scripts/node/release-gate.mjs +8 -4
- package/src/mcps/architect-tools.server.ts +6 -1
- package/src/mcps/orchestrator/handlers/complexity-handler.ts +178 -20
- package/src/mcps/orchestrator/handlers/task-handler.ts +99 -0
- package/src/mcps/orchestrator/server.ts +56 -5
- package/xray/features.json +5 -1
- package/xray/features.schema.json +56 -0
|
@@ -133,14 +133,39 @@ export class OrchestratorServer {
|
|
|
133
133
|
default: 'optimized',
|
|
134
134
|
},
|
|
135
135
|
timeout: { type: 'number', default: 300000 },
|
|
136
|
+
confer: {
|
|
137
|
+
type: 'boolean',
|
|
138
|
+
description:
|
|
139
|
+
'Run mandatory 3-agent confer quorum (researcher, architect-tools, code-review) instead of task execution',
|
|
140
|
+
},
|
|
141
|
+
conferFixture: {
|
|
142
|
+
type: 'boolean',
|
|
143
|
+
description: 'Use fixture confer receipts (CI/verify)',
|
|
144
|
+
},
|
|
145
|
+
collocatedText: {
|
|
146
|
+
type: 'string',
|
|
147
|
+
description: 'Collocated synthesis context for confer prompts',
|
|
148
|
+
},
|
|
149
|
+
userAsideId: {
|
|
150
|
+
type: 'string',
|
|
151
|
+
description: 'Activate an existing user aside for spawn routing',
|
|
152
|
+
},
|
|
153
|
+
setActiveAside: {
|
|
154
|
+
type: 'boolean',
|
|
155
|
+
description: 'Set userAsideId as the active aside (default true)',
|
|
156
|
+
},
|
|
157
|
+
clearActiveAside: {
|
|
158
|
+
type: 'boolean',
|
|
159
|
+
description: 'Clear active aside — resume main lead-dev plan spawns',
|
|
160
|
+
},
|
|
136
161
|
},
|
|
137
|
-
required: ['description'
|
|
162
|
+
required: ['description'],
|
|
138
163
|
},
|
|
139
164
|
},
|
|
140
165
|
{
|
|
141
166
|
name: 'analyze-complexity',
|
|
142
167
|
description:
|
|
143
|
-
'Analyze task complexity and recommend orchestration strategy. When lead_dev_mode is on (features.json), includes phased plan + todos + subagent routes. During synthesis checkpoint, returns collocated context and mandatory-consult realignment plan — pass sessionId from the active session.',
|
|
168
|
+
'Analyze task complexity and recommend orchestration strategy. When lead_dev_mode is on (features.json), includes phased plan + todos + subagent routes. Pass userAsideId to intake a parallel user aside ({asideId}.a.* namespaced todos, worktree-like). During synthesis checkpoint, returns collocated context and mandatory-consult realignment plan — pass sessionId from the active session.',
|
|
144
169
|
inputSchema: {
|
|
145
170
|
type: 'object',
|
|
146
171
|
properties: {
|
|
@@ -149,6 +174,27 @@ export class OrchestratorServer {
|
|
|
149
174
|
description:
|
|
150
175
|
'Active session id (required to clear synthesis checkpoint; inferred from checkpoint state when omitted)',
|
|
151
176
|
},
|
|
177
|
+
userAsideId: {
|
|
178
|
+
type: 'string',
|
|
179
|
+
description:
|
|
180
|
+
'User aside id — persists .xray/state/asides/{id}.json with {asideId}.a.* todos (parallel track)',
|
|
181
|
+
},
|
|
182
|
+
userAsideTitle: {
|
|
183
|
+
type: 'string',
|
|
184
|
+
description: 'Display title for the user aside (defaults to userAsideId)',
|
|
185
|
+
},
|
|
186
|
+
worktree: {
|
|
187
|
+
type: 'string',
|
|
188
|
+
description: 'Optional worktree path for aside isolation',
|
|
189
|
+
},
|
|
190
|
+
branch: {
|
|
191
|
+
type: 'string',
|
|
192
|
+
description: 'Optional git branch for the aside',
|
|
193
|
+
},
|
|
194
|
+
setActiveAside: {
|
|
195
|
+
type: 'boolean',
|
|
196
|
+
description: 'Activate aside for spawn routing (default true when userAsideId set)',
|
|
197
|
+
},
|
|
152
198
|
tasks: {
|
|
153
199
|
type: 'array',
|
|
154
200
|
items: {
|
|
@@ -391,7 +437,12 @@ export class OrchestratorServer {
|
|
|
391
437
|
...complexityArgs,
|
|
392
438
|
...(sessionId ? { sessionId } : {}),
|
|
393
439
|
...(synthesisDue
|
|
394
|
-
? {
|
|
440
|
+
? {
|
|
441
|
+
synthesisCheckpoint: true,
|
|
442
|
+
synthesisDueReason: dueReason,
|
|
443
|
+
collocatedText: collocated?.collatedText ?? null,
|
|
444
|
+
conferFixture: process.env.XRAY_CONFER_FIXTURE === '1',
|
|
445
|
+
}
|
|
395
446
|
: {}),
|
|
396
447
|
},
|
|
397
448
|
aside.asideId,
|
|
@@ -402,13 +453,13 @@ export class OrchestratorServer {
|
|
|
402
453
|
content = appendSynthesisContextToResponse(content, collocated.collatedText);
|
|
403
454
|
}
|
|
404
455
|
|
|
405
|
-
if (synthesisDue && result.ok) {
|
|
456
|
+
if (synthesisDue && result.ok && !result.content[0]?.text?.includes('Confer quorum')) {
|
|
406
457
|
content = content.map((block, index) =>
|
|
407
458
|
index === 0
|
|
408
459
|
? {
|
|
409
460
|
...block,
|
|
410
461
|
text:
|
|
411
|
-
`${block.text}\n\n**
|
|
462
|
+
`${block.text}\n\n**Confer** runs automatically at synthesis checkpoint (researcher → architect-tools → code-review). Checkpoint clears when all consult todos complete.`,
|
|
412
463
|
}
|
|
413
464
|
: block,
|
|
414
465
|
);
|
package/xray/features.json
CHANGED
|
@@ -36,7 +36,11 @@
|
|
|
36
36
|
"phased_plan_threshold": 25,
|
|
37
37
|
"auto_consult_major_work": true,
|
|
38
38
|
"no_new_surface": true,
|
|
39
|
-
"auto_chain_delegations": true
|
|
39
|
+
"auto_chain_delegations": true,
|
|
40
|
+
"user_asides": {
|
|
41
|
+
"enabled": true,
|
|
42
|
+
"auto_provision_worktree": false
|
|
43
|
+
}
|
|
40
44
|
},
|
|
41
45
|
"autonomous_reporting": {
|
|
42
46
|
"enabled": true,
|
|
@@ -28,6 +28,62 @@
|
|
|
28
28
|
"required": ["module_path"]
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
|
+
"multi_agent_orchestration": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"properties": {
|
|
34
|
+
"enabled": { "type": "boolean" },
|
|
35
|
+
"lead_dev_mode": { "type": "boolean" },
|
|
36
|
+
"plan_stale_hours": {
|
|
37
|
+
"type": "number",
|
|
38
|
+
"minimum": 1,
|
|
39
|
+
"description": "Archive lead-dev-plan when all todos still pending after N hours"
|
|
40
|
+
},
|
|
41
|
+
"plan_archive_marker_hours": {
|
|
42
|
+
"type": "number",
|
|
43
|
+
"minimum": 1,
|
|
44
|
+
"description": "How long spawn-plan-stale persists after a stale plan was archived (hours)"
|
|
45
|
+
},
|
|
46
|
+
"confer_on_synthesis": {
|
|
47
|
+
"type": "boolean",
|
|
48
|
+
"description": "Auto-run 3-agent confer quorum at synthesis checkpoint (default true)"
|
|
49
|
+
},
|
|
50
|
+
"confer": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"properties": {
|
|
53
|
+
"enabled": { "type": "boolean" },
|
|
54
|
+
"on_synthesis": { "type": "boolean" }
|
|
55
|
+
},
|
|
56
|
+
"description": "Mandatory researcher/architect-tools/code-review quorum"
|
|
57
|
+
},
|
|
58
|
+
"sibling_repos": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"items": {
|
|
61
|
+
"oneOf": [
|
|
62
|
+
{ "type": "string" },
|
|
63
|
+
{
|
|
64
|
+
"type": "object",
|
|
65
|
+
"properties": {
|
|
66
|
+
"path": { "type": "string" },
|
|
67
|
+
"label": { "type": "string" }
|
|
68
|
+
},
|
|
69
|
+
"required": ["path"]
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
"description": "Sibling workspace roots (e.g. UI repo when MCP host is cwd)"
|
|
74
|
+
},
|
|
75
|
+
"user_asides": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"properties": {
|
|
78
|
+
"enabled": { "type": "boolean" },
|
|
79
|
+
"auto_provision_worktree": {
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"description": "Run guarded git worktree add on analyze-complexity aside intake when worktree+branch set"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
31
87
|
"synthesis": {
|
|
32
88
|
"type": "object",
|
|
33
89
|
"properties": {
|