@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.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +750 -0
  3. package/dist/index.d.ts +17 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +17 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/manifest.d.ts +3 -0
  8. package/dist/manifest.d.ts.map +1 -0
  9. package/dist/manifest.js +136 -0
  10. package/dist/manifest.js.map +1 -0
  11. package/dist/ollama.auditor.d.ts +22 -0
  12. package/dist/ollama.auditor.d.ts.map +1 -0
  13. package/dist/ollama.auditor.js +151 -0
  14. package/dist/ollama.auditor.js.map +1 -0
  15. package/dist/ollama.provider.d.ts +14 -0
  16. package/dist/ollama.provider.d.ts.map +1 -0
  17. package/dist/ollama.provider.js +88 -0
  18. package/dist/ollama.provider.js.map +1 -0
  19. package/dist/ollama.response.factory.d.ts +7 -0
  20. package/dist/ollama.response.factory.d.ts.map +1 -0
  21. package/dist/ollama.response.factory.js +9 -0
  22. package/dist/ollama.response.factory.js.map +1 -0
  23. package/dist/ollama.translator.d.ts +22 -0
  24. package/dist/ollama.translator.d.ts.map +1 -0
  25. package/dist/ollama.translator.js +90 -0
  26. package/dist/ollama.translator.js.map +1 -0
  27. package/dist/ollama.wire.adapter.d.ts +6 -0
  28. package/dist/ollama.wire.adapter.d.ts.map +1 -0
  29. package/dist/ollama.wire.adapter.js +11 -0
  30. package/dist/ollama.wire.adapter.js.map +1 -0
  31. package/dist/plugin.d.ts +19 -0
  32. package/dist/plugin.d.ts.map +1 -0
  33. package/dist/plugin.js +57 -0
  34. package/dist/plugin.js.map +1 -0
  35. package/dist/translators/index.d.ts +9 -0
  36. package/dist/translators/index.d.ts.map +1 -0
  37. package/dist/translators/index.js +9 -0
  38. package/dist/translators/index.js.map +1 -0
  39. package/dist/translators/ollama.chat.request.translator.d.ts +20 -0
  40. package/dist/translators/ollama.chat.request.translator.d.ts.map +1 -0
  41. package/dist/translators/ollama.chat.request.translator.js +100 -0
  42. package/dist/translators/ollama.chat.request.translator.js.map +1 -0
  43. package/dist/translators/ollama.chat.response.translator.d.ts +22 -0
  44. package/dist/translators/ollama.chat.response.translator.d.ts.map +1 -0
  45. package/dist/translators/ollama.chat.response.translator.js +127 -0
  46. package/dist/translators/ollama.chat.response.translator.js.map +1 -0
  47. package/dist/translators/ollama.generate.request.translator.d.ts +13 -0
  48. package/dist/translators/ollama.generate.request.translator.d.ts.map +1 -0
  49. package/dist/translators/ollama.generate.request.translator.js +90 -0
  50. package/dist/translators/ollama.generate.request.translator.js.map +1 -0
  51. package/dist/translators/ollama.generate.response.translator.d.ts +20 -0
  52. package/dist/translators/ollama.generate.response.translator.d.ts.map +1 -0
  53. package/dist/translators/ollama.generate.response.translator.js +104 -0
  54. package/dist/translators/ollama.generate.response.translator.js.map +1 -0
  55. package/dist/translators/ollama.message.translators.d.ts +14 -0
  56. package/dist/translators/ollama.message.translators.d.ts.map +1 -0
  57. package/dist/translators/ollama.message.translators.js +117 -0
  58. package/dist/translators/ollama.message.translators.js.map +1 -0
  59. package/dist/translators/ollama.options.translators.d.ts +11 -0
  60. package/dist/translators/ollama.options.translators.d.ts.map +1 -0
  61. package/dist/translators/ollama.options.translators.js +37 -0
  62. package/dist/translators/ollama.options.translators.js.map +1 -0
  63. package/dist/translators/ollama.tool.translators.d.ts +13 -0
  64. package/dist/translators/ollama.tool.translators.d.ts.map +1 -0
  65. package/dist/translators/ollama.tool.translators.js +62 -0
  66. package/dist/translators/ollama.tool.translators.js.map +1 -0
  67. package/dist/translators/streaming/index.d.ts +5 -0
  68. package/dist/translators/streaming/index.d.ts.map +1 -0
  69. package/dist/translators/streaming/index.js +5 -0
  70. package/dist/translators/streaming/index.js.map +1 -0
  71. package/dist/translators/streaming/ollama.content.delta.translator.d.ts +14 -0
  72. package/dist/translators/streaming/ollama.content.delta.translator.d.ts.map +1 -0
  73. package/dist/translators/streaming/ollama.content.delta.translator.js +76 -0
  74. package/dist/translators/streaming/ollama.content.delta.translator.js.map +1 -0
  75. package/dist/translators/streaming/ollama.message.delta.translator.d.ts +15 -0
  76. package/dist/translators/streaming/ollama.message.delta.translator.d.ts.map +1 -0
  77. package/dist/translators/streaming/ollama.message.delta.translator.js +116 -0
  78. package/dist/translators/streaming/ollama.message.delta.translator.js.map +1 -0
  79. package/dist/translators/streaming/ollama.message.stop.translator.d.ts +16 -0
  80. package/dist/translators/streaming/ollama.message.stop.translator.d.ts.map +1 -0
  81. package/dist/translators/streaming/ollama.message.stop.translator.js +87 -0
  82. package/dist/translators/streaming/ollama.message.stop.translator.js.map +1 -0
  83. package/dist/translators/streaming/ollama.stream.translator.d.ts +20 -0
  84. package/dist/translators/streaming/ollama.stream.translator.d.ts.map +1 -0
  85. package/dist/translators/streaming/ollama.stream.translator.js +82 -0
  86. package/dist/translators/streaming/ollama.stream.translator.js.map +1 -0
  87. package/dist/types/index.d.ts +6 -0
  88. package/dist/types/index.d.ts.map +1 -0
  89. package/dist/types/index.js +11 -0
  90. package/dist/types/index.js.map +1 -0
  91. package/dist/types/request.types.d.ts +13 -0
  92. package/dist/types/request.types.d.ts.map +1 -0
  93. package/dist/types/request.types.js +8 -0
  94. package/dist/types/request.types.js.map +1 -0
  95. package/dist/types/response.types.d.ts +40 -0
  96. package/dist/types/response.types.d.ts.map +1 -0
  97. package/dist/types/response.types.js +9 -0
  98. package/dist/types/response.types.js.map +1 -0
  99. 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":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAA2B,YAAY,EAAE,WAAW,EAAE,cAAc,EAAC,MAAM,cAAc,CAAC;AAG1F,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,MAAM,EAAC,OAAO,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE;YAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC/B,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC;oBACJ,QAAQ,EAAE;wBACN,IAAI;wBACJ,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE;qBACzC;iBACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;YACf,IAAI,EAAE,MAAM,CAAC,IAA6B;YAC1C,OAAO;YACP,MAAM;YACN,UAAU;SACb,CAA2B,CAAC;IACjC,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,MAAqB;QAC5C,MAAM,IAAI,GACN,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;YAC3E,CAAC,CAAC,MAAM,CAAC,IAAI;YACb,CAAC,CAAC,MAAM,CAAC;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAErE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC/B,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YACrB,OAAO,CAAC;oBACJ,EAAE,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE;oBACpB,IAAI,EAAE,UAAmB;oBACzB,QAAQ,EAAE;wBACN,IAAI;wBACJ,SAAS,EAAG,EAAE,CAAC,QAAQ,EAAE,SAAqC,IAAI,EAAE;qBACvE;iBACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;YACf,IAAI;YACJ,OAAO;YACP,UAAU;SACb,CAAyB,CAAC;IAC/B,CAAC;IAEO,uBAAuB,CAAC,OAA+B;QAC3D,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACvB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,CAAC,EAAE,CAAC;oBACJ,OAAO,GAAG,IAAI,CAAC;oBACf,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC;YACf,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC7C,CAA2B,CAAC;IACjC,CAAC;IAEO,gBAAgB,CAAC,OAAgB,EAAE,MAAgC;QACvE,MAAM,YAAY,GAAkB,EAAE,CAAC;QAEvC,IAAI,OAAO,EAAE,CAAC;YACV,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC1B,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAC,CAAC,CAAC;gBACjD,CAAC;qBAAM,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3B,YAAY,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC;gBACjE,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACpC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/D,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChC,CAAC;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;CACJ,CAAA;AA7GY,uBAAuB;IADnC,UAAU,EAAE;;GACA,uBAAuB,CA6GnC"}
@@ -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,5 @@
1
+ export * from './ollama.content.delta.translator';
2
+ export * from './ollama.message.delta.translator';
3
+ export * from './ollama.message.stop.translator';
4
+ export * from './ollama.stream.translator';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -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,5 @@
1
+ export * from './ollama.content.delta.translator';
2
+ export * from './ollama.message.delta.translator';
3
+ export * from './ollama.message.stop.translator';
4
+ export * from './ollama.stream.translator';
5
+ //# sourceMappingURL=index.js.map
@@ -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"}