@absolutejs/absolute 0.19.0-beta.237 → 0.19.0-beta.239
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.
|
@@ -78,19 +78,55 @@ var __require = import.meta.require;
|
|
|
78
78
|
var DEFAULT_BASE_URL = "http://localhost:11434";
|
|
79
79
|
var ZERO_TOKENS = 0;
|
|
80
80
|
var DONE_CHUNK = { type: "done" };
|
|
81
|
+
var mapToolDefinitions = (tools) => tools.map((tool) => ({
|
|
82
|
+
function: {
|
|
83
|
+
description: tool.description,
|
|
84
|
+
name: tool.name,
|
|
85
|
+
parameters: tool.input_schema
|
|
86
|
+
},
|
|
87
|
+
type: "function"
|
|
88
|
+
}));
|
|
89
|
+
var convertMessage = (msg) => {
|
|
90
|
+
if (typeof msg.content === "string") {
|
|
91
|
+
return [{ content: msg.content, role: msg.role }];
|
|
92
|
+
}
|
|
93
|
+
const results = [];
|
|
94
|
+
const toolUseBlocks = msg.content.filter((block) => block.type === "tool_use");
|
|
95
|
+
const toolResultBlocks = msg.content.filter((block) => block.type === "tool_result");
|
|
96
|
+
if (toolUseBlocks.length > 0) {
|
|
97
|
+
results.push({
|
|
98
|
+
content: "",
|
|
99
|
+
role: "assistant",
|
|
100
|
+
tool_calls: toolUseBlocks.map((block) => ({
|
|
101
|
+
function: {
|
|
102
|
+
arguments: typeof block.input === "object" && block.input !== null ? block.input : {},
|
|
103
|
+
name: block.name
|
|
104
|
+
}
|
|
105
|
+
}))
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
for (const block of toolResultBlocks) {
|
|
109
|
+
results.push({
|
|
110
|
+
content: typeof block.content === "string" ? block.content : "",
|
|
111
|
+
role: "tool"
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return results;
|
|
115
|
+
};
|
|
81
116
|
var buildRequestBody = (params) => {
|
|
82
|
-
const messages = params.messages.
|
|
83
|
-
content: typeof msg.content === "string" ? msg.content : "",
|
|
84
|
-
role: msg.role
|
|
85
|
-
}));
|
|
117
|
+
const messages = params.messages.flatMap(convertMessage);
|
|
86
118
|
if (params.systemPrompt) {
|
|
87
119
|
messages.unshift({ content: params.systemPrompt, role: "system" });
|
|
88
120
|
}
|
|
89
|
-
|
|
121
|
+
const body = {
|
|
90
122
|
messages,
|
|
91
123
|
model: params.model,
|
|
92
124
|
stream: true
|
|
93
125
|
};
|
|
126
|
+
if (params.tools && params.tools.length > 0) {
|
|
127
|
+
body.tools = mapToolDefinitions(params.tools);
|
|
128
|
+
}
|
|
129
|
+
return body;
|
|
94
130
|
};
|
|
95
131
|
var isRecord = (val) => val !== null && typeof val === "object" && !Array.isArray(val);
|
|
96
132
|
var tryParseJSON = (text) => {
|
|
@@ -130,32 +166,51 @@ var buildTextChunk = (content) => ({
|
|
|
130
166
|
content,
|
|
131
167
|
type: "text"
|
|
132
168
|
});
|
|
133
|
-
var
|
|
169
|
+
var extractToolCalls = (message) => {
|
|
170
|
+
const toolCalls = message.tool_calls;
|
|
171
|
+
if (!Array.isArray(toolCalls) || toolCalls.length === 0) {
|
|
172
|
+
return [];
|
|
173
|
+
}
|
|
174
|
+
return toolCalls.filter(isRecord).filter((tc) => isRecord(tc.function)).map((tc) => {
|
|
175
|
+
const func = tc.function;
|
|
176
|
+
return {
|
|
177
|
+
id: crypto.randomUUID(),
|
|
178
|
+
input: func.arguments ?? {},
|
|
179
|
+
name: typeof func.name === "string" ? func.name : "",
|
|
180
|
+
type: "tool_use"
|
|
181
|
+
};
|
|
182
|
+
});
|
|
183
|
+
};
|
|
184
|
+
var extractChunks = (parsed) => {
|
|
134
185
|
const { message } = parsed;
|
|
135
186
|
if (!isRecord(message)) {
|
|
136
|
-
return
|
|
187
|
+
return [];
|
|
188
|
+
}
|
|
189
|
+
const toolChunks = extractToolCalls(message);
|
|
190
|
+
if (toolChunks.length > 0) {
|
|
191
|
+
return toolChunks;
|
|
137
192
|
}
|
|
138
193
|
const { content } = message;
|
|
139
194
|
if (typeof content !== "string" || !content) {
|
|
140
|
-
return
|
|
195
|
+
return [];
|
|
141
196
|
}
|
|
142
|
-
return buildTextChunk(content);
|
|
197
|
+
return [buildTextChunk(content)];
|
|
143
198
|
};
|
|
144
199
|
var processLine = (line) => {
|
|
145
200
|
const trimmed = line.trim();
|
|
146
201
|
if (!trimmed) {
|
|
147
|
-
return
|
|
202
|
+
return [];
|
|
148
203
|
}
|
|
149
204
|
const parsed = tryParseJSON(trimmed);
|
|
150
205
|
if (!parsed) {
|
|
151
|
-
return
|
|
206
|
+
return [];
|
|
152
207
|
}
|
|
153
208
|
if (parsed.done === true) {
|
|
154
|
-
return buildDoneChunk(parsed);
|
|
209
|
+
return [buildDoneChunk(parsed)];
|
|
155
210
|
}
|
|
156
|
-
return
|
|
211
|
+
return extractChunks(parsed);
|
|
157
212
|
};
|
|
158
|
-
var processBufferedLines = (lines) => lines.
|
|
213
|
+
var processBufferedLines = (lines) => lines.flatMap(processLine);
|
|
159
214
|
var readStreamChunks = async (reader, decoder, buffer, signal) => {
|
|
160
215
|
const emptyChunks = [];
|
|
161
216
|
if (signal?.aborted) {
|
|
@@ -229,5 +284,5 @@ export {
|
|
|
229
284
|
ollama
|
|
230
285
|
};
|
|
231
286
|
|
|
232
|
-
//# debugId=
|
|
287
|
+
//# debugId=BE23827957FF8E3C64756E2164756E21
|
|
233
288
|
//# sourceMappingURL=ollama.js.map
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/ai/providers/ollama.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type {\n\tAIChunk,\n\tAIDoneChunk,\n\tAIProviderConfig,\n\tAIProviderStreamParams\n} from '../../../types/ai';\n\ntype OllamaConfig = {\n\tbaseUrl?: string;\n};\n\ntype OllamaMessage = {\n\tcontent: string;\n\trole: 'assistant' | 'system' | 'user';\n};\n\nconst DEFAULT_BASE_URL = 'http://localhost:11434';\nconst ZERO_TOKENS = 0;\n\nconst DONE_CHUNK: AIChunk = { type: 'done' };\n\nconst
|
|
5
|
+
"import type {\n\tAIChunk,\n\tAIDoneChunk,\n\tAIProviderConfig,\n\tAIProviderStreamParams,\n\tAIProviderToolDefinition\n} from '../../../types/ai';\n\ntype OllamaConfig = {\n\tbaseUrl?: string;\n};\n\ntype OllamaMessage = {\n\tcontent: string;\n\trole: 'assistant' | 'system' | 'tool' | 'user';\n\ttool_calls?: Array<{\n\t\tfunction: { arguments: Record<string, unknown>; name: string };\n\t}>;\n};\n\nconst DEFAULT_BASE_URL = 'http://localhost:11434';\nconst ZERO_TOKENS = 0;\n\nconst DONE_CHUNK: AIChunk = { type: 'done' };\n\nconst mapToolDefinitions = (tools: AIProviderToolDefinition[]) =>\n\ttools.map((tool) => ({\n\t\tfunction: {\n\t\t\tdescription: tool.description,\n\t\t\tname: tool.name,\n\t\t\tparameters: tool.input_schema\n\t\t},\n\t\ttype: 'function'\n\t}));\n\nconst convertMessage = (msg: AIProviderStreamParams['messages'][number]): OllamaMessage[] => {\n\tif (typeof msg.content === 'string') {\n\t\treturn [{ content: msg.content, role: msg.role }];\n\t}\n\n\tconst results: OllamaMessage[] = [];\n\tconst toolUseBlocks = msg.content.filter((block) => block.type === 'tool_use');\n\tconst toolResultBlocks = msg.content.filter((block) => block.type === 'tool_result');\n\n\tif (toolUseBlocks.length > 0) {\n\t\tresults.push({\n\t\t\tcontent: '',\n\t\t\trole: 'assistant',\n\t\t\ttool_calls: toolUseBlocks.map((block) => ({\n\t\t\t\tfunction: {\n\t\t\t\t\targuments: typeof block.input === 'object' && block.input !== null\n\t\t\t\t\t\t? block.input as Record<string, unknown>\n\t\t\t\t\t\t: {},\n\t\t\t\t\tname: block.name\n\t\t\t\t}\n\t\t\t}))\n\t\t});\n\t}\n\n\tfor (const block of toolResultBlocks) {\n\t\tresults.push({\n\t\t\tcontent: typeof block.content === 'string' ? block.content : '',\n\t\t\trole: 'tool'\n\t\t});\n\t}\n\n\treturn results;\n};\n\nconst buildRequestBody = (params: AIProviderStreamParams) => {\n\tconst messages: OllamaMessage[] = params.messages.flatMap(convertMessage);\n\n\tif (params.systemPrompt) {\n\t\tmessages.unshift({ content: params.systemPrompt, role: 'system' });\n\t}\n\n\tconst body: Record<string, unknown> = {\n\t\tmessages,\n\t\tmodel: params.model,\n\t\tstream: true\n\t};\n\n\tif (params.tools && params.tools.length > 0) {\n\t\tbody.tools = mapToolDefinitions(params.tools);\n\t}\n\n\treturn body;\n};\n\nconst isRecord = (val: unknown): val is Record<string, unknown> =>\n\tval !== null && typeof val === 'object' && !Array.isArray(val);\n\nconst tryParseJSON = (text: string) => {\n\ttry {\n\t\tconst result: unknown = JSON.parse(text);\n\t\tif (isRecord(result)) {\n\t\t\treturn result;\n\t\t}\n\n\t\treturn null;\n\t} catch {\n\t\treturn null;\n\t}\n};\n\nconst buildDoneChunk = (parsed: Record<string, unknown>): AIDoneChunk => {\n\tconst promptEvalCount =\n\t\ttypeof parsed.prompt_eval_count === 'number'\n\t\t\t? parsed.prompt_eval_count\n\t\t\t: undefined;\n\tconst evalCount =\n\t\ttypeof parsed.eval_count === 'number' ? parsed.eval_count : undefined;\n\tconst totalDuration =\n\t\ttypeof parsed.total_duration === 'number'\n\t\t\t? parsed.total_duration\n\t\t\t: undefined;\n\n\tconst hasTokenCounts =\n\t\tpromptEvalCount !== undefined || evalCount !== undefined;\n\tif (hasTokenCounts) {\n\t\treturn {\n\t\t\ttype: 'done',\n\t\t\tusage: {\n\t\t\t\tinputTokens: promptEvalCount ?? ZERO_TOKENS,\n\t\t\t\toutputTokens: evalCount ?? ZERO_TOKENS\n\t\t\t}\n\t\t};\n\t}\n\n\tif (totalDuration !== undefined) {\n\t\treturn {\n\t\t\ttype: 'done',\n\t\t\tusage: { inputTokens: ZERO_TOKENS, outputTokens: ZERO_TOKENS }\n\t\t};\n\t}\n\n\treturn { type: 'done' };\n};\n\nconst buildTextChunk = (content: string): AIChunk => ({\n\tcontent,\n\ttype: 'text'\n});\n\nconst extractToolCalls = (message: Record<string, unknown>): AIChunk[] => {\n\tconst toolCalls = message.tool_calls;\n\n\tif (!Array.isArray(toolCalls) || toolCalls.length === 0) {\n\t\treturn [];\n\t}\n\n\treturn toolCalls\n\t\t.filter(isRecord)\n\t\t.filter((tc) => isRecord(tc.function))\n\t\t.map((tc) => {\n\t\t\tconst func = tc.function as Record<string, unknown>;\n\n\t\t\treturn {\n\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\tinput: func.arguments ?? {},\n\t\t\t\tname: typeof func.name === 'string' ? func.name : '',\n\t\t\t\ttype: 'tool_use' as const\n\t\t\t};\n\t\t});\n};\n\nconst extractChunks = (parsed: Record<string, unknown>): AIChunk[] => {\n\tconst { message } = parsed;\n\n\tif (!isRecord(message)) {\n\t\treturn [];\n\t}\n\n\tconst toolChunks = extractToolCalls(message);\n\n\tif (toolChunks.length > 0) {\n\t\treturn toolChunks;\n\t}\n\n\tconst { content } = message;\n\n\tif (typeof content !== 'string' || !content) {\n\t\treturn [];\n\t}\n\n\treturn [buildTextChunk(content)];\n};\n\nconst extractTextChunk = (parsed: Record<string, unknown>) => {\n\tconst { message } = parsed;\n\tif (!isRecord(message)) {\n\t\treturn null;\n\t}\n\n\tconst { content } = message;\n\tif (typeof content !== 'string' || !content) {\n\t\treturn null;\n\t}\n\n\treturn buildTextChunk(content);\n};\n\nconst processLine = (line: string): AIChunk[] => {\n\tconst trimmed = line.trim();\n\n\tif (!trimmed) {\n\t\treturn [];\n\t}\n\n\tconst parsed = tryParseJSON(trimmed);\n\n\tif (!parsed) {\n\t\treturn [];\n\t}\n\n\tif (parsed.done === true) {\n\t\treturn [buildDoneChunk(parsed)];\n\t}\n\n\treturn extractChunks(parsed);\n};\n\nconst processBufferedLines = (lines: string[]) =>\n\tlines.flatMap(processLine);\n\nconst readStreamChunks = async (\n\treader: ReadableStreamDefaultReader<Uint8Array>,\n\tdecoder: TextDecoder,\n\tbuffer: string,\n\tsignal?: AbortSignal\n) => {\n\tconst emptyChunks: AIChunk[] = [];\n\n\tif (signal?.aborted) {\n\t\treturn {\n\t\t\tallChunks: emptyChunks,\n\t\t\tcurrentBuffer: buffer,\n\t\t\tfinished: true\n\t\t};\n\t}\n\n\tconst result = await reader.read();\n\tconst { done, value } = result;\n\n\tif (done) {\n\t\treturn {\n\t\t\tallChunks: emptyChunks,\n\t\t\tcurrentBuffer: buffer,\n\t\t\tfinished: true\n\t\t};\n\t}\n\n\tconst currentBuffer = buffer + decoder.decode(value, { stream: true });\n\tconst lines = currentBuffer.split('\\n');\n\tconst remainder = lines.pop() ?? '';\n\tconst allChunks = processBufferedLines(lines);\n\tconst finished = allChunks.some((c) => c.type === 'done');\n\n\treturn { allChunks, currentBuffer: remainder, finished };\n};\n\nconst parseNDJSONStream = async function* (\n\tbody: ReadableStream<Uint8Array>,\n\tsignal?: AbortSignal\n) {\n\tconst reader = body.getReader();\n\n\ttry {\n\t\tyield* parseNDJSONStreamInner(reader, signal);\n\t} finally {\n\t\treader.releaseLock();\n\t}\n};\n\nconst parseNDJSONStreamInner = async function* (\n\treader: ReadableStreamDefaultReader<Uint8Array>,\n\tsignal?: AbortSignal\n) {\n\tconst decoder = new TextDecoder();\n\tlet buffer = '';\n\tlet done = false;\n\n\twhile (!done) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst result = await readStreamChunks(reader, decoder, buffer, signal);\n\t\tbuffer = result.currentBuffer;\n\t\tdone = result.finished;\n\n\t\tyield* result.allChunks;\n\t}\n\n\tyield DONE_CHUNK;\n};\n\nconst fetchAndStream = async function* (\n\tbaseUrl: string,\n\tparams: AIProviderStreamParams\n) {\n\tconst requestBody = buildRequestBody(params);\n\n\tconst response = await fetch(`${baseUrl}/api/chat`, {\n\t\tbody: JSON.stringify(requestBody),\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tmethod: 'POST',\n\t\tsignal: params.signal\n\t});\n\n\tif (!response.ok) {\n\t\tconst errorText = await response.text();\n\t\tthrow new Error(`Ollama API error ${response.status}: ${errorText}`);\n\t}\n\n\tif (!response.body) {\n\t\tthrow new Error('Ollama API returned no response body');\n\t}\n\n\tyield* parseNDJSONStream(response.body, params.signal);\n};\n\nexport const ollama = (config: OllamaConfig = {}): AIProviderConfig => {\n\tconst baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n\n\treturn {\n\t\tstream: (params: AIProviderStreamParams) =>\n\t\t\tfetchAndStream(baseUrl, params)\n\t};\n};\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "BE23827957FF8E3C64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/package.json
CHANGED