@nodetool-ai/runtime 0.8.9-beta.2 → 0.8.9-beta.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.
@@ -0,0 +1,228 @@
1
+ /**
2
+ * GeminiVertexProvider — Gemini models through Vertex AI
3
+ * (`aiplatform.googleapis.com`, now branded Gemini Enterprise Agent Platform),
4
+ * billed to a Google Cloud project instead of an AI Studio API key.
5
+ *
6
+ * Request bodies are the same as the Gemini Developer API, so this extends
7
+ * {@link GeminiProvider} and overrides only the endpoint: host, resource paths,
8
+ * credentials, model listing, and the parts of the API Vertex lacks.
9
+ *
10
+ * Credentials, first match wins:
11
+ * 1. `GOOGLE_VERTEX_CREDENTIALS`: a service account key (JSON), or an
12
+ * authorized-user file as `gcloud auth application-default login` writes.
13
+ * 2. `GOOGLE_VERTEX_API_KEY`: a Vertex AI API key (express mode, or a Cloud
14
+ * API key bound to a service account). Requests use the project-less
15
+ * publisher paths, as the Google Gen AI SDK does for keys.
16
+ * 3. The machine's Application Default Credentials, when the registry allows
17
+ * them (never on the cloud profile, where they would be the server's own).
18
+ *
19
+ * Differences from the Developer API that this provider handles:
20
+ * - There is no Files API. Video or audio too large to send inline fails with
21
+ * a message saying so.
22
+ * - Models are listed from `publishers/google/models`.
23
+ * - Veo operations are polled with `:fetchPredictOperation` and return the
24
+ * video inline.
25
+ */
26
+ import { createLogger } from "@nodetool-ai/config";
27
+ import { PROVIDER_IDS } from "@nodetool-ai/protocol";
28
+ import { z } from "zod";
29
+ import { GeminiProvider, GEMINI_INLINE_VIDEO_MAX_BYTES } from "./gemini-provider.js";
30
+ import { getGoogleAccessToken, parseGoogleCredentials, readApplicationDefaultCredentials, GoogleCredentialsError } from "./google-cloud-auth.js";
31
+ const log = createLogger("nodetool.runtime.providers.gemini-vertex");
32
+ export const VERTEX_DEFAULT_LOCATION = "global";
33
+ const VERTEX_API_VERSION = "v1beta1";
34
+ /** Locations served from a multi-region `rep` host instead of `{loc}-aiplatform`. */
35
+ const MULTI_REGIONAL_LOCATIONS = new Set(["us", "eu"]);
36
+ const LOCATION_PATTERN = /^[a-z0-9_-]+$/;
37
+ /** Project ids, including legacy domain-scoped ones (`example.com:project`). */
38
+ const PROJECT_PATTERN = /^[A-Za-z0-9.:_-]+$/;
39
+ /** Same filter the Developer API listing applies: chat models only. */
40
+ const NON_CHAT_MODEL = /(embedding|aqa|imagen|veo|image|tts|lyria)/i;
41
+ /** The API host for a location. */
42
+ export function vertexHost(location) {
43
+ if (location === VERTEX_DEFAULT_LOCATION)
44
+ return "aiplatform.googleapis.com";
45
+ if (MULTI_REGIONAL_LOCATIONS.has(location)) {
46
+ return `aiplatform.${location}.rep.googleapis.com`;
47
+ }
48
+ return `${location}-aiplatform.googleapis.com`;
49
+ }
50
+ const publisherModelsPageSchema = z.object({
51
+ publisherModels: z.array(z.object({ name: z.string().optional() })).optional(),
52
+ nextPageToken: z.string().optional()
53
+ });
54
+ export class GeminiVertexProvider extends GeminiProvider {
55
+ static requiredSecrets() {
56
+ return ["GOOGLE_CLOUD_PROJECT"];
57
+ }
58
+ project;
59
+ location;
60
+ host;
61
+ /**
62
+ * The resource path prefix. An API key uses the project-less publisher
63
+ * paths, as the Google Gen AI SDK does. OAuth credentials address the
64
+ * configured project and location.
65
+ */
66
+ prefix;
67
+ credentialsJson;
68
+ vertexApiKey;
69
+ allowApplicationDefault;
70
+ readApplicationDefault;
71
+ auth = null;
72
+ constructor(secrets, options = {}) {
73
+ super({}, options, PROVIDER_IDS.GEMINI_VERTEX);
74
+ const project = secrets.GOOGLE_CLOUD_PROJECT?.trim();
75
+ if (!project)
76
+ throw new Error("GOOGLE_CLOUD_PROJECT is required");
77
+ if (!PROJECT_PATTERN.test(project)) {
78
+ throw new Error(`GOOGLE_CLOUD_PROJECT is not a project id: ${project}`);
79
+ }
80
+ const location = secrets.GOOGLE_CLOUD_LOCATION?.trim().toLowerCase() ||
81
+ VERTEX_DEFAULT_LOCATION;
82
+ if (!LOCATION_PATTERN.test(location)) {
83
+ throw new Error(`GOOGLE_CLOUD_LOCATION is not a location: ${location}`);
84
+ }
85
+ this.project = project;
86
+ this.location = location;
87
+ this.host = vertexHost(location);
88
+ this.credentialsJson = secrets.GOOGLE_VERTEX_CREDENTIALS?.trim() || undefined;
89
+ this.vertexApiKey = secrets.GOOGLE_VERTEX_API_KEY?.trim() || undefined;
90
+ this.allowApplicationDefault = secrets._allowApplicationDefault === true;
91
+ this.prefix =
92
+ this.vertexApiKey && !this.credentialsJson
93
+ ? VERTEX_API_VERSION
94
+ : `${VERTEX_API_VERSION}/projects/${encodeURIComponent(project)}/locations/${encodeURIComponent(location)}`;
95
+ this.readApplicationDefault =
96
+ options.readApplicationDefault ?? (() => readApplicationDefaultCredentials());
97
+ }
98
+ /** Credentials are short-lived tokens or key files. Neither goes into a container. */
99
+ getContainerEnv() {
100
+ return {};
101
+ }
102
+ // ---------------------------------------------------------------------------
103
+ // Endpoint
104
+ // ---------------------------------------------------------------------------
105
+ resolveAuth() {
106
+ this.auth ??= (async () => {
107
+ if (this.credentialsJson) {
108
+ return {
109
+ kind: "credentials",
110
+ credentials: parseGoogleCredentials(this.credentialsJson)
111
+ };
112
+ }
113
+ if (this.vertexApiKey)
114
+ return { kind: "api_key", apiKey: this.vertexApiKey };
115
+ if (this.allowApplicationDefault) {
116
+ const credentials = await this.readApplicationDefault();
117
+ if (credentials)
118
+ return { kind: "credentials", credentials };
119
+ }
120
+ throw new GoogleCredentialsError(this.allowApplicationDefault
121
+ ? "No Google Cloud credentials found. Run `gcloud auth application-default login`, or add a service account key or a Vertex AI API key."
122
+ : "No Google Cloud credentials found. Add a service account key or a Vertex AI API key.");
123
+ })();
124
+ // A failed lookup is retried on the next call, after the user fixes it.
125
+ this.auth.catch(() => {
126
+ this.auth = null;
127
+ });
128
+ return this.auth;
129
+ }
130
+ /** URL of an API resource or collection under this provider's prefix. */
131
+ apiUrl(path) {
132
+ return `https://${this.host}/${this.prefix}/${path}`;
133
+ }
134
+ modelUrl(model, method, query = {}) {
135
+ const search = new URLSearchParams(query).toString();
136
+ const url = this.apiUrl(`publishers/google/models/${encodeURIComponent(model)}:${method}`);
137
+ return search ? `${url}?${search}` : url;
138
+ }
139
+ async authHeaders() {
140
+ const auth = await this.resolveAuth();
141
+ if (auth.kind === "api_key")
142
+ return { "x-goog-api-key": auth.apiKey };
143
+ const token = await getGoogleAccessToken(auth.credentials, {
144
+ fetchFn: this._fetch
145
+ });
146
+ // User credentials bill quota to a project only when told which one.
147
+ return auth.credentials.type === "authorized_user"
148
+ ? { Authorization: `Bearer ${token}`, "x-goog-user-project": this.project }
149
+ : { Authorization: `Bearer ${token}` };
150
+ }
151
+ isApiHost(hostname) {
152
+ return hostname === this.host;
153
+ }
154
+ async fetchVideoOperation(modelId, operationName, signal) {
155
+ return this._fetch(this.modelUrl(modelId, "fetchPredictOperation"), {
156
+ method: "POST",
157
+ headers: {
158
+ "Content-Type": "application/json",
159
+ ...(await this.authHeaders())
160
+ },
161
+ body: JSON.stringify({ operationName }),
162
+ signal
163
+ });
164
+ }
165
+ /** Vertex has no Files API. Large media must go through Cloud Storage, which is not wired up. */
166
+ async uploadFileToGemini(bytes, _mimeType) {
167
+ const mb = (n) => Math.round(n / (1024 * 1024));
168
+ throw new Error(`Vertex AI takes media inline up to ${mb(GEMINI_INLINE_VIDEO_MAX_BYTES)} MB, and this file is ${mb(bytes.length)} MB. Use a shorter clip, or the Gemini API key provider, which can upload large files.`);
169
+ }
170
+ // ---------------------------------------------------------------------------
171
+ // Models
172
+ // ---------------------------------------------------------------------------
173
+ async getAvailableLanguageModels() {
174
+ const ids = new Set();
175
+ let pageToken;
176
+ try {
177
+ const headers = await this.authHeaders();
178
+ do {
179
+ // Base models are listed without a project prefix, for every credential.
180
+ const query = new URLSearchParams({ pageSize: "100" });
181
+ if (pageToken)
182
+ query.set("pageToken", pageToken);
183
+ const response = await this._fetch(`https://${this.host}/${VERTEX_API_VERSION}/publishers/google/models?${query}`, { headers });
184
+ if (!response.ok) {
185
+ log.warn("Vertex AI model listing failed", { status: response.status });
186
+ return [];
187
+ }
188
+ const page = publisherModelsPageSchema.parse(await response.json());
189
+ for (const model of page.publisherModels ?? []) {
190
+ const id = model.name?.split("/").pop();
191
+ if (id && id.startsWith("gemini") && !NON_CHAT_MODEL.test(id))
192
+ ids.add(id);
193
+ }
194
+ pageToken = page.nextPageToken || undefined;
195
+ } while (pageToken);
196
+ }
197
+ catch (error) {
198
+ log.warn("Vertex AI model listing failed", {
199
+ error: error instanceof Error ? error.message : String(error)
200
+ });
201
+ return [];
202
+ }
203
+ return [...ids].sort().map((id) => ({ id, name: id, provider: this.provider }));
204
+ }
205
+ async getAvailableImageModels() {
206
+ return this.own(await super.getAvailableImageModels());
207
+ }
208
+ async getAvailableTTSModels() {
209
+ return this.own(await super.getAvailableTTSModels());
210
+ }
211
+ async getAvailableASRModels() {
212
+ return this.own(await super.getAvailableASRModels());
213
+ }
214
+ async getAvailableVideoModels() {
215
+ return this.own(await super.getAvailableVideoModels());
216
+ }
217
+ async getAvailableMusicModels() {
218
+ return this.own(await super.getAvailableMusicModels());
219
+ }
220
+ async getAvailableEmbeddingModels() {
221
+ return this.own(await super.getAvailableEmbeddingModels());
222
+ }
223
+ /** Re-label the Developer API's model lists as this provider's. */
224
+ own(models) {
225
+ return models.map((model) => ({ ...model, provider: this.provider }));
226
+ }
227
+ }
228
+ //# sourceMappingURL=gemini-vertex-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini-vertex-provider.js","sourceRoot":"","sources":["../../src/providers/gemini-vertex-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Google Cloud OAuth access tokens for Vertex AI.
3
+ *
4
+ * Two credential files are accepted, in the JSON formats Google itself writes:
5
+ *
6
+ * - `service_account`: a key downloaded from IAM. The token is minted with a
7
+ * self-signed RS256 JWT exchanged at the key's `token_uri`.
8
+ * - `authorized_user`: what `gcloud auth application-default login` writes.
9
+ * The token is minted from its refresh token.
10
+ *
11
+ * {@link readApplicationDefaultCredentials} finds the machine's own file the
12
+ * way Google's client libraries do: `GOOGLE_APPLICATION_CREDENTIALS`, then
13
+ * gcloud's well-known location. The GCE metadata server and workload identity
14
+ * federation are not supported.
15
+ *
16
+ * Tokens are cached per credential across provider instances, because the
17
+ * registry builds a fresh provider for every call.
18
+ */
19
+ import { z } from "zod";
20
+ /** The one scope Vertex AI requires. */
21
+ export declare const GOOGLE_CLOUD_PLATFORM_SCOPE = "https://www.googleapis.com/auth/cloud-platform";
22
+ declare const credentialsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
23
+ type: z.ZodLiteral<"service_account">;
24
+ client_email: z.ZodString;
25
+ private_key: z.ZodString;
26
+ private_key_id: z.ZodOptional<z.ZodString>;
27
+ project_id: z.ZodOptional<z.ZodString>;
28
+ token_uri: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strip>, z.ZodObject<{
30
+ type: z.ZodLiteral<"authorized_user">;
31
+ client_id: z.ZodString;
32
+ client_secret: z.ZodString;
33
+ refresh_token: z.ZodString;
34
+ quota_project_id: z.ZodOptional<z.ZodString>;
35
+ }, z.core.$strip>], "type">;
36
+ export type GoogleCredentials = z.infer<typeof credentialsSchema>;
37
+ /** A credential that could not be read or used. The message names the fix. */
38
+ export declare class GoogleCredentialsError extends Error {
39
+ constructor(message: string, options?: {
40
+ cause?: unknown;
41
+ });
42
+ }
43
+ /** Parse a service-account or authorized-user JSON file. */
44
+ export declare function parseGoogleCredentials(json: string): GoogleCredentials;
45
+ /** The project a credential file names, if any. */
46
+ export declare function credentialsProject(credentials: GoogleCredentials): string | undefined;
47
+ /**
48
+ * Read the machine's Application Default Credentials file, or null when there
49
+ * is none. Returns null outside Node.
50
+ */
51
+ export declare function readApplicationDefaultCredentials(env?: Record<string, string | undefined>): Promise<GoogleCredentials | null>;
52
+ /** Forget every cached token. For tests. */
53
+ export declare function clearGoogleTokenCache(): void;
54
+ export interface GoogleTokenOptions {
55
+ fetchFn?: typeof fetch;
56
+ now?: () => number;
57
+ }
58
+ /** A valid access token for `credentials`, minted or refreshed as needed. */
59
+ export declare function getGoogleAccessToken(credentials: GoogleCredentials, options?: GoogleTokenOptions): Promise<string>;
60
+ /** The RS256 JWT a service account exchanges for an access token. */
61
+ export declare function signServiceAccountAssertion(credentials: Extract<GoogleCredentials, {
62
+ type: "service_account";
63
+ }>, audience: string, issuedAtS: number): Promise<string>;
64
+ export {};
65
+ //# sourceMappingURL=google-cloud-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-cloud-auth.d.ts","sourceRoot":"","sources":["../../src/providers/google-cloud-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wCAAwC;AACxC,eAAO,MAAM,2BAA2B,mDACU,CAAC;AA4BnD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;2BAGrB,CAAC;AAaH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,8EAA8E;AAC9E,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAGzD;CACF;AAED,4DAA4D;AAC5D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAkBtE;AAED,mDAAmD;AACnD,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,iBAAiB,GAC7B,MAAM,GAAG,SAAS,CAIpB;AAED;;;GAGG;AACH,wBAAsB,iCAAiC,CACrD,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA+BnC;AAYD,4CAA4C;AAC5C,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAQD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,6EAA6E;AAC7E,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,iBAAiB,EAC9B,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAgBjB;AA2ED,qEAAqE;AACrE,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,EACpE,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CA0CjB"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Google Cloud OAuth access tokens for Vertex AI.
3
+ *
4
+ * Two credential files are accepted, in the JSON formats Google itself writes:
5
+ *
6
+ * - `service_account`: a key downloaded from IAM. The token is minted with a
7
+ * self-signed RS256 JWT exchanged at the key's `token_uri`.
8
+ * - `authorized_user`: what `gcloud auth application-default login` writes.
9
+ * The token is minted from its refresh token.
10
+ *
11
+ * {@link readApplicationDefaultCredentials} finds the machine's own file the
12
+ * way Google's client libraries do: `GOOGLE_APPLICATION_CREDENTIALS`, then
13
+ * gcloud's well-known location. The GCE metadata server and workload identity
14
+ * federation are not supported.
15
+ *
16
+ * Tokens are cached per credential across provider instances, because the
17
+ * registry builds a fresh provider for every call.
18
+ */
19
+ import { importNodeBuiltin } from "@nodetool-ai/config";
20
+ import { z } from "zod";
21
+ /** The one scope Vertex AI requires. */
22
+ export const GOOGLE_CLOUD_PLATFORM_SCOPE = "https://www.googleapis.com/auth/cloud-platform";
23
+ const GOOGLE_TOKEN_URL = "https://oauth2.googleapis.com/token";
24
+ /** Treat a token expiring within this window as already expired. */
25
+ const EXPIRY_SKEW_MS = 60_000;
26
+ /** Lifetime asked for in a service-account assertion, the maximum Google allows. */
27
+ const ASSERTION_LIFETIME_S = 3600;
28
+ const serviceAccountSchema = z.object({
29
+ type: z.literal("service_account"),
30
+ client_email: z.string().min(1),
31
+ private_key: z.string().min(1),
32
+ private_key_id: z.string().optional(),
33
+ project_id: z.string().optional(),
34
+ /** Ignored: tokens always come from Google's endpoint, never a URL the file names. */
35
+ token_uri: z.string().optional()
36
+ });
37
+ const authorizedUserSchema = z.object({
38
+ type: z.literal("authorized_user"),
39
+ client_id: z.string().min(1),
40
+ client_secret: z.string().min(1),
41
+ refresh_token: z.string().min(1),
42
+ quota_project_id: z.string().optional()
43
+ });
44
+ const credentialsSchema = z.discriminatedUnion("type", [
45
+ serviceAccountSchema,
46
+ authorizedUserSchema
47
+ ]);
48
+ /** Only the `type` of a file that is not a supported credential, for the error. */
49
+ const credentialTypeSchema = z.object({ type: z.string() });
50
+ /** Google's token endpoint answer, success or OAuth error. */
51
+ const tokenResponseSchema = z.object({
52
+ access_token: z.string().optional(),
53
+ expires_in: z.number().optional(),
54
+ error: z.string().optional(),
55
+ error_description: z.string().optional()
56
+ });
57
+ /** A credential that could not be read or used. The message names the fix. */
58
+ export class GoogleCredentialsError extends Error {
59
+ constructor(message, options) {
60
+ super(message, options);
61
+ this.name = "GoogleCredentialsError";
62
+ }
63
+ }
64
+ /** Parse a service-account or authorized-user JSON file. */
65
+ export function parseGoogleCredentials(json) {
66
+ let raw;
67
+ try {
68
+ raw = JSON.parse(json);
69
+ }
70
+ catch (error) {
71
+ throw new GoogleCredentialsError("Google Cloud credentials are not valid JSON. Paste the whole service account key file.", { cause: error });
72
+ }
73
+ const parsed = credentialsSchema.safeParse(raw);
74
+ if (!parsed.success) {
75
+ const type = credentialTypeSchema.safeParse(raw).data?.type ?? "missing";
76
+ throw new GoogleCredentialsError(`Unsupported Google Cloud credentials (type: ${type}). Use a service account key or run \`gcloud auth application-default login\`.`);
77
+ }
78
+ return parsed.data;
79
+ }
80
+ /** The project a credential file names, if any. */
81
+ export function credentialsProject(credentials) {
82
+ return credentials.type === "service_account"
83
+ ? credentials.project_id
84
+ : credentials.quota_project_id;
85
+ }
86
+ /**
87
+ * Read the machine's Application Default Credentials file, or null when there
88
+ * is none. Returns null outside Node.
89
+ */
90
+ export async function readApplicationDefaultCredentials(env = process.env) {
91
+ const [fs, os, path] = await Promise.all([
92
+ importNodeBuiltin("node:fs/promises"),
93
+ importNodeBuiltin("node:os"),
94
+ importNodeBuiltin("node:path")
95
+ ]);
96
+ if (!fs || !os || !path)
97
+ return null;
98
+ const explicit = env["GOOGLE_APPLICATION_CREDENTIALS"];
99
+ const file = explicit ||
100
+ (process.platform === "win32"
101
+ ? path.join(env["APPDATA"] ?? os.homedir(), "gcloud", "application_default_credentials.json")
102
+ : path.join(env["CLOUDSDK_CONFIG"] ?? path.join(os.homedir(), ".config", "gcloud"), "application_default_credentials.json"));
103
+ let text;
104
+ try {
105
+ text = await fs.readFile(file, "utf8");
106
+ }
107
+ catch (error) {
108
+ if (explicit) {
109
+ throw new GoogleCredentialsError(`Could not read GOOGLE_APPLICATION_CREDENTIALS (${explicit}).`, { cause: error });
110
+ }
111
+ return null;
112
+ }
113
+ return parseGoogleCredentials(text);
114
+ }
115
+ /** Credential identity -> its current token. */
116
+ const tokenCache = new Map();
117
+ /** One mint per credential at a time. */
118
+ const inFlight = new Map();
119
+ /** Forget every cached token. For tests. */
120
+ export function clearGoogleTokenCache() {
121
+ tokenCache.clear();
122
+ inFlight.clear();
123
+ }
124
+ function cacheKey(credentials) {
125
+ return credentials.type === "service_account"
126
+ ? `sa:${credentials.client_email}:${credentials.private_key_id ?? ""}`
127
+ : `user:${credentials.client_id}:${credentials.refresh_token}`;
128
+ }
129
+ /** A valid access token for `credentials`, minted or refreshed as needed. */
130
+ export async function getGoogleAccessToken(credentials, options = {}) {
131
+ const now = options.now ?? Date.now;
132
+ const key = cacheKey(credentials);
133
+ const cached = tokenCache.get(key);
134
+ if (cached && cached.expiresAt - EXPIRY_SKEW_MS > now())
135
+ return cached.token;
136
+ let pending = inFlight.get(key);
137
+ if (!pending) {
138
+ pending = mintToken(credentials, options.fetchFn ?? fetch, now).finally(() => inFlight.delete(key));
139
+ inFlight.set(key, pending);
140
+ }
141
+ const minted = await pending;
142
+ tokenCache.set(key, minted);
143
+ return minted.token;
144
+ }
145
+ async function mintToken(credentials, fetchFn, now) {
146
+ const issuedAt = now();
147
+ const tokenUrl = GOOGLE_TOKEN_URL;
148
+ const body = credentials.type === "service_account"
149
+ ? new URLSearchParams({
150
+ grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
151
+ assertion: await signServiceAccountAssertion(credentials, tokenUrl, Math.floor(issuedAt / 1000))
152
+ })
153
+ : new URLSearchParams({
154
+ grant_type: "refresh_token",
155
+ client_id: credentials.client_id,
156
+ client_secret: credentials.client_secret,
157
+ refresh_token: credentials.refresh_token
158
+ });
159
+ const response = await fetchFn(tokenUrl, {
160
+ method: "POST",
161
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
162
+ body: body.toString()
163
+ });
164
+ const payload = tokenResponseSchema.safeParse(await response.json().catch(() => null))
165
+ .data ?? {};
166
+ if (!response.ok || !payload.access_token) {
167
+ // Google's token errors carry no secret material, only a code and a hint.
168
+ const reason = payload.error_description ?? payload.error ?? `HTTP ${response.status}`;
169
+ const fix = credentials.type === "authorized_user"
170
+ ? " Run `gcloud auth application-default login` again."
171
+ : " Check that the service account key is still active.";
172
+ throw new GoogleCredentialsError(`Google Cloud sign-in failed: ${reason.replace(/\.$/, "")}.${fix}`);
173
+ }
174
+ const lifetimeS = payload.expires_in ?? 3600;
175
+ return {
176
+ token: payload.access_token,
177
+ expiresAt: issuedAt + lifetimeS * 1000
178
+ };
179
+ }
180
+ function base64Url(bytes) {
181
+ return Buffer.from(bytes).toString("base64url");
182
+ }
183
+ function base64UrlJson(value) {
184
+ return Buffer.from(JSON.stringify(value), "utf8").toString("base64url");
185
+ }
186
+ /** The RS256 JWT a service account exchanges for an access token. */
187
+ export async function signServiceAccountAssertion(credentials, audience, issuedAtS) {
188
+ const header = credentials.private_key_id
189
+ ? { alg: "RS256", typ: "JWT", kid: credentials.private_key_id }
190
+ : { alg: "RS256", typ: "JWT" };
191
+ const claims = {
192
+ iss: credentials.client_email,
193
+ scope: GOOGLE_CLOUD_PLATFORM_SCOPE,
194
+ aud: audience,
195
+ iat: issuedAtS,
196
+ exp: issuedAtS + ASSERTION_LIFETIME_S
197
+ };
198
+ const signingInput = `${base64UrlJson(header)}.${base64UrlJson(claims)}`;
199
+ const pem = credentials.private_key.replace(/\\n/g, "\n");
200
+ const der = Buffer.from(pem
201
+ .replace(/-----BEGIN PRIVATE KEY-----/, "")
202
+ .replace(/-----END PRIVATE KEY-----/, "")
203
+ .replace(/\s+/g, ""), "base64");
204
+ let key;
205
+ try {
206
+ key = await globalThis.crypto.subtle.importKey("pkcs8", der, { name: "RSASSA-PKCS1-v1_5", hash: "SHA-256" }, false, ["sign"]);
207
+ }
208
+ catch (error) {
209
+ throw new GoogleCredentialsError("The service account key's private_key could not be read.", { cause: error });
210
+ }
211
+ const signature = await globalThis.crypto.subtle.sign("RSASSA-PKCS1-v1_5", key, Buffer.from(signingInput, "utf8"));
212
+ return `${signingInput}.${base64Url(new Uint8Array(signature))}`;
213
+ }
214
+ //# sourceMappingURL=google-cloud-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-cloud-auth.js","sourceRoot":"","sources":["../../src/providers/google-cloud-auth.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,7 @@ export { AntigravityProvider };
91
91
  export { DreaminaProvider, setDreaminaPageRunner, type DreaminaPageRunner } from "./dreamina-provider.js";
92
92
  export { ChatGPTProvider, setChatGPTTab } from "./chatgpt-provider.js";
93
93
  export { GeminiWebProvider, setGeminiWebTab } from "./gemini-web-provider.js";
94
+ export { GeminiVertexProvider } from "./gemini-vertex-provider.js";
94
95
  export { ToolCallTextFilter, parseToolCalls, toToolSpecs, toolCallText, toolsPromptSection, type ParsedOutput, type ToolSpec } from "./text-tool-calls.js";
95
96
  export type { ExtensionTab } from "./extension-tab.js";
96
97
  export { GeminiProvider };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ import { DreaminaProvider } from "./dreamina-provider.js";
15
15
  import { ChatGPTProvider } from "./chatgpt-provider.js";
16
16
  import { GeminiWebProvider } from "./gemini-web-provider.js";
17
17
  import { GeminiProvider } from "./gemini-provider.js";
18
+ import { GeminiVertexProvider } from "./gemini-vertex-provider.js";
18
19
  import { LlamaProvider } from "./llama-provider.js";
19
20
  import { NodeLlamaCppProvider } from "./node-llama-cpp-provider.js";
20
21
  import { StableDiffusionCppProvider } from "./sdcpp-provider.js";
@@ -87,6 +88,7 @@ export { AntigravityProvider };
87
88
  export { DreaminaProvider, setDreaminaPageRunner } from "./dreamina-provider.js";
88
89
  export { ChatGPTProvider, setChatGPTTab } from "./chatgpt-provider.js";
89
90
  export { GeminiWebProvider, setGeminiWebTab } from "./gemini-web-provider.js";
91
+ export { GeminiVertexProvider } from "./gemini-vertex-provider.js";
90
92
  export { ToolCallTextFilter, parseToolCalls, toToolSpecs, toolCallText, toolsPromptSection } from "./text-tool-calls.js";
91
93
  export { GeminiProvider };
92
94
  export { LlamaProvider };
@@ -319,6 +321,16 @@ const _envProcess = typeof process !== "undefined"
319
321
  ? process
320
322
  : { env: {} };
321
323
  const _cloudProfile = isCloudProfileActive(_envProcess.env[CLOUD_PROFILE_ENV], _envProcess.env[NODE_ENV_VAR]);
324
+ // Gemini through Vertex AI. The project is required. The credential is a pasted
325
+ // service account key or Vertex API key, or, off the cloud profile, the
326
+ // machine's own Application Default Credentials (`gcloud auth
327
+ // application-default login`). On the cloud profile those would be the
328
+ // server's identity, so they are never read there.
329
+ registerBuiltinProvider(PROVIDER_IDS.GEMINI_VERTEX, GeminiVertexProvider, { GOOGLE_CLOUD_PROJECT: "", _allowApplicationDefault: !_cloudProfile }, {
330
+ GOOGLE_CLOUD_LOCATION: "",
331
+ GOOGLE_VERTEX_CREDENTIALS: "",
332
+ GOOGLE_VERTEX_API_KEY: ""
333
+ }, { displayName: "Gemini (Google Cloud)" });
322
334
  if (!_cloudProfile) {
323
335
  // Ollama defaults to the standard local daemon port so the provider is
324
336
  // usable out-of-the-box. The URL is registered as an optionalKwarg so it