@holokai/holo-provider-ollama 0.1.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.
- package/LICENSE +21 -0
- package/README.md +750 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.d.ts +3 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +136 -0
- package/dist/manifest.js.map +1 -0
- package/dist/ollama.auditor.d.ts +22 -0
- package/dist/ollama.auditor.d.ts.map +1 -0
- package/dist/ollama.auditor.js +151 -0
- package/dist/ollama.auditor.js.map +1 -0
- package/dist/ollama.provider.d.ts +14 -0
- package/dist/ollama.provider.d.ts.map +1 -0
- package/dist/ollama.provider.js +88 -0
- package/dist/ollama.provider.js.map +1 -0
- package/dist/ollama.response.factory.d.ts +7 -0
- package/dist/ollama.response.factory.d.ts.map +1 -0
- package/dist/ollama.response.factory.js +9 -0
- package/dist/ollama.response.factory.js.map +1 -0
- package/dist/ollama.translator.d.ts +22 -0
- package/dist/ollama.translator.d.ts.map +1 -0
- package/dist/ollama.translator.js +90 -0
- package/dist/ollama.translator.js.map +1 -0
- package/dist/ollama.wire.adapter.d.ts +6 -0
- package/dist/ollama.wire.adapter.d.ts.map +1 -0
- package/dist/ollama.wire.adapter.js +11 -0
- package/dist/ollama.wire.adapter.js.map +1 -0
- package/dist/plugin.d.ts +19 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +57 -0
- package/dist/plugin.js.map +1 -0
- package/dist/translators/index.d.ts +9 -0
- package/dist/translators/index.d.ts.map +1 -0
- package/dist/translators/index.js +9 -0
- package/dist/translators/index.js.map +1 -0
- package/dist/translators/ollama.chat.request.translator.d.ts +20 -0
- package/dist/translators/ollama.chat.request.translator.d.ts.map +1 -0
- package/dist/translators/ollama.chat.request.translator.js +100 -0
- package/dist/translators/ollama.chat.request.translator.js.map +1 -0
- package/dist/translators/ollama.chat.response.translator.d.ts +22 -0
- package/dist/translators/ollama.chat.response.translator.d.ts.map +1 -0
- package/dist/translators/ollama.chat.response.translator.js +127 -0
- package/dist/translators/ollama.chat.response.translator.js.map +1 -0
- package/dist/translators/ollama.generate.request.translator.d.ts +13 -0
- package/dist/translators/ollama.generate.request.translator.d.ts.map +1 -0
- package/dist/translators/ollama.generate.request.translator.js +90 -0
- package/dist/translators/ollama.generate.request.translator.js.map +1 -0
- package/dist/translators/ollama.generate.response.translator.d.ts +20 -0
- package/dist/translators/ollama.generate.response.translator.d.ts.map +1 -0
- package/dist/translators/ollama.generate.response.translator.js +104 -0
- package/dist/translators/ollama.generate.response.translator.js.map +1 -0
- package/dist/translators/ollama.message.translators.d.ts +14 -0
- package/dist/translators/ollama.message.translators.d.ts.map +1 -0
- package/dist/translators/ollama.message.translators.js +117 -0
- package/dist/translators/ollama.message.translators.js.map +1 -0
- package/dist/translators/ollama.options.translators.d.ts +11 -0
- package/dist/translators/ollama.options.translators.d.ts.map +1 -0
- package/dist/translators/ollama.options.translators.js +37 -0
- package/dist/translators/ollama.options.translators.js.map +1 -0
- package/dist/translators/ollama.tool.translators.d.ts +13 -0
- package/dist/translators/ollama.tool.translators.d.ts.map +1 -0
- package/dist/translators/ollama.tool.translators.js +62 -0
- package/dist/translators/ollama.tool.translators.js.map +1 -0
- package/dist/translators/streaming/index.d.ts +5 -0
- package/dist/translators/streaming/index.d.ts.map +1 -0
- package/dist/translators/streaming/index.js +5 -0
- package/dist/translators/streaming/index.js.map +1 -0
- package/dist/translators/streaming/ollama.content.delta.translator.d.ts +14 -0
- package/dist/translators/streaming/ollama.content.delta.translator.d.ts.map +1 -0
- package/dist/translators/streaming/ollama.content.delta.translator.js +76 -0
- package/dist/translators/streaming/ollama.content.delta.translator.js.map +1 -0
- package/dist/translators/streaming/ollama.message.delta.translator.d.ts +15 -0
- package/dist/translators/streaming/ollama.message.delta.translator.d.ts.map +1 -0
- package/dist/translators/streaming/ollama.message.delta.translator.js +116 -0
- package/dist/translators/streaming/ollama.message.delta.translator.js.map +1 -0
- package/dist/translators/streaming/ollama.message.stop.translator.d.ts +16 -0
- package/dist/translators/streaming/ollama.message.stop.translator.d.ts.map +1 -0
- package/dist/translators/streaming/ollama.message.stop.translator.js +87 -0
- package/dist/translators/streaming/ollama.message.stop.translator.js.map +1 -0
- package/dist/translators/streaming/ollama.stream.translator.d.ts +20 -0
- package/dist/translators/streaming/ollama.stream.translator.d.ts.map +1 -0
- package/dist/translators/streaming/ollama.stream.translator.js +82 -0
- package/dist/translators/streaming/ollama.stream.translator.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/request.types.d.ts +13 -0
- package/dist/types/request.types.d.ts.map +1 -0
- package/dist/types/request.types.js +8 -0
- package/dist/types/request.types.js.map +1 -0
- package/dist/types/response.types.d.ts +40 -0
- package/dist/types/response.types.d.ts.map +1 -0
- package/dist/types/response.types.js +9 -0
- package/dist/types/response.types.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import 'reflect-metadata';
|
|
11
|
+
import { injectable } from 'tsyringe';
|
|
12
|
+
import { pickDefined } from "@holokai/sdk";
|
|
13
|
+
import { BaseTranslator } from "@holokai/sdk/provider";
|
|
14
|
+
/**
|
|
15
|
+
* Translator for Ollama Generate API responses.
|
|
16
|
+
* Uses `response: string` and `context: number[]` (context omitted when reconstructing from Holo).
|
|
17
|
+
*/
|
|
18
|
+
let OllamaGenerateResponseTranslator = class OllamaGenerateResponseTranslator extends BaseTranslator {
|
|
19
|
+
holoDefaults = {};
|
|
20
|
+
providerDefaults = {};
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
}
|
|
24
|
+
async fromHoloImpl(source) {
|
|
25
|
+
const firstMessage = source.messages?.[0];
|
|
26
|
+
const responseText = typeof firstMessage?.content === 'string'
|
|
27
|
+
? firstMessage.content
|
|
28
|
+
: Array.isArray(firstMessage?.content)
|
|
29
|
+
? firstMessage.content.map(c => c.type === 'text' ? c.text : '').join('')
|
|
30
|
+
: '';
|
|
31
|
+
const usage = source.usage ? this.mapUsageFromHolo(source.usage) : {};
|
|
32
|
+
return pickDefined({
|
|
33
|
+
model: source.model,
|
|
34
|
+
created_at: source.created instanceof Date ? source.created : new Date(source.created ?? Date.now()),
|
|
35
|
+
response: responseText,
|
|
36
|
+
done: true,
|
|
37
|
+
done_reason: this.mapFinishReasonFromHolo(source.finish_reason),
|
|
38
|
+
...usage
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async toHoloImpl(source) {
|
|
42
|
+
const usage = this.mapUsageToHolo(source);
|
|
43
|
+
const message = {
|
|
44
|
+
role: 'assistant',
|
|
45
|
+
content: source.response
|
|
46
|
+
};
|
|
47
|
+
return pickDefined({
|
|
48
|
+
model: source.model,
|
|
49
|
+
created: source.created_at,
|
|
50
|
+
messages: [message],
|
|
51
|
+
finish_reason: this.mapFinishReasonToHolo(source.done_reason),
|
|
52
|
+
usage
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
mapUsageFromHolo(usage) {
|
|
56
|
+
if (!usage)
|
|
57
|
+
return {};
|
|
58
|
+
const t = usage.timings ?? {};
|
|
59
|
+
return pickDefined({
|
|
60
|
+
prompt_eval_count: usage.input_tokens,
|
|
61
|
+
eval_count: usage.output_tokens,
|
|
62
|
+
total_duration: t.total,
|
|
63
|
+
load_duration: t.load,
|
|
64
|
+
prompt_eval_duration: t.prompt_eval,
|
|
65
|
+
eval_duration: t.eval,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
mapUsageToHolo(resp) {
|
|
69
|
+
const timings = pickDefined({
|
|
70
|
+
total: resp.total_duration,
|
|
71
|
+
load: resp.load_duration,
|
|
72
|
+
prompt_eval: resp.prompt_eval_duration,
|
|
73
|
+
eval: resp.eval_duration,
|
|
74
|
+
});
|
|
75
|
+
const usage = pickDefined({
|
|
76
|
+
input_tokens: resp.prompt_eval_count,
|
|
77
|
+
output_tokens: resp.eval_count,
|
|
78
|
+
total_tokens: resp.prompt_eval_count != null && resp.eval_count != null
|
|
79
|
+
? resp.prompt_eval_count + resp.eval_count
|
|
80
|
+
: undefined,
|
|
81
|
+
timings: Object.keys(timings).length ? timings : undefined,
|
|
82
|
+
});
|
|
83
|
+
return Object.keys(usage).length ? usage : undefined;
|
|
84
|
+
}
|
|
85
|
+
// ---------- Finish reason mapping ----------
|
|
86
|
+
mapFinishReasonFromHolo(reason) {
|
|
87
|
+
if (reason === 'length')
|
|
88
|
+
return 'length';
|
|
89
|
+
return 'stop';
|
|
90
|
+
}
|
|
91
|
+
mapFinishReasonToHolo(reason) {
|
|
92
|
+
if (reason === 'length')
|
|
93
|
+
return 'length';
|
|
94
|
+
if (reason === 'stop')
|
|
95
|
+
return 'stop';
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
OllamaGenerateResponseTranslator = __decorate([
|
|
100
|
+
injectable(),
|
|
101
|
+
__metadata("design:paramtypes", [])
|
|
102
|
+
], OllamaGenerateResponseTranslator);
|
|
103
|
+
export { OllamaGenerateResponseTranslator };
|
|
104
|
+
//# sourceMappingURL=ollama.generate.response.translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.generate.response.translator.js","sourceRoot":"","sources":["../../src/translators/ollama.generate.response.translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { OllamaMessage } from "../types";
|
|
3
|
+
import { BaseTranslator } from "@holokai/sdk/provider";
|
|
4
|
+
import { HoloMessage } from "@holokai/sdk";
|
|
5
|
+
export declare class OllamaMessageTranslator extends BaseTranslator<HoloMessage, OllamaMessage> {
|
|
6
|
+
protected holoDefaults: Partial<HoloMessage>;
|
|
7
|
+
protected providerDefaults: Partial<OllamaMessage>;
|
|
8
|
+
constructor();
|
|
9
|
+
protected fromHoloImpl(source: HoloMessage): Promise<Partial<OllamaMessage>>;
|
|
10
|
+
protected toHoloImpl(target: OllamaMessage): Promise<Partial<HoloMessage>>;
|
|
11
|
+
private extractContentAndImages;
|
|
12
|
+
private buildHoloContent;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=ollama.message.translators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.message.translators.d.ts","sourceRoot":"","sources":["../../src/translators/ollama.message.translators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAc,WAAW,EAA4C,MAAM,cAAc,CAAC;AAEjG,qBACa,uBAAwB,SAAQ,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC;IACnF,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAClD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAM;;cAMxC,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;cAsBlE,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IA4BhF,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,gBAAgB;CAuB3B"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import 'reflect-metadata';
|
|
11
|
+
import { injectable } from 'tsyringe';
|
|
12
|
+
import { BaseTranslator } from "@holokai/sdk/provider";
|
|
13
|
+
import { isUint8Array, pickDefined, uint8ToDataUrl } from "@holokai/sdk";
|
|
14
|
+
let OllamaMessageTranslator = class OllamaMessageTranslator extends BaseTranslator {
|
|
15
|
+
holoDefaults = {};
|
|
16
|
+
providerDefaults = {};
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
}
|
|
20
|
+
async fromHoloImpl(source) {
|
|
21
|
+
const { content, images } = this.extractContentAndImages(source.content);
|
|
22
|
+
const tool_calls = source.tool_calls?.flatMap(tc => {
|
|
23
|
+
const name = tc.function?.name;
|
|
24
|
+
if (!name)
|
|
25
|
+
return [];
|
|
26
|
+
return [{
|
|
27
|
+
function: {
|
|
28
|
+
name,
|
|
29
|
+
arguments: tc.function.arguments ?? {},
|
|
30
|
+
},
|
|
31
|
+
}];
|
|
32
|
+
});
|
|
33
|
+
return pickDefined({
|
|
34
|
+
role: source.role,
|
|
35
|
+
content,
|
|
36
|
+
images,
|
|
37
|
+
tool_calls,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
async toHoloImpl(target) {
|
|
41
|
+
const role = target.role === "assistant" || target.role === "user" || target.role === "tool"
|
|
42
|
+
? target.role
|
|
43
|
+
: "user";
|
|
44
|
+
const content = this.buildHoloContent(target.content, target.images);
|
|
45
|
+
const tool_calls = target.tool_calls?.flatMap((tc, idx) => {
|
|
46
|
+
const name = tc.function?.name;
|
|
47
|
+
if (!name)
|
|
48
|
+
return [];
|
|
49
|
+
return [{
|
|
50
|
+
id: `${name}#${idx}`,
|
|
51
|
+
type: "function",
|
|
52
|
+
function: {
|
|
53
|
+
name,
|
|
54
|
+
arguments: tc.function?.arguments ?? {},
|
|
55
|
+
},
|
|
56
|
+
}];
|
|
57
|
+
});
|
|
58
|
+
return pickDefined({
|
|
59
|
+
role,
|
|
60
|
+
content,
|
|
61
|
+
tool_calls,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
extractContentAndImages(content) {
|
|
65
|
+
if (typeof content === "string") {
|
|
66
|
+
const text = content.trim();
|
|
67
|
+
return text ? { content: text } : {};
|
|
68
|
+
}
|
|
69
|
+
let hasText = false;
|
|
70
|
+
const texts = [];
|
|
71
|
+
const images = [];
|
|
72
|
+
for (const part of content) {
|
|
73
|
+
if (part.type === "text") {
|
|
74
|
+
const t = part.text.trim();
|
|
75
|
+
if (t) {
|
|
76
|
+
hasText = true;
|
|
77
|
+
texts.push(t);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else if (part.type === "image") {
|
|
81
|
+
images.push(part.url);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return pickDefined({
|
|
85
|
+
content: hasText ? texts.join("\n") : undefined,
|
|
86
|
+
images: images.length ? images : undefined,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
buildHoloContent(content, images) {
|
|
90
|
+
const contentParts = [];
|
|
91
|
+
if (content) {
|
|
92
|
+
contentParts.push({ type: "text", text: String(content) });
|
|
93
|
+
}
|
|
94
|
+
if (Array.isArray(images) && images.length) {
|
|
95
|
+
for (const img of images) {
|
|
96
|
+
if (typeof img === "string") {
|
|
97
|
+
contentParts.push({ type: "image", url: img });
|
|
98
|
+
}
|
|
99
|
+
else if (isUint8Array(img)) {
|
|
100
|
+
contentParts.push({ type: "image", url: uint8ToDataUrl(img) });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (!contentParts.length)
|
|
105
|
+
return "";
|
|
106
|
+
if (contentParts.length === 1 && contentParts[0].type === "text") {
|
|
107
|
+
return contentParts[0].text;
|
|
108
|
+
}
|
|
109
|
+
return contentParts;
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
OllamaMessageTranslator = __decorate([
|
|
113
|
+
injectable(),
|
|
114
|
+
__metadata("design:paramtypes", [])
|
|
115
|
+
], OllamaMessageTranslator);
|
|
116
|
+
export { OllamaMessageTranslator };
|
|
117
|
+
//# sourceMappingURL=ollama.message.translators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.message.translators.js","sourceRoot":"","sources":["../../src/translators/ollama.message.translators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { OllamaOptions } from "../types";
|
|
3
|
+
import { BaseTranslator, HoloRequest } from "@holokai/sdk";
|
|
4
|
+
export declare class OllamaOptionsTranslator extends BaseTranslator<HoloRequest, OllamaOptions> {
|
|
5
|
+
protected holoDefaults: Partial<HoloRequest>;
|
|
6
|
+
protected providerDefaults: Partial<OllamaOptions>;
|
|
7
|
+
constructor();
|
|
8
|
+
protected fromHoloImpl(source: HoloRequest): Promise<Partial<OllamaOptions>>;
|
|
9
|
+
protected toHoloImpl(source: OllamaOptions): Promise<Partial<HoloRequest>>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=ollama.options.translators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.options.translators.d.ts","sourceRoot":"","sources":["../../src/translators/ollama.options.translators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAC,cAAc,EAAE,WAAW,EAAc,MAAM,cAAc,CAAC;AAEtE,qBACa,uBAAwB,SAAQ,cAAc,CAAC,WAAW,EAAE,aAAa,CAAC;IACnF,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAM;IAClD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAM;;cAMxC,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;cAOlE,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;CAMnF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import 'reflect-metadata';
|
|
11
|
+
import { injectable } from 'tsyringe';
|
|
12
|
+
import { BaseTranslator, pickDefined } from "@holokai/sdk";
|
|
13
|
+
let OllamaOptionsTranslator = class OllamaOptionsTranslator extends BaseTranslator {
|
|
14
|
+
holoDefaults = {};
|
|
15
|
+
providerDefaults = {};
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
}
|
|
19
|
+
async fromHoloImpl(source) {
|
|
20
|
+
return pickDefined({
|
|
21
|
+
num_predict: source.max_tokens,
|
|
22
|
+
stop: source.stop_sequences?.length ? source.stop_sequences : undefined
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
async toHoloImpl(source) {
|
|
26
|
+
return pickDefined({
|
|
27
|
+
max_tokens: source.num_predict,
|
|
28
|
+
stop_sequences: Array.isArray(source.stop) && source.stop.length ? source.stop : undefined
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
OllamaOptionsTranslator = __decorate([
|
|
33
|
+
injectable(),
|
|
34
|
+
__metadata("design:paramtypes", [])
|
|
35
|
+
], OllamaOptionsTranslator);
|
|
36
|
+
export { OllamaOptionsTranslator };
|
|
37
|
+
//# sourceMappingURL=ollama.options.translators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.options.translators.js","sourceRoot":"","sources":["../../src/translators/ollama.options.translators.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,cAAc,EAAe,WAAW,EAAC,MAAM,cAAc,CAAC;AAG/D,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,cAA0C;IACzE,YAAY,GAAyB,EAAE,CAAC;IACxC,gBAAgB,GAA2B,EAAE,CAAC;IAExD;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,MAAmB;QAC5C,OAAO,WAAW,CAAC;YACf,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;SAC1E,CAA2B,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,MAAqB;QAC5C,OAAO,WAAW,CAAC;YACf,UAAU,EAAE,MAAM,CAAC,WAAW;YAC9B,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SAC7F,CAAyB,CAAC;IAC/B,CAAC;CACJ,CAAA;AArBY,uBAAuB;IADnC,UAAU,EAAE;;GACA,uBAAuB,CAqBnC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { OllamaTool } from "../types";
|
|
3
|
+
import { BaseTranslator, HoloTool } from "@holokai/sdk";
|
|
4
|
+
export declare class OllamaToolTranslator extends BaseTranslator<HoloTool, OllamaTool> {
|
|
5
|
+
protected holoDefaults: Partial<HoloTool>;
|
|
6
|
+
protected providerDefaults: Partial<OllamaTool>;
|
|
7
|
+
constructor();
|
|
8
|
+
protected toHoloImpl(source: OllamaTool): Promise<Partial<HoloTool>>;
|
|
9
|
+
protected fromHoloImpl(source: HoloTool): Promise<Partial<OllamaTool>>;
|
|
10
|
+
private createJsonSchemaParameters;
|
|
11
|
+
private extractParametersFromSchema;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=ollama.tool.translators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.tool.translators.d.ts","sourceRoot":"","sources":["../../src/translators/ollama.tool.translators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAc,MAAM,cAAc,CAAC;AAEnE,qBACa,oBAAqB,SAAQ,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC1E,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAM;IAC/C,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAM;;cAMrC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;cAW1D,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAY5E,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,2BAA2B;CAUtC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import 'reflect-metadata';
|
|
11
|
+
import { injectable } from 'tsyringe';
|
|
12
|
+
import { BaseTranslator, pickDefined } from "@holokai/sdk";
|
|
13
|
+
let OllamaToolTranslator = class OllamaToolTranslator extends BaseTranslator {
|
|
14
|
+
holoDefaults = {};
|
|
15
|
+
providerDefaults = {};
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
}
|
|
19
|
+
async toHoloImpl(source) {
|
|
20
|
+
const fn = source.function;
|
|
21
|
+
// Guard + normalize
|
|
22
|
+
const name = (fn?.name ?? "").toString();
|
|
23
|
+
const description = typeof fn?.description === "string" ? fn.description : undefined;
|
|
24
|
+
const parameters = this.extractParametersFromSchema(fn?.parameters);
|
|
25
|
+
return pickDefined({ name, description, parameters });
|
|
26
|
+
}
|
|
27
|
+
async fromHoloImpl(source) {
|
|
28
|
+
const parameters = this.createJsonSchemaParameters(source.parameters);
|
|
29
|
+
return pickDefined({
|
|
30
|
+
type: "function", // what you emit
|
|
31
|
+
function: pickDefined({
|
|
32
|
+
name: source.name,
|
|
33
|
+
description: source.description,
|
|
34
|
+
parameters, // normalized for downstream
|
|
35
|
+
}),
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
createJsonSchemaParameters(parameters) {
|
|
39
|
+
if (!parameters || Object.keys(parameters).length === 0) {
|
|
40
|
+
return { type: "object", properties: {}, required: [] };
|
|
41
|
+
}
|
|
42
|
+
if (typeof parameters === "object" && "type" in parameters) {
|
|
43
|
+
return parameters;
|
|
44
|
+
}
|
|
45
|
+
return { type: "object", properties: parameters, required: [] };
|
|
46
|
+
}
|
|
47
|
+
extractParametersFromSchema(parameters) {
|
|
48
|
+
if (!parameters || typeof parameters !== "object")
|
|
49
|
+
return undefined;
|
|
50
|
+
// If JSON Schema object with properties, return properties; else pass object through
|
|
51
|
+
// (mirrors original behavior)
|
|
52
|
+
return "properties" in parameters
|
|
53
|
+
? (parameters.properties ?? {})
|
|
54
|
+
: parameters;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
OllamaToolTranslator = __decorate([
|
|
58
|
+
injectable(),
|
|
59
|
+
__metadata("design:paramtypes", [])
|
|
60
|
+
], OllamaToolTranslator);
|
|
61
|
+
export { OllamaToolTranslator };
|
|
62
|
+
//# sourceMappingURL=ollama.tool.translators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.tool.translators.js","sourceRoot":"","sources":["../../src/translators/ollama.tool.translators.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,cAAc,EAAY,WAAW,EAAC,MAAM,cAAc,CAAC;AAG5D,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,cAAoC;IAChE,YAAY,GAAsB,EAAE,CAAC;IACrC,gBAAgB,GAAwB,EAAE,CAAC;IAErD;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,MAAkB;QACzC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;QAE3B,oBAAoB;QACpB,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,OAAO,EAAE,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,MAAM,UAAU,GAAG,IAAI,CAAC,2BAA2B,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAEpE,OAAO,WAAW,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAC,CAAsB,CAAC;IAC7E,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,MAAgB;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtE,OAAO,WAAW,CAAC;YACf,IAAI,EAAE,UAAmB,EAAkB,gBAAgB;YAC3D,QAAQ,EAAE,WAAW,CAAC;gBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,UAAU,EAA+B,4BAA4B;aACxE,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IAEO,0BAA0B,CAC9B,UAA+C;QAE/C,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAc,EAAC,CAAC;QACtE,CAAC;QACD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;YACzD,OAAO,UAAqC,CAAC;QACjD,CAAC;QACD,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAc,EAAC,CAAC;IAC9E,CAAC;IAEO,2BAA2B,CAC/B,UAAmB;QAEnB,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACpE,qFAAqF;QACrF,8BAA8B;QAC9B,OAAO,YAAY,IAAK,UAAkB;YACtC,CAAC,CAAC,CAAE,UAAkB,CAAC,UAAU,IAAI,EAAE,CAAC;YACxC,CAAC,CAAE,UAAsC,CAAC;IAClD,CAAC;CACJ,CAAA;AArDY,oBAAoB;IADhC,UAAU,EAAE;;GACA,oBAAoB,CAqDhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/translators/streaming/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { OllamaChatResponse, OllamaGenerateResponse } from '../../types';
|
|
3
|
+
import { StreamTranslator } from "@holokai/sdk/provider";
|
|
4
|
+
import { HoloStreamChunk } from "@holokai/sdk";
|
|
5
|
+
type OllamaStreamResponse = Partial<OllamaChatResponse> | Partial<OllamaGenerateResponse>;
|
|
6
|
+
export declare class OllamaContentDeltaTranslator extends StreamTranslator<HoloStreamChunk, OllamaStreamResponse> {
|
|
7
|
+
protected holoDefaults: Partial<HoloStreamChunk>;
|
|
8
|
+
protected providerDefaults: Partial<OllamaStreamResponse>;
|
|
9
|
+
constructor();
|
|
10
|
+
protected toHoloManyImpl(source: OllamaStreamResponse): Promise<Partial<HoloStreamChunk>[]>;
|
|
11
|
+
protected fromHoloManyImpl(source: HoloStreamChunk): Promise<Partial<OllamaStreamResponse>[]>;
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=ollama.content.delta.translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.content.delta.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/ollama.content.delta.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AACvE,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,eAAe,EAAc,MAAM,cAAc,CAAC;AAE1D,KAAK,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAE1F,qBACa,4BAA6B,SAAQ,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC;IACrG,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAM;;cAM/C,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;cA4BjF,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;CA2BtG"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import 'reflect-metadata';
|
|
11
|
+
import { injectable } from 'tsyringe';
|
|
12
|
+
import { StreamTranslator } from "@holokai/sdk/provider";
|
|
13
|
+
import { pickDefined } from "@holokai/sdk";
|
|
14
|
+
let OllamaContentDeltaTranslator = class OllamaContentDeltaTranslator extends StreamTranslator {
|
|
15
|
+
holoDefaults = {};
|
|
16
|
+
providerDefaults = {};
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
}
|
|
20
|
+
async toHoloManyImpl(source) {
|
|
21
|
+
// Stateless - just map content if present
|
|
22
|
+
// Determine if this is a chat or generate response
|
|
23
|
+
const isChat = 'message' in source;
|
|
24
|
+
// Extract text content based on format
|
|
25
|
+
const content = isChat
|
|
26
|
+
? source.message?.content
|
|
27
|
+
: source.response;
|
|
28
|
+
// Only emit if there's actual text content
|
|
29
|
+
if (typeof content === 'string' && content.length > 0) {
|
|
30
|
+
return [{
|
|
31
|
+
delta: {
|
|
32
|
+
provider: 'ollama',
|
|
33
|
+
type: 'content_delta',
|
|
34
|
+
delta: {
|
|
35
|
+
content: content
|
|
36
|
+
},
|
|
37
|
+
provider_delta: source
|
|
38
|
+
}
|
|
39
|
+
}];
|
|
40
|
+
}
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
async fromHoloManyImpl(source) {
|
|
44
|
+
const d = source.delta;
|
|
45
|
+
if (!d || d.type !== 'content_delta')
|
|
46
|
+
return [];
|
|
47
|
+
if (typeof d.delta?.content === 'string') {
|
|
48
|
+
// Need context to know if this should be chat or generate format
|
|
49
|
+
// Check for role to determine format
|
|
50
|
+
if (d.delta?.role) {
|
|
51
|
+
// Chat format
|
|
52
|
+
return [pickDefined({
|
|
53
|
+
message: {
|
|
54
|
+
role: 'assistant',
|
|
55
|
+
content: d.delta.content
|
|
56
|
+
},
|
|
57
|
+
done: false
|
|
58
|
+
})];
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// Generate format
|
|
62
|
+
return [pickDefined({
|
|
63
|
+
response: d.delta.content,
|
|
64
|
+
done: false
|
|
65
|
+
})];
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
OllamaContentDeltaTranslator = __decorate([
|
|
72
|
+
injectable(),
|
|
73
|
+
__metadata("design:paramtypes", [])
|
|
74
|
+
], OllamaContentDeltaTranslator);
|
|
75
|
+
export { OllamaContentDeltaTranslator };
|
|
76
|
+
//# sourceMappingURL=ollama.content.delta.translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.content.delta.translator.js","sourceRoot":"","sources":["../../../src/translators/streaming/ollama.content.delta.translator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAkB,WAAW,EAAC,MAAM,cAAc,CAAC;AAKnD,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,gBAAuD;IAC3F,YAAY,GAA6B,EAAE,CAAC;IAC5C,gBAAgB,GAAkC,EAAE,CAAC;IAE/D;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,MAA4B;QACvD,0CAA0C;QAE1C,mDAAmD;QACnD,MAAM,MAAM,GAAG,SAAS,IAAI,MAAM,CAAC;QAEnC,uCAAuC;QACvC,MAAM,OAAO,GAAG,MAAM;YAClB,CAAC,CAAE,MAAc,CAAC,OAAO,EAAE,OAAO;YAClC,CAAC,CAAE,MAAc,CAAC,QAAQ,CAAC;QAE/B,2CAA2C;QAC3C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC;oBACJ,KAAK,EAAE;wBACH,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,eAAwB;wBAC9B,KAAK,EAAE;4BACH,OAAO,EAAE,OAAO;yBACnB;wBACD,cAAc,EAAE,MAAM;qBACzB;iBACJ,CAAC,CAAC;QACP,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,MAAuB;QACpD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe;YAAE,OAAO,EAAE,CAAC;QAEhD,IAAI,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,iEAAiE;YACjE,qCAAqC;YACrC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;gBAChB,cAAc;gBACd,OAAO,CAAC,WAAW,CAAC;wBAChB,OAAO,EAAE;4BACL,IAAI,EAAE,WAAoB;4BAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;yBAC3B;wBACD,IAAI,EAAE,KAAK;qBACd,CAAkC,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACJ,kBAAkB;gBAClB,OAAO,CAAC,WAAW,CAAC;wBAChB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;wBACzB,IAAI,EAAE,KAAK;qBACd,CAAkC,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAA;AA/DY,4BAA4B;IADxC,UAAU,EAAE;;GACA,4BAA4B,CA+DxC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { OllamaChatResponse, OllamaGenerateResponse } from '../../types';
|
|
3
|
+
import { HoloStreamChunk } from "@holokai/sdk";
|
|
4
|
+
import { StreamTranslator } from "@holokai/sdk/provider";
|
|
5
|
+
type OllamaStreamResponse = Partial<OllamaChatResponse> | Partial<OllamaGenerateResponse>;
|
|
6
|
+
export declare class OllamaMessageDeltaTranslator extends StreamTranslator<HoloStreamChunk, OllamaStreamResponse> {
|
|
7
|
+
protected holoDefaults: Partial<HoloStreamChunk>;
|
|
8
|
+
protected providerDefaults: Partial<OllamaStreamResponse>;
|
|
9
|
+
constructor();
|
|
10
|
+
protected toHoloManyImpl(source: OllamaStreamResponse): Promise<Partial<HoloStreamChunk>[]>;
|
|
11
|
+
protected fromHoloManyImpl(source: HoloStreamChunk): Promise<Partial<OllamaStreamResponse>[]>;
|
|
12
|
+
private mapOllamaFinishReason;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=ollama.message.delta.translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama.message.delta.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/ollama.message.delta.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAC,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AACvE,OAAO,EAAmB,eAAe,EAAc,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD,KAAK,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAE1F,qBACa,4BAA6B,SAAQ,gBAAgB,CAAC,eAAe,EAAE,oBAAoB,CAAC;IACrG,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAM;;cAM/C,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;cAiDjF,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;IAqCnG,OAAO,CAAC,qBAAqB;CAchC"}
|