@nexus-cortex/core 4.130.0 → 4.131.2

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 (184) hide show
  1. package/.env.defaults +172 -2
  2. package/dist/adapters/ChatCompletionsAPIAdapter.d.ts.map +1 -1
  3. package/dist/adapters/ChatCompletionsAPIAdapter.js +5 -1
  4. package/dist/adapters/ChatCompletionsAPIAdapter.js.map +1 -1
  5. package/dist/commands/SlashCommandRegistry.d.ts.map +1 -1
  6. package/dist/commands/SlashCommandRegistry.js +7 -0
  7. package/dist/commands/SlashCommandRegistry.js.map +1 -1
  8. package/dist/config/AnthropicCredentialService.d.ts.map +1 -1
  9. package/dist/config/AnthropicCredentialService.js +2 -1
  10. package/dist/config/AnthropicCredentialService.js.map +1 -1
  11. package/dist/config/RuntimeConfigRegistry.d.ts.map +1 -1
  12. package/dist/config/RuntimeConfigRegistry.js +18 -0
  13. package/dist/config/RuntimeConfigRegistry.js.map +1 -1
  14. package/dist/config/SettingsLoader.d.ts +3 -0
  15. package/dist/config/SettingsLoader.d.ts.map +1 -1
  16. package/dist/config/SettingsLoader.js +42 -0
  17. package/dist/config/SettingsLoader.js.map +1 -1
  18. package/dist/config/SettingsSchema.d.ts +19 -0
  19. package/dist/config/SettingsSchema.d.ts.map +1 -1
  20. package/dist/config/SettingsSchema.js +172 -0
  21. package/dist/config/SettingsSchema.js.map +1 -1
  22. package/dist/config/effectiveConfig.d.ts.map +1 -1
  23. package/dist/config/effectiveConfig.js +20 -2
  24. package/dist/config/effectiveConfig.js.map +1 -1
  25. package/dist/config/index.d.ts +4 -0
  26. package/dist/config/index.d.ts.map +1 -1
  27. package/dist/config/index.js +4 -0
  28. package/dist/config/index.js.map +1 -1
  29. package/dist/config/localBrowser.d.ts +13 -0
  30. package/dist/config/localBrowser.d.ts.map +1 -0
  31. package/dist/config/localBrowser.js +53 -0
  32. package/dist/config/localBrowser.js.map +1 -0
  33. package/dist/config/logRedaction.d.ts +5 -0
  34. package/dist/config/logRedaction.d.ts.map +1 -0
  35. package/dist/config/logRedaction.js +68 -0
  36. package/dist/config/logRedaction.js.map +1 -0
  37. package/dist/config/secretProviders.d.ts +16 -0
  38. package/dist/config/secretProviders.d.ts.map +1 -0
  39. package/dist/config/secretProviders.js +26 -0
  40. package/dist/config/secretProviders.js.map +1 -0
  41. package/dist/config/secretsVault.d.ts +121 -0
  42. package/dist/config/secretsVault.d.ts.map +1 -0
  43. package/dist/config/secretsVault.js +320 -0
  44. package/dist/config/secretsVault.js.map +1 -0
  45. package/dist/config/spaSecretTypes.d.ts +329 -0
  46. package/dist/config/spaSecretTypes.d.ts.map +1 -0
  47. package/dist/config/spaSecretTypes.js +326 -0
  48. package/dist/config/spaSecretTypes.js.map +1 -0
  49. package/dist/index.d.ts +9 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +5 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/mcp/McpClient.d.ts +2 -0
  54. package/dist/mcp/McpClient.d.ts.map +1 -1
  55. package/dist/mcp/McpClient.js +9 -1
  56. package/dist/mcp/McpClient.js.map +1 -1
  57. package/dist/mcp/McpServerRegistry.d.ts +2 -13
  58. package/dist/mcp/McpServerRegistry.d.ts.map +1 -1
  59. package/dist/mcp/McpServerRegistry.js +17 -2
  60. package/dist/mcp/McpServerRegistry.js.map +1 -1
  61. package/dist/mcp/essentialMcpTools.d.ts +11 -0
  62. package/dist/mcp/essentialMcpTools.d.ts.map +1 -0
  63. package/dist/mcp/essentialMcpTools.js +22 -0
  64. package/dist/mcp/essentialMcpTools.js.map +1 -0
  65. package/dist/mcp/mcpSchemaCompat.d.ts +9 -0
  66. package/dist/mcp/mcpSchemaCompat.d.ts.map +1 -0
  67. package/dist/mcp/mcpSchemaCompat.js +32 -0
  68. package/dist/mcp/mcpSchemaCompat.js.map +1 -0
  69. package/dist/middleware/HelperModelMiddleware.d.ts +4 -0
  70. package/dist/middleware/HelperModelMiddleware.d.ts.map +1 -1
  71. package/dist/middleware/HelperModelMiddleware.js +2 -2
  72. package/dist/middleware/HelperModelMiddleware.js.map +1 -1
  73. package/dist/middleware/SystemMessageMiddleware.d.ts.map +1 -1
  74. package/dist/middleware/SystemMessageMiddleware.js +6 -0
  75. package/dist/middleware/SystemMessageMiddleware.js.map +1 -1
  76. package/dist/middleware/permissions/DefaultPolicies.d.ts.map +1 -1
  77. package/dist/middleware/permissions/DefaultPolicies.js +2 -0
  78. package/dist/middleware/permissions/DefaultPolicies.js.map +1 -1
  79. package/dist/orchestrator/APIClient.d.ts.map +1 -1
  80. package/dist/orchestrator/APIClient.js +46 -1
  81. package/dist/orchestrator/APIClient.js.map +1 -1
  82. package/dist/orchestrator/CortexOrchestrator.d.ts +43 -8
  83. package/dist/orchestrator/CortexOrchestrator.d.ts.map +1 -1
  84. package/dist/orchestrator/CortexOrchestrator.js +341 -40
  85. package/dist/orchestrator/CortexOrchestrator.js.map +1 -1
  86. package/dist/orchestrator/HerdrSubAgentRunner.d.ts.map +1 -1
  87. package/dist/orchestrator/HerdrSubAgentRunner.js +2 -1
  88. package/dist/orchestrator/HerdrSubAgentRunner.js.map +1 -1
  89. package/dist/orchestrator/SubAgentProcessManager.d.ts.map +1 -1
  90. package/dist/orchestrator/SubAgentProcessManager.js +2 -0
  91. package/dist/orchestrator/SubAgentProcessManager.js.map +1 -1
  92. package/dist/orchestrator/browserWallNudge.d.ts +93 -0
  93. package/dist/orchestrator/browserWallNudge.d.ts.map +1 -0
  94. package/dist/orchestrator/browserWallNudge.js +227 -0
  95. package/dist/orchestrator/browserWallNudge.js.map +1 -0
  96. package/dist/orchestrator/citationVerification.d.ts.map +1 -1
  97. package/dist/orchestrator/citationVerification.js +16 -0
  98. package/dist/orchestrator/citationVerification.js.map +1 -1
  99. package/dist/orchestrator/cortexProxyFetch.d.ts +8 -0
  100. package/dist/orchestrator/cortexProxyFetch.d.ts.map +1 -1
  101. package/dist/orchestrator/cortexProxyFetch.js +32 -0
  102. package/dist/orchestrator/cortexProxyFetch.js.map +1 -1
  103. package/dist/orchestrator/emptyResponseClassifier.d.ts +1 -1
  104. package/dist/orchestrator/emptyResponseClassifier.d.ts.map +1 -1
  105. package/dist/orchestrator/emptyResponseClassifier.js +8 -2
  106. package/dist/orchestrator/emptyResponseClassifier.js.map +1 -1
  107. package/dist/orchestrator/endTurnGates.d.ts +39 -0
  108. package/dist/orchestrator/endTurnGates.d.ts.map +1 -1
  109. package/dist/orchestrator/endTurnGates.js +159 -3
  110. package/dist/orchestrator/endTurnGates.js.map +1 -1
  111. package/dist/orchestrator/imageTtl.d.ts.map +1 -1
  112. package/dist/orchestrator/imageTtl.js +14 -5
  113. package/dist/orchestrator/imageTtl.js.map +1 -1
  114. package/dist/orchestrator/integrityVerification.d.ts +2 -0
  115. package/dist/orchestrator/integrityVerification.d.ts.map +1 -1
  116. package/dist/orchestrator/integrityVerification.js +2 -2
  117. package/dist/orchestrator/integrityVerification.js.map +1 -1
  118. package/dist/orchestrator/requestDebugLog.d.ts +4 -0
  119. package/dist/orchestrator/requestDebugLog.d.ts.map +1 -0
  120. package/dist/orchestrator/requestDebugLog.js +55 -0
  121. package/dist/orchestrator/requestDebugLog.js.map +1 -0
  122. package/dist/orchestrator/requirementsVerification.d.ts +4 -0
  123. package/dist/orchestrator/requirementsVerification.d.ts.map +1 -1
  124. package/dist/orchestrator/requirementsVerification.js +12 -6
  125. package/dist/orchestrator/requirementsVerification.js.map +1 -1
  126. package/dist/orchestrator/subAgentTimeout.d.ts +3 -0
  127. package/dist/orchestrator/subAgentTimeout.d.ts.map +1 -1
  128. package/dist/orchestrator/subAgentTimeout.js +6 -0
  129. package/dist/orchestrator/subAgentTimeout.js.map +1 -1
  130. package/dist/orchestrator/toolAllowlist.d.ts +29 -0
  131. package/dist/orchestrator/toolAllowlist.d.ts.map +1 -1
  132. package/dist/orchestrator/toolAllowlist.js +45 -0
  133. package/dist/orchestrator/toolAllowlist.js.map +1 -1
  134. package/dist/tools/ToolProfile.d.ts +5 -21
  135. package/dist/tools/ToolProfile.d.ts.map +1 -1
  136. package/dist/tools/ToolProfile.js +17 -2
  137. package/dist/tools/ToolProfile.js.map +1 -1
  138. package/dist/tools/registries/BaseToolRegistry.d.ts.map +1 -1
  139. package/dist/tools/registries/BaseToolRegistry.js +26 -6
  140. package/dist/tools/registries/BaseToolRegistry.js.map +1 -1
  141. package/dist/training/AutoResearchConfirm.d.ts +105 -0
  142. package/dist/training/AutoResearchConfirm.d.ts.map +1 -0
  143. package/dist/training/AutoResearchConfirm.js +111 -0
  144. package/dist/training/AutoResearchConfirm.js.map +1 -0
  145. package/dist/training/AutoResearchGate.d.ts +6 -0
  146. package/dist/training/AutoResearchGate.d.ts.map +1 -1
  147. package/dist/training/AutoResearchGate.js +8 -2
  148. package/dist/training/AutoResearchGate.js.map +1 -1
  149. package/dist/training/AutoResearchGuards.d.ts +86 -0
  150. package/dist/training/AutoResearchGuards.d.ts.map +1 -0
  151. package/dist/training/AutoResearchGuards.js +81 -0
  152. package/dist/training/AutoResearchGuards.js.map +1 -0
  153. package/dist/training/BenchRunner.d.ts +21 -5
  154. package/dist/training/BenchRunner.d.ts.map +1 -1
  155. package/dist/training/BenchRunner.js +126 -54
  156. package/dist/training/BenchRunner.js.map +1 -1
  157. package/dist/training/EvalGuard.d.ts +43 -0
  158. package/dist/training/EvalGuard.d.ts.map +1 -0
  159. package/dist/training/EvalGuard.js +131 -0
  160. package/dist/training/EvalGuard.js.map +1 -0
  161. package/dist/training/ExperimentRunner.d.ts +22 -0
  162. package/dist/training/ExperimentRunner.d.ts.map +1 -1
  163. package/dist/training/ExperimentRunner.js +45 -9
  164. package/dist/training/ExperimentRunner.js.map +1 -1
  165. package/dist/training/endTurnResolver.d.ts +23 -1
  166. package/dist/training/endTurnResolver.d.ts.map +1 -1
  167. package/dist/training/endTurnResolver.js +35 -3
  168. package/dist/training/endTurnResolver.js.map +1 -1
  169. package/dist/training/mentorRole.d.ts.map +1 -1
  170. package/dist/training/mentorRole.js +6 -1
  171. package/dist/training/mentorRole.js.map +1 -1
  172. package/dist/training/scopeCheck.d.ts +41 -0
  173. package/dist/training/scopeCheck.d.ts.map +1 -0
  174. package/dist/training/scopeCheck.js +119 -0
  175. package/dist/training/scopeCheck.js.map +1 -0
  176. package/dist/training/usageAccounting.d.ts +13 -0
  177. package/dist/training/usageAccounting.d.ts.map +1 -1
  178. package/dist/training/usageAccounting.js +11 -0
  179. package/dist/training/usageAccounting.js.map +1 -1
  180. package/dist/utils/repairToolJson.d.ts +19 -0
  181. package/dist/utils/repairToolJson.d.ts.map +1 -0
  182. package/dist/utils/repairToolJson.js +122 -0
  183. package/dist/utils/repairToolJson.js.map +1 -0
  184. package/package.json +5 -4
@@ -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.some((b) => b.type === 'image'))
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,GAAG,KAAK,CAAC;IACpB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAClC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,GAAG,CAAC;QACpC,IAAI,eAAe,CAAC,CAAC,CAAE,GAAG,GAAG;YAAE,OAAO,GAAG,CAAC;QAC1C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAAE,OAAO,GAAG,CAAC;QAC7D,OAAO,GAAG,IAAI,CAAC;QACf,uEAAuE;QACvE,OAAO;YACL,GAAG,GAAG;YACN,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClC,CAAC"}
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"integrityVerification.js","sourceRoot":"","sources":["../../src/orchestrator/integrityVerification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integrityVerification.js","sourceRoot":"","sources":["../../src/orchestrator/integrityVerification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function fullRequestDumps(env?: NodeJS.ProcessEnv): boolean;
2
+ /** The log text for an OpenAI-compatible chat request (summary + new messages), or the full dump when that lever is on. */
3
+ export declare function describeChatRequest(req: any): string;
4
+ //# sourceMappingURL=requestDebugLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestDebugLog.d.ts","sourceRoot":"","sources":["../../src/orchestrator/requestDebugLog.ts"],"names":[],"mappings":"AAaA,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE9E;AAmBD,2HAA2H;AAC3H,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAcpD"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Debug logging of provider requests (2026-11-03). DEBUG=true used to print every FULL request — the whole conversation plus every tool
3
+ * schema, on every round — so a debug log grew with the square of the turn count (CarMax: 27.6 MB, ~80% of it these dumps, against <1 MB
4
+ * of canonical session records holding the same conversation). The canonical append-only session record (.cortex/sessions/<id>.jsonl, one
5
+ * row per message) is the source for WHAT was said; the debug log keeps diagnostics. Per request it now logs one summary line plus only the
6
+ * messages that are new since that conversation's previous request (role, content kinds, size, tool names), each with its index — the
7
+ * message's position in the request, which is also its row order in the canonical record.
8
+ * CORTEX_DEBUG_FULL_REQUESTS=true restores the full dumps (rare wire-level debugging).
9
+ */
10
+ import { createHash } from 'node:crypto';
11
+ const lastCount = new Map();
12
+ export function fullRequestDumps(env = process.env) {
13
+ return /^(1|true|on)$/i.test(String(env.CORTEX_DEBUG_FULL_REQUESTS ?? '').trim());
14
+ }
15
+ /** A stable key for one conversation: the first two messages (system + first user) do not change across its requests. */
16
+ function conversationKey(messages) {
17
+ const head = JSON.stringify(messages.slice(0, 2)).slice(0, 4000);
18
+ return createHash('sha1').update(head).digest('hex').slice(0, 10);
19
+ }
20
+ function describe(m, i) {
21
+ const c = m?.content;
22
+ let kinds = '';
23
+ let chars = 0;
24
+ if (typeof c === 'string') {
25
+ kinds = 'text';
26
+ chars = c.length;
27
+ }
28
+ else if (Array.isArray(c)) {
29
+ kinds = c.map((b) => b?.type ?? '?').join('+');
30
+ chars = JSON.stringify(c).length;
31
+ }
32
+ const tools = Array.isArray(m?.tool_calls) ? ` calls=${m.tool_calls.map((t) => t?.function?.name ?? '?').join(',')}` : '';
33
+ const tid = m?.tool_call_id ? ` result_for=${String(m.tool_call_id).slice(0, 24)}` : '';
34
+ const reasoning = typeof m?.reasoning_content === 'string' && m.reasoning_content ? ` reasoning=${m.reasoning_content.length}ch` : '';
35
+ return `#${i} ${m?.role ?? '?'} ${kinds || '-'} ${chars}ch${tools}${tid}${reasoning}`;
36
+ }
37
+ /** The log text for an OpenAI-compatible chat request (summary + new messages), or the full dump when that lever is on. */
38
+ export function describeChatRequest(req) {
39
+ if (fullRequestDumps())
40
+ return JSON.stringify(req, null, 2);
41
+ const messages = Array.isArray(req?.messages) ? req.messages : [];
42
+ const key = conversationKey(messages);
43
+ const prev = lastCount.get(key) ?? 0;
44
+ const from = prev > 0 && prev <= messages.length ? prev : 0;
45
+ lastCount.set(key, messages.length);
46
+ if (lastCount.size > 500)
47
+ lastCount.delete(lastCount.keys().next().value);
48
+ const chars = JSON.stringify(messages).length;
49
+ const tools = Array.isArray(req?.tools) ? req.tools.length : 0;
50
+ const head = `model=${req?.model} conv=${key} messages=${messages.length} (+${messages.length - from} new) tools=${tools} ~${Math.round(chars / 4)} tok` +
51
+ `${req?.stream ? ' stream' : ''}${req?.max_tokens ? ` max_tokens=${req.max_tokens}` : ''}${req?.reasoning_effort ? ` effort=${req.reasoning_effort}` : ''}`;
52
+ const fresh = messages.slice(from).map((m, j) => ' ' + describe(m, from + j));
53
+ return [head, ...fresh].join('\n') + (from === 0 && messages.length > 2 ? '\n (first request of this conversation seen by this process: all messages listed)' : '');
54
+ }
55
+ //# sourceMappingURL=requestDebugLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestDebugLog.js","sourceRoot":"","sources":["../../src/orchestrator/requestDebugLog.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,10 @@ export declare function verifyRequirements(input: {
46
46
  userTaskText: string;
47
47
  /** Did this turn run Edit/Write/Bash/NotebookEdit? */
48
48
  turnUsedMutatingTool: boolean;
49
+ /** Did this turn run Edit/Write/NotebookEdit (a real file change)? Undefined = treat every mutating tool as a file change. */
50
+ turnEditedFiles?: boolean;
51
+ /** Raw `open_items` from the EndTurn input — the stated escape for a turn where no check is possible. */
52
+ openItems?: unknown;
49
53
  /** STRICT mode (CORTEX_ENDTURN_REQUIREMENTS=strict): verbatim requirements + run-grounded verification. */
50
54
  strict?: boolean;
51
55
  /** This turn's tool outputs, joined — the grounding corpus for `verified_how` in strict mode. */
@@ -1 +1 @@
1
- {"version":3,"file":"requirementsVerification.d.ts","sourceRoot":"","sources":["../../src/orchestrator/requirementsVerification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAGT;AAED;;;;;8DAK8D;AAC9D,wBAAgB,gCAAgC,CAC9C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AA2BD;;qDAEqD;AACrD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAYtD;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;IACtB,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,2GAA2G;IAC3G,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iGAAiG;IACjG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,mBAAmB,CA+GtB;AAQD,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEvF;AAMD;mIACmI;AACnI,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBpE;AAOD,8GAA8G;AAC9G,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,MAAM,EAAE,CAQvG;AAED,MAAM,WAAW,eAAe;IAAG,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE;AAExG,yHAAyH;AACzH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG,eAAe,CAezH"}
1
+ {"version":3,"file":"requirementsVerification.d.ts","sourceRoot":"","sources":["../../src/orchestrator/requirementsVerification.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAGT;AAED;;;;;8DAK8D;AAC9D,wBAAgB,gCAAgC,CAC9C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AA2BD;;qDAEqD;AACrD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAYtD;AASD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;IACtB,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,8HAA8H;IAC9H,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yGAAyG;IACzG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2GAA2G;IAC3G,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iGAAiG;IACjG,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,mBAAmB,CAoHtB;AAQD,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEvF;AAMD;mIACmI;AACnI,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBpE;AAOD,8GAA8G;AAC9G,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,MAAM,EAAE,CAQvG;AAED,MAAM,WAAW,eAAe;IAAG,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE;AAExG,yHAAyH;AACzH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG,eAAe,CAezH"}
@@ -175,14 +175,20 @@ export function verifyRequirements(input) {
175
175
  };
176
176
  }
177
177
  }
178
- // 4d — mutating turn that ran no checks at all.
179
- if (input.turnUsedMutatingTool && verification.length === 0) {
178
+ // 4d — mutating turn that ran no checks at all. A turn whose only "mutating" tool was Bash (a curl, an ls) may take the escape the
179
+ // nudge offers — an `open_items` line saying why no check applies; a turn that edited files must run a check. (2026-11-03: the CarMax
180
+ // browse turn ran one curl, was told "you modified files", wrote the open_items line it was told to write and was rejected again.)
181
+ const editedFiles = input.turnEditedFiles ?? input.turnUsedMutatingTool;
182
+ const openItems = Array.isArray(input.openItems) ? input.openItems.filter((x) => typeof x === 'string' && x.trim().length >= 10) : [];
183
+ if (input.turnUsedMutatingTool && verification.length === 0 && (editedFiles || openItems.length === 0)) {
180
184
  return {
181
185
  ok: false,
182
- nudge: 'EndTurn REJECTED (verification) — you modified files this turn but `verification` is empty: ' +
183
- 'no build/test/lint/behavior check was run. Run at least one check that exercises what you ' +
184
- 'changed and list it with the real result line, or state in `open_items` why no check is ' +
185
- 'possible. Then call EndTurn again.',
186
+ nudge: editedFiles
187
+ ? 'EndTurn REJECTED (verification) — you changed files this turn (Edit/Write) but `verification` is empty: ' +
188
+ 'no build/test/lint/behavior check was run. Run at least one check that exercises what you changed and list it with the ' +
189
+ 'real result line. Then call EndTurn again.'
190
+ : 'EndTurn REJECTED (verification) — you ran Bash this turn but `verification` is empty. If a command changed something, run ' +
191
+ 'a check of it and list it with the real result line; if nothing needs checking, say why in `open_items`. Then call EndTurn again.',
186
192
  };
187
193
  }
188
194
  return { ok: true };
@@ -1 +1 @@
1
- {"version":3,"file":"requirementsVerification.js","sourceRoot":"","sources":["../../src/orchestrator/requirementsVerification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requirementsVerification.js","sourceRoot":"","sources":["../../src/orchestrator/requirementsVerification.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,9 @@
20
20
  */
21
21
  export declare const DEFAULT_SUBAGENT_TIMEOUT_MS = 300000;
22
22
  export declare const MIN_SUBAGENT_TIMEOUT_MS = 60000;
23
+ /** Browse delegate default (CORTEX_BROWSE_TIMEOUT_MS overrides); multi-step site tasks outrun the generic 5 min. */
24
+ export declare const DEFAULT_BROWSE_TIMEOUT_MS = 600000;
25
+ export declare function browseDelegateTimeoutMs(env?: NodeJS.ProcessEnv): number;
23
26
  /** Margin kept between the child's limit and the parent's remaining budget so the parent can still report. */
24
27
  export declare const SUBAGENT_DEADLINE_MARGIN_MS = 30000;
25
28
  /** Fraction of the parent's remaining turn budget a child may consume. */
@@ -1 +1 @@
1
- {"version":3,"file":"subAgentTimeout.d.ts","sourceRoot":"","sources":["../../src/orchestrator/subAgentTimeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,2BAA2B,SAAU,CAAC;AACnD,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,8GAA8G;AAC9G,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,0EAA0E;AAC1E,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;AAEjF,MAAM,WAAW,2BAA2B;IAC1C,8GAA8G;IAC9G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAOD,wBAAgB,wBAAwB,CACtC,KAAK,GAAE,2BAAgC,GACtC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAsBtD"}
1
+ {"version":3,"file":"subAgentTimeout.d.ts","sourceRoot":"","sources":["../../src/orchestrator/subAgentTimeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,2BAA2B,SAAU,CAAC;AACnD,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,oHAAoH;AACpH,eAAO,MAAM,yBAAyB,SAAU,CAAC;AACjD,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAGpF;AACD,8GAA8G;AAC9G,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAClD,0EAA0E;AAC1E,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,CAAC;AAEjF,MAAM,WAAW,2BAA2B;IAC1C,8GAA8G;IAC9G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAOD,wBAAgB,wBAAwB,CACtC,KAAK,GAAE,2BAAgC,GACtC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,CAsBtD"}
@@ -20,6 +20,12 @@
20
20
  */
21
21
  export const DEFAULT_SUBAGENT_TIMEOUT_MS = 300_000;
22
22
  export const MIN_SUBAGENT_TIMEOUT_MS = 60_000;
23
+ /** Browse delegate default (CORTEX_BROWSE_TIMEOUT_MS overrides); multi-step site tasks outrun the generic 5 min. */
24
+ export const DEFAULT_BROWSE_TIMEOUT_MS = 600_000;
25
+ export function browseDelegateTimeoutMs(env = process.env) {
26
+ const n = Number(String(env.CORTEX_BROWSE_TIMEOUT_MS ?? '').trim() || 0);
27
+ return Number.isFinite(n) && n > 0 ? Math.max(MIN_SUBAGENT_TIMEOUT_MS, Math.floor(n)) : DEFAULT_BROWSE_TIMEOUT_MS;
28
+ }
23
29
  /** Margin kept between the child's limit and the parent's remaining budget so the parent can still report. */
24
30
  export const SUBAGENT_DEADLINE_MARGIN_MS = 30_000;
25
31
  /** Fraction of the parent's remaining turn budget a child may consume. */
@@ -1 +1 @@
1
- {"version":3,"file":"subAgentTimeout.js","sourceRoot":"","sources":["../../src/orchestrator/subAgentTimeout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAAC;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAC9C,8GAA8G;AAC9G,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAClD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAY9C,SAAS,iBAAiB,CAAC,GAAsB,EAAE,GAAW;IAC5D,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,QAAqC,EAAE;IAEvC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAK,KAAK,CAAC,WAAsB,GAAG,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,WAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9H,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAK,KAAK,CAAC,WAAsB,GAAG,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,WAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9H,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAClE,IAAI,SAAS,GAAG,CAAC;YAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,2BAA2B,CAAC,CAAC,CAAC;QACjH,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,0BAA0B,CAAC,GAAG,2BAA2B,CAAC,CAAC;QAC7H,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,gCAAgC,CAAC,CAAC;QACrE,IAAI,GAAG,GAAG,CAAC;YAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACpC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;IACrE,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAE1E,OAAO,EAAE,SAAS,EAAE,2BAA2B,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"subAgentTimeout.js","sourceRoot":"","sources":["../../src/orchestrator/subAgentTimeout.ts"],"names":[],"mappings":"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"}
@@ -14,4 +14,33 @@ export declare function applyAllowlistKeepingCore<T extends {
14
14
  * otherwise the union, definition order first, de-duplicated by normalized name.
15
15
  */
16
16
  export declare function mergeExtraTools(defTools: string[] | 'all', extra: unknown): string[] | 'all';
17
+ /**
18
+ * The BROWSE sub-agent (the Browse tool's delegate; launched with CORTEX_BROWSE_AGENT=true) may not start another sub-agent of any
19
+ * kind (operator 2026-11-03: "only that subagent can't invoke another subagent"). The tools that can spawn one are never offered or
20
+ * discoverable there, and the orchestrator refuses any spawn request inside it whichever tool made it. Other sub-agents are unaffected.
21
+ */
22
+ export declare const SUBAGENT_SPAWNING_TOOLS: readonly ["Browse", "Task", "WebSearch"];
23
+ export declare const isBrowseAgent: (env?: NodeJS.ProcessEnv) => boolean;
24
+ /**
25
+ * Bounded sub-agent nesting (operator 2026-11-03: "the main concern is just that subagents keep invoking more subagents"). Every
26
+ * sub-agent process carries its depth (CORTEX_AGENT_DEPTH, set by the spawner: main = 0, its sub-agents 1, theirs 2). An agent at
27
+ * CORTEX_MAX_AGENT_DEPTH (default 1: sub-agents never start sub-agents) — or the browse agent at any depth — may not start another: it is
28
+ * not offered a spawning tool and any spawn request it makes is refused. Default 1 matches the 2026-10-19 design (R267): delegates drive
29
+ * tools themselves — e.g. web-researcher drives the nexus-browser MCP directly (its `mcp: nexus-browser`), never through Browse.
30
+ */
31
+ export declare function agentDepth(env?: NodeJS.ProcessEnv): number;
32
+ export declare function maxAgentDepth(env?: NodeJS.ProcessEnv): number;
33
+ /** The depth to give a child this process spawns. */
34
+ export declare const childAgentDepth: (env?: NodeJS.ProcessEnv) => string;
35
+ /** This agent may not start a sub-agent: it is the browse agent, or it is at the maximum depth. */
36
+ export declare const mayNotSpawn: (env?: NodeJS.ProcessEnv) => boolean;
37
+ /**
38
+ * The tools an agent may be OFFERED, DISCOVER (SearchTools) or EXECUTE: the definition allowlist (+ the always-kept core tools) and,
39
+ * for an agent that may not spawn (the browse agent, or one at the maximum depth), minus SUBAGENT_SPAWNING_TOOLS. One filter for all three surfaces so they cannot disagree.
40
+ */
41
+ export declare function filterAgentTools<T extends {
42
+ name: string;
43
+ }>(tools: T[], allow: string[] | undefined, env?: NodeJS.ProcessEnv): T[];
44
+ /** True when a call to `name` must be refused: it names a base tool this agent may not use. Non-base (MCP) tools are never blocked here. */
45
+ export declare function isBlockedBaseToolCall(name: string, baseToolNames: string[], allow: string[] | undefined, env?: NodeJS.ProcessEnv): boolean;
17
46
  //# sourceMappingURL=toolAllowlist.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolAllowlist.d.ts","sourceRoot":"","sources":["../../src/orchestrator/toolAllowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,qCAAsC,CAAC;AAExE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,yBAAyB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,CAAC,EAAE,CAIlH;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,KAAK,CAO5F"}
1
+ {"version":3,"file":"toolAllowlist.d.ts","sourceRoot":"","sources":["../../src/orchestrator/toolAllowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,qCAAsC,CAAC;AAExE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,yBAAyB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,CAAC,EAAE,CAIlH;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,KAAK,CAO5F;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,0CAA2C,CAAC;AAEhF,eAAO,MAAM,aAAa,GAAI,MAAK,MAAM,CAAC,UAAwB,KAAG,OAA6C,CAAC;AAEnH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAGvE;AACD,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAG1E;AACD,qDAAqD;AACrD,eAAO,MAAM,eAAe,GAAI,MAAK,MAAM,CAAC,UAAwB,KAAG,MAAqC,CAAC;AAC7G,mGAAmG;AACnG,eAAO,MAAM,WAAW,GAAI,MAAK,MAAM,CAAC,UAAwB,KAAG,OAAsE,CAAC;AAE1I;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,CAAC,EAAE,CAK/I;AAED,4IAA4I;AAC5I,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAKvJ"}
@@ -33,4 +33,49 @@ export function mergeExtraTools(defTools, extra) {
33
33
  }
34
34
  return out;
35
35
  }
36
+ /**
37
+ * The BROWSE sub-agent (the Browse tool's delegate; launched with CORTEX_BROWSE_AGENT=true) may not start another sub-agent of any
38
+ * kind (operator 2026-11-03: "only that subagent can't invoke another subagent"). The tools that can spawn one are never offered or
39
+ * discoverable there, and the orchestrator refuses any spawn request inside it whichever tool made it. Other sub-agents are unaffected.
40
+ */
41
+ export const SUBAGENT_SPAWNING_TOOLS = ['Browse', 'Task', 'WebSearch']; // WebSearch: its 'interactive' mode dispatches a browse agent
42
+ export const isBrowseAgent = (env = process.env) => env.CORTEX_BROWSE_AGENT === 'true';
43
+ /**
44
+ * Bounded sub-agent nesting (operator 2026-11-03: "the main concern is just that subagents keep invoking more subagents"). Every
45
+ * sub-agent process carries its depth (CORTEX_AGENT_DEPTH, set by the spawner: main = 0, its sub-agents 1, theirs 2). An agent at
46
+ * CORTEX_MAX_AGENT_DEPTH (default 1: sub-agents never start sub-agents) — or the browse agent at any depth — may not start another: it is
47
+ * not offered a spawning tool and any spawn request it makes is refused. Default 1 matches the 2026-10-19 design (R267): delegates drive
48
+ * tools themselves — e.g. web-researcher drives the nexus-browser MCP directly (its `mcp: nexus-browser`), never through Browse.
49
+ */
50
+ export function agentDepth(env = process.env) {
51
+ const n = parseInt(env.CORTEX_AGENT_DEPTH ?? '', 10);
52
+ return Number.isFinite(n) && n >= 0 ? n : env.CORTEX_AGENT_MODE === 'true' ? 1 : 0;
53
+ }
54
+ export function maxAgentDepth(env = process.env) {
55
+ const n = parseInt(env.CORTEX_MAX_AGENT_DEPTH ?? '', 10);
56
+ return Number.isFinite(n) && n >= 0 ? n : 1;
57
+ }
58
+ /** The depth to give a child this process spawns. */
59
+ export const childAgentDepth = (env = process.env) => String(agentDepth(env) + 1);
60
+ /** This agent may not start a sub-agent: it is the browse agent, or it is at the maximum depth. */
61
+ export const mayNotSpawn = (env = process.env) => isBrowseAgent(env) || agentDepth(env) >= maxAgentDepth(env);
62
+ /**
63
+ * The tools an agent may be OFFERED, DISCOVER (SearchTools) or EXECUTE: the definition allowlist (+ the always-kept core tools) and,
64
+ * for an agent that may not spawn (the browse agent, or one at the maximum depth), minus SUBAGENT_SPAWNING_TOOLS. One filter for all three surfaces so they cannot disagree.
65
+ */
66
+ export function filterAgentTools(tools, allow, env = process.env) {
67
+ const kept = applyAllowlistKeepingCore(tools, allow);
68
+ if (!mayNotSpawn(env))
69
+ return kept;
70
+ const excluded = new Set(SUBAGENT_SPAWNING_TOOLS.map(normalizeToolName));
71
+ return kept.filter((t) => !excluded.has(normalizeToolName(t.name)));
72
+ }
73
+ /** True when a call to `name` must be refused: it names a base tool this agent may not use. Non-base (MCP) tools are never blocked here. */
74
+ export function isBlockedBaseToolCall(name, baseToolNames, allow, env = process.env) {
75
+ const n = normalizeToolName(name);
76
+ const base = baseToolNames.find((b) => normalizeToolName(b) === n);
77
+ if (!base)
78
+ return false;
79
+ return filterAgentTools([{ name: base }], allow, env).length === 0;
80
+ }
36
81
  //# sourceMappingURL=toolAllowlist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolAllowlist.js","sourceRoot":"","sources":["../../src/orchestrator/toolAllowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,aAAa,EAAE,SAAS,CAAU,CAAC;AAExE,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,0EAA0E;AACjI,CAAC;AAED,MAAM,UAAU,yBAAyB,CAA6B,KAAU,EAAE,KAA2B;IAC3G,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,oBAAoB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,QAA0B,EAAE,KAAc;IACxE,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5I,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;IAAC,CAAC;IACxG,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"toolAllowlist.js","sourceRoot":"","sources":["../../src/orchestrator/toolAllowlist.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,9 @@
1
- /**
2
- * ToolProfile — env-selected tool-surface restriction for the tool-profile
3
- * experiment (CORTEX_TOOL_PROFILE=full|lean|bash-only).
4
- *
5
- * HYPOTHESIS under test: tool-surface size × model capability interact —
6
- * frontier models gain from a lean/bash-only surface (schema tax; the
7
- * mini-SWE-agent precedent), small models lose (schemas scaffold the action
8
- * space). Profiles make the surface an experiment arm; the decision stores
9
- * stamp the active profile so per-profile tool-selection distributions and
10
- * success rates fall out of existing capture (no new instrumentation).
11
- *
12
- * Applied at the ONE choke point every model-facing path funnels through —
13
- * ToolFactory.getAllTools() — so turn assembly, SearchTools discovery, the
14
- * deferred-tool announcement, {{toolCount}}/{{toolNames}} template vars, the
15
- * server /tools route, and essential/standard tiering all see the same
16
- * reduced surface. Executor dispatch is gated separately in the orchestrator
17
- * (a hallucinated call to a hidden tool must NOT execute, or the A/B leaks).
18
- *
19
- * Resolved FRESH per call (env tier — hot-toggleable via RuntimeConfigRegistry).
20
- * Unknown values resolve to 'full' (fail-open: never brick the tool surface).
21
- */
22
1
  export type ToolProfileName = 'full' | 'lean' | 'bash-only' | 'bash-plus' | 'bash-edit';
2
+ /** CORTEX_ANCHOR_WEB (2026-11-04): the bash-edit narrow door also passes Browse when web tools are enabled — the door's purpose is "act first in
3
+ * the task's environment", and a web task's environment is the web. Without it every web task spent 2–4 Bash calls (~1 min: orient, ls,
4
+ * `which chromium playwright`) before Browse became available. Inert when ENABLE_WEBTOOLS is off (Browse is stripped first), so the TB4.0
5
+ * cells (ENABLE_WEBTOOLS=false) are unchanged. off = the door stays Bash/Edit/ReadImage only. */
6
+ export declare function anchorWebDoor(env?: NodeJS.ProcessEnv): boolean;
23
7
  /** Credentials that make a real search backend usable (Gemini grounding, XAI/OpenAI hosted search). */
24
8
  export declare const WEB_SEARCH_CREDENTIAL_ENVS: readonly ["GOOGLE_API_KEY", "GEMINI_API_KEY", "XAI_API_KEY", "OPENAI_API_KEY", "DEEPSEEK_API_KEY"];
25
9
  export type WebToolsMode = 'auto' | 'true' | 'false';
@@ -1 +1 @@
1
- {"version":3,"file":"ToolProfile.d.ts","sourceRoot":"","sources":["../../src/tools/ToolProfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolProfile.d.ts","sourceRoot":"","sources":["../../src/tools/ToolProfile.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@
19
19
  * Resolved FRESH per call (env tier — hot-toggleable via RuntimeConfigRegistry).
20
20
  * Unknown values resolve to 'full' (fail-open: never brick the tool surface).
21
21
  */
22
+ import { resolveBrowserBackendCached } from '../config/localBrowser.js';
22
23
  /** Tools always retained regardless of profile: EndTurn stays subordinate to
23
24
  * its OWN gate (CORTEX_ENDTURN_GATE) — the profile must not silently disable
24
25
  * that feature — and AskUserQuestion keeps the interactive approval path
@@ -37,6 +38,15 @@ const BASH_PLUS = new Set(['Bash', 'Read', 'Edit', 'Write', 'ReadImage', ...ALWA
37
38
  /** bash-edit: the dsh-Minimal shape — shell + structural editor ONLY (their
38
39
  * bash + str_replace_editor). The deepseek home-door candidate. */
39
40
  const BASH_EDIT = new Set(['Bash', 'Edit', 'ReadImage', ...ALWAYS_KEEP]);
41
+ /** CORTEX_ANCHOR_WEB (2026-11-04): the bash-edit narrow door also passes Browse when web tools are enabled — the door's purpose is "act first in
42
+ * the task's environment", and a web task's environment is the web. Without it every web task spent 2–4 Bash calls (~1 min: orient, ls,
43
+ * `which chromium playwright`) before Browse became available. Inert when ENABLE_WEBTOOLS is off (Browse is stripped first), so the TB4.0
44
+ * cells (ENABLE_WEBTOOLS=false) are unchanged. off = the door stays Bash/Edit/ReadImage only. */
45
+ export function anchorWebDoor(env = process.env) {
46
+ return !/^(off|false|0)$/i.test(String(env.CORTEX_ANCHOR_WEB ?? '').trim());
47
+ }
48
+ const WEB_DOOR = new Set(['Browse']);
49
+ const inBashEditDoor = (name) => BASH_EDIT.has(name) || (WEB_DOOR.has(name) && anchorWebDoor());
40
50
  /** ENABLE_WEBTOOLS — the web surface: builtin WebSearch / WebFetch / Browse, the nexus-browser
41
51
  * MCP tools, and the provider-native hosted search tools (web_search / x_search).
42
52
  * Modes (shipped default = auto):
@@ -84,6 +94,11 @@ export function isWebToolEnabled(name, env = process.env) {
84
94
  return false;
85
95
  if (name === 'WebFetch')
86
96
  return true; // auto: fetch is useful keyless (helper-summarizer ladder)
97
+ // auto: the LOCAL browser chosen at install (NEXUS_BROWSER_MODE=local, installed + ready) is itself a real backend — Browse and the
98
+ // nexus-browser tools need no search key then (operator 2026-11-03: choosing it at install is the approval). Keyless WebSearch stays
99
+ // off (DuckDuckGo walls bursts — r-webtools-keyless-ab-2026-08-31); the hosted browser still needs a key.
100
+ if ((name === 'Browse' || name.startsWith(WEB_MCP_PREFIX)) && resolveBrowserBackendCached(env).using === 'local')
101
+ return true;
87
102
  return hasWebSearchCredential(env); // auto: search/browse/hosted search need a real backend
88
103
  }
89
104
  /** Dispatch/assembly face: true when the tool is a web tool that the active mode disables. */
@@ -281,7 +296,7 @@ export function applyToolProfile(tools, profile = resolveToolProfile()) {
281
296
  if (profile === 'bash-plus')
282
297
  return tools.filter((t) => BASH_PLUS.has(t.name));
283
298
  if (profile === 'bash-edit')
284
- return tools.filter((t) => BASH_EDIT.has(t.name));
299
+ return tools.filter((t) => inBashEditDoor(t.name));
285
300
  return tools.filter((t) => t.discoveryTier === 'essential' || ALWAYS_KEEP.has(t.name));
286
301
  }
287
302
  /** Is this tool callable under the active profile? (Dispatch-guard face —
@@ -298,7 +313,7 @@ export function isToolAllowedByProfile(name, lookupTier, profile = resolveToolPr
298
313
  if (profile === 'bash-plus')
299
314
  return BASH_PLUS.has(name);
300
315
  if (profile === 'bash-edit')
301
- return BASH_EDIT.has(name);
316
+ return inBashEditDoor(name);
302
317
  return lookupTier(name) === 'essential';
303
318
  }
304
319
  /** R267: env patch for a definition-declared `mcp:` list — the per-profile form of Browse's envOverrides. */