@devflow-tools/context-engine 0.17.7 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -2
  3. package/dist/code-evidence-producer.d.ts +29 -0
  4. package/dist/code-evidence-producer.d.ts.map +1 -0
  5. package/dist/code-evidence-producer.js +522 -0
  6. package/dist/code-evidence-producer.js.map +1 -0
  7. package/dist/code-evidence-types.d.ts +26 -0
  8. package/dist/code-evidence-types.d.ts.map +1 -0
  9. package/dist/code-evidence-types.js +2 -0
  10. package/dist/code-evidence-types.js.map +1 -0
  11. package/dist/compressor.d.ts.map +1 -1
  12. package/dist/compressor.js +2 -3
  13. package/dist/compressor.js.map +1 -1
  14. package/dist/context-budget-allocator.d.ts +5 -1
  15. package/dist/context-budget-allocator.d.ts.map +1 -1
  16. package/dist/context-budget-allocator.js +25 -3
  17. package/dist/context-budget-allocator.js.map +1 -1
  18. package/dist/context-engine.d.ts +19 -43
  19. package/dist/context-engine.d.ts.map +1 -1
  20. package/dist/context-engine.js +203 -1702
  21. package/dist/context-engine.js.map +1 -1
  22. package/dist/create-engines.d.ts +15 -19
  23. package/dist/create-engines.d.ts.map +1 -1
  24. package/dist/create-engines.js +39 -106
  25. package/dist/create-engines.js.map +1 -1
  26. package/dist/index.d.ts +7 -22
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +5 -15
  29. package/dist/index.js.map +1 -1
  30. package/dist/symbol-embedder.d.ts +1 -1
  31. package/dist/symbol-embedder.d.ts.map +1 -1
  32. package/dist/symbol-embedder.js +17 -12
  33. package/dist/symbol-embedder.js.map +1 -1
  34. package/dist/symbol-embedding-document.d.ts +4 -0
  35. package/dist/symbol-embedding-document.d.ts.map +1 -0
  36. package/dist/symbol-embedding-document.js +39 -0
  37. package/dist/symbol-embedding-document.js.map +1 -0
  38. package/dist/symbol-vector-store.d.ts +13 -1
  39. package/dist/symbol-vector-store.d.ts.map +1 -1
  40. package/dist/symbol-vector-store.js +45 -16
  41. package/dist/symbol-vector-store.js.map +1 -1
  42. package/dist/types.d.ts +1 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/package.json +12 -9
  45. package/dist/artifact-inventory.d.ts +0 -39
  46. package/dist/artifact-inventory.d.ts.map +0 -1
  47. package/dist/artifact-inventory.js +0 -224
  48. package/dist/artifact-inventory.js.map +0 -1
  49. package/dist/channel-query-planner.d.ts +0 -9
  50. package/dist/channel-query-planner.d.ts.map +0 -1
  51. package/dist/channel-query-planner.js +0 -92
  52. package/dist/channel-query-planner.js.map +0 -1
  53. package/dist/intent-parser.d.ts +0 -15
  54. package/dist/intent-parser.d.ts.map +0 -1
  55. package/dist/intent-parser.js +0 -388
  56. package/dist/intent-parser.js.map +0 -1
  57. package/dist/retrieval-gap-detector.d.ts +0 -10
  58. package/dist/retrieval-gap-detector.d.ts.map +0 -1
  59. package/dist/retrieval-gap-detector.js +0 -85
  60. package/dist/retrieval-gap-detector.js.map +0 -1
  61. package/dist/retrieval-handlers.d.ts +0 -73
  62. package/dist/retrieval-handlers.d.ts.map +0 -1
  63. package/dist/retrieval-handlers.js +0 -289
  64. package/dist/retrieval-handlers.js.map +0 -1
  65. package/dist/retrieval-ledger.d.ts +0 -3
  66. package/dist/retrieval-ledger.d.ts.map +0 -1
  67. package/dist/retrieval-ledger.js +0 -156
  68. package/dist/retrieval-ledger.js.map +0 -1
  69. package/dist/retrieval-session-controller.d.ts +0 -6
  70. package/dist/retrieval-session-controller.d.ts.map +0 -1
  71. package/dist/retrieval-session-controller.js +0 -372
  72. package/dist/retrieval-session-controller.js.map +0 -1
  73. package/dist/retrieval-task-plan.d.ts +0 -28
  74. package/dist/retrieval-task-plan.d.ts.map +0 -1
  75. package/dist/retrieval-task-plan.js +0 -232
  76. package/dist/retrieval-task-plan.js.map +0 -1
  77. package/dist/semantic-authority-merger.d.ts +0 -11
  78. package/dist/semantic-authority-merger.d.ts.map +0 -1
  79. package/dist/semantic-authority-merger.js +0 -176
  80. package/dist/semantic-authority-merger.js.map +0 -1
  81. package/dist/semantic-resolver.d.ts +0 -19
  82. package/dist/semantic-resolver.d.ts.map +0 -1
  83. package/dist/semantic-resolver.js +0 -49
  84. package/dist/semantic-resolver.js.map +0 -1
  85. package/dist/semantic-route-catalog.d.ts +0 -22
  86. package/dist/semantic-route-catalog.d.ts.map +0 -1
  87. package/dist/semantic-route-catalog.js +0 -53
  88. package/dist/semantic-route-catalog.js.map +0 -1
  89. package/dist/semantic-router.d.ts +0 -39
  90. package/dist/semantic-router.d.ts.map +0 -1
  91. package/dist/semantic-router.js +0 -153
  92. package/dist/semantic-router.js.map +0 -1
  93. package/dist/semantic-structural-evidence.d.ts +0 -20
  94. package/dist/semantic-structural-evidence.d.ts.map +0 -1
  95. package/dist/semantic-structural-evidence.js +0 -84
  96. package/dist/semantic-structural-evidence.js.map +0 -1
  97. package/dist/task-retrieval-orchestrator.d.ts +0 -46
  98. package/dist/task-retrieval-orchestrator.d.ts.map +0 -1
  99. package/dist/task-retrieval-orchestrator.js +0 -418
  100. package/dist/task-retrieval-orchestrator.js.map +0 -1
@@ -1,418 +0,0 @@
1
- import { createHash, randomUUID } from 'node:crypto';
2
- import { recommendModelTier } from '@devflow-tools/sdk';
3
- import { canonicalActionInputHash } from '@devflow-tools/sdk';
4
- import { createDefaultHostAdapterRegistry } from '@devflow-tools/sdk';
5
- import { canonicalToolFieldManifest, issueActionLease, taskSpecFromImmutableIntent, } from '@devflow-tools/sdk';
6
- import { detectProjectKnowledgeVersions } from '@devflow-tools/knowledge-engine';
7
- import { parseIntent } from './intent-parser.js';
8
- import { buildRetrievalTaskPlan } from './retrieval-task-plan.js';
9
- import { artifactIdentity } from './artifact-identity-resolver.js';
10
- function buildCanonicalNextAction(input) {
11
- const skill = normalizeSkill(input.taskPlan.activeSkill);
12
- const targetFile = input.codeFiles.find(file => file.artifactRole === 'operation_target');
13
- const target = targetFile?.path
14
- ?? input.taskPlan.targetAnchors[0];
15
- const name = inferDomainArtifactName(input.input.query, target);
16
- let tool;
17
- let toolInput = { projectRoot: input.input.projectRoot };
18
- let required = false;
19
- if (skill === 'react') {
20
- if (input.taskPlan.intent === 'performance') {
21
- tool = 'react_audit_performance';
22
- toolInput = {
23
- ...toolInput,
24
- ...(target ? { filePath: target } : {}),
25
- scope: 'related',
26
- outputMode: 'focused',
27
- contextHints: {
28
- relevantFiles: input.codeFiles.slice(0, 8).map(file => file.path),
29
- focusAreas: ['rendering', 'hooks', 'memory'],
30
- },
31
- };
32
- required = true;
33
- }
34
- else if (input.taskPlan.action === 'create') {
35
- const existingTarget = targetFile?.freshness?.exists === true;
36
- tool = existingTarget ? 'react_refactor_component' : 'react_new_component';
37
- toolInput = existingTarget
38
- ? { ...toolInput, filePath: targetFile.path }
39
- : { ...toolInput, componentName: name, props: [] };
40
- required = true;
41
- }
42
- else if (input.taskPlan.intent === 'debug' || input.taskPlan.action === 'debug') {
43
- tool = 'react_diagnose_bug';
44
- toolInput = { ...toolInput, errorMessage: input.input.query };
45
- required = true;
46
- }
47
- else if (input.taskPlan.intent === 'refactor' || input.taskPlan.action === 'modify') {
48
- tool = 'react_refactor_component';
49
- toolInput = { ...toolInput, ...(target ? { filePath: target } : {}) };
50
- required = Boolean(target);
51
- }
52
- else if (input.taskPlan.intent === 'review' && /hook|use[A-Z]|钩子/iu.test(input.input.query)) {
53
- tool = 'react_review_hooks';
54
- toolInput = { ...toolInput, ...(target ? { filePath: target } : {}) };
55
- }
56
- }
57
- else if (input.taskPlan.action === 'create') {
58
- const createTools = {
59
- nextjs: { tool: 'nextjs_new_page', field: 'pageName' },
60
- nest: { tool: 'nest_new_module', field: 'moduleName' },
61
- tailwind: { tool: 'tailwind_new_component', field: 'componentName' },
62
- taro: { tool: 'taro_new_page', field: 'pageName' },
63
- };
64
- const capability = skill ? createTools[skill] : undefined;
65
- if (capability) {
66
- tool = capability.tool;
67
- toolInput = { ...toolInput, [capability.field]: name };
68
- required = true;
69
- }
70
- }
71
- const executionAction = ['create', 'modify', 'debug'].includes(input.taskPlan.action)
72
- || input.taskPlan.intent === 'refactor';
73
- const unsupported = !tool && executionAction;
74
- if (!tool && !unsupported)
75
- return undefined;
76
- const hostAdapter = input.input.host
77
- ? createDefaultHostAdapterRegistry().list().find(adapter => adapter.id === input.input.host || adapter.aliases.includes(input.input.host))
78
- : undefined;
79
- const projection = tool && hostAdapter?.runtime
80
- ? hostAdapter.runtime.projectCanonicalTool(tool)
81
- : undefined;
82
- const hostUnsupported = Boolean(tool && projection?.status === 'unsupported');
83
- const action = {
84
- tool: tool ?? 'devflow_unsupported_action',
85
- ...(projection?.status === 'supported' && projection.hostName ? { projectedTool: projection.hostName } : {}),
86
- input: toolInput,
87
- status: unsupported || hostUnsupported ? 'unsupported' : required ? 'required' : 'recommended',
88
- required: unsupported || hostUnsupported ? false : required,
89
- ...(unsupported || hostUnsupported ? {
90
- reason: hostUnsupported
91
- ? projection?.reason ?? `Host ${input.input.host ?? 'unknown'} cannot project ${tool}`
92
- : skill
93
- ? `No canonical ${input.taskPlan.action} action is registered for active Skill ${skill}`
94
- : `No active domain Skill is bound to ${input.taskPlan.action}`,
95
- } : {}),
96
- binding: {
97
- projectRoot: input.input.projectRoot,
98
- sessionId: input.input.sessionId?.trim() || 'anonymous',
99
- ...(input.input.executionId ? { executionId: input.input.executionId } : {}),
100
- requestId: input.requestId,
101
- ...(input.input.turnId ? { turnId: input.input.turnId } : {}),
102
- ...(input.input.intentArtifact ? { intentArtifactHash: input.input.intentArtifact.artifactHash } : {}),
103
- ...(input.input.queryPlan ? { queryPlanHash: input.input.queryPlan.planHash } : {}),
104
- ...(input.taskPlan.activeSkill ? { activeSkill: input.taskPlan.activeSkill } : {}),
105
- targetAnchors: [...new Set([
106
- ...input.taskPlan.targetAnchors,
107
- ...input.codeFiles.filter(file => file.artifactRole === 'operation_target').map(file => file.path),
108
- ])].slice(0, 16),
109
- requiredContextReceipt: input.contextHash,
110
- requiredPolicyFacets: [...input.taskPlan.requiredPolicyFacets],
111
- operationMode: canonicalOperationMode(input.taskPlan.action, input.taskPlan.intent, Boolean(targetFile?.freshness?.exists)),
112
- normalizedInputHash: canonicalActionInputHash(toolInput),
113
- operationTargets: target ? [{
114
- path: target,
115
- expectedState: targetFile?.freshness?.exists === true ? 'existing'
116
- : targetFile?.freshness?.exists === false ? 'missing' : 'unknown',
117
- ...(targetFile?.freshness?.currentHash ? { contentHash: targetFile.freshness.currentHash } : {}),
118
- }] : [],
119
- ...(tool === 'react_audit_performance' || tool === 'react_review_hooks' ? {
120
- safeInputVariations: {
121
- componentName: { type: 'string', enum: [name] },
122
- maxFindings: { type: 'number', minimum: 1, maximum: 50 },
123
- scope: { type: 'string', enum: ['target', 'related'] },
124
- },
125
- } : {}),
126
- },
127
- verificationPlan: buildVerificationPlan(input.taskPlan),
128
- };
129
- if (input.input.intentArtifact && !unsupported && !hostUnsupported) {
130
- const manifest = canonicalToolFieldManifest(action);
131
- const taskSpec = taskSpecFromImmutableIntent(input.input.intentArtifact);
132
- const targets = (action.binding.operationTargets ?? []).map(operationTarget => {
133
- const identity = artifactIdentity(taskSpec.identity.projectId, {
134
- path: operationTarget.path,
135
- kind: 'source',
136
- contentHash: operationTarget.contentHash,
137
- symbols: [name],
138
- });
139
- return {
140
- identityId: identity.identityId,
141
- path: operationTarget.path,
142
- expectedState: operationTarget.expectedState,
143
- ...(operationTarget.contentHash ? { contentHash: operationTarget.contentHash } : {}),
144
- };
145
- });
146
- action.actionLease = issueActionLease({
147
- taskSpecHash: taskSpec.specHash,
148
- action,
149
- manifest,
150
- projectRoot: input.input.projectRoot,
151
- targets,
152
- });
153
- }
154
- return action;
155
- }
156
- function buildVerificationPlan(plan) {
157
- const steps = [];
158
- if (plan.requiredPolicyFacets.includes('formatting')) {
159
- steps.push({
160
- kind: 'formatter',
161
- required: true,
162
- policyFacet: 'formatting',
163
- mode: plan.action === 'format' ? 'write' : 'check',
164
- });
165
- }
166
- if (plan.requiredPolicyFacets.includes('testing') || ['create', 'modify', 'debug'].includes(plan.action)) {
167
- steps.push({ kind: 'typecheck', required: true });
168
- }
169
- if (plan.requiredPolicyFacets.includes('testing')) {
170
- steps.push({ kind: 'test', required: true, policyFacet: 'testing' });
171
- }
172
- if (plan.requiredPolicyFacets.includes('build')) {
173
- steps.push({ kind: 'build', required: true, policyFacet: 'build' });
174
- }
175
- if (plan.requiredPolicyFacets.includes('generated_files')) {
176
- steps.push({ kind: 'generated_files', required: true, policyFacet: 'generated_files' });
177
- }
178
- return steps;
179
- }
180
- function normalizeSkill(value) {
181
- return value?.normalize('NFKC').trim().replace(/^\/?devflow:/iu, '').toLocaleLowerCase('en-US') || undefined;
182
- }
183
- function inferDomainArtifactName(query, target) {
184
- const targetName = target?.split('/').at(-1)?.replace(/\.[^.]+$/u, '');
185
- if (targetName && /^[A-Za-z_$][A-Za-z0-9_$]*$/u.test(targetName))
186
- return targetName;
187
- const explicit = query.match(/\b([A-Z][A-Za-z0-9_$]{2,})\s+(?:component|page|module)\b/u)?.[1];
188
- return explicit ?? 'NewComponent';
189
- }
190
- export function buildTaskContextEnvelope(input) {
191
- const issuedAt = Date.now();
192
- const requestId = input.requestId?.trim() || `ctx:${randomUUID()}`;
193
- const versions = detectProjectKnowledgeVersions(input.projectRoot);
194
- const taskPlan = input.taskPlan ?? buildRetrievalTaskPlan({
195
- query: input.query,
196
- parsedIntent: parseIntent(input.query),
197
- targetAnchors: input.targetAnchors,
198
- command: input.command,
199
- activeSkill: input.activeSkill,
200
- });
201
- const intent = taskPlan.intent;
202
- const requiredFiles = getGroupFiles(input.result.requiredFiles);
203
- const optionalFiles = getGroupFiles(input.result.optionalFiles);
204
- const keySymbols = Array.isArray(input.result.keySymbols) ? input.result.keySymbols : [];
205
- const allFiles = [...new Set([
206
- ...requiredFiles,
207
- ...optionalFiles,
208
- ])];
209
- const required = new Set(requiredFiles);
210
- const codeFiles = allFiles.map(path => {
211
- const explicitRole = input.fileRoles?.get(path);
212
- const role = explicitRole?.role ?? inferFileRole(path, required.has(path));
213
- return {
214
- path,
215
- role,
216
- artifactRole: explicitRole?.artifactRole ?? (role === 'target' ? 'operation_target' : 'supporting_file'),
217
- score: explicitRole?.score ?? (required.has(path) ? 1 : 0.55),
218
- symbols: keySymbols.filter(symbol => symbol.file === path).map(symbol => symbol.name),
219
- evidence: explicitRole?.evidence ?? [`projected from ${required.has(path) ? 'required' : 'optional'} CodeGraph context`],
220
- ...(input.fileFreshness?.get(path) ? { freshness: input.fileFreshness.get(path) } : {}),
221
- };
222
- }).sort((left, right) => roleOrder(left.role) - roleOrder(right.role)
223
- || right.score - left.score || left.path.localeCompare(right.path));
224
- const memoryEntries = (input.memoryHits ?? []).flatMap(hit => {
225
- const entry = hit?.entry;
226
- if (!entry?.id || typeof hit?.score !== 'number')
227
- return [];
228
- return [{
229
- id: String(entry.id),
230
- title: String(entry.title ?? entry.content ?? '').slice(0, 240),
231
- type: String(entry.type ?? entry.category ?? 'unknown'),
232
- score: hit.score,
233
- applicability: Array.isArray(hit.applicability) ? hit.applicability.map(String) : [],
234
- evidenceStatus: entry.evidenceStatus === 'verified' ? 'verified' : 'unverified',
235
- ...(hit.scoreDetails ? { scoreDetails: hit.scoreDetails } : {}),
236
- }];
237
- });
238
- const knowledgeEntries = (input.knowledgeHits ?? []).flatMap(entry => {
239
- if (!entry?.id || !entry?.source || !(entry.excerpt || entry.content))
240
- return [];
241
- return [{
242
- id: String(entry.id),
243
- source: String(entry.source),
244
- title: String(entry.title ?? entry.source),
245
- excerpt: String(entry.excerpt ?? entry.content).slice(0, 900),
246
- url: String(entry.url ?? ''),
247
- ...(entry.version ? { version: String(entry.version) } : {}),
248
- score: typeof entry.score === 'number' ? entry.score : 0,
249
- applicability: Array.isArray(entry.applicability) ? entry.applicability.map(String) : [],
250
- ...(entry.scoreDetails ? { scoreDetails: entry.scoreDetails } : {}),
251
- }];
252
- });
253
- const warningRecords = (Array.isArray(input.result.warnings) ? input.result.warnings : []).map(reason => ({
254
- category: reason.split(':')[0] || 'retrieval_degraded',
255
- reason,
256
- fallback: fallbackForWarning(reason),
257
- }));
258
- const materialWarnings = warningRecords.filter(warning => warning.category !== 'knowledge_not_required');
259
- const targetSelected = codeFiles.some(file => file.artifactRole === 'operation_target');
260
- const qualityStatus = !targetSelected && intent !== 'memory' && intent !== 'knowledge'
261
- ? 'insufficient'
262
- : materialWarnings.length > 0 ? 'degraded' : 'healthy';
263
- const allowedFollowups = qualityStatus === 'insufficient'
264
- ? [{ kind: 'targeted_symbol_search', target: input.targetAnchors[0], reason: 'No verified target file was selected.' }]
265
- : [];
266
- const topLevelModules = new Set(codeFiles.map(file => file.path.split('/')[0]).filter(Boolean));
267
- const modelRecommendation = recommendModelTier({
268
- query: input.query,
269
- intent,
270
- targetCount: codeFiles.length,
271
- crossModuleScope: topLevelModules.size > 1,
272
- ambiguity: qualityStatus === 'insufficient',
273
- riskHints: Array.isArray(input.result.riskHints) ? input.result.riskHints : [],
274
- verificationRequired: ['debug', 'feature', 'refactor', 'performance'].includes(intent),
275
- });
276
- const requestPayload = {
277
- requestId,
278
- ...(input.turnId ? { turnId: input.turnId } : {}),
279
- sessionId: input.sessionId?.trim() || 'anonymous',
280
- ...(input.executionId ? { executionId: input.executionId } : {}),
281
- projectRoot: input.projectRoot,
282
- host: input.host ?? 'unknown',
283
- ...(input.command ? { command: input.command } : {}),
284
- ...(taskPlan.activeSkill ? { activeSkill: taskPlan.activeSkill } : {}),
285
- query: input.query,
286
- intent,
287
- action: taskPlan.action,
288
- classification: taskPlan.classification,
289
- requiredPolicyFacets: taskPlan.requiredPolicyFacets,
290
- entities: taskPlan.entities,
291
- symbols: taskPlan.symbols,
292
- knowledgeNeeds: taskPlan.knowledgeNeeds,
293
- targetAnchors: input.targetAnchors.slice(0, 16),
294
- projectVersions: Object.fromEntries(Object.entries(versions).filter((entry) => Boolean(entry[1]))),
295
- tokenBudget: input.tokenBudget,
296
- ...(input.intentArtifact ? { intentArtifactHash: input.intentArtifact.artifactHash } : {}),
297
- ...(input.queryPlan ? { queryPlanHash: input.queryPlan.planHash } : {}),
298
- };
299
- const codePayload = {
300
- files: codeFiles,
301
- symbols: keySymbols.map(symbol => symbol.name).slice(0, 40),
302
- ...(input.graphAmbiguities?.length ? { ambiguities: input.graphAmbiguities } : {}),
303
- ...(input.codeBudget ? { budget: input.codeBudget } : {}),
304
- };
305
- const memoryPayload = { entries: memoryEntries };
306
- const knowledgePayload = { entries: knowledgeEntries };
307
- const qualityPayload = {
308
- status: qualityStatus,
309
- code: {
310
- selected: codeFiles.length,
311
- rejected: input.rejectedCodeRelations ?? 0,
312
- targetHashCurrent: codeFiles
313
- .filter(file => file.artifactRole === 'operation_target')
314
- .every(file => file.freshness?.current === true),
315
- },
316
- memory: { selected: memoryEntries.length, rejected: input.memoryRejected ?? 0, threshold: 0.35 },
317
- knowledge: {
318
- selected: knowledgeEntries.length,
319
- rejected: input.knowledgeRejected ?? 0,
320
- compatibleSources: [...new Set(knowledgeEntries.map(entry => entry.source))],
321
- },
322
- };
323
- const contextHash = createHash('sha256').update(JSON.stringify({
324
- request: requestPayload,
325
- code: codePayload,
326
- memory: memoryPayload,
327
- knowledge: knowledgePayload,
328
- quality: qualityPayload,
329
- })).digest('hex');
330
- const canonicalNextAction = buildCanonicalNextAction({
331
- input,
332
- taskPlan,
333
- requestId,
334
- contextHash,
335
- codeFiles,
336
- });
337
- const envelopeWithoutReceipt = {
338
- request: requestPayload,
339
- code: codePayload,
340
- memory: memoryPayload,
341
- knowledge: knowledgePayload,
342
- quality: qualityPayload,
343
- allowedFollowups,
344
- ...(canonicalNextAction ? { canonicalNextAction } : {}),
345
- warnings: warningRecords,
346
- modelRecommendation,
347
- };
348
- return {
349
- ...envelopeWithoutReceipt,
350
- receipt: {
351
- requestId,
352
- issuedAt,
353
- expiresAt: issuedAt + 5 * 60_000,
354
- hash: createHash('sha256').update(JSON.stringify(envelopeWithoutReceipt)).digest('hex'),
355
- contextHash,
356
- ...(input.intentArtifact ? { intentArtifactHash: input.intentArtifact.artifactHash } : {}),
357
- ...(input.queryPlan ? { queryPlanHash: input.queryPlan.planHash } : {}),
358
- },
359
- };
360
- }
361
- function getGroupFiles(group) {
362
- if (Array.isArray(group))
363
- return group.filter((item) => typeof item === 'string');
364
- if (!group || typeof group !== 'object')
365
- return [];
366
- const files = group.files;
367
- return Array.isArray(files) ? files.filter((item) => typeof item === 'string') : [];
368
- }
369
- function canonicalIntent(query, fallback) {
370
- if (/performance|profil(?:e|ing)|render|卡顿|性能|渲染/iu.test(query))
371
- return 'performance';
372
- if (/memory|remember|记忆|记住/iu.test(query))
373
- return 'memory';
374
- if (/knowledge|docs?|知识|文档/iu.test(query))
375
- return 'knowledge';
376
- return ['debug', 'feature', 'refactor', 'understand', 'review'].includes(fallback)
377
- ? fallback
378
- : 'unknown';
379
- }
380
- function inferFileRole(path, required) {
381
- if (required)
382
- return 'target';
383
- if (/(?:^|\/)routes?(?:\/|\.)/iu.test(path))
384
- return 'route';
385
- if (/\.(?:css|scss|sass|less|styl|svg|png|jpe?g|webp)$/iu.test(path))
386
- return 'resource';
387
- if (/\.(?:test|spec)\.[cm]?[jt]sx?$/iu.test(path))
388
- return 'test';
389
- if (/config/iu.test(path))
390
- return 'config';
391
- return 'dependency';
392
- }
393
- function roleOrder(role) {
394
- return ['target', 'caller', 'resource', 'dependency', 'route', 'test', 'config'].indexOf(role);
395
- }
396
- function fallbackForWarning(reason) {
397
- if (reason.includes('vector'))
398
- return 'lexical retrieval';
399
- if (reason.includes('codegraph'))
400
- return 'accepted graph relations only';
401
- if (reason.includes('knowledge'))
402
- return 'omit weak knowledge';
403
- return undefined;
404
- }
405
- function canonicalOperationMode(action, intent, targetExists) {
406
- if (action === 'create')
407
- return targetExists ? 'modify' : 'create';
408
- if (action === 'modify' || intent === 'refactor')
409
- return 'modify';
410
- if (action === 'debug' || intent === 'debug')
411
- return 'debug';
412
- if (action === 'format')
413
- return 'format';
414
- if (intent === 'performance' || intent === 'review' || intent === 'understand')
415
- return 'analyze';
416
- return 'unknown';
417
- }
418
- //# sourceMappingURL=task-retrieval-orchestrator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-retrieval-orchestrator.js","sourceRoot":"","sources":["../src/task-retrieval-orchestrator.ts"],"names":[],"mappings":"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"}