agentfootprint 12.2.0 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/CAPABILITIES.md +1 -0
  2. package/dist/adapters/code/output.js +8 -29
  3. package/dist/adapters/code/output.js.map +1 -1
  4. package/dist/adapters/observability/audit.js +151 -159
  5. package/dist/adapters/observability/audit.js.map +1 -1
  6. package/dist/adapters/observability/auditBounding.js +411 -0
  7. package/dist/adapters/observability/auditBounding.js.map +1 -0
  8. package/dist/adapters/observability/auditKeptByContract.js +107 -0
  9. package/dist/adapters/observability/auditKeptByContract.js.map +1 -0
  10. package/dist/adapters/observability/auditShapes.js +1731 -0
  11. package/dist/adapters/observability/auditShapes.js.map +1 -0
  12. package/dist/answer-account/account.js +92 -15
  13. package/dist/answer-account/account.js.map +1 -1
  14. package/dist/answer-account/facts/calls.js +7 -9
  15. package/dist/answer-account/facts/calls.js.map +1 -1
  16. package/dist/answer-account/facts/checked.js +2 -2
  17. package/dist/answer-account/facts/checked.js.map +1 -1
  18. package/dist/answer-account/facts/common.js +40 -7
  19. package/dist/answer-account/facts/common.js.map +1 -1
  20. package/dist/answer-account/facts/found.js +1 -1
  21. package/dist/answer-account/facts/found.js.map +1 -1
  22. package/dist/answer-account/facts/howSure.js +21 -3
  23. package/dist/answer-account/facts/howSure.js.map +1 -1
  24. package/dist/answer-account/facts/inView.js +3 -4
  25. package/dist/answer-account/facts/inView.js.map +1 -1
  26. package/dist/answer-account/facts/pausedLeg.js +1 -1
  27. package/dist/answer-account/facts/pausedLeg.js.map +1 -1
  28. package/dist/answer-account/facts/scripts.js +222 -0
  29. package/dist/answer-account/facts/scripts.js.map +1 -0
  30. package/dist/answer-account/facts/understood.js +5 -5
  31. package/dist/answer-account/facts/understood.js.map +1 -1
  32. package/dist/answer-account/pointerKey.js +1 -1
  33. package/dist/answer-account/shown.js +25 -7
  34. package/dist/answer-account/shown.js.map +1 -1
  35. package/dist/answer-account/signals.js +1 -1
  36. package/dist/answer-account/signals.js.map +1 -1
  37. package/dist/answer-account/size.js +152 -0
  38. package/dist/answer-account/size.js.map +1 -0
  39. package/dist/answer-account/templates.js +39 -1
  40. package/dist/answer-account/templates.js.map +1 -1
  41. package/dist/core/Agent.js +25 -1
  42. package/dist/core/Agent.js.map +1 -1
  43. package/dist/core/agent/AgentBuilder.js +85 -1
  44. package/dist/core/agent/AgentBuilder.js.map +1 -1
  45. package/dist/core/agent/arguments/ask.js +85 -2
  46. package/dist/core/agent/arguments/ask.js.map +1 -1
  47. package/dist/core/agent/arguments/partialWindow.js +120 -0
  48. package/dist/core/agent/arguments/partialWindow.js.map +1 -0
  49. package/dist/core/agent/assessment/assess.js +37 -0
  50. package/dist/core/agent/assessment/assess.js.map +1 -1
  51. package/dist/core/agent/assessment/compose.js +5 -1
  52. package/dist/core/agent/assessment/compose.js.map +1 -1
  53. package/dist/core/agent/assessment/reasons.js +7 -0
  54. package/dist/core/agent/assessment/reasons.js.map +1 -1
  55. package/dist/core/agent/assessment/witness.js +37 -4
  56. package/dist/core/agent/assessment/witness.js.map +1 -1
  57. package/dist/core/agent/buildAgentChart.js.map +1 -1
  58. package/dist/core/agent/evidence/codeRegions.js +279 -0
  59. package/dist/core/agent/evidence/codeRegions.js.map +1 -0
  60. package/dist/core/agent/evidence/gate.js +13 -2
  61. package/dist/core/agent/evidence/gate.js.map +1 -1
  62. package/dist/core/agent/evidence/recovery.js +11 -2
  63. package/dist/core/agent/evidence/recovery.js.map +1 -1
  64. package/dist/core/agent/findings/types.js.map +1 -1
  65. package/dist/core/agent/scripts/attachment.js +375 -0
  66. package/dist/core/agent/scripts/attachment.js.map +1 -0
  67. package/dist/core/agent/scripts/inert.js +88 -0
  68. package/dist/core/agent/scripts/inert.js.map +1 -0
  69. package/dist/core/agent/scripts/judge.js +41 -0
  70. package/dist/core/agent/scripts/judge.js.map +1 -0
  71. package/dist/core/agent/scripts/label.js +143 -0
  72. package/dist/core/agent/scripts/label.js.map +1 -0
  73. package/dist/core/agent/scripts/match.js +233 -0
  74. package/dist/core/agent/scripts/match.js.map +1 -0
  75. package/dist/core/agent/scripts/recovery.js +81 -0
  76. package/dist/core/agent/scripts/recovery.js.map +1 -0
  77. package/dist/core/agent/scripts/rows.js +221 -0
  78. package/dist/core/agent/scripts/rows.js.map +1 -0
  79. package/dist/core/agent/scripts/types.js +22 -0
  80. package/dist/core/agent/scripts/types.js.map +1 -0
  81. package/dist/core/agent/scripts/wrapper.js +63 -0
  82. package/dist/core/agent/scripts/wrapper.js.map +1 -0
  83. package/dist/core/agent/stages/argumentAsk.js +161 -19
  84. package/dist/core/agent/stages/argumentAsk.js.map +1 -1
  85. package/dist/core/agent/stages/evidenceRecheck.js +4 -1
  86. package/dist/core/agent/stages/evidenceRecheck.js.map +1 -1
  87. package/dist/core/agent/stages/prepareFinal.js +65 -10
  88. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  89. package/dist/core/agent/stages/route.js +53 -3
  90. package/dist/core/agent/stages/route.js.map +1 -1
  91. package/dist/core/agent/stages/seed.js +14 -1
  92. package/dist/core/agent/stages/seed.js.map +1 -1
  93. package/dist/core/agent/stages/toolCalls.js +339 -18
  94. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  95. package/dist/core/codeRunnerTool.js +32 -3
  96. package/dist/core/codeRunnerTool.js.map +1 -1
  97. package/dist/core/runCheckpoint.js +19 -6
  98. package/dist/core/runCheckpoint.js.map +1 -1
  99. package/dist/esm/adapters/code/output.d.ts +1 -4
  100. package/dist/esm/adapters/code/output.js +3 -24
  101. package/dist/esm/adapters/code/output.js.map +1 -1
  102. package/dist/esm/adapters/observability/audit.d.ts +79 -12
  103. package/dist/esm/adapters/observability/audit.js +132 -142
  104. package/dist/esm/adapters/observability/audit.js.map +1 -1
  105. package/dist/esm/adapters/observability/auditBounding.d.ts +215 -0
  106. package/dist/esm/adapters/observability/auditBounding.js +390 -0
  107. package/dist/esm/adapters/observability/auditBounding.js.map +1 -0
  108. package/dist/esm/adapters/observability/auditKeptByContract.d.ts +65 -0
  109. package/dist/esm/adapters/observability/auditKeptByContract.js +103 -0
  110. package/dist/esm/adapters/observability/auditKeptByContract.js.map +1 -0
  111. package/dist/esm/adapters/observability/auditShapes.d.ts +78 -0
  112. package/dist/esm/adapters/observability/auditShapes.js +1726 -0
  113. package/dist/esm/adapters/observability/auditShapes.js.map +1 -0
  114. package/dist/esm/answer-account/account.js +91 -14
  115. package/dist/esm/answer-account/account.js.map +1 -1
  116. package/dist/esm/answer-account/facts/calls.d.ts +0 -2
  117. package/dist/esm/answer-account/facts/calls.js +1 -3
  118. package/dist/esm/answer-account/facts/calls.js.map +1 -1
  119. package/dist/esm/answer-account/facts/checked.js +2 -2
  120. package/dist/esm/answer-account/facts/checked.js.map +1 -1
  121. package/dist/esm/answer-account/facts/common.d.ts +16 -4
  122. package/dist/esm/answer-account/facts/common.js +38 -6
  123. package/dist/esm/answer-account/facts/common.js.map +1 -1
  124. package/dist/esm/answer-account/facts/found.js +2 -2
  125. package/dist/esm/answer-account/facts/found.js.map +1 -1
  126. package/dist/esm/answer-account/facts/howSure.d.ts +1 -1
  127. package/dist/esm/answer-account/facts/howSure.js +22 -4
  128. package/dist/esm/answer-account/facts/howSure.js.map +1 -1
  129. package/dist/esm/answer-account/facts/inView.js +1 -2
  130. package/dist/esm/answer-account/facts/inView.js.map +1 -1
  131. package/dist/esm/answer-account/facts/pausedLeg.js +2 -2
  132. package/dist/esm/answer-account/facts/pausedLeg.js.map +1 -1
  133. package/dist/esm/answer-account/facts/scripts.d.ts +34 -0
  134. package/dist/esm/answer-account/facts/scripts.js +218 -0
  135. package/dist/esm/answer-account/facts/scripts.js.map +1 -0
  136. package/dist/esm/answer-account/facts/understood.js +2 -2
  137. package/dist/esm/answer-account/facts/understood.js.map +1 -1
  138. package/dist/esm/answer-account/pointerKey.d.ts +1 -1
  139. package/dist/esm/answer-account/pointerKey.js +1 -1
  140. package/dist/esm/answer-account/shown.d.ts +9 -2
  141. package/dist/esm/answer-account/shown.js +25 -7
  142. package/dist/esm/answer-account/shown.js.map +1 -1
  143. package/dist/esm/answer-account/signals.js +2 -2
  144. package/dist/esm/answer-account/signals.js.map +1 -1
  145. package/dist/esm/answer-account/size.d.ts +59 -0
  146. package/dist/esm/answer-account/size.js +147 -0
  147. package/dist/esm/answer-account/size.js.map +1 -0
  148. package/dist/esm/answer-account/templates.d.ts +29 -1
  149. package/dist/esm/answer-account/templates.js +39 -1
  150. package/dist/esm/answer-account/templates.js.map +1 -1
  151. package/dist/esm/core/Agent.d.ts +8 -1
  152. package/dist/esm/core/Agent.js +25 -1
  153. package/dist/esm/core/Agent.js.map +1 -1
  154. package/dist/esm/core/agent/AgentBuilder.d.ts +52 -0
  155. package/dist/esm/core/agent/AgentBuilder.js +85 -1
  156. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  157. package/dist/esm/core/agent/arguments/ask.d.ts +11 -0
  158. package/dist/esm/core/agent/arguments/ask.js +83 -1
  159. package/dist/esm/core/agent/arguments/ask.js.map +1 -1
  160. package/dist/esm/core/agent/arguments/partialWindow.d.ts +42 -0
  161. package/dist/esm/core/agent/arguments/partialWindow.js +111 -0
  162. package/dist/esm/core/agent/arguments/partialWindow.js.map +1 -0
  163. package/dist/esm/core/agent/assessment/assess.js +37 -0
  164. package/dist/esm/core/agent/assessment/assess.js.map +1 -1
  165. package/dist/esm/core/agent/assessment/compose.d.ts +3 -1
  166. package/dist/esm/core/agent/assessment/compose.js +5 -1
  167. package/dist/esm/core/agent/assessment/compose.js.map +1 -1
  168. package/dist/esm/core/agent/assessment/reasons.js +7 -0
  169. package/dist/esm/core/agent/assessment/reasons.js.map +1 -1
  170. package/dist/esm/core/agent/assessment/types.d.ts +12 -2
  171. package/dist/esm/core/agent/assessment/witness.d.ts +44 -4
  172. package/dist/esm/core/agent/assessment/witness.js +35 -3
  173. package/dist/esm/core/agent/assessment/witness.js.map +1 -1
  174. package/dist/esm/core/agent/buildAgentChart.d.ts +9 -0
  175. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  176. package/dist/esm/core/agent/evidence/codeRegions.d.ts +130 -0
  177. package/dist/esm/core/agent/evidence/codeRegions.js +275 -0
  178. package/dist/esm/core/agent/evidence/codeRegions.js.map +1 -0
  179. package/dist/esm/core/agent/evidence/gate.d.ts +3 -0
  180. package/dist/esm/core/agent/evidence/gate.js +12 -2
  181. package/dist/esm/core/agent/evidence/gate.js.map +1 -1
  182. package/dist/esm/core/agent/evidence/recovery.d.ts +5 -1
  183. package/dist/esm/core/agent/evidence/recovery.js +11 -2
  184. package/dist/esm/core/agent/evidence/recovery.js.map +1 -1
  185. package/dist/esm/core/agent/evidence/types.d.ts +35 -0
  186. package/dist/esm/core/agent/findings/types.d.ts +3 -2
  187. package/dist/esm/core/agent/findings/types.js.map +1 -1
  188. package/dist/esm/core/agent/scripts/attachment.d.ts +179 -0
  189. package/dist/esm/core/agent/scripts/attachment.js +361 -0
  190. package/dist/esm/core/agent/scripts/attachment.js.map +1 -0
  191. package/dist/esm/core/agent/scripts/inert.d.ts +38 -0
  192. package/dist/esm/core/agent/scripts/inert.js +84 -0
  193. package/dist/esm/core/agent/scripts/inert.js.map +1 -0
  194. package/dist/esm/core/agent/scripts/judge.d.ts +36 -0
  195. package/dist/esm/core/agent/scripts/judge.js +37 -0
  196. package/dist/esm/core/agent/scripts/judge.js.map +1 -0
  197. package/dist/esm/core/agent/scripts/label.d.ts +103 -0
  198. package/dist/esm/core/agent/scripts/label.js +136 -0
  199. package/dist/esm/core/agent/scripts/label.js.map +1 -0
  200. package/dist/esm/core/agent/scripts/match.d.ts +99 -0
  201. package/dist/esm/core/agent/scripts/match.js +226 -0
  202. package/dist/esm/core/agent/scripts/match.js.map +1 -0
  203. package/dist/esm/core/agent/scripts/recovery.d.ts +54 -0
  204. package/dist/esm/core/agent/scripts/recovery.js +77 -0
  205. package/dist/esm/core/agent/scripts/recovery.js.map +1 -0
  206. package/dist/esm/core/agent/scripts/rows.d.ts +143 -0
  207. package/dist/esm/core/agent/scripts/rows.js +211 -0
  208. package/dist/esm/core/agent/scripts/rows.js.map +1 -0
  209. package/dist/esm/core/agent/scripts/types.d.ts +91 -0
  210. package/dist/esm/core/agent/scripts/types.js +21 -0
  211. package/dist/esm/core/agent/scripts/types.js.map +1 -0
  212. package/dist/esm/core/agent/scripts/wrapper.d.ts +36 -0
  213. package/dist/esm/core/agent/scripts/wrapper.js +58 -0
  214. package/dist/esm/core/agent/scripts/wrapper.js.map +1 -0
  215. package/dist/esm/core/agent/stages/argumentAsk.d.ts +4 -1
  216. package/dist/esm/core/agent/stages/argumentAsk.js +164 -22
  217. package/dist/esm/core/agent/stages/argumentAsk.js.map +1 -1
  218. package/dist/esm/core/agent/stages/evidenceRecheck.js +4 -1
  219. package/dist/esm/core/agent/stages/evidenceRecheck.js.map +1 -1
  220. package/dist/esm/core/agent/stages/prepareFinal.d.ts +11 -0
  221. package/dist/esm/core/agent/stages/prepareFinal.js +65 -10
  222. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  223. package/dist/esm/core/agent/stages/route.js +53 -3
  224. package/dist/esm/core/agent/stages/route.js.map +1 -1
  225. package/dist/esm/core/agent/stages/seed.js +14 -1
  226. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  227. package/dist/esm/core/agent/stages/toolCalls.d.ts +14 -0
  228. package/dist/esm/core/agent/stages/toolCalls.js +337 -16
  229. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  230. package/dist/esm/core/agent/types.d.ts +41 -0
  231. package/dist/esm/core/codeRunnerTool.d.ts +23 -0
  232. package/dist/esm/core/codeRunnerTool.js +31 -2
  233. package/dist/esm/core/codeRunnerTool.js.map +1 -1
  234. package/dist/esm/core/runCheckpoint.js +16 -3
  235. package/dist/esm/core/runCheckpoint.js.map +1 -1
  236. package/dist/esm/events/payloads.d.ts +46 -1
  237. package/dist/esm/hosting/answerAccounts.js +4 -2
  238. package/dist/esm/hosting/answerAccounts.js.map +1 -1
  239. package/dist/esm/hosting/artifactWire.d.ts +3 -2
  240. package/dist/esm/hosting/artifactWire.js.map +1 -1
  241. package/dist/esm/index.d.ts +3 -1
  242. package/dist/esm/index.js.map +1 -1
  243. package/dist/esm/lib/boundedJson.d.ts +24 -0
  244. package/dist/esm/lib/boundedJson.js +45 -2
  245. package/dist/esm/lib/boundedJson.js.map +1 -1
  246. package/dist/esm/lib/scriptRecord.d.ts +139 -0
  247. package/dist/esm/lib/scriptRecord.js +18 -0
  248. package/dist/esm/lib/scriptRecord.js.map +1 -0
  249. package/dist/esm/lib/utf8.d.ts +36 -0
  250. package/dist/esm/lib/utf8.js +70 -0
  251. package/dist/esm/lib/utf8.js.map +1 -0
  252. package/dist/esm/mcp/toolExtras.d.ts +9 -0
  253. package/dist/esm/mcp/toolExtras.js +6 -0
  254. package/dist/esm/mcp/toolExtras.js.map +1 -1
  255. package/dist/esm/redaction/conversation.js +10 -0
  256. package/dist/esm/redaction/conversation.js.map +1 -1
  257. package/dist/esm/redaction/knownStrings.js +34 -0
  258. package/dist/esm/redaction/knownStrings.js.map +1 -1
  259. package/dist/esm/semantics/coverage/answer.d.ts +12 -1
  260. package/dist/esm/semantics/coverage/answer.js +26 -3
  261. package/dist/esm/semantics/coverage/answer.js.map +1 -1
  262. package/dist/esm/tools/script.d.ts +85 -0
  263. package/dist/esm/tools/script.js +157 -0
  264. package/dist/esm/tools/script.js.map +1 -0
  265. package/dist/esm/tools/tools.d.ts +30 -0
  266. package/dist/esm/tools/tools.js +4 -0
  267. package/dist/esm/tools/tools.js.map +1 -1
  268. package/dist/hosting/answerAccounts.js +4 -2
  269. package/dist/hosting/answerAccounts.js.map +1 -1
  270. package/dist/hosting/artifactWire.js.map +1 -1
  271. package/dist/index.js.map +1 -1
  272. package/dist/lib/boundedJson.js +48 -3
  273. package/dist/lib/boundedJson.js.map +1 -1
  274. package/dist/lib/scriptRecord.js +19 -0
  275. package/dist/lib/scriptRecord.js.map +1 -0
  276. package/dist/lib/utf8.js +77 -0
  277. package/dist/lib/utf8.js.map +1 -0
  278. package/dist/mcp/toolExtras.js +6 -0
  279. package/dist/mcp/toolExtras.js.map +1 -1
  280. package/dist/redaction/conversation.js +10 -0
  281. package/dist/redaction/conversation.js.map +1 -1
  282. package/dist/redaction/knownStrings.js +34 -0
  283. package/dist/redaction/knownStrings.js.map +1 -1
  284. package/dist/semantics/coverage/answer.js +26 -3
  285. package/dist/semantics/coverage/answer.js.map +1 -1
  286. package/dist/tools/script.js +163 -0
  287. package/dist/tools/script.js.map +1 -0
  288. package/dist/tools/tools.js +4 -0
  289. package/dist/tools/tools.js.map +1 -1
  290. package/dist/types/adapters/code/output.d.ts +1 -4
  291. package/dist/types/adapters/code/output.d.ts.map +1 -1
  292. package/dist/types/adapters/observability/audit.d.ts +79 -12
  293. package/dist/types/adapters/observability/audit.d.ts.map +1 -1
  294. package/dist/types/adapters/observability/auditBounding.d.ts +216 -0
  295. package/dist/types/adapters/observability/auditBounding.d.ts.map +1 -0
  296. package/dist/types/adapters/observability/auditKeptByContract.d.ts +66 -0
  297. package/dist/types/adapters/observability/auditKeptByContract.d.ts.map +1 -0
  298. package/dist/types/adapters/observability/auditShapes.d.ts +79 -0
  299. package/dist/types/adapters/observability/auditShapes.d.ts.map +1 -0
  300. package/dist/types/answer-account/account.d.ts.map +1 -1
  301. package/dist/types/answer-account/facts/calls.d.ts +0 -2
  302. package/dist/types/answer-account/facts/calls.d.ts.map +1 -1
  303. package/dist/types/answer-account/facts/checked.d.ts.map +1 -1
  304. package/dist/types/answer-account/facts/common.d.ts +16 -4
  305. package/dist/types/answer-account/facts/common.d.ts.map +1 -1
  306. package/dist/types/answer-account/facts/found.d.ts.map +1 -1
  307. package/dist/types/answer-account/facts/howSure.d.ts +1 -1
  308. package/dist/types/answer-account/facts/howSure.d.ts.map +1 -1
  309. package/dist/types/answer-account/facts/inView.d.ts.map +1 -1
  310. package/dist/types/answer-account/facts/pausedLeg.d.ts.map +1 -1
  311. package/dist/types/answer-account/facts/scripts.d.ts +35 -0
  312. package/dist/types/answer-account/facts/scripts.d.ts.map +1 -0
  313. package/dist/types/answer-account/facts/understood.d.ts.map +1 -1
  314. package/dist/types/answer-account/pointerKey.d.ts +1 -1
  315. package/dist/types/answer-account/shown.d.ts +9 -2
  316. package/dist/types/answer-account/shown.d.ts.map +1 -1
  317. package/dist/types/answer-account/signals.d.ts.map +1 -1
  318. package/dist/types/answer-account/size.d.ts +60 -0
  319. package/dist/types/answer-account/size.d.ts.map +1 -0
  320. package/dist/types/answer-account/templates.d.ts +29 -1
  321. package/dist/types/answer-account/templates.d.ts.map +1 -1
  322. package/dist/types/core/Agent.d.ts +8 -1
  323. package/dist/types/core/Agent.d.ts.map +1 -1
  324. package/dist/types/core/agent/AgentBuilder.d.ts +52 -0
  325. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  326. package/dist/types/core/agent/arguments/ask.d.ts +11 -0
  327. package/dist/types/core/agent/arguments/ask.d.ts.map +1 -1
  328. package/dist/types/core/agent/arguments/partialWindow.d.ts +43 -0
  329. package/dist/types/core/agent/arguments/partialWindow.d.ts.map +1 -0
  330. package/dist/types/core/agent/assessment/assess.d.ts.map +1 -1
  331. package/dist/types/core/agent/assessment/compose.d.ts +3 -1
  332. package/dist/types/core/agent/assessment/compose.d.ts.map +1 -1
  333. package/dist/types/core/agent/assessment/reasons.d.ts.map +1 -1
  334. package/dist/types/core/agent/assessment/types.d.ts +12 -2
  335. package/dist/types/core/agent/assessment/types.d.ts.map +1 -1
  336. package/dist/types/core/agent/assessment/witness.d.ts +44 -4
  337. package/dist/types/core/agent/assessment/witness.d.ts.map +1 -1
  338. package/dist/types/core/agent/buildAgentChart.d.ts +9 -0
  339. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  340. package/dist/types/core/agent/evidence/codeRegions.d.ts +131 -0
  341. package/dist/types/core/agent/evidence/codeRegions.d.ts.map +1 -0
  342. package/dist/types/core/agent/evidence/gate.d.ts +3 -0
  343. package/dist/types/core/agent/evidence/gate.d.ts.map +1 -1
  344. package/dist/types/core/agent/evidence/recovery.d.ts +5 -1
  345. package/dist/types/core/agent/evidence/recovery.d.ts.map +1 -1
  346. package/dist/types/core/agent/evidence/types.d.ts +35 -0
  347. package/dist/types/core/agent/evidence/types.d.ts.map +1 -1
  348. package/dist/types/core/agent/findings/types.d.ts +3 -2
  349. package/dist/types/core/agent/findings/types.d.ts.map +1 -1
  350. package/dist/types/core/agent/scripts/attachment.d.ts +180 -0
  351. package/dist/types/core/agent/scripts/attachment.d.ts.map +1 -0
  352. package/dist/types/core/agent/scripts/inert.d.ts +39 -0
  353. package/dist/types/core/agent/scripts/inert.d.ts.map +1 -0
  354. package/dist/types/core/agent/scripts/judge.d.ts +37 -0
  355. package/dist/types/core/agent/scripts/judge.d.ts.map +1 -0
  356. package/dist/types/core/agent/scripts/label.d.ts +104 -0
  357. package/dist/types/core/agent/scripts/label.d.ts.map +1 -0
  358. package/dist/types/core/agent/scripts/match.d.ts +100 -0
  359. package/dist/types/core/agent/scripts/match.d.ts.map +1 -0
  360. package/dist/types/core/agent/scripts/recovery.d.ts +55 -0
  361. package/dist/types/core/agent/scripts/recovery.d.ts.map +1 -0
  362. package/dist/types/core/agent/scripts/rows.d.ts +144 -0
  363. package/dist/types/core/agent/scripts/rows.d.ts.map +1 -0
  364. package/dist/types/core/agent/scripts/types.d.ts +92 -0
  365. package/dist/types/core/agent/scripts/types.d.ts.map +1 -0
  366. package/dist/types/core/agent/scripts/wrapper.d.ts +37 -0
  367. package/dist/types/core/agent/scripts/wrapper.d.ts.map +1 -0
  368. package/dist/types/core/agent/stages/argumentAsk.d.ts +4 -1
  369. package/dist/types/core/agent/stages/argumentAsk.d.ts.map +1 -1
  370. package/dist/types/core/agent/stages/evidenceRecheck.d.ts.map +1 -1
  371. package/dist/types/core/agent/stages/prepareFinal.d.ts +11 -0
  372. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  373. package/dist/types/core/agent/stages/route.d.ts.map +1 -1
  374. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  375. package/dist/types/core/agent/stages/toolCalls.d.ts +14 -0
  376. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  377. package/dist/types/core/agent/types.d.ts +41 -0
  378. package/dist/types/core/agent/types.d.ts.map +1 -1
  379. package/dist/types/core/codeRunnerTool.d.ts +23 -0
  380. package/dist/types/core/codeRunnerTool.d.ts.map +1 -1
  381. package/dist/types/core/runCheckpoint.d.ts.map +1 -1
  382. package/dist/types/events/payloads.d.ts +46 -1
  383. package/dist/types/events/payloads.d.ts.map +1 -1
  384. package/dist/types/hosting/answerAccounts.d.ts.map +1 -1
  385. package/dist/types/hosting/artifactWire.d.ts +3 -2
  386. package/dist/types/hosting/artifactWire.d.ts.map +1 -1
  387. package/dist/types/index.d.ts +3 -1
  388. package/dist/types/index.d.ts.map +1 -1
  389. package/dist/types/lib/boundedJson.d.ts +24 -0
  390. package/dist/types/lib/boundedJson.d.ts.map +1 -1
  391. package/dist/types/lib/scriptRecord.d.ts +140 -0
  392. package/dist/types/lib/scriptRecord.d.ts.map +1 -0
  393. package/dist/types/lib/utf8.d.ts +37 -0
  394. package/dist/types/lib/utf8.d.ts.map +1 -0
  395. package/dist/types/mcp/toolExtras.d.ts +9 -0
  396. package/dist/types/mcp/toolExtras.d.ts.map +1 -1
  397. package/dist/types/redaction/conversation.d.ts.map +1 -1
  398. package/dist/types/redaction/knownStrings.d.ts.map +1 -1
  399. package/dist/types/semantics/coverage/answer.d.ts +12 -1
  400. package/dist/types/semantics/coverage/answer.d.ts.map +1 -1
  401. package/dist/types/tools/script.d.ts +86 -0
  402. package/dist/types/tools/script.d.ts.map +1 -0
  403. package/dist/types/tools/tools.d.ts +30 -0
  404. package/dist/types/tools/tools.d.ts.map +1 -1
  405. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/agent/findings/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;AAoBH,kFAAkF;AACrE,QAAA,iBAAiB,GAAG,WAAoB,CAAC;AACtD,8EAA8E;AACjE,QAAA,mBAAmB,GAAG,WAAoB,CAAC;AASxD,wEAAwE;AAC3D,QAAA,YAAY,GAAqB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AAC1E,QAAA,aAAa,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,QAAA,eAAe,GAAwB,MAAM,CAAC,MAAM,CAAC;IAChE,MAAM;IACN,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAG,GAAG,CAAC;AAyJrC;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG,IAAI,CAAC;AA0EvC;;;;;;GAMG;AACU,QAAA,sBAAsB,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/agent/findings/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;AAqBH,kFAAkF;AACrE,QAAA,iBAAiB,GAAG,WAAoB,CAAC;AACtD,8EAA8E;AACjE,QAAA,mBAAmB,GAAG,WAAoB,CAAC;AASxD,wEAAwE;AAC3D,QAAA,YAAY,GAAqB,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;AAC1E,QAAA,aAAa,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,QAAA,eAAe,GAAwB,MAAM,CAAC,MAAM,CAAC;IAChE,MAAM;IACN,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAG,GAAG,CAAC;AAyJrC;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG,IAAI,CAAC;AA0EvC;;;;;;GAMG;AACU,QAAA,sBAAsB,GAAG,GAAG,CAAC"}
@@ -0,0 +1,375 @@
1
+ "use strict";
2
+ /**
3
+ * scripts/attachment — `.scriptTravelsWithTheAnswer()`: the recorded program
4
+ * itself, under the answer, labelled from the execution record.
5
+ *
6
+ * Pattern: composed by the FRAMEWORK, never requested from the model (the
7
+ * `.limitsTravelWithTheAnswer()` precedent, `semantics/coverage/
8
+ * answer.ts`). Pure: rows in, data and text out.
9
+ * Role: core/ layer. Read by the final branch (`stages/prepareFinal.ts`):
10
+ * the data rides `turn_end.scripts` on every answer under the arm;
11
+ * the text is appended to a PROSE answer through the one composer
12
+ * (`composeAnswerWithCoverage`), after the standing line and the
13
+ * limits block. A typed answer gets the data only — its bytes are
14
+ * never edited.
15
+ * Emits: N/A.
16
+ *
17
+ * ## Why the library attaches it
18
+ *
19
+ * An app's rule "always show the script" is a rule the model can break, and
20
+ * the cheapest revision that passes a names-and-numbers check is to delete
21
+ * the script. The attachment needs no cooperation from the model: the program
22
+ * comes from the record (the row's `text` — what was SUBMITTED to the tool),
23
+ * so there is nothing to retype and nothing to check. When the model also
24
+ * showed a matched copy, the attachment is still appended: the model's copy
25
+ * never decides whether the authoritative one is delivered.
26
+ *
27
+ * ## What is attached (design § 4.1, § 4.4)
28
+ *
29
+ * - `which: 'last'` (default): the last call of the turn that REACHED the tool
30
+ * (its label is not `submitted`); `'all'`: every such call, at most
31
+ * {@link MAX_ATTACHED_SCRIPTS}, the rest counted in `omitted`.
32
+ * - `maxBytes` (default 4,000 UTF-8 bytes) bounds each program shown, cut at a
33
+ * code-point boundary; a cut says so — `[incomplete: showing N of M bytes —
34
+ * not the whole program]` and `truncated.shownBytes` — and is never
35
+ * advertised as a complete, reproducible program.
36
+ * - A program over `MAX_SCRIPT_BYTES` has no text on its row: it is counted in
37
+ * `omitted` and the text says "one script of N bytes is over the bound and
38
+ * is not shown". Calls past `MAX_SCRIPT_ROWS` have no row: counted too.
39
+ *
40
+ * Every line is library-authored and past tense, names the CALL (never a
41
+ * destination), and uses the label's words (`label.ts` · `labelWords`).
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * const data = scriptsOfAnswer(scriptRowsOfTurn(ledger, turn).current, { which: 'last', maxBytes: 4000 });
46
+ * scriptsBlock(data);
47
+ * // Script submitted to run_code on call c1 — completed, exit 0. Attached by the library from the run record:
48
+ * //
49
+ * // ```python
50
+ * // print(41 + 1)
51
+ * // ```
52
+ * ```
53
+ */
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.turnEndScriptsOf = exports.scriptsBlockAfter = exports.scriptsBlock = exports.recordedScripts = exports.rebuildBoundary = exports.attachmentBoundary = exports.shownScriptBlock = exports.scriptWithheldLine = exports.scriptLabelLine = exports.scriptsOfAnswer = exports.resolveScriptTravel = exports.DEFAULT_ATTACHED_BYTES = exports.MAX_ATTACHED_SCRIPTS = void 0;
56
+ const utf8_js_1 = require("../../../lib/utf8.js");
57
+ const codeRegions_js_1 = require("../evidence/codeRegions.js");
58
+ const inert_js_1 = require("./inert.js");
59
+ const label_js_1 = require("./label.js");
60
+ const rows_js_1 = require("./rows.js");
61
+ const wrapper_js_1 = require("./wrapper.js");
62
+ /** Scripts attached under `which: 'all'`; the rest are counted (`omitted`). Design § 4.1. */
63
+ exports.MAX_ATTACHED_SCRIPTS = 8;
64
+ /** Default UTF-8 bytes of each program shown. Design § 4.1. */
65
+ exports.DEFAULT_ATTACHED_BYTES = 4_000;
66
+ const DOOR = 'AgentBuilder.scriptTravelsWithTheAnswer';
67
+ /**
68
+ * Check `.scriptTravelsWithTheAnswer()`'s options once, at the call site, into
69
+ * the arm the chart carries. Refusals name the option and the fix.
70
+ */
71
+ function resolveScriptTravel(opts = {}) {
72
+ if (opts === null || typeof opts !== 'object' || Array.isArray(opts)) {
73
+ throw new Error(`${DOOR}: options must be an object ({ which?, maxBytes? }).`);
74
+ }
75
+ const unknown = Object.keys(opts).filter((k) => k !== 'which' && k !== 'maxBytes');
76
+ if (unknown.length > 0) {
77
+ throw new Error(`${DOOR}: unknown option(s) ${unknown.map((k) => `'${k}'`).join(', ')}. ` +
78
+ "The options are which ('last' | 'all') and maxBytes (UTF-8 bytes shown per program).");
79
+ }
80
+ const which = opts.which ?? 'last';
81
+ if (which !== 'last' && which !== 'all') {
82
+ throw new Error(`${DOOR}: which '${String(which)}' is not one this version has. Use 'last' (the last ` +
83
+ "call of the turn that reached the tool — the default) or 'all' (every such call, at " +
84
+ `most ${exports.MAX_ATTACHED_SCRIPTS}).`);
85
+ }
86
+ const maxBytes = opts.maxBytes ?? exports.DEFAULT_ATTACHED_BYTES;
87
+ if (!Number.isInteger(maxBytes) || maxBytes < 1) {
88
+ throw new Error(`${DOOR}: maxBytes must be a whole number of at least 1 — got ${String(opts.maxBytes)}. ` +
89
+ `It bounds the UTF-8 bytes of each program shown (default ${exports.DEFAULT_ATTACHED_BYTES}); ` +
90
+ 'a longer program is cut and says so.');
91
+ }
92
+ return { which, maxBytes };
93
+ }
94
+ exports.resolveScriptTravel = resolveScriptTravel;
95
+ /** A call that reached the tool — the attachment's candidates. */
96
+ const reached = (row) => row.outcome !== 'submitted';
97
+ /** One row as an attached script, cut at `maxBytes`. */
98
+ function shownFrom(row, maxBytes) {
99
+ const cut = (0, utf8_js_1.utf8Prefix)(row.text, maxBytes);
100
+ const shownBytes = cut === row.text ? row.bytes : (0, utf8_js_1.utf8Length)(cut);
101
+ return {
102
+ toolCallId: row.toolCallId,
103
+ dispatch: row.dispatch,
104
+ tool: row.tool,
105
+ ...(row.language !== undefined && { language: row.language }),
106
+ label: row.outcome,
107
+ ...(row.exitCode !== undefined && { exitCode: row.exitCode }),
108
+ ...(row.resultWithheld !== undefined && { resultWithheld: row.resultWithheld }),
109
+ ...(row.rewritten === true && { rewritten: true }),
110
+ bytes: row.bytes,
111
+ lines: row.lines,
112
+ ...(cut !== row.text && { truncated: { shownBytes } }),
113
+ text: cut,
114
+ };
115
+ }
116
+ /**
117
+ * What travels with this turn's answer — the data form (`turn_end.scripts`).
118
+ * `rows` is this turn's reading (`rows.ts` · `scriptRowsOfTurn`); fresh plain
119
+ * objects, never a reference into the ledger.
120
+ */
121
+ function scriptsOfAnswer(rows, travel, scriptsDropped = 0) {
122
+ const candidates = rows.filter(reached);
123
+ const chosen = travel.which === 'last' ? candidates.slice(-1) : candidates;
124
+ const shown = [];
125
+ const overSize = [];
126
+ let omitted = scriptsDropped;
127
+ for (const row of chosen) {
128
+ if (row.text === undefined) {
129
+ overSize.push(row);
130
+ omitted += 1;
131
+ }
132
+ else if (shown.length < exports.MAX_ATTACHED_SCRIPTS) {
133
+ shown.push(shownFrom(row, travel.maxBytes));
134
+ }
135
+ else {
136
+ omitted += 1;
137
+ }
138
+ }
139
+ return { shown, omitted, overSize };
140
+ }
141
+ exports.scriptsOfAnswer = scriptsOfAnswer;
142
+ /** The call a line names, and what its record says — every dynamic value inert (`inert.ts`). */
143
+ function callSaid(script) {
144
+ const withheld = script.resultWithheld === 'over-ceiling'
145
+ ? "; its result was withheld over the tool's ceiling"
146
+ : '';
147
+ const rewritten = script.rewritten === true ? '; a before-tool rule changed it before dispatch' : '';
148
+ return (`Script submitted to ${(0, inert_js_1.inertCode)(script.tool)} on call ${(0, inert_js_1.inertCode)(script.toolCallId)} — ` +
149
+ `${(0, label_js_1.labelWords)(script.label, script.exitCode)}${withheld}${rewritten}.`);
150
+ }
151
+ /** The label line of one attached script — library words, past tense, the call named. */
152
+ function scriptLabelLine(script) {
153
+ return `${callSaid(script)} Attached by the library from the run record:`;
154
+ }
155
+ exports.scriptLabelLine = scriptLabelLine;
156
+ /** The line that stands for a script whose program is kept out of the text (`withheldFromText`). */
157
+ function scriptWithheldLine(script) {
158
+ return (`${callSaid(script)} The program is not shown here: the formatting above could display ` +
159
+ 'part of it as ordinary text. It is kept on the run record.');
160
+ }
161
+ exports.scriptWithheldLine = scriptWithheldLine;
162
+ /** One attached script as text: its label line, then the program in the library's fence. */
163
+ function shownScriptBlock(script) {
164
+ const body = `${scriptLabelLine(script)}\n\n${(0, wrapper_js_1.wrapProgram)(script.text, script.language)}`;
165
+ if (script.truncated === undefined)
166
+ return body;
167
+ return (`${body}\n[incomplete: showing ${script.truncated.shownBytes} of ${script.bytes} bytes — ` +
168
+ 'not the whole program]');
169
+ }
170
+ exports.shownScriptBlock = shownScriptBlock;
171
+ const CLEAN = { kind: 'clean' };
172
+ /** The boundary after `before` (see {@link AttachmentBoundary}). */
173
+ function attachmentBoundary(before) {
174
+ if (before.length === 0)
175
+ return CLEAN;
176
+ const read = (0, codeRegions_js_1.codeRegionsOf)(`${before}\n`);
177
+ if (read.stoppedAt !== undefined)
178
+ return { kind: 'unsettled' };
179
+ if (read.openFence !== undefined)
180
+ return { kind: 'closed', fence: read.openFence };
181
+ return CLEAN;
182
+ }
183
+ exports.attachmentBoundary = attachmentBoundary;
184
+ const isObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
185
+ const isCount = (value) => typeof value === 'number' && Number.isInteger(value) && value >= 0;
186
+ /**
187
+ * The boundary a `turn_end.scripts` record states — `undefined` when the
188
+ * record holds a value no writer of this library files: a `closedFence` that
189
+ * is not `{ char: 'backtick' | 'tilde', length }` with a whole length of at
190
+ * least 3 and at most `within` (the answer the closing fence was written into
191
+ * — a fence longer than the text cannot be in it), a `withheldFromText` that
192
+ * is not `true`, or both at once.
193
+ */
194
+ function recordedBoundary(scripts, within) {
195
+ const withheld = scripts.withheldFromText;
196
+ const closed = scripts.closedFence;
197
+ if (withheld !== undefined && withheld !== true)
198
+ return undefined;
199
+ if (closed === undefined)
200
+ return withheld === true ? { kind: 'unsettled' } : { kind: 'clean' };
201
+ if (withheld === true || !isObject(closed))
202
+ return undefined;
203
+ const char = closed.char;
204
+ if ((char !== 'backtick' && char !== 'tilde') || !isCount(closed.length))
205
+ return undefined;
206
+ if (closed.length < 3 || closed.length > within)
207
+ return undefined;
208
+ return { kind: 'closed', char, length: closed.length };
209
+ }
210
+ /**
211
+ * The boundary to rebuild a recorded text behind — `undefined` when its fence
212
+ * is longer than `within`, the text it would have to be found in: the one
213
+ * repetition a reader makes is bounded by what it reads.
214
+ */
215
+ function rebuildBoundary(recorded, within) {
216
+ if (recorded.kind !== 'closed')
217
+ return recorded;
218
+ if (recorded.length > within)
219
+ return undefined;
220
+ return { kind: 'closed', fence: (recorded.char === 'tilde' ? '~' : '`').repeat(recorded.length) };
221
+ }
222
+ exports.rebuildBoundary = rebuildBoundary;
223
+ /**
224
+ * One `turn_end.scripts.shown` entry, checked against what `shownFrom` writes
225
+ * — a fresh copy, or `undefined` when any field is one no writer of this
226
+ * library files: a call that never reached the tool (`submitted` is never
227
+ * attached), an exit code its label does not carry (`label.ts` ·
228
+ * `exitCodeFits`), a program over `MAX_SCRIPT_BYTES`, or a text whose UTF-8
229
+ * length is not the bytes it says it shows (`truncated.shownBytes` when cut,
230
+ * and then fewer than `bytes`; else `bytes`).
231
+ */
232
+ function shownScriptOf(value) {
233
+ if (!isObject(value))
234
+ return undefined;
235
+ const v = value;
236
+ const { toolCallId, tool, text, bytes, lines, dispatch, label, exitCode } = v;
237
+ if (typeof toolCallId !== 'string' || typeof tool !== 'string')
238
+ return undefined;
239
+ if (typeof text !== 'string' || !isCount(bytes) || !isCount(lines))
240
+ return undefined;
241
+ if (!isCount(dispatch) || dispatch < 1)
242
+ return undefined;
243
+ if (label === 'submitted' || !label_js_1.SCRIPT_LABELS.includes(label)) {
244
+ return undefined;
245
+ }
246
+ if (!(0, label_js_1.exitCodeFits)(label, exitCode))
247
+ return undefined;
248
+ if (v.language !== undefined && typeof v.language !== 'string')
249
+ return undefined;
250
+ if (v.resultWithheld !== undefined && v.resultWithheld !== 'over-ceiling')
251
+ return undefined;
252
+ if (v.rewritten !== undefined && v.rewritten !== true)
253
+ return undefined;
254
+ if (bytes > rows_js_1.MAX_SCRIPT_BYTES)
255
+ return undefined;
256
+ const cut = v.truncated;
257
+ let shownBytes = bytes;
258
+ if (cut !== undefined) {
259
+ if (!isObject(cut) || !isCount(cut.shownBytes) || cut.shownBytes >= bytes)
260
+ return undefined;
261
+ shownBytes = cut.shownBytes;
262
+ }
263
+ // A UTF-8 encoding is never shorter than the string's length in code
264
+ // units: a longer string is refused before it is measured.
265
+ if (text.length > shownBytes || (0, utf8_js_1.utf8Length)(text) !== shownBytes)
266
+ return undefined;
267
+ return {
268
+ toolCallId,
269
+ dispatch,
270
+ tool,
271
+ ...(v.language !== undefined && { language: v.language }),
272
+ label: label,
273
+ ...(exitCode !== undefined && { exitCode: exitCode }),
274
+ ...(v.resultWithheld !== undefined && { resultWithheld: 'over-ceiling' }),
275
+ ...(v.rewritten !== undefined && { rewritten: true }),
276
+ bytes,
277
+ lines,
278
+ ...(cut !== undefined && { truncated: { shownBytes } }),
279
+ text,
280
+ };
281
+ }
282
+ /**
283
+ * A saved `turn_end.scripts` — THE reader of the shape for a reader of a
284
+ * record. `undefined` when the event carries no scripts arm. `within` is the
285
+ * length of the answer the block was appended to (a fence longer than it is
286
+ * refused). Bounded by the writer's cap: no reader iterates more entries
287
+ * than a writer attaches.
288
+ */
289
+ function recordedScripts(value, within = Number.MAX_SAFE_INTEGER) {
290
+ if (value === undefined)
291
+ return undefined;
292
+ if (!isObject(value) || !Array.isArray(value.shown))
293
+ return { shown: [], unread: 1 };
294
+ const all = value.shown;
295
+ const shown = [];
296
+ let unread = Math.max(0, all.length - exports.MAX_ATTACHED_SCRIPTS);
297
+ for (let index = 0; index < Math.min(all.length, exports.MAX_ATTACHED_SCRIPTS); index++) {
298
+ const script = shownScriptOf(all[index]);
299
+ if (script === undefined)
300
+ unread += 1;
301
+ else
302
+ shown.push({ index, script });
303
+ }
304
+ const omitted = isCount(value.omitted) ? value.omitted : undefined;
305
+ if (omitted === undefined)
306
+ unread += 1;
307
+ const boundary = recordedBoundary(value, within);
308
+ if (boundary === undefined)
309
+ unread += 1;
310
+ return {
311
+ shown,
312
+ unread,
313
+ ...(omitted !== undefined && { omitted }),
314
+ ...(boundary !== undefined && { boundary }),
315
+ };
316
+ }
317
+ exports.recordedScripts = recordedScripts;
318
+ /**
319
+ * The text form: one block per attached script, then one line per omission —
320
+ * `''` when nothing travels (the composer then appends nothing). Every cut and
321
+ * every omission is stated. Behind a `closed` boundary the block opens with
322
+ * the closing fence; behind an `unsettled` one each script is its label line
323
+ * alone (`scriptWithheldLine`) — the programs ride the data only.
324
+ */
325
+ function scriptsBlock(scripts, boundary = CLEAN) {
326
+ const parts = boundary.kind === 'unsettled'
327
+ ? scripts.shown.map(scriptWithheldLine)
328
+ : scripts.shown.map(shownScriptBlock);
329
+ const overSize = scripts.overSize ?? [];
330
+ for (const row of overSize) {
331
+ parts.push(`One script of ${row.bytes} bytes (${(0, inert_js_1.inertCode)(row.tool)}, call ${(0, inert_js_1.inertCode)(row.toolCallId)}) is over the bound and is not shown.`);
332
+ }
333
+ const others = scripts.omitted - overSize.length;
334
+ if (others > 0) {
335
+ parts.push(`${others} more script${others === 1 ? ' was' : 's were'} submitted this turn and ` +
336
+ `${others === 1 ? 'is' : 'are'} not shown here.`);
337
+ }
338
+ if (parts.length === 0)
339
+ return '';
340
+ if (boundary.kind === 'closed')
341
+ parts.unshift(boundary.fence);
342
+ return parts.join('\n\n');
343
+ }
344
+ exports.scriptsBlock = scriptsBlock;
345
+ /**
346
+ * The text form behind the boundary the text before it leaves — `''` when
347
+ * nothing travels (no boundary is then taken). The second value is the
348
+ * boundary the text was written behind: what `turn_end.scripts` records.
349
+ */
350
+ function scriptsBlockAfter(scripts, before) {
351
+ if (scriptsBlock(scripts) === '')
352
+ return { text: '', boundary: CLEAN };
353
+ const boundary = attachmentBoundary(before);
354
+ return { text: scriptsBlock(scripts, boundary), boundary };
355
+ }
356
+ exports.scriptsBlockAfter = scriptsBlockAfter;
357
+ /** The data form as detached plain data — what `turn_end.scripts` carries. */
358
+ function turnEndScriptsOf(scripts, boundary = CLEAN) {
359
+ return {
360
+ shown: scripts.shown.map((s) => ({
361
+ ...s,
362
+ ...(s.truncated !== undefined && { truncated: { shownBytes: s.truncated.shownBytes } }),
363
+ })),
364
+ omitted: scripts.omitted,
365
+ ...(boundary.kind === 'closed' && {
366
+ closedFence: {
367
+ char: boundary.fence.charCodeAt(0) === 0x7e ? 'tilde' : 'backtick',
368
+ length: boundary.fence.length,
369
+ },
370
+ }),
371
+ ...(boundary.kind === 'unsettled' && { withheldFromText: true }),
372
+ };
373
+ }
374
+ exports.turnEndScriptsOf = turnEndScriptsOf;
375
+ //# sourceMappingURL=attachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../../../src/core/agent/scripts/attachment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ /**
3
+ * scripts/inert — a dynamic value (a tool's name, a provider's call id) written
4
+ * into a library line as an inline code span that cannot leave its line.
5
+ *
6
+ * Pattern: pure leaf.
7
+ * Role: core/ layer leaf, asked by the attachment's lines (`attachment.ts`)
8
+ * for every name and id they print.
9
+ * Emits: N/A.
10
+ *
11
+ * THE RULE. A provider may hand the library any string as a call id: line
12
+ * breaks, a sentence, a fence. Interpolated as it is, a blank line in an id ends
13
+ * the library's label paragraph, and the rest of the id renders as a paragraph
14
+ * of its own — text nobody checked, under the answer, in the library's voice.
15
+ * So a value is written as inline code:
16
+ *
17
+ * - every character that can end a line, turn the line's direction or hide
18
+ * (C0 and C1 controls, DEL, U+2028 and U+2029, format characters such as a
19
+ * bidi override or a zero-width joiner, a lone surrogate) is written as
20
+ * `\u{…}`, its code point in hex;
21
+ * - at most {@link MAX_INERT_POINTS} code points are written, then `…`;
22
+ * - the delimiter is one backtick longer than the longest run inside, with a
23
+ * space at either end when the value begins or ends with a backtick or a
24
+ * space (CommonMark's code-span rule), so nothing inside can close it.
25
+ *
26
+ * Inside a code span nothing is Markdown: no emphasis, no link, no HTML, no
27
+ * line ending. The value is shown, never interpreted.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * inertCode('c1'); // '`c1`'
32
+ * inertCode('c1\n\nRevenue was 98765.'); // '`c1\u{a}\u{a}Revenue was 98765.`'
33
+ * inertCode('a`b'); // '``a`b``'
34
+ * ```
35
+ */
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.inertCode = exports.MAX_INERT_POINTS = void 0;
38
+ /** Code points of a value written; the rest is `…`. */
39
+ exports.MAX_INERT_POINTS = 64;
40
+ const FORMAT = /\p{Cf}/u;
41
+ /** Whether one code point must be written as `\u{…}`. */
42
+ function escapes(point, char) {
43
+ if (point < 0x20 || point === 0x7f || (point >= 0x80 && point <= 0x9f))
44
+ return true;
45
+ if (point === 0x2028 || point === 0x2029)
46
+ return true;
47
+ if (point >= 0xd800 && point <= 0xdfff)
48
+ return true;
49
+ return FORMAT.test(char);
50
+ }
51
+ /** The longest run of backticks in `text`. */
52
+ function longestBacktickRun(text) {
53
+ let longest = 0;
54
+ let run = 0;
55
+ for (let i = 0; i < text.length; i++) {
56
+ if (text.charCodeAt(i) === 0x60) {
57
+ run += 1;
58
+ if (run > longest)
59
+ longest = run;
60
+ }
61
+ else {
62
+ run = 0;
63
+ }
64
+ }
65
+ return longest;
66
+ }
67
+ /** `value` as an inline code span that stays on its line. */
68
+ function inertCode(value) {
69
+ let shown = '';
70
+ let points = 0;
71
+ for (const char of value) {
72
+ if (points === exports.MAX_INERT_POINTS) {
73
+ shown += '…';
74
+ break;
75
+ }
76
+ points += 1;
77
+ const point = char.codePointAt(0);
78
+ shown += escapes(point, char) ? `\\u{${point.toString(16)}}` : char;
79
+ }
80
+ if (shown.length === 0)
81
+ return '`(empty)`';
82
+ const fence = '`'.repeat(longestBacktickRun(shown) + 1);
83
+ const edge = (c) => c === '`' || c === ' ';
84
+ const pad = edge(shown[0]) || edge(shown[shown.length - 1]) ? ' ' : '';
85
+ return `${fence}${pad}${shown}${pad}${fence}`;
86
+ }
87
+ exports.inertCode = inertCode;
88
+ //# sourceMappingURL=inert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inert.js","sourceRoot":"","sources":["../../../../src/core/agent/scripts/inert.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;;;AAEH,uDAAuD;AAC1C,QAAA,gBAAgB,GAAG,EAAE,CAAC;AAEnC,MAAM,MAAM,GAAG,SAAS,CAAC;AAEzB,yDAAyD;AACzD,SAAS,OAAO,CAAC,KAAa,EAAE,IAAY;IAC1C,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,8CAA8C;AAC9C,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChC,GAAG,IAAI,CAAC,CAAC;YACT,IAAI,GAAG,GAAG,OAAO;gBAAE,OAAO,GAAG,GAAG,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6DAA6D;AAC7D,SAAgB,SAAS,CAAC,KAAa;IACrC,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,MAAM,KAAK,wBAAgB,EAAE,CAAC;YAChC,KAAK,IAAI,GAAG,CAAC;YACb,MAAM;QACR,CAAC;QACD,MAAM,IAAI,CAAC,CAAC;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAW,CAAC;QAC5C,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,CAAC,CAAqB,EAAW,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,OAAO,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC;AAChD,CAAC;AAjBD,8BAiBC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * scripts/judge — the evidence gate's ONE judge, with the script match in
4
+ * front of it.
5
+ *
6
+ * Pattern: Decorator over the judge closure `stages/route.ts` ·
7
+ * `judgeEvidence` builds (the gate bound to this run's evidence).
8
+ * Role: core/ layer. Built only under `.namesAndNumbersFromEvidence({
9
+ * code: 'match' })`, on a prose answer (a typed answer is read as
10
+ * today — design § 12). The same decorated closure judges the draft
11
+ * and, for `.answerValidation()`, the delivered candidate.
12
+ * Emits: N/A — the Route decider emits `evidence_checked`, now carrying
13
+ * `scripts` and each unsupported value's `region`.
14
+ *
15
+ * What it adds, and nothing else: the matched blocks are cut out of the text
16
+ * the gate reads (`match.ts`), the verdict carries `scripts`, and each
17
+ * unsupported value says where it sat — `'code'` when every occurrence of it
18
+ * is inside an unmatched block, `'prose'` otherwise. The corpus and the
19
+ * exempt corpus are untouched: a matched script grounds nothing.
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.scriptJudge = void 0;
23
+ const match_js_1 = require("./match.js");
24
+ /** The gate's judge with the script match in front of it. */
25
+ function scriptJudge(input) {
26
+ return (text) => {
27
+ const shown = (0, match_js_1.readShownScripts)(text, input.turn, input.scriptsDropped);
28
+ const verdict = input.judgeProse(shown.prose);
29
+ const inProse = verdict.unsupported.length > 0 ? input.valuesIn(shown.outsideCode) : new Set();
30
+ return {
31
+ ...verdict,
32
+ unsupported: verdict.unsupported.map((value) => ({
33
+ ...value,
34
+ region: inProse.has(value.value) ? 'prose' : 'code',
35
+ })),
36
+ scripts: shown.verdict,
37
+ };
38
+ };
39
+ }
40
+ exports.scriptJudge = scriptJudge;
41
+ //# sourceMappingURL=judge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"judge.js","sourceRoot":"","sources":["../../../../src/core/agent/scripts/judge.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAGH,yCAA8C;AAG9C,6DAA6D;AAC7D,SAAgB,WAAW,CAAC,KAa3B;IACC,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,OAAO,GACX,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QACzF,OAAO;YACL,GAAG,OAAO;YACV,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/C,GAAG,KAAK;gBACR,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,OAAiB,CAAC,CAAC,CAAE,MAAgB;aAC1E,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AA5BD,kCA4BC"}