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
@@ -0,0 +1,411 @@
1
+ "use strict";
2
+ /**
3
+ * auditBounding — HOW the audit chain's bounded mode bounds a value: the
4
+ * markers, the sanitizer, the leaves and the combinators every shape is built
5
+ * from (`auditShapes.ts` says WHAT each event keeps; `auditKeptByContract.ts`
6
+ * names what a record keeps although it may carry a run's value).
7
+ *
8
+ * Pattern: small pure rules composed into shapes; every rule records what it is
9
+ * (`ruleKind`), so a test can walk a shape beside the type it bounds
10
+ * and hand every rule what its kind forbids.
11
+ * Role: the bounding layer `auditExport({ payloadMode: 'bounded' })` runs
12
+ * every payload and every record's meta through (`audit.ts`). No I/O,
13
+ * no clock.
14
+ * Emits: N/A.
15
+ *
16
+ * THE RULE, the one `otel.ts` maps spans by: **structure is kept, content is
17
+ * a marker**, bounding is CLOSED by default, and every kept value is CHECKED:
18
+ *
19
+ * - Every registered event has a shape that names every field of its
20
+ * payload type (`shapeOf` is exhaustive by type: a field added to a
21
+ * payload does not compile until it is classified).
22
+ * - A field a shape does not name, a value that is not the declared shape,
23
+ * and every field of an event type the registry does not declare, is a
24
+ * marker.
25
+ * - A type says what a field holds; it cannot say what ARRIVES. So nothing is
26
+ * kept on a type's word: a kept leaf checks at runtime the kind its type
27
+ * promises — `num` a number, `bool` a boolean, `str` a string, `oneOf` one
28
+ * of the words it lists — and anything else is a marker. No container is
29
+ * kept whole: an object is a `shapeOf` (or a `recordOf`), a list a
30
+ * `listOf`, every child ruled, so a child the type does not declare is a
31
+ * marker however it got there (structural typing lets an object carry one).
32
+ * The type walker (`test/type-regressions/AuditBoundingDepth.test.ts`)
33
+ * holds every rule to the type beneath it; the runtime sweep
34
+ * (`test/observability-providers/audit-bounded-sweep.test.ts`) hands every
35
+ * rule what its kind forbids.
36
+ * - Names are data. A key is kept as an own key of the record, whatever it is
37
+ * (a name `Object.prototype` holds included: an assignment would drop
38
+ * `__proto__`, or re-prototype the record), and no rule table is ever asked
39
+ * for a name it merely inherits.
40
+ *
41
+ * Content becomes `'[N chars]'` (a string), `'[type: …]'` (anything else),
42
+ * `'[keys: …]'` (a free-form record: its key names, never its values), or a
43
+ * count (`'[N messages]'`, `'[N blocks]'`, `'[N summaries]'`). A kept string is
44
+ * capped at 256 characters, a list at 32 items.
45
+ */
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.createToolRunTracker = exports.unknownEventShape = exports.byContract = exports.when = exports.either = exports.nullOr = exports.orList = exports.recordOf = exports.listOf = exports.shapeOf = exports.oneOf = exports.str = exports.bool = exports.num = exports.summariesMarker = exports.blocksMarker = exports.messagesMarker = exports.typeMarker = exports.keysMarker = exports.charsMarker = exports.typeofOf = exports.acceptedKinds = exports.ruleKind = exports.valueKindOf = exports.sanitizeJson = void 0;
48
+ const wireJson_js_1 = require("../../lib/wireJson.js");
49
+ // ─── JSON sanitization (verbatim mode, and the genesis record) ───────
50
+ /** Caps mirror otel.ts's bounding discipline (defense-in-depth — the
51
+ * registry payloads are mostly bounded upstream). */
52
+ const MAX_STRING_CHARS = 256;
53
+ const MAX_LIST_ITEMS = 32;
54
+ const MAX_DEPTH = 8;
55
+ /** A string capped like every string the chain keeps. */
56
+ function capped(text) {
57
+ return text.length > MAX_STRING_CHARS ? `${text.slice(0, MAX_STRING_CHARS - 1)}…` : text;
58
+ }
59
+ /**
60
+ * A record whose every key is an OWN data property — `__proto__` included.
61
+ * `out[key] = value` would drop a `__proto__` key whose value is not an object
62
+ * and re-prototype the record when it is; either way the key is lost.
63
+ */
64
+ function ownRecord(entries) {
65
+ return Object.fromEntries(entries);
66
+ }
67
+ /**
68
+ * Convert any value to a JSON-safe, size-bounded tree:
69
+ * strings capped, arrays capped with an overflow marker, cycles
70
+ * broken, depth capped, Date → ISO, bigint → string, non-finite →
71
+ * null, functions/symbols/undefined dropped (objects) or null
72
+ * (arrays). Every key an own key. Output always canonicalizes without
73
+ * throwing.
74
+ */
75
+ function sanitizeJson(value, depth = 0, seen = new Set()) {
76
+ if (value === null)
77
+ return null;
78
+ switch (typeof value) {
79
+ case 'string':
80
+ return capped(value);
81
+ case 'number':
82
+ return Number.isFinite(value) ? value : null;
83
+ case 'boolean':
84
+ return value;
85
+ case 'bigint':
86
+ return String(value);
87
+ case 'undefined':
88
+ case 'function':
89
+ case 'symbol':
90
+ return undefined;
91
+ default:
92
+ break;
93
+ }
94
+ const obj = value;
95
+ if (obj instanceof Date)
96
+ return obj.toISOString();
97
+ // The wire rule (`lib/wireJson.ts`): name, message, code, cause — never an
98
+ // Error's custom properties (an axios error's request headers).
99
+ if ((0, wireJson_js_1.isErrorValue)(obj))
100
+ return sanitizeJson((0, wireJson_js_1.wireError)(obj), depth, seen);
101
+ if (depth >= MAX_DEPTH)
102
+ return '[truncated: depth]';
103
+ if (seen.has(obj))
104
+ return '[circular]';
105
+ seen.add(obj);
106
+ try {
107
+ if (Array.isArray(obj)) {
108
+ const list = obj.slice(0, MAX_LIST_ITEMS).map((item) => {
109
+ const sanitized = sanitizeJson(item, depth + 1, seen);
110
+ return sanitized === undefined ? null : sanitized;
111
+ });
112
+ if (obj.length > MAX_LIST_ITEMS)
113
+ list.push(`…+${obj.length - MAX_LIST_ITEMS} more`);
114
+ return list;
115
+ }
116
+ const entries = [];
117
+ for (const [key, entry] of Object.entries(obj)) {
118
+ const sanitized = sanitizeJson(entry, depth + 1, seen);
119
+ if (sanitized !== undefined)
120
+ entries.push([key, sanitized]);
121
+ }
122
+ return ownRecord(entries);
123
+ }
124
+ finally {
125
+ seen.delete(obj);
126
+ }
127
+ }
128
+ exports.sanitizeJson = sanitizeJson;
129
+ /** A value's kind — `undefined` for one JSON has no word for (a function, a symbol, a bigint). */
130
+ function valueKindOf(value) {
131
+ if (value === null)
132
+ return 'null';
133
+ if (Array.isArray(value))
134
+ return 'array';
135
+ switch (typeof value) {
136
+ case 'string':
137
+ return 'string';
138
+ case 'number':
139
+ return 'number';
140
+ case 'boolean':
141
+ return 'boolean';
142
+ case 'object':
143
+ return 'object';
144
+ default:
145
+ return undefined;
146
+ }
147
+ }
148
+ exports.valueKindOf = valueKindOf;
149
+ const KINDS = new WeakMap();
150
+ const described = (rule, kind) => {
151
+ KINDS.set(rule, kind);
152
+ return rule;
153
+ };
154
+ /** What a rule is — `undefined` only for a function this module did not build. */
155
+ function ruleKind(rule) {
156
+ return KINDS.get(rule);
157
+ }
158
+ exports.ruleKind = ruleKind;
159
+ /**
160
+ * The value kinds a rule KEEPS something of at its own position — what
161
+ * `either` dispatches on. A marker accepts none: it keeps nothing of any value.
162
+ *
163
+ * @internal
164
+ */
165
+ function acceptedKinds(rule) {
166
+ const k = KINDS.get(rule);
167
+ switch (k?.kind) {
168
+ case 'leaf':
169
+ return new Set([k.accepts]);
170
+ case 'oneOf':
171
+ return new Set([...k.values].map((value) => valueKindOf(value)));
172
+ case 'shape':
173
+ case 'record':
174
+ return new Set(['object']);
175
+ case 'list':
176
+ return new Set(['array']);
177
+ case 'orList':
178
+ return new Set(['array', ...acceptedKinds(k.item)]);
179
+ case 'nullOr':
180
+ return new Set(['null', ...acceptedKinds(k.inner)]);
181
+ case 'either':
182
+ return new Set(k.alternatives.flatMap((alternative) => [...acceptedKinds(alternative)]));
183
+ case 'when':
184
+ return new Set([...acceptedKinds(k.then), ...acceptedKinds(k.otherwise)]);
185
+ case 'byContract':
186
+ return acceptedKinds(k.inner);
187
+ default:
188
+ return new Set();
189
+ }
190
+ }
191
+ exports.acceptedKinds = acceptedKinds;
192
+ // ─── Markers — keep nothing of the value ─────────────────────────────
193
+ function typeofOf(value) {
194
+ return value === null ? 'null' : typeof value;
195
+ }
196
+ exports.typeofOf = typeofOf;
197
+ /** `'[23 chars]'` — length evidence without content. */
198
+ function charsMarker(value) {
199
+ return typeof value === 'string' ? `[${value.length} chars]` : `[type: ${typeofOf(value)}]`;
200
+ }
201
+ exports.charsMarker = charsMarker;
202
+ /** `'[keys: a, b, c]'` — shape evidence for free-form Records. */
203
+ function keysMarker(value) {
204
+ if (value === null || typeof value !== 'object')
205
+ return `[type: ${typeofOf(value)}]`;
206
+ const keys = Object.keys(value).slice(0, MAX_LIST_ITEMS);
207
+ return `[keys: ${keys.join(', ')}]`;
208
+ }
209
+ exports.keysMarker = keysMarker;
210
+ /** `'[type: object]'` — what kind of value, nothing of it (a tool's result). */
211
+ const typeMarker = (value) => `[type: ${typeofOf(value)}]`;
212
+ exports.typeMarker = typeMarker;
213
+ /** A list's length, in the words of what it holds; anything else by `charsMarker`. */
214
+ const countMarker = (noun) => described((value) => (Array.isArray(value) ? `[${value.length} ${noun}]` : charsMarker(value)), {
215
+ kind: 'marker',
216
+ marks: 'count',
217
+ });
218
+ described(charsMarker, { kind: 'marker', marks: 'chars' });
219
+ described(keysMarker, { kind: 'marker', marks: 'keys' });
220
+ described(exports.typeMarker, { kind: 'marker', marks: 'type' });
221
+ /** `'[3 messages]'` — a conversation's history. */
222
+ exports.messagesMarker = countMarker('messages');
223
+ /** `'[2 blocks]'` — the model's thinking blocks. */
224
+ exports.blocksMarker = countMarker('blocks');
225
+ /** `'[4 summaries]'` — the previews of what a slot dropped. */
226
+ exports.summariesMarker = countMarker('summaries');
227
+ // ─── Leaves — a value of the declared kind, checked ──────────────────
228
+ /** A count, a duration, a score, an index: kept when it IS a number (non-finite as `null`). */
229
+ exports.num = described((value) => typeof value === 'number' ? (Number.isFinite(value) ? value : null) : charsMarker(value), { kind: 'leaf', accepts: 'number' });
230
+ /** A flag or a verdict: kept when it IS a boolean. */
231
+ exports.bool = described((value) => (typeof value === 'boolean' ? value : charsMarker(value)), { kind: 'leaf', accepts: 'boolean' });
232
+ /**
233
+ * The record's own word — an id, a name, a code, a label the app declared: kept
234
+ * when it IS a string, capped. Where the type is a closed union of words, use
235
+ * `oneOf`, which keeps only those words.
236
+ */
237
+ exports.str = described((value) => (typeof value === 'string' ? capped(value) : charsMarker(value)), { kind: 'leaf', accepts: 'string' });
238
+ /**
239
+ * One of the listed words (or numbers, or booleans): kept when the value IS one
240
+ * of them — so what it keeps is always a word this table wrote. Anything else
241
+ * is a marker.
242
+ */
243
+ function oneOf(...values) {
244
+ const words = new Set(values);
245
+ return described((value) => (words.has(value) ? value : charsMarker(value)), {
246
+ kind: 'oneOf',
247
+ values: new Set(words),
248
+ });
249
+ }
250
+ exports.oneOf = oneOf;
251
+ /**
252
+ * An object of a known shape, every field ruled (exhaustive by type, so a field
253
+ * added to `T` does not compile until it is). A field the rules do not name is
254
+ * a marker: whatever the value carries at runtime is bounded until someone
255
+ * decides it is the record's own words. Anything but an object is a marker too.
256
+ */
257
+ function shapeOf(rules) {
258
+ const byField = new Map(Object.entries(rules));
259
+ return described((value) => {
260
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
261
+ return charsMarker(value);
262
+ }
263
+ const entries = [];
264
+ for (const [key, entry] of Object.entries(value)) {
265
+ if (entry === undefined)
266
+ continue; // absent, as JSON has it
267
+ const bounded = (byField.get(key) ?? charsMarker)(entry);
268
+ if (bounded !== undefined)
269
+ entries.push([key, bounded]);
270
+ }
271
+ return ownRecord(entries);
272
+ }, { kind: 'shape', fields: new Map(byField) });
273
+ }
274
+ exports.shapeOf = shapeOf;
275
+ /** A list: each entry by `rule`, capped at 32 like every list. Anything else is a marker. */
276
+ function listOf(rule) {
277
+ return described((value) => {
278
+ if (!Array.isArray(value))
279
+ return charsMarker(value);
280
+ const out = [];
281
+ for (let i = 0; i < Math.min(value.length, MAX_LIST_ITEMS); i++) {
282
+ out.push(rule(value[i]) ?? null);
283
+ }
284
+ if (value.length > MAX_LIST_ITEMS)
285
+ out.push(`…+${value.length - MAX_LIST_ITEMS} more`);
286
+ return out;
287
+ }, { kind: 'list', item: rule });
288
+ }
289
+ exports.listOf = listOf;
290
+ /** A map with open keys: every key kept (a key is a name), every value by `rule`. Anything else is a marker. */
291
+ function recordOf(rule) {
292
+ return described((value) => {
293
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
294
+ return charsMarker(value);
295
+ }
296
+ const entries = [];
297
+ for (const [key, entry] of Object.entries(value)) {
298
+ if (entry === undefined)
299
+ continue;
300
+ const bounded = rule(entry);
301
+ if (bounded !== undefined)
302
+ entries.push([key, bounded]);
303
+ }
304
+ return ownRecord(entries);
305
+ }, { kind: 'record', value: rule });
306
+ }
307
+ exports.recordOf = recordOf;
308
+ /** One value, or a list of them, each by `rule` — a guard's declared value is either. */
309
+ function orList(rule) {
310
+ const list = listOf(rule);
311
+ return described((value) => (Array.isArray(value) ? list(value) : rule(value)), {
312
+ kind: 'orList',
313
+ item: rule,
314
+ });
315
+ }
316
+ exports.orList = orList;
317
+ /** `null` stays `null` (a declared "none"); anything else by `rule`. */
318
+ function nullOr(rule) {
319
+ return described((value) => (value === null ? null : rule(value)), {
320
+ kind: 'nullOr',
321
+ inner: rule,
322
+ });
323
+ }
324
+ exports.nullOr = nullOr;
325
+ /**
326
+ * A value of one of several kinds — a library word or a window, a facet word or
327
+ * a filter: the first alternative that accepts the value's kind bounds it. A
328
+ * value no alternative accepts is a marker.
329
+ */
330
+ function either(...alternatives) {
331
+ const accepting = alternatives.map((alternative) => ({
332
+ rule: alternative,
333
+ kinds: acceptedKinds(alternative),
334
+ }));
335
+ return described((value) => {
336
+ const kind = valueKindOf(value);
337
+ const chosen = kind === undefined ? undefined : accepting.find((alt) => alt.kinds.has(kind))?.rule;
338
+ return (chosen ?? charsMarker)(value);
339
+ }, { kind: 'either', alternatives: [...alternatives] });
340
+ }
341
+ exports.either = either;
342
+ /**
343
+ * One rule or another, by a test of the value itself, the reason written down —
344
+ * the few places a field is structure only for some values (a name this
345
+ * strategy has seen run, the engine's own decision evidence).
346
+ */
347
+ function when(why, test, then, otherwise) {
348
+ return described((value) => (test(value) ? then : otherwise)(value), {
349
+ kind: 'when',
350
+ why,
351
+ then,
352
+ otherwise,
353
+ });
354
+ }
355
+ exports.when = when;
356
+ /**
357
+ * A position a bounded record keeps although its value may come from the run —
358
+ * one of the exceptions `auditKeptByContract.ts` names, in one place. The rule
359
+ * inside still checks the value like every other: an exception keeps a value of
360
+ * its declared kind, never whatever arrives.
361
+ */
362
+ function byContract(exception, rule) {
363
+ return described((value) => rule(value), { kind: 'byContract', exception, inner: rule });
364
+ }
365
+ exports.byContract = byContract;
366
+ /** An event type the registry does not declare (a consumer's own `emit`): every field a marker. */
367
+ exports.unknownEventShape = shapeOf({});
368
+ // ─── The tools this strategy has seen run ────────────────────────────
369
+ /** Names kept, and calls awaiting their end — each bounded, names and ids only. */
370
+ const MAX_TOOL_NAMES = 1024;
371
+ const MAX_OPEN_CALLS = 1024;
372
+ /**
373
+ * Tool names this strategy has seen RUN — a `stream.tool_end` without `error`,
374
+ * `notExecuted` or `notDispatched`, matched to its `tool_start` by
375
+ * `toolCallId` — so a tool this agent holds, by construction. What a
376
+ * `tryInsteadTool` name is recognized against (`otel.ts` keeps the same set).
377
+ */
378
+ function createToolRunTracker() {
379
+ const open = new Map();
380
+ const ran = new Set();
381
+ return {
382
+ observe(type, payload) {
383
+ if (payload === null || typeof payload !== 'object')
384
+ return;
385
+ const p = payload;
386
+ if (typeof p.toolCallId !== 'string' || p.notDispatched !== undefined)
387
+ return;
388
+ if (type === 'agentfootprint.stream.tool_start' && typeof p.toolName === 'string') {
389
+ if (open.size >= MAX_OPEN_CALLS) {
390
+ const [oldest] = open.keys();
391
+ if (oldest !== undefined)
392
+ open.delete(oldest);
393
+ }
394
+ open.set(p.toolCallId, p.toolName);
395
+ return;
396
+ }
397
+ if (type !== 'agentfootprint.stream.tool_end')
398
+ return;
399
+ const name = open.get(p.toolCallId);
400
+ open.delete(p.toolCallId);
401
+ const failed = p.error !== undefined && p.error !== false;
402
+ if (name === undefined || failed || p.notExecuted === true)
403
+ return;
404
+ if (ran.size < MAX_TOOL_NAMES || ran.has(name))
405
+ ran.add(name);
406
+ },
407
+ ran: (name) => ran.has(name),
408
+ };
409
+ }
410
+ exports.createToolRunTracker = createToolRunTracker;
411
+ //# sourceMappingURL=auditBounding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auditBounding.js","sourceRoot":"","sources":["../../../src/adapters/observability/auditBounding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * auditKeptByContract — what a BOUNDED audit record keeps although its value
4
+ * may come from the run: the named exceptions to "structure is kept, content
5
+ * is a marker", in one place.
6
+ *
7
+ * Pattern: a closed list of named exceptions (`KEPT_BY_CONTRACT`), each a rule
8
+ * built from `auditBounding.ts` and wrapped in `byContract`, so a walker
9
+ * finds every one by name.
10
+ * Role: `auditShapes.ts` places these rules in the event shapes and the meta
11
+ * shape; no other rule keeps a value the run composed.
12
+ * Emits: N/A.
13
+ *
14
+ * An exception is a POSITION, never a pass-through: each one still checks its
15
+ * value like every other rule — it keeps a value of its declared kind (a
16
+ * string, or decide() evidence's own shape, field by field), and a value of any
17
+ * other kind, or a child its type does not declare, is a marker.
18
+ *
19
+ * Adding an exception, or placing one somewhere new, changes the pin in
20
+ * `test/observability-providers/audit-bounded-sweep.test.ts` — a reviewed
21
+ * change, never a silent one. The module documentation of `audit.ts`, the
22
+ * observability README and the exporters page state the same list.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.routeEvidence = exports.seenToolName = exports.appReasonWord = exports.policyReasonTag = exports.decisionSummary = exports.metaIdentity = exports.declaredValue = exports.KEPT_BY_CONTRACT = void 0;
26
+ const auditBounding_js_1 = require("./auditBounding.js");
27
+ /** The exceptions, by name — what each keeps, and why the record keeps it. */
28
+ exports.KEPT_BY_CONTRACT = {
29
+ 'meta-identity': "who a run is for — the session id, principal and tenant the caller named — on each record's meta: the who of an audit record",
30
+ 'decide-evidence': 'decide()/select() evidence an app emits on `composition.route_decided`, as the engine summarized it: rule labels, branches, operators, thresholds and verdicts, each field checked',
31
+ 'decision-summary': "the engine's summary of a value a decision rule read (decide() evidence, a skill guard's condition) — redaction-aware: under an agent's `redact` a selected key is the placeholder; otherwise the summary shows the value",
32
+ 'policy-reason-tag': "a permission policy's telemetry `reason` tag (`permission.check`, `permission.halt`) — the policy's own word",
33
+ 'app-reason-word': 'the reason word an app attaches to a lifecycle event it emits itself (`skill.deactivated`, `tools.offered`, `permission.gate_closed`) — the app’s own words, as written',
34
+ 'seen-tool-name': 'a `tryInsteadTool` name, once this strategy has seen that tool run',
35
+ };
36
+ const exception = (name, rule) => (0, auditBounding_js_1.byContract)(name, rule);
37
+ /** A value the app declared: a word, a number or a flag — or a declared "none". */
38
+ exports.declaredValue = (0, auditBounding_js_1.nullOr)((0, auditBounding_js_1.either)(auditBounding_js_1.str, auditBounding_js_1.num, auditBounding_js_1.bool));
39
+ // ─── The exceptions ──────────────────────────────────────────────────
40
+ /** `meta.sessionId`, `meta.principal`, `meta.tenant`: the caller's own names for who. */
41
+ exports.metaIdentity = exception('meta-identity', auditBounding_js_1.str);
42
+ /** The engine's summary of a value a rule read. */
43
+ exports.decisionSummary = exception('decision-summary', auditBounding_js_1.str);
44
+ /** A permission policy's telemetry tag. */
45
+ exports.policyReasonTag = exception('policy-reason-tag', auditBounding_js_1.str);
46
+ /** A reason word an app attaches to a lifecycle event it emits itself. */
47
+ exports.appReasonWord = exception('app-reason-word', auditBounding_js_1.str);
48
+ /**
49
+ * A `tryInsteadTool` name: kept only once this strategy has seen that tool run —
50
+ * a tool the agent holds, by construction (`otel.ts` · `coverageAttrs`, the same
51
+ * rule); otherwise it is the tool author's word for a tool this agent may not
52
+ * hold.
53
+ */
54
+ function seenToolName(toolRan) {
55
+ return (0, auditBounding_js_1.when)('a name this strategy has seen run is a tool the agent holds', (value) => typeof value === 'string' && toolRan(value), exception('seen-tool-name', auditBounding_js_1.str), auditBounding_js_1.charsMarker);
56
+ }
57
+ exports.seenToolName = seenToolName;
58
+ /** One rule's evidence: what it read or compared, its verdict; a rule's thrown message is a marker. */
59
+ const boundRuleEvidence = (0, auditBounding_js_1.shapeOf)({
60
+ type: (0, auditBounding_js_1.oneOf)('filter', 'function'),
61
+ ruleIndex: auditBounding_js_1.num,
62
+ branch: auditBounding_js_1.str,
63
+ matched: auditBounding_js_1.bool,
64
+ label: auditBounding_js_1.str,
65
+ inputs: (0, auditBounding_js_1.listOf)((0, auditBounding_js_1.shapeOf)({ key: auditBounding_js_1.str, valueSummary: exports.decisionSummary, redacted: auditBounding_js_1.bool })),
66
+ conditions: (0, auditBounding_js_1.listOf)((0, auditBounding_js_1.shapeOf)({
67
+ key: auditBounding_js_1.str,
68
+ op: auditBounding_js_1.str,
69
+ threshold: (0, auditBounding_js_1.orList)(exports.declaredValue),
70
+ actualSummary: exports.decisionSummary,
71
+ result: auditBounding_js_1.bool,
72
+ redacted: auditBounding_js_1.bool,
73
+ })),
74
+ // A `when` that threw: its message can echo the value it read.
75
+ matchError: auditBounding_js_1.charsMarker,
76
+ });
77
+ /** decide()/select() evidence: every field footprintjs declares, each checked. */
78
+ const boundDecideEvidence = (0, auditBounding_js_1.shapeOf)({
79
+ retryLoop: (0, auditBounding_js_1.shapeOf)({
80
+ id: auditBounding_js_1.str,
81
+ series: auditBounding_js_1.str,
82
+ attempt: auditBounding_js_1.num,
83
+ of: auditBounding_js_1.num,
84
+ effect: (0, auditBounding_js_1.oneOf)('applied', 'none', 'unknown'),
85
+ reconciled: auditBounding_js_1.bool,
86
+ next: (0, auditBounding_js_1.oneOf)('done', 'retry', 'stop'),
87
+ reason: auditBounding_js_1.str,
88
+ }),
89
+ rules: (0, auditBounding_js_1.listOf)(boundRuleEvidence),
90
+ chosen: auditBounding_js_1.str,
91
+ default: auditBounding_js_1.str,
92
+ defaultLabel: auditBounding_js_1.str,
93
+ selected: (0, auditBounding_js_1.listOf)(auditBounding_js_1.str),
94
+ });
95
+ /** decide() evidence carries its own `rules` list — `otel.ts`'s test too. */
96
+ const isDecideEvidence = (value) => typeof value === 'object' &&
97
+ value !== null &&
98
+ !Array.isArray(value) &&
99
+ Object.hasOwn(value, 'rules') &&
100
+ Array.isArray(value.rules);
101
+ /**
102
+ * `composition.route_decided.evidence`: decide() evidence is kept by contract,
103
+ * as its own shape; any other evidence (a router's own `{ reason }`) is a
104
+ * free-form record — its key names only.
105
+ */
106
+ exports.routeEvidence = (0, auditBounding_js_1.when)("decide() evidence is the engine's, kept by contract; any other is a record", isDecideEvidence, exception('decide-evidence', boundDecideEvidence), auditBounding_js_1.keysMarker);
107
+ //# sourceMappingURL=auditKeptByContract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auditKeptByContract.js","sourceRoot":"","sources":["../../../src/adapters/observability/auditKeptByContract.ts"],"names":[],"mappings":"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"}