@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.
Files changed (61) hide show
  1. package/dist/core/cli.js +0 -3
  2. package/dist/core/cli.js.map +1 -1
  3. package/dist/core/code_mode/sdk.js +0 -1
  4. package/dist/core/code_mode/sdk.js.map +1 -1
  5. package/dist/core/config/content_loader.js +1 -3
  6. package/dist/core/config/content_loader.js.map +1 -1
  7. package/dist/core/config/index.js +1 -1
  8. package/dist/core/config/index.js.map +1 -1
  9. package/dist/core/config/schema.js +0 -67
  10. package/dist/core/config/schema.js.map +1 -1
  11. package/dist/core/index.js +0 -1
  12. package/dist/core/index.js.map +1 -1
  13. package/dist/core/personas.js +1 -2
  14. package/dist/core/personas.js.map +1 -1
  15. package/dist/core/static/tau_docs/config-reference.md +0 -24
  16. package/dist/core/static/tau_docs/configuration.md +1 -1
  17. package/dist/core/static/tau_docs/credentials.md +3 -18
  18. package/dist/core/static/tau_docs/index.md +0 -1
  19. package/dist/core/static/tau_docs/manifest.json +0 -1
  20. package/dist/core/static/tau_docs/personas.md +3 -3
  21. package/dist/core/static/tau_docs/security.md +6 -18
  22. package/dist/core/static/tau_docs/subagents.md +0 -1
  23. package/dist/core/static/tau_docs/tools.md +6 -8
  24. package/dist/core/static/tau_docs/troubleshooting.md +10 -12
  25. package/dist/core/static/tau_docs/tui.md +1 -0
  26. package/dist/core/subagents/claude_code_runner.mjs +43 -43
  27. package/dist/core/subagents/registry.js +1 -2
  28. package/dist/core/subagents/registry.js.map +1 -1
  29. package/dist/core/subagents/types.js +1 -2
  30. package/dist/core/subagents/types.js.map +1 -1
  31. package/dist/core/tools/code.js +0 -3
  32. package/dist/core/tools/code.js.map +1 -1
  33. package/dist/core/tools/presentation.js +1 -2
  34. package/dist/core/tools/presentation.js.map +1 -1
  35. package/dist/core/tools/tool_names.js +1 -3
  36. package/dist/core/tools/tool_names.js.map +1 -1
  37. package/dist/core/utils/speech.js +6 -2
  38. package/dist/core/utils/speech.js.map +1 -1
  39. package/dist/core/version.js +1 -1
  40. package/dist/main.js +0 -23
  41. package/dist/main.js.map +1 -1
  42. package/package.json +3 -4
  43. package/dist/core/code_mode/nook.js +0 -226
  44. package/dist/core/code_mode/nook.js.map +0 -1
  45. package/dist/core/nook/cli.js +0 -258
  46. package/dist/core/nook/cli.js.map +0 -1
  47. package/dist/core/nook/client.js +0 -372
  48. package/dist/core/nook/client.js.map +0 -1
  49. package/dist/core/nook/deploy.js +0 -152
  50. package/dist/core/nook/deploy.js.map +0 -1
  51. package/dist/core/nook/index.js +0 -5
  52. package/dist/core/nook/index.js.map +0 -1
  53. package/dist/core/nook/setup.js +0 -429
  54. package/dist/core/nook/setup.js.map +0 -1
  55. package/dist/core/nook/validation.js +0 -164
  56. package/dist/core/nook/validation.js.map +0 -1
  57. package/dist/core/static/code_mode/nook/documentation.md +0 -144
  58. package/dist/core/static/code_mode/nook/sandbox_runner.mjs +0 -1
  59. package/dist/core/static/tau_docs/nook.md +0 -270
  60. package/dist/nook/worker/index.js +0 -1175
  61. 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 Nook targets, model notices, or hosted-environment connections;
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, history replication, and Nook requests for the session tool. 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.
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; or
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, Nook deployment, 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.
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; or
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 and Nook. 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.
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.
@@ -26,7 +26,6 @@ A native Tau subagent can receive these tools. [Claude Code subagents](#claude-c
26
26
  - `view_image`
27
27
  - `web`
28
28
  - `history`
29
- - `nook`, when Nook is configured
30
29
  - `mcp`, when the host has enabled MCP servers
31
30
  - `models`
32
31
 
@@ -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`, `nook`, `history`, `mcp`, and `models`, plus the five subagent tools. Built-in personas get the same set.
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`, `nook`, `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.
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
- `nook` has one more condition: the host configuration must include a Nook target. Without one, Tau leaves the capability out even if the persona lists it. For other tools, missing credentials or service configuration can make calls fail, but do not remove the tool. Persona configuration is covered in [personas](personas.md).
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.nook`, `tau.mcp`, `tau.bash`, and `tau.models`. The Bash, write, edit, and image tools stay available as separate tools.
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 and Nook's authoring guide are read in their own separate steps. Programs do not need to print intermediate results.
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`, `nook`, `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.
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 or Nook 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.
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. Nook is the exception: it also needs `nook` configuration.
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 | Where the credential belongs |
151
- | --- | --- |
152
- | Model calls, host `web`, `history`, or `nook` | Host |
153
- | `/listen`, `/speak`, or TUI client tools | Client |
154
- | Telegram bot or transcription | Runner |
155
- | `tau nook`, `tau history`, or `tau tool` commands | The machine running the command |
156
- | Fly Sprite connection | Host startup configuration |
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, Nook, or Telegram
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