agency-lang 0.19.3 → 0.21.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 (302) hide show
  1. package/dist/lib/agentTarget.d.ts +3 -0
  2. package/dist/lib/agentTarget.js +7 -4
  3. package/dist/lib/agents/agency-agent/agent.agency +7 -14
  4. package/dist/lib/agents/agency-agent/agent.js +162 -111
  5. package/dist/lib/agents/agency-agent/brains/coordinator/coordinator.agency +49 -8
  6. package/dist/lib/agents/agency-agent/brains/coordinator/coordinator.js +488 -85
  7. package/dist/lib/agents/agency-agent/brains/coordinator/learn.agency +59 -0
  8. package/dist/lib/agents/agency-agent/brains/coordinator/learn.js +669 -0
  9. package/dist/lib/agents/agency-agent/brains/coordinator/lib/bundledSkills.agency +26 -0
  10. package/dist/lib/agents/agency-agent/brains/coordinator/lib/bundledSkills.js +401 -0
  11. package/dist/lib/agents/agency-agent/brains/coordinator/presetTools.agency +122 -0
  12. package/dist/lib/agents/agency-agent/brains/coordinator/presetTools.js +1545 -0
  13. package/dist/lib/agents/agency-agent/brains/coordinator/prompts/codeSample.js +9 -2
  14. package/dist/lib/agents/agency-agent/brains/coordinator/prompts/main-large.md +28 -0
  15. package/dist/lib/agents/agency-agent/brains/coordinator/prompts/main-small.md +14 -0
  16. package/dist/lib/agents/agency-agent/brains/coordinator/skills/presets.md +60 -0
  17. package/dist/lib/agents/agency-agent/brains/coordinator/subagents/code.agency +9 -2
  18. package/dist/lib/agents/agency-agent/brains/coordinator/subagents/code.js +19 -5
  19. package/dist/lib/agents/agency-agent/lib/agentSource.agency +11 -0
  20. package/dist/lib/agents/agency-agent/lib/agentSource.js +230 -0
  21. package/dist/lib/agents/agency-agent/lib/args.agency +4 -0
  22. package/dist/lib/agents/agency-agent/lib/args.js +6 -2
  23. package/dist/lib/agents/agency-agent/lib/commandPalette.agency +2 -0
  24. package/dist/lib/agents/agency-agent/lib/commandPalette.js +4 -2
  25. package/dist/lib/agents/agency-agent/lib/config.agency +7 -0
  26. package/dist/lib/agents/agency-agent/lib/config.js +119 -3
  27. package/dist/lib/agents/agency-agent/lib/header.agency +5 -0
  28. package/dist/lib/agents/agency-agent/lib/header.js +40 -7
  29. package/dist/lib/agents/agency-agent/lib/learned.agency +104 -0
  30. package/dist/lib/agents/agency-agent/lib/learned.js +1587 -0
  31. package/dist/lib/agents/agency-agent/lib/modelRequest.agency +243 -0
  32. package/dist/lib/agents/agency-agent/lib/modelRequest.js +2701 -0
  33. package/dist/lib/agents/agency-agent/lib/presetRules.agency +193 -0
  34. package/dist/lib/agents/agency-agent/lib/presetRules.js +3423 -0
  35. package/dist/lib/agents/agency-agent/lib/presets.agency +377 -0
  36. package/dist/lib/agents/agency-agent/lib/presets.js +5259 -0
  37. package/dist/lib/agents/agency-agent/lib/repl.agency +68 -15
  38. package/dist/lib/agents/agency-agent/lib/repl.js +932 -193
  39. package/dist/lib/agents/agency-agent/lib/resolution.agency +27 -36
  40. package/dist/lib/agents/agency-agent/lib/resolution.js +338 -170
  41. package/dist/lib/agents/agency-agent/lib/session.agency +217 -147
  42. package/dist/lib/agents/agency-agent/lib/session.js +2990 -1434
  43. package/dist/lib/agents/agency-agent/lib/settings.agency +69 -47
  44. package/dist/lib/agents/agency-agent/lib/settings.js +790 -231
  45. package/dist/lib/agents/agency-agent/lib/slashCommands/policy.agency +55 -0
  46. package/dist/lib/agents/agency-agent/lib/slashCommands/policy.js +828 -0
  47. package/dist/lib/agents/agency-agent/lib/toolLimits.agency +62 -0
  48. package/dist/lib/agents/agency-agent/lib/toolLimits.js +797 -0
  49. package/dist/lib/agents/agency-agent/lib/turn.agency +7 -0
  50. package/dist/lib/agents/agency-agent/lib/turn.js +103 -3
  51. package/dist/lib/agents/agency-agent/shared.agency +45 -75
  52. package/dist/lib/agents/agency-agent/shared.js +281 -291
  53. package/dist/lib/agents/eval/goalJudge.js +9 -2
  54. package/dist/lib/agents/eval/judge.js +31 -2
  55. package/dist/lib/agents/eval/judgePairwise.js +31 -2
  56. package/dist/lib/agents/eval/rubricJudge.js +9 -2
  57. package/dist/lib/agents/optimize/gepaReflect.js +31 -2
  58. package/dist/lib/agents/optimize/mutatePrompt.js +31 -2
  59. package/dist/lib/agents/policy/agent.js +9 -2
  60. package/dist/lib/agents/review/agent.js +9 -2
  61. package/dist/lib/analysis/interrupts.d.ts +1 -1
  62. package/dist/lib/backends/agencyGenerator.d.ts +1 -1
  63. package/dist/lib/backends/agencyGenerator.js +2 -2
  64. package/dist/lib/backends/typescriptBuilder.d.ts +1 -1
  65. package/dist/lib/backends/typescriptBuilder.js +26 -25
  66. package/dist/lib/backends/typescriptGenerator/builtins.js +1 -1
  67. package/dist/lib/backends/typescriptGenerator.d.ts +1 -1
  68. package/dist/lib/cli/agent.d.ts +1 -1
  69. package/dist/lib/cli/childEnv.d.ts +2 -0
  70. package/dist/lib/cli/childEnv.js +10 -5
  71. package/dist/lib/cli/commands.d.ts +14 -3
  72. package/dist/lib/cli/commands.js +28 -12
  73. package/dist/lib/cli/coverage.d.ts +1 -1
  74. package/dist/lib/cli/debug.d.ts +1 -1
  75. package/dist/lib/cli/deploy/bundle.d.ts +1 -1
  76. package/dist/lib/cli/deploy/deploy.d.ts +1 -1
  77. package/dist/lib/cli/doc.d.ts +1 -1
  78. package/dist/lib/cli/docLedger.d.ts +1 -1
  79. package/dist/lib/cli/doctor.d.ts +1 -1
  80. package/dist/lib/cli/eval/grade.d.ts +1 -1
  81. package/dist/lib/cli/eval/ls.d.ts +1 -1
  82. package/dist/lib/cli/eval/optimize.d.ts +1 -1
  83. package/dist/lib/cli/eval/run.d.ts +1 -1
  84. package/dist/lib/cli/help.js +1 -1
  85. package/dist/lib/cli/interrupts.d.ts +1 -1
  86. package/dist/lib/cli/literate.d.ts +1 -1
  87. package/dist/lib/cli/local.d.ts +10 -9
  88. package/dist/lib/cli/local.js +46 -30
  89. package/dist/lib/cli/localFlag.d.ts +1 -1
  90. package/dist/lib/cli/localServe.d.ts +34 -12
  91. package/dist/lib/cli/localServe.js +173 -45
  92. package/dist/lib/cli/logsView.d.ts +1 -1
  93. package/dist/lib/cli/mcp.d.ts +6 -6
  94. package/dist/lib/cli/mcp.js +30 -10
  95. package/dist/lib/cli/mlxServer.d.ts +5 -3
  96. package/dist/lib/cli/mlxServer.js +24 -9
  97. package/dist/lib/cli/mlxSpeechRules.py +261 -0
  98. package/dist/lib/cli/mlxSpeechServer.py +328 -0
  99. package/dist/lib/cli/modelFlag.d.ts +1 -1
  100. package/dist/lib/cli/moduleTypeWarning.d.ts +16 -0
  101. package/dist/lib/cli/moduleTypeWarning.js +67 -0
  102. package/dist/lib/cli/pack.d.ts +1 -1
  103. package/dist/lib/cli/policy.d.ts +1 -1
  104. package/dist/lib/cli/precompile.d.ts +1 -1
  105. package/dist/lib/cli/precompile.js +5 -16
  106. package/dist/lib/cli/remote/commands/util.d.ts +1 -1
  107. package/dist/lib/cli/remote/exportedEndpoints.d.ts +1 -1
  108. package/dist/lib/cli/review.d.ts +1 -1
  109. package/dist/lib/cli/runAgencyAgent.d.ts +1 -1
  110. package/dist/lib/cli/runBundledAgent.d.ts +1 -1
  111. package/dist/lib/cli/runBundledAgent.js +1 -1
  112. package/dist/lib/cli/serveLog.d.ts +17 -2
  113. package/dist/lib/cli/serveLog.js +23 -4
  114. package/dist/lib/cli/stageConfiguredAgent.js +1 -1
  115. package/dist/lib/cli/test.d.ts +1 -1
  116. package/dist/lib/cli/test.js +8 -21
  117. package/dist/lib/cli/util.d.ts +3 -2
  118. package/dist/lib/cli/util.js +8 -6
  119. package/dist/lib/cli/watch.d.ts +1 -1
  120. package/dist/lib/compiler/buildManifest.js +1 -1
  121. package/dist/lib/compiler/buildSession.d.ts +8 -1
  122. package/dist/lib/compiler/buildSession.js +13 -11
  123. package/dist/lib/compiler/compile.d.ts +1 -1
  124. package/dist/lib/compiler/compileClosure.d.ts +1 -1
  125. package/dist/lib/compiler/defaultSession.d.ts +1 -1
  126. package/dist/lib/compiler/depFingerprint.d.ts +1 -1
  127. package/dist/lib/compiler/manifestTracker.d.ts +1 -1
  128. package/dist/lib/compiler/splice/cache.d.ts +1 -1
  129. package/dist/lib/compiler/splice/eligibility.d.ts +1 -1
  130. package/dist/lib/compiler/splice/generatorEffects.d.ts +1 -1
  131. package/dist/lib/compiler/splice/runGenerator.d.ts +1 -1
  132. package/dist/lib/compiler/typecheck.d.ts +1 -1
  133. package/dist/lib/{config.d.ts → config/config.d.ts} +34 -18
  134. package/dist/lib/{config.js → config/config.js} +42 -68
  135. package/dist/lib/config/mcpServers.d.ts +30 -0
  136. package/dist/lib/config/mcpServers.js +79 -0
  137. package/dist/lib/config/merge.d.ts +13 -0
  138. package/dist/lib/config/merge.js +51 -0
  139. package/dist/lib/config/paths.d.ts +7 -0
  140. package/dist/lib/config/paths.js +62 -0
  141. package/dist/lib/config/public.d.ts +2 -0
  142. package/dist/lib/config/public.js +3 -0
  143. package/dist/lib/config/target.d.ts +30 -0
  144. package/dist/lib/config/target.js +64 -0
  145. package/dist/lib/constants.d.ts +6 -0
  146. package/dist/lib/constants.js +6 -0
  147. package/dist/lib/eval/grading/agencyRunner.d.ts +1 -1
  148. package/dist/lib/eval/grading/gradeRun.d.ts +1 -1
  149. package/dist/lib/eval/grading/gradeSuite.d.ts +1 -1
  150. package/dist/lib/eval/grading/gradingModule.d.ts +1 -1
  151. package/dist/lib/eval/run/batchBudget.d.ts +1 -1
  152. package/dist/lib/eval/run/runAgent.d.ts +1 -1
  153. package/dist/lib/eval/run/runSuite.d.ts +1 -1
  154. package/dist/lib/eval/run/seed.d.ts +1 -1
  155. package/dist/lib/eval/run/seed.js +2 -1
  156. package/dist/lib/eval/run/spawnRunner.js +1 -1
  157. package/dist/lib/eval/run/subprocess.d.ts +1 -1
  158. package/dist/lib/eval/run/subprocess.js +1 -1
  159. package/dist/lib/formatter.d.ts +1 -1
  160. package/dist/lib/index.d.ts +1 -1
  161. package/dist/lib/linter/registry.d.ts +1 -1
  162. package/dist/lib/logsViewer/conversation.d.ts +2 -0
  163. package/dist/lib/logsViewer/conversation.js +13 -2
  164. package/dist/lib/logsViewer/search.js +15 -0
  165. package/dist/lib/logsViewer/thresholds.js +1 -1
  166. package/dist/lib/logsViewer/treeRows.js +59 -14
  167. package/dist/lib/logsViewer/types.d.ts +1 -1
  168. package/dist/lib/logsViewer/views/treeReducer.js +7 -2
  169. package/dist/lib/lsp/diagnostics.d.ts +1 -1
  170. package/dist/lib/lsp/formatting.d.ts +1 -1
  171. package/dist/lib/lsp/server.js +13 -9
  172. package/dist/lib/lsp/workspace.d.ts +2 -1
  173. package/dist/lib/lsp/workspace.js +14 -5
  174. package/dist/lib/optimize/mutator.d.ts +1 -1
  175. package/dist/lib/optimize/mutator.js +1 -1
  176. package/dist/lib/optimize/optimizer.d.ts +1 -1
  177. package/dist/lib/parseCache.d.ts +1 -1
  178. package/dist/lib/parser.d.ts +1 -1
  179. package/dist/lib/preprocessors/expandSplices.d.ts +1 -1
  180. package/dist/lib/preprocessors/expandSplices.js +1 -1
  181. package/dist/lib/preprocessors/typescriptPreprocessor.d.ts +1 -1
  182. package/dist/lib/preprocessors/typescriptPreprocessor.js +1 -1
  183. package/dist/lib/runDirectory/codeIdentity.d.ts +1 -1
  184. package/dist/lib/runDirectory/codeIdentity.js +1 -1
  185. package/dist/lib/runtime/agencyFunction.d.ts +8 -0
  186. package/dist/lib/runtime/agencyFunction.js +18 -0
  187. package/dist/lib/runtime/builtinPolicies.js +65 -20
  188. package/dist/lib/runtime/cliEntry.d.ts +4 -1
  189. package/dist/lib/runtime/cliEntry.js +14 -2
  190. package/dist/lib/runtime/cliInterruptResolution.d.ts +2 -2
  191. package/dist/lib/runtime/configOverrides.d.ts +2 -2
  192. package/dist/lib/runtime/configOverrides.js +1 -1
  193. package/dist/lib/runtime/cost.d.ts +3 -1
  194. package/dist/lib/runtime/cost.js +3 -1
  195. package/dist/lib/runtime/costTelemetry.d.ts +2 -2
  196. package/dist/lib/runtime/costTelemetry.js +2 -2
  197. package/dist/lib/runtime/index.d.ts +1 -1
  198. package/dist/lib/runtime/interrupts.d.ts +6 -5
  199. package/dist/lib/runtime/interrupts.js +25 -23
  200. package/dist/lib/runtime/invocationOptions.d.ts +1 -1
  201. package/dist/lib/runtime/invocationUsage.d.ts +47 -20
  202. package/dist/lib/runtime/invocationUsage.js +104 -42
  203. package/dist/lib/runtime/ipc.d.ts +2 -2
  204. package/dist/lib/runtime/ipc.js +1 -1
  205. package/dist/lib/runtime/memory/manager.js +3 -4
  206. package/dist/lib/runtime/memory/types.d.ts +1 -1
  207. package/dist/lib/runtime/node.d.ts +4 -4
  208. package/dist/lib/runtime/node.js +20 -34
  209. package/dist/lib/runtime/pause.d.ts +2 -2
  210. package/dist/lib/runtime/policy.d.ts +3 -2
  211. package/dist/lib/runtime/policy.js +3 -2
  212. package/dist/lib/runtime/policyUpdate.d.ts +14 -0
  213. package/dist/lib/runtime/policyUpdate.js +50 -0
  214. package/dist/lib/runtime/recordPaidUsage.d.ts +3 -6
  215. package/dist/lib/runtime/recordPaidUsage.js +7 -13
  216. package/dist/lib/runtime/replyAttachments.js +1 -1
  217. package/dist/lib/runtime/resumeSetup.d.ts +7 -0
  218. package/dist/lib/runtime/resumeSetup.js +26 -0
  219. package/dist/lib/runtime/rewind.js +2 -6
  220. package/dist/lib/runtime/servedInvocationLifecycle.js +1 -1
  221. package/dist/lib/runtime/simpleOpenAIClient.js +1 -1
  222. package/dist/lib/runtime/state/checkpointStore.d.ts +6 -0
  223. package/dist/lib/runtime/state/checkpointStore.js +12 -0
  224. package/dist/lib/runtime/state/context.js +7 -3
  225. package/dist/lib/runtime/state/schemas.d.ts +2 -0
  226. package/dist/lib/runtime/state/schemas.js +1 -0
  227. package/dist/lib/runtime/subprocess-bootstrap.js +1 -1
  228. package/dist/lib/runtime/types.d.ts +9 -6
  229. package/dist/lib/runtime/utils.d.ts +2 -2
  230. package/dist/lib/runtime/utils.js +0 -1
  231. package/dist/lib/serve/http/adapter.d.ts +2 -3
  232. package/dist/lib/serve/http/adapter.js +0 -1
  233. package/dist/lib/serve/metadata.d.ts +1 -1
  234. package/dist/lib/serve/testOutcome.d.ts +2 -2
  235. package/dist/lib/serve/testOutcome.js +21 -24
  236. package/dist/lib/stdlib/abortReason.d.ts +5 -0
  237. package/dist/lib/stdlib/abortReason.js +11 -0
  238. package/dist/lib/stdlib/cli.d.ts +5 -0
  239. package/dist/lib/stdlib/cli.js +42 -10
  240. package/dist/lib/stdlib/embedding.js +0 -5
  241. package/dist/lib/stdlib/ffmpeg.d.ts +20 -0
  242. package/dist/lib/stdlib/ffmpeg.js +152 -0
  243. package/dist/lib/stdlib/image.js +1 -3
  244. package/dist/lib/stdlib/localModels.d.ts +27 -19
  245. package/dist/lib/stdlib/localModels.js +117 -67
  246. package/dist/lib/stdlib/mcp.d.ts +9 -9
  247. package/dist/lib/stdlib/mcp.js +2 -4
  248. package/dist/lib/stdlib/modelCatalog.d.ts +5 -1
  249. package/dist/lib/stdlib/modelCatalog.js +32 -0
  250. package/dist/lib/stdlib/policy.d.ts +1 -0
  251. package/dist/lib/stdlib/policy.js +1 -0
  252. package/dist/lib/stdlib/speech.d.ts +17 -5
  253. package/dist/lib/stdlib/speech.js +232 -50
  254. package/dist/lib/stdlib/speechPieces.d.ts +10 -0
  255. package/dist/lib/stdlib/speechPieces.js +44 -0
  256. package/dist/lib/stdlib/thread.d.ts +9 -9
  257. package/dist/lib/stdlib/thread.js +20 -11
  258. package/dist/lib/stdlib/wavFile.d.ts +5 -0
  259. package/dist/lib/stdlib/wavFile.js +61 -0
  260. package/dist/lib/symbolTable.d.ts +1 -1
  261. package/dist/lib/typeChecker/builtins.d.ts +1 -1
  262. package/dist/lib/typeChecker/builtins.js +1 -1
  263. package/dist/lib/typeChecker/index.d.ts +1 -1
  264. package/dist/lib/typeChecker/resolveVariable.js +1 -1
  265. package/dist/lib/typeChecker/templateNames.d.ts +1 -1
  266. package/dist/lib/typeChecker/testUtils.d.ts +1 -1
  267. package/dist/lib/typeChecker/types.d.ts +1 -1
  268. package/dist/lib/utils.d.ts +0 -8
  269. package/dist/lib/utils.js +0 -35
  270. package/dist/scripts/agency.js +52 -29
  271. package/package.json +7 -2
  272. package/stdlib/agency/local.agency +1 -1
  273. package/stdlib/agency/local.js +2 -2
  274. package/stdlib/agents/agency/coding.js +31 -2
  275. package/stdlib/agents/agency/review.agency +20 -14
  276. package/stdlib/agents/agency/review.js +265 -73
  277. package/stdlib/agents/researcher.js +31 -2
  278. package/stdlib/agents/typescript/review.js +31 -2
  279. package/stdlib/agents/writing/review.js +31 -2
  280. package/stdlib/agents/writing/rewrite.js +31 -2
  281. package/stdlib/docs/cli/config.md +36 -0
  282. package/stdlib/docs/cli/local.md +41 -10
  283. package/stdlib/docs/guide/agency-config-file.md +37 -2
  284. package/stdlib/docs/guide/error-handling.md +3 -4
  285. package/stdlib/docs/guide/mcp.md +3 -1
  286. package/stdlib/docs/stdlib/agency/local.md +1 -1
  287. package/stdlib/docs/stdlib/agents/agency/review.md +1 -1
  288. package/stdlib/docs/stdlib/policy.md +77 -29
  289. package/stdlib/docs/stdlib/skills.md +10 -0
  290. package/stdlib/docs/stdlib/speech.md +79 -8
  291. package/stdlib/docs/stdlib/thread.md +16 -13
  292. package/stdlib/docs/stdlib/toolbox.md +109 -16
  293. package/stdlib/policy.agency +364 -75
  294. package/stdlib/policy.js +2673 -853
  295. package/stdlib/skills.agency +1 -1
  296. package/stdlib/skills.js +29 -6
  297. package/stdlib/speech.agency +59 -0
  298. package/stdlib/speech.js +280 -3
  299. package/stdlib/thread.agency +8 -5
  300. package/stdlib/thread.js +7 -6
  301. package/stdlib/toolbox.agency +650 -77
  302. package/stdlib/toolbox.js +6101 -1950
@@ -3,6 +3,9 @@
3
3
  * entry point: `path`, `path:node`, or a directory (meaning its main.agency).
4
4
  * Consumed by the eval commands, the optimizer, and `agency test`.
5
5
  */
6
+ /** Split `path:node` on its last colon, but only when the text after it is a
7
+ * node name, so a path with a colon in it (`C:\agents\a.agency`) stays whole.
8
+ * `nodeName` is "" when the target names no node. */
6
9
  export declare function parseTarget(target: string): {
7
10
  filename: string;
8
11
  nodeName: string;
@@ -2,19 +2,22 @@ import * as fs from "fs";
2
2
  import * as path from "path";
3
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
+ import { LEGAL_IDENTIFIER } from "./parsers/parsers.js";
5
6
  /**
6
7
  * How an agent target string is parsed and resolved. A target names an agent
7
8
  * entry point: `path`, `path:node`, or a directory (meaning its main.agency).
8
9
  * Consumed by the eval commands, the optimizer, and `agency test`.
9
10
  */
11
+ /** Split `path:node` on its last colon, but only when the text after it is a
12
+ * node name, so a path with a colon in it (`C:\agents\a.agency`) stays whole.
13
+ * `nodeName` is "" when the target names no node. */
10
14
  export function parseTarget(target) {
11
15
  const colonIndex = target.lastIndexOf(":");
12
- if (colonIndex === -1) {
16
+ const nodeName = colonIndex === -1 ? "" : target.slice(colonIndex + 1);
17
+ if (!LEGAL_IDENTIFIER.test(nodeName)) {
13
18
  return { filename: target, nodeName: "" };
14
19
  }
15
- const filename = target.slice(0, colonIndex);
16
- const nodeName = target.slice(colonIndex + 1);
17
- return { filename, nodeName };
20
+ return { filename: target.slice(0, colonIndex), nodeName };
18
21
  }
19
22
  /** Resolve a target into the agent file, node (default "main"), and the
20
23
  * display label run results carry. */
@@ -14,10 +14,12 @@ import { mergedPalette } from "./lib/commandPalette.agency"
14
14
  import { getHeader } from "./lib/header.agency"
15
15
  import { maybeLoadMcp } from "./lib/mcp.agency"
16
16
  import { printPolicyHelp } from "./lib/policy.agency"
17
+ import { activePreset, startPreset } from "./lib/presets.agency"
17
18
  import { installSessionHooks, startInteractive } from "./lib/repl.agency"
18
19
  import { chooseSession, startSession } from "./lib/resume.agency"
19
20
  import { pickModelsForAgent, maybeEnableMemory } from "./lib/session.agency"
20
21
  import { loadSettings } from "./lib/settings.agency"
22
+ import { applyToolLimits, limitFlagsFromArgs, setStartupLimitFlags } from "./lib/toolLimits.agency"
21
23
  import { setDebug, setVerbose, setInteractive } from "./lib/trace.agency"
22
24
  import {
23
25
  setBrain,
@@ -28,7 +30,7 @@ import {
28
30
  resolveStartTarget,
29
31
  } from "./lib/turn.agency"
30
32
  import { formatTurnFailure } from "./lib/utils.agency"
31
- import { resolveMaxToolCallRounds, getCapabilities } from "./shared.agency"
33
+ import { getCapabilities } from "./shared.agency"
32
34
 
33
35
  // UI mode select — one-line swap between the alt-screen TUI and the
34
36
  // line-mode REPL. Both modules expose the same `repl` / `pushMessage`
@@ -136,6 +138,8 @@ node main() {
136
138
  startAgent = resolvedStartTarget
137
139
  }
138
140
 
141
+ // The preset must be chosen before models resolve: it is one of their layers.
142
+ startPreset(args.flags.preset ?? "", loadSettings())
139
143
  pickModelsForAgent(args)
140
144
 
141
145
  // Persistent knowledge graph, gated on the capability profile. Must run
@@ -146,19 +150,8 @@ node main() {
146
150
  // coordinator. Must run before the first turn (mcpTools ordering contract).
147
151
  maybeLoadMcp(loadSettings())
148
152
 
149
- const maxRounds = resolveMaxToolCallRounds(
150
- args.flags["max-tool-call-rounds"] ?? null,
151
- isOneShot,
152
- )
153
- setLlmOptions({
154
- maxToolCallRounds: maxRounds
155
- })
156
- const maxResultChars = args.flags["max-tool-result-chars"]
157
- if (maxResultChars != null) {
158
- setLlmOptions({
159
- maxToolResultChars: maxResultChars
160
- })
161
- }
153
+ setStartupLimitFlags(limitFlagsFromArgs(args))
154
+ applyToolLimits(activePreset(), isOneShot)
162
155
 
163
156
  const capsMaxTokens = getCapabilities().maxTokens
164
157
  if (capsMaxTokens != null) {