agency-lang 0.15.0 → 0.16.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 (741) hide show
  1. package/dist/lib/agentTarget.d.ts +16 -11
  2. package/dist/lib/agentTarget.js +59 -28
  3. package/dist/lib/agents/agency-agent/agent.agency +66 -180
  4. package/dist/lib/agents/agency-agent/agent.js +605 -659
  5. package/dist/lib/agents/agency-agent/brains/brain.agency +29 -0
  6. package/dist/lib/agents/agency-agent/brains/brain.js +199 -0
  7. package/dist/lib/agents/agency-agent/brains/coordinator/README.md +100 -0
  8. package/dist/lib/agents/agency-agent/brains/coordinator/coordinator.agency +124 -0
  9. package/dist/lib/agents/agency-agent/brains/coordinator/coordinator.js +1397 -0
  10. package/dist/lib/agents/agency-agent/{prompts → brains/coordinator/prompts}/code.md +8 -4
  11. package/dist/lib/agents/agency-agent/{prompts → brains/coordinator/prompts}/codeSample.js +21 -16
  12. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/brainstorm.js +48 -48
  13. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/code.agency +127 -24
  14. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/code.js +770 -150
  15. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/explorer.agency +1 -1
  16. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/explorer.js +11 -11
  17. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/oracle.agency +1 -1
  18. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/oracle.js +11 -11
  19. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/research.js +15 -15
  20. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/review.js +34 -34
  21. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/supervisor.agency +1 -1
  22. package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/supervisor.js +71 -71
  23. package/dist/lib/agents/agency-agent/{tests → brains/coordinator/tests}/agentTurn.agency +28 -17
  24. package/dist/lib/agents/agency-agent/brains/coordinator/tests/agentTurn.js +4852 -0
  25. package/dist/lib/agents/agency-agent/{tests → brains/coordinator/tests}/agentTurn.test.json +11 -1
  26. package/dist/lib/agents/agency-agent/{tests → brains/coordinator/tests}/attachmentsTurn.agency +19 -24
  27. package/dist/lib/agents/agency-agent/brains/coordinator/tests/attachmentsTurn.js +800 -0
  28. package/dist/lib/agents/agency-agent/{tests → brains/coordinator/tests}/attachmentsTurn.test.json +1 -48
  29. package/dist/lib/agents/agency-agent/brains/coordinator/tests/brainstorm.js +1269 -0
  30. package/dist/lib/agents/agency-agent/brains/coordinator/tests/supervisor.js +2797 -0
  31. package/dist/lib/agents/agency-agent/brains/coordinator/tests/toolWiring.js +1063 -0
  32. package/dist/lib/agents/agency-agent/brains/registry.agency +29 -0
  33. package/dist/lib/agents/agency-agent/brains/registry.js +632 -0
  34. package/dist/lib/agents/agency-agent/brains/simple/README.md +43 -0
  35. package/dist/lib/agents/agency-agent/brains/simple/simple.agency +43 -0
  36. package/dist/lib/agents/agency-agent/brains/simple/simple.js +621 -0
  37. package/dist/lib/agents/agency-agent/brains/simple/tests/simpleTurn.agency +17 -0
  38. package/dist/lib/agents/agency-agent/brains/simple/tests/simpleTurn.js +385 -0
  39. package/dist/lib/agents/agency-agent/brains/simple/tests/simpleTurn.test.json +13 -0
  40. package/dist/lib/agents/agency-agent/lib/agentName.agency +10 -0
  41. package/dist/lib/agents/agency-agent/{subagents/shell.js → lib/agentName.js} +74 -193
  42. package/dist/lib/agents/agency-agent/lib/args.agency +10 -2
  43. package/dist/lib/agents/agency-agent/lib/args.js +27 -5
  44. package/dist/lib/agents/agency-agent/lib/grounding.agency +38 -0
  45. package/dist/lib/agents/agency-agent/lib/grounding.js +566 -0
  46. package/dist/lib/agents/agency-agent/lib/header.agency +4 -1
  47. package/dist/lib/agents/agency-agent/lib/header.js +45 -6
  48. package/dist/lib/agents/agency-agent/lib/repl.agency +27 -127
  49. package/dist/lib/agents/agency-agent/lib/repl.js +74 -205
  50. package/dist/lib/agents/agency-agent/lib/session.agency +32 -0
  51. package/dist/lib/agents/agency-agent/lib/session.js +288 -2
  52. package/dist/lib/agents/agency-agent/lib/settings.agency +2 -1
  53. package/dist/lib/agents/agency-agent/lib/settings.js +2 -2
  54. package/dist/lib/agents/agency-agent/lib/turn.agency +199 -0
  55. package/dist/lib/agents/agency-agent/lib/{coordinator.js → turn.js} +933 -1084
  56. package/dist/lib/agents/agency-agent/tests/agentDir.js +2 -1
  57. package/dist/lib/agents/agency-agent/tests/agentName.agency +10 -0
  58. package/dist/lib/agents/agency-agent/tests/agentName.js +337 -0
  59. package/dist/lib/agents/agency-agent/tests/agentName.test.json +6 -0
  60. package/dist/lib/agents/agency-agent/tests/agentTurn.js +268 -733
  61. package/dist/lib/agents/agency-agent/tests/attachments.js +50 -25
  62. package/dist/lib/agents/agency-agent/tests/attachmentsTurn.js +56 -167
  63. package/dist/lib/agents/agency-agent/tests/brainstorm.js +100 -299
  64. package/dist/lib/agents/agency-agent/tests/capabilities.js +32 -16
  65. package/dist/lib/agents/agency-agent/tests/execPolicy.js +10 -5
  66. package/dist/lib/agents/agency-agent/tests/gitPolicy.js +6 -3
  67. package/dist/lib/agents/agency-agent/tests/imageTool.js +14 -7
  68. package/dist/lib/agents/agency-agent/tests/mcpGating.js +6 -3
  69. package/dist/lib/agents/agency-agent/tests/memoryWiring.js +14 -7
  70. package/dist/lib/agents/agency-agent/tests/modelFilters.js +10 -5
  71. package/dist/lib/agents/agency-agent/tests/models.js +38 -19
  72. package/dist/lib/agents/agency-agent/tests/oneShotRounds.js +8 -4
  73. package/dist/lib/agents/agency-agent/tests/readPolicy.agency +44 -0
  74. package/dist/lib/agents/agency-agent/tests/readPolicy.js +1034 -0
  75. package/dist/lib/agents/agency-agent/tests/readPolicy.test.json +22 -0
  76. package/dist/lib/agents/agency-agent/tests/registry.agency +26 -0
  77. package/dist/lib/agents/agency-agent/tests/registry.js +703 -0
  78. package/dist/lib/agents/agency-agent/tests/registry.test.json +9 -0
  79. package/dist/lib/agents/agency-agent/tests/resolution.js +22 -11
  80. package/dist/lib/agents/agency-agent/tests/search.js +28 -14
  81. package/dist/lib/agents/agency-agent/tests/settings.agency +16 -0
  82. package/dist/lib/agents/agency-agent/tests/settings.js +292 -13
  83. package/dist/lib/agents/agency-agent/tests/settings.test.json +20 -0
  84. package/dist/lib/agents/agency-agent/tests/slots.js +10 -5
  85. package/dist/lib/agents/agency-agent/tests/stubBrains.agency +143 -0
  86. package/dist/lib/agents/agency-agent/tests/stubBrains.js +2375 -0
  87. package/dist/lib/agents/agency-agent/tests/stubPolicy.json +4 -0
  88. package/dist/lib/agents/agency-agent/tests/supervisor.js +163 -508
  89. package/dist/lib/agents/agency-agent/tests/threadText.agency +29 -0
  90. package/dist/lib/agents/agency-agent/tests/threadText.js +561 -0
  91. package/dist/lib/agents/agency-agent/tests/toolWiring.js +59 -168
  92. package/dist/lib/agents/agency-agent/tests/turn.agency +194 -0
  93. package/dist/lib/agents/agency-agent/tests/turn.js +2817 -0
  94. package/dist/lib/agents/agency-agent/tests/turn.test.json +29 -0
  95. package/dist/lib/agents/agency-agent/tests/turnFailure.js +12 -6
  96. package/dist/lib/agents/eval/goalJudge.js +2 -1
  97. package/dist/lib/agents/eval/judge.js +2 -1
  98. package/dist/lib/agents/eval/judgePairwise.js +2 -1
  99. package/dist/lib/agents/optimize/gepaReflect.js +2 -1
  100. package/dist/lib/agents/optimize/mutatePrompt.js +2 -1
  101. package/dist/lib/agents/policy/agent.js +2 -1
  102. package/dist/lib/agents/review/agent.js +4 -2
  103. package/dist/lib/analysis/closure.d.ts +1 -0
  104. package/dist/lib/analysis/closure.js +2 -2
  105. package/dist/lib/analysis/effects.js +3 -9
  106. package/dist/lib/analysis/imports.d.ts +1 -1
  107. package/dist/lib/analysis/imports.js +3 -0
  108. package/dist/lib/backends/agencyGenerator.js +23 -62
  109. package/dist/lib/backends/typescriptBuilder/assignmentEmitter.js +1 -3
  110. package/dist/lib/backends/typescriptBuilder/destructiveTracking.js +2 -5
  111. package/dist/lib/backends/typescriptBuilder/finalizeCodegen.js +1 -3
  112. package/dist/lib/backends/typescriptBuilder/nameClassifier.js +25 -14
  113. package/dist/lib/backends/typescriptBuilder/namedArgsResolver.js +1 -3
  114. package/dist/lib/backends/typescriptBuilder/nodeWrapperParams.js +8 -2
  115. package/dist/lib/backends/typescriptBuilder/pipeChainEmitter.js +9 -6
  116. package/dist/lib/backends/typescriptBuilder/scopeManager.js +3 -3
  117. package/dist/lib/backends/typescriptBuilder/sectionAssembler.js +12 -19
  118. package/dist/lib/backends/typescriptBuilder.js +66 -129
  119. package/dist/lib/backends/typescriptGenerator/tagArgToTs.js +2 -6
  120. package/dist/lib/backends/typescriptGenerator/typeToString.js +2 -6
  121. package/dist/lib/backends/typescriptGenerator/typeToZodSchema.js +1 -1
  122. package/dist/lib/backends/typescriptGenerator/validationDescriptor.js +7 -16
  123. package/dist/lib/cli/childEnv.d.ts +12 -0
  124. package/dist/lib/cli/childEnv.js +24 -0
  125. package/dist/lib/cli/commands.d.ts +21 -1
  126. package/dist/lib/cli/commands.js +110 -30
  127. package/dist/lib/cli/coverage.js +2 -6
  128. package/dist/lib/cli/debug.js +4 -5
  129. package/dist/lib/cli/deploy/bundle.js +4 -1
  130. package/dist/lib/cli/diagnosticsDocs.js +1 -1
  131. package/dist/lib/cli/doc.js +7 -17
  132. package/dist/lib/cli/eval/formatGrade.d.ts +10 -0
  133. package/dist/lib/cli/eval/formatGrade.js +76 -0
  134. package/dist/lib/cli/eval/grade.d.ts +34 -5
  135. package/dist/lib/cli/eval/grade.js +57 -17
  136. package/dist/lib/cli/eval/graders.d.ts +5 -0
  137. package/dist/lib/cli/eval/graders.js +7 -0
  138. package/dist/lib/cli/eval/label.d.ts +25 -23
  139. package/dist/lib/cli/eval/label.js +37 -34
  140. package/dist/lib/cli/eval/labelCommand.d.ts +6 -37
  141. package/dist/lib/cli/eval/labelCommand.js +10 -81
  142. package/dist/lib/cli/eval/logs.d.ts +3 -3
  143. package/dist/lib/cli/eval/logs.js +12 -5
  144. package/dist/lib/cli/eval/ls.d.ts +16 -0
  145. package/dist/lib/cli/eval/ls.js +41 -0
  146. package/dist/lib/cli/eval/optimize.d.ts +3 -3
  147. package/dist/lib/cli/eval/optimize.js +27 -15
  148. package/dist/lib/cli/eval/run.d.ts +46 -25
  149. package/dist/lib/cli/eval/run.js +58 -81
  150. package/dist/lib/cli/eval/upload.d.ts +70 -0
  151. package/dist/lib/cli/eval/upload.js +182 -0
  152. package/dist/lib/cli/evalJudge.d.ts +1 -1
  153. package/dist/lib/cli/evalJudge.js +11 -5
  154. package/dist/lib/cli/explain.js +1 -1
  155. package/dist/lib/cli/local.d.ts +1 -1
  156. package/dist/lib/cli/local.js +2 -1
  157. package/dist/lib/cli/logsView.d.ts +7 -4
  158. package/dist/lib/cli/logsView.js +28 -8
  159. package/dist/lib/cli/precompile.js +31 -8
  160. package/dist/lib/cli/remote/commands/deploy.js +20 -3
  161. package/dist/lib/cli/remote/commands/ls.d.ts +4 -0
  162. package/dist/lib/cli/remote/commands/ls.js +24 -1
  163. package/dist/lib/cli/remote/commands/spendWindow.js +4 -5
  164. package/dist/lib/cli/remote/exportedEndpoints.d.ts +8 -0
  165. package/dist/lib/cli/remote/exportedEndpoints.js +34 -4
  166. package/dist/lib/cli/remote/pullPlan.js +3 -1
  167. package/dist/lib/cli/remote/render.d.ts +4 -1
  168. package/dist/lib/cli/remote/render.js +39 -6
  169. package/dist/lib/cli/remote/secretsInput.js +2 -7
  170. package/dist/lib/cli/runAgencyAgent.js +2 -2
  171. package/dist/lib/cli/runBundledAgent.d.ts +4 -0
  172. package/dist/lib/cli/runBundledAgent.js +35 -13
  173. package/dist/lib/cli/runDirectory/add.d.ts +15 -0
  174. package/dist/lib/cli/runDirectory/add.js +18 -0
  175. package/dist/lib/cli/runDirectory/commands.d.ts +15 -0
  176. package/dist/lib/cli/runDirectory/commands.js +71 -0
  177. package/dist/lib/cli/runDirectory/extract.d.ts +26 -0
  178. package/dist/lib/cli/runDirectory/extract.js +51 -0
  179. package/dist/lib/cli/runDirectory/list.d.ts +13 -0
  180. package/dist/lib/cli/runDirectory/list.js +91 -0
  181. package/dist/lib/cli/runDirectory/table.d.ts +6 -0
  182. package/dist/lib/cli/runDirectory/table.js +18 -0
  183. package/dist/lib/cli/runDirectory/traceListing.d.ts +3 -0
  184. package/dist/lib/cli/runDirectory/traceListing.js +21 -0
  185. package/dist/lib/cli/runPolicy.js +1 -1
  186. package/dist/lib/cli/schedule/backends/github.js +1 -3
  187. package/dist/lib/cli/schedule/backends/launchd.js +4 -3
  188. package/dist/lib/cli/schedule/backends/pinnedActions.js +2 -2
  189. package/dist/lib/cli/schedule/index.js +1 -3
  190. package/dist/lib/cli/schedule/remote.js +2 -3
  191. package/dist/lib/cli/serve.js +8 -11
  192. package/dist/lib/cli/stageConfiguredAgent.js +4 -1
  193. package/dist/lib/cli/statelog/accountClient.js +7 -1
  194. package/dist/lib/cli/statelog/evalUploadClient.d.ts +46 -0
  195. package/dist/lib/cli/statelog/evalUploadClient.js +94 -0
  196. package/dist/lib/cli/statelog/projectClient.d.ts +15 -0
  197. package/dist/lib/cli/statelog/projectClient.js +19 -1
  198. package/dist/lib/cli/statelog/redact.js +1 -3
  199. package/dist/lib/cli/statelog/secretsClient.js +3 -1
  200. package/dist/lib/cli/statelog/spendTypes.js +1 -3
  201. package/dist/lib/cli/test.d.ts +46 -13
  202. package/dist/lib/cli/test.js +245 -223
  203. package/dist/lib/cli/testOutput.d.ts +17 -0
  204. package/dist/lib/cli/testOutput.js +18 -0
  205. package/dist/lib/cli/testReport.d.ts +99 -0
  206. package/dist/lib/cli/testReport.js +88 -0
  207. package/dist/lib/cli/util.d.ts +11 -6
  208. package/dist/lib/cli/util.js +20 -31
  209. package/dist/lib/cli/watch.js +3 -1
  210. package/dist/lib/compilationUnit.js +3 -4
  211. package/dist/lib/compiler/buildSession.js +23 -16
  212. package/dist/lib/compiler/closureValidator.d.ts +44 -0
  213. package/dist/lib/compiler/closureValidator.js +238 -0
  214. package/dist/lib/compiler/compile.d.ts +9 -0
  215. package/dist/lib/compiler/compile.js +3 -5
  216. package/dist/lib/compiler/compileClosure.js +1 -3
  217. package/dist/lib/compiler/compileSandboxed.d.ts +20 -0
  218. package/dist/lib/compiler/compileSandboxed.js +39 -0
  219. package/dist/lib/compiler/compileValidatedClosure.d.ts +3 -0
  220. package/dist/lib/compiler/compileValidatedClosure.js +84 -0
  221. package/dist/lib/compiler/defaultSession.js +1 -1
  222. package/dist/lib/compiler/depFingerprint.js +11 -2
  223. package/dist/lib/compiler/initDepGraph.js +4 -6
  224. package/dist/lib/compiler/splice/generatorEffects.js +3 -8
  225. package/dist/lib/compiler/splice/runGenerator.js +5 -5
  226. package/dist/lib/config.d.ts +63 -11
  227. package/dist/lib/config.js +54 -14
  228. package/dist/lib/constants.js +1 -3
  229. package/dist/lib/debugger/driver.js +8 -16
  230. package/dist/lib/debugger/overlays.js +2 -4
  231. package/dist/lib/debugger/testHelpers.js +12 -5
  232. package/dist/lib/debugger/testSession.js +1 -3
  233. package/dist/lib/debugger/ui.js +48 -26
  234. package/dist/lib/eval/batchStatistics.d.ts +40 -0
  235. package/dist/lib/eval/batchStatistics.js +124 -0
  236. package/dist/lib/eval/extract.js +4 -5
  237. package/dist/lib/eval/grading/agencyRunner.js +10 -1
  238. package/dist/lib/eval/grading/agencyTestGrader.d.ts +31 -0
  239. package/dist/lib/eval/grading/agencyTestGrader.js +148 -0
  240. package/dist/lib/eval/grading/baseGrader.d.ts +22 -3
  241. package/dist/lib/eval/grading/baseGrader.js +25 -1
  242. package/dist/lib/eval/grading/functionGrader.d.ts +13 -13
  243. package/dist/lib/eval/grading/functionGrader.js +9 -8
  244. package/dist/lib/eval/grading/goalJudgeFile.d.ts +10 -0
  245. package/dist/lib/eval/grading/goalJudgeFile.js +11 -0
  246. package/dist/lib/eval/grading/gradeBreakdown.d.ts +4 -0
  247. package/dist/lib/eval/grading/gradeBreakdown.js +14 -8
  248. package/dist/lib/eval/grading/gradeRun.d.ts +23 -20
  249. package/dist/lib/eval/grading/gradeRun.js +191 -132
  250. package/dist/lib/eval/grading/gradeSuite.d.ts +27 -5
  251. package/dist/lib/eval/grading/gradeSuite.js +68 -11
  252. package/dist/lib/eval/grading/graders/builtinGraders.d.ts +5 -5
  253. package/dist/lib/eval/grading/graders/builtinGraders.js +14 -11
  254. package/dist/lib/eval/grading/graders/humanGrader.js +10 -3
  255. package/dist/lib/eval/grading/graders/llmJudge.d.ts +14 -1
  256. package/dist/lib/eval/grading/graders/llmJudge.js +35 -7
  257. package/dist/lib/eval/grading/gradingModule.d.ts +41 -4
  258. package/dist/lib/eval/grading/gradingModule.js +115 -20
  259. package/dist/lib/eval/grading/harnessSnapshot.d.ts +12 -0
  260. package/dist/lib/eval/grading/harnessSnapshot.js +35 -0
  261. package/dist/lib/eval/grading/scorecard.d.ts +6 -2
  262. package/dist/lib/eval/grading/scorecard.js +1 -1
  263. package/dist/lib/eval/grading/testUtils.js +1 -1
  264. package/dist/lib/eval/grading/types.d.ts +7 -9
  265. package/dist/lib/eval/judge/pairwise.d.ts +11 -3
  266. package/dist/lib/eval/judge/pairwise.js +28 -26
  267. package/dist/lib/eval/judge/suite.d.ts +2 -2
  268. package/dist/lib/eval/judge/suite.js +56 -23
  269. package/dist/lib/eval/label/checklist.d.ts +6 -6
  270. package/dist/lib/eval/label/checklist.js +42 -33
  271. package/dist/lib/eval/label/controller.d.ts +7 -3
  272. package/dist/lib/eval/label/controller.js +257 -121
  273. package/dist/lib/eval/label/draft.d.ts +35 -29
  274. package/dist/lib/eval/label/draft.js +44 -30
  275. package/dist/lib/eval/label/group.d.ts +34 -0
  276. package/dist/lib/eval/label/group.js +72 -0
  277. package/dist/lib/eval/label/ids.d.ts +3 -23
  278. package/dist/lib/eval/label/ids.js +4 -34
  279. package/dist/lib/eval/label/judgement.d.ts +25 -0
  280. package/dist/lib/eval/label/judgement.js +30 -0
  281. package/dist/lib/eval/label/labelTui.d.ts +4 -14
  282. package/dist/lib/eval/label/labelTui.js +43 -38
  283. package/dist/lib/eval/label/session.d.ts +23 -14
  284. package/dist/lib/eval/label/session.js +66 -49
  285. package/dist/lib/eval/label/types.d.ts +18 -126
  286. package/dist/lib/eval/label/types.js +37 -130
  287. package/dist/lib/eval/loadInputs.d.ts +12 -9
  288. package/dist/lib/eval/loadInputs.js +102 -27
  289. package/dist/lib/eval/normalize.js +1 -3
  290. package/dist/lib/eval/public.d.ts +10 -1
  291. package/dist/lib/eval/public.js +11 -0
  292. package/dist/lib/eval/run/commandLine.d.ts +13 -7
  293. package/dist/lib/eval/run/commandLine.js +23 -12
  294. package/dist/lib/eval/run/extract.d.ts +6 -18
  295. package/dist/lib/eval/run/extract.js +6 -16
  296. package/dist/lib/eval/run/runAgent.d.ts +26 -26
  297. package/dist/lib/eval/run/runAgent.js +49 -52
  298. package/dist/lib/eval/run/runSuite.d.ts +23 -19
  299. package/dist/lib/eval/run/runSuite.js +392 -147
  300. package/dist/lib/eval/run/seed.js +22 -10
  301. package/dist/lib/eval/run/spawnRunner.js +1 -3
  302. package/dist/lib/eval/run/subprocess.d.ts +8 -1
  303. package/dist/lib/eval/run/subprocess.js +11 -4
  304. package/dist/lib/eval/runDirectoryFixture.d.ts +40 -0
  305. package/dist/lib/eval/runDirectoryFixture.js +86 -0
  306. package/dist/lib/eval/runTypes.d.ts +50 -49
  307. package/dist/lib/eval/selectTests.d.ts +22 -0
  308. package/dist/lib/eval/selectTests.js +28 -0
  309. package/dist/lib/eval/sources.js +11 -4
  310. package/dist/lib/eval/statelogParser.js +11 -2
  311. package/dist/lib/importPaths.d.ts +1 -0
  312. package/dist/lib/importPaths.js +4 -9
  313. package/dist/lib/importStrategy.js +2 -1
  314. package/dist/lib/ir/builders.js +16 -10
  315. package/dist/lib/ir/prettyPrint.js +6 -15
  316. package/dist/lib/linter/rules/importFixes.js +1 -2
  317. package/dist/lib/linter/rules/redundantPreludeImport.js +1 -3
  318. package/dist/lib/logsViewer/conversation.js +19 -9
  319. package/dist/lib/logsViewer/help.js +2 -1
  320. package/dist/lib/logsViewer/run.d.ts +5 -0
  321. package/dist/lib/logsViewer/run.js +94 -20
  322. package/dist/lib/logsViewer/search.js +1 -1
  323. package/dist/lib/logsViewer/spanText.js +2 -4
  324. package/dist/lib/logsViewer/summary.js +4 -13
  325. package/dist/lib/logsViewer/timeline/groups.js +1 -2
  326. package/dist/lib/logsViewer/tree.js +1 -3
  327. package/dist/lib/logsViewer/treeRows.d.ts +2 -0
  328. package/dist/lib/logsViewer/treeRows.js +8 -8
  329. package/dist/lib/logsViewer/views/byNameView.js +4 -3
  330. package/dist/lib/logsViewer/views/detailScreen.js +3 -1
  331. package/dist/lib/logsViewer/views/flameView.js +14 -7
  332. package/dist/lib/logsViewer/views/occurrencesView.js +5 -6
  333. package/dist/lib/logsViewer/views/shared.js +2 -5
  334. package/dist/lib/logsViewer/views/treeReducer.js +1 -2
  335. package/dist/lib/logsViewer/views/treeView.d.ts +14 -1
  336. package/dist/lib/logsViewer/views/treeView.js +56 -18
  337. package/dist/lib/logsViewer/views/view.d.ts +9 -0
  338. package/dist/lib/lowering/comprehensionDesugar.js +3 -9
  339. package/dist/lib/lowering/patternLowering.js +20 -24
  340. package/dist/lib/lsp/builtinHover.js +4 -16
  341. package/dist/lib/lsp/completion.js +11 -8
  342. package/dist/lib/lsp/diagnostics.js +19 -3
  343. package/dist/lib/lsp/hover.js +1 -3
  344. package/dist/lib/lsp/semanticTokens.js +1 -2
  345. package/dist/lib/lsp/semantics.js +2 -6
  346. package/dist/lib/lsp/server.js +2 -6
  347. package/dist/lib/lsp/setup.d.ts +1 -1
  348. package/dist/lib/lsp/setup.js +1 -6
  349. package/dist/lib/lsp/workspaceSymbol.js +12 -5
  350. package/dist/lib/mcp/setup.js +1 -4
  351. package/dist/lib/mcp/tools.js +2 -5
  352. package/dist/lib/optimize/baseOptimizer.d.ts +6 -6
  353. package/dist/lib/optimize/baseOptimizer.js +16 -16
  354. package/dist/lib/optimize/candidatePool.js +4 -1
  355. package/dist/lib/optimize/mutator.d.ts +2 -2
  356. package/dist/lib/optimize/mutator.js +10 -2
  357. package/dist/lib/optimize/optimizer.d.ts +3 -3
  358. package/dist/lib/optimize/optimizers/example.d.ts +2 -2
  359. package/dist/lib/optimize/optimizers/example.js +12 -5
  360. package/dist/lib/optimize/optimizers/gepa.d.ts +3 -3
  361. package/dist/lib/optimize/optimizers/gepa.js +50 -14
  362. package/dist/lib/optimize/optimizers/greedyReflective.d.ts +2 -2
  363. package/dist/lib/optimize/optimizers/greedyReflective.js +33 -10
  364. package/dist/lib/optimize/public.d.ts +3 -3
  365. package/dist/lib/optimize/reflectionFeedback.js +17 -4
  366. package/dist/lib/optimize/report.js +9 -1
  367. package/dist/lib/optimize/reporter.js +1 -1
  368. package/dist/lib/optimize/sourceMutator.js +70 -18
  369. package/dist/lib/optimize/targets.js +8 -5
  370. package/dist/lib/optimize/testUtils.d.ts +7 -7
  371. package/dist/lib/optimize/testUtils.js +8 -46
  372. package/dist/lib/optimize/validationSplit.d.ts +4 -4
  373. package/dist/lib/parsers/parsers.js +132 -77
  374. package/dist/lib/preprocessors/expandSplices.d.ts +9 -0
  375. package/dist/lib/preprocessors/expandSplices.js +2 -3
  376. package/dist/lib/preprocessors/hoistCalls.js +1 -3
  377. package/dist/lib/preprocessors/importResolver.js +4 -7
  378. package/dist/lib/preprocessors/injectSchemaArgs.js +1 -2
  379. package/dist/lib/preprocessors/liftCallbacks.js +6 -8
  380. package/dist/lib/preprocessors/parallelDesugar.js +1 -2
  381. package/dist/lib/preprocessors/resolveReExports.js +1 -2
  382. package/dist/lib/preprocessors/typescriptPreprocessor.js +48 -33
  383. package/dist/lib/runDirectory/annotations.d.ts +285 -0
  384. package/dist/lib/runDirectory/annotations.js +211 -0
  385. package/dist/lib/runDirectory/attachCode.d.ts +23 -0
  386. package/dist/lib/runDirectory/attachCode.js +79 -0
  387. package/dist/lib/runDirectory/attachWorkdir.d.ts +32 -0
  388. package/dist/lib/runDirectory/attachWorkdir.js +69 -0
  389. package/dist/lib/runDirectory/codeIdentity.d.ts +24 -0
  390. package/dist/lib/runDirectory/codeIdentity.js +37 -0
  391. package/dist/lib/runDirectory/durableWrite.d.ts +40 -0
  392. package/dist/lib/runDirectory/durableWrite.js +91 -0
  393. package/dist/lib/runDirectory/evalRecord.d.ts +15 -0
  394. package/dist/lib/runDirectory/evalRecord.js +21 -0
  395. package/dist/lib/runDirectory/extractTrace.d.ts +22 -0
  396. package/dist/lib/runDirectory/extractTrace.js +47 -0
  397. package/dist/lib/runDirectory/findRuns.d.ts +17 -0
  398. package/dist/lib/runDirectory/findRuns.js +86 -0
  399. package/dist/lib/runDirectory/humanFeedback.d.ts +17 -0
  400. package/dist/lib/runDirectory/humanFeedback.js +40 -0
  401. package/dist/lib/runDirectory/labelStore.d.ts +72 -0
  402. package/dist/lib/runDirectory/labelStore.js +238 -0
  403. package/dist/lib/runDirectory/list.d.ts +102 -0
  404. package/dist/lib/runDirectory/list.js +207 -0
  405. package/dist/lib/runDirectory/lock.d.ts +40 -0
  406. package/dist/lib/{eval/label → runDirectory}/lock.js +31 -17
  407. package/dist/lib/runDirectory/mergeStatelog.d.ts +26 -0
  408. package/dist/lib/runDirectory/mergeStatelog.js +48 -0
  409. package/dist/lib/runDirectory/mutations.d.ts +124 -0
  410. package/dist/lib/runDirectory/mutations.js +427 -0
  411. package/dist/lib/runDirectory/runDir.d.ts +46 -0
  412. package/dist/lib/runDirectory/runDir.js +92 -0
  413. package/dist/lib/runDirectory/testFixtures.d.ts +17 -0
  414. package/dist/lib/runDirectory/testFixtures.js +61 -0
  415. package/dist/lib/runDirectory/traceText.d.ts +29 -0
  416. package/dist/lib/runDirectory/traceText.js +34 -0
  417. package/dist/lib/runDirectory/traces.d.ts +49 -0
  418. package/dist/lib/runDirectory/traces.js +87 -0
  419. package/dist/lib/runsExplorer/loader.d.ts +4 -10
  420. package/dist/lib/runsExplorer/loader.js +32 -197
  421. package/dist/lib/runsExplorer/mine.d.ts +1 -23
  422. package/dist/lib/runsExplorer/mine.js +3 -31
  423. package/dist/lib/runsExplorer/rows.d.ts +17 -26
  424. package/dist/lib/runsExplorer/rows.js +68 -105
  425. package/dist/lib/runsExplorer/run.d.ts +0 -2
  426. package/dist/lib/runsExplorer/run.js +6 -5
  427. package/dist/lib/runsExplorer/sources.d.ts +5 -4
  428. package/dist/lib/runsExplorer/sources.js +9 -10
  429. package/dist/lib/runsExplorer/suite.d.ts +3 -6
  430. package/dist/lib/runsExplorer/suite.js +18 -29
  431. package/dist/lib/runsExplorer/testFixtures.d.ts +4 -43
  432. package/dist/lib/runsExplorer/testFixtures.js +37 -129
  433. package/dist/lib/runsExplorer/views/compareView.js +10 -7
  434. package/dist/lib/runsExplorer/views/explorerView.d.ts +1 -0
  435. package/dist/lib/runsExplorer/views/runsTableView.js +57 -23
  436. package/dist/lib/runsExplorer/views/tableState.js +4 -5
  437. package/dist/lib/runsExplorer/views/testsTableView.js +26 -7
  438. package/dist/lib/runsExplorer/views/trendView.js +16 -5
  439. package/dist/lib/runtime/abortedResult.js +2 -4
  440. package/dist/lib/runtime/agency.js +4 -6
  441. package/dist/lib/runtime/agencyFunction.js +15 -16
  442. package/dist/lib/runtime/asyncContext.js +1 -3
  443. package/dist/lib/runtime/builtinPolicies.d.ts +2 -1
  444. package/dist/lib/runtime/builtinPolicies.js +25 -6
  445. package/dist/lib/runtime/call.js +3 -8
  446. package/dist/lib/runtime/callDepth.js +1 -1
  447. package/dist/lib/runtime/cliInterruptResolution.js +1 -1
  448. package/dist/lib/runtime/configOverrides.js +1 -4
  449. package/dist/lib/runtime/debugger.js +1 -3
  450. package/dist/lib/runtime/deterministicClient.js +6 -7
  451. package/dist/lib/runtime/guard.js +1 -3
  452. package/dist/lib/runtime/guardTripInterrupt.js +2 -4
  453. package/dist/lib/runtime/index.d.ts +4 -4
  454. package/dist/lib/runtime/index.js +3 -3
  455. package/dist/lib/runtime/interruptPrompts.js +2 -9
  456. package/dist/lib/runtime/interrupts.js +30 -10
  457. package/dist/lib/runtime/invocationOptions.d.ts +10 -5
  458. package/dist/lib/runtime/invocationOptions.js +12 -5
  459. package/dist/lib/runtime/invocationUsage.js +59 -12
  460. package/dist/lib/runtime/ipc.d.ts +6 -4
  461. package/dist/lib/runtime/ipc.js +80 -23
  462. package/dist/lib/runtime/llmClient.js +53 -7
  463. package/dist/lib/runtime/llmDispatch.d.ts +74 -0
  464. package/dist/lib/runtime/llmDispatch.js +179 -0
  465. package/dist/lib/runtime/llmRetry.js +12 -2
  466. package/dist/lib/runtime/memory/embeddings.js +1 -1
  467. package/dist/lib/runtime/memory/extraction.js +1 -2
  468. package/dist/lib/runtime/memory/index.d.ts +1 -1
  469. package/dist/lib/runtime/memory/manager.js +8 -20
  470. package/dist/lib/runtime/memory/retrieval.js +31 -4
  471. package/dist/lib/runtime/memory/store.js +2 -5
  472. package/dist/lib/runtime/node.d.ts +1 -0
  473. package/dist/lib/runtime/node.js +13 -7
  474. package/dist/lib/runtime/policy.d.ts +7 -0
  475. package/dist/lib/runtime/policy.js +69 -1
  476. package/dist/lib/runtime/prompt.d.ts +2 -37
  477. package/dist/lib/runtime/prompt.js +169 -316
  478. package/dist/lib/runtime/providerModules.js +4 -1
  479. package/dist/lib/runtime/replyAttachments.js +2 -2
  480. package/dist/lib/runtime/result.js +13 -5
  481. package/dist/lib/runtime/revivers/functionRefReviver.js +6 -8
  482. package/dist/lib/runtime/revivers/taggedReviver.js +1 -1
  483. package/dist/lib/runtime/runBatch.js +3 -9
  484. package/dist/lib/runtime/runner.js +9 -26
  485. package/dist/lib/runtime/simpleOpenAIClient.js +1 -1
  486. package/dist/lib/runtime/state/checkpointStore.js +7 -3
  487. package/dist/lib/runtime/state/context.js +10 -5
  488. package/dist/lib/runtime/state/globalStore.js +3 -5
  489. package/dist/lib/runtime/state/messageThread.js +2 -6
  490. package/dist/lib/runtime/state/pendingPromiseStore.js +1 -2
  491. package/dist/lib/runtime/state/stateStack.js +7 -18
  492. package/dist/lib/runtime/state/tagSymbol.js +1 -2
  493. package/dist/lib/runtime/state/threadStore.js +2 -4
  494. package/dist/lib/runtime/streaming.js +1 -1
  495. package/dist/lib/runtime/subprocess-bootstrap.js +10 -6
  496. package/dist/lib/runtime/template/explainMismatch.js +1 -1
  497. package/dist/lib/runtime/template/fill.js +2 -2
  498. package/dist/lib/runtime/template/synthesizeType.js +2 -4
  499. package/dist/lib/runtime/threadRepair.js +1 -3
  500. package/dist/lib/runtime/toolLoopGuards.d.ts +38 -0
  501. package/dist/lib/runtime/toolLoopGuards.js +100 -0
  502. package/dist/lib/runtime/trace/contentAddressableStore.js +1 -5
  503. package/dist/lib/runtime/trace/eventLog.js +5 -11
  504. package/dist/lib/runtime/trace/traceWriter.js +4 -1
  505. package/dist/lib/runtime/turnBoundary.js +2 -3
  506. package/dist/lib/serve/discovery.js +2 -4
  507. package/dist/lib/serve/http/adapter.js +3 -1
  508. package/dist/lib/serve/mcp/adapter.js +39 -9
  509. package/dist/lib/serve/testOutcome.js +16 -2
  510. package/dist/lib/statelog/agentName.d.ts +14 -0
  511. package/dist/lib/statelog/agentName.js +34 -0
  512. package/dist/lib/statelog/parse.d.ts +16 -0
  513. package/dist/lib/statelog/parse.js +21 -9
  514. package/dist/lib/statelog/wireAccessors.js +1 -3
  515. package/dist/lib/statelogClient.d.ts +12 -4
  516. package/dist/lib/statelogClient.js +12 -7
  517. package/dist/lib/stdlib/abortable.js +12 -4
  518. package/dist/lib/stdlib/agency.d.ts +31 -5
  519. package/dist/lib/stdlib/agency.js +80 -19
  520. package/dist/lib/stdlib/agencyEval.d.ts +3 -4
  521. package/dist/lib/stdlib/agencyEval.js +3 -4
  522. package/dist/lib/stdlib/args.js +13 -26
  523. package/dist/lib/stdlib/assertContained.d.ts +8 -0
  524. package/dist/lib/stdlib/assertContained.js +1 -1
  525. package/dist/lib/stdlib/aws/client.js +1 -3
  526. package/dist/lib/stdlib/aws/s3.js +1 -3
  527. package/dist/lib/stdlib/aws/sigv4.js +2 -3
  528. package/dist/lib/stdlib/builtins.d.ts +1 -1
  529. package/dist/lib/stdlib/builtins.js +28 -11
  530. package/dist/lib/stdlib/calendar.js +7 -7
  531. package/dist/lib/stdlib/cli.js +45 -68
  532. package/dist/lib/stdlib/clipboard.js +2 -4
  533. package/dist/lib/stdlib/date.js +1 -3
  534. package/dist/lib/stdlib/email.js +6 -8
  535. package/dist/lib/stdlib/fs.d.ts +2 -0
  536. package/dist/lib/stdlib/fs.js +4 -6
  537. package/dist/lib/stdlib/gitCore.js +5 -5
  538. package/dist/lib/stdlib/http.js +2 -3
  539. package/dist/lib/stdlib/image.js +1 -3
  540. package/dist/lib/stdlib/keyring.js +18 -28
  541. package/dist/lib/stdlib/layout/ansi.js +4 -1
  542. package/dist/lib/stdlib/layout/axis.js +6 -2
  543. package/dist/lib/stdlib/layout/barchart.js +16 -6
  544. package/dist/lib/stdlib/layout/block.js +16 -12
  545. package/dist/lib/stdlib/layout/border.js +45 -11
  546. package/dist/lib/stdlib/layout/render.js +10 -2
  547. package/dist/lib/stdlib/layout/table.js +22 -18
  548. package/dist/lib/stdlib/layout.js +26 -7
  549. package/dist/lib/stdlib/llm.d.ts +2 -0
  550. package/dist/lib/stdlib/llm.js +4 -1
  551. package/dist/lib/stdlib/localModels.d.ts +14 -4
  552. package/dist/lib/stdlib/localModels.js +222 -74
  553. package/dist/lib/stdlib/markdown.js +24 -50
  554. package/dist/lib/stdlib/mcp.js +4 -1
  555. package/dist/lib/stdlib/oauth.js +11 -9
  556. package/dist/lib/stdlib/policy.d.ts +1 -1
  557. package/dist/lib/stdlib/policy.js +1 -1
  558. package/dist/lib/stdlib/prepareContainedPath.d.ts +21 -0
  559. package/dist/lib/stdlib/prepareContainedPath.js +105 -0
  560. package/dist/lib/stdlib/shell.js +4 -13
  561. package/dist/lib/stdlib/sms.js +2 -2
  562. package/dist/lib/stdlib/speech.js +1 -2
  563. package/dist/lib/stdlib/statelog.d.ts +2 -0
  564. package/dist/lib/stdlib/statelog.js +11 -8
  565. package/dist/lib/stdlib/syntax-themes.js +43 -7
  566. package/dist/lib/stdlib/syntax.js +2 -3
  567. package/dist/lib/stdlib/thread.js +9 -19
  568. package/dist/lib/stdlib/threads.js +4 -4
  569. package/dist/lib/stdlib/ui.js +1 -1
  570. package/dist/lib/stdlib/validators.js +7 -21
  571. package/dist/lib/symbolTable.js +4 -8
  572. package/dist/lib/testFormat/schema.d.ts +123 -0
  573. package/dist/lib/testFormat/schema.js +319 -0
  574. package/dist/lib/testFormat/verdict.d.ts +24 -0
  575. package/dist/lib/testFormat/verdict.js +56 -0
  576. package/dist/lib/tui/colors.js +57 -15
  577. package/dist/lib/tui/layout.js +1 -1
  578. package/dist/lib/tui/output/terminal.js +8 -2
  579. package/dist/lib/tui/render/ansi.js +2 -10
  580. package/dist/lib/tui/render/plaintext.js +4 -1
  581. package/dist/lib/tui/render/renderer.js +5 -8
  582. package/dist/lib/tui/screen.js +4 -1
  583. package/dist/lib/tui/scrollList.js +1 -3
  584. package/dist/lib/tui/styleParser.js +44 -10
  585. package/dist/lib/tui/table.js +3 -1
  586. package/dist/lib/typeChecker/assignability.js +15 -30
  587. package/dist/lib/typeChecker/builtins.js +4 -0
  588. package/dist/lib/typeChecker/checker.js +2 -6
  589. package/dist/lib/typeChecker/conflictingMarkers.js +1 -3
  590. package/dist/lib/typeChecker/flow.js +1 -2
  591. package/dist/lib/typeChecker/flowBuilder.js +9 -9
  592. package/dist/lib/typeChecker/handlerParamTyping.js +1 -3
  593. package/dist/lib/typeChecker/inference.js +2 -5
  594. package/dist/lib/typeChecker/matchExhaustiveness.js +1 -3
  595. package/dist/lib/typeChecker/missingImportDiagnostic.js +6 -1
  596. package/dist/lib/typeChecker/narrowing.js +2 -4
  597. package/dist/lib/typeChecker/paramDefaultOrder.js +1 -3
  598. package/dist/lib/typeChecker/primitiveMembers.js +183 -70
  599. package/dist/lib/typeChecker/recordLike.js +1 -3
  600. package/dist/lib/typeChecker/resolveCall.js +1 -1
  601. package/dist/lib/typeChecker/scopes.js +4 -13
  602. package/dist/lib/typeChecker/suppression.js +1 -3
  603. package/dist/lib/typeChecker/synthesizer.js +29 -40
  604. package/dist/lib/typeChecker/templateNames.js +1 -3
  605. package/dist/lib/typeChecker/toolBlockBinding.js +1 -3
  606. package/dist/lib/typeChecker/typeCases.js +7 -1
  607. package/dist/lib/typeChecker/typeKey.js +1 -1
  608. package/dist/lib/typeChecker/typeWalker.js +1 -1
  609. package/dist/lib/typeChecker/types.d.ts +1 -1
  610. package/dist/lib/typeChecker/undefinedFunctionDiagnostic.js +5 -3
  611. package/dist/lib/typeChecker/undefinedVariableDiagnostic.js +1 -1
  612. package/dist/lib/typeChecker/utils.js +1 -1
  613. package/dist/lib/typeChecker/validateStaticInit.js +1 -1
  614. package/dist/lib/typeChecker/valueParamSubstitution.js +4 -7
  615. package/dist/lib/types/access.d.ts +2 -2
  616. package/dist/lib/types/binop.js +5 -5
  617. package/dist/lib/types/hole.js +1 -3
  618. package/dist/lib/types/importStatement.js +1 -1
  619. package/dist/lib/utils/docStringText.js +1 -3
  620. package/dist/lib/utils/envfile.js +1 -4
  621. package/dist/lib/utils/expressionSlots.js +5 -7
  622. package/dist/lib/utils/findRecursively.js +1 -2
  623. package/dist/lib/utils/formatType.js +1 -2
  624. package/dist/lib/utils/node.js +18 -16
  625. package/dist/lib/utils/ownProperty.d.ts +10 -0
  626. package/dist/lib/utils/ownProperty.js +12 -0
  627. package/dist/lib/utils/readContainedFile.d.ts +6 -0
  628. package/dist/lib/utils/readContainedFile.js +49 -0
  629. package/dist/lib/utils/termcolors.js +4 -14
  630. package/dist/lib/utils.d.ts +14 -0
  631. package/dist/lib/utils.js +63 -0
  632. package/dist/scripts/agency.js +225 -158
  633. package/package.json +6 -3
  634. package/stdlib/agency.agency +476 -69
  635. package/stdlib/agency.js +5185 -1349
  636. package/stdlib/agents/agency/coding.agency +73 -33
  637. package/stdlib/agents/agency/coding.js +119 -65
  638. package/stdlib/agents/coding.agency +2 -2
  639. package/stdlib/agents/coding.js +2 -2
  640. package/stdlib/agents/lib/toolkits.agency +14 -8
  641. package/stdlib/agents/lib/toolkits.js +18 -20
  642. package/stdlib/agents/verifier.agency +5 -1
  643. package/stdlib/agents/verifier.js +26 -7
  644. package/stdlib/docs/cli/eval.md +136 -273
  645. package/stdlib/docs/cli/local.md +2 -1
  646. package/stdlib/docs/cli/logs.md +32 -0
  647. package/stdlib/docs/guide/eval-basics.md +128 -0
  648. package/stdlib/docs/guide/graders.md +81 -0
  649. package/stdlib/docs/guide/observability.md +4 -2
  650. package/stdlib/docs/guide/suites.md +99 -0
  651. package/stdlib/docs/guide/testing.md +2 -2
  652. package/stdlib/docs/stdlib/agency.md +268 -50
  653. package/stdlib/docs/stdlib/agents/agency/coding.md +14 -7
  654. package/stdlib/docs/stdlib/agents/lib/toolkits.md +22 -17
  655. package/stdlib/docs/stdlib/agents/verifier.md +3 -1
  656. package/stdlib/docs/stdlib/fs.md +8 -6
  657. package/stdlib/docs/stdlib/index.md +45 -37
  658. package/stdlib/docs/stdlib/llm.md +11 -10
  659. package/stdlib/docs/stdlib/policy.md +15 -12
  660. package/stdlib/docs/stdlib/safeBash/actions.md +65 -11
  661. package/stdlib/docs/stdlib/safeBash.md +26 -26
  662. package/stdlib/docs/stdlib/statelog.md +16 -10
  663. package/stdlib/fs.agency +14 -7
  664. package/stdlib/fs.js +60 -13
  665. package/stdlib/index.agency +41 -16
  666. package/stdlib/index.js +216 -35
  667. package/stdlib/llm.agency +1 -0
  668. package/stdlib/llm.js +2 -2
  669. package/stdlib/policy.agency +18 -0
  670. package/stdlib/policy.js +50 -18
  671. package/stdlib/safeBash/actions.agency +26 -1
  672. package/stdlib/safeBash/actions.js +248 -3
  673. package/stdlib/safeBash.agency +133 -52
  674. package/stdlib/safeBash.js +3645 -1918
  675. package/stdlib/statelog.agency +9 -3
  676. package/stdlib/statelog.js +5 -1
  677. package/dist/lib/agents/agency-agent/code.js +0 -532
  678. package/dist/lib/agents/agency-agent/lib/coordinator.agency +0 -373
  679. package/dist/lib/agents/agency-agent/research.js +0 -311
  680. package/dist/lib/agents/agency-agent/subagents/verify.js +0 -954
  681. package/dist/lib/agents/agency-agent/toolWiring.js +0 -696
  682. package/dist/lib/cli/eval/ingest.d.ts +0 -40
  683. package/dist/lib/cli/eval/ingest.js +0 -136
  684. package/dist/lib/cli/evalExtract.d.ts +0 -8
  685. package/dist/lib/cli/evalExtract.js +0 -39
  686. package/dist/lib/eval/grading/recordGrading.d.ts +0 -12
  687. package/dist/lib/eval/grading/recordGrading.js +0 -27
  688. package/dist/lib/eval/label/annotations.d.ts +0 -53
  689. package/dist/lib/eval/label/annotations.js +0 -92
  690. package/dist/lib/eval/label/corpus.d.ts +0 -18
  691. package/dist/lib/eval/label/corpus.js +0 -34
  692. package/dist/lib/eval/label/jsonl.d.ts +0 -93
  693. package/dist/lib/eval/label/jsonl.js +0 -202
  694. package/dist/lib/eval/label/load/discoverFiles.d.ts +0 -25
  695. package/dist/lib/eval/label/load/discoverFiles.js +0 -59
  696. package/dist/lib/eval/label/load/eligibility.d.ts +0 -17
  697. package/dist/lib/eval/label/load/eligibility.js +0 -46
  698. package/dist/lib/eval/label/load/files.d.ts +0 -18
  699. package/dist/lib/eval/label/load/files.js +0 -37
  700. package/dist/lib/eval/label/load/format.d.ts +0 -14
  701. package/dist/lib/eval/label/load/format.js +0 -42
  702. package/dist/lib/eval/label/load/index.d.ts +0 -38
  703. package/dist/lib/eval/label/load/index.js +0 -91
  704. package/dist/lib/eval/label/load/json.d.ts +0 -14
  705. package/dist/lib/eval/label/load/json.js +0 -49
  706. package/dist/lib/eval/label/load/run.d.ts +0 -41
  707. package/dist/lib/eval/label/load/run.js +0 -173
  708. package/dist/lib/eval/label/load/types.d.ts +0 -30
  709. package/dist/lib/eval/label/load/types.js +0 -11
  710. package/dist/lib/eval/label/lock.d.ts +0 -27
  711. package/dist/lib/eval/label/occurrences.d.ts +0 -17
  712. package/dist/lib/eval/label/occurrences.js +0 -33
  713. package/dist/lib/eval/label/project.d.ts +0 -14
  714. package/dist/lib/eval/label/project.js +0 -15
  715. package/dist/lib/eval/label/runFixture.d.ts +0 -24
  716. package/dist/lib/eval/label/runFixture.js +0 -57
  717. package/dist/lib/eval/label/store.d.ts +0 -77
  718. package/dist/lib/eval/label/store.js +0 -408
  719. package/dist/lib/eval/parseJsonl.d.ts +0 -20
  720. package/dist/lib/eval/parseJsonl.js +0 -57
  721. package/dist/lib/eval/readRun.d.ts +0 -13
  722. package/dist/lib/eval/readRun.js +0 -81
  723. package/dist/lib/eval/runArtifacts.d.ts +0 -84
  724. package/dist/lib/eval/runArtifacts.js +0 -198
  725. package/dist/lib/runsExplorer/readRunSummary.d.ts +0 -23
  726. package/dist/lib/runsExplorer/readRunSummary.js +0 -61
  727. /package/dist/lib/agents/agency-agent/{prompts → brains/coordinator/prompts}/codeSample.agency +0 -0
  728. /package/dist/lib/agents/agency-agent/{prompts → brains/coordinator/prompts}/design.md +0 -0
  729. /package/dist/lib/agents/agency-agent/{prompts → brains/coordinator/prompts}/main-large.md +0 -0
  730. /package/dist/lib/agents/agency-agent/{prompts → brains/coordinator/prompts}/main-small.md +0 -0
  731. /package/dist/lib/agents/agency-agent/{prompts → brains/coordinator/prompts}/oneShot.md +0 -0
  732. /package/dist/lib/agents/agency-agent/{prompts → brains/coordinator/prompts}/plan.md +0 -0
  733. /package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/brainstorm.agency +0 -0
  734. /package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/research.agency +0 -0
  735. /package/dist/lib/agents/agency-agent/{subagents → brains/coordinator/subagents}/review.agency +0 -0
  736. /package/dist/lib/agents/agency-agent/{tests → brains/coordinator/tests}/brainstorm.agency +0 -0
  737. /package/dist/lib/agents/agency-agent/{tests → brains/coordinator/tests}/brainstorm.test.json +0 -0
  738. /package/dist/lib/agents/agency-agent/{tests → brains/coordinator/tests}/supervisor.agency +0 -0
  739. /package/dist/lib/agents/agency-agent/{tests → brains/coordinator/tests}/supervisor.test.json +0 -0
  740. /package/dist/lib/agents/agency-agent/{tests → brains/coordinator/tests}/toolWiring.agency +0 -0
  741. /package/dist/lib/agents/agency-agent/{tests → brains/coordinator/tests}/toolWiring.test.json +0 -0
@@ -29,7 +29,7 @@ export type EvalTarget = {
29
29
  label: string;
30
30
  };
31
31
  /** Resolve the runner-side agent choice. Exactly one of --agent /
32
- * --agent-cmd; the command's {task} placeholder is validated here, before
32
+ * --agent-cmd; the command's {input} placeholder is validated here, before
33
33
  * any run. Commands come ONLY from these flags, never from suite content —
34
34
  * suites can be remote git sources, and a suite that named its own command
35
35
  * would be remote code execution. */
@@ -38,15 +38,20 @@ export declare function resolveEvalTarget(opts: {
38
38
  agentCmd?: string;
39
39
  }): EvalTarget;
40
40
  /**
41
- * Fail fast when the entry node cannot receive a task: eval delivers the
42
- * input's task as the node's single positional parameter, so the node must
43
- * take exactly one. The subprocess bootstrap enforces the same rule at run
44
- * time (resolveNodeCallArgs), but by then a workdir has been seeded and the
45
- * agent compiled and the optimizer would pay that once per candidate.
46
- * A misconfigured agent should cost one error, not a suite of run failures.
41
+ * Fail fast when the agent's shape does not match what the tests deliver.
42
+ * A test's input reaches a file agent as the entry node's single positional
43
+ * parameter and a command agent as `{input}`; a test with no input reaches a
44
+ * node that takes none / a command with no placeholder. Within one suite the
45
+ * tests must agree (all carry an input, or none does), so the agent has one
46
+ * shape to be. Checked before any workdir is seeded or agent compiled: a
47
+ * mis-shaped agent is a configuration error, not a per-test run failure —
48
+ * and the optimizer would pay it once per candidate. The subprocess
49
+ * bootstrap re-checks the file case at run time (resolveNodeCallArgs).
47
50
  *
48
- * Best-effort: an unreadable or unparseable file, or a node defined
49
- * elsewhere than the entry file, is left for compile/run to report with
50
- * better errors than a pre-parse could.
51
+ * The file check is best-effort: an unreadable or unparseable file, or a
52
+ * node defined elsewhere than the entry file, is left for compile/run to
53
+ * report with better errors than a pre-parse could.
51
54
  */
52
- export declare function assertEvalEntryNodeTakesOneParameter(agentFile: string, node: string): void;
55
+ export declare function assertTargetMatchesInputs(target: EvalTarget, tests: {
56
+ input?: unknown;
57
+ }[]): void;
@@ -1,6 +1,6 @@
1
1
  import * as fs from "fs";
2
2
  import * as path from "path";
3
- import { MISSING_TASK_PLACEHOLDER_ERROR, TASK_PLACEHOLDER, tokenizeCommand } from "./eval/run/commandLine.js";
3
+ import { MISSING_INPUT_PLACEHOLDER_ERROR, INPUT_PLACEHOLDER, OLD_TASK_PLACEHOLDER, OLD_TASK_PLACEHOLDER_ERROR, tokenizeCommand, } from "./eval/run/commandLine.js";
4
4
  import { parseAgency } from "./parser.js";
5
5
  /**
6
6
  * How an agent target string is parsed and resolved. A target names an agent
@@ -28,56 +28,87 @@ export function resolveEvalRunTarget(target) {
28
28
  return { agentFile, node, label: `${agentFile}:${node}` };
29
29
  }
30
30
  /** Resolve the runner-side agent choice. Exactly one of --agent /
31
- * --agent-cmd; the command's {task} placeholder is validated here, before
31
+ * --agent-cmd; the command's {input} placeholder is validated here, before
32
32
  * any run. Commands come ONLY from these flags, never from suite content —
33
33
  * suites can be remote git sources, and a suite that named its own command
34
34
  * would be remote code execution. */
35
35
  export function resolveEvalTarget(opts) {
36
36
  if ((opts.agent ? 1 : 0) + (opts.agentCmd ? 1 : 0) !== 1) {
37
- throw new Error("Provide exactly one of --agent or --agent-cmd");
37
+ throw new Error("Provide exactly one of an agent file or --agent-cmd");
38
38
  }
39
39
  if (opts.agentCmd) {
40
- const tokens = tokenizeCommand(opts.agentCmd);
41
- if (!tokens.some((t) => t.includes(TASK_PLACEHOLDER))) {
42
- throw new Error(MISSING_TASK_PLACEHOLDER_ERROR);
43
- }
44
- return { kind: "command", tokens, label: opts.agentCmd };
40
+ return { kind: "command", tokens: tokenizeCommand(opts.agentCmd), label: opts.agentCmd };
45
41
  }
46
42
  return { kind: "file", ...resolveEvalRunTarget(opts.agent) };
47
43
  }
48
44
  /**
49
- * Fail fast when the entry node cannot receive a task: eval delivers the
50
- * input's task as the node's single positional parameter, so the node must
51
- * take exactly one. The subprocess bootstrap enforces the same rule at run
52
- * time (resolveNodeCallArgs), but by then a workdir has been seeded and the
53
- * agent compiled and the optimizer would pay that once per candidate.
54
- * A misconfigured agent should cost one error, not a suite of run failures.
45
+ * Fail fast when the agent's shape does not match what the tests deliver.
46
+ * A test's input reaches a file agent as the entry node's single positional
47
+ * parameter and a command agent as `{input}`; a test with no input reaches a
48
+ * node that takes none / a command with no placeholder. Within one suite the
49
+ * tests must agree (all carry an input, or none does), so the agent has one
50
+ * shape to be. Checked before any workdir is seeded or agent compiled: a
51
+ * mis-shaped agent is a configuration error, not a per-test run failure —
52
+ * and the optimizer would pay it once per candidate. The subprocess
53
+ * bootstrap re-checks the file case at run time (resolveNodeCallArgs).
55
54
  *
56
- * Best-effort: an unreadable or unparseable file, or a node defined
57
- * elsewhere than the entry file, is left for compile/run to report with
58
- * better errors than a pre-parse could.
55
+ * The file check is best-effort: an unreadable or unparseable file, or a
56
+ * node defined elsewhere than the entry file, is left for compile/run to
57
+ * report with better errors than a pre-parse could.
59
58
  */
60
- export function assertEvalEntryNodeTakesOneParameter(agentFile, node) {
59
+ export function assertTargetMatchesInputs(target, tests) {
60
+ const withInput = tests.filter((test) => test.input !== undefined).length;
61
+ if (withInput !== 0 && withInput !== tests.length) {
62
+ throw new Error(`Within one suite either every test provides an "input" or none does; ${withInput} of ${tests.length} do.`);
63
+ }
64
+ const hasInput = withInput > 0;
65
+ if (target.kind === "command") {
66
+ if (target.tokens.some((t) => t.includes(OLD_TASK_PLACEHOLDER))) {
67
+ throw new Error(OLD_TASK_PLACEHOLDER_ERROR);
68
+ }
69
+ const hasPlaceholder = target.tokens.some((t) => t.includes(INPUT_PLACEHOLDER));
70
+ if (hasInput && !hasPlaceholder)
71
+ throw new Error(MISSING_INPUT_PLACEHOLDER_ERROR);
72
+ if (!hasInput && hasPlaceholder) {
73
+ throw new Error(`--agent-cmd contains ${INPUT_PLACEHOLDER} but no test provides an input — pass --input <text> ` +
74
+ `(or give the tests an "input"), or drop the placeholder for an agent that takes none.`);
75
+ }
76
+ return;
77
+ }
78
+ const count = entryNodeParameterCount(target.agentFile, target.node);
79
+ if (count === undefined)
80
+ return;
81
+ const { names } = count;
82
+ if (hasInput && names.length !== 1) {
83
+ const detail = names.length === 0
84
+ ? `takes none — add one (it may go unused: \`node ${target.node}(task: string) { ... }\`), or drop the input if the agent needs none`
85
+ : `takes ${names.length} (${names.join(", ")}) — add a one-parameter adapter node`;
86
+ throw new Error(`eval delivers each test's input as the entry node's single parameter, ` +
87
+ `but node "${target.node}" in ${target.agentFile} ${detail}.`);
88
+ }
89
+ if (!hasInput && names.length !== 0) {
90
+ throw new Error(`node "${target.node}" in ${target.agentFile} takes ${names.length} (${names.join(", ")}) ` +
91
+ `but no test provides an input — pass --input <text> (or give the tests an "input"), ` +
92
+ `or make the node take no parameter.`);
93
+ }
94
+ }
95
+ /** The entry node's parameter names, or undefined when the file cannot be
96
+ * read/parsed or does not define the node (best-effort, see above). */
97
+ function entryNodeParameterCount(agentFile, node) {
61
98
  let source;
62
99
  try {
63
100
  source = fs.readFileSync(agentFile, "utf-8");
64
101
  }
65
102
  catch {
66
- return;
103
+ return undefined;
67
104
  }
68
105
  const parsed = parseAgency(source, {}, false);
69
106
  if (!parsed.success)
70
- return;
107
+ return undefined;
71
108
  for (const candidate of parsed.result.nodes) {
72
109
  if (candidate.type !== "graphNode" || candidate.nodeName !== node)
73
110
  continue;
74
- const count = candidate.parameters.length;
75
- if (count !== 1) {
76
- const detail = count === 0
77
- ? `takes none — add one (it may go unused: \`node ${node}(task: string) { ... }\`)`
78
- : `takes ${count} (${candidate.parameters.map((p) => p.name).join(", ")}) — add a one-parameter adapter node`;
79
- throw new Error(`eval delivers the input's task as the entry node's single parameter, ` +
80
- `but node "${node}" in ${agentFile} ${detail}.`);
81
- }
111
+ return { names: candidate.parameters.map((p) => p.name) };
82
112
  }
113
+ return undefined;
83
114
  }
@@ -1,141 +1,36 @@
1
- import { localModelsSupported, listModelNames } from "std::agency/local"
2
1
  import { parseArgs } from "std::args"
3
2
  import { map } from "std::array"
4
- import { today } from "std::date"
5
- import { generateImage } from "std::image"
6
- import { listHostedModels, hostedModelInfo, setLlmOptions } from "std::llm"
7
- import { setMemoryId, disableMemory } from "std::memory"
8
- import { basename, dirname } from "std::path"
9
- import {
10
- ScopedRuleFields,
11
- cliPolicyHandler,
12
- parsePolicyFile,
13
- setPolicy,
14
- minimalAutoApprovePolicy,
15
- recommendedAutoApprovePolicy,
16
- builtinPolicy,
17
- builtinPolicyNames,
18
- BUILTIN_POLICIES,
19
- } from "std::policy"
20
- import { exists } from "std::shell"
21
- import { commandsDir, expandSlash } from "std::skills"
22
- import { highlight } from "std::syntax"
3
+ import { setLlmOptions } from "std::llm"
4
+ import { evalOutput, evalValue, setAgentName } from "std::statelog"
23
5
  import { cwd, env, isTTY, readStdin, setTitle } from "std::system"
24
- import {
25
- Attachment,
26
- attachToReply,
27
- getCost,
28
- getModelCosts,
29
- image,
30
- systemMessage,
31
- } from "std::thread"
32
- import { chooseOption, ChoiceItem } from "std::ui"
6
+ import { getCost } from "std::thread"
33
7
  import {
34
8
  clearMessages,
35
9
  pushMessage,
36
10
  repl,
37
11
  clearScreen,
38
- clearHistory,
39
12
  } from "std::ui/cli"
40
13
 
14
+ import { brainByName, allBrains, brainFlagHelp } from "./brains/registry.agency"
15
+ import { agentNameFor } from "./lib/agentName.agency"
41
16
  import { parseAgentArgs } from "./lib/args.agency"
42
- import { detectAttachments, modalityFilter } from "./lib/attachments.agency"
43
- import { showCapabilities, editCapabilities } from "./lib/capabilitiesUi.agency"
44
- import { mergedPalette, projectCommands } from "./lib/commandPalette.agency"
45
- import {
46
- POLICY_PATH,
47
- SESSION_POLICY_PATH,
48
- HISTORY_PATH,
49
- ALWAYS_FIELDS,
50
- } from "./lib/config.agency"
51
- import {
52
- runTurn,
53
- setGroundingContext,
54
- loadAgentsMd,
55
- maybeEnableMemory,
56
- checkMainPrompts,
57
- START_AGENTS,
58
- } from "./lib/coordinator.agency"
59
17
  import { getHeader } from "./lib/header.agency"
60
- import { generateImageFile } from "./lib/images.agency"
61
- import { getMcpTools, maybeLoadMcp, mcpSlashCommand } from "./lib/mcp.agency"
62
- import { filterHostedModels, ModelFilters } from "./lib/modelFilters.agency"
63
- import {
64
- parseModelFlag,
65
- parseModelSpec,
66
- knownProviders,
67
- missingProviderEnvVar,
68
- Resolved,
69
- } from "./lib/models.agency"
70
- import {
71
- givePolicyChoice,
72
- printPolicyHelp,
73
- getPolicyForAgent,
74
- } from "./lib/policy.agency"
75
- import { startInteractive, renderAgentResponse } from "./lib/repl.agency"
76
- import {
77
- buildLayers,
78
- resolveAll,
79
- diffResolved,
80
- Ctx,
81
- SlotChange,
82
- } from "./lib/resolution.agency"
83
- import {
84
- configureSearch,
85
- setSearchBackend,
86
- getSearchBackend,
87
- availableBackendItems,
88
- } from "./lib/search.agency"
89
- import {
90
- Session,
91
- switchModel,
92
- reactToSlotChange,
93
- modelChoiceItems,
94
- parseModelsFilters,
95
- markMemoryEmbeddingsPinned,
96
- pickModelsForAgent,
97
- } from "./lib/session.agency"
98
- import {
99
- getCapabilitySettings,
100
- getModelSettings,
101
- loadSettings,
102
- saveSettings,
103
- } from "./lib/settings.agency"
104
- import { SLOTS } from "./lib/slots.agency"
18
+ import { maybeLoadMcp } from "./lib/mcp.agency"
19
+ import { printPolicyHelp } from "./lib/policy.agency"
20
+ import { startInteractive } from "./lib/repl.agency"
21
+ import { pickModelsForAgent, maybeEnableMemory } from "./lib/session.agency"
22
+ import { loadSettings } from "./lib/settings.agency"
105
23
  import { setDebug, setVerbose, setInteractive } from "./lib/trace.agency"
106
24
  import {
107
- truncate,
108
- formatArgs,
109
- formatToolResponse,
110
- retryReasonLabel,
111
- formatTurnFailure,
112
- } from "./lib/utils.agency"
113
- import { renderLLMCallResponse } from "./lib/utils/renderLLMCallResponse.agency"
114
- import {
115
- configureModels,
116
- configureLocalModel,
117
- enableAgentMemory,
118
- getResolvedSlots,
119
- applyResolved,
120
- promoteAll,
121
- currentProvider,
122
- resolveMaxToolCallRounds,
123
- getCapabilities,
124
- getCapabilitiesResolved,
125
- getCapabilityModelKey,
126
- getCapabilityProvider,
127
- refreshCapabilities,
128
- embeddingKeyStatus,
129
- memoryEnablePlan,
130
- overrideFromResolved,
131
- embeddingsOverride,
132
- providerEnvMissing,
133
- } from "./shared.agency"
134
- import { codeAgent, setCodeOneShot } from "./subagents/code.agency"
135
- import { explorerAgent } from "./subagents/explorer.agency"
136
- import { oracleAgent } from "./subagents/oracle.agency"
137
- import { researchAgent } from "./subagents/research.agency"
138
- import { reviewAgent } from "./subagents/review.agency"
25
+ setBrain,
26
+ runTurn,
27
+ runSession,
28
+ setPolicyArg,
29
+ resolveBrainName,
30
+ resolveStartTarget,
31
+ } from "./lib/turn.agency"
32
+ import { formatTurnFailure } from "./lib/utils.agency"
33
+ import { resolveMaxToolCallRounds, getCapabilities } from "./shared.agency"
139
34
 
140
35
 
141
36
  // UI mode select — one-line swap between the alt-screen TUI and the
@@ -146,44 +41,25 @@ import { reviewAgent } from "./subagents/review.agency"
146
41
  //
147
42
  //import { clearMessages, pushMessage, repl } from "std::ui"
148
43
 
149
- // The `--policy` argument (a built-in name or a policy-file path), or "" when
150
- // absent. CLI-owned: main() sets it, setupSession() reads it.
151
- let _policyArg: string = ""
152
-
153
-
154
- def setupSession(interactive: boolean): any {
155
- setAgentCwd(cwd())
156
-
157
- // Grounding: the LLM shouldn't have to ask where it is or what day it
158
- // is. Also load `AGENTS.md` if present.
159
- const projectContext = loadAgentsMd(cwd()) with approve
160
- const grounding = """
161
-
162
- Current date: ${today()}
163
- Current working directory: ${cwd()}
164
- ${projectContext}
165
- """
166
- setGroundingContext(grounding)
167
-
168
- const { policyFile, sessionPolicy } = getPolicyForAgent(_policyArg, interactive)
169
-
170
- return cliPolicyHandler(
171
- file: policyFile,
172
- fields: ALWAYS_FIELDS,
173
- policy: sessionPolicy,
174
- )
175
- }
176
-
177
44
  def oneShotAgent(target: string, prompt: string): string {
178
45
  setInteractive(false)
179
- const handler = setupSession(interactive: false)
180
- handle {
46
+ // Mark the input and reply in the statelog so a one-shot run is gradable:
47
+ // `agency eval grade` reads the agent's output from the trace's
48
+ // `evalOutputRecorded` events, not from stdout.
49
+ evalValue(prompt)
50
+ let reply = ""
51
+ runSession(false) {
181
52
  const result = try runTurn(target, prompt)
182
- return match(result) {
183
- success(r) => r
184
- failure(f) => formatTurnFailure("${f.error}")
53
+ // Not `match`: a match expression inside a block body keeps its value on
54
+ // the wrong stack, so `reply` would end up null (compiler bug).
55
+ if (result is success(r)) {
56
+ reply = r
57
+ } else if (result is failure(f)) {
58
+ reply = formatTurnFailure("${f.error}")
185
59
  }
186
- } with handler
60
+ }
61
+ evalOutput(reply)
62
+ return reply
187
63
  }
188
64
 
189
65
  /* A seeded turn is if the user invokes the Agency agent with
@@ -193,7 +69,7 @@ It means that agent starts with an initial prompt already there to respond to. *
193
69
  node main() {
194
70
  // Parse CLI flags first — `parseArgs` exits on --help / --version /
195
71
  // usage errors, before any handlers or the TUI are installed.
196
- const args = parseAgentArgs()
72
+ const args = parseAgentArgs(brainFlagHelp())
197
73
 
198
74
  // NOTE: --trace / --log / --agent-home are declared here only for
199
75
  // --help and so parseArgs accepts them. runBundledAgent extracts them from
@@ -208,8 +84,6 @@ node main() {
208
84
  setVerbose(true)
209
85
  }
210
86
 
211
- checkMainPrompts()
212
-
213
87
  // `--policy` is an optional-value flag: a bare `--policy` (no name or
214
88
  // path) prints the usage + the built-in policies and exits, rather than
215
89
  // silently doing nothing.
@@ -217,7 +91,32 @@ node main() {
217
91
  printPolicyHelp()
218
92
  process.exit(0)
219
93
  }
220
- _policyArg = args.flags.policy ?? ""
94
+ setPolicyArg(args.flags.policy ?? "")
95
+
96
+ const brainName = resolveBrainName(args.flags.brain ?? null, loadSettings())
97
+ const brain = brainByName(brainName)
98
+ if (brain == null) {
99
+ const names = map(allBrains(), \entry -> entry.name).join(", ")
100
+ print(color.red("Unknown --brain value: ${brainName}. Valid: ${names}"))
101
+ process.exit(1)
102
+ return
103
+ }
104
+ setBrain(brain)
105
+ // Group this trace under its brain wherever runs are compared.
106
+ setAgentName(agentNameFor(brain))
107
+
108
+ // Validate the --agent target up front, before any model or session setup.
109
+ const requestedStartTarget = args.flags.agent ?? ""
110
+ const resolvedStartTarget = resolveStartTarget(brain, requestedStartTarget)
111
+ let startAgent = ""
112
+ if (resolvedStartTarget == null) {
113
+ const validTargets = ["main", ...brain.startTargets].join(", ")
114
+ print(color.red("Unknown --agent value: ${requestedStartTarget}. Valid for the ${brain.name} brain: ${validTargets}"))
115
+ process.exit(1)
116
+ return
117
+ } else {
118
+ startAgent = resolvedStartTarget
119
+ }
221
120
 
222
121
  pickModelsForAgent(args)
223
122
 
@@ -234,16 +133,6 @@ node main() {
234
133
  // would otherwise look like a flag.
235
134
  const positionalQuery = args.positionals.join(" ")
236
135
  const hasQuery = positionalQuery != ""
237
- const startAgent = args.flags.agent ?? ""
238
- // Validate the target subagent name up front (empty = coordinator).
239
- if (startAgent != "" && !START_AGENTS.includes(startAgent)) {
240
- print(
241
- color.red(
242
- "Unknown --agent value: ${startAgent}. Valid: ${START_AGENTS.join(", ")}",
243
- ),
244
- )
245
- process.exit(1)
246
- }
247
136
 
248
137
  const wantInteractive = args.flags.interactive
249
138
 
@@ -275,11 +164,7 @@ node main() {
275
164
  })
276
165
  }
277
166
 
278
- // One-shot autonomy: tell the code subagent there is no human to answer
279
- // questions and no next turn, so it must drive to a finished artifact.
280
- // Set before any dispatch so both the pinned `--agent code` path and the
281
- // coordinator (which calls codeAgent as a tool) pick it up.
282
- setCodeOneShot(isOneShot)
167
+ setAgentCwd(cwd())
283
168
 
284
169
  if (isOneShot) {
285
170
  let prompt = positionalQuery
@@ -296,8 +181,9 @@ node main() {
296
181
  } else {
297
182
  setTitle("Agency Agent")
298
183
  clearScreen()
299
- print(getHeader())
300
- const handler = setupSession(interactive: true)
301
- startInteractive(handler, startAgent, positionalQuery)
184
+ print(getHeader(brain.name))
185
+ runSession(true) {
186
+ startInteractive(startAgent, positionalQuery)
187
+ }
302
188
  }
303
189
  }