@curie-agent/providers 0.1.2

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.
@@ -0,0 +1,295 @@
1
+ import { GoogleGenerativeAI } from '@google/generative-ai';
2
+ let _callId = 0;
3
+ function nextCallId() {
4
+ return `call_${++_callId}`;
5
+ }
6
+ /** Returns true if the model may return thought_signature fields on function call parts. */
7
+ function isThinkingModelName(model) {
8
+ const m = model.toLowerCase();
9
+ return m.startsWith('gemini-2.5') || m.startsWith('gemini-3') || m.includes('flash-latest') || m.includes('pro-latest');
10
+ }
11
+ export class GoogleGeminiProvider {
12
+ name = 'google';
13
+ models = [
14
+ 'gemini-2.5-pro',
15
+ 'gemini-2.5-flash',
16
+ 'gemini-2.0-flash-lite',
17
+ 'gemini-2.0-flash',
18
+ ];
19
+ defaultModel = 'gemini-2.0-flash';
20
+ genAI;
21
+ baseUrl;
22
+ constructor(apiKey, baseUrl) {
23
+ const resolvedKey = (apiKey && apiKey.length > 0)
24
+ ? apiKey
25
+ : process.env.GOOGLE_API_KEY;
26
+ if (!resolvedKey) {
27
+ throw new Error('GoogleGeminiProvider: no API key (pass explicitly or set GOOGLE_API_KEY).');
28
+ }
29
+ this.genAI = new GoogleGenerativeAI(resolvedKey);
30
+ this.baseUrl = baseUrl || '';
31
+ }
32
+ isThinkingModel(model) {
33
+ return isThinkingModelName(model || this.defaultModel);
34
+ }
35
+ baseModelParams() {
36
+ const params = { model: this.defaultModel };
37
+ if (this.baseUrl) {
38
+ params['baseUrl'] = this.baseUrl;
39
+ }
40
+ return params;
41
+ }
42
+ getModel(model, tools) {
43
+ const m = model || this.defaultModel;
44
+ const params = { ...this.baseModelParams(), model: m };
45
+ if (this.isThinkingModel(m)) {
46
+ params['enable_thoughts'] = false;
47
+ }
48
+ if (tools && tools.length > 0) {
49
+ params['tools'] = [{ functionDeclarations: tools }];
50
+ }
51
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
+ return this.genAI.getGenerativeModel(params);
53
+ }
54
+ stream(args) {
55
+ const model = args.model || this.defaultModel;
56
+ const tools = args.tools ? this.toFunctionDeclarations(args.tools) : undefined;
57
+ const genModel = this.getModel(model, tools);
58
+ const contents = this.mapMessages(args.messages);
59
+ const requestTools = args.tools ? [{ functionDeclarations: this.toFunctionDeclarations(args.tools) }] : undefined;
60
+ async function* generator() {
61
+ const streamResult = await genModel.generateContentStream({
62
+ contents,
63
+ systemInstruction: args.system,
64
+ ...(requestTools ? { tools: requestTools } : {}),
65
+ });
66
+ // Collect raw chunk parts as they stream in to preserve thoughtSignature,
67
+ // which the SDK's aggregated response object drops from its typed interface.
68
+ const rawParts = [];
69
+ for await (const chunk of streamResult.stream) {
70
+ if (args.signal?.aborted) {
71
+ break;
72
+ }
73
+ const text = chunk.text();
74
+ if (text) {
75
+ yield { type: 'text-delta', text };
76
+ }
77
+ // Capture raw parts from each chunk before the SDK strips unknown fields
78
+ const chunkParts = chunk.candidates?.[0]?.content?.parts ?? [];
79
+ for (const part of chunkParts) {
80
+ rawParts.push(part);
81
+ }
82
+ }
83
+ if (args.signal?.aborted) {
84
+ yield { type: 'stop', reason: 'aborted' };
85
+ return;
86
+ }
87
+ try {
88
+ // Prefer raw parts collected during streaming (preserves thoughtSignature).
89
+ // Fall back to aggregated response parts if streaming collected nothing.
90
+ const response = await streamResult.response;
91
+ const aggParts = response.candidates?.[0]?.content?.parts ?? [];
92
+ const parts = rawParts.length > 0 ? rawParts : aggParts;
93
+ for (const p of parts) {
94
+ if (p.functionCall && typeof p.functionCall === 'object') {
95
+ const fc = p.functionCall;
96
+ const sig = (typeof p.thoughtSignature === 'string' ? p.thoughtSignature : undefined)
97
+ ?? (typeof p.thought_signature === 'string' ? p.thought_signature : undefined);
98
+ yield {
99
+ type: 'tool-call',
100
+ id: nextCallId(),
101
+ name: fc.name,
102
+ input: (fc.args ?? {}),
103
+ ...(sig ? { thoughtSignature: sig } : {}),
104
+ };
105
+ }
106
+ }
107
+ }
108
+ catch {
109
+ // Response may throw if prompt was blocked
110
+ }
111
+ yield { type: 'stop', reason: 'stop' };
112
+ }
113
+ return {
114
+ iterable: generator(),
115
+ cancel() {
116
+ // The Google Gemini SDK doesn't expose a public cancel method.
117
+ // The signal.aborted check inside the generator loop breaks on the
118
+ // next iteration, but there's no way to synchronously abort.
119
+ },
120
+ };
121
+ }
122
+ async check(prompt, args) {
123
+ const model = args?.model || this.defaultModel;
124
+ const genModel = this.getModel(model);
125
+ const response = await genModel.generateContent({
126
+ contents: [{ role: 'user', parts: [{ text: prompt }] }],
127
+ systemInstruction: args?.system,
128
+ });
129
+ return response.response.text().trim().slice(0, 256);
130
+ }
131
+ async complete(args) {
132
+ const model = args.model || this.defaultModel;
133
+ const tools = args.tools ? this.toFunctionDeclarations(args.tools) : undefined;
134
+ const genModel = this.getModel(model, tools);
135
+ let contents = this.mapMessages(args.messages);
136
+ const allText = [];
137
+ let stopReason = 'stop';
138
+ let toolCalls;
139
+ for (let turn = 0; turn < 16; turn++) {
140
+ const requestTools = args.tools ? [{ functionDeclarations: this.toFunctionDeclarations(args.tools) }] : undefined;
141
+ const response = await genModel.generateContent({
142
+ contents,
143
+ systemInstruction: args.system,
144
+ ...(requestTools ? { tools: requestTools } : {}),
145
+ });
146
+ const text = response.response.text().trim();
147
+ if (text)
148
+ allText.push(text);
149
+ // Use raw parts to preserve thought_signature for thinking models.
150
+ const rawParts = response.response.candidates?.[0]?.content?.parts ?? [];
151
+ const fcParts = rawParts.filter((p) => p.functionCall);
152
+ if (fcParts.length === 0) {
153
+ stopReason = 'stop';
154
+ break;
155
+ }
156
+ toolCalls = fcParts.map((p) => {
157
+ const fc = p.functionCall;
158
+ return { id: nextCallId(), name: fc.name, input: (fc.args ?? {}) };
159
+ });
160
+ stopReason = 'tool_use';
161
+ // Build follow-up content echoing thoughtSignature back for thinking models.
162
+ // thoughtSignature is a top-level Part field (camelCase in JS SDK).
163
+ contents.push({
164
+ role: 'model',
165
+ parts: fcParts.map((p) => {
166
+ const raw = p;
167
+ const fc = raw.functionCall;
168
+ const sig = (typeof raw.thoughtSignature === 'string' ? raw.thoughtSignature : undefined)
169
+ ?? (typeof raw.thought_signature === 'string' ? raw.thought_signature : undefined);
170
+ const part = { functionCall: { name: fc.name, args: fc.args } };
171
+ if (sig)
172
+ part.thoughtSignature = sig;
173
+ return part;
174
+ }),
175
+ });
176
+ for (const p of fcParts) {
177
+ const fc = p.functionCall;
178
+ contents.push({
179
+ role: 'user',
180
+ parts: [{
181
+ functionResponse: {
182
+ name: fc.name,
183
+ response: { result: fc.args },
184
+ },
185
+ }],
186
+ });
187
+ }
188
+ }
189
+ return {
190
+ text: allText.join('\n'),
191
+ stopReason,
192
+ toolCalls,
193
+ };
194
+ }
195
+ toFunctionDeclarations(tools) {
196
+ return tools.map((t) => ({
197
+ name: t.name,
198
+ description: t.description,
199
+ parameters: this.toFunctionSchema(t.inputSchema),
200
+ }));
201
+ }
202
+ /**
203
+ * Convert a JSON Schema object to Google's FunctionDeclarationSchema format.
204
+ * Google's API is strict: it does NOT support the "required" array in
205
+ * function declaration parameters. Required fields are communicated via
206
+ * description text instead.
207
+ */
208
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
209
+ toFunctionSchema(schema) {
210
+ if (typeof schema !== 'object' || schema === null) {
211
+ return { type: 'object', properties: {} };
212
+ }
213
+ const s = schema;
214
+ const type = typeof s.type === 'string' ? s.type : 'object';
215
+ if (type === 'object') {
216
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
217
+ const properties = {};
218
+ if (s.properties && typeof s.properties === 'object') {
219
+ for (const [key, val] of Object.entries(s.properties)) {
220
+ properties[key] = this.toFunctionSchema(val);
221
+ }
222
+ }
223
+ // Google Gemini API does NOT accept "required" in parameters schema.
224
+ // Omit it; the model will still infer importance from descriptions.
225
+ return { type: 'object', properties };
226
+ }
227
+ // For non-object types, return a simple schema
228
+ // Google requires "items" for array types
229
+ if (type === 'array') {
230
+ const itemsSchema = s.items ? this.toFunctionSchema(s.items) : { type: 'string' };
231
+ return { type: 'array', items: itemsSchema };
232
+ }
233
+ return { type, properties: {} };
234
+ }
235
+ mapMessages(messages) {
236
+ return messages.map((m) => {
237
+ if (m.role === 'tool') {
238
+ return {
239
+ role: 'user',
240
+ parts: [{
241
+ functionResponse: {
242
+ name: m.content,
243
+ response: { output: m.content },
244
+ },
245
+ }],
246
+ };
247
+ }
248
+ if (typeof m.content === 'string') {
249
+ return {
250
+ role: m.role === 'assistant' ? 'model' : 'user',
251
+ parts: [{ text: m.content }],
252
+ };
253
+ }
254
+ if (Array.isArray(m.content)) {
255
+ const parts = [];
256
+ for (const c of m.content) {
257
+ if (c.type === 'text') {
258
+ parts.push({ text: c.text });
259
+ }
260
+ else if (c.type === 'tool-use') {
261
+ // thoughtSignature is a top-level Part field (camelCase in JS SDK)
262
+ const fcPart = {
263
+ functionCall: { name: c.name, args: c.input },
264
+ ...(c.thoughtSignature ? { thoughtSignature: c.thoughtSignature } : {}),
265
+ };
266
+ parts.push(fcPart);
267
+ }
268
+ else if (c.type === 'tool-result') {
269
+ parts.push({
270
+ functionResponse: {
271
+ name: c.tool_use_id,
272
+ response: { output: c.content },
273
+ },
274
+ });
275
+ }
276
+ else if (c.type === 'image') {
277
+ parts.push({ text: `[image: ${c.source.media_type}]` });
278
+ }
279
+ else {
280
+ parts.push({ text: JSON.stringify(c) });
281
+ }
282
+ }
283
+ return {
284
+ role: m.role === 'assistant' ? 'model' : 'user',
285
+ parts,
286
+ };
287
+ }
288
+ return {
289
+ role: 'user',
290
+ parts: [{ text: JSON.stringify(m.content) }],
291
+ };
292
+ });
293
+ }
294
+ }
295
+ //# sourceMappingURL=google.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/google.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { createRegistry } from './provider.js';
2
+ export type { Provider, ProviderEvent, ProviderStreamArgs, ProviderMessage, MessageContent, ProviderRegistry, ReasoningEffort, } from './provider.js';
3
+ export { AnthropicProvider } from './anthropic.js';
4
+ export { OpenAIProvider } from './openai.js';
5
+ export { OllamaProvider } from './ollama.js';
6
+ export { GoogleGeminiProvider } from './google.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EACV,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { createRegistry } from './provider.js';
2
+ export { AnthropicProvider } from './anthropic.js';
3
+ export { OpenAIProvider } from './openai.js';
4
+ export { OllamaProvider } from './ollama.js';
5
+ export { GoogleGeminiProvider } from './google.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAU/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { Provider, ProviderEvent, ProviderStreamArgs, ProviderCompleteArgs, ProviderCompleteResult } from './provider.js';
2
+ type CancelableIterable<T> = {
3
+ iterable: AsyncIterable<T>;
4
+ cancel(): void;
5
+ };
6
+ export declare class OllamaProvider implements Provider {
7
+ readonly name = "ollama";
8
+ readonly models: string[];
9
+ readonly defaultModel = "custom";
10
+ private client;
11
+ private _baseUrl;
12
+ private _allModels;
13
+ constructor(apiKey?: string, baseUrl?: string);
14
+ private _fetchModels;
15
+ stream(args: ProviderStreamArgs): CancelableIterable<ProviderEvent>;
16
+ check(prompt: string, args?: {
17
+ model?: string;
18
+ system?: string;
19
+ signal?: AbortSignal;
20
+ }): Promise<string>;
21
+ complete(args: ProviderCompleteArgs): Promise<ProviderCompleteResult>;
22
+ private mapMessages;
23
+ private mapTools;
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=ollama.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/ollama.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EAGvB,MAAM,eAAe,CAAC;AAEvB,KAAK,kBAAkB,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAAC,MAAM,IAAI,IAAI,CAAA;CAAE,CAAC;AAe5E,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,YAAY,YAAY;IAEjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAyB;gBAE/B,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;YAY/B,YAAY;IAmB1B,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAAC,aAAa,CAAC;IA0F7D,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBb,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAwD3E,OAAO,CAAC,WAAW;IA+CnB,OAAO,CAAC,QAAQ;CAUjB"}
@@ -0,0 +1,245 @@
1
+ import OpenAI from 'openai';
2
+ const FALLBACK_MODELS = [
3
+ 'llama3.3',
4
+ 'mistral',
5
+ 'phi3',
6
+ 'qwen2.5',
7
+ 'deepseek-r1',
8
+ 'llama3.1',
9
+ 'llama3',
10
+ 'codellama',
11
+ 'gemma2',
12
+ 'mixtral',
13
+ ];
14
+ export class OllamaProvider {
15
+ name = 'ollama';
16
+ models;
17
+ defaultModel = 'custom';
18
+ client;
19
+ _baseUrl;
20
+ _allModels = null;
21
+ constructor(apiKey, baseUrl) {
22
+ const resolvedKey = (apiKey && apiKey.length > 0)
23
+ ? apiKey
24
+ : process.env.MODEL_API_KEY;
25
+ this._baseUrl = baseUrl || 'http://localhost:11434/v1';
26
+ this.client = new OpenAI({
27
+ apiKey: resolvedKey || 'sk-not-needed',
28
+ baseURL: this._baseUrl,
29
+ });
30
+ this.models = [...FALLBACK_MODELS];
31
+ }
32
+ async _fetchModels() {
33
+ if (this._allModels)
34
+ return this._allModels;
35
+ try {
36
+ const baseUrl = this._baseUrl.replace(/\/v1(\/)?$/, '');
37
+ const resp = await fetch(`${baseUrl}/api/tags`, {
38
+ signal: AbortSignal.timeout(3000),
39
+ });
40
+ const data = await resp.json();
41
+ if (data.models?.length) {
42
+ this._allModels = data.models.map(m => m.name);
43
+ return this._allModels;
44
+ }
45
+ }
46
+ catch {
47
+ /* fallback to static list */
48
+ }
49
+ this._allModels = [...FALLBACK_MODELS];
50
+ return this._allModels;
51
+ }
52
+ stream(args) {
53
+ const self = this;
54
+ const model = args.model || this.defaultModel;
55
+ const messages = this.mapMessages(args.messages);
56
+ const tools = args.tools ? this.mapTools(args.tools) : undefined;
57
+ const allMessages = args.system
58
+ ? [{ role: 'system', content: args.system }, ...messages]
59
+ : messages;
60
+ // Ollama-specific: omit stream_options, thinking blocks, token caching
61
+ const streamParams = {
62
+ model,
63
+ messages: allMessages,
64
+ stream: true,
65
+ ...(tools ? { tools } : {}),
66
+ ...(args.temperature !== undefined ? { temperature: args.temperature } : {}),
67
+ ...(args.maxTokens ? { max_tokens: args.maxTokens } : {}),
68
+ };
69
+ let sdkStream = null;
70
+ async function* generator() {
71
+ sdkStream = await self.client.chat.completions.create(streamParams);
72
+ if (!sdkStream)
73
+ return;
74
+ const pendingTools = new Map();
75
+ let lastUsage = null;
76
+ for await (const chunk of sdkStream) {
77
+ if (args.signal?.aborted) {
78
+ break;
79
+ }
80
+ if (chunk.usage) {
81
+ lastUsage = chunk.usage;
82
+ }
83
+ const choice = chunk.choices?.[0];
84
+ if (!choice)
85
+ continue;
86
+ if (choice.delta?.content) {
87
+ yield { type: 'text-delta', text: choice.delta.content };
88
+ }
89
+ if (choice.delta?.tool_calls) {
90
+ for (const tc of choice.delta.tool_calls) {
91
+ const idx = tc.index ?? 0;
92
+ if (tc.id) {
93
+ pendingTools.set(idx, { id: tc.id, name: tc.function?.name ?? '', inputStr: '' });
94
+ }
95
+ const pending = pendingTools.get(idx);
96
+ if (pending) {
97
+ pending.inputStr += tc.function?.arguments ?? '';
98
+ }
99
+ }
100
+ }
101
+ }
102
+ for (const [, pending] of pendingTools) {
103
+ let input = {};
104
+ try {
105
+ if (pending.inputStr) {
106
+ input = JSON.parse(pending.inputStr);
107
+ }
108
+ }
109
+ catch { /* empty input on parse failure */ }
110
+ yield { type: 'tool-call', id: pending.id, name: pending.name, input };
111
+ }
112
+ if (lastUsage) {
113
+ yield {
114
+ type: 'usage',
115
+ inputTokens: lastUsage.prompt_tokens ?? 0,
116
+ outputTokens: lastUsage.completion_tokens ?? 0,
117
+ };
118
+ }
119
+ yield { type: 'stop', reason: args.signal?.aborted ? 'aborted' : 'stop' };
120
+ }
121
+ return {
122
+ iterable: generator(),
123
+ cancel() {
124
+ // The signal.aborted check inside the generator loop will break on next iteration
125
+ },
126
+ };
127
+ }
128
+ async check(prompt, args) {
129
+ const model = args?.model || this.defaultModel;
130
+ const messages = [
131
+ { role: 'user', content: prompt },
132
+ ];
133
+ if (args?.system) {
134
+ messages.unshift({ role: 'system', content: args.system });
135
+ }
136
+ const response = await this.client.chat.completions.create({
137
+ model,
138
+ messages,
139
+ max_tokens: 256,
140
+ temperature: 0,
141
+ });
142
+ return response.choices[0]?.message?.content?.trim() ?? '';
143
+ }
144
+ async complete(args) {
145
+ const model = args.model || this.defaultModel;
146
+ const messages = this.mapMessages(args.messages);
147
+ const tools = args.tools ? this.mapTools(args.tools) : undefined;
148
+ const allMessages = args.system
149
+ ? [{ role: 'system', content: args.system }, ...messages]
150
+ : messages;
151
+ const response = await this.client.chat.completions.create({
152
+ model,
153
+ messages: allMessages,
154
+ stream: false,
155
+ ...(tools ? { tools } : {}),
156
+ ...(args.temperature !== undefined ? { temperature: args.temperature } : {}),
157
+ ...(args.maxTokens ? { max_tokens: args.maxTokens } : {}),
158
+ });
159
+ const choice = response.choices[0];
160
+ const text = choice?.message?.content ?? '';
161
+ const toolCalls = choice?.message?.tool_calls?.map(tc => {
162
+ let input = {};
163
+ try {
164
+ if (tc.function?.arguments) {
165
+ input = JSON.parse(tc.function.arguments);
166
+ }
167
+ }
168
+ catch { /* empty input on parse failure */ }
169
+ return {
170
+ id: tc.id ?? '',
171
+ name: tc.function?.name ?? '',
172
+ input,
173
+ };
174
+ }).filter(tc => tc.id) ?? [];
175
+ const usage = response.usage
176
+ ? { inputTokens: response.usage.prompt_tokens, outputTokens: response.usage.completion_tokens }
177
+ : undefined;
178
+ return {
179
+ text: text.trim(),
180
+ stopReason: (choice?.finish_reason === 'stop' || choice?.finish_reason === 'function_call')
181
+ ? 'stop'
182
+ : choice?.finish_reason === 'tool_calls'
183
+ ? 'tool_use'
184
+ : choice?.finish_reason === 'length'
185
+ ? 'length'
186
+ : choice?.finish_reason === 'content_filter'
187
+ ? 'content_filter'
188
+ : 'stop',
189
+ usage,
190
+ toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
191
+ };
192
+ }
193
+ mapMessages(messages) {
194
+ return messages.map((m) => {
195
+ if (m.role === 'tool') {
196
+ return {
197
+ role: 'tool',
198
+ content: m.content,
199
+ tool_call_id: m.toolUseId,
200
+ };
201
+ }
202
+ if (typeof m.content === 'string') {
203
+ return { role: m.role, content: m.content };
204
+ }
205
+ if (Array.isArray(m.content) && m.role === 'user') {
206
+ const textParts = m.content
207
+ .filter((c) => c.type === 'text')
208
+ .map(c => c.text);
209
+ return { role: 'user', content: textParts.join('\n') };
210
+ }
211
+ if (Array.isArray(m.content) && m.role === 'assistant') {
212
+ const textParts = m.content
213
+ .filter((c) => c.type === 'text')
214
+ .map(c => c.text);
215
+ const toolCalls = m.content
216
+ .filter((c) => c.type === 'tool-use')
217
+ .map(c => ({
218
+ id: c.id,
219
+ type: 'function',
220
+ function: {
221
+ name: c.name,
222
+ arguments: JSON.stringify(c.input),
223
+ },
224
+ }));
225
+ return {
226
+ role: 'assistant',
227
+ content: textParts.join('\n') || null,
228
+ ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),
229
+ };
230
+ }
231
+ return { role: m.role, content: JSON.stringify(m.content) };
232
+ });
233
+ }
234
+ mapTools(tools) {
235
+ return tools.map((t) => ({
236
+ type: 'function',
237
+ function: {
238
+ name: t.name,
239
+ description: t.description,
240
+ parameters: t.inputSchema,
241
+ },
242
+ }));
243
+ }
244
+ }
245
+ //# sourceMappingURL=ollama.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/ollama.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { Provider, ProviderEvent, ProviderStreamArgs, ProviderCompleteArgs, ProviderCompleteResult } from './provider.js';
2
+ type CancelableIterable<T> = {
3
+ iterable: AsyncIterable<T>;
4
+ cancel(): void;
5
+ };
6
+ export declare class OpenAIProvider implements Provider {
7
+ readonly name = "openai";
8
+ readonly models: string[];
9
+ readonly defaultModel = "gpt-4o";
10
+ private client;
11
+ constructor(apiKey?: string, baseUrl?: string);
12
+ stream(args: ProviderStreamArgs): CancelableIterable<ProviderEvent>;
13
+ check(prompt: string, args?: {
14
+ model?: string;
15
+ system?: string;
16
+ signal?: AbortSignal;
17
+ }): Promise<string>;
18
+ complete(args: ProviderCompleteArgs): Promise<ProviderCompleteResult>;
19
+ private mapMessages;
20
+ private mapTools;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/openai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EAKvB,MAAM,eAAe,CAAC;AAEvB,KAAK,kBAAkB,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAAC,MAAM,IAAI,IAAI,CAAA;CAAE,CAAC;AAmB5E,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,MAAM,WAWb;IACF,QAAQ,CAAC,YAAY,YAAY;IAEjC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAe9C,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAAC,aAAa,CAAC;IA2G5D,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBb,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgE3E,OAAO,CAAC,WAAW;IA+CnB,OAAO,CAAC,QAAQ;CAUjB"}