@markusylisiurunen/tau 0.3.91 → 0.3.92
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/dist/core/cli.js +0 -3
- package/dist/core/cli.js.map +1 -1
- package/dist/core/code_mode/sdk.js +0 -1
- package/dist/core/code_mode/sdk.js.map +1 -1
- package/dist/core/config/content_loader.js +1 -3
- package/dist/core/config/content_loader.js.map +1 -1
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/schema.js +0 -67
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/index.js +0 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/personas.js +1 -2
- package/dist/core/personas.js.map +1 -1
- package/dist/core/static/tau_docs/config-reference.md +0 -24
- package/dist/core/static/tau_docs/configuration.md +1 -1
- package/dist/core/static/tau_docs/credentials.md +3 -18
- package/dist/core/static/tau_docs/index.md +0 -1
- package/dist/core/static/tau_docs/manifest.json +0 -1
- package/dist/core/static/tau_docs/personas.md +3 -3
- package/dist/core/static/tau_docs/security.md +6 -18
- package/dist/core/static/tau_docs/subagents.md +0 -1
- package/dist/core/static/tau_docs/tools.md +6 -8
- package/dist/core/static/tau_docs/troubleshooting.md +10 -12
- package/dist/core/static/tau_docs/tui.md +1 -0
- package/dist/core/subagents/claude_code_runner.mjs +43 -43
- package/dist/core/subagents/registry.js +1 -2
- package/dist/core/subagents/registry.js.map +1 -1
- package/dist/core/subagents/types.js +1 -2
- package/dist/core/subagents/types.js.map +1 -1
- package/dist/core/tools/code.js +0 -3
- package/dist/core/tools/code.js.map +1 -1
- package/dist/core/tools/presentation.js +1 -2
- package/dist/core/tools/presentation.js.map +1 -1
- package/dist/core/tools/tool_names.js +1 -3
- package/dist/core/tools/tool_names.js.map +1 -1
- package/dist/core/utils/speech.js +6 -2
- package/dist/core/utils/speech.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/main.js +0 -23
- package/dist/main.js.map +1 -1
- package/package.json +3 -4
- package/dist/core/code_mode/nook.js +0 -226
- package/dist/core/code_mode/nook.js.map +0 -1
- package/dist/core/nook/cli.js +0 -258
- package/dist/core/nook/cli.js.map +0 -1
- package/dist/core/nook/client.js +0 -372
- package/dist/core/nook/client.js.map +0 -1
- package/dist/core/nook/deploy.js +0 -152
- package/dist/core/nook/deploy.js.map +0 -1
- package/dist/core/nook/index.js +0 -5
- package/dist/core/nook/index.js.map +0 -1
- package/dist/core/nook/setup.js +0 -429
- package/dist/core/nook/setup.js.map +0 -1
- package/dist/core/nook/validation.js +0 -164
- package/dist/core/nook/validation.js.map +0 -1
- package/dist/core/static/code_mode/nook/documentation.md +0 -144
- package/dist/core/static/code_mode/nook/sandbox_runner.mjs +0 -1
- package/dist/core/static/tau_docs/nook.md +0 -270
- package/dist/nook/worker/index.js +0 -1175
- package/dist/nook/worker/index.js.map +0 -1
|
@@ -30,7 +30,7 @@ Trusting a repository therefore means trusting this content. Before using a repo
|
|
|
30
30
|
|
|
31
31
|
- persona system prompts, tool lists, and model launch allowlists;
|
|
32
32
|
- skill instructions and any scripts they direct the agent to run;
|
|
33
|
-
- project configuration that sets
|
|
33
|
+
- project configuration that sets model notices or hosted-environment connections;
|
|
34
34
|
- `enabledClientTools`, which can turn on commands from your global configuration; and
|
|
35
35
|
- provision scripts or other repository automation used by integrations such as Telegram.
|
|
36
36
|
|
|
@@ -46,7 +46,7 @@ A Tau host that runs models refreshes compatible provider catalogs from `pi.dev`
|
|
|
46
46
|
|
|
47
47
|
## Keep secrets with the process that needs them
|
|
48
48
|
|
|
49
|
-
Most model and service credentials belong on the host, because the host makes model calls, web searches,
|
|
49
|
+
Most model and service credentials belong on the host, because the host makes model calls, performs web searches, and replicates history. TUI speech credentials and command client tool credentials belong on the client. Telegram bot, transcription, and voice credentials belong to the Telegram runner. Credentials for hosted execution environments belong in the host's startup configuration.
|
|
50
50
|
|
|
51
51
|
When attached to a remote host, a credential exported on the laptop does not reach the host. Putting a host credential into the execution environment's shell would needlessly expose it to every process there. See [credentials](credentials.md) for which source wins.
|
|
52
52
|
|
|
@@ -57,12 +57,11 @@ Never put credentials in:
|
|
|
57
57
|
- committed project files;
|
|
58
58
|
- persona, prompt, skill, `AGENTS.md`, or model-notice text;
|
|
59
59
|
- Bash command lines likely to enter shell history or process listings;
|
|
60
|
-
- tool results, session messages, issue comments, or debug output
|
|
61
|
-
- Nook static assets or browser KV.
|
|
60
|
+
- tool results, session messages, issue comments, or debug output.
|
|
62
61
|
|
|
63
62
|
Do not debug authentication by printing an environment, a configuration file, `auth.json`, or a service response that includes headers. Check that the expected source is set up for the right process, then run a small operation that uses it. `tau auth list` shows Codex account identities and status without showing tokens.
|
|
64
63
|
|
|
65
|
-
If a credential appears in a session, log, shell history, repository,
|
|
64
|
+
If a credential appears in a session, log, shell history, repository, Telegram message, or history, treat it as exposed. First revoke or rotate it at the provider. Then replace the stored value through configuration or the auth command, restart the process that uses it if needed, and delete the exposed copy where retention rules allow. Redacting the copy does not replace rotation.
|
|
66
65
|
|
|
67
66
|
## Understand environment sanitization
|
|
68
67
|
|
|
@@ -161,16 +160,6 @@ With global `history` configuration, entries are still written to local SQLite f
|
|
|
161
160
|
|
|
162
161
|
Before turning on remote history, confirm who runs the service, its retention policy and region, who holds access keys, and which projects may be sent. One service key can search the whole shared collection. Rotate it if exposed. Removing the configuration does not delete data that was already copied. See [history](history.md) for storage and service behavior.
|
|
163
162
|
|
|
164
|
-
## Treat Nook output as published content
|
|
165
|
-
|
|
166
|
-
Nook deploys static files to HTTPS URLs. Deployments are private by default, and `--public` makes a site's files reachable by anyone. Review the built output, not just the source, before deploying. Static files must never contain provider keys, source maps with secrets, private configuration, or data that should stay on the execution environment.
|
|
167
|
-
|
|
168
|
-
Each site has a JSON KV store for the browser that survives redeploys. On a public site, anyone can read and write it. On a private site, it requires a Cloudflare Access identity, but it is still application data that every allowed user and the site's code can read. It is not a place for credentials.
|
|
169
|
-
|
|
170
|
-
Cloudflare Access should protect only the `/__nook/*` control plane at the root. Public site paths must stay reachable without Access, while private sites sign in through `/__nook/auth`. The Nook Worker validates Access JWTs; service-token headers only get a request past Access. Follow the exact Access application, audience, cookie, and service token setup in [Nook](nook.md).
|
|
171
|
-
|
|
172
|
-
The Nook session tool and the `tau nook` CLI can deploy, delete, copy, and change KV without asking for confirmation. The model's JavaScript never receives Access credentials, but Tau uses them for the Nook API calls the program makes.
|
|
173
|
-
|
|
174
163
|
## Edit configuration without widening authority accidentally
|
|
175
164
|
|
|
176
165
|
A configuration change can redirect network traffic, expose tools, or send credentials somewhere new. Follow these steps:
|
|
@@ -196,7 +185,6 @@ Tau's internal files hold the state it needs to recover. They are not configurat
|
|
|
196
185
|
- `~/.config/tau/history.sqlite` and its SQLite side files;
|
|
197
186
|
- Telegram runner session and project-preference state;
|
|
198
187
|
- managed Telegram workspaces or repository caches as a first-line repair;
|
|
199
|
-
- code-mode or compaction temporary files as if they were durable state
|
|
200
|
-
- Nook R2 or Durable Object records outside supported Nook operations.
|
|
188
|
+
- code-mode or compaction temporary files as if they were durable state.
|
|
201
189
|
|
|
202
|
-
Use `tau auth` for Codex accounts, TUI or session protocol operations for sessions, configuration for behavior, and the documented commands for history
|
|
190
|
+
Use `tau auth` for Codex accounts, TUI or session protocol operations for sessions, configuration for behavior, and the documented commands for history. If recovery reports corruption, keep the original data, stop any other process writing to it, write down the exact error and Tau version, and investigate through normal recovery before trying any repair that deletes data.
|
|
@@ -37,7 +37,6 @@ write
|
|
|
37
37
|
edit
|
|
38
38
|
view_image
|
|
39
39
|
web
|
|
40
|
-
nook
|
|
41
40
|
history
|
|
42
41
|
mcp
|
|
43
42
|
models
|
|
@@ -48,9 +47,9 @@ list_agents
|
|
|
48
47
|
interrupt_agent
|
|
49
48
|
```
|
|
50
49
|
|
|
51
|
-
A custom persona that omits `tools` gets `bash`, `write`, `edit`, `view_image`, `web`, `
|
|
50
|
+
A custom persona that omits `tools` gets `bash`, `write`, `edit`, `view_image`, `web`, `history`, `mcp`, and `models`, plus the five subagent tools. Built-in personas get the same set.
|
|
52
51
|
|
|
53
|
-
`web`, `history`, `
|
|
52
|
+
`web`, `history`, `mcp`, and `models` are not separate tools. Each enables a namespace inside the single `code` tool. `bash` enables both the Bash tools and `tau.bash` inside `code`. Tau adds `code` whenever at least one usable capability is selected; `code` itself cannot be listed. A namespace the persona does not select is missing from the `code` API and its documentation.
|
|
54
53
|
|
|
55
54
|
An empty list turns off every selectable tool:
|
|
56
55
|
|
|
@@ -60,7 +59,7 @@ tools: []
|
|
|
60
59
|
|
|
61
60
|
`tau_docs` stays available. The list also has no effect on client tools, which attached clients offer on their own.
|
|
62
61
|
|
|
63
|
-
|
|
62
|
+
Missing credentials can make calls fail, but do not remove the tool. Persona configuration is covered in [personas](personas.md).
|
|
64
63
|
|
|
65
64
|
## Tau documentation
|
|
66
65
|
|
|
@@ -143,7 +142,7 @@ Each guide covers setup, input, examples, outputs, and failures. Run `tau tool -
|
|
|
143
142
|
|
|
144
143
|
## Code-mode composition
|
|
145
144
|
|
|
146
|
-
`code` runs a one-off JavaScript program that combines the enabled capabilities: `tau.web`, `tau.history`, `tau.
|
|
145
|
+
`code` runs a one-off JavaScript program that combines the enabled capabilities: `tau.web`, `tau.history`, `tau.mcp`, `tau.bash`, and `tau.models`. The Bash, write, edit, and image tools stay available as separate tools.
|
|
147
146
|
|
|
148
147
|
### Documentation and output
|
|
149
148
|
|
|
@@ -159,7 +158,7 @@ The guide covers runtime rules, capabilities, and examples. The agent reads each
|
|
|
159
158
|
printText(await tau.docs("web"));
|
|
160
159
|
```
|
|
161
160
|
|
|
162
|
-
The agent does not re-read documentation it has already seen. MCP tool descriptions
|
|
161
|
+
The agent does not re-read documentation it has already seen. MCP tool descriptions are read separately. Programs do not need to print intermediate results.
|
|
163
162
|
|
|
164
163
|
`printText` accepts only strings; objects and arrays throw a `TypeError`. The agent selects relevant fields and explicitly formats concise plain text to save tokens. `JSON.stringify` is reserved for cases where the structure matters or machine-readable JSON is requested, with fields selected first instead of dumping whole responses.
|
|
165
164
|
|
|
@@ -184,7 +183,6 @@ Programs have no direct access to files, processes, environment variables, crede
|
|
|
184
183
|
|
|
185
184
|
- `tau.web`: metadata discovery, Exa search, and fetching page content. Search uses Auto with Dynamic Highlights to select evidence across results. An optional `objective` (1–4,096 nonblank characters) describes the broader task and facts to extract. Results include a `notices` array with retrieval qualifications such as relaxed query restrictions; each notice retains its `code`, `path`, `message`, and optional `details`. The agent prints notices alongside selected search results. The agent prefers local data, dedicated CLIs, first-party APIs, and structured sources over scraping web pages. For GitHub it uses `gh` or a Git checkout where suitable. Metadata discovery works without an Exa key; search and content fetching need one.
|
|
186
185
|
- `tau.history`: read-only search and paginated transcripts. The agent uses it only when explicitly told to look at past sessions. It treats past content as data and never follows instructions in it. See [history](history.md).
|
|
187
|
-
- `tau.nook`: deploying sites, templates, and each site's JSON KV store. The agent uses it when the user asks to publish or manage Nook. Before writing an app, the agent reads `tau.nook.skill()` in a separate call that only prints documentation. See [Nook](nook.md).
|
|
188
186
|
- `tau.mcp`: finding and calling tools and resources on configured MCP servers. When the persona allows MCP, enabled server names and optional configured descriptions are visible in the initial tool definition, before any tool call. Disabled servers and connection settings are omitted. These summaries guide discovery and do not grant permission to act. The agent reads each tool's description and schema before calling it. Connections are shared and opened on first use, and calls that change data are never retried. An `isError` result is returned as data, while protocol failures throw. MCP server configuration and trust rules apply. See [configuration reference](config-reference.md#mcpservers) and [security](security.md#trust-mcp-servers).
|
|
189
187
|
- `tau.bash`: `run`, `start`, `list`, `read`, `wait`, and `stop`. `run` returns stdout, stderr, and exit and termination fields, capturing up to 24 MiB. Beyond that it keeps the end, so check `truncated` before parsing. Optional UTF-8 `stdin` is limited to 16 MiB and closed after writing. Without `stdin` the command has no stdin at all, while `""` gives it an empty one. `start` takes no stdin. Background jobs are the same jobs as the Bash tools', with the same output limits. Jobs survive the program ending and interruption, while foreground commands are cancelled. The shell rules above apply.
|
|
190
188
|
- `tau.models`: lists a fixed set of OpenRouter models and runs standalone chats or typed decisions with them. These calls do not see the session's conversation or tools. Chat media can be paths on the agent's machine or inline padded base64 with a matching MIME type. Credentials stay on the host. Provider usage data is returned, but these charges are not included in the session's cost or usage logs. Requests can be cancelled and are never retried automatically. Limits on input, models, media, responses, and requests are the same as in [OpenRouter](openrouter.md). Check whether a response completed or was refused instead of assuming it is a full answer.
|
|
@@ -193,7 +191,7 @@ SDK and command client tools built on code mode use the same sandbox functions a
|
|
|
193
191
|
|
|
194
192
|
## Subagent tools
|
|
195
193
|
|
|
196
|
-
A subagent gets each of `bash`, `write`, `edit`, `view_image`, `web`, `history`, `
|
|
194
|
+
A subagent gets each of `bash`, `write`, `edit`, `view_image`, `web`, `history`, `mcp`, and `models` that the main persona also has, plus `tau_docs`. It never gets the subagent tools or client tools. Its Bash and file tools start in the subagent's working directory. [Subagents](subagents.md#tools) has the details.
|
|
197
195
|
|
|
198
196
|
## Client-owned tools
|
|
199
197
|
|
|
@@ -13,11 +13,10 @@ tau --help
|
|
|
13
13
|
tau attach --help
|
|
14
14
|
tau auth --help
|
|
15
15
|
tau history --help
|
|
16
|
-
tau nook --help
|
|
17
16
|
tau telegram --help
|
|
18
17
|
```
|
|
19
18
|
|
|
20
|
-
Help describes that installed binary, and `tau_docs` describes the host's installed version. An attached TUI, a remote host, and deployed history
|
|
19
|
+
Help describes that installed binary, and `tau_docs` describes the host's installed version. An attached TUI, a remote host, and deployed history services can each run a different version, so the host's documentation may not match an older client's flags or a separately deployed service.
|
|
21
20
|
|
|
22
21
|
For a local startup, `tau --debug` loads configuration and content from the current directory, prints warnings and catalog information, and exits without opening the TUI:
|
|
23
22
|
|
|
@@ -114,7 +113,7 @@ Check the exact built-in theme ID and the client's `defaultTheme`. Use `/theme:<
|
|
|
114
113
|
|
|
115
114
|
Work out which kind of tool is missing before changing configuration.
|
|
116
115
|
|
|
117
|
-
For a host tool, check the active persona's `tools` list. A list replaces the defaults. Run `tau --debug --persona <id>` for a new local session, or reload the current session while idle. Missing credentials make a tool fail but usually do not remove it.
|
|
116
|
+
For a host tool, check the active persona's `tools` list. A list replaces the defaults. Run `tau --debug --persona <id>` for a new local session, or reload the current session while idle. Missing credentials make a tool fail but usually do not remove it.
|
|
118
117
|
|
|
119
118
|
For subagents, check three things:
|
|
120
119
|
|
|
@@ -147,13 +146,13 @@ When the client detaches, its tools disappear and running calls are cancelled. R
|
|
|
147
146
|
|
|
148
147
|
Find the process that makes the request:
|
|
149
148
|
|
|
150
|
-
| Operation
|
|
151
|
-
|
|
|
152
|
-
| Model calls, host `web`,
|
|
153
|
-
| `/listen`, `/speak`, or TUI client tools | Client
|
|
154
|
-
| Telegram bot or transcription
|
|
155
|
-
| `tau
|
|
156
|
-
| Fly Sprite connection
|
|
149
|
+
| Operation | Where the credential belongs |
|
|
150
|
+
| ---------------------------------------- | ------------------------------- |
|
|
151
|
+
| Model calls, host `web`, or `history` | Host |
|
|
152
|
+
| `/listen`, `/speak`, or TUI client tools | Client |
|
|
153
|
+
| Telegram bot or transcription | Runner |
|
|
154
|
+
| `tau history` or `tau tool` commands | The machine running the command |
|
|
155
|
+
| Fly Sprite connection | Host startup configuration |
|
|
157
156
|
|
|
158
157
|
A variable set on the laptop does not reach a remote host. After changing environment variables or `apiKeys`, restart the process that uses them. `apiKeys` in a project file are rejected; check the process's environment and its global configuration.
|
|
159
158
|
|
|
@@ -223,11 +222,10 @@ A WebSocket client disconnecting does not interrupt a long-running host, but a s
|
|
|
223
222
|
|
|
224
223
|
A session saved in a newer storage format needs that Tau version or later. Newer Tau versions upgrade supported older sessions automatically. For invalid JSON, snapshot, or ID errors, keep the file and the exact error, stop other hosts using the same store, and investigate through normal recovery. Do not edit or delete the file first.
|
|
225
224
|
|
|
226
|
-
## History
|
|
225
|
+
## History or Telegram
|
|
227
226
|
|
|
228
227
|
These features have their own troubleshooting sections:
|
|
229
228
|
|
|
230
229
|
- [History](history.md#troubleshooting): missing API key, service errors, sessions missing from remote search, and local history failures.
|
|
231
|
-
- [Nook](nook.md#common-errors): configuration, Access and authorization errors, wrong visibility, and deploy rejections.
|
|
232
230
|
- [Telegram](telegram.md#troubleshooting): ignored messages, project selection, audio, voice replies, and late or missing replies.
|
|
233
231
|
- [Telegram projects and workspaces](telegram-projects.md#troubleshooting): repository preparation, provisioning, and workspace recovery.
|
|
@@ -262,6 +262,7 @@ Transcription uses Gemini and needs `GEMINI_API_KEY` or `apiKeys.google`. The TU
|
|
|
262
262
|
- Longer responses are split into balanced parts, each aiming for at most two minutes of speech.
|
|
263
263
|
- The source and rewritten text are limited to 10,000 Unicode characters, and generation stops after 32 MiB of raw audio.
|
|
264
264
|
- Voice lookups and synthesis requests have a two-minute deadline.
|
|
265
|
+
- The rewrite turns paths, commands, and formatting into spoken prose. It reads a link's label instead of its address, and refers to a bare address as a link. When the address points to an issue or pull request, the rewrite names it by number, such as "issue 620". The rewrite is model-generated, so an address may occasionally still be read aloud.
|
|
265
266
|
|
|
266
267
|
See [`speech` configuration](config-reference.md#speech) for the default Maisie and Caleb voices and for choosing your own.
|
|
267
268
|
|