@devflow-tools/mcp-server 0.18.27 → 0.18.29
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/dist/command-registry.json +66 -50
- package/dist/retrieval-composition.d.ts +15 -0
- package/dist/retrieval-composition.d.ts.map +1 -1
- package/dist/retrieval-composition.js +103 -48
- package/dist/retrieval-composition.js.map +1 -1
- package/dist/runtime-composition.d.ts +2 -1
- package/dist/runtime-composition.d.ts.map +1 -1
- package/dist/runtime-composition.js +9 -0
- package/dist/runtime-composition.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +11 -2
- package/dist/server.js.map +1 -1
- package/dist/tool-profile.d.ts.map +1 -1
- package/dist/tool-profile.js +1 -0
- package/dist/tool-profile.js.map +1 -1
- package/dist/tools.d.ts +22 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +45 -4
- package/dist/tools.js.map +1 -1
- package/package.json +13 -13
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
"version": 2,
|
|
3
3
|
"compatibility": 1,
|
|
4
4
|
"commands": {
|
|
5
|
+
"devflow:doctor": {
|
|
6
|
+
"mcpTools": [
|
|
7
|
+
"devflow_runtime_status"
|
|
8
|
+
],
|
|
9
|
+
"blockedNative": [],
|
|
10
|
+
"source": "core",
|
|
11
|
+
"sourceVersion": "0.18.29",
|
|
12
|
+
"requiresContext": false,
|
|
13
|
+
"evidenceMode": "runtime",
|
|
14
|
+
"skillPath": "skills/devflow:doctor/SKILL.md",
|
|
15
|
+
"hostTools": {
|
|
16
|
+
"claude-code": [
|
|
17
|
+
"mcp__plugin_devflow_devflow__devflow_runtime_status"
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
},
|
|
5
21
|
"devflow:context": {
|
|
6
22
|
"mcpTools": [
|
|
7
23
|
"get_project_context",
|
|
@@ -19,14 +35,14 @@
|
|
|
19
35
|
"WebFetch"
|
|
20
36
|
],
|
|
21
37
|
"source": "core",
|
|
22
|
-
"sourceVersion": "0.18.
|
|
38
|
+
"sourceVersion": "0.18.29",
|
|
23
39
|
"requiresContext": true,
|
|
24
40
|
"evidenceMode": "mixed",
|
|
25
41
|
"skillPath": "skills/devflow:context/SKILL.md",
|
|
26
42
|
"hostTools": {
|
|
27
43
|
"claude-code": [
|
|
28
|
-
"
|
|
29
|
-
"
|
|
44
|
+
"mcp__plugin_devflow_devflow__get_project_context",
|
|
45
|
+
"mcp__plugin_devflow_devflow__search_symbol"
|
|
30
46
|
]
|
|
31
47
|
}
|
|
32
48
|
},
|
|
@@ -44,13 +60,13 @@
|
|
|
44
60
|
"Explore"
|
|
45
61
|
],
|
|
46
62
|
"source": "core",
|
|
47
|
-
"sourceVersion": "0.18.
|
|
63
|
+
"sourceVersion": "0.18.29",
|
|
48
64
|
"requiresContext": true,
|
|
49
65
|
"evidenceMode": "mixed",
|
|
50
66
|
"skillPath": "skills/devflow:graph/SKILL.md",
|
|
51
67
|
"hostTools": {
|
|
52
68
|
"claude-code": [
|
|
53
|
-
"
|
|
69
|
+
"mcp__plugin_devflow_devflow__get_dependency_graph"
|
|
54
70
|
]
|
|
55
71
|
}
|
|
56
72
|
},
|
|
@@ -63,13 +79,13 @@
|
|
|
63
79
|
"WebFetch"
|
|
64
80
|
],
|
|
65
81
|
"source": "core",
|
|
66
|
-
"sourceVersion": "0.18.
|
|
82
|
+
"sourceVersion": "0.18.29",
|
|
67
83
|
"requiresContext": true,
|
|
68
84
|
"evidenceMode": "mixed",
|
|
69
85
|
"skillPath": "skills/devflow:knowledge/SKILL.md",
|
|
70
86
|
"hostTools": {
|
|
71
87
|
"claude-code": [
|
|
72
|
-
"
|
|
88
|
+
"mcp__plugin_devflow_devflow__get_knowledge"
|
|
73
89
|
]
|
|
74
90
|
}
|
|
75
91
|
},
|
|
@@ -87,13 +103,13 @@
|
|
|
87
103
|
"Explore"
|
|
88
104
|
],
|
|
89
105
|
"source": "core",
|
|
90
|
-
"sourceVersion": "0.18.
|
|
106
|
+
"sourceVersion": "0.18.29",
|
|
91
107
|
"requiresContext": true,
|
|
92
108
|
"evidenceMode": "mixed",
|
|
93
109
|
"skillPath": "skills/devflow:memory/SKILL.md",
|
|
94
110
|
"hostTools": {
|
|
95
111
|
"claude-code": [
|
|
96
|
-
"
|
|
112
|
+
"mcp__plugin_devflow_devflow__get_memory"
|
|
97
113
|
]
|
|
98
114
|
}
|
|
99
115
|
},
|
|
@@ -103,13 +119,13 @@
|
|
|
103
119
|
],
|
|
104
120
|
"blockedNative": [],
|
|
105
121
|
"source": "core",
|
|
106
|
-
"sourceVersion": "0.18.
|
|
122
|
+
"sourceVersion": "0.18.29",
|
|
107
123
|
"requiresContext": true,
|
|
108
124
|
"evidenceMode": "mixed",
|
|
109
125
|
"skillPath": "skills/devflow:workflow/SKILL.md",
|
|
110
126
|
"hostTools": {
|
|
111
127
|
"claude-code": [
|
|
112
|
-
"
|
|
128
|
+
"mcp__plugin_devflow_devflow__run_workflow"
|
|
113
129
|
]
|
|
114
130
|
}
|
|
115
131
|
},
|
|
@@ -134,28 +150,28 @@
|
|
|
134
150
|
],
|
|
135
151
|
"blockedNative": [],
|
|
136
152
|
"source": "core",
|
|
137
|
-
"sourceVersion": "0.18.
|
|
153
|
+
"sourceVersion": "0.18.29",
|
|
138
154
|
"requiresContext": true,
|
|
139
155
|
"evidenceMode": "mixed",
|
|
140
156
|
"skillPath": "skills/devflow:delivery/SKILL.md",
|
|
141
157
|
"hostTools": {
|
|
142
158
|
"claude-code": [
|
|
143
|
-
"
|
|
144
|
-
"
|
|
145
|
-
"
|
|
146
|
-
"
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
"
|
|
159
|
+
"mcp__plugin_devflow_devflow__delivery_status",
|
|
160
|
+
"mcp__plugin_devflow_devflow__delivery_create_case",
|
|
161
|
+
"mcp__plugin_devflow_devflow__delivery_answer",
|
|
162
|
+
"mcp__plugin_devflow_devflow__delivery_revise",
|
|
163
|
+
"mcp__plugin_devflow_devflow__delivery_compare_options",
|
|
164
|
+
"mcp__plugin_devflow_devflow__delivery_approve",
|
|
165
|
+
"mcp__plugin_devflow_devflow__delivery_reject",
|
|
166
|
+
"mcp__plugin_devflow_devflow__delivery_resume",
|
|
167
|
+
"mcp__plugin_devflow_devflow__delivery_recover_task",
|
|
168
|
+
"mcp__plugin_devflow_devflow__delivery_admit_worktree",
|
|
169
|
+
"mcp__plugin_devflow_devflow__delivery_refresh_activation",
|
|
170
|
+
"mcp__plugin_devflow_devflow__delivery_advance",
|
|
171
|
+
"mcp__plugin_devflow_devflow__delivery_retry_task",
|
|
172
|
+
"mcp__plugin_devflow_devflow__delivery_import_external_change",
|
|
173
|
+
"mcp__plugin_devflow_devflow__delivery_export",
|
|
174
|
+
"mcp__plugin_devflow_devflow__delivery_cancel"
|
|
159
175
|
]
|
|
160
176
|
}
|
|
161
177
|
},
|
|
@@ -181,7 +197,7 @@
|
|
|
181
197
|
"skillPath": "skills/devflow:animation/SKILL.md",
|
|
182
198
|
"hostTools": {
|
|
183
199
|
"claude-code": [
|
|
184
|
-
"
|
|
200
|
+
"mcp__plugin_devflow_devflow__animation_suggest"
|
|
185
201
|
]
|
|
186
202
|
}
|
|
187
203
|
},
|
|
@@ -207,7 +223,7 @@
|
|
|
207
223
|
"skillPath": "skills/devflow:css/SKILL.md",
|
|
208
224
|
"hostTools": {
|
|
209
225
|
"claude-code": [
|
|
210
|
-
"
|
|
226
|
+
"mcp__plugin_devflow_devflow__css_audit_selectors"
|
|
211
227
|
]
|
|
212
228
|
}
|
|
213
229
|
},
|
|
@@ -233,7 +249,7 @@
|
|
|
233
249
|
"skillPath": "skills/devflow:docker/SKILL.md",
|
|
234
250
|
"hostTools": {
|
|
235
251
|
"claude-code": [
|
|
236
|
-
"
|
|
252
|
+
"mcp__plugin_devflow_devflow__docker_dockerize_project"
|
|
237
253
|
]
|
|
238
254
|
}
|
|
239
255
|
},
|
|
@@ -262,7 +278,7 @@
|
|
|
262
278
|
],
|
|
263
279
|
"hostTools": {
|
|
264
280
|
"claude-code": [
|
|
265
|
-
"
|
|
281
|
+
"mcp__plugin_devflow_devflow__electron_diagnose_bug"
|
|
266
282
|
]
|
|
267
283
|
}
|
|
268
284
|
},
|
|
@@ -288,7 +304,7 @@
|
|
|
288
304
|
"skillPath": "skills/devflow:git/SKILL.md",
|
|
289
305
|
"hostTools": {
|
|
290
306
|
"claude-code": [
|
|
291
|
-
"
|
|
307
|
+
"mcp__plugin_devflow_devflow__git_analyze_repo"
|
|
292
308
|
]
|
|
293
309
|
}
|
|
294
310
|
},
|
|
@@ -317,7 +333,7 @@
|
|
|
317
333
|
],
|
|
318
334
|
"hostTools": {
|
|
319
335
|
"claude-code": [
|
|
320
|
-
"
|
|
336
|
+
"mcp__plugin_devflow_devflow__graphql_diagnose_bug"
|
|
321
337
|
]
|
|
322
338
|
}
|
|
323
339
|
},
|
|
@@ -347,8 +363,8 @@
|
|
|
347
363
|
],
|
|
348
364
|
"hostTools": {
|
|
349
365
|
"claude-code": [
|
|
350
|
-
"
|
|
351
|
-
"
|
|
366
|
+
"mcp__plugin_devflow_devflow__nest_diagnose_bug",
|
|
367
|
+
"mcp__plugin_devflow_devflow__nest_new_module"
|
|
352
368
|
]
|
|
353
369
|
}
|
|
354
370
|
},
|
|
@@ -379,8 +395,8 @@
|
|
|
379
395
|
],
|
|
380
396
|
"hostTools": {
|
|
381
397
|
"claude-code": [
|
|
382
|
-
"
|
|
383
|
-
"
|
|
398
|
+
"mcp__plugin_devflow_devflow__nextjs_diagnose_bug",
|
|
399
|
+
"mcp__plugin_devflow_devflow__nextjs_new_page"
|
|
384
400
|
]
|
|
385
401
|
}
|
|
386
402
|
},
|
|
@@ -406,7 +422,7 @@
|
|
|
406
422
|
"skillPath": "skills/devflow:performance/SKILL.md",
|
|
407
423
|
"hostTools": {
|
|
408
424
|
"claude-code": [
|
|
409
|
-
"
|
|
425
|
+
"mcp__plugin_devflow_devflow__performance_audit_performance"
|
|
410
426
|
]
|
|
411
427
|
}
|
|
412
428
|
},
|
|
@@ -440,11 +456,11 @@
|
|
|
440
456
|
],
|
|
441
457
|
"hostTools": {
|
|
442
458
|
"claude-code": [
|
|
443
|
-
"
|
|
444
|
-
"
|
|
445
|
-
"
|
|
446
|
-
"
|
|
447
|
-
"
|
|
459
|
+
"mcp__plugin_devflow_devflow__react_review_hooks",
|
|
460
|
+
"mcp__plugin_devflow_devflow__react_audit_performance",
|
|
461
|
+
"mcp__plugin_devflow_devflow__react_refactor_component",
|
|
462
|
+
"mcp__plugin_devflow_devflow__react_diagnose_bug",
|
|
463
|
+
"mcp__plugin_devflow_devflow__react_new_component"
|
|
448
464
|
]
|
|
449
465
|
}
|
|
450
466
|
},
|
|
@@ -474,8 +490,8 @@
|
|
|
474
490
|
],
|
|
475
491
|
"hostTools": {
|
|
476
492
|
"claude-code": [
|
|
477
|
-
"
|
|
478
|
-
"
|
|
493
|
+
"mcp__plugin_devflow_devflow__tailwind_new_component",
|
|
494
|
+
"mcp__plugin_devflow_devflow__tailwind_optimize_classes"
|
|
479
495
|
]
|
|
480
496
|
}
|
|
481
497
|
},
|
|
@@ -504,7 +520,7 @@
|
|
|
504
520
|
],
|
|
505
521
|
"hostTools": {
|
|
506
522
|
"claude-code": [
|
|
507
|
-
"
|
|
523
|
+
"mcp__plugin_devflow_devflow__taro_new_page"
|
|
508
524
|
]
|
|
509
525
|
}
|
|
510
526
|
},
|
|
@@ -530,7 +546,7 @@
|
|
|
530
546
|
"skillPath": "skills/devflow:ui-layout/SKILL.md",
|
|
531
547
|
"hostTools": {
|
|
532
548
|
"claude-code": [
|
|
533
|
-
"
|
|
549
|
+
"mcp__plugin_devflow_devflow__ui_layout_generate"
|
|
534
550
|
]
|
|
535
551
|
}
|
|
536
552
|
},
|
|
@@ -560,8 +576,8 @@
|
|
|
560
576
|
],
|
|
561
577
|
"hostTools": {
|
|
562
578
|
"claude-code": [
|
|
563
|
-
"
|
|
564
|
-
"
|
|
579
|
+
"mcp__plugin_devflow_devflow__vue_diagnose_bug",
|
|
580
|
+
"mcp__plugin_devflow_devflow__vue_debug_reactivity"
|
|
565
581
|
]
|
|
566
582
|
}
|
|
567
583
|
}
|
|
@@ -54,6 +54,21 @@ export declare function loadSemanticExecutionContext(input: {
|
|
|
54
54
|
context: SemanticExecutionContext;
|
|
55
55
|
definition: TaskDefinitionV1;
|
|
56
56
|
} | null;
|
|
57
|
+
export type SemanticExecutionContextInspection = {
|
|
58
|
+
status: 'ready';
|
|
59
|
+
revision: number;
|
|
60
|
+
context: SemanticExecutionContext;
|
|
61
|
+
definition: TaskDefinitionV1;
|
|
62
|
+
} | {
|
|
63
|
+
status: 'unavailable';
|
|
64
|
+
reasonCode: 'task_identity_required' | 'semantic_execution_context_missing' | 'task_aggregate_snapshot_missing' | 'task_definition_missing' | 'runtime_activation_missing' | 'semantic_facts_hash_mismatch' | 'semantic_context_hash_mismatch' | 'channel_plan_hash_mismatch' | 'task_definition_hash_mismatch' | 'activation_snapshot_hash_mismatch';
|
|
65
|
+
revision?: number;
|
|
66
|
+
};
|
|
67
|
+
export declare function inspectSemanticExecutionContext(input: {
|
|
68
|
+
projectRoot: string;
|
|
69
|
+
sessionId?: string;
|
|
70
|
+
turnId?: string;
|
|
71
|
+
}): SemanticExecutionContextInspection;
|
|
57
72
|
export declare function projectDiagnosticCodeResult(result: import('@devflow-tools/sdk').TaskContextResult & {
|
|
58
73
|
selectedEvidence: EvidenceCandidateV1[];
|
|
59
74
|
}, freshnessMs: number, input: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieval-composition.d.ts","sourceRoot":"","sources":["../src/retrieval-composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,cAAc,EAGnB,KAAK,wBAAwB,EAE7B,KAAK,gBAAgB,EAGrB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"retrieval-composition.d.ts","sourceRoot":"","sources":["../src/retrieval-composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { stableRuntimeHash, resolveRuntimeActivationSnapshot, resolveStableProjectIdentity, semanticTextHash, claudeCodeHostAdapter, resolveProjectCapabilityProfile, TASK_CONTEXT_RECEIPT_TTL_MS, } from '@devflow-tools/sdk';
|
|
1
|
+
import { stableRuntimeHash, resolveRuntimeActivationSnapshot, resolveStableProjectIdentity, semanticTextHash, claudeCodeHostAdapter, projectClaudeToolName, resolveProjectCapabilityProfile, TASK_CONTEXT_RECEIPT_TTL_MS, } from '@devflow-tools/sdk';
|
|
2
2
|
import { ProjectRuntimeFactory } from '@devflow-tools/delivery-line';
|
|
3
3
|
import { openGlobalDevFlowDatabase } from '@devflow-tools/database';
|
|
4
4
|
import { RetrievalCoordinator, RetrievalSessionRepository, RetrievalTaskKernelAdapter, } from '@devflow-tools/retrieval-engine';
|
|
@@ -13,6 +13,7 @@ export { createSamplingEvidenceReranker } from './sampling-evidence-reranker.js'
|
|
|
13
13
|
// read-only projections concurrently, so serialize the coordinator execution
|
|
14
14
|
// by the immutable task identity and let every projection reuse its receipt.
|
|
15
15
|
const canonicalRetrievals = new Map();
|
|
16
|
+
const deliverySemanticInitializations = new Map();
|
|
16
17
|
const PUBLIC_EVIDENCE_TOP_K = 5;
|
|
17
18
|
export function createDeliveryContextRetrieval(input) {
|
|
18
19
|
return {
|
|
@@ -26,27 +27,12 @@ export function createDeliveryContextRetrieval(input) {
|
|
|
26
27
|
requestId: request.requestId,
|
|
27
28
|
turnId: request.turnId,
|
|
28
29
|
};
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
const resolved = await ensureDeliverySemanticTask({
|
|
31
|
+
projectRoot: request.projectRoot,
|
|
32
|
+
query: request.query,
|
|
32
33
|
identity,
|
|
33
34
|
revision: request.taskRevision,
|
|
34
|
-
activation,
|
|
35
|
-
// Delivery has an explicit skill boundary and its own role-aware
|
|
36
|
-
// retrieval policy. Do not let the generic host route classifier
|
|
37
|
-
// turn an otherwise valid delivery title into out_of_scope or an
|
|
38
|
-
// ambiguous minimum-margin escalation.
|
|
39
|
-
policy: {
|
|
40
|
-
policyHash: 'delivery-context-policy.v1',
|
|
41
|
-
budgets: {
|
|
42
|
-
hookDeadlineMs: 3_000,
|
|
43
|
-
contextTokens: 8_000,
|
|
44
|
-
responseReserveTokens: 2_000,
|
|
45
|
-
perChannelMs: { code: 1_500, memory: 800, knowledge: 1_500 },
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
35
|
});
|
|
49
|
-
persistDeliverySemanticTask({ activation, context: resolved.context, definition: resolved.definition });
|
|
50
36
|
const result = await executeProjectEvidence({
|
|
51
37
|
engines: input.engines,
|
|
52
38
|
context: resolved.context,
|
|
@@ -89,6 +75,68 @@ export function createDeliveryContextRetrieval(input) {
|
|
|
89
75
|
},
|
|
90
76
|
};
|
|
91
77
|
}
|
|
78
|
+
async function ensureDeliverySemanticTask(input) {
|
|
79
|
+
const key = stableRuntimeHash({ identity: input.identity, revision: input.revision });
|
|
80
|
+
const pending = deliverySemanticInitializations.get(key);
|
|
81
|
+
if (pending)
|
|
82
|
+
return pending;
|
|
83
|
+
const current = resolveDeliverySemanticTask(input);
|
|
84
|
+
deliverySemanticInitializations.set(key, current);
|
|
85
|
+
try {
|
|
86
|
+
return await current;
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
if (deliverySemanticInitializations.get(key) === current) {
|
|
90
|
+
deliverySemanticInitializations.delete(key);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
async function resolveDeliverySemanticTask(input) {
|
|
95
|
+
const existing = loadSemanticExecutionContext({
|
|
96
|
+
projectRoot: input.identity.projectRoot,
|
|
97
|
+
sessionId: input.identity.sessionId,
|
|
98
|
+
turnId: input.identity.turnId,
|
|
99
|
+
});
|
|
100
|
+
if (existing?.definition.revision === input.revision)
|
|
101
|
+
return existing;
|
|
102
|
+
const database = openGlobalDevFlowDatabase(undefined, { busyTimeoutMs: 500 });
|
|
103
|
+
let activation;
|
|
104
|
+
try {
|
|
105
|
+
activation = database.getOrCreateRuntimeActivation({
|
|
106
|
+
identity: input.identity,
|
|
107
|
+
revision: input.revision,
|
|
108
|
+
snapshot: resolveRuntimeActivationSnapshot({ projectRoot: input.projectRoot }),
|
|
109
|
+
}).snapshot;
|
|
110
|
+
}
|
|
111
|
+
finally {
|
|
112
|
+
database.close();
|
|
113
|
+
}
|
|
114
|
+
const resolved = await resolveTaskSemanticContext({
|
|
115
|
+
normalizedPrompt: input.query,
|
|
116
|
+
identity: input.identity,
|
|
117
|
+
revision: input.revision,
|
|
118
|
+
activation,
|
|
119
|
+
// Delivery has an explicit skill boundary and its own role-aware
|
|
120
|
+
// retrieval policy. Do not let the generic host route classifier
|
|
121
|
+
// turn an otherwise valid delivery title into out_of_scope or an
|
|
122
|
+
// ambiguous minimum-margin escalation.
|
|
123
|
+
policy: {
|
|
124
|
+
policyHash: 'delivery-context-policy.v1',
|
|
125
|
+
budgets: {
|
|
126
|
+
hookDeadlineMs: 3_000,
|
|
127
|
+
contextTokens: 8_000,
|
|
128
|
+
responseReserveTokens: 2_000,
|
|
129
|
+
perChannelMs: { code: 1_500, memory: 800, knowledge: 1_500 },
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
persistDeliverySemanticTask({
|
|
134
|
+
activation,
|
|
135
|
+
context: resolved.context,
|
|
136
|
+
definition: resolved.definition,
|
|
137
|
+
});
|
|
138
|
+
return { context: resolved.context, definition: resolved.definition };
|
|
139
|
+
}
|
|
92
140
|
/**
|
|
93
141
|
* Delivery consumes the semantic-engine authority; it never classifies a
|
|
94
142
|
* request from business words of its own. The resolver may abstain or return
|
|
@@ -219,23 +267,7 @@ function deliveryCapabilityOptions(projectRoot) {
|
|
|
219
267
|
return { pluginManifests: manifests, detectedStacks: profile.detectedStacks };
|
|
220
268
|
}
|
|
221
269
|
function closeDeliveryEngineSet(engines) {
|
|
222
|
-
|
|
223
|
-
engines.context,
|
|
224
|
-
engines.memory,
|
|
225
|
-
engines.knowledge,
|
|
226
|
-
engines.telemetry,
|
|
227
|
-
engines.codegraph,
|
|
228
|
-
engines.data,
|
|
229
|
-
];
|
|
230
|
-
for (const closeable of closeables) {
|
|
231
|
-
try {
|
|
232
|
-
const close = closeable.close;
|
|
233
|
-
close?.call(closeable);
|
|
234
|
-
}
|
|
235
|
-
catch {
|
|
236
|
-
// Continue closing independent stores.
|
|
237
|
-
}
|
|
238
|
-
}
|
|
270
|
+
engines.close();
|
|
239
271
|
}
|
|
240
272
|
function deliveryGapRequirement(role, channel) {
|
|
241
273
|
if (channel === 'code')
|
|
@@ -394,27 +426,48 @@ function releaseEvidenceIdentity() {
|
|
|
394
426
|
return releaseRunId && bundleId ? { releaseRunId, bundleId } : {};
|
|
395
427
|
}
|
|
396
428
|
export function loadSemanticExecutionContext(input) {
|
|
397
|
-
|
|
398
|
-
|
|
429
|
+
const result = inspectSemanticExecutionContext(input);
|
|
430
|
+
return result.status === 'ready'
|
|
431
|
+
? { context: result.context, definition: result.definition }
|
|
432
|
+
: null;
|
|
433
|
+
}
|
|
434
|
+
export function inspectSemanticExecutionContext(input) {
|
|
435
|
+
if (!input.sessionId || !input.turnId) {
|
|
436
|
+
return { status: 'unavailable', reasonCode: 'task_identity_required' };
|
|
437
|
+
}
|
|
399
438
|
const database = openGlobalDevFlowDatabase(undefined, { busyTimeoutMs: 250 });
|
|
400
439
|
try {
|
|
401
440
|
const latest = database.getLatestSemanticExecutionContext({
|
|
402
441
|
projectRoot: input.projectRoot, sessionId: input.sessionId, turnId: input.turnId,
|
|
403
442
|
});
|
|
404
443
|
if (!latest)
|
|
405
|
-
return
|
|
444
|
+
return { status: 'unavailable', reasonCode: 'semantic_execution_context_missing' };
|
|
406
445
|
const { context, revision } = latest;
|
|
407
446
|
const snapshot = database.getTaskAggregateSnapshot(input.projectRoot, input.sessionId, input.turnId, revision);
|
|
408
447
|
const definition = database.getTaskDefinitionV2(context.taskDefinitionHash);
|
|
409
448
|
const activation = database.getRuntimeActivation(input.projectRoot, input.sessionId, input.turnId, revision);
|
|
410
|
-
if (!snapshot
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
449
|
+
if (!snapshot)
|
|
450
|
+
return { status: 'unavailable', reasonCode: 'task_aggregate_snapshot_missing', revision };
|
|
451
|
+
if (!definition)
|
|
452
|
+
return { status: 'unavailable', reasonCode: 'task_definition_missing', revision };
|
|
453
|
+
if (!activation)
|
|
454
|
+
return { status: 'unavailable', reasonCode: 'runtime_activation_missing', revision };
|
|
455
|
+
if (snapshot.semanticFactsHash !== context.facts.factsHash) {
|
|
456
|
+
return { status: 'unavailable', reasonCode: 'semantic_facts_hash_mismatch', revision };
|
|
457
|
+
}
|
|
458
|
+
if (snapshot.semanticContextHash !== context.contextHash) {
|
|
459
|
+
return { status: 'unavailable', reasonCode: 'semantic_context_hash_mismatch', revision };
|
|
460
|
+
}
|
|
461
|
+
if (snapshot.channelPlanHash !== context.plan.planHash) {
|
|
462
|
+
return { status: 'unavailable', reasonCode: 'channel_plan_hash_mismatch', revision };
|
|
463
|
+
}
|
|
464
|
+
if (context.taskDefinitionHash !== definition.definitionHash) {
|
|
465
|
+
return { status: 'unavailable', reasonCode: 'task_definition_hash_mismatch', revision };
|
|
466
|
+
}
|
|
467
|
+
if (context.activationSnapshotHash !== activation.snapshotHash) {
|
|
468
|
+
return { status: 'unavailable', reasonCode: 'activation_snapshot_hash_mismatch', revision };
|
|
469
|
+
}
|
|
470
|
+
return { status: 'ready', revision, definition, context };
|
|
418
471
|
}
|
|
419
472
|
finally {
|
|
420
473
|
database.close();
|
|
@@ -763,7 +816,9 @@ function buildCanonicalAction(input) {
|
|
|
763
816
|
? action : 'unknown';
|
|
764
817
|
return {
|
|
765
818
|
tool: toolDefinition.tool,
|
|
766
|
-
projectedTool: context.identity.hostId === 'claude-code'
|
|
819
|
+
projectedTool: context.identity.hostId === 'claude-code'
|
|
820
|
+
? projectClaudeToolName(toolDefinition.tool)
|
|
821
|
+
: toolDefinition.tool,
|
|
767
822
|
input: input.input,
|
|
768
823
|
status: required ? 'required' : 'recommended',
|
|
769
824
|
required,
|