agency-lang 0.6.4 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (843) hide show
  1. package/dist/lib/agents/agency-agent/agent.agency +595 -43
  2. package/dist/lib/agents/agency-agent/agent.js +5134 -2060
  3. package/dist/lib/agents/agency-agent/images/images.js +36 -15
  4. package/dist/lib/agents/agency-agent/lib/attachments.agency +115 -0
  5. package/dist/lib/agents/agency-agent/lib/attachments.js +791 -0
  6. package/dist/lib/agents/agency-agent/lib/config.agency +2 -0
  7. package/dist/lib/agents/agency-agent/lib/config.js +47 -15
  8. package/dist/lib/agents/agency-agent/lib/defaultPolicy.agency +28 -1
  9. package/dist/lib/agents/agency-agent/lib/defaultPolicy.js +64 -16
  10. package/dist/lib/agents/agency-agent/lib/modelFilters.agency +29 -0
  11. package/dist/lib/agents/agency-agent/lib/modelFilters.js +353 -0
  12. package/dist/lib/agents/agency-agent/lib/models.agency +214 -30
  13. package/dist/lib/agents/agency-agent/lib/models.js +1296 -278
  14. package/dist/lib/agents/agency-agent/lib/resolution.agency +191 -0
  15. package/dist/lib/agents/agency-agent/lib/resolution.js +1538 -0
  16. package/dist/lib/agents/agency-agent/lib/search.agency +471 -0
  17. package/dist/lib/agents/agency-agent/lib/search.js +2647 -0
  18. package/dist/lib/agents/agency-agent/lib/settings.agency +147 -0
  19. package/dist/lib/agents/agency-agent/lib/settings.js +956 -0
  20. package/dist/lib/agents/agency-agent/lib/slots.agency +34 -0
  21. package/dist/lib/agents/agency-agent/lib/slots.js +602 -0
  22. package/dist/lib/agents/agency-agent/lib/utils.js +38 -21
  23. package/dist/lib/agents/agency-agent/prompts/codeSample.agency +8 -4
  24. package/dist/lib/agents/agency-agent/prompts/codeSample.js +77 -45
  25. package/dist/lib/agents/agency-agent/prompts/design.md +13 -7
  26. package/dist/lib/agents/agency-agent/shared.agency +187 -27
  27. package/dist/lib/agents/agency-agent/shared.js +1399 -148
  28. package/dist/lib/agents/agency-agent/subagents/code.agency +46 -15
  29. package/dist/lib/agents/agency-agent/subagents/code.js +88 -48
  30. package/dist/lib/agents/agency-agent/subagents/explorer.agency +4 -2
  31. package/dist/lib/agents/agency-agent/subagents/explorer.js +57 -43
  32. package/dist/lib/agents/agency-agent/subagents/oracle.agency +4 -2
  33. package/dist/lib/agents/agency-agent/subagents/oracle.js +57 -43
  34. package/dist/lib/agents/agency-agent/subagents/research.agency +9 -10
  35. package/dist/lib/agents/agency-agent/subagents/research.js +55 -39
  36. package/dist/lib/agents/agency-agent/subagents/review.js +41 -24
  37. package/dist/lib/agents/agency-agent/subagents/shell.js +446 -0
  38. package/dist/lib/agents/agency-agent/tests/agentTurn.agency +222 -1
  39. package/dist/lib/agents/agency-agent/tests/agentTurn.js +2303 -30
  40. package/dist/lib/agents/agency-agent/tests/agentTurn.test.json +17 -1
  41. package/dist/lib/agents/agency-agent/tests/attachments.agency +187 -0
  42. package/dist/lib/agents/agency-agent/tests/attachments.js +3736 -0
  43. package/dist/lib/agents/agency-agent/tests/attachments.test.json +254 -0
  44. package/dist/lib/agents/agency-agent/tests/attachmentsTurn.agency +65 -0
  45. package/dist/lib/agents/agency-agent/tests/attachmentsTurn.js +1032 -0
  46. package/dist/lib/agents/agency-agent/tests/attachmentsTurn.test.json +110 -0
  47. package/dist/lib/agents/agency-agent/tests/execPolicy.js +47 -25
  48. package/dist/lib/agents/agency-agent/tests/gitPolicy.agency +53 -0
  49. package/dist/lib/agents/agency-agent/tests/gitPolicy.js +694 -0
  50. package/dist/lib/agents/agency-agent/tests/gitPolicy.test.json +7 -0
  51. package/dist/lib/agents/agency-agent/tests/imageTool.agency +51 -0
  52. package/dist/lib/agents/agency-agent/tests/imageTool.js +1111 -0
  53. package/dist/lib/agents/agency-agent/tests/imageTool.test.json +81 -0
  54. package/dist/lib/agents/agency-agent/tests/modelFilters.agency +32 -0
  55. package/dist/lib/agents/agency-agent/tests/modelFilters.js +723 -0
  56. package/dist/lib/agents/agency-agent/tests/modelFilters.test.json +7 -0
  57. package/dist/lib/agents/agency-agent/tests/models.agency +114 -0
  58. package/dist/lib/agents/agency-agent/tests/models.js +2143 -0
  59. package/dist/lib/agents/agency-agent/tests/models.test.json +49 -0
  60. package/dist/lib/agents/agency-agent/tests/resolution.agency +184 -0
  61. package/dist/lib/agents/agency-agent/tests/resolution.js +1498 -0
  62. package/dist/lib/agents/agency-agent/tests/resolution.test.json +13 -0
  63. package/dist/lib/agents/agency-agent/tests/search.agency +101 -0
  64. package/dist/lib/agents/agency-agent/tests/search.js +2095 -0
  65. package/dist/lib/agents/agency-agent/tests/search.test.json +19 -0
  66. package/dist/lib/agents/agency-agent/tests/settings.agency +87 -0
  67. package/dist/lib/agents/agency-agent/tests/settings.js +978 -0
  68. package/dist/lib/agents/agency-agent/tests/settings.test.json +26 -0
  69. package/dist/lib/agents/agency-agent/tests/slots.agency +22 -0
  70. package/dist/lib/agents/agency-agent/tests/slots.js +648 -0
  71. package/dist/lib/agents/agency-agent/tests/slots.test.json +10 -0
  72. package/dist/lib/agents/agency-agent/tests/toolWiring.js +41 -15
  73. package/dist/lib/agents/agency-agent/tests/turnFailure.agency +35 -0
  74. package/dist/lib/agents/agency-agent/tests/turnFailure.js +694 -0
  75. package/dist/lib/agents/agency-agent/tests/turnFailure.test.json +34 -0
  76. package/dist/lib/agents/docs/cli/cli/editor-integration.md +1 -1
  77. package/dist/lib/agents/docs/cli/cli/local.md +92 -0
  78. package/dist/lib/agents/docs/cli/cli/models.md +63 -0
  79. package/dist/lib/agents/docs/cli/cli/optimize.md +33 -1
  80. package/dist/lib/agents/docs/cli/cli/run.md +0 -29
  81. package/dist/lib/agents/docs/cli/editor-integration.md +1 -1
  82. package/dist/lib/agents/docs/cli/local.md +92 -0
  83. package/dist/lib/agents/docs/cli/models.md +63 -0
  84. package/dist/lib/agents/docs/cli/optimize.md +33 -1
  85. package/dist/lib/agents/docs/cli/run.md +0 -29
  86. package/dist/lib/agents/docs/guide/agency-config-file.md +205 -3
  87. package/dist/lib/agents/docs/guide/agency-packages.md +54 -0
  88. package/dist/lib/agents/docs/guide/agency-stdlib.md +14 -0
  89. package/dist/lib/agents/docs/guide/agency-vs-typescript.md +33 -0
  90. package/dist/lib/agents/docs/guide/attachments.md +56 -0
  91. package/dist/lib/agents/docs/guide/basic-syntax.md +204 -72
  92. package/dist/lib/agents/docs/guide/blocks.md +64 -34
  93. package/dist/lib/agents/docs/guide/build-integration.md +99 -0
  94. package/dist/lib/agents/docs/{appendix/appendix → guide}/builtins.md +27 -4
  95. package/dist/lib/agents/docs/{appendix/appendix → guide}/callbacks.md +55 -33
  96. package/dist/lib/agents/docs/guide/checkpointing.md +56 -27
  97. package/dist/lib/agents/docs/guide/cli-args.md +1 -1
  98. package/dist/lib/agents/docs/guide/common-functions.md +36 -0
  99. package/dist/lib/agents/docs/guide/compiling-and-running.md +62 -0
  100. package/dist/lib/agents/docs/guide/concurrency.md +49 -92
  101. package/dist/lib/agents/docs/guide/cross-thread-context.md +5 -7
  102. package/dist/lib/agents/docs/guide/custom-providers.md +195 -0
  103. package/dist/lib/agents/docs/guide/debugging.md +67 -0
  104. package/dist/lib/agents/docs/guide/developer-tools.md +90 -0
  105. package/dist/lib/agents/docs/guide/effects-and-raises.md +73 -92
  106. package/dist/lib/agents/docs/guide/effects.md +100 -0
  107. package/dist/lib/agents/docs/guide/error-handling.md +56 -44
  108. package/dist/lib/agents/docs/guide/exercise-1.md +32 -0
  109. package/dist/lib/agents/docs/guide/functions.md +71 -10
  110. package/dist/lib/agents/docs/guide/getting-started.md +5 -12
  111. package/dist/lib/agents/docs/guide/global-var-initialization.md +70 -0
  112. package/dist/lib/agents/docs/guide/global-vs-static.md +29 -34
  113. package/dist/lib/agents/docs/guide/guards.md +57 -108
  114. package/dist/lib/agents/docs/guide/guide/agency-config-file.md +205 -3
  115. package/dist/lib/agents/docs/guide/guide/agency-packages.md +54 -0
  116. package/dist/lib/agents/docs/guide/guide/agency-stdlib.md +14 -0
  117. package/dist/lib/agents/docs/guide/guide/agency-vs-typescript.md +33 -0
  118. package/dist/lib/agents/docs/guide/guide/attachments.md +56 -0
  119. package/dist/lib/agents/docs/guide/guide/basic-syntax.md +204 -72
  120. package/dist/lib/agents/docs/guide/guide/blocks.md +64 -34
  121. package/dist/lib/agents/docs/guide/guide/build-integration.md +99 -0
  122. package/dist/lib/agents/docs/{appendix → guide/guide}/builtins.md +27 -4
  123. package/dist/lib/agents/docs/{appendix → guide/guide}/callbacks.md +55 -33
  124. package/dist/lib/agents/docs/guide/guide/checkpointing.md +56 -27
  125. package/dist/lib/agents/docs/guide/guide/cli-args.md +1 -1
  126. package/dist/lib/agents/docs/guide/guide/common-functions.md +36 -0
  127. package/dist/lib/agents/docs/guide/guide/compiling-and-running.md +62 -0
  128. package/dist/lib/agents/docs/guide/guide/concurrency.md +49 -92
  129. package/dist/lib/agents/docs/guide/guide/cross-thread-context.md +5 -7
  130. package/dist/lib/agents/docs/guide/guide/custom-providers.md +195 -0
  131. package/dist/lib/agents/docs/guide/guide/debugging.md +67 -0
  132. package/dist/lib/agents/docs/guide/guide/developer-tools.md +90 -0
  133. package/dist/lib/agents/docs/guide/guide/effects-and-raises.md +73 -92
  134. package/dist/lib/agents/docs/guide/guide/effects.md +100 -0
  135. package/dist/lib/agents/docs/guide/guide/error-handling.md +56 -44
  136. package/dist/lib/agents/docs/guide/guide/exercise-1.md +32 -0
  137. package/dist/lib/agents/docs/guide/guide/functions.md +71 -10
  138. package/dist/lib/agents/docs/guide/guide/getting-started.md +5 -12
  139. package/dist/lib/agents/docs/guide/guide/global-var-initialization.md +70 -0
  140. package/dist/lib/agents/docs/guide/guide/global-vs-static.md +29 -34
  141. package/dist/lib/agents/docs/guide/guide/guards.md +57 -108
  142. package/dist/lib/agents/docs/guide/guide/handlers.md +109 -205
  143. package/dist/lib/agents/docs/guide/guide/image-generation.md +113 -0
  144. package/dist/lib/agents/docs/guide/guide/imports-and-packages.md +35 -95
  145. package/dist/lib/agents/docs/guide/guide/interrupts-from-typescript.md +84 -0
  146. package/dist/lib/agents/docs/guide/guide/interrupts-part-2.md +54 -0
  147. package/dist/lib/agents/docs/guide/guide/interrupts.md +98 -58
  148. package/dist/lib/agents/docs/guide/guide/llm-part-2.md +111 -0
  149. package/dist/lib/agents/docs/guide/guide/llm.md +53 -124
  150. package/dist/lib/agents/docs/guide/guide/memory.md +262 -249
  151. package/dist/lib/agents/docs/guide/guide/message-threads.md +111 -0
  152. package/dist/lib/agents/docs/guide/guide/nodes.md +32 -17
  153. package/dist/lib/agents/docs/guide/guide/observability.md +11 -4
  154. package/dist/lib/agents/docs/guide/guide/partial-application.md +40 -132
  155. package/dist/lib/agents/docs/guide/guide/pattern-matching.md +216 -43
  156. package/dist/lib/agents/docs/guide/guide/policies.md +11 -4
  157. package/dist/lib/agents/docs/guide/guide/schemas.md +22 -9
  158. package/dist/lib/agents/docs/guide/guide/state-isolation.md +139 -0
  159. package/dist/lib/agents/docs/guide/guide/streaming.md +28 -0
  160. package/dist/lib/agents/docs/guide/guide/tags.md +72 -0
  161. package/dist/lib/agents/docs/guide/guide/testing.md +167 -7
  162. package/dist/lib/agents/docs/guide/guide/troubleshooting.md +2 -53
  163. package/dist/lib/agents/docs/{appendix/appendix → guide/guide}/ts-helpers.md +48 -0
  164. package/dist/lib/agents/docs/guide/guide/ts-interop.md +16 -129
  165. package/dist/lib/agents/docs/guide/guide/type-validation.md +30 -172
  166. package/dist/lib/agents/docs/guide/guide/types.md +69 -84
  167. package/dist/lib/agents/docs/guide/guide/unused.md +178 -0
  168. package/dist/lib/agents/docs/guide/guide/unused2.md +258 -0
  169. package/dist/lib/agents/docs/guide/guide/value-parameterized-types.md +186 -0
  170. package/dist/lib/agents/docs/guide/guide/vscode-extension.md +33 -0
  171. package/dist/lib/agents/docs/guide/guide/why-agency.md +323 -0
  172. package/dist/lib/agents/docs/guide/handlers.md +109 -205
  173. package/dist/lib/agents/docs/guide/image-generation.md +113 -0
  174. package/dist/lib/agents/docs/guide/imports-and-packages.md +35 -95
  175. package/dist/lib/agents/docs/guide/interrupts-from-typescript.md +84 -0
  176. package/dist/lib/agents/docs/guide/interrupts-part-2.md +54 -0
  177. package/dist/lib/agents/docs/guide/interrupts.md +98 -58
  178. package/dist/lib/agents/docs/guide/llm-part-2.md +111 -0
  179. package/dist/lib/agents/docs/guide/llm.md +53 -124
  180. package/dist/lib/agents/docs/guide/memory.md +262 -249
  181. package/dist/lib/agents/docs/guide/message-threads.md +111 -0
  182. package/dist/lib/agents/docs/guide/nodes.md +32 -17
  183. package/dist/lib/agents/docs/guide/observability.md +11 -4
  184. package/dist/lib/agents/docs/guide/partial-application.md +40 -132
  185. package/dist/lib/agents/docs/guide/pattern-matching.md +216 -43
  186. package/dist/lib/agents/docs/guide/policies.md +11 -4
  187. package/dist/lib/agents/docs/guide/schemas.md +22 -9
  188. package/dist/lib/agents/docs/guide/state-isolation.md +139 -0
  189. package/dist/lib/agents/docs/guide/streaming.md +28 -0
  190. package/dist/lib/agents/docs/guide/tags.md +72 -0
  191. package/dist/lib/agents/docs/guide/testing.md +167 -7
  192. package/dist/lib/agents/docs/guide/troubleshooting.md +2 -53
  193. package/dist/lib/agents/docs/{appendix → guide}/ts-helpers.md +48 -0
  194. package/dist/lib/agents/docs/guide/ts-interop.md +16 -129
  195. package/dist/lib/agents/docs/guide/type-validation.md +30 -172
  196. package/dist/lib/agents/docs/guide/types.md +69 -84
  197. package/dist/lib/agents/docs/guide/unused.md +178 -0
  198. package/dist/lib/agents/docs/guide/unused2.md +258 -0
  199. package/dist/lib/agents/docs/guide/value-parameterized-types.md +186 -0
  200. package/dist/lib/agents/docs/guide/vscode-extension.md +33 -0
  201. package/dist/lib/agents/docs/guide/why-agency.md +323 -0
  202. package/dist/lib/agents/eval/goalJudge.js +35 -14
  203. package/dist/lib/agents/eval/judge.js +35 -14
  204. package/dist/lib/agents/eval/judgePairwise.agency +2 -2
  205. package/dist/lib/agents/eval/judgePairwise.js +35 -14
  206. package/dist/lib/agents/optimize/gepaReflect.js +35 -14
  207. package/dist/lib/agents/optimize/mutatePrompt.agency +2 -0
  208. package/dist/lib/agents/optimize/mutatePrompt.js +38 -15
  209. package/dist/lib/agents/policy/agent.agency +2 -2
  210. package/dist/lib/agents/policy/agent.js +94 -58
  211. package/dist/lib/agents/review/agent.js +41 -19
  212. package/dist/lib/backends/agencyGenerator.d.ts +14 -2
  213. package/dist/lib/backends/agencyGenerator.js +158 -53
  214. package/dist/lib/backends/agencyGenerator.matchBlock.test.js +106 -0
  215. package/dist/lib/backends/agencyGenerator.test.js +148 -0
  216. package/dist/lib/backends/effectDeclarationFormat.test.d.ts +1 -0
  217. package/dist/lib/backends/effectDeclarationFormat.test.js +32 -0
  218. package/dist/lib/backends/llmAttachmentCodegen.test.d.ts +1 -0
  219. package/dist/lib/backends/llmAttachmentCodegen.test.js +24 -0
  220. package/dist/lib/backends/llmNamedArgsCodegen.test.d.ts +1 -0
  221. package/dist/lib/backends/llmNamedArgsCodegen.test.js +40 -0
  222. package/dist/lib/backends/providerModules.codegen.test.d.ts +1 -0
  223. package/dist/lib/backends/{anthropicApiKey.codegen.test.js → providerModules.codegen.test.js} +12 -15
  224. package/dist/lib/backends/smoltalkDefaults.codegen.test.d.ts +1 -0
  225. package/dist/lib/backends/smoltalkDefaults.codegen.test.js +65 -0
  226. package/dist/lib/backends/typescriptBuilder.d.ts +82 -0
  227. package/dist/lib/backends/typescriptBuilder.integration.test.js +94 -4
  228. package/dist/lib/backends/typescriptBuilder.js +499 -158
  229. package/dist/lib/backends/typescriptGenerator/typeToString.js +8 -2
  230. package/dist/lib/backends/typescriptGenerator/typeToZodSchema.js +25 -28
  231. package/dist/lib/backends/typescriptGenerator/typeToZodSchema.test.js +73 -0
  232. package/dist/lib/cli/commands.d.ts +28 -0
  233. package/dist/lib/cli/commands.js +53 -4
  234. package/dist/lib/cli/doc.js +19 -0
  235. package/dist/lib/cli/doc.test.js +27 -1
  236. package/dist/lib/cli/eval/run.d.ts +18 -1
  237. package/dist/lib/cli/eval/run.js +55 -24
  238. package/dist/lib/cli/eval/run.workdir.test.d.ts +1 -0
  239. package/dist/lib/cli/eval/run.workdir.test.js +111 -0
  240. package/dist/lib/cli/fetchMockResolve.d.ts +6 -0
  241. package/dist/lib/cli/fetchMockResolve.js +51 -0
  242. package/dist/lib/cli/fetchMockResolve.test.d.ts +1 -0
  243. package/dist/lib/cli/fetchMockResolve.test.js +36 -0
  244. package/dist/lib/cli/hostedModels.d.ts +10 -0
  245. package/dist/lib/cli/hostedModels.js +61 -0
  246. package/dist/lib/cli/hostedModels.test.d.ts +1 -0
  247. package/dist/lib/cli/hostedModels.test.js +105 -0
  248. package/dist/lib/cli/local.d.ts +19 -0
  249. package/dist/lib/cli/local.js +109 -0
  250. package/dist/lib/cli/local.test.d.ts +1 -0
  251. package/dist/lib/cli/local.test.js +50 -0
  252. package/dist/lib/cli/pack.test.js +18 -0
  253. package/dist/lib/cli/precompile.d.ts +22 -0
  254. package/dist/lib/cli/precompile.js +125 -0
  255. package/dist/lib/cli/precompile.test.d.ts +1 -0
  256. package/dist/lib/cli/precompile.test.js +172 -0
  257. package/dist/lib/cli/test.js +55 -5
  258. package/dist/lib/cli/util.d.ts +8 -2
  259. package/dist/lib/cli/util.js +23 -6
  260. package/dist/lib/compiler/compile.js +5 -1
  261. package/dist/lib/compiler/compile.test.js +54 -1
  262. package/dist/lib/compiler/compileClosure.js +8 -9
  263. package/dist/lib/compiler/typecheck.js +10 -3
  264. package/dist/lib/config.d.ts +114 -6
  265. package/dist/lib/config.js +39 -3
  266. package/dist/lib/config.modelAliases.test.d.ts +1 -0
  267. package/dist/lib/config.modelAliases.test.js +11 -0
  268. package/dist/lib/config.providerModules.test.d.ts +1 -0
  269. package/dist/lib/config.providerModules.test.js +16 -0
  270. package/dist/lib/config.test.js +12 -0
  271. package/dist/lib/constants.d.ts +12 -0
  272. package/dist/lib/constants.js +12 -0
  273. package/dist/lib/effectDeclCollection.test.d.ts +1 -0
  274. package/dist/lib/effectDeclCollection.test.js +56 -0
  275. package/dist/lib/eval/runArtifacts.js +4 -10
  276. package/dist/lib/eval/runArtifacts.test.js +10 -22
  277. package/dist/lib/eval/runEvalInput.d.ts +11 -3
  278. package/dist/lib/eval/runEvalInput.js +16 -1
  279. package/dist/lib/eval/runTypes.d.ts +0 -4
  280. package/dist/lib/eval/runWorkdir.d.ts +25 -0
  281. package/dist/lib/eval/runWorkdir.js +46 -0
  282. package/dist/lib/eval/runWorkdir.test.d.ts +1 -0
  283. package/dist/lib/eval/runWorkdir.test.js +42 -0
  284. package/dist/lib/importPaths.d.ts +31 -1
  285. package/dist/lib/importPaths.js +88 -32
  286. package/dist/lib/importPaths.test.js +47 -4
  287. package/dist/lib/ir/builders.d.ts +6 -1
  288. package/dist/lib/ir/builders.js +3 -0
  289. package/dist/lib/ir/prettyPrint.js +31 -6
  290. package/dist/lib/ir/prettyPrint.test.js +70 -7
  291. package/dist/lib/ir/tsIR.d.ts +12 -2
  292. package/dist/lib/logsViewer/render.js +2 -0
  293. package/dist/lib/logsViewer/summary.js +13 -0
  294. package/dist/lib/logsViewer/summary.test.js +6 -0
  295. package/dist/lib/logsViewer/tree.js +38 -0
  296. package/dist/lib/logsViewer/tree.test.js +19 -0
  297. package/dist/lib/lowering/loweringError.d.ts +10 -0
  298. package/dist/lib/lowering/loweringError.js +13 -0
  299. package/dist/lib/lowering/patternLowering.ifExpr.test.d.ts +1 -0
  300. package/dist/lib/lowering/patternLowering.ifExpr.test.js +59 -0
  301. package/dist/lib/lowering/patternLowering.js +504 -30
  302. package/dist/lib/lowering/patternLowering.matchExpr.test.d.ts +1 -0
  303. package/dist/lib/lowering/patternLowering.matchExpr.test.js +572 -0
  304. package/dist/lib/lowering/patternLowering.test.js +102 -10
  305. package/dist/lib/lsp/codeAction.js +3 -3
  306. package/dist/lib/lsp/codeAction.test.js +13 -10
  307. package/dist/lib/lsp/completion.js +2 -2
  308. package/dist/lib/lsp/diagnostics.js +11 -4
  309. package/dist/lib/lsp/diagnostics.test.js +30 -0
  310. package/dist/lib/matchVal.d.ts +18 -0
  311. package/dist/lib/matchVal.js +26 -0
  312. package/dist/lib/optimize/artifacts.js +8 -35
  313. package/dist/lib/optimize/artifacts.test.js +12 -5
  314. package/dist/lib/optimize/baseOptimizer.d.ts +15 -9
  315. package/dist/lib/optimize/baseOptimizer.js +33 -27
  316. package/dist/lib/optimize/baseOptimizer.test.js +25 -15
  317. package/dist/lib/optimize/baseOptimizer.workdir.test.js +29 -24
  318. package/dist/lib/optimize/constraint.d.ts +45 -0
  319. package/dist/lib/optimize/constraint.js +78 -0
  320. package/dist/lib/optimize/constraint.test.d.ts +1 -0
  321. package/dist/lib/optimize/constraint.test.js +133 -0
  322. package/dist/lib/optimize/grading/scorecard.d.ts +6 -0
  323. package/dist/lib/optimize/grading/scorecard.js +8 -0
  324. package/dist/lib/optimize/mutator.js +2 -0
  325. package/dist/lib/optimize/mutator.test.js +37 -0
  326. package/dist/lib/optimize/optimizers/example.d.ts +4 -1
  327. package/dist/lib/optimize/optimizers/example.js +11 -12
  328. package/dist/lib/optimize/optimizers/example.test.js +2 -2
  329. package/dist/lib/optimize/optimizers/gepa.d.ts +1 -1
  330. package/dist/lib/optimize/optimizers/gepa.js +11 -10
  331. package/dist/lib/optimize/optimizers/gepa.test.js +5 -5
  332. package/dist/lib/optimize/optimizers/greedyReflective.d.ts +1 -1
  333. package/dist/lib/optimize/optimizers/greedyReflective.js +8 -7
  334. package/dist/lib/optimize/optimizers/greedyReflective.test.js +100 -2
  335. package/dist/lib/optimize/reporter.test.js +2 -0
  336. package/dist/lib/optimize/sourceMutator.d.ts +8 -4
  337. package/dist/lib/optimize/sourceMutator.js +63 -13
  338. package/dist/lib/optimize/sourceMutator.test.js +117 -0
  339. package/dist/lib/optimize/targets.d.ts +21 -3
  340. package/dist/lib/optimize/targets.js +119 -10
  341. package/dist/lib/optimize/targets.test.js +79 -5
  342. package/dist/lib/optimize/types.d.ts +8 -1
  343. package/dist/lib/optimize/workspace.d.ts +8 -30
  344. package/dist/lib/optimize/workspace.js +5 -78
  345. package/dist/lib/optimize/workspace.test.js +10 -70
  346. package/dist/lib/parseCache.d.ts +10 -0
  347. package/dist/lib/parseCache.js +58 -0
  348. package/dist/lib/parseCache.test.d.ts +1 -0
  349. package/dist/lib/parseCache.test.js +113 -0
  350. package/dist/lib/parser.js +27 -2
  351. package/dist/lib/parsers/dataStructures.test.js +86 -0
  352. package/dist/lib/parsers/debugMessagesLeak.test.d.ts +1 -0
  353. package/dist/lib/parsers/debugMessagesLeak.test.js +31 -0
  354. package/dist/lib/parsers/effectDeclaration.test.d.ts +1 -0
  355. package/dist/lib/parsers/effectDeclaration.test.js +107 -0
  356. package/dist/lib/parsers/function.test.js +39 -2
  357. package/dist/lib/parsers/ifExpression.test.d.ts +1 -0
  358. package/dist/lib/parsers/ifExpression.test.js +45 -0
  359. package/dist/lib/parsers/importStatement.test.js +49 -0
  360. package/dist/lib/parsers/literals.test.js +52 -0
  361. package/dist/lib/parsers/matchBlock.test.js +298 -59
  362. package/dist/lib/parsers/parsers.d.ts +21 -2
  363. package/dist/lib/parsers/parsers.js +232 -100
  364. package/dist/lib/parsers/pattern.test.js +10 -10
  365. package/dist/lib/parsers/typeHints.test.js +70 -0
  366. package/dist/lib/preprocessors/importResolver.d.ts +3 -1
  367. package/dist/lib/preprocessors/importResolver.js +37 -7
  368. package/dist/lib/preprocessors/importResolver.test.js +82 -0
  369. package/dist/lib/preprocessors/injectSchemaArgs.js +1 -2
  370. package/dist/lib/preprocessors/liftCallbacks.js +1 -1
  371. package/dist/lib/preprocessors/parallelDesugar.js +3 -2
  372. package/dist/lib/preprocessors/parallelDesugar.test.js +3 -2
  373. package/dist/lib/preprocessors/prunePreludeShadows.d.ts +22 -0
  374. package/dist/lib/preprocessors/prunePreludeShadows.js +55 -0
  375. package/dist/lib/preprocessors/prunePreludeShadows.test.d.ts +1 -0
  376. package/dist/lib/preprocessors/prunePreludeShadows.test.js +112 -0
  377. package/dist/lib/preprocessors/typescriptPreprocessor.core.test.js +25 -0
  378. package/dist/lib/preprocessors/typescriptPreprocessor.js +7 -5
  379. package/dist/lib/runtime/__tests__/testHelpers.js +0 -1
  380. package/dist/lib/runtime/agency.d.ts +3 -1
  381. package/dist/lib/runtime/agency.js +6 -7
  382. package/dist/lib/runtime/agencyFunction.js +13 -4
  383. package/dist/lib/runtime/agencyFunction.test.js +52 -0
  384. package/dist/lib/runtime/agencyInterrupt.test.js +91 -6
  385. package/dist/lib/runtime/agencyLlm.d.ts +14 -3
  386. package/dist/lib/runtime/agencyLlm.js +10 -0
  387. package/dist/lib/runtime/agencyLlm.test.js +17 -0
  388. package/dist/lib/runtime/callDepth.d.ts +36 -0
  389. package/dist/lib/runtime/callDepth.js +76 -0
  390. package/dist/lib/runtime/callDepth.test.d.ts +1 -0
  391. package/dist/lib/runtime/callDepth.test.js +67 -0
  392. package/dist/lib/runtime/callbackForwarding.d.ts +47 -0
  393. package/dist/lib/runtime/callbackForwarding.js +76 -0
  394. package/dist/lib/runtime/callbackForwarding.test.d.ts +1 -0
  395. package/dist/lib/runtime/callbackForwarding.test.js +72 -0
  396. package/dist/lib/runtime/configOverrides.d.ts +17 -5
  397. package/dist/lib/runtime/configOverrides.js +28 -6
  398. package/dist/lib/runtime/configOverrides.test.js +33 -0
  399. package/dist/lib/runtime/cost.d.ts +10 -0
  400. package/dist/lib/runtime/cost.js +17 -0
  401. package/dist/lib/runtime/costTelemetry.d.ts +24 -0
  402. package/dist/lib/runtime/costTelemetry.js +39 -0
  403. package/dist/lib/runtime/costTelemetry.test.d.ts +1 -0
  404. package/dist/lib/runtime/costTelemetry.test.js +92 -0
  405. package/dist/lib/runtime/deterministicClient.d.ts +9 -2
  406. package/dist/lib/runtime/deterministicClient.js +21 -1
  407. package/dist/lib/runtime/deterministicClient.test.js +29 -0
  408. package/dist/lib/runtime/eq.d.ts +12 -0
  409. package/dist/lib/runtime/eq.js +14 -0
  410. package/dist/lib/runtime/eq.test.d.ts +1 -0
  411. package/dist/lib/runtime/eq.test.js +32 -0
  412. package/dist/lib/runtime/errors.d.ts +20 -0
  413. package/dist/lib/runtime/errors.js +23 -0
  414. package/dist/lib/runtime/errors.test.js +18 -0
  415. package/dist/lib/runtime/fetchMock.d.ts +12 -0
  416. package/dist/lib/runtime/fetchMock.js +167 -0
  417. package/dist/lib/runtime/fetchMock.test.d.ts +1 -0
  418. package/dist/lib/runtime/fetchMock.test.js +145 -0
  419. package/dist/lib/runtime/hooks.d.ts +21 -3
  420. package/dist/lib/runtime/hooks.js +19 -0
  421. package/dist/lib/runtime/hooks.test.js +39 -2
  422. package/dist/lib/runtime/image-client.test.d.ts +1 -0
  423. package/dist/lib/runtime/image-client.test.js +22 -0
  424. package/dist/lib/runtime/index.d.ts +4 -1
  425. package/dist/lib/runtime/index.js +3 -1
  426. package/dist/lib/runtime/interrupts.d.ts +50 -0
  427. package/dist/lib/runtime/interrupts.js +206 -126
  428. package/dist/lib/runtime/interrupts.test.js +110 -1
  429. package/dist/lib/runtime/ipc.configOverrides.test.js +35 -17
  430. package/dist/lib/runtime/ipc.d.ts +238 -21
  431. package/dist/lib/runtime/ipc.js +622 -95
  432. package/dist/lib/runtime/ipc.test.js +453 -2
  433. package/dist/lib/runtime/llmClient.d.ts +71 -3
  434. package/dist/lib/runtime/llmClient.hostedTools.test.d.ts +1 -0
  435. package/dist/lib/runtime/llmClient.hostedTools.test.js +45 -0
  436. package/dist/lib/runtime/llmClient.js +71 -11
  437. package/dist/lib/runtime/llmClient.test.d.ts +1 -0
  438. package/dist/lib/runtime/llmClient.test.js +80 -0
  439. package/dist/lib/runtime/llmRetry.d.ts +65 -0
  440. package/dist/lib/runtime/llmRetry.js +158 -0
  441. package/dist/lib/runtime/llmRetry.test.d.ts +1 -0
  442. package/dist/lib/runtime/llmRetry.test.js +94 -0
  443. package/dist/lib/runtime/memory/manager.d.ts +25 -0
  444. package/dist/lib/runtime/memory/manager.js +115 -14
  445. package/dist/lib/runtime/memory/manager.test.js +60 -21
  446. package/dist/lib/runtime/memory/types.d.ts +7 -0
  447. package/dist/lib/runtime/node.js +10 -1
  448. package/dist/lib/runtime/prompt.attachments.test.d.ts +1 -0
  449. package/dist/lib/runtime/prompt.attachments.test.js +41 -0
  450. package/dist/lib/runtime/prompt.d.ts +65 -2
  451. package/dist/lib/runtime/prompt.js +276 -31
  452. package/dist/lib/runtime/prompt.test.js +170 -1
  453. package/dist/lib/runtime/promptRunner.d.ts +1 -1
  454. package/dist/lib/runtime/promptRunner.js +1 -1
  455. package/dist/lib/runtime/providerModules.d.ts +27 -0
  456. package/dist/lib/runtime/providerModules.js +87 -0
  457. package/dist/lib/runtime/providerModules.test.d.ts +1 -0
  458. package/dist/lib/runtime/providerModules.test.js +90 -0
  459. package/dist/lib/runtime/redactForStatelog.d.ts +20 -0
  460. package/dist/lib/runtime/redactForStatelog.js +32 -0
  461. package/dist/lib/runtime/redactForStatelog.test.d.ts +1 -0
  462. package/dist/lib/runtime/redactForStatelog.test.js +84 -0
  463. package/dist/lib/runtime/replyAttachments.d.ts +46 -0
  464. package/dist/lib/runtime/replyAttachments.js +143 -0
  465. package/dist/lib/runtime/replyAttachments.test.d.ts +1 -0
  466. package/dist/lib/runtime/replyAttachments.test.js +205 -0
  467. package/dist/lib/runtime/result.js +8 -0
  468. package/dist/lib/runtime/revivers/index.js +2 -0
  469. package/dist/lib/runtime/revivers/taggedReviver.d.ts +8 -0
  470. package/dist/lib/runtime/revivers/taggedReviver.js +30 -0
  471. package/dist/lib/runtime/revivers/taggedReviver.test.d.ts +1 -0
  472. package/dist/lib/runtime/revivers/taggedReviver.test.js +42 -0
  473. package/dist/lib/runtime/runBatch.js +33 -16
  474. package/dist/lib/runtime/runBatch.test.js +62 -0
  475. package/dist/lib/runtime/runner.d.ts +26 -4
  476. package/dist/lib/runtime/runner.js +125 -49
  477. package/dist/lib/runtime/runner.test.js +217 -1
  478. package/dist/lib/runtime/simpleOpenAIClient.js +1 -1
  479. package/dist/lib/runtime/state/context.d.ts +22 -12
  480. package/dist/lib/runtime/state/context.js +43 -14
  481. package/dist/lib/runtime/state/context.providerModules.test.d.ts +1 -0
  482. package/dist/lib/runtime/state/context.providerModules.test.js +38 -0
  483. package/dist/lib/runtime/state/globalStore.d.ts +42 -0
  484. package/dist/lib/runtime/state/globalStore.js +187 -2
  485. package/dist/lib/runtime/state/globalStore.tags.test.d.ts +1 -0
  486. package/dist/lib/runtime/state/globalStore.tags.test.js +211 -0
  487. package/dist/lib/runtime/state/stateStack.d.ts +34 -0
  488. package/dist/lib/runtime/state/stateStack.js +46 -0
  489. package/dist/lib/runtime/state/tagSymbol.d.ts +6 -0
  490. package/dist/lib/runtime/state/tagSymbol.js +49 -0
  491. package/dist/lib/runtime/state/tagSymbol.test.d.ts +1 -0
  492. package/dist/lib/runtime/state/tagSymbol.test.js +60 -0
  493. package/dist/lib/runtime/streaming.d.ts +7 -2
  494. package/dist/lib/runtime/streaming.js +31 -8
  495. package/dist/lib/runtime/subprocess-bootstrap.js +90 -35
  496. package/dist/lib/runtime/subprocessRunInfo.d.ts +46 -0
  497. package/dist/lib/runtime/subprocessRunInfo.js +53 -0
  498. package/dist/lib/runtime/subprocessRunInfo.test.d.ts +1 -0
  499. package/dist/lib/runtime/subprocessRunInfo.test.js +32 -0
  500. package/dist/lib/runtime/topsortCycleErrors.test.js +69 -0
  501. package/dist/lib/runtime/utils.d.ts +16 -2
  502. package/dist/lib/runtime/utils.js +13 -4
  503. package/dist/lib/runtime/utils.test.js +27 -0
  504. package/dist/lib/statelogClient.d.ts +40 -1
  505. package/dist/lib/statelogClient.js +98 -1
  506. package/dist/lib/statelogClient.redaction.test.d.ts +1 -0
  507. package/dist/lib/statelogClient.redaction.test.js +131 -0
  508. package/dist/lib/statelogClient.test.js +13 -0
  509. package/dist/lib/stdlib/abortable.d.ts +6 -0
  510. package/dist/lib/stdlib/abortable.js +26 -1
  511. package/dist/lib/stdlib/agency.d.ts +7 -2
  512. package/dist/lib/stdlib/agency.js +17 -13
  513. package/dist/lib/stdlib/agencyEval.js +7 -1
  514. package/dist/lib/stdlib/args.d.ts +4 -1
  515. package/dist/lib/stdlib/args.js +68 -0
  516. package/dist/lib/stdlib/builtins.d.ts +2 -1
  517. package/dist/lib/stdlib/builtins.js +22 -13
  518. package/dist/lib/stdlib/cli.d.ts +65 -0
  519. package/dist/lib/stdlib/cli.js +217 -39
  520. package/dist/lib/stdlib/git.d.ts +29 -0
  521. package/dist/lib/stdlib/git.js +80 -0
  522. package/dist/lib/stdlib/gitCore.d.ts +132 -0
  523. package/dist/lib/stdlib/gitCore.js +231 -0
  524. package/dist/lib/stdlib/gitParse.d.ts +17 -0
  525. package/dist/lib/stdlib/gitParse.js +259 -0
  526. package/dist/lib/stdlib/http.d.ts +5 -4
  527. package/dist/lib/stdlib/http.js +42 -1
  528. package/dist/lib/stdlib/image.d.ts +7 -0
  529. package/dist/lib/stdlib/image.js +80 -0
  530. package/dist/lib/stdlib/layout/ansi.js +35 -3
  531. package/dist/lib/stdlib/layout/axis.js +14 -5
  532. package/dist/lib/stdlib/layout/barchart.js +5 -5
  533. package/dist/lib/stdlib/layout/block.js +2 -2
  534. package/dist/lib/stdlib/layout/border.js +2 -2
  535. package/dist/lib/stdlib/layout/box.js +12 -4
  536. package/dist/lib/stdlib/layout/nodes.d.ts +0 -1
  537. package/dist/lib/stdlib/layout/nodes.js +40 -17
  538. package/dist/lib/stdlib/layout/render.js +7 -3
  539. package/dist/lib/stdlib/layout/sizing.d.ts +1 -0
  540. package/dist/lib/stdlib/layout/sizing.js +1 -1
  541. package/dist/lib/stdlib/layout/table.js +11 -11
  542. package/dist/lib/stdlib/layout.js +1 -1
  543. package/dist/lib/stdlib/llm.d.ts +54 -1
  544. package/dist/lib/stdlib/llm.js +104 -0
  545. package/dist/lib/stdlib/localModels.d.ts +209 -0
  546. package/dist/lib/stdlib/localModels.js +904 -0
  547. package/dist/lib/stdlib/mediaPathScan.d.ts +31 -0
  548. package/dist/lib/stdlib/mediaPathScan.js +79 -0
  549. package/dist/lib/stdlib/providers/llama-cpp.mjs +79 -0
  550. package/dist/lib/stdlib/providers/llamaModelConfig.d.ts +7 -0
  551. package/dist/lib/stdlib/providers/llamaModelConfig.js +7 -0
  552. package/dist/lib/stdlib/search.d.ts +7 -0
  553. package/dist/lib/stdlib/search.js +40 -0
  554. package/dist/lib/stdlib/shell.d.ts +1 -1
  555. package/dist/lib/stdlib/shell.js +4 -2
  556. package/dist/lib/stdlib/tag.d.ts +17 -0
  557. package/dist/lib/stdlib/tag.js +49 -0
  558. package/dist/lib/stdlib/thread.d.ts +38 -3
  559. package/dist/lib/stdlib/thread.js +71 -2
  560. package/dist/lib/stdlib/threads.d.ts +12 -0
  561. package/dist/lib/stdlib/threads.js +48 -17
  562. package/dist/lib/stdlib/version.d.ts +1 -1
  563. package/dist/lib/stdlib/version.js +1 -1
  564. package/dist/lib/symbolTable.d.ts +10 -1
  565. package/dist/lib/symbolTable.js +27 -7
  566. package/dist/lib/templates/backends/agency/template.d.ts +1 -1
  567. package/dist/lib/templates/backends/agency/template.js +1 -1
  568. package/dist/lib/templates/backends/typescriptGenerator/imports.d.ts +1 -1
  569. package/dist/lib/templates/backends/typescriptGenerator/imports.js +14 -2
  570. package/dist/lib/templates/backends/typescriptGenerator/runnerIfElse.d.ts +2 -1
  571. package/dist/lib/templates/backends/typescriptGenerator/runnerIfElse.js +1 -1
  572. package/dist/lib/typeChecker/assignability.d.ts +8 -0
  573. package/dist/lib/typeChecker/assignability.js +26 -4
  574. package/dist/lib/typeChecker/assignability.test.js +59 -1
  575. package/dist/lib/typeChecker/attachments.test.d.ts +1 -0
  576. package/dist/lib/typeChecker/attachments.test.js +45 -0
  577. package/dist/lib/typeChecker/builtinNamedArgs.test.js +30 -0
  578. package/dist/lib/typeChecker/builtins.js +134 -40
  579. package/dist/lib/typeChecker/checker.d.ts +25 -0
  580. package/dist/lib/typeChecker/checker.js +41 -4
  581. package/dist/lib/typeChecker/definiteReturns.d.ts +16 -0
  582. package/dist/lib/typeChecker/definiteReturns.js +52 -0
  583. package/dist/lib/typeChecker/definiteReturns.test.d.ts +1 -0
  584. package/dist/lib/typeChecker/definiteReturns.test.js +203 -0
  585. package/dist/lib/typeChecker/effectPayloadCheck.d.ts +17 -0
  586. package/dist/lib/typeChecker/effectPayloadCheck.js +181 -0
  587. package/dist/lib/typeChecker/effectPayloadCheck.test.d.ts +1 -0
  588. package/dist/lib/typeChecker/effectPayloadCheck.test.js +192 -0
  589. package/dist/lib/typeChecker/flow.d.ts +131 -0
  590. package/dist/lib/typeChecker/flow.js +248 -0
  591. package/dist/lib/typeChecker/flow.test.d.ts +1 -0
  592. package/dist/lib/typeChecker/flow.test.js +467 -0
  593. package/dist/lib/typeChecker/flowAssignments.test.d.ts +1 -0
  594. package/dist/lib/typeChecker/flowAssignments.test.js +84 -0
  595. package/dist/lib/typeChecker/flowBuilder.d.ts +32 -0
  596. package/dist/lib/typeChecker/flowBuilder.js +337 -0
  597. package/dist/lib/typeChecker/flowBuilder.test.d.ts +1 -0
  598. package/dist/lib/typeChecker/flowBuilder.test.js +215 -0
  599. package/dist/lib/typeChecker/flowNarrowing.test.d.ts +1 -0
  600. package/dist/lib/typeChecker/flowNarrowing.test.js +96 -0
  601. package/dist/lib/typeChecker/handlerBodyInterrupts.test.js +1 -1
  602. package/dist/lib/typeChecker/handlerParamTyping.d.ts +31 -0
  603. package/dist/lib/typeChecker/handlerParamTyping.js +108 -0
  604. package/dist/lib/typeChecker/handlerParamTyping.test.d.ts +1 -0
  605. package/dist/lib/typeChecker/handlerParamTyping.test.js +379 -0
  606. package/dist/lib/typeChecker/ifExpression.test.d.ts +1 -0
  607. package/dist/lib/typeChecker/ifExpression.test.js +49 -0
  608. package/dist/lib/typeChecker/index.js +43 -3
  609. package/dist/lib/typeChecker/inference.d.ts +6 -0
  610. package/dist/lib/typeChecker/inference.js +1 -1
  611. package/dist/lib/typeChecker/interruptAnalysis.d.ts +9 -0
  612. package/dist/lib/typeChecker/interruptAnalysis.js +21 -13
  613. package/dist/lib/typeChecker/literalType.d.ts +9 -0
  614. package/dist/lib/typeChecker/literalType.js +18 -0
  615. package/dist/lib/typeChecker/matchArmNarrowing.test.d.ts +1 -0
  616. package/dist/lib/typeChecker/matchArmNarrowing.test.js +172 -0
  617. package/dist/lib/typeChecker/matchExhaustiveness.d.ts +9 -0
  618. package/dist/lib/typeChecker/matchExhaustiveness.js +238 -0
  619. package/dist/lib/typeChecker/matchExhaustiveness.test.d.ts +1 -0
  620. package/dist/lib/typeChecker/matchExhaustiveness.test.js +404 -0
  621. package/dist/lib/typeChecker/matchExprTypes.d.ts +37 -0
  622. package/dist/lib/typeChecker/matchExprTypes.js +143 -0
  623. package/dist/lib/typeChecker/matchExpression.test.d.ts +1 -0
  624. package/dist/lib/typeChecker/matchExpression.test.js +240 -0
  625. package/dist/lib/typeChecker/memberPathNarrowing.test.d.ts +1 -0
  626. package/dist/lib/typeChecker/memberPathNarrowing.test.js +419 -0
  627. package/dist/lib/typeChecker/narrowing.d.ts +113 -0
  628. package/dist/lib/typeChecker/narrowing.js +396 -0
  629. package/dist/lib/typeChecker/narrowing.test.d.ts +1 -0
  630. package/dist/lib/typeChecker/narrowing.test.js +930 -0
  631. package/dist/lib/typeChecker/neverType.test.d.ts +1 -0
  632. package/dist/lib/typeChecker/neverType.test.js +19 -0
  633. package/dist/lib/typeChecker/nullNarrowing.test.d.ts +1 -0
  634. package/dist/lib/typeChecker/nullNarrowing.test.js +246 -0
  635. package/dist/lib/typeChecker/nullish.test.d.ts +1 -0
  636. package/dist/lib/typeChecker/nullish.test.js +16 -0
  637. package/dist/lib/typeChecker/pathSegments.d.ts +56 -0
  638. package/dist/lib/typeChecker/pathSegments.js +73 -0
  639. package/dist/lib/typeChecker/primitiveMembers.d.ts +2 -2
  640. package/dist/lib/typeChecker/primitiveMembers.js +5 -5
  641. package/dist/lib/typeChecker/primitives.d.ts +2 -1
  642. package/dist/lib/typeChecker/primitives.js +2 -1
  643. package/dist/lib/typeChecker/recordLike.d.ts +18 -0
  644. package/dist/lib/typeChecker/recordLike.js +27 -0
  645. package/dist/lib/typeChecker/resolveCall.js +4 -0
  646. package/dist/lib/typeChecker/resultUnion.d.ts +8 -0
  647. package/dist/lib/typeChecker/resultUnion.js +43 -0
  648. package/dist/lib/typeChecker/scope.d.ts +9 -1
  649. package/dist/lib/typeChecker/scope.js +25 -4
  650. package/dist/lib/typeChecker/scope.test.js +15 -0
  651. package/dist/lib/typeChecker/scopeVisibility.test.d.ts +1 -0
  652. package/dist/lib/typeChecker/scopeVisibility.test.js +138 -0
  653. package/dist/lib/typeChecker/scopes.d.ts +7 -0
  654. package/dist/lib/typeChecker/scopes.js +164 -113
  655. package/dist/lib/typeChecker/strictMemberAccess.test.d.ts +1 -0
  656. package/dist/lib/typeChecker/strictMemberAccess.test.js +221 -0
  657. package/dist/lib/typeChecker/synthesizer.js +257 -47
  658. package/dist/lib/typeChecker/typeCases.d.ts +28 -0
  659. package/dist/lib/typeChecker/typeCases.js +122 -0
  660. package/dist/lib/typeChecker/typeCases.test.d.ts +1 -0
  661. package/dist/lib/typeChecker/typeCases.test.js +150 -0
  662. package/dist/lib/typeChecker/types.d.ts +26 -0
  663. package/dist/lib/typeChecker/utils.d.ts +19 -0
  664. package/dist/lib/typeChecker/utils.js +50 -10
  665. package/dist/lib/typeChecker.test.js +351 -34
  666. package/dist/lib/types/dataStructures.d.ts +18 -1
  667. package/dist/lib/types/effectDeclaration.d.ts +11 -0
  668. package/dist/lib/types/effectDeclaration.js +1 -0
  669. package/dist/lib/types/function.d.ts +1 -1
  670. package/dist/lib/types/function.js +2 -0
  671. package/dist/lib/types/function.test.d.ts +1 -0
  672. package/dist/lib/types/function.test.js +11 -0
  673. package/dist/lib/types/ifElse.d.ts +4 -0
  674. package/dist/lib/types/importStatement.d.ts +4 -0
  675. package/dist/lib/types/matchBlock.d.ts +15 -3
  676. package/dist/lib/types/matchYield.d.ts +16 -0
  677. package/dist/lib/types/matchYield.js +1 -0
  678. package/dist/lib/types.d.ts +54 -3
  679. package/dist/lib/types.js +37 -0
  680. package/dist/lib/utils/mapBodies.js +1 -1
  681. package/dist/lib/utils/node.d.ts +30 -0
  682. package/dist/lib/utils/node.js +160 -3
  683. package/dist/lib/utils/projectTree.d.ts +13 -0
  684. package/dist/lib/utils/projectTree.js +42 -0
  685. package/dist/lib/utils/projectTree.test.d.ts +1 -0
  686. package/dist/lib/utils/projectTree.test.js +49 -0
  687. package/dist/lib/utils/termcolors.d.ts +1 -1
  688. package/dist/lib/utils/termcolors.js +1 -1
  689. package/dist/scripts/agency.js +27 -0
  690. package/dist/scripts/genModelHashes.d.ts +10 -0
  691. package/dist/scripts/genModelHashes.js +88 -0
  692. package/package.json +4 -2
  693. package/stdlib/agency/eval.agency +31 -59
  694. package/stdlib/agency/eval.js +56 -84
  695. package/stdlib/agency/local.agency +189 -0
  696. package/stdlib/agency/local.js +1685 -0
  697. package/stdlib/agency.agency +169 -98
  698. package/stdlib/agency.js +278 -286
  699. package/stdlib/agent.agency +69 -71
  700. package/stdlib/agent.js +352 -51
  701. package/stdlib/args.agency +30 -53
  702. package/stdlib/args.js +44 -20
  703. package/stdlib/array.agency +21 -221
  704. package/stdlib/array.js +116 -416
  705. package/stdlib/{keyring.agency → auth/keyring.agency} +17 -17
  706. package/stdlib/auth/keyring.js +810 -0
  707. package/stdlib/{oauth.agency → auth/oauth.agency} +24 -27
  708. package/stdlib/auth/oauth.js +873 -0
  709. package/stdlib/browser.js +13 -3
  710. package/stdlib/calendar.agency +29 -88
  711. package/stdlib/calendar.js +40 -25
  712. package/stdlib/capabilities.agency +7 -3
  713. package/stdlib/capabilities.js +41 -18
  714. package/stdlib/chart.js +21 -10
  715. package/stdlib/cli.js +139 -6
  716. package/stdlib/clipboard.agency +19 -2
  717. package/stdlib/clipboard.js +40 -19
  718. package/stdlib/concurrency.agency +34 -22
  719. package/stdlib/concurrency.js +45 -38
  720. package/stdlib/data/finance/dbnomics.agency +115 -0
  721. package/stdlib/data/finance/dbnomics.js +934 -0
  722. package/stdlib/data/finance/edgar.agency +172 -0
  723. package/stdlib/data/finance/edgar.js +1598 -0
  724. package/stdlib/data/finance/fred.agency +215 -0
  725. package/stdlib/data/finance/fred.js +2028 -0
  726. package/stdlib/data/finance/gdelt.agency +98 -0
  727. package/stdlib/data/finance/gdelt.js +873 -0
  728. package/stdlib/data/people/littlesis.agency +322 -0
  729. package/stdlib/data/people/littlesis.js +3221 -0
  730. package/stdlib/data/tech/hackernews.agency +344 -0
  731. package/stdlib/data/tech/hackernews.js +3814 -0
  732. package/stdlib/data/tech/yc.agency +253 -0
  733. package/stdlib/data/tech/yc.js +2913 -0
  734. package/stdlib/date.agency +34 -81
  735. package/stdlib/date.js +53 -39
  736. package/stdlib/email.js +13 -3
  737. package/stdlib/fs.agency +44 -16
  738. package/stdlib/fs.js +50 -37
  739. package/stdlib/git.agency +327 -0
  740. package/stdlib/git.js +3724 -0
  741. package/stdlib/http.agency +39 -14
  742. package/stdlib/http.js +39 -27
  743. package/stdlib/image.agency +44 -0
  744. package/stdlib/image.js +404 -0
  745. package/stdlib/imessage.js +13 -3
  746. package/stdlib/index.agency +318 -116
  747. package/stdlib/index.js +1762 -517
  748. package/stdlib/keyring.js +13 -3
  749. package/stdlib/layout.js +23 -12
  750. package/stdlib/llm.agency +115 -16
  751. package/stdlib/llm.js +726 -36
  752. package/stdlib/markdown.agency +38 -55
  753. package/stdlib/markdown.js +58 -66
  754. package/stdlib/math.agency +16 -0
  755. package/stdlib/math.js +175 -20
  756. package/stdlib/memory.agency +82 -90
  757. package/stdlib/memory.js +67 -114
  758. package/stdlib/{email.agency → messaging/email.agency} +11 -15
  759. package/stdlib/messaging/email.js +1112 -0
  760. package/stdlib/{imessage.agency → messaging/imessage.agency} +7 -8
  761. package/stdlib/messaging/imessage.js +387 -0
  762. package/stdlib/{sms.agency → messaging/sms.agency} +8 -8
  763. package/stdlib/messaging/sms.js +429 -0
  764. package/stdlib/oauth.js +13 -3
  765. package/stdlib/object.agency +52 -5
  766. package/stdlib/object.js +409 -26
  767. package/stdlib/path.agency +29 -4
  768. package/stdlib/path.js +54 -30
  769. package/stdlib/policy.agency +115 -198
  770. package/stdlib/policy.js +212 -154
  771. package/stdlib/schemas.js +13 -3
  772. package/stdlib/search.js +225 -6
  773. package/stdlib/shell.agency +51 -27
  774. package/stdlib/shell.js +75 -53
  775. package/stdlib/skills.agency +41 -20
  776. package/stdlib/skills.js +81 -43
  777. package/stdlib/sms.js +13 -3
  778. package/stdlib/speech.agency +42 -24
  779. package/stdlib/speech.js +46 -42
  780. package/stdlib/statelog.agency +64 -46
  781. package/stdlib/statelog.js +165 -66
  782. package/stdlib/strategy.agency +27 -0
  783. package/stdlib/strategy.js +158 -20
  784. package/stdlib/syntax.agency +34 -27
  785. package/stdlib/syntax.js +46 -46
  786. package/stdlib/system.agency +62 -23
  787. package/stdlib/system.js +210 -49
  788. package/stdlib/table.js +19 -8
  789. package/stdlib/tag.agency +62 -0
  790. package/stdlib/tag.js +966 -0
  791. package/stdlib/thread.agency +282 -67
  792. package/stdlib/thread.js +1522 -263
  793. package/stdlib/threads.js +18 -7
  794. package/stdlib/types.js +13 -3
  795. package/stdlib/{chart.agency → ui/chart.agency} +41 -48
  796. package/stdlib/ui/chart.js +993 -0
  797. package/stdlib/ui/cli.agency +119 -0
  798. package/stdlib/ui/cli.js +1096 -0
  799. package/stdlib/{layout.agency → ui/layout.agency} +110 -178
  800. package/stdlib/ui/layout.js +3740 -0
  801. package/stdlib/{table.agency → ui/table.agency} +49 -50
  802. package/stdlib/ui/table.js +1434 -0
  803. package/stdlib/ui.agency +194 -316
  804. package/stdlib/ui.js +442 -364
  805. package/stdlib/validation.agency +197 -0
  806. package/stdlib/validation.js +1707 -0
  807. package/stdlib/validators.js +13 -3
  808. package/stdlib/weather.agency +27 -4
  809. package/stdlib/weather.js +39 -21
  810. package/stdlib/web/browser.agency +52 -0
  811. package/stdlib/web/browser.js +431 -0
  812. package/stdlib/web/search.agency +101 -0
  813. package/stdlib/web/search.js +638 -0
  814. package/stdlib/wikipedia.agency +28 -3
  815. package/stdlib/wikipedia.js +46 -21
  816. package/dist/lib/agents/docs/appendix/agency-stdlib.md +0 -25
  817. package/dist/lib/agents/docs/appendix/agency-vs-typescript.md +0 -14
  818. package/dist/lib/agents/docs/appendix/appendix/agency-stdlib.md +0 -25
  819. package/dist/lib/agents/docs/appendix/appendix/agency-vs-typescript.md +0 -14
  820. package/dist/lib/agents/docs/appendix/appendix/vscode-extension.md +0 -11
  821. package/dist/lib/agents/docs/appendix/vscode-extension.md +0 -11
  822. package/dist/lib/agents/docs/guide/agents-101.md +0 -212
  823. package/dist/lib/agents/docs/guide/execution-model.md +0 -130
  824. package/dist/lib/agents/docs/guide/guide/agents-101.md +0 -212
  825. package/dist/lib/agents/docs/guide/guide/execution-model.md +0 -130
  826. package/dist/lib/agents/docs/guide/guide/message-history-and-threads.md +0 -88
  827. package/dist/lib/agents/docs/guide/guide/odds-and-ends.md +0 -41
  828. package/dist/lib/agents/docs/guide/guide/structured-interrupts.md +0 -49
  829. package/dist/lib/agents/docs/guide/message-history-and-threads.md +0 -88
  830. package/dist/lib/agents/docs/guide/odds-and-ends.md +0 -41
  831. package/dist/lib/agents/docs/guide/structured-interrupts.md +0 -49
  832. package/stdlib/browser.agency +0 -47
  833. package/stdlib/cli.agency +0 -132
  834. package/stdlib/schemas.agency +0 -37
  835. package/stdlib/search.agency +0 -57
  836. package/stdlib/threads.agency +0 -198
  837. package/stdlib/types.agency +0 -58
  838. package/stdlib/validators.agency +0 -150
  839. /package/dist/lib/agents/docs/{appendix → guide}/advanced-types.md +0 -0
  840. /package/dist/lib/agents/docs/{appendix/appendix → guide/guide}/advanced-types.md +0 -0
  841. /package/dist/lib/agents/docs/{appendix/appendix → guide/guide}/schema-parameter-injection.md +0 -0
  842. /package/dist/lib/agents/docs/{appendix → guide}/schema-parameter-injection.md +0 -0
  843. /package/dist/lib/backends/{anthropicApiKey.codegen.test.d.ts → agencyGenerator.matchBlock.test.d.ts} +0 -0
package/stdlib/math.js CHANGED
@@ -1,6 +1,8 @@
1
- import { print, printJSON, parseJSON, input, sleep, round, read, write, readImage, notify, range, mostCommon, keys, values, entries, emit, callback } from "agency-lang/stdlib/index.js";
1
+ import { print, printJSON, input, sleep, read, write, writeBinary, readBinary, range, callback, map, filter, exclude, find, findIndex, reduce, flatMap, every, some, count, sortBy, unique, groupBy } from "agency-lang/stdlib/index.js";
2
+ import { _round } from "agency-lang/stdlib-lib/builtins.js";
2
3
  import { fileURLToPath } from "url";
3
4
  import __process from "process";
5
+ import { readFileSync } from "fs";
4
6
  import { z } from "agency-lang/zod";
5
7
  import { nanoid } from "agency-lang";
6
8
  import path from "path";
@@ -26,13 +28,16 @@ import {
26
28
  success,
27
29
  failure,
28
30
  isFailure,
31
+ __eq,
29
32
  AgencyFunction as __AgencyFunction,
33
+ __call,
30
34
  __stateStack,
31
35
  __globals,
32
36
  getRuntimeContext,
33
37
  agencyStore,
34
38
  functionRefReviver as __functionRefReviver,
35
39
  DeterministicClient as __DeterministicClient,
40
+ installFetchMock as __installFetchMock,
36
41
  createLogger as __createLogger
37
42
  } from "agency-lang/runtime";
38
43
  const __filename = fileURLToPath(import.meta.url);
@@ -49,9 +54,19 @@ const __globalCtx = new RuntimeContext({
49
54
  logFile: "log.jsonl"
50
55
  },
51
56
  smoltalkDefaults: {
52
- openAiApiKey: __process.env["OPENAI_API_KEY"] || "",
53
- googleApiKey: __process.env["GEMINI_API_KEY"] || "",
54
- anthropicApiKey: __process.env["ANTHROPIC_API_KEY"] || "",
57
+ apiKey: {
58
+ openAi: __process.env["OPENAI_API_KEY"] || "",
59
+ google: __process.env["GEMINI_API_KEY"] || "",
60
+ anthropic: __process.env["ANTHROPIC_API_KEY"] || "",
61
+ openRouter: __process.env["OPENROUTER_API_KEY"] || "",
62
+ deepInfra: __process.env["DEEPINFRA_API_KEY"] || "",
63
+ liteLlm: __process.env["LITELLM_API_KEY"] || "",
64
+ openAiCompat: __process.env["OPENAI_COMPAT_API_KEY"] || ""
65
+ },
66
+ baseUrl: {
67
+ liteLlm: __process.env["LITELLM_BASE_URL"] || "",
68
+ openAiCompat: __process.env["OPENAI_COMPAT_BASE_URL"] || ""
69
+ },
55
70
  model: "gpt-4o-mini",
56
71
  logLevel: "warn",
57
72
  statelog: {
@@ -95,6 +110,9 @@ if (__process.env.AGENCY_LLM_MOCKS) {
95
110
  new __DeterministicClient(JSON.parse(__process.env.AGENCY_LLM_MOCKS))
96
111
  );
97
112
  }
113
+ if (__process.env.AGENCY_FETCH_MOCKS_FILE) {
114
+ __installFetchMock(JSON.parse(readFileSync(__process.env.AGENCY_FETCH_MOCKS_FILE, "utf-8")));
115
+ }
98
116
  const __toolRegistry = __functionRefReviver.registry ??= {};
99
117
  function __registerTool(value, _aliasName) {
100
118
  if (__AgencyFunction.isAgencyFunction(value)) {
@@ -104,7 +122,7 @@ function __registerTool(value, _aliasName) {
104
122
  const checkpoint = __AgencyFunction.create({ name: "checkpoint", module: "__runtime", fn: __checkpoint_impl, params: [], toolDefinition: null }, __toolRegistry);
105
123
  const getCheckpoint = __AgencyFunction.create({ name: "getCheckpoint", module: "__runtime", fn: __getCheckpoint_impl, params: [{ name: "checkpointId", hasDefault: false, defaultValue: void 0, variadic: false }], toolDefinition: null }, __toolRegistry);
106
124
  const restore = __AgencyFunction.create({ name: "restore", module: "__runtime", fn: __restore_impl, params: [{ name: "checkpointIdOrCheckpoint", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "options", hasDefault: false, defaultValue: void 0, variadic: false }], toolDefinition: null }, __toolRegistry);
107
- const _run = __AgencyFunction.create({ name: "_run", module: "__runtime", fn: __runtime_run_impl, params: [{ name: "compiled", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "node", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "args", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "wallClock", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "memory", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "ipcPayload", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "stdout", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "configOverrides", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "cwd", hasDefault: false, defaultValue: void 0, variadic: false }], toolDefinition: null }, __toolRegistry);
125
+ const _run = __AgencyFunction.create({ name: "_run", module: "__runtime", fn: __runtime_run_impl, params: [{ name: "compiled", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "node", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "args", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "wallClock", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "memory", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "ipcPayload", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "stdout", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "configOverrides", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "cwd", hasDefault: false, defaultValue: void 0, variadic: false }, { name: "maxDepth", hasDefault: false, defaultValue: void 0, variadic: false }], toolDefinition: null }, __toolRegistry);
108
126
  function setLLMClient(client) {
109
127
  __globalCtx.setLLMClient(client);
110
128
  }
@@ -117,21 +135,27 @@ function registerTools(tools) {
117
135
  }
118
136
  __registerTool(print);
119
137
  __registerTool(printJSON);
120
- __registerTool(parseJSON);
121
138
  __registerTool(input);
122
139
  __registerTool(sleep);
123
- __registerTool(round);
124
140
  __registerTool(read);
125
141
  __registerTool(write);
126
- __registerTool(readImage);
127
- __registerTool(notify);
142
+ __registerTool(writeBinary);
143
+ __registerTool(readBinary);
128
144
  __registerTool(range);
129
- __registerTool(mostCommon);
130
- __registerTool(keys);
131
- __registerTool(values);
132
- __registerTool(entries);
133
- __registerTool(emit);
134
145
  __registerTool(callback);
146
+ __registerTool(map);
147
+ __registerTool(filter);
148
+ __registerTool(exclude);
149
+ __registerTool(find);
150
+ __registerTool(findIndex);
151
+ __registerTool(reduce);
152
+ __registerTool(flatMap);
153
+ __registerTool(every);
154
+ __registerTool(some);
155
+ __registerTool(count);
156
+ __registerTool(sortBy);
157
+ __registerTool(unique);
158
+ __registerTool(groupBy);
135
159
  async function __initializeGlobals(__ctx) {
136
160
  if (__ctx.globals.isInitialized("stdlib/math.agency")) {
137
161
  return;
@@ -143,6 +167,140 @@ async function __registerTopLevelCallbacks(__ctx) {
143
167
  __ctx.topLevelCallbacks = [];
144
168
  }
145
169
  __functionRefReviver.registry = __toolRegistry;
170
+ async function __round_impl(num, precision) {
171
+ const __setupData = setupFunction();
172
+ const __stack = __setupData.stack;
173
+ const __step = __setupData.step;
174
+ const __self = __setupData.self;
175
+ const __ctx = getRuntimeContext().ctx;
176
+ let __forked;
177
+ let __functionCompleted = false;
178
+ if (!__globals().isInitialized("stdlib/math.agency")) {
179
+ await __initializeGlobals(__ctx);
180
+ }
181
+ let __funcStartTime = performance.now();
182
+ __stack.args["num"] = num;
183
+ __stack.args["precision"] = precision;
184
+ __self.__retryable = __self.__retryable ?? true;
185
+ const runner = new Runner(__ctx, __stack, { state: __stack, moduleId: "stdlib/math.agency", scopeName: "round", threads: __setupData.threads });
186
+ let __resultCheckpointId = -1;
187
+ if (__ctx._pendingArgOverrides) {
188
+ const __overrides = __ctx._pendingArgOverrides;
189
+ __ctx._pendingArgOverrides = void 0;
190
+ if ("num" in __overrides) {
191
+ num = __overrides["num"];
192
+ __stack.args["num"] = num;
193
+ }
194
+ if ("precision" in __overrides) {
195
+ precision = __overrides["precision"];
196
+ __stack.args["precision"] = precision;
197
+ }
198
+ }
199
+ try {
200
+ await agencyStore.run({
201
+ ...getRuntimeContext(),
202
+ ctx: __ctx,
203
+ stack: __setupData.stateStack,
204
+ threads: __setupData.threads
205
+ }, async () => {
206
+ await runner.hook(0, async () => {
207
+ await callHook({
208
+ name: "onFunctionStart",
209
+ data: {
210
+ functionName: "round",
211
+ args: {
212
+ num,
213
+ precision
214
+ },
215
+ moduleId: "stdlib/math.agency"
216
+ }
217
+ });
218
+ });
219
+ await runner.step(1, async (runner2) => {
220
+ __functionCompleted = true;
221
+ runner2.halt(await __call(_round, {
222
+ type: "positional",
223
+ args: [__stack.args.num, __stack.args.precision]
224
+ }));
225
+ return;
226
+ });
227
+ });
228
+ if (runner.halted) {
229
+ if (isFailure(runner.haltResult)) {
230
+ runner.haltResult.retryable = runner.haltResult.retryable && __self.__retryable;
231
+ }
232
+ return runner.haltResult;
233
+ }
234
+ } catch (__error) {
235
+ if (__error instanceof RestoreSignal) {
236
+ throw __error;
237
+ }
238
+ if (__error instanceof AgencyAbort) {
239
+ throw __error;
240
+ }
241
+ {
242
+ const __errMsg = __error instanceof Error ? __error.message : String(__error);
243
+ const __errStack = __error instanceof Error && __error.stack ? __error.stack : "";
244
+ const __log = __createLogger(__ctx.logLevel);
245
+ __log.error("Function round threw an exception (converted to Failure): " + __errMsg);
246
+ if (__errStack) __log.error(__errStack);
247
+ __ctx.statelogClient?.error?.({
248
+ errorType: "runtimeError",
249
+ message: __errMsg,
250
+ functionName: "round",
251
+ retryable: __self.__retryable
252
+ });
253
+ }
254
+ return failure(
255
+ __error instanceof Error ? __error.message : String(__error),
256
+ {
257
+ checkpoint: getRuntimeContext().ctx.getResultCheckpoint(),
258
+ retryable: __self.__retryable,
259
+ functionName: "round",
260
+ args: __stack.args
261
+ }
262
+ );
263
+ } finally {
264
+ __stateStack()?.pop();
265
+ if (__functionCompleted) {
266
+ await callHook({
267
+ name: "onFunctionEnd",
268
+ data: {
269
+ functionName: "round",
270
+ timeTaken: performance.now() - __funcStartTime
271
+ }
272
+ });
273
+ }
274
+ }
275
+ }
276
+ const round = __AgencyFunction.create({
277
+ name: "round",
278
+ module: "stdlib/math.agency",
279
+ fn: __round_impl,
280
+ params: [{
281
+ name: "num",
282
+ hasDefault: false,
283
+ defaultValue: void 0,
284
+ variadic: false,
285
+ isFunctionTyped: false
286
+ }, {
287
+ name: "precision",
288
+ hasDefault: false,
289
+ defaultValue: void 0,
290
+ variadic: false,
291
+ isFunctionTyped: false
292
+ }],
293
+ toolDefinition: {
294
+ name: "round",
295
+ description: `Round a number to a given number of decimal places.
296
+
297
+ @param num - The number to round
298
+ @param precision - The number of decimal places`,
299
+ schema: z.object({ "num": z.number(), "precision": z.number() })
300
+ },
301
+ safe: true,
302
+ exported: true
303
+ }, __toolRegistry);
146
304
  async function __add_impl(a, b) {
147
305
  const __setupData = setupFunction();
148
306
  const __stack = __setupData.stack;
@@ -188,7 +346,6 @@ async function __add_impl(a, b) {
188
346
  a,
189
347
  b
190
348
  },
191
- isBuiltin: false,
192
349
  moduleId: "stdlib/math.agency"
193
350
  }
194
351
  });
@@ -317,7 +474,6 @@ async function __subtract_impl(a, b) {
317
474
  a,
318
475
  b
319
476
  },
320
- isBuiltin: false,
321
477
  moduleId: "stdlib/math.agency"
322
478
  }
323
479
  });
@@ -446,7 +602,6 @@ async function __multiply_impl(a, b) {
446
602
  a,
447
603
  b
448
604
  },
449
- isBuiltin: false,
450
605
  moduleId: "stdlib/math.agency"
451
606
  }
452
607
  });
@@ -575,14 +730,13 @@ async function __divide_impl(a, b) {
575
730
  a,
576
731
  b
577
732
  },
578
- isBuiltin: false,
579
733
  moduleId: "stdlib/math.agency"
580
734
  }
581
735
  });
582
736
  });
583
737
  await runner.ifElse(1, [
584
738
  {
585
- condition: async () => __stack.args.b === 0,
739
+ condition: async () => __eq(__stack.args.b, 0),
586
740
  body: async (runner2) => {
587
741
  await runner2.step(0, async (runner3) => {
588
742
  __functionCompleted = true;
@@ -672,7 +826,7 @@ const divide = __AgencyFunction.create({
672
826
  exported: true
673
827
  }, __toolRegistry);
674
828
  var stdin_default = graph;
675
- const __sourceMap = { "stdlib/math.agency:add": { "1": { "line": 1, "col": 2 } }, "stdlib/math.agency:subtract": { "1": { "line": 5, "col": 2 } }, "stdlib/math.agency:multiply": { "1": { "line": 9, "col": 2 } }, "stdlib/math.agency:divide": { "1": { "line": 13, "col": 2 }, "2": { "line": 16, "col": 2 }, "1.0": { "line": 14, "col": 4 } } };
829
+ const __sourceMap = { "stdlib/math.agency:round": { "1": { "line": 13, "col": 2 } }, "stdlib/math.agency:add": { "1": { "line": 17, "col": 2 } }, "stdlib/math.agency:subtract": { "1": { "line": 21, "col": 2 } }, "stdlib/math.agency:multiply": { "1": { "line": 25, "col": 2 } }, "stdlib/math.agency:divide": { "1": { "line": 29, "col": 2 }, "2": { "line": 32, "col": 2 }, "1.0": { "line": 30, "col": 4 } } };
676
830
  export {
677
831
  __getCheckpoints,
678
832
  __invokeFunction,
@@ -693,5 +847,6 @@ export {
693
847
  reject,
694
848
  respondToInterrupts,
695
849
  rewindFrom,
850
+ round,
696
851
  subtract
697
852
  };
@@ -1,4 +1,4 @@
1
- // The structured shapes the memory LLM calls return. Defining them in
1
+ // The memory LLM calls return these structured shapes. Defining them in
2
2
  // Agency lets the runtime derive the `responseFormat` Zod schema from
3
3
  // the type annotation on `llm()`, so structured-output enforcement
4
4
  // flows through the same path as user-defined typed prompts.
@@ -21,6 +21,28 @@ import {
21
21
  _pushMemoryFrame,
22
22
  _popMemoryFrame,
23
23
  } from "agency-lang/stdlib-lib/memory.js"
24
+
25
+ /** @module
26
+ Give an agent long-term memory. `remember` extracts facts from text
27
+ and saves them to a knowledge graph, and `recall` retrieves the
28
+ relevant ones later. Memory is off until you turn it on with
29
+ `enableMemory`, and it stays local to the current branch.
30
+
31
+ Memory reads and writes raise an approval interrupt, so call them
32
+ `with approve` (or your own policy) to let them through.
33
+
34
+ ```ts
35
+ import { enableMemory, remember, recall } from "std::memory"
36
+
37
+ node main() {
38
+ enableMemory({ dir: "./mem" }) with approve
39
+ remember("Alice's favorite color is blue") with approve
40
+ const facts: string = recall("What is Alice's favorite color?") with approve
41
+ print(facts)
42
+ }
43
+ ```
44
+ */
45
+
24
46
  type ExtractionResult = {
25
47
  entities: { name: string; type: string; observations: string[] }[];
26
48
  relations: { from: string; to: string; type: string }[];
@@ -45,38 +67,35 @@ export type MemoryConfig = {
45
67
  embeddings?: { model: string | undefined }
46
68
  }
47
69
 
70
+ effect std::memory::enableMemory { dir: string }
71
+ effect std::memory::disableMemory {}
72
+ effect std::memory::remember { contentLength: number }
73
+ effect std::memory::recall { query: string }
74
+ effect std::memory::forget { query: string }
75
+
76
+ /** Useful for branching in user code (`if (isMemoryActive()) { ... }`)
77
+ * and for tests that verify memory is on without inspecting internal
78
+ * state. */
48
79
  export safe def isMemoryActive(): boolean {
49
80
  """
50
- Return `true` iff there is an active memory frame on the current
51
- branch's stateStack i.e. memory is on and `remember`/`recall` will
52
- reach a real store. Returns `false` when memory was never enabled,
53
- was explicitly turned off via `disableMemory()`, or the call is
54
- outside any runtime frame.
55
-
56
- Useful for branching in user code (`if (isMemoryActive()) { ... }`)
57
- and for integration tests that want to verify push/pop semantics
58
- without poking at the stateStack directly.
81
+ Return `true` when memory is on for the current branch and reads and
82
+ writes will reach a real store. Returns `false` when memory was never
83
+ enabled, was turned off, or the call is outside any runtime frame.
59
84
  """
60
85
  return _shouldRunMemory()
61
86
  }
62
87
 
88
+ /** The id is independent of which memory configuration is active. It
89
+ * persists as memory is turned on and off. Re-set it explicitly when
90
+ * switching stores. Branch-scoped: a fork/race branch inherits the id
91
+ * active at fork time, and a change inside a branch stays local to that
92
+ * branch. */
63
93
  export def setMemoryId(id: string) {
64
94
  """
65
- Set the memory scope for this agent run. Call this before other
66
- memory operations to scope reads and writes to a specific user,
67
- thread, or workspace. If never called, the scope defaults to "default".
68
-
69
- Memory must be enabled (either via `agency.json` or via
70
- `enableMemory(...)`) for this to do anything; without configuration
71
- this is a no-op.
72
-
73
- The id is orthogonal to which memory frame is active — it persists
74
- across `enableMemory` / `disableMemory` calls. If you want a fresh
75
- scope when switching stores, call `setMemoryId(...)` explicitly.
76
-
77
- Branch-scoped: a fork/race branch inherits the id active at fork
78
- time, but a `setMemoryId(...)` inside a branch affects only that
79
- branch — it does not leak to siblings or the parent after join.
95
+ Set the memory scope for this agent run, so reads and writes target a
96
+ specific user, thread, or workspace. Call before other memory
97
+ operations. The scope defaults to "default" if never set. Memory must
98
+ be enabled for this to have any effect.
80
99
 
81
100
  @param id - A unique identifier for the memory scope (e.g. user ID)
82
101
  """
@@ -85,38 +104,33 @@ export def setMemoryId(id: string) {
85
104
 
86
105
  export safe def getMemoryId(): string {
87
106
  """
88
- Return the current memory scope id (the value last passed to
89
- `setMemoryId`, or "default" if it was never set or memory is not
90
- active). Reads the scope visible to the current execution branch.
107
+ Return the current memory scope id, or "default" if it was never set
108
+ or memory is not active.
91
109
 
92
110
  @returns The active memory scope id
93
111
  """
94
112
  return _getMemoryId()
95
113
  }
96
114
 
115
+ /** Storage is shared process-wide by absolute directory, so calls
116
+ * (across runs, forks, or modules) that point at the same dir share one
117
+ * store. Enabling the same dir again is a no-op, so declaring
118
+ * `static const _ = enableMemory({...})` AND calling it from `main()` is
119
+ * safe. Enabling a different dir stacks on top. Turn it off with
120
+ * `disableMemory()` or use the block form for lexical scoping.
121
+ *
122
+ * `config.dir` is resolved against `process.cwd()`, not the module dir.
123
+ * This deliberately mirrors how `agency.json`'s `memory.dir` resolves, so
124
+ * the same string in JSON and in code points at the same place.
125
+ *
126
+ * Branch-scoped: a fork/race branch inherits the config active at fork
127
+ * time, and enabling/disabling inside a branch stays local to that
128
+ * branch. */
97
129
  export def enableMemory(config: MemoryConfig) {
98
130
  """
99
- Turn memory on for the current execution branch using `config`.
100
-
101
- Pushes a new memory frame onto the active stateStack. Storage is
102
- shared process-wide by absolute directory, so multiple calls
103
- (across runs, forks, or modules) that point at the same dir share
104
- one underlying store.
105
-
106
- Same-dir push is a no-op — the common pattern of declaring
107
- `static const _ = enableMemory({...})` AND calling
108
- `enableMemory({...})` from `main()` is safe. Pushing a different
109
- dir stacks the new frame on top; pop with `disableMemory()` or
110
- use the block form `memory({...}) as { ... }` for lexical scoping.
111
-
112
- `config.dir` is resolved against `process.cwd()` (NOT the module
113
- dir, deliberately — mirrors how `agency.json`'s `memory.dir` is
114
- resolved so the same string in JSON and in code points at the same
115
- place). The directory is auto-created if missing.
116
-
117
- Branch-scoped: a fork/race branch inherits the memory config active
118
- at fork time, but `enableMemory`/`disableMemory` inside a branch
119
- affect only that branch — not its siblings or the parent after join.
131
+ Turn memory on for the current execution branch using `config`. The
132
+ directory in `config.dir` is created if missing. Enabling a directory
133
+ that is already active is a no-op.
120
134
 
121
135
  @param config - Memory configuration with `dir` required
122
136
  """
@@ -127,18 +141,16 @@ export def enableMemory(config: MemoryConfig) {
127
141
  _enableMemory(config)
128
142
  }
129
143
 
144
+ /** Removes whatever memory configuration is on top, including a bottom
145
+ * frame seeded from `agency.json`. Library authors should not call this
146
+ * casually. It shadows the caller's configured memory. Prefer the block
147
+ * form `memory({...}) as { ... }`, which restores the previous
148
+ * configuration on exit. Branch-scoped: a call inside a fork branch stays
149
+ * local to that branch. */
130
150
  export def disableMemory() {
131
151
  """
132
- Pop the top memory frame from the current branch's stateStack.
133
-
134
- Frame-scoped: a `disableMemory()` inside a fork branch only
135
- affects that branch.
136
-
137
- WARNING: this pops whatever is on top, including the JSON-seeded
138
- bottom frame from `agency.json`. Library authors should not call
139
- this casually — they will shadow the caller's configured memory.
140
- Prefer the block form `memory({...}) as { ... }` for lexical
141
- scoping, which restores the previous frame on exit.
152
+ Turn off memory for the current branch by removing the most recently
153
+ enabled memory configuration.
142
154
  """
143
155
  return interrupt std::memory::disableMemory("Are you sure you want to disable memory (pop the top memory frame)?", {})
144
156
 
@@ -147,20 +159,10 @@ export def disableMemory() {
147
159
 
148
160
  export def memory(config: MemoryConfig, block: () -> any = null): Result {
149
161
  """
150
- Run `block` with `config` pushed as the active memory frame; pop
151
- the frame when the block returns (or fails). Mirrors the `guard()`
152
- pattern in `std::thread` so push/pop balancing flows through the
153
- same `try` expression Agency has no `finally`, so the agency-side
154
- body uses `try block()` to capture the result and runs `pop` after.
155
-
156
- The pop only fires when the push actually happened: `_pushMemoryFrame`
157
- returns `false` if the new frame's dir matches the current top
158
- (dedup), and the matching no-pop preserves the caller's frame
159
- instead of unbalancing it. This fixes the prior `_memoryBlock`
160
- unbalanced-pop bug.
161
-
162
- Returns a `Result` (success holds the block's return value, failure
163
- holds an error from inside the block). Same convention as `guard()`.
162
+ Run `block` with `config` as the active memory configuration, then
163
+ restore the previous configuration when the block returns or fails.
164
+ Returns a `Result`: success holds the block's return value, failure
165
+ holds an error raised inside the block.
164
166
 
165
167
  Example:
166
168
  const r = memory({ dir: "./mem-user-a" }) as {
@@ -168,7 +170,7 @@ export def memory(config: MemoryConfig, block: () -> any = null): Result {
168
170
  }
169
171
 
170
172
  @param config - Memory configuration with `dir` required
171
- @param block - The code to run with the frame active
173
+ @param block - The code to run with the configuration active
172
174
  """
173
175
  const pushed = _pushMemoryFrame(config)
174
176
  const result = try block()
@@ -180,14 +182,8 @@ export def memory(config: MemoryConfig, block: () -> any = null): Result {
180
182
 
181
183
  export def remember(content: string) {
182
184
  """
183
- Extract and store structured facts from the given text into the
184
- knowledge graph. Uses the LLM to identify entities, observations,
185
- and relations.
186
-
187
- The LLM call is wrapped in a thread block so memory's prompts run
188
- on an isolated message history and don't pollute the agent's main
189
- conversation. Cost and tokens still flow through the runtime's
190
- per-run accounting.
185
+ Extract structured facts (entities, observations, and relations) from
186
+ the given text and store them in the knowledge graph.
191
187
 
192
188
  @param content - Natural language text containing facts to remember
193
189
  """
@@ -208,7 +204,7 @@ export safe def recall(query: string): string {
208
204
  """
209
205
  Retrieve relevant facts from the knowledge graph as a formatted
210
206
  string. Combines structured lookup, embedding similarity, and
211
- LLM-powered retrieval; returns up to 10 entities ranked by match
207
+ LLM-powered retrieval. Returns up to 10 entities ranked by match
212
208
  quality.
213
209
 
214
210
  Returns an empty string if memory is not configured or nothing matches.
@@ -224,13 +220,9 @@ export safe def recall(query: string): string {
224
220
 
225
221
  export def forget(query: string) {
226
222
  """
227
- Soft-delete facts matching the query from the knowledge graph.
228
- Does not erase data — affected observations are marked with a
229
- validTo timestamp so the audit trail is preserved.
230
-
231
- The LLM call is wrapped in a thread block so memory's prompts run
232
- on an isolated message history and don't pollute the agent's main
233
- conversation.
223
+ Soft-delete facts matching the query from the knowledge graph. Data is
224
+ not erased. Affected observations are marked with a validTo timestamp,
225
+ preserving the audit trail.
234
226
 
235
227
  @param query - A natural language description of what to forget
236
228
  """