@workglow/google-gemini 0.2.28 → 0.2.30
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/ai-provider/GoogleGeminiProvider.d.ts +68 -17
- package/dist/ai-provider/GoogleGeminiProvider.d.ts.map +1 -1
- package/dist/ai-provider/GoogleGeminiQueuedProvider.d.ts +65 -9
- package/dist/ai-provider/GoogleGeminiQueuedProvider.d.ts.map +1 -1
- package/dist/ai-provider/common/Gemini_Client.d.ts.map +1 -1
- package/dist/ai-provider-runtime.js +50 -63
- package/dist/ai-provider-runtime.js.map +6 -6
- package/dist/ai-provider.js +23 -32
- package/dist/ai-provider.js.map +4 -4
- package/package.json +33 -13
|
@@ -4,24 +4,75 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { AiProvider } from "@workglow/ai/worker";
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
declare const GoogleGeminiProvider_base: new (tasks?: Record<string, import("@workglow/ai").AiProviderRunFn<any, any, {
|
|
8
|
+
description?: string | undefined;
|
|
9
|
+
metadata?: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
} | undefined;
|
|
12
|
+
model_id?: string | undefined;
|
|
13
|
+
provider: "GOOGLE_GEMINI";
|
|
14
|
+
provider_config: {
|
|
15
|
+
credential_key?: string | undefined;
|
|
16
|
+
embedding_task_type?: "CLASSIFICATION" | "CLUSTERING" | "RETRIEVAL_DOCUMENT" | "RETRIEVAL_QUERY" | "SEMANTIC_SIMILARITY" | null | undefined;
|
|
17
|
+
model_name: string;
|
|
18
|
+
};
|
|
19
|
+
tasks?: string[] | undefined;
|
|
20
|
+
title?: string | undefined;
|
|
21
|
+
}>> | undefined, streamTasks?: Record<string, import("@workglow/ai").AiProviderStreamFn<any, any, {
|
|
22
|
+
description?: string | undefined;
|
|
23
|
+
metadata?: {
|
|
24
|
+
[x: string]: unknown;
|
|
25
|
+
} | undefined;
|
|
26
|
+
model_id?: string | undefined;
|
|
27
|
+
provider: "GOOGLE_GEMINI";
|
|
28
|
+
provider_config: {
|
|
29
|
+
credential_key?: string | undefined;
|
|
30
|
+
embedding_task_type?: "CLASSIFICATION" | "CLUSTERING" | "RETRIEVAL_DOCUMENT" | "RETRIEVAL_QUERY" | "SEMANTIC_SIMILARITY" | null | undefined;
|
|
31
|
+
model_name: string;
|
|
32
|
+
};
|
|
33
|
+
tasks?: string[] | undefined;
|
|
34
|
+
title?: string | undefined;
|
|
35
|
+
}>> | undefined, previewTasks?: Record<string, import("@workglow/ai").AiProviderPreviewRunFn<any, any, {
|
|
36
|
+
description?: string | undefined;
|
|
37
|
+
metadata?: {
|
|
38
|
+
[x: string]: unknown;
|
|
39
|
+
} | undefined;
|
|
40
|
+
model_id?: string | undefined;
|
|
41
|
+
provider: "GOOGLE_GEMINI";
|
|
42
|
+
provider_config: {
|
|
43
|
+
credential_key?: string | undefined;
|
|
44
|
+
embedding_task_type?: "CLASSIFICATION" | "CLUSTERING" | "RETRIEVAL_DOCUMENT" | "RETRIEVAL_QUERY" | "SEMANTIC_SIMILARITY" | null | undefined;
|
|
45
|
+
model_name: string;
|
|
46
|
+
};
|
|
47
|
+
tasks?: string[] | undefined;
|
|
48
|
+
title?: string | undefined;
|
|
49
|
+
}>> | undefined) => AiProvider<{
|
|
50
|
+
description?: string | undefined;
|
|
51
|
+
metadata?: {
|
|
52
|
+
[x: string]: unknown;
|
|
53
|
+
} | undefined;
|
|
54
|
+
model_id?: string | undefined;
|
|
55
|
+
provider: "GOOGLE_GEMINI";
|
|
56
|
+
provider_config: {
|
|
57
|
+
credential_key?: string | undefined;
|
|
58
|
+
embedding_task_type?: "CLASSIFICATION" | "CLUSTERING" | "RETRIEVAL_DOCUMENT" | "RETRIEVAL_QUERY" | "SEMANTIC_SIMILARITY" | null | undefined;
|
|
59
|
+
model_name: string;
|
|
60
|
+
};
|
|
61
|
+
tasks?: string[] | undefined;
|
|
62
|
+
title?: string | undefined;
|
|
63
|
+
}> & {
|
|
64
|
+
readonly name: string;
|
|
65
|
+
readonly displayName: string;
|
|
66
|
+
readonly isLocal: boolean;
|
|
67
|
+
readonly supportsBrowser: boolean;
|
|
68
|
+
readonly taskTypes: readonly ["CountTokensTask", "ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "StructuredGenerationTask", "ToolCallingTask", "ModelSearchTask", "ImageGenerateTask", "ImageEditTask"];
|
|
69
|
+
};
|
|
9
70
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* via the Google Generative AI API using the `@google/generative-ai` SDK.
|
|
14
|
-
*
|
|
15
|
-
* Task run functions are injected via the constructor so that the SDK
|
|
16
|
-
* is only imported where actually needed (inline mode, worker server), not on
|
|
17
|
-
* the main thread in worker mode.
|
|
71
|
+
* Worker-server registration for Google Gemini cloud models. Imports
|
|
72
|
+
* `AiProvider` from `@workglow/ai/worker` so the SDK is only loaded in the
|
|
73
|
+
* worker.
|
|
18
74
|
*/
|
|
19
|
-
export declare class GoogleGeminiProvider extends
|
|
20
|
-
readonly name = "GOOGLE_GEMINI";
|
|
21
|
-
readonly displayName = "Google Gemini";
|
|
22
|
-
readonly isLocal = false;
|
|
23
|
-
readonly supportsBrowser = true;
|
|
24
|
-
readonly taskTypes: readonly ["CountTokensTask", "ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "StructuredGenerationTask", "ToolCallingTask", "ModelSearchTask", "ImageGenerateTask", "ImageEditTask"];
|
|
25
|
-
constructor(tasks?: Record<string, AiProviderRunFn<any, any, GeminiModelConfig>>, streamTasks?: Record<string, AiProviderStreamFn<any, any, GeminiModelConfig>>, previewTasks?: Record<string, AiProviderPreviewRunFn<any, any, GeminiModelConfig>>);
|
|
75
|
+
export declare class GoogleGeminiProvider extends GoogleGeminiProvider_base {
|
|
26
76
|
}
|
|
77
|
+
export {};
|
|
27
78
|
//# sourceMappingURL=GoogleGeminiProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGeminiProvider.d.ts","sourceRoot":"","sources":["../../src/ai-provider/GoogleGeminiProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"GoogleGeminiProvider.d.ts","sourceRoot":"","sources":["../../src/ai-provider/GoogleGeminiProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBjD;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,yBAOxC;CAAG"}
|
|
@@ -4,15 +4,71 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { AiProvider } from "@workglow/ai";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
declare const GoogleGeminiQueuedProvider_base: new (tasks?: Record<string, import("@workglow/ai").AiProviderRunFn<any, any, {
|
|
8
|
+
description?: string | undefined;
|
|
9
|
+
metadata?: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
} | undefined;
|
|
12
|
+
model_id?: string | undefined;
|
|
13
|
+
provider: "GOOGLE_GEMINI";
|
|
14
|
+
provider_config: {
|
|
15
|
+
credential_key?: string | undefined;
|
|
16
|
+
embedding_task_type?: "CLASSIFICATION" | "CLUSTERING" | "RETRIEVAL_DOCUMENT" | "RETRIEVAL_QUERY" | "SEMANTIC_SIMILARITY" | null | undefined;
|
|
17
|
+
model_name: string;
|
|
18
|
+
};
|
|
19
|
+
tasks?: string[] | undefined;
|
|
20
|
+
title?: string | undefined;
|
|
21
|
+
}>> | undefined, streamTasks?: Record<string, import("@workglow/ai").AiProviderStreamFn<any, any, {
|
|
22
|
+
description?: string | undefined;
|
|
23
|
+
metadata?: {
|
|
24
|
+
[x: string]: unknown;
|
|
25
|
+
} | undefined;
|
|
26
|
+
model_id?: string | undefined;
|
|
27
|
+
provider: "GOOGLE_GEMINI";
|
|
28
|
+
provider_config: {
|
|
29
|
+
credential_key?: string | undefined;
|
|
30
|
+
embedding_task_type?: "CLASSIFICATION" | "CLUSTERING" | "RETRIEVAL_DOCUMENT" | "RETRIEVAL_QUERY" | "SEMANTIC_SIMILARITY" | null | undefined;
|
|
31
|
+
model_name: string;
|
|
32
|
+
};
|
|
33
|
+
tasks?: string[] | undefined;
|
|
34
|
+
title?: string | undefined;
|
|
35
|
+
}>> | undefined, previewTasks?: Record<string, import("@workglow/ai").AiProviderPreviewRunFn<any, any, {
|
|
36
|
+
description?: string | undefined;
|
|
37
|
+
metadata?: {
|
|
38
|
+
[x: string]: unknown;
|
|
39
|
+
} | undefined;
|
|
40
|
+
model_id?: string | undefined;
|
|
41
|
+
provider: "GOOGLE_GEMINI";
|
|
42
|
+
provider_config: {
|
|
43
|
+
credential_key?: string | undefined;
|
|
44
|
+
embedding_task_type?: "CLASSIFICATION" | "CLUSTERING" | "RETRIEVAL_DOCUMENT" | "RETRIEVAL_QUERY" | "SEMANTIC_SIMILARITY" | null | undefined;
|
|
45
|
+
model_name: string;
|
|
46
|
+
};
|
|
47
|
+
tasks?: string[] | undefined;
|
|
48
|
+
title?: string | undefined;
|
|
49
|
+
}>> | undefined) => AiProvider<{
|
|
50
|
+
description?: string | undefined;
|
|
51
|
+
metadata?: {
|
|
52
|
+
[x: string]: unknown;
|
|
53
|
+
} | undefined;
|
|
54
|
+
model_id?: string | undefined;
|
|
55
|
+
provider: "GOOGLE_GEMINI";
|
|
56
|
+
provider_config: {
|
|
57
|
+
credential_key?: string | undefined;
|
|
58
|
+
embedding_task_type?: "CLASSIFICATION" | "CLUSTERING" | "RETRIEVAL_DOCUMENT" | "RETRIEVAL_QUERY" | "SEMANTIC_SIMILARITY" | null | undefined;
|
|
59
|
+
model_name: string;
|
|
60
|
+
};
|
|
61
|
+
tasks?: string[] | undefined;
|
|
62
|
+
title?: string | undefined;
|
|
63
|
+
}> & {
|
|
64
|
+
readonly name: string;
|
|
65
|
+
readonly displayName: string;
|
|
66
|
+
readonly isLocal: boolean;
|
|
67
|
+
readonly supportsBrowser: boolean;
|
|
15
68
|
readonly taskTypes: readonly ["CountTokensTask", "ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "StructuredGenerationTask", "ToolCallingTask", "ModelSearchTask", "ImageGenerateTask", "ImageEditTask"];
|
|
16
|
-
|
|
69
|
+
};
|
|
70
|
+
/** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */
|
|
71
|
+
export declare class GoogleGeminiQueuedProvider extends GoogleGeminiQueuedProvider_base {
|
|
17
72
|
}
|
|
73
|
+
export {};
|
|
18
74
|
//# sourceMappingURL=GoogleGeminiQueuedProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleGeminiQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/ai-provider/GoogleGeminiQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC
|
|
1
|
+
{"version":3,"file":"GoogleGeminiQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/ai-provider/GoogleGeminiQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmB1C,4FAA4F;AAC5F,qBAAa,0BAA2B,SAAQ,+BAO9C;CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Gemini_Client.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/Gemini_Client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Gemini_Client.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/Gemini_Client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI9D,wBAAsB,aAAa,uEAQlC;AASD,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAOtE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAMzE"}
|
|
@@ -1,30 +1,19 @@
|
|
|
1
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
-
}) : x)(function(x) {
|
|
4
|
-
if (typeof require !== "undefined")
|
|
5
|
-
return require.apply(this, arguments);
|
|
6
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
7
|
-
});
|
|
8
|
-
|
|
9
1
|
// src/ai-provider/common/Gemini_Client.ts
|
|
2
|
+
import { loadProviderSdk, resolveApiKey } from "@workglow/ai-provider/common";
|
|
10
3
|
var _sdk;
|
|
11
4
|
async function loadGeminiSDK() {
|
|
12
5
|
if (!_sdk) {
|
|
13
|
-
|
|
14
|
-
_sdk = await import("@google/generative-ai");
|
|
15
|
-
} catch {
|
|
16
|
-
throw new Error("@google/generative-ai is required for Gemini tasks. Install it with: bun add @google/generative-ai");
|
|
17
|
-
}
|
|
6
|
+
_sdk = await loadProviderSdk("@google/generative-ai", "Gemini");
|
|
18
7
|
}
|
|
19
8
|
return _sdk.GoogleGenerativeAI;
|
|
20
9
|
}
|
|
21
10
|
function getApiKey(model) {
|
|
22
11
|
const config = model?.provider_config;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
12
|
+
return resolveApiKey({
|
|
13
|
+
config,
|
|
14
|
+
envVar: ["GOOGLE_API_KEY", "GEMINI_API_KEY"],
|
|
15
|
+
providerLabel: "Google"
|
|
16
|
+
});
|
|
28
17
|
}
|
|
29
18
|
function getModelName(model) {
|
|
30
19
|
const name = model?.provider_config?.model_name;
|
|
@@ -91,8 +80,8 @@ function mapGeminiModel(model) {
|
|
|
91
80
|
const title = model.displayName || id;
|
|
92
81
|
return {
|
|
93
82
|
id,
|
|
94
|
-
label:
|
|
95
|
-
description: model.description ?? "",
|
|
83
|
+
label: title,
|
|
84
|
+
description: model.displayName ? id : model.description ?? "",
|
|
96
85
|
record: {
|
|
97
86
|
model_id: id,
|
|
98
87
|
provider: GOOGLE_GEMINI,
|
|
@@ -787,27 +776,26 @@ var GEMINI_PREVIEW_TASKS = {
|
|
|
787
776
|
|
|
788
777
|
// src/ai-provider/GoogleGeminiQueuedProvider.ts
|
|
789
778
|
import { AiProvider } from "@workglow/ai";
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
}
|
|
779
|
+
import { createCloudProviderClass } from "@workglow/ai-provider/common";
|
|
780
|
+
var GEMINI_TASK_TYPES = [
|
|
781
|
+
"CountTokensTask",
|
|
782
|
+
"ModelInfoTask",
|
|
783
|
+
"TextGenerationTask",
|
|
784
|
+
"TextEmbeddingTask",
|
|
785
|
+
"TextRewriterTask",
|
|
786
|
+
"TextSummaryTask",
|
|
787
|
+
"StructuredGenerationTask",
|
|
788
|
+
"ToolCallingTask",
|
|
789
|
+
"ModelSearchTask",
|
|
790
|
+
"ImageGenerateTask",
|
|
791
|
+
"ImageEditTask"
|
|
792
|
+
];
|
|
793
|
+
|
|
794
|
+
class GoogleGeminiQueuedProvider extends createCloudProviderClass(AiProvider, {
|
|
795
|
+
name: GOOGLE_GEMINI,
|
|
796
|
+
displayName: "Google Gemini",
|
|
797
|
+
taskTypes: GEMINI_TASK_TYPES
|
|
798
|
+
}) {
|
|
811
799
|
}
|
|
812
800
|
|
|
813
801
|
// src/ai-provider/common/Gemini_ImageValidation.ts
|
|
@@ -833,27 +821,26 @@ import { registerProviderWorker } from "@workglow/ai-provider/common";
|
|
|
833
821
|
|
|
834
822
|
// src/ai-provider/GoogleGeminiProvider.ts
|
|
835
823
|
import { AiProvider as AiProvider2 } from "@workglow/ai/worker";
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
}
|
|
824
|
+
import { createCloudProviderClass as createCloudProviderClass2 } from "@workglow/ai-provider/common";
|
|
825
|
+
var GEMINI_TASK_TYPES2 = [
|
|
826
|
+
"CountTokensTask",
|
|
827
|
+
"ModelInfoTask",
|
|
828
|
+
"TextGenerationTask",
|
|
829
|
+
"TextEmbeddingTask",
|
|
830
|
+
"TextRewriterTask",
|
|
831
|
+
"TextSummaryTask",
|
|
832
|
+
"StructuredGenerationTask",
|
|
833
|
+
"ToolCallingTask",
|
|
834
|
+
"ModelSearchTask",
|
|
835
|
+
"ImageGenerateTask",
|
|
836
|
+
"ImageEditTask"
|
|
837
|
+
];
|
|
838
|
+
|
|
839
|
+
class GoogleGeminiProvider extends createCloudProviderClass2(AiProvider2, {
|
|
840
|
+
name: GOOGLE_GEMINI,
|
|
841
|
+
displayName: "Google Gemini",
|
|
842
|
+
taskTypes: GEMINI_TASK_TYPES2
|
|
843
|
+
}) {
|
|
857
844
|
}
|
|
858
845
|
|
|
859
846
|
// src/ai-provider/registerGeminiWorker.ts
|
|
@@ -868,4 +855,4 @@ export {
|
|
|
868
855
|
getApiKey
|
|
869
856
|
};
|
|
870
857
|
|
|
871
|
-
//# debugId=
|
|
858
|
+
//# debugId=1CFE1B4DBA4C0F3164756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/ai-provider/common/Gemini_Client.ts", "../src/ai-provider/registerGeminiInline.ts", "../src/ai-provider/common/Gemini_ModelSearch.ts", "../src/ai-provider/common/Gemini_Constants.ts", "../src/ai-provider/common/Gemini_Schema.ts", "../src/ai-provider/common/Gemini_ToolCalling.ts", "../src/ai-provider/common/Gemini_Chat.ts", "../src/ai-provider/common/Gemini_CountTokens.ts", "../src/ai-provider/common/Gemini_ImageEdit.ts", "../src/ai-provider/common/Gemini_ImageGenerate.ts", "../src/ai-provider/common/Gemini_ModelInfo.ts", "../src/ai-provider/common/Gemini_StructuredGeneration.ts", "../src/ai-provider/common/Gemini_TextEmbedding.ts", "../src/ai-provider/common/Gemini_TextGeneration.ts", "../src/ai-provider/common/Gemini_TextRewriter.ts", "../src/ai-provider/common/Gemini_TextSummary.ts", "../src/ai-provider/common/Gemini_JobRunFns.ts", "../src/ai-provider/GoogleGeminiQueuedProvider.ts", "../src/ai-provider/common/Gemini_ImageValidation.ts", "../src/ai-provider/registerGeminiWorker.ts", "../src/ai-provider/GoogleGeminiProvider.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { GeminiModelConfig } from \"./Gemini_ModelSchema\";\n\nlet _sdk: typeof import(\"@google/generative-ai\") | undefined;\n\nexport async function loadGeminiSDK() {\n if (!_sdk) {\n
|
|
5
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { loadProviderSdk, resolveApiKey } from \"@workglow/ai-provider/common\";\nimport type { GeminiModelConfig } from \"./Gemini_ModelSchema\";\n\nlet _sdk: typeof import(\"@google/generative-ai\") | undefined;\n\nexport async function loadGeminiSDK() {\n if (!_sdk) {\n _sdk = await loadProviderSdk<typeof import(\"@google/generative-ai\")>(\n \"@google/generative-ai\",\n \"Gemini\"\n );\n }\n return _sdk.GoogleGenerativeAI;\n}\n\ninterface ResolvedProviderConfig {\n readonly credential_key?: string;\n readonly api_key?: string;\n readonly model_name?: string;\n readonly embedding_task_type?: string | null;\n}\n\nexport function getApiKey(model: GeminiModelConfig | undefined): string {\n const config = model?.provider_config as ResolvedProviderConfig | undefined;\n return resolveApiKey({\n config,\n envVar: [\"GOOGLE_API_KEY\", \"GEMINI_API_KEY\"],\n providerLabel: \"Google\",\n });\n}\n\nexport function getModelName(model: GeminiModelConfig | undefined): string {\n const name = model?.provider_config?.model_name;\n if (!name) {\n throw new Error(\"Missing model name in provider_config.model_name.\");\n }\n return name;\n}\n",
|
|
6
6
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRegisterOptions } from \"@workglow/ai\";\nimport { registerProviderInline } from \"@workglow/ai-provider/common\";\nimport { GEMINI_PREVIEW_TASKS, GEMINI_STREAM_TASKS, GEMINI_TASKS } from \"./common/Gemini_JobRunFns\";\nimport { GoogleGeminiQueuedProvider } from \"./GoogleGeminiQueuedProvider\";\nimport { registerGeminiImageValidator } from \"./common/Gemini_ImageValidation\";\n\nexport async function registerGeminiInline(options?: AiProviderRegisterOptions): Promise<void> {\n registerGeminiImageValidator();\n await registerProviderInline(\n new GoogleGeminiQueuedProvider(GEMINI_TASKS, GEMINI_STREAM_TASKS, GEMINI_PREVIEW_TASKS),\n \"Google Gemini\",\n options\n );\n}\n",
|
|
7
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ModelSearchResultItem,\n ModelSearchTaskInput,\n ModelSearchTaskOutput,\n} from \"@workglow/ai\";\nimport { normalizedModelSearchQuery } from \"@workglow/ai-provider/common\";\nimport { GOOGLE_GEMINI } from \"./Gemini_Constants\";\n\ninterface GeminiModelEntry {\n readonly label: string;\n readonly value: string;\n readonly tasks?: readonly string[];\n}\n\nconst GEMINI_MODELS: readonly GeminiModelEntry[] = [\n { label: \"gemini-3.1-pro-preview\", value: \"gemini-3.1-pro-preview\" },\n { label: \"gemini-3-flash-preview\", value: \"gemini-3-flash-preview\" },\n { label: \"gemini-3.1-flash-lite-preview\", value: \"gemini-3.1-flash-lite-preview\" },\n { label: \"gemini-2.5-flash\", value: \"gemini-2.5-flash\" },\n { label: \"gemini-2.5-pro\", value: \"gemini-2.5-pro\" },\n // Embedding models\n {\n label: \"gemini-embedding-2\",\n value: \"gemini-embedding-2\",\n tasks: [\"TextEmbeddingTask\"],\n },\n {\n label: \"gemini-embedding-001\",\n value: \"gemini-embedding-001\",\n tasks: [\"TextEmbeddingTask\"],\n },\n // Image-output models\n {\n label: \"gemini-3.1-flash-image-preview\",\n value: \"gemini-3.1-flash-image-preview\",\n tasks: [\"ImageGenerateTask\", \"ImageEditTask\"],\n },\n {\n label: \"gemini-3-pro-image-preview\",\n value: \"gemini-3-pro-image-preview\",\n tasks: [\"ImageGenerateTask\", \"ImageEditTask\"],\n },\n {\n label: \"imagen-4.0-generate-001\",\n value: \"imagen-4.0-generate-001\",\n tasks: [\"ImageGenerateTask\"],\n },\n];\n\ninterface GeminiApiModel {\n readonly name: string;\n readonly displayName?: string;\n readonly description?: string;\n readonly supportedGenerationMethods?: readonly string[];\n}\n\nfunction tasksForGeminiApiModel(model: GeminiApiModel, id: string): string[] {\n const staticEntry = GEMINI_MODELS.find((m) => m.value === id);\n if (staticEntry?.tasks) return [...staticEntry.tasks];\n\n const methods = model.supportedGenerationMethods ?? [];\n if (methods.some((method) => method.toLowerCase().includes(\"embed\"))) {\n return [\"TextEmbeddingTask\"];\n }\n return [];\n}\n\nfunction mapGeminiModel(model: GeminiApiModel): ModelSearchResultItem {\n const id = model.name.startsWith(\"models/\") ? model.name.slice(\"models/\".length) : model.name;\n const title = model.displayName || id;\n return {\n id,\n label: model.displayName ?
|
|
7
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ModelSearchResultItem,\n ModelSearchTaskInput,\n ModelSearchTaskOutput,\n} from \"@workglow/ai\";\nimport { normalizedModelSearchQuery } from \"@workglow/ai-provider/common\";\nimport { GOOGLE_GEMINI } from \"./Gemini_Constants\";\n\ninterface GeminiModelEntry {\n readonly label: string;\n readonly value: string;\n readonly tasks?: readonly string[];\n}\n\nconst GEMINI_MODELS: readonly GeminiModelEntry[] = [\n { label: \"gemini-3.1-pro-preview\", value: \"gemini-3.1-pro-preview\" },\n { label: \"gemini-3-flash-preview\", value: \"gemini-3-flash-preview\" },\n { label: \"gemini-3.1-flash-lite-preview\", value: \"gemini-3.1-flash-lite-preview\" },\n { label: \"gemini-2.5-flash\", value: \"gemini-2.5-flash\" },\n { label: \"gemini-2.5-pro\", value: \"gemini-2.5-pro\" },\n // Embedding models\n {\n label: \"gemini-embedding-2\",\n value: \"gemini-embedding-2\",\n tasks: [\"TextEmbeddingTask\"],\n },\n {\n label: \"gemini-embedding-001\",\n value: \"gemini-embedding-001\",\n tasks: [\"TextEmbeddingTask\"],\n },\n // Image-output models\n {\n label: \"gemini-3.1-flash-image-preview\",\n value: \"gemini-3.1-flash-image-preview\",\n tasks: [\"ImageGenerateTask\", \"ImageEditTask\"],\n },\n {\n label: \"gemini-3-pro-image-preview\",\n value: \"gemini-3-pro-image-preview\",\n tasks: [\"ImageGenerateTask\", \"ImageEditTask\"],\n },\n {\n label: \"imagen-4.0-generate-001\",\n value: \"imagen-4.0-generate-001\",\n tasks: [\"ImageGenerateTask\"],\n },\n];\n\ninterface GeminiApiModel {\n readonly name: string;\n readonly displayName?: string;\n readonly description?: string;\n readonly supportedGenerationMethods?: readonly string[];\n}\n\nfunction tasksForGeminiApiModel(model: GeminiApiModel, id: string): string[] {\n const staticEntry = GEMINI_MODELS.find((m) => m.value === id);\n if (staticEntry?.tasks) return [...staticEntry.tasks];\n\n const methods = model.supportedGenerationMethods ?? [];\n if (methods.some((method) => method.toLowerCase().includes(\"embed\"))) {\n return [\"TextEmbeddingTask\"];\n }\n return [];\n}\n\nfunction mapGeminiModel(model: GeminiApiModel): ModelSearchResultItem {\n const id = model.name.startsWith(\"models/\") ? model.name.slice(\"models/\".length) : model.name;\n const title = model.displayName || id;\n return {\n id,\n label: title,\n description: model.displayName ? id : (model.description ?? \"\"),\n record: {\n model_id: id,\n provider: GOOGLE_GEMINI,\n title,\n description: model.description ?? \"\",\n tasks: tasksForGeminiApiModel(model, id),\n provider_config: { model_name: id },\n metadata: {},\n },\n raw: model,\n };\n}\n\nasync function listGeminiModels(\n credentialKey: string,\n signal?: AbortSignal\n): Promise<ModelSearchResultItem[]> {\n const params = new URLSearchParams({ key: credentialKey });\n const response = await fetch(\n `https://generativelanguage.googleapis.com/v1beta/models?${params}`,\n {\n signal,\n }\n );\n if (!response.ok) throw new Error(`Gemini API returned ${response.status}`);\n const body = (await response.json()) as { models?: GeminiApiModel[] };\n return (body.models ?? []).map(mapGeminiModel);\n}\n\nexport const Gemini_ModelSearch: AiProviderRunFn<\n ModelSearchTaskInput,\n ModelSearchTaskOutput\n> = async (input, _model, _onProgress, signal) => {\n const q = normalizedModelSearchQuery(input.query);\n if (input.credential_key) {\n const models = await listGeminiModels(input.credential_key, signal);\n const results = q\n ? models.filter((m) => m.id.toLowerCase().includes(q) || m.label.toLowerCase().includes(q))\n : models;\n return { results };\n }\n\n const filtered = q\n ? GEMINI_MODELS.filter(\n (m) => m.value.toLowerCase().includes(q) || m.label.toLowerCase().includes(q)\n )\n : GEMINI_MODELS;\n const results: ModelSearchResultItem[] = filtered.map((m) => ({\n id: m.value,\n label: m.label,\n description: \"\",\n record: {\n model_id: m.value,\n provider: GOOGLE_GEMINI,\n title: m.value,\n description: \"\",\n tasks: m.tasks ? [...m.tasks] : [],\n provider_config: { model_name: m.value },\n metadata: {},\n },\n raw: m,\n }));\n return { results };\n};\n",
|
|
8
8
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const GOOGLE_GEMINI = \"GOOGLE_GEMINI\";\n",
|
|
9
9
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Recursively strip JSON Schema properties that the Gemini API does not support\n * (e.g. `additionalProperties`). Returns a shallow-cloned schema without mutating the original.\n */\nexport function sanitizeSchemaForGemini(schema: Record<string, unknown>): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(schema)) {\n if (key === \"additionalProperties\") continue;\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n result[key] = sanitizeSchemaForGemini(value as Record<string, unknown>);\n } else {\n result[key] = value;\n }\n }\n return result;\n}\n",
|
|
10
10
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { FunctionCallingMode } from \"@google/generative-ai\";\nimport { buildToolDescription, filterValidToolCalls } from \"@workglow/ai/worker\";\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n ChatMessage,\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n ToolCalls,\n ToolDefinition,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { GeminiModelConfig } from \"./Gemini_ModelSchema\";\nimport { getApiKey, getModelName, loadGeminiSDK } from \"./Gemini_Client\";\nimport { sanitizeSchemaForGemini } from \"./Gemini_Schema\";\n\nexport function buildGeminiContents(\n messages: ReadonlyArray<ChatMessage> | undefined,\n prompt: unknown\n): any[] {\n if (!messages || messages.length === 0) {\n return [{ role: \"user\", parts: [{ text: prompt }] }];\n }\n\n // Index tool_use ids → names from any prior assistant turn (Gemini wants\n // the function name on the functionResponse, not just the id).\n const toolUseNames = new Map<string, string>();\n for (const msg of messages) {\n if (msg.role !== \"assistant\") continue;\n for (const block of msg.content) {\n if (block.type === \"tool_use\") {\n toolUseNames.set(block.id, block.name);\n }\n }\n }\n\n const contents: any[] = [];\n for (const msg of messages) {\n if (msg.role === \"user\") {\n const parts: any[] = [];\n for (const block of msg.content) {\n if (block.type === \"text\") {\n parts.push({ text: block.text });\n } else if (block.type === \"image\") {\n parts.push({ inlineData: { mimeType: block.mimeType, data: block.data } });\n }\n }\n contents.push({ role: \"user\", parts });\n } else if (msg.role === \"assistant\") {\n const parts: any[] = [];\n for (const block of msg.content) {\n if (block.type === \"text\" && block.text) {\n parts.push({ text: block.text });\n } else if (block.type === \"tool_use\") {\n parts.push({ functionCall: { name: block.name, args: block.input } });\n }\n }\n if (parts.length > 0) contents.push({ role: \"model\", parts });\n } else if (msg.role === \"tool\") {\n const parts: any[] = [];\n for (const block of msg.content) {\n if (block.type !== \"tool_result\") continue;\n const name = toolUseNames.get(block.tool_use_id) ?? \"unknown\";\n const textContent = block.content\n .filter((b) => b.type === \"text\")\n .map((b) => (b as { type: \"text\"; text: string }).text)\n .join(\"\");\n let response: Record<string, unknown>;\n try {\n response = JSON.parse(textContent);\n } catch {\n response = { result: textContent };\n }\n parts.push({ functionResponse: { name, response } });\n }\n if (parts.length > 0) contents.push({ role: \"user\", parts });\n }\n }\n return contents;\n}\n\nfunction mapGeminiToolConfig(\n toolChoice: string | undefined\n):\n | { functionCallingConfig: { mode: FunctionCallingMode; allowedFunctionNames?: string[] } }\n | undefined {\n if (!toolChoice || toolChoice === \"auto\") {\n return { functionCallingConfig: { mode: \"AUTO\" as FunctionCallingMode } };\n }\n if (toolChoice === \"none\") {\n return { functionCallingConfig: { mode: \"NONE\" as FunctionCallingMode } };\n }\n if (toolChoice === \"required\") {\n return { functionCallingConfig: { mode: \"ANY\" as FunctionCallingMode } };\n }\n return {\n functionCallingConfig: {\n mode: \"ANY\" as FunctionCallingMode,\n allowedFunctionNames: [toolChoice],\n },\n };\n}\n\nexport const Gemini_ToolCalling: AiProviderRunFn<\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n GeminiModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Gemini tool calling\");\n const GoogleGenerativeAI = await loadGeminiSDK();\n const genAI = new GoogleGenerativeAI(getApiKey(model));\n\n const functionDeclarations = input.tools.map((t: ToolDefinition) => ({\n name: t.name,\n description: buildToolDescription(t),\n parameters: sanitizeSchemaForGemini(t.inputSchema as Record<string, unknown>) as any,\n }));\n\n const toolConfig = mapGeminiToolConfig(input.toolChoice);\n\n const genModel = genAI.getGenerativeModel({\n model: getModelName(model),\n tools: [{ functionDeclarations }],\n toolConfig: toolConfig as any,\n systemInstruction: input.systemPrompt || undefined,\n generationConfig: {\n maxOutputTokens: input.maxTokens,\n temperature: input.temperature,\n },\n });\n\n const contents = buildGeminiContents(input.messages, input.prompt);\n\n const result = await genModel.generateContent({ contents });\n\n const parts = result.response.candidates?.[0]?.content?.parts ?? [];\n\n const textParts: string[] = [];\n const toolCalls: ToolCalls = [];\n let callIndex = 0;\n\n for (const part of parts) {\n if (\"text\" in part && part.text) {\n textParts.push(part.text);\n }\n if (\"functionCall\" in part && part.functionCall) {\n const id = `call_${callIndex++}`;\n toolCalls.push({\n id,\n name: part.functionCall.name,\n input: (part.functionCall.args as Record<string, unknown>) ?? {},\n });\n }\n }\n\n update_progress(100, \"Completed Gemini tool calling\");\n return { text: textParts.join(\"\"), toolCalls: filterValidToolCalls(toolCalls, input.tools) };\n};\n\nexport const Gemini_ToolCalling_Stream: AiProviderStreamFn<\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n GeminiModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<ToolCallingTaskOutput>> {\n const GoogleGenerativeAI = await loadGeminiSDK();\n const genAI = new GoogleGenerativeAI(getApiKey(model));\n\n const functionDeclarations = input.tools.map((t: ToolDefinition) => ({\n name: t.name,\n description: buildToolDescription(t),\n parameters: sanitizeSchemaForGemini(t.inputSchema as Record<string, unknown>) as any,\n }));\n\n const toolConfig = mapGeminiToolConfig(input.toolChoice);\n\n const genModel = genAI.getGenerativeModel({\n model: getModelName(model),\n tools: [{ functionDeclarations }],\n toolConfig: toolConfig as any,\n systemInstruction: input.systemPrompt || undefined,\n generationConfig: {\n maxOutputTokens: input.maxTokens,\n temperature: input.temperature,\n },\n });\n\n const contents = buildGeminiContents(input.messages, input.prompt);\n\n const result = await genModel.generateContentStream({ contents }, { signal });\n\n let callIndex = 0;\n\n for await (const chunk of result.stream) {\n const parts = chunk.candidates?.[0]?.content?.parts ?? [];\n for (const part of parts) {\n if (\"text\" in part && part.text) {\n yield { type: \"text-delta\", port: \"text\", textDelta: part.text };\n }\n if (\"functionCall\" in part && part.functionCall) {\n const id = `call_${callIndex++}`;\n yield {\n type: \"object-delta\",\n port: \"toolCalls\",\n objectDelta: [\n {\n id,\n name: part.functionCall.name,\n input: (part.functionCall.args as Record<string, unknown>) ?? {},\n },\n ],\n };\n }\n }\n }\n\n yield { type: \"finish\", data: { text: \"\", toolCalls: [] } as ToolCallingTaskOutput };\n};\n",
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { GeminiModelConfig } from \"./Gemini_ModelSchema\";\nimport { getApiKey, getModelName, loadGeminiSDK } from \"./Gemini_Client\";\n\nexport const Gemini_TextRewriter: AiProviderRunFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n GeminiModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Gemini text rewriting\");\n const GoogleGenerativeAI = await loadGeminiSDK();\n const genAI = new GoogleGenerativeAI(getApiKey(model));\n const genModel = genAI.getGenerativeModel({\n model: getModelName(model),\n systemInstruction: input.prompt,\n });\n\n const result = await genModel.generateContent({\n contents: [{ role: \"user\", parts: [{ text: input.text }] }],\n });\n\n const text = result.response.text();\n update_progress(100, \"Completed Gemini text rewriting\");\n return { text };\n};\n\nexport const Gemini_TextRewriter_Stream: AiProviderStreamFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n GeminiModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextRewriterTaskOutput>> {\n const GoogleGenerativeAI = await loadGeminiSDK();\n const genAI = new GoogleGenerativeAI(getApiKey(model));\n const genModel = genAI.getGenerativeModel({\n model: getModelName(model),\n systemInstruction: input.prompt,\n });\n\n const result = await genModel.generateContentStream(\n { contents: [{ role: \"user\", parts: [{ text: input.text }] }] },\n { signal }\n );\n\n for await (const chunk of result.stream) {\n const text = chunk.text();\n if (text) {\n yield { type: \"text-delta\", port: \"text\", textDelta: text };\n }\n }\n yield { type: \"finish\", data: {} as TextRewriterTaskOutput };\n};\n",
|
|
20
20
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { GeminiModelConfig } from \"./Gemini_ModelSchema\";\nimport { getApiKey, getModelName, loadGeminiSDK } from \"./Gemini_Client\";\n\nexport const Gemini_TextSummary: AiProviderRunFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n GeminiModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Gemini text summarization\");\n const GoogleGenerativeAI = await loadGeminiSDK();\n const genAI = new GoogleGenerativeAI(getApiKey(model));\n const genModel = genAI.getGenerativeModel({\n model: getModelName(model),\n systemInstruction: \"Summarize the following text concisely.\",\n });\n\n const result = await genModel.generateContent({\n contents: [{ role: \"user\", parts: [{ text: input.text }] }],\n });\n\n const text = result.response.text();\n update_progress(100, \"Completed Gemini text summarization\");\n return { text };\n};\n\nexport const Gemini_TextSummary_Stream: AiProviderStreamFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n GeminiModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextSummaryTaskOutput>> {\n const GoogleGenerativeAI = await loadGeminiSDK();\n const genAI = new GoogleGenerativeAI(getApiKey(model));\n const genModel = genAI.getGenerativeModel({\n model: getModelName(model),\n systemInstruction: \"Summarize the following text concisely.\",\n });\n\n const result = await genModel.generateContentStream(\n { contents: [{ role: \"user\", parts: [{ text: input.text }] }] },\n { signal }\n );\n\n for await (const chunk of result.stream) {\n const text = chunk.text();\n if (text) {\n yield { type: \"text-delta\", port: \"text\", textDelta: text };\n }\n }\n yield { type: \"finish\", data: {} as TextSummaryTaskOutput };\n};\n",
|
|
21
21
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderPreviewRunFn, AiProviderRunFn, AiProviderStreamFn } from \"@workglow/ai\";\nimport type { GeminiModelConfig } from \"./Gemini_ModelSchema\";\nimport { Gemini_ModelSearch } from \"./Gemini_ModelSearch\";\n\nexport { loadGeminiSDK, getApiKey, getModelName } from \"./Gemini_Client\";\nexport { sanitizeSchemaForGemini } from \"./Gemini_Schema\";\n\nimport { Gemini_Chat, Gemini_Chat_Stream } from \"./Gemini_Chat\";\nimport { Gemini_CountTokens, Gemini_CountTokens_Preview } from \"./Gemini_CountTokens\";\nimport { Gemini_ImageEdit, Gemini_ImageEdit_Stream } from \"./Gemini_ImageEdit\";\nimport { Gemini_ImageGenerate, Gemini_ImageGenerate_Stream } from \"./Gemini_ImageGenerate\";\nimport { Gemini_ModelInfo } from \"./Gemini_ModelInfo\";\nimport {\n Gemini_StructuredGeneration,\n Gemini_StructuredGeneration_Stream,\n} from \"./Gemini_StructuredGeneration\";\nimport { Gemini_TextEmbedding } from \"./Gemini_TextEmbedding\";\nimport { Gemini_TextGeneration, Gemini_TextGeneration_Stream } from \"./Gemini_TextGeneration\";\nimport { Gemini_TextRewriter, Gemini_TextRewriter_Stream } from \"./Gemini_TextRewriter\";\nimport { Gemini_TextSummary, Gemini_TextSummary_Stream } from \"./Gemini_TextSummary\";\nimport { Gemini_ToolCalling, Gemini_ToolCalling_Stream } from \"./Gemini_ToolCalling\";\n\nexport const GEMINI_TASKS: Record<string, AiProviderRunFn<any, any, GeminiModelConfig>> = {\n AiChatTask: Gemini_Chat,\n CountTokensTask: Gemini_CountTokens,\n ModelInfoTask: Gemini_ModelInfo,\n TextGenerationTask: Gemini_TextGeneration,\n TextEmbeddingTask: Gemini_TextEmbedding,\n TextRewriterTask: Gemini_TextRewriter,\n TextSummaryTask: Gemini_TextSummary,\n StructuredGenerationTask: Gemini_StructuredGeneration,\n ToolCallingTask: Gemini_ToolCalling,\n ModelSearchTask: Gemini_ModelSearch,\n ImageGenerateTask: Gemini_ImageGenerate,\n ImageEditTask: Gemini_ImageEdit,\n};\n\nexport const GEMINI_STREAM_TASKS: Record<\n string,\n AiProviderStreamFn<any, any, GeminiModelConfig>\n> = {\n AiChatTask: Gemini_Chat_Stream,\n TextGenerationTask: Gemini_TextGeneration_Stream,\n TextRewriterTask: Gemini_TextRewriter_Stream,\n TextSummaryTask: Gemini_TextSummary_Stream,\n StructuredGenerationTask: Gemini_StructuredGeneration_Stream,\n ToolCallingTask: Gemini_ToolCalling_Stream,\n ImageGenerateTask: Gemini_ImageGenerate_Stream,\n ImageEditTask: Gemini_ImageEdit_Stream,\n};\n\nexport const GEMINI_PREVIEW_TASKS: Record<\n string,\n AiProviderPreviewRunFn<any, any, GeminiModelConfig>\n> = {\n CountTokensTask: Gemini_CountTokens_Preview,\n};\n",
|
|
22
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai\";\nimport
|
|
22
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai\";\nimport { createCloudProviderClass } from \"@workglow/ai-provider/common\";\nimport { GOOGLE_GEMINI } from \"./common/Gemini_Constants\";\nimport type { GeminiModelConfig } from \"./common/Gemini_ModelSchema\";\n\nconst GEMINI_TASK_TYPES = [\n \"CountTokensTask\",\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"StructuredGenerationTask\",\n \"ToolCallingTask\",\n \"ModelSearchTask\",\n \"ImageGenerateTask\",\n \"ImageEditTask\",\n] as const;\n\n/** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */\nexport class GoogleGeminiQueuedProvider extends createCloudProviderClass<\n GeminiModelConfig,\n typeof GEMINI_TASK_TYPES\n>(AiProvider, {\n name: GOOGLE_GEMINI,\n displayName: \"Google Gemini\",\n taskTypes: GEMINI_TASK_TYPES,\n}) {}\n",
|
|
23
23
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiImageOutputTask, ProviderUnsupportedFeatureError } from \"@workglow/ai\";\nimport type { ModelConfig } from \"@workglow/ai\";\n\nimport { GOOGLE_GEMINI } from \"./Gemini_Constants\";\n\n/**\n * Registers the Gemini per-provider image validator. Called at provider registration time\n * (both inline and worker-backed paths) so it runs on the main thread before any dispatch.\n *\n * Currently validates:\n * - ImageEditTask + non-null mask → throws (Gemini does not support mask-based inpainting).\n */\nexport function registerGeminiImageValidator(): void {\n AiImageOutputTask.registerProviderImageValidator(\n GOOGLE_GEMINI,\n (taskType, input, model: ModelConfig) => {\n if (taskType !== \"ImageEditTask\") return;\n if (input[\"mask\"] !== undefined && input[\"mask\"] !== null) {\n throw new ProviderUnsupportedFeatureError(\n \"mask\",\n model.model_id ?? \"gemini\",\n \"Gemini does not support mask-based inpainting; remove the mask or use OpenAI gpt-image-2\"\n );\n }\n }\n );\n}\n",
|
|
24
24
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { registerProviderWorker } from \"@workglow/ai-provider/common\";\nimport { GEMINI_PREVIEW_TASKS, GEMINI_STREAM_TASKS, GEMINI_TASKS } from \"./common/Gemini_JobRunFns\";\nimport { GoogleGeminiProvider } from \"./GoogleGeminiProvider\";\n\nexport async function registerGeminiWorker(): Promise<void> {\n await registerProviderWorker(\n (ws) =>\n new GoogleGeminiProvider(\n GEMINI_TASKS,\n GEMINI_STREAM_TASKS,\n GEMINI_PREVIEW_TASKS\n ).registerOnWorkerServer(ws),\n \"Google Gemini\"\n );\n}\n",
|
|
25
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai/worker\";\nimport
|
|
25
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai/worker\";\nimport { createCloudProviderClass } from \"@workglow/ai-provider/common\";\nimport { GOOGLE_GEMINI } from \"./common/Gemini_Constants\";\nimport type { GeminiModelConfig } from \"./common/Gemini_ModelSchema\";\n\nconst GEMINI_TASK_TYPES = [\n \"CountTokensTask\",\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"StructuredGenerationTask\",\n \"ToolCallingTask\",\n \"ModelSearchTask\",\n \"ImageGenerateTask\",\n \"ImageEditTask\",\n] as const;\n\n/**\n * Worker-server registration for Google Gemini cloud models. Imports\n * `AiProvider` from `@workglow/ai/worker` so the SDK is only loaded in the\n * worker.\n */\nexport class GoogleGeminiProvider extends createCloudProviderClass<\n GeminiModelConfig,\n typeof GEMINI_TASK_TYPES\n>(AiProvider, {\n name: GOOGLE_GEMINI,\n displayName: \"Google Gemini\",\n taskTypes: GEMINI_TASK_TYPES,\n}) {}\n"
|
|
26
26
|
],
|
|
27
|
-
"mappings": ";;;;;;;;;AAQA,IAAI;AAEJ,eAAsB,aAAa,GAAG;AAAA,EACpC,IAAI,CAAC,MAAM;AAAA,IACT,IAAI;AAAA,MACF,OAAO,MAAa;AAAA,MACpB,MAAM;AAAA,MACN,MAAM,IAAI,MACR,oGACF;AAAA;AAAA,EAEJ;AAAA,EACA,OAAO,KAAK;AAAA;AAUP,SAAS,SAAS,CAAC,OAA8C;AAAA,EACtE,MAAM,SAAS,OAAO;AAAA,EACtB,MAAM,SACJ,QAAQ,kBACR,QAAQ,YACP,OAAO,YAAY,cAChB,QAAQ,KAAK,kBAAkB,QAAQ,KAAK,iBAC5C;AAAA,EACN,IAAI,CAAC,QAAQ;AAAA,IACX,MAAM,IAAI,MACR,yHACF;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGF,SAAS,YAAY,CAAC,OAA8C;AAAA,EACzE,MAAM,OAAO,OAAO,iBAAiB;AAAA,EACrC,IAAI,CAAC,MAAM;AAAA,IACT,MAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AAAA,EACA,OAAO;AAAA;;;AC5CT;;;ACKA;;;ACNO,IAAM,gBAAgB;;;ADe7B,IAAM,gBAA6C;AAAA,EACjD,EAAE,OAAO,0BAA0B,OAAO,yBAAyB;AAAA,EACnE,EAAE,OAAO,0BAA0B,OAAO,yBAAyB;AAAA,EACnE,EAAE,OAAO,iCAAiC,OAAO,gCAAgC;AAAA,EACjF,EAAE,OAAO,oBAAoB,OAAO,mBAAmB;AAAA,EACvD,EAAE,OAAO,kBAAkB,OAAO,iBAAiB;AAAA,EAEnD;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO,CAAC,mBAAmB;AAAA,EAC7B;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO,CAAC,mBAAmB;AAAA,EAC7B;AAAA,EAEA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO,CAAC,qBAAqB,eAAe;AAAA,EAC9C;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO,CAAC,qBAAqB,eAAe;AAAA,EAC9C;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO,CAAC,mBAAmB;AAAA,EAC7B;AACF;AASA,SAAS,sBAAsB,CAAC,OAAuB,IAAsB;AAAA,EAC3E,MAAM,cAAc,cAAc,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE;AAAA,EAC5D,IAAI,aAAa;AAAA,IAAO,OAAO,CAAC,GAAG,YAAY,KAAK;AAAA,EAEpD,MAAM,UAAU,MAAM,8BAA8B,CAAC;AAAA,EACrD,IAAI,QAAQ,KAAK,CAAC,WAAW,OAAO,YAAY,EAAE,SAAS,OAAO,CAAC,GAAG;AAAA,IACpE,OAAO,CAAC,mBAAmB;AAAA,EAC7B;AAAA,EACA,OAAO,CAAC;AAAA;AAGV,SAAS,cAAc,CAAC,OAA8C;AAAA,EACpE,MAAM,KAAK,MAAM,KAAK,WAAW,SAAS,IAAI,MAAM,KAAK,MAAM,UAAU,MAAM,IAAI,MAAM;AAAA,EACzF,MAAM,QAAQ,MAAM,eAAe;AAAA,EACnC,OAAO;AAAA,IACL;AAAA,IACA,OAAO,MAAM,cAAc,GAAG,OAAO,MAAM,gBAAgB;AAAA,IAC3D,aAAa,MAAM,eAAe;AAAA,IAClC,QAAQ;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,MACV;AAAA,MACA,aAAa,MAAM,eAAe;AAAA,MAClC,OAAO,uBAAuB,OAAO,EAAE;AAAA,MACvC,iBAAiB,EAAE,YAAY,GAAG;AAAA,MAClC,UAAU,CAAC;AAAA,IACb;AAAA,IACA,KAAK;AAAA,EACP;AAAA;AAGF,eAAe,gBAAgB,CAC7B,eACA,QACkC;AAAA,EAClC,MAAM,SAAS,IAAI,gBAAgB,EAAE,KAAK,cAAc,CAAC;AAAA,EACzD,MAAM,WAAW,MAAM,MACrB,2DAA2D,UAC3D;AAAA,IACE;AAAA,EACF,CACF;AAAA,EACA,IAAI,CAAC,SAAS;AAAA,IAAI,MAAM,IAAI,MAAM,uBAAuB,SAAS,QAAQ;AAAA,EAC1E,MAAM,OAAQ,MAAM,SAAS,KAAK;AAAA,EAClC,QAAQ,KAAK,UAAU,CAAC,GAAG,IAAI,cAAc;AAAA;AAGxC,IAAM,qBAGT,OAAO,OAAO,QAAQ,aAAa,WAAW;AAAA,EAChD,MAAM,IAAI,2BAA2B,MAAM,KAAK;AAAA,EAChD,IAAI,MAAM,gBAAgB;AAAA,IACxB,MAAM,SAAS,MAAM,iBAAiB,MAAM,gBAAgB,MAAM;AAAA,IAClE,MAAM,WAAU,IACZ,OAAO,OAAO,CAAC,MAAM,EAAE,GAAG,YAAY,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,YAAY,EAAE,SAAS,CAAC,CAAC,IACxF;AAAA,IACJ,OAAO,EAAE,kBAAQ;AAAA,EACnB;AAAA,EAEA,MAAM,WAAW,IACb,cAAc,OACZ,CAAC,MAAM,EAAE,MAAM,YAAY,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,YAAY,EAAE,SAAS,CAAC,CAC9E,IACA;AAAA,EACJ,MAAM,UAAmC,SAAS,IAAI,CAAC,OAAO;AAAA,IAC5D,IAAI,EAAE;AAAA,IACN,OAAO,EAAE;AAAA,IACT,aAAa;AAAA,IACb,QAAQ;AAAA,MACN,UAAU,EAAE;AAAA,MACZ,UAAU;AAAA,MACV,OAAO,EAAE;AAAA,MACT,aAAa;AAAA,MACb,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC;AAAA,MACjC,iBAAiB,EAAE,YAAY,EAAE,MAAM;AAAA,MACvC,UAAU,CAAC;AAAA,IACb;AAAA,IACA,KAAK;AAAA,EACP,EAAE;AAAA,EACF,OAAO,EAAE,QAAQ;AAAA;;;AErIZ,SAAS,uBAAuB,CAAC,QAA0D;AAAA,EAChG,MAAM,SAAkC,CAAC;AAAA,EACzC,YAAY,KAAK,UAAU,OAAO,QAAQ,MAAM,GAAG;AAAA,IACjD,IAAI,QAAQ;AAAA,MAAwB;AAAA,IACpC,IAAI,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,GAAG;AAAA,MAC/D,OAAO,OAAO,wBAAwB,KAAgC;AAAA,IACxE,EAAO;AAAA,MACL,OAAO,OAAO;AAAA;AAAA,EAElB;AAAA,EACA,OAAO;AAAA;;;ACbT;AAeO,SAAS,mBAAmB,CACjC,UACA,QACO;AAAA,EACP,IAAI,CAAC,YAAY,SAAS,WAAW,GAAG;AAAA,IACtC,OAAO,CAAC,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,EAAE,CAAC;AAAA,EACrD;AAAA,EAIA,MAAM,eAAe,IAAI;AAAA,EACzB,WAAW,OAAO,UAAU;AAAA,IAC1B,IAAI,IAAI,SAAS;AAAA,MAAa;AAAA,IAC9B,WAAW,SAAS,IAAI,SAAS;AAAA,MAC/B,IAAI,MAAM,SAAS,YAAY;AAAA,QAC7B,aAAa,IAAI,MAAM,IAAI,MAAM,IAAI;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,WAAkB,CAAC;AAAA,EACzB,WAAW,OAAO,UAAU;AAAA,IAC1B,IAAI,IAAI,SAAS,QAAQ;AAAA,MACvB,MAAM,QAAe,CAAC;AAAA,MACtB,WAAW,SAAS,IAAI,SAAS;AAAA,QAC/B,IAAI,MAAM,SAAS,QAAQ;AAAA,UACzB,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,QACjC,EAAO,SAAI,MAAM,SAAS,SAAS;AAAA,UACjC,MAAM,KAAK,EAAE,YAAY,EAAE,UAAU,MAAM,UAAU,MAAM,MAAM,KAAK,EAAE,CAAC;AAAA,QAC3E;AAAA,MACF;AAAA,MACA,SAAS,KAAK,EAAE,MAAM,QAAQ,MAAM,CAAC;AAAA,IACvC,EAAO,SAAI,IAAI,SAAS,aAAa;AAAA,MACnC,MAAM,QAAe,CAAC;AAAA,MACtB,WAAW,SAAS,IAAI,SAAS;AAAA,QAC/B,IAAI,MAAM,SAAS,UAAU,MAAM,MAAM;AAAA,UACvC,MAAM,KAAK,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,QACjC,EAAO,SAAI,MAAM,SAAS,YAAY;AAAA,UACpC,MAAM,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,CAAC;AAAA,QACtE;AAAA,MACF;AAAA,MACA,IAAI,MAAM,SAAS;AAAA,QAAG,SAAS,KAAK,EAAE,MAAM,SAAS,MAAM,CAAC;AAAA,IAC9D,EAAO,SAAI,IAAI,SAAS,QAAQ;AAAA,MAC9B,MAAM,QAAe,CAAC;AAAA,MACtB,WAAW,SAAS,IAAI,SAAS;AAAA,QAC/B,IAAI,MAAM,SAAS;AAAA,UAAe;AAAA,QAClC,MAAM,OAAO,aAAa,IAAI,MAAM,WAAW,KAAK;AAAA,QACpD,MAAM,cAAc,MAAM,QACvB,OAAO,CAAC,MAAM,EAAE,SAAS,MAAM,EAC/B,IAAI,CAAC,MAAO,EAAqC,IAAI,EACrD,KAAK,EAAE;AAAA,QACV,IAAI;AAAA,QACJ,IAAI;AAAA,UACF,WAAW,KAAK,MAAM,WAAW;AAAA,UACjC,MAAM;AAAA,UACN,WAAW,EAAE,QAAQ,YAAY;AAAA;AAAA,QAEnC,MAAM,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,EAAE,CAAC;AAAA,MACrD;AAAA,MACA,IAAI,MAAM,SAAS;AAAA,QAAG,SAAS,KAAK,EAAE,MAAM,QAAQ,MAAM,CAAC;AAAA,IAC7D;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGT,SAAS,mBAAmB,CAC1B,YAGY;AAAA,EACZ,IAAI,CAAC,cAAc,eAAe,QAAQ;AAAA,IACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,OAA8B,EAAE;AAAA,EAC1E;AAAA,EACA,IAAI,eAAe,QAAQ;AAAA,IACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,OAA8B,EAAE;AAAA,EAC1E;AAAA,EACA,IAAI,eAAe,YAAY;AAAA,IAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,MAA6B,EAAE;AAAA,EACzE;AAAA,EACA,OAAO;AAAA,IACL,uBAAuB;AAAA,MACrB,MAAM;AAAA,MACN,sBAAsB,CAAC,UAAU;AAAA,IACnC;AAAA,EACF;AAAA;AAGK,IAAM,qBAIT,OAAO,OAAO,OAAO,iBAAiB,WAAW;AAAA,EACnD,gBAAgB,GAAG,8BAA8B;AAAA,EACjD,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EAErD,MAAM,uBAAuB,MAAM,MAAM,IAAI,CAAC,OAAuB;AAAA,IACnE,MAAM,EAAE;AAAA,IACR,aAAa,qBAAqB,CAAC;AAAA,IACnC,YAAY,wBAAwB,EAAE,WAAsC;AAAA,EAC9E,EAAE;AAAA,EAEF,MAAM,aAAa,oBAAoB,MAAM,UAAU;AAAA,EAEvD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,OAAO,CAAC,EAAE,qBAAqB,CAAC;AAAA,IAChC;AAAA,IACA,mBAAmB,MAAM,gBAAgB;AAAA,IACzC,kBAAkB;AAAA,MAChB,iBAAiB,MAAM;AAAA,MACvB,aAAa,MAAM;AAAA,IACrB;AAAA,EACF,CAAC;AAAA,EAED,MAAM,WAAW,oBAAoB,MAAM,UAAU,MAAM,MAAM;AAAA,EAEjE,MAAM,SAAS,MAAM,SAAS,gBAAgB,EAAE,SAAS,CAAC;AAAA,EAE1D,MAAM,QAAQ,OAAO,SAAS,aAAa,IAAI,SAAS,SAAS,CAAC;AAAA,EAElE,MAAM,YAAsB,CAAC;AAAA,EAC7B,MAAM,YAAuB,CAAC;AAAA,EAC9B,IAAI,YAAY;AAAA,EAEhB,WAAW,QAAQ,OAAO;AAAA,IACxB,IAAI,UAAU,QAAQ,KAAK,MAAM;AAAA,MAC/B,UAAU,KAAK,KAAK,IAAI;AAAA,IAC1B;AAAA,IACA,IAAI,kBAAkB,QAAQ,KAAK,cAAc;AAAA,MAC/C,MAAM,KAAK,QAAQ;AAAA,MACnB,UAAU,KAAK;AAAA,QACb;AAAA,QACA,MAAM,KAAK,aAAa;AAAA,QACxB,OAAQ,KAAK,aAAa,QAAoC,CAAC;AAAA,MACjE,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,gBAAgB,KAAK,+BAA+B;AAAA,EACpD,OAAO,EAAE,MAAM,UAAU,KAAK,EAAE,GAAG,WAAW,qBAAqB,WAAW,MAAM,KAAK,EAAE;AAAA;AAGtF,IAAM,4BAIT,gBAAgB,CAAC,OAAO,OAAO,QAA2D;AAAA,EAC5F,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EAErD,MAAM,uBAAuB,MAAM,MAAM,IAAI,CAAC,OAAuB;AAAA,IACnE,MAAM,EAAE;AAAA,IACR,aAAa,qBAAqB,CAAC;AAAA,IACnC,YAAY,wBAAwB,EAAE,WAAsC;AAAA,EAC9E,EAAE;AAAA,EAEF,MAAM,aAAa,oBAAoB,MAAM,UAAU;AAAA,EAEvD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,OAAO,CAAC,EAAE,qBAAqB,CAAC;AAAA,IAChC;AAAA,IACA,mBAAmB,MAAM,gBAAgB;AAAA,IACzC,kBAAkB;AAAA,MAChB,iBAAiB,MAAM;AAAA,MACvB,aAAa,MAAM;AAAA,IACrB;AAAA,EACF,CAAC;AAAA,EAED,MAAM,WAAW,oBAAoB,MAAM,UAAU,MAAM,MAAM;AAAA,EAEjE,MAAM,SAAS,MAAM,SAAS,sBAAsB,EAAE,SAAS,GAAG,EAAE,OAAO,CAAC;AAAA,EAE5E,IAAI,YAAY;AAAA,EAEhB,iBAAiB,SAAS,OAAO,QAAQ;AAAA,IACvC,MAAM,QAAQ,MAAM,aAAa,IAAI,SAAS,SAAS,CAAC;AAAA,IACxD,WAAW,QAAQ,OAAO;AAAA,MACxB,IAAI,UAAU,QAAQ,KAAK,MAAM;AAAA,QAC/B,MAAM,EAAE,MAAM,cAAc,MAAM,QAAQ,WAAW,KAAK,KAAK;AAAA,MACjE;AAAA,MACA,IAAI,kBAAkB,QAAQ,KAAK,cAAc;AAAA,QAC/C,MAAM,KAAK,QAAQ;AAAA,QACnB,MAAM;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,UACN,aAAa;AAAA,YACX;AAAA,cACE;AAAA,cACA,MAAM,KAAK,aAAa;AAAA,cACxB,OAAQ,KAAK,aAAa,QAAoC,CAAC;AAAA,YACjE;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,EAAE,MAAM,UAAU,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC,EAAE,EAA2B;AAAA;;;AC5M9E,IAAM,cAIT,OAAO,OAAO,OAAO,iBAAiB,WAAW;AAAA,EACnD,gBAAgB,GAAG,kBAAkB;AAAA,EACrC,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,mBAAmB,MAAM,gBAAgB;AAAA,IACzC,kBAAkB;AAAA,MAChB,iBAAiB,MAAM;AAAA,MACvB,aAAa,MAAM;AAAA,IACrB;AAAA,EACF,CAAC;AAAA,EAED,MAAM,WAAW,oBAAoB,MAAM,UAAU,MAAM,MAAM;AAAA,EAEjE,MAAM,SAAS,MAAM,SAAS,gBAAgB,EAAE,SAAS,CAAC;AAAA,EAC1D,MAAM,OAAO,OAAO,SAAS,KAAK,KAAK;AAAA,EACvC,gBAAgB,KAAK,eAAe;AAAA,EACpC,OAAO,EAAE,KAAK;AAAA;AAGT,IAAM,qBAIT,gBAAgB,CAAC,OAAO,OAAO,QAA0D;AAAA,EAC3F,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,mBAAmB,MAAM,gBAAgB;AAAA,IACzC,kBAAkB;AAAA,MAChB,iBAAiB,MAAM;AAAA,MACvB,aAAa,MAAM;AAAA,IACrB;AAAA,EACF,CAAC;AAAA,EAED,MAAM,WAAW,oBAAoB,MAAM,UAAU,MAAM,MAAM;AAAA,EAEjE,MAAM,SAAS,MAAM,SAAS,sBAAsB,EAAE,SAAS,GAAG,EAAE,OAAO,CAAC;AAAA,EAE5E,iBAAiB,SAAS,OAAO,QAAQ;AAAA,IACvC,MAAM,OAAO,MAAM,KAAK;AAAA,IACxB,IAAI,MAAM;AAAA,MACR,MAAM,EAAE,MAAM,cAAc,MAAM,QAAQ,WAAW,KAAK;AAAA,IAC5D;AAAA,EACF;AAAA,EACA,MAAM,EAAE,MAAM,UAAU,MAAM,CAAC,EAA0B;AAAA;;;ACrDpD,IAAM,qBAIT,OAAO,OAAO,OAAO,YAAY,WAAW;AAAA,EAC9C,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,WAAW,MAAM,mBAAmB,EAAE,OAAO,aAAa,KAAK,EAAE,CAAC;AAAA,EACxE,MAAM,SAAS,MAAM,SAAS,YAAY,MAAM,IAAI;AAAA,EACpD,OAAO,EAAE,OAAO,OAAO,YAAY;AAAA;AAG9B,IAAM,6BAIT,OAAO,OAAO,WAAW;AAAA,EAC3B,OAAO,EAAE,OAAO,KAAK,KAAK,MAAM,KAAK,SAAS,CAAC,EAAE;AAAA;;;ACnBnD;AAGA;AAEA;AAIA,SAAS,SAAS,CAAC,OAAwC;AAAA,EACzD,OACE,OAAO,YACN,OAAO,iBAAyD,cACjE;AAAA;AAKJ,eAAe,iBAAiB,CAAC,UAAkB,MAAmC;AAAA,EACpF,OAAO,oBAAoB,QAAQ,mBAAmB,MAAM;AAAA;AAO9D,eAAe,oBAAoB,CACjC,OAC6D;AAAA,EAC7D,IAAI,OAAO,UAAU,YAAY,MAAM,WAAW,OAAO,GAAG;AAAA,IAE1D,MAAM,UAAS,MAAM,QAAQ,uBAAuB,EAAE;AAAA,IACtD,OAAO,EAAE,YAAY,EAAE,UAAU,aAAa,MAAM,QAAO,EAAE;AAAA,EAC/D;AAAA,EACA,MAAM,QAAQ,MAAM,qBAAqB,KAAK;AAAA,EAG9C,IAAI;AAAA,EACJ,IAAI,OAAO,WAAW,aAAa;AAAA,IACjC,SAAS,OAAO,KAAK,MAAM,QAAQ,MAAM,YAAY,MAAM,UAAU,EAAE,SAAS,QAAQ;AAAA,EAC1F,EAAO;AAAA,IACL,IAAI,SAAS;AAAA,IACb,SAAS,IAAI,EAAG,IAAI,MAAM,YAAY,KAAK;AAAA,MACzC,UAAU,OAAO,aAAa,MAAM,EAAE;AAAA,IACxC;AAAA,IACA,SAAS,KAAK,MAAM;AAAA;AAAA,EAEtB,OAAO,EAAE,YAAY,EAAE,UAAU,aAAa,MAAM,OAAO,EAAE;AAAA;AAIxD,IAAM,mBAIT,OAAO,OAAO,OAAO,iBAAiB,WAAW;AAAA,EACnD,MAAM,SAAS,UAAU;AAAA,EACzB,MAAM,QAAQ,oBAAoB,UAAU,KAAK;AAAA,EACjD,OAAO,KAAK,OAAO,EAAE,OAAO,UAAU,KAAK,EAAE,CAAC;AAAA,EAC9C,gBAAgB,GAAG,4BAA4B;AAAA,EAE/C,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,YAAY,aAAa,KAAK;AAAA,EACpC,MAAM,WAAW,MAAM,mBAAmB,EAAE,OAAO,UAAU,CAAC;AAAA,EAK9D,MAAM,cAAc,MAAM,qBAAqB,MAAM,KAAuC;AAAA,EAE5F,MAAM,kBACJ,MAAM,oBAAqB,MAAM,iBAAgD,SAAS,IACtF,MAAM,QAAQ,IACX,MAAM,iBAAgD,IAAI,CAAC,MAAM,qBAAqB,CAAC,CAAC,CAC3F,IACA,CAAC;AAAA,EAEP,MAAM,QAAoB,CAAC,EAAE,MAAM,MAAM,OAAO,GAAG,aAAa,GAAG,eAAe;AAAA,EAElF,IAAI;AAAA,IACF,MAAM,SAAS,MAAM,SAAS,gBAAgB,EAAE,UAAU,CAAC,EAAE,MAAM,QAAQ,MAAM,CAAC,EAAE,GAAG;AAAA,MACrF;AAAA,IACF,CAAQ;AAAA,IAER,MAAM,WAAW,OAAO;AAAA,IAGxB,IACE,CAAC,SAAS,cACV,SAAS,WAAW,WAAW,KAC/B,SAAS,gBAAgB,aACzB;AAAA,MACA,MAAM,SAAS,SAAS,gBAAgB,eAAe;AAAA,MACvD,MAAM,IAAI,kCAAkC,UAAU,KAAK,GAAG,YAAY,QAAQ;AAAA,IACpF;AAAA,IAGA,MAAM,iBAAiB,SAAS,WAAW,IAAI,SAAS,SAAS,CAAC;AAAA,IAClE,MAAM,YAAY,eAAe,KAC/B,CAAC,MAAW,EAAE,cAAc,EAAE,WAAW,YAAY,EAAE,WAAW,IACpE;AAAA,IAEA,IAAI,CAAC,WAAW;AAAA,MACd,MAAM,IAAI,6BACR,UAAU,KAAK,GACf,mEACF;AAAA,IACF;AAAA,IAEA,MAAM,QAAQ,MAAM,kBAAkB,UAAU,WAAW,UAAU,UAAU,WAAW,IAAI;AAAA,IAC9F,gBAAgB,KAAK,6BAA6B;AAAA,IAClD,OAAO,QAAQ,OAAO,EAAE,OAAO,UAAU,KAAK,EAAE,CAAC;AAAA,IACjD,OAAO,EAAE,MAAM;AAAA,IACf,OAAO,KAAK;AAAA,IACZ,IACE,eAAe,gCACf,eAAe,mCACf;AAAA,MACA,MAAM;AAAA,IACR;AAAA,IACA,MAAM,MAAM,eAAe,QAAQ,IAAI,UAAU;AAAA,IACjD,IAAI,sDAAsD,KAAK,GAAG,GAAG;AAAA,MACnE,MAAM,IAAI,kCAAkC,UAAU,KAAK,GAAG,GAAG;AAAA,IACnE;AAAA,IACA,MAAM,IAAI,6BAA6B,UAAU,KAAK,GAAG,KAAK,EAAE,OAAO,IAAa,CAAC;AAAA;AAAA;AAQlF,IAAM,0BAIT,gBAAgB,CAAC,OAAO,OAAO,QAAyD;AAAA,EAC1F,MAAM,OAAO,MAAM;AAAA,EACnB,MAAM,SAAS,MAAM,iBAAiB,OAAO,OAAO,MAAM,MAAM;AAAA,EAChE,MAAM,EAAE,MAAM,YAAY,MAAM,OAAO;AAAA,EACvC,MAAM,EAAE,MAAM,UAAU,MAAM,CAAC,EAAyB;AAAA;;;AC7I1D,8CAAS,oEAAmC;AAG5C,sBAAS;AAET,gCAAS;AAIT,SAAS,UAAS,CAAC,OAAwC;AAAA,EACzD,OACE,OAAO,YACN,OAAO,iBAAyD,cACjE;AAAA;AAKJ,eAAe,kBAAiB,CAAC,UAAkB,MAAmC;AAAA,EACpF,OAAO,qBAAoB,QAAQ,mBAAmB,MAAM;AAAA;AAIvD,IAAM,uBAIT,OAAO,OAAO,OAAO,iBAAiB,WAAW;AAAA,EACnD,MAAM,SAAS,WAAU;AAAA,EACzB,MAAM,QAAQ,wBAAwB,WAAU,KAAK;AAAA,EACrD,OAAO,KAAK,OAAO,EAAE,OAAO,WAAU,KAAK,EAAE,CAAC;AAAA,EAC9C,gBAAgB,GAAG,kCAAkC;AAAA,EAErD,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,YAAY,aAAa,KAAK;AAAA,EACpC,MAAM,WAAW,MAAM,mBAAmB,EAAE,OAAO,UAAU,CAAC;AAAA,EAE9D,MAAM,QAAiC,CAAC,EAAE,MAAM,MAAM,OAAO,CAAC;AAAA,EAE9D,IAAI;AAAA,IACF,MAAM,SAAS,MAAM,SAAS,gBAAgB,EAAE,UAAU,CAAC,EAAE,MAAM,QAAQ,MAAM,CAAC,EAAE,GAAG;AAAA,MACrF;AAAA,IACF,CAAQ;AAAA,IAER,MAAM,WAAW,OAAO;AAAA,IAGxB,IACE,CAAC,SAAS,cACV,SAAS,WAAW,WAAW,KAC/B,SAAS,gBAAgB,aACzB;AAAA,MACA,MAAM,SAAS,SAAS,gBAAgB,eAAe;AAAA,MACvD,MAAM,IAAI,mCAAkC,WAAU,KAAK,GAAG,YAAY,QAAQ;AAAA,IACpF;AAAA,IAGA,MAAM,iBAAiB,SAAS,WAAW,IAAI,SAAS,SAAS,CAAC;AAAA,IAClE,MAAM,YAAY,eAAe,KAC/B,CAAC,MAAW,EAAE,cAAc,EAAE,WAAW,YAAY,EAAE,WAAW,IACpE;AAAA,IAEA,IAAI,CAAC,WAAW;AAAA,MACd,MAAM,IAAI,8BACR,WAAU,KAAK,GACf,mEACF;AAAA,IACF;AAAA,IAEA,MAAM,QAAQ,MAAM,mBAAkB,UAAU,WAAW,UAAU,UAAU,WAAW,IAAI;AAAA,IAC9F,gBAAgB,KAAK,mCAAmC;AAAA,IACxD,OAAO,QAAQ,OAAO,EAAE,OAAO,WAAU,KAAK,EAAE,CAAC;AAAA,IACjD,OAAO,EAAE,MAAM;AAAA,IACf,OAAO,KAAK;AAAA,IACZ,IACE,eAAe,iCACf,eAAe,oCACf;AAAA,MACA,MAAM;AAAA,IACR;AAAA,IACA,MAAM,MAAM,eAAe,QAAQ,IAAI,UAAU;AAAA,IACjD,IAAI,sDAAsD,KAAK,GAAG,GAAG;AAAA,MACnE,MAAM,IAAI,mCAAkC,WAAU,KAAK,GAAG,GAAG;AAAA,IACnE;AAAA,IACA,MAAM,IAAI,8BAA6B,WAAU,KAAK,GAAG,KAAK,EAAE,OAAO,IAAa,CAAC;AAAA;AAAA;AASlF,IAAM,8BAIT,gBAAgB,CAAC,OAAO,OAAO,QAA6D;AAAA,EAC9F,MAAM,OAAO,MAAM;AAAA,EACnB,MAAM,SAAS,MAAM,qBAAqB,OAAO,OAAO,MAAM,MAAM;AAAA,EACpE,MAAM,EAAE,MAAM,YAAY,MAAM,OAAO;AAAA,EACvC,MAAM,EAAE,MAAM,UAAU,MAAM,CAAC,EAA6B;AAAA;;;ACzG9D,IAAM,8BAA2F;AAAA,EAC/F,sBAAsB,EAAE,mBAAmB,KAAK,KAAK,KAAK;AAAA,EAC1D,iBAAiB,EAAE,mBAAmB,KAAK,KAAK,MAAM;AACxD;AAEO,IAAM,mBAIT,OAAO,OAAO,UAAU;AAAA,EAC1B,IAAI,MAAM,WAAW,cAAc;AAAA,IACjC,MAAM,KAAK,OAAO;AAAA,IAClB,IAAI,oBACF,OAAO,IAAI,sBAAsB,WAAW,GAAG,oBAAoB;AAAA,IACrE,IAAI,MAAM,OAAO,IAAI,QAAQ,YAAY,GAAG,MAAM;AAAA,IAClD,IAAI,sBAAsB,WAAW;AAAA,MACnC,MAAM,YAAa,IAAI,cAAyB;AAAA,MAChD,MAAM,QAAQ,4BAA4B;AAAA,MAC1C,IAAI,OAAO;AAAA,QACT,oBAAoB,MAAM;AAAA,QAC1B,MAAM,OAAO,MAAM;AAAA,MACrB;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,OAAO,MAAM;AAAA,MACb,UAAU;AAAA,MACV,WAAW;AAAA,MACX,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,WAAW;AAAA,MACX,WAAW;AAAA,MACX,YAAY;AAAA,SACR,sBAAsB,YAAY,EAAE,kBAAkB,IAAI,CAAC;AAAA,SAC3D,QAAQ,YAAY,EAAE,IAAI,IAAI,CAAC;AAAA,IACrC;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,OAAO,MAAM;AAAA,IACb,UAAU;AAAA,IACV,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,WAAW;AAAA,IACX,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AAAA;;;AC1CF;AAKO,IAAM,8BAIT,OAAO,OAAO,OAAO,iBAAiB,QAAQ,iBAAiB;AAAA,EACjE,gBAAgB,GAAG,uCAAuC;AAAA,EAC1D,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EAErD,MAAM,SAAS,MAAM,gBAAgB;AAAA,EAErC,MAAM,kBAAkB,wBAAwB,MAAiC;AAAA,EAEjF,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,kBAAkB;AAAA,MAChB,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,iBAAiB,MAAM;AAAA,MACvB,aAAa,MAAM;AAAA,IACrB;AAAA,EACF,CAAC;AAAA,EAED,MAAM,SAAS,MAAM,SAAS,gBAAgB;AAAA,IAC5C,UAAU,CAAC,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,MAAM,OAAiB,CAAC,EAAE,CAAC;AAAA,EACxE,CAAC;AAAA,EAED,MAAM,OAAO,OAAO,SAAS,KAAK;AAAA,EAClC,gBAAgB,KAAK,wCAAwC;AAAA,EAC7D,OAAO,EAAE,QAAQ,KAAK,MAAM,IAAI,EAAE;AAAA;AAG7B,IAAM,qCAIT,gBAAgB,CAClB,OACA,OACA,QACA,cAC4D;AAAA,EAC5D,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EAErD,MAAM,SAAS,MAAM,gBAAgB;AAAA,EAErC,MAAM,kBAAkB,wBAAwB,MAAiC;AAAA,EAEjF,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,kBAAkB;AAAA,MAChB,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,iBAAiB,MAAM;AAAA,MACvB,aAAa,MAAM;AAAA,IACrB;AAAA,EACF,CAAC;AAAA,EAED,MAAM,SAAS,MAAM,SAAS,sBAC5B,EAAE,UAAU,CAAC,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,MAAM,OAAiB,CAAC,EAAE,CAAC,EAAE,GAC1E,EAAE,OAAO,CACX;AAAA,EAEA,IAAI,kBAAkB;AAAA,EACtB,iBAAiB,SAAS,OAAO,QAAQ;AAAA,IACvC,MAAM,OAAO,MAAM,KAAK;AAAA,IACxB,IAAI,MAAM;AAAA,MACR,mBAAmB;AAAA,MACnB,MAAM,UAAU,iBAAiB,eAAe;AAAA,MAChD,IAAI,YAAY,WAAW;AAAA,QACzB,MAAM,EAAE,MAAM,gBAAgB,MAAM,UAAU,aAAa,QAAQ;AAAA,MACrE;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,cAAc,KAAK,MAAM,eAAe;AAAA,IACxC,MAAM;AAAA,IACN,cAAc,iBAAiB,eAAe,KAAK,CAAC;AAAA;AAAA,EAEtD,MAAM,EAAE,MAAM,UAAU,MAAM,EAAE,QAAQ,YAAY,EAAoC;AAAA;;;ACxF1F,sBAAS;AAIF,IAAM,uBAIT,OAAO,OAAO,OAAO,iBAAiB,WAAW;AAAA,EACnD,MAAM,SAAS,WAAU;AAAA,EACzB,MAAM,aAAa,wBAAwB,OAAO,iBAAiB;AAAA,EACnE,OAAO,KAAK,YAAY,EAAE,OAAO,OAAO,iBAAiB,WAAW,CAAC;AAAA,EAErE,gBAAgB,GAAG,gCAAgC;AAAA,EACnD,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,iBAAiB,MAAM,mBAAmB;AAAA,IAC9C,OAAO,aAAa,KAAK;AAAA,EAC3B,CAAC;AAAA,EAED,MAAM,WACH,OAAO,iBAAiB,uBAAqC;AAAA,EAEhE,IAAI,MAAM,QAAQ,MAAM,IAAI,GAAG;AAAA,IAC7B,MAAM,UAAS,MAAM,eAAe,mBAAmB;AAAA,MACrD,UAAU,MAAM,KAAK,IAAI,CAAC,OAAO;AAAA,QAC/B,SAAS,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;AAAA,QAC9C;AAAA,MACF,EAAE;AAAA,IACJ,CAAC;AAAA,IACD,gBAAgB,KAAK,iCAAiC;AAAA,IACtD,OAAO,QAAQ,YAAY,EAAE,OAAO,OAAO,iBAAiB,YAAY,OAAO,KAAK,CAAC;AAAA,IACrF,OAAO;AAAA,MACL,QAAQ,QAAO,WAAW,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,MAAM,CAAC;AAAA,IACjE;AAAA,EACF;AAAA,EAEA,MAAM,SAAS,MAAM,eAAe,aAAa;AAAA,IAC/C,SAAS,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,MAAM,KAAe,CAAC,EAAE;AAAA,IACjE;AAAA,EACF,CAAC;AAAA,EAED,gBAAgB,KAAK,iCAAiC;AAAA,EACtD,OAAO,QAAQ,YAAY,EAAE,OAAO,OAAO,iBAAiB,WAAW,CAAC;AAAA,EACxE,OAAO,EAAE,QAAQ,IAAI,aAAa,OAAO,UAAU,MAAM,EAAE;AAAA;;;AC3C7D,sBAAS;AAIF,IAAM,wBAIT,OAAO,OAAO,OAAO,iBAAiB,WAAW;AAAA,EACnD,MAAM,SAAS,WAAU;AAAA,EACzB,MAAM,aAAa,yBAAyB,OAAO,iBAAiB;AAAA,EACpE,OAAO,KAAK,YAAY,EAAE,OAAO,OAAO,iBAAiB,WAAW,CAAC;AAAA,EAErE,gBAAgB,GAAG,iCAAiC;AAAA,EACpD,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,kBAAkB;AAAA,MAChB,iBAAiB,MAAM;AAAA,MACvB,aAAa,MAAM;AAAA,MACnB,MAAM,MAAM;AAAA,IACd;AAAA,EACF,CAAC;AAAA,EAED,MAAM,SAAS,MAAM,SAAS,gBAAgB;AAAA,IAC5C,UAAU,CAAC,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,MAAM,OAAO,CAAC,EAAE,CAAC;AAAA,EAC9D,CAAC;AAAA,EAED,MAAM,OAAO,OAAO,SAAS,KAAK;AAAA,EAClC,gBAAgB,KAAK,kCAAkC;AAAA,EACvD,OAAO,QAAQ,YAAY,EAAE,OAAO,OAAO,iBAAiB,WAAW,CAAC;AAAA,EACxE,OAAO,EAAE,KAAK;AAAA;AAGT,IAAM,+BAIT,gBAAgB,CAAC,OAAO,OAAO,QAA8D;AAAA,EAC/F,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,kBAAkB;AAAA,MAChB,iBAAiB,MAAM;AAAA,MACvB,aAAa,MAAM;AAAA,MACnB,MAAM,MAAM;AAAA,IACd;AAAA,EACF,CAAC;AAAA,EAED,MAAM,SAAS,MAAM,SAAS,sBAC5B,EAAE,UAAU,CAAC,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,MAAM,OAAO,CAAC,EAAE,CAAC,EAAE,GAChE,EAAE,OAAO,CACX;AAAA,EAEA,iBAAiB,SAAS,OAAO,QAAQ;AAAA,IACvC,MAAM,OAAO,MAAM,KAAK;AAAA,IACxB,IAAI,MAAM;AAAA,MACR,MAAM,EAAE,MAAM,cAAc,MAAM,QAAQ,WAAW,KAAK;AAAA,IAC5D;AAAA,EACF;AAAA,EACA,MAAM,EAAE,MAAM,UAAU,MAAM,CAAC,EAA8B;AAAA;;;AC3DxD,IAAM,sBAIT,OAAO,OAAO,OAAO,iBAAiB,WAAW;AAAA,EACnD,gBAAgB,GAAG,gCAAgC;AAAA,EACnD,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,mBAAmB,MAAM;AAAA,EAC3B,CAAC;AAAA,EAED,MAAM,SAAS,MAAM,SAAS,gBAAgB;AAAA,IAC5C,UAAU,CAAC,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC;AAAA,EAC5D,CAAC;AAAA,EAED,MAAM,OAAO,OAAO,SAAS,KAAK;AAAA,EAClC,gBAAgB,KAAK,iCAAiC;AAAA,EACtD,OAAO,EAAE,KAAK;AAAA;AAGT,IAAM,6BAIT,gBAAgB,CAAC,OAAO,OAAO,QAA4D;AAAA,EAC7F,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,mBAAmB,MAAM;AAAA,EAC3B,CAAC;AAAA,EAED,MAAM,SAAS,MAAM,SAAS,sBAC5B,EAAE,UAAU,CAAC,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,EAAE,GAC9D,EAAE,OAAO,CACX;AAAA,EAEA,iBAAiB,SAAS,OAAO,QAAQ;AAAA,IACvC,MAAM,OAAO,MAAM,KAAK;AAAA,IACxB,IAAI,MAAM;AAAA,MACR,MAAM,EAAE,MAAM,cAAc,MAAM,QAAQ,WAAW,KAAK;AAAA,IAC5D;AAAA,EACF;AAAA,EACA,MAAM,EAAE,MAAM,UAAU,MAAM,CAAC,EAA4B;AAAA;;;AC7CtD,IAAM,qBAIT,OAAO,OAAO,OAAO,iBAAiB,WAAW;AAAA,EACnD,gBAAgB,GAAG,oCAAoC;AAAA,EACvD,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,mBAAmB;AAAA,EACrB,CAAC;AAAA,EAED,MAAM,SAAS,MAAM,SAAS,gBAAgB;AAAA,IAC5C,UAAU,CAAC,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC;AAAA,EAC5D,CAAC;AAAA,EAED,MAAM,OAAO,OAAO,SAAS,KAAK;AAAA,EAClC,gBAAgB,KAAK,qCAAqC;AAAA,EAC1D,OAAO,EAAE,KAAK;AAAA;AAGT,IAAM,4BAIT,gBAAgB,CAAC,OAAO,OAAO,QAA2D;AAAA,EAC5F,MAAM,qBAAqB,MAAM,cAAc;AAAA,EAC/C,MAAM,QAAQ,IAAI,mBAAmB,UAAU,KAAK,CAAC;AAAA,EACrD,MAAM,WAAW,MAAM,mBAAmB;AAAA,IACxC,OAAO,aAAa,KAAK;AAAA,IACzB,mBAAmB;AAAA,EACrB,CAAC;AAAA,EAED,MAAM,SAAS,MAAM,SAAS,sBAC5B,EAAE,UAAU,CAAC,EAAE,MAAM,QAAQ,OAAO,CAAC,EAAE,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,EAAE,GAC9D,EAAE,OAAO,CACX;AAAA,EAEA,iBAAiB,SAAS,OAAO,QAAQ;AAAA,IACvC,MAAM,OAAO,MAAM,KAAK;AAAA,IACxB,IAAI,MAAM;AAAA,MACR,MAAM,EAAE,MAAM,cAAc,MAAM,QAAQ,WAAW,KAAK;AAAA,IAC5D;AAAA,EACF;AAAA,EACA,MAAM,EAAE,MAAM,UAAU,MAAM,CAAC,EAA2B;AAAA;;;ACjCrD,IAAM,eAA6E;AAAA,EACxF,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,eAAe;AACjB;AAEO,IAAM,sBAGT;AAAA,EACF,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,0BAA0B;AAAA,EAC1B,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,eAAe;AACjB;AAEO,IAAM,uBAGT;AAAA,EACF,iBAAiB;AACnB;;;ACxDA;AAMO,MAAM,mCAAmC,WAA8B;AAAA,EACnE,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAElB,YAAY;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,WAAW,CACT,OACA,aACA,cACA;AAAA,IACA,MAAM,OAAO,aAAa,YAAY;AAAA;AAE1C;;;ACjCA;AAYO,SAAS,4BAA4B,GAAS;AAAA,EACnD,kBAAkB,+BAChB,eACA,CAAC,UAAU,OAAO,UAAuB;AAAA,IACvC,IAAI,aAAa;AAAA,MAAiB;AAAA,IAClC,IAAI,MAAM,YAAY,aAAa,MAAM,YAAY,MAAM;AAAA,MACzD,MAAM,IAAI,gCACR,QACA,MAAM,YAAY,UAClB,0FACF;AAAA,IACF;AAAA,GAEJ;AAAA;;;AjBnBF,eAAsB,oBAAoB,CAAC,SAAoD;AAAA,EAC7F,6BAA6B;AAAA,EAC7B,MAAM,uBACJ,IAAI,2BAA2B,cAAc,qBAAqB,oBAAoB,GACtF,iBACA,OACF;AAAA;;;AkBZF;;;ACAA,uBAAS;AAmBF,MAAM,6BAA6B,YAA8B;AAAA,EAC7D,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAElB,YAAY;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,WAAW,CACT,OACA,aACA,cACA;AAAA,IACA,MAAM,OAAO,aAAa,YAAY;AAAA;AAE1C;;;AD1CA,eAAsB,oBAAoB,GAAkB;AAAA,EAC1D,MAAM,uBACJ,CAAC,OACC,IAAI,qBACF,cACA,qBACA,oBACF,EAAE,uBAAuB,EAAE,GAC7B,eACF;AAAA;",
|
|
28
|
-
"debugId": "
|
|
27
|
+
"mappings": "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",
|
|
28
|
+
"debugId": "1CFE1B4DBA4C0F3164756E2164756E21",
|
|
29
29
|
"names": []
|
|
30
30
|
}
|
package/dist/ai-provider.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
-
}) : x)(function(x) {
|
|
4
|
-
if (typeof require !== "undefined")
|
|
5
|
-
return require.apply(this, arguments);
|
|
6
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
7
|
-
});
|
|
8
|
-
|
|
9
1
|
// src/ai-provider/common/Gemini_Constants.ts
|
|
10
2
|
var GOOGLE_GEMINI = "GOOGLE_GEMINI";
|
|
11
3
|
|
|
@@ -137,8 +129,8 @@ function mapGeminiModel(model) {
|
|
|
137
129
|
const title = model.displayName || id;
|
|
138
130
|
return {
|
|
139
131
|
id,
|
|
140
|
-
label:
|
|
141
|
-
description: model.description ?? "",
|
|
132
|
+
label: title,
|
|
133
|
+
description: model.displayName ? id : model.description ?? "",
|
|
142
134
|
record: {
|
|
143
135
|
model_id: id,
|
|
144
136
|
provider: GOOGLE_GEMINI,
|
|
@@ -192,27 +184,26 @@ import { registerProviderWithWorker } from "@workglow/ai-provider/common";
|
|
|
192
184
|
|
|
193
185
|
// src/ai-provider/GoogleGeminiQueuedProvider.ts
|
|
194
186
|
import { AiProvider } from "@workglow/ai";
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
}
|
|
187
|
+
import { createCloudProviderClass } from "@workglow/ai-provider/common";
|
|
188
|
+
var GEMINI_TASK_TYPES = [
|
|
189
|
+
"CountTokensTask",
|
|
190
|
+
"ModelInfoTask",
|
|
191
|
+
"TextGenerationTask",
|
|
192
|
+
"TextEmbeddingTask",
|
|
193
|
+
"TextRewriterTask",
|
|
194
|
+
"TextSummaryTask",
|
|
195
|
+
"StructuredGenerationTask",
|
|
196
|
+
"ToolCallingTask",
|
|
197
|
+
"ModelSearchTask",
|
|
198
|
+
"ImageGenerateTask",
|
|
199
|
+
"ImageEditTask"
|
|
200
|
+
];
|
|
201
|
+
|
|
202
|
+
class GoogleGeminiQueuedProvider extends createCloudProviderClass(AiProvider, {
|
|
203
|
+
name: GOOGLE_GEMINI,
|
|
204
|
+
displayName: "Google Gemini",
|
|
205
|
+
taskTypes: GEMINI_TASK_TYPES
|
|
206
|
+
}) {
|
|
216
207
|
}
|
|
217
208
|
|
|
218
209
|
// src/ai-provider/registerGemini.ts
|
|
@@ -230,4 +221,4 @@ export {
|
|
|
230
221
|
GOOGLE_GEMINI
|
|
231
222
|
};
|
|
232
223
|
|
|
233
|
-
//# debugId=
|
|
224
|
+
//# debugId=F082BEE9DB29328C64756E2164756E21
|
package/dist/ai-provider.js.map
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const GOOGLE_GEMINI = \"GOOGLE_GEMINI\";\n",
|
|
6
6
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiImageOutputTask, ProviderUnsupportedFeatureError } from \"@workglow/ai\";\nimport type { ModelConfig } from \"@workglow/ai\";\n\nimport { GOOGLE_GEMINI } from \"./Gemini_Constants\";\n\n/**\n * Registers the Gemini per-provider image validator. Called at provider registration time\n * (both inline and worker-backed paths) so it runs on the main thread before any dispatch.\n *\n * Currently validates:\n * - ImageEditTask + non-null mask → throws (Gemini does not support mask-based inpainting).\n */\nexport function registerGeminiImageValidator(): void {\n AiImageOutputTask.registerProviderImageValidator(\n GOOGLE_GEMINI,\n (taskType, input, model: ModelConfig) => {\n if (taskType !== \"ImageEditTask\") return;\n if (input[\"mask\"] !== undefined && input[\"mask\"] !== null) {\n throw new ProviderUnsupportedFeatureError(\n \"mask\",\n model.model_id ?? \"gemini\",\n \"Gemini does not support mask-based inpainting; remove the mask or use OpenAI gpt-image-2\"\n );\n }\n }\n );\n}\n",
|
|
7
7
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ModelConfigSchema, ModelRecordSchema } from \"@workglow/ai/worker\";\nimport { DataPortSchemaObject, FromSchema } from \"@workglow/util/worker\";\nimport { GOOGLE_GEMINI } from \"./Gemini_Constants\";\n\nexport const GeminiModelSchema = {\n type: \"object\",\n properties: {\n provider: {\n const: GOOGLE_GEMINI,\n description: \"Discriminator: Google Gemini cloud provider.\",\n },\n provider_config: {\n type: \"object\",\n description: \"Google Gemini-specific configuration.\",\n properties: {\n model_name: {\n type: \"string\",\n description:\n \"The Gemini model identifier (e.g., 'gemini-2.0-flash', 'text-embedding-004').\",\n },\n credential_key: {\n type: \"string\",\n format: \"credential\",\n description: \"Key to look up in the credential store for the API key.\",\n \"x-ui-hidden\": true,\n },\n embedding_task_type: {\n oneOf: [\n { type: \"null\" },\n {\n type: \"string\",\n enum: [\n \"RETRIEVAL_QUERY\",\n \"RETRIEVAL_DOCUMENT\",\n \"SEMANTIC_SIMILARITY\",\n \"CLASSIFICATION\",\n \"CLUSTERING\",\n ],\n },\n ],\n description: \"Task type hint for embedding models.\",\n default: null,\n },\n },\n required: [\"model_name\"],\n additionalProperties: false,\n },\n },\n required: [\"provider\", \"provider_config\"],\n additionalProperties: true,\n} as const satisfies DataPortSchemaObject;\n\nexport const GeminiModelRecordSchema = {\n type: \"object\",\n properties: {\n ...ModelRecordSchema.properties,\n ...GeminiModelSchema.properties,\n },\n required: [...ModelRecordSchema.required, ...GeminiModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type GeminiModelRecord = FromSchema<typeof GeminiModelRecordSchema>;\n\nexport const GeminiModelConfigSchema = {\n type: \"object\",\n properties: {\n ...ModelConfigSchema.properties,\n ...GeminiModelSchema.properties,\n },\n required: [...ModelConfigSchema.required, ...GeminiModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type GeminiModelConfig = FromSchema<typeof GeminiModelConfigSchema>;\n",
|
|
8
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ModelSearchResultItem,\n ModelSearchTaskInput,\n ModelSearchTaskOutput,\n} from \"@workglow/ai\";\nimport { normalizedModelSearchQuery } from \"@workglow/ai-provider/common\";\nimport { GOOGLE_GEMINI } from \"./Gemini_Constants\";\n\ninterface GeminiModelEntry {\n readonly label: string;\n readonly value: string;\n readonly tasks?: readonly string[];\n}\n\nconst GEMINI_MODELS: readonly GeminiModelEntry[] = [\n { label: \"gemini-3.1-pro-preview\", value: \"gemini-3.1-pro-preview\" },\n { label: \"gemini-3-flash-preview\", value: \"gemini-3-flash-preview\" },\n { label: \"gemini-3.1-flash-lite-preview\", value: \"gemini-3.1-flash-lite-preview\" },\n { label: \"gemini-2.5-flash\", value: \"gemini-2.5-flash\" },\n { label: \"gemini-2.5-pro\", value: \"gemini-2.5-pro\" },\n // Embedding models\n {\n label: \"gemini-embedding-2\",\n value: \"gemini-embedding-2\",\n tasks: [\"TextEmbeddingTask\"],\n },\n {\n label: \"gemini-embedding-001\",\n value: \"gemini-embedding-001\",\n tasks: [\"TextEmbeddingTask\"],\n },\n // Image-output models\n {\n label: \"gemini-3.1-flash-image-preview\",\n value: \"gemini-3.1-flash-image-preview\",\n tasks: [\"ImageGenerateTask\", \"ImageEditTask\"],\n },\n {\n label: \"gemini-3-pro-image-preview\",\n value: \"gemini-3-pro-image-preview\",\n tasks: [\"ImageGenerateTask\", \"ImageEditTask\"],\n },\n {\n label: \"imagen-4.0-generate-001\",\n value: \"imagen-4.0-generate-001\",\n tasks: [\"ImageGenerateTask\"],\n },\n];\n\ninterface GeminiApiModel {\n readonly name: string;\n readonly displayName?: string;\n readonly description?: string;\n readonly supportedGenerationMethods?: readonly string[];\n}\n\nfunction tasksForGeminiApiModel(model: GeminiApiModel, id: string): string[] {\n const staticEntry = GEMINI_MODELS.find((m) => m.value === id);\n if (staticEntry?.tasks) return [...staticEntry.tasks];\n\n const methods = model.supportedGenerationMethods ?? [];\n if (methods.some((method) => method.toLowerCase().includes(\"embed\"))) {\n return [\"TextEmbeddingTask\"];\n }\n return [];\n}\n\nfunction mapGeminiModel(model: GeminiApiModel): ModelSearchResultItem {\n const id = model.name.startsWith(\"models/\") ? model.name.slice(\"models/\".length) : model.name;\n const title = model.displayName || id;\n return {\n id,\n label: model.displayName ?
|
|
8
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ModelSearchResultItem,\n ModelSearchTaskInput,\n ModelSearchTaskOutput,\n} from \"@workglow/ai\";\nimport { normalizedModelSearchQuery } from \"@workglow/ai-provider/common\";\nimport { GOOGLE_GEMINI } from \"./Gemini_Constants\";\n\ninterface GeminiModelEntry {\n readonly label: string;\n readonly value: string;\n readonly tasks?: readonly string[];\n}\n\nconst GEMINI_MODELS: readonly GeminiModelEntry[] = [\n { label: \"gemini-3.1-pro-preview\", value: \"gemini-3.1-pro-preview\" },\n { label: \"gemini-3-flash-preview\", value: \"gemini-3-flash-preview\" },\n { label: \"gemini-3.1-flash-lite-preview\", value: \"gemini-3.1-flash-lite-preview\" },\n { label: \"gemini-2.5-flash\", value: \"gemini-2.5-flash\" },\n { label: \"gemini-2.5-pro\", value: \"gemini-2.5-pro\" },\n // Embedding models\n {\n label: \"gemini-embedding-2\",\n value: \"gemini-embedding-2\",\n tasks: [\"TextEmbeddingTask\"],\n },\n {\n label: \"gemini-embedding-001\",\n value: \"gemini-embedding-001\",\n tasks: [\"TextEmbeddingTask\"],\n },\n // Image-output models\n {\n label: \"gemini-3.1-flash-image-preview\",\n value: \"gemini-3.1-flash-image-preview\",\n tasks: [\"ImageGenerateTask\", \"ImageEditTask\"],\n },\n {\n label: \"gemini-3-pro-image-preview\",\n value: \"gemini-3-pro-image-preview\",\n tasks: [\"ImageGenerateTask\", \"ImageEditTask\"],\n },\n {\n label: \"imagen-4.0-generate-001\",\n value: \"imagen-4.0-generate-001\",\n tasks: [\"ImageGenerateTask\"],\n },\n];\n\ninterface GeminiApiModel {\n readonly name: string;\n readonly displayName?: string;\n readonly description?: string;\n readonly supportedGenerationMethods?: readonly string[];\n}\n\nfunction tasksForGeminiApiModel(model: GeminiApiModel, id: string): string[] {\n const staticEntry = GEMINI_MODELS.find((m) => m.value === id);\n if (staticEntry?.tasks) return [...staticEntry.tasks];\n\n const methods = model.supportedGenerationMethods ?? [];\n if (methods.some((method) => method.toLowerCase().includes(\"embed\"))) {\n return [\"TextEmbeddingTask\"];\n }\n return [];\n}\n\nfunction mapGeminiModel(model: GeminiApiModel): ModelSearchResultItem {\n const id = model.name.startsWith(\"models/\") ? model.name.slice(\"models/\".length) : model.name;\n const title = model.displayName || id;\n return {\n id,\n label: title,\n description: model.displayName ? id : (model.description ?? \"\"),\n record: {\n model_id: id,\n provider: GOOGLE_GEMINI,\n title,\n description: model.description ?? \"\",\n tasks: tasksForGeminiApiModel(model, id),\n provider_config: { model_name: id },\n metadata: {},\n },\n raw: model,\n };\n}\n\nasync function listGeminiModels(\n credentialKey: string,\n signal?: AbortSignal\n): Promise<ModelSearchResultItem[]> {\n const params = new URLSearchParams({ key: credentialKey });\n const response = await fetch(\n `https://generativelanguage.googleapis.com/v1beta/models?${params}`,\n {\n signal,\n }\n );\n if (!response.ok) throw new Error(`Gemini API returned ${response.status}`);\n const body = (await response.json()) as { models?: GeminiApiModel[] };\n return (body.models ?? []).map(mapGeminiModel);\n}\n\nexport const Gemini_ModelSearch: AiProviderRunFn<\n ModelSearchTaskInput,\n ModelSearchTaskOutput\n> = async (input, _model, _onProgress, signal) => {\n const q = normalizedModelSearchQuery(input.query);\n if (input.credential_key) {\n const models = await listGeminiModels(input.credential_key, signal);\n const results = q\n ? models.filter((m) => m.id.toLowerCase().includes(q) || m.label.toLowerCase().includes(q))\n : models;\n return { results };\n }\n\n const filtered = q\n ? GEMINI_MODELS.filter(\n (m) => m.value.toLowerCase().includes(q) || m.label.toLowerCase().includes(q)\n )\n : GEMINI_MODELS;\n const results: ModelSearchResultItem[] = filtered.map((m) => ({\n id: m.value,\n label: m.label,\n description: \"\",\n record: {\n model_id: m.value,\n provider: GOOGLE_GEMINI,\n title: m.value,\n description: \"\",\n tasks: m.tasks ? [...m.tasks] : [],\n provider_config: { model_name: m.value },\n metadata: {},\n },\n raw: m,\n }));\n return { results };\n};\n",
|
|
9
9
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRegisterOptions } from \"@workglow/ai\";\nimport { registerProviderWithWorker } from \"@workglow/ai-provider/common\";\nimport { GoogleGeminiQueuedProvider } from \"./GoogleGeminiQueuedProvider\";\nimport { registerGeminiImageValidator } from \"./common/Gemini_ImageValidation\";\n\nexport async function registerGemini(\n options: AiProviderRegisterOptions & {\n worker: Worker | (() => Worker);\n }\n): Promise<void> {\n registerGeminiImageValidator();\n await registerProviderWithWorker(new GoogleGeminiQueuedProvider(), \"Google Gemini\", options);\n}\n",
|
|
10
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai\";\nimport
|
|
10
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai\";\nimport { createCloudProviderClass } from \"@workglow/ai-provider/common\";\nimport { GOOGLE_GEMINI } from \"./common/Gemini_Constants\";\nimport type { GeminiModelConfig } from \"./common/Gemini_ModelSchema\";\n\nconst GEMINI_TASK_TYPES = [\n \"CountTokensTask\",\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"StructuredGenerationTask\",\n \"ToolCallingTask\",\n \"ModelSearchTask\",\n \"ImageGenerateTask\",\n \"ImageEditTask\",\n] as const;\n\n/** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */\nexport class GoogleGeminiQueuedProvider extends createCloudProviderClass<\n GeminiModelConfig,\n typeof GEMINI_TASK_TYPES\n>(AiProvider, {\n name: GOOGLE_GEMINI,\n displayName: \"Google Gemini\",\n taskTypes: GEMINI_TASK_TYPES,\n}) {}\n"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "
|
|
13
|
-
"debugId": "
|
|
12
|
+
"mappings": ";AAMO,IAAM,gBAAgB;;;ACA7B;AAYO,SAAS,4BAA4B,GAAS;AAAA,EACnD,kBAAkB,+BAChB,eACA,CAAC,UAAU,OAAO,UAAuB;AAAA,IACvC,IAAI,aAAa;AAAA,MAAiB;AAAA,IAClC,IAAI,MAAM,YAAY,aAAa,MAAM,YAAY,MAAM;AAAA,MACzD,MAAM,IAAI,gCACR,QACA,MAAM,YAAY,UAClB,0FACF;AAAA,IACF;AAAA,GAEJ;AAAA;;;ACzBF;AAIO,IAAM,oBAAoB;AAAA,EAC/B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAU;AAAA,MACR,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,QACV,YAAY;AAAA,UACV,MAAM;AAAA,UACN,aACE;AAAA,QACJ;AAAA,QACA,gBAAgB;AAAA,UACd,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,eAAe;AAAA,QACjB;AAAA,QACA,qBAAqB;AAAA,UACnB,OAAO;AAAA,YACL,EAAE,MAAM,OAAO;AAAA,YACf;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA,aAAa;AAAA,UACb,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,UAAU,CAAC,YAAY;AAAA,MACvB,sBAAsB;AAAA,IACxB;AAAA,EACF;AAAA,EACA,UAAU,CAAC,YAAY,iBAAiB;AAAA,EACxC,sBAAsB;AACxB;AAEO,IAAM,0BAA0B;AAAA,EACrC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,kBAAkB;AAAA,EACvB;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,kBAAkB,QAAQ;AAAA,EACvE,sBAAsB;AACxB;AAIO,IAAM,0BAA0B;AAAA,EACrC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,kBAAkB;AAAA,EACvB;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,kBAAkB,QAAQ;AAAA,EACvE,sBAAsB;AACxB;;;AClEA;AASA,IAAM,gBAA6C;AAAA,EACjD,EAAE,OAAO,0BAA0B,OAAO,yBAAyB;AAAA,EACnE,EAAE,OAAO,0BAA0B,OAAO,yBAAyB;AAAA,EACnE,EAAE,OAAO,iCAAiC,OAAO,gCAAgC;AAAA,EACjF,EAAE,OAAO,oBAAoB,OAAO,mBAAmB;AAAA,EACvD,EAAE,OAAO,kBAAkB,OAAO,iBAAiB;AAAA,EAEnD;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO,CAAC,mBAAmB;AAAA,EAC7B;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO,CAAC,mBAAmB;AAAA,EAC7B;AAAA,EAEA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO,CAAC,qBAAqB,eAAe;AAAA,EAC9C;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO,CAAC,qBAAqB,eAAe;AAAA,EAC9C;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO,CAAC,mBAAmB;AAAA,EAC7B;AACF;AASA,SAAS,sBAAsB,CAAC,OAAuB,IAAsB;AAAA,EAC3E,MAAM,cAAc,cAAc,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE;AAAA,EAC5D,IAAI,aAAa;AAAA,IAAO,OAAO,CAAC,GAAG,YAAY,KAAK;AAAA,EAEpD,MAAM,UAAU,MAAM,8BAA8B,CAAC;AAAA,EACrD,IAAI,QAAQ,KAAK,CAAC,WAAW,OAAO,YAAY,EAAE,SAAS,OAAO,CAAC,GAAG;AAAA,IACpE,OAAO,CAAC,mBAAmB;AAAA,EAC7B;AAAA,EACA,OAAO,CAAC;AAAA;AAGV,SAAS,cAAc,CAAC,OAA8C;AAAA,EACpE,MAAM,KAAK,MAAM,KAAK,WAAW,SAAS,IAAI,MAAM,KAAK,MAAM,UAAU,MAAM,IAAI,MAAM;AAAA,EACzF,MAAM,QAAQ,MAAM,eAAe;AAAA,EACnC,OAAO;AAAA,IACL;AAAA,IACA,OAAO;AAAA,IACP,aAAa,MAAM,cAAc,KAAM,MAAM,eAAe;AAAA,IAC5D,QAAQ;AAAA,MACN,UAAU;AAAA,MACV,UAAU;AAAA,MACV;AAAA,MACA,aAAa,MAAM,eAAe;AAAA,MAClC,OAAO,uBAAuB,OAAO,EAAE;AAAA,MACvC,iBAAiB,EAAE,YAAY,GAAG;AAAA,MAClC,UAAU,CAAC;AAAA,IACb;AAAA,IACA,KAAK;AAAA,EACP;AAAA;AAGF,eAAe,gBAAgB,CAC7B,eACA,QACkC;AAAA,EAClC,MAAM,SAAS,IAAI,gBAAgB,EAAE,KAAK,cAAc,CAAC;AAAA,EACzD,MAAM,WAAW,MAAM,MACrB,2DAA2D,UAC3D;AAAA,IACE;AAAA,EACF,CACF;AAAA,EACA,IAAI,CAAC,SAAS;AAAA,IAAI,MAAM,IAAI,MAAM,uBAAuB,SAAS,QAAQ;AAAA,EAC1E,MAAM,OAAQ,MAAM,SAAS,KAAK;AAAA,EAClC,QAAQ,KAAK,UAAU,CAAC,GAAG,IAAI,cAAc;AAAA;AAGxC,IAAM,qBAGT,OAAO,OAAO,QAAQ,aAAa,WAAW;AAAA,EAChD,MAAM,IAAI,2BAA2B,MAAM,KAAK;AAAA,EAChD,IAAI,MAAM,gBAAgB;AAAA,IACxB,MAAM,SAAS,MAAM,iBAAiB,MAAM,gBAAgB,MAAM;AAAA,IAClE,MAAM,WAAU,IACZ,OAAO,OAAO,CAAC,MAAM,EAAE,GAAG,YAAY,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,YAAY,EAAE,SAAS,CAAC,CAAC,IACxF;AAAA,IACJ,OAAO,EAAE,kBAAQ;AAAA,EACnB;AAAA,EAEA,MAAM,WAAW,IACb,cAAc,OACZ,CAAC,MAAM,EAAE,MAAM,YAAY,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,YAAY,EAAE,SAAS,CAAC,CAC9E,IACA;AAAA,EACJ,MAAM,UAAmC,SAAS,IAAI,CAAC,OAAO;AAAA,IAC5D,IAAI,EAAE;AAAA,IACN,OAAO,EAAE;AAAA,IACT,aAAa;AAAA,IACb,QAAQ;AAAA,MACN,UAAU,EAAE;AAAA,MACZ,UAAU;AAAA,MACV,OAAO,EAAE;AAAA,MACT,aAAa;AAAA,MACb,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,IAAI,CAAC;AAAA,MACjC,iBAAiB,EAAE,YAAY,EAAE,MAAM;AAAA,MACvC,UAAU,CAAC;AAAA,IACb;AAAA,IACA,KAAK;AAAA,EACP,EAAE;AAAA,EACF,OAAO,EAAE,QAAQ;AAAA;;;ACxInB;;;ACDA;AACA;AAIA,IAAM,oBAAoB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAAA;AAGO,MAAM,mCAAmC,yBAG9C,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AACb,CAAC,EAAE;AAAC;;;ADtBJ,eAAsB,cAAc,CAClC,SAGe;AAAA,EACf,6BAA6B;AAAA,EAC7B,MAAM,2BAA2B,IAAI,4BAA8B,iBAAiB,OAAO;AAAA;",
|
|
13
|
+
"debugId": "F082BEE9DB29328C64756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@workglow/google-gemini",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"sideEffects": false,
|
|
5
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.30",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/workglow-dev/workglow.git",
|
|
@@ -35,20 +35,40 @@
|
|
|
35
35
|
"@google/generative-ai": "^0.24.1"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@workglow/ai": "0.2.
|
|
39
|
-
"@workglow/ai-provider": "0.2.
|
|
40
|
-
"@workglow/job-queue": "0.2.
|
|
41
|
-
"@workglow/storage": "0.2.
|
|
42
|
-
"@workglow/task-graph": "0.2.
|
|
43
|
-
"@workglow/util": "0.2.
|
|
38
|
+
"@workglow/ai": "0.2.30",
|
|
39
|
+
"@workglow/ai-provider": "0.2.30",
|
|
40
|
+
"@workglow/job-queue": "0.2.30",
|
|
41
|
+
"@workglow/storage": "0.2.30",
|
|
42
|
+
"@workglow/task-graph": "0.2.30",
|
|
43
|
+
"@workglow/util": "0.2.30"
|
|
44
|
+
},
|
|
45
|
+
"peerDependenciesMeta": {
|
|
46
|
+
"@workglow/ai": {
|
|
47
|
+
"optional": false
|
|
48
|
+
},
|
|
49
|
+
"@workglow/ai-provider": {
|
|
50
|
+
"optional": false
|
|
51
|
+
},
|
|
52
|
+
"@workglow/job-queue": {
|
|
53
|
+
"optional": false
|
|
54
|
+
},
|
|
55
|
+
"@workglow/storage": {
|
|
56
|
+
"optional": false
|
|
57
|
+
},
|
|
58
|
+
"@workglow/task-graph": {
|
|
59
|
+
"optional": false
|
|
60
|
+
},
|
|
61
|
+
"@workglow/util": {
|
|
62
|
+
"optional": false
|
|
63
|
+
}
|
|
44
64
|
},
|
|
45
65
|
"devDependencies": {
|
|
46
|
-
"@workglow/ai": "0.2.
|
|
47
|
-
"@workglow/ai-provider": "0.2.
|
|
48
|
-
"@workglow/job-queue": "0.2.
|
|
49
|
-
"@workglow/storage": "0.2.
|
|
50
|
-
"@workglow/task-graph": "0.2.
|
|
51
|
-
"@workglow/util": "0.2.
|
|
66
|
+
"@workglow/ai": "0.2.30",
|
|
67
|
+
"@workglow/ai-provider": "0.2.30",
|
|
68
|
+
"@workglow/job-queue": "0.2.30",
|
|
69
|
+
"@workglow/storage": "0.2.30",
|
|
70
|
+
"@workglow/task-graph": "0.2.30",
|
|
71
|
+
"@workglow/util": "0.2.30"
|
|
52
72
|
},
|
|
53
73
|
"files": [
|
|
54
74
|
"dist",
|