@markusylisiurunen/tau 0.3.49 → 0.3.51
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/README.md +22 -908
- package/dist/code_mode/command.js +26 -14
- package/dist/code_mode/command.js.map +1 -1
- package/dist/code_mode/index.d.ts +2 -1
- package/dist/code_mode/index.js +1 -0
- package/dist/code_mode/index.js.map +1 -1
- package/dist/core/cli.js +0 -11
- package/dist/core/cli.js.map +1 -1
- package/dist/core/client_tools/command_client_tools.js +236 -151
- package/dist/core/client_tools/command_client_tools.js.map +1 -1
- package/dist/core/commands/registry.js +4 -4
- package/dist/core/commands/registry.js.map +1 -1
- package/dist/core/modes/index.js +0 -1
- package/dist/core/modes/index.js.map +1 -1
- package/dist/core/personas.js +19 -10
- package/dist/core/personas.js.map +1 -1
- package/dist/core/runtime/runtime_bootstrap.js +14 -9
- package/dist/core/runtime/runtime_bootstrap.js.map +1 -1
- package/dist/core/static/tau_docs/client-tools.md +428 -0
- package/dist/core/static/tau_docs/config-reference.md +422 -0
- package/dist/core/static/tau_docs/configuration.md +210 -0
- package/dist/core/static/tau_docs/credentials.md +200 -0
- package/dist/core/static/tau_docs/getting-started.md +140 -0
- package/dist/core/static/tau_docs/history.md +163 -0
- package/dist/core/static/tau_docs/index.md +40 -0
- package/dist/core/static/tau_docs/manifest.json +28 -0
- package/dist/core/static/tau_docs/models.md +198 -0
- package/dist/core/static/tau_docs/node-sdk.md +406 -0
- package/dist/core/static/tau_docs/nook.md +264 -0
- package/dist/core/static/tau_docs/ownership-and-scope.md +103 -0
- package/dist/core/static/tau_docs/personas.md +199 -0
- package/dist/core/static/tau_docs/prompts-and-project-context.md +181 -0
- package/dist/core/static/tau_docs/remote-sessions.md +231 -0
- package/dist/core/static/tau_docs/security.md +184 -0
- package/dist/core/static/tau_docs/session-protocol-methods.md +618 -0
- package/dist/core/static/tau_docs/session-protocol.md +265 -0
- package/dist/core/static/tau_docs/sessions.md +224 -0
- package/dist/core/static/tau_docs/skills.md +176 -0
- package/dist/core/static/tau_docs/subagents.md +203 -0
- package/dist/core/static/tau_docs/telegram.md +346 -0
- package/dist/core/static/tau_docs/tools.md +203 -0
- package/dist/core/static/tau_docs/troubleshooting.md +290 -0
- package/dist/core/static/tau_docs/tui.md +222 -0
- package/dist/core/telegram/adapter.js +226 -18
- package/dist/core/telegram/adapter.js.map +1 -1
- package/dist/core/telegram/config.js +1 -1
- package/dist/core/telegram/config.js.map +1 -1
- package/dist/core/telegram/project_preferences.js +42 -12
- package/dist/core/telegram/project_preferences.js.map +1 -1
- package/dist/core/telegram/runtime.js +6 -1
- package/dist/core/telegram/runtime.js.map +1 -1
- package/dist/core/telegram/session_manager.js +54 -7
- package/dist/core/telegram/session_manager.js.map +1 -1
- package/dist/core/telegram/tts.js +137 -0
- package/dist/core/telegram/tts.js.map +1 -0
- package/dist/core/tools/catalog.js +3 -1
- package/dist/core/tools/catalog.js.map +1 -1
- package/dist/core/tools/presentation.js +67 -18
- package/dist/core/tools/presentation.js.map +1 -1
- package/dist/core/tools/tau_docs.js +115 -0
- package/dist/core/tools/tau_docs.js.map +1 -0
- package/dist/core/tools/tool_names.js +8 -0
- package/dist/core/tools/tool_names.js.map +1 -1
- package/dist/core/utils/gemini_speech.js +122 -41
- package/dist/core/utils/gemini_speech.js.map +1 -1
- package/dist/core/utils/repository.js +19 -0
- package/dist/core/utils/repository.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/host/client_tool_broker.js +74 -35
- package/dist/host/client_tool_broker.js.map +1 -1
- package/dist/host/local_session_host.js +2 -2
- 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 +17 -6
- package/dist/host/session_protocol_handler.js.map +1 -1
- package/dist/main.js +18 -92
- package/dist/main.js.map +1 -1
- package/dist/protocol/session_protocol.d.ts +23 -2
- package/dist/protocol/session_protocol.js +49 -4
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/sdk/client_tool_command.d.ts +41 -13
- package/dist/sdk/client_tool_command.js +157 -39
- package/dist/sdk/client_tool_command.js.map +1 -1
- package/dist/sdk/client_tool_presentation.d.ts +17 -0
- package/dist/sdk/client_tool_presentation.js +9 -0
- package/dist/sdk/client_tool_presentation.js.map +1 -0
- package/dist/sdk/code_mode.js +10 -1
- package/dist/sdk/code_mode.js.map +1 -1
- package/dist/sdk/index.d.ts +5 -4
- package/dist/sdk/index.js +2 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/session.js +28 -9
- package/dist/sdk/session.js.map +1 -1
- package/dist/sdk/types.d.ts +11 -1
- package/dist/transport/errors.d.ts +0 -11
- package/dist/transport/errors.js +0 -12
- package/dist/transport/errors.js.map +1 -1
- package/dist/transport/index.d.ts +1 -3
- package/dist/transport/index.js +1 -2
- package/dist/transport/index.js.map +1 -1
- package/dist/tui/session_chat_app.js +29 -15
- package/dist/tui/session_chat_app.js.map +1 -1
- package/dist/tui/session_chat_controller.js +13 -64
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/dist/tui/session_creation_attributes.js +3 -3
- package/dist/tui/session_creation_attributes.js.map +1 -1
- package/dist/tui/speech_playback.js +3 -3
- package/dist/tui/speech_playback.js.map +1 -1
- package/package.json +2 -2
- package/dist/core/modes/rpc_server.js +0 -105
- package/dist/core/modes/rpc_server.js.map +0 -1
- package/dist/transport/stdio_session_transport.d.ts +0 -48
- package/dist/transport/stdio_session_transport.js +0 -338
- package/dist/transport/stdio_session_transport.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
const GEMINI_GENERATE_CONTENT_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/models";
|
|
3
|
+
export const GEMINI_SPEECH_PLAYBACK_RATE = 1.1;
|
|
3
4
|
const DEFAULT_GEMINI_SPEECH_REWRITE_MODEL = "gemini-3.6-flash";
|
|
4
5
|
const DEFAULT_GEMINI_SPEECH_REWRITE_THINKING_LEVEL = "minimal";
|
|
5
6
|
const DEFAULT_GEMINI_SPEECH_TTS_MODEL = "gemini-3.1-flash-tts-preview";
|
|
@@ -8,8 +9,15 @@ const DEFAULT_TTS_SAMPLE_RATE_HZ = 24000;
|
|
|
8
9
|
const DEFAULT_TTS_CHANNEL_COUNT = 1;
|
|
9
10
|
const DEFAULT_TTS_BITS_PER_SAMPLE = 16;
|
|
10
11
|
const DEFAULT_TTS_MAX_ATTEMPTS = 3;
|
|
11
|
-
const
|
|
12
|
-
const
|
|
12
|
+
const SPEECH_REWRITE_TIMEOUT_MS = 60_000;
|
|
13
|
+
const PROGRESSIVE_TTS_CONCURRENCY = 6;
|
|
14
|
+
const COMPLETE_TTS_CONCURRENCY = 3;
|
|
15
|
+
const PROGRESSIVE_SPEECH_CHUNK_CHARACTERS = 500;
|
|
16
|
+
const COMPLETE_SPEECH_CHUNK_CHARACTERS = 1000;
|
|
17
|
+
const MAX_SPEECH_SOURCE_CHARACTERS = 10_000;
|
|
18
|
+
const MAX_SPOKEN_TEXT_CHARACTERS = 10_000;
|
|
19
|
+
const MAX_SPEECH_PCM_BYTES = 32 * 1024 * 1024;
|
|
20
|
+
const TTS_MAX_OUTPUT_TOKENS = 8192;
|
|
13
21
|
const RETRYABLE_TTS_STATUS_CODES = new Set([408, 429, 500, 502, 503, 504]);
|
|
14
22
|
const errorPayloadSchema = z.object({
|
|
15
23
|
error: z
|
|
@@ -34,11 +42,20 @@ class GeminiTtsResponseError extends Error {
|
|
|
34
42
|
this.name = "GeminiTtsResponseError";
|
|
35
43
|
}
|
|
36
44
|
}
|
|
45
|
+
class GeminiTtsOutputLimitError extends Error {
|
|
46
|
+
constructor() {
|
|
47
|
+
super("Gemini TTS reached its output token limit");
|
|
48
|
+
this.name = "GeminiTtsOutputLimitError";
|
|
49
|
+
}
|
|
50
|
+
}
|
|
37
51
|
export async function* streamGeminiSpeechAudio(options) {
|
|
38
52
|
const sourceText = options.sourceText.trim();
|
|
39
53
|
if (!sourceText) {
|
|
40
54
|
throw new Error("speech source text was empty");
|
|
41
55
|
}
|
|
56
|
+
if (exceedsUnicodeCharacterLimit(sourceText, MAX_SPEECH_SOURCE_CHARACTERS)) {
|
|
57
|
+
throw new Error("speech source text exceeds 10,000 characters");
|
|
58
|
+
}
|
|
42
59
|
const apiKey = options.apiKey.trim();
|
|
43
60
|
if (!apiKey) {
|
|
44
61
|
throw new Error("missing Gemini API key");
|
|
@@ -51,14 +68,33 @@ export async function* streamGeminiSpeechAudio(options) {
|
|
|
51
68
|
let completed = false;
|
|
52
69
|
try {
|
|
53
70
|
await options.onStageChange?.("rewriting");
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
71
|
+
const rewriteController = createLinkedAbortController(abortController.signal);
|
|
72
|
+
const rewriteTimeout = setTimeout(() => rewriteController.abort(), SPEECH_REWRITE_TIMEOUT_MS);
|
|
73
|
+
rewriteTimeout.unref?.();
|
|
74
|
+
let spokenText;
|
|
75
|
+
try {
|
|
76
|
+
spokenText = await rewriteTextForSpeech({
|
|
77
|
+
apiKey,
|
|
78
|
+
model: rewriteModel,
|
|
79
|
+
sourceText,
|
|
80
|
+
fetchImpl,
|
|
81
|
+
signal: rewriteController.signal,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
if (!abortController.signal.aborted && rewriteController.signal.aborted) {
|
|
86
|
+
throw new Error("speech rewrite timed out after 1 minute");
|
|
87
|
+
}
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
clearTimeout(rewriteTimeout);
|
|
92
|
+
rewriteController.dispose();
|
|
93
|
+
}
|
|
94
|
+
if (exceedsUnicodeCharacterLimit(spokenText, MAX_SPOKEN_TEXT_CHARACTERS)) {
|
|
95
|
+
throw new Error("rewritten speech text exceeds 10,000 characters");
|
|
96
|
+
}
|
|
97
|
+
const spokenChunks = splitSpeechChunks(spokenText, options.deliveryMode);
|
|
62
98
|
await options.onStageChange?.("generating");
|
|
63
99
|
await options.onChunkProgress?.({ ready: 0, total: spokenChunks.length });
|
|
64
100
|
for await (const chunk of synthesizeSpeechAudioChunksInOrder({
|
|
@@ -69,7 +105,9 @@ export async function* streamGeminiSpeechAudio(options) {
|
|
|
69
105
|
fetchImpl,
|
|
70
106
|
signal: abortController.signal,
|
|
71
107
|
maxAttempts: options.maxTtsAttempts ?? DEFAULT_TTS_MAX_ATTEMPTS,
|
|
72
|
-
concurrency:
|
|
108
|
+
concurrency: options.deliveryMode === "progressive"
|
|
109
|
+
? PROGRESSIVE_TTS_CONCURRENCY
|
|
110
|
+
: COMPLETE_TTS_CONCURRENCY,
|
|
73
111
|
onChunkProgress: options.onChunkProgress,
|
|
74
112
|
abortOnFailure: () => abortController.abort(),
|
|
75
113
|
})) {
|
|
@@ -130,6 +168,7 @@ async function* synthesizeSpeechAudioChunksInOrder(args) {
|
|
|
130
168
|
let nextIndex = 0;
|
|
131
169
|
let nextYieldIndex = 0;
|
|
132
170
|
let ready = 0;
|
|
171
|
+
let totalPcmBytes = 0;
|
|
133
172
|
let failure;
|
|
134
173
|
let notify;
|
|
135
174
|
const wake = () => {
|
|
@@ -163,7 +202,7 @@ async function* synthesizeSpeechAudioChunksInOrder(args) {
|
|
|
163
202
|
return;
|
|
164
203
|
}
|
|
165
204
|
try {
|
|
166
|
-
|
|
205
|
+
const pcmAudio = await synthesizeSpeechAudioChunk({
|
|
167
206
|
apiKey: args.apiKey,
|
|
168
207
|
model: args.model,
|
|
169
208
|
voiceName: args.voiceName,
|
|
@@ -172,6 +211,11 @@ async function* synthesizeSpeechAudioChunksInOrder(args) {
|
|
|
172
211
|
signal: args.signal,
|
|
173
212
|
maxAttempts: args.maxAttempts,
|
|
174
213
|
});
|
|
214
|
+
totalPcmBytes += pcmAudio.length;
|
|
215
|
+
if (totalPcmBytes > MAX_SPEECH_PCM_BYTES) {
|
|
216
|
+
throw new Error("generated speech audio exceeds the 32 MiB limit");
|
|
217
|
+
}
|
|
218
|
+
results[index] = pcmAudio;
|
|
175
219
|
ready += 1;
|
|
176
220
|
await args.onChunkProgress?.({ ready, total });
|
|
177
221
|
wake();
|
|
@@ -192,6 +236,7 @@ async function* synthesizeSpeechAudioChunksInOrder(args) {
|
|
|
192
236
|
while (nextYieldIndex < total) {
|
|
193
237
|
const nextResult = results[nextYieldIndex];
|
|
194
238
|
if (nextResult) {
|
|
239
|
+
results[nextYieldIndex] = undefined;
|
|
195
240
|
yield { index: nextYieldIndex, pcmAudio: nextResult };
|
|
196
241
|
nextYieldIndex += 1;
|
|
197
242
|
continue;
|
|
@@ -229,7 +274,7 @@ async function synthesizeSpeechAudioChunk(args) {
|
|
|
229
274
|
],
|
|
230
275
|
generationConfig: {
|
|
231
276
|
responseModalities: ["AUDIO"],
|
|
232
|
-
|
|
277
|
+
maxOutputTokens: TTS_MAX_OUTPUT_TOKENS,
|
|
233
278
|
speechConfig: {
|
|
234
279
|
voiceConfig: {
|
|
235
280
|
prebuiltVoiceConfig: {
|
|
@@ -240,6 +285,7 @@ async function synthesizeSpeechAudioChunk(args) {
|
|
|
240
285
|
},
|
|
241
286
|
},
|
|
242
287
|
});
|
|
288
|
+
assertGeminiTtsDidNotReachOutputLimit(payload);
|
|
243
289
|
const audioData = extractGeminiInlineAudioData(payload);
|
|
244
290
|
if (!audioData) {
|
|
245
291
|
throw new GeminiTtsResponseError("Gemini TTS response did not include audio data");
|
|
@@ -304,6 +350,14 @@ function extractGeminiText(payload) {
|
|
|
304
350
|
}
|
|
305
351
|
return "";
|
|
306
352
|
}
|
|
353
|
+
function assertGeminiTtsDidNotReachOutputLimit(payload) {
|
|
354
|
+
if (!isObject(payload) || !Array.isArray(payload.candidates)) {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
if (payload.candidates.some((candidate) => isObject(candidate) && candidate.finishReason === "MAX_TOKENS")) {
|
|
358
|
+
throw new GeminiTtsOutputLimitError();
|
|
359
|
+
}
|
|
360
|
+
}
|
|
307
361
|
function extractGeminiInlineAudioData(payload) {
|
|
308
362
|
if (!isObject(payload) || !Array.isArray(payload.candidates)) {
|
|
309
363
|
return undefined;
|
|
@@ -336,14 +390,17 @@ function buildSpeechRewritePrompt(sourceText) {
|
|
|
336
390
|
"Things that typically need rewriting: file paths, shell commands, code identifiers, markdown structure, XML-like tags, long option lists, and code-heavy formatting.",
|
|
337
391
|
"Remove formatting. Convert headings, lists, tables, and code blocks into plain spoken prose. Do not preserve markdown bullets, heading markers, table rows, fences, or standalone labels.",
|
|
338
392
|
"For file references, keep the filename and any line or range info that was actually present. Do not add location detail that was not in the original.",
|
|
339
|
-
"
|
|
393
|
+
"Preserve numbers exactly as written, including separators, decimals, units, versions, line numbers, and ranges.",
|
|
394
|
+
"Preserve established technical names, acronyms, initialisms, commands, program names, filenames, and extensions exactly as written. Do not spell their letters apart, expand them, or change their capitalization. Examples that must remain unchanged include 24, PCM, ffmpeg, npm, v5.4, and config.json.",
|
|
395
|
+
"Rewrite a code identifier only when its literal form would be difficult to follow aloud, and preserve its exact meaning.",
|
|
340
396
|
"",
|
|
341
397
|
"Examples of good rewrites:",
|
|
342
398
|
'- `src/core/utils/gemini_speech.ts:372` → "gemini_speech.ts, line 372"',
|
|
343
399
|
'- `src/tui/session_chat_controller.ts:1819-1855` → "session_chat_controller.ts, lines 1819 to 1855"',
|
|
344
400
|
'- `src/core/session/compaction.ts` → "compaction.ts"',
|
|
345
401
|
'- `/Users/markus/.config/tau/config.json` → "the tau config.json in your home directory"',
|
|
346
|
-
'- `rg --heading -n -t ts "ToolRunPresentation" src` → "
|
|
402
|
+
'- `rg --heading -n -t ts "ToolRunPresentation" src` → "the rg command searching TypeScript files for ToolRunPresentation under src"',
|
|
403
|
+
'- `24 kHz PCM with ffmpeg` → "24 kHz PCM with ffmpeg"',
|
|
347
404
|
'- `<available-skills>` → "the available-skills tag"',
|
|
348
405
|
"- A markdown bullet list of short items → a natural comma-separated list or short sentences",
|
|
349
406
|
"",
|
|
@@ -355,38 +412,59 @@ function buildSpeechRewritePrompt(sourceText) {
|
|
|
355
412
|
sourceText,
|
|
356
413
|
].join("\n");
|
|
357
414
|
}
|
|
358
|
-
function
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
415
|
+
function exceedsUnicodeCharacterLimit(text, limit) {
|
|
416
|
+
let count = 0;
|
|
417
|
+
for (const _character of text) {
|
|
418
|
+
count += 1;
|
|
419
|
+
if (count > limit) {
|
|
420
|
+
return true;
|
|
421
|
+
}
|
|
365
422
|
}
|
|
423
|
+
return false;
|
|
424
|
+
}
|
|
425
|
+
function splitSpeechChunks(spokenText, deliveryMode) {
|
|
426
|
+
const normalizedText = spokenText
|
|
427
|
+
.trim()
|
|
428
|
+
.split(/\n\s*\n/gu)
|
|
429
|
+
.map((paragraph) => paragraph.replace(/\s+/gu, " ").trim())
|
|
430
|
+
.filter(Boolean)
|
|
431
|
+
.join("\n\n");
|
|
432
|
+
const maxCharacters = deliveryMode === "progressive"
|
|
433
|
+
? PROGRESSIVE_SPEECH_CHUNK_CHARACTERS
|
|
434
|
+
: COMPLETE_SPEECH_CHUNK_CHARACTERS;
|
|
366
435
|
const chunks = [];
|
|
367
|
-
let
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
436
|
+
let remaining = Array.from(normalizedText);
|
|
437
|
+
while (remaining.length > maxCharacters) {
|
|
438
|
+
const boundary = findSpeechChunkBoundary(remaining, maxCharacters);
|
|
439
|
+
chunks.push(remaining.slice(0, boundary).join("").trim());
|
|
440
|
+
remaining = Array.from(remaining.slice(boundary).join("").trim());
|
|
441
|
+
}
|
|
442
|
+
if (remaining.length > 0) {
|
|
443
|
+
chunks.push(remaining.join(""));
|
|
444
|
+
}
|
|
445
|
+
return chunks.length > 0 ? chunks : [spokenText.trim()];
|
|
446
|
+
}
|
|
447
|
+
function findSpeechChunkBoundary(characters, maxCharacters) {
|
|
448
|
+
const preferredMinimum = Math.floor(maxCharacters * 0.6);
|
|
449
|
+
for (let index = maxCharacters; index >= preferredMinimum; index -= 1) {
|
|
450
|
+
if (characters[index] === "\n" && characters[index + 1] === "\n") {
|
|
451
|
+
return index;
|
|
372
452
|
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
453
|
+
}
|
|
454
|
+
for (let index = maxCharacters; index >= preferredMinimum; index -= 1) {
|
|
455
|
+
if (isSpeechSentenceBoundary(characters[index - 1] ?? "", characters[index] ?? "")) {
|
|
456
|
+
return index;
|
|
376
457
|
}
|
|
377
|
-
chunks.push(current);
|
|
378
|
-
current = paragraph;
|
|
379
458
|
}
|
|
380
|
-
|
|
381
|
-
|
|
459
|
+
for (let index = maxCharacters; index >= 1; index -= 1) {
|
|
460
|
+
if (/\s/u.test(characters[index] ?? "")) {
|
|
461
|
+
return index;
|
|
462
|
+
}
|
|
382
463
|
}
|
|
383
|
-
return
|
|
464
|
+
return maxCharacters;
|
|
384
465
|
}
|
|
385
|
-
function
|
|
386
|
-
return
|
|
387
|
-
}
|
|
388
|
-
function joinSpeechParagraphs(first, second) {
|
|
389
|
-
return `${first}\n\n${second}`;
|
|
466
|
+
function isSpeechSentenceBoundary(previous, next) {
|
|
467
|
+
return /[。!?]/u.test(previous) || (/[.!?;:]/u.test(previous) && /\s/u.test(next));
|
|
390
468
|
}
|
|
391
469
|
function buildSpeechSynthesisPrompt(spokenText) {
|
|
392
470
|
return [
|
|
@@ -395,13 +473,16 @@ function buildSpeechSynthesisPrompt(spokenText) {
|
|
|
395
473
|
"",
|
|
396
474
|
"### DIRECTOR'S NOTES",
|
|
397
475
|
"Style: Clear, natural, conversational.",
|
|
398
|
-
"Pacing:
|
|
476
|
+
"Pacing: Brisk conversational speed. Keep it clear, confident, and energetic without sounding rushed.",
|
|
399
477
|
"",
|
|
400
478
|
"### TRANSCRIPT",
|
|
401
479
|
spokenText,
|
|
402
480
|
].join("\n");
|
|
403
481
|
}
|
|
404
482
|
function isRetryableTtsError(error) {
|
|
483
|
+
if (error instanceof GeminiTtsOutputLimitError) {
|
|
484
|
+
return false;
|
|
485
|
+
}
|
|
405
486
|
if (error instanceof GeminiTtsResponseError) {
|
|
406
487
|
return true;
|
|
407
488
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini_speech.js","sourceRoot":"","sources":["../../../src/core/utils/gemini_speech.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gemini_speech.js","sourceRoot":"","sources":["../../../src/core/utils/gemini_speech.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
import { SESSION_PROTOCOL_MAX_ATTRIBUTE_VALUE_CHARS } from "../../protocol/session_protocol.js";
|
|
2
|
+
export function buildRepositoryAttribute(repositories) {
|
|
3
|
+
const included = [];
|
|
4
|
+
const seen = new Set();
|
|
5
|
+
let length = 0;
|
|
6
|
+
for (const repository of repositories) {
|
|
7
|
+
if (seen.has(repository))
|
|
8
|
+
continue;
|
|
9
|
+
seen.add(repository);
|
|
10
|
+
if (repository.length > SESSION_PROTOCOL_MAX_ATTRIBUTE_VALUE_CHARS)
|
|
11
|
+
continue;
|
|
12
|
+
const nextLength = length + (included.length > 0 ? 1 : 0) + repository.length;
|
|
13
|
+
if (nextLength > SESSION_PROTOCOL_MAX_ATTRIBUTE_VALUE_CHARS)
|
|
14
|
+
break;
|
|
15
|
+
included.push(repository);
|
|
16
|
+
length = nextLength;
|
|
17
|
+
}
|
|
18
|
+
return included.length > 0 ? included.join(",") : undefined;
|
|
19
|
+
}
|
|
1
20
|
export function normalizeRepositoryReference(value, options = {}) {
|
|
2
21
|
const reference = value.trim();
|
|
3
22
|
if (!reference)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/core/utils/repository.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,4BAA4B,CAC1C,KAAa,EACb,OAAO,GAA6B,EAAE;IAEtC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAwB,CAAC;IAE7B,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAChB,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC/D,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACd,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzD,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACjC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,OAAO,CAAC,WAAW,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC5C,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC3B,IAAI,GAAG,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,cAAc,GAAG,IAAI;QACzB,EAAE,IAAI,EAAE;SACP,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IACzD,OAAO,GAAG,cAAc,IAAI,cAAc,EAAE,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/core/utils/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0CAA0C,EAAE,MAAM,oCAAoC,CAAC;AAEhG,MAAM,UAAU,wBAAwB,CAAC,YAAsB;IAC7D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QACnC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrB,IAAI,UAAU,CAAC,MAAM,GAAG,0CAA0C;YAAE,SAAS;QAE7E,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;QAC9E,IAAI,UAAU,GAAG,0CAA0C;YAAE,MAAM;QAEnE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1B,MAAM,GAAG,UAAU,CAAC;IACtB,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAa,EACb,OAAO,GAA6B,EAAE;IAEtC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAwB,CAAC;IAE7B,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YAChB,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC/D,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACd,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzD,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACjC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,OAAO,CAAC,WAAW,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC5C,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC3B,IAAI,GAAG,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,cAAc,GAAG,IAAI;QACzB,EAAE,IAAI,EAAE;SACP,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IACzD,OAAO,GAAG,cAAc,IAAI,cAAc,EAAE,CAAC;AAC/C,CAAC"}
|
package/dist/core/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const APP_VERSION = "0.3.
|
|
1
|
+
export const APP_VERSION = "0.3.51";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1,27 +1,12 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { buildToolRunPresentation, formatToolDurationMs } from "../core/tools/presentation.js";
|
|
2
|
+
import { buildToolRunPresentation, formatToolDurationMs, parseToolRunPresentation, } from "../core/tools/presentation.js";
|
|
3
3
|
import { createTextToolOutcome, executeTool, } from "../core/tools/registry.js";
|
|
4
|
-
import {
|
|
4
|
+
import { HOST_TOOL_NAMES } from "../core/tools/tool_names.js";
|
|
5
5
|
import { formatTokenEstimate } from "../core/utils/token.js";
|
|
6
6
|
import { SESSION_PROTOCOL_VERSION } from "../protocol/session_protocol.js";
|
|
7
7
|
const DEFAULT_ACK_TIMEOUT_MS = 5_000;
|
|
8
8
|
const DEFAULT_EXECUTION_TIMEOUT_MS = 60_000;
|
|
9
|
-
const
|
|
10
|
-
"bash",
|
|
11
|
-
"write",
|
|
12
|
-
"edit",
|
|
13
|
-
"view_image",
|
|
14
|
-
"spawn_agent",
|
|
15
|
-
"send_input_to_agent",
|
|
16
|
-
"wait_for_agents",
|
|
17
|
-
"list_agents",
|
|
18
|
-
"interrupt_agent",
|
|
19
|
-
"web",
|
|
20
|
-
"nook",
|
|
21
|
-
TOOL_NAME_GET_GOAL,
|
|
22
|
-
TOOL_NAME_CREATE_GOAL,
|
|
23
|
-
TOOL_NAME_UPDATE_GOAL,
|
|
24
|
-
]);
|
|
9
|
+
const HOST_TOOL_NAME_SET = new Set(HOST_TOOL_NAMES);
|
|
25
10
|
export class ClientToolBroker {
|
|
26
11
|
clients = new Map();
|
|
27
12
|
pendingCalls = new Map();
|
|
@@ -31,7 +16,7 @@ export class ClientToolBroker {
|
|
|
31
16
|
if (names.has(tool.name)) {
|
|
32
17
|
throw new Error(`duplicate client tool '${tool.name}'`);
|
|
33
18
|
}
|
|
34
|
-
if (
|
|
19
|
+
if (HOST_TOOL_NAME_SET.has(tool.name)) {
|
|
35
20
|
throw new Error(`client tool '${tool.name}' duplicates a host tool`);
|
|
36
21
|
}
|
|
37
22
|
names.add(tool.name);
|
|
@@ -57,31 +42,57 @@ export class ClientToolBroker {
|
|
|
57
42
|
? [...client.tools.values()].map((tool) => createClientToolDefinition(sessionId, client.id, tool, this))
|
|
58
43
|
: []);
|
|
59
44
|
}
|
|
60
|
-
ack(sessionId, callId) {
|
|
45
|
+
async ack(sessionId, callId, presentation) {
|
|
61
46
|
const pending = this.pendingCalls.get(callId);
|
|
62
|
-
if (!pending || pending.sessionId !== sessionId || pending.settled) {
|
|
47
|
+
if (!pending || pending.sessionId !== sessionId || pending.acknowledged || pending.settled) {
|
|
63
48
|
return false;
|
|
64
49
|
}
|
|
50
|
+
const resolvedPresentation = resolveClientToolPresentation(pending.toolCall.name, buildToolRunPresentation({
|
|
51
|
+
toolName: pending.toolCall.name,
|
|
52
|
+
subject: pending.toolCall.name,
|
|
53
|
+
}), presentation);
|
|
65
54
|
clearTimeout(pending.ackTimer);
|
|
66
|
-
|
|
55
|
+
pending.acknowledged = true;
|
|
56
|
+
try {
|
|
57
|
+
await pending.emitActivity({
|
|
58
|
+
type: "tool_call_started",
|
|
59
|
+
toolCallId: pending.toolCall.id,
|
|
60
|
+
toolName: pending.toolCall.name,
|
|
61
|
+
presentation: resolvedPresentation,
|
|
62
|
+
});
|
|
63
|
+
if (pending.settled || this.pendingCalls.get(callId) !== pending) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
pending.authorized = true;
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
this.fail(callId, error instanceof Error ? error.message : String(error), "host-failed", "failed");
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
67
73
|
}
|
|
68
74
|
result(sessionId, callId, result) {
|
|
69
75
|
const pending = this.pendingCalls.get(callId);
|
|
70
|
-
if (!pending ||
|
|
76
|
+
if (!pending ||
|
|
77
|
+
pending.sessionId !== sessionId ||
|
|
78
|
+
pending.settled ||
|
|
79
|
+
(result.ok && !pending.authorized)) {
|
|
71
80
|
return false;
|
|
72
81
|
}
|
|
73
82
|
if (result.ok) {
|
|
74
|
-
this.complete(callId, createTextToolOutcome(result.content, "succeeded"));
|
|
83
|
+
this.complete(callId, createTextToolOutcome(result.content, "succeeded"), result.presentation);
|
|
75
84
|
}
|
|
76
85
|
else {
|
|
77
|
-
this.complete(callId, createTextToolOutcome(result.error, "failed"));
|
|
86
|
+
this.complete(callId, createTextToolOutcome(result.error, "failed"), result.presentation);
|
|
78
87
|
}
|
|
79
88
|
return true;
|
|
80
89
|
}
|
|
81
90
|
dispatch(options) {
|
|
82
91
|
const client = this.clients.get(options.clientId);
|
|
83
92
|
if (!client?.tools.has(options.tool.name) || !client.sessionIds.has(options.sessionId)) {
|
|
84
|
-
return Promise.resolve(
|
|
93
|
+
return Promise.resolve({
|
|
94
|
+
outcome: createTextToolOutcome(`Client tool '${options.tool.name}' is unavailable because its owning client detached.`, "blocked"),
|
|
95
|
+
});
|
|
85
96
|
}
|
|
86
97
|
const callId = randomUUID();
|
|
87
98
|
return new Promise((resolve) => {
|
|
@@ -98,6 +109,9 @@ export class ClientToolBroker {
|
|
|
98
109
|
}, executionTimeoutMs),
|
|
99
110
|
signal: options.signal,
|
|
100
111
|
abortListener: () => this.abort(callId),
|
|
112
|
+
emitActivity: options.emitActivity,
|
|
113
|
+
acknowledged: false,
|
|
114
|
+
authorized: false,
|
|
101
115
|
settled: false,
|
|
102
116
|
resolve,
|
|
103
117
|
};
|
|
@@ -174,7 +188,7 @@ export class ClientToolBroker {
|
|
|
174
188
|
});
|
|
175
189
|
this.complete(callId, createTextToolOutcome(message, outcome));
|
|
176
190
|
}
|
|
177
|
-
complete(callId, result) {
|
|
191
|
+
complete(callId, result, terminalPresentation) {
|
|
178
192
|
const pending = this.pendingCalls.get(callId);
|
|
179
193
|
if (!pending || pending.settled) {
|
|
180
194
|
return;
|
|
@@ -184,20 +198,23 @@ export class ClientToolBroker {
|
|
|
184
198
|
clearTimeout(pending.executionTimer);
|
|
185
199
|
pending.signal.removeEventListener("abort", pending.abortListener);
|
|
186
200
|
this.pendingCalls.delete(callId);
|
|
187
|
-
pending.resolve(
|
|
201
|
+
pending.resolve({
|
|
202
|
+
outcome: result,
|
|
203
|
+
...(terminalPresentation === undefined ? {} : { terminalPresentation }),
|
|
204
|
+
});
|
|
188
205
|
}
|
|
189
206
|
}
|
|
190
|
-
function createClientToolFinishedUiEvent(toolCall, outcome, durationMs) {
|
|
207
|
+
function createClientToolFinishedUiEvent(toolCall, outcome, presentation, durationMs) {
|
|
191
208
|
const isError = outcome.outcome !== "succeeded";
|
|
192
209
|
return {
|
|
193
210
|
type: "tool_call_finished",
|
|
194
211
|
toolCallId: toolCall.id,
|
|
195
212
|
toolName: toolCall.name,
|
|
196
|
-
presentation: createClientToolPresentation(toolCall.name, extractToolOutcomeText(outcome), durationMs),
|
|
213
|
+
presentation: createClientToolPresentation(toolCall.name, presentation, extractToolOutcomeText(outcome), durationMs),
|
|
197
214
|
status: isError ? "error" : "success",
|
|
198
215
|
};
|
|
199
216
|
}
|
|
200
|
-
function createClientToolPresentation(toolName, content, durationMs) {
|
|
217
|
+
function createClientToolPresentation(toolName, presentation, content, durationMs) {
|
|
201
218
|
const trimmed = content.trimEnd();
|
|
202
219
|
const lineCount = trimmed ? trimmed.split("\n").length : 0;
|
|
203
220
|
const contentBytes = Buffer.byteLength(trimmed, "utf8");
|
|
@@ -207,7 +224,7 @@ function createClientToolPresentation(toolName, content, durationMs) {
|
|
|
207
224
|
.split("\n")
|
|
208
225
|
.map((text) => ({ text }))
|
|
209
226
|
: [];
|
|
210
|
-
|
|
227
|
+
const defaultPresentation = buildToolRunPresentation({
|
|
211
228
|
toolName,
|
|
212
229
|
subject: toolName,
|
|
213
230
|
details,
|
|
@@ -217,6 +234,27 @@ function createClientToolPresentation(toolName, content, durationMs) {
|
|
|
217
234
|
formatLineCount(lineCount),
|
|
218
235
|
].filter((part) => part !== undefined),
|
|
219
236
|
});
|
|
237
|
+
return resolveClientToolPresentation(toolName, defaultPresentation, presentation);
|
|
238
|
+
}
|
|
239
|
+
function resolveClientToolPresentation(toolName, defaults, presentation) {
|
|
240
|
+
const resolved = buildToolRunPresentation({
|
|
241
|
+
toolName,
|
|
242
|
+
...(presentation?.subject === undefined ? {} : { operation: toolName }),
|
|
243
|
+
subject: defaults.subject,
|
|
244
|
+
subjectWrap: defaults.subjectWrap,
|
|
245
|
+
subjectTruncation: false,
|
|
246
|
+
details: defaults.details,
|
|
247
|
+
detailTruncation: false,
|
|
248
|
+
metadata: defaults.metadata,
|
|
249
|
+
});
|
|
250
|
+
return parseToolRunPresentation({
|
|
251
|
+
...resolved,
|
|
252
|
+
subject: presentation?.subject ?? resolved.subject,
|
|
253
|
+
subjectWrap: presentation?.subjectWrap ?? resolved.subjectWrap,
|
|
254
|
+
details: presentation?.details?.map((line) => ({ ...line, wrap: line.wrap ?? "word" })) ??
|
|
255
|
+
resolved.details,
|
|
256
|
+
metadata: presentation?.metadata ?? resolved.metadata,
|
|
257
|
+
});
|
|
220
258
|
}
|
|
221
259
|
function extractToolOutcomeText(outcome) {
|
|
222
260
|
return outcome.content
|
|
@@ -252,12 +290,13 @@ function createClientToolDefinition(sessionId, clientId, tool, broker) {
|
|
|
252
290
|
tool,
|
|
253
291
|
toolCall,
|
|
254
292
|
signal,
|
|
293
|
+
emitActivity: context.emitActivity,
|
|
255
294
|
});
|
|
256
295
|
const durationMs = Math.max(0, Date.now() - startedAt);
|
|
257
296
|
return {
|
|
258
|
-
content: toolResult.content,
|
|
259
|
-
outcome: toolResult.outcome,
|
|
260
|
-
uiEvent: createClientToolFinishedUiEvent(toolCall, toolResult, durationMs),
|
|
297
|
+
content: toolResult.outcome.content,
|
|
298
|
+
outcome: toolResult.outcome.outcome,
|
|
299
|
+
uiEvent: createClientToolFinishedUiEvent(toolCall, toolResult.outcome, toolResult.terminalPresentation, durationMs),
|
|
261
300
|
};
|
|
262
301
|
});
|
|
263
302
|
},
|