@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,319 @@
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 ContextWindow_exports = {};
30
+ __export(ContextWindow_exports, {
31
+ Content: () => Content,
32
+ ContextWindow: () => ContextWindow,
33
+ ContextWindowError: () => ContextWindowError,
34
+ ContextWindowErrorCode: () => ContextWindowErrorCode,
35
+ Mark: () => Mark,
36
+ Segment: () => Segment,
37
+ SegmentKind: () => SegmentKind,
38
+ SegmentZone: () => SegmentZone,
39
+ TypeId: () => TypeId,
40
+ appendTurn: () => appendTurn,
41
+ compact: () => compact,
42
+ compactMarked: () => compactMarked,
43
+ compactPrefix: () => compactPrefix,
44
+ empty: () => empty,
45
+ make: () => make,
46
+ makeSegment: () => makeSegment,
47
+ prefixDigest: () => prefixDigest,
48
+ render: () => render
49
+ });
50
+ module.exports = __toCommonJS(ContextWindow_exports);
51
+ var Digest = __toESM(require("@smthrs/core/Digest"), 1);
52
+ var Fault = __toESM(require("@smthrs/flow/Fault"), 1);
53
+ var CanonicalJson = __toESM(require("@smthrs/model/CanonicalJson"), 1);
54
+ var ModelRequest = __toESM(require("@smthrs/model/ModelRequest"), 1);
55
+ var import_Function = require("effect/Function");
56
+ var import_Pipeable = require("effect/Pipeable");
57
+ var Result = __toESM(require("effect/Result"), 1);
58
+ var Schema = __toESM(require("effect/Schema"), 1);
59
+ var import_compactable = require("./internal/compactable.js");
60
+ var Tokens = __toESM(require("./Tokens.js"), 1);
61
+ const TypeId = "~flows/harness/ContextWindow";
62
+ const SegmentKind = Schema.Literals([
63
+ "system",
64
+ "instructions",
65
+ "registry",
66
+ "tools",
67
+ "transcript",
68
+ "summary",
69
+ "steering"
70
+ ]);
71
+ const SegmentZone = Schema.Literals(["prefix", "tail"]);
72
+ const Content = Schema.Array(
73
+ Schema.Union([ModelRequest.SystemPart, ModelRequest.Message, ModelRequest.ToolDefinition])
74
+ );
75
+ const Mark = Schema.Literals(["keep", "squash", "remove"]);
76
+ const ContextWindowErrorCode = Schema.Literals(["invalid_compaction_prefix", "invalid_compaction_marks"]);
77
+ class ContextWindowError extends Schema.TaggedError()(
78
+ "flows/harness/ContextWindowError",
79
+ {
80
+ code: ContextWindowErrorCode,
81
+ message: Schema.String
82
+ }
83
+ ) {
84
+ }
85
+ Fault.register(
86
+ "flows/harness/ContextWindowError",
87
+ {
88
+ invalid_compaction_prefix: "bug",
89
+ invalid_compaction_marks: "bug"
90
+ }
91
+ );
92
+ class Segment extends Schema.Class("flows/harness/ContextWindow/Segment")({
93
+ kind: SegmentKind,
94
+ zone: SegmentZone,
95
+ digest: Schema.String,
96
+ tokens: Tokens.Count,
97
+ content: Content
98
+ }) {
99
+ }
100
+ class ContextWindow extends Schema.Class("flows/harness/ContextWindow")({
101
+ modelId: Schema.String,
102
+ segments: Schema.Array(Segment),
103
+ activeTools: Schema.Array(Schema.String),
104
+ replaced: Schema.optional(Schema.String),
105
+ digest: Schema.String,
106
+ tokens: Tokens.Accounting
107
+ }) {
108
+ [TypeId] = TypeId;
109
+ pipe(..._operators) {
110
+ return (0, import_Pipeable.pipeArguments)(this, arguments);
111
+ }
112
+ /** @category constructors @since 0.1.0 */
113
+ static make(input) {
114
+ return construct(input);
115
+ }
116
+ /** @category constructors @since 0.1.0 */
117
+ static empty(modelId) {
118
+ return empty(modelId);
119
+ }
120
+ /** @category combinators @since 0.1.0 */
121
+ static appendTurn(self, assistantMessage) {
122
+ return appendTurn(self, assistantMessage);
123
+ }
124
+ /** @category combinators @since 0.1.0 */
125
+ static compact(self, summary) {
126
+ return compact(self, summary);
127
+ }
128
+ /** @category conversions @since 0.1.0 */
129
+ static render(self) {
130
+ return render(self);
131
+ }
132
+ }
133
+ const isSegment = (value) => value instanceof Segment;
134
+ const jsonValue = (value) => {
135
+ if (Array.isArray(value)) return value.map(jsonValue);
136
+ if (value !== null && typeof value === "object") {
137
+ return Object.fromEntries(
138
+ Object.entries(value).filter(([, member]) => member !== void 0).map(([key, member]) => [key, jsonValue(member)])
139
+ );
140
+ }
141
+ return value;
142
+ };
143
+ const withoutSignatures = (value) => {
144
+ if (Array.isArray(value)) return value.map(withoutSignatures);
145
+ if (value !== null && typeof value === "object") {
146
+ const record = value;
147
+ return Object.fromEntries(
148
+ Object.entries(record).filter(([key]) => !(record.type === "thinking" && key === "signature")).map(([key, member]) => [key, withoutSignatures(member)])
149
+ );
150
+ }
151
+ return value;
152
+ };
153
+ const segmentText = (content) => CanonicalJson.stringify(withoutSignatures(jsonValue(content)));
154
+ const digest = (value) => Digest.digest(CanonicalJson.stringify(value));
155
+ const frozenWhole = /* @__PURE__ */ new WeakSet();
156
+ const freezeDeep = (value) => {
157
+ if (value === null || typeof value !== "object" || frozenWhole.has(value)) return;
158
+ frozenWhole.add(value);
159
+ Object.freeze(value);
160
+ for (const key of Object.keys(value)) {
161
+ const property = Object.getOwnPropertyDescriptor(value, key);
162
+ if (property !== void 0 && "value" in property) freezeDeep(property.value);
163
+ }
164
+ };
165
+ const makeSegment = (input) => {
166
+ if (isSegment(input)) {
167
+ freezeDeep(input.content);
168
+ return input;
169
+ }
170
+ const content = [...input.content];
171
+ freezeDeep(content);
172
+ const segment = new Segment({
173
+ kind: input.kind,
174
+ zone: input.zone,
175
+ digest: digest({
176
+ kind: input.kind,
177
+ zone: input.zone,
178
+ content: jsonValue(content),
179
+ ...input.declaredDigest === void 0 ? {} : { declaredDigest: input.declaredDigest }
180
+ }),
181
+ tokens: input.tokens ?? Tokens.count(segmentText(content)),
182
+ content
183
+ });
184
+ freezeDeep(segment.content);
185
+ return segment;
186
+ };
187
+ const unique = (values) => {
188
+ const seen = /* @__PURE__ */ new Set();
189
+ return values.filter((value) => {
190
+ const normalized = value.trim().toLowerCase();
191
+ return normalized !== "" && !seen.has(normalized) && (seen.add(normalized), true);
192
+ });
193
+ };
194
+ const windowDigest = (modelId, segments, activeTools, replaced) => digest({
195
+ modelId,
196
+ segments: segments.map((segment) => segment.digest),
197
+ activeTools,
198
+ ...replaced === void 0 ? {} : { replaced }
199
+ });
200
+ const construct = (options) => {
201
+ const segments = (options.segments ?? []).map(makeSegment);
202
+ const activeTools = unique(options.activeTools ?? []);
203
+ const window = new ContextWindow({
204
+ modelId: options.modelId,
205
+ segments,
206
+ activeTools,
207
+ replaced: options.replaced,
208
+ digest: windowDigest(options.modelId, segments, activeTools, options.replaced),
209
+ tokens: Tokens.combine(segments.map(
210
+ (segment) => new Tokens.Segment({
211
+ digest: segment.digest,
212
+ zone: segment.zone,
213
+ tokens: segment.tokens
214
+ })
215
+ ))
216
+ });
217
+ freezeDeep(window);
218
+ return window;
219
+ };
220
+ const make = (options) => construct(options);
221
+ const empty = (modelId) => make({ modelId });
222
+ const appendTurn = (0, import_Function.dual)(2, (self, assistantMessage) => construct({
223
+ modelId: self.modelId,
224
+ segments: [
225
+ ...self.segments,
226
+ makeSegment({ kind: "transcript", zone: "tail", content: [assistantMessage] })
227
+ ],
228
+ activeTools: self.activeTools,
229
+ replaced: self.replaced
230
+ }));
231
+ const summaryMessages = (summary) => {
232
+ const messages = Array.isArray(summary) ? summary : [summary];
233
+ return messages.map(
234
+ (message) => message.role === "user" ? message : ModelRequest.Message.user(
235
+ message.content.filter((part) => part.type === "text")
236
+ )
237
+ );
238
+ };
239
+ const selectedPrefix = (self, prefixLength) => {
240
+ if (!Number.isSafeInteger(prefixLength) || prefixLength < 0) {
241
+ return Result.fail(
242
+ new ContextWindowError({
243
+ code: "invalid_compaction_prefix",
244
+ message: "Compaction prefix length must be a non-negative safe integer"
245
+ })
246
+ );
247
+ }
248
+ const segments = (0, import_compactable.compactable)(self.segments);
249
+ if (prefixLength > segments.length) {
250
+ return Result.fail(
251
+ new ContextWindowError({
252
+ code: "invalid_compaction_prefix",
253
+ message: "Compaction prefix length exceeds the compactable context"
254
+ })
255
+ );
256
+ }
257
+ return Result.succeed(segments.slice(0, prefixLength));
258
+ };
259
+ const prefixDigest = (self, prefixLength) => Result.map(selectedPrefix(self, prefixLength), (segments) => digest(segments.map((segment) => segment.digest)));
260
+ const marksError = (message) => Result.fail(new ContextWindowError({ code: "invalid_compaction_marks", message }));
261
+ const compactMarked = (self, prefixLength, marks, summary) => Result.gen(function* () {
262
+ const replacedSegments = yield* selectedPrefix(self, prefixLength);
263
+ if (marks.length !== replacedSegments.length) {
264
+ return yield* marksError("Compaction marks must name every prefix segment once");
265
+ }
266
+ if (marks.includes("squash") !== (summary !== void 0)) {
267
+ return yield* marksError("A compaction summary is required exactly when a prefix segment is squashed");
268
+ }
269
+ if (replacedSegments.length === 0) return self;
270
+ const replaced = digest(replacedSegments.map((segment) => segment.digest));
271
+ const positions = self.segments.flatMap((segment, index) => (0, import_compactable.compactable)([segment]).length === 0 ? [] : [index]).slice(0, prefixLength);
272
+ const first = positions[0];
273
+ const selected = new Set(positions);
274
+ const segments = [
275
+ ...self.segments.slice(0, first),
276
+ ...summary === void 0 ? [] : [
277
+ makeSegment({ kind: "summary", zone: "tail", content: summaryMessages(summary) })
278
+ ],
279
+ ...replacedSegments.filter((_, index) => marks[index] === "keep"),
280
+ ...self.segments.slice(first).filter((_, index) => !selected.has(first + index))
281
+ ];
282
+ return construct({ modelId: self.modelId, segments, activeTools: self.activeTools, replaced });
283
+ });
284
+ const compactPrefix = (self, prefixLength, summary) => Result.flatMap(selectedPrefix(self, prefixLength), (replacedSegments) => compactMarked(
285
+ self,
286
+ prefixLength,
287
+ replacedSegments.map(() => "squash"),
288
+ replacedSegments.length === 0 ? void 0 : summary
289
+ ));
290
+ const compact = (0, import_Function.dual)(2, (self, summary) => {
291
+ const segments = (0, import_compactable.compactable)(self.segments);
292
+ const prefixLength = segments.length > 1 ? segments.length - 1 : segments.length;
293
+ return compactPrefix(self, prefixLength, summary);
294
+ });
295
+ const render = (self) => {
296
+ const system = [];
297
+ const messages = [];
298
+ const definitions = /* @__PURE__ */ new Map();
299
+ const definitionKey = (name) => name.trim().toLowerCase();
300
+ for (const segment of self.segments) {
301
+ for (const item of segment.content) {
302
+ if ("role" in item) messages.push(item);
303
+ else if ("name" in item) definitions.set(definitionKey(item.name), item);
304
+ else system.push(item);
305
+ }
306
+ }
307
+ const active = new Set(self.activeTools.map(definitionKey));
308
+ const tools = [...definitions.values()].filter(
309
+ (definition) => definition.deferred === true || active.has(definitionKey(definition.name))
310
+ );
311
+ return ModelRequest.ModelRequest.make({
312
+ modelId: self.modelId,
313
+ system,
314
+ messages,
315
+ tools,
316
+ params: ModelRequest.GenerationParams.make()
317
+ });
318
+ };
319
+ //# sourceMappingURL=ContextWindow.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/ContextWindow.ts"],
4
+ "sourcesContent": ["/**\n * The immutable, provider-neutral context assembled for one model request.\n * Every value it exposes is frozen \u2014 the arrays, the segments, and the\n * messages, parts and tool declarations they hold \u2014 so a runtime mutation\n * throws in strict mode instead of silently invalidating the cached digest.\n *\n * Governing design: `../docs/concepts.md#context-window`.\n *\n * @since 0.1.0\n */\n\nimport * as Digest from \"@smthrs/core/Digest\"\nimport * as Fault from \"@smthrs/flow/Fault\"\nimport * as CanonicalJson from \"@smthrs/model/CanonicalJson\"\nimport * as ModelRequest from \"@smthrs/model/ModelRequest\"\nimport { dual } from \"effect/Function\"\nimport { type Pipeable, pipeArguments } from \"effect/Pipeable\"\nimport * as Result from \"effect/Result\"\nimport * as Schema from \"effect/Schema\"\nimport { compactable } from \"./internal/compactable.ts\"\nimport * as Tokens from \"./Tokens.ts\"\n\n/**\n * The brand a {@link ContextWindow} carries so a structurally similar\n * object cannot pass for one.\n *\n * @category type ids\n * @since 0.1.0\n * @slop\n */\nexport const TypeId = \"~flows/harness/ContextWindow\" as const\n\n/**\n * The type of {@link TypeId}.\n *\n * @category type ids\n * @since 0.1.0\n * @slop\n */\nexport type TypeId = typeof TypeId\n\n/**\n * What a segment holds. The kind fixes where the segment may sit and\n * whether compaction is allowed to replace it.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport const SegmentKind = Schema.Literals([\n \"system\",\n \"instructions\",\n \"registry\",\n \"tools\",\n \"transcript\",\n \"summary\",\n \"steering\"\n])\n\n/**\n * The decoded form of {@link SegmentKind}.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport type SegmentKind = typeof SegmentKind.Type\n\n/**\n * Where a segment sits relative to the cache breakpoint. `prefix` segments\n * are stable across turns; `tail` segments change every turn.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport const SegmentZone = Schema.Literals([\"prefix\", \"tail\"])\n\n/**\n * The decoded form of {@link SegmentZone}.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport type SegmentZone = typeof SegmentZone.Type\n\n/**\n * The parts a segment may hold: system text, transcript messages, and tool\n * declarations, in the provider-neutral vocabulary of `@smthrs/model`.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport const Content = Schema.Array(\n Schema.Union([ModelRequest.SystemPart, ModelRequest.Message, ModelRequest.ToolDefinition])\n)\n\n/**\n * The decoded form of {@link Content}.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport type Content = typeof Content.Type\n\n/**\n * What a compaction does with one prefix segment: `keep` it as it is,\n * `squash` it into the summary, or `remove` it outright.\n *\n * @category models\n * @since 1.0.0-rc.0\n */\nexport const Mark = Schema.Literals([\"keep\", \"squash\", \"remove\"])\n\n/**\n * The decoded form of {@link Mark}.\n *\n * @category models\n * @since 1.0.0-rc.0\n */\nexport type Mark = typeof Mark.Type\n\n/**\n * The failure vocabulary of a context window operation.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport const ContextWindowErrorCode = Schema.Literals([\"invalid_compaction_prefix\", \"invalid_compaction_marks\"])\n\n/**\n * The decoded form of {@link ContextWindowErrorCode}.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport type ContextWindowErrorCode = typeof ContextWindowErrorCode.Type\n\n/** Stable failure returned for an invalid public compaction prefix.\n * @category errors\n * @since 0.1.0\n * @slop\n */\nexport class ContextWindowError extends Schema.TaggedError<ContextWindowError>()(\n \"flows/harness/ContextWindowError\",\n {\n code: ContextWindowErrorCode,\n message: Schema.String\n }\n) {}\nFault.register(\n \"flows/harness/ContextWindowError\",\n {\n invalid_compaction_prefix: \"bug\",\n invalid_compaction_marks: \"bug\"\n } satisfies Fault.Rows<ContextWindowErrorCode>\n)\n\n/** A stable, typed slice of the model-visible context.\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport class Segment extends Schema.Class<Segment>(\"flows/harness/ContextWindow/Segment\")({\n kind: SegmentKind,\n zone: SegmentZone,\n digest: Schema.String,\n tokens: Tokens.Count,\n content: Content\n}) {}\n\n/**\n * One assembled, immutable model context: its ordered segments, the tools\n * currently active, and the token accounting for both. Every combinator\n * returns a new window rather than mutating this one.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport class ContextWindow extends Schema.Class<ContextWindow>(\"flows/harness/ContextWindow\")({\n modelId: Schema.String,\n segments: Schema.Array(Segment),\n activeTools: Schema.Array(Schema.String),\n replaced: Schema.optional(Schema.String),\n digest: Schema.String,\n tokens: Tokens.Accounting\n}) implements Pipeable {\n readonly [TypeId] = TypeId\n\n /** Threads this window through the data-last combinators of this module.\n *\n * `window.pipe(appendTurn(message), render)` is `render(appendTurn(window, message))`.\n *\n * @category combinators\n * @since 0.1.0\n */\n pipe<A>(this: A): A\n pipe<A, B>(this: A, ab: (_: A) => B): B\n pipe<A, B, C>(this: A, ab: (_: A) => B, bc: (_: B) => C): C\n pipe<A, B, C, D>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D\n pipe<A, B, C, D, E>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D, de: (_: D) => E): E\n pipe<A, B, C, D, E, F>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F\n ): F\n pipe<A, B, C, D, E, F, G>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G\n ): G\n pipe<A, B, C, D, E, F, G, H>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H\n ): H\n pipe<A, B, C, D, E, F, G, H, I>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I\n ): I\n pipe<A, B, C, D, E, F, G, H, I, J>(\n this: A,\n ab: (_: A) => B,\n bc: (_: B) => C,\n cd: (_: C) => D,\n de: (_: D) => E,\n ef: (_: E) => F,\n fg: (_: F) => G,\n gh: (_: G) => H,\n hi: (_: H) => I,\n ij: (_: I) => J\n ): J\n pipe(this: unknown, ..._operators: ReadonlyArray<(input: never) => unknown>): unknown {\n // eslint-disable-next-line prefer-rest-params -- matches Effect's Pipeable implementation\n return pipeArguments(this, arguments)\n }\n\n /** @category constructors @since 0.1.0 */\n static override make(input: MakeOptions): ContextWindow {\n return construct(input)\n }\n\n /** @category constructors @since 0.1.0 */\n static empty(modelId: string): ContextWindow {\n return empty(modelId)\n }\n\n /** @category combinators @since 0.1.0 */\n static appendTurn(self: ContextWindow, assistantMessage: ModelRequest.AssistantMessage): ContextWindow {\n return appendTurn(self, assistantMessage)\n }\n\n /** @category combinators @since 0.1.0 */\n static compact(\n self: ContextWindow,\n summary: ModelRequest.Message | ReadonlyArray<ModelRequest.Message>\n ): Result.Result<ContextWindow, ContextWindowError> {\n return compact(self, summary)\n }\n\n /** @category conversions @since 0.1.0 */\n static render(self: ContextWindow): ModelRequest.ModelRequest {\n return render(self)\n }\n}\n\n/**\n * A segment before its digest and token count are computed. Supplying\n * `declaredDigest` or `tokens` skips the corresponding computation.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport interface SegmentInput {\n readonly kind: SegmentKind\n readonly zone: SegmentZone\n readonly content: Content\n readonly declaredDigest?: string | undefined\n readonly tokens?: Tokens.Count | undefined\n}\n\n/**\n * The declaration {@link ContextWindow.make} takes.\n *\n * @category models\n * @since 0.1.0\n * @slop\n */\nexport interface MakeOptions {\n readonly modelId: string\n readonly segments?: ReadonlyArray<Segment | SegmentInput> | undefined\n readonly activeTools?: ReadonlyArray<string> | undefined\n readonly replaced?: string | undefined\n}\n\nconst isSegment = (value: Segment | SegmentInput): value is Segment => value instanceof Segment\n\nconst jsonValue = (value: unknown): unknown => {\n if (Array.isArray(value)) return value.map(jsonValue)\n if (value !== null && typeof value === \"object\") {\n return Object.fromEntries(\n Object.entries(value as Record<string, unknown>)\n .filter(([, member]) => member !== undefined)\n .map(([key, member]) => [key, jsonValue(member)])\n )\n }\n return value\n}\n\n/**\n * What a segment is estimated from: its content, less every thinking part's\n * `signature`. A signature is opaque replay state, not context the provider\n * bills: on the ChatGPT route it is the whole encrypted reasoning item, often\n * larger than the turn's visible text, and counting it compacted a 400k-window\n * run at 31k to 41k billed input tokens (Terminal-Bench 4.0,\n * mp-checkpoint-consolidation, 2026-09-24). The digest still covers it.\n */\nconst withoutSignatures = (value: unknown): unknown => {\n if (Array.isArray(value)) return value.map(withoutSignatures)\n if (value !== null && typeof value === \"object\") {\n const record = value as Record<string, unknown>\n return Object.fromEntries(\n Object.entries(record)\n .filter(([key]) => !(record.type === \"thinking\" && key === \"signature\"))\n .map(([key, member]) => [key, withoutSignatures(member)])\n )\n }\n return value\n}\n\nconst segmentText = (content: Content): string => CanonicalJson.stringify(withoutSignatures(jsonValue(content)))\n\nconst digest = (value: unknown): string => Digest.digest(CanonicalJson.stringify(value))\n\n/** Every node in every graph this module has undertaken to freeze whole. */\nconst frozenWhole = new WeakSet<object>()\n\n/**\n * Freezes one value and everything reachable from it.\n *\n * Freezing only the outer array kept the immutability promise for\n * `segments.push` and left `segments[0].content[0].content[0].text = \"\u2026\"`\n * silent. A segment's digest is taken once, at construction, so a message or a\n * part edited in place afterwards renders content the window's own identity no\n * longer describes \u2014 and that identity is what the sealed step is keyed on.\n *\n * The module's own memo ends the walk. A value a caller froze is evidence only\n * that node cannot change, not that every descendant was frozen with it; a\n * segment this module already walked, on the other hand, can be reused across\n * turns in O(1). Recording a node before descending also makes a cycle end at\n * its first repeated edge.\n *\n * Members are limited to own enumerable string keys, as they were when this\n * walk used `Object.values`, but each one is read through its own descriptor.\n * An accessor is caller code, not data the freeze walk may execute.\n */\nconst freezeDeep = (value: unknown): void => {\n if (value === null || typeof value !== \"object\" || frozenWhole.has(value)) return\n // Recorded before the walk, so a graph that points at itself ends it.\n frozenWhole.add(value)\n Object.freeze(value)\n for (const key of Object.keys(value)) {\n const property = Object.getOwnPropertyDescriptor(value, key)\n if (property !== undefined && \"value\" in property) freezeDeep(property.value)\n }\n}\n\n/** Creates one segment, computing its identity and estimated token count.\n * @category constructors\n * @since 0.1.0\n * @slop\n */\nexport const makeSegment = (input: Segment | SegmentInput): Segment => {\n if (isSegment(input)) {\n freezeDeep(input.content)\n return input\n }\n const content: Content = [...input.content]\n freezeDeep(content)\n const segment = new Segment({\n kind: input.kind,\n zone: input.zone,\n digest: digest({\n kind: input.kind,\n zone: input.zone,\n content: jsonValue(content),\n ...(input.declaredDigest === undefined ? {} : { declaredDigest: input.declaredDigest })\n }),\n tokens: input.tokens ?? Tokens.count(segmentText(content)),\n content\n })\n freezeDeep(segment.content)\n return segment\n}\n\nconst unique = (values: ReadonlyArray<string>): ReadonlyArray<string> => {\n const seen = new Set<string>()\n return values.filter((value) => {\n const normalized = value.trim().toLowerCase()\n return normalized !== \"\" && !seen.has(normalized) && (seen.add(normalized), true)\n })\n}\n\nconst windowDigest = (\n modelId: string,\n segments: ReadonlyArray<Segment>,\n activeTools: ReadonlyArray<string>,\n replaced?: string\n): string =>\n digest({\n modelId,\n segments: segments.map((segment) => segment.digest),\n activeTools,\n ...(replaced === undefined ? {} : { replaced })\n })\n\nconst construct = (options: MakeOptions): ContextWindow => {\n const segments = (options.segments ?? []).map(makeSegment)\n const activeTools = unique(options.activeTools ?? [])\n const window = new ContextWindow({\n modelId: options.modelId,\n segments,\n activeTools,\n replaced: options.replaced,\n digest: windowDigest(options.modelId, segments, activeTools, options.replaced),\n tokens: Tokens.combine(segments.map((segment) =>\n new Tokens.Segment({\n digest: segment.digest,\n zone: segment.zone,\n tokens: segment.tokens\n })\n ))\n })\n // The whole window, not its two outer arrays: a segment, a message, a part\n // and the token accounting are all values a caller holds a reference to, and\n // the digest above was taken over every one of them.\n freezeDeep(window)\n return window\n}\n\n/** Constructs a window from already-derived values.\n * @category constructors\n * @since 0.1.0\n * @slop\n */\nexport const make = (options: MakeOptions): ContextWindow => construct(options)\n\n/** Constructs an empty context window for a model.\n * @category constructors\n * @since 0.1.0\n * @slop\n */\nexport const empty = (modelId: string): ContextWindow => make({ modelId })\n\n/** Appends one settled assistant message.\n *\n * @category combinators\n * @since 0.1.0\n * @slop\n */\nexport const appendTurn: {\n (assistantMessage: ModelRequest.AssistantMessage): (self: ContextWindow) => ContextWindow\n (self: ContextWindow, assistantMessage: ModelRequest.AssistantMessage): ContextWindow\n} = dual(2, (self: ContextWindow, assistantMessage: ModelRequest.AssistantMessage) =>\n construct({\n modelId: self.modelId,\n segments: [\n ...self.segments,\n makeSegment({ kind: \"transcript\", zone: \"tail\", content: [assistantMessage] })\n ],\n activeTools: self.activeTools,\n replaced: self.replaced\n }))\n\nconst summaryMessages = (summary: ModelRequest.Message | ReadonlyArray<ModelRequest.Message>): Content => {\n const messages: ReadonlyArray<ModelRequest.Message> = Array.isArray(summary)\n ? summary as ReadonlyArray<ModelRequest.Message>\n : [summary as ModelRequest.Message]\n return messages.map((message) =>\n message.role === \"user\"\n ? message\n : ModelRequest.Message.user(\n message.content.filter((part): part is ModelRequest.TextPart => part.type === \"text\")\n )\n )\n}\n\nconst selectedPrefix = (\n self: ContextWindow,\n prefixLength: number\n): Result.Result<ReadonlyArray<Segment>, ContextWindowError> => {\n if (!Number.isSafeInteger(prefixLength) || prefixLength < 0) {\n return Result.fail(\n new ContextWindowError({\n code: \"invalid_compaction_prefix\",\n message: \"Compaction prefix length must be a non-negative safe integer\"\n })\n )\n }\n const segments = compactable(self.segments)\n if (prefixLength > segments.length) {\n return Result.fail(\n new ContextWindowError({\n code: \"invalid_compaction_prefix\",\n message: \"Compaction prefix length exceeds the compactable context\"\n })\n )\n }\n return Result.succeed(segments.slice(0, prefixLength))\n}\n\n/**\n * Computes the declared identity of an exact compactable prefix.\n *\n * @category conversions\n * @since 0.1.0\n * @slop\n */\nexport const prefixDigest = (\n self: ContextWindow,\n prefixLength: number\n): Result.Result<string, ContextWindowError> =>\n Result.map(selectedPrefix(self, prefixLength), (segments) => digest(segments.map((segment) => segment.digest)))\n\nconst marksError = (message: string): Result.Result<never, ContextWindowError> =>\n Result.fail(new ContextWindowError({ code: \"invalid_compaction_marks\", message }))\n\n/**\n * Compacts an exact compactable prefix by its marks, one per prefix segment.\n *\n * The result holds, in order: the segments before the prefix; one `summary`\n * segment of `summary` when any segment is squashed; the kept segments, as\n * the same objects, so their digests are stable; then the suffix. Removed\n * segments are dropped. `summary` is required exactly when a segment is\n * squashed.\n *\n * @category combinators\n * @since 1.0.0-rc.0\n */\nexport const compactMarked = (\n self: ContextWindow,\n prefixLength: number,\n marks: ReadonlyArray<Mark>,\n summary: ModelRequest.Message | ReadonlyArray<ModelRequest.Message> | undefined\n): Result.Result<ContextWindow, ContextWindowError> =>\n Result.gen(function*() {\n const replacedSegments = yield* selectedPrefix(self, prefixLength)\n if (marks.length !== replacedSegments.length) {\n return yield* marksError(\"Compaction marks must name every prefix segment once\")\n }\n if (marks.includes(\"squash\") !== (summary !== undefined)) {\n return yield* marksError(\"A compaction summary is required exactly when a prefix segment is squashed\")\n }\n if (replacedSegments.length === 0) return self\n const replaced = digest(replacedSegments.map((segment) => segment.digest))\n const positions = self.segments.flatMap((segment, index) => compactable([segment]).length === 0 ? [] : [index])\n .slice(0, prefixLength)\n const first = positions[0]!\n const selected = new Set(positions)\n const segments = [\n ...self.segments.slice(0, first),\n ...(summary === undefined ? [] : [\n makeSegment({ kind: \"summary\", zone: \"tail\", content: summaryMessages(summary) })\n ]),\n ...replacedSegments.filter((_, index) => marks[index] === \"keep\"),\n ...self.segments.slice(first).filter((_, index) => !selected.has(first + index))\n ]\n return construct({ modelId: self.modelId, segments, activeTools: self.activeTools, replaced })\n })\n\n/**\n * Replaces an exact compactable prefix while retaining every suffix segment:\n * {@link compactMarked} with every segment squashed.\n *\n * @category combinators\n * @since 0.1.0\n * @slop\n */\nexport const compactPrefix = (\n self: ContextWindow,\n prefixLength: number,\n summary: ModelRequest.Message | ReadonlyArray<ModelRequest.Message>\n): Result.Result<ContextWindow, ContextWindowError> =>\n Result.flatMap(selectedPrefix(self, prefixLength), (replacedSegments) =>\n compactMarked(\n self,\n prefixLength,\n replacedSegments.map(() => \"squash\"),\n replacedSegments.length === 0 ? undefined : summary\n ))\n\n/** Replaces the compactable transcript prefix with a summary segment.\n *\n * The most recent transcript segment remains the suffix, so a compacted\n * projection renders summary first followed by the un-compacted tail.\n *\n * @category combinators\n * @since 0.1.0\n * @slop\n */\nexport const compact: {\n (\n summary: ModelRequest.Message | ReadonlyArray<ModelRequest.Message>\n ): (self: ContextWindow) => Result.Result<ContextWindow, ContextWindowError>\n (\n self: ContextWindow,\n summary: ModelRequest.Message | ReadonlyArray<ModelRequest.Message>\n ): Result.Result<ContextWindow, ContextWindowError>\n} = dual(2, (self: ContextWindow, summary: ModelRequest.Message | ReadonlyArray<ModelRequest.Message>) => {\n const segments = compactable(self.segments)\n const prefixLength = segments.length > 1 ? segments.length - 1 : segments.length\n return compactPrefix(self, prefixLength, summary)\n})\n\n/** Renders this provider-neutral value into a model request.\n * @category conversions\n * @since 0.1.0\n * @slop\n */\nexport const render = (self: ContextWindow): ModelRequest.ModelRequest => {\n const system: Array<ModelRequest.SystemPart> = []\n const messages: Array<ModelRequest.Message> = []\n const definitions = new Map<string, ModelRequest.ToolDefinition>()\n const definitionKey = (name: string): string => name.trim().toLowerCase()\n for (const segment of self.segments) {\n for (const item of segment.content) {\n if (\"role\" in item) messages.push(item)\n else if (\"name\" in item) definitions.set(definitionKey(item.name), item)\n else system.push(item)\n }\n }\n const active = new Set(self.activeTools.map(definitionKey))\n const tools = [...definitions.values()].filter((definition) =>\n definition.deferred === true || active.has(definitionKey(definition.name))\n )\n return ModelRequest.ModelRequest.make({\n modelId: self.modelId,\n system,\n messages,\n tools,\n params: ModelRequest.GenerationParams.make()\n })\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }