@markusylisiurunen/tau 0.3.97 → 0.3.99

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 (84) hide show
  1. package/dist/code_mode/runtime.js +1 -1
  2. package/dist/code_mode/runtime.js.map +1 -1
  3. package/dist/core/code_mode/agents.js +9 -1
  4. package/dist/core/code_mode/agents.js.map +1 -1
  5. package/dist/core/code_mode/models.js +69 -21
  6. package/dist/core/code_mode/models.js.map +1 -1
  7. package/dist/core/config/content_loader.js +27 -1
  8. package/dist/core/config/content_loader.js.map +1 -1
  9. package/dist/core/config/schema.js +9 -3
  10. package/dist/core/config/schema.js.map +1 -1
  11. package/dist/core/models/model_id.js +12 -0
  12. package/dist/core/models/model_id.js.map +1 -0
  13. package/dist/core/models/openrouter.js +63 -52
  14. package/dist/core/models/openrouter.js.map +1 -1
  15. package/dist/core/models/openrouter_budget.js +54 -0
  16. package/dist/core/models/openrouter_budget.js.map +1 -0
  17. package/dist/core/models/openrouter_media.js +20 -17
  18. package/dist/core/models/openrouter_media.js.map +1 -1
  19. package/dist/core/persona_selection.js +38 -0
  20. package/dist/core/persona_selection.js.map +1 -0
  21. package/dist/core/runtime/chat_runtime.js +20 -3
  22. package/dist/core/runtime/chat_runtime.js.map +1 -1
  23. package/dist/core/session/auto_compaction_threshold.js.map +1 -1
  24. package/dist/core/static/code_mode/history/documentation.md +1 -1
  25. package/dist/core/static/code_mode/sandbox_runner.mjs +1 -1
  26. package/dist/core/static/tau_docs/code-mode.md +2 -2
  27. package/dist/core/static/tau_docs/configuration.md +1 -1
  28. package/dist/core/static/tau_docs/history.md +6 -3
  29. package/dist/core/static/tau_docs/node-sdk.md +5 -5
  30. package/dist/core/static/tau_docs/openrouter.md +11 -10
  31. package/dist/core/static/tau_docs/ownership-and-scope.md +1 -1
  32. package/dist/core/static/tau_docs/personas.md +18 -3
  33. package/dist/core/static/tau_docs/remote-sessions.md +1 -1
  34. package/dist/core/static/tau_docs/session-protocol-methods.md +15 -6
  35. package/dist/core/static/tau_docs/session-protocol.md +2 -2
  36. package/dist/core/static/tau_docs/sessions.md +15 -4
  37. package/dist/core/static/tau_docs/subagents.md +10 -0
  38. package/dist/core/static/tau_docs/telegram-projects.md +4 -7
  39. package/dist/core/static/tau_docs/telegram.md +67 -21
  40. package/dist/core/static/tau_docs/troubleshooting.md +2 -0
  41. package/dist/core/static/tau_docs/tui.md +2 -2
  42. package/dist/core/subagents/launch_model.js +4 -7
  43. package/dist/core/subagents/launch_model.js.map +1 -1
  44. package/dist/core/subagents/native_subagent_runtime.js +1 -1
  45. package/dist/core/subagents/native_subagent_runtime.js.map +1 -1
  46. package/dist/core/subagents/registry.js.map +1 -1
  47. package/dist/core/telegram/adapter.js +70 -68
  48. package/dist/core/telegram/adapter.js.map +1 -1
  49. package/dist/core/telegram/config.js +43 -52
  50. package/dist/core/telegram/config.js.map +1 -1
  51. package/dist/core/telegram/local_session_client.js +5 -2
  52. package/dist/core/telegram/local_session_client.js.map +1 -1
  53. package/dist/core/telegram/runtime.js +14 -1
  54. package/dist/core/telegram/runtime.js.map +1 -1
  55. package/dist/core/telegram/session_manager.js +6 -7
  56. package/dist/core/telegram/session_manager.js.map +1 -1
  57. package/dist/core/tool/openrouter.js +1 -1
  58. package/dist/core/tool/openrouter.js.map +1 -1
  59. package/dist/core/tools/catalog.js +1 -0
  60. package/dist/core/tools/catalog.js.map +1 -1
  61. package/dist/core/tools/code_mode_worker.js +2 -2
  62. package/dist/core/tools/code_mode_worker.js.map +1 -1
  63. package/dist/core/utils/model_notices.js +0 -19
  64. package/dist/core/utils/model_notices.js.map +1 -1
  65. package/dist/core/version.js +1 -1
  66. package/dist/host/hosted_ephemeral_agent_session.js +1 -1
  67. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  68. package/dist/host/local_session_host.js +51 -15
  69. package/dist/host/local_session_host.js.map +1 -1
  70. package/dist/host/session_host.js.map +1 -1
  71. package/dist/host/session_protocol_handler.js +9 -1
  72. package/dist/host/session_protocol_handler.js.map +1 -1
  73. package/dist/protocol/session_protocol.d.ts +7 -2
  74. package/dist/protocol/session_protocol.js +21 -8
  75. package/dist/protocol/session_protocol.js.map +1 -1
  76. package/dist/sdk/local_client.d.ts +6 -0
  77. package/dist/sdk/local_client.js +14 -6
  78. package/dist/sdk/local_client.js.map +1 -1
  79. package/dist/sdk/session.js +4 -3
  80. package/dist/sdk/session.js.map +1 -1
  81. package/dist/sdk/types.d.ts +2 -2
  82. package/dist/tui/session_chat_controller.js +4 -1
  83. package/dist/tui/session_chat_controller.js.map +1 -1
  84. package/package.json +5 -5
@@ -1,8 +1,9 @@
1
1
  import { z } from "zod";
2
2
  import { getApiKeyForProvider } from "../config/schema.js";
3
3
  import { parseMediaJson, readMediaResponse } from "../utils/media_validation.js";
4
+ import { withOpenRouterBudget } from "./openrouter_budget.js";
4
5
  import { decisionResponse, parseDecisionInput, validateDecisionAnswers, } from "./openrouter_decisions.js";
5
- import { decodeOpenRouterText, OPENROUTER_REQUEST_BYTES, OPENROUTER_TEXT_BYTES, prepareOpenRouterAttachments, } from "./openrouter_media.js";
6
+ import { decodeOpenRouterText, OPENROUTER_REQUEST_BYTES, OPENROUTER_RESPONSE_BYTES, OPENROUTER_TEXT_BYTES, prepareOpenRouterAttachments, } from "./openrouter_media.js";
6
7
  export const openRouterModels = {
7
8
  decisions: [
8
9
  {
@@ -116,7 +117,7 @@ function requestFailure(status) {
116
117
  async function requestOpenRouter(operation, body, options) {
117
118
  const payload = JSON.stringify(body);
118
119
  if (Buffer.byteLength(payload) > OPENROUTER_REQUEST_BYTES)
119
- throw new Error("encoded request exceeds 20 MB; reduce text or attachments");
120
+ throw new Error("encoded request exceeds 512 MiB; reduce text or attachments");
120
121
  const key = (options.env ?? process.env).OPENROUTER_API_KEY?.trim() ||
121
122
  getApiKeyForProvider(options.config, "openrouter");
122
123
  if (!key)
@@ -134,7 +135,7 @@ async function requestOpenRouter(operation, body, options) {
134
135
  await response.body?.cancel();
135
136
  throw requestFailure(response.status);
136
137
  }
137
- const value = parseMediaJson(decodeOpenRouterText(await readMediaResponse(response, 8_000_000)), "OpenRouter response");
138
+ const value = parseMediaJson(decodeOpenRouterText(await readMediaResponse(response, OPENROUTER_RESPONSE_BYTES)), "OpenRouter response");
138
139
  if (value && typeof value === "object" && "error" in value) {
139
140
  const error = z.object({ code: z.number().int() }).safeParse(value.error);
140
141
  if (error.success)
@@ -149,16 +150,19 @@ export async function requestOpenRouterDecisions({ model, value, attachments },
149
150
  if (attachments.some((item) => item.kind !== "image" || !spec.inputs.includes(item.kind)))
150
151
  throw new Error("unsupported attachment modality for the selected decision model");
151
152
  const input = parseDecisionInput(model, value);
152
- if (Buffer.byteLength(JSON.stringify(input)) > OPENROUTER_TEXT_BYTES)
153
+ const textBytes = Buffer.byteLength(JSON.stringify(input));
154
+ if (textBytes > OPENROUTER_TEXT_BYTES)
153
155
  throw new Error("decisions input exceeds its byte limit");
154
- const media = await prepareOpenRouterAttachments(attachments, options.mediaAdapter, options.signal, model === "typesafe/jev-1.14" ? "jev" : "standard");
155
- const text = typeof input.state === "string" ? input.state : JSON.stringify(input.state);
156
- const state = media.length ? [text, ...media] : text;
157
- const result = decisionResponse.safeParse(await requestOpenRouter("decisions", { model, state, questions: input.questions }, options));
158
- if (!result.success)
159
- throw new Error("OpenRouter returned an invalid decisions response");
160
- validateDecisionAnswers(input, result.data);
161
- return { requested_model: model, ...result.data };
156
+ return await withOpenRouterBudget(attachments, textBytes, options.signal, async () => {
157
+ const media = await prepareOpenRouterAttachments(attachments, options.mediaAdapter, options.signal, model === "typesafe/jev-1.14" ? "jev" : "standard");
158
+ const text = typeof input.state === "string" ? input.state : JSON.stringify(input.state);
159
+ const state = media.length ? [text, ...media] : text;
160
+ const result = decisionResponse.safeParse(await requestOpenRouter("decisions", { model, state, questions: input.questions }, options));
161
+ if (!result.success)
162
+ throw new Error("OpenRouter returned an invalid decisions response");
163
+ validateDecisionAnswers(input, result.data);
164
+ return { requested_model: model, ...result.data };
165
+ });
162
166
  }
163
167
  export async function requestOpenRouterChat(input, options) {
164
168
  options.signal.throwIfAborted();
@@ -168,46 +172,53 @@ export async function requestOpenRouterChat(input, options) {
168
172
  if (input.attachments.some((attachment) => !spec.inputs.includes(attachment.kind)))
169
173
  throw new Error("unsupported attachment modality for the selected model");
170
174
  for (const value of [input.prompt, ...(input.system === undefined ? [] : [input.system])]) {
171
- if (!value.trim() || Buffer.byteLength(value) > OPENROUTER_TEXT_BYTES)
172
- throw new Error("prompt and system must be nonblank and within their byte limit");
175
+ if (!value.trim())
176
+ throw new Error("prompt and system must be nonblank");
173
177
  }
174
- const media = await prepareOpenRouterAttachments(input.attachments, options.mediaAdapter, options.signal);
175
- const messages = [];
176
- if (input.system !== undefined)
177
- messages.push({ role: "system", content: input.system });
178
- messages.push({ role: "user", content: [{ type: "text", text: input.prompt }, ...media] });
179
- const result = chatResponse.safeParse(await requestOpenRouter("chat", {
180
- model: input.model,
181
- messages,
182
- stream: false,
183
- ...(input.schema === undefined
184
- ? {}
185
- : {
186
- response_format: {
187
- type: "json_schema",
188
- json_schema: { name: "result", strict: true, schema: input.schema },
189
- },
190
- }),
191
- ...(input.reasoning === undefined ? {} : { reasoning: { effort: input.reasoning } }),
192
- provider: { require_parameters: true },
193
- }, options));
194
- if (!result.success)
195
- throw new Error("OpenRouter returned an invalid or unsupported chat response");
196
- const { choices, ...metadata } = result.data;
197
- const { message, finish_reason, native_finish_reason } = choices[0];
198
- if (finish_reason === "stop" && !message.content?.trim() && !message.refusal)
199
- throw new Error("OpenRouter returned no answer or refusal");
200
- return {
201
- requested_model: input.model,
202
- ...metadata,
203
- answer: input.schema === undefined
204
- ? message.content
205
- : finish_reason === "stop" && !message.refusal
206
- ? parseMediaJson(message.content, "OpenRouter structured answer")
207
- : null,
208
- finish_reason,
209
- ...(native_finish_reason === undefined ? {} : { native_finish_reason }),
210
- ...(message.refusal === undefined ? {} : { refusal: message.refusal }),
211
- };
178
+ const textBytes = Buffer.byteLength(input.prompt) +
179
+ Buffer.byteLength(input.system ?? "") +
180
+ (input.schema === undefined ? 0 : Buffer.byteLength(JSON.stringify(input.schema)));
181
+ if (textBytes > OPENROUTER_TEXT_BYTES)
182
+ throw new Error("combined model text exceeds 20 MiB");
183
+ return await withOpenRouterBudget(input.attachments, textBytes, options.signal, async () => {
184
+ const media = await prepareOpenRouterAttachments(input.attachments, options.mediaAdapter, options.signal);
185
+ const messages = [];
186
+ if (input.system !== undefined)
187
+ messages.push({ role: "system", content: input.system });
188
+ messages.push({ role: "user", content: [{ type: "text", text: input.prompt }, ...media] });
189
+ const result = chatResponse.safeParse(await requestOpenRouter("chat", {
190
+ model: input.model,
191
+ messages,
192
+ stream: false,
193
+ ...(input.schema === undefined
194
+ ? {}
195
+ : {
196
+ response_format: {
197
+ type: "json_schema",
198
+ json_schema: { name: "result", strict: true, schema: input.schema },
199
+ },
200
+ }),
201
+ ...(input.reasoning === undefined ? {} : { reasoning: { effort: input.reasoning } }),
202
+ provider: { require_parameters: true },
203
+ }, options));
204
+ if (!result.success)
205
+ throw new Error("OpenRouter returned an invalid or unsupported chat response");
206
+ const { choices, ...metadata } = result.data;
207
+ const { message, finish_reason, native_finish_reason } = choices[0];
208
+ if (finish_reason === "stop" && !message.content?.trim() && !message.refusal)
209
+ throw new Error("OpenRouter returned no answer or refusal");
210
+ return {
211
+ requested_model: input.model,
212
+ ...metadata,
213
+ answer: input.schema === undefined
214
+ ? message.content
215
+ : finish_reason === "stop" && !message.refusal
216
+ ? parseMediaJson(message.content, "OpenRouter structured answer")
217
+ : null,
218
+ finish_reason,
219
+ ...(native_finish_reason === undefined ? {} : { native_finish_reason }),
220
+ ...(message.refusal === undefined ? {} : { refusal: message.refusal }),
221
+ };
222
+ });
212
223
  }
213
224
  //# sourceMappingURL=openrouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/core/models/openrouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/core/models/openrouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { OPENROUTER_IMAGE_BYTES, OPENROUTER_MEDIA_BYTES, OPENROUTER_REQUEST_BYTES, } from "./openrouter_media.js";
2
+ const MEMORY_BUDGET_BYTES = 4 * 1024 * 1024 * 1024;
3
+ let reservedBytes = 0;
4
+ const waiters = [];
5
+ export async function withOpenRouterBudget(attachments, textBytes, signal, run) {
6
+ const encodedBytes = Math.min(OPENROUTER_REQUEST_BYTES, textBytes +
7
+ attachments.reduce((total, attachment) => {
8
+ const bytes = attachment.kind === "image" ? OPENROUTER_IMAGE_BYTES : OPENROUTER_MEDIA_BYTES;
9
+ return total + (attachment.data?.length ?? 4 * Math.ceil(bytes / 3));
10
+ }, 0));
11
+ // Reserve for raw bytes, base64, UTF-16 serialization and transport copies.
12
+ // Path inputs reserve their maximum size; images are decoded one at a time.
13
+ const imageBytes = attachments.some((attachment) => attachment.kind === "image")
14
+ ? 64 * 1024 * 1024
15
+ : 0;
16
+ const baseBytes = 32 * 1024 * 1024;
17
+ const reservation = encodedBytes * 6 + imageBytes + baseBytes;
18
+ await new Promise((resolve, reject) => {
19
+ const cleanup = () => {
20
+ signal.removeEventListener("abort", abort);
21
+ const index = waiters.indexOf(acquire);
22
+ if (index !== -1)
23
+ waiters.splice(index, 1);
24
+ };
25
+ const abort = () => {
26
+ cleanup();
27
+ reject(signal.reason);
28
+ for (const waiter of [...waiters])
29
+ waiter();
30
+ };
31
+ const acquire = () => {
32
+ if (signal.aborted)
33
+ return abort();
34
+ if (waiters[0] !== acquire || reservedBytes + reservation > MEMORY_BUDGET_BYTES)
35
+ return;
36
+ reservedBytes += reservation;
37
+ cleanup();
38
+ resolve();
39
+ };
40
+ waiters.push(acquire);
41
+ signal.addEventListener("abort", abort, { once: true });
42
+ acquire();
43
+ });
44
+ try {
45
+ signal.throwIfAborted();
46
+ return await run();
47
+ }
48
+ finally {
49
+ reservedBytes -= reservation;
50
+ for (const waiter of [...waiters])
51
+ waiter();
52
+ }
53
+ }
54
+ //# sourceMappingURL=openrouter_budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter_budget.js","sourceRoot":"","sources":["../../../src/core/models/openrouter_budget.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import { fileTypeFromBuffer } from "file-type";
2
2
  import sharp from "sharp";
3
3
  import { z } from "zod";
4
- export const OPENROUTER_TEXT_BYTES = 1_000_000;
5
- export const OPENROUTER_REQUEST_BYTES = 20_000_000;
4
+ export const OPENROUTER_TEXT_BYTES = 20 * 1024 * 1024;
5
+ export const OPENROUTER_REQUEST_BYTES = 512 * 1024 * 1024;
6
+ export const OPENROUTER_IMAGE_BYTES = 32 * 1024 * 1024;
7
+ export const OPENROUTER_MEDIA_BYTES = 256 * 1024 * 1024;
8
+ export const OPENROUTER_RESPONSE_BYTES = 32 * 1024 * 1024;
6
9
  export function decodeOpenRouterText(bytes) {
7
10
  try {
8
11
  return new TextDecoder("utf-8", { fatal: true }).decode(bytes);
@@ -12,7 +15,9 @@ export function decodeOpenRouterText(bytes) {
12
15
  }
13
16
  }
14
17
  const mediaProbe = z.object({
15
- format: z.object({ duration: z.string().transform(Number).pipe(z.number().positive().max(600)) }),
18
+ format: z.object({
19
+ duration: z.string().transform(Number).pipe(z.number().positive().max(7200)),
20
+ }),
16
21
  streams: z
17
22
  .array(z.object({
18
23
  codec_type: z.string(),
@@ -25,7 +30,7 @@ const mediaProbe = z.object({
25
30
  function validateProbe(value, kind, format) {
26
31
  const parsed = mediaProbe.safeParse(value);
27
32
  if (!parsed.success)
28
- throw new Error("media must have a known duration of at most 600 seconds");
33
+ throw new Error("media must have a known duration of at most 7200 seconds");
29
34
  const { streams, format: metadata } = parsed.data;
30
35
  if (kind === "audio") {
31
36
  if (streams.length !== 1 ||
@@ -50,10 +55,8 @@ function validateProbe(value, kind, format) {
50
55
  return metadata.duration;
51
56
  }
52
57
  export async function prepareOpenRouterAttachments(attachments, adapter, signal, imageProfile = "standard") {
53
- if (attachments.length > 16 ||
54
- attachments.filter((item) => item.kind === "audio").length > 4 ||
55
- attachments.filter((item) => item.kind === "video").length > 1) {
56
- throw new Error("at most 16 attachments, including at most 4 audio files and 1 video, are supported");
58
+ if (attachments.length > (imageProfile === "jev" ? 16 : 64)) {
59
+ throw new Error("too many attachments");
57
60
  }
58
61
  const parts = [];
59
62
  let duration = 0;
@@ -61,7 +64,7 @@ export async function prepareOpenRouterAttachments(attachments, adapter, signal,
61
64
  for (const attachment of attachments) {
62
65
  signal.throwIfAborted();
63
66
  const { kind } = attachment;
64
- const limit = kind === "image" ? 5_000_000 : 12_000_000;
67
+ const limit = Math.min(kind === "image" ? OPENROUTER_IMAGE_BYTES : OPENROUTER_MEDIA_BYTES, Math.floor((OPENROUTER_REQUEST_BYTES - encodedBytes) / 4) * 3);
65
68
  const path = attachment.path ?? "inline attachment";
66
69
  if (attachment.data !== undefined && attachment.data.length > 4 * Math.ceil(limit / 3))
67
70
  throw new Error("attachment exceeds its byte limit");
@@ -74,7 +77,7 @@ export async function prepareOpenRouterAttachments(attachments, adapter, signal,
74
77
  throw new Error("invalid padded base64 attachment");
75
78
  encodedBytes += 4 * Math.ceil(bytes.length / 3);
76
79
  if (encodedBytes > OPENROUTER_REQUEST_BYTES)
77
- throw new Error("attachments exceed the 20 MB encoded request limit");
80
+ throw new Error("attachments exceed the 512 MiB encoded request limit");
78
81
  const type = await fileTypeFromBuffer(bytes);
79
82
  if (attachment.mimeType !== undefined && type?.mime !== attachment.mimeType)
80
83
  throw new Error("attachment MIME type does not match its bytes");
@@ -82,14 +85,14 @@ export async function prepareOpenRouterAttachments(attachments, adapter, signal,
82
85
  if (!type || !["image/png", "image/jpeg", "image/webp"].includes(type.mime)) {
83
86
  throw new Error(`unsupported image: ${path}; use PNG, JPEG, or WebP`);
84
87
  }
85
- const image = sharp(bytes, { limitInputPixels: 32_000_000 });
88
+ const image = sharp(bytes, { limitInputPixels: 100_000_000 });
86
89
  const metadata = await image.metadata();
87
90
  if (!metadata.width ||
88
91
  !metadata.height ||
89
- metadata.width > 8000 ||
90
- metadata.height > 8000 ||
92
+ metadata.width > 32768 ||
93
+ metadata.height > 32768 ||
91
94
  (metadata.pages ?? 1) > 1) {
92
- throw new Error("images must be single-frame, at most 8000 pixels per edge and 32 megapixels");
95
+ throw new Error("images must be single-frame, at most 32768 pixels per edge and 100 megapixels");
93
96
  }
94
97
  if (imageProfile === "jev" &&
95
98
  (type.mime === "image/webp" ||
@@ -114,9 +117,9 @@ export async function prepareOpenRouterAttachments(attachments, adapter, signal,
114
117
  : undefined;
115
118
  if (!format)
116
119
  throw new Error(`unsupported ${kind}: ${path}; use WAV/MP3 audio or MP4 video`);
117
- duration += validateProbe(await adapter.probe(bytes, format), kind, format);
118
- if (duration > 600)
119
- throw new Error("combined audio/video duration exceeds 600 seconds");
120
+ duration += validateProbe(await adapter.probe(bytes, format, attachment.path), kind, format);
121
+ if (duration > 7200)
122
+ throw new Error("combined audio/video duration exceeds 7200 seconds");
120
123
  parts.push(kind === "audio"
121
124
  ? {
122
125
  type: "input_audio",
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter_media.js","sourceRoot":"","sources":["../../../src/core/models/openrouter_media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter_media.js","sourceRoot":"","sources":["../../../src/core/models/openrouter_media.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { MIN_AUTO_COMPACT_THRESHOLD_TOKENS, } from "../protocol/session_protocol.js";
2
+ import { parsePersonaString } from "./cli.js";
3
+ export class PersonaSelectionError extends Error {
4
+ constructor(message) {
5
+ super(message);
6
+ this.name = "PersonaSelectionError";
7
+ }
8
+ }
9
+ export function resolvePersonaSelection(personas, defaultPersona, personaId, overrides = {}) {
10
+ if (personaId === null &&
11
+ (overrides.reasoning !== undefined || overrides.autoCompactThresholdTokens !== undefined)) {
12
+ throw new PersonaSelectionError("workspace selection does not accept overrides");
13
+ }
14
+ if (overrides.autoCompactThresholdTokens !== undefined &&
15
+ (!Number.isSafeInteger(overrides.autoCompactThresholdTokens) ||
16
+ overrides.autoCompactThresholdTokens < MIN_AUTO_COMPACT_THRESHOLD_TOKENS)) {
17
+ throw new PersonaSelectionError("invalid automatic compaction threshold");
18
+ }
19
+ const reference = personaId === null && defaultPersona ? parsePersonaString(defaultPersona, personas) : undefined;
20
+ const id = personaId ?? reference?.personaId ?? personas[0]?.id;
21
+ const persona = personas.find((candidate) => candidate.id === id);
22
+ if (!persona) {
23
+ throw new PersonaSelectionError(`persona '${id}' is not available`);
24
+ }
25
+ const selected = structuredClone(persona);
26
+ const reasoning = overrides.reasoning ?? reference?.reasoning;
27
+ if (reasoning !== undefined) {
28
+ if (overrides.reasoning !== undefined &&
29
+ ((!persona.model.reasoning && reasoning !== "none") ||
30
+ (persona.allowedReasoningLevels?.length &&
31
+ !persona.allowedReasoningLevels.includes(reasoning)))) {
32
+ throw new PersonaSelectionError(`reasoning effort '${reasoning}' is not supported by persona '${persona.id}'`);
33
+ }
34
+ selected.settings.reasoning = reasoning;
35
+ }
36
+ return selected;
37
+ }
38
+ //# sourceMappingURL=persona_selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona_selection.js","sourceRoot":"","sources":["../../src/core/persona_selection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,GAElC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,MAAM,UAAU,uBAAuB,CACrC,QAAmB,EACnB,cAAkC,EAClC,SAAwB,EACxB,SAAS,GAAoC,EAAE;IAE/C,IACE,SAAS,KAAK,IAAI;QAClB,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,0BAA0B,KAAK,SAAS,CAAC,EACzF,CAAC;QACD,MAAM,IAAI,qBAAqB,CAAC,+CAA+C,CAAC,CAAC;IACnF,CAAC;IACD,IACE,SAAS,CAAC,0BAA0B,KAAK,SAAS;QAClD,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,0BAA0B,CAAC;YAC1D,SAAS,CAAC,0BAA0B,GAAG,iCAAiC,CAAC,EAC3E,CAAC;QACD,MAAM,IAAI,qBAAqB,CAAC,wCAAwC,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,SAAS,GACb,SAAS,KAAK,IAAI,IAAI,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,MAAM,EAAE,GAAG,SAAS,IAAI,SAAS,EAAE,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,qBAAqB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,EAAE,SAAS,CAAC;IAC9D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IACE,SAAS,CAAC,SAAS,KAAK,SAAS;YACjC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM,CAAC;gBACjD,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM;oBACrC,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EACzD,CAAC;YACD,MAAM,IAAI,qBAAqB,CAC7B,qBAAqB,SAAS,kCAAkC,OAAO,CAAC,EAAE,GAAG,CAC9E,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -13,6 +13,8 @@ export class ChatRuntime {
13
13
  backgroundJobs = this.jobs.create();
14
14
  supervisor;
15
15
  currentPersona;
16
+ autoCompactDefaults;
17
+ autoCompactOverride = null;
16
18
  currentConfig;
17
19
  hostApiKeys;
18
20
  currentModelResolver;
@@ -44,6 +46,7 @@ export class ChatRuntime {
44
46
  }
45
47
  constructor(options, composition) {
46
48
  this.currentPersona = structuredClone(options.persona);
49
+ this.autoCompactDefaults = structuredClone(options.autoCompactDefaults);
47
50
  this.currentConfig = options.config;
48
51
  this.hostApiKeys = structuredClone(options.config.apiKeys);
49
52
  this.currentModelResolver = options.modelResolver;
@@ -71,7 +74,7 @@ export class ChatRuntime {
71
74
  agentId: options.sessionId,
72
75
  spec: createAgentSpec({
73
76
  ...this.resolvedModel,
74
- autoCompactThresholdTokens: null,
77
+ autoCompactThresholdTokens: this.resolvedAutoCompactThresholdTokens,
75
78
  systemPrompt: composition.baseSystemPrompt,
76
79
  tools,
77
80
  }),
@@ -190,8 +193,18 @@ export class ChatRuntime {
190
193
  });
191
194
  this.refreshSpec();
192
195
  }
196
+ get autoCompactOverrideTokens() {
197
+ return this.autoCompactOverride;
198
+ }
199
+ get resolvedAutoCompactThresholdTokens() {
200
+ return (this.autoCompactOverride ??
201
+ this.autoCompactDefaults?.thresholdTokens ??
202
+ this.currentPersona.autoCompactThresholdTokens ??
203
+ null);
204
+ }
193
205
  setAutoCompactThreshold(thresholdTokens) {
194
- this.agent.updateSpec({ ...this.agent.spec, autoCompactThresholdTokens: thresholdTokens });
206
+ this.autoCompactOverride = thresholdTokens;
207
+ this.refreshSpec();
195
208
  }
196
209
  setReasoning(reasoning) {
197
210
  this.currentPersona = {
@@ -205,6 +218,9 @@ export class ChatRuntime {
205
218
  this.refreshSpec();
206
219
  }
207
220
  setPersona(persona) {
221
+ if (persona.id.toLowerCase() !== this.currentPersona.id.toLowerCase()) {
222
+ this.autoCompactOverride = null;
223
+ }
208
224
  this.currentPersona = structuredClone(persona);
209
225
  this.resolvedModel = resolveAgentModel(this.currentPersona, this.config, {
210
226
  includeModelNotice: true,
@@ -223,7 +239,7 @@ export class ChatRuntime {
223
239
  refreshSpec() {
224
240
  this.agent.updateSpec(createAgentSpec({
225
241
  ...this.resolvedModel,
226
- autoCompactThresholdTokens: this.agent.spec.autoCompactThresholdTokens,
242
+ autoCompactThresholdTokens: this.resolvedAutoCompactThresholdTokens,
227
243
  systemPrompt: this.latestPromptComposition.baseSystemPrompt,
228
244
  tools: this.buildToolRegistry(this.latestPromptComposition),
229
245
  }));
@@ -234,6 +250,7 @@ export class ChatRuntime {
234
250
  cwd: this.promptContext.cwd,
235
251
  config: this.config,
236
252
  persona: this.currentPersona,
253
+ autoCompactThresholdTokens: this.resolvedAutoCompactThresholdTokens,
237
254
  subagentSystemPrompt: composition.subagentSystemPrompt,
238
255
  modelResolver: this.currentModelResolver,
239
256
  supervisor: this.supervisor,
@@ -1 +1 @@
1
- {"version":3,"file":"chat_runtime.js","sourceRoot":"","sources":["../../../src/core/runtime/chat_runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat_runtime.js","sourceRoot":"","sources":["../../../src/core/runtime/chat_runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto_compaction_threshold.js","sourceRoot":"","sources":["../../../src/core/session/auto_compaction_threshold.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sCAAsC,CACpD,aAAqB,EACrB,eAA8B;IAE9B,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"auto_compaction_threshold.js","sourceRoot":"","sources":["../../../src/core/session/auto_compaction_threshold.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,sCAAsC,CACpD,aAAqB,EACrB,eAA8B;IAE9B,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC,CAAC;AACvE,CAAC"}
@@ -45,7 +45,7 @@ type SearchResult = { sessions: Session[]; nextCursor?: string };
45
45
  - `limit`: integer 1–75, default 10.
46
46
  - `cursor`: opaque `nextCursor` from the preceding page; keep the query and attributes unchanged.
47
47
 
48
- Without a query or attributes, search returns the most recently updated sessions. Conventional attributes include `source` (often `tui` or `telegram`) and `repository` (`host/owner/repository`; composite workspaces use comma-delimited repositories). Attributes may be absent. A repository substring filter can match both individual and composite workspaces.
48
+ Without a query or attributes, search returns the most recently updated sessions. Conventional attributes include `source` (often `tui` or `telegram`) and `repository` (`host/owner/repository`; composite workspaces use comma-delimited repositories), `machine` (execution environment hostname), `cwd` (working directory in that environment), and `telegram_bot` (configured Telegram bot ID). Attributes may be absent. A repository substring filter can match both individual and composite workspaces.
49
49
 
50
50
  Timestamps are Unix milliseconds. A digest can be absent or stale; `updatedThroughEntryId` identifies the latest entry it covers. Snippets are bounded excerpts. A digest or snippet may already answer the question; read the transcript only when needed. When `webUrl` is present, return it directly if the user asks for a conversation link. Local-only sessions have no browser URL.
51
51
 
@@ -84,7 +84,7 @@ function requestApi(methodId, argsJson) {
84
84
  if (Buffer.byteLength(argsJson, "utf8") > workerData.maxBridgePayloadBytes) {
85
85
  return Promise.reject(
86
86
  new Error(
87
- `code-mode API arguments exceeded ${workerData.maxBridgePayloadBytes} bridge payload bytes`,
87
+ `code-mode API arguments exceeded ${workerData.maxBridgePayloadBytes} bridge payload bytes; use attachment paths instead of inline media`,
88
88
  ),
89
89
  );
90
90
  }
@@ -51,7 +51,7 @@ printText(truncate(result.stdout, { maxChars: 4000 }));
51
51
 
52
52
  Programs have no direct access to files, processes, environment variables, credentials, imports, timers, or the network. They can act only through the capabilities. Keep data in variables, and use `tau.bash` for files.
53
53
 
54
- A foreground `code` program times out after 5 minutes by default. `timeout` accepts 1–3,600,000 ms (60 minutes). The deadline covers the whole program, including capability calls. When it passes, the program stops, unresolved capability calls are cancelled, and the text printed so far is returned with a timeout notice. `tau.bash.run` follows the timeout rules of the `bash` tool: 60 seconds by default, and any positive number of milliseconds with no upper limit. The program's own deadline still cancels the command. A program can make 1,024 API requests, 32 at a time. Each serialized request and response can be at most 64 MiB. Object properties set to `undefined` are dropped, while `undefined` arguments and array entries are rejected. Programs are never retried, and failure or cancellation does not undo actions already taken.
54
+ A foreground `code` program times out after 5 minutes by default. `timeout` accepts 1–3,600,000 ms (60 minutes). The deadline covers the whole program, including capability calls. When it passes, the program stops, unresolved capability calls are cancelled, and the text printed so far is returned with a timeout notice. `tau.bash.run` follows the timeout rules of the `bash` tool: 60 seconds by default, and any positive number of milliseconds with no upper limit. The program's own deadline still cancels the command. A program can make 4,096 API requests, 32 at a time. Each serialized request and response can be at most 64 MiB. Object properties set to `undefined` are dropped, while `undefined` arguments and array entries are rejected. Programs are never retried, and failure or cancellation does not undo actions already taken.
55
55
 
56
56
  ## Background code jobs
57
57
 
@@ -71,7 +71,7 @@ Code jobs have the same lifecycle and ownership as background Bash jobs: each jo
71
71
  - `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).
72
72
  - `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).
73
73
  - `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 that the agent's Bash job tools show, and each keeps the last 24 MiB of output. `read`, `wait`, and `stop` return that retained output as a string, without the job tools' token budget. `list` leaves out output and execution error messages. Jobs survive the program ending and interruption, while foreground commands are cancelled. The [Bash rules](tools.md#bash) apply.
74
- - `tau.models`: lists a fixed set of OpenRouter models and runs standalone chats or typed decisions with them. The initial tool definition names the chat and decision model IDs, so the agent can see them before any tool call. These calls do not see the session's conversation or tools. A chat can include a JSON Schema. Tau then requests structured output from the provider, and a complete answer is the parsed JSON. The agent uses that answer directly for ordinary extraction and analysis. How strictly the schema is enforced varies by provider, so the agent adds targeted checks when a constraint matters for a consequential action. 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.
74
+ - `tau.models`: lists a fixed set of OpenRouter models and runs standalone chats or typed decisions with them. The initial tool definition names the chat and decision model IDs, so the agent can see them before any tool call. These calls do not see the session's conversation or tools. A chat can include a JSON Schema. Tau then requests structured output from the provider, and a complete answer is the parsed JSON. The agent uses that answer directly for ordinary extraction and analysis. How strictly the schema is enforced varies by provider, so the agent adds targeted checks when a constraint matters for a consequential action. Chat and decision media can be paths on the agent's machine or inline padded base64 with a matching MIME type. Inline media counts toward the 64 MiB request limit, so large files go by path. 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). Tau holds concurrent model requests to a shared memory budget, so a large request can wait for earlier ones to finish. Check whether a response completed or was refused instead of assuming it is a full answer.
75
75
  - `tau.agents`: starts subagents, sends them queued or steering input, interrupts them, waits until they are idle, and reads pages of their conversation traces. Only the main agent has it, and only when the persona selects `agents`. Subagents keep working when the program that started or waits for them ends. See [subagents](subagents.md#managing-subagents).
76
76
 
77
77
  SDK and command client tools built on code mode use the same sandbox functions and output rules, with their own declared APIs. They take only inline code, without saved files, input, or background mode. Their programs time out after 60 seconds unless configured otherwise.