@tencent-ai/agent-sdk 0.2.1 → 0.2.3
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/cli/CHANGELOG.md +22 -0
- package/cli/dist/codebuddy.js +9 -9
- package/cli/package.json +1 -1
- package/cli/product.cloudhosted.json +2 -2
- package/cli/product.internal.json +2 -2
- package/cli/product.ioa.json +2 -2
- package/cli/product.json +2 -2
- package/cli/product.selfhosted.json +2 -2
- package/lib/acp/acp-client.d.ts +62 -0
- package/lib/acp/acp-client.d.ts.map +1 -0
- package/lib/acp/acp-client.js +256 -0
- package/lib/acp/acp-client.js.map +1 -0
- package/lib/acp/index.d.ts +13 -0
- package/lib/acp/index.d.ts.map +1 -0
- package/lib/acp/index.js +19 -0
- package/lib/acp/index.js.map +1 -0
- package/lib/acp/tool-converter.d.ts +75 -0
- package/lib/acp/tool-converter.d.ts.map +1 -0
- package/lib/acp/tool-converter.js +437 -0
- package/lib/acp/tool-converter.js.map +1 -0
- package/lib/connect.d.ts +94 -0
- package/lib/connect.d.ts.map +1 -0
- package/lib/connect.js +139 -0
- package/lib/connect.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -1
- package/lib/index.js.map +1 -1
- package/lib/query.d.ts +26 -27
- package/lib/query.d.ts.map +1 -1
- package/lib/query.js +115 -167
- package/lib/query.js.map +1 -1
- package/lib/session.d.ts +25 -1
- package/lib/session.d.ts.map +1 -1
- package/lib/session.js +119 -3
- package/lib/session.js.map +1 -1
- package/lib/transport/index.d.ts +13 -0
- package/lib/transport/index.d.ts.map +1 -1
- package/lib/transport/index.js.map +1 -1
- package/lib/transport/process-transport.d.ts +39 -0
- package/lib/transport/process-transport.d.ts.map +1 -1
- package/lib/transport/process-transport.js +215 -1
- package/lib/transport/process-transport.js.map +1 -1
- package/lib/types.d.ts +59 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/cli-resolver.d.ts +5 -0
- package/lib/utils/cli-resolver.d.ts.map +1 -1
- package/lib/utils/cli-resolver.js +22 -3
- package/lib/utils/cli-resolver.js.map +1 -1
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.d.ts.map +1 -1
- package/lib/utils/index.js +2 -1
- package/lib/utils/index.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tool Converter Utility
|
|
4
|
+
*
|
|
5
|
+
* Converts SDK internal tool formats to ACP (Agent Client Protocol) format and vice versa.
|
|
6
|
+
*
|
|
7
|
+
* Uses official @agentclientprotocol/sdk types for compatibility with the ACP specification.
|
|
8
|
+
*
|
|
9
|
+
* Critical Design Principle: NO DATA LOSS
|
|
10
|
+
* - SDK tool inputs are preserved completely in rawInput
|
|
11
|
+
* - Tool IDs are maintained throughout the conversion
|
|
12
|
+
* - Tool results are preserved with error state tracking
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.convertSdkToolUseToAcpToolCall = convertSdkToolUseToAcpToolCall;
|
|
16
|
+
exports.convertAcpToolResultToSdk = convertAcpToolResultToSdk;
|
|
17
|
+
exports.extractToolUseBlocks = extractToolUseBlocks;
|
|
18
|
+
exports.extractTextContent = extractTextContent;
|
|
19
|
+
// ============= Conversion: SDK Tool Use → ACP Tool Call =============
|
|
20
|
+
/**
|
|
21
|
+
* Convert SDK ToolUseContentBlock to ACP Tool Call
|
|
22
|
+
* Preserves all input data in rawInput field
|
|
23
|
+
*
|
|
24
|
+
* @param toolUse - SDK tool use block
|
|
25
|
+
* @returns ACP tool call with complete data preservation
|
|
26
|
+
*/
|
|
27
|
+
function convertSdkToolUseToAcpToolCall(toolUse) {
|
|
28
|
+
const toolName = toolUse.name;
|
|
29
|
+
const toolInput = toolUse.input;
|
|
30
|
+
return {
|
|
31
|
+
toolCallId: toolUse.id,
|
|
32
|
+
status: 'pending',
|
|
33
|
+
title: generateToolTitle(toolName, toolInput),
|
|
34
|
+
kind: getToolKind(toolName),
|
|
35
|
+
rawInput: toolInput,
|
|
36
|
+
content: generateToolContent(toolName, toolInput),
|
|
37
|
+
locations: extractToolLocations(toolName, toolInput),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
// ============= Title Generation by Tool Type =============
|
|
41
|
+
function generateToolTitle(toolName, input) {
|
|
42
|
+
switch (toolName) {
|
|
43
|
+
case 'Read':
|
|
44
|
+
case 'read': {
|
|
45
|
+
const filePath = input.file_path;
|
|
46
|
+
const offset = input.offset;
|
|
47
|
+
const limit = input.limit;
|
|
48
|
+
if (!filePath)
|
|
49
|
+
return 'Read';
|
|
50
|
+
if (limit) {
|
|
51
|
+
return `Read ${filePath} (${(offset !== null && offset !== void 0 ? offset : 0) + 1} - ${(offset !== null && offset !== void 0 ? offset : 0) + limit})`;
|
|
52
|
+
}
|
|
53
|
+
else if (offset) {
|
|
54
|
+
return `Read ${filePath} (from line ${(offset !== null && offset !== void 0 ? offset : 0) + 1})`;
|
|
55
|
+
}
|
|
56
|
+
return `Read ${filePath}`;
|
|
57
|
+
}
|
|
58
|
+
case 'Write':
|
|
59
|
+
case 'write': {
|
|
60
|
+
const filePath = input.file_path;
|
|
61
|
+
return filePath ? `Write ${filePath}` : 'Write';
|
|
62
|
+
}
|
|
63
|
+
case 'Edit':
|
|
64
|
+
case 'edit':
|
|
65
|
+
case 'MultiEdit': {
|
|
66
|
+
const filePath = input.file_path;
|
|
67
|
+
return filePath ? `Edit \`${filePath}\`` : 'Edit';
|
|
68
|
+
}
|
|
69
|
+
case 'Bash':
|
|
70
|
+
case 'bash': {
|
|
71
|
+
const command = input.command;
|
|
72
|
+
if (!command)
|
|
73
|
+
return 'Terminal';
|
|
74
|
+
// Escape backticks in command (replace all occurrences)
|
|
75
|
+
const escaped = command.split('`').join('\\`');
|
|
76
|
+
return `\`${escaped}\``;
|
|
77
|
+
}
|
|
78
|
+
case 'BashOutput':
|
|
79
|
+
case 'bash_output':
|
|
80
|
+
return 'Tail Logs';
|
|
81
|
+
case 'KillShell':
|
|
82
|
+
case 'kill_shell':
|
|
83
|
+
return 'Kill Process';
|
|
84
|
+
case 'Glob':
|
|
85
|
+
case 'glob': {
|
|
86
|
+
let label = 'Find';
|
|
87
|
+
const path = input.path;
|
|
88
|
+
const pattern = input.pattern;
|
|
89
|
+
if (path)
|
|
90
|
+
label += ` \`${path}\``;
|
|
91
|
+
if (pattern)
|
|
92
|
+
label += ` \`${pattern}\``;
|
|
93
|
+
return label;
|
|
94
|
+
}
|
|
95
|
+
case 'Grep':
|
|
96
|
+
case 'grep': {
|
|
97
|
+
let label = 'grep';
|
|
98
|
+
// Add flags
|
|
99
|
+
if (input['-i'])
|
|
100
|
+
label += ' -i';
|
|
101
|
+
if (input['-n'])
|
|
102
|
+
label += ' -n';
|
|
103
|
+
if (input['-C'] !== undefined)
|
|
104
|
+
label += ` -C ${input['-C']}`;
|
|
105
|
+
if (input['-A'] !== undefined)
|
|
106
|
+
label += ` -A ${input['-A']}`;
|
|
107
|
+
if (input['-B'] !== undefined)
|
|
108
|
+
label += ` -B ${input['-B']}`;
|
|
109
|
+
if (input.multiline)
|
|
110
|
+
label += ' -P';
|
|
111
|
+
if (input.glob)
|
|
112
|
+
label += ` --include="${input.glob}"`;
|
|
113
|
+
if (input.type)
|
|
114
|
+
label += ` --type=${input.type}`;
|
|
115
|
+
// Add pattern and path
|
|
116
|
+
const pattern = input.pattern;
|
|
117
|
+
const path = input.path;
|
|
118
|
+
if (pattern)
|
|
119
|
+
label += ` "${pattern}"`;
|
|
120
|
+
if (path)
|
|
121
|
+
label += ` ${path}`;
|
|
122
|
+
return label;
|
|
123
|
+
}
|
|
124
|
+
case 'WebFetch':
|
|
125
|
+
case 'web_fetch': {
|
|
126
|
+
const url = input.url;
|
|
127
|
+
return url ? `Fetch ${url}` : 'Fetch';
|
|
128
|
+
}
|
|
129
|
+
case 'WebSearch':
|
|
130
|
+
case 'web_search': {
|
|
131
|
+
const query = input.query;
|
|
132
|
+
if (!query)
|
|
133
|
+
return 'Search';
|
|
134
|
+
let label = `"${query}"`;
|
|
135
|
+
const allowedDomains = input.allowed_domains;
|
|
136
|
+
const blockedDomains = input.blocked_domains;
|
|
137
|
+
if (allowedDomains === null || allowedDomains === void 0 ? void 0 : allowedDomains.length)
|
|
138
|
+
label += ` (allowed: ${allowedDomains.join(', ')})`;
|
|
139
|
+
if (blockedDomains === null || blockedDomains === void 0 ? void 0 : blockedDomains.length)
|
|
140
|
+
label += ` (blocked: ${blockedDomains.join(', ')})`;
|
|
141
|
+
return label;
|
|
142
|
+
}
|
|
143
|
+
case 'NotebookRead':
|
|
144
|
+
case 'notebook_read': {
|
|
145
|
+
const path = input.notebook_path;
|
|
146
|
+
return path ? `Read Notebook ${path}` : 'Read Notebook';
|
|
147
|
+
}
|
|
148
|
+
case 'NotebookEdit':
|
|
149
|
+
case 'notebook_edit': {
|
|
150
|
+
const path = input.notebook_path;
|
|
151
|
+
return path ? `Edit Notebook ${path}` : 'Edit Notebook';
|
|
152
|
+
}
|
|
153
|
+
case 'Task':
|
|
154
|
+
case 'task': {
|
|
155
|
+
const description = input.description;
|
|
156
|
+
return description || 'Task';
|
|
157
|
+
}
|
|
158
|
+
case 'TodoWrite':
|
|
159
|
+
case 'todo_write': {
|
|
160
|
+
return 'Update TODOs';
|
|
161
|
+
}
|
|
162
|
+
case 'AskUserQuestion':
|
|
163
|
+
case 'ask_user_question':
|
|
164
|
+
return 'Ask User';
|
|
165
|
+
case 'SlashCommand':
|
|
166
|
+
case 'slash_command': {
|
|
167
|
+
const command = input.command;
|
|
168
|
+
return command ? `Run: ${command}` : 'Slash Command';
|
|
169
|
+
}
|
|
170
|
+
case 'Skill':
|
|
171
|
+
case 'skill': {
|
|
172
|
+
const command = input.command;
|
|
173
|
+
return command ? `Skill: ${command}` : 'Skill';
|
|
174
|
+
}
|
|
175
|
+
case 'LSP':
|
|
176
|
+
case 'lsp': {
|
|
177
|
+
const operation = input.operation;
|
|
178
|
+
return operation ? `LSP: ${operation}` : 'LSP';
|
|
179
|
+
}
|
|
180
|
+
case 'EnterPlanMode':
|
|
181
|
+
case 'enter_plan_mode':
|
|
182
|
+
return 'Enter Plan Mode';
|
|
183
|
+
case 'ExitPlanMode':
|
|
184
|
+
case 'exit_plan_mode':
|
|
185
|
+
return 'Exit Plan Mode';
|
|
186
|
+
case 'TaskOutput':
|
|
187
|
+
case 'task_output':
|
|
188
|
+
return 'Get Task Output';
|
|
189
|
+
default:
|
|
190
|
+
return toolName || 'Unknown Tool';
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// ============= Tool Kind Classification =============
|
|
194
|
+
function getToolKind(toolName) {
|
|
195
|
+
switch (toolName) {
|
|
196
|
+
case 'Read':
|
|
197
|
+
case 'read':
|
|
198
|
+
case 'NotebookRead':
|
|
199
|
+
case 'notebook_read':
|
|
200
|
+
case 'Glob':
|
|
201
|
+
case 'glob':
|
|
202
|
+
return 'read';
|
|
203
|
+
case 'Write':
|
|
204
|
+
case 'write':
|
|
205
|
+
case 'Edit':
|
|
206
|
+
case 'edit':
|
|
207
|
+
case 'MultiEdit':
|
|
208
|
+
case 'NotebookEdit':
|
|
209
|
+
case 'notebook_edit':
|
|
210
|
+
return 'edit';
|
|
211
|
+
case 'Bash':
|
|
212
|
+
case 'bash':
|
|
213
|
+
case 'BashOutput':
|
|
214
|
+
case 'bash_output':
|
|
215
|
+
case 'KillShell':
|
|
216
|
+
case 'kill_shell':
|
|
217
|
+
case 'TaskOutput':
|
|
218
|
+
case 'task_output':
|
|
219
|
+
return 'execute';
|
|
220
|
+
case 'Grep':
|
|
221
|
+
case 'grep':
|
|
222
|
+
case 'WebSearch':
|
|
223
|
+
case 'web_search':
|
|
224
|
+
return 'search';
|
|
225
|
+
case 'WebFetch':
|
|
226
|
+
case 'web_fetch':
|
|
227
|
+
return 'fetch';
|
|
228
|
+
case 'Task':
|
|
229
|
+
case 'task':
|
|
230
|
+
case 'TodoWrite':
|
|
231
|
+
case 'todo_write':
|
|
232
|
+
case 'EnterPlanMode':
|
|
233
|
+
case 'enter_plan_mode':
|
|
234
|
+
case 'ExitPlanMode':
|
|
235
|
+
case 'exit_plan_mode':
|
|
236
|
+
return 'think';
|
|
237
|
+
default:
|
|
238
|
+
return 'other';
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// ============= Content Generation by Tool Type =============
|
|
242
|
+
/**
|
|
243
|
+
* Generate content metadata for tool calls.
|
|
244
|
+
* Returns ToolCallContent for operations that have displayable content like:
|
|
245
|
+
* - Diff content for Edit tools (before/after comparison)
|
|
246
|
+
* - Text content for Bash/Task/WebFetch (descriptions/prompts)
|
|
247
|
+
*/
|
|
248
|
+
function generateToolContent(toolName, input) {
|
|
249
|
+
const content = [];
|
|
250
|
+
switch (toolName) {
|
|
251
|
+
case 'Edit':
|
|
252
|
+
case 'edit':
|
|
253
|
+
case 'MultiEdit': {
|
|
254
|
+
const filePath = input.file_path;
|
|
255
|
+
const oldString = input.old_string;
|
|
256
|
+
const newString = input.new_string;
|
|
257
|
+
if (filePath && oldString !== undefined && newString !== undefined) {
|
|
258
|
+
content.push({
|
|
259
|
+
type: 'diff',
|
|
260
|
+
path: filePath,
|
|
261
|
+
oldText: oldString || null,
|
|
262
|
+
newText: newString,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
case 'Bash':
|
|
268
|
+
case 'bash': {
|
|
269
|
+
const description = input.description;
|
|
270
|
+
if (description) {
|
|
271
|
+
content.push({
|
|
272
|
+
type: 'content',
|
|
273
|
+
content: { type: 'text', text: description },
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
break;
|
|
277
|
+
}
|
|
278
|
+
case 'Task':
|
|
279
|
+
case 'task': {
|
|
280
|
+
const prompt = input.prompt;
|
|
281
|
+
if (prompt) {
|
|
282
|
+
content.push({
|
|
283
|
+
type: 'content',
|
|
284
|
+
content: { type: 'text', text: prompt },
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
break;
|
|
288
|
+
}
|
|
289
|
+
case 'WebFetch':
|
|
290
|
+
case 'web_fetch': {
|
|
291
|
+
const prompt = input.prompt;
|
|
292
|
+
if (prompt) {
|
|
293
|
+
content.push({
|
|
294
|
+
type: 'content',
|
|
295
|
+
content: { type: 'text', text: prompt },
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return content.length > 0 ? content : undefined;
|
|
302
|
+
}
|
|
303
|
+
// ============= Location Extraction by Tool Type =============
|
|
304
|
+
function extractToolLocations(toolName, input) {
|
|
305
|
+
const locations = [];
|
|
306
|
+
// File path based tools
|
|
307
|
+
const filePath = input.file_path;
|
|
308
|
+
const notebookPath = input.notebook_path;
|
|
309
|
+
const path = input.path;
|
|
310
|
+
// Add file location if present
|
|
311
|
+
if (filePath) {
|
|
312
|
+
locations.push({
|
|
313
|
+
path: filePath,
|
|
314
|
+
line: input.offset,
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
else if (notebookPath) {
|
|
318
|
+
locations.push({ path: notebookPath });
|
|
319
|
+
}
|
|
320
|
+
else if (path && (toolName === 'Glob' || toolName === 'glob')) {
|
|
321
|
+
locations.push({ path });
|
|
322
|
+
}
|
|
323
|
+
return locations.length > 0 ? locations : undefined;
|
|
324
|
+
}
|
|
325
|
+
// ============= Content Format Conversion =============
|
|
326
|
+
/**
|
|
327
|
+
* Convert ACP content format to SDK content format for tool results
|
|
328
|
+
*/
|
|
329
|
+
function formatAcpContentForSdk(toolCallContent) {
|
|
330
|
+
var _a;
|
|
331
|
+
if (toolCallContent.length === 0) {
|
|
332
|
+
return '';
|
|
333
|
+
}
|
|
334
|
+
const blocks = [];
|
|
335
|
+
for (const item of toolCallContent) {
|
|
336
|
+
// Handle diff content
|
|
337
|
+
if (item.type === 'diff') {
|
|
338
|
+
const diff = item;
|
|
339
|
+
const diffText = `--- ${diff.path}
|
|
340
|
+
+++ ${diff.path}
|
|
341
|
+
${formatDiffHunk((_a = diff.oldText) !== null && _a !== void 0 ? _a : null, diff.newText)}`;
|
|
342
|
+
blocks.push({
|
|
343
|
+
type: 'text',
|
|
344
|
+
text: diffText,
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
// Handle regular content (text, image, etc.)
|
|
348
|
+
else if (item.type === 'content') {
|
|
349
|
+
const contentItem = item;
|
|
350
|
+
if (contentItem.content && contentItem.content.type === 'text' && contentItem.content.text) {
|
|
351
|
+
blocks.push({
|
|
352
|
+
type: 'text',
|
|
353
|
+
text: contentItem.content.text,
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
// Handle terminal content
|
|
358
|
+
else if (item.type === 'terminal') {
|
|
359
|
+
const terminalItem = item;
|
|
360
|
+
if (terminalItem.terminalId) {
|
|
361
|
+
blocks.push({
|
|
362
|
+
type: 'text',
|
|
363
|
+
text: `[Terminal: ${terminalItem.terminalId}]`,
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
// If all content was text, return as string for simplicity
|
|
369
|
+
if (blocks.length === 1 && blocks[0].type === 'text') {
|
|
370
|
+
return blocks[0].text;
|
|
371
|
+
}
|
|
372
|
+
return blocks.length > 0 ? blocks : '';
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Format diff hunks for display
|
|
376
|
+
*/
|
|
377
|
+
function formatDiffHunk(oldText, newText) {
|
|
378
|
+
const oldLines = oldText ? oldText.split('\n') : [];
|
|
379
|
+
const newLines = newText.split('\n');
|
|
380
|
+
const hunks = [];
|
|
381
|
+
hunks.push(`@@ -1,${oldLines.length} +1,${newLines.length} @@`);
|
|
382
|
+
// Add old lines
|
|
383
|
+
for (const line of oldLines) {
|
|
384
|
+
hunks.push(`-${line}`);
|
|
385
|
+
}
|
|
386
|
+
// Add new lines
|
|
387
|
+
for (const line of newLines) {
|
|
388
|
+
hunks.push(`+${line}`);
|
|
389
|
+
}
|
|
390
|
+
return hunks.join('\n');
|
|
391
|
+
}
|
|
392
|
+
// ============= Conversion: ACP Tool Result → SDK Tool Result =============
|
|
393
|
+
/**
|
|
394
|
+
* Convert ACP Tool Result to SDK ToolResultContentBlock
|
|
395
|
+
* Preserves tool_use_id and ensures error state is tracked
|
|
396
|
+
*
|
|
397
|
+
* @param toolCallId - Original tool call ID
|
|
398
|
+
* @param acpResult - ACP tool result
|
|
399
|
+
* @returns SDK ToolResultContentBlock
|
|
400
|
+
*/
|
|
401
|
+
function convertAcpToolResultToSdk(toolCallId, acpResult) {
|
|
402
|
+
const isError = acpResult.status === 'failed';
|
|
403
|
+
const content = acpResult.content ? formatAcpContentForSdk(acpResult.content) : '';
|
|
404
|
+
return {
|
|
405
|
+
type: 'tool_result',
|
|
406
|
+
tool_use_id: toolCallId,
|
|
407
|
+
content: content,
|
|
408
|
+
is_error: isError,
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
// ============= Helper: Extract Tool Use Blocks =============
|
|
412
|
+
/**
|
|
413
|
+
* Extract tool use blocks from content blocks array
|
|
414
|
+
*/
|
|
415
|
+
function extractToolUseBlocks(contentBlocks) {
|
|
416
|
+
if (!Array.isArray(contentBlocks))
|
|
417
|
+
return [];
|
|
418
|
+
return contentBlocks.filter((block) => typeof block === 'object' &&
|
|
419
|
+
block !== null &&
|
|
420
|
+
'type' in block &&
|
|
421
|
+
block.type === 'tool_use');
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Extract text content from content blocks array
|
|
425
|
+
*/
|
|
426
|
+
function extractTextContent(contentBlocks) {
|
|
427
|
+
if (!Array.isArray(contentBlocks))
|
|
428
|
+
return '';
|
|
429
|
+
return contentBlocks
|
|
430
|
+
.filter((block) => typeof block === 'object' &&
|
|
431
|
+
block !== null &&
|
|
432
|
+
'type' in block &&
|
|
433
|
+
block.type === 'text')
|
|
434
|
+
.map((block) => block.text)
|
|
435
|
+
.join('\n');
|
|
436
|
+
}
|
|
437
|
+
//# sourceMappingURL=tool-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-converter.js","sourceRoot":"","sources":["../../src/acp/tool-converter.ts"],"names":[],"mappings":"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"}
|
package/lib/connect.d.ts
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Connection Module
|
|
3
|
+
*
|
|
4
|
+
* Provides prewarmed transport queue to reduce first message latency
|
|
5
|
+
* by pre-spawning CLI processes before they're needed.
|
|
6
|
+
*
|
|
7
|
+
* Design principles:
|
|
8
|
+
* - One transport per query - no sharing to avoid message mixing
|
|
9
|
+
* - FIFO queue - connectCLI() pushes, query() pops from front
|
|
10
|
+
* - Options matching - only use prewarmed transport if options match
|
|
11
|
+
*/
|
|
12
|
+
import { type ProcessTransportOptions, type Transport } from './transport';
|
|
13
|
+
/**
|
|
14
|
+
* Options for connectCLI prewarming.
|
|
15
|
+
*/
|
|
16
|
+
export interface ConnectCLIOptions extends ProcessTransportOptions {
|
|
17
|
+
/**
|
|
18
|
+
* If true, send initialize request during prewarming to complete CLI boot.
|
|
19
|
+
* This moves the CLI boot time (~1.5s) from the first query to the prewarm phase.
|
|
20
|
+
* Default: true
|
|
21
|
+
*/
|
|
22
|
+
prewarmInitialize?: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Pre-connect a CLI process in advance.
|
|
26
|
+
*
|
|
27
|
+
* Call this at application startup to reduce latency for queries.
|
|
28
|
+
* Each call creates a new transport and adds it to the prewarmed queue.
|
|
29
|
+
* Multiple calls create multiple prewarmed transports for concurrent queries.
|
|
30
|
+
*
|
|
31
|
+
* By default, this also sends an initialize request to complete CLI boot,
|
|
32
|
+
* which moves ~1.5s of latency from the first query to the prewarm phase.
|
|
33
|
+
*
|
|
34
|
+
* @param options - Optional transport options. If not provided, default options are used.
|
|
35
|
+
* @returns A promise that resolves when the CLI process is ready.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* import { connectCLI, query } from '@anthropic/agent-sdk';
|
|
40
|
+
*
|
|
41
|
+
* // Prewarm multiple transports for concurrent queries
|
|
42
|
+
* await Promise.all([
|
|
43
|
+
* connectCLI(),
|
|
44
|
+
* connectCLI(),
|
|
45
|
+
* connectCLI(),
|
|
46
|
+
* ]);
|
|
47
|
+
*
|
|
48
|
+
* // Later queries will use prewarmed transports
|
|
49
|
+
* const [q1, q2, q3] = [
|
|
50
|
+
* query({ prompt: 'Hello 1' }),
|
|
51
|
+
* query({ prompt: 'Hello 2' }),
|
|
52
|
+
* query({ prompt: 'Hello 3' }),
|
|
53
|
+
* ];
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function connectCLI(options?: ConnectCLIOptions): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Result of getConnectedTransport.
|
|
59
|
+
*/
|
|
60
|
+
export interface PrewarmedTransportResult {
|
|
61
|
+
transport: Transport;
|
|
62
|
+
/** Whether the transport has been pre-initialized (initialize request already sent) */
|
|
63
|
+
preInitialized: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get a prewarmed transport from the queue if available and matching options.
|
|
67
|
+
* Used internally by the SDK.
|
|
68
|
+
*
|
|
69
|
+
* @param options - The options to match against.
|
|
70
|
+
* @returns The connected transport and initialization state if available and matching, null otherwise.
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
73
|
+
export declare function getConnectedTransport(options?: ProcessTransportOptions): PrewarmedTransportResult | null;
|
|
74
|
+
/**
|
|
75
|
+
* Clear all prewarmed transports.
|
|
76
|
+
* Useful for testing or when you want to release all prewarmed CLI processes.
|
|
77
|
+
*/
|
|
78
|
+
export declare function clearConnectedTransport(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Acquire a lock for a session ID to prevent concurrent resume.
|
|
81
|
+
*
|
|
82
|
+
* @param sessionId - The session ID to lock.
|
|
83
|
+
* @returns true if lock acquired, false if session is already in use.
|
|
84
|
+
* @internal
|
|
85
|
+
*/
|
|
86
|
+
export declare function acquireSessionLock(sessionId: string): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Release a session lock.
|
|
89
|
+
*
|
|
90
|
+
* @param sessionId - The session ID to unlock.
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
export declare function releaseSessionLock(sessionId: string): void;
|
|
94
|
+
//# sourceMappingURL=connect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAmB,KAAK,uBAAuB,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAuC5F;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAC9D;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAc3E;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,uFAAuF;IACvF,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,uBAAuB,GAAG,wBAAwB,GAAG,IAAI,CAaxG;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAK9C;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAM7D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE1D"}
|