@markusylisiurunen/tau 0.3.46 → 0.3.48
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 +57 -6
- package/dist/code_mode/command.d.ts +2 -0
- package/dist/code_mode/command.js +33 -0
- package/dist/code_mode/command.js.map +1 -0
- package/dist/code_mode/files.d.ts +47 -0
- package/dist/code_mode/files.js +296 -0
- package/dist/code_mode/files.js.map +1 -0
- package/dist/code_mode/index.d.ts +6 -0
- package/dist/code_mode/index.js +5 -0
- package/dist/code_mode/index.js.map +1 -0
- package/dist/code_mode/runtime.d.ts +86 -0
- package/dist/code_mode/runtime.js +342 -0
- package/dist/code_mode/runtime.js.map +1 -0
- package/dist/core/agent/agent_runtime.js +0 -10
- package/dist/core/agent/agent_runtime.js.map +1 -1
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/runtime/chat_runtime.js +5 -8
- package/dist/core/runtime/chat_runtime.js.map +1 -1
- package/dist/core/session/direct_bash.js +6 -1
- package/dist/core/session/direct_bash.js.map +1 -1
- package/dist/core/static/code_mode/history/documentation.md +1 -12
- package/dist/core/static/code_mode/history/sandbox_runner.mjs +1 -111
- package/dist/core/static/code_mode/nook/documentation.md +2 -15
- package/dist/core/static/code_mode/nook/sandbox_runner.mjs +1 -147
- package/dist/core/static/code_mode/sandbox_runner.mjs +191 -0
- package/dist/core/static/code_mode/web/documentation.md +1 -13
- package/dist/core/static/code_mode/web/sandbox_runner.mjs +1 -115
- package/dist/core/telegram/config.js +34 -11
- package/dist/core/telegram/config.js.map +1 -1
- package/dist/core/telegram/session_manager.js +48 -14
- package/dist/core/telegram/session_manager.js.map +1 -1
- package/dist/core/telegram/workspace.js +24 -0
- package/dist/core/telegram/workspace.js.map +1 -1
- package/dist/core/tools/bash.js +1 -1
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/code_mode.js +52 -47
- package/dist/core/tools/code_mode.js.map +1 -1
- package/dist/core/tools/code_mode_worker.js +43 -12
- package/dist/core/tools/code_mode_worker.js.map +1 -1
- package/dist/core/tools/history.js +17 -26
- package/dist/core/tools/history.js.map +1 -1
- package/dist/core/tools/nook.js +36 -23
- package/dist/core/tools/nook.js.map +1 -1
- package/dist/core/tools/presentation.js +36 -20
- package/dist/core/tools/presentation.js.map +1 -1
- package/dist/core/tools/send_input_to_agent.js +1 -1
- package/dist/core/tools/send_input_to_agent.js.map +1 -1
- package/dist/core/tools/spawn_agent.js +1 -1
- package/dist/core/tools/spawn_agent.js.map +1 -1
- package/dist/core/tools/subagent_ui.js +1 -1
- package/dist/core/tools/subagent_ui.js.map +1 -1
- package/dist/core/tools/web.js +19 -23
- package/dist/core/tools/web.js.map +1 -1
- package/dist/core/tools/write.js +6 -2
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/utils/spawn_capture.js +34 -21
- package/dist/core/utils/spawn_capture.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/host/client_tool_broker.js +9 -1
- package/dist/host/client_tool_broker.js.map +1 -1
- package/dist/host/local_session_host.js +3 -17
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/nook/README.md +1 -1
- package/dist/protocol/session_protocol.d.ts +2 -1
- package/dist/protocol/session_protocol.js +2 -1
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/sdk/client_tool_command.d.ts +80 -0
- package/dist/sdk/client_tool_command.js +417 -0
- package/dist/sdk/client_tool_command.js.map +1 -0
- package/dist/sdk/code_mode.d.ts +6 -0
- package/dist/sdk/code_mode.js +60 -0
- package/dist/sdk/code_mode.js.map +1 -0
- package/dist/sdk/index.d.ts +5 -1
- package/dist/sdk/index.js +3 -0
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/session.js +52 -39
- package/dist/sdk/session.js.map +1 -1
- package/dist/sdk/types.d.ts +15 -9
- package/dist/store/file_session_store.js +0 -8
- package/dist/store/file_session_store.js.map +1 -1
- package/dist/store/memory_session_store.js +0 -4
- package/dist/store/memory_session_store.js.map +1 -1
- package/dist/store/session_store.js.map +1 -1
- package/dist/tui/chat_controller/diff_review_service.js +2 -2
- package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
- package/dist/tui/command_client_tools.js +163 -23
- package/dist/tui/command_client_tools.js.map +1 -1
- package/dist/tui/session_chat_app.js +1 -1
- package/dist/tui/session_chat_app.js.map +1 -1
- package/dist/tui/session_chat_controller.js +9 -5
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/dist/tui/session_tool_execution_backend.js +2 -2
- package/dist/tui/session_tool_execution_backend.js.map +1 -1
- package/package.json +6 -2
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { TauSdkClientToolContext, TauSdkClientToolResult, TauSdkSessionExecResult } from "./types.js";
|
|
2
|
+
export declare const TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION = 3;
|
|
3
|
+
export declare const TAU_CLIENT_TOOL_COMMAND_MAX_RESULT_BYTES: number;
|
|
4
|
+
export declare const TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_FRAME_BYTES: number;
|
|
5
|
+
export declare const TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_BYTES: number;
|
|
6
|
+
export declare const TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_FRAMES = 512;
|
|
7
|
+
export type TauClientToolCommandInvoke = {
|
|
8
|
+
version: 3;
|
|
9
|
+
type: "invoke";
|
|
10
|
+
sessionId: string;
|
|
11
|
+
agentId: string;
|
|
12
|
+
callId: string;
|
|
13
|
+
arguments: unknown;
|
|
14
|
+
};
|
|
15
|
+
export type TauClientToolCommandExecRequest = {
|
|
16
|
+
version: 3;
|
|
17
|
+
type: "exec";
|
|
18
|
+
requestId: string;
|
|
19
|
+
command: string;
|
|
20
|
+
options: {
|
|
21
|
+
args?: string[];
|
|
22
|
+
env?: Record<string, string>;
|
|
23
|
+
stdinBase64?: string;
|
|
24
|
+
cwd?: string;
|
|
25
|
+
timeoutMs?: number;
|
|
26
|
+
maxCaptureBytes?: number;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export type TauClientToolCommandExecCancel = {
|
|
30
|
+
version: 3;
|
|
31
|
+
type: "exec.cancel";
|
|
32
|
+
requestId: string;
|
|
33
|
+
};
|
|
34
|
+
export type TauClientToolCommandResult = {
|
|
35
|
+
version: 3;
|
|
36
|
+
type: "result";
|
|
37
|
+
content: string;
|
|
38
|
+
};
|
|
39
|
+
export type TauClientToolCommandOutput = TauClientToolCommandExecRequest | TauClientToolCommandExecCancel | TauClientToolCommandResult;
|
|
40
|
+
export type TauClientToolCommandExecResponse = {
|
|
41
|
+
version: 3;
|
|
42
|
+
type: "exec.result";
|
|
43
|
+
requestId: string;
|
|
44
|
+
ok: true;
|
|
45
|
+
result: TauSdkSessionExecResult;
|
|
46
|
+
} | {
|
|
47
|
+
version: 3;
|
|
48
|
+
type: "exec.result";
|
|
49
|
+
requestId: string;
|
|
50
|
+
ok: false;
|
|
51
|
+
error: string;
|
|
52
|
+
};
|
|
53
|
+
export type TauClientToolCommandHandler = (args: unknown, context: TauSdkClientToolContext) => Promise<TauSdkClientToolResult> | TauSdkClientToolResult;
|
|
54
|
+
export type TauClientToolCommandOutputEncoder = {
|
|
55
|
+
encode(frame: TauClientToolCommandOutput): string;
|
|
56
|
+
};
|
|
57
|
+
export type TauClientToolCommandOutputDecoder = {
|
|
58
|
+
push(chunk: Buffer | string): TauClientToolCommandOutput[];
|
|
59
|
+
end(): TauClientToolCommandOutput[];
|
|
60
|
+
};
|
|
61
|
+
export declare function createTauClientToolCommandOutputEncoder(): TauClientToolCommandOutputEncoder;
|
|
62
|
+
export declare function createTauClientToolCommandOutputDecoder(): TauClientToolCommandOutputDecoder;
|
|
63
|
+
export declare function runTauClientToolCommand(handler: TauClientToolCommandHandler): Promise<void>;
|
|
64
|
+
export declare function parseTauClientToolCommandOutput(value: unknown): TauClientToolCommandOutput;
|
|
65
|
+
export declare function parseTauClientToolCommandOutputLine(line: string): TauClientToolCommandOutput;
|
|
66
|
+
export declare function serializeTauClientToolCommandOutput(frame: TauClientToolCommandOutput): string;
|
|
67
|
+
export declare function createTauClientToolCommandInvoke(options: {
|
|
68
|
+
sessionId: string;
|
|
69
|
+
agentId: string;
|
|
70
|
+
callId: string;
|
|
71
|
+
arguments: unknown;
|
|
72
|
+
}): TauClientToolCommandInvoke;
|
|
73
|
+
export declare function createTauClientToolCommandExecResponse(options: {
|
|
74
|
+
requestId: string;
|
|
75
|
+
result: TauSdkSessionExecResult;
|
|
76
|
+
}): TauClientToolCommandExecResponse;
|
|
77
|
+
export declare function createTauClientToolCommandExecResponse(options: {
|
|
78
|
+
requestId: string;
|
|
79
|
+
error: string;
|
|
80
|
+
}): TauClientToolCommandExecResponse;
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
import { createInterface } from "node:readline";
|
|
2
|
+
import { StringDecoder } from "node:string_decoder";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { SESSION_PROTOCOL_MAX_EXEC_CAPTURE_BYTES, SESSION_PROTOCOL_MAX_EXEC_STDIN_BYTES, } from "../protocol/session_protocol.js";
|
|
5
|
+
export const TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION = 3;
|
|
6
|
+
export const TAU_CLIENT_TOOL_COMMAND_MAX_RESULT_BYTES = 1024 * 1024;
|
|
7
|
+
export const TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_FRAME_BYTES = 24 * 1024 * 1024;
|
|
8
|
+
export const TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_BYTES = 192 * 1024 * 1024;
|
|
9
|
+
export const TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_FRAMES = 512;
|
|
10
|
+
const maxExecStdinBase64Length = 4 * Math.ceil(SESSION_PROTOCOL_MAX_EXEC_STDIN_BYTES / 3);
|
|
11
|
+
const execOptionsSchema = z
|
|
12
|
+
.object({
|
|
13
|
+
args: z.array(z.string()).optional(),
|
|
14
|
+
env: z.record(z.string(), z.string()).optional(),
|
|
15
|
+
stdinBase64: z
|
|
16
|
+
.string()
|
|
17
|
+
.max(maxExecStdinBase64Length)
|
|
18
|
+
.refine(isValidBase64)
|
|
19
|
+
.refine((value) => decodedBase64ByteLength(value) <= SESSION_PROTOCOL_MAX_EXEC_STDIN_BYTES)
|
|
20
|
+
.optional(),
|
|
21
|
+
cwd: z.string().optional(),
|
|
22
|
+
timeoutMs: z.number().int().positive().optional(),
|
|
23
|
+
maxCaptureBytes: z
|
|
24
|
+
.number()
|
|
25
|
+
.int()
|
|
26
|
+
.positive()
|
|
27
|
+
.max(SESSION_PROTOCOL_MAX_EXEC_CAPTURE_BYTES)
|
|
28
|
+
.optional(),
|
|
29
|
+
})
|
|
30
|
+
.strict();
|
|
31
|
+
const invokeSchema = z
|
|
32
|
+
.object({
|
|
33
|
+
version: z.literal(TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION),
|
|
34
|
+
type: z.literal("invoke"),
|
|
35
|
+
sessionId: z.string().min(1),
|
|
36
|
+
agentId: z.string().min(1),
|
|
37
|
+
callId: z.string().min(1),
|
|
38
|
+
arguments: z.unknown(),
|
|
39
|
+
})
|
|
40
|
+
.strict();
|
|
41
|
+
const execRequestSchema = z
|
|
42
|
+
.object({
|
|
43
|
+
version: z.literal(TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION),
|
|
44
|
+
type: z.literal("exec"),
|
|
45
|
+
requestId: z.string().min(1),
|
|
46
|
+
command: z.string().min(1),
|
|
47
|
+
options: execOptionsSchema,
|
|
48
|
+
})
|
|
49
|
+
.strict();
|
|
50
|
+
const execCancelSchema = z
|
|
51
|
+
.object({
|
|
52
|
+
version: z.literal(TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION),
|
|
53
|
+
type: z.literal("exec.cancel"),
|
|
54
|
+
requestId: z.string().min(1),
|
|
55
|
+
})
|
|
56
|
+
.strict();
|
|
57
|
+
const resultSchema = z
|
|
58
|
+
.object({
|
|
59
|
+
version: z.literal(TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION),
|
|
60
|
+
type: z.literal("result"),
|
|
61
|
+
content: z
|
|
62
|
+
.string()
|
|
63
|
+
.refine((value) => Buffer.byteLength(value, "utf8") <= TAU_CLIENT_TOOL_COMMAND_MAX_RESULT_BYTES),
|
|
64
|
+
})
|
|
65
|
+
.strict();
|
|
66
|
+
const execResultSchema = z
|
|
67
|
+
.object({
|
|
68
|
+
output: z.string(),
|
|
69
|
+
stdout: z.string(),
|
|
70
|
+
stderr: z.string(),
|
|
71
|
+
exitCode: z.number().int().nullable(),
|
|
72
|
+
truncated: z.boolean(),
|
|
73
|
+
timedOut: z.boolean(),
|
|
74
|
+
aborted: z.boolean(),
|
|
75
|
+
closeSignal: z.string().nullable(),
|
|
76
|
+
})
|
|
77
|
+
.strict();
|
|
78
|
+
const execResponseSchema = z.discriminatedUnion("ok", [
|
|
79
|
+
z
|
|
80
|
+
.object({
|
|
81
|
+
version: z.literal(TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION),
|
|
82
|
+
type: z.literal("exec.result"),
|
|
83
|
+
requestId: z.string().min(1),
|
|
84
|
+
ok: z.literal(true),
|
|
85
|
+
result: execResultSchema,
|
|
86
|
+
})
|
|
87
|
+
.strict(),
|
|
88
|
+
z
|
|
89
|
+
.object({
|
|
90
|
+
version: z.literal(TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION),
|
|
91
|
+
type: z.literal("exec.result"),
|
|
92
|
+
requestId: z.string().min(1),
|
|
93
|
+
ok: z.literal(false),
|
|
94
|
+
error: z.string(),
|
|
95
|
+
})
|
|
96
|
+
.strict(),
|
|
97
|
+
]);
|
|
98
|
+
export function createTauClientToolCommandOutputEncoder() {
|
|
99
|
+
let totalBytes = 0;
|
|
100
|
+
let totalFrames = 0;
|
|
101
|
+
return {
|
|
102
|
+
encode(frame) {
|
|
103
|
+
const line = serializeTauClientToolCommandOutput(frame);
|
|
104
|
+
totalBytes += Buffer.byteLength(line, "utf8");
|
|
105
|
+
totalFrames += 1;
|
|
106
|
+
assertProtocolTotals(totalBytes, totalFrames);
|
|
107
|
+
return line;
|
|
108
|
+
},
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
export function createTauClientToolCommandOutputDecoder() {
|
|
112
|
+
const decoder = new StringDecoder("utf8");
|
|
113
|
+
let buffer = "";
|
|
114
|
+
let totalBytes = 0;
|
|
115
|
+
let totalFrames = 0;
|
|
116
|
+
const consume = (text, flush) => {
|
|
117
|
+
buffer += text;
|
|
118
|
+
const frames = [];
|
|
119
|
+
while (true) {
|
|
120
|
+
const newlineIndex = buffer.indexOf("\n");
|
|
121
|
+
if (newlineIndex === -1)
|
|
122
|
+
break;
|
|
123
|
+
const rawLine = buffer.slice(0, newlineIndex);
|
|
124
|
+
buffer = buffer.slice(newlineIndex + 1);
|
|
125
|
+
assertProtocolFrameBytes(Buffer.byteLength(rawLine, "utf8"));
|
|
126
|
+
const line = rawLine.trim();
|
|
127
|
+
if (!line)
|
|
128
|
+
continue;
|
|
129
|
+
frames.push(parseTauClientToolCommandOutputLine(line));
|
|
130
|
+
totalFrames += 1;
|
|
131
|
+
assertProtocolTotals(totalBytes, totalFrames);
|
|
132
|
+
}
|
|
133
|
+
if (flush && buffer.trim()) {
|
|
134
|
+
frames.push(parseTauClientToolCommandOutputLine(buffer.trim()));
|
|
135
|
+
totalFrames += 1;
|
|
136
|
+
buffer = "";
|
|
137
|
+
assertProtocolTotals(totalBytes, totalFrames);
|
|
138
|
+
}
|
|
139
|
+
else if (Buffer.byteLength(buffer, "utf8") > TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_FRAME_BYTES) {
|
|
140
|
+
buffer = "";
|
|
141
|
+
throw new Error(`command client tool exceeded the ${TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_FRAME_BYTES}-byte protocol frame limit`);
|
|
142
|
+
}
|
|
143
|
+
return frames;
|
|
144
|
+
};
|
|
145
|
+
return {
|
|
146
|
+
push(chunk) {
|
|
147
|
+
const bytes = typeof chunk === "string" ? Buffer.from(chunk) : chunk;
|
|
148
|
+
totalBytes += bytes.byteLength;
|
|
149
|
+
assertProtocolTotals(totalBytes, totalFrames);
|
|
150
|
+
return consume(decoder.write(bytes), false);
|
|
151
|
+
},
|
|
152
|
+
end() {
|
|
153
|
+
return consume(decoder.end(), true);
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
export async function runTauClientToolCommand(handler) {
|
|
158
|
+
const controller = new AbortController();
|
|
159
|
+
const abort = () => controller.abort();
|
|
160
|
+
process.once("SIGINT", abort);
|
|
161
|
+
process.once("SIGTERM", abort);
|
|
162
|
+
const lines = createInterface({ input: process.stdin, crlfDelay: Number.POSITIVE_INFINITY });
|
|
163
|
+
const iterator = lines[Symbol.asyncIterator]();
|
|
164
|
+
const pending = new Map();
|
|
165
|
+
let inputEnded = false;
|
|
166
|
+
let stoppingInput = false;
|
|
167
|
+
let requestSequence = 0;
|
|
168
|
+
let writeQueue = Promise.resolve();
|
|
169
|
+
const outputEncoder = createTauClientToolCommandOutputEncoder();
|
|
170
|
+
const writeFrame = async (frame) => {
|
|
171
|
+
const line = outputEncoder.encode(frame);
|
|
172
|
+
const write = writeQueue.then(() => new Promise((resolve, reject) => {
|
|
173
|
+
process.stdout.write(line, (error) => (error ? reject(error) : resolve()));
|
|
174
|
+
}));
|
|
175
|
+
writeQueue = write.catch(() => undefined);
|
|
176
|
+
await write;
|
|
177
|
+
};
|
|
178
|
+
const rejectPending = (error) => {
|
|
179
|
+
for (const request of pending.values()) {
|
|
180
|
+
request.signal.removeEventListener("abort", request.onAbort);
|
|
181
|
+
request.reject(error);
|
|
182
|
+
}
|
|
183
|
+
pending.clear();
|
|
184
|
+
};
|
|
185
|
+
try {
|
|
186
|
+
const first = await iterator.next();
|
|
187
|
+
if (first.done) {
|
|
188
|
+
throw new Error("client-tool command received no invocation");
|
|
189
|
+
}
|
|
190
|
+
const invocation = parseInvokeFrame(first.value);
|
|
191
|
+
let rejectInput = () => { };
|
|
192
|
+
const inputFailure = new Promise((_resolve, reject) => {
|
|
193
|
+
rejectInput = reject;
|
|
194
|
+
});
|
|
195
|
+
void (async () => {
|
|
196
|
+
try {
|
|
197
|
+
while (true) {
|
|
198
|
+
const next = await iterator.next();
|
|
199
|
+
if (next.done) {
|
|
200
|
+
if (stoppingInput)
|
|
201
|
+
return;
|
|
202
|
+
const error = new Error("client-tool command input closed during execution");
|
|
203
|
+
inputEnded = true;
|
|
204
|
+
controller.abort(error);
|
|
205
|
+
rejectPending(error);
|
|
206
|
+
rejectInput(error);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
const response = parseExecResponseFrame(next.value);
|
|
210
|
+
const request = pending.get(response.requestId);
|
|
211
|
+
if (!request)
|
|
212
|
+
continue;
|
|
213
|
+
pending.delete(response.requestId);
|
|
214
|
+
request.signal.removeEventListener("abort", request.onAbort);
|
|
215
|
+
if (response.ok) {
|
|
216
|
+
request.resolve(response.result);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
request.reject(new Error(response.error));
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
if (stoppingInput)
|
|
225
|
+
return;
|
|
226
|
+
inputEnded = true;
|
|
227
|
+
controller.abort(error);
|
|
228
|
+
rejectPending(error);
|
|
229
|
+
rejectInput(error);
|
|
230
|
+
}
|
|
231
|
+
})();
|
|
232
|
+
const executionEnvironment = {
|
|
233
|
+
exec: async (command, options = {}) => {
|
|
234
|
+
if (inputEnded) {
|
|
235
|
+
throw new Error("client-tool command input is closed");
|
|
236
|
+
}
|
|
237
|
+
const { signal: operationSignal, stdin, ...execOptions } = options;
|
|
238
|
+
const signal = operationSignal
|
|
239
|
+
? AbortSignal.any([controller.signal, operationSignal])
|
|
240
|
+
: controller.signal;
|
|
241
|
+
signal.throwIfAborted();
|
|
242
|
+
const requestId = String(++requestSequence);
|
|
243
|
+
const result = new Promise((resolve, reject) => {
|
|
244
|
+
const onAbort = () => {
|
|
245
|
+
pending.delete(requestId);
|
|
246
|
+
void writeFrame({
|
|
247
|
+
version: TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION,
|
|
248
|
+
type: "exec.cancel",
|
|
249
|
+
requestId,
|
|
250
|
+
}).catch(() => undefined);
|
|
251
|
+
reject(signal.reason);
|
|
252
|
+
};
|
|
253
|
+
pending.set(requestId, { resolve, reject, signal, onAbort });
|
|
254
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
255
|
+
});
|
|
256
|
+
try {
|
|
257
|
+
await writeFrame({
|
|
258
|
+
version: TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION,
|
|
259
|
+
type: "exec",
|
|
260
|
+
requestId,
|
|
261
|
+
command,
|
|
262
|
+
options: {
|
|
263
|
+
...execOptions,
|
|
264
|
+
...(stdin === undefined ? {} : { stdinBase64: stdin.toString("base64") }),
|
|
265
|
+
},
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
catch (error) {
|
|
269
|
+
const request = pending.get(requestId);
|
|
270
|
+
if (request) {
|
|
271
|
+
pending.delete(requestId);
|
|
272
|
+
request.signal.removeEventListener("abort", request.onAbort);
|
|
273
|
+
request.reject(error);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return await result;
|
|
277
|
+
},
|
|
278
|
+
};
|
|
279
|
+
const handled = Promise.resolve(handler(invocation.arguments, {
|
|
280
|
+
sessionId: invocation.sessionId,
|
|
281
|
+
agentId: invocation.agentId,
|
|
282
|
+
callId: invocation.callId,
|
|
283
|
+
signal: controller.signal,
|
|
284
|
+
executionEnvironment,
|
|
285
|
+
}));
|
|
286
|
+
const result = await Promise.race([handled, inputFailure]);
|
|
287
|
+
const content = typeof result === "string" ? result : result.content;
|
|
288
|
+
await writeFrame({
|
|
289
|
+
version: TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION,
|
|
290
|
+
type: "result",
|
|
291
|
+
content,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
296
|
+
process.stderr.write(`${message}\n`);
|
|
297
|
+
process.exitCode = 1;
|
|
298
|
+
}
|
|
299
|
+
finally {
|
|
300
|
+
stoppingInput = true;
|
|
301
|
+
rejectPending(new Error("client-tool command finished"));
|
|
302
|
+
lines.close();
|
|
303
|
+
process.stdin.pause();
|
|
304
|
+
process.removeListener("SIGINT", abort);
|
|
305
|
+
process.removeListener("SIGTERM", abort);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
export function parseTauClientToolCommandOutput(value) {
|
|
309
|
+
const parsed = z
|
|
310
|
+
.discriminatedUnion("type", [execRequestSchema, execCancelSchema, resultSchema])
|
|
311
|
+
.safeParse(value);
|
|
312
|
+
if (!parsed.success) {
|
|
313
|
+
throw new Error("command client tool returned an invalid version-3 protocol frame");
|
|
314
|
+
}
|
|
315
|
+
return parsed.data;
|
|
316
|
+
}
|
|
317
|
+
export function parseTauClientToolCommandOutputLine(line) {
|
|
318
|
+
assertProtocolFrameBytes(Buffer.byteLength(line, "utf8"));
|
|
319
|
+
let value;
|
|
320
|
+
try {
|
|
321
|
+
value = JSON.parse(line);
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
throw new Error("command client tool returned invalid JSON protocol framing");
|
|
325
|
+
}
|
|
326
|
+
return parseTauClientToolCommandOutput(value);
|
|
327
|
+
}
|
|
328
|
+
export function serializeTauClientToolCommandOutput(frame) {
|
|
329
|
+
const line = JSON.stringify(parseTauClientToolCommandOutput(frame));
|
|
330
|
+
assertProtocolFrameBytes(Buffer.byteLength(line, "utf8"));
|
|
331
|
+
return `${line}\n`;
|
|
332
|
+
}
|
|
333
|
+
export function createTauClientToolCommandInvoke(options) {
|
|
334
|
+
return {
|
|
335
|
+
version: TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION,
|
|
336
|
+
type: "invoke",
|
|
337
|
+
...options,
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
export function createTauClientToolCommandExecResponse(options) {
|
|
341
|
+
return options.result !== undefined
|
|
342
|
+
? {
|
|
343
|
+
version: TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION,
|
|
344
|
+
type: "exec.result",
|
|
345
|
+
requestId: options.requestId,
|
|
346
|
+
ok: true,
|
|
347
|
+
result: options.result,
|
|
348
|
+
}
|
|
349
|
+
: {
|
|
350
|
+
version: TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION,
|
|
351
|
+
type: "exec.result",
|
|
352
|
+
requestId: options.requestId,
|
|
353
|
+
ok: false,
|
|
354
|
+
error: options.error ?? "execution failed",
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
function assertProtocolFrameBytes(bytes) {
|
|
358
|
+
if (bytes > TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_FRAME_BYTES) {
|
|
359
|
+
throw new Error(`command client tool exceeded the ${TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_FRAME_BYTES}-byte protocol frame limit`);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
function assertProtocolTotals(bytes, frames) {
|
|
363
|
+
if (bytes > TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_BYTES) {
|
|
364
|
+
throw new Error(`command client tool exceeded the ${TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_BYTES}-byte protocol traffic limit`);
|
|
365
|
+
}
|
|
366
|
+
if (frames > TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_FRAMES) {
|
|
367
|
+
throw new Error(`command client tool exceeded the ${TAU_CLIENT_TOOL_COMMAND_MAX_PROTOCOL_FRAMES}-frame protocol limit`);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
function isValidBase64(value) {
|
|
371
|
+
if (value.length % 4 !== 0)
|
|
372
|
+
return false;
|
|
373
|
+
const padding = value.endsWith("==") ? 2 : value.endsWith("=") ? 1 : 0;
|
|
374
|
+
const contentLength = value.length - padding;
|
|
375
|
+
for (let index = 0; index < contentLength; index += 1) {
|
|
376
|
+
const code = value.charCodeAt(index);
|
|
377
|
+
const valid = (code >= 65 && code <= 90) ||
|
|
378
|
+
(code >= 97 && code <= 122) ||
|
|
379
|
+
(code >= 48 && code <= 57) ||
|
|
380
|
+
code === 43 ||
|
|
381
|
+
code === 47;
|
|
382
|
+
if (!valid)
|
|
383
|
+
return false;
|
|
384
|
+
}
|
|
385
|
+
for (let index = contentLength; index < value.length; index += 1) {
|
|
386
|
+
if (value.charCodeAt(index) !== 61)
|
|
387
|
+
return false;
|
|
388
|
+
}
|
|
389
|
+
return true;
|
|
390
|
+
}
|
|
391
|
+
function decodedBase64ByteLength(value) {
|
|
392
|
+
const padding = value.endsWith("==") ? 2 : value.endsWith("=") ? 1 : 0;
|
|
393
|
+
return (value.length / 4) * 3 - padding;
|
|
394
|
+
}
|
|
395
|
+
function parseInvokeFrame(line) {
|
|
396
|
+
const parsed = invokeSchema.safeParse(parseJsonLine(line));
|
|
397
|
+
if (!parsed.success) {
|
|
398
|
+
throw new Error("client-tool command received an invalid version-3 invocation");
|
|
399
|
+
}
|
|
400
|
+
return parsed.data;
|
|
401
|
+
}
|
|
402
|
+
function parseExecResponseFrame(line) {
|
|
403
|
+
const parsed = execResponseSchema.safeParse(parseJsonLine(line));
|
|
404
|
+
if (!parsed.success) {
|
|
405
|
+
throw new Error("client-tool command received an invalid execution response");
|
|
406
|
+
}
|
|
407
|
+
return parsed.data;
|
|
408
|
+
}
|
|
409
|
+
function parseJsonLine(line) {
|
|
410
|
+
try {
|
|
411
|
+
return JSON.parse(line);
|
|
412
|
+
}
|
|
413
|
+
catch {
|
|
414
|
+
throw new Error("client-tool command received invalid JSON");
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
//# sourceMappingURL=client_tool_command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client_tool_command.js","sourceRoot":"","sources":["../../src/sdk/client_tool_command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type TauCodeModeDefinition } from "../code_mode/runtime.js";
|
|
2
|
+
import type { TauSdkClientTool } from "./types.js";
|
|
3
|
+
export type TauSdkCodeModeClientToolOptions = TauCodeModeDefinition & {
|
|
4
|
+
description: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function createTauCodeModeClientTool(options: TauSdkCodeModeClientToolOptions): TauSdkClientTool;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { createTauCodeModeExecutionEnvironmentFiles, executeTauCodeMode, validateTauCodeModeDefinition, } from "../code_mode/runtime.js";
|
|
2
|
+
export function createTauCodeModeClientTool(options) {
|
|
3
|
+
const definition = {
|
|
4
|
+
name: options.name,
|
|
5
|
+
documentation: options.documentation,
|
|
6
|
+
api: options.api,
|
|
7
|
+
...(options.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),
|
|
8
|
+
...(options.persistOutput === undefined ? {} : { persistOutput: options.persistOutput }),
|
|
9
|
+
};
|
|
10
|
+
validateTauCodeModeDefinition(definition);
|
|
11
|
+
if (!options.description.trim()) {
|
|
12
|
+
throw new Error("code-mode client tool description must not be empty");
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
schema: {
|
|
16
|
+
name: options.name,
|
|
17
|
+
description: options.description,
|
|
18
|
+
parameters: {
|
|
19
|
+
type: "object",
|
|
20
|
+
properties: {
|
|
21
|
+
code: {
|
|
22
|
+
type: "string",
|
|
23
|
+
description: "JavaScript source to execute. Use console output to return information.",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
required: ["code"],
|
|
27
|
+
additionalProperties: false,
|
|
28
|
+
},
|
|
29
|
+
...(options.timeoutMs === undefined ? {} : { executionTimeoutMs: options.timeoutMs }),
|
|
30
|
+
},
|
|
31
|
+
execute: async (args, context) => {
|
|
32
|
+
const code = parseCodeArguments(args);
|
|
33
|
+
return await executeTauCodeMode({
|
|
34
|
+
...definition,
|
|
35
|
+
code,
|
|
36
|
+
signal: context.signal,
|
|
37
|
+
invocation: {
|
|
38
|
+
sessionId: context.sessionId,
|
|
39
|
+
agentId: context.agentId,
|
|
40
|
+
callId: context.callId,
|
|
41
|
+
},
|
|
42
|
+
executionEnvironment: context.executionEnvironment,
|
|
43
|
+
files: createTauCodeModeExecutionEnvironmentFiles(context.agentId, context.executionEnvironment),
|
|
44
|
+
});
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function parseCodeArguments(value) {
|
|
49
|
+
if (typeof value !== "object" || value === null) {
|
|
50
|
+
throw new Error("code-mode client tool arguments must be an object");
|
|
51
|
+
}
|
|
52
|
+
const args = value;
|
|
53
|
+
if (typeof args.code !== "string" ||
|
|
54
|
+
!args.code.trim() ||
|
|
55
|
+
Object.keys(args).some((key) => key !== "code")) {
|
|
56
|
+
throw new Error("code-mode client tool arguments must contain exactly one non-empty 'code' string");
|
|
57
|
+
}
|
|
58
|
+
return args.code;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=code_mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code_mode.js","sourceRoot":"","sources":["../../src/sdk/code_mode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0CAA0C,EAC1C,kBAAkB,EAElB,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAOjC,MAAM,UAAU,2BAA2B,CACzC,OAAwC;IAExC,MAAM,UAAU,GAA0B;QACxC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;KACzF,CAAC;IACF,6BAA6B,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,OAAO;QACL,MAAM,EAAE;YACN,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,yEAAyE;qBACvF;iBACF;gBACD,QAAQ,EAAE,CAAC,MAAM,CAAC;gBAClB,oBAAoB,EAAE,KAAK;aAC5B;YACD,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;SACtF;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,MAAM,kBAAkB,CAAC;gBAC9B,GAAG,UAAU;gBACb,IAAI;gBACJ,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE;oBACV,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;gBACD,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;gBAClD,KAAK,EAAE,0CAA0C,CAC/C,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,oBAAoB,CAC7B;aACF,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,IAAI,GAAG,KAAgC,CAAC;IAC9C,IACE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,EAC/C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC"}
|
package/dist/sdk/index.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
export type { BuildTauCodeModeToolDescriptionOptions, ExecuteTauCodeModeOptions, TauCodeModeApi, TauCodeModeDefinition, TauCodeModeExecutionStatus, TauCodeModeHandler, TauCodeModeHandlerContext, TauCodeModeInvocation, TauCodeModeJsonValue, TauCodeModePersistOutput, TauCodeModeResult, } from "../code_mode/runtime.js";
|
|
2
|
+
export { buildTauCodeModeToolDescription, executeTauCodeMode, TAU_CODE_MODE_DEFAULT_TIMEOUT_MS, TAU_CODE_MODE_MAX_OUTPUT_TOKENS, } from "../code_mode/runtime.js";
|
|
1
3
|
export type { SessionProtocolDelta, SessionProtocolFeedbackEvent, SessionProtocolFeedbackTone, SessionProtocolPendingUserMessage, SessionProtocolPendingUserMessagesMessage, SessionProtocolPendingUserMessagesState, SessionProtocolSnapshot, SessionProtocolSubagentActivitiesAgentState, SessionProtocolSubagentActivitiesChange, SessionProtocolSubagentActivitiesMessage, SessionProtocolSubagentActivitiesState, SessionProtocolSubagentActivity, SessionProtocolTurnRecord, } from "../protocol/index.js";
|
|
2
4
|
export { applySessionProtocolDelta, applySessionProtocolSubagentActivitiesMessage, } from "../protocol/index.js";
|
|
3
5
|
export type { SessionProtocolDeltaListener, SessionProtocolEphemeralListener, SessionProtocolFailureListener, SessionProtocolPendingUserMessagesListener, SessionProtocolSpawnedProcess, SessionProtocolSubagentActivitiesListener, SessionProtocolTransport, TauSessionProtocolError, TauSessionProtocolErrorCode, WebSocketSessionProtocolTransportOptions, } from "../transport/index.js";
|
|
4
6
|
export { StdioSessionProtocolTransport, TauProcessError, TauSessionClientError, TauSessionProtocolResponseError, TauTransportError, WebSocketSessionProtocolTransport, } from "../transport/index.js";
|
|
5
7
|
export { createTauSdkClient, createTauSdkWebSocketClient } from "./client.js";
|
|
8
|
+
export { runTauClientToolCommand, TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION, type TauClientToolCommandHandler, } from "./client_tool_command.js";
|
|
9
|
+
export { createTauCodeModeClientTool, type TauSdkCodeModeClientToolOptions, } from "./code_mode.js";
|
|
6
10
|
export { createTauSdkClientFromTransport } from "./session.js";
|
|
7
|
-
export type { TauSdkAutocompletePathsResult, TauSdkClient, TauSdkClientOptions, TauSdkCreateSessionInput, TauSdkDelta, TauSdkDeltaListener, TauSdkEphemeral, TauSdkEphemeralAgentTool, TauSdkEphemeralCloseResult, TauSdkEphemeralCreateResult, TauSdkEphemeralListener, TauSdkEphemeralSubmitResult, TauSdkInitializeParams, TauSdkPendingUserMessagesListener, TauSdkPendingUserMessagesMessage, TauSdkPendingUserMessagesState, TauSdkReadyMessage, TauSdkRequestId, TauSdkResolvePromptResult, TauSdkSession, TauSdkSessionCancelPendingMessagesResult, TauSdkSessionClearGoalResult, TauSdkSessionClient, TauSdkSessionCompactResult, TauSdkSessionExecResult, TauSdkSessionInterruptResult, TauSdkSessionInterruptSubagentResult, TauSdkSessionProtocolMethod, TauSdkSessionQueueResult, TauSdkSessionRecordResult, TauSdkSessionReloadResult, TauSdkSessionResumeGoalResult, TauSdkSessionRetryResult, TauSdkSessionRewindResult, TauSdkSessionSampleInput, TauSdkSessionSampleResult, TauSdkSessionSetPersonaResult, TauSdkSessionSetReasoningResult, TauSdkSessionSnapshotResult, TauSdkSessionStartGoalResult, TauSdkSessionSteerResult, TauSdkSessionSubmitResult, TauSdkSessionSummary, TauSdkSessionTurnOutcome, TauSdkSessionTurnRecord, TauSdkSessionUnobserveResult, TauSdkSessionUserMessageOptions, TauSdkSubagentActivitiesListener, TauSdkSubagentActivitiesMessage, TauSdkSubagentActivitiesState, TauSdkTransportClientOptions, TauSdkWebSocketClientOptions, } from "./types.js";
|
|
11
|
+
export type { TauSdkAutocompletePathsResult, TauSdkClient, TauSdkClientOptions, TauSdkClientTool, TauSdkClientToolContext, TauSdkClientToolExecutionEnvironment, TauSdkClientToolResult, TauSdkCreateSessionInput, TauSdkDelta, TauSdkDeltaListener, TauSdkEphemeral, TauSdkEphemeralAgentTool, TauSdkEphemeralCloseResult, TauSdkEphemeralCreateResult, TauSdkEphemeralListener, TauSdkEphemeralSubmitResult, TauSdkInitializeParams, TauSdkPendingUserMessagesListener, TauSdkPendingUserMessagesMessage, TauSdkPendingUserMessagesState, TauSdkReadyMessage, TauSdkRequestId, TauSdkResolvePromptResult, TauSdkSession, TauSdkSessionCancelPendingMessagesResult, TauSdkSessionClearGoalResult, TauSdkSessionClient, TauSdkSessionCompactResult, TauSdkSessionExecOptions, TauSdkSessionExecResult, TauSdkSessionInterruptResult, TauSdkSessionInterruptSubagentResult, TauSdkSessionProtocolMethod, TauSdkSessionQueueResult, TauSdkSessionRecordResult, TauSdkSessionReloadResult, TauSdkSessionResumeGoalResult, TauSdkSessionRetryResult, TauSdkSessionRewindResult, TauSdkSessionSampleInput, TauSdkSessionSampleResult, TauSdkSessionSetPersonaResult, TauSdkSessionSetReasoningResult, TauSdkSessionSnapshotResult, TauSdkSessionStartGoalResult, TauSdkSessionSteerResult, TauSdkSessionSubmitResult, TauSdkSessionSummary, TauSdkSessionTurnOutcome, TauSdkSessionTurnRecord, TauSdkSessionUnobserveResult, TauSdkSessionUserMessageOptions, TauSdkSubagentActivitiesListener, TauSdkSubagentActivitiesMessage, TauSdkSubagentActivitiesState, TauSdkTransportClientOptions, TauSdkWebSocketClientOptions, } from "./types.js";
|
|
8
12
|
export type { TauSdkUserTextProjection } from "./user_text.js";
|
|
9
13
|
export { getTauUserDisplayText, getTauUserModelText, projectTauUserText } from "./user_text.js";
|
|
10
14
|
export declare function getTauSdkSessionTurnRecord(snapshot: import("../protocol/index.js").SessionProtocolSnapshot, userHistoryEntryId: string): import("./types.js").TauSdkSessionTurnRecord | undefined;
|
package/dist/sdk/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
export { buildTauCodeModeToolDescription, executeTauCodeMode, TAU_CODE_MODE_DEFAULT_TIMEOUT_MS, TAU_CODE_MODE_MAX_OUTPUT_TOKENS, } from "../code_mode/runtime.js";
|
|
1
2
|
export { applySessionProtocolDelta, applySessionProtocolSubagentActivitiesMessage, } from "../protocol/index.js";
|
|
2
3
|
export { StdioSessionProtocolTransport, TauProcessError, TauSessionClientError, TauSessionProtocolResponseError, TauTransportError, WebSocketSessionProtocolTransport, } from "../transport/index.js";
|
|
3
4
|
export { createTauSdkClient, createTauSdkWebSocketClient } from "./client.js";
|
|
5
|
+
export { runTauClientToolCommand, TAU_CLIENT_TOOL_COMMAND_PROTOCOL_VERSION, } from "./client_tool_command.js";
|
|
6
|
+
export { createTauCodeModeClientTool, } from "./code_mode.js";
|
|
4
7
|
export { createTauSdkClientFromTransport } from "./session.js";
|
|
5
8
|
export { getTauUserDisplayText, getTauUserModelText, projectTauUserText } from "./user_text.js";
|
|
6
9
|
export function getTauSdkSessionTurnRecord(snapshot, userHistoryEntryId) {
|
package/dist/sdk/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,+BAA+B,EAC/B,kBAAkB,EAClB,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AAgBjC,OAAO,EACL,yBAAyB,EACzB,6CAA6C,GAC9C,MAAM,sBAAsB,CAAC;AAa9B,OAAO,EACL,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,+BAA+B,EAC/B,iBAAiB,EACjB,iCAAiC,GAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EACL,uBAAuB,EACvB,wCAAwC,GAEzC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,2BAA2B,GAE5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC;AA6D/D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEhG,MAAM,UAAU,0BAA0B,CACxC,QAAgE,EAChE,kBAA0B;IAE1B,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;QACtD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC;QACpC,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAAgE,EAChE,kBAA0B;IAE1B,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IACxE,OAAO,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC"}
|