@linghun/tui 0.1.3 → 0.1.4
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/background-control-runtime.js +29 -29
- package/dist/cache-command-runtime.js +3 -3
- package/dist/capability-runtime.js +17 -17
- package/dist/{chunk-QD4SCW4A.js → chunk-2JFSRRK7.js} +21 -21
- package/dist/{chunk-6JPUBF7B.js → chunk-2JZBPXHF.js} +12 -12
- package/dist/{chunk-J7AAPUTV.js → chunk-33WA4BDG.js} +4 -4
- package/dist/{chunk-NWZ44SFI.js → chunk-3KRRVLS4.js} +111 -78
- package/dist/{chunk-ZPFOP557.js → chunk-4UER2AKI.js} +0 -190
- package/dist/{chunk-YBTXLLO5.js → chunk-7ODJHN53.js} +1 -1
- package/dist/{chunk-6DBBXNEG.js → chunk-7VGFNZPN.js} +38 -2
- package/dist/{chunk-QXV2N4F2.js → chunk-AFNWUI6R.js} +1 -1
- package/dist/{chunk-G7O26P5X.js → chunk-BRNV6757.js} +1 -1
- package/dist/{chunk-7XAOTGHZ.js → chunk-CL3U56EI.js} +1 -1
- package/dist/{chunk-OH35XDD4.js → chunk-HMGGPN4J.js} +1 -1
- package/dist/{chunk-CQCJGMXG.js → chunk-IU7NZO6B.js} +2 -2
- package/dist/{chunk-3LT6OWQ2.js → chunk-IWBV4CEI.js} +1 -1
- package/dist/{chunk-DEIYY6NI.js → chunk-JY2DO7OF.js} +4 -155
- package/dist/{chunk-OV5OT66G.js → chunk-KI7NO6IF.js} +216 -5
- package/dist/{chunk-KKZBBCHK.js → chunk-NL4M3V5D.js} +1 -1
- package/dist/{chunk-IQS34W5A.js → chunk-NR3MFRPO.js} +1 -1
- package/dist/{chunk-ESAACKVG.js → chunk-R7BB45CP.js} +1 -1
- package/dist/{chunk-RDTVAQBD.js → chunk-RKFC3V6A.js} +112 -26
- package/dist/{chunk-PBIPV4LD.js → chunk-RMXEIZYR.js} +1 -1
- package/dist/{chunk-4TO2LDMP.js → chunk-SEVD3KES.js} +2 -2
- package/dist/{chunk-5OZEJQBH.js → chunk-T2V2USR3.js} +1 -1
- package/dist/{chunk-XYY5LRSF.js → chunk-T7LHFTVM.js} +3 -3
- package/dist/{chunk-7RZE45OT.js → chunk-UN3MMVE4.js} +1 -1
- package/dist/{chunk-TO6IN4LA.js → chunk-UUWG4VXV.js} +5 -195
- package/dist/{chunk-GYHEUVR2.js → chunk-UYEVRXUA.js} +3 -3
- package/dist/{chunk-RDGM4RUE.js → chunk-VZFP7NWI.js} +1 -1
- package/dist/{chunk-7ZMDQZ22.js → chunk-W6O7KDNM.js} +1 -1
- package/dist/{chunk-2YL5VKJ5.js → chunk-WO56RSMP.js} +1 -1
- package/dist/{chunk-BEDD7OFL.js → chunk-WRVHCSM2.js} +24 -8
- package/dist/{chunk-EGHM55EV.js → chunk-WXQSF2AS.js} +3 -3
- package/dist/{chunk-Q57WS7YZ.js → chunk-ZNAYWBBI.js} +2 -2
- package/dist/command-panel-runtime.js +16 -16
- package/dist/compact-cache-command-runtime.js +29 -29
- package/dist/compact-preflight-runtime.js +10 -10
- package/dist/connector-runtime.js +18 -18
- package/dist/deferred-tools-catalog.d.ts +2 -1
- package/dist/deferred-tools-catalog.d.ts.map +1 -1
- package/dist/deferred-tools-catalog.js +3 -1
- package/dist/details-status-runtime.js +16 -16
- package/dist/evidence-runtime.d.ts.map +1 -1
- package/dist/evidence-runtime.js +6 -6
- package/dist/extension-command-runtime.js +3 -3
- package/dist/extension-slash-runtime.js +17 -17
- package/dist/failure-learning-command-runtime.js +17 -17
- package/dist/final-answer-gate.d.ts +0 -1
- package/dist/final-answer-gate.d.ts.map +1 -1
- package/dist/final-answer-gate.js +2 -4
- package/dist/git-command-runtime.js +17 -17
- package/dist/handoff-session-runtime.js +3 -3
- package/dist/headless-bench-runtime.d.ts +1 -19
- package/dist/headless-bench-runtime.d.ts.map +1 -1
- package/dist/headless-bench-runtime.js +1 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -42
- package/dist/job-agent-command-runtime.js +16 -16
- package/dist/mcp-index-runtime.d.ts +8 -0
- package/dist/mcp-index-runtime.d.ts.map +1 -1
- package/dist/mcp-index-runtime.js +19 -17
- package/dist/memory-command-runtime.js +17 -17
- package/dist/meta-scheduler-runtime.js +2 -2
- package/dist/model-command-runtime.js +17 -17
- package/dist/model-doctor-runtime.d.ts +1 -0
- package/dist/model-doctor-runtime.d.ts.map +1 -1
- package/dist/model-doctor-runtime.js +1 -1
- package/dist/model-loop-runtime.d.ts +15 -1
- package/dist/model-loop-runtime.d.ts.map +1 -1
- package/dist/model-loop-runtime.js +29 -1
- package/dist/model-prompt-runtime.d.ts.map +1 -1
- package/dist/model-prompt-runtime.js +3 -3
- package/dist/model-stream-runtime.js +29 -29
- package/dist/model-tool-runtime.d.ts +7 -0
- package/dist/model-tool-runtime.d.ts.map +1 -1
- package/dist/model-tool-runtime.js +31 -29
- package/dist/permission-approval-runtime.js +29 -29
- package/dist/provider-loop-runtime.js +3 -3
- package/dist/remote-command-runtime.js +17 -17
- package/dist/shell/components/ProductBlock.js +2 -2
- package/dist/shell/components/ShellApp.js +12 -12
- package/dist/shell/ink-renderer.js +12 -12
- package/dist/shell/view-model.js +4 -4
- package/dist/slash-command-runtime.js +29 -29
- package/dist/terminal-readiness-runtime.js +3 -3
- package/dist/tui-agent-job-runtime.js +4 -4
- package/dist/tui-context-runtime.js +3 -3
- package/dist/tui-model-runtime.js +2 -2
- package/dist/tui-output-surface.js +5 -5
- package/dist/verification-command-runtime.js +5 -5
- package/dist/workflow-command-runtime.js +16 -16
- package/package.json +4 -4
- package/dist/{chunk-Z265MCGC.js → chunk-VWEAK3UV.js} +3 -3
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
extractStructuredFinalAnswerClaims,
|
|
5
5
|
finalAnswerHasCompletenessClassification,
|
|
6
6
|
hasArchitectureEvidenceForClaims
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3KRRVLS4.js";
|
|
8
8
|
import {
|
|
9
9
|
detectArchitectureDrift
|
|
10
10
|
} from "./chunk-MVONSJEN.js";
|
|
@@ -170,16 +170,12 @@ function isBetaVerdictEvidence(item) {
|
|
|
170
170
|
) || hasReportWriteEvidence([item]);
|
|
171
171
|
}
|
|
172
172
|
function checkClaimSupport(claim, context) {
|
|
173
|
-
const headlessRisk = createHeadlessBenchDiagnosticRiskSummary(context);
|
|
174
|
-
const validationContractRisk = createHeadlessBenchValidationContractRiskSummary(context);
|
|
175
173
|
const structuredClaims = extractStructuredFinalAnswerClaims(claim);
|
|
176
174
|
if (structuredClaims.some((item) => item.kind === "beta_readiness")) {
|
|
177
175
|
return {
|
|
178
176
|
status: "needs_disclaimer",
|
|
179
177
|
unsupportedClaims: [
|
|
180
|
-
...structuredClaims.filter((item) => item.kind === "beta_readiness").map((item) => item.phrase)
|
|
181
|
-
...validationContractRisk ? [validationContractRisk] : [],
|
|
182
|
-
...headlessRisk ? [headlessRisk] : []
|
|
178
|
+
...structuredClaims.filter((item) => item.kind === "beta_readiness").map((item) => item.phrase)
|
|
183
179
|
],
|
|
184
180
|
verdict: createPhase15BetaVerdictScope(context.evidence)
|
|
185
181
|
};
|
|
@@ -187,26 +183,7 @@ function checkClaimSupport(claim, context) {
|
|
|
187
183
|
if (structuredClaims.length === 0) {
|
|
188
184
|
const nlCheck = detectNaturalLanguageHighRiskClaims(claim);
|
|
189
185
|
if (nlCheck.status !== "passed") {
|
|
190
|
-
return
|
|
191
|
-
...nlCheck,
|
|
192
|
-
unsupportedClaims: [
|
|
193
|
-
...nlCheck.unsupportedClaims,
|
|
194
|
-
...validationContractRisk ? [validationContractRisk] : [],
|
|
195
|
-
...headlessRisk ? [headlessRisk] : []
|
|
196
|
-
]
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
if (validationContractRisk) {
|
|
200
|
-
return {
|
|
201
|
-
status: "needs_disclaimer",
|
|
202
|
-
unsupportedClaims: [validationContractRisk]
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
if (headlessRisk) {
|
|
206
|
-
return {
|
|
207
|
-
status: "needs_disclaimer",
|
|
208
|
-
unsupportedClaims: [headlessRisk]
|
|
209
|
-
};
|
|
186
|
+
return nlCheck;
|
|
210
187
|
}
|
|
211
188
|
return { status: "passed", unsupportedClaims: [] };
|
|
212
189
|
}
|
|
@@ -218,186 +195,20 @@ function checkClaimSupport(claim, context) {
|
|
|
218
195
|
return {
|
|
219
196
|
status: "needs_disclaimer",
|
|
220
197
|
unsupportedClaims: [
|
|
221
|
-
...extended.verdict.matchedClaims.map((item) => item.phrase)
|
|
222
|
-
...validationContractRisk ? [validationContractRisk] : [],
|
|
223
|
-
...headlessRisk ? [headlessRisk] : []
|
|
198
|
+
...extended.verdict.matchedClaims.map((item) => item.phrase)
|
|
224
199
|
]
|
|
225
200
|
};
|
|
226
201
|
}
|
|
227
202
|
}
|
|
228
203
|
const verdict = evaluateFinalAnswerClaims(claim, context.evidence);
|
|
229
204
|
if (verdict.status === "passed") {
|
|
230
|
-
if (validationContractRisk) {
|
|
231
|
-
return {
|
|
232
|
-
status: "needs_disclaimer",
|
|
233
|
-
unsupportedClaims: [validationContractRisk]
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
if (headlessRisk) {
|
|
237
|
-
return {
|
|
238
|
-
status: "needs_disclaimer",
|
|
239
|
-
unsupportedClaims: [headlessRisk]
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
205
|
return { status: "passed", unsupportedClaims: [] };
|
|
243
206
|
}
|
|
244
207
|
return {
|
|
245
208
|
status: "needs_disclaimer",
|
|
246
|
-
unsupportedClaims:
|
|
247
|
-
...structuredClaims.map((item) => item.phrase),
|
|
248
|
-
...validationContractRisk ? [validationContractRisk] : [],
|
|
249
|
-
...headlessRisk ? [headlessRisk] : []
|
|
250
|
-
]
|
|
209
|
+
unsupportedClaims: structuredClaims.map((item) => item.phrase)
|
|
251
210
|
};
|
|
252
211
|
}
|
|
253
|
-
function createHeadlessBenchValidationContractRiskSummary(context) {
|
|
254
|
-
const tools = context.tools;
|
|
255
|
-
if (tools.headlessBench?.enabled !== true) return void 0;
|
|
256
|
-
const items = tools.validationContract?.items ?? [];
|
|
257
|
-
if (items.length === 0) return void 0;
|
|
258
|
-
const risks = items.map((item) => summarizeValidationContractItemRisk(item, context.evidence)).filter((risk) => Boolean(risk));
|
|
259
|
-
if (risks.length === 0) return void 0;
|
|
260
|
-
return `validation contract needs validation: ${risks.slice(0, 4).join("; ")}`;
|
|
261
|
-
}
|
|
262
|
-
function summarizeValidationContractItemRisk(item, evidence) {
|
|
263
|
-
const matching = collectMatchingValidationEvidence(item, evidence);
|
|
264
|
-
if (matching.some((entry) => entry.ok === true)) {
|
|
265
|
-
if (item.kind === "service" && item.validation === "semantic" && !hasSemanticServiceEvidence(item, matching, evidence)) {
|
|
266
|
-
const subject2 = item.path ?? item.target ?? item.id;
|
|
267
|
-
return `${item.kind} ${subject2} missing semantic response probe evidence; status/readiness alone is not enough`;
|
|
268
|
-
}
|
|
269
|
-
return void 0;
|
|
270
|
-
}
|
|
271
|
-
const subject = item.path ?? item.target ?? item.id;
|
|
272
|
-
if (matching.some((entry) => entry.ok === false)) {
|
|
273
|
-
return `${item.kind} ${subject} failed explicit ${item.requiredTool}; needs_repair before final`;
|
|
274
|
-
}
|
|
275
|
-
return `${item.kind} ${subject} missing explicit ${item.requiredTool}`;
|
|
276
|
-
}
|
|
277
|
-
function collectMatchingValidationEvidence(item, evidence) {
|
|
278
|
-
return evidence.flatMap((record) => readValidationEvidence(record)).filter(
|
|
279
|
-
(entry) => entry.kind === item.kind && entry.tool === item.requiredTool && validationEvidenceSubjectMatches(item, entry)
|
|
280
|
-
);
|
|
281
|
-
}
|
|
282
|
-
function readValidationEvidence(evidence) {
|
|
283
|
-
if (!evidence.data || typeof evidence.data !== "object") return [];
|
|
284
|
-
const value = evidence.data.validationEvidence;
|
|
285
|
-
if (!Array.isArray(value)) return [];
|
|
286
|
-
return value.map((entry) => entry && typeof entry === "object" ? entry : void 0).filter((entry) => Boolean(entry));
|
|
287
|
-
}
|
|
288
|
-
function validationEvidenceSubjectMatches(item, evidence) {
|
|
289
|
-
if (item.path) return validationPathsMatch(evidence.path, item.path);
|
|
290
|
-
if (item.target) return normalizeValidationTarget(evidence.target) === normalizeValidationTarget(item.target);
|
|
291
|
-
return false;
|
|
292
|
-
}
|
|
293
|
-
function validationPathsMatch(evidencePath, contractPath) {
|
|
294
|
-
const evidence = normalizeValidationPath(evidencePath);
|
|
295
|
-
const contract = normalizeValidationPath(contractPath);
|
|
296
|
-
if (!evidence || !contract) return false;
|
|
297
|
-
if (evidence === contract) return true;
|
|
298
|
-
return stripKnownWorkspaceRoot(evidence) === stripKnownWorkspaceRoot(contract);
|
|
299
|
-
}
|
|
300
|
-
function stripKnownWorkspaceRoot(path) {
|
|
301
|
-
for (const prefix of ["/app/", "/workspace/"]) {
|
|
302
|
-
if (path.startsWith(prefix)) return path.slice(prefix.length);
|
|
303
|
-
}
|
|
304
|
-
return path;
|
|
305
|
-
}
|
|
306
|
-
function normalizeValidationPath(path) {
|
|
307
|
-
if (!path) return void 0;
|
|
308
|
-
return path.replace(/\\/gu, "/").replace(/\/$/u, "");
|
|
309
|
-
}
|
|
310
|
-
function normalizeValidationTarget(target) {
|
|
311
|
-
if (!target) return void 0;
|
|
312
|
-
try {
|
|
313
|
-
const url = target.startsWith("http://") || target.startsWith("https://") ? new URL(target) : new URL(`http://${target}`);
|
|
314
|
-
const port = url.port || (url.protocol === "https:" ? "443" : "80");
|
|
315
|
-
const path = target.startsWith("http://") || target.startsWith("https://") ? url.pathname.replace(/\/$/u, "") : "";
|
|
316
|
-
return `${url.hostname}:${port}${path}`;
|
|
317
|
-
} catch {
|
|
318
|
-
return target.replace(/\/$/u, "");
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
function hasSemanticServiceEvidence(item, matching, evidence) {
|
|
322
|
-
const tokens = item.semanticTokens ?? [];
|
|
323
|
-
if (matching.some((entry) => serviceFetchEvidenceHasSemanticChecks(entry, tokens))) return true;
|
|
324
|
-
return evidence.some((record) => commandOrVerificationEvidenceHasSemanticProbe(record, tokens));
|
|
325
|
-
}
|
|
326
|
-
function serviceFetchEvidenceHasSemanticChecks(entry, tokens) {
|
|
327
|
-
if (entry.ok !== true) return false;
|
|
328
|
-
const fetch = readRecord(entry.checks?.fetch);
|
|
329
|
-
const bodyContains = readStringList(fetch?.bodyContains);
|
|
330
|
-
if (bodyContains.length === 0) return false;
|
|
331
|
-
if (tokens.length === 0) return true;
|
|
332
|
-
const haystack = bodyContains.join("\n").toLowerCase();
|
|
333
|
-
return tokens.some((token) => haystack.includes(token.toLowerCase()));
|
|
334
|
-
}
|
|
335
|
-
function commandOrVerificationEvidenceHasSemanticProbe(record, tokens) {
|
|
336
|
-
if (record.kind === "test_result" && record.supportsClaims.includes("verification_passed")) return true;
|
|
337
|
-
if (record.kind !== "command_output") return false;
|
|
338
|
-
if (!record.supportsClaims.includes("bash_exit_0")) return false;
|
|
339
|
-
const semanticProbe = readRecord(readEvidenceDataRecord(record, "semanticProbe"));
|
|
340
|
-
const semanticProbeTokens = readStringList(semanticProbe?.tokens);
|
|
341
|
-
const haystack = `${record.summary}
|
|
342
|
-
${record.source}
|
|
343
|
-
${semanticProbeTokens.join("\n")}`.toLowerCase();
|
|
344
|
-
const matchedTokens = tokens.filter((token) => haystack.includes(token.toLowerCase()));
|
|
345
|
-
return matchedTokens.length >= Math.min(2, tokens.length);
|
|
346
|
-
}
|
|
347
|
-
function readRecord(value) {
|
|
348
|
-
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
349
|
-
}
|
|
350
|
-
function readStringList(value) {
|
|
351
|
-
if (typeof value === "string" && value.trim()) return [value];
|
|
352
|
-
if (!Array.isArray(value)) return [];
|
|
353
|
-
return value.filter((item) => typeof item === "string" && item.trim().length > 0);
|
|
354
|
-
}
|
|
355
|
-
function createHeadlessBenchDiagnosticRiskSummary(context) {
|
|
356
|
-
const tools = context.tools;
|
|
357
|
-
if (tools.headlessBench?.enabled !== true) return void 0;
|
|
358
|
-
const risky = (tools.recentDiagnostics ?? []).slice(0, 10).filter(
|
|
359
|
-
(diagnostic) => (diagnostic.severity === "recoverable" || diagnostic.severity === "blocking") && (diagnostic.type === "service_readiness" || diagnostic.type === "artifact_preservation" || diagnostic.type === "binary_tool_missing" || diagnostic.type === "missing_command" || diagnostic.type === "timeout" || diagnostic.type === "provider_or_network") && !isDiagnosticRiskResolved(diagnostic, context.evidence)
|
|
360
|
-
);
|
|
361
|
-
if (risky.length === 0) return void 0;
|
|
362
|
-
return `headless bench risk: ${risky.slice(0, 3).map((diagnostic) => `${diagnostic.type}: ${diagnostic.evidence ?? ""}`.trim()).join("; ")}`;
|
|
363
|
-
}
|
|
364
|
-
function isDiagnosticRiskResolved(diagnostic, evidence) {
|
|
365
|
-
if (diagnostic.type === "service_readiness" || diagnostic.type === "timeout") {
|
|
366
|
-
const target = readDiagnosticServiceTarget(diagnostic);
|
|
367
|
-
if (!target) return false;
|
|
368
|
-
return evidence.some((item) => {
|
|
369
|
-
const serviceHint = readEvidenceDataRecord(item, "serviceHint");
|
|
370
|
-
const service = readEvidenceDataRecord(item, "service");
|
|
371
|
-
return serviceHint?.ready === true && serviceHint.target === target || service?.ready === true && service.target === target;
|
|
372
|
-
});
|
|
373
|
-
}
|
|
374
|
-
if (diagnostic.type === "artifact_preservation") {
|
|
375
|
-
if (!diagnostic.path) return false;
|
|
376
|
-
return evidence.some((item) => {
|
|
377
|
-
const artifactHint = readEvidenceDataRecord(item, "artifactHint");
|
|
378
|
-
return artifactHint?.exists === true && artifactHint.path === diagnostic.path;
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
if (diagnostic.type === "binary_tool_missing") {
|
|
382
|
-
if (!diagnostic.path) return false;
|
|
383
|
-
return evidence.some(
|
|
384
|
-
(item) => readEvidenceDataRecord(item, "binaryHint")?.path === diagnostic.path || readEvidenceDataRecord(item, "binaryPreflight")?.path === diagnostic.path
|
|
385
|
-
);
|
|
386
|
-
}
|
|
387
|
-
return false;
|
|
388
|
-
}
|
|
389
|
-
function readDiagnosticServiceTarget(diagnostic) {
|
|
390
|
-
if (diagnostic.target) return diagnostic.target;
|
|
391
|
-
if (diagnostic.targetHost && diagnostic.targetPort !== void 0) {
|
|
392
|
-
return `${diagnostic.targetHost}:${diagnostic.targetPort}`;
|
|
393
|
-
}
|
|
394
|
-
return void 0;
|
|
395
|
-
}
|
|
396
|
-
function readEvidenceDataRecord(evidence, key) {
|
|
397
|
-
if (!evidence.data || typeof evidence.data !== "object") return void 0;
|
|
398
|
-
const value = evidence.data[key];
|
|
399
|
-
return value && typeof value === "object" ? value : void 0;
|
|
400
|
-
}
|
|
401
212
|
var HIGH_RISK_NL_CLAIM_PATTERNS = [
|
|
402
213
|
// ── Chinese patterns(无 \b,CJK 字符无需 ASCII 单词边界)──
|
|
403
214
|
{
|
|
@@ -494,6 +305,5 @@ export {
|
|
|
494
305
|
createHandoffRiskItems,
|
|
495
306
|
createPhase15BetaVerdictScope,
|
|
496
307
|
checkClaimSupport,
|
|
497
|
-
createHeadlessBenchValidationContractRiskSummary,
|
|
498
308
|
formatClaimCheck
|
|
499
309
|
};
|
|
@@ -6,16 +6,16 @@ import {
|
|
|
6
6
|
} from "./chunk-TVNWAEJR.js";
|
|
7
7
|
import {
|
|
8
8
|
showCommandPanel
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2JZBPXHF.js";
|
|
10
10
|
import {
|
|
11
11
|
writeErrorLine
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-HMGGPN4J.js";
|
|
13
13
|
import {
|
|
14
14
|
createHandoffPacket,
|
|
15
15
|
formatResumePacket,
|
|
16
16
|
hydrateResumeContext,
|
|
17
17
|
validateHandoffPacket
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-W6O7KDNM.js";
|
|
19
19
|
import {
|
|
20
20
|
createEvidenceBackedMemoryCandidates,
|
|
21
21
|
createLinghunMdTemplate,
|
|
@@ -202,7 +202,7 @@ async function formatModelRouteDoctor(context) {
|
|
|
202
202
|
if (context.deferredToolsSummary) {
|
|
203
203
|
const summary = context.deferredToolsSummary;
|
|
204
204
|
lines.push(
|
|
205
|
-
`- deferred tools: total ${summary.total}; executable ${summary.executableCount}; codebase-memory ${summary.byKind["codebase-memory"]}; mcp ${summary.byKind.mcp}; skill ${summary.byKind.skill}; plugin ${summary.byKind.plugin} (SearchExtraTools/ExecuteExtraTool \u5165\u53E3\uFF1Bbuilt-in \u5DE5\u5177\u4E0D\u8D70\u8BE5\u6D3E\u53D1)`
|
|
205
|
+
`- deferred tools: total ${summary.total}; executable ${summary.executableCount}; codebase-memory ${summary.byKind["codebase-memory"]}; pre-engine ${summary.byKind["pre-engine"]}; mcp ${summary.byKind.mcp}; skill ${summary.byKind.skill}; plugin ${summary.byKind.plugin} (SearchExtraTools/ExecuteExtraTool \u5165\u53E3\uFF1Bbuilt-in \u5DE5\u5177\u4E0D\u8D70\u8BE5\u6D3E\u53D1)`
|
|
206
206
|
);
|
|
207
207
|
}
|
|
208
208
|
if (context.discoveredDeferredToolsSummary) {
|
|
@@ -6,15 +6,16 @@ import {
|
|
|
6
6
|
} from "./chunk-PGNALDEH.js";
|
|
7
7
|
import {
|
|
8
8
|
formatDeferredToolsSystemReminder,
|
|
9
|
+
registerPreEngineDeferredToolsForRuntime,
|
|
9
10
|
snapshotDeferredTools
|
|
10
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-7VGFNZPN.js";
|
|
11
12
|
import {
|
|
12
13
|
formatControlledMemoryForModel
|
|
13
14
|
} from "./chunk-OJTMM5CV.js";
|
|
14
15
|
import {
|
|
15
16
|
createSolutionCompletenessStatus,
|
|
16
17
|
projectRuntimeStatusForPrompt
|
|
17
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-3KRRVLS4.js";
|
|
18
19
|
import {
|
|
19
20
|
truncateDisplay
|
|
20
21
|
} from "./chunk-UGYFQF6M.js";
|
|
@@ -23,12 +24,25 @@ import {
|
|
|
23
24
|
var MEMORY_PROMPT_TOP_K = 3;
|
|
24
25
|
function createModelSystemPrompt(text, context, runtimeStatus, architectureDirective, worktreeContextSummary, failureLearningSummary, metaSchedulerDirective, gitStatusSummary) {
|
|
25
26
|
const solutionCompletenessWarning = updateSolutionCompletenessGate(text, context);
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
const deferredSnapshot = snapshotDeferredTools(context);
|
|
28
|
+
const deferredReminder = formatDeferredToolsSystemReminder(context.language, deferredSnapshot);
|
|
29
|
+
const preEngineToolNames = registerPreEngineDeferredToolsForRuntime(context, deferredSnapshot);
|
|
30
|
+
const preEngineToolsLine = preEngineToolNames.length > 0 ? `
|
|
31
|
+
PreEngineRepositoryTools=${JSON.stringify({
|
|
32
|
+
discovered: true,
|
|
33
|
+
tools: preEngineToolNames,
|
|
34
|
+
invocation: "These pre-engine tools are first-class readonly model tools; call them directly when useful. ExecuteExtraTool remains available for deferred-tool dispatch.",
|
|
35
|
+
indexCoordination: "If codebase-memory index is ready, use index-backed tools for broad repository discovery first, then pre-engine for AST precision; if the index is missing or stale, use pre-engine as the fast repository-analysis entry.",
|
|
36
|
+
useFor: [
|
|
37
|
+
"repository code understanding",
|
|
38
|
+
"impact analysis",
|
|
39
|
+
"edit planning",
|
|
40
|
+
"quick verification"
|
|
41
|
+
]
|
|
42
|
+
})}
|
|
43
|
+
RepositoryAnalysisWorkflow=Before broad Grep/Read exploration for repository analysis work, get structured evidence first: use codebase-memory index tools when ready, then pre-engine for AST precision. If the task names a concrete function, class, method, command, or file-level anchor, call pre_context on that anchor first; use pre_plan first only when no concrete anchor is known. When a pre-engine result includes answer_pack with high/medium confidence and little missing_evidence, use it as the primary evidence map; suggested_minimal_reads are line-window hints, so prefer ReadSnippets for those ranges and avoid broad Grep/full-file Read unless explicit evidence is missing.` : "";
|
|
44
|
+
const worktreeContextLine = `${preEngineToolsLine}${worktreeContextSummary && worktreeContextSummary.isWorktree === true ? `
|
|
45
|
+
WorktreeContext=${JSON.stringify(worktreeContextSummary)}` : ""}`;
|
|
32
46
|
const failureLearningLine = failureLearningSummary && failureLearningSummary.count > 0 ? `
|
|
33
47
|
FailureLearningSummary=${failureLearningSummary.text}
|
|
34
48
|
FailureLearningRule=These are lessons from PAST real failures in this project, surfaced as risk hints only. They do NOT mean the current task has failed, is fixed, or is verified. Use them to double-check risky steps; never cite them as evidence that something is already done/fixed/verified. Say "history shows / may be related", not present-tense facts.` : "";
|
|
@@ -165,6 +179,8 @@ var INTERNAL_PROMPT_TOKENS = [
|
|
|
165
179
|
"raw tool_result",
|
|
166
180
|
"internal scheduler labels",
|
|
167
181
|
"meta_scheduler",
|
|
182
|
+
"PreEngineRepositoryTools",
|
|
183
|
+
"RepositoryAnalysisWorkflow",
|
|
168
184
|
"WorktreeContext",
|
|
169
185
|
"DeferredToolsReminder",
|
|
170
186
|
"OutputStyle",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createCompactBoundaryBlock
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-R7BB45CP.js";
|
|
4
4
|
import {
|
|
5
5
|
createEvidenceRecord,
|
|
6
6
|
rememberEvidence
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JY2DO7OF.js";
|
|
8
8
|
import {
|
|
9
9
|
applyToolResultBudgetToMessages
|
|
10
10
|
} from "./chunk-O7S3HYE6.js";
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-K4FSYBSY.js";
|
|
18
18
|
import {
|
|
19
19
|
getRoleRoute
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-WO56RSMP.js";
|
|
21
21
|
import {
|
|
22
22
|
compactMessagesToFit
|
|
23
23
|
} from "./chunk-URNQUECO.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
showCommandPanel
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2JZBPXHF.js";
|
|
4
4
|
import {
|
|
5
5
|
createSkillEvolutionCandidate,
|
|
6
6
|
formatExtensionInstallGate,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
removeExtension,
|
|
15
15
|
updateExtension,
|
|
16
16
|
validateExtensionItems
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-T2V2USR3.js";
|
|
18
18
|
import {
|
|
19
19
|
createHookState,
|
|
20
20
|
createPluginState,
|
|
@@ -3,27 +3,27 @@ import {
|
|
|
3
3
|
getCommandPanelRowText,
|
|
4
4
|
getCommandPanelSelectableRows,
|
|
5
5
|
showCommandPanel
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2JZBPXHF.js";
|
|
7
7
|
import "./chunk-V7GDHHBL.js";
|
|
8
8
|
import "./chunk-GCMH5P4W.js";
|
|
9
9
|
import "./chunk-PHPEPZAA.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-CL3U56EI.js";
|
|
11
|
+
import "./chunk-7ODJHN53.js";
|
|
12
12
|
import "./chunk-YGXPS5F2.js";
|
|
13
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-HMGGPN4J.js";
|
|
14
14
|
import "./chunk-IPZZGDUU.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-RMXEIZYR.js";
|
|
16
16
|
import "./chunk-NMOVU75L.js";
|
|
17
17
|
import "./chunk-JMUAQUQQ.js";
|
|
18
18
|
import "./chunk-L4XXW6Y5.js";
|
|
19
19
|
import "./chunk-CRSLDQOA.js";
|
|
20
20
|
import "./chunk-VIBENDE3.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-4UER2AKI.js";
|
|
22
|
+
import "./chunk-T2V2USR3.js";
|
|
23
23
|
import "./chunk-HMGYFENJ.js";
|
|
24
24
|
import "./chunk-VDQTNA4W.js";
|
|
25
25
|
import "./chunk-E72U7WW7.js";
|
|
26
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-R7BB45CP.js";
|
|
27
27
|
import "./chunk-WCMHJ6SS.js";
|
|
28
28
|
import "./chunk-3AKXDMVS.js";
|
|
29
29
|
import "./chunk-H3T4EF5F.js";
|
|
@@ -31,21 +31,21 @@ import "./chunk-NSIKYD3X.js";
|
|
|
31
31
|
import "./chunk-FRIMDSRU.js";
|
|
32
32
|
import "./chunk-RBOQJFIZ.js";
|
|
33
33
|
import "./chunk-VIJ7GDKI.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-WRVHCSM2.js";
|
|
35
35
|
import "./chunk-6C32YAB5.js";
|
|
36
36
|
import "./chunk-KTWV5JC5.js";
|
|
37
37
|
import "./chunk-PGNALDEH.js";
|
|
38
38
|
import "./chunk-PI6T2AGS.js";
|
|
39
39
|
import "./chunk-6SMM5CMP.js";
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-7VGFNZPN.js";
|
|
41
|
+
import "./chunk-JY2DO7OF.js";
|
|
42
|
+
import "./chunk-VZFP7NWI.js";
|
|
43
43
|
import "./chunk-O7S3HYE6.js";
|
|
44
44
|
import "./chunk-OI5TZ37D.js";
|
|
45
45
|
import "./chunk-IWUIOLMF.js";
|
|
46
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-W6O7KDNM.js";
|
|
47
47
|
import "./chunk-OJTMM5CV.js";
|
|
48
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-3KRRVLS4.js";
|
|
49
49
|
import "./chunk-BFVPLGAC.js";
|
|
50
50
|
import "./chunk-6USL33ZO.js";
|
|
51
51
|
import "./chunk-4EIC5BCT.js";
|
|
@@ -60,8 +60,8 @@ import "./chunk-4EP3TUFF.js";
|
|
|
60
60
|
import "./chunk-WX2OTJXL.js";
|
|
61
61
|
import "./chunk-QBCGAIU7.js";
|
|
62
62
|
import "./chunk-K4FSYBSY.js";
|
|
63
|
-
import "./chunk-
|
|
64
|
-
import "./chunk-
|
|
63
|
+
import "./chunk-IWBV4CEI.js";
|
|
64
|
+
import "./chunk-WO56RSMP.js";
|
|
65
65
|
import "./chunk-EBACIBJP.js";
|
|
66
66
|
import "./chunk-OZMX3E35.js";
|
|
67
67
|
import "./chunk-URNQUECO.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
refreshWorkspaceReferenceCache,
|
|
17
17
|
requestBreakCacheMutationApproval,
|
|
18
18
|
requestMemoryMutationApproval
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-RKFC3V6A.js";
|
|
20
20
|
import "./chunk-SJOS5PM6.js";
|
|
21
21
|
import "./chunk-SRJ4XWOR.js";
|
|
22
22
|
import "./chunk-GC55DMZV.js";
|
|
@@ -24,58 +24,58 @@ import "./chunk-DICVLZHH.js";
|
|
|
24
24
|
import "./chunk-3XNUDLOM.js";
|
|
25
25
|
import "./chunk-ZYSN7AWW.js";
|
|
26
26
|
import "./chunk-ZKPQ4KLK.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-SEVD3KES.js";
|
|
28
|
+
import "./chunk-NR3MFRPO.js";
|
|
29
29
|
import "./chunk-UT5BOJKU.js";
|
|
30
30
|
import "./chunk-RM5JDRCW.js";
|
|
31
31
|
import "./chunk-HJOC5WUV.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-UYEVRXUA.js";
|
|
33
33
|
import "./chunk-TVNWAEJR.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-NL4M3V5D.js";
|
|
35
35
|
import "./chunk-KQJHVJZB.js";
|
|
36
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-33WA4BDG.js";
|
|
37
37
|
import "./chunk-NMNOAFFT.js";
|
|
38
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-KI7NO6IF.js";
|
|
39
39
|
import "./chunk-W6NU7ZAV.js";
|
|
40
40
|
import "./chunk-OMWSM2DA.js";
|
|
41
41
|
import "./chunk-UYU4QN3P.js";
|
|
42
42
|
import "./chunk-BNC4F63N.js";
|
|
43
43
|
import "./chunk-CRW3636S.js";
|
|
44
44
|
import "./chunk-6CHUZ2NF.js";
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-UUWG4VXV.js";
|
|
46
|
+
import "./chunk-BRNV6757.js";
|
|
47
47
|
import "./chunk-GTP2KPLY.js";
|
|
48
48
|
import "./chunk-7ZE5JFAZ.js";
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-ZNAYWBBI.js";
|
|
50
|
+
import "./chunk-AFNWUI6R.js";
|
|
51
51
|
import "./chunk-A4H3UTJZ.js";
|
|
52
52
|
import "./chunk-WJWYRBWH.js";
|
|
53
53
|
import "./chunk-CFXB5SE5.js";
|
|
54
|
-
import "./chunk-
|
|
54
|
+
import "./chunk-WXQSF2AS.js";
|
|
55
55
|
import "./chunk-WVAQYKGL.js";
|
|
56
56
|
import "./chunk-QIU3FJPC.js";
|
|
57
|
-
import "./chunk-
|
|
58
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-UN3MMVE4.js";
|
|
58
|
+
import "./chunk-2JZBPXHF.js";
|
|
59
59
|
import "./chunk-V7GDHHBL.js";
|
|
60
60
|
import "./chunk-GCMH5P4W.js";
|
|
61
61
|
import "./chunk-PHPEPZAA.js";
|
|
62
|
-
import "./chunk-
|
|
63
|
-
import "./chunk-
|
|
62
|
+
import "./chunk-CL3U56EI.js";
|
|
63
|
+
import "./chunk-7ODJHN53.js";
|
|
64
64
|
import "./chunk-YGXPS5F2.js";
|
|
65
|
-
import "./chunk-
|
|
65
|
+
import "./chunk-HMGGPN4J.js";
|
|
66
66
|
import "./chunk-IPZZGDUU.js";
|
|
67
|
-
import "./chunk-
|
|
67
|
+
import "./chunk-RMXEIZYR.js";
|
|
68
68
|
import "./chunk-NMOVU75L.js";
|
|
69
69
|
import "./chunk-JMUAQUQQ.js";
|
|
70
70
|
import "./chunk-L4XXW6Y5.js";
|
|
71
71
|
import "./chunk-CRSLDQOA.js";
|
|
72
72
|
import "./chunk-VIBENDE3.js";
|
|
73
|
-
import "./chunk-
|
|
74
|
-
import "./chunk-
|
|
73
|
+
import "./chunk-4UER2AKI.js";
|
|
74
|
+
import "./chunk-T2V2USR3.js";
|
|
75
75
|
import "./chunk-HMGYFENJ.js";
|
|
76
76
|
import "./chunk-VDQTNA4W.js";
|
|
77
77
|
import "./chunk-E72U7WW7.js";
|
|
78
|
-
import "./chunk-
|
|
78
|
+
import "./chunk-R7BB45CP.js";
|
|
79
79
|
import "./chunk-WCMHJ6SS.js";
|
|
80
80
|
import "./chunk-3AKXDMVS.js";
|
|
81
81
|
import "./chunk-H3T4EF5F.js";
|
|
@@ -83,21 +83,21 @@ import "./chunk-NSIKYD3X.js";
|
|
|
83
83
|
import "./chunk-FRIMDSRU.js";
|
|
84
84
|
import "./chunk-RBOQJFIZ.js";
|
|
85
85
|
import "./chunk-VIJ7GDKI.js";
|
|
86
|
-
import "./chunk-
|
|
86
|
+
import "./chunk-WRVHCSM2.js";
|
|
87
87
|
import "./chunk-6C32YAB5.js";
|
|
88
88
|
import "./chunk-KTWV5JC5.js";
|
|
89
89
|
import "./chunk-PGNALDEH.js";
|
|
90
90
|
import "./chunk-PI6T2AGS.js";
|
|
91
91
|
import "./chunk-6SMM5CMP.js";
|
|
92
|
-
import "./chunk-
|
|
93
|
-
import "./chunk-
|
|
94
|
-
import "./chunk-
|
|
92
|
+
import "./chunk-7VGFNZPN.js";
|
|
93
|
+
import "./chunk-JY2DO7OF.js";
|
|
94
|
+
import "./chunk-VZFP7NWI.js";
|
|
95
95
|
import "./chunk-O7S3HYE6.js";
|
|
96
96
|
import "./chunk-OI5TZ37D.js";
|
|
97
97
|
import "./chunk-IWUIOLMF.js";
|
|
98
|
-
import "./chunk-
|
|
98
|
+
import "./chunk-W6O7KDNM.js";
|
|
99
99
|
import "./chunk-OJTMM5CV.js";
|
|
100
|
-
import "./chunk-
|
|
100
|
+
import "./chunk-3KRRVLS4.js";
|
|
101
101
|
import "./chunk-BFVPLGAC.js";
|
|
102
102
|
import "./chunk-6USL33ZO.js";
|
|
103
103
|
import "./chunk-4EIC5BCT.js";
|
|
@@ -112,8 +112,8 @@ import "./chunk-4EP3TUFF.js";
|
|
|
112
112
|
import "./chunk-WX2OTJXL.js";
|
|
113
113
|
import "./chunk-QBCGAIU7.js";
|
|
114
114
|
import "./chunk-K4FSYBSY.js";
|
|
115
|
-
import "./chunk-
|
|
116
|
-
import "./chunk-
|
|
115
|
+
import "./chunk-IWBV4CEI.js";
|
|
116
|
+
import "./chunk-WO56RSMP.js";
|
|
117
117
|
import "./chunk-EBACIBJP.js";
|
|
118
118
|
import "./chunk-OZMX3E35.js";
|
|
119
119
|
import "./chunk-URNQUECO.js";
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
prepareMessagesForProviderPreflight,
|
|
6
6
|
recordCompactBoundary,
|
|
7
7
|
sanitizeCompactSummaryText
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-WXQSF2AS.js";
|
|
9
|
+
import "./chunk-R7BB45CP.js";
|
|
10
10
|
import "./chunk-WCMHJ6SS.js";
|
|
11
11
|
import "./chunk-3AKXDMVS.js";
|
|
12
12
|
import "./chunk-H3T4EF5F.js";
|
|
@@ -14,21 +14,21 @@ import "./chunk-NSIKYD3X.js";
|
|
|
14
14
|
import "./chunk-FRIMDSRU.js";
|
|
15
15
|
import "./chunk-RBOQJFIZ.js";
|
|
16
16
|
import "./chunk-VIJ7GDKI.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-WRVHCSM2.js";
|
|
18
18
|
import "./chunk-6C32YAB5.js";
|
|
19
19
|
import "./chunk-KTWV5JC5.js";
|
|
20
20
|
import "./chunk-PGNALDEH.js";
|
|
21
21
|
import "./chunk-PI6T2AGS.js";
|
|
22
22
|
import "./chunk-6SMM5CMP.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-7VGFNZPN.js";
|
|
24
|
+
import "./chunk-JY2DO7OF.js";
|
|
25
|
+
import "./chunk-VZFP7NWI.js";
|
|
26
26
|
import "./chunk-O7S3HYE6.js";
|
|
27
27
|
import "./chunk-OI5TZ37D.js";
|
|
28
28
|
import "./chunk-IWUIOLMF.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-W6O7KDNM.js";
|
|
30
30
|
import "./chunk-OJTMM5CV.js";
|
|
31
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-3KRRVLS4.js";
|
|
32
32
|
import "./chunk-BFVPLGAC.js";
|
|
33
33
|
import "./chunk-6USL33ZO.js";
|
|
34
34
|
import "./chunk-4EIC5BCT.js";
|
|
@@ -42,8 +42,8 @@ import "./chunk-5H7RRF7C.js";
|
|
|
42
42
|
import "./chunk-4EP3TUFF.js";
|
|
43
43
|
import "./chunk-WX2OTJXL.js";
|
|
44
44
|
import "./chunk-K4FSYBSY.js";
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-IWBV4CEI.js";
|
|
46
|
+
import "./chunk-WO56RSMP.js";
|
|
47
47
|
import "./chunk-EBACIBJP.js";
|
|
48
48
|
import "./chunk-OZMX3E35.js";
|
|
49
49
|
import "./chunk-URNQUECO.js";
|