@curie-agent/providers 0.2.4 → 0.3.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.
@@ -1,4 +1,34 @@
1
1
  import OpenAI from 'openai';
2
+ import { streamOpenAICompatible } from './openai-compatible-stream.js';
3
+ /** Estimate token count from text byte length. ~4 bytes per token for Llama-family models. */
4
+ function estimateTokens(text) {
5
+ return Math.max(1, Math.round(new TextEncoder().encode(text).length / 4));
6
+ }
7
+ /** Estimate input tokens from a full message array sent to the model. */
8
+ function estimateInputTokens(messages) {
9
+ let bytes = 0;
10
+ for (const m of messages) {
11
+ if (typeof m.content === 'string') {
12
+ bytes += new TextEncoder().encode(m.content).length;
13
+ }
14
+ else if (Array.isArray(m.content)) {
15
+ for (const part of m.content) {
16
+ if (part.type === 'text' && typeof part.text === 'string') {
17
+ bytes += new TextEncoder().encode(part.text).length;
18
+ }
19
+ }
20
+ }
21
+ const tc = m.tool_calls;
22
+ if (tc) {
23
+ for (const call of tc) {
24
+ if (call.function?.arguments) {
25
+ bytes += new TextEncoder().encode(call.function.arguments).length;
26
+ }
27
+ }
28
+ }
29
+ }
30
+ return Math.max(1, Math.round(bytes / 4));
31
+ }
2
32
  const FALLBACK_MODELS = [
3
33
  'llama3.3',
4
34
  'mistral',
@@ -50,14 +80,26 @@ export class OllamaProvider {
50
80
  return this._allModels;
51
81
  }
52
82
  stream(args) {
53
- const self = this;
54
83
  const model = args.model || this.defaultModel;
55
84
  const messages = this.mapMessages(args.messages);
56
85
  const tools = args.tools ? this.mapTools(args.tools) : undefined;
57
86
  const allMessages = args.system
58
87
  ? [{ role: 'system', content: args.system }, ...messages]
59
88
  : messages;
60
- // Ollama-specific: omit stream_options, thinking blocks, token caching
89
+ // Debug: log exact message payload sent to llama.cpp
90
+ if (process.env.DEBUG_PROVIDER) {
91
+ console.log(`[ollama/stream] model=${model}, messages=${allMessages.length}, tools=${tools?.length ?? 0}`);
92
+ for (const [i, m] of allMessages.entries()) {
93
+ const role = m.role;
94
+ const content = typeof m.content === 'string' ? `"${(m.content.slice(0, 80))}..."` : JSON.stringify(m.content)?.slice(0, 200);
95
+ const tcs = m.tool_calls ? `tool_calls=${JSON.stringify(m.tool_calls)?.slice(0, 200)}` : '';
96
+ const tci = m.tool_call_id ? `tool_call_id=${m.tool_call_id}` : '';
97
+ console.log(` [${i}] role=${role} content=${content} ${tcs} ${tci}`.trim());
98
+ }
99
+ }
100
+ // Thinking blocks and token caching are omitted.
101
+ // stream_options intentionally omitted — llama.cpp often doesn't support it,
102
+ // which causes malformed final SSE chunks and silent stream failures.
61
103
  const streamParams = {
62
104
  model,
63
105
  messages: allMessages,
@@ -66,62 +108,16 @@ export class OllamaProvider {
66
108
  ...(args.temperature !== undefined ? { temperature: args.temperature } : {}),
67
109
  ...(args.maxTokens ? { max_tokens: args.maxTokens } : {}),
68
110
  };
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
- }
111
+ const abortCtrl = new AbortController();
121
112
  return {
122
- iterable: generator(),
113
+ iterable: streamOpenAICompatible(this.client, streamParams, args.signal ?? abortCtrl.signal, {
114
+ onNoUsage: (outputText) => ({
115
+ inputTokens: estimateInputTokens(allMessages),
116
+ outputTokens: estimateTokens(outputText),
117
+ }),
118
+ }),
123
119
  cancel() {
124
- // The signal.aborted check inside the generator loop will break on next iteration
120
+ abortCtrl.abort();
125
121
  },
126
122
  };
127
123
  }
@@ -133,13 +129,20 @@ export class OllamaProvider {
133
129
  if (args?.system) {
134
130
  messages.unshift({ role: 'system', content: args.system });
135
131
  }
132
+ if (process.env.DEBUG_PROVIDER) {
133
+ console.log('[ollama/check] starting provider.check() call');
134
+ }
136
135
  const response = await this.client.chat.completions.create({
137
136
  model,
138
137
  messages,
139
138
  max_tokens: 256,
140
139
  temperature: 0,
141
- });
142
- return response.choices[0]?.message?.content?.trim() ?? '';
140
+ }, { signal: args?.signal });
141
+ const result = response.choices[0]?.message?.content?.trim() ?? '';
142
+ if (process.env.DEBUG_PROVIDER) {
143
+ console.log(`[ollama/check] result="${result.slice(0, 100)}"`);
144
+ }
145
+ return result;
143
146
  }
144
147
  async complete(args) {
145
148
  const model = args.model || this.defaultModel;
@@ -222,11 +225,17 @@ export class OllamaProvider {
222
225
  arguments: JSON.stringify(c.input),
223
226
  },
224
227
  }));
225
- return {
226
- role: 'assistant',
227
- content: textParts.join('\n') || null,
228
- ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),
229
- };
228
+ // Some llama.cpp GGUF templates don't handle empty/null content alongside tool_calls.
229
+ // Only include the content key when there's actual text.
230
+ const assistantMsg = { role: 'assistant' };
231
+ if (textParts.length > 0) {
232
+ assistantMsg.content = textParts.join('\n');
233
+ }
234
+ // When textParts is empty: omit content entirely (don't set null or "")
235
+ if (toolCalls.length > 0) {
236
+ assistantMsg.tool_calls = toolCalls;
237
+ }
238
+ return assistantMsg;
230
239
  }
231
240
  return { role: m.role, content: JSON.stringify(m.content) };
232
241
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAa5B,MAAM,eAAe,GAAG;IACtB,UAAU;IACV,SAAS;IACT,MAAM;IACN,SAAS;IACT,aAAa;IACb,UAAU;IACV,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,SAAS;CACV,CAAC;AAEF,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,QAAQ,CAAC;IAChB,MAAM,CAAW;IACjB,YAAY,GAAG,QAAQ,CAAC;IAEzB,MAAM,CAAS;IACf,QAAQ,CAAS;IACjB,UAAU,GAAoB,IAAI,CAAC;IAE3C,YAAY,MAAe,EAAE,OAAgB;QAC3C,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,2BAA2B,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,MAAM,EAAE,WAAW,IAAI,eAAe;YACtC,OAAO,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,EAAE;gBAC9C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAA0C,CAAC;YACvE,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,IAAwB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjE,MAAM,WAAW,GAAwC,IAAI,CAAC,MAAM;YAClE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC;YACzD,CAAC,CAAC,QAAQ,CAAC;QAEb,uEAAuE;QACvE,MAAM,YAAY,GAAsC;YACtD,KAAK;YACL,QAAQ,EAAE,WAAW;YACrB,MAAM,EAAE,IAAI;YACZ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;QAEF,IAAI,SAAS,GAAqD,IAAI,CAAC;QAEvE,KAAK,SAAS,CAAC,CAAC,SAAS;YACvB,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAA8C,CAAC;YAEjH,IAAI,CAAC,SAAS;gBAAE,OAAO;YAEvB,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0D,CAAC;YACvF,IAAI,SAAS,GAAkC,IAAI,CAAC;YAEpD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBACpC,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;oBACzB,MAAM;gBACR,CAAC;gBAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1B,CAAC;gBAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAEtB,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;oBAC1B,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC3D,CAAC;gBAED,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;oBAC7B,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;wBACzC,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;wBAC1B,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;4BACV,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;wBACpF,CAAC;wBACD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACtC,IAAI,OAAO,EAAE,CAAC;4BACZ,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;wBACnD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;gBACvC,IAAI,KAAK,GAA4B,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACH,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACrB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;gBAC9C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YACzE,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM;oBACJ,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,SAAS,CAAC,aAAa,IAAI,CAAC;oBACzC,YAAY,EAAE,SAAS,CAAC,iBAAiB,IAAI,CAAC;iBAC/C,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5E,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,SAAS,EAAE;YACrB,MAAM;gBACJ,kFAAkF;YACpF,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,IAI3B;QACC,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAC/C,MAAM,QAAQ,GAAwC;YACpD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;SAClC,CAAC;QACF,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;YACjB,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzD,KAAK;YACL,QAAQ;YACR,UAAU,EAAE,GAAG;YACf,WAAW,EAAE,CAAC;SACf,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAA0B;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjE,MAAM,WAAW,GAAwC,IAAI,CAAC,MAAM;YAClE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC;YACzD,CAAC,CAAC,QAAQ,CAAC;QAEb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzD,KAAK;YACL,QAAQ,EAAE,WAAW;YACrB,MAAM,EAAE,KAAK;YACb,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QAE5C,MAAM,SAAS,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE;YACtD,IAAI,KAAK,GAA4B,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;oBAC3B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,kCAAkC,CAAC,CAAC;YAC9C,OAAO;gBACL,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;gBACf,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;gBAC7B,KAAK;aACN,CAAC;QACJ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAE7B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK;YAC1B,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE;YAC/F,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACjB,UAAU,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,IAAI,MAAM,EAAE,aAAa,KAAK,eAAe,CAAC;gBACzF,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,MAAM,EAAE,aAAa,KAAK,YAAY;oBACxC,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,MAAM,EAAE,aAAa,KAAK,QAAQ;wBACpC,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,MAAM,EAAE,aAAa,KAAK,gBAAgB;4BAC5C,CAAC,CAAC,gBAAgB;4BAClB,CAAC,CAAC,MAAM;YACV,KAAK;YACL,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SACxD,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,QAA2B;QAC7C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAiB;oBAC5B,YAAY,EAAG,CAA2B,CAAC,SAAS;iBACZ,CAAC;YAC7C,CAAC;YAED,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAuC,CAAC;YACnF,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClD,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO;qBACxB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;qBACrE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACvD,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO;qBACxB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;qBACrE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO;qBACxB,MAAM,CAAC,CAAC,CAAC,EAAuF,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;qBACzH,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACT,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,UAAmB;oBACzB,QAAQ,EAAE;wBACR,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;qBACnC;iBACF,CAAC,CAAC,CAAC;gBAEN,OAAO;oBACL,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI;oBACrC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACb,CAAC;YAClD,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,KAAuB;QACtC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,UAAU,EAAE,CAAC,CAAC,WAAsC;aACrD;SACF,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/ollama.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type OpenAI from 'openai';
2
+ import type { ProviderEvent } from './provider.js';
3
+ /**
4
+ * Stream consumer for any OpenAI Chat Completions-compatible endpoint
5
+ * (OpenAI standard models, Ollama, llama.cpp, vLLM, etc.).
6
+ *
7
+ * Behavior matches the OpenRouter reference: tool calls are buffered
8
+ * during the stream and emitted as a single batch after it completes,
9
+ * so the TUI renders them as one grouped block. <think>...</think>
10
+ * tags and gemma4-style <|channel>thought\n...<channel|> blocks inside
11
+ * content deltas are routed to thinking-delta events; accumulated
12
+ * thinking is flushed as a single thinking-block at end.
13
+ *
14
+ * Supports request timeout (default 60s) and catches SDK parse errors
15
+ * mid-stream, yielding a 'stop' event rather than propagating.
16
+ */
17
+ export declare function streamOpenAICompatible(client: OpenAI, streamParams: OpenAI.ChatCompletionCreateParams, signal?: AbortSignal, options?: {
18
+ suppressThinking?: boolean;
19
+ timeoutMs?: number;
20
+ /** Called when no usage data arrived from the stream. Receives accumulated output text. */
21
+ onNoUsage?: (outputText: string) => {
22
+ inputTokens: number;
23
+ outputTokens: number;
24
+ };
25
+ }): AsyncIterable<ProviderEvent>;
26
+ //# sourceMappingURL=openai-compatible-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-compatible-stream.d.ts","sourceRoot":"","sources":["../../src/openai-compatible-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;;;;;;;;;;GAaG;AACH,wBAAuB,sBAAsB,CAC3C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,CAAC,0BAA0B,EAC/C,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE;IACR,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CACnF,GACA,aAAa,CAAC,aAAa,CAAC,CAkM9B"}
@@ -0,0 +1,204 @@
1
+ /**
2
+ * Stream consumer for any OpenAI Chat Completions-compatible endpoint
3
+ * (OpenAI standard models, Ollama, llama.cpp, vLLM, etc.).
4
+ *
5
+ * Behavior matches the OpenRouter reference: tool calls are buffered
6
+ * during the stream and emitted as a single batch after it completes,
7
+ * so the TUI renders them as one grouped block. <think>...</think>
8
+ * tags and gemma4-style <|channel>thought\n...<channel|> blocks inside
9
+ * content deltas are routed to thinking-delta events; accumulated
10
+ * thinking is flushed as a single thinking-block at end.
11
+ *
12
+ * Supports request timeout (default 60s) and catches SDK parse errors
13
+ * mid-stream, yielding a 'stop' event rather than propagating.
14
+ */
15
+ export async function* streamOpenAICompatible(client, streamParams, signal, options) {
16
+ const suppressThinking = options?.suppressThinking ?? false;
17
+ const timeoutMs = options?.timeoutMs ?? 60_000;
18
+ // Create internal abort controller: fires on user abort OR timeout.
19
+ const abortCtrl = new AbortController();
20
+ function forwardUserAbort() { abortCtrl.abort(); }
21
+ // If already aborted, forward immediately (addEventListener won't fire for pre-aborted signals)
22
+ if (signal?.aborted) {
23
+ abortCtrl.abort();
24
+ }
25
+ else {
26
+ signal?.addEventListener('abort', forwardUserAbort, { once: true });
27
+ }
28
+ const timeoutId = setTimeout(() => abortCtrl.abort(new Error('Provider request timeout after ' + timeoutMs + 'ms')), timeoutMs);
29
+ try {
30
+ const sdkStream = (await client.chat.completions.create(streamParams));
31
+ const pendingTools = new Map();
32
+ let lastUsage = null;
33
+ let finishReason = null;
34
+ let inThinkBlock = false;
35
+ let accumulatedThinking = '';
36
+ let debugTextAccum = '';
37
+ let debugToolCallCount = 0;
38
+ const debugLog = process.env.DEBUG_PROVIDER ? (m) => console.log('[stream]', m) : null;
39
+ // Gemma4 thinking open tag: <|channel>thought\n close tag: <channel|>
40
+ const GEMMA_OPEN = '<|channel>thought\n';
41
+ const GEMMA_CLOSE = '<channel|>';
42
+ try {
43
+ for await (const chunk of sdkStream) {
44
+ if (abortCtrl.signal.aborted)
45
+ break;
46
+ if (chunk.usage)
47
+ lastUsage = chunk.usage;
48
+ const choice = chunk.choices?.[0];
49
+ if (!choice)
50
+ continue;
51
+ if (choice.delta?.content && typeof choice.delta.content === 'string') {
52
+ // Process content through a position cursor so both tag formats share one state machine.
53
+ let remaining = choice.delta.content;
54
+ while (remaining.length > 0) {
55
+ if (!inThinkBlock) {
56
+ // Detect whichever opening tag appears first.
57
+ const thinkIdx = remaining.indexOf('<think>');
58
+ const gemmaIdx = remaining.indexOf(GEMMA_OPEN);
59
+ let openIdx = -1;
60
+ let openTag = '';
61
+ if (thinkIdx !== -1 && (gemmaIdx === -1 || thinkIdx <= gemmaIdx)) {
62
+ openIdx = thinkIdx;
63
+ openTag = '<think>';
64
+ }
65
+ else if (gemmaIdx !== -1) {
66
+ openIdx = gemmaIdx;
67
+ openTag = GEMMA_OPEN;
68
+ }
69
+ if (openIdx === -1) {
70
+ // No opening tag — plain text.
71
+ debugTextAccum += remaining;
72
+ yield { type: 'text-delta', text: remaining };
73
+ remaining = '';
74
+ }
75
+ else {
76
+ if (openIdx > 0) {
77
+ debugTextAccum += remaining.slice(0, openIdx);
78
+ yield { type: 'text-delta', text: remaining.slice(0, openIdx) };
79
+ }
80
+ inThinkBlock = true;
81
+ remaining = remaining.slice(openIdx + openTag.length);
82
+ }
83
+ }
84
+ else {
85
+ // Inside a think block — look for either close tag.
86
+ const closeTag = remaining.includes('</think>') && (!remaining.includes(GEMMA_CLOSE) || remaining.indexOf('</think>') <= remaining.indexOf(GEMMA_CLOSE))
87
+ ? '</think>'
88
+ : remaining.includes(GEMMA_CLOSE)
89
+ ? GEMMA_CLOSE
90
+ : null;
91
+ const closeIdx = closeTag !== null ? remaining.indexOf(closeTag) : -1;
92
+ if (closeIdx === -1) {
93
+ // Still inside think block — no close tag yet.
94
+ if (!suppressThinking)
95
+ yield { type: 'thinking-delta', text: remaining };
96
+ accumulatedThinking += remaining;
97
+ remaining = '';
98
+ }
99
+ else {
100
+ const thinkText = remaining.slice(0, closeIdx);
101
+ if (!suppressThinking)
102
+ yield { type: 'thinking-delta', text: thinkText };
103
+ accumulatedThinking += thinkText;
104
+ inThinkBlock = false;
105
+ remaining = remaining.slice(closeIdx + closeTag.length);
106
+ }
107
+ }
108
+ }
109
+ }
110
+ // DeepSeek v2 / Qwen 3.6+: reasoning_content streams in a separate delta field
111
+ // (not wrapped in <thinking> tags inside content). Route directly to thinking-delta.
112
+ const rc = choice.delta?.reasoning_content;
113
+ if (rc) {
114
+ if (!suppressThinking)
115
+ yield { type: 'thinking-delta', text: rc };
116
+ accumulatedThinking += rc;
117
+ }
118
+ if (choice.finish_reason)
119
+ finishReason = choice.finish_reason;
120
+ if (choice.delta?.tool_calls) {
121
+ for (const tc of choice.delta.tool_calls) {
122
+ const idx = tc.index ?? 0;
123
+ if (tc.id) {
124
+ pendingTools.set(idx, { id: tc.id, name: tc.function?.name ?? '', inputStr: '' });
125
+ }
126
+ const pending = pendingTools.get(idx);
127
+ if (pending) {
128
+ pending.inputStr += tc.function?.arguments ?? '';
129
+ }
130
+ }
131
+ }
132
+ }
133
+ }
134
+ catch (streamErr) {
135
+ // SDK threw during SSE iteration (parse error, connection reset, etc.).
136
+ // If it's our own abort, treat as clean stop. Otherwise surface the error.
137
+ if (abortCtrl.signal.aborted) {
138
+ yield { type: 'stop', reason: 'aborted' };
139
+ return;
140
+ }
141
+ const err = streamErr;
142
+ const msg = err?.message ?? String(streamErr);
143
+ const status = streamErr?.status ?? streamErr?.response?.status;
144
+ const detail = status ? `HTTP ${status}: ${msg}` : msg;
145
+ yield { type: 'stop', reason: 'error', errorDetail: detail };
146
+ return;
147
+ }
148
+ if (accumulatedThinking && !suppressThinking) {
149
+ yield { type: 'thinking-block', thinking: accumulatedThinking, signature: '' };
150
+ }
151
+ // Skip tool calls whose JSON was truncated by the output token limit —
152
+ // emitting them with empty inputs causes retry loops in the turn loop.
153
+ for (const [, pending] of pendingTools) {
154
+ let input = {};
155
+ let parseOk = true;
156
+ try {
157
+ if (pending.inputStr)
158
+ input = JSON.parse(pending.inputStr);
159
+ }
160
+ catch {
161
+ parseOk = false;
162
+ }
163
+ if (!parseOk && finishReason === 'length')
164
+ continue;
165
+ debugToolCallCount++;
166
+ yield { type: 'tool-call', id: pending.id, name: pending.name, input };
167
+ }
168
+ // Debug summary at end of stream
169
+ debugLog?.(`DONE: textLen=${debugTextAccum.trim().length}, toolCalls=${debugToolCallCount}, thinkingLen=${accumulatedThinking.length}`);
170
+ if (debugTextAccum.trim().length === 0 && debugToolCallCount === 0) {
171
+ debugLog?.('WARNING: model produced zero text and zero tool calls');
172
+ }
173
+ if (lastUsage) {
174
+ yield {
175
+ type: 'usage',
176
+ inputTokens: lastUsage.prompt_tokens ?? 0,
177
+ outputTokens: lastUsage.completion_tokens ?? 0,
178
+ };
179
+ }
180
+ else if (options?.onNoUsage) {
181
+ const estimated = options.onNoUsage(debugTextAccum.trim());
182
+ yield { type: 'usage', inputTokens: estimated.inputTokens, outputTokens: estimated.outputTokens };
183
+ }
184
+ yield { type: 'stop', reason: abortCtrl.signal.aborted ? 'aborted' : (finishReason === 'length' ? 'length' : 'stop') };
185
+ }
186
+ catch (sdkErr) {
187
+ // SDK threw during initial request (abort, connection refused, etc.)
188
+ if (abortCtrl.signal.aborted) {
189
+ yield { type: 'stop', reason: 'aborted' };
190
+ }
191
+ else {
192
+ const err = sdkErr;
193
+ const msg = err?.message ?? String(sdkErr);
194
+ const status = sdkErr?.status ?? sdkErr?.response?.status;
195
+ const detail = status ? `HTTP ${status}: ${msg}` : msg;
196
+ yield { type: 'stop', reason: 'error', errorDetail: detail };
197
+ }
198
+ }
199
+ finally {
200
+ signal?.removeEventListener('abort', forwardUserAbort);
201
+ clearTimeout(timeoutId);
202
+ }
203
+ }
204
+ //# sourceMappingURL=openai-compatible-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-compatible-stream.js","sourceRoot":"","sources":["../../src/openai-compatible-stream.ts"],"names":[],"mappings":"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"}
@@ -10,14 +10,22 @@ export declare class OpenAIProvider implements Provider {
10
10
  private client;
11
11
  constructor(apiKey?: string, baseUrl?: string);
12
12
  stream(args: ProviderStreamArgs): CancelableIterable<ProviderEvent>;
13
+ private streamChat;
14
+ private streamResponses;
13
15
  check(prompt: string, args?: {
14
16
  model?: string;
15
17
  system?: string;
16
18
  signal?: AbortSignal;
17
19
  }): Promise<string>;
20
+ private checkChat;
21
+ private checkResponses;
18
22
  complete(args: ProviderCompleteArgs): Promise<ProviderCompleteResult>;
23
+ private completeChat;
24
+ private completeResponses;
19
25
  private mapMessages;
20
26
  private mapTools;
27
+ private mapMessagesToInput;
28
+ private mapToolsToResponses;
21
29
  }
22
30
  export {};
23
31
  //# sourceMappingURL=openai.d.ts.map
@@ -1 +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"}
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;AAGvB,KAAK,kBAAkB,CAAC,CAAC,IAAI;IAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAAC,MAAM,IAAI,IAAI,CAAA;CAAE,CAAC;AA2B5E,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,MAAM,WAiBb;IACF,QAAQ,CAAC,YAAY,YAAY;IAEjC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAiB7C,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAAC,aAAa,CAAC;IAQnE,OAAO,CAAC,UAAU;IAoClB,OAAO,CAAC,eAAe;IAoFjB,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;YAQL,SAAS;YAqBT,cAAc;IAmBtB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAQ7D,YAAY;YAqDZ,iBAAiB;IA4C/B,OAAO,CAAC,WAAW;IA4CnB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,kBAAkB;IAoD1B,OAAO,CAAC,mBAAmB;CAS5B"}