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.
- package/dist/lib/agents/agency-agent/agent.agency +595 -43
- package/dist/lib/agents/agency-agent/agent.js +5134 -2060
- package/dist/lib/agents/agency-agent/images/images.js +36 -15
- package/dist/lib/agents/agency-agent/lib/attachments.agency +115 -0
- package/dist/lib/agents/agency-agent/lib/attachments.js +791 -0
- package/dist/lib/agents/agency-agent/lib/config.agency +2 -0
- package/dist/lib/agents/agency-agent/lib/config.js +47 -15
- package/dist/lib/agents/agency-agent/lib/defaultPolicy.agency +28 -1
- package/dist/lib/agents/agency-agent/lib/defaultPolicy.js +64 -16
- package/dist/lib/agents/agency-agent/lib/modelFilters.agency +29 -0
- package/dist/lib/agents/agency-agent/lib/modelFilters.js +353 -0
- package/dist/lib/agents/agency-agent/lib/models.agency +214 -30
- package/dist/lib/agents/agency-agent/lib/models.js +1296 -278
- package/dist/lib/agents/agency-agent/lib/resolution.agency +191 -0
- package/dist/lib/agents/agency-agent/lib/resolution.js +1538 -0
- package/dist/lib/agents/agency-agent/lib/search.agency +471 -0
- package/dist/lib/agents/agency-agent/lib/search.js +2647 -0
- package/dist/lib/agents/agency-agent/lib/settings.agency +147 -0
- package/dist/lib/agents/agency-agent/lib/settings.js +956 -0
- package/dist/lib/agents/agency-agent/lib/slots.agency +34 -0
- package/dist/lib/agents/agency-agent/lib/slots.js +602 -0
- package/dist/lib/agents/agency-agent/lib/utils.js +38 -21
- package/dist/lib/agents/agency-agent/prompts/codeSample.agency +8 -4
- package/dist/lib/agents/agency-agent/prompts/codeSample.js +77 -45
- package/dist/lib/agents/agency-agent/prompts/design.md +13 -7
- package/dist/lib/agents/agency-agent/shared.agency +187 -27
- package/dist/lib/agents/agency-agent/shared.js +1399 -148
- package/dist/lib/agents/agency-agent/subagents/code.agency +46 -15
- package/dist/lib/agents/agency-agent/subagents/code.js +88 -48
- package/dist/lib/agents/agency-agent/subagents/explorer.agency +4 -2
- package/dist/lib/agents/agency-agent/subagents/explorer.js +57 -43
- package/dist/lib/agents/agency-agent/subagents/oracle.agency +4 -2
- package/dist/lib/agents/agency-agent/subagents/oracle.js +57 -43
- package/dist/lib/agents/agency-agent/subagents/research.agency +9 -10
- package/dist/lib/agents/agency-agent/subagents/research.js +55 -39
- package/dist/lib/agents/agency-agent/subagents/review.js +41 -24
- package/dist/lib/agents/agency-agent/subagents/shell.js +446 -0
- package/dist/lib/agents/agency-agent/tests/agentTurn.agency +222 -1
- package/dist/lib/agents/agency-agent/tests/agentTurn.js +2303 -30
- package/dist/lib/agents/agency-agent/tests/agentTurn.test.json +17 -1
- package/dist/lib/agents/agency-agent/tests/attachments.agency +187 -0
- package/dist/lib/agents/agency-agent/tests/attachments.js +3736 -0
- package/dist/lib/agents/agency-agent/tests/attachments.test.json +254 -0
- package/dist/lib/agents/agency-agent/tests/attachmentsTurn.agency +65 -0
- package/dist/lib/agents/agency-agent/tests/attachmentsTurn.js +1032 -0
- package/dist/lib/agents/agency-agent/tests/attachmentsTurn.test.json +110 -0
- package/dist/lib/agents/agency-agent/tests/execPolicy.js +47 -25
- package/dist/lib/agents/agency-agent/tests/gitPolicy.agency +53 -0
- package/dist/lib/agents/agency-agent/tests/gitPolicy.js +694 -0
- package/dist/lib/agents/agency-agent/tests/gitPolicy.test.json +7 -0
- package/dist/lib/agents/agency-agent/tests/imageTool.agency +51 -0
- package/dist/lib/agents/agency-agent/tests/imageTool.js +1111 -0
- package/dist/lib/agents/agency-agent/tests/imageTool.test.json +81 -0
- package/dist/lib/agents/agency-agent/tests/modelFilters.agency +32 -0
- package/dist/lib/agents/agency-agent/tests/modelFilters.js +723 -0
- package/dist/lib/agents/agency-agent/tests/modelFilters.test.json +7 -0
- package/dist/lib/agents/agency-agent/tests/models.agency +114 -0
- package/dist/lib/agents/agency-agent/tests/models.js +2143 -0
- package/dist/lib/agents/agency-agent/tests/models.test.json +49 -0
- package/dist/lib/agents/agency-agent/tests/resolution.agency +184 -0
- package/dist/lib/agents/agency-agent/tests/resolution.js +1498 -0
- package/dist/lib/agents/agency-agent/tests/resolution.test.json +13 -0
- package/dist/lib/agents/agency-agent/tests/search.agency +101 -0
- package/dist/lib/agents/agency-agent/tests/search.js +2095 -0
- package/dist/lib/agents/agency-agent/tests/search.test.json +19 -0
- package/dist/lib/agents/agency-agent/tests/settings.agency +87 -0
- package/dist/lib/agents/agency-agent/tests/settings.js +978 -0
- package/dist/lib/agents/agency-agent/tests/settings.test.json +26 -0
- package/dist/lib/agents/agency-agent/tests/slots.agency +22 -0
- package/dist/lib/agents/agency-agent/tests/slots.js +648 -0
- package/dist/lib/agents/agency-agent/tests/slots.test.json +10 -0
- package/dist/lib/agents/agency-agent/tests/toolWiring.js +41 -15
- package/dist/lib/agents/agency-agent/tests/turnFailure.agency +35 -0
- package/dist/lib/agents/agency-agent/tests/turnFailure.js +694 -0
- package/dist/lib/agents/agency-agent/tests/turnFailure.test.json +34 -0
- package/dist/lib/agents/docs/cli/cli/editor-integration.md +1 -1
- package/dist/lib/agents/docs/cli/cli/local.md +92 -0
- package/dist/lib/agents/docs/cli/cli/models.md +63 -0
- package/dist/lib/agents/docs/cli/cli/optimize.md +33 -1
- package/dist/lib/agents/docs/cli/cli/run.md +0 -29
- package/dist/lib/agents/docs/cli/editor-integration.md +1 -1
- package/dist/lib/agents/docs/cli/local.md +92 -0
- package/dist/lib/agents/docs/cli/models.md +63 -0
- package/dist/lib/agents/docs/cli/optimize.md +33 -1
- package/dist/lib/agents/docs/cli/run.md +0 -29
- package/dist/lib/agents/docs/guide/agency-config-file.md +205 -3
- package/dist/lib/agents/docs/guide/agency-packages.md +54 -0
- package/dist/lib/agents/docs/guide/agency-stdlib.md +14 -0
- package/dist/lib/agents/docs/guide/agency-vs-typescript.md +33 -0
- package/dist/lib/agents/docs/guide/attachments.md +56 -0
- package/dist/lib/agents/docs/guide/basic-syntax.md +204 -72
- package/dist/lib/agents/docs/guide/blocks.md +64 -34
- package/dist/lib/agents/docs/guide/build-integration.md +99 -0
- package/dist/lib/agents/docs/{appendix/appendix → guide}/builtins.md +27 -4
- package/dist/lib/agents/docs/{appendix/appendix → guide}/callbacks.md +55 -33
- package/dist/lib/agents/docs/guide/checkpointing.md +56 -27
- package/dist/lib/agents/docs/guide/cli-args.md +1 -1
- package/dist/lib/agents/docs/guide/common-functions.md +36 -0
- package/dist/lib/agents/docs/guide/compiling-and-running.md +62 -0
- package/dist/lib/agents/docs/guide/concurrency.md +49 -92
- package/dist/lib/agents/docs/guide/cross-thread-context.md +5 -7
- package/dist/lib/agents/docs/guide/custom-providers.md +195 -0
- package/dist/lib/agents/docs/guide/debugging.md +67 -0
- package/dist/lib/agents/docs/guide/developer-tools.md +90 -0
- package/dist/lib/agents/docs/guide/effects-and-raises.md +73 -92
- package/dist/lib/agents/docs/guide/effects.md +100 -0
- package/dist/lib/agents/docs/guide/error-handling.md +56 -44
- package/dist/lib/agents/docs/guide/exercise-1.md +32 -0
- package/dist/lib/agents/docs/guide/functions.md +71 -10
- package/dist/lib/agents/docs/guide/getting-started.md +5 -12
- package/dist/lib/agents/docs/guide/global-var-initialization.md +70 -0
- package/dist/lib/agents/docs/guide/global-vs-static.md +29 -34
- package/dist/lib/agents/docs/guide/guards.md +57 -108
- package/dist/lib/agents/docs/guide/guide/agency-config-file.md +205 -3
- package/dist/lib/agents/docs/guide/guide/agency-packages.md +54 -0
- package/dist/lib/agents/docs/guide/guide/agency-stdlib.md +14 -0
- package/dist/lib/agents/docs/guide/guide/agency-vs-typescript.md +33 -0
- package/dist/lib/agents/docs/guide/guide/attachments.md +56 -0
- package/dist/lib/agents/docs/guide/guide/basic-syntax.md +204 -72
- package/dist/lib/agents/docs/guide/guide/blocks.md +64 -34
- package/dist/lib/agents/docs/guide/guide/build-integration.md +99 -0
- package/dist/lib/agents/docs/{appendix → guide/guide}/builtins.md +27 -4
- package/dist/lib/agents/docs/{appendix → guide/guide}/callbacks.md +55 -33
- package/dist/lib/agents/docs/guide/guide/checkpointing.md +56 -27
- package/dist/lib/agents/docs/guide/guide/cli-args.md +1 -1
- package/dist/lib/agents/docs/guide/guide/common-functions.md +36 -0
- package/dist/lib/agents/docs/guide/guide/compiling-and-running.md +62 -0
- package/dist/lib/agents/docs/guide/guide/concurrency.md +49 -92
- package/dist/lib/agents/docs/guide/guide/cross-thread-context.md +5 -7
- package/dist/lib/agents/docs/guide/guide/custom-providers.md +195 -0
- package/dist/lib/agents/docs/guide/guide/debugging.md +67 -0
- package/dist/lib/agents/docs/guide/guide/developer-tools.md +90 -0
- package/dist/lib/agents/docs/guide/guide/effects-and-raises.md +73 -92
- package/dist/lib/agents/docs/guide/guide/effects.md +100 -0
- package/dist/lib/agents/docs/guide/guide/error-handling.md +56 -44
- package/dist/lib/agents/docs/guide/guide/exercise-1.md +32 -0
- package/dist/lib/agents/docs/guide/guide/functions.md +71 -10
- package/dist/lib/agents/docs/guide/guide/getting-started.md +5 -12
- package/dist/lib/agents/docs/guide/guide/global-var-initialization.md +70 -0
- package/dist/lib/agents/docs/guide/guide/global-vs-static.md +29 -34
- package/dist/lib/agents/docs/guide/guide/guards.md +57 -108
- package/dist/lib/agents/docs/guide/guide/handlers.md +109 -205
- package/dist/lib/agents/docs/guide/guide/image-generation.md +113 -0
- package/dist/lib/agents/docs/guide/guide/imports-and-packages.md +35 -95
- package/dist/lib/agents/docs/guide/guide/interrupts-from-typescript.md +84 -0
- package/dist/lib/agents/docs/guide/guide/interrupts-part-2.md +54 -0
- package/dist/lib/agents/docs/guide/guide/interrupts.md +98 -58
- package/dist/lib/agents/docs/guide/guide/llm-part-2.md +111 -0
- package/dist/lib/agents/docs/guide/guide/llm.md +53 -124
- package/dist/lib/agents/docs/guide/guide/memory.md +262 -249
- package/dist/lib/agents/docs/guide/guide/message-threads.md +111 -0
- package/dist/lib/agents/docs/guide/guide/nodes.md +32 -17
- package/dist/lib/agents/docs/guide/guide/observability.md +11 -4
- package/dist/lib/agents/docs/guide/guide/partial-application.md +40 -132
- package/dist/lib/agents/docs/guide/guide/pattern-matching.md +216 -43
- package/dist/lib/agents/docs/guide/guide/policies.md +11 -4
- package/dist/lib/agents/docs/guide/guide/schemas.md +22 -9
- package/dist/lib/agents/docs/guide/guide/state-isolation.md +139 -0
- package/dist/lib/agents/docs/guide/guide/streaming.md +28 -0
- package/dist/lib/agents/docs/guide/guide/tags.md +72 -0
- package/dist/lib/agents/docs/guide/guide/testing.md +167 -7
- package/dist/lib/agents/docs/guide/guide/troubleshooting.md +2 -53
- package/dist/lib/agents/docs/{appendix/appendix → guide/guide}/ts-helpers.md +48 -0
- package/dist/lib/agents/docs/guide/guide/ts-interop.md +16 -129
- package/dist/lib/agents/docs/guide/guide/type-validation.md +30 -172
- package/dist/lib/agents/docs/guide/guide/types.md +69 -84
- package/dist/lib/agents/docs/guide/guide/unused.md +178 -0
- package/dist/lib/agents/docs/guide/guide/unused2.md +258 -0
- package/dist/lib/agents/docs/guide/guide/value-parameterized-types.md +186 -0
- package/dist/lib/agents/docs/guide/guide/vscode-extension.md +33 -0
- package/dist/lib/agents/docs/guide/guide/why-agency.md +323 -0
- package/dist/lib/agents/docs/guide/handlers.md +109 -205
- package/dist/lib/agents/docs/guide/image-generation.md +113 -0
- package/dist/lib/agents/docs/guide/imports-and-packages.md +35 -95
- package/dist/lib/agents/docs/guide/interrupts-from-typescript.md +84 -0
- package/dist/lib/agents/docs/guide/interrupts-part-2.md +54 -0
- package/dist/lib/agents/docs/guide/interrupts.md +98 -58
- package/dist/lib/agents/docs/guide/llm-part-2.md +111 -0
- package/dist/lib/agents/docs/guide/llm.md +53 -124
- package/dist/lib/agents/docs/guide/memory.md +262 -249
- package/dist/lib/agents/docs/guide/message-threads.md +111 -0
- package/dist/lib/agents/docs/guide/nodes.md +32 -17
- package/dist/lib/agents/docs/guide/observability.md +11 -4
- package/dist/lib/agents/docs/guide/partial-application.md +40 -132
- package/dist/lib/agents/docs/guide/pattern-matching.md +216 -43
- package/dist/lib/agents/docs/guide/policies.md +11 -4
- package/dist/lib/agents/docs/guide/schemas.md +22 -9
- package/dist/lib/agents/docs/guide/state-isolation.md +139 -0
- package/dist/lib/agents/docs/guide/streaming.md +28 -0
- package/dist/lib/agents/docs/guide/tags.md +72 -0
- package/dist/lib/agents/docs/guide/testing.md +167 -7
- package/dist/lib/agents/docs/guide/troubleshooting.md +2 -53
- package/dist/lib/agents/docs/{appendix → guide}/ts-helpers.md +48 -0
- package/dist/lib/agents/docs/guide/ts-interop.md +16 -129
- package/dist/lib/agents/docs/guide/type-validation.md +30 -172
- package/dist/lib/agents/docs/guide/types.md +69 -84
- package/dist/lib/agents/docs/guide/unused.md +178 -0
- package/dist/lib/agents/docs/guide/unused2.md +258 -0
- package/dist/lib/agents/docs/guide/value-parameterized-types.md +186 -0
- package/dist/lib/agents/docs/guide/vscode-extension.md +33 -0
- package/dist/lib/agents/docs/guide/why-agency.md +323 -0
- package/dist/lib/agents/eval/goalJudge.js +35 -14
- package/dist/lib/agents/eval/judge.js +35 -14
- package/dist/lib/agents/eval/judgePairwise.agency +2 -2
- package/dist/lib/agents/eval/judgePairwise.js +35 -14
- package/dist/lib/agents/optimize/gepaReflect.js +35 -14
- package/dist/lib/agents/optimize/mutatePrompt.agency +2 -0
- package/dist/lib/agents/optimize/mutatePrompt.js +38 -15
- package/dist/lib/agents/policy/agent.agency +2 -2
- package/dist/lib/agents/policy/agent.js +94 -58
- package/dist/lib/agents/review/agent.js +41 -19
- package/dist/lib/backends/agencyGenerator.d.ts +14 -2
- package/dist/lib/backends/agencyGenerator.js +158 -53
- package/dist/lib/backends/agencyGenerator.matchBlock.test.js +106 -0
- package/dist/lib/backends/agencyGenerator.test.js +148 -0
- package/dist/lib/backends/effectDeclarationFormat.test.d.ts +1 -0
- package/dist/lib/backends/effectDeclarationFormat.test.js +32 -0
- package/dist/lib/backends/llmAttachmentCodegen.test.d.ts +1 -0
- package/dist/lib/backends/llmAttachmentCodegen.test.js +24 -0
- package/dist/lib/backends/llmNamedArgsCodegen.test.d.ts +1 -0
- package/dist/lib/backends/llmNamedArgsCodegen.test.js +40 -0
- package/dist/lib/backends/providerModules.codegen.test.d.ts +1 -0
- package/dist/lib/backends/{anthropicApiKey.codegen.test.js → providerModules.codegen.test.js} +12 -15
- package/dist/lib/backends/smoltalkDefaults.codegen.test.d.ts +1 -0
- package/dist/lib/backends/smoltalkDefaults.codegen.test.js +65 -0
- package/dist/lib/backends/typescriptBuilder.d.ts +82 -0
- package/dist/lib/backends/typescriptBuilder.integration.test.js +94 -4
- package/dist/lib/backends/typescriptBuilder.js +499 -158
- package/dist/lib/backends/typescriptGenerator/typeToString.js +8 -2
- package/dist/lib/backends/typescriptGenerator/typeToZodSchema.js +25 -28
- package/dist/lib/backends/typescriptGenerator/typeToZodSchema.test.js +73 -0
- package/dist/lib/cli/commands.d.ts +28 -0
- package/dist/lib/cli/commands.js +53 -4
- package/dist/lib/cli/doc.js +19 -0
- package/dist/lib/cli/doc.test.js +27 -1
- package/dist/lib/cli/eval/run.d.ts +18 -1
- package/dist/lib/cli/eval/run.js +55 -24
- package/dist/lib/cli/eval/run.workdir.test.d.ts +1 -0
- package/dist/lib/cli/eval/run.workdir.test.js +111 -0
- package/dist/lib/cli/fetchMockResolve.d.ts +6 -0
- package/dist/lib/cli/fetchMockResolve.js +51 -0
- package/dist/lib/cli/fetchMockResolve.test.d.ts +1 -0
- package/dist/lib/cli/fetchMockResolve.test.js +36 -0
- package/dist/lib/cli/hostedModels.d.ts +10 -0
- package/dist/lib/cli/hostedModels.js +61 -0
- package/dist/lib/cli/hostedModels.test.d.ts +1 -0
- package/dist/lib/cli/hostedModels.test.js +105 -0
- package/dist/lib/cli/local.d.ts +19 -0
- package/dist/lib/cli/local.js +109 -0
- package/dist/lib/cli/local.test.d.ts +1 -0
- package/dist/lib/cli/local.test.js +50 -0
- package/dist/lib/cli/pack.test.js +18 -0
- package/dist/lib/cli/precompile.d.ts +22 -0
- package/dist/lib/cli/precompile.js +125 -0
- package/dist/lib/cli/precompile.test.d.ts +1 -0
- package/dist/lib/cli/precompile.test.js +172 -0
- package/dist/lib/cli/test.js +55 -5
- package/dist/lib/cli/util.d.ts +8 -2
- package/dist/lib/cli/util.js +23 -6
- package/dist/lib/compiler/compile.js +5 -1
- package/dist/lib/compiler/compile.test.js +54 -1
- package/dist/lib/compiler/compileClosure.js +8 -9
- package/dist/lib/compiler/typecheck.js +10 -3
- package/dist/lib/config.d.ts +114 -6
- package/dist/lib/config.js +39 -3
- package/dist/lib/config.modelAliases.test.d.ts +1 -0
- package/dist/lib/config.modelAliases.test.js +11 -0
- package/dist/lib/config.providerModules.test.d.ts +1 -0
- package/dist/lib/config.providerModules.test.js +16 -0
- package/dist/lib/config.test.js +12 -0
- package/dist/lib/constants.d.ts +12 -0
- package/dist/lib/constants.js +12 -0
- package/dist/lib/effectDeclCollection.test.d.ts +1 -0
- package/dist/lib/effectDeclCollection.test.js +56 -0
- package/dist/lib/eval/runArtifacts.js +4 -10
- package/dist/lib/eval/runArtifacts.test.js +10 -22
- package/dist/lib/eval/runEvalInput.d.ts +11 -3
- package/dist/lib/eval/runEvalInput.js +16 -1
- package/dist/lib/eval/runTypes.d.ts +0 -4
- package/dist/lib/eval/runWorkdir.d.ts +25 -0
- package/dist/lib/eval/runWorkdir.js +46 -0
- package/dist/lib/eval/runWorkdir.test.d.ts +1 -0
- package/dist/lib/eval/runWorkdir.test.js +42 -0
- package/dist/lib/importPaths.d.ts +31 -1
- package/dist/lib/importPaths.js +88 -32
- package/dist/lib/importPaths.test.js +47 -4
- package/dist/lib/ir/builders.d.ts +6 -1
- package/dist/lib/ir/builders.js +3 -0
- package/dist/lib/ir/prettyPrint.js +31 -6
- package/dist/lib/ir/prettyPrint.test.js +70 -7
- package/dist/lib/ir/tsIR.d.ts +12 -2
- package/dist/lib/logsViewer/render.js +2 -0
- package/dist/lib/logsViewer/summary.js +13 -0
- package/dist/lib/logsViewer/summary.test.js +6 -0
- package/dist/lib/logsViewer/tree.js +38 -0
- package/dist/lib/logsViewer/tree.test.js +19 -0
- package/dist/lib/lowering/loweringError.d.ts +10 -0
- package/dist/lib/lowering/loweringError.js +13 -0
- package/dist/lib/lowering/patternLowering.ifExpr.test.d.ts +1 -0
- package/dist/lib/lowering/patternLowering.ifExpr.test.js +59 -0
- package/dist/lib/lowering/patternLowering.js +504 -30
- package/dist/lib/lowering/patternLowering.matchExpr.test.d.ts +1 -0
- package/dist/lib/lowering/patternLowering.matchExpr.test.js +572 -0
- package/dist/lib/lowering/patternLowering.test.js +102 -10
- package/dist/lib/lsp/codeAction.js +3 -3
- package/dist/lib/lsp/codeAction.test.js +13 -10
- package/dist/lib/lsp/completion.js +2 -2
- package/dist/lib/lsp/diagnostics.js +11 -4
- package/dist/lib/lsp/diagnostics.test.js +30 -0
- package/dist/lib/matchVal.d.ts +18 -0
- package/dist/lib/matchVal.js +26 -0
- package/dist/lib/optimize/artifacts.js +8 -35
- package/dist/lib/optimize/artifacts.test.js +12 -5
- package/dist/lib/optimize/baseOptimizer.d.ts +15 -9
- package/dist/lib/optimize/baseOptimizer.js +33 -27
- package/dist/lib/optimize/baseOptimizer.test.js +25 -15
- package/dist/lib/optimize/baseOptimizer.workdir.test.js +29 -24
- package/dist/lib/optimize/constraint.d.ts +45 -0
- package/dist/lib/optimize/constraint.js +78 -0
- package/dist/lib/optimize/constraint.test.d.ts +1 -0
- package/dist/lib/optimize/constraint.test.js +133 -0
- package/dist/lib/optimize/grading/scorecard.d.ts +6 -0
- package/dist/lib/optimize/grading/scorecard.js +8 -0
- package/dist/lib/optimize/mutator.js +2 -0
- package/dist/lib/optimize/mutator.test.js +37 -0
- package/dist/lib/optimize/optimizers/example.d.ts +4 -1
- package/dist/lib/optimize/optimizers/example.js +11 -12
- package/dist/lib/optimize/optimizers/example.test.js +2 -2
- package/dist/lib/optimize/optimizers/gepa.d.ts +1 -1
- package/dist/lib/optimize/optimizers/gepa.js +11 -10
- package/dist/lib/optimize/optimizers/gepa.test.js +5 -5
- package/dist/lib/optimize/optimizers/greedyReflective.d.ts +1 -1
- package/dist/lib/optimize/optimizers/greedyReflective.js +8 -7
- package/dist/lib/optimize/optimizers/greedyReflective.test.js +100 -2
- package/dist/lib/optimize/reporter.test.js +2 -0
- package/dist/lib/optimize/sourceMutator.d.ts +8 -4
- package/dist/lib/optimize/sourceMutator.js +63 -13
- package/dist/lib/optimize/sourceMutator.test.js +117 -0
- package/dist/lib/optimize/targets.d.ts +21 -3
- package/dist/lib/optimize/targets.js +119 -10
- package/dist/lib/optimize/targets.test.js +79 -5
- package/dist/lib/optimize/types.d.ts +8 -1
- package/dist/lib/optimize/workspace.d.ts +8 -30
- package/dist/lib/optimize/workspace.js +5 -78
- package/dist/lib/optimize/workspace.test.js +10 -70
- package/dist/lib/parseCache.d.ts +10 -0
- package/dist/lib/parseCache.js +58 -0
- package/dist/lib/parseCache.test.d.ts +1 -0
- package/dist/lib/parseCache.test.js +113 -0
- package/dist/lib/parser.js +27 -2
- package/dist/lib/parsers/dataStructures.test.js +86 -0
- package/dist/lib/parsers/debugMessagesLeak.test.d.ts +1 -0
- package/dist/lib/parsers/debugMessagesLeak.test.js +31 -0
- package/dist/lib/parsers/effectDeclaration.test.d.ts +1 -0
- package/dist/lib/parsers/effectDeclaration.test.js +107 -0
- package/dist/lib/parsers/function.test.js +39 -2
- package/dist/lib/parsers/ifExpression.test.d.ts +1 -0
- package/dist/lib/parsers/ifExpression.test.js +45 -0
- package/dist/lib/parsers/importStatement.test.js +49 -0
- package/dist/lib/parsers/literals.test.js +52 -0
- package/dist/lib/parsers/matchBlock.test.js +298 -59
- package/dist/lib/parsers/parsers.d.ts +21 -2
- package/dist/lib/parsers/parsers.js +232 -100
- package/dist/lib/parsers/pattern.test.js +10 -10
- package/dist/lib/parsers/typeHints.test.js +70 -0
- package/dist/lib/preprocessors/importResolver.d.ts +3 -1
- package/dist/lib/preprocessors/importResolver.js +37 -7
- package/dist/lib/preprocessors/importResolver.test.js +82 -0
- package/dist/lib/preprocessors/injectSchemaArgs.js +1 -2
- package/dist/lib/preprocessors/liftCallbacks.js +1 -1
- package/dist/lib/preprocessors/parallelDesugar.js +3 -2
- package/dist/lib/preprocessors/parallelDesugar.test.js +3 -2
- package/dist/lib/preprocessors/prunePreludeShadows.d.ts +22 -0
- package/dist/lib/preprocessors/prunePreludeShadows.js +55 -0
- package/dist/lib/preprocessors/prunePreludeShadows.test.d.ts +1 -0
- package/dist/lib/preprocessors/prunePreludeShadows.test.js +112 -0
- package/dist/lib/preprocessors/typescriptPreprocessor.core.test.js +25 -0
- package/dist/lib/preprocessors/typescriptPreprocessor.js +7 -5
- package/dist/lib/runtime/__tests__/testHelpers.js +0 -1
- package/dist/lib/runtime/agency.d.ts +3 -1
- package/dist/lib/runtime/agency.js +6 -7
- package/dist/lib/runtime/agencyFunction.js +13 -4
- package/dist/lib/runtime/agencyFunction.test.js +52 -0
- package/dist/lib/runtime/agencyInterrupt.test.js +91 -6
- package/dist/lib/runtime/agencyLlm.d.ts +14 -3
- package/dist/lib/runtime/agencyLlm.js +10 -0
- package/dist/lib/runtime/agencyLlm.test.js +17 -0
- package/dist/lib/runtime/callDepth.d.ts +36 -0
- package/dist/lib/runtime/callDepth.js +76 -0
- package/dist/lib/runtime/callDepth.test.d.ts +1 -0
- package/dist/lib/runtime/callDepth.test.js +67 -0
- package/dist/lib/runtime/callbackForwarding.d.ts +47 -0
- package/dist/lib/runtime/callbackForwarding.js +76 -0
- package/dist/lib/runtime/callbackForwarding.test.d.ts +1 -0
- package/dist/lib/runtime/callbackForwarding.test.js +72 -0
- package/dist/lib/runtime/configOverrides.d.ts +17 -5
- package/dist/lib/runtime/configOverrides.js +28 -6
- package/dist/lib/runtime/configOverrides.test.js +33 -0
- package/dist/lib/runtime/cost.d.ts +10 -0
- package/dist/lib/runtime/cost.js +17 -0
- package/dist/lib/runtime/costTelemetry.d.ts +24 -0
- package/dist/lib/runtime/costTelemetry.js +39 -0
- package/dist/lib/runtime/costTelemetry.test.d.ts +1 -0
- package/dist/lib/runtime/costTelemetry.test.js +92 -0
- package/dist/lib/runtime/deterministicClient.d.ts +9 -2
- package/dist/lib/runtime/deterministicClient.js +21 -1
- package/dist/lib/runtime/deterministicClient.test.js +29 -0
- package/dist/lib/runtime/eq.d.ts +12 -0
- package/dist/lib/runtime/eq.js +14 -0
- package/dist/lib/runtime/eq.test.d.ts +1 -0
- package/dist/lib/runtime/eq.test.js +32 -0
- package/dist/lib/runtime/errors.d.ts +20 -0
- package/dist/lib/runtime/errors.js +23 -0
- package/dist/lib/runtime/errors.test.js +18 -0
- package/dist/lib/runtime/fetchMock.d.ts +12 -0
- package/dist/lib/runtime/fetchMock.js +167 -0
- package/dist/lib/runtime/fetchMock.test.d.ts +1 -0
- package/dist/lib/runtime/fetchMock.test.js +145 -0
- package/dist/lib/runtime/hooks.d.ts +21 -3
- package/dist/lib/runtime/hooks.js +19 -0
- package/dist/lib/runtime/hooks.test.js +39 -2
- package/dist/lib/runtime/image-client.test.d.ts +1 -0
- package/dist/lib/runtime/image-client.test.js +22 -0
- package/dist/lib/runtime/index.d.ts +4 -1
- package/dist/lib/runtime/index.js +3 -1
- package/dist/lib/runtime/interrupts.d.ts +50 -0
- package/dist/lib/runtime/interrupts.js +206 -126
- package/dist/lib/runtime/interrupts.test.js +110 -1
- package/dist/lib/runtime/ipc.configOverrides.test.js +35 -17
- package/dist/lib/runtime/ipc.d.ts +238 -21
- package/dist/lib/runtime/ipc.js +622 -95
- package/dist/lib/runtime/ipc.test.js +453 -2
- package/dist/lib/runtime/llmClient.d.ts +71 -3
- package/dist/lib/runtime/llmClient.hostedTools.test.d.ts +1 -0
- package/dist/lib/runtime/llmClient.hostedTools.test.js +45 -0
- package/dist/lib/runtime/llmClient.js +71 -11
- package/dist/lib/runtime/llmClient.test.d.ts +1 -0
- package/dist/lib/runtime/llmClient.test.js +80 -0
- package/dist/lib/runtime/llmRetry.d.ts +65 -0
- package/dist/lib/runtime/llmRetry.js +158 -0
- package/dist/lib/runtime/llmRetry.test.d.ts +1 -0
- package/dist/lib/runtime/llmRetry.test.js +94 -0
- package/dist/lib/runtime/memory/manager.d.ts +25 -0
- package/dist/lib/runtime/memory/manager.js +115 -14
- package/dist/lib/runtime/memory/manager.test.js +60 -21
- package/dist/lib/runtime/memory/types.d.ts +7 -0
- package/dist/lib/runtime/node.js +10 -1
- package/dist/lib/runtime/prompt.attachments.test.d.ts +1 -0
- package/dist/lib/runtime/prompt.attachments.test.js +41 -0
- package/dist/lib/runtime/prompt.d.ts +65 -2
- package/dist/lib/runtime/prompt.js +276 -31
- package/dist/lib/runtime/prompt.test.js +170 -1
- package/dist/lib/runtime/promptRunner.d.ts +1 -1
- package/dist/lib/runtime/promptRunner.js +1 -1
- package/dist/lib/runtime/providerModules.d.ts +27 -0
- package/dist/lib/runtime/providerModules.js +87 -0
- package/dist/lib/runtime/providerModules.test.d.ts +1 -0
- package/dist/lib/runtime/providerModules.test.js +90 -0
- package/dist/lib/runtime/redactForStatelog.d.ts +20 -0
- package/dist/lib/runtime/redactForStatelog.js +32 -0
- package/dist/lib/runtime/redactForStatelog.test.d.ts +1 -0
- package/dist/lib/runtime/redactForStatelog.test.js +84 -0
- package/dist/lib/runtime/replyAttachments.d.ts +46 -0
- package/dist/lib/runtime/replyAttachments.js +143 -0
- package/dist/lib/runtime/replyAttachments.test.d.ts +1 -0
- package/dist/lib/runtime/replyAttachments.test.js +205 -0
- package/dist/lib/runtime/result.js +8 -0
- package/dist/lib/runtime/revivers/index.js +2 -0
- package/dist/lib/runtime/revivers/taggedReviver.d.ts +8 -0
- package/dist/lib/runtime/revivers/taggedReviver.js +30 -0
- package/dist/lib/runtime/revivers/taggedReviver.test.d.ts +1 -0
- package/dist/lib/runtime/revivers/taggedReviver.test.js +42 -0
- package/dist/lib/runtime/runBatch.js +33 -16
- package/dist/lib/runtime/runBatch.test.js +62 -0
- package/dist/lib/runtime/runner.d.ts +26 -4
- package/dist/lib/runtime/runner.js +125 -49
- package/dist/lib/runtime/runner.test.js +217 -1
- package/dist/lib/runtime/simpleOpenAIClient.js +1 -1
- package/dist/lib/runtime/state/context.d.ts +22 -12
- package/dist/lib/runtime/state/context.js +43 -14
- package/dist/lib/runtime/state/context.providerModules.test.d.ts +1 -0
- package/dist/lib/runtime/state/context.providerModules.test.js +38 -0
- package/dist/lib/runtime/state/globalStore.d.ts +42 -0
- package/dist/lib/runtime/state/globalStore.js +187 -2
- package/dist/lib/runtime/state/globalStore.tags.test.d.ts +1 -0
- package/dist/lib/runtime/state/globalStore.tags.test.js +211 -0
- package/dist/lib/runtime/state/stateStack.d.ts +34 -0
- package/dist/lib/runtime/state/stateStack.js +46 -0
- package/dist/lib/runtime/state/tagSymbol.d.ts +6 -0
- package/dist/lib/runtime/state/tagSymbol.js +49 -0
- package/dist/lib/runtime/state/tagSymbol.test.d.ts +1 -0
- package/dist/lib/runtime/state/tagSymbol.test.js +60 -0
- package/dist/lib/runtime/streaming.d.ts +7 -2
- package/dist/lib/runtime/streaming.js +31 -8
- package/dist/lib/runtime/subprocess-bootstrap.js +90 -35
- package/dist/lib/runtime/subprocessRunInfo.d.ts +46 -0
- package/dist/lib/runtime/subprocessRunInfo.js +53 -0
- package/dist/lib/runtime/subprocessRunInfo.test.d.ts +1 -0
- package/dist/lib/runtime/subprocessRunInfo.test.js +32 -0
- package/dist/lib/runtime/topsortCycleErrors.test.js +69 -0
- package/dist/lib/runtime/utils.d.ts +16 -2
- package/dist/lib/runtime/utils.js +13 -4
- package/dist/lib/runtime/utils.test.js +27 -0
- package/dist/lib/statelogClient.d.ts +40 -1
- package/dist/lib/statelogClient.js +98 -1
- package/dist/lib/statelogClient.redaction.test.d.ts +1 -0
- package/dist/lib/statelogClient.redaction.test.js +131 -0
- package/dist/lib/statelogClient.test.js +13 -0
- package/dist/lib/stdlib/abortable.d.ts +6 -0
- package/dist/lib/stdlib/abortable.js +26 -1
- package/dist/lib/stdlib/agency.d.ts +7 -2
- package/dist/lib/stdlib/agency.js +17 -13
- package/dist/lib/stdlib/agencyEval.js +7 -1
- package/dist/lib/stdlib/args.d.ts +4 -1
- package/dist/lib/stdlib/args.js +68 -0
- package/dist/lib/stdlib/builtins.d.ts +2 -1
- package/dist/lib/stdlib/builtins.js +22 -13
- package/dist/lib/stdlib/cli.d.ts +65 -0
- package/dist/lib/stdlib/cli.js +217 -39
- package/dist/lib/stdlib/git.d.ts +29 -0
- package/dist/lib/stdlib/git.js +80 -0
- package/dist/lib/stdlib/gitCore.d.ts +132 -0
- package/dist/lib/stdlib/gitCore.js +231 -0
- package/dist/lib/stdlib/gitParse.d.ts +17 -0
- package/dist/lib/stdlib/gitParse.js +259 -0
- package/dist/lib/stdlib/http.d.ts +5 -4
- package/dist/lib/stdlib/http.js +42 -1
- package/dist/lib/stdlib/image.d.ts +7 -0
- package/dist/lib/stdlib/image.js +80 -0
- package/dist/lib/stdlib/layout/ansi.js +35 -3
- package/dist/lib/stdlib/layout/axis.js +14 -5
- package/dist/lib/stdlib/layout/barchart.js +5 -5
- package/dist/lib/stdlib/layout/block.js +2 -2
- package/dist/lib/stdlib/layout/border.js +2 -2
- package/dist/lib/stdlib/layout/box.js +12 -4
- package/dist/lib/stdlib/layout/nodes.d.ts +0 -1
- package/dist/lib/stdlib/layout/nodes.js +40 -17
- package/dist/lib/stdlib/layout/render.js +7 -3
- package/dist/lib/stdlib/layout/sizing.d.ts +1 -0
- package/dist/lib/stdlib/layout/sizing.js +1 -1
- package/dist/lib/stdlib/layout/table.js +11 -11
- package/dist/lib/stdlib/layout.js +1 -1
- package/dist/lib/stdlib/llm.d.ts +54 -1
- package/dist/lib/stdlib/llm.js +104 -0
- package/dist/lib/stdlib/localModels.d.ts +209 -0
- package/dist/lib/stdlib/localModels.js +904 -0
- package/dist/lib/stdlib/mediaPathScan.d.ts +31 -0
- package/dist/lib/stdlib/mediaPathScan.js +79 -0
- package/dist/lib/stdlib/providers/llama-cpp.mjs +79 -0
- package/dist/lib/stdlib/providers/llamaModelConfig.d.ts +7 -0
- package/dist/lib/stdlib/providers/llamaModelConfig.js +7 -0
- package/dist/lib/stdlib/search.d.ts +7 -0
- package/dist/lib/stdlib/search.js +40 -0
- package/dist/lib/stdlib/shell.d.ts +1 -1
- package/dist/lib/stdlib/shell.js +4 -2
- package/dist/lib/stdlib/tag.d.ts +17 -0
- package/dist/lib/stdlib/tag.js +49 -0
- package/dist/lib/stdlib/thread.d.ts +38 -3
- package/dist/lib/stdlib/thread.js +71 -2
- package/dist/lib/stdlib/threads.d.ts +12 -0
- package/dist/lib/stdlib/threads.js +48 -17
- package/dist/lib/stdlib/version.d.ts +1 -1
- package/dist/lib/stdlib/version.js +1 -1
- package/dist/lib/symbolTable.d.ts +10 -1
- package/dist/lib/symbolTable.js +27 -7
- package/dist/lib/templates/backends/agency/template.d.ts +1 -1
- package/dist/lib/templates/backends/agency/template.js +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/imports.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/imports.js +14 -2
- package/dist/lib/templates/backends/typescriptGenerator/runnerIfElse.d.ts +2 -1
- package/dist/lib/templates/backends/typescriptGenerator/runnerIfElse.js +1 -1
- package/dist/lib/typeChecker/assignability.d.ts +8 -0
- package/dist/lib/typeChecker/assignability.js +26 -4
- package/dist/lib/typeChecker/assignability.test.js +59 -1
- package/dist/lib/typeChecker/attachments.test.d.ts +1 -0
- package/dist/lib/typeChecker/attachments.test.js +45 -0
- package/dist/lib/typeChecker/builtinNamedArgs.test.js +30 -0
- package/dist/lib/typeChecker/builtins.js +134 -40
- package/dist/lib/typeChecker/checker.d.ts +25 -0
- package/dist/lib/typeChecker/checker.js +41 -4
- package/dist/lib/typeChecker/definiteReturns.d.ts +16 -0
- package/dist/lib/typeChecker/definiteReturns.js +52 -0
- package/dist/lib/typeChecker/definiteReturns.test.d.ts +1 -0
- package/dist/lib/typeChecker/definiteReturns.test.js +203 -0
- package/dist/lib/typeChecker/effectPayloadCheck.d.ts +17 -0
- package/dist/lib/typeChecker/effectPayloadCheck.js +181 -0
- package/dist/lib/typeChecker/effectPayloadCheck.test.d.ts +1 -0
- package/dist/lib/typeChecker/effectPayloadCheck.test.js +192 -0
- package/dist/lib/typeChecker/flow.d.ts +131 -0
- package/dist/lib/typeChecker/flow.js +248 -0
- package/dist/lib/typeChecker/flow.test.d.ts +1 -0
- package/dist/lib/typeChecker/flow.test.js +467 -0
- package/dist/lib/typeChecker/flowAssignments.test.d.ts +1 -0
- package/dist/lib/typeChecker/flowAssignments.test.js +84 -0
- package/dist/lib/typeChecker/flowBuilder.d.ts +32 -0
- package/dist/lib/typeChecker/flowBuilder.js +337 -0
- package/dist/lib/typeChecker/flowBuilder.test.d.ts +1 -0
- package/dist/lib/typeChecker/flowBuilder.test.js +215 -0
- package/dist/lib/typeChecker/flowNarrowing.test.d.ts +1 -0
- package/dist/lib/typeChecker/flowNarrowing.test.js +96 -0
- package/dist/lib/typeChecker/handlerBodyInterrupts.test.js +1 -1
- package/dist/lib/typeChecker/handlerParamTyping.d.ts +31 -0
- package/dist/lib/typeChecker/handlerParamTyping.js +108 -0
- package/dist/lib/typeChecker/handlerParamTyping.test.d.ts +1 -0
- package/dist/lib/typeChecker/handlerParamTyping.test.js +379 -0
- package/dist/lib/typeChecker/ifExpression.test.d.ts +1 -0
- package/dist/lib/typeChecker/ifExpression.test.js +49 -0
- package/dist/lib/typeChecker/index.js +43 -3
- package/dist/lib/typeChecker/inference.d.ts +6 -0
- package/dist/lib/typeChecker/inference.js +1 -1
- package/dist/lib/typeChecker/interruptAnalysis.d.ts +9 -0
- package/dist/lib/typeChecker/interruptAnalysis.js +21 -13
- package/dist/lib/typeChecker/literalType.d.ts +9 -0
- package/dist/lib/typeChecker/literalType.js +18 -0
- package/dist/lib/typeChecker/matchArmNarrowing.test.d.ts +1 -0
- package/dist/lib/typeChecker/matchArmNarrowing.test.js +172 -0
- package/dist/lib/typeChecker/matchExhaustiveness.d.ts +9 -0
- package/dist/lib/typeChecker/matchExhaustiveness.js +238 -0
- package/dist/lib/typeChecker/matchExhaustiveness.test.d.ts +1 -0
- package/dist/lib/typeChecker/matchExhaustiveness.test.js +404 -0
- package/dist/lib/typeChecker/matchExprTypes.d.ts +37 -0
- package/dist/lib/typeChecker/matchExprTypes.js +143 -0
- package/dist/lib/typeChecker/matchExpression.test.d.ts +1 -0
- package/dist/lib/typeChecker/matchExpression.test.js +240 -0
- package/dist/lib/typeChecker/memberPathNarrowing.test.d.ts +1 -0
- package/dist/lib/typeChecker/memberPathNarrowing.test.js +419 -0
- package/dist/lib/typeChecker/narrowing.d.ts +113 -0
- package/dist/lib/typeChecker/narrowing.js +396 -0
- package/dist/lib/typeChecker/narrowing.test.d.ts +1 -0
- package/dist/lib/typeChecker/narrowing.test.js +930 -0
- package/dist/lib/typeChecker/neverType.test.d.ts +1 -0
- package/dist/lib/typeChecker/neverType.test.js +19 -0
- package/dist/lib/typeChecker/nullNarrowing.test.d.ts +1 -0
- package/dist/lib/typeChecker/nullNarrowing.test.js +246 -0
- package/dist/lib/typeChecker/nullish.test.d.ts +1 -0
- package/dist/lib/typeChecker/nullish.test.js +16 -0
- package/dist/lib/typeChecker/pathSegments.d.ts +56 -0
- package/dist/lib/typeChecker/pathSegments.js +73 -0
- package/dist/lib/typeChecker/primitiveMembers.d.ts +2 -2
- package/dist/lib/typeChecker/primitiveMembers.js +5 -5
- package/dist/lib/typeChecker/primitives.d.ts +2 -1
- package/dist/lib/typeChecker/primitives.js +2 -1
- package/dist/lib/typeChecker/recordLike.d.ts +18 -0
- package/dist/lib/typeChecker/recordLike.js +27 -0
- package/dist/lib/typeChecker/resolveCall.js +4 -0
- package/dist/lib/typeChecker/resultUnion.d.ts +8 -0
- package/dist/lib/typeChecker/resultUnion.js +43 -0
- package/dist/lib/typeChecker/scope.d.ts +9 -1
- package/dist/lib/typeChecker/scope.js +25 -4
- package/dist/lib/typeChecker/scope.test.js +15 -0
- package/dist/lib/typeChecker/scopeVisibility.test.d.ts +1 -0
- package/dist/lib/typeChecker/scopeVisibility.test.js +138 -0
- package/dist/lib/typeChecker/scopes.d.ts +7 -0
- package/dist/lib/typeChecker/scopes.js +164 -113
- package/dist/lib/typeChecker/strictMemberAccess.test.d.ts +1 -0
- package/dist/lib/typeChecker/strictMemberAccess.test.js +221 -0
- package/dist/lib/typeChecker/synthesizer.js +257 -47
- package/dist/lib/typeChecker/typeCases.d.ts +28 -0
- package/dist/lib/typeChecker/typeCases.js +122 -0
- package/dist/lib/typeChecker/typeCases.test.d.ts +1 -0
- package/dist/lib/typeChecker/typeCases.test.js +150 -0
- package/dist/lib/typeChecker/types.d.ts +26 -0
- package/dist/lib/typeChecker/utils.d.ts +19 -0
- package/dist/lib/typeChecker/utils.js +50 -10
- package/dist/lib/typeChecker.test.js +351 -34
- package/dist/lib/types/dataStructures.d.ts +18 -1
- package/dist/lib/types/effectDeclaration.d.ts +11 -0
- package/dist/lib/types/effectDeclaration.js +1 -0
- package/dist/lib/types/function.d.ts +1 -1
- package/dist/lib/types/function.js +2 -0
- package/dist/lib/types/function.test.d.ts +1 -0
- package/dist/lib/types/function.test.js +11 -0
- package/dist/lib/types/ifElse.d.ts +4 -0
- package/dist/lib/types/importStatement.d.ts +4 -0
- package/dist/lib/types/matchBlock.d.ts +15 -3
- package/dist/lib/types/matchYield.d.ts +16 -0
- package/dist/lib/types/matchYield.js +1 -0
- package/dist/lib/types.d.ts +54 -3
- package/dist/lib/types.js +37 -0
- package/dist/lib/utils/mapBodies.js +1 -1
- package/dist/lib/utils/node.d.ts +30 -0
- package/dist/lib/utils/node.js +160 -3
- package/dist/lib/utils/projectTree.d.ts +13 -0
- package/dist/lib/utils/projectTree.js +42 -0
- package/dist/lib/utils/projectTree.test.d.ts +1 -0
- package/dist/lib/utils/projectTree.test.js +49 -0
- package/dist/lib/utils/termcolors.d.ts +1 -1
- package/dist/lib/utils/termcolors.js +1 -1
- package/dist/scripts/agency.js +27 -0
- package/dist/scripts/genModelHashes.d.ts +10 -0
- package/dist/scripts/genModelHashes.js +88 -0
- package/package.json +4 -2
- package/stdlib/agency/eval.agency +31 -59
- package/stdlib/agency/eval.js +56 -84
- package/stdlib/agency/local.agency +189 -0
- package/stdlib/agency/local.js +1685 -0
- package/stdlib/agency.agency +169 -98
- package/stdlib/agency.js +278 -286
- package/stdlib/agent.agency +69 -71
- package/stdlib/agent.js +352 -51
- package/stdlib/args.agency +30 -53
- package/stdlib/args.js +44 -20
- package/stdlib/array.agency +21 -221
- package/stdlib/array.js +116 -416
- package/stdlib/{keyring.agency → auth/keyring.agency} +17 -17
- package/stdlib/auth/keyring.js +810 -0
- package/stdlib/{oauth.agency → auth/oauth.agency} +24 -27
- package/stdlib/auth/oauth.js +873 -0
- package/stdlib/browser.js +13 -3
- package/stdlib/calendar.agency +29 -88
- package/stdlib/calendar.js +40 -25
- package/stdlib/capabilities.agency +7 -3
- package/stdlib/capabilities.js +41 -18
- package/stdlib/chart.js +21 -10
- package/stdlib/cli.js +139 -6
- package/stdlib/clipboard.agency +19 -2
- package/stdlib/clipboard.js +40 -19
- package/stdlib/concurrency.agency +34 -22
- package/stdlib/concurrency.js +45 -38
- package/stdlib/data/finance/dbnomics.agency +115 -0
- package/stdlib/data/finance/dbnomics.js +934 -0
- package/stdlib/data/finance/edgar.agency +172 -0
- package/stdlib/data/finance/edgar.js +1598 -0
- package/stdlib/data/finance/fred.agency +215 -0
- package/stdlib/data/finance/fred.js +2028 -0
- package/stdlib/data/finance/gdelt.agency +98 -0
- package/stdlib/data/finance/gdelt.js +873 -0
- package/stdlib/data/people/littlesis.agency +322 -0
- package/stdlib/data/people/littlesis.js +3221 -0
- package/stdlib/data/tech/hackernews.agency +344 -0
- package/stdlib/data/tech/hackernews.js +3814 -0
- package/stdlib/data/tech/yc.agency +253 -0
- package/stdlib/data/tech/yc.js +2913 -0
- package/stdlib/date.agency +34 -81
- package/stdlib/date.js +53 -39
- package/stdlib/email.js +13 -3
- package/stdlib/fs.agency +44 -16
- package/stdlib/fs.js +50 -37
- package/stdlib/git.agency +327 -0
- package/stdlib/git.js +3724 -0
- package/stdlib/http.agency +39 -14
- package/stdlib/http.js +39 -27
- package/stdlib/image.agency +44 -0
- package/stdlib/image.js +404 -0
- package/stdlib/imessage.js +13 -3
- package/stdlib/index.agency +318 -116
- package/stdlib/index.js +1762 -517
- package/stdlib/keyring.js +13 -3
- package/stdlib/layout.js +23 -12
- package/stdlib/llm.agency +115 -16
- package/stdlib/llm.js +726 -36
- package/stdlib/markdown.agency +38 -55
- package/stdlib/markdown.js +58 -66
- package/stdlib/math.agency +16 -0
- package/stdlib/math.js +175 -20
- package/stdlib/memory.agency +82 -90
- package/stdlib/memory.js +67 -114
- package/stdlib/{email.agency → messaging/email.agency} +11 -15
- package/stdlib/messaging/email.js +1112 -0
- package/stdlib/{imessage.agency → messaging/imessage.agency} +7 -8
- package/stdlib/messaging/imessage.js +387 -0
- package/stdlib/{sms.agency → messaging/sms.agency} +8 -8
- package/stdlib/messaging/sms.js +429 -0
- package/stdlib/oauth.js +13 -3
- package/stdlib/object.agency +52 -5
- package/stdlib/object.js +409 -26
- package/stdlib/path.agency +29 -4
- package/stdlib/path.js +54 -30
- package/stdlib/policy.agency +115 -198
- package/stdlib/policy.js +212 -154
- package/stdlib/schemas.js +13 -3
- package/stdlib/search.js +225 -6
- package/stdlib/shell.agency +51 -27
- package/stdlib/shell.js +75 -53
- package/stdlib/skills.agency +41 -20
- package/stdlib/skills.js +81 -43
- package/stdlib/sms.js +13 -3
- package/stdlib/speech.agency +42 -24
- package/stdlib/speech.js +46 -42
- package/stdlib/statelog.agency +64 -46
- package/stdlib/statelog.js +165 -66
- package/stdlib/strategy.agency +27 -0
- package/stdlib/strategy.js +158 -20
- package/stdlib/syntax.agency +34 -27
- package/stdlib/syntax.js +46 -46
- package/stdlib/system.agency +62 -23
- package/stdlib/system.js +210 -49
- package/stdlib/table.js +19 -8
- package/stdlib/tag.agency +62 -0
- package/stdlib/tag.js +966 -0
- package/stdlib/thread.agency +282 -67
- package/stdlib/thread.js +1522 -263
- package/stdlib/threads.js +18 -7
- package/stdlib/types.js +13 -3
- package/stdlib/{chart.agency → ui/chart.agency} +41 -48
- package/stdlib/ui/chart.js +993 -0
- package/stdlib/ui/cli.agency +119 -0
- package/stdlib/ui/cli.js +1096 -0
- package/stdlib/{layout.agency → ui/layout.agency} +110 -178
- package/stdlib/ui/layout.js +3740 -0
- package/stdlib/{table.agency → ui/table.agency} +49 -50
- package/stdlib/ui/table.js +1434 -0
- package/stdlib/ui.agency +194 -316
- package/stdlib/ui.js +442 -364
- package/stdlib/validation.agency +197 -0
- package/stdlib/validation.js +1707 -0
- package/stdlib/validators.js +13 -3
- package/stdlib/weather.agency +27 -4
- package/stdlib/weather.js +39 -21
- package/stdlib/web/browser.agency +52 -0
- package/stdlib/web/browser.js +431 -0
- package/stdlib/web/search.agency +101 -0
- package/stdlib/web/search.js +638 -0
- package/stdlib/wikipedia.agency +28 -3
- package/stdlib/wikipedia.js +46 -21
- package/dist/lib/agents/docs/appendix/agency-stdlib.md +0 -25
- package/dist/lib/agents/docs/appendix/agency-vs-typescript.md +0 -14
- package/dist/lib/agents/docs/appendix/appendix/agency-stdlib.md +0 -25
- package/dist/lib/agents/docs/appendix/appendix/agency-vs-typescript.md +0 -14
- package/dist/lib/agents/docs/appendix/appendix/vscode-extension.md +0 -11
- package/dist/lib/agents/docs/appendix/vscode-extension.md +0 -11
- package/dist/lib/agents/docs/guide/agents-101.md +0 -212
- package/dist/lib/agents/docs/guide/execution-model.md +0 -130
- package/dist/lib/agents/docs/guide/guide/agents-101.md +0 -212
- package/dist/lib/agents/docs/guide/guide/execution-model.md +0 -130
- package/dist/lib/agents/docs/guide/guide/message-history-and-threads.md +0 -88
- package/dist/lib/agents/docs/guide/guide/odds-and-ends.md +0 -41
- package/dist/lib/agents/docs/guide/guide/structured-interrupts.md +0 -49
- package/dist/lib/agents/docs/guide/message-history-and-threads.md +0 -88
- package/dist/lib/agents/docs/guide/odds-and-ends.md +0 -41
- package/dist/lib/agents/docs/guide/structured-interrupts.md +0 -49
- package/stdlib/browser.agency +0 -47
- package/stdlib/cli.agency +0 -132
- package/stdlib/schemas.agency +0 -37
- package/stdlib/search.agency +0 -57
- package/stdlib/threads.agency +0 -198
- package/stdlib/types.agency +0 -58
- package/stdlib/validators.agency +0 -150
- /package/dist/lib/agents/docs/{appendix → guide}/advanced-types.md +0 -0
- /package/dist/lib/agents/docs/{appendix/appendix → guide/guide}/advanced-types.md +0 -0
- /package/dist/lib/agents/docs/{appendix/appendix → guide/guide}/schema-parameter-injection.md +0 -0
- /package/dist/lib/agents/docs/{appendix → guide}/schema-parameter-injection.md +0 -0
- /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,
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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(
|
|
127
|
-
__registerTool(
|
|
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
|
|
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":
|
|
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
|
};
|
package/stdlib/memory.agency
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// The
|
|
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`
|
|
51
|
-
|
|
52
|
-
|
|
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
|
|
66
|
-
|
|
67
|
-
|
|
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
|
|
89
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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`
|
|
151
|
-
the
|
|
152
|
-
|
|
153
|
-
|
|
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
|
|
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
|
|
184
|
-
|
|
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
|
|
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
|
-
|
|
229
|
-
|
|
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
|
"""
|