@smthrs/harness 0.0.0-stage → 1.0.0-rc.3

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 (476) hide show
  1. package/CHANGELOG.md +387 -0
  2. package/LICENSE +21 -0
  3. package/README.md +138 -2
  4. package/dist/cjs/AgentEvent.d.ts +3092 -0
  5. package/dist/cjs/AgentEvent.d.ts.map +1 -0
  6. package/dist/cjs/AgentEvent.js +1116 -0
  7. package/dist/cjs/AgentEvent.js.map +7 -0
  8. package/dist/cjs/CallLedger.d.ts +378 -0
  9. package/dist/cjs/CallLedger.d.ts.map +1 -0
  10. package/dist/cjs/CallLedger.js +240 -0
  11. package/dist/cjs/CallLedger.js.map +7 -0
  12. package/dist/cjs/Cell.d.ts +774 -0
  13. package/dist/cjs/Cell.d.ts.map +1 -0
  14. package/dist/cjs/Cell.js +431 -0
  15. package/dist/cjs/Cell.js.map +7 -0
  16. package/dist/cjs/CellCalls.d.ts +115 -0
  17. package/dist/cjs/CellCalls.d.ts.map +1 -0
  18. package/dist/cjs/CellCalls.js +98 -0
  19. package/dist/cjs/CellCalls.js.map +7 -0
  20. package/dist/cjs/CellHistory.d.ts +102 -0
  21. package/dist/cjs/CellHistory.d.ts.map +1 -0
  22. package/dist/cjs/CellHistory.js +54 -0
  23. package/dist/cjs/CellHistory.js.map +7 -0
  24. package/dist/cjs/CellTurn.d.ts +1071 -0
  25. package/dist/cjs/CellTurn.d.ts.map +1 -0
  26. package/dist/cjs/CellTurn.js +2618 -0
  27. package/dist/cjs/CellTurn.js.map +7 -0
  28. package/dist/cjs/CellValidation.d.ts +94 -0
  29. package/dist/cjs/CellValidation.d.ts.map +1 -0
  30. package/dist/cjs/CellValidation.js +218 -0
  31. package/dist/cjs/CellValidation.js.map +7 -0
  32. package/dist/cjs/Compaction.d.ts +158 -0
  33. package/dist/cjs/Compaction.d.ts.map +1 -0
  34. package/dist/cjs/Compaction.js +189 -0
  35. package/dist/cjs/Compaction.js.map +7 -0
  36. package/dist/cjs/CompletionClaim.d.ts +801 -0
  37. package/dist/cjs/CompletionClaim.d.ts.map +1 -0
  38. package/dist/cjs/CompletionClaim.js +303 -0
  39. package/dist/cjs/CompletionClaim.js.map +7 -0
  40. package/dist/cjs/ContextWindow.d.ts +435 -0
  41. package/dist/cjs/ContextWindow.d.ts.map +1 -0
  42. package/dist/cjs/ContextWindow.js +319 -0
  43. package/dist/cjs/ContextWindow.js.map +7 -0
  44. package/dist/cjs/EngineLike.d.ts +546 -0
  45. package/dist/cjs/EngineLike.d.ts.map +1 -0
  46. package/dist/cjs/EngineLike.js +114 -0
  47. package/dist/cjs/EngineLike.js.map +7 -0
  48. package/dist/cjs/ExternalTranscript.d.ts +349 -0
  49. package/dist/cjs/ExternalTranscript.d.ts.map +1 -0
  50. package/dist/cjs/ExternalTranscript.js +826 -0
  51. package/dist/cjs/ExternalTranscript.js.map +7 -0
  52. package/dist/cjs/FailedCall.d.ts +132 -0
  53. package/dist/cjs/FailedCall.d.ts.map +1 -0
  54. package/dist/cjs/FailedCall.js +53 -0
  55. package/dist/cjs/FailedCall.js.map +7 -0
  56. package/dist/cjs/FlowBinding.d.ts +289 -0
  57. package/dist/cjs/FlowBinding.d.ts.map +1 -0
  58. package/dist/cjs/FlowBinding.js +251 -0
  59. package/dist/cjs/FlowBinding.js.map +7 -0
  60. package/dist/cjs/HarnessError.d.ts +57 -0
  61. package/dist/cjs/HarnessError.d.ts.map +1 -0
  62. package/dist/cjs/HarnessError.js +75 -0
  63. package/dist/cjs/HarnessError.js.map +7 -0
  64. package/dist/cjs/Judgement.d.ts +289 -0
  65. package/dist/cjs/Judgement.d.ts.map +1 -0
  66. package/dist/cjs/Judgement.js +240 -0
  67. package/dist/cjs/Judgement.js.map +7 -0
  68. package/dist/cjs/Monitor.d.ts +374 -0
  69. package/dist/cjs/Monitor.d.ts.map +1 -0
  70. package/dist/cjs/Monitor.js +233 -0
  71. package/dist/cjs/Monitor.js.map +7 -0
  72. package/dist/cjs/NarrowedCheck.d.ts +523 -0
  73. package/dist/cjs/NarrowedCheck.d.ts.map +1 -0
  74. package/dist/cjs/NarrowedCheck.js +263 -0
  75. package/dist/cjs/NarrowedCheck.js.map +7 -0
  76. package/dist/cjs/Notifications.d.ts +42 -0
  77. package/dist/cjs/Notifications.d.ts.map +1 -0
  78. package/dist/cjs/Notifications.js +177 -0
  79. package/dist/cjs/Notifications.js.map +7 -0
  80. package/dist/cjs/Plan.d.ts +127 -0
  81. package/dist/cjs/Plan.d.ts.map +1 -0
  82. package/dist/cjs/Plan.js +77 -0
  83. package/dist/cjs/Plan.js.map +7 -0
  84. package/dist/cjs/QuickJSSandbox.d.ts +151 -0
  85. package/dist/cjs/QuickJSSandbox.d.ts.map +1 -0
  86. package/dist/cjs/QuickJSSandbox.js +987 -0
  87. package/dist/cjs/QuickJSSandbox.js.map +7 -0
  88. package/dist/cjs/Relevance.d.ts +213 -0
  89. package/dist/cjs/Relevance.d.ts.map +1 -0
  90. package/dist/cjs/Relevance.js +183 -0
  91. package/dist/cjs/Relevance.js.map +7 -0
  92. package/dist/cjs/Sandbox.d.ts +637 -0
  93. package/dist/cjs/Sandbox.d.ts.map +1 -0
  94. package/dist/cjs/Sandbox.js +260 -0
  95. package/dist/cjs/Sandbox.js.map +7 -0
  96. package/dist/cjs/Steering.d.ts +464 -0
  97. package/dist/cjs/Steering.d.ts.map +1 -0
  98. package/dist/cjs/Steering.js +153 -0
  99. package/dist/cjs/Steering.js.map +7 -0
  100. package/dist/cjs/StructuredOutput.d.ts +252 -0
  101. package/dist/cjs/StructuredOutput.d.ts.map +1 -0
  102. package/dist/cjs/StructuredOutput.js +266 -0
  103. package/dist/cjs/StructuredOutput.js.map +7 -0
  104. package/dist/cjs/Sufficiency.d.ts +195 -0
  105. package/dist/cjs/Sufficiency.d.ts.map +1 -0
  106. package/dist/cjs/Sufficiency.js +110 -0
  107. package/dist/cjs/Sufficiency.js.map +7 -0
  108. package/dist/cjs/Supervisor.d.ts +719 -0
  109. package/dist/cjs/Supervisor.d.ts.map +1 -0
  110. package/dist/cjs/Supervisor.js +313 -0
  111. package/dist/cjs/Supervisor.js.map +7 -0
  112. package/dist/cjs/Tokens.d.ts +86 -0
  113. package/dist/cjs/Tokens.d.ts.map +1 -0
  114. package/dist/cjs/Tokens.js +72 -0
  115. package/dist/cjs/Tokens.js.map +7 -0
  116. package/dist/cjs/Transcript.d.ts +171 -0
  117. package/dist/cjs/Transcript.d.ts.map +1 -0
  118. package/dist/cjs/Transcript.js +342 -0
  119. package/dist/cjs/Transcript.js.map +7 -0
  120. package/dist/cjs/TruncatedOutput.d.ts +186 -0
  121. package/dist/cjs/TruncatedOutput.d.ts.map +1 -0
  122. package/dist/cjs/TruncatedOutput.js +143 -0
  123. package/dist/cjs/TruncatedOutput.js.map +7 -0
  124. package/dist/cjs/UnmovedTree.d.ts +113 -0
  125. package/dist/cjs/UnmovedTree.d.ts.map +1 -0
  126. package/dist/cjs/UnmovedTree.js +38 -0
  127. package/dist/cjs/UnmovedTree.js.map +7 -0
  128. package/dist/cjs/UnresolvedFailure.d.ts +196 -0
  129. package/dist/cjs/UnresolvedFailure.d.ts.map +1 -0
  130. package/dist/cjs/UnresolvedFailure.js +77 -0
  131. package/dist/cjs/UnresolvedFailure.js.map +7 -0
  132. package/dist/cjs/VacuousVerification.d.ts +237 -0
  133. package/dist/cjs/VacuousVerification.d.ts.map +1 -0
  134. package/dist/cjs/VacuousVerification.js +91 -0
  135. package/dist/cjs/VacuousVerification.js.map +7 -0
  136. package/dist/cjs/VariablesPanel.d.ts +117 -0
  137. package/dist/cjs/VariablesPanel.d.ts.map +1 -0
  138. package/dist/cjs/VariablesPanel.js +108 -0
  139. package/dist/cjs/VariablesPanel.js.map +7 -0
  140. package/dist/cjs/index.d.ts +172 -0
  141. package/dist/cjs/index.d.ts.map +1 -0
  142. package/dist/cjs/index.js +99 -0
  143. package/dist/cjs/index.js.map +7 -0
  144. package/dist/cjs/internal/bytes.d.ts +36 -0
  145. package/dist/cjs/internal/bytes.d.ts.map +1 -0
  146. package/dist/cjs/internal/bytes.js +57 -0
  147. package/dist/cjs/internal/bytes.js.map +7 -0
  148. package/dist/cjs/internal/cellPrompt.d.ts +122 -0
  149. package/dist/cjs/internal/cellPrompt.d.ts.map +1 -0
  150. package/dist/cjs/internal/cellPrompt.js +146 -0
  151. package/dist/cjs/internal/cellPrompt.js.map +7 -0
  152. package/dist/cjs/internal/compactable.d.ts +44 -0
  153. package/dist/cjs/internal/compactable.d.ts.map +1 -0
  154. package/dist/cjs/internal/compactable.js +56 -0
  155. package/dist/cjs/internal/compactable.js.map +7 -0
  156. package/dist/cjs/internal/compactionMarks.d.ts +278 -0
  157. package/dist/cjs/internal/compactionMarks.d.ts.map +1 -0
  158. package/dist/cjs/internal/compactionMarks.js +212 -0
  159. package/dist/cjs/internal/compactionMarks.js.map +7 -0
  160. package/dist/cjs/internal/demandText.d.ts +95 -0
  161. package/dist/cjs/internal/demandText.d.ts.map +1 -0
  162. package/dist/cjs/internal/demandText.js +70 -0
  163. package/dist/cjs/internal/demandText.js.map +7 -0
  164. package/dist/cjs/internal/elide.d.ts +109 -0
  165. package/dist/cjs/internal/elide.d.ts.map +1 -0
  166. package/dist/cjs/internal/elide.js +59 -0
  167. package/dist/cjs/internal/elide.js.map +7 -0
  168. package/dist/cjs/internal/frame.d.ts +463 -0
  169. package/dist/cjs/internal/frame.d.ts.map +1 -0
  170. package/dist/cjs/internal/frame.js +514 -0
  171. package/dist/cjs/internal/frame.js.map +7 -0
  172. package/dist/cjs/internal/nonNegativeSafeInt.d.ts +20 -0
  173. package/dist/cjs/internal/nonNegativeSafeInt.d.ts.map +1 -0
  174. package/dist/cjs/internal/nonNegativeSafeInt.js +29 -0
  175. package/dist/cjs/internal/nonNegativeSafeInt.js.map +7 -0
  176. package/dist/cjs/internal/paidUsage.d.ts +52 -0
  177. package/dist/cjs/internal/paidUsage.d.ts.map +1 -0
  178. package/dist/cjs/internal/paidUsage.js +70 -0
  179. package/dist/cjs/internal/paidUsage.js.map +7 -0
  180. package/dist/cjs/internal/printChannel.d.ts +233 -0
  181. package/dist/cjs/internal/printChannel.d.ts.map +1 -0
  182. package/dist/cjs/internal/printChannel.js +165 -0
  183. package/dist/cjs/internal/printChannel.js.map +7 -0
  184. package/dist/cjs/internal/printsObservation.d.ts +26 -0
  185. package/dist/cjs/internal/printsObservation.d.ts.map +1 -0
  186. package/dist/cjs/internal/printsObservation.js +27 -0
  187. package/dist/cjs/internal/printsObservation.js.map +7 -0
  188. package/dist/cjs/internal/refusal.d.ts +40 -0
  189. package/dist/cjs/internal/refusal.d.ts.map +1 -0
  190. package/dist/cjs/internal/refusal.js +45 -0
  191. package/dist/cjs/internal/refusal.js.map +7 -0
  192. package/dist/cjs/internal/supervision.d.ts +174 -0
  193. package/dist/cjs/internal/supervision.d.ts.map +1 -0
  194. package/dist/cjs/internal/supervision.js +402 -0
  195. package/dist/cjs/internal/supervision.js.map +7 -0
  196. package/dist/cjs/internal/unfinishedWork.d.ts +99 -0
  197. package/dist/cjs/internal/unfinishedWork.d.ts.map +1 -0
  198. package/dist/cjs/internal/unfinishedWork.js +80 -0
  199. package/dist/cjs/internal/unfinishedWork.js.map +7 -0
  200. package/dist/cjs/internal/unobservedCall.d.ts +112 -0
  201. package/dist/cjs/internal/unobservedCall.d.ts.map +1 -0
  202. package/dist/cjs/internal/unobservedCall.js +345 -0
  203. package/dist/cjs/internal/unobservedCall.js.map +7 -0
  204. package/dist/cjs/internal/untrustedData.d.ts +14 -0
  205. package/dist/cjs/internal/untrustedData.d.ts.map +1 -0
  206. package/dist/cjs/internal/untrustedData.js +30 -0
  207. package/dist/cjs/internal/untrustedData.js.map +7 -0
  208. package/dist/cjs/package.json +1 -0
  209. package/dist/esm/AgentEvent.d.ts +3092 -0
  210. package/dist/esm/AgentEvent.d.ts.map +1 -0
  211. package/dist/esm/AgentEvent.js +1610 -0
  212. package/dist/esm/AgentEvent.js.map +1 -0
  213. package/dist/esm/CallLedger.d.ts +378 -0
  214. package/dist/esm/CallLedger.d.ts.map +1 -0
  215. package/dist/esm/CallLedger.js +506 -0
  216. package/dist/esm/CallLedger.js.map +1 -0
  217. package/dist/esm/Cell.d.ts +774 -0
  218. package/dist/esm/Cell.d.ts.map +1 -0
  219. package/dist/esm/Cell.js +772 -0
  220. package/dist/esm/Cell.js.map +1 -0
  221. package/dist/esm/CellCalls.d.ts +115 -0
  222. package/dist/esm/CellCalls.d.ts.map +1 -0
  223. package/dist/esm/CellCalls.js +97 -0
  224. package/dist/esm/CellCalls.js.map +1 -0
  225. package/dist/esm/CellHistory.d.ts +102 -0
  226. package/dist/esm/CellHistory.d.ts.map +1 -0
  227. package/dist/esm/CellHistory.js +91 -0
  228. package/dist/esm/CellHistory.js.map +1 -0
  229. package/dist/esm/CellTurn.d.ts +1071 -0
  230. package/dist/esm/CellTurn.d.ts.map +1 -0
  231. package/dist/esm/CellTurn.js +3410 -0
  232. package/dist/esm/CellTurn.js.map +1 -0
  233. package/dist/esm/CellValidation.d.ts +94 -0
  234. package/dist/esm/CellValidation.d.ts.map +1 -0
  235. package/dist/esm/CellValidation.js +335 -0
  236. package/dist/esm/CellValidation.js.map +1 -0
  237. package/dist/esm/Compaction.d.ts +158 -0
  238. package/dist/esm/Compaction.d.ts.map +1 -0
  239. package/dist/esm/Compaction.js +216 -0
  240. package/dist/esm/Compaction.js.map +1 -0
  241. package/dist/esm/CompletionClaim.d.ts +801 -0
  242. package/dist/esm/CompletionClaim.d.ts.map +1 -0
  243. package/dist/esm/CompletionClaim.js +833 -0
  244. package/dist/esm/CompletionClaim.js.map +1 -0
  245. package/dist/esm/ContextWindow.d.ts +435 -0
  246. package/dist/esm/ContextWindow.d.ts.map +1 -0
  247. package/dist/esm/ContextWindow.js +427 -0
  248. package/dist/esm/ContextWindow.js.map +1 -0
  249. package/dist/esm/EngineLike.d.ts +546 -0
  250. package/dist/esm/EngineLike.d.ts.map +1 -0
  251. package/dist/esm/EngineLike.js +218 -0
  252. package/dist/esm/EngineLike.js.map +1 -0
  253. package/dist/esm/ExternalTranscript.d.ts +349 -0
  254. package/dist/esm/ExternalTranscript.d.ts.map +1 -0
  255. package/dist/esm/ExternalTranscript.js +987 -0
  256. package/dist/esm/ExternalTranscript.js.map +1 -0
  257. package/dist/esm/FailedCall.d.ts +132 -0
  258. package/dist/esm/FailedCall.d.ts.map +1 -0
  259. package/dist/esm/FailedCall.js +131 -0
  260. package/dist/esm/FailedCall.js.map +1 -0
  261. package/dist/esm/FlowBinding.d.ts +289 -0
  262. package/dist/esm/FlowBinding.d.ts.map +1 -0
  263. package/dist/esm/FlowBinding.js +376 -0
  264. package/dist/esm/FlowBinding.js.map +1 -0
  265. package/dist/esm/HarnessError.d.ts +57 -0
  266. package/dist/esm/HarnessError.d.ts.map +1 -0
  267. package/dist/esm/HarnessError.js +85 -0
  268. package/dist/esm/HarnessError.js.map +1 -0
  269. package/dist/esm/Judgement.d.ts +289 -0
  270. package/dist/esm/Judgement.d.ts.map +1 -0
  271. package/dist/esm/Judgement.js +305 -0
  272. package/dist/esm/Judgement.js.map +1 -0
  273. package/dist/esm/Monitor.d.ts +374 -0
  274. package/dist/esm/Monitor.d.ts.map +1 -0
  275. package/dist/esm/Monitor.js +370 -0
  276. package/dist/esm/Monitor.js.map +1 -0
  277. package/dist/esm/NarrowedCheck.d.ts +523 -0
  278. package/dist/esm/NarrowedCheck.d.ts.map +1 -0
  279. package/dist/esm/NarrowedCheck.js +612 -0
  280. package/dist/esm/NarrowedCheck.js.map +1 -0
  281. package/dist/esm/Notifications.d.ts +42 -0
  282. package/dist/esm/Notifications.d.ts.map +1 -0
  283. package/dist/esm/Notifications.js +215 -0
  284. package/dist/esm/Notifications.js.map +1 -0
  285. package/dist/esm/Plan.d.ts +127 -0
  286. package/dist/esm/Plan.d.ts.map +1 -0
  287. package/dist/esm/Plan.js +97 -0
  288. package/dist/esm/Plan.js.map +1 -0
  289. package/dist/esm/QuickJSSandbox.d.ts +151 -0
  290. package/dist/esm/QuickJSSandbox.d.ts.map +1 -0
  291. package/dist/esm/QuickJSSandbox.js +1364 -0
  292. package/dist/esm/QuickJSSandbox.js.map +1 -0
  293. package/dist/esm/Relevance.d.ts +213 -0
  294. package/dist/esm/Relevance.d.ts.map +1 -0
  295. package/dist/esm/Relevance.js +254 -0
  296. package/dist/esm/Relevance.js.map +1 -0
  297. package/dist/esm/Sandbox.d.ts +637 -0
  298. package/dist/esm/Sandbox.d.ts.map +1 -0
  299. package/dist/esm/Sandbox.js +464 -0
  300. package/dist/esm/Sandbox.js.map +1 -0
  301. package/dist/esm/Steering.d.ts +464 -0
  302. package/dist/esm/Steering.d.ts.map +1 -0
  303. package/dist/esm/Steering.js +193 -0
  304. package/dist/esm/Steering.js.map +1 -0
  305. package/dist/esm/StructuredOutput.d.ts +252 -0
  306. package/dist/esm/StructuredOutput.d.ts.map +1 -0
  307. package/dist/esm/StructuredOutput.js +430 -0
  308. package/dist/esm/StructuredOutput.js.map +1 -0
  309. package/dist/esm/Sufficiency.d.ts +195 -0
  310. package/dist/esm/Sufficiency.d.ts.map +1 -0
  311. package/dist/esm/Sufficiency.js +207 -0
  312. package/dist/esm/Sufficiency.js.map +1 -0
  313. package/dist/esm/Supervisor.d.ts +719 -0
  314. package/dist/esm/Supervisor.d.ts.map +1 -0
  315. package/dist/esm/Supervisor.js +575 -0
  316. package/dist/esm/Supervisor.js.map +1 -0
  317. package/dist/esm/Tokens.d.ts +86 -0
  318. package/dist/esm/Tokens.d.ts.map +1 -0
  319. package/dist/esm/Tokens.js +92 -0
  320. package/dist/esm/Tokens.js.map +1 -0
  321. package/dist/esm/Transcript.d.ts +171 -0
  322. package/dist/esm/Transcript.d.ts.map +1 -0
  323. package/dist/esm/Transcript.js +424 -0
  324. package/dist/esm/Transcript.js.map +1 -0
  325. package/dist/esm/TruncatedOutput.d.ts +186 -0
  326. package/dist/esm/TruncatedOutput.d.ts.map +1 -0
  327. package/dist/esm/TruncatedOutput.js +257 -0
  328. package/dist/esm/TruncatedOutput.js.map +1 -0
  329. package/dist/esm/UnmovedTree.d.ts +113 -0
  330. package/dist/esm/UnmovedTree.d.ts.map +1 -0
  331. package/dist/esm/UnmovedTree.js +90 -0
  332. package/dist/esm/UnmovedTree.js.map +1 -0
  333. package/dist/esm/UnresolvedFailure.d.ts +196 -0
  334. package/dist/esm/UnresolvedFailure.d.ts.map +1 -0
  335. package/dist/esm/UnresolvedFailure.js +218 -0
  336. package/dist/esm/UnresolvedFailure.js.map +1 -0
  337. package/dist/esm/VacuousVerification.d.ts +237 -0
  338. package/dist/esm/VacuousVerification.d.ts.map +1 -0
  339. package/dist/esm/VacuousVerification.js +245 -0
  340. package/dist/esm/VacuousVerification.js.map +1 -0
  341. package/dist/esm/VariablesPanel.d.ts +117 -0
  342. package/dist/esm/VariablesPanel.d.ts.map +1 -0
  343. package/dist/esm/VariablesPanel.js +142 -0
  344. package/dist/esm/VariablesPanel.js.map +1 -0
  345. package/dist/esm/index.d.ts +172 -0
  346. package/dist/esm/index.d.ts.map +1 -0
  347. package/dist/esm/index.js +172 -0
  348. package/dist/esm/index.js.map +1 -0
  349. package/dist/esm/internal/bytes.d.ts +36 -0
  350. package/dist/esm/internal/bytes.d.ts.map +1 -0
  351. package/dist/esm/internal/bytes.js +70 -0
  352. package/dist/esm/internal/bytes.js.map +1 -0
  353. package/dist/esm/internal/cellPrompt.d.ts +122 -0
  354. package/dist/esm/internal/cellPrompt.d.ts.map +1 -0
  355. package/dist/esm/internal/cellPrompt.js +276 -0
  356. package/dist/esm/internal/cellPrompt.js.map +1 -0
  357. package/dist/esm/internal/compactable.d.ts +44 -0
  358. package/dist/esm/internal/compactable.d.ts.map +1 -0
  359. package/dist/esm/internal/compactable.js +71 -0
  360. package/dist/esm/internal/compactable.js.map +1 -0
  361. package/dist/esm/internal/compactionMarks.d.ts +278 -0
  362. package/dist/esm/internal/compactionMarks.d.ts.map +1 -0
  363. package/dist/esm/internal/compactionMarks.js +317 -0
  364. package/dist/esm/internal/compactionMarks.js.map +1 -0
  365. package/dist/esm/internal/demandText.d.ts +95 -0
  366. package/dist/esm/internal/demandText.d.ts.map +1 -0
  367. package/dist/esm/internal/demandText.js +128 -0
  368. package/dist/esm/internal/demandText.js.map +1 -0
  369. package/dist/esm/internal/elide.d.ts +109 -0
  370. package/dist/esm/internal/elide.d.ts.map +1 -0
  371. package/dist/esm/internal/elide.js +123 -0
  372. package/dist/esm/internal/elide.js.map +1 -0
  373. package/dist/esm/internal/frame.d.ts +463 -0
  374. package/dist/esm/internal/frame.d.ts.map +1 -0
  375. package/dist/esm/internal/frame.js +861 -0
  376. package/dist/esm/internal/frame.js.map +1 -0
  377. package/dist/esm/internal/nonNegativeSafeInt.d.ts +20 -0
  378. package/dist/esm/internal/nonNegativeSafeInt.d.ts.map +1 -0
  379. package/dist/esm/internal/nonNegativeSafeInt.js +20 -0
  380. package/dist/esm/internal/nonNegativeSafeInt.js.map +1 -0
  381. package/dist/esm/internal/paidUsage.d.ts +52 -0
  382. package/dist/esm/internal/paidUsage.d.ts.map +1 -0
  383. package/dist/esm/internal/paidUsage.js +72 -0
  384. package/dist/esm/internal/paidUsage.js.map +1 -0
  385. package/dist/esm/internal/printChannel.d.ts +233 -0
  386. package/dist/esm/internal/printChannel.d.ts.map +1 -0
  387. package/dist/esm/internal/printChannel.js +376 -0
  388. package/dist/esm/internal/printChannel.js.map +1 -0
  389. package/dist/esm/internal/printsObservation.d.ts +26 -0
  390. package/dist/esm/internal/printsObservation.d.ts.map +1 -0
  391. package/dist/esm/internal/printsObservation.js +29 -0
  392. package/dist/esm/internal/printsObservation.js.map +1 -0
  393. package/dist/esm/internal/refusal.d.ts +40 -0
  394. package/dist/esm/internal/refusal.d.ts.map +1 -0
  395. package/dist/esm/internal/refusal.js +47 -0
  396. package/dist/esm/internal/refusal.js.map +1 -0
  397. package/dist/esm/internal/supervision.d.ts +174 -0
  398. package/dist/esm/internal/supervision.d.ts.map +1 -0
  399. package/dist/esm/internal/supervision.js +485 -0
  400. package/dist/esm/internal/supervision.js.map +1 -0
  401. package/dist/esm/internal/unfinishedWork.d.ts +99 -0
  402. package/dist/esm/internal/unfinishedWork.d.ts.map +1 -0
  403. package/dist/esm/internal/unfinishedWork.js +85 -0
  404. package/dist/esm/internal/unfinishedWork.js.map +1 -0
  405. package/dist/esm/internal/unobservedCall.d.ts +112 -0
  406. package/dist/esm/internal/unobservedCall.d.ts.map +1 -0
  407. package/dist/esm/internal/unobservedCall.js +501 -0
  408. package/dist/esm/internal/unobservedCall.js.map +1 -0
  409. package/dist/esm/internal/untrustedData.d.ts +14 -0
  410. package/dist/esm/internal/untrustedData.d.ts.map +1 -0
  411. package/dist/esm/internal/untrustedData.js +15 -0
  412. package/dist/esm/internal/untrustedData.js.map +1 -0
  413. package/docs/README.md +129 -0
  414. package/docs/api.md +1869 -0
  415. package/docs/concepts.md +238 -0
  416. package/docs/external-transcripts.md +245 -0
  417. package/docs/guides/bind-flows.md +167 -0
  418. package/docs/guides/drive-the-loop.md +265 -0
  419. package/docs/guides/run-cells.md +262 -0
  420. package/docs/guides/workerd.md +144 -0
  421. package/docs/installation.md +69 -0
  422. package/docs/quickstart.md +121 -0
  423. package/docs/reference.md +954 -0
  424. package/docs/troubleshooting.md +177 -0
  425. package/package.json +463 -3
  426. package/src/AgentEvent.ts +1772 -0
  427. package/src/CallLedger.ts +560 -0
  428. package/src/Cell.ts +926 -0
  429. package/src/CellCalls.ts +198 -0
  430. package/src/CellHistory.ts +128 -0
  431. package/src/CellTurn.ts +4450 -0
  432. package/src/CellValidation.ts +382 -0
  433. package/src/Compaction.ts +330 -0
  434. package/src/CompletionClaim.ts +1013 -0
  435. package/src/ContextWindow.ts +669 -0
  436. package/src/EngineLike.ts +614 -0
  437. package/src/ExternalTranscript.ts +1143 -0
  438. package/src/FailedCall.ts +163 -0
  439. package/src/FlowBinding.ts +603 -0
  440. package/src/HarnessError.ts +98 -0
  441. package/src/Judgement.ts +526 -0
  442. package/src/Monitor.ts +579 -0
  443. package/src/NarrowedCheck.ts +694 -0
  444. package/src/Notifications.ts +262 -0
  445. package/src/Plan.ts +113 -0
  446. package/src/QuickJSSandbox.ts +1557 -0
  447. package/src/Relevance.ts +352 -0
  448. package/src/Sandbox.ts +908 -0
  449. package/src/Steering.ts +405 -0
  450. package/src/StructuredOutput.ts +484 -0
  451. package/src/Sufficiency.ts +247 -0
  452. package/src/Supervisor.ts +798 -0
  453. package/src/Tokens.ts +108 -0
  454. package/src/Transcript.ts +513 -0
  455. package/src/TruncatedOutput.ts +297 -0
  456. package/src/UnmovedTree.ts +121 -0
  457. package/src/UnresolvedFailure.ts +240 -0
  458. package/src/VacuousVerification.ts +280 -0
  459. package/src/VariablesPanel.ts +165 -0
  460. package/src/index.ts +204 -0
  461. package/src/internal/bytes.ts +70 -0
  462. package/src/internal/cellPrompt.ts +337 -0
  463. package/src/internal/compactable.ts +76 -0
  464. package/src/internal/compactionMarks.ts +454 -0
  465. package/src/internal/demandText.ts +145 -0
  466. package/src/internal/elide.ts +130 -0
  467. package/src/internal/frame.ts +1178 -0
  468. package/src/internal/nonNegativeSafeInt.ts +24 -0
  469. package/src/internal/paidUsage.ts +90 -0
  470. package/src/internal/printChannel.ts +434 -0
  471. package/src/internal/printsObservation.ts +31 -0
  472. package/src/internal/refusal.ts +53 -0
  473. package/src/internal/supervision.ts +652 -0
  474. package/src/internal/unfinishedWork.ts +123 -0
  475. package/src/internal/unobservedCall.ts +536 -0
  476. package/src/internal/untrustedData.ts +19 -0
@@ -0,0 +1,514 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var frame_exports = {};
30
+ __export(frame_exports, {
31
+ account: () => account,
32
+ discipline: () => discipline,
33
+ handBackRoom: () => handBackRoom,
34
+ hasNextFrame: () => hasNextFrame,
35
+ judgeCompletion: () => judgeCompletion,
36
+ taskText: () => taskText
37
+ });
38
+ module.exports = __toCommonJS(frame_exports);
39
+ var import_model = require("@smthrs/model");
40
+ var import_effect = require("effect");
41
+ var AgentEvent = __toESM(require("../AgentEvent.js"), 1);
42
+ var CallLedger = __toESM(require("../CallLedger.js"), 1);
43
+ var CompletionClaim = __toESM(require("../CompletionClaim.js"), 1);
44
+ var FailedCall = __toESM(require("../FailedCall.js"), 1);
45
+ var NarrowedCheck = __toESM(require("../NarrowedCheck.js"), 1);
46
+ var Sufficiency = __toESM(require("../Sufficiency.js"), 1);
47
+ var TruncatedOutput = __toESM(require("../TruncatedOutput.js"), 1);
48
+ var UnmovedTree = __toESM(require("../UnmovedTree.js"), 1);
49
+ var UnresolvedFailure = __toESM(require("../UnresolvedFailure.js"), 1);
50
+ var VariablesPanel = __toESM(require("../VariablesPanel.js"), 1);
51
+ var bytes = __toESM(require("./bytes.js"), 1);
52
+ var DemandText = __toESM(require("./demandText.js"), 1);
53
+ var elide = __toESM(require("./elide.js"), 1);
54
+ var import_paidUsage = require("./paidUsage.js");
55
+ var UnfinishedWork = __toESM(require("./unfinishedWork.js"), 1);
56
+ var UnobservedCall = __toESM(require("./unobservedCall.js"), 1);
57
+ const eventType = AgentEvent.eventType;
58
+ const hasNextFrame = (state) => state.maxFrames === 0 || state.frame + 1 < state.maxFrames;
59
+ const handBackRoom = (state, readOnlyFrames) => hasNextFrame(state) && (state.readOnlyCap === 0 || readOnlyFrames + 1 < state.readOnlyCap * 2);
60
+ const invalidProbeNotice = (calls) => {
61
+ const lines = calls.flatMap(
62
+ (call) => call.invalidProbe === void 0 ? [] : [`- ${call.flow} (${call.invalidProbe.reason}): ${call.invalidProbe.message}`]
63
+ );
64
+ if (lines.length === 0) return void 0;
65
+ return `Invalid probe \u2014 ${lines.length} call${lines.length === 1 ? "" : "s"} this frame failed about the command, not about the code:
66
+ ${lines.join("\n")}
67
+ That result is not a reproduction and is not a regression: it reads identically on a broken tree and on a fixed one, so it can neither prove the bug nor prove the repair. Repair the command before editing anything \u2014 find the real names first \u2014 and do not store it as \`state.verification\` or name it when you complete.`;
68
+ };
69
+ const retainedSignatures = 64;
70
+ const remember = (known, made) => {
71
+ const newest = new Set(known);
72
+ for (const digest of made) {
73
+ newest.delete(digest);
74
+ newest.add(digest);
75
+ }
76
+ const distinct = [...newest];
77
+ return distinct.slice(Math.max(0, distinct.length - retainedSignatures));
78
+ };
79
+ const account = (options) => {
80
+ const { calls, closed, opened, state } = options;
81
+ const declaredWrites = calls.filter((call) => call.mutates).length;
82
+ const measured = import_effect.Option.isSome(opened) && import_effect.Option.isSome(closed);
83
+ const covered = measured && opened.value.complete && closed.value.complete;
84
+ const standingWrites = calls.filter((call) => call.mutates && (call.ok || !covered)).length;
85
+ const mutated = standingWrites > 0 || covered && opened.value.digest !== closed.value.digest;
86
+ const remoteWrites = calls.filter((call) => call.ok && call.mutates && call.remote).length;
87
+ const closingDigest = import_effect.Option.match(closed, { onNone: () => "", onSome: (value) => value.digest });
88
+ const signatures = calls.map((call) => call.signature);
89
+ const asked = new Set(state.callSignatures);
90
+ const novel = signatures.some((signature) => !asked.has(signature));
91
+ const repeatFrames = signatures.length === 0 ? state.repeatFrames : novel || mutated ? 0 : state.repeatFrames + 1;
92
+ const workspaceDigest = covered ? closingDigest : "";
93
+ const standingAt = calls.map((call) => call.mutates && (call.ok || !covered));
94
+ const lastStandingWrite = standingAt.lastIndexOf(true);
95
+ const unattributedMutation = mutated && lastStandingWrite === -1;
96
+ const readings = (checkpointed) => calls.flatMap((call, index) => {
97
+ if (!call.ok || call.mutates || call.at !== void 0 !== checkpointed) return [];
98
+ const recorded = NarrowedCheck.check({
99
+ flow: call.flow,
100
+ signature: call.subject,
101
+ input: call.input,
102
+ // A reading taken against a checkpoint is a reading of a tree that is
103
+ // not this workspace, so it carries no workspace digest: every ledger
104
+ // that reads one asks a question about the tree the run is standing
105
+ // on, and an entry stamped with this frame's digest would answer that
106
+ // question with somebody else's tree. Empty makes it inert there.
107
+ digest: checkpointed ? "" : workspaceDigest,
108
+ failing: call.failing,
109
+ passing: call.passing,
110
+ // Whether the tree stamped above is the tree this call read. Every
111
+ // write the frame declared is a call with a position among these ones,
112
+ // so the answer is positional: a check with no standing write after it
113
+ // read the closing tree, and one with a write after it read a tree
114
+ // that is gone. That is what lets the loop a real agent runs — edit,
115
+ // then run the check that was red, in one frame — hold its own
116
+ // evidence, while `check, then edit` still stamps nothing.
117
+ //
118
+ // A checkpointed reading is stable for a different reason: the tree it
119
+ // read was pinned and cannot move, so the ordering is established by
120
+ // the pin rather than by position — which is exactly what that surface
121
+ // exists to buy, and what the run used to buy by reverting its work.
122
+ stable: checkpointed || !unattributedMutation && index > lastStandingWrite
123
+ });
124
+ return recorded === void 0 ? [] : [recorded];
125
+ });
126
+ const frameChecks = readings(false);
127
+ return {
128
+ mutated,
129
+ calls,
130
+ source: options.source ?? "",
131
+ observed: new AgentEvent.MutationObserved({
132
+ eventType: eventType.mutationObserved,
133
+ basis: covered ? "observed" : measured ? "partial" : "declared",
134
+ mutated,
135
+ digest: closingDigest,
136
+ paths: import_effect.Option.match(closed, { onNone: () => 0, onSome: (value) => value.paths }),
137
+ declaredWrites
138
+ }),
139
+ workspaceDigest,
140
+ frameChecks,
141
+ probeNotice: invalidProbeNotice(calls),
142
+ facts: {
143
+ // Seeded from what earlier frames were handed and appended to as this
144
+ // frame's calls settled.
145
+ truncatedOutputs: TruncatedOutput.retain(options.captures),
146
+ workspace: closed,
147
+ // A frame is read-only when it changed nothing; see
148
+ // `State.readOnlyFrames` for why that is measured and not declared.
149
+ // Once the run has written something, a read-only frame that settled a
150
+ // call this run had not issued before holds the streak where it was: it
151
+ // asked a new question about work that exists, which is debugging, not a
152
+ // stall. Before the first write every read-only frame counts, because a
153
+ // run that only ever reads new things is the failure the cap was built
154
+ // for. Zero-call and repeat-only frames always advance it.
155
+ readOnlyFrames: mutated ? 0 : novel && state.mutations > 0 ? state.readOnlyFrames : state.readOnlyFrames + 1,
156
+ repeatFrames,
157
+ callSignatures: remember(state.callSignatures, signatures),
158
+ // Ids this frame pinned: a checkpoint a frame minted before it raised is
159
+ // still a tree the run holds, and forgetting it would leak a stored tree
160
+ // nothing can name.
161
+ checkpointIds: options.minted.length === 0 ? state.checkpointIds : [...state.checkpointIds, ...options.minted],
162
+ // Live readings only. Every consumer of this ledger — the narrowing
163
+ // demand, the unresolved-failure demand, the vacuous-verification notice
164
+ // — asks whether the tree the run is completing on was checked, and a
165
+ // checkpointed reading is not a reading of that tree.
166
+ checks: NarrowedCheck.remember(state.checks, frameChecks),
167
+ // What this frame asked, folded into what the run had already asked. A
168
+ // raise carries it too: a call that settled before the throw is work
169
+ // the run paid for, and the ledger is the only place the next model turn
170
+ // can read it.
171
+ callLedger: CallLedger.remember(state.callLedger, calls),
172
+ // Every call that reported an exit status, writes included, for the
173
+ // claim brake. See `CompletionClaim.record`.
174
+ reported: CompletionClaim.record(state.reported, calls),
175
+ // Which of this frame's checks failed before any change did, and how
176
+ // many frames have changed the workspace. Both, because this is the one
177
+ // ledger a checkpointed reading belongs in: its whole question is an
178
+ // ordering — this failed, then something changed, then that passed — and
179
+ // a pinned tree answers the first half honestly from a frame that also
180
+ // did the changing.
181
+ failures: Sufficiency.remember(state.failures, {
182
+ frame: [...readings(true), ...frameChecks],
183
+ epoch: state.mutations
184
+ }),
185
+ mutations: state.mutations + (mutated ? 1 : 0),
186
+ remoteMutations: state.remoteMutations + remoteWrites,
187
+ // The tree the run was handed, fixed the first time a frame measured one
188
+ // and never restamped. See `State.openingDigest`.
189
+ openingDigest: state.openingDigest !== "" ? state.openingDigest : import_effect.Option.match(opened, {
190
+ onNone: () => "",
191
+ onSome: (value) => value.complete ? value.digest : ""
192
+ }),
193
+ // The panel the next frame opens with, stamped by the frame that ran.
194
+ panel: VariablesPanel.stamp(state.panel, options.bindings, state.frame),
195
+ ...mutated ? { readOnlyGrace: 0, pendingReadOnlyDemand: void 0 } : {}
196
+ }
197
+ };
198
+ };
199
+ const taughtTerms = (window) => NarrowedCheck.terms(
200
+ window.segments.filter((segment) => segment.zone === "prefix").flatMap((segment) => segment.content).map((part) => "text" in part && typeof part.text === "string" ? part.text : "").join("\n")
201
+ );
202
+ const stands = {
203
+ observed: void 0,
204
+ demand: void 0,
205
+ unproven: void 0,
206
+ decision: void 0
207
+ };
208
+ const handBack = (demand, decision) => ({
209
+ observed: void 0,
210
+ demand,
211
+ unproven: void 0,
212
+ decision
213
+ });
214
+ const taskText = (window) => window.segments.filter((segment) => segment.zone === "prefix" && segment.kind === "instructions").flatMap((segment) => segment.content).map((part) => "text" in part && typeof part.text === "string" ? part.text : "").filter((text) => text !== "").join("\n\n");
215
+ const lastCheck = (calls) => {
216
+ for (let index = calls.length - 1; index >= 0; index--) {
217
+ const call = calls[index];
218
+ if (!call.ok || call.mutates) continue;
219
+ const status = UnresolvedFailure.exitStatus(call.value);
220
+ if (status === void 0) continue;
221
+ return {
222
+ command: CompletionClaim.quote(call.input),
223
+ exitCode: status,
224
+ output: CompletionClaim.newest(CompletionClaim.quote(call.value))
225
+ };
226
+ }
227
+ return void 0;
228
+ };
229
+ const measuredDemand = (state, accounting, contextWindow, nextFrame, claim) => {
230
+ const { calls, facts, frameChecks, workspaceDigest } = accounting;
231
+ if (state.failedCallDemands < FailedCall.cap) {
232
+ const failures = FailedCall.find(calls, claim, accounting.source);
233
+ if (failures.length > 0) {
234
+ return {
235
+ event: new AgentEvent.FailedCallDemanded({
236
+ eventType: eventType.failedCallDemanded,
237
+ failures: failures.map((failure) => ({ flow: failure.flow, message: failure.message })),
238
+ nextFrame
239
+ }),
240
+ note: FailedCall.demand(failures),
241
+ keeps: false,
242
+ spent: { failedCallDemands: state.failedCallDemands + 1 }
243
+ };
244
+ }
245
+ }
246
+ if (state.unobservedDemands < UnobservedCall.cap) {
247
+ const unread = UnobservedCall.find(calls, accounting.source);
248
+ if (unread.length > 0) {
249
+ return {
250
+ event: new AgentEvent.UnobservedDemanded({
251
+ eventType: eventType.unobservedDemanded,
252
+ calls: unread,
253
+ nextFrame
254
+ }),
255
+ note: UnobservedCall.demand(unread),
256
+ keeps: true,
257
+ spent: { unobservedDemands: state.unobservedDemands + 1 }
258
+ };
259
+ }
260
+ }
261
+ if (state.unresolvedDemands < state.unresolvedCap) {
262
+ const unresolved = UnresolvedFailure.find({ ledger: facts.checks, digest: workspaceDigest });
263
+ if (unresolved !== void 0) {
264
+ return {
265
+ event: new AgentEvent.UnresolvedDemanded({
266
+ eventType: eventType.unresolvedDemanded,
267
+ flow: unresolved.failed.flow,
268
+ failed: unresolved.failed.label,
269
+ instead: unresolved.instead.label,
270
+ currentDigest: workspaceDigest,
271
+ nextFrame
272
+ }),
273
+ note: UnresolvedFailure.demand(unresolved),
274
+ keeps: true,
275
+ spent: { unresolvedDemands: state.unresolvedDemands + 1 }
276
+ };
277
+ }
278
+ }
279
+ if (state.narrowingDemands >= state.narrowingCap) return void 0;
280
+ const spent = { narrowingDemands: state.narrowingDemands + 1 };
281
+ const narrowing = NarrowedCheck.find({ ledger: state.checks, frame: frameChecks, digest: workspaceDigest });
282
+ if (narrowing !== void 0) {
283
+ return {
284
+ event: new AgentEvent.NarrowedDemanded({
285
+ eventType: eventType.narrowedDemanded,
286
+ flow: narrowing.earlier.flow,
287
+ broader: narrowing.earlier.label,
288
+ narrower: narrowing.later.label,
289
+ broaderDigest: narrowing.earlier.digest,
290
+ currentDigest: workspaceDigest,
291
+ nextFrame
292
+ }),
293
+ note: NarrowedCheck.demand(narrowing),
294
+ keeps: true,
295
+ spent
296
+ };
297
+ }
298
+ const only = NarrowedCheck.findOnly({
299
+ ledger: facts.checks,
300
+ before: state.checks.map((entry) => entry.signature),
301
+ frame: frameChecks,
302
+ taught: taughtTerms(contextWindow)
303
+ });
304
+ if (only === void 0) return void 0;
305
+ return {
306
+ event: new AgentEvent.NarrowOnlyDemanded({
307
+ eventType: eventType.narrowOnlyDemanded,
308
+ flow: only.later.flow,
309
+ check: only.later.label,
310
+ targets: only.targets,
311
+ currentDigest: workspaceDigest,
312
+ nextFrame
313
+ }),
314
+ note: NarrowedCheck.demandOnly(only),
315
+ keeps: true,
316
+ spent
317
+ };
318
+ };
319
+ const judgeCompletion = (state, accounting, contextWindow, claim, read = CompletionClaim.read) => import_effect.Effect.gen(function* () {
320
+ const { calls, facts, workspaceDigest } = accounting;
321
+ const room = handBackRoom(state, facts.readOnlyFrames) && state.demandedFrame !== state.frame;
322
+ const nextFrame = state.frame + 1;
323
+ if (room) {
324
+ const measured = measuredDemand(state, accounting, contextWindow, nextFrame, claim);
325
+ if (measured !== void 0) return handBack(measured);
326
+ }
327
+ if (state.claimCap === 0) return stands;
328
+ const originalTask = taskText(contextWindow).trim();
329
+ const recallTask = "the run record has the whole task";
330
+ const task = elide.middle(
331
+ originalTask,
332
+ CompletionClaim.proseBytes - elide.noticeCost(bytes.size(originalTask), recallTask),
333
+ recallTask
334
+ );
335
+ const check = lastCheck(calls);
336
+ const unmovedTree = UnmovedTree.find({
337
+ opened: facts.openingDigest,
338
+ digest: workspaceDigest,
339
+ elsewhere: facts.remoteMutations
340
+ });
341
+ const evidence = {
342
+ task,
343
+ claim: CompletionClaim.prose(claim),
344
+ // The `UnmovedTree` fact, read the other way round. An unmeasured tree
345
+ // reads as moved, which is the reading that asks for nothing.
346
+ treeMoved: unmovedTree === void 0,
347
+ checksRun: facts.reported,
348
+ callsRun: facts.callLedger.map((entry) => ({
349
+ flow: entry.flow,
350
+ input: entry.subject,
351
+ ok: entry.ok,
352
+ resultSummary: entry.digest
353
+ })),
354
+ ...check === void 0 ? {} : { lastCheck: check }
355
+ };
356
+ const reading = yield* read(evidence);
357
+ if (reading === void 0) return stands;
358
+ const found = CompletionClaim.find(reading);
359
+ const bounced = found !== void 0 && room && state.claimDemands < state.claimCap;
360
+ const unmoved = found !== void 0 && room && state.unmovedDemands < state.unmovedCap ? unmovedTree : void 0;
361
+ const refused = found !== void 0 && !bounced && unmoved === void 0 && CompletionClaim.unrecorded(found);
362
+ const unfinished = found !== void 0 && !bounced && unmoved === void 0 && !refused && reading.complete <= CompletionClaim.disprovenAt ? yield* UnfinishedWork.read(evidence, reading.usage) : void 0;
363
+ const incomplete = unfinished !== void 0 && unfinished.unfinished >= UnfinishedWork.reportedAt;
364
+ const usage = (0, import_paidUsage.paidTogether)(reading.usage, unfinished?.usage);
365
+ const event = new AgentEvent.ClaimDemanded({
366
+ eventType: eventType.claimDemanded,
367
+ complete: reading.complete,
368
+ overclaims: reading.overclaims,
369
+ invented: reading.invented,
370
+ latencyMs: reading.latencyMs + (unfinished?.latencyMs ?? 0),
371
+ ...usage === void 0 ? {} : { usage },
372
+ demanded: bounced && unmoved === void 0,
373
+ refused,
374
+ currentDigest: workspaceDigest,
375
+ nextFrame
376
+ });
377
+ const decision = reading.asked === void 0 ? void 0 : new AgentEvent.DecisionSettled({
378
+ eventType: eventType.decisionSettled,
379
+ scope: state.session,
380
+ frame: state.frame,
381
+ classifier: CompletionClaim.classifier.id,
382
+ digest: CompletionClaim.classifier.digest,
383
+ state: reading.asked.state,
384
+ questions: CompletionClaim.classifier.questions,
385
+ answers: reading.asked.answers,
386
+ latencyMs: reading.latencyMs,
387
+ acted: bounced || refused || unmoved !== void 0 || incomplete,
388
+ decidedBy: "jev"
389
+ });
390
+ const unfinishedDecision = unfinished === void 0 ? void 0 : new AgentEvent.DecisionSettled({
391
+ eventType: eventType.decisionSettled,
392
+ scope: state.session,
393
+ frame: state.frame,
394
+ classifier: unfinished.asked.classifier,
395
+ digest: unfinished.asked.digest,
396
+ state: unfinished.asked.state,
397
+ questions: unfinished.asked.questions,
398
+ answers: unfinished.asked.answers,
399
+ latencyMs: unfinished.latencyMs,
400
+ acted: incomplete,
401
+ decidedBy: "jev"
402
+ });
403
+ const sentenceDecision = reading.sentences === void 0 ? void 0 : new AgentEvent.DecisionSettled({
404
+ eventType: eventType.decisionSettled,
405
+ scope: state.session,
406
+ frame: state.frame,
407
+ classifier: reading.sentences.classifier,
408
+ digest: reading.sentences.digest,
409
+ state: reading.sentences.state,
410
+ questions: reading.sentences.questions,
411
+ answers: reading.sentences.answers,
412
+ latencyMs: reading.sentences.latencyMs,
413
+ acted: bounced || refused || unmoved !== void 0,
414
+ decidedBy: "jev"
415
+ });
416
+ if (found === void 0) {
417
+ return { observed: event, demand: void 0, unproven: void 0, decision, sentenceDecision };
418
+ }
419
+ if (unmoved !== void 0) {
420
+ return {
421
+ ...handBack({
422
+ event: new AgentEvent.UnmovedDemanded({
423
+ eventType: eventType.unmovedDemanded,
424
+ openedDigest: unmoved.opened,
425
+ currentDigest: unmoved.closed,
426
+ nextFrame
427
+ }),
428
+ note: UnmovedTree.demand(unmoved),
429
+ keeps: !CompletionClaim.unrecorded(found),
430
+ spent: { unmovedDemands: state.unmovedDemands + 1 }
431
+ }, decision),
432
+ observed: event,
433
+ sentenceDecision
434
+ };
435
+ }
436
+ if (bounced) {
437
+ return {
438
+ ...handBack({
439
+ event,
440
+ note: CompletionClaim.demand(),
441
+ // A bounce the brake would not refuse is worth restoring against an
442
+ // exhausted budget; one it would refuse is not. See `CompletionDemand`.
443
+ keeps: !CompletionClaim.unrecorded(found),
444
+ spent: { claimDemands: state.claimDemands + 1 }
445
+ }, decision),
446
+ sentenceDecision
447
+ };
448
+ }
449
+ return {
450
+ observed: event,
451
+ demand: void 0,
452
+ // Either bounce handed the claim back: the unmoved demand spends its
453
+ // own cap in the claim brake's place.
454
+ unproven: refused ? CompletionClaim.unproven(found, state.claimDemands + state.unmovedDemands > 0, claim) : incomplete ? UnfinishedWork.incomplete(reading.complete, unfinished.unfinished, claim) : void 0,
455
+ decision,
456
+ sentenceDecision,
457
+ ...unfinishedDecision === void 0 ? {} : { unfinishedDecision }
458
+ };
459
+ });
460
+ const discipline = (state, accounting, justification) => {
461
+ const { facts } = accounting;
462
+ const cap = state.readOnlyCap;
463
+ const readOnly = !accounting.mutated;
464
+ const graceLeft = readOnly ? state.readOnlyGrace : 0;
465
+ const justified = readOnly && state.pendingReadOnlyDemand !== void 0 && (justification ?? "").trim().length > 0;
466
+ const advanced = readOnly && facts.readOnlyFrames > state.readOnlyFrames;
467
+ const demanded = cap > 0 && advanced && facts.readOnlyFrames >= cap && graceLeft === 0 && !justified;
468
+ const repeated = state.repeatCap > 0 && facts.repeatFrames >= state.repeatCap;
469
+ const sufficient = state.sufficiencyStated ? void 0 : Sufficiency.find({ ledger: facts.failures, frame: accounting.frameChecks, epoch: facts.mutations });
470
+ const nextFrame = state.frame + 1;
471
+ return {
472
+ events: [
473
+ ...demanded ? [
474
+ new AgentEvent.ReadOnlyDemandIssued({
475
+ eventType: eventType.readOnlyDemandIssued,
476
+ streak: facts.readOnlyFrames,
477
+ cap,
478
+ nextFrame
479
+ })
480
+ ] : [],
481
+ ...repeated ? [
482
+ new AgentEvent.RepeatDemanded({
483
+ eventType: eventType.repeatDemanded,
484
+ frames: facts.repeatFrames,
485
+ cap: state.repeatCap,
486
+ nextFrame
487
+ })
488
+ ] : [],
489
+ ...sufficient === void 0 ? [] : [
490
+ new AgentEvent.SufficiencyObserved({
491
+ eventType: eventType.sufficiencyObserved,
492
+ flow: sufficient.failed.flow,
493
+ failed: sufficient.failed.label,
494
+ passed: sufficient.passed.label,
495
+ epoch: sufficient.failed.epoch,
496
+ nextFrame
497
+ })
498
+ ]
499
+ ],
500
+ messages: [
501
+ ...accounting.probeNotice === void 0 ? [] : [import_model.ModelRequest.Message.user(accounting.probeNotice)],
502
+ ...demanded ? [import_model.ModelRequest.Message.user(DemandText.readOnly(cap, facts.readOnlyFrames))] : [],
503
+ ...repeated ? [import_model.ModelRequest.Message.user(DemandText.repeat(facts.repeatFrames, state.repeatCap))] : [],
504
+ ...sufficient === void 0 ? [] : [import_model.ModelRequest.Message.user(Sufficiency.observation(sufficient))]
505
+ ],
506
+ changes: {
507
+ readOnlyGrace: justified ? cap : Math.max(0, graceLeft - 1),
508
+ repeatFrames: repeated ? 0 : facts.repeatFrames,
509
+ ...sufficient === void 0 ? {} : { sufficiencyStated: true },
510
+ pendingReadOnlyDemand: demanded ? { streak: facts.readOnlyFrames, cap } : void 0
511
+ }
512
+ };
513
+ };
514
+ //# sourceMappingURL=frame.js.map