@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.
- package/dist/code_mode/runtime.js +1 -1
- package/dist/code_mode/runtime.js.map +1 -1
- package/dist/core/code_mode/agents.js +9 -1
- package/dist/core/code_mode/agents.js.map +1 -1
- package/dist/core/code_mode/models.js +69 -21
- package/dist/core/code_mode/models.js.map +1 -1
- package/dist/core/config/content_loader.js +27 -1
- package/dist/core/config/content_loader.js.map +1 -1
- package/dist/core/config/schema.js +9 -3
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/models/model_id.js +12 -0
- package/dist/core/models/model_id.js.map +1 -0
- package/dist/core/models/openrouter.js +63 -52
- package/dist/core/models/openrouter.js.map +1 -1
- package/dist/core/models/openrouter_budget.js +54 -0
- package/dist/core/models/openrouter_budget.js.map +1 -0
- package/dist/core/models/openrouter_media.js +20 -17
- package/dist/core/models/openrouter_media.js.map +1 -1
- package/dist/core/persona_selection.js +38 -0
- package/dist/core/persona_selection.js.map +1 -0
- package/dist/core/runtime/chat_runtime.js +20 -3
- package/dist/core/runtime/chat_runtime.js.map +1 -1
- package/dist/core/session/auto_compaction_threshold.js.map +1 -1
- package/dist/core/static/code_mode/history/documentation.md +1 -1
- package/dist/core/static/code_mode/sandbox_runner.mjs +1 -1
- package/dist/core/static/tau_docs/code-mode.md +2 -2
- package/dist/core/static/tau_docs/configuration.md +1 -1
- package/dist/core/static/tau_docs/history.md +6 -3
- package/dist/core/static/tau_docs/node-sdk.md +5 -5
- package/dist/core/static/tau_docs/openrouter.md +11 -10
- package/dist/core/static/tau_docs/ownership-and-scope.md +1 -1
- package/dist/core/static/tau_docs/personas.md +18 -3
- package/dist/core/static/tau_docs/remote-sessions.md +1 -1
- package/dist/core/static/tau_docs/session-protocol-methods.md +15 -6
- package/dist/core/static/tau_docs/session-protocol.md +2 -2
- package/dist/core/static/tau_docs/sessions.md +15 -4
- package/dist/core/static/tau_docs/subagents.md +10 -0
- package/dist/core/static/tau_docs/telegram-projects.md +4 -7
- package/dist/core/static/tau_docs/telegram.md +67 -21
- package/dist/core/static/tau_docs/troubleshooting.md +2 -0
- package/dist/core/static/tau_docs/tui.md +2 -2
- package/dist/core/subagents/launch_model.js +4 -7
- package/dist/core/subagents/launch_model.js.map +1 -1
- package/dist/core/subagents/native_subagent_runtime.js +1 -1
- package/dist/core/subagents/native_subagent_runtime.js.map +1 -1
- package/dist/core/subagents/registry.js.map +1 -1
- package/dist/core/telegram/adapter.js +70 -68
- package/dist/core/telegram/adapter.js.map +1 -1
- package/dist/core/telegram/config.js +43 -52
- package/dist/core/telegram/config.js.map +1 -1
- package/dist/core/telegram/local_session_client.js +5 -2
- package/dist/core/telegram/local_session_client.js.map +1 -1
- package/dist/core/telegram/runtime.js +14 -1
- package/dist/core/telegram/runtime.js.map +1 -1
- package/dist/core/telegram/session_manager.js +6 -7
- package/dist/core/telegram/session_manager.js.map +1 -1
- package/dist/core/tool/openrouter.js +1 -1
- package/dist/core/tool/openrouter.js.map +1 -1
- package/dist/core/tools/catalog.js +1 -0
- package/dist/core/tools/catalog.js.map +1 -1
- package/dist/core/tools/code_mode_worker.js +2 -2
- package/dist/core/tools/code_mode_worker.js.map +1 -1
- package/dist/core/utils/model_notices.js +0 -19
- package/dist/core/utils/model_notices.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/host/hosted_ephemeral_agent_session.js +1 -1
- package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
- package/dist/host/local_session_host.js +51 -15
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/host/session_host.js.map +1 -1
- package/dist/host/session_protocol_handler.js +9 -1
- package/dist/host/session_protocol_handler.js.map +1 -1
- package/dist/protocol/session_protocol.d.ts +7 -2
- package/dist/protocol/session_protocol.js +21 -8
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/sdk/local_client.d.ts +6 -0
- package/dist/sdk/local_client.js +14 -6
- package/dist/sdk/local_client.js.map +1 -1
- package/dist/sdk/session.js +4 -3
- package/dist/sdk/session.js.map +1 -1
- package/dist/sdk/types.d.ts +2 -2
- package/dist/tui/session_chat_controller.js +4 -1
- package/dist/tui/session_chat_controller.js.map +1 -1
- 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
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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()
|
|
172
|
-
throw new Error("prompt and system must be nonblank
|
|
175
|
+
if (!value.trim())
|
|
176
|
+
throw new Error("prompt and system must be nonblank");
|
|
173
177
|
}
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
messages
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
...metadata
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
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 =
|
|
5
|
-
export const OPENROUTER_REQUEST_BYTES =
|
|
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({
|
|
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
|
|
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
|
-
|
|
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" ?
|
|
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
|
|
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:
|
|
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 >
|
|
90
|
-
metadata.height >
|
|
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
|
|
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 >
|
|
119
|
-
throw new Error("combined audio/video duration exceeds
|
|
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":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,
|
|
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:
|
|
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.
|
|
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.
|
|
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":"AAEA,OAAO,EACL,YAAY,EAKZ,eAAe,GAKhB,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;
|
|
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":"
|
|
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
|
|
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.
|