@cogitator-ai/core 0.6.0 → 0.7.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 (40) hide show
  1. package/dist/cogitator.d.ts +1 -0
  2. package/dist/cogitator.d.ts.map +1 -1
  3. package/dist/cogitator.js +29 -3
  4. package/dist/cogitator.js.map +1 -1
  5. package/dist/llm/anthropic.d.ts +5 -0
  6. package/dist/llm/anthropic.d.ts.map +1 -1
  7. package/dist/llm/anthropic.js +148 -24
  8. package/dist/llm/anthropic.js.map +1 -1
  9. package/dist/llm/azure.d.ts +32 -0
  10. package/dist/llm/azure.d.ts.map +1 -0
  11. package/dist/llm/azure.js +253 -0
  12. package/dist/llm/azure.js.map +1 -0
  13. package/dist/llm/bedrock.d.ts +33 -0
  14. package/dist/llm/bedrock.d.ts.map +1 -0
  15. package/dist/llm/bedrock.js +323 -0
  16. package/dist/llm/bedrock.js.map +1 -0
  17. package/dist/llm/google.d.ts +5 -0
  18. package/dist/llm/google.d.ts.map +1 -1
  19. package/dist/llm/google.js +85 -11
  20. package/dist/llm/google.js.map +1 -1
  21. package/dist/llm/index.d.ts +2 -0
  22. package/dist/llm/index.d.ts.map +1 -1
  23. package/dist/llm/index.js +52 -0
  24. package/dist/llm/index.js.map +1 -1
  25. package/dist/llm/ollama.d.ts +3 -0
  26. package/dist/llm/ollama.d.ts.map +1 -1
  27. package/dist/llm/ollama.js +59 -10
  28. package/dist/llm/ollama.js.map +1 -1
  29. package/dist/llm/openai.d.ts +5 -0
  30. package/dist/llm/openai.d.ts.map +1 -1
  31. package/dist/llm/openai.js +107 -17
  32. package/dist/llm/openai.js.map +1 -1
  33. package/dist/time-travel/replayer.d.ts +1 -0
  34. package/dist/time-travel/replayer.d.ts.map +1 -1
  35. package/dist/time-travel/replayer.js +15 -4
  36. package/dist/time-travel/replayer.js.map +1 -1
  37. package/dist/tools/hash.d.ts +5 -5
  38. package/dist/tools/index.d.ts +6 -6
  39. package/dist/tools/json.d.ts +1 -1
  40. package/package.json +10 -5
@@ -0,0 +1,253 @@
1
+ /**
2
+ * Azure OpenAI LLM Backend
3
+ *
4
+ * Uses the official OpenAI SDK with Azure configuration.
5
+ * Supports all OpenAI features: chat, streaming, tools, vision.
6
+ */
7
+ import { AzureOpenAI } from 'openai';
8
+ import { BaseLLMBackend } from './base';
9
+ export class AzureOpenAIBackend extends BaseLLMBackend {
10
+ provider = 'azure';
11
+ client;
12
+ defaultDeployment;
13
+ constructor(config) {
14
+ super();
15
+ this.defaultDeployment = config.deployment;
16
+ this.client = new AzureOpenAI({
17
+ endpoint: config.endpoint,
18
+ apiKey: config.apiKey,
19
+ apiVersion: config.apiVersion ?? '2024-08-01-preview',
20
+ deployment: config.deployment,
21
+ });
22
+ }
23
+ async chat(request) {
24
+ const model = request.model || this.defaultDeployment || '';
25
+ const response = await this.client.chat.completions.create({
26
+ model,
27
+ messages: this.convertMessages(request.messages),
28
+ tools: request.tools
29
+ ? request.tools.map((t) => ({
30
+ type: 'function',
31
+ function: {
32
+ name: t.name,
33
+ description: t.description,
34
+ parameters: t.parameters,
35
+ },
36
+ }))
37
+ : undefined,
38
+ tool_choice: this.convertToolChoice(request.toolChoice),
39
+ temperature: request.temperature,
40
+ top_p: request.topP,
41
+ max_tokens: request.maxTokens,
42
+ stop: request.stop,
43
+ response_format: this.convertResponseFormat(request.responseFormat),
44
+ });
45
+ const choice = response.choices[0];
46
+ const message = choice.message;
47
+ const toolCalls = message.tool_calls?.map((tc) => ({
48
+ id: tc.id,
49
+ name: tc.function.name,
50
+ arguments: JSON.parse(tc.function.arguments),
51
+ }));
52
+ return {
53
+ id: response.id,
54
+ content: message.content ?? '',
55
+ toolCalls,
56
+ finishReason: this.mapFinishReason(choice.finish_reason),
57
+ usage: {
58
+ inputTokens: response.usage?.prompt_tokens ?? 0,
59
+ outputTokens: response.usage?.completion_tokens ?? 0,
60
+ totalTokens: response.usage?.total_tokens ?? 0,
61
+ },
62
+ };
63
+ }
64
+ async *chatStream(request) {
65
+ const model = request.model || this.defaultDeployment || '';
66
+ const stream = await this.client.chat.completions.create({
67
+ model,
68
+ messages: this.convertMessages(request.messages),
69
+ tools: request.tools
70
+ ? request.tools.map((t) => ({
71
+ type: 'function',
72
+ function: {
73
+ name: t.name,
74
+ description: t.description,
75
+ parameters: t.parameters,
76
+ },
77
+ }))
78
+ : undefined,
79
+ tool_choice: this.convertToolChoice(request.toolChoice),
80
+ temperature: request.temperature,
81
+ top_p: request.topP,
82
+ max_tokens: request.maxTokens,
83
+ stop: request.stop,
84
+ stream: true,
85
+ stream_options: { include_usage: true },
86
+ response_format: this.convertResponseFormat(request.responseFormat),
87
+ });
88
+ const toolCallsAccum = new Map();
89
+ const toolCallArgsAccum = new Map();
90
+ for await (const chunk of stream) {
91
+ const choice = chunk.choices[0];
92
+ if (!choice && chunk.usage) {
93
+ yield {
94
+ id: chunk.id,
95
+ delta: {},
96
+ usage: {
97
+ inputTokens: chunk.usage.prompt_tokens,
98
+ outputTokens: chunk.usage.completion_tokens,
99
+ totalTokens: chunk.usage.total_tokens,
100
+ },
101
+ };
102
+ continue;
103
+ }
104
+ if (!choice)
105
+ continue;
106
+ const delta = choice.delta;
107
+ if (delta.tool_calls) {
108
+ for (const tc of delta.tool_calls) {
109
+ const existing = toolCallsAccum.get(tc.index) ?? {};
110
+ toolCallsAccum.set(tc.index, {
111
+ id: tc.id ?? existing.id,
112
+ name: tc.function?.name ?? existing.name,
113
+ });
114
+ if (tc.function?.arguments) {
115
+ const existingArgs = toolCallArgsAccum.get(tc.index) ?? '';
116
+ toolCallArgsAccum.set(tc.index, existingArgs + tc.function.arguments);
117
+ }
118
+ }
119
+ }
120
+ let finalToolCalls;
121
+ if (choice.finish_reason === 'tool_calls') {
122
+ finalToolCalls = Array.from(toolCallsAccum.entries()).map(([index, partial]) => ({
123
+ id: partial.id ?? '',
124
+ name: partial.name ?? '',
125
+ arguments: this.tryParseJson(toolCallArgsAccum.get(index) ?? '{}'),
126
+ }));
127
+ }
128
+ yield {
129
+ id: chunk.id,
130
+ delta: {
131
+ content: delta.content ?? undefined,
132
+ toolCalls: finalToolCalls,
133
+ },
134
+ finishReason: choice.finish_reason ? this.mapFinishReason(choice.finish_reason) : undefined,
135
+ };
136
+ }
137
+ }
138
+ convertMessages(messages) {
139
+ return messages.map((m) => {
140
+ switch (m.role) {
141
+ case 'system':
142
+ return {
143
+ role: 'system',
144
+ content: this.getTextContent(m.content),
145
+ };
146
+ case 'user':
147
+ return {
148
+ role: 'user',
149
+ content: this.convertContent(m.content),
150
+ };
151
+ case 'assistant':
152
+ return {
153
+ role: 'assistant',
154
+ content: this.getTextContent(m.content),
155
+ };
156
+ case 'tool':
157
+ return {
158
+ role: 'tool',
159
+ content: this.getTextContent(m.content),
160
+ tool_call_id: m.toolCallId ?? '',
161
+ };
162
+ }
163
+ });
164
+ }
165
+ convertContent(content) {
166
+ if (typeof content === 'string') {
167
+ return content;
168
+ }
169
+ return content.map((part) => this.convertContentPart(part));
170
+ }
171
+ convertContentPart(part) {
172
+ switch (part.type) {
173
+ case 'text':
174
+ return { type: 'text', text: part.text };
175
+ case 'image_url':
176
+ return {
177
+ type: 'image_url',
178
+ image_url: {
179
+ url: part.image_url.url,
180
+ detail: part.image_url.detail,
181
+ },
182
+ };
183
+ case 'image_base64':
184
+ return {
185
+ type: 'image_url',
186
+ image_url: {
187
+ url: `data:${part.image_base64.media_type};base64,${part.image_base64.data}`,
188
+ },
189
+ };
190
+ }
191
+ }
192
+ getTextContent(content) {
193
+ if (typeof content === 'string') {
194
+ return content;
195
+ }
196
+ return content
197
+ .filter((part) => part.type === 'text')
198
+ .map((part) => part.text)
199
+ .join(' ');
200
+ }
201
+ mapFinishReason(reason) {
202
+ switch (reason) {
203
+ case 'stop':
204
+ return 'stop';
205
+ case 'tool_calls':
206
+ return 'tool_calls';
207
+ case 'length':
208
+ return 'length';
209
+ default:
210
+ return 'stop';
211
+ }
212
+ }
213
+ tryParseJson(str) {
214
+ try {
215
+ return JSON.parse(str);
216
+ }
217
+ catch {
218
+ return {};
219
+ }
220
+ }
221
+ convertResponseFormat(format) {
222
+ if (!format)
223
+ return undefined;
224
+ switch (format.type) {
225
+ case 'text':
226
+ return { type: 'text' };
227
+ case 'json_object':
228
+ return { type: 'json_object' };
229
+ case 'json_schema':
230
+ return {
231
+ type: 'json_schema',
232
+ json_schema: {
233
+ name: format.jsonSchema.name,
234
+ description: format.jsonSchema.description,
235
+ schema: format.jsonSchema.schema,
236
+ strict: format.jsonSchema.strict ?? true,
237
+ },
238
+ };
239
+ }
240
+ }
241
+ convertToolChoice(choice) {
242
+ if (!choice)
243
+ return undefined;
244
+ if (typeof choice === 'string') {
245
+ return choice;
246
+ }
247
+ return {
248
+ type: 'function',
249
+ function: { name: choice.function.name },
250
+ };
251
+ }
252
+ }
253
+ //# sourceMappingURL=azure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.js","sourceRoot":"","sources":["../../src/llm/azure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * AWS Bedrock LLM Backend
3
+ *
4
+ * Uses AWS Bedrock's Converse API for unified chat interface.
5
+ * Supports Claude, Llama, Mistral, Cohere, and Amazon Titan models.
6
+ */
7
+ import type { ChatRequest, ChatResponse, ChatStreamChunk } from '@cogitator-ai/types';
8
+ import { BaseLLMBackend } from './base';
9
+ interface BedrockConfig {
10
+ region?: string;
11
+ accessKeyId?: string;
12
+ secretAccessKey?: string;
13
+ }
14
+ export declare class BedrockBackend extends BaseLLMBackend {
15
+ readonly provider: "bedrock";
16
+ private config;
17
+ private clientPromise;
18
+ constructor(config: BedrockConfig);
19
+ private getClient;
20
+ chat(request: ChatRequest): Promise<ChatResponse>;
21
+ chatStream(request: ChatRequest): AsyncGenerator<ChatStreamChunk>;
22
+ private convertMessages;
23
+ private convertContentToBlocks;
24
+ private convertContentPart;
25
+ private getTextContent;
26
+ private convertTool;
27
+ private convertToolChoice;
28
+ private parseResponse;
29
+ private mapStopReason;
30
+ private tryParseJson;
31
+ }
32
+ export {};
33
+ //# sourceMappingURL=bedrock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/llm/bedrock.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EAOhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAsBxC,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,cAAe,SAAQ,cAAc;IAChD,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;IACvC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAAkD;gBAE3D,MAAM,EAAE,aAAa;YAKnB,SAAS;IA0BjB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAyChD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC;IAgHxE,OAAO,CAAC,eAAe;IA8CvB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,YAAY;CAOrB"}
@@ -0,0 +1,323 @@
1
+ /**
2
+ * AWS Bedrock LLM Backend
3
+ *
4
+ * Uses AWS Bedrock's Converse API for unified chat interface.
5
+ * Supports Claude, Llama, Mistral, Cohere, and Amazon Titan models.
6
+ */
7
+ import { BaseLLMBackend } from './base';
8
+ export class BedrockBackend extends BaseLLMBackend {
9
+ provider = 'bedrock';
10
+ config;
11
+ clientPromise = null;
12
+ constructor(config) {
13
+ super();
14
+ this.config = config;
15
+ }
16
+ async getClient() {
17
+ if (!this.clientPromise) {
18
+ this.clientPromise = (async () => {
19
+ try {
20
+ const { BedrockRuntimeClient } = await import('@aws-sdk/client-bedrock-runtime');
21
+ const clientConfig = {};
22
+ if (this.config.region) {
23
+ clientConfig.region = this.config.region;
24
+ }
25
+ if (this.config.accessKeyId && this.config.secretAccessKey) {
26
+ clientConfig.credentials = {
27
+ accessKeyId: this.config.accessKeyId,
28
+ secretAccessKey: this.config.secretAccessKey,
29
+ };
30
+ }
31
+ return new BedrockRuntimeClient(clientConfig);
32
+ }
33
+ catch {
34
+ throw new Error('AWS SDK not installed. Run: pnpm add @aws-sdk/client-bedrock-runtime');
35
+ }
36
+ })();
37
+ }
38
+ return this.clientPromise;
39
+ }
40
+ async chat(request) {
41
+ const client = await this.getClient();
42
+ const { ConverseCommand } = await import('@aws-sdk/client-bedrock-runtime');
43
+ const { system, messages } = this.convertMessages(request.messages);
44
+ const input = {
45
+ modelId: request.model,
46
+ messages,
47
+ };
48
+ if (system) {
49
+ input.system = [{ text: system }];
50
+ }
51
+ if (request.tools && request.tools.length > 0) {
52
+ input.toolConfig = {
53
+ tools: request.tools.map((t) => this.convertTool(t)),
54
+ };
55
+ const toolChoice = this.convertToolChoice(request.toolChoice);
56
+ if (toolChoice) {
57
+ input.toolConfig.toolChoice = toolChoice;
58
+ }
59
+ }
60
+ const inferenceConfig = {};
61
+ if (request.maxTokens)
62
+ inferenceConfig.maxTokens = request.maxTokens;
63
+ if (request.temperature)
64
+ inferenceConfig.temperature = request.temperature;
65
+ if (request.topP)
66
+ inferenceConfig.topP = request.topP;
67
+ if (request.stop)
68
+ inferenceConfig.stopSequences = request.stop;
69
+ if (Object.keys(inferenceConfig).length > 0) {
70
+ input.inferenceConfig = inferenceConfig;
71
+ }
72
+ const command = new ConverseCommand(input);
73
+ const response = await client.send(command);
74
+ return this.parseResponse(response);
75
+ }
76
+ async *chatStream(request) {
77
+ const client = await this.getClient();
78
+ const { ConverseStreamCommand } = await import('@aws-sdk/client-bedrock-runtime');
79
+ const { system, messages } = this.convertMessages(request.messages);
80
+ const input = {
81
+ modelId: request.model,
82
+ messages,
83
+ };
84
+ if (system) {
85
+ input.system = [{ text: system }];
86
+ }
87
+ if (request.tools && request.tools.length > 0) {
88
+ input.toolConfig = {
89
+ tools: request.tools.map((t) => this.convertTool(t)),
90
+ };
91
+ const toolChoice = this.convertToolChoice(request.toolChoice);
92
+ if (toolChoice) {
93
+ input.toolConfig.toolChoice = toolChoice;
94
+ }
95
+ }
96
+ const inferenceConfig = {};
97
+ if (request.maxTokens)
98
+ inferenceConfig.maxTokens = request.maxTokens;
99
+ if (request.temperature)
100
+ inferenceConfig.temperature = request.temperature;
101
+ if (request.topP)
102
+ inferenceConfig.topP = request.topP;
103
+ if (request.stop)
104
+ inferenceConfig.stopSequences = request.stop;
105
+ if (Object.keys(inferenceConfig).length > 0) {
106
+ input.inferenceConfig = inferenceConfig;
107
+ }
108
+ const command = new ConverseStreamCommand(input);
109
+ const response = await client.send(command);
110
+ const id = this.generateId();
111
+ const toolCalls = [];
112
+ const toolCallInputs = new Map();
113
+ if (!response.stream) {
114
+ return;
115
+ }
116
+ for await (const event of response.stream) {
117
+ if (event.contentBlockStart?.start?.toolUse) {
118
+ const idx = event.contentBlockStart.contentBlockIndex ?? 0;
119
+ toolCallInputs.set(idx, {
120
+ id: event.contentBlockStart.start.toolUse.toolUseId ?? '',
121
+ name: event.contentBlockStart.start.toolUse.name ?? '',
122
+ input: '',
123
+ });
124
+ }
125
+ if (event.contentBlockDelta) {
126
+ const idx = event.contentBlockDelta.contentBlockIndex ?? 0;
127
+ const delta = event.contentBlockDelta.delta;
128
+ if (delta?.text) {
129
+ yield {
130
+ id,
131
+ delta: { content: delta.text },
132
+ };
133
+ }
134
+ if (delta?.toolUse?.input) {
135
+ const existing = toolCallInputs.get(idx);
136
+ if (existing) {
137
+ existing.input += delta.toolUse.input;
138
+ }
139
+ }
140
+ }
141
+ if (event.contentBlockStop) {
142
+ const idx = event.contentBlockStop.contentBlockIndex ?? 0;
143
+ const toolCall = toolCallInputs.get(idx);
144
+ if (toolCall) {
145
+ toolCalls.push({
146
+ id: toolCall.id,
147
+ name: toolCall.name,
148
+ arguments: this.tryParseJson(toolCall.input),
149
+ });
150
+ }
151
+ }
152
+ if (event.messageStop) {
153
+ const finishReason = this.mapStopReason(event.messageStop.stopReason);
154
+ yield {
155
+ id,
156
+ delta: {
157
+ toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
158
+ },
159
+ finishReason,
160
+ };
161
+ }
162
+ if (event.metadata?.usage) {
163
+ yield {
164
+ id,
165
+ delta: {},
166
+ usage: {
167
+ inputTokens: event.metadata.usage.inputTokens ?? 0,
168
+ outputTokens: event.metadata.usage.outputTokens ?? 0,
169
+ totalTokens: event.metadata.usage.totalTokens ?? 0,
170
+ },
171
+ };
172
+ }
173
+ }
174
+ }
175
+ convertMessages(messages) {
176
+ let system = null;
177
+ const bedrockMessages = [];
178
+ for (const msg of messages) {
179
+ switch (msg.role) {
180
+ case 'system':
181
+ system = this.getTextContent(msg.content);
182
+ break;
183
+ case 'user':
184
+ bedrockMessages.push({
185
+ role: 'user',
186
+ content: this.convertContentToBlocks(msg.content),
187
+ });
188
+ break;
189
+ case 'assistant':
190
+ bedrockMessages.push({
191
+ role: 'assistant',
192
+ content: this.convertContentToBlocks(msg.content),
193
+ });
194
+ break;
195
+ case 'tool':
196
+ bedrockMessages.push({
197
+ role: 'user',
198
+ content: [
199
+ {
200
+ toolResult: {
201
+ toolUseId: msg.toolCallId ?? '',
202
+ content: [{ text: this.getTextContent(msg.content) }],
203
+ },
204
+ },
205
+ ],
206
+ });
207
+ break;
208
+ }
209
+ }
210
+ return { system, messages: bedrockMessages };
211
+ }
212
+ convertContentToBlocks(content) {
213
+ if (typeof content === 'string') {
214
+ return content ? [{ text: content }] : [];
215
+ }
216
+ return content
217
+ .map((part) => this.convertContentPart(part))
218
+ .filter((b) => b !== null);
219
+ }
220
+ convertContentPart(part) {
221
+ switch (part.type) {
222
+ case 'text':
223
+ return { text: part.text };
224
+ case 'image_base64':
225
+ return {
226
+ image: {
227
+ format: (part.image_base64.media_type.split('/')[1] || 'png'),
228
+ source: {
229
+ bytes: Uint8Array.from(atob(part.image_base64.data), (c) => c.charCodeAt(0)),
230
+ },
231
+ },
232
+ };
233
+ case 'image_url':
234
+ return null;
235
+ }
236
+ }
237
+ getTextContent(content) {
238
+ if (typeof content === 'string') {
239
+ return content;
240
+ }
241
+ return content
242
+ .filter((part) => part.type === 'text')
243
+ .map((part) => part.text)
244
+ .join(' ');
245
+ }
246
+ convertTool(tool) {
247
+ return {
248
+ toolSpec: {
249
+ name: tool.name,
250
+ description: tool.description,
251
+ inputSchema: {
252
+ json: tool.parameters,
253
+ },
254
+ },
255
+ };
256
+ }
257
+ convertToolChoice(choice) {
258
+ if (!choice)
259
+ return undefined;
260
+ if (typeof choice === 'string') {
261
+ switch (choice) {
262
+ case 'auto':
263
+ return { auto: {} };
264
+ case 'none':
265
+ return undefined;
266
+ case 'required':
267
+ return { any: {} };
268
+ }
269
+ }
270
+ return { tool: { name: choice.function.name } };
271
+ }
272
+ parseResponse(response) {
273
+ const message = response.output?.message;
274
+ let content = '';
275
+ const toolCalls = [];
276
+ if (message?.content) {
277
+ for (const block of message.content) {
278
+ if ('text' in block && block.text) {
279
+ content += block.text;
280
+ }
281
+ else if ('toolUse' in block && block.toolUse) {
282
+ toolCalls.push({
283
+ id: block.toolUse.toolUseId ?? '',
284
+ name: block.toolUse.name ?? '',
285
+ arguments: block.toolUse.input ?? {},
286
+ });
287
+ }
288
+ }
289
+ }
290
+ return {
291
+ id: this.generateId(),
292
+ content,
293
+ toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
294
+ finishReason: this.mapStopReason(response.stopReason),
295
+ usage: {
296
+ inputTokens: response.usage?.inputTokens ?? 0,
297
+ outputTokens: response.usage?.outputTokens ?? 0,
298
+ totalTokens: response.usage?.totalTokens ?? 0,
299
+ },
300
+ };
301
+ }
302
+ mapStopReason(reason) {
303
+ switch (reason) {
304
+ case 'end_turn':
305
+ return 'stop';
306
+ case 'tool_use':
307
+ return 'tool_calls';
308
+ case 'max_tokens':
309
+ return 'length';
310
+ default:
311
+ return 'stop';
312
+ }
313
+ }
314
+ tryParseJson(str) {
315
+ try {
316
+ return JSON.parse(str);
317
+ }
318
+ catch {
319
+ return {};
320
+ }
321
+ }
322
+ }
323
+ //# sourceMappingURL=bedrock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../src/llm/bedrock.ts"],"names":[],"mappings":"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"}
@@ -23,10 +23,15 @@ export declare class GoogleBackend extends BaseLLMBackend {
23
23
  private buildRequest;
24
24
  private normalizeModel;
25
25
  private convertMessages;
26
+ private convertContentToParts;
27
+ private convertContentPart;
28
+ private getTextContent;
26
29
  private parseToolResult;
27
30
  private convertTool;
28
31
  private parseResponse;
29
32
  private mapFinishReason;
33
+ private convertResponseFormat;
34
+ private convertToolChoice;
30
35
  }
31
36
  export {};
32
37
  //# sourceMappingURL=google.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/llm/google.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EAIhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAwED,qBAAa,aAAc,SAAQ,cAAc;IAC/C,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,YAAY;IAM1B,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAuBhD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC;IAkGxE,OAAO,CAAC,YAAY;IA+CpB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,eAAe;IAwDvB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,eAAe;CAcxB"}
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/llm/google.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EAQhB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoFD,qBAAa,aAAc,SAAQ,cAAc;IAC/C,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,YAAY;IAM1B,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAuBhD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC;IAiGxE,OAAO,CAAC,YAAY;IA4DpB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,eAAe;IAoDvB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,aAAa;IAmCrB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,iBAAiB;CAqB1B"}