agency-lang 0.0.107 → 0.1.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/review/agent.agency +91 -0
- package/dist/lib/agents/review/prompts/system.md +18 -0
- package/dist/lib/backends/agencyGenerator.d.ts +12 -2
- package/dist/lib/backends/agencyGenerator.js +194 -159
- package/dist/lib/backends/typescriptBuilder.d.ts +24 -5
- package/dist/lib/backends/typescriptBuilder.integration.test.js +2 -2
- package/dist/lib/backends/typescriptBuilder.js +260 -139
- package/dist/lib/backends/typescriptGenerator/builtins.js +3 -3
- package/dist/lib/backends/typescriptGenerator/typeToZodSchema.js +2 -0
- package/dist/lib/backends/typescriptGenerator/typeToZodSchema.test.js +11 -0
- package/dist/lib/backends/typescriptGenerator.d.ts +2 -2
- package/dist/lib/backends/typescriptGenerator.js +4 -4
- package/dist/lib/cli/agent.js +2 -25
- package/dist/lib/cli/bundle.js +6 -5
- package/dist/lib/cli/commands.d.ts +1 -1
- package/dist/lib/cli/commands.js +9 -7
- package/dist/lib/cli/debug.js +14 -3
- package/dist/lib/cli/doc.d.ts +1 -1
- package/dist/lib/cli/doc.js +9 -8
- package/dist/lib/cli/doc.test.js +1 -1
- package/dist/lib/cli/optimize.js +2 -2
- package/dist/lib/cli/optimize.test.js +3 -3
- package/dist/lib/cli/review.d.ts +2 -0
- package/dist/lib/cli/review.js +5 -0
- package/dist/lib/cli/runBundledAgent.d.ts +2 -0
- package/dist/lib/cli/runBundledAgent.js +24 -0
- package/dist/lib/cli/schedule/backends/backends.test.js +177 -0
- package/dist/lib/cli/schedule/backends/crontab.d.ts +6 -0
- package/dist/lib/cli/schedule/backends/crontab.js +38 -0
- package/dist/lib/cli/schedule/backends/expandField.test.js +66 -0
- package/dist/lib/cli/schedule/backends/index.d.ts +11 -0
- package/dist/lib/cli/schedule/backends/index.js +29 -0
- package/dist/lib/cli/schedule/backends/launchd.d.ts +7 -0
- package/dist/lib/cli/schedule/backends/launchd.js +89 -0
- package/dist/lib/cli/schedule/backends/systemd.d.ts +6 -0
- package/dist/lib/cli/schedule/backends/systemd.js +49 -0
- package/dist/lib/cli/schedule/backends/writeRunScript.d.ts +2 -0
- package/dist/lib/cli/schedule/backends/writeRunScript.js +18 -0
- package/dist/lib/cli/schedule/cron.d.ts +12 -0
- package/dist/lib/cli/schedule/cron.js +88 -0
- package/dist/lib/cli/schedule/cron.test.js +89 -0
- package/dist/lib/cli/schedule/index.d.ts +39 -0
- package/dist/lib/cli/schedule/index.js +128 -0
- package/dist/lib/cli/schedule/index.test.js +192 -0
- package/dist/lib/cli/schedule/registry.d.ts +22 -0
- package/dist/lib/cli/schedule/registry.js +38 -0
- package/dist/lib/cli/schedule/registry.test.js +57 -0
- package/dist/lib/cli/test.js +17 -1
- package/dist/lib/cli/util.d.ts +13 -3
- package/dist/lib/cli/util.js +97 -62
- package/dist/lib/compilationUnit.d.ts +56 -0
- package/dist/lib/compilationUnit.js +226 -0
- package/dist/lib/{programInfo.test.js → compilationUnit.test.js} +17 -17
- package/dist/lib/config.d.ts +0 -16
- package/dist/lib/config.js +1 -80
- package/dist/lib/config.test.js +0 -162
- package/dist/lib/debugger/debuggerState.js +1 -1
- package/dist/lib/debugger/driver.d.ts +2 -7
- package/dist/lib/debugger/driver.js +14 -59
- package/dist/lib/debugger/driver.test.js +520 -645
- package/dist/lib/debugger/exportFrames.test.js +52 -0
- package/dist/lib/debugger/overlays.d.ts +18 -0
- package/dist/lib/debugger/overlays.js +234 -0
- package/dist/lib/debugger/testHelpers.js +3 -4
- package/dist/lib/debugger/testSession.d.ts +41 -0
- package/dist/lib/debugger/testSession.js +220 -0
- package/dist/lib/debugger/testSession.test.js +49 -0
- package/dist/lib/debugger/trace.test.js +1 -2
- package/dist/lib/debugger/ui.d.ts +41 -33
- package/dist/lib/debugger/ui.js +376 -1045
- package/dist/lib/formatter.js +2 -2
- package/dist/lib/formatter.test.js +118 -0
- package/dist/lib/importPaths.d.ts +4 -0
- package/dist/lib/importPaths.js +13 -0
- package/dist/lib/importPaths.test.js +13 -13
- package/dist/lib/ir/builders.d.ts +3 -4
- package/dist/lib/ir/builders.js +3 -8
- package/dist/lib/ir/prettyPrint.js +1 -1
- package/dist/lib/ir/tsIR.d.ts +1 -1
- package/dist/lib/lsp/codeAction.d.ts +4 -0
- package/dist/lib/lsp/codeAction.js +104 -0
- package/dist/lib/lsp/codeAction.test.js +99 -0
- package/dist/lib/lsp/completion.d.ts +12 -2
- package/dist/lib/lsp/completion.js +285 -13
- package/dist/lib/lsp/completion.test.js +48 -9
- package/dist/lib/lsp/definition.d.ts +3 -1
- package/dist/lib/lsp/definition.js +40 -4
- package/dist/lib/lsp/definition.test.js +4 -4
- package/dist/lib/lsp/diagnostics.d.ts +4 -2
- package/dist/lib/lsp/diagnostics.js +8 -8
- package/dist/lib/lsp/diagnostics.test.js +2 -1
- package/dist/lib/lsp/documentHighlight.d.ts +3 -0
- package/dist/lib/lsp/documentHighlight.js +13 -0
- package/dist/lib/lsp/documentHighlight.test.js +29 -0
- package/dist/lib/lsp/documentLink.d.ts +4 -0
- package/dist/lib/lsp/documentLink.js +44 -0
- package/dist/lib/lsp/documentLink.test.js +42 -0
- package/dist/lib/lsp/documentState.d.ts +12 -0
- package/dist/lib/lsp/documentState.js +1 -0
- package/dist/lib/lsp/documentSymbol.js +2 -5
- package/dist/lib/lsp/foldingRange.d.ts +4 -0
- package/dist/lib/lsp/foldingRange.js +31 -0
- package/dist/lib/lsp/foldingRange.test.d.ts +1 -0
- package/dist/lib/lsp/foldingRange.test.js +44 -0
- package/dist/lib/lsp/hover.d.ts +3 -1
- package/dist/lib/lsp/hover.js +27 -10
- package/dist/lib/lsp/hover.test.js +29 -9
- package/dist/lib/lsp/inlayHint.d.ts +4 -0
- package/dist/lib/lsp/inlayHint.js +37 -0
- package/dist/lib/lsp/inlayHint.test.d.ts +1 -0
- package/dist/lib/lsp/inlayHint.test.js +40 -0
- package/dist/lib/lsp/references.d.ts +3 -0
- package/dist/lib/lsp/references.js +12 -0
- package/dist/lib/lsp/references.test.d.ts +1 -0
- package/dist/lib/lsp/references.test.js +41 -0
- package/dist/lib/lsp/rename.d.ts +4 -0
- package/dist/lib/lsp/rename.js +30 -0
- package/dist/lib/lsp/rename.test.d.ts +1 -0
- package/dist/lib/lsp/rename.test.js +49 -0
- package/dist/lib/lsp/scopeResolution.d.ts +11 -0
- package/dist/lib/lsp/scopeResolution.js +48 -0
- package/dist/lib/lsp/scopeResolution.test.d.ts +1 -0
- package/dist/lib/lsp/scopeResolution.test.js +60 -0
- package/dist/lib/lsp/semantics.js +54 -57
- package/dist/lib/lsp/server.js +115 -29
- package/dist/lib/lsp/signatureHelp.d.ts +4 -0
- package/dist/lib/lsp/signatureHelp.js +61 -0
- package/dist/lib/lsp/signatureHelp.test.d.ts +1 -0
- package/dist/lib/lsp/signatureHelp.test.js +38 -0
- package/dist/lib/lsp/typeDefinition.d.ts +6 -0
- package/dist/lib/lsp/typeDefinition.js +23 -0
- package/dist/lib/lsp/typeDefinition.test.d.ts +1 -0
- package/dist/lib/lsp/typeDefinition.test.js +38 -0
- package/dist/lib/lsp/typeResolution.d.ts +3 -0
- package/dist/lib/lsp/typeResolution.js +16 -0
- package/dist/lib/lsp/typeResolution.test.d.ts +1 -0
- package/dist/lib/lsp/typeResolution.test.js +36 -0
- package/dist/lib/lsp/util.d.ts +17 -0
- package/dist/lib/lsp/util.js +38 -0
- package/dist/lib/lsp/util.test.d.ts +1 -0
- package/dist/lib/lsp/util.test.js +37 -0
- package/dist/lib/lsp/workspaceSymbol.d.ts +3 -0
- package/dist/lib/lsp/workspaceSymbol.js +35 -0
- package/dist/lib/lsp/workspaceSymbol.test.d.ts +1 -0
- package/dist/lib/lsp/workspaceSymbol.test.js +42 -0
- package/dist/lib/mcp/tools.js +7 -4
- package/dist/lib/parser.d.ts +1 -0
- package/dist/lib/parser.js +15 -3
- package/dist/lib/parser.test.js +64 -1
- package/dist/lib/parsers/assignment.test.js +23 -19
- package/dist/lib/parsers/blankLine.test.d.ts +1 -0
- package/dist/lib/parsers/blankLine.test.js +34 -0
- package/dist/lib/parsers/expression.test.js +0 -26
- package/dist/lib/parsers/interruptStatement.test.d.ts +1 -0
- package/dist/lib/parsers/interruptStatement.test.js +81 -0
- package/dist/lib/parsers/multiLineComment.test.js +30 -5
- package/dist/lib/parsers/parallelBlock.test.d.ts +1 -0
- package/dist/lib/parsers/parallelBlock.test.js +139 -0
- package/dist/lib/parsers/parsers.d.ts +14 -3
- package/dist/lib/parsers/parsers.js +147 -44
- package/dist/lib/parsers/tagIntegration.test.js +4 -4
- package/dist/lib/parsers/typeHints.test.js +7 -0
- package/dist/lib/parsers/unitLiteral.test.d.ts +1 -0
- package/dist/lib/parsers/unitLiteral.test.js +92 -0
- package/dist/lib/preprocessors/importResolver.js +1 -1
- package/dist/lib/preprocessors/importResolver.test.js +56 -31
- package/dist/lib/preprocessors/parallelDesugar.d.ts +37 -0
- package/dist/lib/preprocessors/parallelDesugar.js +495 -0
- package/dist/lib/preprocessors/parallelDesugar.test.d.ts +1 -0
- package/dist/lib/preprocessors/parallelDesugar.test.js +389 -0
- package/dist/lib/preprocessors/typescriptPreprocessor.core.test.js +94 -11
- package/dist/lib/preprocessors/typescriptPreprocessor.d.ts +29 -2
- package/dist/lib/preprocessors/typescriptPreprocessor.js +114 -21
- package/dist/lib/runtime/agencyFunction.d.ts +16 -1
- package/dist/lib/runtime/agencyFunction.js +124 -12
- package/dist/lib/runtime/agencyFunction.test.js +222 -0
- package/dist/lib/runtime/call.js +15 -0
- package/dist/lib/runtime/checkpoint.js +2 -1
- package/dist/lib/runtime/checkpoint.test.js +1 -1
- package/dist/lib/runtime/debugger.d.ts +1 -1
- package/dist/lib/runtime/debugger.js +2 -8
- package/dist/lib/runtime/debugger.test.js +10 -10
- package/dist/lib/runtime/hooks.d.ts +1 -0
- package/dist/lib/runtime/hooks.js +21 -0
- package/dist/lib/runtime/index.d.ts +4 -6
- package/dist/lib/runtime/index.js +4 -4
- package/dist/lib/runtime/interrupts.d.ts +20 -42
- package/dist/lib/runtime/interrupts.js +52 -100
- package/dist/lib/runtime/interrupts.test.d.ts +1 -0
- package/dist/lib/runtime/interrupts.test.js +28 -0
- package/dist/lib/runtime/isDebugger.test.js +3 -3
- package/dist/lib/runtime/node.d.ts +2 -1
- package/dist/lib/runtime/node.js +8 -6
- package/dist/lib/runtime/origin.d.ts +1 -0
- package/dist/lib/runtime/origin.js +18 -0
- package/dist/lib/runtime/origin.test.d.ts +1 -0
- package/dist/lib/runtime/origin.test.js +18 -0
- package/dist/lib/runtime/policy.d.ts +23 -0
- package/dist/lib/runtime/policy.js +52 -0
- package/dist/lib/runtime/policy.test.d.ts +1 -0
- package/dist/lib/runtime/policy.test.js +134 -0
- package/dist/lib/runtime/prompt.d.ts +2 -2
- package/dist/lib/runtime/prompt.js +260 -241
- package/dist/lib/runtime/result.d.ts +1 -1
- package/dist/lib/runtime/result.js +5 -3
- package/dist/lib/runtime/revivers/functionRefReviver.d.ts +1 -0
- package/dist/lib/runtime/revivers/functionRefReviver.js +47 -2
- package/dist/lib/runtime/revivers/functionRefReviver.test.js +139 -0
- package/dist/lib/runtime/rewind.d.ts +1 -11
- package/dist/lib/runtime/rewind.js +3 -3
- package/dist/lib/runtime/runner.d.ts +24 -5
- package/dist/lib/runtime/runner.js +216 -49
- package/dist/lib/runtime/runner.test.js +49 -14
- package/dist/lib/runtime/state/checkpointStore.d.ts +7 -2
- package/dist/lib/runtime/state/checkpointStore.js +10 -7
- package/dist/lib/runtime/state/checkpointStore.test.js +25 -25
- package/dist/lib/runtime/state/context.d.ts +29 -5
- package/dist/lib/runtime/state/context.js +47 -17
- package/dist/lib/runtime/state/pendingPromiseStore.js +6 -2
- package/dist/lib/runtime/state/stateStack.d.ts +21 -2
- package/dist/lib/runtime/state/stateStack.js +92 -16
- package/dist/lib/runtime/state/stateStack.test.js +28 -6
- package/dist/lib/runtime/stripBoundParams.d.ts +1 -0
- package/dist/lib/runtime/stripBoundParams.js +28 -0
- package/dist/lib/runtime/stripBoundParams.test.d.ts +1 -0
- package/dist/lib/runtime/stripBoundParams.test.js +70 -0
- package/dist/lib/runtime/trace/eventLog.d.ts +1 -1
- package/dist/lib/runtime/trace/traceReader.d.ts +1 -0
- package/dist/lib/runtime/trace/traceReader.js +8 -2
- package/dist/lib/runtime/trace/traceReader.test.js +30 -0
- package/dist/lib/runtime/trace/traceWriter.d.ts +1 -0
- package/dist/lib/runtime/trace/traceWriter.js +6 -0
- package/dist/lib/runtime/trace/traceWriter.test.js +12 -0
- package/dist/lib/runtime/trace/types.d.ts +5 -1
- package/dist/lib/runtime/types.d.ts +9 -8
- package/dist/lib/runtime/utils.d.ts +1 -0
- package/dist/lib/runtime/utils.js +21 -0
- package/dist/lib/runtime/utils.test.d.ts +1 -0
- package/dist/lib/runtime/utils.test.js +55 -0
- package/dist/lib/symbolTable.d.ts +66 -15
- package/dist/lib/symbolTable.js +116 -39
- package/dist/lib/symbolTable.test.js +9 -16
- package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/registerTools.d.ts +4 -0
- package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/{mcp.js → registerTools.js} +9 -4
- package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/sleep.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/sleep.js +4 -3
- package/dist/lib/templates/backends/typescriptGenerator/classMethod.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/classMethod.js +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/forkBlockSetup.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/forkBlockSetup.js +4 -2
- package/dist/lib/templates/backends/typescriptGenerator/imports.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/imports.js +11 -18
- package/dist/lib/templates/backends/typescriptGenerator/interruptAssignment.d.ts +6 -2
- package/dist/lib/templates/backends/typescriptGenerator/interruptAssignment.js +27 -26
- package/dist/lib/templates/backends/typescriptGenerator/interruptReturn.d.ts +6 -2
- package/dist/lib/templates/backends/typescriptGenerator/interruptReturn.js +22 -29
- package/dist/lib/templates/backends/typescriptGenerator/resultCheckpointSetup.d.ts +1 -1
- package/dist/lib/templates/backends/typescriptGenerator/resultCheckpointSetup.js +1 -1
- package/dist/lib/templates/cli/evaluate.d.ts +1 -1
- package/dist/lib/templates/cli/evaluate.js +33 -28
- package/dist/lib/templates/cli/judgeEvaluate.d.ts +1 -1
- package/dist/lib/templates/cli/judgeEvaluate.js +31 -25
- package/dist/lib/templates/cli/schedule/plist.d.ts +10 -0
- package/dist/lib/templates/cli/schedule/plist.js +30 -0
- package/dist/lib/templates/cli/schedule/runScript.d.ts +10 -0
- package/dist/lib/templates/cli/schedule/runScript.js +24 -0
- package/dist/lib/templates/cli/schedule/service.d.ts +8 -0
- package/dist/lib/templates/cli/schedule/service.js +16 -0
- package/dist/lib/templates/cli/schedule/timer.d.ts +7 -0
- package/dist/lib/templates/cli/schedule/timer.js +18 -0
- package/dist/lib/typeChecker/assignability.js +48 -5
- package/dist/lib/typeChecker/blockBody.test.d.ts +1 -0
- package/dist/lib/typeChecker/blockBody.test.js +97 -0
- package/dist/lib/typeChecker/builtins.d.ts +10 -0
- package/dist/lib/typeChecker/builtins.js +85 -52
- package/dist/lib/typeChecker/checker.d.ts +1 -2
- package/dist/lib/typeChecker/checker.js +396 -64
- package/dist/lib/typeChecker/dimensionMismatch.test.d.ts +1 -0
- package/dist/lib/typeChecker/dimensionMismatch.test.js +58 -0
- package/dist/lib/typeChecker/index.d.ts +6 -3
- package/dist/lib/typeChecker/index.js +116 -17
- package/dist/lib/typeChecker/inference.d.ts +2 -3
- package/dist/lib/typeChecker/inference.js +85 -15
- package/dist/lib/typeChecker/primitives.d.ts +8 -0
- package/dist/lib/typeChecker/primitives.js +7 -0
- package/dist/lib/typeChecker/scope.d.ts +17 -0
- package/dist/lib/typeChecker/scope.js +33 -0
- package/dist/lib/typeChecker/scope.test.d.ts +1 -0
- package/dist/lib/typeChecker/scope.test.js +41 -0
- package/dist/lib/typeChecker/scopes.d.ts +16 -6
- package/dist/lib/typeChecker/scopes.js +164 -123
- package/dist/lib/typeChecker/suppression.d.ts +28 -0
- package/dist/lib/typeChecker/suppression.js +48 -0
- package/dist/lib/typeChecker/suppression.test.d.ts +1 -0
- package/dist/lib/typeChecker/suppression.test.js +115 -0
- package/dist/lib/typeChecker/synthesizer.d.ts +5 -15
- package/dist/lib/typeChecker/synthesizer.js +291 -51
- package/dist/lib/typeChecker/typeWalker.d.ts +8 -0
- package/dist/lib/typeChecker/typeWalker.js +33 -0
- package/dist/lib/typeChecker/types.d.ts +9 -2
- package/dist/lib/typeChecker/utils.d.ts +25 -7
- package/dist/lib/typeChecker/utils.js +73 -17
- package/dist/lib/typeChecker/validate.js +9 -23
- package/dist/lib/typeChecker/validation.d.ts +22 -0
- package/dist/lib/typeChecker/validation.js +36 -0
- package/dist/lib/typeChecker/validation.test.d.ts +1 -0
- package/dist/lib/typeChecker/validation.test.js +67 -0
- package/dist/lib/typeChecker.test.js +3711 -4
- package/dist/lib/types/interruptStatement.d.ts +8 -0
- package/dist/lib/types/interruptStatement.js +1 -0
- package/dist/lib/types/literals.d.ts +17 -1
- package/dist/lib/types/literals.js +3 -1
- package/dist/lib/types/matchBlock.d.ts +2 -2
- package/dist/lib/types/parallelBlock.d.ts +10 -0
- package/dist/lib/types/parallelBlock.js +1 -0
- package/dist/lib/types.d.ts +19 -30
- package/dist/lib/types.js +2 -1
- package/dist/lib/utils/markdown.js +1 -1
- package/dist/lib/utils/node.d.ts +11 -4
- package/dist/lib/utils/node.js +30 -5
- package/dist/lib/version.d.ts +1 -1
- package/dist/lib/version.js +1 -1
- package/dist/scripts/agency.js +109 -30
- package/dist/scripts/regenerate-fixtures.js +2 -2
- package/package.json +8 -5
- package/stdlib/_builtins.js +134 -0
- package/stdlib/_math.js +9 -0
- package/stdlib/agent.agency +1 -3
- package/stdlib/agent.js +47 -55
- package/stdlib/array.agency +40 -0
- package/stdlib/array.js +201 -113
- package/stdlib/browser.agency +47 -0
- package/stdlib/browser.js +373 -0
- package/stdlib/calendar.agency +235 -0
- package/stdlib/calendar.js +1184 -0
- package/stdlib/clipboard.agency +4 -0
- package/stdlib/clipboard.js +78 -33
- package/stdlib/date.agency +233 -0
- package/stdlib/date.js +1948 -0
- package/stdlib/email.agency +163 -0
- package/stdlib/email.js +1004 -0
- package/stdlib/fs.agency +43 -34
- package/stdlib/fs.js +233 -215
- package/stdlib/http.agency +11 -31
- package/stdlib/http.js +85 -349
- package/stdlib/imessage.agency +42 -0
- package/stdlib/imessage.js +332 -0
- package/stdlib/index.agency +69 -39
- package/stdlib/index.js +361 -287
- package/stdlib/keyring.agency +80 -0
- package/stdlib/keyring.js +719 -0
- package/stdlib/lib/allowBlockList.js +37 -0
- package/stdlib/lib/browserUse.js +75 -0
- package/stdlib/lib/builtins.js +22 -39
- package/stdlib/lib/calendar.js +145 -0
- package/stdlib/lib/clipboard.js +21 -9
- package/stdlib/lib/date.js +196 -0
- package/stdlib/lib/email.js +145 -0
- package/stdlib/lib/fs.js +58 -32
- package/stdlib/lib/http.js +38 -6
- package/stdlib/lib/imessage.js +49 -0
- package/stdlib/lib/keyring.js +159 -0
- package/stdlib/lib/messaging.js +1 -0
- package/stdlib/lib/oauth.js +288 -0
- package/stdlib/lib/oauthEncryption.js +69 -0
- package/stdlib/lib/policy.js +1 -0
- package/stdlib/lib/resolvePath.js +43 -0
- package/stdlib/lib/shell.js +102 -44
- package/stdlib/lib/sms.js +47 -0
- package/stdlib/lib/speech.js +10 -9
- package/stdlib/lib/system.js +11 -8
- package/stdlib/lib/utils.js +3 -3
- package/stdlib/math.js +29 -37
- package/stdlib/oauth.agency +105 -0
- package/stdlib/oauth.js +770 -0
- package/stdlib/object.agency +15 -0
- package/stdlib/object.js +90 -59
- package/stdlib/path.agency +6 -0
- package/stdlib/path.js +54 -59
- package/stdlib/policy.agency +15 -0
- package/stdlib/policy.js +376 -0
- package/stdlib/shell.agency +59 -21
- package/stdlib/shell.js +355 -143
- package/stdlib/sms.agency +49 -0
- package/stdlib/sms.js +371 -0
- package/stdlib/speech.agency +16 -0
- package/stdlib/speech.js +92 -35
- package/stdlib/strategy.agency +18 -0
- package/stdlib/strategy.js +119 -68
- package/stdlib/system.agency +26 -4
- package/stdlib/system.js +211 -70
- package/stdlib/ui.agency +12 -0
- package/stdlib/ui.js +99 -104
- package/stdlib/weather.agency +3 -0
- package/stdlib/weather.js +32 -36
- package/stdlib/wikipedia.js +29 -36
- package/README.md +0 -35
- package/dist/lib/cli/auth.d.ts +0 -4
- package/dist/lib/cli/auth.js +0 -60
- package/dist/lib/debugger/hotReload.d.ts +0 -11
- package/dist/lib/debugger/hotReload.js +0 -73
- package/dist/lib/lsp/locations.d.ts +0 -3
- package/dist/lib/lsp/locations.js +0 -12
- package/dist/lib/programInfo.d.ts +0 -21
- package/dist/lib/programInfo.js +0 -137
- package/dist/lib/runtime/mcp/__tests__/testServer.js +0 -14
- package/dist/lib/runtime/mcp/callbackServer.d.ts +0 -20
- package/dist/lib/runtime/mcp/callbackServer.js +0 -86
- package/dist/lib/runtime/mcp/callbackServer.test.js +0 -57
- package/dist/lib/runtime/mcp/mcp.integration.test.js +0 -37
- package/dist/lib/runtime/mcp/mcpConnection.d.ts +0 -23
- package/dist/lib/runtime/mcp/mcpConnection.js +0 -71
- package/dist/lib/runtime/mcp/mcpConnection.test.js +0 -58
- package/dist/lib/runtime/mcp/mcpManager.d.ts +0 -20
- package/dist/lib/runtime/mcp/mcpManager.js +0 -91
- package/dist/lib/runtime/mcp/mcpManager.test.js +0 -128
- package/dist/lib/runtime/mcp/oauthConnector.d.ts +0 -41
- package/dist/lib/runtime/mcp/oauthConnector.js +0 -81
- package/dist/lib/runtime/mcp/oauthConnector.test.js +0 -26
- package/dist/lib/runtime/mcp/oauthProvider.d.ts +0 -52
- package/dist/lib/runtime/mcp/oauthProvider.js +0 -157
- package/dist/lib/runtime/mcp/oauthProvider.test.js +0 -151
- package/dist/lib/runtime/mcp/tokenStore.d.ts +0 -22
- package/dist/lib/runtime/mcp/tokenStore.js +0 -103
- package/dist/lib/runtime/mcp/tokenStore.test.js +0 -80
- package/dist/lib/runtime/mcp/toolAdapter.d.ts +0 -6
- package/dist/lib/runtime/mcp/toolAdapter.js +0 -51
- package/dist/lib/runtime/mcp/toolAdapter.test.js +0 -68
- package/dist/lib/runtime/mcp/types.d.ts +0 -26
- package/dist/lib/runtime/mcp/types.js +0 -9
- package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/mcp.d.ts +0 -4
- package/dist/lib/types/placeholder.d.ts +0 -4
- /package/dist/lib/{programInfo.test.d.ts → cli/schedule/backends/backends.test.d.ts} +0 -0
- /package/dist/lib/{runtime/mcp/__tests__/testServer.d.ts → cli/schedule/backends/expandField.test.d.ts} +0 -0
- /package/dist/lib/{runtime/mcp/callbackServer.test.d.ts → cli/schedule/cron.test.d.ts} +0 -0
- /package/dist/lib/{runtime/mcp/mcp.integration.test.d.ts → cli/schedule/index.test.d.ts} +0 -0
- /package/dist/lib/{runtime/mcp/mcpConnection.test.d.ts → cli/schedule/registry.test.d.ts} +0 -0
- /package/dist/lib/{runtime/mcp/mcpManager.test.d.ts → compilationUnit.test.d.ts} +0 -0
- /package/dist/lib/{runtime/mcp/oauthConnector.test.d.ts → debugger/exportFrames.test.d.ts} +0 -0
- /package/dist/lib/{runtime/mcp/oauthProvider.test.d.ts → debugger/testSession.test.d.ts} +0 -0
- /package/dist/lib/{runtime/mcp/tokenStore.test.d.ts → lsp/codeAction.test.d.ts} +0 -0
- /package/dist/lib/{runtime/mcp/toolAdapter.test.d.ts → lsp/documentHighlight.test.d.ts} +0 -0
- /package/dist/lib/{types/placeholder.js → lsp/documentLink.test.d.ts} +0 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { exec } from "std::shell"
|
|
2
|
+
import { args } from "std::system"
|
|
3
|
+
systemPrompt = read("./prompts/system.md")
|
|
4
|
+
|
|
5
|
+
type Severity = "critical" | "warning" | "suggestion"
|
|
6
|
+
|
|
7
|
+
type Issue = {
|
|
8
|
+
severity: Severity;
|
|
9
|
+
line: number | null;
|
|
10
|
+
message: string;
|
|
11
|
+
suggestion: string | null
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
type ReviewResult = {
|
|
15
|
+
summary: string;
|
|
16
|
+
issues: Issue[];
|
|
17
|
+
strengths: string[]
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
node main() {
|
|
21
|
+
let cliArgs = args()
|
|
22
|
+
if (cliArgs.length < 2) {
|
|
23
|
+
print("Usage: agency review <file.agency>")
|
|
24
|
+
return end()
|
|
25
|
+
}
|
|
26
|
+
let agencyScript = cliArgs[0]
|
|
27
|
+
let filePath = cliArgs[1]
|
|
28
|
+
let code = read(filePath)
|
|
29
|
+
print("Reviewing: ${filePath}\n")
|
|
30
|
+
print("Running type checker...")
|
|
31
|
+
let typeCheckResult = exec("node", [agencyScript, "typecheck", filePath])
|
|
32
|
+
let typeErrors = ""
|
|
33
|
+
if (typeCheckResult.exitCode != 0) {
|
|
34
|
+
typeErrors = typeCheckResult.stderr + typeCheckResult.stdout
|
|
35
|
+
print("Type checker found issues:\n${typeErrors}\n")
|
|
36
|
+
} else {
|
|
37
|
+
print("Type checker passed.\n")
|
|
38
|
+
}
|
|
39
|
+
// Have the LLM review the code
|
|
40
|
+
thread {
|
|
41
|
+
system(systemPrompt)
|
|
42
|
+
let typeErrorMessage = "The type checker found no errors."
|
|
43
|
+
if (typeErrors != "") {
|
|
44
|
+
typeErrorMessage = "The type checker reported the following errors:\n${typeErrors}"
|
|
45
|
+
}
|
|
46
|
+
const reviewPrompt = """
|
|
47
|
+
Please review the following Agency code.
|
|
48
|
+
|
|
49
|
+
File: ${filePath}
|
|
50
|
+
|
|
51
|
+
---CODE START---
|
|
52
|
+
${code}
|
|
53
|
+
---CODE END---
|
|
54
|
+
|
|
55
|
+
${typeErrorMessage}
|
|
56
|
+
|
|
57
|
+
Provide a structured review with a summary, list of issues (with severity, line number if applicable, message, and suggested fix), and a list of strengths.
|
|
58
|
+
"""
|
|
59
|
+
let review: ReviewResult = llm(reviewPrompt)
|
|
60
|
+
}
|
|
61
|
+
// Display the review
|
|
62
|
+
print("\n--- Review Summary ---")
|
|
63
|
+
print(review.summary)
|
|
64
|
+
if (review.strengths.length > 0) {
|
|
65
|
+
print("\n--- Strengths ---")
|
|
66
|
+
for (strength in review.strengths) {
|
|
67
|
+
print(" + ${strength}")
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (review.issues.length > 0) {
|
|
71
|
+
print("\n--- Issues ---")
|
|
72
|
+
for (issue in review.issues) {
|
|
73
|
+
let prefix = "[${issue.severity}]"
|
|
74
|
+
let lineInfo = ""
|
|
75
|
+
if (issue.line != null) {
|
|
76
|
+
lineInfo = " (line ${issue.line})"
|
|
77
|
+
}
|
|
78
|
+
print(" ${prefix}${lineInfo} ${issue.message}")
|
|
79
|
+
if (issue.suggestion != null) {
|
|
80
|
+
print(" Fix: ${issue.suggestion}")
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
} else {
|
|
84
|
+
print("\nNo issues found. Code looks good!")
|
|
85
|
+
}
|
|
86
|
+
return end()
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
node end() {
|
|
90
|
+
|
|
91
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
You are an expert code reviewer for the Agency programming language. Agency is a domain-specific language for building AI agent workflows that compiles to TypeScript.
|
|
2
|
+
|
|
3
|
+
Your job is to review Agency code and provide constructive, actionable feedback. You evaluate code against:
|
|
4
|
+
|
|
5
|
+
1. **Type safety**: Are types used correctly? Are LLM return types properly annotated?
|
|
6
|
+
2. **Code structure**: Is the code well-organized? Are nodes and functions appropriately scoped?
|
|
7
|
+
3. **Error handling**: Does the code handle failures gracefully? Are `try` and `Result` types used where appropriate?
|
|
8
|
+
4. **LLM usage**: Are LLM calls efficient? Are prompts clear? Is structured output used properly?
|
|
9
|
+
5. **Security**: Are there any potential security issues (e.g., unvalidated user input passed to shell commands)?
|
|
10
|
+
6. **Readability**: Is the code clear and well-documented? Are variable names meaningful?
|
|
11
|
+
7. **Best practices**: Does the code follow Agency idioms and conventions?
|
|
12
|
+
|
|
13
|
+
When providing feedback:
|
|
14
|
+
- Be specific about what line or section you're referring to
|
|
15
|
+
- Explain WHY something is an issue, not just that it is
|
|
16
|
+
- Suggest concrete fixes when possible
|
|
17
|
+
- Acknowledge what the code does well
|
|
18
|
+
- Prioritize issues by severity (critical > warning > suggestion)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgencyComment, AgencyMultiLineComment, AgencyNode, AgencyProgram, Assignment, DebuggerStatement, Literal, NewLine, Scope, TypeAlias, VariableType } from "../types.js";
|
|
1
|
+
import { AgencyComment, AgencyMultiLineComment, AgencyNode, AgencyProgram, Assignment, DebuggerStatement, InterruptStatement, Literal, NewLine, ParallelBlock, Scope, SeqBlock, TypeAlias, VariableType } from "../types.js";
|
|
2
2
|
import { AccessChainElement, ValueAccess } from "../types/access.js";
|
|
3
3
|
import { BlockArgument } from "../types/blockArgument.js";
|
|
4
4
|
import { AgencyArray, AgencyObject } from "../types/dataStructures.js";
|
|
@@ -25,7 +25,7 @@ export declare class AgencyGenerator {
|
|
|
25
25
|
protected generatedTypeAliases: string[];
|
|
26
26
|
protected typeAliases: Record<string, VariableType>;
|
|
27
27
|
protected functionsUsed: Set<string>;
|
|
28
|
-
protected
|
|
28
|
+
protected importNodes: ImportStatement[];
|
|
29
29
|
protected importedNodes: ImportNodeStatement[];
|
|
30
30
|
protected functionDefinitions: Record<string, FunctionDefinition>;
|
|
31
31
|
protected currentScope: Scope[];
|
|
@@ -49,6 +49,7 @@ export declare class AgencyGenerator {
|
|
|
49
49
|
protected collectFunctionSignature(node: FunctionDefinition): void;
|
|
50
50
|
protected processGraphNodeName(node: GraphNodeDefinition): void;
|
|
51
51
|
processNode(node: AgencyNode): string;
|
|
52
|
+
protected processInterruptStatement(node: InterruptStatement): string;
|
|
52
53
|
protected needsParensLeft(child: BinOpArgument, parentOp: Operator): boolean;
|
|
53
54
|
protected needsParensRight(child: BinOpArgument, parentOp: Operator): boolean;
|
|
54
55
|
protected startScope(scope: Scope): void;
|
|
@@ -59,6 +60,8 @@ export declare class AgencyGenerator {
|
|
|
59
60
|
private increaseIndent;
|
|
60
61
|
private decreaseIndent;
|
|
61
62
|
private indentStr;
|
|
63
|
+
private wrapList;
|
|
64
|
+
private renderParams;
|
|
62
65
|
private stringifyProp;
|
|
63
66
|
protected aliasedTypeToString(aliasedType: VariableType): string;
|
|
64
67
|
protected processTypeAlias(node: TypeAlias): string;
|
|
@@ -68,10 +71,12 @@ export declare class AgencyGenerator {
|
|
|
68
71
|
private generateMultiLineStringLiteral;
|
|
69
72
|
protected processFunctionDefinition(node: FunctionDefinition): string;
|
|
70
73
|
protected processFunctionCall(node: FunctionCall): string;
|
|
74
|
+
protected renderArgs(args: FunctionCall["arguments"], block?: BlockArgument): string[];
|
|
71
75
|
protected renderArgList(args: FunctionCall["arguments"], block?: BlockArgument): string;
|
|
72
76
|
protected generateFunctionCallExpression(node: FunctionCall, context: "valueAccess" | "functionArg" | "topLevelStatement"): string;
|
|
73
77
|
protected processAgencyArray(node: AgencyArray): string;
|
|
74
78
|
protected processAgencyObject(node: AgencyObject): string;
|
|
79
|
+
private addQuotesToKey;
|
|
75
80
|
protected processValueAccess(node: ValueAccess): string;
|
|
76
81
|
protected asyncAwaitPrefix(code: string, async?: boolean): string;
|
|
77
82
|
protected processMatchBlock(node: MatchBlock): string;
|
|
@@ -89,16 +94,21 @@ export declare class AgencyGenerator {
|
|
|
89
94
|
protected processImportStatement(node: ImportStatement): string;
|
|
90
95
|
protected processImportNameType(node: ImportNameType): string;
|
|
91
96
|
protected processImportNodeStatement(node: ImportNodeStatement): string;
|
|
97
|
+
private sortAndRenderImports;
|
|
92
98
|
protected visibilityToString(vis: Visibility): string;
|
|
93
99
|
protected processGraphNode(node: GraphNodeDefinition): string;
|
|
94
100
|
protected processClassDefinition(node: ClassDefinition): string;
|
|
95
101
|
protected processNewExpression(node: NewExpression): string;
|
|
96
102
|
protected processTool(node: FunctionDefinition): string;
|
|
97
103
|
protected processNewLine(_node: NewLine): string;
|
|
104
|
+
protected renderBody(body: AgencyNode[]): string;
|
|
98
105
|
protected processMessageThread(node: MessageThread): string;
|
|
106
|
+
protected processParallelBlock(node: ParallelBlock): string;
|
|
107
|
+
protected processSeqBlock(node: SeqBlock): string;
|
|
99
108
|
protected processHandleBlock(node: HandleBlock): string;
|
|
100
109
|
protected processSkill(node: Skill): string;
|
|
101
110
|
protected processBinOpExpression(node: BinOpExpression, assigned?: boolean): string;
|
|
111
|
+
private flattenPipeChain;
|
|
102
112
|
protected processAccessChainElement(node: AccessChainElement): string;
|
|
103
113
|
protected formatTag(tag: Tag): string;
|
|
104
114
|
protected formatAttachedTags(node: {
|