@holokai/holo-provider-gemini 1.3.1 → 1.4.4
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/README.md +153 -0
- package/dist/gemini.auditor.d.ts +8 -5
- package/dist/gemini.auditor.d.ts.map +1 -1
- package/dist/gemini.auditor.js +46 -30
- package/dist/gemini.auditor.js.map +1 -1
- package/dist/gemini.pricing.d.ts +1 -1
- package/dist/gemini.pricing.d.ts.map +1 -1
- package/dist/gemini.provider.d.ts +4 -2
- package/dist/gemini.provider.d.ts.map +1 -1
- package/dist/gemini.provider.js +51 -6
- package/dist/gemini.provider.js.map +1 -1
- package/dist/gemini.response.factory.d.ts +2 -2
- package/dist/gemini.response.factory.d.ts.map +1 -1
- package/dist/gemini.response.factory.js +1 -1
- package/dist/gemini.response.factory.js.map +1 -1
- package/dist/gemini.translator.d.ts +9 -3
- package/dist/gemini.translator.d.ts.map +1 -1
- package/dist/gemini.translator.js +18 -1
- package/dist/gemini.translator.js.map +1 -1
- package/dist/gemini.wire.adapter.d.ts +1 -1
- package/dist/gemini.wire.adapter.d.ts.map +1 -1
- package/dist/gemini.wire.adapter.js +1 -1
- package/dist/gemini.wire.adapter.js.map +1 -1
- package/dist/manifest.d.ts +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +3 -5
- package/dist/manifest.js.map +1 -1
- package/dist/plugin.d.ts +9 -8
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +16 -5
- package/dist/plugin.js.map +1 -1
- package/dist/translators/gemini.content.translator.d.ts +2 -2
- package/dist/translators/gemini.content.translator.d.ts.map +1 -1
- package/dist/translators/gemini.content.translator.js +1 -1
- package/dist/translators/gemini.content.translator.js.map +1 -1
- package/dist/translators/gemini.message.translator.d.ts +2 -2
- package/dist/translators/gemini.message.translator.d.ts.map +1 -1
- package/dist/translators/gemini.message.translator.js +1 -1
- package/dist/translators/gemini.message.translator.js.map +1 -1
- package/dist/translators/gemini.request.translator.d.ts +2 -2
- package/dist/translators/gemini.request.translator.d.ts.map +1 -1
- package/dist/translators/gemini.request.translator.js +2 -2
- package/dist/translators/gemini.request.translator.js.map +1 -1
- package/dist/translators/gemini.response.content.translator.d.ts +2 -2
- package/dist/translators/gemini.response.content.translator.d.ts.map +1 -1
- package/dist/translators/gemini.response.content.translator.js +1 -1
- package/dist/translators/gemini.response.content.translator.js.map +1 -1
- package/dist/translators/gemini.response.message.translator.d.ts +2 -2
- package/dist/translators/gemini.response.message.translator.d.ts.map +1 -1
- package/dist/translators/gemini.response.message.translator.js +2 -2
- package/dist/translators/gemini.response.message.translator.js.map +1 -1
- package/dist/translators/gemini.response.translator.d.ts +2 -2
- package/dist/translators/gemini.response.translator.d.ts.map +1 -1
- package/dist/translators/gemini.response.translator.js +2 -2
- package/dist/translators/gemini.response.translator.js.map +1 -1
- package/dist/translators/gemini.tool.translator.d.ts +2 -2
- package/dist/translators/gemini.tool.translator.d.ts.map +1 -1
- package/dist/translators/gemini.tool.translator.js +2 -2
- package/dist/translators/gemini.tool.translator.js.map +1 -1
- package/dist/translators/gemini.usage.translator.d.ts +2 -2
- package/dist/translators/gemini.usage.translator.d.ts.map +1 -1
- package/dist/translators/gemini.usage.translator.js +2 -2
- package/dist/translators/gemini.usage.translator.js.map +1 -1
- package/dist/translators/streaming/gemini.content.delta.translator.d.ts +2 -2
- package/dist/translators/streaming/gemini.content.delta.translator.d.ts.map +1 -1
- package/dist/translators/streaming/gemini.content.delta.translator.js +1 -1
- package/dist/translators/streaming/gemini.content.delta.translator.js.map +1 -1
- package/dist/translators/streaming/gemini.message.delta.translator.d.ts +2 -2
- package/dist/translators/streaming/gemini.message.delta.translator.d.ts.map +1 -1
- package/dist/translators/streaming/gemini.message.delta.translator.js +2 -2
- package/dist/translators/streaming/gemini.message.delta.translator.js.map +1 -1
- package/dist/translators/streaming/gemini.message.start.translator.d.ts +2 -2
- package/dist/translators/streaming/gemini.message.start.translator.d.ts.map +1 -1
- package/dist/translators/streaming/gemini.message.start.translator.js +1 -1
- package/dist/translators/streaming/gemini.message.start.translator.js.map +1 -1
- package/dist/translators/streaming/gemini.message.stop.translator.d.ts +2 -2
- package/dist/translators/streaming/gemini.message.stop.translator.d.ts.map +1 -1
- package/dist/translators/streaming/gemini.message.stop.translator.js +1 -1
- package/dist/translators/streaming/gemini.message.stop.translator.js.map +1 -1
- package/dist/translators/streaming/gemini.stream.translator.d.ts +2 -2
- package/dist/translators/streaming/gemini.stream.translator.d.ts.map +1 -1
- package/dist/translators/streaming/gemini.stream.translator.js +1 -1
- package/dist/translators/streaming/gemini.stream.translator.js.map +1 -1
- package/dist/utils/finish.reason.mapper.d.ts +1 -1
- package/dist/utils/finish.reason.mapper.d.ts.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +4 -4
package/README.md
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# @holokai/holo-provider-gemini
|
|
2
|
+
|
|
3
|
+
> **Google Gemini provider plugin for Holo LLM Gateway**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
The Gemini provider plugin enables Holo to communicate with Google's Gemini API. It provides bidirectional translation
|
|
10
|
+
between Gemini's native API and the portable Holo format using the `@google/genai` SDK.
|
|
11
|
+
|
|
12
|
+
### Key Features
|
|
13
|
+
|
|
14
|
+
- Full Holo SDK integration with strict type safety
|
|
15
|
+
- Bidirectional translation: Gemini native format <-> Holo universal format
|
|
16
|
+
- Streaming support via `streamGenerateContent`
|
|
17
|
+
- Tool calling / function calling
|
|
18
|
+
- Vision and multimodal input
|
|
19
|
+
- Embedding support via `embedContent`
|
|
20
|
+
- Built-in pricing dataset with cost calculation
|
|
21
|
+
- Thinking token and cache read cost tracking
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install @holokai/holo-provider-gemini
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Peer Dependencies
|
|
32
|
+
|
|
33
|
+
- `@holokai/holo-sdk` ^1.2.2
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Quick Start
|
|
38
|
+
|
|
39
|
+
### Automatic Discovery
|
|
40
|
+
|
|
41
|
+
When installed in a Holo worker environment, this plugin is automatically discovered and loaded. No manual registration
|
|
42
|
+
required.
|
|
43
|
+
|
|
44
|
+
### Configuration
|
|
45
|
+
|
|
46
|
+
Add a provider configuration to your Holo deployment:
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"provider_type": "gemini",
|
|
51
|
+
"plugin_id": "@holokai/holo-provider-gemini",
|
|
52
|
+
"api_key": "${GEMINI_API_KEY}",
|
|
53
|
+
"model": "gemini-2.0-flash",
|
|
54
|
+
"config": {
|
|
55
|
+
"defaultModel": "gemini-2.0-flash"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Protocols
|
|
63
|
+
|
|
64
|
+
| Protocol | Capability | Route | Method |
|
|
65
|
+
|--------------------------------|------------------|-----------------------------------------------|--------|
|
|
66
|
+
| `gemini.generateContent` | Chat | `/v1beta/models/:model:generateContent` | POST |
|
|
67
|
+
| `gemini.streamGenerateContent` | Chat (streaming) | `/v1beta/models/:model:streamGenerateContent` | POST |
|
|
68
|
+
| `gemini.embedContent` | Embed | `/v1beta/models/:model:embedContent` | POST |
|
|
69
|
+
| `gemini.models` | Models | `/v1beta/models` | GET |
|
|
70
|
+
|
|
71
|
+
The default protocol is `gemini.generateContent`.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Capabilities
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
{
|
|
79
|
+
streaming: true,
|
|
80
|
+
tools: true,
|
|
81
|
+
vision: true,
|
|
82
|
+
functionCalling: true,
|
|
83
|
+
maxTokens: 1_000_000
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Architecture
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
plugins/holo-provider-gemini/
|
|
93
|
+
├── src/
|
|
94
|
+
│ ├── index.ts Default export of plugin instance
|
|
95
|
+
│ ├── manifest.ts Plugin manifest (family: 'gemini')
|
|
96
|
+
│ ├── plugin.ts GeminiProviderPlugin — routes, capabilities, pricing
|
|
97
|
+
│ ├── gemini.provider.ts GeminiProvider — request execution via @google/genai
|
|
98
|
+
│ ├── gemini.auditor.ts Audit record construction
|
|
99
|
+
│ ├── gemini.translator.ts Holo <-> Gemini format translation
|
|
100
|
+
│ ├── gemini.wire.adapter.ts Event-to-wire serialization (SSE/JSON)
|
|
101
|
+
│ ├── gemini.response.factory.ts Response envelope construction
|
|
102
|
+
│ └── gemini.pricing.ts Built-in pricing dataset
|
|
103
|
+
├── tests/
|
|
104
|
+
│ └── fixtures/ Conformance test fixtures
|
|
105
|
+
├── package.json
|
|
106
|
+
└── tsconfig.json
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Holo Format Mapping
|
|
112
|
+
|
|
113
|
+
### Request Translation (Holo -> Gemini)
|
|
114
|
+
|
|
115
|
+
| Holo Field | Gemini Field |
|
|
116
|
+
|--------------------------------|------------------------------------|
|
|
117
|
+
| `messages[].role: 'user'` | `contents[].role: 'user'` |
|
|
118
|
+
| `messages[].role: 'assistant'` | `contents[].role: 'model'` |
|
|
119
|
+
| `messages[].content` (text) | `contents[].parts[].text` |
|
|
120
|
+
| `messages[].content` (image) | `contents[].parts[].inlineData` |
|
|
121
|
+
| `system` | `systemInstruction` |
|
|
122
|
+
| `max_tokens` | `generationConfig.maxOutputTokens` |
|
|
123
|
+
| `temperature` | `generationConfig.temperature` |
|
|
124
|
+
| `top_p` | `generationConfig.topP` |
|
|
125
|
+
| `top_k` | `generationConfig.topK` |
|
|
126
|
+
| `stop_sequences` | `generationConfig.stopSequences` |
|
|
127
|
+
| `tools` | `tools[].functionDeclarations` |
|
|
128
|
+
|
|
129
|
+
### Response Translation (Gemini -> Holo)
|
|
130
|
+
|
|
131
|
+
| Gemini Field | Holo Field |
|
|
132
|
+
|--------------------------------------|------------------------------|
|
|
133
|
+
| `candidates[0].content.parts[].text` | `choices[0].message.content` |
|
|
134
|
+
| `candidates[0].finishReason` | `choices[0].finish_reason` |
|
|
135
|
+
| `usageMetadata.promptTokenCount` | `usage.prompt_tokens` |
|
|
136
|
+
| `usageMetadata.candidatesTokenCount` | `usage.completion_tokens` |
|
|
137
|
+
| `usageMetadata.totalTokenCount` | `usage.total_tokens` |
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Testing
|
|
142
|
+
|
|
143
|
+
Tests use the `@holokai/holo-test` conformance framework with fixture-driven testing:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
npm test
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## License
|
|
152
|
+
|
|
153
|
+
MIT
|
package/dist/gemini.auditor.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { BaseAuditor } from "@holokai/sdk/provider";
|
|
2
|
-
import type { ProviderDoneEvent, ProviderEvent } from "@holokai/types/provider";
|
|
3
|
-
import type { HoloWorkerRequest, WorkerResponseEnvelope } from "@holokai/types/worker";
|
|
4
|
-
import type { ProviderEnvelope, ProviderResponseMetrics } from "@holokai/types/entities";
|
|
5
|
-
import { FinishReason, ProviderResponseStatus } from "@holokai/types/entities";
|
|
1
|
+
import { BaseAuditor } from "@holokai/holo-sdk/provider";
|
|
2
|
+
import type { ProviderDoneEvent, ProviderEvent } from "@holokai/holo-types/provider";
|
|
3
|
+
import type { HoloWorkerRequest, WorkerResponseEnvelope } from "@holokai/holo-types/worker";
|
|
4
|
+
import type { ProviderEnvelope, ProviderResponseMetrics } from "@holokai/holo-types/entities";
|
|
5
|
+
import { FinishReason, ProviderResponseStatus } from "@holokai/holo-types/entities";
|
|
6
|
+
import type { HoloFinishReason, HoloUsage } from "@holokai/holo-types/holo";
|
|
6
7
|
export declare class GeminiAuditor extends BaseAuditor {
|
|
7
8
|
readonly provider = "gemini";
|
|
9
|
+
mapFinishReason(nativeResponse: any, _protocolName?: string): HoloFinishReason;
|
|
10
|
+
mapUsage(nativeResponse: any, protocolName?: string): HoloUsage;
|
|
8
11
|
protected extractRequestOptions(workerRequest: HoloWorkerRequest): Promise<Record<string, any>>;
|
|
9
12
|
protected mapProviderResponseMetrics(providerEvent: ProviderDoneEvent, protocolName: string): Promise<Partial<ProviderResponseMetrics>>;
|
|
10
13
|
protected mapResponseStatus(providerEvent: ProviderEvent, envelope: WorkerResponseEnvelope): Promise<ProviderResponseStatus>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.auditor.d.ts","sourceRoot":"","sources":["../src/gemini.auditor.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.auditor.d.ts","sourceRoot":"","sources":["../src/gemini.auditor.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAEvD,OAAO,KAAK,EAAC,iBAAiB,EAAE,aAAa,EAAC,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,EAAC,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAC,YAAY,EAAE,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AAClF,OAAO,KAAK,EAAC,gBAAgB,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAS1E,qBACa,aAAc,SAAQ,WAAW;IAC1C,QAAQ,CAAC,QAAQ,YAAY;IAEpB,eAAe,CAAC,cAAc,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAkB9E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS;cAYxD,qBAAqB,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAMrF,0BAA0B,CAAC,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM;cAgBjF,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;cAWlH,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;cAMvH,sBAAsB,CAClC,aAAa,EAAE,iBAAiB,GACjC,OAAO,CAAC,gBAAgB,CAAC;CAiB/B"}
|
package/dist/gemini.auditor.js
CHANGED
|
@@ -5,12 +5,45 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { injectable } from 'tsyringe';
|
|
8
|
-
import { BaseAuditor } from "@holokai/sdk/provider";
|
|
9
|
-
import { extractPromptByRole,
|
|
10
|
-
import { FinishReason, ProviderResponseStatus } from "@holokai/types/entities";
|
|
8
|
+
import { BaseAuditor } from "@holokai/holo-sdk/provider";
|
|
9
|
+
import { extractPromptByRole, extractTextContent, extractTopLevelPrompt, pickDefined } from "@holokai/holo-sdk";
|
|
10
|
+
import { FinishReason, ProviderResponseStatus } from "@holokai/holo-types/entities";
|
|
11
11
|
import { GeminiProtocols } from "./plugin";
|
|
12
12
|
let GeminiAuditor = class GeminiAuditor extends BaseAuditor {
|
|
13
13
|
provider = 'gemini';
|
|
14
|
+
mapFinishReason(nativeResponse, _protocolName) {
|
|
15
|
+
if (!nativeResponse)
|
|
16
|
+
return 'stop';
|
|
17
|
+
const candidates = nativeResponse.candidates;
|
|
18
|
+
if (!candidates || candidates.length === 0)
|
|
19
|
+
return 'stop';
|
|
20
|
+
const finishReason = candidates[0].finishReason;
|
|
21
|
+
switch (finishReason) {
|
|
22
|
+
case 'STOP':
|
|
23
|
+
return 'stop';
|
|
24
|
+
case 'MAX_TOKENS':
|
|
25
|
+
return 'length';
|
|
26
|
+
case 'SAFETY':
|
|
27
|
+
case 'RECITATION':
|
|
28
|
+
return 'content_filter';
|
|
29
|
+
default:
|
|
30
|
+
return 'stop';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
mapUsage(nativeResponse, protocolName) {
|
|
34
|
+
if (!nativeResponse)
|
|
35
|
+
return {};
|
|
36
|
+
if (protocolName === GeminiProtocols.EMBED_CONTENT)
|
|
37
|
+
return {};
|
|
38
|
+
const usage = nativeResponse.usageMetadata;
|
|
39
|
+
if (!usage)
|
|
40
|
+
return {};
|
|
41
|
+
return pickDefined({
|
|
42
|
+
input_tokens: usage.promptTokenCount,
|
|
43
|
+
output_tokens: usage.candidatesTokenCount,
|
|
44
|
+
total_tokens: usage.totalTokenCount,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
14
47
|
async extractRequestOptions(workerRequest) {
|
|
15
48
|
return {
|
|
16
49
|
...workerRequest.payload.config
|
|
@@ -22,16 +55,14 @@ let GeminiAuditor = class GeminiAuditor extends BaseAuditor {
|
|
|
22
55
|
usage_raw: providerEvent.message.metadata
|
|
23
56
|
};
|
|
24
57
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
});
|
|
34
|
-
}
|
|
58
|
+
const message = providerEvent.message;
|
|
59
|
+
const usage = message.usageMetadata;
|
|
60
|
+
return pickDefined({
|
|
61
|
+
input_tokens: usage?.promptTokenCount,
|
|
62
|
+
output_tokens: usage?.candidatesTokenCount,
|
|
63
|
+
total_tokens: usage?.totalTokenCount,
|
|
64
|
+
usage_raw: usage
|
|
65
|
+
});
|
|
35
66
|
}
|
|
36
67
|
async mapResponseStatus(providerEvent, envelope) {
|
|
37
68
|
if (providerEvent.type === 'done') {
|
|
@@ -49,26 +80,11 @@ let GeminiAuditor = class GeminiAuditor extends BaseAuditor {
|
|
|
49
80
|
return FinishReason.ERROR;
|
|
50
81
|
if (providerEvent.type !== 'done')
|
|
51
82
|
return undefined;
|
|
52
|
-
|
|
53
|
-
if (!candidates || candidates.length === 0)
|
|
54
|
-
return FinishReason.STOP;
|
|
55
|
-
const finishReason = candidates[0].finishReason;
|
|
56
|
-
switch (finishReason) {
|
|
57
|
-
case 'STOP':
|
|
58
|
-
return FinishReason.STOP;
|
|
59
|
-
case 'MAX_TOKENS':
|
|
60
|
-
return FinishReason.LENGTH;
|
|
61
|
-
case 'SAFETY':
|
|
62
|
-
return FinishReason.CONTENT_FILTER;
|
|
63
|
-
case 'RECITATION':
|
|
64
|
-
return FinishReason.CONTENT_FILTER;
|
|
65
|
-
default:
|
|
66
|
-
return FinishReason.STOP;
|
|
67
|
-
}
|
|
83
|
+
return this.mapFinishReason(providerEvent.message);
|
|
68
84
|
}
|
|
69
85
|
async createProviderEnvelope(workerRequest) {
|
|
70
86
|
const payload = workerRequest.payload;
|
|
71
|
-
const last_user_prompt = extractPromptByRole(payload.contents, "user", "last", (msg) =>
|
|
87
|
+
const last_user_prompt = extractPromptByRole(payload.contents, "user", "last", (msg) => extractTextContent(msg.parts));
|
|
72
88
|
const system_prompt = workerRequest.systemPrompt?.system_prompt ?? extractTopLevelPrompt(payload.config?.systemInstruction);
|
|
73
89
|
return pickDefined({
|
|
74
90
|
access_model: payload.model,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.auditor.js","sourceRoot":"","sources":["../src/gemini.auditor.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.auditor.js","sourceRoot":"","sources":["../src/gemini.auditor.ts"],"names":[],"mappings":"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"}
|
package/dist/gemini.pricing.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.pricing.d.ts","sourceRoot":"","sources":["../src/gemini.pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.pricing.d.ts","sourceRoot":"","sources":["../src/gemini.pricing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAI/D,eAAO,MAAM,sBAAsB,EAAE,cAqQpC,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { BaseProvider } from '@holokai/sdk/provider';
|
|
2
|
-
import type { IAuditor, IProviderTranslator, IResponseFactory, ProviderContext } from '@holokai/types/provider';
|
|
1
|
+
import { BaseProvider } from '@holokai/holo-sdk/provider';
|
|
2
|
+
import type { DiscoveredModel, IAuditor, IProviderTranslator, IResponseFactory, ProviderContext } from '@holokai/holo-types/provider';
|
|
3
3
|
import { EmbedContentParameters, GenerateContentParameters, GoogleGenAI } from '@google/genai';
|
|
4
4
|
import { GeminiErrorResponse } from './gemini.response.factory.js';
|
|
5
5
|
export declare class GeminiProvider extends BaseProvider<GoogleGenAI, any> {
|
|
6
6
|
getModels(allowedModels: string[] | true): Promise<any>;
|
|
7
|
+
discoverModels(): Promise<DiscoveredModel[]>;
|
|
7
8
|
getModelNameFromRequest(payload: EmbedContentParameters | GenerateContentParameters): Promise<string>;
|
|
8
9
|
protected createAuditor(): IAuditor;
|
|
9
10
|
protected createClient(): GoogleGenAI;
|
|
@@ -13,6 +14,7 @@ export declare class GeminiProvider extends BaseProvider<GoogleGenAI, any> {
|
|
|
13
14
|
start: () => Promise<any>;
|
|
14
15
|
}>;
|
|
15
16
|
protected handleError(error: any): Promise<GeminiErrorResponse>;
|
|
17
|
+
private parseGeminiError;
|
|
16
18
|
private mapHttpStatusToGeminiStatus;
|
|
17
19
|
}
|
|
18
20
|
//# sourceMappingURL=gemini.provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.provider.d.ts","sourceRoot":"","sources":["../src/gemini.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.provider.d.ts","sourceRoot":"","sources":["../src/gemini.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EACR,eAAe,EACf,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAC,sBAAsB,EAAE,yBAAyB,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAG7F,OAAO,EAAC,mBAAmB,EAA2C,MAAM,8BAA8B,CAAC;AAG3G,qBAAa,cAAe,SAAQ,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC;IAExD,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAevD,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAyB5C,uBAAuB,CAAC,OAAO,EAAE,sBAAsB,GAAG,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3G,SAAS,CAAC,aAAa,IAAI,QAAQ;IAInC,SAAS,CAAC,YAAY,IAAI,WAAW;IAIrC,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAIjD,SAAS,CAAC,qBAAqB,IAAI,gBAAgB;cAInC,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,yBAAyB,EAAE,GAAG,EAAE,eAAe;;;cAoDrG,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAKrE,OAAO,CAAC,gBAAgB;IAgCxB,OAAO,CAAC,2BAA2B;CAkBtC"}
|
package/dist/gemini.provider.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseProvider } from '@holokai/sdk/provider';
|
|
1
|
+
import { BaseProvider } from '@holokai/holo-sdk/provider';
|
|
2
2
|
import { GoogleGenAI } from '@google/genai';
|
|
3
3
|
import { GeminiAuditor } from './gemini.auditor.js';
|
|
4
4
|
import { GeminiTranslator } from './gemini.translator.js';
|
|
@@ -15,6 +15,29 @@ export class GeminiProvider extends BaseProvider {
|
|
|
15
15
|
}
|
|
16
16
|
return response.filter(model => allowedModels.includes(model.name?.replace('models/', '') ?? ''));
|
|
17
17
|
}
|
|
18
|
+
async discoverModels() {
|
|
19
|
+
const url = `https://generativelanguage.googleapis.com/v1beta/models?key=${this._config.apiKey}`;
|
|
20
|
+
const res = await fetch(url);
|
|
21
|
+
const data = await res.json();
|
|
22
|
+
const models = data.models ?? [];
|
|
23
|
+
return models.map(m => {
|
|
24
|
+
const modelId = m.name ?? '';
|
|
25
|
+
const shortName = modelId.replace(/^models\//, '');
|
|
26
|
+
const displayName = m.displayName ?? shortName;
|
|
27
|
+
return {
|
|
28
|
+
name: displayName,
|
|
29
|
+
accessModel: modelId,
|
|
30
|
+
description: displayName !== modelId
|
|
31
|
+
? `${displayName} (Model ID: ${modelId})`
|
|
32
|
+
: `AI Model: ${modelId}`,
|
|
33
|
+
version: shortName.match(/-(\d+\.\d+(?:\.\d+)?)/)?.[1]
|
|
34
|
+
?? shortName.match(/-(\d{4})/)?.[1]
|
|
35
|
+
?? '1.0',
|
|
36
|
+
contextLength: m.inputTokenLimit ?? undefined,
|
|
37
|
+
metadata: m,
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
}
|
|
18
41
|
async getModelNameFromRequest(payload) {
|
|
19
42
|
return payload.model;
|
|
20
43
|
}
|
|
@@ -46,15 +69,15 @@ export class GeminiProvider extends BaseProvider {
|
|
|
46
69
|
const stream = await this.client.models.generateContentStream(payload);
|
|
47
70
|
let finalResponse;
|
|
48
71
|
for await (const chunk of stream) {
|
|
49
|
-
if (chunk.candidates?.[0]?.finishReason) {
|
|
50
|
-
finalResponse = chunk;
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
72
|
ctx.emitStreamEvent(chunk);
|
|
54
73
|
const text = chunk.candidates?.[0]?.content?.parts?.[0]?.text;
|
|
55
74
|
if (text) {
|
|
56
75
|
ctx.emitTextDelta(text);
|
|
57
76
|
}
|
|
77
|
+
if (chunk.candidates?.[0]?.finishReason) {
|
|
78
|
+
finalResponse = chunk;
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
58
81
|
}
|
|
59
82
|
return finalResponse;
|
|
60
83
|
}
|
|
@@ -75,6 +98,10 @@ export class GeminiProvider extends BaseProvider {
|
|
|
75
98
|
}
|
|
76
99
|
}
|
|
77
100
|
async handleError(error) {
|
|
101
|
+
return this.parseGeminiError(error)
|
|
102
|
+
?? this.responseFactory.createError(error.message, 'api_error');
|
|
103
|
+
}
|
|
104
|
+
parseGeminiError(error) {
|
|
78
105
|
if (error.status && error.statusText) {
|
|
79
106
|
return {
|
|
80
107
|
error: {
|
|
@@ -84,7 +111,25 @@ export class GeminiProvider extends BaseProvider {
|
|
|
84
111
|
}
|
|
85
112
|
};
|
|
86
113
|
}
|
|
87
|
-
|
|
114
|
+
const match = error.message?.match(/^got status: (\d+)\s+[^.]*\.\s*(.*)/s);
|
|
115
|
+
if (match) {
|
|
116
|
+
const httpStatus = parseInt(match[1], 10);
|
|
117
|
+
let body;
|
|
118
|
+
try {
|
|
119
|
+
body = JSON.parse(match[2]);
|
|
120
|
+
}
|
|
121
|
+
catch { /* unparseable body */
|
|
122
|
+
}
|
|
123
|
+
const geminiError = body?.error;
|
|
124
|
+
return {
|
|
125
|
+
error: {
|
|
126
|
+
code: httpStatus,
|
|
127
|
+
message: geminiError?.message || error.message,
|
|
128
|
+
status: geminiError?.status || this.mapHttpStatusToGeminiStatus(httpStatus)
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
return undefined;
|
|
88
133
|
}
|
|
89
134
|
mapHttpStatusToGeminiStatus(status) {
|
|
90
135
|
switch (status) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.provider.js","sourceRoot":"","sources":["../src/gemini.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.provider.js","sourceRoot":"","sources":["../src/gemini.provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IResponseFactory } from '@holokai/types/provider';
|
|
2
|
-
import type { HoloErrorCode } from '@holokai/types/holo';
|
|
1
|
+
import type { IResponseFactory } from '@holokai/holo-types/provider';
|
|
2
|
+
import type { HoloErrorCode } from '@holokai/holo-types/holo';
|
|
3
3
|
export type GeminiErrorStatus = 'INVALID_ARGUMENT' | 'NOT_FOUND' | 'PERMISSION_DENIED' | 'RESOURCE_EXHAUSTED' | 'UNAUTHENTICATED' | 'INTERNAL' | 'UNAVAILABLE';
|
|
4
4
|
export interface GeminiErrorResponse {
|
|
5
5
|
error: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.response.factory.d.ts","sourceRoot":"","sources":["../src/gemini.response.factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.response.factory.d.ts","sourceRoot":"","sources":["../src/gemini.response.factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAChB,WAAW,GACX,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,UAAU,GACV,aAAa,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,iBAAiB,CAAC;KAC7B,CAAC;CACL;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE;QACL,KAAK,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACpC,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,aAAa,EAAE,mBAAmB,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,qBAAsB,YAAW,gBAAgB;IAE1D,MAAM,CAAC,qBAAqB,CAAC,IAAI,GAAE,MAAM,GAAG,MAAM,EAAO;IAgBzD,MAAM,CAAC,qBAAqB,CAAC,IAAI,GAAE,MAAM,GAAG,MAAM,EAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAkB5F,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAYxE,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAc3D,MAAM,CAAC,mBAAmB,IAAI,mBAAmB;IAQjD,MAAM,CAAC,QAAQ,IAAI,qBAAqB;IAIxC,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,iBAAiB;IASnD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,mBAAmB;IAWtE,OAAO,CAAC,gBAAgB;CAkB3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.response.factory.js","sourceRoot":"","sources":["../src/gemini.response.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.response.factory.js","sourceRoot":"","sources":["../src/gemini.response.factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
2
|
import { GeminiMessageTranslator, GeminiRequestTranslator, GeminiResponseTranslator, GeminiStreamTranslator } from "./translators";
|
|
3
|
-
import type { IProviderTranslator } from "@holokai/types/provider";
|
|
4
|
-
import { ClassLogger } from "@holokai/sdk";
|
|
5
|
-
import type { HoloMessage, HoloRequest, HoloResponse, HoloStreamChunk } from "@holokai/types/holo";
|
|
3
|
+
import type { IProviderTranslator } from "@holokai/holo-types/provider";
|
|
4
|
+
import { ClassLogger } from "@holokai/holo-sdk";
|
|
5
|
+
import type { HoloEmbedParams, HoloMessage, HoloRequest, HoloResponse, HoloStreamChunk } from "@holokai/holo-types/holo";
|
|
6
6
|
import type { Content, GenerateContentConfig, GenerateContentResponse } from "@google/genai";
|
|
7
7
|
interface GeminiRequest {
|
|
8
8
|
model: string;
|
|
@@ -23,6 +23,12 @@ export declare class GeminiTranslator extends ClassLogger implements IProviderTr
|
|
|
23
23
|
fromHoloResponse(message: HoloResponse): Promise<Partial<GenerateContentResponse>>;
|
|
24
24
|
toHoloResponse(message: GenerateContentResponse): Promise<Partial<HoloResponse>>;
|
|
25
25
|
fromHoloStreamChunks(chunks: HoloStreamChunk[]): Promise<unknown>;
|
|
26
|
+
fromHoloEmbedRequest(request: HoloEmbedParams): Promise<any>;
|
|
27
|
+
toHoloEmbedResponse(response: any): Promise<{
|
|
28
|
+
model: string;
|
|
29
|
+
embeddings: number[][];
|
|
30
|
+
usage?: any;
|
|
31
|
+
}>;
|
|
26
32
|
}
|
|
27
33
|
export {};
|
|
28
34
|
//# sourceMappingURL=gemini.translator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.translator.d.ts","sourceRoot":"","sources":["../src/gemini.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAMH,uBAAuB,EACvB,uBAAuB,EAGvB,wBAAwB,EACxB,sBAAsB,EAIzB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.translator.d.ts","sourceRoot":"","sources":["../src/gemini.translator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAMH,uBAAuB,EACvB,uBAAuB,EAGvB,wBAAwB,EACxB,sBAAsB,EAIzB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAC,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACvH,OAAO,KAAK,EAAC,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAE3F,UAAU,aAAa;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAClC;AAED,qBACa,gBAAiB,SAAQ,WAAY,YAAW,mBAAmB;IAExE,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAHhB,iBAAiB,EAAE,uBAAuB,EAC1C,iBAAiB,EAAE,uBAAuB,EAC1C,kBAAkB,EAAE,wBAAwB,EAC5C,gBAAgB,EAAE,sBAAsB;IAK7D,MAAM,CAAC,QAAQ,IAAI,mBAAmB;IAgChC,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAItE,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAIpE,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAItE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;IAIpE,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAIlF,cAAc,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAIhF,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjE,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ5D,mBAAmB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;CAU5G"}
|
|
@@ -11,7 +11,7 @@ var GeminiTranslator_1;
|
|
|
11
11
|
import 'reflect-metadata';
|
|
12
12
|
import { injectable } from "tsyringe";
|
|
13
13
|
import { GeminiContentDeltaTranslator, GeminiContentTranslator, GeminiMessageDeltaTranslator, GeminiMessageStartTranslator, GeminiMessageStopTranslator, GeminiMessageTranslator, GeminiRequestTranslator, GeminiResponseContentTranslator, GeminiResponseMessageTranslator, GeminiResponseTranslator, GeminiStreamTranslator, GeminiToolChoiceTranslator, GeminiToolTranslator, GeminiUsageTranslator } from "./translators";
|
|
14
|
-
import { ClassLogger } from "@holokai/sdk";
|
|
14
|
+
import { ClassLogger } from "@holokai/holo-sdk";
|
|
15
15
|
let GeminiTranslator = GeminiTranslator_1 = class GeminiTranslator extends ClassLogger {
|
|
16
16
|
requestTranslator;
|
|
17
17
|
messageTranslator;
|
|
@@ -62,6 +62,23 @@ let GeminiTranslator = GeminiTranslator_1 = class GeminiTranslator extends Class
|
|
|
62
62
|
async fromHoloStreamChunks(chunks) {
|
|
63
63
|
return this.streamTranslator.fromHoloManyArray(chunks);
|
|
64
64
|
}
|
|
65
|
+
async fromHoloEmbedRequest(request) {
|
|
66
|
+
const text = Array.isArray(request.input) ? request.input.join(' ') : request.input;
|
|
67
|
+
return {
|
|
68
|
+
model: request.model,
|
|
69
|
+
contents: { parts: [{ text }] },
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
async toHoloEmbedResponse(response) {
|
|
73
|
+
const model = response?.model ?? '';
|
|
74
|
+
if (response?.embeddings?.[0]?.values) {
|
|
75
|
+
return { model, embeddings: response.embeddings.map((e) => e.values) };
|
|
76
|
+
}
|
|
77
|
+
if (response?.embedding?.values) {
|
|
78
|
+
return { model, embeddings: [response.embedding.values] };
|
|
79
|
+
}
|
|
80
|
+
return { model, embeddings: [] };
|
|
81
|
+
}
|
|
65
82
|
};
|
|
66
83
|
GeminiTranslator = GeminiTranslator_1 = __decorate([
|
|
67
84
|
injectable(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.translator.js","sourceRoot":"","sources":["../src/gemini.translator.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EACH,4BAA4B,EAC5B,uBAAuB,EACvB,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,+BAA+B,EAC/B,+BAA+B,EAC/B,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,WAAW,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.translator.js","sourceRoot":"","sources":["../src/gemini.translator.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EACH,4BAA4B,EAC5B,uBAAuB,EACvB,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,+BAA+B,EAC/B,+BAA+B,EAC/B,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAWvC,IAAM,gBAAgB,wBAAtB,MAAM,gBAAiB,SAAQ,WAAW;IAExB;IACA;IACA;IACA;IAJrB,YACqB,iBAA0C,EAC1C,iBAA0C,EAC1C,kBAA4C,EAC5C,gBAAwC;QAEzD,KAAK,EAAE,CAAC;QALS,sBAAiB,GAAjB,iBAAiB,CAAyB;QAC1C,sBAAiB,GAAjB,iBAAiB,CAAyB;QAC1C,uBAAkB,GAAlB,kBAAkB,CAA0B;QAC5C,qBAAgB,GAAhB,gBAAgB,CAAwB;IAG7D,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,MAAM,iBAAiB,GAAG,IAAI,uBAAuB,EAAE,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAClD,MAAM,oBAAoB,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAC9D,MAAM,iBAAiB,GAAG,IAAI,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;QACzE,MAAM,iBAAiB,GAAG,IAAI,uBAAuB,CAAC,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAC;QAE/G,MAAM,yBAAyB,GAAG,IAAI,+BAA+B,EAAE,CAAC;QACxE,MAAM,eAAe,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACpD,MAAM,yBAAyB,GAAG,IAAI,+BAA+B,CAAC,yBAAyB,CAAC,CAAC;QACjG,MAAM,kBAAkB,GAAG,IAAI,wBAAwB,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;QAEpG,MAAM,sBAAsB,GAAG,IAAI,4BAA4B,CAAC,eAAe,CAAC,CAAC;QACjF,MAAM,sBAAsB,GAAG,IAAI,4BAA4B,CAAC,eAAe,CAAC,CAAC;QACjF,MAAM,qBAAqB,GAAG,IAAI,2BAA2B,EAAE,CAAC;QAChE,MAAM,sBAAsB,GAAG,IAAI,4BAA4B,EAAE,CAAC;QAElE,MAAM,gBAAgB,GAAG,IAAI,sBAAsB,CAC/C,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,CACzB,CAAC;QAEF,OAAO,IAAI,kBAAgB,CACvB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,CACnB,CAAC;IACN,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAoB;QACtC,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAsB;QACtC,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAuB;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,QAAmB;QACpC,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAqB;QACxC,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAgC;QACjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAyB;QAChD,OAAO,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAwB;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACpF,OAAO;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC;SAC9B,CAAC;IACN,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAa;QACnC,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;QACpC,IAAI,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YACpC,OAAO,EAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC;QAC9E,CAAC;QACD,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YAC9B,OAAO,EAAC,KAAK,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,EAAC,CAAC;QAC5D,CAAC;QACD,OAAO,EAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAC,CAAC;IACnC,CAAC;CACJ,CAAA;AAxFY,gBAAgB;IAD5B,UAAU,EAAE;qCAG+B,uBAAuB;QACvB,uBAAuB;QACtB,wBAAwB;QAC1B,sBAAsB;GALpD,gBAAgB,CAwF5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.wire.adapter.d.ts","sourceRoot":"","sources":["../src/gemini.wire.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.wire.adapter.d.ts","sourceRoot":"","sources":["../src/gemini.wire.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAE3D,qBAAa,iBAAkB,SAAQ,eAAe;IAClD,UAAU,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;CAGhC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.wire.adapter.js","sourceRoot":"","sources":["../src/gemini.wire.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"gemini.wire.adapter.js","sourceRoot":"","sources":["../src/gemini.wire.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAE3D,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IAClD,UAAU,CAAC,IAAS;QAChB,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/C,CAAC;CACJ"}
|
package/dist/manifest.d.ts
CHANGED
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAa,MAAM,
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAa,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,QAAQ,EAAE,cAOtB,CAAC"}
|