agency-lang 0.0.106 → 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.
Files changed (502) hide show
  1. package/dist/lib/agents/review/agent.agency +91 -0
  2. package/dist/lib/agents/review/prompts/system.md +18 -0
  3. package/dist/lib/backends/agencyGenerator.d.ts +16 -2
  4. package/dist/lib/backends/agencyGenerator.js +221 -162
  5. package/dist/lib/backends/typescriptBuilder.d.ts +28 -5
  6. package/dist/lib/backends/typescriptBuilder.integration.test.js +2 -2
  7. package/dist/lib/backends/typescriptBuilder.js +325 -153
  8. package/dist/lib/backends/typescriptGenerator/builtins.js +6 -3
  9. package/dist/lib/backends/typescriptGenerator/typeToZodSchema.js +3 -4
  10. package/dist/lib/backends/typescriptGenerator/typeToZodSchema.test.js +95 -0
  11. package/dist/lib/backends/typescriptGenerator.d.ts +2 -2
  12. package/dist/lib/backends/typescriptGenerator.js +4 -4
  13. package/dist/lib/cli/agent.js +2 -25
  14. package/dist/lib/cli/bundle.js +6 -5
  15. package/dist/lib/cli/commands.d.ts +3 -3
  16. package/dist/lib/cli/commands.js +44 -78
  17. package/dist/lib/cli/debug.js +14 -3
  18. package/dist/lib/cli/doc.d.ts +1 -1
  19. package/dist/lib/cli/doc.js +21 -14
  20. package/dist/lib/cli/doc.test.js +3 -3
  21. package/dist/lib/cli/optimize.js +2 -2
  22. package/dist/lib/cli/optimize.test.js +3 -3
  23. package/dist/lib/cli/review.d.ts +2 -0
  24. package/dist/lib/cli/review.js +5 -0
  25. package/dist/lib/cli/runBundledAgent.d.ts +2 -0
  26. package/dist/lib/cli/runBundledAgent.js +24 -0
  27. package/dist/lib/cli/schedule/backends/backends.test.js +177 -0
  28. package/dist/lib/cli/schedule/backends/crontab.d.ts +6 -0
  29. package/dist/lib/cli/schedule/backends/crontab.js +38 -0
  30. package/dist/lib/cli/schedule/backends/expandField.test.js +66 -0
  31. package/dist/lib/cli/schedule/backends/index.d.ts +11 -0
  32. package/dist/lib/cli/schedule/backends/index.js +29 -0
  33. package/dist/lib/cli/schedule/backends/launchd.d.ts +7 -0
  34. package/dist/lib/cli/schedule/backends/launchd.js +89 -0
  35. package/dist/lib/cli/schedule/backends/systemd.d.ts +6 -0
  36. package/dist/lib/cli/schedule/backends/systemd.js +49 -0
  37. package/dist/lib/cli/schedule/backends/writeRunScript.d.ts +2 -0
  38. package/dist/lib/cli/schedule/backends/writeRunScript.js +18 -0
  39. package/dist/lib/cli/schedule/cron.d.ts +12 -0
  40. package/dist/lib/cli/schedule/cron.js +88 -0
  41. package/dist/lib/cli/schedule/cron.test.js +89 -0
  42. package/dist/lib/cli/schedule/index.d.ts +39 -0
  43. package/dist/lib/cli/schedule/index.js +128 -0
  44. package/dist/lib/cli/schedule/index.test.js +192 -0
  45. package/dist/lib/cli/schedule/registry.d.ts +22 -0
  46. package/dist/lib/cli/schedule/registry.js +38 -0
  47. package/dist/lib/cli/schedule/registry.test.js +57 -0
  48. package/dist/lib/cli/test.js +17 -1
  49. package/dist/lib/cli/util.d.ts +13 -3
  50. package/dist/lib/cli/util.js +97 -62
  51. package/dist/lib/compilationUnit.d.ts +56 -0
  52. package/dist/lib/compilationUnit.js +226 -0
  53. package/dist/lib/{programInfo.test.js → compilationUnit.test.js} +17 -17
  54. package/dist/lib/config.d.ts +14 -16
  55. package/dist/lib/config.js +79 -79
  56. package/dist/lib/config.test.js +0 -162
  57. package/dist/lib/debugger/debuggerState.js +1 -1
  58. package/dist/lib/debugger/driver.d.ts +2 -7
  59. package/dist/lib/debugger/driver.js +14 -59
  60. package/dist/lib/debugger/driver.test.js +520 -645
  61. package/dist/lib/debugger/exportFrames.test.js +52 -0
  62. package/dist/lib/debugger/overlays.d.ts +18 -0
  63. package/dist/lib/debugger/overlays.js +234 -0
  64. package/dist/lib/debugger/testHelpers.js +3 -4
  65. package/dist/lib/debugger/testSession.d.ts +41 -0
  66. package/dist/lib/debugger/testSession.js +220 -0
  67. package/dist/lib/debugger/testSession.test.js +49 -0
  68. package/dist/lib/debugger/trace.test.js +1 -2
  69. package/dist/lib/debugger/ui.d.ts +41 -33
  70. package/dist/lib/debugger/ui.js +376 -1045
  71. package/dist/lib/formatter.d.ts +6 -0
  72. package/dist/lib/formatter.js +12 -0
  73. package/dist/lib/formatter.test.js +128 -0
  74. package/dist/lib/importPaths.d.ts +4 -0
  75. package/dist/lib/importPaths.js +18 -2
  76. package/dist/lib/importPaths.test.js +13 -13
  77. package/dist/lib/ir/builders.d.ts +4 -5
  78. package/dist/lib/ir/builders.js +5 -9
  79. package/dist/lib/ir/prettyPrint.js +1 -1
  80. package/dist/lib/ir/tsIR.d.ts +1 -1
  81. package/dist/lib/lsp/codeAction.d.ts +4 -0
  82. package/dist/lib/lsp/codeAction.js +104 -0
  83. package/dist/lib/lsp/codeAction.test.js +99 -0
  84. package/dist/lib/lsp/completion.d.ts +13 -0
  85. package/dist/lib/lsp/completion.js +303 -0
  86. package/dist/lib/lsp/completion.test.d.ts +1 -0
  87. package/dist/lib/lsp/completion.test.js +89 -0
  88. package/dist/lib/lsp/definition.d.ts +6 -0
  89. package/dist/lib/lsp/definition.js +61 -0
  90. package/dist/lib/lsp/definition.test.d.ts +1 -0
  91. package/dist/lib/lsp/definition.test.js +61 -0
  92. package/dist/lib/lsp/diagnostics.d.ts +17 -0
  93. package/dist/lib/lsp/diagnostics.js +70 -0
  94. package/dist/lib/lsp/diagnostics.test.d.ts +1 -0
  95. package/dist/lib/lsp/diagnostics.test.js +36 -0
  96. package/dist/lib/lsp/documentHighlight.d.ts +3 -0
  97. package/dist/lib/lsp/documentHighlight.js +13 -0
  98. package/dist/lib/lsp/documentHighlight.test.d.ts +1 -0
  99. package/dist/lib/lsp/documentHighlight.test.js +29 -0
  100. package/dist/lib/lsp/documentLink.d.ts +4 -0
  101. package/dist/lib/lsp/documentLink.js +44 -0
  102. package/dist/lib/lsp/documentLink.test.d.ts +1 -0
  103. package/dist/lib/lsp/documentLink.test.js +42 -0
  104. package/dist/lib/lsp/documentState.d.ts +12 -0
  105. package/dist/lib/lsp/documentState.js +1 -0
  106. package/dist/lib/lsp/documentSymbol.d.ts +3 -0
  107. package/dist/lib/lsp/documentSymbol.js +45 -0
  108. package/dist/lib/lsp/documentSymbol.test.d.ts +1 -0
  109. package/dist/lib/lsp/documentSymbol.test.js +42 -0
  110. package/dist/lib/lsp/foldingRange.d.ts +4 -0
  111. package/dist/lib/lsp/foldingRange.js +31 -0
  112. package/dist/lib/lsp/foldingRange.test.d.ts +1 -0
  113. package/dist/lib/lsp/foldingRange.test.js +44 -0
  114. package/dist/lib/lsp/formatting.d.ts +4 -0
  115. package/dist/lib/lsp/formatting.js +14 -0
  116. package/dist/lib/lsp/formatting.test.d.ts +1 -0
  117. package/dist/lib/lsp/formatting.test.js +30 -0
  118. package/dist/lib/lsp/hover.d.ts +6 -0
  119. package/dist/lib/lsp/hover.js +29 -0
  120. package/dist/lib/lsp/hover.test.d.ts +1 -0
  121. package/dist/lib/lsp/hover.test.js +89 -0
  122. package/dist/lib/lsp/index.d.ts +1 -0
  123. package/dist/lib/lsp/index.js +1 -0
  124. package/dist/lib/lsp/inlayHint.d.ts +4 -0
  125. package/dist/lib/lsp/inlayHint.js +37 -0
  126. package/dist/lib/lsp/inlayHint.test.d.ts +1 -0
  127. package/dist/lib/lsp/inlayHint.test.js +40 -0
  128. package/dist/lib/lsp/projectRoot.test.d.ts +1 -0
  129. package/dist/lib/lsp/projectRoot.test.js +46 -0
  130. package/dist/lib/lsp/references.d.ts +3 -0
  131. package/dist/lib/lsp/references.js +12 -0
  132. package/dist/lib/lsp/references.test.d.ts +1 -0
  133. package/dist/lib/lsp/references.test.js +41 -0
  134. package/dist/lib/lsp/rename.d.ts +4 -0
  135. package/dist/lib/lsp/rename.js +30 -0
  136. package/dist/lib/lsp/rename.test.d.ts +1 -0
  137. package/dist/lib/lsp/rename.test.js +49 -0
  138. package/dist/lib/lsp/scopeResolution.d.ts +11 -0
  139. package/dist/lib/lsp/scopeResolution.js +48 -0
  140. package/dist/lib/lsp/scopeResolution.test.d.ts +1 -0
  141. package/dist/lib/lsp/scopeResolution.test.js +60 -0
  142. package/dist/lib/lsp/semantics.d.ts +19 -0
  143. package/dist/lib/lsp/semantics.js +180 -0
  144. package/dist/lib/lsp/server.d.ts +1 -0
  145. package/dist/lib/lsp/server.js +221 -0
  146. package/dist/lib/lsp/setup.d.ts +9 -0
  147. package/dist/lib/lsp/setup.js +88 -0
  148. package/dist/lib/lsp/setup.test.d.ts +1 -0
  149. package/dist/lib/lsp/setup.test.js +56 -0
  150. package/dist/lib/lsp/signatureHelp.d.ts +4 -0
  151. package/dist/lib/lsp/signatureHelp.js +61 -0
  152. package/dist/lib/lsp/signatureHelp.test.d.ts +1 -0
  153. package/dist/lib/lsp/signatureHelp.test.js +38 -0
  154. package/dist/lib/lsp/typeDefinition.d.ts +6 -0
  155. package/dist/lib/lsp/typeDefinition.js +23 -0
  156. package/dist/lib/lsp/typeDefinition.test.d.ts +1 -0
  157. package/dist/lib/lsp/typeDefinition.test.js +38 -0
  158. package/dist/lib/lsp/typeResolution.d.ts +3 -0
  159. package/dist/lib/lsp/typeResolution.js +16 -0
  160. package/dist/lib/lsp/typeResolution.test.d.ts +1 -0
  161. package/dist/lib/lsp/typeResolution.test.js +36 -0
  162. package/dist/lib/lsp/uri.d.ts +2 -0
  163. package/dist/lib/lsp/uri.js +7 -0
  164. package/dist/lib/lsp/uri.test.d.ts +1 -0
  165. package/dist/lib/lsp/uri.test.js +11 -0
  166. package/dist/lib/lsp/util.d.ts +17 -0
  167. package/dist/lib/lsp/util.js +38 -0
  168. package/dist/lib/lsp/util.test.d.ts +1 -0
  169. package/dist/lib/lsp/util.test.js +37 -0
  170. package/dist/lib/lsp/workspace.d.ts +8 -0
  171. package/dist/lib/lsp/workspace.js +14 -0
  172. package/dist/lib/lsp/workspaceSymbol.d.ts +3 -0
  173. package/dist/lib/lsp/workspaceSymbol.js +35 -0
  174. package/dist/lib/lsp/workspaceSymbol.test.d.ts +1 -0
  175. package/dist/lib/lsp/workspaceSymbol.test.js +42 -0
  176. package/dist/lib/mcp/server.d.ts +20 -0
  177. package/dist/lib/mcp/server.js +191 -0
  178. package/dist/lib/mcp/server.test.d.ts +1 -0
  179. package/dist/lib/mcp/server.test.js +131 -0
  180. package/dist/lib/mcp/setup.d.ts +8 -0
  181. package/dist/lib/mcp/setup.js +42 -0
  182. package/dist/lib/mcp/setup.test.d.ts +1 -0
  183. package/dist/lib/mcp/setup.test.js +45 -0
  184. package/dist/lib/mcp/tools.d.ts +53 -0
  185. package/dist/lib/mcp/tools.js +178 -0
  186. package/dist/lib/parser.d.ts +19 -1
  187. package/dist/lib/parser.js +26 -4
  188. package/dist/lib/parser.test.js +84 -1
  189. package/dist/lib/parsers/assignment.test.js +23 -19
  190. package/dist/lib/parsers/blankLine.test.d.ts +1 -0
  191. package/dist/lib/parsers/blankLine.test.js +34 -0
  192. package/dist/lib/parsers/blockArgument.test.js +155 -1
  193. package/dist/lib/parsers/expression.test.js +0 -26
  194. package/dist/lib/parsers/gotoStatement.test.d.ts +1 -0
  195. package/dist/lib/parsers/gotoStatement.test.js +51 -0
  196. package/dist/lib/parsers/interruptStatement.test.d.ts +1 -0
  197. package/dist/lib/parsers/interruptStatement.test.js +81 -0
  198. package/dist/lib/parsers/multiLineComment.test.js +30 -5
  199. package/dist/lib/parsers/parallelBlock.test.d.ts +1 -0
  200. package/dist/lib/parsers/parallelBlock.test.js +139 -0
  201. package/dist/lib/parsers/parsers.d.ts +17 -3
  202. package/dist/lib/parsers/parsers.js +207 -47
  203. package/dist/lib/parsers/tagIntegration.test.js +4 -4
  204. package/dist/lib/parsers/typeHints.test.js +7 -0
  205. package/dist/lib/parsers/unitLiteral.test.d.ts +1 -0
  206. package/dist/lib/parsers/unitLiteral.test.js +92 -0
  207. package/dist/lib/preprocessors/importResolver.js +8 -4
  208. package/dist/lib/preprocessors/importResolver.test.js +56 -31
  209. package/dist/lib/preprocessors/parallelDesugar.d.ts +37 -0
  210. package/dist/lib/preprocessors/parallelDesugar.js +495 -0
  211. package/dist/lib/preprocessors/parallelDesugar.test.d.ts +1 -0
  212. package/dist/lib/preprocessors/parallelDesugar.test.js +389 -0
  213. package/dist/lib/preprocessors/typescriptPreprocessor.core.test.js +94 -11
  214. package/dist/lib/preprocessors/typescriptPreprocessor.d.ts +29 -2
  215. package/dist/lib/preprocessors/typescriptPreprocessor.js +114 -21
  216. package/dist/lib/runtime/agencyFunction.d.ts +16 -1
  217. package/dist/lib/runtime/agencyFunction.js +124 -12
  218. package/dist/lib/runtime/agencyFunction.test.js +222 -0
  219. package/dist/lib/runtime/builtins.d.ts +0 -9
  220. package/dist/lib/runtime/builtins.js +0 -9
  221. package/dist/lib/runtime/call.d.ts +1 -1
  222. package/dist/lib/runtime/call.js +19 -1
  223. package/dist/lib/runtime/checkpoint.js +2 -1
  224. package/dist/lib/runtime/checkpoint.test.js +1 -1
  225. package/dist/lib/runtime/debugger.d.ts +1 -1
  226. package/dist/lib/runtime/debugger.js +2 -8
  227. package/dist/lib/runtime/debugger.test.js +10 -10
  228. package/dist/lib/runtime/hooks.d.ts +2 -0
  229. package/dist/lib/runtime/hooks.js +33 -4
  230. package/dist/lib/runtime/index.d.ts +8 -7
  231. package/dist/lib/runtime/index.js +7 -5
  232. package/dist/lib/runtime/interrupts.d.ts +20 -42
  233. package/dist/lib/runtime/interrupts.js +52 -100
  234. package/dist/lib/runtime/interrupts.test.d.ts +1 -0
  235. package/dist/lib/runtime/interrupts.test.js +28 -0
  236. package/dist/lib/runtime/isDebugger.test.js +3 -3
  237. package/dist/lib/runtime/llmClient.d.ts +45 -0
  238. package/dist/lib/runtime/llmClient.js +18 -0
  239. package/dist/lib/runtime/node.d.ts +2 -1
  240. package/dist/lib/runtime/node.js +8 -6
  241. package/dist/lib/runtime/origin.d.ts +1 -0
  242. package/dist/lib/runtime/origin.js +18 -0
  243. package/dist/lib/runtime/origin.test.d.ts +1 -0
  244. package/dist/lib/runtime/origin.test.js +18 -0
  245. package/dist/lib/runtime/policy.d.ts +23 -0
  246. package/dist/lib/runtime/policy.js +52 -0
  247. package/dist/lib/runtime/policy.test.d.ts +1 -0
  248. package/dist/lib/runtime/policy.test.js +134 -0
  249. package/dist/lib/runtime/prompt.d.ts +2 -2
  250. package/dist/lib/runtime/prompt.js +271 -244
  251. package/dist/lib/runtime/result.d.ts +1 -1
  252. package/dist/lib/runtime/result.js +5 -3
  253. package/dist/lib/runtime/revivers/functionRefReviver.d.ts +1 -0
  254. package/dist/lib/runtime/revivers/functionRefReviver.js +47 -2
  255. package/dist/lib/runtime/revivers/functionRefReviver.test.js +139 -0
  256. package/dist/lib/runtime/rewind.d.ts +1 -11
  257. package/dist/lib/runtime/rewind.js +3 -3
  258. package/dist/lib/runtime/runner.d.ts +24 -5
  259. package/dist/lib/runtime/runner.js +216 -49
  260. package/dist/lib/runtime/runner.test.js +49 -14
  261. package/dist/lib/runtime/simpleOpenAIClient.d.ts +16 -0
  262. package/dist/lib/runtime/simpleOpenAIClient.js +115 -0
  263. package/dist/lib/runtime/simpleOpenAIClient.test.d.ts +1 -0
  264. package/dist/lib/runtime/simpleOpenAIClient.test.js +24 -0
  265. package/dist/lib/runtime/state/checkpointStore.d.ts +7 -2
  266. package/dist/lib/runtime/state/checkpointStore.js +10 -7
  267. package/dist/lib/runtime/state/checkpointStore.test.js +25 -25
  268. package/dist/lib/runtime/state/context.d.ts +35 -5
  269. package/dist/lib/runtime/state/context.js +56 -17
  270. package/dist/lib/runtime/state/pendingPromiseStore.js +6 -2
  271. package/dist/lib/runtime/state/stateStack.d.ts +21 -2
  272. package/dist/lib/runtime/state/stateStack.js +92 -16
  273. package/dist/lib/runtime/state/stateStack.test.js +28 -6
  274. package/dist/lib/runtime/stripBoundParams.d.ts +1 -0
  275. package/dist/lib/runtime/stripBoundParams.js +28 -0
  276. package/dist/lib/runtime/stripBoundParams.test.d.ts +1 -0
  277. package/dist/lib/runtime/stripBoundParams.test.js +70 -0
  278. package/dist/lib/runtime/trace/eventLog.d.ts +1 -1
  279. package/dist/lib/runtime/trace/traceReader.d.ts +1 -0
  280. package/dist/lib/runtime/trace/traceReader.js +8 -2
  281. package/dist/lib/runtime/trace/traceReader.test.js +30 -0
  282. package/dist/lib/runtime/trace/traceWriter.d.ts +1 -0
  283. package/dist/lib/runtime/trace/traceWriter.js +6 -0
  284. package/dist/lib/runtime/trace/traceWriter.test.js +12 -0
  285. package/dist/lib/runtime/trace/types.d.ts +5 -1
  286. package/dist/lib/runtime/types.d.ts +9 -8
  287. package/dist/lib/runtime/utils.d.ts +1 -0
  288. package/dist/lib/runtime/utils.js +21 -0
  289. package/dist/lib/runtime/utils.test.d.ts +1 -0
  290. package/dist/lib/runtime/utils.test.js +55 -0
  291. package/dist/lib/symbolTable.d.ts +68 -14
  292. package/dist/lib/symbolTable.js +129 -41
  293. package/dist/lib/symbolTable.test.js +15 -4
  294. package/dist/lib/templates/backends/agency/template.d.ts +1 -1
  295. package/dist/lib/templates/backends/agency/template.js +1 -1
  296. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/registerTools.d.ts +4 -0
  297. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/registerTools.js +16 -0
  298. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/setLLMClient.d.ts +4 -0
  299. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/{mcp.js → setLLMClient.js} +5 -4
  300. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/sleep.d.ts +1 -1
  301. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/sleep.js +4 -3
  302. package/dist/lib/templates/backends/typescriptGenerator/classMethod.d.ts +1 -1
  303. package/dist/lib/templates/backends/typescriptGenerator/classMethod.js +1 -1
  304. package/dist/lib/templates/backends/typescriptGenerator/forkBlockSetup.d.ts +1 -1
  305. package/dist/lib/templates/backends/typescriptGenerator/forkBlockSetup.js +4 -2
  306. package/dist/lib/templates/backends/typescriptGenerator/imports.d.ts +1 -1
  307. package/dist/lib/templates/backends/typescriptGenerator/imports.js +11 -19
  308. package/dist/lib/templates/backends/typescriptGenerator/interruptAssignment.d.ts +6 -2
  309. package/dist/lib/templates/backends/typescriptGenerator/interruptAssignment.js +27 -26
  310. package/dist/lib/templates/backends/typescriptGenerator/interruptReturn.d.ts +6 -2
  311. package/dist/lib/templates/backends/typescriptGenerator/interruptReturn.js +22 -29
  312. package/dist/lib/templates/backends/typescriptGenerator/resultCheckpointSetup.d.ts +1 -1
  313. package/dist/lib/templates/backends/typescriptGenerator/resultCheckpointSetup.js +1 -1
  314. package/dist/lib/templates/cli/evaluate.d.ts +1 -1
  315. package/dist/lib/templates/cli/evaluate.js +33 -28
  316. package/dist/lib/templates/cli/judgeEvaluate.d.ts +1 -1
  317. package/dist/lib/templates/cli/judgeEvaluate.js +31 -25
  318. package/dist/lib/templates/cli/schedule/plist.d.ts +10 -0
  319. package/dist/lib/templates/cli/schedule/plist.js +30 -0
  320. package/dist/lib/templates/cli/schedule/runScript.d.ts +10 -0
  321. package/dist/lib/templates/cli/schedule/runScript.js +24 -0
  322. package/dist/lib/templates/cli/schedule/service.d.ts +8 -0
  323. package/dist/lib/templates/cli/schedule/service.js +16 -0
  324. package/dist/lib/templates/cli/schedule/timer.d.ts +7 -0
  325. package/dist/lib/templates/cli/schedule/timer.js +18 -0
  326. package/dist/lib/typeChecker/assignability.js +48 -5
  327. package/dist/lib/typeChecker/blockBody.test.d.ts +1 -0
  328. package/dist/lib/typeChecker/blockBody.test.js +97 -0
  329. package/dist/lib/typeChecker/builtins.d.ts +10 -0
  330. package/dist/lib/typeChecker/builtins.js +85 -51
  331. package/dist/lib/typeChecker/checker.d.ts +1 -2
  332. package/dist/lib/typeChecker/checker.js +396 -61
  333. package/dist/lib/typeChecker/dimensionMismatch.test.d.ts +1 -0
  334. package/dist/lib/typeChecker/dimensionMismatch.test.js +58 -0
  335. package/dist/lib/typeChecker/index.d.ts +6 -3
  336. package/dist/lib/typeChecker/index.js +117 -18
  337. package/dist/lib/typeChecker/inference.d.ts +2 -3
  338. package/dist/lib/typeChecker/inference.js +85 -15
  339. package/dist/lib/typeChecker/primitives.d.ts +8 -0
  340. package/dist/lib/typeChecker/primitives.js +7 -0
  341. package/dist/lib/typeChecker/scope.d.ts +17 -0
  342. package/dist/lib/typeChecker/scope.js +33 -0
  343. package/dist/lib/typeChecker/scope.test.d.ts +1 -0
  344. package/dist/lib/typeChecker/scope.test.js +41 -0
  345. package/dist/lib/typeChecker/scopes.d.ts +16 -6
  346. package/dist/lib/typeChecker/scopes.js +164 -119
  347. package/dist/lib/typeChecker/suppression.d.ts +28 -0
  348. package/dist/lib/typeChecker/suppression.js +48 -0
  349. package/dist/lib/typeChecker/suppression.test.d.ts +1 -0
  350. package/dist/lib/typeChecker/suppression.test.js +115 -0
  351. package/dist/lib/typeChecker/synthesizer.d.ts +5 -15
  352. package/dist/lib/typeChecker/synthesizer.js +291 -51
  353. package/dist/lib/typeChecker/typeWalker.d.ts +8 -0
  354. package/dist/lib/typeChecker/typeWalker.js +33 -0
  355. package/dist/lib/typeChecker/types.d.ts +12 -2
  356. package/dist/lib/typeChecker/utils.d.ts +25 -7
  357. package/dist/lib/typeChecker/utils.js +74 -17
  358. package/dist/lib/typeChecker/validate.d.ts +2 -1
  359. package/dist/lib/typeChecker/validate.js +10 -23
  360. package/dist/lib/typeChecker/validation.d.ts +22 -0
  361. package/dist/lib/typeChecker/validation.js +36 -0
  362. package/dist/lib/typeChecker/validation.test.d.ts +1 -0
  363. package/dist/lib/typeChecker/validation.test.js +67 -0
  364. package/dist/lib/typeChecker.test.js +3711 -4
  365. package/dist/lib/types/access.d.ts +4 -1
  366. package/dist/lib/types/blockArgument.d.ts +1 -0
  367. package/dist/lib/types/function.d.ts +1 -1
  368. package/dist/lib/types/function.js +1 -0
  369. package/dist/lib/types/gotoStatement.d.ts +6 -0
  370. package/dist/lib/types/gotoStatement.js +1 -0
  371. package/dist/lib/types/interruptStatement.d.ts +8 -0
  372. package/dist/lib/types/interruptStatement.js +1 -0
  373. package/dist/lib/types/literals.d.ts +17 -1
  374. package/dist/lib/types/literals.js +3 -1
  375. package/dist/lib/types/matchBlock.d.ts +2 -2
  376. package/dist/lib/types/parallelBlock.d.ts +10 -0
  377. package/dist/lib/types/parallelBlock.js +1 -0
  378. package/dist/lib/types.d.ts +21 -30
  379. package/dist/lib/types.js +3 -1
  380. package/dist/lib/utils/markdown.js +1 -1
  381. package/dist/lib/utils/node.d.ts +11 -4
  382. package/dist/lib/utils/node.js +36 -5
  383. package/dist/lib/version.d.ts +1 -1
  384. package/dist/lib/version.js +1 -1
  385. package/dist/scripts/agency.d.ts +8 -0
  386. package/dist/scripts/agency.js +547 -389
  387. package/dist/scripts/agency.test.d.ts +1 -0
  388. package/dist/scripts/agency.test.js +47 -0
  389. package/dist/scripts/regenerate-fixtures.js +2 -2
  390. package/package.json +11 -5
  391. package/stdlib/agent.agency +1 -3
  392. package/stdlib/agent.js +53 -56
  393. package/stdlib/array.agency +40 -0
  394. package/stdlib/array.js +205 -113
  395. package/stdlib/browser.agency +47 -0
  396. package/stdlib/browser.js +373 -0
  397. package/stdlib/calendar.agency +235 -0
  398. package/stdlib/calendar.js +1184 -0
  399. package/stdlib/clipboard.agency +4 -0
  400. package/stdlib/clipboard.js +82 -33
  401. package/stdlib/date.agency +233 -0
  402. package/stdlib/date.js +1948 -0
  403. package/stdlib/email.agency +163 -0
  404. package/stdlib/email.js +1004 -0
  405. package/stdlib/fs.agency +43 -34
  406. package/stdlib/fs.js +241 -215
  407. package/stdlib/http.agency +11 -31
  408. package/stdlib/http.js +88 -348
  409. package/stdlib/imessage.agency +42 -0
  410. package/stdlib/imessage.js +332 -0
  411. package/stdlib/index.agency +78 -41
  412. package/stdlib/index.js +463 -282
  413. package/stdlib/keyring.agency +80 -0
  414. package/stdlib/keyring.js +719 -0
  415. package/stdlib/lib/allowBlockList.js +37 -0
  416. package/stdlib/lib/browserUse.js +75 -0
  417. package/stdlib/lib/builtins.js +22 -39
  418. package/stdlib/lib/calendar.js +145 -0
  419. package/stdlib/lib/clipboard.js +21 -9
  420. package/stdlib/lib/date.js +196 -0
  421. package/stdlib/lib/email.js +145 -0
  422. package/stdlib/lib/fs.js +58 -32
  423. package/stdlib/lib/http.js +38 -6
  424. package/stdlib/lib/imessage.js +49 -0
  425. package/stdlib/lib/keyring.js +159 -0
  426. package/stdlib/lib/messaging.js +1 -0
  427. package/stdlib/lib/oauth.js +288 -0
  428. package/stdlib/lib/oauthEncryption.js +69 -0
  429. package/stdlib/lib/policy.js +1 -0
  430. package/stdlib/lib/resolvePath.js +43 -0
  431. package/stdlib/lib/shell.js +102 -44
  432. package/stdlib/lib/sms.js +47 -0
  433. package/stdlib/lib/speech.js +10 -9
  434. package/stdlib/lib/system.js +11 -8
  435. package/stdlib/lib/utils.js +3 -3
  436. package/stdlib/math.js +33 -37
  437. package/stdlib/oauth.agency +105 -0
  438. package/stdlib/oauth.js +770 -0
  439. package/stdlib/object.agency +15 -0
  440. package/stdlib/object.js +94 -59
  441. package/stdlib/path.agency +6 -0
  442. package/stdlib/path.js +58 -59
  443. package/stdlib/policy.agency +15 -0
  444. package/stdlib/policy.js +376 -0
  445. package/stdlib/shell.agency +59 -21
  446. package/stdlib/shell.js +362 -142
  447. package/stdlib/sms.agency +49 -0
  448. package/stdlib/sms.js +371 -0
  449. package/stdlib/speech.agency +16 -0
  450. package/stdlib/speech.js +96 -35
  451. package/stdlib/strategy.agency +18 -0
  452. package/stdlib/strategy.js +123 -68
  453. package/stdlib/system.agency +26 -4
  454. package/stdlib/system.js +215 -70
  455. package/stdlib/ui.agency +12 -0
  456. package/stdlib/ui.js +103 -104
  457. package/stdlib/weather.agency +3 -0
  458. package/stdlib/weather.js +37 -36
  459. package/stdlib/wikipedia.js +36 -36
  460. package/README.md +0 -35
  461. package/dist/lib/cli/auth.d.ts +0 -4
  462. package/dist/lib/cli/auth.js +0 -60
  463. package/dist/lib/programInfo.d.ts +0 -21
  464. package/dist/lib/programInfo.js +0 -137
  465. package/dist/lib/runtime/mcp/__tests__/testServer.js +0 -14
  466. package/dist/lib/runtime/mcp/callbackServer.d.ts +0 -20
  467. package/dist/lib/runtime/mcp/callbackServer.js +0 -86
  468. package/dist/lib/runtime/mcp/callbackServer.test.js +0 -57
  469. package/dist/lib/runtime/mcp/mcp.integration.test.js +0 -37
  470. package/dist/lib/runtime/mcp/mcpConnection.d.ts +0 -23
  471. package/dist/lib/runtime/mcp/mcpConnection.js +0 -71
  472. package/dist/lib/runtime/mcp/mcpConnection.test.js +0 -58
  473. package/dist/lib/runtime/mcp/mcpManager.d.ts +0 -20
  474. package/dist/lib/runtime/mcp/mcpManager.js +0 -91
  475. package/dist/lib/runtime/mcp/mcpManager.test.js +0 -128
  476. package/dist/lib/runtime/mcp/oauthConnector.d.ts +0 -41
  477. package/dist/lib/runtime/mcp/oauthConnector.js +0 -81
  478. package/dist/lib/runtime/mcp/oauthConnector.test.js +0 -26
  479. package/dist/lib/runtime/mcp/oauthProvider.d.ts +0 -52
  480. package/dist/lib/runtime/mcp/oauthProvider.js +0 -157
  481. package/dist/lib/runtime/mcp/oauthProvider.test.js +0 -151
  482. package/dist/lib/runtime/mcp/tokenStore.d.ts +0 -22
  483. package/dist/lib/runtime/mcp/tokenStore.js +0 -103
  484. package/dist/lib/runtime/mcp/tokenStore.test.js +0 -80
  485. package/dist/lib/runtime/mcp/toolAdapter.d.ts +0 -6
  486. package/dist/lib/runtime/mcp/toolAdapter.js +0 -51
  487. package/dist/lib/runtime/mcp/toolAdapter.test.js +0 -68
  488. package/dist/lib/runtime/mcp/types.d.ts +0 -26
  489. package/dist/lib/runtime/mcp/types.js +0 -9
  490. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/mcp.d.ts +0 -4
  491. package/dist/lib/types/placeholder.d.ts +0 -4
  492. /package/dist/lib/{programInfo.test.d.ts → backends/typescriptGenerator/typeToZodSchema.test.d.ts} +0 -0
  493. /package/dist/lib/{runtime/mcp/__tests__/testServer.d.ts → cli/schedule/backends/backends.test.d.ts} +0 -0
  494. /package/dist/lib/{runtime/mcp/callbackServer.test.d.ts → cli/schedule/backends/expandField.test.d.ts} +0 -0
  495. /package/dist/lib/{runtime/mcp/mcp.integration.test.d.ts → cli/schedule/cron.test.d.ts} +0 -0
  496. /package/dist/lib/{runtime/mcp/mcpConnection.test.d.ts → cli/schedule/index.test.d.ts} +0 -0
  497. /package/dist/lib/{runtime/mcp/mcpManager.test.d.ts → cli/schedule/registry.test.d.ts} +0 -0
  498. /package/dist/lib/{runtime/mcp/oauthConnector.test.d.ts → compilationUnit.test.d.ts} +0 -0
  499. /package/dist/lib/{runtime/mcp/oauthProvider.test.d.ts → debugger/exportFrames.test.d.ts} +0 -0
  500. /package/dist/lib/{runtime/mcp/tokenStore.test.d.ts → debugger/testSession.test.d.ts} +0 -0
  501. /package/dist/lib/{runtime/mcp/toolAdapter.test.d.ts → formatter.test.d.ts} +0 -0
  502. /package/dist/lib/{types/placeholder.js → lsp/codeAction.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,5 +1,6 @@
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
+ import { BlockArgument } from "../types/blockArgument.js";
3
4
  import { AgencyArray, AgencyObject } from "../types/dataStructures.js";
4
5
  import { FunctionCall, FunctionDefinition } from "../types/function.js";
5
6
  import { GraphNodeDefinition, Visibility } from "../types/graphNode.js";
@@ -7,6 +8,7 @@ import { IfElse } from "../types/ifElse.js";
7
8
  import { ImportNameType, ImportNodeStatement, ImportStatement } from "../types/importStatement.js";
8
9
  import { MatchBlock } from "../types/matchBlock.js";
9
10
  import { ReturnStatement } from "../types/returnStatement.js";
11
+ import { GotoStatement } from "../types/gotoStatement.js";
10
12
  import { ForLoop } from "../types/forLoop.js";
11
13
  import { WhileLoop } from "../types/whileLoop.js";
12
14
  import { AgencyConfig } from "../config.js";
@@ -23,7 +25,7 @@ export declare class AgencyGenerator {
23
25
  protected generatedTypeAliases: string[];
24
26
  protected typeAliases: Record<string, VariableType>;
25
27
  protected functionsUsed: Set<string>;
26
- protected importStatements: string[];
28
+ protected importNodes: ImportStatement[];
27
29
  protected importedNodes: ImportNodeStatement[];
28
30
  protected functionDefinitions: Record<string, FunctionDefinition>;
29
31
  protected currentScope: Scope[];
@@ -47,6 +49,7 @@ export declare class AgencyGenerator {
47
49
  protected collectFunctionSignature(node: FunctionDefinition): void;
48
50
  protected processGraphNodeName(node: GraphNodeDefinition): void;
49
51
  processNode(node: AgencyNode): string;
52
+ protected processInterruptStatement(node: InterruptStatement): string;
50
53
  protected needsParensLeft(child: BinOpArgument, parentOp: Operator): boolean;
51
54
  protected needsParensRight(child: BinOpArgument, parentOp: Operator): boolean;
52
55
  protected startScope(scope: Scope): void;
@@ -57,6 +60,8 @@ export declare class AgencyGenerator {
57
60
  private increaseIndent;
58
61
  private decreaseIndent;
59
62
  private indentStr;
63
+ private wrapList;
64
+ private renderParams;
60
65
  private stringifyProp;
61
66
  protected aliasedTypeToString(aliasedType: VariableType): string;
62
67
  protected processTypeAlias(node: TypeAlias): string;
@@ -66,9 +71,12 @@ export declare class AgencyGenerator {
66
71
  private generateMultiLineStringLiteral;
67
72
  protected processFunctionDefinition(node: FunctionDefinition): string;
68
73
  protected processFunctionCall(node: FunctionCall): string;
74
+ protected renderArgs(args: FunctionCall["arguments"], block?: BlockArgument): string[];
75
+ protected renderArgList(args: FunctionCall["arguments"], block?: BlockArgument): string;
69
76
  protected generateFunctionCallExpression(node: FunctionCall, context: "valueAccess" | "functionArg" | "topLevelStatement"): string;
70
77
  protected processAgencyArray(node: AgencyArray): string;
71
78
  protected processAgencyObject(node: AgencyObject): string;
79
+ private addQuotesToKey;
72
80
  protected processValueAccess(node: ValueAccess): string;
73
81
  protected asyncAwaitPrefix(code: string, async?: boolean): string;
74
82
  protected processMatchBlock(node: MatchBlock): string;
@@ -76,6 +84,7 @@ export declare class AgencyGenerator {
76
84
  protected processWhileLoop(node: WhileLoop): string;
77
85
  protected processIfElse(node: IfElse): string;
78
86
  protected processReturnStatement(node: ReturnStatement): string;
87
+ protected processGotoStatement(node: GotoStatement): string;
79
88
  protected processDebuggerStatement(node: DebuggerStatement): string;
80
89
  protected processComment(node: AgencyComment): string;
81
90
  protected processMultiLineComment(node: AgencyMultiLineComment): string;
@@ -85,16 +94,21 @@ export declare class AgencyGenerator {
85
94
  protected processImportStatement(node: ImportStatement): string;
86
95
  protected processImportNameType(node: ImportNameType): string;
87
96
  protected processImportNodeStatement(node: ImportNodeStatement): string;
97
+ private sortAndRenderImports;
88
98
  protected visibilityToString(vis: Visibility): string;
89
99
  protected processGraphNode(node: GraphNodeDefinition): string;
90
100
  protected processClassDefinition(node: ClassDefinition): string;
91
101
  protected processNewExpression(node: NewExpression): string;
92
102
  protected processTool(node: FunctionDefinition): string;
93
103
  protected processNewLine(_node: NewLine): string;
104
+ protected renderBody(body: AgencyNode[]): string;
94
105
  protected processMessageThread(node: MessageThread): string;
106
+ protected processParallelBlock(node: ParallelBlock): string;
107
+ protected processSeqBlock(node: SeqBlock): string;
95
108
  protected processHandleBlock(node: HandleBlock): string;
96
109
  protected processSkill(node: Skill): string;
97
110
  protected processBinOpExpression(node: BinOpExpression, assigned?: boolean): string;
111
+ private flattenPipeChain;
98
112
  protected processAccessChainElement(node: AccessChainElement): string;
99
113
  protected formatTag(tag: Tag): string;
100
114
  protected formatAttachedTags(node: {