agency-lang 0.0.107 → 0.1.1

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