agency-lang 0.7.8 → 0.8.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 (523) hide show
  1. package/dist/lib/agents/agency-agent/agent.agency +82 -9
  2. package/dist/lib/agents/agency-agent/agent.js +1165 -910
  3. package/dist/lib/agents/agency-agent/lib/attachments.js +12 -18
  4. package/dist/lib/agents/agency-agent/lib/capabilities.js +64 -84
  5. package/dist/lib/agents/agency-agent/lib/config.agency +10 -0
  6. package/dist/lib/agents/agency-agent/lib/config.js +12 -6
  7. package/dist/lib/agents/agency-agent/lib/defaultPolicy.js +96 -104
  8. package/dist/lib/agents/agency-agent/lib/modelFilters.js +5 -6
  9. package/dist/lib/agents/agency-agent/lib/models.js +53 -85
  10. package/dist/lib/agents/agency-agent/lib/resolution.js +39 -73
  11. package/dist/lib/agents/agency-agent/lib/search.js +60 -97
  12. package/dist/lib/agents/agency-agent/lib/settings.agency +10 -1
  13. package/dist/lib/agents/agency-agent/lib/settings.js +160 -54
  14. package/dist/lib/agents/agency-agent/lib/slots.js +18 -22
  15. package/dist/lib/agents/agency-agent/lib/utils.js +24 -33
  16. package/dist/lib/agents/agency-agent/prompts/codeSample.js +3 -2
  17. package/dist/lib/agents/agency-agent/shared.js +109 -184
  18. package/dist/lib/agents/agency-agent/subagents/code.agency +22 -11
  19. package/dist/lib/agents/agency-agent/subagents/code.js +73 -95
  20. package/dist/lib/agents/agency-agent/subagents/explorer.agency +5 -3
  21. package/dist/lib/agents/agency-agent/subagents/explorer.js +24 -36
  22. package/dist/lib/agents/agency-agent/subagents/oracle.agency +5 -3
  23. package/dist/lib/agents/agency-agent/subagents/oracle.js +24 -36
  24. package/dist/lib/agents/agency-agent/subagents/research.agency +12 -14
  25. package/dist/lib/agents/agency-agent/subagents/research.js +29 -41
  26. package/dist/lib/agents/agency-agent/subagents/review.agency +27 -130
  27. package/dist/lib/agents/agency-agent/subagents/review.js +40 -800
  28. package/dist/lib/agents/agency-agent/subagents/verify.agency +26 -17
  29. package/dist/lib/agents/agency-agent/subagents/verify.js +157 -45
  30. package/dist/lib/agents/agency-agent/tests/agentDir.js +6 -16
  31. package/dist/lib/agents/agency-agent/tests/agentTurn.js +61 -145
  32. package/dist/lib/agents/agency-agent/tests/attachments.js +102 -212
  33. package/dist/lib/agents/agency-agent/tests/attachmentsTurn.js +17 -40
  34. package/dist/lib/agents/agency-agent/tests/capabilities.js +9 -43
  35. package/dist/lib/agents/agency-agent/tests/capabilities.test.json +1 -1
  36. package/dist/lib/agents/agency-agent/tests/execPolicy.agency +2 -2
  37. package/dist/lib/agents/agency-agent/tests/execPolicy.js +11 -18
  38. package/dist/lib/agents/agency-agent/tests/gitPolicy.agency +2 -2
  39. package/dist/lib/agents/agency-agent/tests/gitPolicy.js +13 -33
  40. package/dist/lib/agents/agency-agent/tests/imageTool.js +16 -41
  41. package/dist/lib/agents/agency-agent/tests/mcpGating.agency +42 -0
  42. package/dist/lib/agents/agency-agent/tests/mcpGating.js +670 -0
  43. package/dist/lib/agents/agency-agent/tests/mcpGating.test.json +22 -0
  44. package/dist/lib/agents/agency-agent/tests/memoryWiring.js +19 -65
  45. package/dist/lib/agents/agency-agent/tests/modelFilters.js +0 -5
  46. package/dist/lib/agents/agency-agent/tests/models.js +5 -25
  47. package/dist/lib/agents/agency-agent/tests/oneShotRounds.js +0 -4
  48. package/dist/lib/agents/agency-agent/tests/resolution.js +11 -28
  49. package/dist/lib/agents/agency-agent/tests/search.js +15 -37
  50. package/dist/lib/agents/agency-agent/tests/settings.js +52 -108
  51. package/dist/lib/agents/agency-agent/tests/settings.test.json +2 -2
  52. package/dist/lib/agents/agency-agent/tests/slots.js +0 -5
  53. package/dist/lib/agents/agency-agent/tests/toolWiring.js +6 -6
  54. package/dist/lib/agents/agency-agent/tests/turnFailure.agency +4 -0
  55. package/dist/lib/agents/agency-agent/tests/turnFailure.js +92 -6
  56. package/dist/lib/agents/agency-agent/tests/turnFailure.test.json +6 -0
  57. package/dist/lib/agents/eval/goalJudge.js +3 -2
  58. package/dist/lib/agents/eval/judge.js +1 -0
  59. package/dist/lib/agents/eval/judgePairwise.js +1 -0
  60. package/dist/lib/agents/optimize/gepaReflect.js +1 -0
  61. package/dist/lib/agents/optimize/mutatePrompt.js +1 -0
  62. package/dist/lib/agents/policy/agent.js +47 -66
  63. package/dist/lib/agents/review/agent.js +8 -7
  64. package/dist/lib/backends/agencyGenerator.d.ts +14 -0
  65. package/dist/lib/backends/agencyGenerator.js +49 -35
  66. package/dist/lib/backends/agencyGenerator.test.js +116 -0
  67. package/dist/lib/backends/raisesFormat.test.js +24 -0
  68. package/dist/lib/backends/signatureOf.test.d.ts +1 -0
  69. package/dist/lib/backends/signatureOf.test.js +34 -0
  70. package/dist/lib/backends/typeOperators.codegen.test.d.ts +1 -0
  71. package/dist/lib/backends/typeOperators.codegen.test.js +126 -0
  72. package/dist/lib/backends/typescriptBuilder/destructiveTracking.d.ts +63 -0
  73. package/dist/lib/backends/typescriptBuilder/destructiveTracking.js +109 -0
  74. package/dist/lib/backends/typescriptBuilder/destructiveTracking.test.d.ts +1 -0
  75. package/dist/lib/backends/typescriptBuilder/destructiveTracking.test.js +104 -0
  76. package/dist/lib/backends/typescriptBuilder/nameClassifier.d.ts +13 -4
  77. package/dist/lib/backends/typescriptBuilder/nameClassifier.js +44 -13
  78. package/dist/lib/backends/typescriptBuilder/scopeManager.d.ts +6 -6
  79. package/dist/lib/backends/typescriptBuilder/scopeManager.js +9 -9
  80. package/dist/lib/backends/typescriptBuilder.d.ts +5 -0
  81. package/dist/lib/backends/typescriptBuilder.integration.test.js +52 -28
  82. package/dist/lib/backends/typescriptBuilder.js +134 -33
  83. package/dist/lib/backends/typescriptGenerator/typeToString.d.ts +6 -0
  84. package/dist/lib/backends/typescriptGenerator/typeToString.js +47 -2
  85. package/dist/lib/backends/typescriptGenerator/validationDescriptor.js +11 -0
  86. package/dist/lib/cli/commands.d.ts +34 -1
  87. package/dist/lib/cli/commands.js +84 -4
  88. package/dist/lib/cli/commands.test.d.ts +1 -0
  89. package/dist/lib/cli/commands.test.js +115 -0
  90. package/dist/lib/cli/diagnosticsDocs.d.ts +8 -0
  91. package/dist/lib/cli/diagnosticsDocs.js +79 -0
  92. package/dist/lib/cli/diagnosticsDocs.test.d.ts +1 -0
  93. package/dist/lib/cli/diagnosticsDocs.test.js +61 -0
  94. package/dist/lib/cli/doc.js +2 -13
  95. package/dist/lib/cli/doc.test.js +13 -0
  96. package/dist/lib/cli/explain.d.ts +9 -0
  97. package/dist/lib/cli/explain.js +53 -0
  98. package/dist/lib/cli/explain.test.d.ts +1 -0
  99. package/dist/lib/cli/explain.test.js +44 -0
  100. package/dist/lib/cli/mcp.d.ts +13 -0
  101. package/dist/lib/cli/mcp.js +66 -0
  102. package/dist/lib/cli/mcp.test.d.ts +1 -0
  103. package/dist/lib/cli/mcp.test.js +70 -0
  104. package/dist/lib/cli/runPolicy.d.ts +11 -0
  105. package/dist/lib/cli/runPolicy.js +67 -0
  106. package/dist/lib/cli/runPolicy.spawn.test.d.ts +1 -0
  107. package/dist/lib/cli/runPolicy.spawn.test.js +198 -0
  108. package/dist/lib/cli/runPolicy.test.d.ts +1 -0
  109. package/dist/lib/cli/runPolicy.test.js +96 -0
  110. package/dist/lib/cli/serve.js +1 -1
  111. package/dist/lib/compilationUnit.d.ts +9 -1
  112. package/dist/lib/compilationUnit.js +25 -8
  113. package/dist/lib/compilationUnit.test.js +67 -1
  114. package/dist/lib/compiler/buildSession.js +9 -3
  115. package/dist/lib/compiler/compile.d.ts +1 -1
  116. package/dist/lib/compiler/compile.js +2 -2
  117. package/dist/lib/compiler/typecheck.d.ts +17 -3
  118. package/dist/lib/compiler/typecheck.getEffects.test.d.ts +1 -0
  119. package/dist/lib/compiler/typecheck.getEffects.test.js +35 -0
  120. package/dist/lib/compiler/typecheck.js +43 -11
  121. package/dist/lib/constants.d.ts +14 -0
  122. package/dist/lib/constants.js +17 -0
  123. package/dist/lib/debugger/driver.test.js +0 -1
  124. package/dist/lib/formatter.test.js +5 -5
  125. package/dist/lib/lowering/patternLowering.test.js +33 -0
  126. package/dist/lib/lsp/diagnostics.js +0 -1
  127. package/dist/lib/lsp/diagnostics.test.js +1 -1
  128. package/dist/lib/optimize/constraint.js +2 -1
  129. package/dist/lib/parsers/exportFromStatement.test.js +18 -9
  130. package/dist/lib/parsers/exportNode.test.js +6 -6
  131. package/dist/lib/parsers/expression.test.js +103 -0
  132. package/dist/lib/parsers/function.test.js +60 -68
  133. package/dist/lib/parsers/importStatement.test.js +76 -21
  134. package/dist/lib/parsers/intersectionParsing.test.d.ts +1 -0
  135. package/dist/lib/parsers/intersectionParsing.test.js +90 -0
  136. package/dist/lib/parsers/parsers.d.ts +52 -2
  137. package/dist/lib/parsers/parsers.js +208 -61
  138. package/dist/lib/parsers/typeOperatorParsing.test.d.ts +1 -0
  139. package/dist/lib/parsers/typeOperatorParsing.test.js +107 -0
  140. package/dist/lib/preprocessors/importResolver.js +27 -16
  141. package/dist/lib/preprocessors/importResolver.test.js +6 -11
  142. package/dist/lib/preprocessors/prunePreludeShadows.js +14 -1
  143. package/dist/lib/preprocessors/resolveReExports.js +4 -2
  144. package/dist/lib/preprocessors/resolveReExports.test.js +9 -16
  145. package/dist/lib/runtime/agencyFunction.d.ts +8 -2
  146. package/dist/lib/runtime/agencyFunction.js +21 -9
  147. package/dist/lib/runtime/agencyFunction.test.js +26 -0
  148. package/dist/lib/runtime/agencyInterrupt.d.ts +4 -0
  149. package/dist/lib/runtime/agencyInterrupt.js +1 -1
  150. package/dist/lib/runtime/builtinPolicies.d.ts +11 -0
  151. package/dist/lib/runtime/builtinPolicies.js +139 -0
  152. package/dist/lib/runtime/builtinPolicies.test.d.ts +1 -0
  153. package/dist/lib/runtime/builtinPolicies.test.js +54 -0
  154. package/dist/lib/runtime/failurePropagation.test.js +2 -2
  155. package/dist/lib/runtime/index.d.ts +4 -2
  156. package/dist/lib/runtime/index.js +4 -2
  157. package/dist/lib/runtime/interrupts.d.ts +16 -7
  158. package/dist/lib/runtime/interrupts.js +24 -2
  159. package/dist/lib/runtime/interrupts.test.js +36 -0
  160. package/dist/lib/runtime/ipc.d.ts +2 -0
  161. package/dist/lib/runtime/ipc.js +2 -2
  162. package/dist/lib/runtime/llmRetry.d.ts +45 -3
  163. package/dist/lib/runtime/llmRetry.js +47 -2
  164. package/dist/lib/runtime/llmRetry.test.js +64 -2
  165. package/dist/lib/runtime/memory/manager.js +0 -2
  166. package/dist/lib/runtime/nn.d.ts +13 -0
  167. package/dist/lib/runtime/nn.js +15 -0
  168. package/dist/lib/runtime/nn.test.d.ts +1 -0
  169. package/dist/lib/runtime/nn.test.js +20 -0
  170. package/dist/lib/runtime/node.js +6 -0
  171. package/dist/lib/runtime/policy.d.ts +11 -0
  172. package/dist/lib/runtime/policy.js +10 -2
  173. package/dist/lib/runtime/policy.test.js +25 -0
  174. package/dist/lib/runtime/prompt.d.ts +41 -0
  175. package/dist/lib/runtime/prompt.js +424 -263
  176. package/dist/lib/runtime/prompt.test.js +70 -5
  177. package/dist/lib/runtime/result.d.ts +28 -2
  178. package/dist/lib/runtime/result.js +23 -1
  179. package/dist/lib/runtime/result.test.js +43 -6
  180. package/dist/lib/runtime/runPolicyHandler.d.ts +27 -0
  181. package/dist/lib/runtime/runPolicyHandler.js +222 -0
  182. package/dist/lib/runtime/runPolicyHandler.test.d.ts +1 -0
  183. package/dist/lib/runtime/runPolicyHandler.test.js +363 -0
  184. package/dist/lib/runtime/toolBlockDiagnostics.d.ts +3 -1
  185. package/dist/lib/runtime/toolBlockDiagnostics.js +19 -8
  186. package/dist/lib/runtime/types.d.ts +1 -0
  187. package/dist/lib/runtime/utils.d.ts +8 -0
  188. package/dist/lib/runtime/utils.js +55 -21
  189. package/dist/lib/runtime/utils.test.js +26 -1
  190. package/dist/lib/serve/discovery.test.js +0 -2
  191. package/dist/lib/serve/http/adapter.js +4 -1
  192. package/dist/lib/serve/http/adapter.test.js +36 -3
  193. package/dist/lib/serve/mcp/adapter.js +16 -6
  194. package/dist/lib/serve/mcp/adapter.test.js +42 -5
  195. package/dist/lib/serve/mcp/httpTransport.test.js +0 -1
  196. package/dist/lib/statelogClient.d.ts +5 -3
  197. package/dist/lib/statelogClient.js +3 -2
  198. package/dist/lib/statelogClient.test.js +5 -3
  199. package/dist/lib/stdlib/agency.d.ts +1 -0
  200. package/dist/lib/stdlib/agency.js +4 -1
  201. package/dist/lib/stdlib/localModels.d.ts +6 -0
  202. package/dist/lib/stdlib/localModels.js +1 -1
  203. package/dist/lib/stdlib/mcp.d.ts +39 -0
  204. package/dist/lib/stdlib/mcp.js +223 -0
  205. package/dist/lib/stdlib/mcpBridge.mjs +71 -0
  206. package/dist/lib/stdlib/mcpGate.d.ts +9 -0
  207. package/dist/lib/stdlib/mcpGate.js +23 -0
  208. package/dist/lib/stdlib/mcpResolver.d.ts +12 -0
  209. package/dist/lib/stdlib/mcpResolver.js +46 -0
  210. package/dist/lib/stdlib/policy.d.ts +1 -0
  211. package/dist/lib/stdlib/policy.js +4 -0
  212. package/dist/lib/stdlib/skills.d.ts +7 -0
  213. package/dist/lib/stdlib/skills.js +10 -0
  214. package/dist/lib/stdlib/thread.js +6 -3
  215. package/dist/lib/stdlib/threads.js +13 -0
  216. package/dist/lib/stdlib/version.d.ts +1 -1
  217. package/dist/lib/stdlib/version.js +1 -1
  218. package/dist/lib/symbolTable.d.ts +2 -2
  219. package/dist/lib/symbolTable.js +22 -10
  220. package/dist/lib/symbolTable.test.js +12 -12
  221. package/dist/lib/templates/backends/typescriptGenerator/functionCatchFailure.d.ts +1 -1
  222. package/dist/lib/templates/backends/typescriptGenerator/functionCatchFailure.js +1 -2
  223. package/dist/lib/templates/backends/typescriptGenerator/imports.d.ts +1 -1
  224. package/dist/lib/templates/backends/typescriptGenerator/imports.js +2 -2
  225. package/dist/lib/templates/backends/typescriptGenerator/interruptAssignment.d.ts +1 -1
  226. package/dist/lib/templates/backends/typescriptGenerator/interruptAssignment.js +5 -5
  227. package/dist/lib/templates/backends/typescriptGenerator/interruptReturn.d.ts +1 -1
  228. package/dist/lib/templates/backends/typescriptGenerator/interruptReturn.js +4 -4
  229. package/dist/lib/typeChecker/assignability.js +25 -1
  230. package/dist/lib/typeChecker/builtinGenerics.d.ts +11 -0
  231. package/dist/lib/typeChecker/builtinGenerics.js +3 -3
  232. package/dist/lib/typeChecker/builtinNamedArgs.test.js +12 -0
  233. package/dist/lib/typeChecker/builtins.js +3 -0
  234. package/dist/lib/typeChecker/callbackCallEffects.test.d.ts +1 -0
  235. package/dist/lib/typeChecker/callbackCallEffects.test.js +42 -0
  236. package/dist/lib/typeChecker/checker.d.ts +3 -3
  237. package/dist/lib/typeChecker/checker.js +51 -67
  238. package/dist/lib/typeChecker/conflictingMarkers.d.ts +9 -0
  239. package/dist/lib/typeChecker/conflictingMarkers.js +17 -0
  240. package/dist/lib/typeChecker/conflictingMarkers.test.d.ts +1 -0
  241. package/dist/lib/typeChecker/conflictingMarkers.test.js +22 -0
  242. package/dist/lib/typeChecker/definiteReturns.js +3 -6
  243. package/dist/lib/typeChecker/diagnosticExplanations.d.ts +23 -0
  244. package/dist/lib/typeChecker/diagnosticExplanations.js +326 -0
  245. package/dist/lib/typeChecker/diagnosticExplanations.test.d.ts +1 -0
  246. package/dist/lib/typeChecker/diagnosticExplanations.test.js +52 -0
  247. package/dist/lib/typeChecker/diagnosticLocations.test.d.ts +1 -0
  248. package/dist/lib/typeChecker/diagnosticLocations.test.js +41 -0
  249. package/dist/lib/typeChecker/diagnostics.d.ts +518 -0
  250. package/dist/lib/typeChecker/diagnostics.js +504 -0
  251. package/dist/lib/typeChecker/diagnostics.test.d.ts +1 -0
  252. package/dist/lib/typeChecker/diagnostics.test.js +93 -0
  253. package/dist/lib/typeChecker/effectPayloadCheck.js +9 -37
  254. package/dist/lib/typeChecker/flow.d.ts +26 -9
  255. package/dist/lib/typeChecker/flow.js +18 -2
  256. package/dist/lib/typeChecker/flow.test.js +104 -3
  257. package/dist/lib/typeChecker/flowBuilder.js +15 -2
  258. package/dist/lib/typeChecker/flowBuilder.test.js +29 -3
  259. package/dist/lib/typeChecker/formatErrors.test.d.ts +1 -0
  260. package/dist/lib/typeChecker/formatErrors.test.js +88 -0
  261. package/dist/lib/typeChecker/functionTypeRaises.d.ts +18 -0
  262. package/dist/lib/typeChecker/functionTypeRaises.js +141 -0
  263. package/dist/lib/typeChecker/functionTypeRaises.test.d.ts +1 -0
  264. package/dist/lib/typeChecker/functionTypeRaises.test.js +94 -0
  265. package/dist/lib/typeChecker/functionValueEffects.d.ts +14 -0
  266. package/dist/lib/typeChecker/functionValueEffects.js +60 -0
  267. package/dist/lib/typeChecker/handlerParamTyping.js +9 -7
  268. package/dist/lib/typeChecker/index.d.ts +39 -1
  269. package/dist/lib/typeChecker/index.js +147 -88
  270. package/dist/lib/typeChecker/interruptAnalysis.js +36 -27
  271. package/dist/lib/typeChecker/matchExhaustiveness.js +2 -5
  272. package/dist/lib/typeChecker/matchExprTypes.js +3 -7
  273. package/dist/lib/typeChecker/matchExpression.test.js +29 -0
  274. package/dist/lib/typeChecker/raisesDiagnostic.js +3 -12
  275. package/dist/lib/typeChecker/resultUnion.js +3 -1
  276. package/dist/lib/typeChecker/schemaType.test.js +26 -0
  277. package/dist/lib/typeChecker/scope.d.ts +25 -1
  278. package/dist/lib/typeChecker/scope.js +37 -2
  279. package/dist/lib/typeChecker/scope.test.js +56 -0
  280. package/dist/lib/typeChecker/scopes.js +13 -36
  281. package/dist/lib/typeChecker/staticInitRules.d.ts +1 -24
  282. package/dist/lib/typeChecker/staticInitRules.js +43 -28
  283. package/dist/lib/typeChecker/suppression.d.ts +19 -10
  284. package/dist/lib/typeChecker/suppression.js +64 -14
  285. package/dist/lib/typeChecker/suppression.test.js +80 -13
  286. package/dist/lib/typeChecker/synthesizer.js +58 -66
  287. package/dist/lib/typeChecker/toolBlockBinding.d.ts +0 -23
  288. package/dist/lib/typeChecker/toolBlockBinding.js +44 -14
  289. package/dist/lib/typeChecker/typeKey.js +7 -0
  290. package/dist/lib/typeChecker/typeOperators.d.ts +37 -0
  291. package/dist/lib/typeChecker/typeOperators.js +110 -0
  292. package/dist/lib/typeChecker/typeOperators.test.d.ts +1 -0
  293. package/dist/lib/typeChecker/typeOperators.test.js +491 -0
  294. package/dist/lib/typeChecker/typeWalker.js +21 -0
  295. package/dist/lib/typeChecker/types.d.ts +14 -5
  296. package/dist/lib/typeChecker/undefinedFunctionDiagnostic.js +13 -24
  297. package/dist/lib/typeChecker/undefinedVariableDiagnostic.js +3 -4
  298. package/dist/lib/typeChecker/utils.d.ts +1 -1
  299. package/dist/lib/typeChecker/utils.js +14 -23
  300. package/dist/lib/typeChecker/validate.js +45 -44
  301. package/dist/lib/typeChecker/validateStaticInit.js +1 -1
  302. package/dist/lib/typeChecker/valueParamSubstitution.js +27 -0
  303. package/dist/lib/typeChecker/variadicNamedBinding.test.js +5 -5
  304. package/dist/lib/typeChecker.test.js +60 -62
  305. package/dist/lib/types/exportFromStatement.d.ts +4 -2
  306. package/dist/lib/types/function.d.ts +12 -1
  307. package/dist/lib/types/importStatement.d.ts +5 -2
  308. package/dist/lib/types/importStatement.js +0 -3
  309. package/dist/lib/types/typeHints.d.ts +51 -3
  310. package/dist/lib/utils/bodySlots.d.ts +36 -0
  311. package/dist/lib/utils/bodySlots.js +120 -0
  312. package/dist/lib/utils/formatType.js +48 -3
  313. package/dist/lib/utils/formatType.test.d.ts +1 -0
  314. package/dist/lib/utils/formatType.test.js +65 -0
  315. package/dist/lib/utils/mapBodies.d.ts +10 -10
  316. package/dist/lib/utils/mapBodies.js +11 -45
  317. package/dist/lib/utils/node.js +35 -50
  318. package/dist/scripts/agency.js +109 -53
  319. package/dist/scripts/generateDiagnosticsDocs.d.ts +1 -0
  320. package/dist/scripts/generateDiagnosticsDocs.js +28 -0
  321. package/dist/scripts/stage-agents.test.js +24 -0
  322. package/package.json +2 -4
  323. package/stdlib/agency/eval.js +27 -55
  324. package/stdlib/agency/local.js +49 -84
  325. package/stdlib/agency.agency +509 -38
  326. package/stdlib/agency.js +2941 -307
  327. package/stdlib/agent.agency +6 -6
  328. package/stdlib/agent.js +60 -90
  329. package/stdlib/args.agency +74 -0
  330. package/stdlib/args.js +6 -8
  331. package/stdlib/array.js +53 -91
  332. package/stdlib/auth/keyring.agency +4 -4
  333. package/stdlib/auth/keyring.js +33 -32
  334. package/stdlib/auth/oauth.agency +2 -2
  335. package/stdlib/auth/oauth.js +28 -31
  336. package/stdlib/calendar.agency +4 -4
  337. package/stdlib/calendar.js +50 -49
  338. package/stdlib/clipboard.agency +2 -2
  339. package/stdlib/clipboard.js +18 -18
  340. package/stdlib/concurrency.js +5 -7
  341. package/stdlib/data/finance/dbnomics.agency +4 -4
  342. package/stdlib/data/finance/dbnomics.js +25 -31
  343. package/stdlib/data/finance/edgar.agency +7 -7
  344. package/stdlib/data/finance/edgar.js +42 -54
  345. package/stdlib/data/finance/fred.agency +9 -9
  346. package/stdlib/data/finance/fred.js +49 -67
  347. package/stdlib/data/finance/gdelt.agency +4 -4
  348. package/stdlib/data/finance/gdelt.js +21 -27
  349. package/stdlib/data/people/littlesis.agency +19 -19
  350. package/stdlib/data/people/littlesis.js +90 -126
  351. package/stdlib/data/tech/hackernews.agency +23 -23
  352. package/stdlib/data/tech/hackernews.js +108 -152
  353. package/stdlib/data/tech/yc.agency +19 -19
  354. package/stdlib/data/tech/yc.js +90 -126
  355. package/stdlib/data/usaspending.agency +12 -12
  356. package/stdlib/data/usaspending.js +64 -86
  357. package/stdlib/data/wikidata.agency +17 -17
  358. package/stdlib/data/wikidata.js +80 -112
  359. package/stdlib/date.agency +15 -15
  360. package/stdlib/date.js +61 -90
  361. package/{dist/lib/agents → stdlib}/docs/cli/typecheck.md +3 -1
  362. package/stdlib/docs/diagnostics/checking.md +154 -0
  363. package/stdlib/docs/diagnostics/effects.md +155 -0
  364. package/stdlib/docs/diagnostics/index.md +127 -0
  365. package/stdlib/docs/diagnostics/match.md +25 -0
  366. package/stdlib/docs/diagnostics/names.md +83 -0
  367. package/stdlib/docs/diagnostics/static-init.md +65 -0
  368. package/stdlib/docs/diagnostics/tools.md +305 -0
  369. package/stdlib/docs/diagnostics/types-aliases.md +125 -0
  370. package/stdlib/docs/guide/agency-vs-typescript.md +30 -0
  371. package/stdlib/docs/guide/build-integration.md +106 -0
  372. package/{dist/lib/agents → stdlib}/docs/guide/builtins.md +6 -7
  373. package/stdlib/docs/guide/cross-thread-context.md +178 -0
  374. package/{dist/lib/agents → stdlib}/docs/guide/custom-providers.md +8 -1
  375. package/{dist/lib/agents → stdlib}/docs/guide/developer-tools.md +3 -3
  376. package/stdlib/docs/guide/llm-part-2.md +145 -0
  377. package/{dist/lib/agents → stdlib}/docs/guide/mcp.md +13 -45
  378. package/{dist/lib/agents → stdlib}/docs/guide/memory.md +2 -0
  379. package/{dist/lib/agents/docs/guide/advanced-types.md → stdlib/docs/guide/notes-on-types.md} +2 -2
  380. package/{dist/lib/agents → stdlib}/docs/guide/policies.md +27 -1
  381. package/{dist/lib/agents → stdlib}/docs/guide/schema-parameter-injection.md +2 -0
  382. package/{dist/lib/agents → stdlib}/docs/guide/serving.md +23 -35
  383. package/stdlib/docs/guide/tags.md +66 -0
  384. package/{dist/lib/agents → stdlib}/docs/guide/ts-helpers.md +2 -0
  385. package/{dist/lib/agents → stdlib}/docs/guide/types.md +57 -12
  386. package/{dist/lib/agents → stdlib}/docs/guide/vscode-extension.md +2 -2
  387. package/stdlib/fs.agency +6 -6
  388. package/stdlib/fs.js +112 -77
  389. package/stdlib/git.agency +17 -17
  390. package/stdlib/git.js +197 -197
  391. package/stdlib/http.js +19 -24
  392. package/stdlib/image.js +5 -7
  393. package/stdlib/index.agency +12 -12
  394. package/stdlib/index.js +136 -173
  395. package/stdlib/llm.agency +5 -2
  396. package/stdlib/llm.js +39 -62
  397. package/stdlib/markdown.agency +4 -4
  398. package/stdlib/markdown.js +17 -24
  399. package/stdlib/math.agency +5 -5
  400. package/stdlib/math.js +21 -30
  401. package/stdlib/mcp.agency +53 -0
  402. package/stdlib/mcp.js +811 -0
  403. package/stdlib/memory.agency +22 -8
  404. package/stdlib/memory.js +115 -104
  405. package/stdlib/messaging/email.agency +3 -3
  406. package/stdlib/messaging/email.js +34 -27
  407. package/stdlib/messaging/imessage.agency +1 -1
  408. package/stdlib/messaging/imessage.js +12 -9
  409. package/stdlib/messaging/sms.agency +1 -1
  410. package/stdlib/messaging/sms.js +12 -9
  411. package/stdlib/object.agency +3 -3
  412. package/stdlib/object.js +36 -50
  413. package/stdlib/path.agency +7 -7
  414. package/stdlib/path.js +29 -42
  415. package/stdlib/policy.agency +36 -0
  416. package/stdlib/policy.js +478 -124
  417. package/stdlib/shell.agency +8 -8
  418. package/stdlib/shell.js +78 -71
  419. package/stdlib/skills.agency +36 -12
  420. package/stdlib/skills.js +347 -107
  421. package/stdlib/speech.js +19 -27
  422. package/stdlib/statelog.agency +5 -5
  423. package/stdlib/statelog.js +29 -44
  424. package/stdlib/strategy.js +25 -37
  425. package/stdlib/syntax.agency +4 -4
  426. package/stdlib/syntax.js +18 -25
  427. package/stdlib/system.agency +6 -6
  428. package/stdlib/system.js +59 -86
  429. package/stdlib/tag.js +25 -42
  430. package/stdlib/thread.agency +20 -14
  431. package/stdlib/thread.js +89 -108
  432. package/stdlib/ui/chart.agency +1 -1
  433. package/stdlib/ui/chart.js +19 -26
  434. package/stdlib/ui/cli.agency +2 -2
  435. package/stdlib/ui/cli.js +29 -47
  436. package/stdlib/ui/layout.agency +9 -9
  437. package/stdlib/ui/layout.js +74 -109
  438. package/stdlib/ui/table.agency +1 -1
  439. package/stdlib/ui/table.js +29 -42
  440. package/stdlib/ui.agency +6 -6
  441. package/stdlib/ui.js +242 -395
  442. package/stdlib/validation.agency +11 -11
  443. package/stdlib/validation.js +45 -66
  444. package/stdlib/weather.agency +3 -3
  445. package/stdlib/weather.js +15 -20
  446. package/stdlib/web/browser.js +7 -8
  447. package/stdlib/web/search.agency +2 -2
  448. package/stdlib/web/search.js +13 -16
  449. package/stdlib/wikipedia.agency +3 -3
  450. package/stdlib/wikipedia.js +19 -24
  451. package/dist/lib/agents/agency-agent/lib/defaultPolicy.agency +0 -227
  452. package/dist/lib/agents/docs/guide/agency-vs-typescript.md +0 -33
  453. package/dist/lib/agents/docs/guide/build-integration.md +0 -99
  454. package/dist/lib/agents/docs/guide/cli-args.md +0 -190
  455. package/dist/lib/agents/docs/guide/cross-thread-context.md +0 -226
  456. package/dist/lib/agents/docs/guide/llm-part-2.md +0 -111
  457. package/dist/lib/agents/docs/guide/tags.md +0 -72
  458. /package/{dist/lib/agents → stdlib}/docs/cli/agent.md +0 -0
  459. /package/{dist/lib/agents → stdlib}/docs/cli/compile.md +0 -0
  460. /package/{dist/lib/agents → stdlib}/docs/cli/coverage.md +0 -0
  461. /package/{dist/lib/agents → stdlib}/docs/cli/debug.md +0 -0
  462. /package/{dist/lib/agents → stdlib}/docs/cli/doc.md +0 -0
  463. /package/{dist/lib/agents → stdlib}/docs/cli/editor-integration.md +0 -0
  464. /package/{dist/lib/agents → stdlib}/docs/cli/eval-judge.md +0 -0
  465. /package/{dist/lib/agents → stdlib}/docs/cli/eval.md +0 -0
  466. /package/{dist/lib/agents → stdlib}/docs/cli/format.md +0 -0
  467. /package/{dist/lib/agents → stdlib}/docs/cli/index.md +0 -0
  468. /package/{dist/lib/agents → stdlib}/docs/cli/local.md +0 -0
  469. /package/{dist/lib/agents → stdlib}/docs/cli/models.md +0 -0
  470. /package/{dist/lib/agents → stdlib}/docs/cli/optimize.md +0 -0
  471. /package/{dist/lib/agents → stdlib}/docs/cli/pack.md +0 -0
  472. /package/{dist/lib/agents → stdlib}/docs/cli/policy.md +0 -0
  473. /package/{dist/lib/agents → stdlib}/docs/cli/preprocess-and-ast.md +0 -0
  474. /package/{dist/lib/agents → stdlib}/docs/cli/review.md +0 -0
  475. /package/{dist/lib/agents → stdlib}/docs/cli/run.md +0 -0
  476. /package/{dist/lib/agents → stdlib}/docs/cli/schedule.md +0 -0
  477. /package/{dist/lib/agents → stdlib}/docs/cli/serve.md +0 -0
  478. /package/{dist/lib/agents → stdlib}/docs/cli/test.md +0 -0
  479. /package/{dist/lib/agents → stdlib}/docs/cli/trace-and-bundle.md +0 -0
  480. /package/{dist/lib/agents → stdlib}/docs/guide/agency-config-file.md +0 -0
  481. /package/{dist/lib/agents → stdlib}/docs/guide/agency-packages.md +0 -0
  482. /package/{dist/lib/agents → stdlib}/docs/guide/agency-stdlib.md +0 -0
  483. /package/{dist/lib/agents → stdlib}/docs/guide/attachments.md +0 -0
  484. /package/{dist/lib/agents → stdlib}/docs/guide/basic-syntax.md +0 -0
  485. /package/{dist/lib/agents → stdlib}/docs/guide/blocks.md +0 -0
  486. /package/{dist/lib/agents → stdlib}/docs/guide/callbacks.md +0 -0
  487. /package/{dist/lib/agents → stdlib}/docs/guide/checkpointing.md +0 -0
  488. /package/{dist/lib/agents → stdlib}/docs/guide/common-functions.md +0 -0
  489. /package/{dist/lib/agents → stdlib}/docs/guide/compiling-and-running.md +0 -0
  490. /package/{dist/lib/agents → stdlib}/docs/guide/concurrency.md +0 -0
  491. /package/{dist/lib/agents → stdlib}/docs/guide/debugging.md +0 -0
  492. /package/{dist/lib/agents → stdlib}/docs/guide/effects-and-raises.md +0 -0
  493. /package/{dist/lib/agents → stdlib}/docs/guide/effects.md +0 -0
  494. /package/{dist/lib/agents → stdlib}/docs/guide/error-handling.md +0 -0
  495. /package/{dist/lib/agents → stdlib}/docs/guide/exercise-1.md +0 -0
  496. /package/{dist/lib/agents → stdlib}/docs/guide/functions.md +0 -0
  497. /package/{dist/lib/agents → stdlib}/docs/guide/getting-started.md +0 -0
  498. /package/{dist/lib/agents → stdlib}/docs/guide/global-var-initialization.md +0 -0
  499. /package/{dist/lib/agents → stdlib}/docs/guide/global-vs-static.md +0 -0
  500. /package/{dist/lib/agents → stdlib}/docs/guide/guards.md +0 -0
  501. /package/{dist/lib/agents → stdlib}/docs/guide/handlers.md +0 -0
  502. /package/{dist/lib/agents → stdlib}/docs/guide/image-generation.md +0 -0
  503. /package/{dist/lib/agents → stdlib}/docs/guide/imports-and-packages.md +0 -0
  504. /package/{dist/lib/agents → stdlib}/docs/guide/interrupts-from-typescript.md +0 -0
  505. /package/{dist/lib/agents → stdlib}/docs/guide/interrupts-part-2.md +0 -0
  506. /package/{dist/lib/agents → stdlib}/docs/guide/interrupts.md +0 -0
  507. /package/{dist/lib/agents → stdlib}/docs/guide/llm.md +0 -0
  508. /package/{dist/lib/agents → stdlib}/docs/guide/message-threads.md +0 -0
  509. /package/{dist/lib/agents → stdlib}/docs/guide/nodes.md +0 -0
  510. /package/{dist/lib/agents → stdlib}/docs/guide/observability.md +0 -0
  511. /package/{dist/lib/agents → stdlib}/docs/guide/partial-application.md +0 -0
  512. /package/{dist/lib/agents → stdlib}/docs/guide/pattern-matching.md +0 -0
  513. /package/{dist/lib/agents → stdlib}/docs/guide/schemas.md +0 -0
  514. /package/{dist/lib/agents → stdlib}/docs/guide/state-isolation.md +0 -0
  515. /package/{dist/lib/agents → stdlib}/docs/guide/streaming.md +0 -0
  516. /package/{dist/lib/agents → stdlib}/docs/guide/testing.md +0 -0
  517. /package/{dist/lib/agents → stdlib}/docs/guide/troubleshooting.md +0 -0
  518. /package/{dist/lib/agents → stdlib}/docs/guide/ts-interop.md +0 -0
  519. /package/{dist/lib/agents → stdlib}/docs/guide/type-validation.md +0 -0
  520. /package/{dist/lib/agents → stdlib}/docs/guide/unused.md +0 -0
  521. /package/{dist/lib/agents → stdlib}/docs/guide/unused2.md +0 -0
  522. /package/{dist/lib/agents → stdlib}/docs/guide/value-parameterized-types.md +0 -0
  523. /package/{dist/lib/agents → stdlib}/docs/guide/why-agency.md +0 -0
@@ -18,7 +18,13 @@ import {
18
18
  cliPolicyHandler,
19
19
  parsePolicyFile,
20
20
  setPolicy,
21
+ minimalAutoApprovePolicy,
22
+ recommendedAutoApprovePolicy,
23
+ builtinPolicy,
24
+ builtinPolicyNames,
25
+ BUILTIN_POLICIES,
21
26
  } from "std::policy"
27
+ import { loadMcpToolsWithStatus, mergeMcpServers, isMcpAvailable, readProjectMcpConfig } from "std::mcp"
22
28
  import { exists } from "std::shell"
23
29
  import { commandsDir, expandSlash } from "std::skills"
24
30
  import { highlight } from "std::syntax"
@@ -49,13 +55,6 @@ import {
49
55
  HISTORY_PATH,
50
56
  ALWAYS_FIELDS,
51
57
  } from "./lib/config.agency"
52
- import {
53
- minimalAutoApprovePolicy,
54
- recommendedAutoApprovePolicy,
55
- builtinPolicy,
56
- builtinPolicyNames,
57
- BUILTIN_POLICIES,
58
- } from "./lib/defaultPolicy.agency"
59
58
  import { filterHostedModels, ModelFilters } from "./lib/modelFilters.agency"
60
59
  import { parseModelFlag, parseModelSpec, knownProviders, embeddingSpecHasProvider, missingProviderEnvVar, Resolved } from "./lib/models.agency"
61
60
  import { SLOTS } from "./lib/slots.agency"
@@ -80,8 +79,10 @@ import {
80
79
  providerLacksEmbeddings,
81
80
  } from "./lib/capabilities.agency"
82
81
  import {
82
+ Settings,
83
83
  getCapabilitySettings,
84
84
  getModelSettings,
85
+ getMcpServers,
85
86
  loadSettings,
86
87
  saveSettings,
87
88
  } from "./lib/settings.agency"
@@ -235,6 +236,9 @@ export def retryReasonLabel(reason: string): string {
235
236
  if (reason == "serverError") {
236
237
  return "Server error"
237
238
  }
239
+ if (reason == "invalidStructuredOutput") {
240
+ return "Output failed validation"
241
+ }
238
242
  return reason
239
243
  }
240
244
 
@@ -339,6 +343,7 @@ def builtinPalette(): Record<string, string> {
339
343
  "/local": "Switch to a local model",
340
344
  "/search": "Choose the web search backend (hosted / Tavily / Brave / off)",
341
345
  "/settings": "View and change capability settings for the current model",
346
+ "/mcp": "List configured MCP servers and their tools",
342
347
  "/paste": "Multi-line paste mode (Ctrl+D submits, Ctrl+C cancels)",
343
348
  "/help": "Show available slash commands"
344
349
  }
@@ -854,7 +859,7 @@ def _runTurn(msg: string): boolean {
854
859
  }
855
860
  if (trimmed == "/help") {
856
861
  pushMessage(
857
- "Commands: /exit, /clear, /clear-history, /cost, /model, /models, /local, /search, /settings, /paste, /help",
862
+ "Commands: /exit, /clear, /clear-history, /cost, /model, /models, /local, /search, /settings, /mcp, /paste, /help",
858
863
  )
859
864
  return true
860
865
  }
@@ -863,6 +868,30 @@ def _runTurn(msg: string): boolean {
863
868
  editCapabilities()
864
869
  return true
865
870
  }
871
+ if (trimmed == "/mcp") {
872
+ if (!isMcpAvailable()) {
873
+ pushMessage(color.yellow("MCP is not installed. Run: npm install @agency-lang/mcp"))
874
+ return true
875
+ }
876
+ const merged = mergeMcpServers(getMcpServers(loadSettings()), readProjectMcpConfig(cwd()))
877
+ if (keys(merged).length == 0) {
878
+ pushMessage(color.dim("No MCP servers configured. Add an mcpServers block to agency.json or settings.json."))
879
+ return true
880
+ }
881
+ pushMessage(color.bold("MCP servers:"))
882
+ for (name in keys(merged)) {
883
+ // mcpServerStatus is populated at session start. A server present in the
884
+ // config but absent from the status map was never loaded (e.g. /mcp run
885
+ // before startup finished) — show it as unknown rather than connected.
886
+ let status = mcpServerStatus[name]
887
+ if (status == null) {
888
+ status = "not loaded"
889
+ }
890
+ pushMessage(" ${name} — ${status}")
891
+ }
892
+ pushMessage(color.dim("Loaded ${mcpTools.length} MCP tool(s) this session."))
893
+ return true
894
+ }
866
895
  if (trimmed == "/search") {
867
896
  const opts = availableBackendItems()
868
897
  const choice = chooseOption(
@@ -1303,6 +1332,46 @@ static const mainAgentTools = [
1303
1332
  generateImageFile,
1304
1333
  ]
1305
1334
 
1335
+ // MCP tools are appended to the coordinator's tools. ORDERING CONTRACT:
1336
+ // maybeLoadMcp (session start, in main()) must run before mainAgent's first
1337
+ // turn, or MCP tools silently vanish.
1338
+ let mcpTools: any[] = []
1339
+ // Per-server load outcome ("connected" / "unavailable"), for /mcp.
1340
+ let mcpServerStatus: Record<string, string> = {}
1341
+
1342
+ export def setMcpTools(tools: any[]) {
1343
+ mcpTools = tools
1344
+ }
1345
+
1346
+ def setMcpServerStatus(status: Record<string, string>) {
1347
+ mcpServerStatus = status
1348
+ }
1349
+
1350
+ // MCP OAuth notification. The @agency-lang/mcp package opens the browser itself
1351
+ // (macOS-only today); we only print the URL so the user can complete auth.
1352
+ def onMcpOAuth(data: any) {
1353
+ print(color.yellow("MCP authorization needed — opening browser. If it does not open, visit:\n${data.authUrl}"))
1354
+ }
1355
+
1356
+ /** Load MCP tools from the project agency.json merged with the global settings
1357
+ and hand them to the coordinator. No-op when @agency-lang/mcp is not installed
1358
+ or no servers are configured. loadMcpTools warns-and-skips internally on any
1359
+ per-server failure, so it always returns an array. */
1360
+ def maybeLoadMcp(settings: Settings) {
1361
+ if (!isMcpAvailable()) {
1362
+ return
1363
+ }
1364
+ const merged = mergeMcpServers(getMcpServers(settings), readProjectMcpConfig(cwd()))
1365
+ if (keys(merged).length == 0) {
1366
+ return
1367
+ }
1368
+ // Always returns a result (per-server failures warn-and-skip internally), so
1369
+ // there is no Failure branch. The status map drives /mcp.
1370
+ const loaded = loadMcpToolsWithStatus(merged, onMcpOAuth)
1371
+ setMcpTools(loaded.tools)
1372
+ setMcpServerStatus(loaded.status)
1373
+ }
1374
+
1306
1375
  /** Enable memory when the capability profile allows it. When the user
1307
1376
  pointed the embedding slot at a provider, embeddings run there. A
1308
1377
  missing API key degrades to the default embedding behavior with one
@@ -1357,7 +1426,7 @@ def mainAgent(prompt: string | (string | Attachment)[]): string {
1357
1426
  }
1358
1427
  const result = llm(prompt, {
1359
1428
  memory: true,
1360
- tools: mainAgentTools
1429
+ tools: [...mainAgentTools, ...mcpTools]
1361
1430
  })
1362
1431
  }
1363
1432
  return result
@@ -1860,6 +1929,10 @@ node main() {
1860
1929
  // before any handler/REPL is installed.
1861
1930
  maybeEnableMemory()
1862
1931
 
1932
+ // Connect configured MCP servers and hand their (policy-gated) tools to the
1933
+ // coordinator. Must run before the first turn (mcpTools ordering contract).
1934
+ maybeLoadMcp(loadSettings())
1935
+
1863
1936
  // Positional args (everything after flags) are joined with spaces to
1864
1937
  // form the starting prompt. `--` ends flag parsing if a positional
1865
1938
  // would otherwise look like a flag.