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.
Files changed (443) 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 +12 -2
  4. package/dist/lib/backends/agencyGenerator.js +194 -159
  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 +260 -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 +9 -7
  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 +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 +0 -16
  55. package/dist/lib/config.js +1 -80
  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.js +2 -2
  72. package/dist/lib/formatter.test.js +118 -0
  73. package/dist/lib/importPaths.d.ts +4 -0
  74. package/dist/lib/importPaths.js +13 -0
  75. package/dist/lib/importPaths.test.js +13 -13
  76. package/dist/lib/ir/builders.d.ts +3 -4
  77. package/dist/lib/ir/builders.js +3 -8
  78. package/dist/lib/ir/prettyPrint.js +1 -1
  79. package/dist/lib/ir/tsIR.d.ts +1 -1
  80. package/dist/lib/lsp/codeAction.d.ts +4 -0
  81. package/dist/lib/lsp/codeAction.js +104 -0
  82. package/dist/lib/lsp/codeAction.test.js +99 -0
  83. package/dist/lib/lsp/completion.d.ts +12 -2
  84. package/dist/lib/lsp/completion.js +285 -13
  85. package/dist/lib/lsp/completion.test.js +48 -9
  86. package/dist/lib/lsp/definition.d.ts +3 -1
  87. package/dist/lib/lsp/definition.js +40 -4
  88. package/dist/lib/lsp/definition.test.js +4 -4
  89. package/dist/lib/lsp/diagnostics.d.ts +4 -2
  90. package/dist/lib/lsp/diagnostics.js +8 -8
  91. package/dist/lib/lsp/diagnostics.test.js +2 -1
  92. package/dist/lib/lsp/documentHighlight.d.ts +3 -0
  93. package/dist/lib/lsp/documentHighlight.js +13 -0
  94. package/dist/lib/lsp/documentHighlight.test.js +29 -0
  95. package/dist/lib/lsp/documentLink.d.ts +4 -0
  96. package/dist/lib/lsp/documentLink.js +44 -0
  97. package/dist/lib/lsp/documentLink.test.js +42 -0
  98. package/dist/lib/lsp/documentState.d.ts +12 -0
  99. package/dist/lib/lsp/documentState.js +1 -0
  100. package/dist/lib/lsp/documentSymbol.js +2 -5
  101. package/dist/lib/lsp/foldingRange.d.ts +4 -0
  102. package/dist/lib/lsp/foldingRange.js +31 -0
  103. package/dist/lib/lsp/foldingRange.test.d.ts +1 -0
  104. package/dist/lib/lsp/foldingRange.test.js +44 -0
  105. package/dist/lib/lsp/hover.d.ts +3 -1
  106. package/dist/lib/lsp/hover.js +27 -10
  107. package/dist/lib/lsp/hover.test.js +29 -9
  108. package/dist/lib/lsp/inlayHint.d.ts +4 -0
  109. package/dist/lib/lsp/inlayHint.js +37 -0
  110. package/dist/lib/lsp/inlayHint.test.d.ts +1 -0
  111. package/dist/lib/lsp/inlayHint.test.js +40 -0
  112. package/dist/lib/lsp/references.d.ts +3 -0
  113. package/dist/lib/lsp/references.js +12 -0
  114. package/dist/lib/lsp/references.test.d.ts +1 -0
  115. package/dist/lib/lsp/references.test.js +41 -0
  116. package/dist/lib/lsp/rename.d.ts +4 -0
  117. package/dist/lib/lsp/rename.js +30 -0
  118. package/dist/lib/lsp/rename.test.d.ts +1 -0
  119. package/dist/lib/lsp/rename.test.js +49 -0
  120. package/dist/lib/lsp/scopeResolution.d.ts +11 -0
  121. package/dist/lib/lsp/scopeResolution.js +48 -0
  122. package/dist/lib/lsp/scopeResolution.test.d.ts +1 -0
  123. package/dist/lib/lsp/scopeResolution.test.js +60 -0
  124. package/dist/lib/lsp/semantics.js +54 -57
  125. package/dist/lib/lsp/server.js +115 -29
  126. package/dist/lib/lsp/signatureHelp.d.ts +4 -0
  127. package/dist/lib/lsp/signatureHelp.js +61 -0
  128. package/dist/lib/lsp/signatureHelp.test.d.ts +1 -0
  129. package/dist/lib/lsp/signatureHelp.test.js +38 -0
  130. package/dist/lib/lsp/typeDefinition.d.ts +6 -0
  131. package/dist/lib/lsp/typeDefinition.js +23 -0
  132. package/dist/lib/lsp/typeDefinition.test.d.ts +1 -0
  133. package/dist/lib/lsp/typeDefinition.test.js +38 -0
  134. package/dist/lib/lsp/typeResolution.d.ts +3 -0
  135. package/dist/lib/lsp/typeResolution.js +16 -0
  136. package/dist/lib/lsp/typeResolution.test.d.ts +1 -0
  137. package/dist/lib/lsp/typeResolution.test.js +36 -0
  138. package/dist/lib/lsp/util.d.ts +17 -0
  139. package/dist/lib/lsp/util.js +38 -0
  140. package/dist/lib/lsp/util.test.d.ts +1 -0
  141. package/dist/lib/lsp/util.test.js +37 -0
  142. package/dist/lib/lsp/workspaceSymbol.d.ts +3 -0
  143. package/dist/lib/lsp/workspaceSymbol.js +35 -0
  144. package/dist/lib/lsp/workspaceSymbol.test.d.ts +1 -0
  145. package/dist/lib/lsp/workspaceSymbol.test.js +42 -0
  146. package/dist/lib/mcp/tools.js +7 -4
  147. package/dist/lib/parser.d.ts +1 -0
  148. package/dist/lib/parser.js +15 -3
  149. package/dist/lib/parser.test.js +64 -1
  150. package/dist/lib/parsers/assignment.test.js +23 -19
  151. package/dist/lib/parsers/blankLine.test.d.ts +1 -0
  152. package/dist/lib/parsers/blankLine.test.js +34 -0
  153. package/dist/lib/parsers/expression.test.js +0 -26
  154. package/dist/lib/parsers/interruptStatement.test.d.ts +1 -0
  155. package/dist/lib/parsers/interruptStatement.test.js +81 -0
  156. package/dist/lib/parsers/multiLineComment.test.js +30 -5
  157. package/dist/lib/parsers/parallelBlock.test.d.ts +1 -0
  158. package/dist/lib/parsers/parallelBlock.test.js +139 -0
  159. package/dist/lib/parsers/parsers.d.ts +14 -3
  160. package/dist/lib/parsers/parsers.js +147 -44
  161. package/dist/lib/parsers/tagIntegration.test.js +4 -4
  162. package/dist/lib/parsers/typeHints.test.js +7 -0
  163. package/dist/lib/parsers/unitLiteral.test.d.ts +1 -0
  164. package/dist/lib/parsers/unitLiteral.test.js +92 -0
  165. package/dist/lib/preprocessors/importResolver.js +1 -1
  166. package/dist/lib/preprocessors/importResolver.test.js +56 -31
  167. package/dist/lib/preprocessors/parallelDesugar.d.ts +37 -0
  168. package/dist/lib/preprocessors/parallelDesugar.js +495 -0
  169. package/dist/lib/preprocessors/parallelDesugar.test.d.ts +1 -0
  170. package/dist/lib/preprocessors/parallelDesugar.test.js +389 -0
  171. package/dist/lib/preprocessors/typescriptPreprocessor.core.test.js +94 -11
  172. package/dist/lib/preprocessors/typescriptPreprocessor.d.ts +29 -2
  173. package/dist/lib/preprocessors/typescriptPreprocessor.js +114 -21
  174. package/dist/lib/runtime/agencyFunction.d.ts +16 -1
  175. package/dist/lib/runtime/agencyFunction.js +124 -12
  176. package/dist/lib/runtime/agencyFunction.test.js +222 -0
  177. package/dist/lib/runtime/call.js +15 -0
  178. package/dist/lib/runtime/checkpoint.js +2 -1
  179. package/dist/lib/runtime/checkpoint.test.js +1 -1
  180. package/dist/lib/runtime/debugger.d.ts +1 -1
  181. package/dist/lib/runtime/debugger.js +2 -8
  182. package/dist/lib/runtime/debugger.test.js +10 -10
  183. package/dist/lib/runtime/hooks.d.ts +1 -0
  184. package/dist/lib/runtime/hooks.js +21 -0
  185. package/dist/lib/runtime/index.d.ts +4 -6
  186. package/dist/lib/runtime/index.js +4 -4
  187. package/dist/lib/runtime/interrupts.d.ts +20 -42
  188. package/dist/lib/runtime/interrupts.js +52 -100
  189. package/dist/lib/runtime/interrupts.test.d.ts +1 -0
  190. package/dist/lib/runtime/interrupts.test.js +28 -0
  191. package/dist/lib/runtime/isDebugger.test.js +3 -3
  192. package/dist/lib/runtime/node.d.ts +2 -1
  193. package/dist/lib/runtime/node.js +8 -6
  194. package/dist/lib/runtime/origin.d.ts +1 -0
  195. package/dist/lib/runtime/origin.js +18 -0
  196. package/dist/lib/runtime/origin.test.d.ts +1 -0
  197. package/dist/lib/runtime/origin.test.js +18 -0
  198. package/dist/lib/runtime/policy.d.ts +23 -0
  199. package/dist/lib/runtime/policy.js +52 -0
  200. package/dist/lib/runtime/policy.test.d.ts +1 -0
  201. package/dist/lib/runtime/policy.test.js +134 -0
  202. package/dist/lib/runtime/prompt.d.ts +2 -2
  203. package/dist/lib/runtime/prompt.js +260 -241
  204. package/dist/lib/runtime/result.d.ts +1 -1
  205. package/dist/lib/runtime/result.js +5 -3
  206. package/dist/lib/runtime/revivers/functionRefReviver.d.ts +1 -0
  207. package/dist/lib/runtime/revivers/functionRefReviver.js +47 -2
  208. package/dist/lib/runtime/revivers/functionRefReviver.test.js +139 -0
  209. package/dist/lib/runtime/rewind.d.ts +1 -11
  210. package/dist/lib/runtime/rewind.js +3 -3
  211. package/dist/lib/runtime/runner.d.ts +24 -5
  212. package/dist/lib/runtime/runner.js +216 -49
  213. package/dist/lib/runtime/runner.test.js +49 -14
  214. package/dist/lib/runtime/state/checkpointStore.d.ts +7 -2
  215. package/dist/lib/runtime/state/checkpointStore.js +10 -7
  216. package/dist/lib/runtime/state/checkpointStore.test.js +25 -25
  217. package/dist/lib/runtime/state/context.d.ts +29 -5
  218. package/dist/lib/runtime/state/context.js +47 -17
  219. package/dist/lib/runtime/state/pendingPromiseStore.js +6 -2
  220. package/dist/lib/runtime/state/stateStack.d.ts +21 -2
  221. package/dist/lib/runtime/state/stateStack.js +92 -16
  222. package/dist/lib/runtime/state/stateStack.test.js +28 -6
  223. package/dist/lib/runtime/stripBoundParams.d.ts +1 -0
  224. package/dist/lib/runtime/stripBoundParams.js +28 -0
  225. package/dist/lib/runtime/stripBoundParams.test.d.ts +1 -0
  226. package/dist/lib/runtime/stripBoundParams.test.js +70 -0
  227. package/dist/lib/runtime/trace/eventLog.d.ts +1 -1
  228. package/dist/lib/runtime/trace/traceReader.d.ts +1 -0
  229. package/dist/lib/runtime/trace/traceReader.js +8 -2
  230. package/dist/lib/runtime/trace/traceReader.test.js +30 -0
  231. package/dist/lib/runtime/trace/traceWriter.d.ts +1 -0
  232. package/dist/lib/runtime/trace/traceWriter.js +6 -0
  233. package/dist/lib/runtime/trace/traceWriter.test.js +12 -0
  234. package/dist/lib/runtime/trace/types.d.ts +5 -1
  235. package/dist/lib/runtime/types.d.ts +9 -8
  236. package/dist/lib/runtime/utils.d.ts +1 -0
  237. package/dist/lib/runtime/utils.js +21 -0
  238. package/dist/lib/runtime/utils.test.d.ts +1 -0
  239. package/dist/lib/runtime/utils.test.js +55 -0
  240. package/dist/lib/symbolTable.d.ts +66 -15
  241. package/dist/lib/symbolTable.js +116 -39
  242. package/dist/lib/symbolTable.test.js +9 -16
  243. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/registerTools.d.ts +4 -0
  244. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/{mcp.js → registerTools.js} +9 -4
  245. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/sleep.d.ts +1 -1
  246. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/sleep.js +4 -3
  247. package/dist/lib/templates/backends/typescriptGenerator/classMethod.d.ts +1 -1
  248. package/dist/lib/templates/backends/typescriptGenerator/classMethod.js +1 -1
  249. package/dist/lib/templates/backends/typescriptGenerator/forkBlockSetup.d.ts +1 -1
  250. package/dist/lib/templates/backends/typescriptGenerator/forkBlockSetup.js +4 -2
  251. package/dist/lib/templates/backends/typescriptGenerator/imports.d.ts +1 -1
  252. package/dist/lib/templates/backends/typescriptGenerator/imports.js +11 -18
  253. package/dist/lib/templates/backends/typescriptGenerator/interruptAssignment.d.ts +6 -2
  254. package/dist/lib/templates/backends/typescriptGenerator/interruptAssignment.js +27 -26
  255. package/dist/lib/templates/backends/typescriptGenerator/interruptReturn.d.ts +6 -2
  256. package/dist/lib/templates/backends/typescriptGenerator/interruptReturn.js +22 -29
  257. package/dist/lib/templates/backends/typescriptGenerator/resultCheckpointSetup.d.ts +1 -1
  258. package/dist/lib/templates/backends/typescriptGenerator/resultCheckpointSetup.js +1 -1
  259. package/dist/lib/templates/cli/evaluate.d.ts +1 -1
  260. package/dist/lib/templates/cli/evaluate.js +33 -28
  261. package/dist/lib/templates/cli/judgeEvaluate.d.ts +1 -1
  262. package/dist/lib/templates/cli/judgeEvaluate.js +31 -25
  263. package/dist/lib/templates/cli/schedule/plist.d.ts +10 -0
  264. package/dist/lib/templates/cli/schedule/plist.js +30 -0
  265. package/dist/lib/templates/cli/schedule/runScript.d.ts +10 -0
  266. package/dist/lib/templates/cli/schedule/runScript.js +24 -0
  267. package/dist/lib/templates/cli/schedule/service.d.ts +8 -0
  268. package/dist/lib/templates/cli/schedule/service.js +16 -0
  269. package/dist/lib/templates/cli/schedule/timer.d.ts +7 -0
  270. package/dist/lib/templates/cli/schedule/timer.js +18 -0
  271. package/dist/lib/typeChecker/assignability.js +48 -5
  272. package/dist/lib/typeChecker/blockBody.test.d.ts +1 -0
  273. package/dist/lib/typeChecker/blockBody.test.js +97 -0
  274. package/dist/lib/typeChecker/builtins.d.ts +10 -0
  275. package/dist/lib/typeChecker/builtins.js +85 -52
  276. package/dist/lib/typeChecker/checker.d.ts +1 -2
  277. package/dist/lib/typeChecker/checker.js +396 -64
  278. package/dist/lib/typeChecker/dimensionMismatch.test.d.ts +1 -0
  279. package/dist/lib/typeChecker/dimensionMismatch.test.js +58 -0
  280. package/dist/lib/typeChecker/index.d.ts +6 -3
  281. package/dist/lib/typeChecker/index.js +116 -17
  282. package/dist/lib/typeChecker/inference.d.ts +2 -3
  283. package/dist/lib/typeChecker/inference.js +85 -15
  284. package/dist/lib/typeChecker/primitives.d.ts +8 -0
  285. package/dist/lib/typeChecker/primitives.js +7 -0
  286. package/dist/lib/typeChecker/scope.d.ts +17 -0
  287. package/dist/lib/typeChecker/scope.js +33 -0
  288. package/dist/lib/typeChecker/scope.test.d.ts +1 -0
  289. package/dist/lib/typeChecker/scope.test.js +41 -0
  290. package/dist/lib/typeChecker/scopes.d.ts +16 -6
  291. package/dist/lib/typeChecker/scopes.js +164 -123
  292. package/dist/lib/typeChecker/suppression.d.ts +28 -0
  293. package/dist/lib/typeChecker/suppression.js +48 -0
  294. package/dist/lib/typeChecker/suppression.test.d.ts +1 -0
  295. package/dist/lib/typeChecker/suppression.test.js +115 -0
  296. package/dist/lib/typeChecker/synthesizer.d.ts +5 -15
  297. package/dist/lib/typeChecker/synthesizer.js +291 -51
  298. package/dist/lib/typeChecker/typeWalker.d.ts +8 -0
  299. package/dist/lib/typeChecker/typeWalker.js +33 -0
  300. package/dist/lib/typeChecker/types.d.ts +9 -2
  301. package/dist/lib/typeChecker/utils.d.ts +25 -7
  302. package/dist/lib/typeChecker/utils.js +73 -17
  303. package/dist/lib/typeChecker/validate.js +9 -23
  304. package/dist/lib/typeChecker/validation.d.ts +22 -0
  305. package/dist/lib/typeChecker/validation.js +36 -0
  306. package/dist/lib/typeChecker/validation.test.d.ts +1 -0
  307. package/dist/lib/typeChecker/validation.test.js +67 -0
  308. package/dist/lib/typeChecker.test.js +3711 -4
  309. package/dist/lib/types/interruptStatement.d.ts +8 -0
  310. package/dist/lib/types/interruptStatement.js +1 -0
  311. package/dist/lib/types/literals.d.ts +17 -1
  312. package/dist/lib/types/literals.js +3 -1
  313. package/dist/lib/types/matchBlock.d.ts +2 -2
  314. package/dist/lib/types/parallelBlock.d.ts +10 -0
  315. package/dist/lib/types/parallelBlock.js +1 -0
  316. package/dist/lib/types.d.ts +19 -30
  317. package/dist/lib/types.js +2 -1
  318. package/dist/lib/utils/markdown.js +1 -1
  319. package/dist/lib/utils/node.d.ts +11 -4
  320. package/dist/lib/utils/node.js +30 -5
  321. package/dist/lib/version.d.ts +1 -1
  322. package/dist/lib/version.js +1 -1
  323. package/dist/scripts/agency.js +109 -30
  324. package/dist/scripts/regenerate-fixtures.js +2 -2
  325. package/package.json +8 -5
  326. package/stdlib/_builtins.js +134 -0
  327. package/stdlib/_math.js +9 -0
  328. package/stdlib/agent.agency +1 -3
  329. package/stdlib/agent.js +47 -55
  330. package/stdlib/array.agency +40 -0
  331. package/stdlib/array.js +201 -113
  332. package/stdlib/browser.agency +47 -0
  333. package/stdlib/browser.js +373 -0
  334. package/stdlib/calendar.agency +235 -0
  335. package/stdlib/calendar.js +1184 -0
  336. package/stdlib/clipboard.agency +4 -0
  337. package/stdlib/clipboard.js +78 -33
  338. package/stdlib/date.agency +233 -0
  339. package/stdlib/date.js +1948 -0
  340. package/stdlib/email.agency +163 -0
  341. package/stdlib/email.js +1004 -0
  342. package/stdlib/fs.agency +43 -34
  343. package/stdlib/fs.js +233 -215
  344. package/stdlib/http.agency +11 -31
  345. package/stdlib/http.js +85 -349
  346. package/stdlib/imessage.agency +42 -0
  347. package/stdlib/imessage.js +332 -0
  348. package/stdlib/index.agency +69 -39
  349. package/stdlib/index.js +361 -287
  350. package/stdlib/keyring.agency +80 -0
  351. package/stdlib/keyring.js +719 -0
  352. package/stdlib/lib/allowBlockList.js +37 -0
  353. package/stdlib/lib/browserUse.js +75 -0
  354. package/stdlib/lib/builtins.js +22 -39
  355. package/stdlib/lib/calendar.js +145 -0
  356. package/stdlib/lib/clipboard.js +21 -9
  357. package/stdlib/lib/date.js +196 -0
  358. package/stdlib/lib/email.js +145 -0
  359. package/stdlib/lib/fs.js +58 -32
  360. package/stdlib/lib/http.js +38 -6
  361. package/stdlib/lib/imessage.js +49 -0
  362. package/stdlib/lib/keyring.js +159 -0
  363. package/stdlib/lib/messaging.js +1 -0
  364. package/stdlib/lib/oauth.js +288 -0
  365. package/stdlib/lib/oauthEncryption.js +69 -0
  366. package/stdlib/lib/policy.js +1 -0
  367. package/stdlib/lib/resolvePath.js +43 -0
  368. package/stdlib/lib/shell.js +102 -44
  369. package/stdlib/lib/sms.js +47 -0
  370. package/stdlib/lib/speech.js +10 -9
  371. package/stdlib/lib/system.js +11 -8
  372. package/stdlib/lib/utils.js +3 -3
  373. package/stdlib/math.js +29 -37
  374. package/stdlib/oauth.agency +105 -0
  375. package/stdlib/oauth.js +770 -0
  376. package/stdlib/object.agency +15 -0
  377. package/stdlib/object.js +90 -59
  378. package/stdlib/path.agency +6 -0
  379. package/stdlib/path.js +54 -59
  380. package/stdlib/policy.agency +15 -0
  381. package/stdlib/policy.js +376 -0
  382. package/stdlib/shell.agency +59 -21
  383. package/stdlib/shell.js +355 -143
  384. package/stdlib/sms.agency +49 -0
  385. package/stdlib/sms.js +371 -0
  386. package/stdlib/speech.agency +16 -0
  387. package/stdlib/speech.js +92 -35
  388. package/stdlib/strategy.agency +18 -0
  389. package/stdlib/strategy.js +119 -68
  390. package/stdlib/system.agency +26 -4
  391. package/stdlib/system.js +211 -70
  392. package/stdlib/ui.agency +12 -0
  393. package/stdlib/ui.js +99 -104
  394. package/stdlib/weather.agency +3 -0
  395. package/stdlib/weather.js +32 -36
  396. package/stdlib/wikipedia.js +29 -36
  397. package/README.md +0 -35
  398. package/dist/lib/cli/auth.d.ts +0 -4
  399. package/dist/lib/cli/auth.js +0 -60
  400. package/dist/lib/debugger/hotReload.d.ts +0 -11
  401. package/dist/lib/debugger/hotReload.js +0 -73
  402. package/dist/lib/lsp/locations.d.ts +0 -3
  403. package/dist/lib/lsp/locations.js +0 -12
  404. package/dist/lib/programInfo.d.ts +0 -21
  405. package/dist/lib/programInfo.js +0 -137
  406. package/dist/lib/runtime/mcp/__tests__/testServer.js +0 -14
  407. package/dist/lib/runtime/mcp/callbackServer.d.ts +0 -20
  408. package/dist/lib/runtime/mcp/callbackServer.js +0 -86
  409. package/dist/lib/runtime/mcp/callbackServer.test.js +0 -57
  410. package/dist/lib/runtime/mcp/mcp.integration.test.js +0 -37
  411. package/dist/lib/runtime/mcp/mcpConnection.d.ts +0 -23
  412. package/dist/lib/runtime/mcp/mcpConnection.js +0 -71
  413. package/dist/lib/runtime/mcp/mcpConnection.test.js +0 -58
  414. package/dist/lib/runtime/mcp/mcpManager.d.ts +0 -20
  415. package/dist/lib/runtime/mcp/mcpManager.js +0 -91
  416. package/dist/lib/runtime/mcp/mcpManager.test.js +0 -128
  417. package/dist/lib/runtime/mcp/oauthConnector.d.ts +0 -41
  418. package/dist/lib/runtime/mcp/oauthConnector.js +0 -81
  419. package/dist/lib/runtime/mcp/oauthConnector.test.js +0 -26
  420. package/dist/lib/runtime/mcp/oauthProvider.d.ts +0 -52
  421. package/dist/lib/runtime/mcp/oauthProvider.js +0 -157
  422. package/dist/lib/runtime/mcp/oauthProvider.test.js +0 -151
  423. package/dist/lib/runtime/mcp/tokenStore.d.ts +0 -22
  424. package/dist/lib/runtime/mcp/tokenStore.js +0 -103
  425. package/dist/lib/runtime/mcp/tokenStore.test.js +0 -80
  426. package/dist/lib/runtime/mcp/toolAdapter.d.ts +0 -6
  427. package/dist/lib/runtime/mcp/toolAdapter.js +0 -51
  428. package/dist/lib/runtime/mcp/toolAdapter.test.js +0 -68
  429. package/dist/lib/runtime/mcp/types.d.ts +0 -26
  430. package/dist/lib/runtime/mcp/types.js +0 -9
  431. package/dist/lib/templates/backends/typescriptGenerator/builtinFunctions/mcp.d.ts +0 -4
  432. package/dist/lib/types/placeholder.d.ts +0 -4
  433. /package/dist/lib/{programInfo.test.d.ts → cli/schedule/backends/backends.test.d.ts} +0 -0
  434. /package/dist/lib/{runtime/mcp/__tests__/testServer.d.ts → cli/schedule/backends/expandField.test.d.ts} +0 -0
  435. /package/dist/lib/{runtime/mcp/callbackServer.test.d.ts → cli/schedule/cron.test.d.ts} +0 -0
  436. /package/dist/lib/{runtime/mcp/mcp.integration.test.d.ts → cli/schedule/index.test.d.ts} +0 -0
  437. /package/dist/lib/{runtime/mcp/mcpConnection.test.d.ts → cli/schedule/registry.test.d.ts} +0 -0
  438. /package/dist/lib/{runtime/mcp/mcpManager.test.d.ts → compilationUnit.test.d.ts} +0 -0
  439. /package/dist/lib/{runtime/mcp/oauthConnector.test.d.ts → debugger/exportFrames.test.d.ts} +0 -0
  440. /package/dist/lib/{runtime/mcp/oauthProvider.test.d.ts → debugger/testSession.test.d.ts} +0 -0
  441. /package/dist/lib/{runtime/mcp/tokenStore.test.d.ts → lsp/codeAction.test.d.ts} +0 -0
  442. /package/dist/lib/{runtime/mcp/toolAdapter.test.d.ts → lsp/documentHighlight.test.d.ts} +0 -0
  443. /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 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,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: {