@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.
- package/README.md +42 -56
- package/dist/core/async/cli.js +2 -1
- package/dist/core/async/cli.js.map +1 -1
- package/dist/core/config/content_loader.js +110 -43
- package/dist/core/config/content_loader.js.map +1 -1
- package/dist/core/config/paths.js +2 -1
- package/dist/core/config/paths.js.map +1 -1
- package/dist/core/config/runtime.js +13 -4
- package/dist/core/config/runtime.js.map +1 -1
- package/dist/core/config/schema.js +25 -21
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/skills_loader.js +5 -10
- package/dist/core/config/skills_loader.js.map +1 -1
- package/dist/core/config/virtual_bundle.js +1 -1
- package/dist/core/config/virtual_bundle.js.map +1 -1
- package/dist/core/models/catalog.js +315 -0
- package/dist/core/models/catalog.js.map +1 -1
- package/dist/core/session/session_engine.js +27 -0
- package/dist/core/session/session_engine.js.map +1 -1
- package/dist/core/subagents/control_plane.js +5 -2
- package/dist/core/subagents/control_plane.js.map +1 -1
- package/dist/core/subagents/launch_model.js +7 -10
- package/dist/core/subagents/launch_model.js.map +1 -1
- package/dist/core/subagents/subagent_engine.js +2 -1
- package/dist/core/subagents/subagent_engine.js.map +1 -1
- package/dist/core/tools/registry.js.map +1 -1
- package/dist/core/tools/send_input_to_agent.js +1 -0
- package/dist/core/tools/send_input_to_agent.js.map +1 -1
- package/dist/core/tools/spawn_agent.js +18 -2
- package/dist/core/tools/spawn_agent.js.map +1 -1
- package/dist/core/utils/agents_files.js +5 -1
- package/dist/core/utils/agents_files.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/main.js +5 -4
- package/dist/main.js.map +1 -1
- 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
|
|
388
|
-
|
|
|
389
|
-
| `/help`
|
|
390
|
-
| `/new`
|
|
391
|
-
| `/rewind`
|
|
392
|
-
| `/copy:text`
|
|
393
|
-
| `/copy:code`
|
|
394
|
-
| `/checkpoint`
|
|
395
|
-
| `/reload`
|
|
396
|
-
| `/speak`
|
|
397
|
-
| `/cd`
|
|
398
|
-
| `/compact:summary-only`
|
|
399
|
-
| `/compact:summary-and-last` | compress history and include the last assistant message verbatim when present
|
|
400
|
-
| `/prune:earliest`
|
|
401
|
-
| `/prune:largest`
|
|
402
|
-
| `/prune:smart`
|
|
403
|
-
| `/persona:<id>`
|
|
404
|
-
| `/prompt:<id>`
|
|
405
|
-
| `/theme:<id>`
|
|
406
|
-
| `/bash:<id>`
|
|
407
|
-
| `/risk:read-only`
|
|
408
|
-
| `/risk:read-write`
|
|
409
|
-
| `!<cmd>`
|
|
410
|
-
| `!!<cmd>`
|
|
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
|
-
|
|
448
|
-
|
|
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
|
|
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
|
|
package/dist/core/async/cli.js
CHANGED
|
@@ -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 =
|
|
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
|
|
216
|
-
|
|
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
|
-
|
|
297
|
-
|
|
298
|
-
|
|
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 =
|
|
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
|
|
538
|
-
levels: args
|
|
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
|
|
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
|
|
563
|
-
levels: args
|
|
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
|
|
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
|
|
592
|
-
levels: args
|
|
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
|
|
616
|
-
levels: args
|
|
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
|
|
644
|
-
levels: args
|
|
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
|
|
667
|
-
levels: args
|
|
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
|
|
698
|
-
levels: options
|
|
699
|
-
cwd: options?.cwd,
|
|
730
|
+
deps: options.deps,
|
|
731
|
+
levels: options.levels,
|
|
700
732
|
});
|
|
701
|
-
const virtualBundle = buildVirtualBundle(config ?? {}
|
|
733
|
+
const virtualBundle = buildVirtualBundle(config ?? {});
|
|
702
734
|
try {
|
|
703
|
-
const
|
|
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(
|
|
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),
|