@holokai/holo-provider-gemini 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gemini.auditor.d.ts +24 -0
- package/dist/gemini.auditor.d.ts.map +1 -0
- package/dist/gemini.auditor.js +117 -0
- package/dist/gemini.auditor.js.map +1 -0
- package/dist/gemini.pricing.d.ts +3 -0
- package/dist/gemini.pricing.d.ts.map +1 -0
- package/dist/gemini.pricing.js +251 -0
- package/dist/gemini.pricing.js.map +1 -0
- package/dist/gemini.provider.d.ts +18 -0
- package/dist/gemini.provider.d.ts.map +1 -0
- package/dist/gemini.provider.js +112 -0
- package/dist/gemini.provider.js.map +1 -0
- package/dist/gemini.response.factory.d.ts +42 -0
- package/dist/gemini.response.factory.d.ts.map +1 -0
- package/dist/gemini.response.factory.js +94 -0
- package/dist/gemini.response.factory.js.map +1 -0
- package/dist/gemini.translator.d.ts +28 -0
- package/dist/gemini.translator.d.ts.map +1 -0
- package/dist/gemini.translator.js +74 -0
- package/dist/gemini.translator.js.map +1 -0
- package/dist/gemini.wire.adapter.d.ts +5 -0
- package/dist/gemini.wire.adapter.d.ts.map +1 -0
- package/dist/gemini.wire.adapter.js +7 -0
- package/dist/gemini.wire.adapter.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -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 +13 -0
- package/dist/manifest.js.map +1 -0
- package/dist/plugin.d.ts +46 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +104 -0
- package/dist/plugin.js.map +1 -0
- package/dist/translators/gemini.content.translator.d.ts +12 -0
- package/dist/translators/gemini.content.translator.d.ts.map +1 -0
- package/dist/translators/gemini.content.translator.js +67 -0
- package/dist/translators/gemini.content.translator.js.map +1 -0
- package/dist/translators/gemini.message.translator.d.ts +14 -0
- package/dist/translators/gemini.message.translator.d.ts.map +1 -0
- package/dist/translators/gemini.message.translator.js +115 -0
- package/dist/translators/gemini.message.translator.js.map +1 -0
- package/dist/translators/gemini.request.translator.d.ts +24 -0
- package/dist/translators/gemini.request.translator.d.ts.map +1 -0
- package/dist/translators/gemini.request.translator.js +112 -0
- package/dist/translators/gemini.request.translator.js.map +1 -0
- package/dist/translators/gemini.response.content.translator.d.ts +12 -0
- package/dist/translators/gemini.response.content.translator.d.ts.map +1 -0
- package/dist/translators/gemini.response.content.translator.js +40 -0
- package/dist/translators/gemini.response.content.translator.js.map +1 -0
- package/dist/translators/gemini.response.message.translator.d.ts +14 -0
- package/dist/translators/gemini.response.message.translator.d.ts.map +1 -0
- package/dist/translators/gemini.response.message.translator.js +90 -0
- package/dist/translators/gemini.response.message.translator.js.map +1 -0
- package/dist/translators/gemini.response.translator.d.ts +16 -0
- package/dist/translators/gemini.response.translator.d.ts.map +1 -0
- package/dist/translators/gemini.response.translator.js +70 -0
- package/dist/translators/gemini.response.translator.js.map +1 -0
- package/dist/translators/gemini.tool.translator.d.ts +19 -0
- package/dist/translators/gemini.tool.translator.d.ts.map +1 -0
- package/dist/translators/gemini.tool.translator.js +84 -0
- package/dist/translators/gemini.tool.translator.js.map +1 -0
- package/dist/translators/gemini.usage.translator.d.ts +12 -0
- package/dist/translators/gemini.usage.translator.d.ts.map +1 -0
- package/dist/translators/gemini.usage.translator.js +45 -0
- package/dist/translators/gemini.usage.translator.js.map +1 -0
- package/dist/translators/index.d.ts +10 -0
- package/dist/translators/index.d.ts.map +1 -0
- package/dist/translators/index.js +10 -0
- package/dist/translators/index.js.map +1 -0
- package/dist/translators/streaming/gemini.content.delta.translator.d.ts +12 -0
- package/dist/translators/streaming/gemini.content.delta.translator.d.ts.map +1 -0
- package/dist/translators/streaming/gemini.content.delta.translator.js +85 -0
- package/dist/translators/streaming/gemini.content.delta.translator.js.map +1 -0
- package/dist/translators/streaming/gemini.message.delta.translator.d.ts +14 -0
- package/dist/translators/streaming/gemini.message.delta.translator.d.ts.map +1 -0
- package/dist/translators/streaming/gemini.message.delta.translator.js +73 -0
- package/dist/translators/streaming/gemini.message.delta.translator.js.map +1 -0
- package/dist/translators/streaming/gemini.message.start.translator.d.ts +14 -0
- package/dist/translators/streaming/gemini.message.start.translator.d.ts.map +1 -0
- package/dist/translators/streaming/gemini.message.start.translator.js +62 -0
- package/dist/translators/streaming/gemini.message.start.translator.js.map +1 -0
- package/dist/translators/streaming/gemini.message.stop.translator.d.ts +12 -0
- package/dist/translators/streaming/gemini.message.stop.translator.d.ts.map +1 -0
- package/dist/translators/streaming/gemini.message.stop.translator.js +57 -0
- package/dist/translators/streaming/gemini.message.stop.translator.js.map +1 -0
- package/dist/translators/streaming/gemini.stream.translator.d.ts +22 -0
- package/dist/translators/streaming/gemini.stream.translator.d.ts.map +1 -0
- package/dist/translators/streaming/gemini.stream.translator.js +90 -0
- package/dist/translators/streaming/gemini.stream.translator.js.map +1 -0
- package/dist/translators/streaming/index.d.ts +6 -0
- package/dist/translators/streaming/index.d.ts.map +1 -0
- package/dist/translators/streaming/index.js +6 -0
- package/dist/translators/streaming/index.js.map +1 -0
- package/dist/utils/finish.reason.mapper.d.ts +4 -0
- package/dist/utils/finish.reason.mapper.d.ts.map +1 -0
- package/dist/utils/finish.reason.mapper.js +25 -0
- package/dist/utils/finish.reason.mapper.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,84 @@
|
|
|
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 { pickDefined } from "@holokai/sdk";
|
|
14
|
+
import { FunctionCallingConfigMode } from "@google/genai";
|
|
15
|
+
let GeminiToolTranslator = class GeminiToolTranslator extends BaseTranslator {
|
|
16
|
+
holoDefaults = {};
|
|
17
|
+
providerDefaults = {};
|
|
18
|
+
constructor() {
|
|
19
|
+
super();
|
|
20
|
+
}
|
|
21
|
+
async fromHoloImpl(source) {
|
|
22
|
+
return pickDefined({
|
|
23
|
+
name: source.name,
|
|
24
|
+
description: source.description,
|
|
25
|
+
parameters: source.parameters ?? { type: "OBJECT", properties: {} }
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async toHoloImpl(source) {
|
|
29
|
+
return pickDefined({
|
|
30
|
+
name: source.name,
|
|
31
|
+
description: source.description,
|
|
32
|
+
parameters: source.parameters
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
GeminiToolTranslator = __decorate([
|
|
37
|
+
injectable(),
|
|
38
|
+
__metadata("design:paramtypes", [])
|
|
39
|
+
], GeminiToolTranslator);
|
|
40
|
+
export { GeminiToolTranslator };
|
|
41
|
+
let GeminiToolChoiceTranslator = class GeminiToolChoiceTranslator extends BaseTranslator {
|
|
42
|
+
holoDefaults = {};
|
|
43
|
+
providerDefaults = {};
|
|
44
|
+
constructor() {
|
|
45
|
+
super();
|
|
46
|
+
}
|
|
47
|
+
async fromHoloImpl(source) {
|
|
48
|
+
switch (source.type) {
|
|
49
|
+
case 'auto':
|
|
50
|
+
return { mode: FunctionCallingConfigMode.AUTO };
|
|
51
|
+
case 'none':
|
|
52
|
+
return { mode: FunctionCallingConfigMode.NONE };
|
|
53
|
+
case 'required':
|
|
54
|
+
return { mode: FunctionCallingConfigMode.ANY };
|
|
55
|
+
case 'specific':
|
|
56
|
+
return pickDefined({
|
|
57
|
+
mode: FunctionCallingConfigMode.ANY,
|
|
58
|
+
allowedFunctionNames: source.name ? [source.name] : undefined
|
|
59
|
+
});
|
|
60
|
+
default:
|
|
61
|
+
return { mode: FunctionCallingConfigMode.AUTO };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async toHoloImpl(source) {
|
|
65
|
+
switch (source.mode) {
|
|
66
|
+
case 'NONE':
|
|
67
|
+
return { type: 'none' };
|
|
68
|
+
case 'ANY':
|
|
69
|
+
if (source.allowedFunctionNames?.length) {
|
|
70
|
+
return { type: 'specific', name: source.allowedFunctionNames[0] };
|
|
71
|
+
}
|
|
72
|
+
return { type: 'required' };
|
|
73
|
+
case 'AUTO':
|
|
74
|
+
default:
|
|
75
|
+
return { type: 'auto' };
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
GeminiToolChoiceTranslator = __decorate([
|
|
80
|
+
injectable(),
|
|
81
|
+
__metadata("design:paramtypes", [])
|
|
82
|
+
], GeminiToolChoiceTranslator);
|
|
83
|
+
export { GeminiToolChoiceTranslator };
|
|
84
|
+
//# sourceMappingURL=gemini.tool.translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.tool.translator.js","sourceRoot":"","sources":["../../src/translators/gemini.tool.translator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAC,yBAAyB,EAAC,MAAM,eAAe,CAAC;AAIjD,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,cAA6C;IACzE,YAAY,GAAsB,EAAE,CAAC;IACrC,gBAAgB,GAAiC,EAAE,CAAC;IAE9D;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,MAAgB;QACzC,OAAO,WAAW,CAAC;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAC;SACpE,CAAiC,CAAC;IACvC,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,MAA2B;QAClD,OAAO,WAAW,CAAC;YACf,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;SAChC,CAAsB,CAAC;IAC5B,CAAC;CACJ,CAAA;AAvBY,oBAAoB;IADhC,UAAU,EAAE;;GACA,oBAAoB,CAuBhC;;AAGM,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,cAAqD;IACvF,YAAY,GAA4B,EAAE,CAAC;IAC3C,gBAAgB,GAAmC,EAAE,CAAC;IAEhE;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,MAAsB;QAC/C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM;gBACP,OAAO,EAAC,IAAI,EAAE,yBAAyB,CAAC,IAAI,EAAC,CAAC;YAClD,KAAK,MAAM;gBACP,OAAO,EAAC,IAAI,EAAE,yBAAyB,CAAC,IAAI,EAAC,CAAC;YAClD,KAAK,UAAU;gBACX,OAAO,EAAC,IAAI,EAAE,yBAAyB,CAAC,GAAG,EAAC,CAAC;YACjD,KAAK,UAAU;gBACX,OAAO,WAAW,CAAC;oBACf,IAAI,EAAE,yBAAyB,CAAC,GAAG;oBACnC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;iBAChE,CAAmC,CAAC;YACzC;gBACI,OAAO,EAAC,IAAI,EAAE,yBAAyB,CAAC,IAAI,EAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,MAA6B;QACpD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,MAAM;gBACP,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;YAC1B,KAAK,KAAK;gBACN,IAAI,MAAM,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAC;oBACtC,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAC,CAAC;gBACpE,CAAC;gBACD,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;YAC9B,KAAK,MAAM,CAAC;YACZ;gBACI,OAAO,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;QAC9B,CAAC;IACL,CAAC;CACJ,CAAA;AAxCY,0BAA0B;IADtC,UAAU,EAAE;;GACA,0BAA0B,CAwCtC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { BaseTranslator } from "@holokai/sdk/provider";
|
|
3
|
+
import type { HoloUsage } from "@holokai/types/holo";
|
|
4
|
+
import type { GenerateContentResponseUsageMetadata } from "@google/genai";
|
|
5
|
+
export declare class GeminiUsageTranslator extends BaseTranslator<HoloUsage, GenerateContentResponseUsageMetadata> {
|
|
6
|
+
protected holoDefaults: Partial<HoloUsage>;
|
|
7
|
+
protected providerDefaults: Partial<GenerateContentResponseUsageMetadata>;
|
|
8
|
+
constructor();
|
|
9
|
+
protected fromHoloImpl(source: HoloUsage): Promise<Partial<GenerateContentResponseUsageMetadata>>;
|
|
10
|
+
protected toHoloImpl(source: GenerateContentResponseUsageMetadata): Promise<Partial<HoloUsage>>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=gemini.usage.translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.usage.translator.d.ts","sourceRoot":"","sources":["../../src/translators/gemini.usage.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAC,oCAAoC,EAAC,MAAM,eAAe,CAAC;AAExE,qBACa,qBAAsB,SAAQ,cAAc,CAAC,SAAS,EAAE,oCAAoC,CAAC;IACtG,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,CAAM;IAChD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,oCAAoC,CAAC,CAAM;;cAM/D,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;cASvF,UAAU,CAAC,MAAM,EAAE,oCAAoC,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;CAWxG"}
|
|
@@ -0,0 +1,45 @@
|
|
|
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 { pickDefined } from "@holokai/sdk";
|
|
14
|
+
let GeminiUsageTranslator = class GeminiUsageTranslator extends BaseTranslator {
|
|
15
|
+
holoDefaults = {};
|
|
16
|
+
providerDefaults = {};
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
}
|
|
20
|
+
async fromHoloImpl(source) {
|
|
21
|
+
return pickDefined({
|
|
22
|
+
promptTokenCount: source.input_tokens,
|
|
23
|
+
candidatesTokenCount: source.output_tokens,
|
|
24
|
+
totalTokenCount: source.total_tokens,
|
|
25
|
+
cachedContentTokenCount: source.cache_read_tokens
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async toHoloImpl(source) {
|
|
29
|
+
return pickDefined({
|
|
30
|
+
input_tokens: source.promptTokenCount,
|
|
31
|
+
output_tokens: source.candidatesTokenCount,
|
|
32
|
+
total_tokens: source.totalTokenCount
|
|
33
|
+
?? (source.promptTokenCount && source.candidatesTokenCount
|
|
34
|
+
? source.promptTokenCount + source.candidatesTokenCount
|
|
35
|
+
: undefined),
|
|
36
|
+
cache_read_tokens: source.cachedContentTokenCount || undefined
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
GeminiUsageTranslator = __decorate([
|
|
41
|
+
injectable(),
|
|
42
|
+
__metadata("design:paramtypes", [])
|
|
43
|
+
], GeminiUsageTranslator);
|
|
44
|
+
export { GeminiUsageTranslator };
|
|
45
|
+
//# sourceMappingURL=gemini.usage.translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.usage.translator.js","sourceRoot":"","sources":["../../src/translators/gemini.usage.translator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAKlC,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,cAA+D;IAC5F,YAAY,GAAuB,EAAE,CAAC;IACtC,gBAAgB,GAAkD,EAAE,CAAC;IAE/E;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,MAAiB;QAC1C,OAAO,WAAW,CAAC;YACf,gBAAgB,EAAE,MAAM,CAAC,YAAY;YACrC,oBAAoB,EAAE,MAAM,CAAC,aAAa;YAC1C,eAAe,EAAE,MAAM,CAAC,YAAY;YACpC,uBAAuB,EAAE,MAAM,CAAC,iBAAiB;SACpD,CAAC,CAAC;IACP,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,MAA4C;QACnE,OAAO,WAAW,CAAC;YACf,YAAY,EAAE,MAAM,CAAC,gBAAgB;YACrC,aAAa,EAAE,MAAM,CAAC,oBAAoB;YAC1C,YAAY,EAAE,MAAM,CAAC,eAAe;mBAC7B,CAAC,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,oBAAoB;oBACtD,CAAC,CAAC,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB;oBACvD,CAAC,CAAC,SAAS,CAAC;YACpB,iBAAiB,EAAE,MAAM,CAAC,uBAAuB,IAAI,SAAS;SACjE,CAAuB,CAAC;IAC7B,CAAC;CACJ,CAAA;AA5BY,qBAAqB;IADjC,UAAU,EAAE;;GACA,qBAAqB,CA4BjC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './gemini.content.translator';
|
|
2
|
+
export * from './gemini.message.translator';
|
|
3
|
+
export * from './gemini.request.translator';
|
|
4
|
+
export * from './gemini.response.message.translator';
|
|
5
|
+
export * from './gemini.response.translator';
|
|
6
|
+
export * from './gemini.response.content.translator';
|
|
7
|
+
export * from './gemini.tool.translator';
|
|
8
|
+
export * from './gemini.usage.translator';
|
|
9
|
+
export * from './streaming';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/translators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './gemini.content.translator';
|
|
2
|
+
export * from './gemini.message.translator';
|
|
3
|
+
export * from './gemini.request.translator';
|
|
4
|
+
export * from './gemini.response.message.translator';
|
|
5
|
+
export * from './gemini.response.translator';
|
|
6
|
+
export * from './gemini.response.content.translator';
|
|
7
|
+
export * from './gemini.tool.translator';
|
|
8
|
+
export * from './gemini.usage.translator';
|
|
9
|
+
export * from './streaming';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/translators/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { HoloStreamChunk } from "@holokai/types/holo";
|
|
3
|
+
import { StreamTranslator } from "@holokai/sdk/provider";
|
|
4
|
+
import type { GenerateContentResponse } from "@google/genai";
|
|
5
|
+
export declare class GeminiContentDeltaTranslator extends StreamTranslator<HoloStreamChunk, GenerateContentResponse> {
|
|
6
|
+
protected holoDefaults: Partial<HoloStreamChunk>;
|
|
7
|
+
protected providerDefaults: Partial<GenerateContentResponse>;
|
|
8
|
+
constructor();
|
|
9
|
+
protected fromHoloManyImpl(source: HoloStreamChunk): Promise<Partial<GenerateContentResponse>[]>;
|
|
10
|
+
protected toHoloManyImpl(source: GenerateContentResponse): Promise<Partial<HoloStreamChunk>[]>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=gemini.content.delta.translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.content.delta.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/gemini.content.delta.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAE3D,qBACa,4BAA6B,SAAQ,gBAAgB,CAAC,eAAe,EAAE,uBAAuB,CAAC;IACxG,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAM;;cAMlD,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;cAmBtF,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;CA6CvG"}
|
|
@@ -0,0 +1,85 @@
|
|
|
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
|
+
let GeminiContentDeltaTranslator = class GeminiContentDeltaTranslator extends StreamTranslator {
|
|
14
|
+
holoDefaults = {};
|
|
15
|
+
providerDefaults = {};
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
}
|
|
19
|
+
async fromHoloManyImpl(source) {
|
|
20
|
+
const d = source.delta;
|
|
21
|
+
if (!d)
|
|
22
|
+
return [];
|
|
23
|
+
if (d.type === 'content_delta' && typeof d.delta?.content === 'string') {
|
|
24
|
+
return [{
|
|
25
|
+
candidates: [{
|
|
26
|
+
content: {
|
|
27
|
+
role: 'model',
|
|
28
|
+
parts: [{ text: d.delta.content }]
|
|
29
|
+
},
|
|
30
|
+
index: 0
|
|
31
|
+
}]
|
|
32
|
+
}];
|
|
33
|
+
}
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
async toHoloManyImpl(source) {
|
|
37
|
+
const out = [];
|
|
38
|
+
const candidate = source.candidates?.[0];
|
|
39
|
+
if (!candidate?.content?.parts)
|
|
40
|
+
return out;
|
|
41
|
+
for (const part of candidate.content.parts) {
|
|
42
|
+
if (part.text !== undefined) {
|
|
43
|
+
out.push({
|
|
44
|
+
delta: {
|
|
45
|
+
provider: 'gemini',
|
|
46
|
+
type: 'content_delta',
|
|
47
|
+
index: candidate.index ?? 0,
|
|
48
|
+
delta: {
|
|
49
|
+
content: part.text
|
|
50
|
+
},
|
|
51
|
+
provider_delta: source
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (part.functionCall) {
|
|
56
|
+
out.push({
|
|
57
|
+
delta: {
|
|
58
|
+
provider: 'gemini',
|
|
59
|
+
type: 'message_delta',
|
|
60
|
+
index: candidate.index ?? 0,
|
|
61
|
+
delta: {
|
|
62
|
+
role: 'assistant',
|
|
63
|
+
tool_calls: [{
|
|
64
|
+
id: part.functionCall.name || '',
|
|
65
|
+
type: 'function',
|
|
66
|
+
function: {
|
|
67
|
+
name: part.functionCall.name || '',
|
|
68
|
+
arguments: part.functionCall.args || {}
|
|
69
|
+
}
|
|
70
|
+
}]
|
|
71
|
+
},
|
|
72
|
+
provider_delta: source
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return out;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
GeminiContentDeltaTranslator = __decorate([
|
|
81
|
+
injectable(),
|
|
82
|
+
__metadata("design:paramtypes", [])
|
|
83
|
+
], GeminiContentDeltaTranslator);
|
|
84
|
+
export { GeminiContentDeltaTranslator };
|
|
85
|
+
//# sourceMappingURL=gemini.content.delta.translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.content.delta.translator.js","sourceRoot":"","sources":["../../../src/translators/streaming/gemini.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;AAIhD,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,gBAA0D;IAC9F,YAAY,GAA6B,EAAE,CAAC;IAC5C,gBAAgB,GAAqC,EAAE,CAAC;IAElE;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,MAAuB;QACpD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAElB,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrE,OAAO,CAAC;oBACJ,UAAU,EAAE,CAAC;4BACT,OAAO,EAAE;gCACL,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAC,CAAC;6BACnC;4BACD,KAAK,EAAE,CAAC;yBACX,CAAC;iBACL,CAAC,CAAC;QACP,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,MAA+B;QAC1D,MAAM,GAAG,GAA+B,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK;YAAE,OAAO,GAAG,CAAC;QAE3C,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC;oBACL,KAAK,EAAE;wBACH,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,eAAwB;wBAC9B,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;wBAC3B,KAAK,EAAE;4BACH,OAAO,EAAE,IAAI,CAAC,IAAI;yBACrB;wBACD,cAAc,EAAE,MAAM;qBACzB;iBACJ,CAAC,CAAC;YACP,CAAC;YAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC;oBACL,KAAK,EAAE;wBACH,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,eAAwB;wBAC9B,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;wBAC3B,KAAK,EAAE;4BACH,IAAI,EAAE,WAAoB;4BAC1B,UAAU,EAAE,CAAC;oCACT,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE;oCAChC,IAAI,EAAE,UAAmB;oCACzB,QAAQ,EAAE;wCACN,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE;wCAClC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAA+B,IAAI,EAAE;qCACrE;iCACJ,CAAC;yBACL;wBACD,cAAc,EAAE,MAAM;qBACzB;iBACJ,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;CACJ,CAAA;AAxEY,4BAA4B;IADxC,UAAU,EAAE;;GACA,4BAA4B,CAwExC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { HoloStreamChunk } from '@holokai/types/holo';
|
|
3
|
+
import { StreamTranslator } from "@holokai/sdk/provider";
|
|
4
|
+
import type { GenerateContentResponse } from "@google/genai";
|
|
5
|
+
import { GeminiUsageTranslator } from '../gemini.usage.translator';
|
|
6
|
+
export declare class GeminiMessageDeltaTranslator extends StreamTranslator<HoloStreamChunk, GenerateContentResponse> {
|
|
7
|
+
private readonly usageTranslator;
|
|
8
|
+
protected holoDefaults: Partial<HoloStreamChunk>;
|
|
9
|
+
protected providerDefaults: Partial<GenerateContentResponse>;
|
|
10
|
+
constructor(usageTranslator: GeminiUsageTranslator);
|
|
11
|
+
protected fromHoloManyImpl(source: HoloStreamChunk): Promise<Partial<GenerateContentResponse>[]>;
|
|
12
|
+
protected toHoloManyImpl(source: GenerateContentResponse): Promise<Partial<HoloStreamChunk>[]>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=gemini.message.delta.translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.message.delta.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/gemini.message.delta.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAEjE,qBACa,4BAA6B,SAAQ,gBAAgB,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAI5F,OAAO,CAAC,QAAQ,CAAC,eAAe;IAH5C,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAM;gBAErC,eAAe,EAAE,qBAAqB;cAInD,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;cA0BtF,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;CAsBvG"}
|
|
@@ -0,0 +1,73 @@
|
|
|
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 { toHoloFinishReason, toGeminiFinishReason } from '../../utils/finish.reason.mapper.js';
|
|
14
|
+
import { StreamTranslator } from "@holokai/sdk/provider";
|
|
15
|
+
import { GeminiUsageTranslator } from '../gemini.usage.translator';
|
|
16
|
+
let GeminiMessageDeltaTranslator = class GeminiMessageDeltaTranslator extends StreamTranslator {
|
|
17
|
+
usageTranslator;
|
|
18
|
+
holoDefaults = {};
|
|
19
|
+
providerDefaults = {};
|
|
20
|
+
constructor(usageTranslator) {
|
|
21
|
+
super();
|
|
22
|
+
this.usageTranslator = usageTranslator;
|
|
23
|
+
}
|
|
24
|
+
async fromHoloManyImpl(source) {
|
|
25
|
+
const d = source.delta;
|
|
26
|
+
if (!d || d.type !== 'message_delta')
|
|
27
|
+
return [];
|
|
28
|
+
const finishReason = toGeminiFinishReason(source.finish_reason ?? undefined);
|
|
29
|
+
const usage = d.usage
|
|
30
|
+
? pickDefined({
|
|
31
|
+
promptTokenCount: d.usage.input_tokens,
|
|
32
|
+
candidatesTokenCount: d.usage.output_tokens,
|
|
33
|
+
totalTokenCount: d.usage.total_tokens
|
|
34
|
+
})
|
|
35
|
+
: undefined;
|
|
36
|
+
if (!finishReason && !usage)
|
|
37
|
+
return [];
|
|
38
|
+
return [{
|
|
39
|
+
candidates: [{
|
|
40
|
+
content: { role: 'model', parts: [] },
|
|
41
|
+
...(finishReason ? { finishReason: finishReason } : {}),
|
|
42
|
+
index: 0
|
|
43
|
+
}],
|
|
44
|
+
...(usage ? { usageMetadata: usage } : {})
|
|
45
|
+
}];
|
|
46
|
+
}
|
|
47
|
+
async toHoloManyImpl(source) {
|
|
48
|
+
const candidate = source.candidates?.[0];
|
|
49
|
+
if (!candidate)
|
|
50
|
+
return [];
|
|
51
|
+
const usage = source.usageMetadata
|
|
52
|
+
? await this.usageTranslator.toHolo(source.usageMetadata)
|
|
53
|
+
: undefined;
|
|
54
|
+
const chunk = pickDefined({
|
|
55
|
+
delta: {
|
|
56
|
+
provider: 'gemini',
|
|
57
|
+
type: 'message_delta',
|
|
58
|
+
choice: 0,
|
|
59
|
+
delta: {},
|
|
60
|
+
usage: usage ?? undefined,
|
|
61
|
+
provider_delta: source
|
|
62
|
+
},
|
|
63
|
+
finish_reason: toHoloFinishReason(candidate.finishReason)
|
|
64
|
+
});
|
|
65
|
+
return [chunk];
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
GeminiMessageDeltaTranslator = __decorate([
|
|
69
|
+
injectable(),
|
|
70
|
+
__metadata("design:paramtypes", [GeminiUsageTranslator])
|
|
71
|
+
], GeminiMessageDeltaTranslator);
|
|
72
|
+
export { GeminiMessageDeltaTranslator };
|
|
73
|
+
//# sourceMappingURL=gemini.message.delta.translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.message.delta.translator.js","sourceRoot":"","sources":["../../../src/translators/streaming/gemini.message.delta.translator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAC,kBAAkB,EAAE,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AAC7F,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAG1D,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,gBAA0D;IAI3E;IAHnB,YAAY,GAA6B,EAAE,CAAC;IAC5C,gBAAgB,GAAqC,EAAE,CAAC;IAElE,YAA6B,eAAsC;QAC/D,KAAK,EAAE,CAAC;QADiB,oBAAe,GAAf,eAAe,CAAuB;IAEnE,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,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC;QAE7E,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK;YACjB,CAAC,CAAC,WAAW,CAAC;gBACV,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY;gBACtC,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa;gBAC3C,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY;aACxC,CAAC;YACF,CAAC,CAAC,SAAS,CAAC;QAEhB,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEvC,OAAO,CAAC;gBACJ,UAAU,EAAE,CAAC;wBACT,OAAO,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAC;wBACnC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAC,YAAY,EAAE,YAA4B,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrE,KAAK,EAAE,CAAC;qBACX,CAAC;gBACF,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,aAAa,EAAE,KAAY,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC,CAAC;IACP,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,MAA+B;QAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa;YAC9B,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;YACzD,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,KAAK,GAA6B,WAAW,CAAC;YAChD,KAAK,EAAE;gBACH,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,eAAwB;gBAC9B,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,KAAK,IAAI,SAAS;gBACzB,cAAc,EAAE,MAAM;aACzB;YACD,aAAa,EAAE,kBAAkB,CAAC,SAAS,CAAC,YAAkC,CAAC;SAClF,CAA6B,CAAC;QAE/B,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;CACJ,CAAA;AAxDY,4BAA4B;IADxC,UAAU,EAAE;qCAKqC,qBAAqB;GAJ1D,4BAA4B,CAwDxC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { GeminiUsageTranslator } from '../gemini.usage.translator';
|
|
3
|
+
import { StreamTranslator } from "@holokai/sdk/provider";
|
|
4
|
+
import type { HoloStreamChunk } from "@holokai/types/holo";
|
|
5
|
+
import type { GenerateContentResponse } from "@google/genai";
|
|
6
|
+
export declare class GeminiMessageStartTranslator extends StreamTranslator<HoloStreamChunk, GenerateContentResponse> {
|
|
7
|
+
private readonly usageTranslator;
|
|
8
|
+
protected holoDefaults: Partial<HoloStreamChunk>;
|
|
9
|
+
protected providerDefaults: Partial<GenerateContentResponse>;
|
|
10
|
+
constructor(usageTranslator: GeminiUsageTranslator);
|
|
11
|
+
protected fromHoloManyImpl(source: HoloStreamChunk): Promise<Partial<GenerateContentResponse>[]>;
|
|
12
|
+
protected toHoloManyImpl(source: GenerateContentResponse): Promise<Partial<HoloStreamChunk>[]>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=gemini.message.start.translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.message.start.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/gemini.message.start.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAE3D,qBACa,4BAA6B,SAAQ,gBAAgB,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAI5F,OAAO,CAAC,QAAQ,CAAC,eAAe;IAH5C,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAM;gBAErC,eAAe,EAAE,qBAAqB;cAInD,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;cAetF,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;CAoBvG"}
|
|
@@ -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 { v4 as uuidv4 } from 'uuid';
|
|
13
|
+
import { GeminiUsageTranslator } from '../gemini.usage.translator';
|
|
14
|
+
import { StreamTranslator } from "@holokai/sdk/provider";
|
|
15
|
+
let GeminiMessageStartTranslator = class GeminiMessageStartTranslator extends StreamTranslator {
|
|
16
|
+
usageTranslator;
|
|
17
|
+
holoDefaults = {};
|
|
18
|
+
providerDefaults = {};
|
|
19
|
+
constructor(usageTranslator) {
|
|
20
|
+
super();
|
|
21
|
+
this.usageTranslator = usageTranslator;
|
|
22
|
+
}
|
|
23
|
+
async fromHoloManyImpl(source) {
|
|
24
|
+
const d = source.delta;
|
|
25
|
+
if (!d || d.type !== 'message_start')
|
|
26
|
+
return [];
|
|
27
|
+
if (!source.model)
|
|
28
|
+
return [];
|
|
29
|
+
return [{
|
|
30
|
+
candidates: [{
|
|
31
|
+
content: { role: 'model', parts: [] },
|
|
32
|
+
index: 0
|
|
33
|
+
}],
|
|
34
|
+
modelVersion: source.model
|
|
35
|
+
}];
|
|
36
|
+
}
|
|
37
|
+
async toHoloManyImpl(source) {
|
|
38
|
+
const usage = source.usageMetadata
|
|
39
|
+
? await this.usageTranslator.toHolo(source.usageMetadata)
|
|
40
|
+
: null;
|
|
41
|
+
return [{
|
|
42
|
+
id: uuidv4(),
|
|
43
|
+
...(source.modelVersion ? { model: source.modelVersion } : {}),
|
|
44
|
+
delta: {
|
|
45
|
+
provider: 'gemini',
|
|
46
|
+
type: 'message_start',
|
|
47
|
+
choice: 0,
|
|
48
|
+
delta: {
|
|
49
|
+
role: 'assistant'
|
|
50
|
+
},
|
|
51
|
+
usage,
|
|
52
|
+
provider_delta: source
|
|
53
|
+
}
|
|
54
|
+
}];
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
GeminiMessageStartTranslator = __decorate([
|
|
58
|
+
injectable(),
|
|
59
|
+
__metadata("design:paramtypes", [GeminiUsageTranslator])
|
|
60
|
+
], GeminiMessageStartTranslator);
|
|
61
|
+
export { GeminiMessageStartTranslator };
|
|
62
|
+
//# sourceMappingURL=gemini.message.start.translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.message.start.translator.js","sourceRoot":"","sources":["../../../src/translators/streaming/gemini.message.start.translator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,EAAE,IAAI,MAAM,EAAC,MAAM,MAAM,CAAC;AAClC,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAKhD,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,gBAA0D;IAI3E;IAHnB,YAAY,GAA6B,EAAE,CAAC;IAC5C,gBAAgB,GAAqC,EAAE,CAAC;IAElE,YAA6B,eAAsC;QAC/D,KAAK,EAAE,CAAC;QADiB,oBAAe,GAAf,eAAe,CAAuB;IAEnE,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,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAE7B,OAAO,CAAC;gBACJ,UAAU,EAAE,CAAC;wBACT,OAAO,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAC;wBACnC,KAAK,EAAE,CAAC;qBACX,CAAC;gBACF,YAAY,EAAE,MAAM,CAAC,KAAK;aAC7B,CAAC,CAAC;IACP,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,MAA+B;QAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa;YAC9B,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC;QAEX,OAAO,CAAC;gBACJ,EAAE,EAAE,MAAM,EAAE;gBACZ,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,KAAK,EAAE;oBACH,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,eAAwB;oBAC9B,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE;wBACH,IAAI,EAAE,WAAoB;qBAC7B;oBACD,KAAK;oBACL,cAAc,EAAE,MAAM;iBACzB;aACJ,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AA3CY,4BAA4B;IADxC,UAAU,EAAE;qCAKqC,qBAAqB;GAJ1D,4BAA4B,CA2CxC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { HoloStreamChunk } from "@holokai/types/holo";
|
|
3
|
+
import { StreamTranslator } from "@holokai/sdk/provider";
|
|
4
|
+
import type { GenerateContentResponse } from "@google/genai";
|
|
5
|
+
export declare class GeminiMessageStopTranslator extends StreamTranslator<HoloStreamChunk, GenerateContentResponse> {
|
|
6
|
+
protected holoDefaults: Partial<HoloStreamChunk>;
|
|
7
|
+
protected providerDefaults: Partial<GenerateContentResponse>;
|
|
8
|
+
constructor();
|
|
9
|
+
protected fromHoloManyImpl(source: HoloStreamChunk): Promise<Partial<GenerateContentResponse>[]>;
|
|
10
|
+
protected toHoloManyImpl(source: GenerateContentResponse): Promise<Partial<HoloStreamChunk>[]>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=gemini.message.stop.translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.message.stop.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/gemini.message.stop.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAE3D,qBACa,2BAA4B,SAAQ,gBAAgB,CAAC,eAAe,EAAE,uBAAuB,CAAC;IACvG,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAM;;cAMlD,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;cAuBtF,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;CAWvG"}
|
|
@@ -0,0 +1,57 @@
|
|
|
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 { FinishReason } from "@google/genai";
|
|
14
|
+
let GeminiMessageStopTranslator = class GeminiMessageStopTranslator extends StreamTranslator {
|
|
15
|
+
holoDefaults = {};
|
|
16
|
+
providerDefaults = {};
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
}
|
|
20
|
+
async fromHoloManyImpl(source) {
|
|
21
|
+
const d = source.delta;
|
|
22
|
+
if (!d)
|
|
23
|
+
return [];
|
|
24
|
+
if (d.provider_delta) {
|
|
25
|
+
if (d.provider === 'gemini') {
|
|
26
|
+
return [d.provider_delta];
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (d.type === 'message_stop') {
|
|
30
|
+
return [{
|
|
31
|
+
candidates: [{
|
|
32
|
+
content: { role: 'model', parts: [] },
|
|
33
|
+
finishReason: FinishReason.STOP,
|
|
34
|
+
index: 0
|
|
35
|
+
}]
|
|
36
|
+
}];
|
|
37
|
+
}
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
async toHoloManyImpl(source) {
|
|
41
|
+
return [{
|
|
42
|
+
delta: {
|
|
43
|
+
provider: 'gemini',
|
|
44
|
+
type: 'message_stop',
|
|
45
|
+
delta: {},
|
|
46
|
+
provider_delta: source
|
|
47
|
+
},
|
|
48
|
+
done: true
|
|
49
|
+
}];
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
GeminiMessageStopTranslator = __decorate([
|
|
53
|
+
injectable(),
|
|
54
|
+
__metadata("design:paramtypes", [])
|
|
55
|
+
], GeminiMessageStopTranslator);
|
|
56
|
+
export { GeminiMessageStopTranslator };
|
|
57
|
+
//# sourceMappingURL=gemini.message.stop.translator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.message.stop.translator.js","sourceRoot":"","sources":["../../../src/translators/streaming/gemini.message.stop.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,EAAC,YAAY,EAAC,MAAM,eAAe,CAAC;AAIpC,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,gBAA0D;IAC7F,YAAY,GAA6B,EAAE,CAAC;IAC5C,gBAAgB,GAAqC,EAAE,CAAC;IAElE;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,MAAuB;QACpD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAElB,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5B,OAAO,CAAC;oBACJ,UAAU,EAAE,CAAC;4BACT,OAAO,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAC;4BACnC,YAAY,EAAE,YAAY,CAAC,IAAI;4BAC/B,KAAK,EAAE,CAAC;yBACX,CAAC;iBACL,CAAC,CAAC;QACP,CAAC;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,MAA+B;QAC1D,OAAO,CAAC;gBACJ,KAAK,EAAE;oBACH,QAAQ,EAAE,QAAQ;oBAClB,IAAI,EAAE,cAAuB;oBAC7B,KAAK,EAAE,EAAE;oBACT,cAAc,EAAE,MAAM;iBACzB;gBACD,IAAI,EAAE,IAAI;aACb,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AA1CY,2BAA2B;IADvC,UAAU,EAAE;;GACA,2BAA2B,CA0CvC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { GeminiMessageStartTranslator } from './gemini.message.start.translator';
|
|
3
|
+
import { GeminiMessageDeltaTranslator } from './gemini.message.delta.translator';
|
|
4
|
+
import { GeminiMessageStopTranslator } from './gemini.message.stop.translator';
|
|
5
|
+
import { GeminiContentDeltaTranslator } from './gemini.content.delta.translator';
|
|
6
|
+
import { StreamTranslator } from "@holokai/sdk/provider";
|
|
7
|
+
import type { HoloStreamChunk } from "@holokai/types/holo";
|
|
8
|
+
import type { GenerateContentResponse } from "@google/genai";
|
|
9
|
+
export declare class GeminiStreamTranslator extends StreamTranslator<HoloStreamChunk, GenerateContentResponse> {
|
|
10
|
+
private readonly messageStartTranslator;
|
|
11
|
+
private readonly messageDeltaTranslator;
|
|
12
|
+
private readonly messageStopTranslator;
|
|
13
|
+
private readonly contentDeltaTranslator;
|
|
14
|
+
protected holoDefaults: Partial<HoloStreamChunk>;
|
|
15
|
+
protected providerDefaults: Partial<GenerateContentResponse>;
|
|
16
|
+
private isFirstChunk;
|
|
17
|
+
private hasEmittedStop;
|
|
18
|
+
constructor(messageStartTranslator: GeminiMessageStartTranslator, messageDeltaTranslator: GeminiMessageDeltaTranslator, messageStopTranslator: GeminiMessageStopTranslator, contentDeltaTranslator: GeminiContentDeltaTranslator);
|
|
19
|
+
protected toHoloManyImpl(source: GenerateContentResponse): Promise<Partial<HoloStreamChunk>[]>;
|
|
20
|
+
protected fromHoloManyImpl(source: HoloStreamChunk): Promise<Partial<GenerateContentResponse>[]>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=gemini.stream.translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini.stream.translator.d.ts","sourceRoot":"","sources":["../../../src/translators/streaming/gemini.stream.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAG1B,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAE/E,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAE3D,qBACa,sBAAuB,SAAQ,gBAAgB,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAQ9F,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IAV3C,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAM;IACtD,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAM;IAElE,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,cAAc,CAAS;gBAGV,sBAAsB,EAAE,4BAA4B,EACpD,sBAAsB,EAAE,4BAA4B,EACpD,qBAAqB,EAAE,2BAA2B,EAClD,sBAAsB,EAAE,4BAA4B;cAKzD,cAAc,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;cAyBpF,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;CAmCzG"}
|