@markusylisiurunen/tau 0.2.67 → 0.2.68

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 (36) hide show
  1. package/README.md +42 -56
  2. package/dist/core/async/cli.js +2 -1
  3. package/dist/core/async/cli.js.map +1 -1
  4. package/dist/core/config/content_loader.js +110 -43
  5. package/dist/core/config/content_loader.js.map +1 -1
  6. package/dist/core/config/paths.js +2 -1
  7. package/dist/core/config/paths.js.map +1 -1
  8. package/dist/core/config/runtime.js +13 -4
  9. package/dist/core/config/runtime.js.map +1 -1
  10. package/dist/core/config/schema.js +25 -21
  11. package/dist/core/config/schema.js.map +1 -1
  12. package/dist/core/config/skills_loader.js +5 -10
  13. package/dist/core/config/skills_loader.js.map +1 -1
  14. package/dist/core/config/virtual_bundle.js +1 -1
  15. package/dist/core/config/virtual_bundle.js.map +1 -1
  16. package/dist/core/models/catalog.js +315 -0
  17. package/dist/core/models/catalog.js.map +1 -1
  18. package/dist/core/session/session_engine.js +27 -0
  19. package/dist/core/session/session_engine.js.map +1 -1
  20. package/dist/core/subagents/control_plane.js +5 -2
  21. package/dist/core/subagents/control_plane.js.map +1 -1
  22. package/dist/core/subagents/launch_model.js +7 -10
  23. package/dist/core/subagents/launch_model.js.map +1 -1
  24. package/dist/core/subagents/subagent_engine.js +2 -1
  25. package/dist/core/subagents/subagent_engine.js.map +1 -1
  26. package/dist/core/tools/registry.js.map +1 -1
  27. package/dist/core/tools/send_input_to_agent.js +1 -0
  28. package/dist/core/tools/send_input_to_agent.js.map +1 -1
  29. package/dist/core/tools/spawn_agent.js +18 -2
  30. package/dist/core/tools/spawn_agent.js.map +1 -1
  31. package/dist/core/utils/agents_files.js +5 -1
  32. package/dist/core/utils/agents_files.js.map +1 -1
  33. package/dist/core/version.js +1 -1
  34. package/dist/main.js +5 -4
  35. package/dist/main.js.map +1 -1
  36. package/package.json +1 -1
package/README.md CHANGED
@@ -45,10 +45,7 @@ to use the OpenAI Codex subscription provider (`openai-codex`), run:
45
45
  tau auth login codex
46
46
  ```
47
47
 
48
- this prints a login URL and starts a local callback server on `127.0.0.1:1455`. complete the
49
- login in your browser and tau will store tokens in `~/.config/tau/auth.json`. if port `1455`
50
- is already in use, or the browser callback fails, tau will prompt you to paste the redirect
51
- URL/code. if you see token refresh errors later, run the login command again to re-authenticate.
48
+ this prints a login URL and starts a local callback server on `127.0.0.1:1455`. complete the login in your browser and tau will store tokens in `~/.config/tau/auth.json`. if port `1455` is already in use, or the browser callback fails, tau will prompt you to paste the redirect URL/code. if you see token refresh errors later, run the login command again to re-authenticate.
52
49
 
53
50
  to list authenticated accounts and usage:
54
51
 
@@ -62,17 +59,13 @@ to remove stored credentials:
62
59
  tau auth logout codex --account <email>
63
60
  ```
64
61
 
65
- to force a specific Codex account for this run, set `TAU_CODEX_ACCOUNT` to the
66
- account email or account id (same matching as `auth logout`). when set, tau will
67
- only use that account and will not fail over.
62
+ to force a specific Codex account for this run, set `TAU_CODEX_ACCOUNT` to the account email or account id (same matching as `auth logout`). when set, tau will only use that account and will not fail over.
68
63
 
69
- `openai-codex` does **not** use `OPENAI_API_KEY` or `apiKeys.openai`; it relies on the OAuth
70
- tokens in `~/.config/tau/auth.json`.
64
+ `openai-codex` does **not** use `OPENAI_API_KEY` or `apiKeys.openai`; it relies on the OAuth tokens in `~/.config/tau/auth.json`.
71
65
 
72
66
  ## usage logging
73
67
 
74
- tau writes JSONL usage logs to `~/.config/tau/logs/usage-YYYY-MM-DD.jsonl` for every assistant
75
- response (main and sub-agent). summarize usage with:
68
+ tau writes JSONL usage logs to `~/.config/tau/logs/usage-YYYY-MM-DD.jsonl` for every assistant response (main and sub-agent). summarize usage with:
76
69
 
77
70
  ```sh
78
71
  tau usage --since 2025-01-01 --persona gpt-5.2-coder
@@ -116,11 +109,9 @@ tau async cron runs [jobId]
116
109
  tau async cron run <jobId>
117
110
  ```
118
111
 
119
- project id for `tau async <prompt...>` resolves from `--project <id>` first, then
120
- `async.client.defaultProjectId` from config.
112
+ project id for `tau async <prompt...>` resolves from `--project <id>` first, then `async.client.defaultProjectId` from config.
121
113
 
122
- use `tau async -- <prompt...>` when prompt text starts with a reserved command word (for example,
123
- `list`).
114
+ use `tau async -- <prompt...>` when prompt text starts with a reserved command word (for example, `list`).
124
115
 
125
116
  for daemon/API/Telegram details, see [docs/async.md](docs/async.md).
126
117
 
@@ -166,9 +157,7 @@ tau ships starter prompt and skill templates as markdown content in this reposit
166
157
  tau install
167
158
  ```
168
159
 
169
- this writes prompts and skills into `.tau/` under your current working directory. use `--global` to
170
- install into `~/.config/tau/` instead, and `--force` to overwrite existing files/directories.
171
- use `--prompt <id>` or `--skill <name>` to install only one item (for targeted updates).
160
+ this writes prompts and skills into `.tau/` under your current working directory. use `--global` to install into `~/.config/tau/` instead, and `--force` to overwrite existing files/directories. use `--prompt <id>` or `--skill <name>` to install only one item (for targeted updates).
172
161
 
173
162
  ## security notice
174
163
 
@@ -203,8 +192,7 @@ tau can load custom palette overrides from theme files. create a theme at:
203
192
  - `.tau/themes/<id>.json` (project)
204
193
  - `~/.config/tau/themes/<id>.json` (global)
205
194
 
206
- then set `"defaultTheme": "<id>"` in config. any palette token not defined in the file renders as plain text.
207
- theme values accept `#rgb`, `#rrggbb`, `rgb(r, g, b)`, or `hsl(h, s%, l%)`. hex without `#` is ignored.
195
+ then set `"defaultTheme": "<id>"` in config. any palette token not defined in the file renders as plain text. theme values accept `#rgb`, `#rrggbb`, `rgb(r, g, b)`, or `hsl(h, s%, l%)`. hex without `#` is ignored.
208
196
 
209
197
  built-in themes are available by default with ids: `crimson`, `ember`, `gold`, `lime`, `grass`, `emerald`, `jade`, `teal`, `cyan`, `azure`, `cobalt`, `violet`, `purple`, `magenta`, `rose`. built-ins auto-adapt to dark/light terminal backgrounds via OSC 11 detection at startup (best effort, dark fallback). set `defaultTheme` to one of these ids, or disable them with `disableBuiltinThemes`.
210
198
 
@@ -384,30 +372,30 @@ tau updates the nearest `AGENTS.md` in your current directory ancestry (or creat
384
372
 
385
373
  tau supports slash commands for common actions:
386
374
 
387
- | command | description |
388
- | --------------------------- | ------------------------------------------------------------------------------- |
389
- | `/help` | show available commands |
390
- | `/new` | clear the session and start fresh |
391
- | `/rewind` | open a picker to rewind context from a selected user message |
392
- | `/copy:text` | copy the last assistant message |
393
- | `/copy:code` | copy just the code blocks |
394
- | `/checkpoint` | save a checkpoint file for loading later |
395
- | `/reload` | reload personas, prompts, skills, themes, bash commands, and AGENTS.md |
396
- | `/speak` | toggle microphone recording and transcribe into the editor (macOS only) |
397
- | `/cd` | change the working directory |
398
- | `/compact:summary-only` | compress history into one synthetic user summary message |
399
- | `/compact:summary-and-last` | compress history and include the last assistant message verbatim when present |
400
- | `/prune:earliest` | prune bash tool results from oldest to newest and compact edit payloads/results |
401
- | `/prune:largest` | prune largest bash tool results first and compact edit payloads/results |
402
- | `/prune:smart` | prune bash tool results via model selection and compact edit payloads/results |
403
- | `/persona:<id>` | switch to a different persona |
404
- | `/prompt:<id>` | insert a saved prompt template |
405
- | `/theme:<id>` | switch to a loaded theme |
406
- | `/bash:<id>` | run a saved shell command |
407
- | `/risk:read-only` | allow read-only tool calls |
408
- | `/risk:read-write` | allow all tools |
409
- | `!<cmd>` | run a shell command directly (bypasses risk checks; uses sandbox if enabled) |
410
- | `!!<cmd>` | run a shell command without adding output to the model context |
375
+ | command | description |
376
+ | --- | --- |
377
+ | `/help` | show available commands |
378
+ | `/new` | clear the session and start fresh |
379
+ | `/rewind` | open a picker to rewind context from a selected user message |
380
+ | `/copy:text` | copy the last assistant message |
381
+ | `/copy:code` | copy just the code blocks |
382
+ | `/checkpoint` | save a checkpoint file for loading later |
383
+ | `/reload` | reload personas, model overrides, prompts, skills, themes, bash commands, and AGENTS.md |
384
+ | `/speak` | toggle microphone recording and transcribe into the editor (macOS only) |
385
+ | `/cd` | change the working directory |
386
+ | `/compact:summary-only` | compress history into one synthetic user summary message |
387
+ | `/compact:summary-and-last` | compress history and include the last assistant message verbatim when present |
388
+ | `/prune:earliest` | prune bash tool results from oldest to newest and compact edit payloads/results |
389
+ | `/prune:largest` | prune largest bash tool results first and compact edit payloads/results |
390
+ | `/prune:smart` | prune bash tool results via model selection and compact edit payloads/results |
391
+ | `/persona:<id>` | switch to a different persona |
392
+ | `/prompt:<id>` | insert a saved prompt template |
393
+ | `/theme:<id>` | switch to a loaded theme |
394
+ | `/bash:<id>` | run a saved shell command |
395
+ | `/risk:read-only` | allow read-only tool calls |
396
+ | `/risk:read-write` | allow all tools |
397
+ | `!<cmd>` | run a shell command directly (bypasses risk checks; uses sandbox if enabled) |
398
+ | `!!<cmd>` | run a shell command without adding output to the model context |
411
399
 
412
400
  use `tau -l <file>` to resume from a checkpoint created by `/checkpoint`.
413
401
 
@@ -443,10 +431,9 @@ the prune commands drop bash tool results from the active context without summar
443
431
 
444
432
  ### global config
445
433
 
446
- tau loads config from `~/.config/tau/config.json` only when the current working directory is
447
- inside your home directory. it also loads any `.tau/config.json` found by walking up from the
448
- current working directory to home (or to the filesystem root when cwd is outside home).
449
- settings merge from least-specific to most-specific.
434
+ tau loads config from `~/.config/tau/config.json` only when the current working directory is inside your home directory. it also loads any `.tau/config.json` found by walking up from the current working directory to home (or to the filesystem root when cwd is outside home). settings merge from least-specific to most-specific.
435
+
436
+ model definitions can be extended and overridden through `~/.config/tau/models.json` and `.tau/models.json` with the same discovery and precedence rules as `config.json`. see [docs/models.md](docs/models.md).
450
437
 
451
438
  ```json
452
439
  {
@@ -484,7 +471,7 @@ the `defaultTheme` field sets the theme id to load at startup. it must be non-em
484
471
 
485
472
  the `subagents.defaultLaunchModels` field configures allowed `spawn_agent` launch overrides for the built-in `default` sub-agent. values must use `<provider>/<model>:<effort>`.
486
473
 
487
- the `modelSystemNotices` field maps `<provider>/<model>` to a notice string. provider/model matching is exact/case-sensitive against loaded model ids. when a message is sent to that model, tau prepends the notice as a `<system>...</system>` block before the user content. this applies to main-session user messages and sub-agent prompts, regardless of persona id.
474
+ the `modelSystemNotices` field maps `<provider>/<model>` to a notice string. provider ids must be known and model ids are exact/case-sensitive against the merged configured model catalog (built-in + layered `models.json`). when a message is sent to that model, tau prepends the notice as a `<system>...</system>` block before the user content. this applies to main-session user messages and sub-agent prompts, regardless of persona id.
488
475
 
489
476
  if `disableBuiltinPersonas` is set to `true`, tau will not load built-in personas. if `disableBuiltinThemes` is set to `true`, tau will not load built-in themes. only entries from `~/.config/tau/` and `.tau/` will be available for those categories. you can also set these flags in any `.tau/config.json`; the most specific value wins.
490
477
 
@@ -554,8 +541,7 @@ you can tell tau to always include extra `AGENTS.md` files by adding an `agentCo
554
541
  { "agentContextFiles": ["packages/pkg1/AGENTS.md"] }
555
542
  ```
556
543
 
557
- paths are resolved relative to the directory containing `.tau/` (or relative to home for the global config when it is in scope). entries must point at `AGENTS.md`.
558
- entries are only included when their directory is an ancestor or descendant of the current working directory (sibling paths are ignored).
544
+ paths are resolved relative to the directory containing `.tau/` (or relative to home for the global config when it is in scope). entries must point at `AGENTS.md`. entries are only included when their directory is an ancestor or descendant of the current working directory (sibling paths are ignored).
559
545
 
560
546
  ### custom personas
561
547
 
@@ -568,8 +554,7 @@ provider: anthropic
568
554
  model: claude-opus-4-5
569
555
  ---
570
556
 
571
- you are a helpful assistant specialized in my workflow.
572
- focus on clarity and efficiency.
557
+ you are a helpful assistant specialized in my workflow. focus on clarity and efficiency.
573
558
  ```
574
559
 
575
560
  the frontmatter defines the persona. required fields:
@@ -578,6 +563,8 @@ the frontmatter defines the persona. required fields:
578
563
  - `provider`: model provider id (for example `openai`, `anthropic`, `google`)
579
564
  - `model`: model id for the provider (for example `gpt-5.2`, `claude-opus-4-5`)
580
565
 
566
+ custom personas/subagents can reference model ids that are not bundled yet, as long as the provider is known. configure model metadata in `models.json` files or let tau derive defaults. see [docs/models.md](docs/models.md).
567
+
581
568
  the persona file name (without the `.md` extension) must match the `id`.
582
569
 
583
570
  optional frontmatter fields:
@@ -633,8 +620,7 @@ tau does not include prompt templates by default. run `tau install` to bootstrap
633
620
  id: review
634
621
  ---
635
622
 
636
- review this code for bugs, edge cases, and style issues.
637
- suggest specific improvements with code examples.
623
+ review this code for bugs, edge cases, and style issues. suggest specific improvements with code examples.
638
624
  ```
639
625
 
640
626
  insert them with `/prompt:review`. if a prompt id conflicts across levels, the most specific level wins.
@@ -654,7 +640,7 @@ optional fields: `license`, `compatibility` (<=500 chars), `metadata` (string ma
654
640
 
655
641
  enable skills per persona with the `skills` frontmatter field. you can list specific skill names (matched by `name` in skill frontmatter), use `"*"` to enable all discovered skills, or set `skills: []` to disable skills completely. built-in personas and custom personas with omitted `skills` default to `skills: "*"`. if a project skill conflicts with a user skill by name, the project skill wins. tau injects an index of enabled skills into the system prompt containing only each skill's `name`, `description`, and file path. in sandbox mode, skills outside the mounted host root are excluded and included paths are rewritten to sandbox paths.
656
642
 
657
- use `/reload` to pick up changes to personas, prompts, skills, themes, bash commands, and AGENTS.md without restarting.
643
+ use `/reload` to pick up changes to personas, model overrides, prompts, skills, themes, bash commands, and AGENTS.md without restarting.
658
644
 
659
645
  ## how it works
660
646
 
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { createDefaultConfigDeps } from "../config/deps.js";
2
3
  import { getMistralApiKey, loadConfig } from "../config/schema.js";
3
4
  import { AsyncDaemonRuntimeError, startAsyncDaemonRuntime } from "./daemon_runtime.js";
4
5
  import { AsyncDaemonConfigError, loadAsyncDaemonConfig } from "./server_config.js";
@@ -468,7 +469,7 @@ export async function runAsyncCommand(argv, options = {}) {
468
469
  }
469
470
  const cwd = options.cwd ?? process.cwd();
470
471
  const env = options.env ?? process.env;
471
- const config = options.config ?? loadConfig(cwd);
472
+ const config = options.config ?? loadConfig(cwd, createDefaultConfigDeps());
472
473
  if (parsed.command === "daemon") {
473
474
  if (!parsed.configFilePath) {
474
475
  throw new AsyncCliError("missing --config-file <path> for daemon mode");
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/core/async/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/core/async/cli.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { basename, join } from "node:path";
2
2
  import { z } from "zod";
3
- import { resolveModel as resolveCatalogModel } from "../models/catalog.js";
4
3
  import { personas as builtinPersonas } from "../personas.js";
5
4
  import { parseSubagentLaunchModelList } from "../subagents/launch_model.js";
6
5
  import { DEFAULT_SUBAGENT_NAME, SUBAGENT_TOOL_NAMES } from "../subagents/types.js";
@@ -15,9 +14,7 @@ import { WAIT_FOR_AGENT_TOOL } from "../tools/wait_for_agent.js";
15
14
  import { WRITE_TOOL } from "../tools/write.js";
16
15
  import { ReasoningEffortSchema, RiskLevelSchema } from "../types.js";
17
16
  import { formatZodError } from "../utils/zod.js";
18
- import { createDefaultConfigDeps } from "./deps.js";
19
17
  import { parseMarkdownFrontMatter } from "./markdown_frontmatter.js";
20
- import { resolveConfigLevels } from "./paths.js";
21
18
  import { loadSkillsContent as loadCanonicalSkillsContent } from "./skills_loader.js";
22
19
  import { buildVirtualBundle } from "./virtual_bundle.js";
23
20
  const SubagentNameSchema = z
@@ -99,7 +96,7 @@ function cloneSubagentPersonaConfig(config) {
99
96
  ...(config.launchModels ? { launchModels: [...config.launchModels] } : {}),
100
97
  };
101
98
  }
102
- function parseSubagentConfig(subagentsRaw) {
99
+ function parseSubagentConfig(subagentsRaw, modelResolver) {
103
100
  if (subagentsRaw === undefined) {
104
101
  return {};
105
102
  }
@@ -141,7 +138,9 @@ function parseSubagentConfig(subagentsRaw) {
141
138
  if (toolsResult.error) {
142
139
  return { error: `subagent ${validatedName}: ${toolsResult.error}` };
143
140
  }
144
- const launchModelsResult = parseSubagentLaunchModelList(specRaw.launchModels);
141
+ const launchModelsResult = parseSubagentLaunchModelList(specRaw.launchModels, {
142
+ resolveModel: modelResolver,
143
+ });
145
144
  if (launchModelsResult.error) {
146
145
  return {
147
146
  error: `subagent ${validatedName}: launchModels ${launchModelsResult.error}`,
@@ -155,7 +154,7 @@ function parseSubagentConfig(subagentsRaw) {
155
154
  : undefined;
156
155
  let modelObj;
157
156
  if (provider && model) {
158
- modelObj = resolveModel(provider, model);
157
+ modelObj = modelResolver(provider, model);
159
158
  if (!modelObj) {
160
159
  return {
161
160
  error: `subagent ${validatedName}: failed to resolve model "${provider}:${model}"`,
@@ -212,8 +211,47 @@ function parsePersonaTools(toolsRaw) {
212
211
  }
213
212
  return { tools: selected };
214
213
  }
215
- function resolveModel(provider, modelId) {
216
- return resolveCatalogModel(provider, modelId);
214
+ function resolvePersonaModels(persona, modelResolver) {
215
+ const resolvedPersonaModel = modelResolver(persona.model.provider, persona.model.id);
216
+ if (!resolvedPersonaModel) {
217
+ return {
218
+ error: `failed to resolve model "${persona.model.provider}:${persona.model.id}"`,
219
+ };
220
+ }
221
+ if (!persona.subagents) {
222
+ return {
223
+ persona: {
224
+ ...persona,
225
+ model: resolvedPersonaModel,
226
+ },
227
+ };
228
+ }
229
+ const resolvedSubagents = {};
230
+ for (const [name, config] of Object.entries(persona.subagents)) {
231
+ if (!config?.model) {
232
+ if (config) {
233
+ resolvedSubagents[name] = cloneSubagentPersonaConfig(config);
234
+ }
235
+ continue;
236
+ }
237
+ const resolvedSubagentModel = modelResolver(config.model.provider, config.model.id);
238
+ if (!resolvedSubagentModel) {
239
+ return {
240
+ error: `subagent ${name}: failed to resolve model "${config.model.provider}:${config.model.id}"`,
241
+ };
242
+ }
243
+ resolvedSubagents[name] = {
244
+ ...cloneSubagentPersonaConfig(config),
245
+ model: resolvedSubagentModel,
246
+ };
247
+ }
248
+ return {
249
+ persona: {
250
+ ...persona,
251
+ model: resolvedPersonaModel,
252
+ subagents: resolvedSubagents,
253
+ },
254
+ };
217
255
  }
218
256
  function mergeById(base, overlay, overlay2) {
219
257
  const map = new Map();
@@ -293,9 +331,10 @@ function loadJsonEntries(dir, deps, listFiles) {
293
331
  return loadEntries(dir, deps, listFiles);
294
332
  }
295
333
  function resolveContentContext(options) {
296
- const deps = options?.deps ?? createDefaultConfigDeps();
297
- const levels = options?.levels ?? resolveConfigLevels(deps, { cwd: options?.cwd });
298
- return { deps, levels };
334
+ return {
335
+ deps: options.deps,
336
+ levels: options.levels,
337
+ };
299
338
  }
300
339
  const personaFrontMatterSchema = z
301
340
  .object({
@@ -337,7 +376,7 @@ const DEFAULT_SUBAGENT_TOOLS = [
337
376
  WAIT_FOR_AGENT_TOOL,
338
377
  TERMINATE_AGENT_TOOL,
339
378
  ];
340
- function parsePersona(file, content, source, basePersonasById) {
379
+ function parsePersona(file, content, source, modelResolver, basePersonasById) {
341
380
  const markdownResult = parseMarkdownFrontMatter(content);
342
381
  if (!markdownResult.ok) {
343
382
  return { error: `${file}: ${markdownResult.message}. skipped.` };
@@ -362,7 +401,7 @@ function parsePersona(file, content, source, basePersonasById) {
362
401
  if (extendsId && !basePersona) {
363
402
  return { error: `${file}: extends "${extendsId}" not found. skipped.` };
364
403
  }
365
- const modelObj = resolveModel(provider, model);
404
+ const modelObj = modelResolver(provider, model);
366
405
  if (!modelObj) {
367
406
  return { error: `${file}: failed to load model "${provider}:${model}". skipped.` };
368
407
  }
@@ -395,7 +434,7 @@ function parsePersona(file, content, source, basePersonasById) {
395
434
  }
396
435
  }
397
436
  // Parse subagents
398
- const subagentsResult = parseSubagentConfig(subagentsRaw);
437
+ const subagentsResult = parseSubagentConfig(subagentsRaw, modelResolver);
399
438
  if (subagentsResult.error) {
400
439
  return { error: `${file}: ${subagentsResult.error}. skipped.` };
401
440
  }
@@ -534,9 +573,8 @@ function parseTheme(entry, scope) {
534
573
  }
535
574
  export async function loadUserPersonas(args) {
536
575
  const { deps, levels } = resolveContentContext({
537
- deps: args?.deps,
538
- levels: args?.levels,
539
- cwd: args?.cwd,
576
+ deps: args.deps,
577
+ levels: args.levels,
540
578
  });
541
579
  const globalLevel = levels.find((level) => level.scope === "global");
542
580
  if (!globalLevel) {
@@ -545,9 +583,9 @@ export async function loadUserPersonas(args) {
545
583
  const personasDir = globalLevel.personasDir;
546
584
  const { entries, errors } = loadMarkdownEntries(personasDir, deps, listMarkdownFiles);
547
585
  const personas = [];
548
- const basePersonasById = args?.basePersonasById ?? new Map(builtinPersonas.map((p) => [p.id.toLowerCase(), p]));
586
+ const basePersonasById = args.basePersonasById ?? new Map(builtinPersonas.map((p) => [p.id.toLowerCase(), p]));
549
587
  for (const file of entries) {
550
- const result = parsePersona(file.path, file.content, "user", basePersonasById);
588
+ const result = parsePersona(file.path, file.content, "user", args.modelResolver, basePersonasById);
551
589
  if (result.persona) {
552
590
  personas.push(result.persona);
553
591
  }
@@ -559,9 +597,8 @@ export async function loadUserPersonas(args) {
559
597
  }
560
598
  export async function loadProjectPersonas(args) {
561
599
  const { deps, levels } = resolveContentContext({
562
- deps: args?.deps,
563
- levels: args?.levels,
564
- cwd: args?.cwd,
600
+ deps: args.deps,
601
+ levels: args.levels,
565
602
  });
566
603
  const projectLevels = levels.filter((level) => level.scope === "project");
567
604
  if (projectLevels.length === 0) {
@@ -569,13 +606,13 @@ export async function loadProjectPersonas(args) {
569
606
  }
570
607
  const personas = [];
571
608
  const errors = [];
572
- const basePersonasById = args?.basePersonasById ?? new Map(builtinPersonas.map((p) => [p.id.toLowerCase(), p]));
609
+ const basePersonasById = args.basePersonasById ?? new Map(builtinPersonas.map((p) => [p.id.toLowerCase(), p]));
573
610
  // Parent-first order, closest directory wins on conflicts.
574
611
  for (const level of projectLevels) {
575
612
  const { entries, errors: entryErrors } = loadMarkdownEntries(level.personasDir, deps, listMarkdownFiles);
576
613
  errors.push(...entryErrors);
577
614
  for (const file of entries) {
578
- const result = parsePersona(file.path, file.content, "project", basePersonasById);
615
+ const result = parsePersona(file.path, file.content, "project", args.modelResolver, basePersonasById);
579
616
  if (result.persona) {
580
617
  personas.push(result.persona);
581
618
  }
@@ -588,9 +625,8 @@ export async function loadProjectPersonas(args) {
588
625
  }
589
626
  export async function loadUserPrompts(args) {
590
627
  const { deps, levels } = resolveContentContext({
591
- deps: args?.deps,
592
- levels: args?.levels,
593
- cwd: args?.cwd,
628
+ deps: args.deps,
629
+ levels: args.levels,
594
630
  });
595
631
  const globalLevel = levels.find((level) => level.scope === "global");
596
632
  if (!globalLevel) {
@@ -612,9 +648,8 @@ export async function loadUserPrompts(args) {
612
648
  }
613
649
  export async function loadProjectPrompts(args) {
614
650
  const { deps, levels } = resolveContentContext({
615
- deps: args?.deps,
616
- levels: args?.levels,
617
- cwd: args?.cwd,
651
+ deps: args.deps,
652
+ levels: args.levels,
618
653
  });
619
654
  const projectLevels = levels.filter((level) => level.scope === "project");
620
655
  if (projectLevels.length === 0) {
@@ -640,9 +675,8 @@ export async function loadProjectPrompts(args) {
640
675
  }
641
676
  export async function loadUserThemes(args) {
642
677
  const { deps, levels } = resolveContentContext({
643
- deps: args?.deps,
644
- levels: args?.levels,
645
- cwd: args?.cwd,
678
+ deps: args.deps,
679
+ levels: args.levels,
646
680
  });
647
681
  const globalLevel = levels.find((level) => level.scope === "global");
648
682
  if (!globalLevel) {
@@ -663,9 +697,8 @@ export async function loadUserThemes(args) {
663
697
  }
664
698
  export async function loadProjectThemes(args) {
665
699
  const { deps, levels } = resolveContentContext({
666
- deps: args?.deps,
667
- levels: args?.levels,
668
- cwd: args?.cwd,
700
+ deps: args.deps,
701
+ levels: args.levels,
669
702
  });
670
703
  const projectLevels = levels.filter((level) => level.scope === "project");
671
704
  if (projectLevels.length === 0) {
@@ -694,25 +727,59 @@ export async function loadSkillsContent(config, options) {
694
727
  }
695
728
  export async function loadAllContent(config, options) {
696
729
  const { deps, levels } = resolveContentContext({
697
- deps: options?.deps,
698
- levels: options?.levels,
699
- cwd: options?.cwd,
730
+ deps: options.deps,
731
+ levels: options.levels,
700
732
  });
701
- const virtualBundle = buildVirtualBundle(config ?? {}, deps);
733
+ const virtualBundle = buildVirtualBundle(config ?? {});
702
734
  try {
703
- const basePersonasById = new Map(builtinPersonas.map((p) => [p.id.toLowerCase(), p]));
735
+ const modelResolverResult = {
736
+ resolveModel: options.modelResolver,
737
+ errors: [],
738
+ };
739
+ const builtinPersonaErrors = [];
740
+ const resolvedBuiltinPersonas = [];
741
+ for (const persona of builtinPersonas) {
742
+ const resolved = resolvePersonaModels(persona, modelResolverResult.resolveModel);
743
+ if (resolved.persona) {
744
+ resolvedBuiltinPersonas.push(resolved.persona);
745
+ }
746
+ else if (resolved.error) {
747
+ builtinPersonaErrors.push(`builtin persona '${persona.id}': ${resolved.error}`);
748
+ }
749
+ }
750
+ const resolvedVirtualBundlePersonas = virtualBundle.personas === builtinPersonas ? [...resolvedBuiltinPersonas] : [];
751
+ if (resolvedVirtualBundlePersonas.length === 0) {
752
+ for (const persona of virtualBundle.personas) {
753
+ const resolved = resolvePersonaModels(persona, modelResolverResult.resolveModel);
754
+ if (resolved.persona) {
755
+ resolvedVirtualBundlePersonas.push(resolved.persona);
756
+ }
757
+ else if (resolved.error) {
758
+ builtinPersonaErrors.push(`builtin persona '${persona.id}': ${resolved.error}`);
759
+ }
760
+ }
761
+ }
762
+ const basePersonasById = new Map(resolvedBuiltinPersonas.map((persona) => [persona.id.toLowerCase(), persona]));
704
763
  const userPersonasResult = await loadUserPersonas({
705
764
  basePersonasById,
765
+ modelResolver: modelResolverResult.resolveModel,
766
+ deps,
767
+ levels,
768
+ });
769
+ const projectPersonasResult = await loadProjectPersonas({
770
+ basePersonasById,
771
+ modelResolver: modelResolverResult.resolveModel,
706
772
  deps,
707
773
  levels,
708
774
  });
709
- const projectPersonasResult = await loadProjectPersonas({ basePersonasById, deps, levels });
710
775
  const userPromptsResult = await loadUserPrompts({ deps, levels });
711
776
  const projectPromptsResult = await loadProjectPrompts({ deps, levels });
712
777
  const skillsResult = await loadSkillsContent(config, { deps, levels });
713
778
  const userThemesResult = await loadUserThemes({ deps, levels });
714
779
  const projectThemesResult = await loadProjectThemes({ deps, levels });
715
780
  const allErrors = [
781
+ ...modelResolverResult.errors,
782
+ ...builtinPersonaErrors,
716
783
  ...userPersonasResult.errors,
717
784
  ...projectPersonasResult.errors,
718
785
  ...userPromptsResult.errors,
@@ -724,7 +791,7 @@ export async function loadAllContent(config, options) {
724
791
  const skills = skillsResult.skills;
725
792
  // Precedence: virtual bundle < global < nearest .tau levels.
726
793
  const defaultLaunchModels = config?.subagents?.defaultLaunchModels;
727
- const personas = mergeById(virtualBundle.personas, userPersonasResult.personas, projectPersonasResult.personas).map((persona) => withDefaultSubagentLaunchModels(persona, defaultLaunchModels));
794
+ const personas = mergeById(resolvedVirtualBundlePersonas, userPersonasResult.personas, projectPersonasResult.personas).map((persona) => withDefaultSubagentLaunchModels(persona, defaultLaunchModels));
728
795
  return {
729
796
  personas,
730
797
  prompts: mergeById(virtualBundle.prompts, userPromptsResult.prompts, projectPromptsResult.prompts),