agency-lang 0.7.8 → 0.8.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 (485) hide show
  1. package/dist/lib/agents/agency-agent/agent.agency +82 -9
  2. package/dist/lib/agents/agency-agent/agent.js +1153 -900
  3. package/dist/lib/agents/agency-agent/lib/attachments.js +10 -17
  4. package/dist/lib/agents/agency-agent/lib/capabilities.js +45 -66
  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 +49 -82
  10. package/dist/lib/agents/agency-agent/lib/resolution.js +34 -69
  11. package/dist/lib/agents/agency-agent/lib/search.js +57 -95
  12. package/dist/lib/agents/agency-agent/lib/settings.agency +10 -1
  13. package/dist/lib/agents/agency-agent/lib/settings.js +157 -52
  14. package/dist/lib/agents/agency-agent/lib/slots.js +13 -18
  15. package/dist/lib/agents/agency-agent/lib/utils.js +21 -31
  16. package/dist/lib/agents/agency-agent/prompts/codeSample.js +2 -2
  17. package/dist/lib/agents/agency-agent/shared.js +103 -179
  18. package/dist/lib/agents/agency-agent/subagents/code.agency +17 -11
  19. package/dist/lib/agents/agency-agent/subagents/code.js +61 -94
  20. package/dist/lib/agents/agency-agent/subagents/explorer.agency +3 -3
  21. package/dist/lib/agents/agency-agent/subagents/explorer.js +16 -35
  22. package/dist/lib/agents/agency-agent/subagents/oracle.agency +3 -3
  23. package/dist/lib/agents/agency-agent/subagents/oracle.js +16 -35
  24. package/dist/lib/agents/agency-agent/subagents/research.agency +8 -14
  25. package/dist/lib/agents/agency-agent/subagents/research.js +19 -40
  26. package/dist/lib/agents/agency-agent/subagents/review.agency +27 -130
  27. package/dist/lib/agents/agency-agent/subagents/review.js +39 -800
  28. package/dist/lib/agents/agency-agent/subagents/verify.agency +26 -17
  29. package/dist/lib/agents/agency-agent/subagents/verify.js +153 -44
  30. package/dist/lib/agents/agency-agent/tests/agentDir.js +6 -16
  31. package/dist/lib/agents/agency-agent/tests/agentTurn.js +49 -134
  32. package/dist/lib/agents/agency-agent/tests/attachments.js +100 -211
  33. package/dist/lib/agents/agency-agent/tests/attachmentsTurn.js +17 -40
  34. package/dist/lib/agents/agency-agent/tests/capabilities.js +7 -42
  35. package/dist/lib/agents/agency-agent/tests/execPolicy.agency +2 -2
  36. package/dist/lib/agents/agency-agent/tests/execPolicy.js +11 -18
  37. package/dist/lib/agents/agency-agent/tests/gitPolicy.agency +2 -2
  38. package/dist/lib/agents/agency-agent/tests/gitPolicy.js +13 -33
  39. package/dist/lib/agents/agency-agent/tests/imageTool.js +13 -39
  40. package/dist/lib/agents/agency-agent/tests/mcpGating.agency +42 -0
  41. package/dist/lib/agents/agency-agent/tests/mcpGating.js +670 -0
  42. package/dist/lib/agents/agency-agent/tests/mcpGating.test.json +22 -0
  43. package/dist/lib/agents/agency-agent/tests/memoryWiring.js +19 -65
  44. package/dist/lib/agents/agency-agent/tests/modelFilters.js +0 -5
  45. package/dist/lib/agents/agency-agent/tests/models.js +5 -25
  46. package/dist/lib/agents/agency-agent/tests/oneShotRounds.js +0 -4
  47. package/dist/lib/agents/agency-agent/tests/resolution.js +9 -27
  48. package/dist/lib/agents/agency-agent/tests/search.js +13 -36
  49. package/dist/lib/agents/agency-agent/tests/settings.js +44 -101
  50. package/dist/lib/agents/agency-agent/tests/slots.js +0 -5
  51. package/dist/lib/agents/agency-agent/tests/toolWiring.js +5 -6
  52. package/dist/lib/agents/agency-agent/tests/turnFailure.agency +4 -0
  53. package/dist/lib/agents/agency-agent/tests/turnFailure.js +92 -6
  54. package/dist/lib/agents/agency-agent/tests/turnFailure.test.json +6 -0
  55. package/dist/lib/agents/eval/goalJudge.js +2 -2
  56. package/dist/lib/agents/policy/agent.js +39 -61
  57. package/dist/lib/agents/review/agent.js +4 -5
  58. package/dist/lib/backends/agencyGenerator.d.ts +14 -0
  59. package/dist/lib/backends/agencyGenerator.js +49 -35
  60. package/dist/lib/backends/agencyGenerator.test.js +116 -0
  61. package/dist/lib/backends/raisesFormat.test.js +24 -0
  62. package/dist/lib/backends/signatureOf.test.d.ts +1 -0
  63. package/dist/lib/backends/signatureOf.test.js +34 -0
  64. package/dist/lib/backends/typeOperators.codegen.test.d.ts +1 -0
  65. package/dist/lib/backends/typeOperators.codegen.test.js +126 -0
  66. package/dist/lib/backends/typescriptBuilder/nameClassifier.d.ts +13 -4
  67. package/dist/lib/backends/typescriptBuilder/nameClassifier.js +39 -13
  68. package/dist/lib/backends/typescriptBuilder/scopeManager.d.ts +6 -6
  69. package/dist/lib/backends/typescriptBuilder/scopeManager.js +9 -9
  70. package/dist/lib/backends/typescriptBuilder.d.ts +7 -0
  71. package/dist/lib/backends/typescriptBuilder.integration.test.js +50 -28
  72. package/dist/lib/backends/typescriptBuilder.js +112 -29
  73. package/dist/lib/backends/typescriptGenerator/typeToString.d.ts +6 -0
  74. package/dist/lib/backends/typescriptGenerator/typeToString.js +47 -2
  75. package/dist/lib/backends/typescriptGenerator/validationDescriptor.js +11 -0
  76. package/dist/lib/cli/commands.d.ts +4 -1
  77. package/dist/lib/cli/commands.js +16 -4
  78. package/dist/lib/cli/doc.js +2 -13
  79. package/dist/lib/cli/doc.test.js +13 -0
  80. package/dist/lib/cli/mcp.d.ts +13 -0
  81. package/dist/lib/cli/mcp.js +66 -0
  82. package/dist/lib/cli/mcp.test.d.ts +1 -0
  83. package/dist/lib/cli/mcp.test.js +70 -0
  84. package/dist/lib/cli/runPolicy.d.ts +11 -0
  85. package/dist/lib/cli/runPolicy.js +67 -0
  86. package/dist/lib/cli/runPolicy.spawn.test.d.ts +1 -0
  87. package/dist/lib/cli/runPolicy.spawn.test.js +198 -0
  88. package/dist/lib/cli/runPolicy.test.d.ts +1 -0
  89. package/dist/lib/cli/runPolicy.test.js +96 -0
  90. package/dist/lib/cli/serve.js +1 -1
  91. package/dist/lib/compilationUnit.d.ts +9 -1
  92. package/dist/lib/compilationUnit.js +25 -8
  93. package/dist/lib/compilationUnit.test.js +67 -1
  94. package/dist/lib/compiler/buildSession.js +2 -2
  95. package/dist/lib/compiler/compile.d.ts +1 -1
  96. package/dist/lib/compiler/compile.js +2 -2
  97. package/dist/lib/compiler/typecheck.d.ts +17 -3
  98. package/dist/lib/compiler/typecheck.getEffects.test.d.ts +1 -0
  99. package/dist/lib/compiler/typecheck.getEffects.test.js +35 -0
  100. package/dist/lib/compiler/typecheck.js +43 -11
  101. package/dist/lib/constants.d.ts +14 -0
  102. package/dist/lib/constants.js +17 -0
  103. package/dist/lib/debugger/driver.test.js +0 -1
  104. package/dist/lib/formatter.test.js +5 -5
  105. package/dist/lib/lowering/patternLowering.test.js +33 -0
  106. package/dist/lib/lsp/diagnostics.js +0 -1
  107. package/dist/lib/lsp/diagnostics.test.js +1 -1
  108. package/dist/lib/optimize/constraint.js +2 -1
  109. package/dist/lib/parsers/exportFromStatement.test.js +18 -9
  110. package/dist/lib/parsers/exportNode.test.js +6 -6
  111. package/dist/lib/parsers/expression.test.js +103 -0
  112. package/dist/lib/parsers/function.test.js +60 -68
  113. package/dist/lib/parsers/importStatement.test.js +76 -21
  114. package/dist/lib/parsers/intersectionParsing.test.d.ts +1 -0
  115. package/dist/lib/parsers/intersectionParsing.test.js +90 -0
  116. package/dist/lib/parsers/parsers.d.ts +52 -2
  117. package/dist/lib/parsers/parsers.js +208 -61
  118. package/dist/lib/parsers/typeOperatorParsing.test.d.ts +1 -0
  119. package/dist/lib/parsers/typeOperatorParsing.test.js +107 -0
  120. package/dist/lib/preprocessors/importResolver.js +27 -16
  121. package/dist/lib/preprocessors/importResolver.test.js +6 -11
  122. package/dist/lib/preprocessors/prunePreludeShadows.js +14 -1
  123. package/dist/lib/preprocessors/resolveReExports.js +4 -2
  124. package/dist/lib/preprocessors/resolveReExports.test.js +9 -16
  125. package/dist/lib/runtime/agencyFunction.d.ts +8 -2
  126. package/dist/lib/runtime/agencyFunction.js +21 -9
  127. package/dist/lib/runtime/agencyFunction.test.js +26 -0
  128. package/dist/lib/runtime/agencyInterrupt.d.ts +4 -0
  129. package/dist/lib/runtime/agencyInterrupt.js +1 -1
  130. package/dist/lib/runtime/builtinPolicies.d.ts +11 -0
  131. package/dist/lib/runtime/builtinPolicies.js +139 -0
  132. package/dist/lib/runtime/builtinPolicies.test.d.ts +1 -0
  133. package/dist/lib/runtime/builtinPolicies.test.js +54 -0
  134. package/dist/lib/runtime/failurePropagation.test.js +2 -2
  135. package/dist/lib/runtime/index.d.ts +3 -2
  136. package/dist/lib/runtime/index.js +3 -2
  137. package/dist/lib/runtime/interrupts.d.ts +16 -7
  138. package/dist/lib/runtime/interrupts.js +24 -2
  139. package/dist/lib/runtime/interrupts.test.js +36 -0
  140. package/dist/lib/runtime/ipc.d.ts +2 -0
  141. package/dist/lib/runtime/ipc.js +2 -2
  142. package/dist/lib/runtime/llmRetry.d.ts +45 -3
  143. package/dist/lib/runtime/llmRetry.js +47 -2
  144. package/dist/lib/runtime/llmRetry.test.js +64 -2
  145. package/dist/lib/runtime/memory/manager.js +0 -2
  146. package/dist/lib/runtime/node.js +6 -0
  147. package/dist/lib/runtime/policy.d.ts +11 -0
  148. package/dist/lib/runtime/policy.js +10 -2
  149. package/dist/lib/runtime/policy.test.js +25 -0
  150. package/dist/lib/runtime/prompt.d.ts +30 -0
  151. package/dist/lib/runtime/prompt.js +418 -263
  152. package/dist/lib/runtime/prompt.test.js +70 -5
  153. package/dist/lib/runtime/result.d.ts +28 -2
  154. package/dist/lib/runtime/result.js +23 -1
  155. package/dist/lib/runtime/result.test.js +43 -6
  156. package/dist/lib/runtime/runPolicyHandler.d.ts +27 -0
  157. package/dist/lib/runtime/runPolicyHandler.js +222 -0
  158. package/dist/lib/runtime/runPolicyHandler.test.d.ts +1 -0
  159. package/dist/lib/runtime/runPolicyHandler.test.js +363 -0
  160. package/dist/lib/runtime/toolBlockDiagnostics.d.ts +3 -1
  161. package/dist/lib/runtime/toolBlockDiagnostics.js +19 -8
  162. package/dist/lib/runtime/types.d.ts +1 -0
  163. package/dist/lib/runtime/utils.d.ts +8 -0
  164. package/dist/lib/runtime/utils.js +55 -21
  165. package/dist/lib/runtime/utils.test.js +26 -1
  166. package/dist/lib/serve/discovery.test.js +0 -2
  167. package/dist/lib/serve/http/adapter.js +4 -1
  168. package/dist/lib/serve/http/adapter.test.js +36 -3
  169. package/dist/lib/serve/mcp/adapter.js +16 -6
  170. package/dist/lib/serve/mcp/adapter.test.js +42 -5
  171. package/dist/lib/serve/mcp/httpTransport.test.js +0 -1
  172. package/dist/lib/statelogClient.d.ts +5 -3
  173. package/dist/lib/statelogClient.js +3 -2
  174. package/dist/lib/statelogClient.test.js +5 -3
  175. package/dist/lib/stdlib/agency.d.ts +1 -0
  176. package/dist/lib/stdlib/agency.js +4 -1
  177. package/dist/lib/stdlib/localModels.d.ts +6 -0
  178. package/dist/lib/stdlib/localModels.js +1 -1
  179. package/dist/lib/stdlib/mcp.d.ts +39 -0
  180. package/dist/lib/stdlib/mcp.js +223 -0
  181. package/dist/lib/stdlib/mcpBridge.mjs +71 -0
  182. package/dist/lib/stdlib/mcpGate.d.ts +9 -0
  183. package/dist/lib/stdlib/mcpGate.js +23 -0
  184. package/dist/lib/stdlib/mcpResolver.d.ts +12 -0
  185. package/dist/lib/stdlib/mcpResolver.js +46 -0
  186. package/dist/lib/stdlib/policy.d.ts +1 -0
  187. package/dist/lib/stdlib/policy.js +4 -0
  188. package/dist/lib/stdlib/skills.d.ts +7 -0
  189. package/dist/lib/stdlib/skills.js +10 -0
  190. package/dist/lib/stdlib/thread.js +6 -3
  191. package/dist/lib/stdlib/threads.js +13 -0
  192. package/dist/lib/stdlib/version.d.ts +1 -1
  193. package/dist/lib/stdlib/version.js +1 -1
  194. package/dist/lib/symbolTable.d.ts +2 -2
  195. package/dist/lib/symbolTable.js +22 -10
  196. package/dist/lib/symbolTable.test.js +12 -12
  197. package/dist/lib/templates/backends/typescriptGenerator/functionCatchFailure.d.ts +1 -1
  198. package/dist/lib/templates/backends/typescriptGenerator/functionCatchFailure.js +1 -2
  199. package/dist/lib/templates/backends/typescriptGenerator/imports.d.ts +1 -1
  200. package/dist/lib/templates/backends/typescriptGenerator/imports.js +2 -2
  201. package/dist/lib/templates/backends/typescriptGenerator/interruptAssignment.d.ts +1 -1
  202. package/dist/lib/templates/backends/typescriptGenerator/interruptAssignment.js +5 -5
  203. package/dist/lib/templates/backends/typescriptGenerator/interruptReturn.d.ts +1 -1
  204. package/dist/lib/templates/backends/typescriptGenerator/interruptReturn.js +4 -4
  205. package/dist/lib/typeChecker/assignability.js +25 -1
  206. package/dist/lib/typeChecker/builtinGenerics.d.ts +11 -0
  207. package/dist/lib/typeChecker/builtinGenerics.js +3 -3
  208. package/dist/lib/typeChecker/builtinNamedArgs.test.js +12 -0
  209. package/dist/lib/typeChecker/builtins.js +3 -0
  210. package/dist/lib/typeChecker/callbackCallEffects.test.d.ts +1 -0
  211. package/dist/lib/typeChecker/callbackCallEffects.test.js +42 -0
  212. package/dist/lib/typeChecker/checker.d.ts +3 -3
  213. package/dist/lib/typeChecker/checker.js +51 -67
  214. package/dist/lib/typeChecker/conflictingMarkers.d.ts +9 -0
  215. package/dist/lib/typeChecker/conflictingMarkers.js +17 -0
  216. package/dist/lib/typeChecker/conflictingMarkers.test.d.ts +1 -0
  217. package/dist/lib/typeChecker/conflictingMarkers.test.js +22 -0
  218. package/dist/lib/typeChecker/definiteReturns.js +3 -6
  219. package/dist/lib/typeChecker/diagnosticLocations.test.d.ts +1 -0
  220. package/dist/lib/typeChecker/diagnosticLocations.test.js +41 -0
  221. package/dist/lib/typeChecker/diagnostics.d.ts +483 -0
  222. package/dist/lib/typeChecker/diagnostics.js +486 -0
  223. package/dist/lib/typeChecker/diagnostics.test.d.ts +1 -0
  224. package/dist/lib/typeChecker/diagnostics.test.js +83 -0
  225. package/dist/lib/typeChecker/effectPayloadCheck.js +9 -37
  226. package/dist/lib/typeChecker/flow.d.ts +26 -9
  227. package/dist/lib/typeChecker/flow.js +18 -2
  228. package/dist/lib/typeChecker/flow.test.js +104 -3
  229. package/dist/lib/typeChecker/flowBuilder.js +15 -2
  230. package/dist/lib/typeChecker/flowBuilder.test.js +29 -3
  231. package/dist/lib/typeChecker/formatErrors.test.d.ts +1 -0
  232. package/dist/lib/typeChecker/formatErrors.test.js +64 -0
  233. package/dist/lib/typeChecker/functionTypeRaises.d.ts +18 -0
  234. package/dist/lib/typeChecker/functionTypeRaises.js +141 -0
  235. package/dist/lib/typeChecker/functionTypeRaises.test.d.ts +1 -0
  236. package/dist/lib/typeChecker/functionTypeRaises.test.js +94 -0
  237. package/dist/lib/typeChecker/functionValueEffects.d.ts +14 -0
  238. package/dist/lib/typeChecker/functionValueEffects.js +60 -0
  239. package/dist/lib/typeChecker/handlerParamTyping.js +9 -7
  240. package/dist/lib/typeChecker/index.d.ts +31 -1
  241. package/dist/lib/typeChecker/index.js +134 -88
  242. package/dist/lib/typeChecker/interruptAnalysis.js +36 -27
  243. package/dist/lib/typeChecker/matchExhaustiveness.js +2 -5
  244. package/dist/lib/typeChecker/matchExprTypes.js +3 -7
  245. package/dist/lib/typeChecker/matchExpression.test.js +29 -0
  246. package/dist/lib/typeChecker/raisesDiagnostic.js +3 -12
  247. package/dist/lib/typeChecker/resultUnion.js +3 -1
  248. package/dist/lib/typeChecker/schemaType.test.js +26 -0
  249. package/dist/lib/typeChecker/scope.d.ts +25 -1
  250. package/dist/lib/typeChecker/scope.js +37 -2
  251. package/dist/lib/typeChecker/scope.test.js +56 -0
  252. package/dist/lib/typeChecker/scopes.js +13 -36
  253. package/dist/lib/typeChecker/staticInitRules.d.ts +1 -24
  254. package/dist/lib/typeChecker/staticInitRules.js +43 -28
  255. package/dist/lib/typeChecker/suppression.d.ts +19 -10
  256. package/dist/lib/typeChecker/suppression.js +64 -14
  257. package/dist/lib/typeChecker/suppression.test.js +80 -13
  258. package/dist/lib/typeChecker/synthesizer.js +58 -66
  259. package/dist/lib/typeChecker/toolBlockBinding.d.ts +0 -23
  260. package/dist/lib/typeChecker/toolBlockBinding.js +44 -14
  261. package/dist/lib/typeChecker/typeKey.js +7 -0
  262. package/dist/lib/typeChecker/typeOperators.d.ts +37 -0
  263. package/dist/lib/typeChecker/typeOperators.js +110 -0
  264. package/dist/lib/typeChecker/typeOperators.test.d.ts +1 -0
  265. package/dist/lib/typeChecker/typeOperators.test.js +491 -0
  266. package/dist/lib/typeChecker/typeWalker.js +21 -0
  267. package/dist/lib/typeChecker/types.d.ts +14 -5
  268. package/dist/lib/typeChecker/undefinedFunctionDiagnostic.js +13 -24
  269. package/dist/lib/typeChecker/undefinedVariableDiagnostic.js +3 -4
  270. package/dist/lib/typeChecker/utils.d.ts +1 -1
  271. package/dist/lib/typeChecker/utils.js +14 -23
  272. package/dist/lib/typeChecker/validate.js +45 -44
  273. package/dist/lib/typeChecker/validateStaticInit.js +1 -1
  274. package/dist/lib/typeChecker/valueParamSubstitution.js +27 -0
  275. package/dist/lib/typeChecker/variadicNamedBinding.test.js +5 -5
  276. package/dist/lib/typeChecker.test.js +60 -62
  277. package/dist/lib/types/exportFromStatement.d.ts +4 -2
  278. package/dist/lib/types/function.d.ts +12 -1
  279. package/dist/lib/types/importStatement.d.ts +5 -2
  280. package/dist/lib/types/importStatement.js +0 -3
  281. package/dist/lib/types/typeHints.d.ts +51 -3
  282. package/dist/lib/utils/bodySlots.d.ts +36 -0
  283. package/dist/lib/utils/bodySlots.js +120 -0
  284. package/dist/lib/utils/formatType.js +48 -3
  285. package/dist/lib/utils/formatType.test.d.ts +1 -0
  286. package/dist/lib/utils/formatType.test.js +65 -0
  287. package/dist/lib/utils/mapBodies.d.ts +10 -10
  288. package/dist/lib/utils/mapBodies.js +11 -45
  289. package/dist/lib/utils/node.js +35 -50
  290. package/dist/scripts/agency.js +52 -3
  291. package/dist/scripts/stage-agents.test.js +24 -0
  292. package/package.json +2 -4
  293. package/stdlib/agency/eval.js +27 -55
  294. package/stdlib/agency/local.js +49 -84
  295. package/stdlib/agency.agency +436 -38
  296. package/stdlib/agency.js +2938 -307
  297. package/stdlib/agent.agency +6 -6
  298. package/stdlib/agent.js +53 -85
  299. package/stdlib/args.agency +74 -0
  300. package/stdlib/args.js +6 -8
  301. package/stdlib/array.js +53 -91
  302. package/stdlib/auth/keyring.agency +4 -4
  303. package/stdlib/auth/keyring.js +33 -32
  304. package/stdlib/auth/oauth.agency +2 -2
  305. package/stdlib/auth/oauth.js +28 -31
  306. package/stdlib/calendar.agency +4 -4
  307. package/stdlib/calendar.js +50 -49
  308. package/stdlib/clipboard.agency +2 -2
  309. package/stdlib/clipboard.js +18 -18
  310. package/stdlib/concurrency.js +5 -7
  311. package/stdlib/data/finance/dbnomics.agency +4 -4
  312. package/stdlib/data/finance/dbnomics.js +19 -26
  313. package/stdlib/data/finance/edgar.agency +7 -7
  314. package/stdlib/data/finance/edgar.js +33 -46
  315. package/stdlib/data/finance/fred.agency +9 -9
  316. package/stdlib/data/finance/fred.js +45 -64
  317. package/stdlib/data/finance/gdelt.agency +4 -4
  318. package/stdlib/data/finance/gdelt.js +19 -26
  319. package/stdlib/data/people/littlesis.agency +19 -19
  320. package/stdlib/data/people/littlesis.js +85 -122
  321. package/stdlib/data/tech/hackernews.agency +23 -23
  322. package/stdlib/data/tech/hackernews.js +101 -146
  323. package/stdlib/data/tech/yc.agency +19 -19
  324. package/stdlib/data/tech/yc.js +87 -124
  325. package/stdlib/data/usaspending.agency +12 -12
  326. package/stdlib/data/usaspending.js +53 -76
  327. package/stdlib/data/wikidata.agency +17 -17
  328. package/stdlib/data/wikidata.js +75 -108
  329. package/stdlib/date.agency +15 -15
  330. package/stdlib/date.js +61 -90
  331. package/stdlib/docs/guide/agency-vs-typescript.md +30 -0
  332. package/stdlib/docs/guide/build-integration.md +106 -0
  333. package/{dist/lib/agents → stdlib}/docs/guide/builtins.md +6 -7
  334. package/stdlib/docs/guide/cross-thread-context.md +178 -0
  335. package/{dist/lib/agents → stdlib}/docs/guide/custom-providers.md +8 -1
  336. package/stdlib/docs/guide/llm-part-2.md +145 -0
  337. package/{dist/lib/agents → stdlib}/docs/guide/mcp.md +13 -45
  338. package/{dist/lib/agents → stdlib}/docs/guide/memory.md +2 -0
  339. package/{dist/lib/agents/docs/guide/advanced-types.md → stdlib/docs/guide/notes-on-types.md} +2 -2
  340. package/{dist/lib/agents → stdlib}/docs/guide/policies.md +27 -1
  341. package/{dist/lib/agents → stdlib}/docs/guide/schema-parameter-injection.md +2 -0
  342. package/{dist/lib/agents → stdlib}/docs/guide/serving.md +23 -35
  343. package/stdlib/docs/guide/tags.md +66 -0
  344. package/{dist/lib/agents → stdlib}/docs/guide/ts-helpers.md +2 -0
  345. package/{dist/lib/agents → stdlib}/docs/guide/types.md +57 -12
  346. package/{dist/lib/agents → stdlib}/docs/guide/vscode-extension.md +2 -2
  347. package/stdlib/fs.agency +6 -6
  348. package/stdlib/fs.js +112 -77
  349. package/stdlib/git.agency +17 -17
  350. package/stdlib/git.js +197 -197
  351. package/stdlib/http.js +19 -24
  352. package/stdlib/image.js +5 -7
  353. package/stdlib/index.agency +12 -12
  354. package/stdlib/index.js +131 -169
  355. package/stdlib/llm.agency +5 -2
  356. package/stdlib/llm.js +39 -62
  357. package/stdlib/markdown.agency +4 -4
  358. package/stdlib/markdown.js +17 -24
  359. package/stdlib/math.agency +5 -5
  360. package/stdlib/math.js +21 -30
  361. package/stdlib/mcp.agency +53 -0
  362. package/stdlib/mcp.js +811 -0
  363. package/stdlib/memory.agency +22 -8
  364. package/stdlib/memory.js +113 -104
  365. package/stdlib/messaging/email.agency +3 -3
  366. package/stdlib/messaging/email.js +34 -27
  367. package/stdlib/messaging/imessage.agency +1 -1
  368. package/stdlib/messaging/imessage.js +12 -9
  369. package/stdlib/messaging/sms.agency +1 -1
  370. package/stdlib/messaging/sms.js +12 -9
  371. package/stdlib/object.agency +3 -3
  372. package/stdlib/object.js +33 -48
  373. package/stdlib/path.agency +7 -7
  374. package/stdlib/path.js +29 -42
  375. package/stdlib/policy.agency +36 -0
  376. package/stdlib/policy.js +467 -114
  377. package/stdlib/shell.agency +8 -8
  378. package/stdlib/shell.js +76 -70
  379. package/stdlib/skills.agency +34 -12
  380. package/stdlib/skills.js +342 -105
  381. package/stdlib/speech.js +19 -27
  382. package/stdlib/statelog.agency +5 -5
  383. package/stdlib/statelog.js +29 -44
  384. package/stdlib/strategy.js +25 -37
  385. package/stdlib/syntax.agency +4 -4
  386. package/stdlib/syntax.js +17 -24
  387. package/stdlib/system.agency +6 -6
  388. package/stdlib/system.js +59 -86
  389. package/stdlib/tag.js +25 -42
  390. package/stdlib/thread.agency +20 -14
  391. package/stdlib/thread.js +88 -108
  392. package/stdlib/ui/chart.agency +1 -1
  393. package/stdlib/ui/chart.js +17 -24
  394. package/stdlib/ui/cli.agency +2 -2
  395. package/stdlib/ui/cli.js +29 -47
  396. package/stdlib/ui/layout.agency +9 -9
  397. package/stdlib/ui/layout.js +73 -108
  398. package/stdlib/ui/table.agency +1 -1
  399. package/stdlib/ui/table.js +29 -42
  400. package/stdlib/ui.agency +6 -6
  401. package/stdlib/ui.js +235 -389
  402. package/stdlib/validation.agency +11 -11
  403. package/stdlib/validation.js +45 -66
  404. package/stdlib/weather.agency +3 -3
  405. package/stdlib/weather.js +15 -20
  406. package/stdlib/web/browser.js +7 -8
  407. package/stdlib/web/search.agency +2 -2
  408. package/stdlib/web/search.js +13 -16
  409. package/stdlib/wikipedia.agency +3 -3
  410. package/stdlib/wikipedia.js +19 -24
  411. package/dist/lib/agents/agency-agent/lib/defaultPolicy.agency +0 -227
  412. package/dist/lib/agents/docs/guide/agency-vs-typescript.md +0 -33
  413. package/dist/lib/agents/docs/guide/build-integration.md +0 -99
  414. package/dist/lib/agents/docs/guide/cli-args.md +0 -190
  415. package/dist/lib/agents/docs/guide/cross-thread-context.md +0 -226
  416. package/dist/lib/agents/docs/guide/llm-part-2.md +0 -111
  417. package/dist/lib/agents/docs/guide/tags.md +0 -72
  418. /package/{dist/lib/agents → stdlib}/docs/cli/agent.md +0 -0
  419. /package/{dist/lib/agents → stdlib}/docs/cli/compile.md +0 -0
  420. /package/{dist/lib/agents → stdlib}/docs/cli/coverage.md +0 -0
  421. /package/{dist/lib/agents → stdlib}/docs/cli/debug.md +0 -0
  422. /package/{dist/lib/agents → stdlib}/docs/cli/doc.md +0 -0
  423. /package/{dist/lib/agents → stdlib}/docs/cli/editor-integration.md +0 -0
  424. /package/{dist/lib/agents → stdlib}/docs/cli/eval-judge.md +0 -0
  425. /package/{dist/lib/agents → stdlib}/docs/cli/eval.md +0 -0
  426. /package/{dist/lib/agents → stdlib}/docs/cli/format.md +0 -0
  427. /package/{dist/lib/agents → stdlib}/docs/cli/index.md +0 -0
  428. /package/{dist/lib/agents → stdlib}/docs/cli/local.md +0 -0
  429. /package/{dist/lib/agents → stdlib}/docs/cli/models.md +0 -0
  430. /package/{dist/lib/agents → stdlib}/docs/cli/optimize.md +0 -0
  431. /package/{dist/lib/agents → stdlib}/docs/cli/pack.md +0 -0
  432. /package/{dist/lib/agents → stdlib}/docs/cli/policy.md +0 -0
  433. /package/{dist/lib/agents → stdlib}/docs/cli/preprocess-and-ast.md +0 -0
  434. /package/{dist/lib/agents → stdlib}/docs/cli/review.md +0 -0
  435. /package/{dist/lib/agents → stdlib}/docs/cli/run.md +0 -0
  436. /package/{dist/lib/agents → stdlib}/docs/cli/schedule.md +0 -0
  437. /package/{dist/lib/agents → stdlib}/docs/cli/serve.md +0 -0
  438. /package/{dist/lib/agents → stdlib}/docs/cli/test.md +0 -0
  439. /package/{dist/lib/agents → stdlib}/docs/cli/trace-and-bundle.md +0 -0
  440. /package/{dist/lib/agents → stdlib}/docs/cli/typecheck.md +0 -0
  441. /package/{dist/lib/agents → stdlib}/docs/guide/agency-config-file.md +0 -0
  442. /package/{dist/lib/agents → stdlib}/docs/guide/agency-packages.md +0 -0
  443. /package/{dist/lib/agents → stdlib}/docs/guide/agency-stdlib.md +0 -0
  444. /package/{dist/lib/agents → stdlib}/docs/guide/attachments.md +0 -0
  445. /package/{dist/lib/agents → stdlib}/docs/guide/basic-syntax.md +0 -0
  446. /package/{dist/lib/agents → stdlib}/docs/guide/blocks.md +0 -0
  447. /package/{dist/lib/agents → stdlib}/docs/guide/callbacks.md +0 -0
  448. /package/{dist/lib/agents → stdlib}/docs/guide/checkpointing.md +0 -0
  449. /package/{dist/lib/agents → stdlib}/docs/guide/common-functions.md +0 -0
  450. /package/{dist/lib/agents → stdlib}/docs/guide/compiling-and-running.md +0 -0
  451. /package/{dist/lib/agents → stdlib}/docs/guide/concurrency.md +0 -0
  452. /package/{dist/lib/agents → stdlib}/docs/guide/debugging.md +0 -0
  453. /package/{dist/lib/agents → stdlib}/docs/guide/developer-tools.md +0 -0
  454. /package/{dist/lib/agents → stdlib}/docs/guide/effects-and-raises.md +0 -0
  455. /package/{dist/lib/agents → stdlib}/docs/guide/effects.md +0 -0
  456. /package/{dist/lib/agents → stdlib}/docs/guide/error-handling.md +0 -0
  457. /package/{dist/lib/agents → stdlib}/docs/guide/exercise-1.md +0 -0
  458. /package/{dist/lib/agents → stdlib}/docs/guide/functions.md +0 -0
  459. /package/{dist/lib/agents → stdlib}/docs/guide/getting-started.md +0 -0
  460. /package/{dist/lib/agents → stdlib}/docs/guide/global-var-initialization.md +0 -0
  461. /package/{dist/lib/agents → stdlib}/docs/guide/global-vs-static.md +0 -0
  462. /package/{dist/lib/agents → stdlib}/docs/guide/guards.md +0 -0
  463. /package/{dist/lib/agents → stdlib}/docs/guide/handlers.md +0 -0
  464. /package/{dist/lib/agents → stdlib}/docs/guide/image-generation.md +0 -0
  465. /package/{dist/lib/agents → stdlib}/docs/guide/imports-and-packages.md +0 -0
  466. /package/{dist/lib/agents → stdlib}/docs/guide/interrupts-from-typescript.md +0 -0
  467. /package/{dist/lib/agents → stdlib}/docs/guide/interrupts-part-2.md +0 -0
  468. /package/{dist/lib/agents → stdlib}/docs/guide/interrupts.md +0 -0
  469. /package/{dist/lib/agents → stdlib}/docs/guide/llm.md +0 -0
  470. /package/{dist/lib/agents → stdlib}/docs/guide/message-threads.md +0 -0
  471. /package/{dist/lib/agents → stdlib}/docs/guide/nodes.md +0 -0
  472. /package/{dist/lib/agents → stdlib}/docs/guide/observability.md +0 -0
  473. /package/{dist/lib/agents → stdlib}/docs/guide/partial-application.md +0 -0
  474. /package/{dist/lib/agents → stdlib}/docs/guide/pattern-matching.md +0 -0
  475. /package/{dist/lib/agents → stdlib}/docs/guide/schemas.md +0 -0
  476. /package/{dist/lib/agents → stdlib}/docs/guide/state-isolation.md +0 -0
  477. /package/{dist/lib/agents → stdlib}/docs/guide/streaming.md +0 -0
  478. /package/{dist/lib/agents → stdlib}/docs/guide/testing.md +0 -0
  479. /package/{dist/lib/agents → stdlib}/docs/guide/troubleshooting.md +0 -0
  480. /package/{dist/lib/agents → stdlib}/docs/guide/ts-interop.md +0 -0
  481. /package/{dist/lib/agents → stdlib}/docs/guide/type-validation.md +0 -0
  482. /package/{dist/lib/agents → stdlib}/docs/guide/unused.md +0 -0
  483. /package/{dist/lib/agents → stdlib}/docs/guide/unused2.md +0 -0
  484. /package/{dist/lib/agents → stdlib}/docs/guide/value-parameterized-types.md +0 -0
  485. /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.