@chatcops/core 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/chat.d.ts +13 -0
- package/dist/agent/chat.d.ts.map +1 -0
- package/dist/agent/chat.js +42 -0
- package/dist/agent/chat.js.map +1 -0
- package/dist/agent/errors.d.ts +14 -0
- package/dist/agent/errors.d.ts.map +1 -0
- package/dist/agent/errors.js +24 -0
- package/dist/agent/errors.js.map +1 -0
- package/dist/agent/index.d.ts +5 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +5 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/run-turn.d.ts +68 -0
- package/dist/agent/run-turn.d.ts.map +1 -0
- package/dist/agent/run-turn.js +344 -0
- package/dist/agent/run-turn.js.map +1 -0
- package/dist/agent/tool-registry.d.ts +28 -0
- package/dist/agent/tool-registry.d.ts.map +1 -0
- package/dist/agent/tool-registry.js +69 -0
- package/dist/agent/tool-registry.js.map +1 -0
- package/dist/analytics/index.d.ts +1 -0
- package/dist/analytics/index.d.ts.map +1 -1
- package/dist/analytics/index.js +1 -0
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/sink.d.ts +24 -0
- package/dist/analytics/sink.d.ts.map +1 -0
- package/dist/analytics/sink.js +106 -0
- package/dist/analytics/sink.js.map +1 -0
- package/dist/conversation/index.d.ts +1 -0
- package/dist/conversation/index.d.ts.map +1 -1
- package/dist/conversation/index.js.map +1 -1
- package/dist/conversation/manager.d.ts +62 -6
- package/dist/conversation/manager.d.ts.map +1 -1
- package/dist/conversation/manager.js +109 -34
- package/dist/conversation/manager.js.map +1 -1
- package/dist/conversation/store.d.ts +6 -5
- package/dist/conversation/store.d.ts.map +1 -1
- package/dist/conversation/store.js +4 -0
- package/dist/conversation/store.js.map +1 -1
- package/dist/index.d.ts +18 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/limits/budget.d.ts +84 -0
- package/dist/limits/budget.d.ts.map +1 -0
- package/dist/limits/budget.js +114 -0
- package/dist/limits/budget.js.map +1 -0
- package/dist/limits/rate-limit.d.ts +53 -0
- package/dist/limits/rate-limit.d.ts.map +1 -0
- package/dist/limits/rate-limit.js +68 -0
- package/dist/limits/rate-limit.js.map +1 -0
- package/dist/parts.d.ts +9 -0
- package/dist/parts.d.ts.map +1 -0
- package/dist/parts.js +17 -0
- package/dist/parts.js.map +1 -0
- package/dist/protocol/ai-sdk.d.ts +27 -0
- package/dist/protocol/ai-sdk.d.ts.map +1 -0
- package/dist/protocol/ai-sdk.js +127 -0
- package/dist/protocol/ai-sdk.js.map +1 -0
- package/dist/protocol/errors.d.ts +10 -0
- package/dist/protocol/errors.d.ts.map +1 -0
- package/dist/protocol/errors.js +42 -0
- package/dist/protocol/errors.js.map +1 -0
- package/dist/protocol/index.d.ts +9 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +6 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/protocol/legacy.d.ts +18 -0
- package/dist/protocol/legacy.d.ts.map +1 -0
- package/dist/protocol/legacy.js +41 -0
- package/dist/protocol/legacy.js.map +1 -0
- package/dist/protocol/sse.d.ts +10 -0
- package/dist/protocol/sse.d.ts.map +1 -0
- package/dist/protocol/sse.js +15 -0
- package/dist/protocol/sse.js.map +1 -0
- package/dist/protocol/v1.d.ts +140 -0
- package/dist/protocol/v1.d.ts.map +1 -0
- package/dist/protocol/v1.js +15 -0
- package/dist/protocol/v1.js.map +1 -0
- package/dist/providers/base.d.ts +11 -27
- package/dist/providers/base.d.ts.map +1 -1
- package/dist/providers/base.js +34 -45
- package/dist/providers/base.js.map +1 -1
- package/dist/providers/claude.d.ts +26 -5
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +176 -89
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/gemini.d.ts +18 -3
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +208 -91
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/history.d.ts +52 -0
- package/dist/providers/history.d.ts.map +1 -0
- package/dist/providers/history.js +212 -0
- package/dist/providers/history.js.map +1 -0
- package/dist/providers/index.d.ts +5 -5
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +5 -4
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts +27 -6
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +209 -112
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/registry.d.ts +7 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +12 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/schema.d.ts +16 -0
- package/dist/providers/schema.d.ts.map +1 -0
- package/dist/providers/schema.js +80 -0
- package/dist/providers/schema.js.map +1 -0
- package/dist/providers/tool-execution.d.ts +10 -0
- package/dist/providers/tool-execution.d.ts.map +1 -1
- package/dist/providers/tool-execution.js +38 -12
- package/dist/providers/tool-execution.js.map +1 -1
- package/dist/providers/types.d.ts +71 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/storage/adapt.d.ts +15 -0
- package/dist/storage/adapt.d.ts.map +1 -0
- package/dist/storage/adapt.js +83 -0
- package/dist/storage/adapt.js.map +1 -0
- package/dist/storage/errors.d.ts +18 -0
- package/dist/storage/errors.d.ts.map +1 -0
- package/dist/storage/errors.js +28 -0
- package/dist/storage/errors.js.map +1 -0
- package/dist/storage/index.d.ts +5 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +4 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/memory.d.ts +24 -0
- package/dist/storage/memory.d.ts.map +1 -0
- package/dist/storage/memory.js +265 -0
- package/dist/storage/memory.js.map +1 -0
- package/dist/storage/types.d.ts +118 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/testing/conformance.d.ts +29 -0
- package/dist/testing/conformance.d.ts.map +1 -0
- package/dist/testing/conformance.js +335 -0
- package/dist/testing/conformance.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +5 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/provider.d.ts +45 -0
- package/dist/testing/provider.d.ts.map +1 -0
- package/dist/testing/provider.js +82 -0
- package/dist/testing/provider.js.map +1 -0
- package/dist/tools/base.d.ts +14 -4
- package/dist/tools/base.d.ts.map +1 -1
- package/dist/tools/base.js +4 -2
- package/dist/tools/base.js.map +1 -1
- package/dist/tools/lead-capture.d.ts +3 -1
- package/dist/tools/lead-capture.d.ts.map +1 -1
- package/dist/tools/lead-capture.js +4 -0
- package/dist/tools/lead-capture.js.map +1 -1
- package/dist/types.d.ts +139 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +50 -2
package/dist/providers/claude.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import Anthropic from '@anthropic-ai/sdk';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { chatSyncViaTurn, chatViaTurn } from '../agent/chat.js';
|
|
3
|
+
import { joinSystem } from '../agent/run-turn.js';
|
|
4
|
+
import { DEFAULT_MAX_TOKENS, toClaudeTools, warnOnce } from './base.js';
|
|
5
|
+
import { normalizeTurns } from './history.js';
|
|
4
6
|
const DEFAULT_MODEL = 'claude-haiku-5-5';
|
|
5
7
|
const DEFAULT_EFFORT = 'low';
|
|
6
8
|
/** Reads family and version from ids like `claude-haiku-5-5` or `claude-haiku-4-5-20251001`. */
|
|
@@ -34,55 +36,158 @@ export function claudeRejectsTemperature(model) {
|
|
|
34
36
|
return true;
|
|
35
37
|
return version.family === 'opus' && version.major === 4 && version.minor >= 7;
|
|
36
38
|
}
|
|
37
|
-
function
|
|
38
|
-
return
|
|
39
|
-
role: message.role,
|
|
40
|
-
content: message.content,
|
|
41
|
-
}));
|
|
39
|
+
function claudeMetadata(part) {
|
|
40
|
+
return 'providerMetadata' in part ? part.providerMetadata?.claude : undefined;
|
|
42
41
|
}
|
|
42
|
+
function isPlainObject(value) {
|
|
43
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
44
|
+
}
|
|
45
|
+
function toClaudeBlock(part) {
|
|
46
|
+
switch (part.type) {
|
|
47
|
+
case 'text':
|
|
48
|
+
return part.text ? { type: 'text', text: part.text } : null;
|
|
49
|
+
case 'reasoning': {
|
|
50
|
+
// Reasoning from another provider has no Claude signature, and Claude
|
|
51
|
+
// rejects thinking blocks without one, so it isn't sent.
|
|
52
|
+
const meta = claudeMetadata(part);
|
|
53
|
+
if (meta?.signature)
|
|
54
|
+
return { type: 'thinking', thinking: part.text, signature: meta.signature };
|
|
55
|
+
if (meta?.redactedData)
|
|
56
|
+
return { type: 'redacted_thinking', data: meta.redactedData };
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
case 'tool-call':
|
|
60
|
+
return {
|
|
61
|
+
type: 'tool_use',
|
|
62
|
+
id: part.toolCallId,
|
|
63
|
+
name: part.toolName,
|
|
64
|
+
input: isPlainObject(part.input) ? part.input : {},
|
|
65
|
+
};
|
|
66
|
+
case 'tool-result':
|
|
67
|
+
return {
|
|
68
|
+
type: 'tool_result',
|
|
69
|
+
tool_use_id: part.toolCallId,
|
|
70
|
+
content: JSON.stringify(part.output ?? { success: false, message: part.error }),
|
|
71
|
+
is_error: part.error !== undefined,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const isToolResultBlock = (block) => block.type === 'tool_result';
|
|
43
76
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
77
|
+
* Stored history as Claude messages. An assistant message with tool calls
|
|
78
|
+
* becomes the assistant turn with its `tool_use` blocks, then a user turn
|
|
79
|
+
* with the results, and so on for each step. Thinking blocks go back with
|
|
80
|
+
* their signatures, as Claude requires within a tool loop.
|
|
46
81
|
*/
|
|
47
|
-
function
|
|
48
|
-
const
|
|
82
|
+
export function toClaudeStepMessages(messages) {
|
|
83
|
+
const out = [];
|
|
84
|
+
const push = (role, blocks) => {
|
|
85
|
+
if (blocks.length === 0)
|
|
86
|
+
return;
|
|
87
|
+
const last = out.at(-1);
|
|
88
|
+
if (!last || last.role !== role) {
|
|
89
|
+
out.push({ role, content: blocks });
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
// Two user turns in a row (tool results, then the visitor's next
|
|
93
|
+
// message): Claude wants the tool results first.
|
|
94
|
+
const merged = [...last.content, ...blocks];
|
|
95
|
+
last.content = role === 'user'
|
|
96
|
+
? [...merged.filter(isToolResultBlock), ...merged.filter((block) => !isToolResultBlock(block))]
|
|
97
|
+
: merged;
|
|
98
|
+
};
|
|
99
|
+
for (const turn of normalizeTurns(messages)) {
|
|
100
|
+
let role = turn.role;
|
|
101
|
+
let run = [];
|
|
102
|
+
for (const part of turn.parts) {
|
|
103
|
+
const block = toClaudeBlock(part);
|
|
104
|
+
if (!block)
|
|
105
|
+
continue;
|
|
106
|
+
const blockRole = part.type === 'tool-result' ? 'user' : turn.role;
|
|
107
|
+
if (blockRole !== role) {
|
|
108
|
+
push(role, run);
|
|
109
|
+
run = [];
|
|
110
|
+
role = blockRole;
|
|
111
|
+
}
|
|
112
|
+
run.push(block);
|
|
113
|
+
}
|
|
114
|
+
push(role, run);
|
|
115
|
+
}
|
|
116
|
+
// Plain text from the visitor goes as a string, as it always has.
|
|
117
|
+
return out.map((message) => message.role === 'user' && message.content.every((block) => block.type === 'text')
|
|
118
|
+
? { role: 'user', content: message.content.map((block) => block.text).join('\n\n') }
|
|
119
|
+
: message);
|
|
120
|
+
}
|
|
121
|
+
/** The parts of a Claude reply, in order, with what's needed to send them back. */
|
|
122
|
+
function toParts(content) {
|
|
123
|
+
const parts = [];
|
|
49
124
|
for (const block of content) {
|
|
50
125
|
switch (block.type) {
|
|
51
|
-
case 'text':
|
|
52
|
-
blocks.push({ type: 'text', text: block.text });
|
|
53
|
-
break;
|
|
54
126
|
case 'thinking':
|
|
55
|
-
|
|
127
|
+
parts.push({ type: 'reasoning', text: block.thinking, providerMetadata: { claude: { signature: block.signature } } });
|
|
56
128
|
break;
|
|
57
129
|
case 'redacted_thinking':
|
|
58
|
-
|
|
130
|
+
parts.push({ type: 'reasoning', text: '', providerMetadata: { claude: { redactedData: block.data } } });
|
|
131
|
+
break;
|
|
132
|
+
case 'text':
|
|
133
|
+
if (block.text)
|
|
134
|
+
parts.push({ type: 'text', text: block.text });
|
|
59
135
|
break;
|
|
60
136
|
case 'tool_use':
|
|
61
|
-
|
|
137
|
+
parts.push({
|
|
138
|
+
type: 'tool-call',
|
|
139
|
+
toolCallId: block.id,
|
|
140
|
+
toolName: block.name,
|
|
141
|
+
input: block.input,
|
|
142
|
+
executor: 'server',
|
|
143
|
+
state: 'pending',
|
|
144
|
+
});
|
|
62
145
|
break;
|
|
63
146
|
default:
|
|
64
147
|
break;
|
|
65
148
|
}
|
|
66
149
|
}
|
|
67
|
-
return
|
|
150
|
+
return parts;
|
|
151
|
+
}
|
|
152
|
+
function finishReason(stopReason, hasToolCalls) {
|
|
153
|
+
switch (stopReason) {
|
|
154
|
+
case 'tool_use':
|
|
155
|
+
return hasToolCalls ? 'tool-calls' : 'stop';
|
|
156
|
+
case 'max_tokens':
|
|
157
|
+
return 'length';
|
|
158
|
+
case 'refusal':
|
|
159
|
+
return 'refusal';
|
|
160
|
+
default:
|
|
161
|
+
return 'stop';
|
|
162
|
+
}
|
|
68
163
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
164
|
+
/** Input tokens include cache reads and writes, so budgets count every token sent. */
|
|
165
|
+
function toUsage(usage) {
|
|
166
|
+
const cacheRead = usage?.cache_read_input_tokens ?? 0;
|
|
167
|
+
const cacheWrite = usage?.cache_creation_input_tokens ?? 0;
|
|
168
|
+
return {
|
|
169
|
+
inputTokens: (usage?.input_tokens ?? 0) + cacheRead + cacheWrite,
|
|
170
|
+
outputTokens: usage?.output_tokens ?? 0,
|
|
171
|
+
...(cacheRead ? { cacheReadTokens: cacheRead } : {}),
|
|
172
|
+
...(cacheWrite ? { cacheWriteTokens: cacheWrite } : {}),
|
|
173
|
+
};
|
|
74
174
|
}
|
|
75
175
|
export class ClaudeProvider {
|
|
76
176
|
name = 'claude';
|
|
77
177
|
client;
|
|
78
178
|
model;
|
|
79
179
|
effort;
|
|
180
|
+
promptCaching;
|
|
80
181
|
constructor(config) {
|
|
182
|
+
if (!config.apiKey?.trim())
|
|
183
|
+
throw new Error('claude requires apiKey');
|
|
81
184
|
this.client = new Anthropic({
|
|
82
185
|
apiKey: config.apiKey,
|
|
83
186
|
...(config.baseURL ? { baseURL: config.baseURL } : {}),
|
|
187
|
+
...(config.fetch ? { fetch: config.fetch } : {}),
|
|
84
188
|
});
|
|
85
189
|
this.model = config.model ?? DEFAULT_MODEL;
|
|
190
|
+
this.promptCaching = config.promptCaching ?? true;
|
|
86
191
|
if (claudeSupportsEffort(this.model)) {
|
|
87
192
|
this.effort = config.effort ?? DEFAULT_EFFORT;
|
|
88
193
|
}
|
|
@@ -90,6 +195,19 @@ export class ClaudeProvider {
|
|
|
90
195
|
warnOnce(`claude-effort-${this.model}`, `${this.model} has no effort setting, so \`effort\` is ignored.`);
|
|
91
196
|
}
|
|
92
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* The system prompt, with a cache breakpoint after it. Claude caches tools
|
|
200
|
+
* and system together, in that order, so both are read from the cache on
|
|
201
|
+
* later requests. Per-request context goes after the breakpoint.
|
|
202
|
+
*/
|
|
203
|
+
system(params) {
|
|
204
|
+
if (!this.promptCaching)
|
|
205
|
+
return joinSystem(params.systemPrompt, params.systemContext);
|
|
206
|
+
return [
|
|
207
|
+
{ type: 'text', text: params.systemPrompt, cache_control: { type: 'ephemeral' } },
|
|
208
|
+
...(params.systemContext ? [{ type: 'text', text: params.systemContext }] : []),
|
|
209
|
+
];
|
|
210
|
+
}
|
|
93
211
|
request(params, messages) {
|
|
94
212
|
let temperature = params.temperature;
|
|
95
213
|
if (temperature != null && claudeRejectsTemperature(this.model)) {
|
|
@@ -99,85 +217,54 @@ export class ClaudeProvider {
|
|
|
99
217
|
return {
|
|
100
218
|
model: this.model,
|
|
101
219
|
max_tokens: params.maxTokens ?? DEFAULT_MAX_TOKENS,
|
|
102
|
-
system: params
|
|
220
|
+
system: this.system(params),
|
|
103
221
|
messages,
|
|
104
222
|
...(params.tools?.length ? { tools: toClaudeTools(params.tools) } : {}),
|
|
105
223
|
...(temperature != null ? { temperature } : {}),
|
|
106
224
|
...(this.effort ? { output_config: { effort: this.effort } } : {}),
|
|
107
225
|
};
|
|
108
226
|
}
|
|
109
|
-
/**
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
227
|
+
/** One model request: streams text and reasoning, then reports tool calls and why it stopped. */
|
|
228
|
+
async *step(params) {
|
|
229
|
+
params.signal?.throwIfAborted();
|
|
230
|
+
const stream = this.client.messages.stream(this.request(params, toClaudeStepMessages(params.messages)), { signal: params.signal });
|
|
231
|
+
for await (const event of stream) {
|
|
232
|
+
if (event.type !== 'content_block_delta')
|
|
233
|
+
continue;
|
|
234
|
+
if (event.delta.type === 'text_delta')
|
|
235
|
+
yield { type: 'text-delta', delta: event.delta.text };
|
|
236
|
+
else if (event.delta.type === 'thinking_delta')
|
|
237
|
+
yield { type: 'reasoning-delta', delta: event.delta.thinking };
|
|
113
238
|
}
|
|
239
|
+
const message = await stream.finalMessage();
|
|
114
240
|
if (message.stop_reason === 'model_context_window_exceeded') {
|
|
115
241
|
throw new Error('The conversation is longer than the model context window.');
|
|
116
242
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
while (true) {
|
|
125
|
-
params.signal?.throwIfAborted();
|
|
126
|
-
const stream = this.client.messages.stream(this.request(params, messages), { signal: params.signal });
|
|
127
|
-
for await (const event of stream) {
|
|
128
|
-
if (event.type === 'content_block_delta' && event.delta.type === 'text_delta') {
|
|
129
|
-
yield event.delta.text;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
const message = await stream.finalMessage();
|
|
133
|
-
this.checkStopReason(message);
|
|
134
|
-
const toolUses = message.content.filter((block) => block.type === 'tool_use');
|
|
135
|
-
if (message.stop_reason !== 'tool_use' || toolUses.length === 0) {
|
|
136
|
-
return;
|
|
137
|
-
}
|
|
138
|
-
if (toolRounds >= MAX_TOOL_ROUNDS) {
|
|
139
|
-
throw new Error(`Exceeded maximum tool rounds (${MAX_TOOL_ROUNDS}).`);
|
|
140
|
-
}
|
|
141
|
-
toolRounds += 1;
|
|
142
|
-
messages.push({ role: 'assistant', content: toAssistantContentBlocks(message.content) });
|
|
143
|
-
messages.push({ role: 'user', content: await this.runTools(params, toolUses) });
|
|
243
|
+
const parts = toParts(message.content);
|
|
244
|
+
const calls = parts.filter((part) => part.type === 'tool-call');
|
|
245
|
+
for (const call of calls) {
|
|
246
|
+
yield {
|
|
247
|
+
type: 'tool-call',
|
|
248
|
+
call: { id: call.toolCallId, name: call.toolName, input: call.input },
|
|
249
|
+
};
|
|
144
250
|
}
|
|
251
|
+
yield {
|
|
252
|
+
type: 'finish',
|
|
253
|
+
reason: finishReason(message.stop_reason, calls.length > 0),
|
|
254
|
+
usage: toUsage(message.usage),
|
|
255
|
+
parts,
|
|
256
|
+
};
|
|
145
257
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
const response = await this.client.messages.create(this.request(params, messages), { signal: params.signal });
|
|
153
|
-
this.checkStopReason(response);
|
|
154
|
-
text += textOf(response.content);
|
|
155
|
-
const toolUses = response.content.filter((block) => block.type === 'tool_use');
|
|
156
|
-
if (response.stop_reason !== 'tool_use' || toolUses.length === 0) {
|
|
157
|
-
return text;
|
|
158
|
-
}
|
|
159
|
-
if (toolRounds >= MAX_TOOL_ROUNDS) {
|
|
160
|
-
throw new Error(`Exceeded maximum tool rounds (${MAX_TOOL_ROUNDS}).`);
|
|
161
|
-
}
|
|
162
|
-
toolRounds += 1;
|
|
163
|
-
messages.push({ role: 'assistant', content: toAssistantContentBlocks(response.content) });
|
|
164
|
-
messages.push({ role: 'user', content: await this.runTools(params, toolUses) });
|
|
165
|
-
}
|
|
258
|
+
/**
|
|
259
|
+
* A turn with tools run through `params.toolExecutor`, as text.
|
|
260
|
+
* @deprecated Use `runTurn()`, which also returns the reply's parts, status and usage.
|
|
261
|
+
*/
|
|
262
|
+
chat(params) {
|
|
263
|
+
return chatViaTurn(this, params);
|
|
166
264
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
id: toolUse.id,
|
|
171
|
-
name: toolUse.name,
|
|
172
|
-
input: toolUse.input,
|
|
173
|
-
});
|
|
174
|
-
return {
|
|
175
|
-
type: 'tool_result',
|
|
176
|
-
tool_use_id: toolUse.id,
|
|
177
|
-
content: JSON.stringify(serializeToolResult(result)),
|
|
178
|
-
is_error: !result.success,
|
|
179
|
-
};
|
|
180
|
-
}));
|
|
265
|
+
/** @deprecated Use `runTurn()`. */
|
|
266
|
+
chatSync(params) {
|
|
267
|
+
return chatSyncViaTurn(this, params);
|
|
181
268
|
}
|
|
182
269
|
}
|
|
183
270
|
//# sourceMappingURL=claude.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,31 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type Content } from '@google/genai';
|
|
2
|
+
import type { ChatMessage, ProviderChatParams, ProviderConfig } from '../types.js';
|
|
2
3
|
import type { AIProvider } from './base.js';
|
|
4
|
+
import type { ProviderEvent, ProviderStepParams } from './types.js';
|
|
3
5
|
/** `thinkingLevel` is a Gemini 3 setting; older models use a token budget instead. */
|
|
4
6
|
export declare function geminiSupportsThinkingLevel(model: string): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Stored history as Gemini contents. An assistant message with tool calls
|
|
9
|
+
* becomes a model turn with its `functionCall` parts, then a user turn with
|
|
10
|
+
* the `functionResponse` parts, for each step. Thought signatures go back on
|
|
11
|
+
* the parts they came with.
|
|
12
|
+
*/
|
|
13
|
+
export declare function toGeminiStepContents(messages: ChatMessage[], model?: string): Content[];
|
|
5
14
|
export declare class GeminiProvider implements AIProvider {
|
|
6
15
|
name: string;
|
|
7
16
|
private ai;
|
|
8
|
-
|
|
17
|
+
readonly model: string;
|
|
9
18
|
private effort;
|
|
10
19
|
constructor(config: ProviderConfig);
|
|
11
20
|
private config;
|
|
21
|
+
/** One model request: streams text and thoughts, then reports tool calls, usage and why it stopped. */
|
|
22
|
+
step(params: ProviderStepParams): AsyncGenerator<ProviderEvent>;
|
|
23
|
+
/**
|
|
24
|
+
* A turn with tools run through `params.toolExecutor`, as text.
|
|
25
|
+
* @deprecated Use `runTurn()`, which also returns the reply's parts, status and usage.
|
|
26
|
+
*/
|
|
12
27
|
chat(params: ProviderChatParams): AsyncGenerator<string>;
|
|
28
|
+
/** @deprecated Use `runTurn()`. */
|
|
13
29
|
chatSync(params: ProviderChatParams): Promise<string>;
|
|
14
|
-
private runTools;
|
|
15
30
|
}
|
|
16
31
|
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EAIb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,WAAW,EAEX,kBAAkB,EAClB,cAAc,EAMf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAK5C,OAAO,KAAK,EAAgB,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAiBlF,sFAAsF;AACtF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGlE;AAoBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,SAAgB,GAAG,OAAO,EAAE,CAsE9F;AA8BD,qBAAa,cAAe,YAAW,UAAU;IAC/C,IAAI,SAAY;IAChB,OAAO,CAAC,EAAE,CAAc;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAiBlC,OAAO,CAAC,MAAM;IAed,uGAAuG;IAChG,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,aAAa,CAAC;IAqFtE;;;OAGG;IACH,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC;IAIxD,mCAAmC;IACnC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;CAGtD"}
|