@markusylisiurunen/tau 0.3.90 → 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 (88) 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/history/history_manager.js +188 -94
  12. package/dist/core/history/history_manager.js.map +1 -1
  13. package/dist/core/history/history_store_worker.js +21 -0
  14. package/dist/core/history/history_store_worker.js.map +1 -0
  15. package/dist/core/history/local_history_store.js +11 -5
  16. package/dist/core/history/local_history_store.js.map +1 -1
  17. package/dist/core/history/threaded_history_store.js +107 -0
  18. package/dist/core/history/threaded_history_store.js.map +1 -0
  19. package/dist/core/index.js +0 -1
  20. package/dist/core/index.js.map +1 -1
  21. package/dist/core/personas.js +1 -2
  22. package/dist/core/personas.js.map +1 -1
  23. package/dist/core/static/tau_docs/client-tools.md +1 -1
  24. package/dist/core/static/tau_docs/config-reference.md +0 -24
  25. package/dist/core/static/tau_docs/configuration.md +1 -1
  26. package/dist/core/static/tau_docs/credentials.md +3 -18
  27. package/dist/core/static/tau_docs/history.md +9 -3
  28. package/dist/core/static/tau_docs/index.md +0 -1
  29. package/dist/core/static/tau_docs/manifest.json +0 -1
  30. package/dist/core/static/tau_docs/node-sdk.md +1 -1
  31. package/dist/core/static/tau_docs/personas.md +3 -3
  32. package/dist/core/static/tau_docs/security.md +6 -18
  33. package/dist/core/static/tau_docs/session-protocol-methods.md +1 -1
  34. package/dist/core/static/tau_docs/session-protocol.md +2 -0
  35. package/dist/core/static/tau_docs/subagents.md +0 -1
  36. package/dist/core/static/tau_docs/tools.md +6 -8
  37. package/dist/core/static/tau_docs/troubleshooting.md +10 -12
  38. package/dist/core/static/tau_docs/tui.md +3 -0
  39. package/dist/core/subagents/claude_code_runner.mjs +43 -43
  40. package/dist/core/subagents/registry.js +1 -2
  41. package/dist/core/subagents/registry.js.map +1 -1
  42. package/dist/core/subagents/types.js +1 -2
  43. package/dist/core/subagents/types.js.map +1 -1
  44. package/dist/core/tools/code.js +0 -3
  45. package/dist/core/tools/code.js.map +1 -1
  46. package/dist/core/tools/presentation.js +1 -2
  47. package/dist/core/tools/presentation.js.map +1 -1
  48. package/dist/core/tools/tool_names.js +1 -3
  49. package/dist/core/tools/tool_names.js.map +1 -1
  50. package/dist/core/utils/speech.js +6 -2
  51. package/dist/core/utils/speech.js.map +1 -1
  52. package/dist/core/version.js +1 -1
  53. package/dist/host/client_tool_broker.js +8 -4
  54. package/dist/host/client_tool_broker.js.map +1 -1
  55. package/dist/host/local_session_host.js +3 -2
  56. package/dist/host/local_session_host.js.map +1 -1
  57. package/dist/main.js +4 -26
  58. package/dist/main.js.map +1 -1
  59. package/dist/protocol/session_protocol.d.ts +2 -2
  60. package/dist/protocol/session_protocol.js +2 -2
  61. package/dist/protocol/session_protocol.js.map +1 -1
  62. package/dist/sdk/local_client.js +1 -0
  63. package/dist/sdk/local_client.js.map +1 -1
  64. package/dist/sdk/types.d.ts +7 -0
  65. package/dist/tui/session_chat_app.js +1 -1
  66. package/dist/tui/session_chat_app.js.map +1 -1
  67. package/dist/tui/session_chat_controller.js +12 -1
  68. package/dist/tui/session_chat_controller.js.map +1 -1
  69. package/package.json +3 -4
  70. package/dist/core/code_mode/nook.js +0 -226
  71. package/dist/core/code_mode/nook.js.map +0 -1
  72. package/dist/core/nook/cli.js +0 -258
  73. package/dist/core/nook/cli.js.map +0 -1
  74. package/dist/core/nook/client.js +0 -372
  75. package/dist/core/nook/client.js.map +0 -1
  76. package/dist/core/nook/deploy.js +0 -152
  77. package/dist/core/nook/deploy.js.map +0 -1
  78. package/dist/core/nook/index.js +0 -5
  79. package/dist/core/nook/index.js.map +0 -1
  80. package/dist/core/nook/setup.js +0 -429
  81. package/dist/core/nook/setup.js.map +0 -1
  82. package/dist/core/nook/validation.js +0 -164
  83. package/dist/core/nook/validation.js.map +0 -1
  84. package/dist/core/static/code_mode/nook/documentation.md +0 -144
  85. package/dist/core/static/code_mode/nook/sandbox_runner.mjs +0 -1
  86. package/dist/core/static/tau_docs/nook.md +0 -270
  87. package/dist/nook/worker/index.js +0 -1175
  88. package/dist/nook/worker/index.js.map +0 -1
@@ -0,0 +1,107 @@
1
+ import { Worker } from "node:worker_threads";
2
+ export class ThreadedHistoryStore {
3
+ path;
4
+ worker;
5
+ pending = new Map();
6
+ nextId = 0;
7
+ closed = false;
8
+ constructor(path) {
9
+ this.path = path;
10
+ }
11
+ createSession(...args) {
12
+ return this.request("createSession", args);
13
+ }
14
+ append(...args) {
15
+ return this.request("append", args);
16
+ }
17
+ truncateFromSources(...args) {
18
+ return this.request("truncateFromSources", args);
19
+ }
20
+ search(...args) {
21
+ return this.request("search", args);
22
+ }
23
+ read(...args) {
24
+ return this.request("read", args);
25
+ }
26
+ listPendingOperations(...args) {
27
+ return this.request("listPendingOperations", args);
28
+ }
29
+ listPendingOperationLanes(...args) {
30
+ return this.request("listPendingOperationLanes", args);
31
+ }
32
+ acknowledgeOperations(...args) {
33
+ return this.request("acknowledgeOperations", args);
34
+ }
35
+ quarantineReplicationSession(...args) {
36
+ return this.request("quarantineReplicationSession", args);
37
+ }
38
+ clearReplicationFailure(...args) {
39
+ return this.request("clearReplicationFailure", args);
40
+ }
41
+ listReplicationFailures(...args) {
42
+ return this.request("listReplicationFailures", args);
43
+ }
44
+ close() {
45
+ this.closed = true;
46
+ const worker = this.worker;
47
+ this.fail(new Error("history store is closed"));
48
+ if (worker)
49
+ void worker.terminate();
50
+ }
51
+ request(method, args) {
52
+ if (this.closed)
53
+ return Promise.reject(new Error("history store is closed"));
54
+ if (!this.worker) {
55
+ const worker = new Worker(new URL("./history_store_worker.js", import.meta.url), {
56
+ workerData: { path: this.path },
57
+ execArgv: [],
58
+ });
59
+ this.worker = worker;
60
+ worker.on("message", ({ id, result, error }) => {
61
+ const pending = this.pending.get(id);
62
+ if (!pending)
63
+ return;
64
+ this.pending.delete(id);
65
+ if (error)
66
+ pending.reject(Object.assign(new Error(error.message), { errcode: error.errcode }));
67
+ else
68
+ pending.resolve(result);
69
+ if (this.pending.size === 0)
70
+ worker.unref();
71
+ });
72
+ worker.on("error", (error) => {
73
+ if (this.worker === worker)
74
+ this.fail(error);
75
+ });
76
+ worker.on("exit", (code) => {
77
+ if (this.worker === worker)
78
+ this.fail(new Error(`history worker exited (${code})`));
79
+ });
80
+ }
81
+ const worker = this.worker;
82
+ worker.ref();
83
+ return new Promise((resolve, reject) => {
84
+ const id = ++this.nextId;
85
+ this.pending.set(id, {
86
+ resolve: (value) => resolve(value),
87
+ reject,
88
+ });
89
+ try {
90
+ worker.postMessage({ id, method, args });
91
+ }
92
+ catch (error) {
93
+ this.pending.delete(id);
94
+ if (this.pending.size === 0)
95
+ worker.unref();
96
+ reject(error);
97
+ }
98
+ });
99
+ }
100
+ fail(error) {
101
+ this.worker = undefined;
102
+ for (const pending of this.pending.values())
103
+ pending.reject(error);
104
+ this.pending.clear();
105
+ }
106
+ }
107
+ //# sourceMappingURL=threaded_history_store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threaded_history_store.js","sourceRoot":"","sources":["../../../src/core/history/threaded_history_store.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ export { buildVirtualBundle, createDefaultConfigDeps, loadAllContent, loadConfig
5
5
  export { printDebugInfo } from "./debug.js";
6
6
  export * from "./diff_review/index.js";
7
7
  export * from "./modes/index.js";
8
- export { NookCliError, printNookHelp, runNookCommand, } from "./nook/index.js";
9
8
  export { personas } from "./personas.js";
10
9
  export { ChatRuntime } from "./runtime/chat_runtime.js";
11
10
  export { createDefaultCoreDeps } from "./runtime/deps.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,YAAY,EACZ,eAAe,GAChB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EACL,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAcpG,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAK/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,YAAY,EACZ,eAAe,GAChB,MAAM,0BAA0B,CAAC;AASlC,OAAO,EACL,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAcpG,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAK/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,kCAAkC,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,oCAAoC,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { resolveModel } from "./models/catalog.js";
2
- import { TOOL_NAME_BASH, TOOL_NAME_EDIT, TOOL_NAME_HISTORY, TOOL_NAME_INTERRUPT_AGENT, TOOL_NAME_LIST_AGENTS, TOOL_NAME_MCP, TOOL_NAME_MODELS, TOOL_NAME_NOOK, TOOL_NAME_SEND_INPUT_TO_AGENT, TOOL_NAME_SPAWN_AGENT, TOOL_NAME_VIEW_IMAGE, TOOL_NAME_WAIT_FOR_AGENTS, TOOL_NAME_WEB, TOOL_NAME_WRITE, } from "./tools/tool_names.js";
2
+ import { TOOL_NAME_BASH, TOOL_NAME_EDIT, TOOL_NAME_HISTORY, TOOL_NAME_INTERRUPT_AGENT, TOOL_NAME_LIST_AGENTS, TOOL_NAME_MCP, TOOL_NAME_MODELS, TOOL_NAME_SEND_INPUT_TO_AGENT, TOOL_NAME_SPAWN_AGENT, TOOL_NAME_VIEW_IMAGE, TOOL_NAME_WAIT_FOR_AGENTS, TOOL_NAME_WEB, TOOL_NAME_WRITE, } from "./tools/tool_names.js";
3
3
  const BLOCK_GENERAL_PURPOSE_PREAMBLE = `
4
4
  You are a helpful assistant. Your primary mode is conversation: answer questions, explain concepts, talk through problems, or help with any topic the user brings up. You have access to tools for working with code and files, but reach for them only when they genuinely help.
5
5
 
@@ -290,7 +290,6 @@ const BASE_TOOLS = [
290
290
  TOOL_NAME_EDIT,
291
291
  TOOL_NAME_VIEW_IMAGE,
292
292
  TOOL_NAME_WEB,
293
- TOOL_NAME_NOOK,
294
293
  TOOL_NAME_HISTORY,
295
294
  TOOL_NAME_MCP,
296
295
  TOOL_NAME_MODELS,
@@ -1 +1 @@
1
- {"version":3,"file":"personas.js","sourceRoot":"","sources":["../../src/core/personas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"personas.js","sourceRoot":"","sources":["../../src/core/personas.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ The TUI also offers the configured command client tools selected for its own wor
15
15
 
16
16
  A Telegram runner offers the built-in `send_photo_to_telegram`, `send_video_to_telegram`, `send_audio_to_telegram`, and `send_document_to_telegram` tools, plus the command client tools selected by each prepared workspace's Tau configuration. The built-in [file delivery tools](tools.md#sending-files-to-telegram) send files to the session's chat and are not affected by `enabledClientTools`. The runner does not offer the TUI's tools. The session's workspace, whether repository, persistent directory, or composite, decides which configuration selects its tools. See [Telegram projects and workspaces](telegram-projects.md) for workspace types.
17
17
 
18
- Node SDK clients can pass `TauSdkClientTool` handlers when they initialize. The same rules for routing, cancellation, and execution-environment access apply.
18
+ Node SDK clients can pass `TauSdkClientTool` handlers when they initialize. Their schemas may set `executionTimeoutMs` to `null` for no execution deadline, or omit it for the 60-second default. Configured command tools require a positive timeout and do not accept `null`. The same rules for routing, cancellation, and execution-environment access apply.
19
19
 
20
20
  Only a client that is observing a session can add tools to it. The tools disappear when that client detaches or disconnects. When several clients observe one session, only one may offer a given tool name, and Tau rejects the later client if names collide. Client tool names also must not match host tools or built-in tools.
21
21
 
@@ -30,7 +30,6 @@ Project and global content can change which persona ids exist. A configured defa
30
30
  | `subagents` | Object | Global, project | Most-specific `launchModels` list | Session runtime; `/reload` or new session |
31
31
  | `modelSystemNotices` | String map | Global, project | Merge by model target | Session runtime; `/reload`, affects later inputs |
32
32
  | `flySprites` | Object | Global, project | Merge connection fields | Host startup; host restart |
33
- | `nook` | Object | Global, project | Most-specific complete object | Host tool runtime; `/reload` or new session |
34
33
  | `history` | Object | Global only | One global object | Host startup; host restart |
35
34
  | `mcpServers` | Object keyed by server name | Global and project | Merge names; nearer entry replaces | Host startup; host restart |
36
35
 
@@ -180,29 +179,6 @@ Speech uses Eleven v4 Turbo, the delivery note `[Brisk but relaxed, speaking nat
180
179
 
181
180
  The TUI reads these speech settings from its own client configuration, including project configuration discovered from its startup directory, also when attached to a remote host. It does not load vocabulary from the remote session's repository. Telegram reads it from the runner's startup configuration, not from session workspaces. Restart the respective process after changes. This setting does not affect the explicit voices supplied to `tau tool speech-generate`.
182
181
 
183
- ### `nook`
184
-
185
- Connection details for one existing Nook deployment:
186
-
187
- | Nested field | Type | Required | Contract |
188
- | --- | --- | --- | --- |
189
- | `domain` | Non-empty string | Yes | DNS hostname, optionally supplied as a plain `http://` or `https://` origin with no port, path, query, credentials, or fragment |
190
- | `accessClientId` | Non-empty string | No | Cloudflare Access service-token client id |
191
- | `accessClientSecret` | Non-empty string | No | Inline service-token secret |
192
- | `accessClientSecretEnv` | Non-empty string | No | Host environment variable containing the secret |
193
-
194
- ```json
195
- {
196
- "nook": {
197
- "domain": "apps.example.com",
198
- "accessClientId": "8f0c...access",
199
- "accessClientSecretEnv": "NOOK_ACCESS_CLIENT_SECRET"
200
- }
201
- }
202
- ```
203
-
204
- Tau normalizes the domain to a lowercase hostname. A non-empty value from `accessClientSecretEnv` wins over `accessClientSecret`. The `nook` tool is available only when the active persona allows it and the effective configuration contains this object. See [Nook](nook.md).
205
-
206
182
  ### `history`
207
183
 
208
184
  A global-only remote history target:
@@ -180,7 +180,7 @@ The Telegram runner loads its speech provider and its runner config at startup.
180
180
 
181
181
  **Editing the host's files for a hosted environment.** A hosted execution environment has its own project files and home. Put project `.tau` content on that environment, not at a similar path on the host.
182
182
 
183
- **Expecting nested objects to deep-merge.** A nearer `mcpServers` entry replaces the whole entry with the same name, including its credentials, and a nearer `nook` object replaces the broader one completely. Repeat every setting the entry needs.
183
+ **Expecting nested objects to deep-merge.** A nearer `mcpServers` entry replaces the whole entry with the same name, including its credentials. Repeat every setting the entry needs.
184
184
 
185
185
  **Expecting `/reload` to restart the client or server.** Reload affects only the current session. Restart the process that reads the setting at startup.
186
186
 
@@ -15,7 +15,6 @@ The host makes model calls and runs services such as web search and remote histo
15
15
  | OpenAI Codex OAuth accounts | Session host home |
16
16
  | Exa-backed `web.search` and `web.fetch` | Session host |
17
17
  | Remote history replication and queries | Session host |
18
- | Nook host tool | Session host |
19
18
  | Fly Sprite API | Session host startup |
20
19
  | `/listen` and `/speak` | TUI client |
21
20
  | Telegram transcription and voice responses | Telegram runner |
@@ -113,9 +112,9 @@ tau auth logout codex --account developer@example.com
113
112
 
114
113
  Every new request reads the current auth storage, in every session. Switching accounts takes effect without a host restart and does not affect a request already in progress.
115
114
 
116
- ## History and Nook indirection
115
+ ## History indirection
117
116
 
118
- History and Nook can name environment variables instead of embedding secrets in configuration.
117
+ History can name environment variables instead of embedding secrets in configuration.
119
118
 
120
119
  Remote history is global-only configuration:
121
120
 
@@ -136,20 +135,6 @@ History resolves its API key in this order:
136
135
 
137
136
  If `history` is configured but no key is found, the host fails to start. Without `history`, history stays on the host machine. See [history](history.md) for service behavior.
138
137
 
139
- A Nook Access service token uses an ID plus a secret:
140
-
141
- ```json
142
- {
143
- "nook": {
144
- "domain": "apps.example.net",
145
- "accessClientId": "service-token-id.access",
146
- "accessClientSecretEnv": "NOOK_ACCESS_CLIENT_SECRET"
147
- }
148
- }
149
- ```
150
-
151
- If the variable named by `accessClientSecretEnv` has a non-empty value, it wins over inline `accessClientSecret`. Otherwise Tau uses the inline value. The process that performs the Nook operation reads the secret: the host for the session tool, and the CLI process for `tau nook` commands. Nook setup and destroy also accept the command flags and environment variables listed in [Nook](nook.md). See [Nook](nook.md).
152
-
153
138
  ## Hosted execution credentials
154
139
 
155
140
  The Fly Sprite connection is host configuration. It must be in place when the host starts, before a client asks for a Sprite session. The connection needs a token:
@@ -174,7 +159,7 @@ Check a credential by using it, without printing its value:
174
159
  - Run `tau auth list` to check Codex identities, the active account, refresh status, and usage windows.
175
160
  - Restart the process that uses `apiKeys` after changing them.
176
161
  - Make a small request with the intended persona to verify model authentication and endpoint access.
177
- - After setting Exa, speech, history, Nook, or Fly credentials, use that feature. If a credential is missing, the error names where Tau looks for it.
162
+ - After setting Exa, speech, history, or Fly credentials, use that feature. If a credential is missing, the error names where Tau looks for it.
178
163
  - For remote sessions, first confirm which machine is the host and which process runs the feature.
179
164
 
180
165
  Do not check by printing the environment, `config.json`, or `auth.json` into a transcript. If a secret ends up in shell history, logs, a session, or version control, rotate it at the provider and replace it. Broader handling guidance is in [security](security.md) and failure checks are in [troubleshooting](troubleshooting.md).
@@ -23,7 +23,13 @@ For each session, history stores the creation attributes and the active transcri
23
23
 
24
24
  `<system>...</system>` blocks at the start of user messages stay in history. Tool arguments and results can contain file contents, command output, and other sensitive data, so treat the database as private. Tau creates its directory and file with private permissions, but the host user and the machine's administrators can still read them. Never copy the database into a repository or share it.
25
25
 
26
- Recording history is best effort. If the database cannot open, or a later write fails, the session keeps running. Tau adds one `history unavailable` warning to the session, which stays in the session, and turns history off until the host restarts. A restart tries to open the database again.
26
+ Recording history is best effort and never waits for database locks on the agent's event loop. The host buffers changes in memory and writes them in order from a background worker. Temporary SQLite contention delays recording; the worker retries automatically, including when opening the database. Normal appends and rewinds retain their order while waiting.
27
+
28
+ The buffer holds up to 64 MiB of serialized changes per host. When it fills, new changes are dropped until space is available. Other local write errors drop the affected change rather than disabling history. Later changes in the same session are still recorded. Session files and agent work are unaffected by history failures.
29
+
30
+ Pending changes have not reached durable storage. A crash can lose them; normal shutdown gives recording and replication up to two seconds to flush. Events already committed to SQLite remain on disk, including any pending remote replication. Tau does not automatically reconstruct missing history from session files.
31
+
32
+ Hosts emit `history_recording` diagnostics with a `delayed`, `dropped`, or `recovered` status, a session ID, and pending operation and byte counts. The TUI displays them, headless hosts write them to stderr, and in-process SDK hosts deliver them through `onDiagnostic`. Repeated drop diagnostics are rate-limited. A recording gap does not stop later recording or require a host restart.
27
33
 
28
34
  ## How session operations affect history
29
35
 
@@ -202,13 +208,13 @@ Cloudflare problems show up in the normal Worker logs, Cron Events, and D1 diagn
202
208
 
203
209
  **The agent has no history capability.** The active persona must select `history`. Fix the persona and run `/reload` while idle.
204
210
 
205
- **The history capability returns a service error while the session works.** Remote searches and replication can fail without affecting the session. Check that the endpoint is reachable and read the Worker logs, without printing the key. Local recording continues unless the session also shows a `history unavailable` warning.
211
+ **The history capability returns a service error while the session works.** Remote searches and replication can fail without affecting the session or local recording. Check that the endpoint is reachable and read the Worker logs, without printing the key. Check `history_recording` diagnostics separately for local write failures.
206
212
 
207
213
  **The browser keeps asking for credentials.** Use username `tau` and the viewer password from the latest setup. The API key is for hosts and does not work in the browser.
208
214
 
209
215
  **A session does not appear in remote search.** Confirm the host was restarted with the remote config, the session was used while the config was active, and enough history activity has happened to send the outbox. Check host logs for `history_replication_failed`. A permanent rejection affects only the named session, while other failures are retried. Summaries are not immediate.
210
216
 
211
- **Local history became unavailable.** On the host, check that you are running as the expected user and home, and check file access, free space, and ownership of `~/.config/tau`, the Node version, and whether another process is using the database. A restart is needed to reopen history after a local failure. Do not open, edit, replace, or delete the SQLite files as a first repair, and do not inspect outbox rows or keys.
217
+ **Local history is delayed or dropping changes.** Brief SQLite contention is retried automatically. For sustained failures, check the host's `history_recording` diagnostics, file access, free space, ownership of `~/.config/tau`, and whether another process holds a long database transaction. Fixing the underlying problem lets later writes proceed without restarting the host; dropped changes remain gaps. `tau history status` reports remote replication quarantines, not the live recording buffer. Do not edit, replace, or delete the SQLite files as a first repair, and do not inspect outbox rows or keys.
212
218
 
213
219
  **Search finds material removed from the model's context.** This is expected after compaction. After a rewind, the removed entries should disappear; if the remote copy still has them, wait for the deletion to replicate.
214
220
 
@@ -35,7 +35,6 @@ These pages describe how to install, configure, operate, and integrate the versi
35
35
  - [Sessions](sessions.md): creating sessions, turns, queueing, compaction, rewind, recovery, and storage.
36
36
  - [Remote sessions](remote-sessions.md): `serve`, `attach`, remote paths, and authentication.
37
37
  - [History](history.md): searchable local history, optional remote replication, and the history tool.
38
- - [Nook](nook.md): setting up and running the optional static mini-app platform.
39
38
  - [Telegram](telegram.md): running the Telegram runner, bot access, chat commands, attachments, and recovery.
40
39
  - [Telegram projects and workspaces](telegram-projects.md): repository, persistent-directory, and composite projects, workspace lifecycle, and provision hooks.
41
40
 
@@ -25,7 +25,6 @@
25
25
  "node-sdk.md",
26
26
  "sdk-diff-review.md",
27
27
  "history.md",
28
- "nook.md",
29
28
  "telegram.md",
30
29
  "telegram-projects.md",
31
30
  "security.md",
@@ -52,7 +52,7 @@ type TauSdkClientOptions = {
52
52
 
53
53
  `persona`, `reasoning`, and `noAgentContextFiles` apply to sessions created by this host. `connectTimeoutMs` defaults to 5,000 ms. Default initialization metadata is `{ client: { name: "tau-sdk", version: "1" } }`.
54
54
 
55
- The in-process host never writes background diagnostics to stdout or stderr. Set `onDiagnostic` to receive them as structured objects, such as history replication failures that will be retried, and route them to your application's logging.
55
+ The in-process host never writes background diagnostics to stdout or stderr. Set `onDiagnostic` to receive them as structured objects and route them to your application's logging. `history_recording` reports delayed, dropped, or recovered local recording, with a session ID and pending operation and byte counts. `history_replication_failed` reports remote delivery failures. Neither stops agent work; see [history](history.md) for retry behavior and durability limits.
56
56
 
57
57
  By default, creating an in-process client starts one background check of the model catalog against `pi.dev`. The host loads `~/.config/tau/models-store.json` first, never refreshes on a timer, and keeps each session on the catalog it started with until `session.reload()`. Set `refreshModelCatalog: false` to skip this client's check, or set `TAU_OFFLINE` to skip automatic checks for the whole process. Neither removes an existing cache or blocks an explicit `tau models refresh`. See [models](models.md) for details and [security](security.md) for why the catalog is trusted.
58
58
 
@@ -97,12 +97,12 @@ Every persona can use all discovered skills. If a custom persona omits `tools`,
97
97
 
98
98
  The selectable tool names are:
99
99
 
100
- - `bash`, `write`, `edit`, `view_image`, `web`, `nook`, `history`, `mcp`, and `models`;
100
+ - `bash`, `write`, `edit`, `view_image`, `web`, `history`, `mcp`, and `models`;
101
101
  - `spawn_agent`, `send_input_to_agent`, `wait_for_agents`, `list_agents`, and `interrupt_agent`.
102
102
 
103
- Names such as `web`, `nook`, `history`, `mcp`, and `models` enable capabilities inside the `code` tool, and `bash` also enables `tau.bash`. Tau builds the `code` tool from whichever of these capabilities are selected and usable.
103
+ Names such as `web`, `history`, `mcp`, and `models` enable capabilities inside the `code` tool, and `bash` also enables `tau.bash`. Tau builds the `code` tool from whichever of these capabilities are selected and usable.
104
104
 
105
- A `tools` list replaces the defaults. Names are lowercased and duplicates removed. An unknown name makes the persona invalid. `tools: []` gives the persona none of these tools. The built-in `tau_docs` tool is always available, independent of this list. `nook` works only when Nook is configured, and `mcp` only when the host has enabled MCP servers. [Tools](tools.md) explains eligibility and ownership.
105
+ A `tools` list replaces the defaults. Names are lowercased and duplicates removed. An unknown name makes the persona invalid. `tools: []` gives the persona none of these tools. The built-in `tau_docs` tool is always available, independent of this list. `mcp` works only when the host has enabled MCP servers. [Tools](tools.md) explains eligibility and ownership.
106
106
 
107
107
  ## Selecting a persona
108
108
 
@@ -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.
@@ -41,7 +41,7 @@ params: {
41
41
  name: string;
42
42
  description: string;
43
43
  parameters: unknown;
44
- executionTimeoutMs?: number;
44
+ executionTimeoutMs?: number | null; // omitted: 60 seconds; null: no execution deadline
45
45
  }>;
46
46
  };
47
47
  }
@@ -228,6 +228,8 @@ An initialized client that advertised a tool can receive:
228
228
  }
229
229
  ```
230
230
 
231
+ `executionDeadlineMs` is a positive duration in milliseconds, or `null` when the advertised tool has no execution deadline. Omitting `executionTimeoutMs` from the tool definition uses 60 seconds; setting it to `null` disables only the execution deadline. Acknowledgement deadlines and cancellation on interruption or client detach still apply.
232
+
231
233
  Acknowledge promptly with `session.clientTool.ack`, optionally with a partial presentation for the running tool card. Start work only after the acknowledgement returns `{ accepted: true }`. Then send exactly one `session.clientTool.result` with `{ ok: true, content }` or `{ ok: false, error }`, optionally with a separate presentation for the finished card. `content` is an ordered array of text and image blocks. Both presentations may contain `subject`, `subjectWrap`, `details`, and `metadata`. The host sets the action and operation and fills in omitted fields. Fields you set are kept unchanged once they pass validation, while defaults are truncated the way Tau truncates its own cards. An empty `details` or `metadata` array hides that default.
232
234
 
233
235
  A successful result is rejected until the acknowledgement has completed. If preparation fails, send an error result before acknowledging; the host records a preparation failure and the tool never runs. If no result arrives, because of a timeout, cancellation, detach, or other failure, the host shows a complete default card. The result method returns `{ accepted: boolean }`; `false` means the result does not fit the call's current state or the call no longer expects it.
@@ -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.