@nexus-cortex/core 4.130.0 → 4.131.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.defaults +168 -2
- package/dist/adapters/ChatCompletionsAPIAdapter.d.ts.map +1 -1
- package/dist/adapters/ChatCompletionsAPIAdapter.js +5 -1
- package/dist/adapters/ChatCompletionsAPIAdapter.js.map +1 -1
- package/dist/commands/SlashCommandRegistry.d.ts.map +1 -1
- package/dist/commands/SlashCommandRegistry.js +7 -0
- package/dist/commands/SlashCommandRegistry.js.map +1 -1
- package/dist/config/AnthropicCredentialService.d.ts.map +1 -1
- package/dist/config/AnthropicCredentialService.js +2 -1
- package/dist/config/AnthropicCredentialService.js.map +1 -1
- package/dist/config/RuntimeConfigRegistry.d.ts.map +1 -1
- package/dist/config/RuntimeConfigRegistry.js +18 -0
- package/dist/config/RuntimeConfigRegistry.js.map +1 -1
- package/dist/config/SettingsLoader.d.ts +3 -0
- package/dist/config/SettingsLoader.d.ts.map +1 -1
- package/dist/config/SettingsLoader.js +42 -0
- package/dist/config/SettingsLoader.js.map +1 -1
- package/dist/config/SettingsSchema.d.ts +19 -0
- package/dist/config/SettingsSchema.d.ts.map +1 -1
- package/dist/config/SettingsSchema.js +172 -0
- package/dist/config/SettingsSchema.js.map +1 -1
- package/dist/config/effectiveConfig.d.ts.map +1 -1
- package/dist/config/effectiveConfig.js +20 -2
- package/dist/config/effectiveConfig.js.map +1 -1
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/localBrowser.d.ts +13 -0
- package/dist/config/localBrowser.d.ts.map +1 -0
- package/dist/config/localBrowser.js +53 -0
- package/dist/config/localBrowser.js.map +1 -0
- package/dist/config/logRedaction.d.ts +5 -0
- package/dist/config/logRedaction.d.ts.map +1 -0
- package/dist/config/logRedaction.js +68 -0
- package/dist/config/logRedaction.js.map +1 -0
- package/dist/config/secretProviders.d.ts +16 -0
- package/dist/config/secretProviders.d.ts.map +1 -0
- package/dist/config/secretProviders.js +26 -0
- package/dist/config/secretProviders.js.map +1 -0
- package/dist/config/secretsVault.d.ts +121 -0
- package/dist/config/secretsVault.d.ts.map +1 -0
- package/dist/config/secretsVault.js +320 -0
- package/dist/config/secretsVault.js.map +1 -0
- package/dist/config/spaSecretTypes.d.ts +329 -0
- package/dist/config/spaSecretTypes.d.ts.map +1 -0
- package/dist/config/spaSecretTypes.js +326 -0
- package/dist/config/spaSecretTypes.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/McpClient.d.ts +2 -0
- package/dist/mcp/McpClient.d.ts.map +1 -1
- package/dist/mcp/McpClient.js +9 -1
- package/dist/mcp/McpClient.js.map +1 -1
- package/dist/mcp/McpServerRegistry.d.ts +2 -13
- package/dist/mcp/McpServerRegistry.d.ts.map +1 -1
- package/dist/mcp/McpServerRegistry.js +17 -2
- package/dist/mcp/McpServerRegistry.js.map +1 -1
- package/dist/mcp/essentialMcpTools.d.ts +11 -0
- package/dist/mcp/essentialMcpTools.d.ts.map +1 -0
- package/dist/mcp/essentialMcpTools.js +22 -0
- package/dist/mcp/essentialMcpTools.js.map +1 -0
- package/dist/mcp/mcpSchemaCompat.d.ts +9 -0
- package/dist/mcp/mcpSchemaCompat.d.ts.map +1 -0
- package/dist/mcp/mcpSchemaCompat.js +32 -0
- package/dist/mcp/mcpSchemaCompat.js.map +1 -0
- package/dist/middleware/HelperModelMiddleware.d.ts +4 -0
- package/dist/middleware/HelperModelMiddleware.d.ts.map +1 -1
- package/dist/middleware/HelperModelMiddleware.js +2 -2
- package/dist/middleware/HelperModelMiddleware.js.map +1 -1
- package/dist/middleware/SystemMessageMiddleware.d.ts.map +1 -1
- package/dist/middleware/SystemMessageMiddleware.js +6 -0
- package/dist/middleware/SystemMessageMiddleware.js.map +1 -1
- package/dist/middleware/permissions/DefaultPolicies.d.ts.map +1 -1
- package/dist/middleware/permissions/DefaultPolicies.js +2 -0
- package/dist/middleware/permissions/DefaultPolicies.js.map +1 -1
- package/dist/orchestrator/APIClient.d.ts.map +1 -1
- package/dist/orchestrator/APIClient.js +46 -1
- package/dist/orchestrator/APIClient.js.map +1 -1
- package/dist/orchestrator/CortexOrchestrator.d.ts +43 -8
- package/dist/orchestrator/CortexOrchestrator.d.ts.map +1 -1
- package/dist/orchestrator/CortexOrchestrator.js +339 -38
- package/dist/orchestrator/CortexOrchestrator.js.map +1 -1
- package/dist/orchestrator/HerdrSubAgentRunner.d.ts.map +1 -1
- package/dist/orchestrator/HerdrSubAgentRunner.js +2 -1
- package/dist/orchestrator/HerdrSubAgentRunner.js.map +1 -1
- package/dist/orchestrator/SubAgentProcessManager.d.ts.map +1 -1
- package/dist/orchestrator/SubAgentProcessManager.js +2 -0
- package/dist/orchestrator/SubAgentProcessManager.js.map +1 -1
- package/dist/orchestrator/browserWallNudge.d.ts +93 -0
- package/dist/orchestrator/browserWallNudge.d.ts.map +1 -0
- package/dist/orchestrator/browserWallNudge.js +227 -0
- package/dist/orchestrator/browserWallNudge.js.map +1 -0
- package/dist/orchestrator/citationVerification.d.ts.map +1 -1
- package/dist/orchestrator/citationVerification.js +16 -0
- package/dist/orchestrator/citationVerification.js.map +1 -1
- package/dist/orchestrator/cortexProxyFetch.d.ts +8 -0
- package/dist/orchestrator/cortexProxyFetch.d.ts.map +1 -1
- package/dist/orchestrator/cortexProxyFetch.js +32 -0
- package/dist/orchestrator/cortexProxyFetch.js.map +1 -1
- package/dist/orchestrator/endTurnGates.d.ts +39 -0
- package/dist/orchestrator/endTurnGates.d.ts.map +1 -1
- package/dist/orchestrator/endTurnGates.js +159 -3
- package/dist/orchestrator/endTurnGates.js.map +1 -1
- package/dist/orchestrator/imageTtl.d.ts.map +1 -1
- package/dist/orchestrator/imageTtl.js +14 -5
- package/dist/orchestrator/imageTtl.js.map +1 -1
- package/dist/orchestrator/integrityVerification.d.ts +2 -0
- package/dist/orchestrator/integrityVerification.d.ts.map +1 -1
- package/dist/orchestrator/integrityVerification.js +2 -2
- package/dist/orchestrator/integrityVerification.js.map +1 -1
- package/dist/orchestrator/requestDebugLog.d.ts +4 -0
- package/dist/orchestrator/requestDebugLog.d.ts.map +1 -0
- package/dist/orchestrator/requestDebugLog.js +55 -0
- package/dist/orchestrator/requestDebugLog.js.map +1 -0
- package/dist/orchestrator/requirementsVerification.d.ts +4 -0
- package/dist/orchestrator/requirementsVerification.d.ts.map +1 -1
- package/dist/orchestrator/requirementsVerification.js +12 -6
- package/dist/orchestrator/requirementsVerification.js.map +1 -1
- package/dist/orchestrator/subAgentTimeout.d.ts +3 -0
- package/dist/orchestrator/subAgentTimeout.d.ts.map +1 -1
- package/dist/orchestrator/subAgentTimeout.js +6 -0
- package/dist/orchestrator/subAgentTimeout.js.map +1 -1
- package/dist/orchestrator/toolAllowlist.d.ts +29 -0
- package/dist/orchestrator/toolAllowlist.d.ts.map +1 -1
- package/dist/orchestrator/toolAllowlist.js +45 -0
- package/dist/orchestrator/toolAllowlist.js.map +1 -1
- package/dist/tools/ToolProfile.d.ts +5 -21
- package/dist/tools/ToolProfile.d.ts.map +1 -1
- package/dist/tools/ToolProfile.js +17 -2
- package/dist/tools/ToolProfile.js.map +1 -1
- package/dist/tools/registries/BaseToolRegistry.d.ts.map +1 -1
- package/dist/tools/registries/BaseToolRegistry.js +26 -6
- package/dist/tools/registries/BaseToolRegistry.js.map +1 -1
- package/dist/training/AutoResearchConfirm.d.ts +105 -0
- package/dist/training/AutoResearchConfirm.d.ts.map +1 -0
- package/dist/training/AutoResearchConfirm.js +111 -0
- package/dist/training/AutoResearchConfirm.js.map +1 -0
- package/dist/training/AutoResearchGate.d.ts +6 -0
- package/dist/training/AutoResearchGate.d.ts.map +1 -1
- package/dist/training/AutoResearchGate.js +8 -2
- package/dist/training/AutoResearchGate.js.map +1 -1
- package/dist/training/AutoResearchGuards.d.ts +86 -0
- package/dist/training/AutoResearchGuards.d.ts.map +1 -0
- package/dist/training/AutoResearchGuards.js +81 -0
- package/dist/training/AutoResearchGuards.js.map +1 -0
- package/dist/training/BenchRunner.d.ts +21 -5
- package/dist/training/BenchRunner.d.ts.map +1 -1
- package/dist/training/BenchRunner.js +126 -54
- package/dist/training/BenchRunner.js.map +1 -1
- package/dist/training/EvalGuard.d.ts +43 -0
- package/dist/training/EvalGuard.d.ts.map +1 -0
- package/dist/training/EvalGuard.js +131 -0
- package/dist/training/EvalGuard.js.map +1 -0
- package/dist/training/ExperimentRunner.d.ts +22 -0
- package/dist/training/ExperimentRunner.d.ts.map +1 -1
- package/dist/training/ExperimentRunner.js +45 -9
- package/dist/training/ExperimentRunner.js.map +1 -1
- package/dist/training/endTurnResolver.d.ts +23 -1
- package/dist/training/endTurnResolver.d.ts.map +1 -1
- package/dist/training/endTurnResolver.js +35 -3
- package/dist/training/endTurnResolver.js.map +1 -1
- package/dist/training/mentorRole.d.ts.map +1 -1
- package/dist/training/mentorRole.js +6 -1
- package/dist/training/mentorRole.js.map +1 -1
- package/dist/training/scopeCheck.d.ts +41 -0
- package/dist/training/scopeCheck.d.ts.map +1 -0
- package/dist/training/scopeCheck.js +119 -0
- package/dist/training/scopeCheck.js.map +1 -0
- package/dist/training/usageAccounting.d.ts +13 -0
- package/dist/training/usageAccounting.d.ts.map +1 -1
- package/dist/training/usageAccounting.js +11 -0
- package/dist/training/usageAccounting.js.map +1 -1
- package/dist/utils/repairToolJson.d.ts +19 -0
- package/dist/utils/repairToolJson.d.ts.map +1 -0
- package/dist/utils/repairToolJson.js +122 -0
- package/dist/utils/repairToolJson.js.map +1 -0
- package/package.json +5 -4
|
@@ -39,6 +39,16 @@ function sourceForms(src) {
|
|
|
39
39
|
const lastArrow = src.split(/→|=>|->/).pop()?.trim() ?? '';
|
|
40
40
|
if (lastArrow && lastArrow !== src && lastArrow.length >= MIN_SOURCE_LEN)
|
|
41
41
|
forms.push(lastArrow);
|
|
42
|
+
// A `label: "value"` wrapper around a verbatim value (2026-11-03: `h1: "Used Honda and Nissan at …"` quoted from the JSON output
|
|
43
|
+
// `"h1":"Used Honda and Nissan at …"`): also try the value alone, with and without its quotes. The value must still be verbatim.
|
|
44
|
+
const kv = src.match(/^\s*["']?[\w .()-]{1,40}["']?\s*[:=]\s*(.+)$/);
|
|
45
|
+
if (kv) {
|
|
46
|
+
const v = (kv[1] ?? "").trim();
|
|
47
|
+
const unq = v.replace(/^["'](.*)["'],?$/, '$1');
|
|
48
|
+
for (const f of [v, unq])
|
|
49
|
+
if (f !== src && f.length >= MIN_SOURCE_LEN)
|
|
50
|
+
forms.push(f);
|
|
51
|
+
}
|
|
42
52
|
return forms;
|
|
43
53
|
}
|
|
44
54
|
export function verifyCitationsGrounded(citations, toolOutputs, opts = {}) {
|
|
@@ -48,6 +58,8 @@ export function verifyCitationsGrounded(citations, toolOutputs, opts = {}) {
|
|
|
48
58
|
const haystack = normalize(toolOutputs);
|
|
49
59
|
const ungrounded = [];
|
|
50
60
|
const present = (f) => haystack.includes(normalize(f));
|
|
61
|
+
let squeezedHaystack;
|
|
62
|
+
const squeezed = () => (squeezedHaystack ??= haystack.replace(/\s+/g, ''));
|
|
51
63
|
for (const c of citations) {
|
|
52
64
|
const raw = c?.verbatim_source ?? '';
|
|
53
65
|
const src = normalize(raw);
|
|
@@ -56,6 +68,10 @@ export function verifyCitationsGrounded(citations, toolOutputs, opts = {}) {
|
|
|
56
68
|
// grounded if the source — or its de-annotated form (raw output after a `$ cmd →` wrapper) — is present
|
|
57
69
|
if (sourceForms(src).some(present))
|
|
58
70
|
continue;
|
|
71
|
+
// Spacing-only differences (2026-11-03: a quoted page line "today· Grand Rapids" vs the output's "today·Grand Rapids"): compare with
|
|
72
|
+
// all whitespace removed. Every other character must still match in order, so an invented quote still fails.
|
|
73
|
+
if (src.length >= MIN_SOURCE_LEN * 2 && squeezed().includes(src.replace(/\s+/g, '')))
|
|
74
|
+
continue;
|
|
59
75
|
if (opts.linewise) {
|
|
60
76
|
const lines = String(raw).split(/\r?\n/).map(normalize).filter((l) => l.length >= MIN_SOURCE_LEN);
|
|
61
77
|
if (lines.length >= 2 && lines.every((l) => sourceForms(l).some(present)))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"citationVerification.js","sourceRoot":"","sources":["../../src/orchestrator/citationVerification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH,gEAAgE;AAChE,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,CAAC;SACL,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,oCAAoC;SACvD,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,+BAA+B;SACpD,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;mHAImH;AACnH,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,uEAAuE;IACvE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,kCAAkC,EAAE,EAAE,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,cAAc;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,4FAA4F;IAC5F,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3D,IAAI,SAAS,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,CAAC,MAAM,IAAI,cAAc;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC;AACf,CAAC;AAmBD,MAAM,UAAU,uBAAuB,CACrC,SAAyC,EACzC,WAAmB,EACnB,OAAoC,EAAE;IAEtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"citationVerification.js","sourceRoot":"","sources":["../../src/orchestrator/citationVerification.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,14 @@
|
|
|
28
28
|
* the confirmed bug where the DeepSeek OpenAI-SDK client sent the raw job token to api.deepseek.com
|
|
29
29
|
* because the global patch didn't apply to its calls.
|
|
30
30
|
*/
|
|
31
|
+
/**
|
|
32
|
+
* Streaming header deadline (2026-11-03). A STREAMING provider request answers with headers at once and then streams; one that has not
|
|
33
|
+
* sent headers after CORTEX_STREAM_HEADER_TIMEOUT_MS (default 120 s; 0 = off) is dead. A DeepSeek browse delegate's request sat with no
|
|
34
|
+
* response for ~8 min until the delegate's 10-min limit (the client's total timeout derives from max_tokens: 393,216 × 20 ms ≈ 131 min).
|
|
35
|
+
* Aborting that attempt lets the SDK's own retry send it again. Non-streaming requests are untouched (a long thinking turn legitimately
|
|
36
|
+
* returns headers only when it is done); once headers arrive the timer is cleared and the body streams as before.
|
|
37
|
+
*/
|
|
38
|
+
export declare function streamHeaderTimeoutMs(env?: NodeJS.ProcessEnv): number;
|
|
31
39
|
export declare const cortexProxyFetch: typeof fetch;
|
|
32
40
|
export declare function installCortexProxyFetch(): void;
|
|
33
41
|
//# sourceMappingURL=cortexProxyFetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cortexProxyFetch.d.ts","sourceRoot":"","sources":["../../src/orchestrator/cortexProxyFetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAqCH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"cortexProxyFetch.d.ts","sourceRoot":"","sources":["../../src/orchestrator/cortexProxyFetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAqCH;;;;;;;;;;;GAWG;AACH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAKlF;AAID,eAAO,MAAM,gBAAgB,EAAE,OAAO,KAQpB,CAAC;AA6BnB,wBAAgB,uBAAuB,IAAI,IAAI,CA2C9C"}
|
|
@@ -59,7 +59,39 @@ let installed = false;
|
|
|
59
59
|
* the confirmed bug where the DeepSeek OpenAI-SDK client sent the raw job token to api.deepseek.com
|
|
60
60
|
* because the global patch didn't apply to its calls.
|
|
61
61
|
*/
|
|
62
|
+
/**
|
|
63
|
+
* Streaming header deadline (2026-11-03). A STREAMING provider request answers with headers at once and then streams; one that has not
|
|
64
|
+
* sent headers after CORTEX_STREAM_HEADER_TIMEOUT_MS (default 120 s; 0 = off) is dead. A DeepSeek browse delegate's request sat with no
|
|
65
|
+
* response for ~8 min until the delegate's 10-min limit (the client's total timeout derives from max_tokens: 393,216 × 20 ms ≈ 131 min).
|
|
66
|
+
* Aborting that attempt lets the SDK's own retry send it again. Non-streaming requests are untouched (a long thinking turn legitimately
|
|
67
|
+
* returns headers only when it is done); once headers arrive the timer is cleared and the body streams as before.
|
|
68
|
+
*/
|
|
69
|
+
export function streamHeaderTimeoutMs(env = process.env) {
|
|
70
|
+
const raw = String(env.CORTEX_STREAM_HEADER_TIMEOUT_MS ?? '').trim();
|
|
71
|
+
if (raw === '')
|
|
72
|
+
return 120_000;
|
|
73
|
+
const n = Number(raw);
|
|
74
|
+
return Number.isFinite(n) && n >= 0 ? Math.floor(n) : 120_000;
|
|
75
|
+
}
|
|
76
|
+
function isStreamingBody(body) {
|
|
77
|
+
return typeof body === 'string' && /"stream"\s*:\s*true/.test(body);
|
|
78
|
+
}
|
|
62
79
|
export const cortexProxyFetch = ((input, init) => {
|
|
80
|
+
const ms = streamHeaderTimeoutMs();
|
|
81
|
+
if (!(ms > 0) || !isStreamingBody(init?.body))
|
|
82
|
+
return proxyFetchCore(input, init);
|
|
83
|
+
const ctl = new AbortController();
|
|
84
|
+
const outer = init?.signal ?? undefined;
|
|
85
|
+
if (outer) {
|
|
86
|
+
if (outer.aborted)
|
|
87
|
+
ctl.abort(outer.reason);
|
|
88
|
+
else
|
|
89
|
+
outer.addEventListener('abort', () => ctl.abort(outer.reason), { once: true });
|
|
90
|
+
}
|
|
91
|
+
const timer = setTimeout(() => ctl.abort(new Error(`no response headers after ${Math.round(ms / 1000)} s (CORTEX_STREAM_HEADER_TIMEOUT_MS)`)), ms);
|
|
92
|
+
return proxyFetchCore(input, { ...(init || {}), signal: ctl.signal }).finally(() => clearTimeout(timer));
|
|
93
|
+
});
|
|
94
|
+
const proxyFetchCore = ((input, init) => {
|
|
63
95
|
const orig = globalThis.fetch;
|
|
64
96
|
const raw = process.env.CORTEX_PROXY_BASE_URL;
|
|
65
97
|
if (!raw || !raw.trim())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cortexProxyFetch.js","sourceRoot":"","sources":["../../src/orchestrator/cortexProxyFetch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cortexProxyFetch.js","sourceRoot":"","sources":["../../src/orchestrator/cortexProxyFetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,33 @@ export interface GateToolUse {
|
|
|
13
13
|
export declare const MUTATING_TOOLS: string[];
|
|
14
14
|
export declare const READISH_TOOLS: string[];
|
|
15
15
|
/** Per-turn evidence the EndTurn gates verify against. One instance per user turn. */
|
|
16
|
+
/**
|
|
17
|
+
* Stage-5 sources, filled by the harness (CORTEX_ENDTURN_SOURCES_AUTO, 2026-11-04). The attestation asks the model to list every web access;
|
|
18
|
+
* the harness already saw each one (Browse task, WebSearch query, WebFetch URL), and on web tasks the missing list cost a rejected EndTurn
|
|
19
|
+
* round per task (the ledger's "Stage-5 unattested-web rejections" web tax). When the model gives no valid list, the rows are built from the
|
|
20
|
+
* turn's own calls and an integrity_flag sources_auto is banked; the transplant and solution-query audits (checks A/B) are unchanged.
|
|
21
|
+
* off = the model must attest (rejected once otherwise).
|
|
22
|
+
*/
|
|
23
|
+
export declare function sourcesAutoEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
24
|
+
export declare function autoSources(ev: {
|
|
25
|
+
browseTasks: string[];
|
|
26
|
+
webQueries: string[];
|
|
27
|
+
webFetchUrls: string[];
|
|
28
|
+
}): Array<{
|
|
29
|
+
accessed: string;
|
|
30
|
+
purpose: string;
|
|
31
|
+
used_for: string;
|
|
32
|
+
}>;
|
|
33
|
+
export declare function sourcesAutoFilled(given: unknown, ev: {
|
|
34
|
+
browseTasks: string[];
|
|
35
|
+
webQueries: string[];
|
|
36
|
+
webFetchUrls: string[];
|
|
37
|
+
}, env?: NodeJS.ProcessEnv): boolean;
|
|
38
|
+
export declare function sourcesOrAuto(given: unknown, ev: {
|
|
39
|
+
browseTasks: string[];
|
|
40
|
+
webQueries: string[];
|
|
41
|
+
webFetchUrls: string[];
|
|
42
|
+
}, env?: NodeJS.ProcessEnv): any;
|
|
16
43
|
export declare class TurnEvidence {
|
|
17
44
|
/** Successful tool outputs this turn (quotable observations). */
|
|
18
45
|
outputs: string[];
|
|
@@ -21,9 +48,15 @@ export declare class TurnEvidence {
|
|
|
21
48
|
/** Bash commands executed this turn — proof a check RAN (not an observation). */
|
|
22
49
|
commands: string[];
|
|
23
50
|
webQueries: string[];
|
|
51
|
+
/** Browse delegate task texts this turn (web use, but not search queries). */
|
|
52
|
+
browseTasks: string[];
|
|
53
|
+
/** WebFetch URLs this turn (for harness-filled sources rows). */
|
|
54
|
+
webFetchUrls: string[];
|
|
24
55
|
webContent: string[];
|
|
25
56
|
usedTools: boolean;
|
|
26
57
|
usedMutatingTool: boolean;
|
|
58
|
+
/** Edit / Write / NotebookEdit ran (a real file change; Bash alone may have only read or fetched). */
|
|
59
|
+
usedFileEditTool: boolean;
|
|
27
60
|
usedReadishTool: boolean;
|
|
28
61
|
lastCitations: Array<{
|
|
29
62
|
reference: string;
|
|
@@ -33,6 +66,8 @@ export declare class TurnEvidence {
|
|
|
33
66
|
effortTailBounced: boolean;
|
|
34
67
|
/** Stage 4f: the requirement-coverage check fires at most once per turn. */
|
|
35
68
|
reqCoverageNudged: boolean;
|
|
69
|
+
/** Stage 6: the scope check holds at most once per turn (CORTEX_SCOPE_CHECK). */
|
|
70
|
+
scopeHeld: boolean;
|
|
36
71
|
/** Call once per executed batch with the tool_use blocks (before or after execution). */
|
|
37
72
|
noteToolUses(toolUses: GateToolUse[]): void;
|
|
38
73
|
/** Call once per executed batch with the results. */
|
|
@@ -42,6 +77,9 @@ export declare class TurnEvidence {
|
|
|
42
77
|
/** What a strict `verified_how` may be grounded in: the above + the commands actually run. */
|
|
43
78
|
verificationCorpus(): string;
|
|
44
79
|
}
|
|
80
|
+
/** Plain-text views of a tool result for citation grounding: text blocks of a content array (nested tool_result content too) and,
|
|
81
|
+
* for any text that is JSON, its string leaves joined by newlines. Image/binary blocks contribute nothing. */
|
|
82
|
+
export declare function decodedObservationTexts(content: unknown): string[];
|
|
45
83
|
export interface GateDeps {
|
|
46
84
|
userTaskText: string;
|
|
47
85
|
env?: NodeJS.ProcessEnv;
|
|
@@ -55,6 +93,7 @@ export interface GateDeps {
|
|
|
55
93
|
};
|
|
56
94
|
log?: (msg: string) => void;
|
|
57
95
|
}
|
|
96
|
+
export declare function normalizeEndTurnInput(raw: unknown): Record<string, unknown>;
|
|
58
97
|
/**
|
|
59
98
|
* Evaluate Stages 2/4/5 (+ the effort tail) over this batch's EndTurn result(s). Mutates `tr.is_error`
|
|
60
99
|
* / `tr.content` on rejection and `ev.endTurnCalled` on acceptance. Never throws.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endTurnGates.d.ts","sourceRoot":"","sources":["../../src/orchestrator/endTurnGates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"endTurnGates.d.ts","sourceRoot":"","sources":["../../src/orchestrator/endTurnGates.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,39 @@
|
|
|
15
15
|
import { verifyCitationsGrounded } from './citationVerification.js';
|
|
16
16
|
import { verifyRequirements, resolveEndTurnRequirementsMode, resolveEndTurnRequirementsStrict, resolveEndTurnReqCoverage, coverageCheck, } from './requirementsVerification.js';
|
|
17
17
|
import { verifyIntegrity, resolveEndTurnIntegrityMode } from './integrityVerification.js';
|
|
18
|
+
import { scopeCheck, scopeCheckEnabled } from '../training/scopeCheck.js';
|
|
18
19
|
export const MUTATING_TOOLS = ['Edit', 'Write', 'Bash', 'NotebookEdit'];
|
|
19
20
|
export const READISH_TOOLS = ['Read', 'Grep', 'Glob'];
|
|
20
21
|
/** Per-turn evidence the EndTurn gates verify against. One instance per user turn. */
|
|
22
|
+
/**
|
|
23
|
+
* Stage-5 sources, filled by the harness (CORTEX_ENDTURN_SOURCES_AUTO, 2026-11-04). The attestation asks the model to list every web access;
|
|
24
|
+
* the harness already saw each one (Browse task, WebSearch query, WebFetch URL), and on web tasks the missing list cost a rejected EndTurn
|
|
25
|
+
* round per task (the ledger's "Stage-5 unattested-web rejections" web tax). When the model gives no valid list, the rows are built from the
|
|
26
|
+
* turn's own calls and an integrity_flag sources_auto is banked; the transplant and solution-query audits (checks A/B) are unchanged.
|
|
27
|
+
* off = the model must attest (rejected once otherwise).
|
|
28
|
+
*/
|
|
29
|
+
export function sourcesAutoEnabled(env = process.env) {
|
|
30
|
+
return !/^(off|false|0)$/i.test(String(env.CORTEX_ENDTURN_SOURCES_AUTO ?? '').trim());
|
|
31
|
+
}
|
|
32
|
+
export function autoSources(ev) {
|
|
33
|
+
const rows = [];
|
|
34
|
+
for (const t of ev.browseTasks)
|
|
35
|
+
rows.push({ accessed: `Browse: ${t.replace(/\s+/g, ' ').slice(0, 200)}`, purpose: 'browse the site the task names', used_for: 'the browse report this answer is built from (harness-recorded)' });
|
|
36
|
+
for (const q of ev.webQueries)
|
|
37
|
+
rows.push({ accessed: `WebSearch: ${q.slice(0, 200)}`, purpose: 'find pages for the task', used_for: 'search results consulted this turn (harness-recorded)' });
|
|
38
|
+
for (const u of ev.webFetchUrls)
|
|
39
|
+
rows.push({ accessed: `WebFetch: ${u.slice(0, 300)}`, purpose: 'read a page for the task', used_for: 'page content consulted this turn (harness-recorded)' });
|
|
40
|
+
return rows;
|
|
41
|
+
}
|
|
42
|
+
function validSources(v) {
|
|
43
|
+
return Array.isArray(v) && v.length > 0 && v.every((r) => r && [r.accessed, r.purpose, r.used_for].every((x) => typeof x === 'string' && x.trim().length > 0));
|
|
44
|
+
}
|
|
45
|
+
export function sourcesAutoFilled(given, ev, env = process.env) {
|
|
46
|
+
return sourcesAutoEnabled(env) && !validSources(given) && autoSources(ev).length > 0;
|
|
47
|
+
}
|
|
48
|
+
export function sourcesOrAuto(given, ev, env = process.env) {
|
|
49
|
+
return sourcesAutoFilled(given, ev, env) ? autoSources(ev) : given;
|
|
50
|
+
}
|
|
21
51
|
export class TurnEvidence {
|
|
22
52
|
/** Successful tool outputs this turn (quotable observations). */
|
|
23
53
|
outputs = [];
|
|
@@ -26,15 +56,23 @@ export class TurnEvidence {
|
|
|
26
56
|
/** Bash commands executed this turn — proof a check RAN (not an observation). */
|
|
27
57
|
commands = [];
|
|
28
58
|
webQueries = [];
|
|
59
|
+
/** Browse delegate task texts this turn (web use, but not search queries). */
|
|
60
|
+
browseTasks = [];
|
|
61
|
+
/** WebFetch URLs this turn (for harness-filled sources rows). */
|
|
62
|
+
webFetchUrls = [];
|
|
29
63
|
webContent = [];
|
|
30
64
|
usedTools = false;
|
|
31
65
|
usedMutatingTool = false;
|
|
66
|
+
/** Edit / Write / NotebookEdit ran (a real file change; Bash alone may have only read or fetched). */
|
|
67
|
+
usedFileEditTool = false;
|
|
32
68
|
usedReadishTool = false;
|
|
33
69
|
lastCitations;
|
|
34
70
|
endTurnCalled = false;
|
|
35
71
|
effortTailBounced = false;
|
|
36
72
|
/** Stage 4f: the requirement-coverage check fires at most once per turn. */
|
|
37
73
|
reqCoverageNudged = false;
|
|
74
|
+
/** Stage 6: the scope check holds at most once per turn (CORTEX_SCOPE_CHECK). */
|
|
75
|
+
scopeHeld = false;
|
|
38
76
|
/** Call once per executed batch with the tool_use blocks (before or after execution). */
|
|
39
77
|
noteToolUses(toolUses) {
|
|
40
78
|
for (const tu of toolUses) {
|
|
@@ -43,6 +81,8 @@ export class TurnEvidence {
|
|
|
43
81
|
this.usedTools = true;
|
|
44
82
|
if (MUTATING_TOOLS.includes(tu.name))
|
|
45
83
|
this.usedMutatingTool = true;
|
|
84
|
+
if (tu.name === 'Edit' || tu.name === 'Write' || tu.name === 'NotebookEdit')
|
|
85
|
+
this.usedFileEditTool = true;
|
|
46
86
|
if (READISH_TOOLS.includes(tu.name))
|
|
47
87
|
this.usedReadishTool = true;
|
|
48
88
|
const input = tu.input ?? {};
|
|
@@ -50,9 +90,15 @@ export class TurnEvidence {
|
|
|
50
90
|
if (typeof input.query === 'string' && input.query)
|
|
51
91
|
this.webQueries.push(input.query);
|
|
52
92
|
}
|
|
93
|
+
else if (tu.name === 'WebFetch') {
|
|
94
|
+
if (typeof input.url === 'string' && input.url)
|
|
95
|
+
this.webFetchUrls.push(input.url);
|
|
96
|
+
}
|
|
53
97
|
else if (tu.name === 'Browse') {
|
|
98
|
+
// A Browse task is an instruction to our own browse agent, not a web search: it restates the user's request by design, so the
|
|
99
|
+
// solution-query check (B) skips it; it still counts as web use for the sources attestation (C). 2026-11-03 (fuzzycortex Porsche).
|
|
54
100
|
if (typeof input.task === 'string' && input.task)
|
|
55
|
-
this.
|
|
101
|
+
this.browseTasks.push(input.task);
|
|
56
102
|
}
|
|
57
103
|
else if (tu.name === 'Write') {
|
|
58
104
|
if (typeof input.content === 'string' && input.content)
|
|
@@ -77,6 +123,12 @@ export class TurnEvidence {
|
|
|
77
123
|
if (!txt)
|
|
78
124
|
continue;
|
|
79
125
|
this.outputs.push(txt);
|
|
126
|
+
// MCP / browser results are content-block arrays, usually carrying JSON text: the stringified form escapes every newline and
|
|
127
|
+
// quote, so an honest multi-line quote of page text could never match (2026-11-03: 8 Stage-2 rejections across the cars.com +
|
|
128
|
+
// CarMax Browse delegates, one of which then timed out). Also index the decoded text.
|
|
129
|
+
for (const extra of decodedObservationTexts(tr.content))
|
|
130
|
+
if (extra !== txt)
|
|
131
|
+
this.outputs.push(extra);
|
|
80
132
|
if (tr.tool_name === 'WebSearch' || tr.tool_name === 'WebFetch' || tr.tool_name === 'Browse')
|
|
81
133
|
this.webContent.push(txt);
|
|
82
134
|
}
|
|
@@ -86,6 +138,92 @@ export class TurnEvidence {
|
|
|
86
138
|
/** What a strict `verified_how` may be grounded in: the above + the commands actually run. */
|
|
87
139
|
verificationCorpus() { return [...this.outputs, ...this.writeInputs, ...this.commands].join('\n'); }
|
|
88
140
|
}
|
|
141
|
+
/** Plain-text views of a tool result for citation grounding: text blocks of a content array (nested tool_result content too) and,
|
|
142
|
+
* for any text that is JSON, its string leaves joined by newlines. Image/binary blocks contribute nothing. */
|
|
143
|
+
export function decodedObservationTexts(content) {
|
|
144
|
+
const texts = [];
|
|
145
|
+
const visit = (c) => {
|
|
146
|
+
if (typeof c === 'string') {
|
|
147
|
+
texts.push(c);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (Array.isArray(c)) {
|
|
151
|
+
for (const b of c)
|
|
152
|
+
visit(b);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (c && typeof c === 'object') {
|
|
156
|
+
const b = c;
|
|
157
|
+
if (typeof b.text === 'string')
|
|
158
|
+
texts.push(b.text);
|
|
159
|
+
else if (b.content !== undefined && b.type !== 'image')
|
|
160
|
+
visit(b.content);
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
visit(content);
|
|
164
|
+
const out = [];
|
|
165
|
+
for (const t of texts) {
|
|
166
|
+
out.push(t);
|
|
167
|
+
const trimmed = t.trim();
|
|
168
|
+
if (trimmed.length > 1 && (trimmed[0] === '{' || trimmed[0] === '[')) {
|
|
169
|
+
try {
|
|
170
|
+
const leaves = [];
|
|
171
|
+
const walk = (v) => {
|
|
172
|
+
if (typeof v === 'string')
|
|
173
|
+
leaves.push(v);
|
|
174
|
+
else if (Array.isArray(v))
|
|
175
|
+
v.forEach(walk);
|
|
176
|
+
else if (v && typeof v === 'object')
|
|
177
|
+
Object.values(v).forEach(walk);
|
|
178
|
+
};
|
|
179
|
+
const parsed = JSON.parse(trimmed);
|
|
180
|
+
walk(parsed);
|
|
181
|
+
if (leaves.length)
|
|
182
|
+
out.push(leaves.join('\n'));
|
|
183
|
+
// The browser MCP appends a `_quota` meter to every result; models drop it when quoting the JSON (2026-11-03, DeepSeek on
|
|
184
|
+
// CarMax: 2 of 3 rejected quotes were the result minus `_quota`, character-exact otherwise). Also index the result without it.
|
|
185
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed) && '_quota' in parsed) {
|
|
186
|
+
const { _quota: _drop, ...rest } = parsed;
|
|
187
|
+
void _drop;
|
|
188
|
+
out.push(JSON.stringify(rest));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch { /* not JSON */ }
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return out;
|
|
195
|
+
}
|
|
196
|
+
/** EndTurn's array fields arrive as JSON STRINGS from some models/transports (2026-11-02 fuzzycortex/Sonnet: every field stringified
|
|
197
|
+
* on 2 of 5 calls, and `sources` — then missing from the schema — on all of them), so an honest attestation failed Array.isArray in
|
|
198
|
+
* Stages 4/5 forever. Parse a string that holds a JSON array back into the array; anything else passes through untouched. */
|
|
199
|
+
const ENDTURN_ARRAY_FIELDS = ['citations', 'verification', 'requirements', 'sources', 'open_items'];
|
|
200
|
+
export function normalizeEndTurnInput(raw) {
|
|
201
|
+
if (!raw || typeof raw !== 'object')
|
|
202
|
+
return {};
|
|
203
|
+
// Read from the ORIGINAL object and copy only when a field needs parsing (a copy would hide getters / non-enumerable fields).
|
|
204
|
+
let input = raw;
|
|
205
|
+
for (const k of ENDTURN_ARRAY_FIELDS) {
|
|
206
|
+
const v = raw[k];
|
|
207
|
+
if (typeof v !== 'string')
|
|
208
|
+
continue;
|
|
209
|
+
const t = v.trim();
|
|
210
|
+
if (!t.startsWith('['))
|
|
211
|
+
continue;
|
|
212
|
+
let parsed;
|
|
213
|
+
try {
|
|
214
|
+
parsed = JSON.parse(t);
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
if (!Array.isArray(parsed))
|
|
220
|
+
continue;
|
|
221
|
+
if (input === raw)
|
|
222
|
+
input = { ...raw };
|
|
223
|
+
input[k] = parsed;
|
|
224
|
+
}
|
|
225
|
+
return input;
|
|
226
|
+
}
|
|
89
227
|
/**
|
|
90
228
|
* Evaluate Stages 2/4/5 (+ the effort tail) over this batch's EndTurn result(s). Mutates `tr.is_error`
|
|
91
229
|
* / `tr.content` on rejection and `ev.endTurnCalled` on acceptance. Never throws.
|
|
@@ -114,7 +252,7 @@ export function evaluateEndTurnGates(ev, toolResults, toolUses, deps) {
|
|
|
114
252
|
log(`[EffortTail] first EndTurn bounced — re-attestation at elevated effort (${tailTurns} continuation(s))`);
|
|
115
253
|
continue;
|
|
116
254
|
}
|
|
117
|
-
const input = etUse?.input
|
|
255
|
+
const input = normalizeEndTurnInput(etUse?.input);
|
|
118
256
|
const cits = input.citations;
|
|
119
257
|
ev.lastCitations = Array.isArray(cits) ? cits : undefined; // Stage 3 baseline
|
|
120
258
|
// 4.100.0 grounding corpus (cell-d-k3 distill 2026-09-10, 84 rejected citations audited): observations +
|
|
@@ -144,6 +282,8 @@ export function evaluateEndTurnGates(ev, toolResults, toolUses, deps) {
|
|
|
144
282
|
verification: input.verification,
|
|
145
283
|
userTaskText: deps.userTaskText,
|
|
146
284
|
turnUsedMutatingTool: ev.usedMutatingTool,
|
|
285
|
+
turnEditedFiles: ev.usedFileEditTool,
|
|
286
|
+
openItems: input.open_items,
|
|
147
287
|
strict: resolveEndTurnRequirementsStrict(env),
|
|
148
288
|
toolOutputs: ev.verificationCorpus(),
|
|
149
289
|
});
|
|
@@ -168,11 +308,14 @@ export function evaluateEndTurnGates(ev, toolResults, toolUses, deps) {
|
|
|
168
308
|
if (accepted && resolveEndTurnIntegrityMode(env)) {
|
|
169
309
|
const s5 = verifyIntegrity({
|
|
170
310
|
webQueries: ev.webQueries,
|
|
311
|
+
browseTasks: ev.browseTasks,
|
|
171
312
|
webContent: ev.webContent,
|
|
172
313
|
writeInputs: ev.writeInputs,
|
|
173
314
|
userTaskText: deps.userTaskText,
|
|
174
|
-
sourcesAttestation: input.sources,
|
|
315
|
+
sourcesAttestation: sourcesOrAuto(input.sources, ev),
|
|
175
316
|
});
|
|
317
|
+
if (sourcesAutoFilled(input.sources, ev))
|
|
318
|
+
deps.recordEvent('integrity_flag', { check: 'sources_auto', detail: `harness filled ${autoSources(ev).length} sources row(s) from this turn's web calls` });
|
|
176
319
|
for (const f of s5.flags)
|
|
177
320
|
deps.recordEvent('integrity_flag', { check: f.check, detail: f.detail });
|
|
178
321
|
if (!s5.ok) {
|
|
@@ -182,6 +325,19 @@ export function evaluateEndTurnGates(ev, toolResults, toolUses, deps) {
|
|
|
182
325
|
log(`[Orchestrator] Stage5: EndTurn rejected — ${s5.flags.length} integrity flag(s).`);
|
|
183
326
|
}
|
|
184
327
|
}
|
|
328
|
+
if (accepted && scopeCheckEnabled(env)) { // Stage 6 (CORTEX_SCOPE_CHECK, default on): place-scoped task, unscoped results → hold once
|
|
329
|
+
const sc = scopeCheck({ taskText: deps.userTaskText, latestOutputs: ev.outputs.slice(-8), alreadyHeld: ev.scopeHeld });
|
|
330
|
+
if (sc.scope && (sc.scope.places.length || sc.scope.radius)) {
|
|
331
|
+
deps.recordEvent('scope_check', { places: sc.scope.places.slice(0, 3), radius: sc.scope.radius ?? null, held: !sc.ok, finding: sc.finding?.kind ?? null, text: sc.finding?.text?.slice(0, 160) ?? null });
|
|
332
|
+
}
|
|
333
|
+
if (!sc.ok) {
|
|
334
|
+
accepted = false;
|
|
335
|
+
ev.scopeHeld = true;
|
|
336
|
+
tr.is_error = true;
|
|
337
|
+
tr.content = sc.nudge;
|
|
338
|
+
log(`[Orchestrator] Stage6: EndTurn held — scope check (${sc.finding?.kind}).`);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
185
341
|
if (accepted)
|
|
186
342
|
ev.endTurnCalled = true;
|
|
187
343
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endTurnGates.js","sourceRoot":"","sources":["../../src/orchestrator/endTurnGates.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"endTurnGates.js","sourceRoot":"","sources":["../../src/orchestrator/endTurnGates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageTtl.d.ts","sourceRoot":"","sources":["../../src/orchestrator/imageTtl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE/E;qEACqE;AACrE,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAKxF;AAED;8DAC8D;AAC9D,wBAAgB,iBAAiB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAKlE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,GAAG,GAAE,MAAM,GAAG,IAA6B,GAC1C,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"imageTtl.d.ts","sourceRoot":"","sources":["../../src/orchestrator/imageTtl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE/E;qEACqE;AACrE,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAKxF;AAED;8DAC8D;AAC9D,wBAAgB,iBAAiB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAKlE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,GAAG,GAAE,MAAM,GAAG,IAA6B,GAC1C,gBAAgB,EAAE,CA8BpB"}
|
|
@@ -52,20 +52,29 @@ export function applyImageTtlForRequest(messages, ttl = resolveImageTtlTurns())
|
|
|
52
52
|
if (messages[i].role === 'assistant')
|
|
53
53
|
count++;
|
|
54
54
|
}
|
|
55
|
+
// 2026-11-02: images NESTED in tool_result content (MCP tools: nexus-browser screenshot / computer_use frames arrive as
|
|
56
|
+
// tool_result.content = [image, text]) were never evicted — every browser screenshot stayed in every later request of a Browse
|
|
57
|
+
// delegate (36 requests on one healthgrades task). Same TTL, same stub, same no-mutation contract (new arrays, untouched blocks).
|
|
58
|
+
const hasImage = (b) => b?.type === 'image' || (b?.type === 'tool_result' && Array.isArray(b.content) && b.content.some((x) => x?.type === 'image'));
|
|
59
|
+
const evict = (b) => {
|
|
60
|
+
if (b?.type === 'image')
|
|
61
|
+
return imageEvictionStub();
|
|
62
|
+
if (b?.type === 'tool_result' && Array.isArray(b.content) && b.content.some((x) => x?.type === 'image')) {
|
|
63
|
+
return { ...b, content: b.content.map((x) => (x?.type === 'image' ? imageEvictionStub() : x)) };
|
|
64
|
+
}
|
|
65
|
+
return b;
|
|
66
|
+
};
|
|
55
67
|
let changed = false;
|
|
56
68
|
const out = messages.map((msg, i) => {
|
|
57
69
|
if (msg.role !== 'user')
|
|
58
70
|
return msg;
|
|
59
71
|
if (assistantsAfter[i] < ttl)
|
|
60
72
|
return msg;
|
|
61
|
-
if (!msg.content
|
|
73
|
+
if (!Array.isArray(msg.content) || !msg.content.some(hasImage))
|
|
62
74
|
return msg;
|
|
63
75
|
changed = true;
|
|
64
76
|
// Swap the content ARRAY; never mutate shared blocks (cache contract).
|
|
65
|
-
return {
|
|
66
|
-
...msg,
|
|
67
|
-
content: msg.content.map((b) => (b.type === 'image' ? imageEvictionStub() : b)),
|
|
68
|
-
};
|
|
77
|
+
return { ...msg, content: msg.content.map(evict) };
|
|
69
78
|
});
|
|
70
79
|
return changed ? out : messages;
|
|
71
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageTtl.js","sourceRoot":"","sources":["../../src/orchestrator/imageTtl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH;qEACqE;AACrE,MAAM,UAAU,oBAAoB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACvE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpE,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACjE,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,CAAC,CAAC;AACX,CAAC;AAED;8DAC8D;AAC9D,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,gHAAgH;KACvH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAA4B,EAC5B,MAAqB,oBAAoB,EAAE;IAE3C,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC;IAClC,sDAAsD;IACtD,MAAM,eAAe,GAAG,IAAI,KAAK,CAAS,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAC3B,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,WAAW;YAAE,KAAK,EAAE,CAAC;IACjD,CAAC;IACD,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"imageTtl.js","sourceRoot":"","sources":["../../src/orchestrator/imageTtl.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
export interface IntegrityInput {
|
|
21
21
|
/** WebSearch query strings issued this turn. */
|
|
22
22
|
webQueries: string[];
|
|
23
|
+
/** Browse delegate task texts this turn: web use for check C, never solution queries (they restate the task by design). */
|
|
24
|
+
browseTasks?: string[];
|
|
23
25
|
/** Web tool RESULT texts this turn (WebSearch/WebFetch outputs). */
|
|
24
26
|
webContent: string[];
|
|
25
27
|
/** Mutating-tool content this turn (Write.content, Edit.new_string). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integrityVerification.d.ts","sourceRoot":"","sources":["../../src/orchestrator/integrityVerification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oEAAoE;IACpE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wEAAwE;IACxE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB;sDACkD;IAClD,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAMD,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEzF;AAqBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB,CAsEvE"}
|
|
1
|
+
{"version":3,"file":"integrityVerification.d.ts","sourceRoot":"","sources":["../../src/orchestrator/integrityVerification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,2HAA2H;IAC3H,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,oEAAoE;IACpE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wEAAwE;IACxE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB;sDACkD;IAClD,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,oBAAoB,CAAC;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAMD,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEzF;AAqBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB,CAsEvE"}
|
|
@@ -77,7 +77,7 @@ export function verifyIntegrity(input) {
|
|
|
77
77
|
// C (operator-directed): SHOW YOUR WORK — any web usage this turn demands a
|
|
78
78
|
// sources attestation on EndTurn. Mechanical checks A/B still run above, so
|
|
79
79
|
// the attestation cannot talk its way past a transplant or solution query.
|
|
80
|
-
const webUsed = input.webQueries.length > 0 || input.webContent.length > 0;
|
|
80
|
+
const webUsed = input.webQueries.length > 0 || (input.browseTasks?.length ?? 0) > 0 || input.webContent.length > 0;
|
|
81
81
|
if (webUsed) {
|
|
82
82
|
const att = input.sourcesAttestation;
|
|
83
83
|
const attOk = Array.isArray(att) && att.length > 0 &&
|
|
@@ -87,7 +87,7 @@ export function verifyIntegrity(input) {
|
|
|
87
87
|
if (!attOk) {
|
|
88
88
|
flags.push({
|
|
89
89
|
check: 'unattested_web_use',
|
|
90
|
-
detail: `web tools were used this turn (${input.webQueries.length} search(es), ${input.webContent.length} fetch result(s)) with no sources attestation`,
|
|
90
|
+
detail: `web tools were used this turn (${input.webQueries.length} search(es), ${input.browseTasks?.length ?? 0} browse task(s), ${input.webContent.length} fetch result(s)) with no sources attestation`,
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
}
|