@chatcops/core 0.3.2 → 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.
Files changed (162) hide show
  1. package/dist/agent/chat.d.ts +13 -0
  2. package/dist/agent/chat.d.ts.map +1 -0
  3. package/dist/agent/chat.js +42 -0
  4. package/dist/agent/chat.js.map +1 -0
  5. package/dist/agent/errors.d.ts +14 -0
  6. package/dist/agent/errors.d.ts.map +1 -0
  7. package/dist/agent/errors.js +24 -0
  8. package/dist/agent/errors.js.map +1 -0
  9. package/dist/agent/index.d.ts +5 -0
  10. package/dist/agent/index.d.ts.map +1 -0
  11. package/dist/agent/index.js +5 -0
  12. package/dist/agent/index.js.map +1 -0
  13. package/dist/agent/run-turn.d.ts +68 -0
  14. package/dist/agent/run-turn.d.ts.map +1 -0
  15. package/dist/agent/run-turn.js +344 -0
  16. package/dist/agent/run-turn.js.map +1 -0
  17. package/dist/agent/tool-registry.d.ts +28 -0
  18. package/dist/agent/tool-registry.d.ts.map +1 -0
  19. package/dist/agent/tool-registry.js +69 -0
  20. package/dist/agent/tool-registry.js.map +1 -0
  21. package/dist/analytics/index.d.ts +1 -0
  22. package/dist/analytics/index.d.ts.map +1 -1
  23. package/dist/analytics/index.js +1 -0
  24. package/dist/analytics/index.js.map +1 -1
  25. package/dist/analytics/sink.d.ts +24 -0
  26. package/dist/analytics/sink.d.ts.map +1 -0
  27. package/dist/analytics/sink.js +106 -0
  28. package/dist/analytics/sink.js.map +1 -0
  29. package/dist/conversation/index.d.ts +1 -0
  30. package/dist/conversation/index.d.ts.map +1 -1
  31. package/dist/conversation/index.js.map +1 -1
  32. package/dist/conversation/manager.d.ts +62 -6
  33. package/dist/conversation/manager.d.ts.map +1 -1
  34. package/dist/conversation/manager.js +109 -30
  35. package/dist/conversation/manager.js.map +1 -1
  36. package/dist/conversation/store.d.ts +6 -5
  37. package/dist/conversation/store.d.ts.map +1 -1
  38. package/dist/conversation/store.js +4 -0
  39. package/dist/conversation/store.js.map +1 -1
  40. package/dist/index.d.ts +18 -4
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +14 -2
  43. package/dist/index.js.map +1 -1
  44. package/dist/limits/budget.d.ts +84 -0
  45. package/dist/limits/budget.d.ts.map +1 -0
  46. package/dist/limits/budget.js +114 -0
  47. package/dist/limits/budget.js.map +1 -0
  48. package/dist/limits/rate-limit.d.ts +53 -0
  49. package/dist/limits/rate-limit.d.ts.map +1 -0
  50. package/dist/limits/rate-limit.js +68 -0
  51. package/dist/limits/rate-limit.js.map +1 -0
  52. package/dist/parts.d.ts +9 -0
  53. package/dist/parts.d.ts.map +1 -0
  54. package/dist/parts.js +17 -0
  55. package/dist/parts.js.map +1 -0
  56. package/dist/protocol/ai-sdk.d.ts +27 -0
  57. package/dist/protocol/ai-sdk.d.ts.map +1 -0
  58. package/dist/protocol/ai-sdk.js +127 -0
  59. package/dist/protocol/ai-sdk.js.map +1 -0
  60. package/dist/protocol/errors.d.ts +10 -0
  61. package/dist/protocol/errors.d.ts.map +1 -0
  62. package/dist/protocol/errors.js +42 -0
  63. package/dist/protocol/errors.js.map +1 -0
  64. package/dist/protocol/index.d.ts +9 -0
  65. package/dist/protocol/index.d.ts.map +1 -0
  66. package/dist/protocol/index.js +6 -0
  67. package/dist/protocol/index.js.map +1 -0
  68. package/dist/protocol/legacy.d.ts +18 -0
  69. package/dist/protocol/legacy.d.ts.map +1 -0
  70. package/dist/protocol/legacy.js +41 -0
  71. package/dist/protocol/legacy.js.map +1 -0
  72. package/dist/protocol/sse.d.ts +10 -0
  73. package/dist/protocol/sse.d.ts.map +1 -0
  74. package/dist/protocol/sse.js +15 -0
  75. package/dist/protocol/sse.js.map +1 -0
  76. package/dist/protocol/v1.d.ts +140 -0
  77. package/dist/protocol/v1.d.ts.map +1 -0
  78. package/dist/protocol/v1.js +15 -0
  79. package/dist/protocol/v1.js.map +1 -0
  80. package/dist/providers/base.d.ts +17 -15
  81. package/dist/providers/base.d.ts.map +1 -1
  82. package/dist/providers/base.js +43 -31
  83. package/dist/providers/base.js.map +1 -1
  84. package/dist/providers/claude.d.ts +40 -2
  85. package/dist/providers/claude.d.ts.map +1 -1
  86. package/dist/providers/claude.js +250 -113
  87. package/dist/providers/claude.js.map +1 -1
  88. package/dist/providers/gemini.d.ts +23 -3
  89. package/dist/providers/gemini.d.ts.map +1 -1
  90. package/dist/providers/gemini.js +245 -102
  91. package/dist/providers/gemini.js.map +1 -1
  92. package/dist/providers/history.d.ts +52 -0
  93. package/dist/providers/history.d.ts.map +1 -0
  94. package/dist/providers/history.js +212 -0
  95. package/dist/providers/history.js.map +1 -0
  96. package/dist/providers/index.d.ts +5 -5
  97. package/dist/providers/index.d.ts.map +1 -1
  98. package/dist/providers/index.js +5 -4
  99. package/dist/providers/index.js.map +1 -1
  100. package/dist/providers/openai.d.ts +37 -3
  101. package/dist/providers/openai.d.ts.map +1 -1
  102. package/dist/providers/openai.js +246 -140
  103. package/dist/providers/openai.js.map +1 -1
  104. package/dist/providers/registry.d.ts +7 -0
  105. package/dist/providers/registry.d.ts.map +1 -0
  106. package/dist/providers/registry.js +12 -0
  107. package/dist/providers/registry.js.map +1 -0
  108. package/dist/providers/schema.d.ts +16 -0
  109. package/dist/providers/schema.d.ts.map +1 -0
  110. package/dist/providers/schema.js +80 -0
  111. package/dist/providers/schema.js.map +1 -0
  112. package/dist/providers/tool-execution.d.ts +10 -0
  113. package/dist/providers/tool-execution.d.ts.map +1 -1
  114. package/dist/providers/tool-execution.js +38 -12
  115. package/dist/providers/tool-execution.js.map +1 -1
  116. package/dist/providers/types.d.ts +71 -0
  117. package/dist/providers/types.d.ts.map +1 -0
  118. package/dist/providers/types.js +2 -0
  119. package/dist/providers/types.js.map +1 -0
  120. package/dist/storage/adapt.d.ts +15 -0
  121. package/dist/storage/adapt.d.ts.map +1 -0
  122. package/dist/storage/adapt.js +83 -0
  123. package/dist/storage/adapt.js.map +1 -0
  124. package/dist/storage/errors.d.ts +18 -0
  125. package/dist/storage/errors.d.ts.map +1 -0
  126. package/dist/storage/errors.js +28 -0
  127. package/dist/storage/errors.js.map +1 -0
  128. package/dist/storage/index.d.ts +5 -0
  129. package/dist/storage/index.d.ts.map +1 -0
  130. package/dist/storage/index.js +4 -0
  131. package/dist/storage/index.js.map +1 -0
  132. package/dist/storage/memory.d.ts +24 -0
  133. package/dist/storage/memory.d.ts.map +1 -0
  134. package/dist/storage/memory.js +265 -0
  135. package/dist/storage/memory.js.map +1 -0
  136. package/dist/storage/types.d.ts +118 -0
  137. package/dist/storage/types.d.ts.map +1 -0
  138. package/dist/storage/types.js +2 -0
  139. package/dist/storage/types.js.map +1 -0
  140. package/dist/testing/conformance.d.ts +29 -0
  141. package/dist/testing/conformance.d.ts.map +1 -0
  142. package/dist/testing/conformance.js +335 -0
  143. package/dist/testing/conformance.js.map +1 -0
  144. package/dist/testing/index.d.ts +3 -0
  145. package/dist/testing/index.d.ts.map +1 -0
  146. package/dist/testing/index.js +5 -0
  147. package/dist/testing/index.js.map +1 -0
  148. package/dist/testing/provider.d.ts +45 -0
  149. package/dist/testing/provider.d.ts.map +1 -0
  150. package/dist/testing/provider.js +82 -0
  151. package/dist/testing/provider.js.map +1 -0
  152. package/dist/tools/base.d.ts +14 -4
  153. package/dist/tools/base.d.ts.map +1 -1
  154. package/dist/tools/base.js +4 -2
  155. package/dist/tools/base.js.map +1 -1
  156. package/dist/tools/lead-capture.d.ts +3 -1
  157. package/dist/tools/lead-capture.d.ts.map +1 -1
  158. package/dist/tools/lead-capture.js +6 -1
  159. package/dist/tools/lead-capture.js.map +1 -1
  160. package/dist/types.d.ts +168 -4
  161. package/dist/types.d.ts.map +1 -1
  162. package/package.json +53 -5
@@ -1,133 +1,270 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
- import { toProviderMessages, toClaudeTools } from './base.js';
3
- import { MAX_TOOL_ROUNDS, executeToolCall, serializeToolResult, } from './tool-execution.js';
4
- const DEFAULT_MODEL = 'claude-haiku-4-5-20251001';
5
- function toClaudeMessages(params) {
6
- return toProviderMessages(params.messages).map((message) => ({
7
- role: message.role,
8
- content: message.content,
9
- }));
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';
6
+ const DEFAULT_MODEL = 'claude-haiku-5-5';
7
+ const DEFAULT_EFFORT = 'low';
8
+ /** Reads family and version from ids like `claude-haiku-5-5` or `claude-haiku-4-5-20251001`. */
9
+ export function parseClaudeModel(model) {
10
+ const match = model.match(/claude-(opus|sonnet|haiku|fable|mythos)-(\d+)(?:-(\d{1,2})(?!\d))?/);
11
+ if (!match)
12
+ return null;
13
+ return { family: match[1], major: Number(match[2]), minor: Number(match[3] ?? 0) };
10
14
  }
11
- function toAssistantContentBlocks(content) {
12
- const blocks = [];
13
- for (const block of content) {
14
- if (block.type === 'text') {
15
- blocks.push({ type: 'text', text: block.text });
16
- continue;
15
+ /** `output_config.effort` exists on Opus 4.5 and on every model from 4.6 on. */
16
+ export function claudeSupportsEffort(model) {
17
+ const version = parseClaudeModel(model);
18
+ if (!version)
19
+ return false;
20
+ if (version.family === 'fable' || version.family === 'mythos')
21
+ return true;
22
+ if (version.major >= 5)
23
+ return true;
24
+ if (version.major === 4 && version.minor >= 6)
25
+ return true;
26
+ return version.family === 'opus' && version.major === 4 && version.minor === 5;
27
+ }
28
+ /** Fable, Mythos, every 5.x model and Opus 4.7+ reject non-default `temperature`. */
29
+ export function claudeRejectsTemperature(model) {
30
+ const version = parseClaudeModel(model);
31
+ if (!version)
32
+ return false;
33
+ if (version.family === 'fable' || version.family === 'mythos')
34
+ return true;
35
+ if (version.major >= 5)
36
+ return true;
37
+ return version.family === 'opus' && version.major === 4 && version.minor >= 7;
38
+ }
39
+ function claudeMetadata(part) {
40
+ return 'providerMetadata' in part ? part.providerMetadata?.claude : undefined;
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;
17
58
  }
18
- if (block.type === 'tool_use') {
19
- blocks.push({
59
+ case 'tool-call':
60
+ return {
20
61
  type: 'tool_use',
21
- id: block.id,
22
- name: block.name,
23
- input: block.input,
24
- });
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';
76
+ /**
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.
81
+ */
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 = [];
124
+ for (const block of content) {
125
+ switch (block.type) {
126
+ case 'thinking':
127
+ parts.push({ type: 'reasoning', text: block.thinking, providerMetadata: { claude: { signature: block.signature } } });
128
+ break;
129
+ case 'redacted_thinking':
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 });
135
+ break;
136
+ case 'tool_use':
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
+ });
145
+ break;
146
+ default:
147
+ break;
25
148
  }
26
149
  }
27
- return blocks;
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
+ }
163
+ }
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
+ };
28
174
  }
29
175
  export class ClaudeProvider {
30
176
  name = 'claude';
31
177
  client;
32
178
  model;
179
+ effort;
180
+ promptCaching;
33
181
  constructor(config) {
34
- this.client = new Anthropic({ apiKey: config.apiKey });
182
+ if (!config.apiKey?.trim())
183
+ throw new Error('claude requires apiKey');
184
+ this.client = new Anthropic({
185
+ apiKey: config.apiKey,
186
+ ...(config.baseURL ? { baseURL: config.baseURL } : {}),
187
+ ...(config.fetch ? { fetch: config.fetch } : {}),
188
+ });
35
189
  this.model = config.model ?? DEFAULT_MODEL;
190
+ this.promptCaching = config.promptCaching ?? true;
191
+ if (claudeSupportsEffort(this.model)) {
192
+ this.effort = config.effort ?? DEFAULT_EFFORT;
193
+ }
194
+ else if (config.effort) {
195
+ warnOnce(`claude-effort-${this.model}`, `${this.model} has no effort setting, so \`effort\` is ignored.`);
196
+ }
36
197
  }
37
- async *chat(params) {
38
- const messages = toClaudeMessages(params);
39
- let toolRounds = 0;
40
- while (true) {
41
- const stream = this.client.messages.stream({
42
- model: this.model,
43
- max_tokens: params.maxTokens ?? 1024,
44
- system: params.systemPrompt,
45
- messages,
46
- ...(params.tools?.length ? { tools: toClaudeTools(params.tools) } : {}),
47
- ...(params.temperature != null ? { temperature: params.temperature } : {}),
48
- });
49
- for await (const event of stream) {
50
- if (event.type === 'content_block_delta' && event.delta.type === 'text_delta') {
51
- yield event.delta.text;
52
- }
53
- }
54
- const message = await stream.finalMessage();
55
- const toolUses = message.content.filter((block) => block.type === 'tool_use');
56
- if (message.stop_reason !== 'tool_use' || toolUses.length === 0) {
57
- return;
58
- }
59
- if (toolRounds >= MAX_TOOL_ROUNDS) {
60
- throw new Error(`Exceeded maximum tool rounds (${MAX_TOOL_ROUNDS}).`);
61
- }
62
- toolRounds += 1;
63
- messages.push({
64
- role: 'assistant',
65
- content: toAssistantContentBlocks(message.content),
66
- });
67
- const toolResults = await Promise.all(toolUses.map(async (toolUse) => {
68
- const result = await executeToolCall(params, {
69
- id: toolUse.id,
70
- name: toolUse.name,
71
- input: toolUse.input,
72
- });
73
- return {
74
- type: 'tool_result',
75
- tool_use_id: toolUse.id,
76
- content: JSON.stringify(serializeToolResult(result)),
77
- is_error: !result.success,
78
- };
79
- }));
80
- messages.push({
81
- role: 'user',
82
- content: toolResults,
83
- });
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
+ }
211
+ request(params, messages) {
212
+ let temperature = params.temperature;
213
+ if (temperature != null && claudeRejectsTemperature(this.model)) {
214
+ warnOnce(`claude-temperature-${this.model}`, `${this.model} doesn't accept \`temperature\`, so it is not sent. Use \`effort\` to trade speed for depth.`);
215
+ temperature = undefined;
84
216
  }
217
+ return {
218
+ model: this.model,
219
+ max_tokens: params.maxTokens ?? DEFAULT_MAX_TOKENS,
220
+ system: this.system(params),
221
+ messages,
222
+ ...(params.tools?.length ? { tools: toClaudeTools(params.tools) } : {}),
223
+ ...(temperature != null ? { temperature } : {}),
224
+ ...(this.effort ? { output_config: { effort: this.effort } } : {}),
225
+ };
85
226
  }
86
- async chatSync(params) {
87
- const messages = toClaudeMessages(params);
88
- let toolRounds = 0;
89
- while (true) {
90
- const response = await this.client.messages.create({
91
- model: this.model,
92
- max_tokens: params.maxTokens ?? 1024,
93
- system: params.systemPrompt,
94
- messages,
95
- ...(params.tools?.length ? { tools: toClaudeTools(params.tools) } : {}),
96
- ...(params.temperature != null ? { temperature: params.temperature } : {}),
97
- });
98
- const toolUses = response.content.filter((block) => block.type === 'tool_use');
99
- if (response.stop_reason !== 'tool_use' || toolUses.length === 0) {
100
- return response.content
101
- .filter((block) => block.type === 'text')
102
- .map((block) => block.text)
103
- .join('');
104
- }
105
- if (toolRounds >= MAX_TOOL_ROUNDS) {
106
- throw new Error(`Exceeded maximum tool rounds (${MAX_TOOL_ROUNDS}).`);
107
- }
108
- toolRounds += 1;
109
- messages.push({
110
- role: 'assistant',
111
- content: toAssistantContentBlocks(response.content),
112
- });
113
- const toolResults = await Promise.all(toolUses.map(async (toolUse) => {
114
- const result = await executeToolCall(params, {
115
- id: toolUse.id,
116
- name: toolUse.name,
117
- input: toolUse.input,
118
- });
119
- return {
120
- type: 'tool_result',
121
- tool_use_id: toolUse.id,
122
- content: JSON.stringify(serializeToolResult(result)),
123
- is_error: !result.success,
124
- };
125
- }));
126
- messages.push({
127
- role: 'user',
128
- content: toolResults,
129
- });
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 };
238
+ }
239
+ const message = await stream.finalMessage();
240
+ if (message.stop_reason === 'model_context_window_exceeded') {
241
+ throw new Error('The conversation is longer than the model context window.');
130
242
  }
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
+ };
250
+ }
251
+ yield {
252
+ type: 'finish',
253
+ reason: finishReason(message.stop_reason, calls.length > 0),
254
+ usage: toUsage(message.usage),
255
+ parts,
256
+ };
257
+ }
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);
264
+ }
265
+ /** @deprecated Use `runTurn()`. */
266
+ chatSync(params) {
267
+ return chatSyncViaTurn(this, params);
131
268
  }
132
269
  }
133
270
  //# sourceMappingURL=claude.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,31 @@
1
- import type { ProviderConfig, ProviderChatParams } from '../types.js';
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';
5
+ /** `thinkingLevel` is a Gemini 3 setting; older models use a token budget instead. */
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[];
3
14
  export declare class GeminiProvider implements AIProvider {
4
15
  name: string;
5
- private genAI;
6
- private model;
16
+ private ai;
17
+ readonly model: string;
18
+ private effort;
7
19
  constructor(config: ProviderConfig);
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
+ */
8
27
  chat(params: ProviderChatParams): AsyncGenerator<string>;
28
+ /** @deprecated Use `runTurn()`. */
9
29
  chatSync(params: ProviderChatParams): Promise<string>;
10
30
  }
11
31
  //# sourceMappingURL=gemini.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAkC5C,qBAAa,cAAe,YAAW,UAAU;IAC/C,IAAI,SAAY;IAChB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,KAAK,CAAS;gBAEV,MAAM,EAAE,cAAc;IAK3B,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC;IAwDzD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;CAgD5D"}
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"}