pyric 0.1.0-alpha.31 → 0.1.0-alpha.32
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/app-check-gate.d.ts +9 -2
- package/dist/ai/app-check-gate.d.ts.map +1 -1
- package/dist/ai/app-check-gate.js +18 -2
- package/dist/ai/app-check-gate.js.map +1 -1
- package/dist/ai/broker/gemini-engine.d.ts +3 -2
- package/dist/ai/broker/gemini-engine.d.ts.map +1 -1
- package/dist/ai/broker/gemini-engine.js +35 -23
- package/dist/ai/broker/gemini-engine.js.map +1 -1
- package/dist/ai/errors.d.ts +10 -6
- package/dist/ai/errors.d.ts.map +1 -1
- package/dist/ai/errors.js +34 -12
- package/dist/ai/errors.js.map +1 -1
- package/dist/ai/instances.js +1 -0
- package/dist/ai/instances.js.map +1 -1
- package/dist/ai/internal.d.ts.map +1 -1
- package/dist/ai/internal.js +1 -0
- package/dist/ai/internal.js.map +1 -1
- package/dist/ai/sandbox-plane.js +1 -1
- package/dist/ai/sandbox-plane.js.map +1 -1
- package/dist/ai/types.d.ts +4 -0
- package/dist/ai/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ai/app-check-gate.ts +26 -3
- package/src/ai/broker/gemini-engine.ts +42 -25
- package/src/ai/errors.ts +40 -11
- package/src/ai/instances.ts +1 -0
- package/src/ai/internal.ts +1 -0
- package/src/ai/sandbox-plane.ts +1 -1
- package/src/ai/types.ts +4 -0
|
@@ -18,14 +18,21 @@
|
|
|
18
18
|
*
|
|
19
19
|
* The error the app gets stays production's. Pyric's guidance rides beside
|
|
20
20
|
* it: on the `request_rejected` event the dev server prints, and once per app
|
|
21
|
-
* as a `console.warn` in the page or process.
|
|
21
|
+
* as a `console.warn` in the page or process. A server process (a registered
|
|
22
|
+
* Node process, a server-rendered module) gets its own guidance: the reCAPTCHA
|
|
23
|
+
* providers throw there and it has no `self`, so it sets the debug token on
|
|
24
|
+
* `globalThis` beside a CustomProvider, as `build/ai-logic.md` shows (#1639).
|
|
25
|
+
* A page's workers are browser realms: they have no `document`, but `self`
|
|
26
|
+
* works there, so they keep the page guidance.
|
|
22
27
|
*/
|
|
23
28
|
import type { FirebaseApp } from '../app/types.js';
|
|
24
29
|
import type { AppCheckClaim, WireErrorEnvelope } from './broker/types.js';
|
|
25
30
|
/** Production's message for a refused request (capture `app-check-ai-gate-wire`), verbatim. */
|
|
26
31
|
export declare const APP_CHECK_REQUIRED_MESSAGE = "Firebase AI Logic has been deactivated in this project. To resume using Firebase AI Logic, you must enforce Firebase App Check. Learn more: https://firebase.google.com/docs/ai-logic/app-check";
|
|
27
|
-
/** Pyric's guidance, printed beside production's error, never in place of it. */
|
|
32
|
+
/** Pyric's guidance for a page, printed beside production's error, never in place of it. */
|
|
28
33
|
export declare const APP_CHECK_HINT = "Firebase AI Logic refuses requests without an App Check token, and so does the sandbox. Call initializeAppCheck(app, { provider }) before getAI(app). For local development, set self.FIREBASE_APPCHECK_DEBUG_TOKEN = true before initializeAppCheck to use the debug provider; the sandbox accepts its tokens. https://firebase.google.com/docs/ai-logic/app-check";
|
|
34
|
+
/** Pyric's guidance for a server process, where reCAPTCHA throws and `self` does not exist. */
|
|
35
|
+
export declare const APP_CHECK_SERVER_HINT = "Firebase AI Logic refuses requests without an App Check token, and so does the sandbox. This process has no document, so the reCAPTCHA providers throw here. For local development, set globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN = true, then call initializeAppCheck(app, { provider: new CustomProvider({ getToken }) }) before getAI(app). The sandbox does not call getToken while the debug token is set. Without the debug token, getToken returns { token, expireTimeMillis: Date.now() + ttlMillis } from a token your server mints with firebase-admin's getAppCheck().createToken(appId). https://firebase.google.com/docs/ai-logic/app-check";
|
|
29
36
|
/** The captured refusal envelope (`app-check-ai-gate-wire`, `noHeader.raw`). */
|
|
30
37
|
export declare function appCheckRequired(): WireErrorEnvelope;
|
|
31
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-check-gate.d.ts","sourceRoot":"","sources":["../../src/ai/app-check-gate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"app-check-gate.d.ts","sourceRoot":"","sources":["../../src/ai/app-check-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,+FAA+F;AAC/F,eAAO,MAAM,0BAA0B,oMAC4J,CAAC;AAEpM,4FAA4F;AAC5F,eAAO,MAAM,cAAc,wWAC4U,CAAC;AAExW,+FAA+F;AAC/F,eAAO,MAAM,qBAAqB,4nBACylB,CAAC;AAgB5nB,gFAAgF;AAChF,wBAAgB,gBAAgB,IAAI,iBAAiB,CAEpD;AAOD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,GAAE,MAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhH;AAED,oGAAoG;AACpG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CASzD;AAED,2DAA2D;AAC3D,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,0FAA0F;IAC1F,WAAW,IAAI,IAAI,CAAC;CACrB;AAwBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,GAAG,kBAAkB,CAM/F"}
|
|
@@ -3,8 +3,24 @@ import { APP_CHECK_PLACEHOLDER_TOKEN, checkAppCheckToken } from '../sandbox/inte
|
|
|
3
3
|
import { RequestHeadersFailure } from './errors.js';
|
|
4
4
|
/** Production's message for a refused request (capture `app-check-ai-gate-wire`), verbatim. */
|
|
5
5
|
export const APP_CHECK_REQUIRED_MESSAGE = 'Firebase AI Logic has been deactivated in this project. To resume using Firebase AI Logic, you must enforce Firebase App Check. Learn more: https://firebase.google.com/docs/ai-logic/app-check';
|
|
6
|
-
/** Pyric's guidance, printed beside production's error, never in place of it. */
|
|
6
|
+
/** Pyric's guidance for a page, printed beside production's error, never in place of it. */
|
|
7
7
|
export const APP_CHECK_HINT = 'Firebase AI Logic refuses requests without an App Check token, and so does the sandbox. Call initializeAppCheck(app, { provider }) before getAI(app). For local development, set self.FIREBASE_APPCHECK_DEBUG_TOKEN = true before initializeAppCheck to use the debug provider; the sandbox accepts its tokens. https://firebase.google.com/docs/ai-logic/app-check';
|
|
8
|
+
/** Pyric's guidance for a server process, where reCAPTCHA throws and `self` does not exist. */
|
|
9
|
+
export const APP_CHECK_SERVER_HINT = "Firebase AI Logic refuses requests without an App Check token, and so does the sandbox. This process has no document, so the reCAPTCHA providers throw here. For local development, set globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN = true, then call initializeAppCheck(app, { provider: new CustomProvider({ getToken }) }) before getAI(app). The sandbox does not call getToken while the debug token is set. Without the debug token, getToken returns { token, expireTimeMillis: Date.now() + ttlMillis } from a token your server mints with firebase-admin's getAppCheck().createToken(appId). https://firebase.google.com/docs/ai-logic/app-check";
|
|
10
|
+
/**
|
|
11
|
+
* The guidance for the realm the app runs in. A page has a `document`, and a
|
|
12
|
+
* page's Web Worker, SharedWorker or service worker has `WorkerGlobalScope`:
|
|
13
|
+
* both are browser realms. Anything else is a server process.
|
|
14
|
+
*/
|
|
15
|
+
function appCheckHintForThisRealm() {
|
|
16
|
+
const scope = globalThis;
|
|
17
|
+
const hasDocument = typeof scope.document !== 'undefined';
|
|
18
|
+
const isWorkerRealm = typeof scope.WorkerGlobalScope !== 'undefined';
|
|
19
|
+
const isBrowserRealm = hasDocument || isWorkerRealm;
|
|
20
|
+
if (isBrowserRealm)
|
|
21
|
+
return APP_CHECK_HINT;
|
|
22
|
+
return APP_CHECK_SERVER_HINT;
|
|
23
|
+
}
|
|
8
24
|
/** The captured refusal envelope (`app-check-ai-gate-wire`, `noHeader.raw`). */
|
|
9
25
|
export function appCheckRequired() {
|
|
10
26
|
return { error: { code: 403, message: APP_CHECK_REQUIRED_MESSAGE, status: 'PERMISSION_DENIED' } };
|
|
@@ -46,7 +62,7 @@ function warnOnce(app) {
|
|
|
46
62
|
if (warnedApps.has(app))
|
|
47
63
|
return;
|
|
48
64
|
warnedApps.add(app);
|
|
49
|
-
console.warn(`[pyric/ai] ${
|
|
65
|
+
console.warn(`[pyric/ai] ${appCheckHintForThisRealm()}`);
|
|
50
66
|
}
|
|
51
67
|
/**
|
|
52
68
|
* The token a request carries. A limited-use token request can reject (the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-check-gate.js","sourceRoot":"","sources":["../../src/ai/app-check-gate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-check-gate.js","sourceRoot":"","sources":["../../src/ai/app-check-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,8 +43,9 @@ export declare class GeminiEngine implements AnswerEngine {
|
|
|
43
43
|
* upstream's own error envelope: its HTTP code, `status` and message. A
|
|
44
44
|
* body that is not a Gemini error envelope keeps the HTTP code and reports
|
|
45
45
|
* the body text. Either way the credentials the request carried are masked
|
|
46
|
-
* in every form the upstream can quote them,
|
|
47
|
-
*
|
|
46
|
+
* in every form the upstream can quote them, in the message and the status
|
|
47
|
+
* alike, with the masking the gemini proxy applies to the same body
|
|
48
|
+
* (`upstream-error-redaction.ts`, #1660).
|
|
48
49
|
*/
|
|
49
50
|
private checkStatus;
|
|
50
51
|
generateContent(req: GenerateContentRequest, model: string): Promise<WireResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-engine.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/gemini-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini-engine.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/gemini-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElF,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAuCnF,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAExD,qBAAa,YAAa,YAAW,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAE9B,OAAO,CAAC,EAAE,mBAAmB;IAIzC;;;;;OAKG;IACH,gBAAgB,IAAI,OAAO;IAI3B,oFAAoF;YACtE,IAAI;IAUlB;;;;;OAKG;IACH,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAIrD,OAAO,CAAC,cAAc;IAItB;;;;;;;;OAQG;YACW,WAAW;IAiBnB,eAAe,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKjF,qBAAqB,CAC1B,GAAG,EAAE,sBAAsB,EAC3B,KAAK,EAAE,MAAM,GACZ,aAAa,CAAC,SAAS,CAAC;IA2DrB,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAIxF"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { AiBrokerError, errorEnvelope } from './synthesizer.js';
|
|
18
18
|
import { GeminiUpstream } from './gemini-upstream.js';
|
|
19
|
-
import { redactUpstreamText } from './upstream-error-redaction.js';
|
|
19
|
+
import { redactUpstreamError, redactUpstreamText } from './upstream-error-redaction.js';
|
|
20
20
|
export { GEMINI_DEFAULT_BASE_URL, hasGeminiStaticKey } from './gemini-upstream.js';
|
|
21
21
|
/** The `message` and `status` of a Gemini `{ error: { ... } }` body, or null. */
|
|
22
22
|
function parseUpstreamError(text) {
|
|
@@ -33,6 +33,24 @@ function parseUpstreamError(text) {
|
|
|
33
33
|
return null;
|
|
34
34
|
return { message: error.message, status: error.status };
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* One SSE event's data as a chunk, or undefined when it is not JSON. A 2xx
|
|
38
|
+
* stream can carry an error event mid-response; it passes through as the
|
|
39
|
+
* upstream sent it, with the credentials the request carried masked (#1660).
|
|
40
|
+
*/
|
|
41
|
+
function parseStreamData(data, credentials) {
|
|
42
|
+
let chunk;
|
|
43
|
+
try {
|
|
44
|
+
chunk = JSON.parse(data);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const isErrorEvent = chunk !== null && typeof chunk === 'object' && 'error' in chunk;
|
|
50
|
+
if (!isErrorEvent)
|
|
51
|
+
return chunk;
|
|
52
|
+
return JSON.parse(redactUpstreamError(data, credentials));
|
|
53
|
+
}
|
|
36
54
|
export class GeminiEngine {
|
|
37
55
|
upstream;
|
|
38
56
|
constructor(options) {
|
|
@@ -50,7 +68,8 @@ export class GeminiEngine {
|
|
|
50
68
|
/** Sends one upstream request; a non-2xx answer throws the upstream's own error. */
|
|
51
69
|
async send(model, action, body) {
|
|
52
70
|
const { response, credentials } = await this.upstream.sendWithCredentials(this.normalizeModel(model), action, JSON.stringify(body));
|
|
53
|
-
|
|
71
|
+
await this.checkStatus(response, credentials);
|
|
72
|
+
return { response, credentials };
|
|
54
73
|
}
|
|
55
74
|
/**
|
|
56
75
|
* The model this engine calls upstream: always the requested one. The
|
|
@@ -69,27 +88,27 @@ export class GeminiEngine {
|
|
|
69
88
|
* upstream's own error envelope: its HTTP code, `status` and message. A
|
|
70
89
|
* body that is not a Gemini error envelope keeps the HTTP code and reports
|
|
71
90
|
* the body text. Either way the credentials the request carried are masked
|
|
72
|
-
* in every form the upstream can quote them,
|
|
73
|
-
*
|
|
91
|
+
* in every form the upstream can quote them, in the message and the status
|
|
92
|
+
* alike, with the masking the gemini proxy applies to the same body
|
|
93
|
+
* (`upstream-error-redaction.ts`, #1660).
|
|
74
94
|
*/
|
|
75
95
|
async checkStatus(response, credentials) {
|
|
76
96
|
const isSuccess = response.ok;
|
|
77
97
|
if (isSuccess)
|
|
78
|
-
return
|
|
98
|
+
return;
|
|
79
99
|
const errorText = await response.text().catch(() => '');
|
|
80
|
-
const upstream = parseUpstreamError(errorText);
|
|
100
|
+
const upstream = parseUpstreamError(redactUpstreamError(errorText, credentials));
|
|
81
101
|
if (upstream !== null) {
|
|
82
|
-
|
|
83
|
-
throw new AiBrokerError(errorEnvelope(response.status, message, upstream.status));
|
|
102
|
+
throw new AiBrokerError(errorEnvelope(response.status, upstream.message, upstream.status));
|
|
84
103
|
}
|
|
85
104
|
throw new AiBrokerError(errorEnvelope(response.status, `Gemini API returned status ${response.status}: ${redactUpstreamText(errorText, credentials)}`, 'INTERNAL'));
|
|
86
105
|
}
|
|
87
106
|
async generateContent(req, model) {
|
|
88
|
-
const response = await this.send(model, 'generateContent', req);
|
|
107
|
+
const { response } = await this.send(model, 'generateContent', req);
|
|
89
108
|
return (await response.json());
|
|
90
109
|
}
|
|
91
110
|
async *streamGenerateContent(req, model) {
|
|
92
|
-
const response = await this.send(model, 'streamGenerateContent?alt=sse', req);
|
|
111
|
+
const { response, credentials } = await this.send(model, 'streamGenerateContent?alt=sse', req);
|
|
93
112
|
const hasBody = response.body !== null && response.body !== undefined;
|
|
94
113
|
if (!hasBody) {
|
|
95
114
|
throw new AiBrokerError(errorEnvelope(500, 'Gemini API returned an empty stream response.', 'INTERNAL'));
|
|
@@ -117,13 +136,10 @@ export class GeminiEngine {
|
|
|
117
136
|
if (isEmptyOrDone) {
|
|
118
137
|
continue;
|
|
119
138
|
}
|
|
120
|
-
|
|
121
|
-
|
|
139
|
+
// A malformed SSE chunk is skipped.
|
|
140
|
+
const chunk = parseStreamData(dataStr, credentials);
|
|
141
|
+
if (chunk !== undefined)
|
|
122
142
|
yield chunk;
|
|
123
|
-
}
|
|
124
|
-
catch {
|
|
125
|
-
// Ignore malformed SSE chunk in stream
|
|
126
|
-
}
|
|
127
143
|
}
|
|
128
144
|
}
|
|
129
145
|
const hasTrailingBuffer = buffer.trim().length > 0;
|
|
@@ -134,13 +150,9 @@ export class GeminiEngine {
|
|
|
134
150
|
const dataStr = line.slice(6).trim();
|
|
135
151
|
const isNotEmptyOrDone = dataStr !== '' && dataStr !== '[DONE]';
|
|
136
152
|
if (isNotEmptyOrDone) {
|
|
137
|
-
|
|
138
|
-
|
|
153
|
+
const chunk = parseStreamData(dataStr, credentials);
|
|
154
|
+
if (chunk !== undefined)
|
|
139
155
|
yield chunk;
|
|
140
|
-
}
|
|
141
|
-
catch {
|
|
142
|
-
// Ignore malformed SSE chunk in stream
|
|
143
|
-
}
|
|
144
156
|
}
|
|
145
157
|
}
|
|
146
158
|
}
|
|
@@ -150,7 +162,7 @@ export class GeminiEngine {
|
|
|
150
162
|
}
|
|
151
163
|
}
|
|
152
164
|
async countTokens(req, model) {
|
|
153
|
-
const response = await this.send(model, 'countTokens', req);
|
|
165
|
+
const { response } = await this.send(model, 'countTokens', req);
|
|
154
166
|
return (await response.json());
|
|
155
167
|
}
|
|
156
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-engine.js","sourceRoot":"","sources":["../../../src/ai/broker/gemini-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,cAAc,EAA8B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini-engine.js","sourceRoot":"","sources":["../../../src/ai/broker/gemini-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/errors.d.ts
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { FirebaseError } from '../sandbox/internal/firebase-error.js';
|
|
14
14
|
import { type WireErrorEnvelope } from './broker/index.js';
|
|
15
|
+
import { type Backend } from './backend.js';
|
|
15
16
|
/** Standardized error codes the SDK can throw — 14 codes in 2.12.0. */
|
|
16
17
|
export declare const AIErrorCode: {
|
|
17
18
|
readonly ERROR: "error";
|
|
@@ -50,17 +51,20 @@ export declare class AIError extends FirebaseError {
|
|
|
50
51
|
/** Minimal HTTP status text table for the statuses the sandbox mints. */
|
|
51
52
|
export declare function statusTextOf(status: number): string;
|
|
52
53
|
/**
|
|
53
|
-
* Production-shaped request URL for sandbox-minted fetch errors
|
|
54
|
-
*
|
|
55
|
-
*
|
|
54
|
+
* Production-shaped request URL for sandbox-minted fetch errors, the
|
|
55
|
+
* `RequestURL` the SDK interpolates into its `Error fetching from <url>`
|
|
56
|
+
* message. There is no real project behind the sandbox, so the project is
|
|
57
|
+
* `sandbox`; the model path follows the handle's backend (Google AI when none
|
|
58
|
+
* is given), and a stream carries `?alt=sse`, as the SDK's `queryParams` add
|
|
59
|
+
* it (#1640).
|
|
56
60
|
*/
|
|
57
|
-
export declare function sandboxRequestUrl(modelResource: string, op: string): string;
|
|
61
|
+
export declare function sandboxRequestUrl(modelResource: string, op: string, backend?: Backend): string;
|
|
58
62
|
/**
|
|
59
63
|
* Translate a broker wire error envelope into the SDK-equivalent
|
|
60
64
|
* `AIError('fetch-error', ...)` — the exact decoration `makeRequest` applies
|
|
61
65
|
* to a non-ok response in the installed 2.12.0.
|
|
62
66
|
*/
|
|
63
|
-
export declare function aiErrorFromEnvelope(envelope: WireErrorEnvelope, modelResource: string, op: string): AIError;
|
|
67
|
+
export declare function aiErrorFromEnvelope(envelope: WireErrorEnvelope, modelResource: string, op: string, backend?: Backend): AIError;
|
|
64
68
|
/**
|
|
65
69
|
* A failure while building a request's headers, before anything is sent: the
|
|
66
70
|
* App Check provider rejected a limited-use token request. Upstream
|
|
@@ -72,5 +76,5 @@ export declare class RequestHeadersFailure extends Error {
|
|
|
72
76
|
constructor(reason: unknown);
|
|
73
77
|
}
|
|
74
78
|
/** Rethrow broker errors and header failures as SDK errors; pass anything else through. */
|
|
75
|
-
export declare function toAIError(err: unknown, modelResource: string, op: string): unknown;
|
|
79
|
+
export declare function toAIError(err: unknown, modelResource: string, op: string, backend?: Backend): unknown;
|
|
76
80
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/ai/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/ai/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/ai/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAe,KAAK,OAAO,EAAwB,MAAM,cAAc,CAAC;AAI/E,uEAAuE;AACvE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CAed,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEzE,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC/C;AAED;;;;GAIG;AACH,qBAAa,OAAQ,SAAQ,aAAa;IACxC,SAAkB,IAAI,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;gBAE/B,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,eAAe;CAYlF;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAYnD;AAoBD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAG9F;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAeT;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO;gBAAf,MAAM,EAAE,OAAO;CAIrC;AA2BD,2FAA2F;AAC3F,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAQrG"}
|
package/dist/ai/errors.js
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { FirebaseError } from '../sandbox/internal/firebase-error.js';
|
|
14
14
|
import { AiBrokerError } from './broker/index.js';
|
|
15
|
+
import { BackendType } from './backend.js';
|
|
15
16
|
const AI_TYPE = 'AI';
|
|
16
17
|
/** Standardized error codes the SDK can throw — 14 codes in 2.12.0. */
|
|
17
18
|
export const AIErrorCode = {
|
|
@@ -65,20 +66,41 @@ export function statusTextOf(status) {
|
|
|
65
66
|
default: return '';
|
|
66
67
|
}
|
|
67
68
|
}
|
|
69
|
+
const SANDBOX_REQUEST_ORIGIN = 'https://firebasevertexai.googleapis.com/v1beta/projects/sandbox';
|
|
70
|
+
const VERTEX_MODEL_PREFIX = 'publishers/google/models/';
|
|
71
|
+
const STREAM_TASK = 'streamGenerateContent';
|
|
68
72
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
73
|
+
* The model path under the project, as the SDK's backend classes build it:
|
|
74
|
+
* Google AI's `models/<name>`, and Vertex AI's
|
|
75
|
+
* `locations/<location>/publishers/google/models/<name>`
|
|
76
|
+
* (`_getModelPath`, @firebase/ai 2.12.0). The sandbox's own model resource
|
|
77
|
+
* stays `models/<name>` on either backend; only the URL changes.
|
|
72
78
|
*/
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
function modelPath(modelResource, backend) {
|
|
80
|
+
const isVertexAI = backend?.backendType === BackendType.VERTEX_AI;
|
|
81
|
+
if (!isVertexAI)
|
|
82
|
+
return modelResource;
|
|
83
|
+
const name = modelResource.replace(/^models\//, '');
|
|
84
|
+
return `locations/${backend.location}/${VERTEX_MODEL_PREFIX}${name}`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Production-shaped request URL for sandbox-minted fetch errors, the
|
|
88
|
+
* `RequestURL` the SDK interpolates into its `Error fetching from <url>`
|
|
89
|
+
* message. There is no real project behind the sandbox, so the project is
|
|
90
|
+
* `sandbox`; the model path follows the handle's backend (Google AI when none
|
|
91
|
+
* is given), and a stream carries `?alt=sse`, as the SDK's `queryParams` add
|
|
92
|
+
* it (#1640).
|
|
93
|
+
*/
|
|
94
|
+
export function sandboxRequestUrl(modelResource, op, backend) {
|
|
95
|
+
const query = op === STREAM_TASK ? '?alt=sse' : '';
|
|
96
|
+
return `${SANDBOX_REQUEST_ORIGIN}/${modelPath(modelResource, backend)}:${op}${query}`;
|
|
75
97
|
}
|
|
76
98
|
/**
|
|
77
99
|
* Translate a broker wire error envelope into the SDK-equivalent
|
|
78
100
|
* `AIError('fetch-error', ...)` — the exact decoration `makeRequest` applies
|
|
79
101
|
* to a non-ok response in the installed 2.12.0.
|
|
80
102
|
*/
|
|
81
|
-
export function aiErrorFromEnvelope(envelope, modelResource, op) {
|
|
103
|
+
export function aiErrorFromEnvelope(envelope, modelResource, op, backend) {
|
|
82
104
|
const wire = envelope.error;
|
|
83
105
|
let message = wire.message;
|
|
84
106
|
let errorDetails;
|
|
@@ -87,7 +109,7 @@ export function aiErrorFromEnvelope(envelope, modelResource, op) {
|
|
|
87
109
|
errorDetails = wire.details;
|
|
88
110
|
}
|
|
89
111
|
const statusText = statusTextOf(wire.code);
|
|
90
|
-
const url = sandboxRequestUrl(modelResource, op);
|
|
112
|
+
const url = sandboxRequestUrl(modelResource, op, backend);
|
|
91
113
|
return new AIError(AIErrorCode.FETCH_ERROR, `Error fetching from ${url}: [${wire.code} ${statusText}] ${message}`, { status: wire.code, statusText, errorDetails });
|
|
92
114
|
}
|
|
93
115
|
/**
|
|
@@ -114,22 +136,22 @@ function isWrappedByMakeRequest(reason) {
|
|
|
114
136
|
return !isFetchLevel && reason.name !== ABORT_ERROR_NAME;
|
|
115
137
|
}
|
|
116
138
|
/** `AIError('error', 'Error fetching from <url>: <message>')` with the original stack, as `makeRequest` throws it. */
|
|
117
|
-
function aiErrorFromHeadersFailure(failure, modelResource, op) {
|
|
139
|
+
function aiErrorFromHeadersFailure(failure, modelResource, op, backend) {
|
|
118
140
|
const reason = failure.reason;
|
|
119
141
|
if (!isWrappedByMakeRequest(reason))
|
|
120
142
|
return reason;
|
|
121
|
-
const url = sandboxRequestUrl(modelResource, op);
|
|
143
|
+
const url = sandboxRequestUrl(modelResource, op, backend);
|
|
122
144
|
const error = new AIError(AIErrorCode.ERROR, `Error fetching from ${url}: ${reason.message}`);
|
|
123
145
|
error.stack = reason.stack;
|
|
124
146
|
return error;
|
|
125
147
|
}
|
|
126
148
|
/** Rethrow broker errors and header failures as SDK errors; pass anything else through. */
|
|
127
|
-
export function toAIError(err, modelResource, op) {
|
|
149
|
+
export function toAIError(err, modelResource, op, backend) {
|
|
128
150
|
if (err instanceof AiBrokerError) {
|
|
129
|
-
return aiErrorFromEnvelope(err.envelope, modelResource, op);
|
|
151
|
+
return aiErrorFromEnvelope(err.envelope, modelResource, op, backend);
|
|
130
152
|
}
|
|
131
153
|
if (err instanceof RequestHeadersFailure) {
|
|
132
|
-
return aiErrorFromHeadersFailure(err, modelResource, op);
|
|
154
|
+
return aiErrorFromHeadersFailure(err, modelResource, op, backend);
|
|
133
155
|
}
|
|
134
156
|
return err;
|
|
135
157
|
}
|
package/dist/ai/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ai/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,aAAa,EAA0B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ai/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/instances.js
CHANGED
package/dist/ai/instances.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instances.js","sourceRoot":"","sources":["../../src/ai/instances.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"instances.js","sourceRoot":"","sources":["../../src/ai/instances.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/ai/internal.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,kEAAkE;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD;;;;;;;;2DAQ2D;AAC3D,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAa3B;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,SAAS,EAAE,YAAY,EACvB,WAAW,CAAC,EAAE,MAAM,IAAI,GACvB,EAAE,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/ai/internal.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,kEAAkE;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD;;;;;;;;2DAQ2D;AAC3D,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,EACT,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAa3B;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,SAAS,EAAE,YAAY,EACvB,WAAW,CAAC,EAAE,MAAM,IAAI,GACvB,EAAE,CA6BJ;AAED,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAErI,mFAAmF;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/ai/internal.js
CHANGED
|
@@ -46,6 +46,7 @@ export function createTransportAI(app, options, transport, assertAlive) {
|
|
|
46
46
|
};
|
|
47
47
|
const target = {
|
|
48
48
|
kind: 'transport',
|
|
49
|
+
backend,
|
|
49
50
|
transport,
|
|
50
51
|
...(assertAlive !== undefined ? { assertAlive } : {}),
|
|
51
52
|
// Read App Check now, as the SDK's AI service does when it is built; the
|
package/dist/ai/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/ai/internal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAmB,MAAM,cAAc,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD;;;;;;;;2DAQ2D;AAC3D,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,GAEV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAgC,CAAC;AAErE,SAAS,UAAU,CAAC,OAAmB;IACrC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,eAAe,EAAE,CAAC;IAC1D,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAI,OAA2B,CAAC,QAAQ,CAAC;QACvD,OAAO,EAAE,GAAG,EAAE,YAAY,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAgB,EAChB,OAA8B,EAC9B,SAAuB,EACvB,WAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,eAAe,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAO;QACjB,GAAG;QACH,OAAO;QACP,QAAQ;QACR,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC;IACF,MAAM,MAAM,GAAoB;QAC9B,IAAI,EAAE,WAAW;QACjB,SAAS;QACT,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,yEAAyE;QACzE,yDAAyD;QACzD,QAAQ,EAAE,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;KACpF,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,oCAAoC,CAAC;AAErI,mFAAmF;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/ai/internal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAmB,MAAM,cAAc,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD;;;;;;;;2DAQ2D;AAC3D,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,GAEV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAgC,CAAC;AAErE,SAAS,UAAU,CAAC,OAAmB;IACrC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,eAAe,EAAE,CAAC;IAC1D,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAI,OAA2B,CAAC,QAAQ,CAAC;QACvD,OAAO,EAAE,GAAG,EAAE,YAAY,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAgB,EAChB,OAA8B,EAC9B,SAAuB,EACvB,WAAwB;IAExB,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,eAAe,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAO;QACjB,GAAG;QACH,OAAO;QACP,QAAQ;QACR,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC;IACF,MAAM,MAAM,GAAoB;QAC9B,IAAI,EAAE,WAAW;QACjB,OAAO;QACP,SAAS;QACT,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,yEAAyE;QACzE,yDAAyD;QACzD,QAAQ,EAAE,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,2BAA2B,KAAK,IAAI,CAAC;KACpF,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAmB,MAAM,oCAAoC,CAAC;AAErI,mFAAmF;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/ai/sandbox-plane.js
CHANGED
|
@@ -66,7 +66,7 @@ function normalizeRequest(request) {
|
|
|
66
66
|
}
|
|
67
67
|
/** Translate a failure to the SDK's error, logging pyric's App Check guidance once per app beside it. */
|
|
68
68
|
function planeError(target, err, modelResource, op) {
|
|
69
|
-
const error = toAIError(err, modelResource, op);
|
|
69
|
+
const error = toAIError(err, modelResource, op, target.backend);
|
|
70
70
|
if (isAppCheckRefusal(error))
|
|
71
71
|
target.appCheck?.warnRefused();
|
|
72
72
|
return error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-plane.js","sourceRoot":"","sources":["../../src/ai/sandbox-plane.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,aAAa,EACb,aAAa,EAEb,YAAY,GAKb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,6BAA6B,GAE9B,MAAM,uBAAuB,CAAC;AAmB/B,+EAA+E;AAC/E,MAAM,UAAU,YAAY;IAC1B,MAAM,QAAQ,GAAG,aAAa,CAC5B,GAAG,EACH,+LAA+L,EAC/L,WAAW,CACZ,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG;QACvB;YACE,OAAO,EAAE,0CAA0C;YACnD,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,iCAAiC;SAC1C;KACF,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,aAAqB;IAC1C,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC;QAC9C,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;QACvC,CAAC,CAAC,aAAa,CAAC;IAClB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,SAAS,WAAW,CAAC,oBAA2C;IAC9D,MAAM,MAAM,GAAG,oBAAoB,EAAE,MAAM,CAAC;IAC5C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,YAAY,CACnB,MAAM,CAAC,MAA6B,IAAI,iCAAiC,EAC1E,YAAY,CACb,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAI,OAAU;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAM,CAAC;AAClD,CAAC;AAID,yGAAyG;AACzG,SAAS,UAAU,CAAC,MAAgB,EAAE,GAAY,EAAE,aAAqB,EAAE,EAAU;IACnF,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sandbox-plane.js","sourceRoot":"","sources":["../../src/ai/sandbox-plane.ts"],"names":[],"mappings":"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"}
|
package/dist/ai/types.d.ts
CHANGED
|
@@ -35,6 +35,8 @@ export type AppAI = AI & {
|
|
|
35
35
|
/** Per-handle sandbox dispatch state. */
|
|
36
36
|
export interface SandboxTarget {
|
|
37
37
|
kind: 'sandbox';
|
|
38
|
+
/** The handle's backend: the SDK's request URL, which errors quote, depends on it. */
|
|
39
|
+
backend: Backend;
|
|
38
40
|
sandbox: Sandbox;
|
|
39
41
|
broker: AiBroker;
|
|
40
42
|
/** App-backed handles assert their container is live before every operation. */
|
|
@@ -45,6 +47,8 @@ export interface SandboxTarget {
|
|
|
45
47
|
/** Adapter-owned transport target. It deliberately has no local sandbox or broker. */
|
|
46
48
|
export interface TransportTarget {
|
|
47
49
|
kind: 'transport';
|
|
50
|
+
/** The handle's backend: the SDK's request URL, which errors quote, depends on it. */
|
|
51
|
+
backend: Backend;
|
|
48
52
|
transport: AnswerEngine;
|
|
49
53
|
/** App-backed handles assert their container is live before every operation. */
|
|
50
54
|
assertAlive?: () => void;
|
package/dist/ai/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/ai/app-check-gate.ts
CHANGED
|
@@ -18,7 +18,12 @@
|
|
|
18
18
|
*
|
|
19
19
|
* The error the app gets stays production's. Pyric's guidance rides beside
|
|
20
20
|
* it: on the `request_rejected` event the dev server prints, and once per app
|
|
21
|
-
* as a `console.warn` in the page or process.
|
|
21
|
+
* as a `console.warn` in the page or process. A server process (a registered
|
|
22
|
+
* Node process, a server-rendered module) gets its own guidance: the reCAPTCHA
|
|
23
|
+
* providers throw there and it has no `self`, so it sets the debug token on
|
|
24
|
+
* `globalThis` beside a CustomProvider, as `build/ai-logic.md` shows (#1639).
|
|
25
|
+
* A page's workers are browser realms: they have no `document`, but `self`
|
|
26
|
+
* works there, so they keep the page guidance.
|
|
22
27
|
*/
|
|
23
28
|
import type { FirebaseApp } from '../app/types.js';
|
|
24
29
|
import { appCheckActivationOf, appCheckTokenFor } from '../sandbox/internal/app-check-activation.js';
|
|
@@ -30,10 +35,28 @@ import { RequestHeadersFailure } from './errors.js';
|
|
|
30
35
|
export const APP_CHECK_REQUIRED_MESSAGE =
|
|
31
36
|
'Firebase AI Logic has been deactivated in this project. To resume using Firebase AI Logic, you must enforce Firebase App Check. Learn more: https://firebase.google.com/docs/ai-logic/app-check';
|
|
32
37
|
|
|
33
|
-
/** Pyric's guidance, printed beside production's error, never in place of it. */
|
|
38
|
+
/** Pyric's guidance for a page, printed beside production's error, never in place of it. */
|
|
34
39
|
export const APP_CHECK_HINT =
|
|
35
40
|
'Firebase AI Logic refuses requests without an App Check token, and so does the sandbox. Call initializeAppCheck(app, { provider }) before getAI(app). For local development, set self.FIREBASE_APPCHECK_DEBUG_TOKEN = true before initializeAppCheck to use the debug provider; the sandbox accepts its tokens. https://firebase.google.com/docs/ai-logic/app-check';
|
|
36
41
|
|
|
42
|
+
/** Pyric's guidance for a server process, where reCAPTCHA throws and `self` does not exist. */
|
|
43
|
+
export const APP_CHECK_SERVER_HINT =
|
|
44
|
+
"Firebase AI Logic refuses requests without an App Check token, and so does the sandbox. This process has no document, so the reCAPTCHA providers throw here. For local development, set globalThis.FIREBASE_APPCHECK_DEBUG_TOKEN = true, then call initializeAppCheck(app, { provider: new CustomProvider({ getToken }) }) before getAI(app). The sandbox does not call getToken while the debug token is set. Without the debug token, getToken returns { token, expireTimeMillis: Date.now() + ttlMillis } from a token your server mints with firebase-admin's getAppCheck().createToken(appId). https://firebase.google.com/docs/ai-logic/app-check";
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The guidance for the realm the app runs in. A page has a `document`, and a
|
|
48
|
+
* page's Web Worker, SharedWorker or service worker has `WorkerGlobalScope`:
|
|
49
|
+
* both are browser realms. Anything else is a server process.
|
|
50
|
+
*/
|
|
51
|
+
function appCheckHintForThisRealm(): string {
|
|
52
|
+
const scope = globalThis as { document?: unknown; WorkerGlobalScope?: unknown };
|
|
53
|
+
const hasDocument = typeof scope.document !== 'undefined';
|
|
54
|
+
const isWorkerRealm = typeof scope.WorkerGlobalScope !== 'undefined';
|
|
55
|
+
const isBrowserRealm = hasDocument || isWorkerRealm;
|
|
56
|
+
if (isBrowserRealm) return APP_CHECK_HINT;
|
|
57
|
+
return APP_CHECK_SERVER_HINT;
|
|
58
|
+
}
|
|
59
|
+
|
|
37
60
|
/** The captured refusal envelope (`app-check-ai-gate-wire`, `noHeader.raw`). */
|
|
38
61
|
export function appCheckRequired(): WireErrorEnvelope {
|
|
39
62
|
return { error: { code: 403, message: APP_CHECK_REQUIRED_MESSAGE, status: 'PERMISSION_DENIED' } };
|
|
@@ -83,7 +106,7 @@ const warnedApps = new WeakSet<object>();
|
|
|
83
106
|
function warnOnce(app: FirebaseApp): void {
|
|
84
107
|
if (warnedApps.has(app)) return;
|
|
85
108
|
warnedApps.add(app);
|
|
86
|
-
console.warn(`[pyric/ai] ${
|
|
109
|
+
console.warn(`[pyric/ai] ${appCheckHintForThisRealm()}`);
|
|
87
110
|
}
|
|
88
111
|
|
|
89
112
|
/**
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
import { AiBrokerError, errorEnvelope } from './synthesizer.js';
|
|
19
19
|
import { GeminiUpstream, type GeminiUpstreamOptions } from './gemini-upstream.js';
|
|
20
|
-
import { redactUpstreamText } from './upstream-error-redaction.js';
|
|
20
|
+
import { redactUpstreamError, redactUpstreamText } from './upstream-error-redaction.js';
|
|
21
21
|
import type {
|
|
22
22
|
AnswerEngine,
|
|
23
23
|
CountTokensRequest,
|
|
@@ -44,6 +44,29 @@ function parseUpstreamError(text: string): { message: string; status: string } |
|
|
|
44
44
|
return { message: error.message as string, status: error.status as string };
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
/**
|
|
48
|
+
* One SSE event's data as a chunk, or undefined when it is not JSON. A 2xx
|
|
49
|
+
* stream can carry an error event mid-response; it passes through as the
|
|
50
|
+
* upstream sent it, with the credentials the request carried masked (#1660).
|
|
51
|
+
*/
|
|
52
|
+
function parseStreamData(data: string, credentials: readonly string[]): WireChunk | undefined {
|
|
53
|
+
let chunk: unknown;
|
|
54
|
+
try {
|
|
55
|
+
chunk = JSON.parse(data);
|
|
56
|
+
} catch {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
const isErrorEvent = chunk !== null && typeof chunk === 'object' && 'error' in chunk;
|
|
60
|
+
if (!isErrorEvent) return chunk as WireChunk;
|
|
61
|
+
return JSON.parse(redactUpstreamError(data, credentials)) as WireChunk;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** A 2xx upstream answer and the credentials its request carried. */
|
|
65
|
+
interface SentRequest {
|
|
66
|
+
response: Response;
|
|
67
|
+
credentials: readonly string[];
|
|
68
|
+
}
|
|
69
|
+
|
|
47
70
|
export type GeminiEngineOptions = GeminiUpstreamOptions;
|
|
48
71
|
|
|
49
72
|
export class GeminiEngine implements AnswerEngine {
|
|
@@ -64,13 +87,14 @@ export class GeminiEngine implements AnswerEngine {
|
|
|
64
87
|
}
|
|
65
88
|
|
|
66
89
|
/** Sends one upstream request; a non-2xx answer throws the upstream's own error. */
|
|
67
|
-
private async send(model: string, action: string, body: unknown): Promise<
|
|
90
|
+
private async send(model: string, action: string, body: unknown): Promise<SentRequest> {
|
|
68
91
|
const { response, credentials } = await this.upstream.sendWithCredentials(
|
|
69
92
|
this.normalizeModel(model),
|
|
70
93
|
action,
|
|
71
94
|
JSON.stringify(body),
|
|
72
95
|
);
|
|
73
|
-
|
|
96
|
+
await this.checkStatus(response, credentials);
|
|
97
|
+
return { response, credentials };
|
|
74
98
|
}
|
|
75
99
|
|
|
76
100
|
/**
|
|
@@ -92,17 +116,17 @@ export class GeminiEngine implements AnswerEngine {
|
|
|
92
116
|
* upstream's own error envelope: its HTTP code, `status` and message. A
|
|
93
117
|
* body that is not a Gemini error envelope keeps the HTTP code and reports
|
|
94
118
|
* the body text. Either way the credentials the request carried are masked
|
|
95
|
-
* in every form the upstream can quote them,
|
|
96
|
-
*
|
|
119
|
+
* in every form the upstream can quote them, in the message and the status
|
|
120
|
+
* alike, with the masking the gemini proxy applies to the same body
|
|
121
|
+
* (`upstream-error-redaction.ts`, #1660).
|
|
97
122
|
*/
|
|
98
|
-
private async checkStatus(response: Response, credentials: readonly string[]): Promise<
|
|
123
|
+
private async checkStatus(response: Response, credentials: readonly string[]): Promise<void> {
|
|
99
124
|
const isSuccess = response.ok;
|
|
100
|
-
if (isSuccess) return
|
|
125
|
+
if (isSuccess) return;
|
|
101
126
|
const errorText = await response.text().catch(() => '');
|
|
102
|
-
const upstream = parseUpstreamError(errorText);
|
|
127
|
+
const upstream = parseUpstreamError(redactUpstreamError(errorText, credentials));
|
|
103
128
|
if (upstream !== null) {
|
|
104
|
-
|
|
105
|
-
throw new AiBrokerError(errorEnvelope(response.status, message, upstream.status));
|
|
129
|
+
throw new AiBrokerError(errorEnvelope(response.status, upstream.message, upstream.status));
|
|
106
130
|
}
|
|
107
131
|
throw new AiBrokerError(
|
|
108
132
|
errorEnvelope(
|
|
@@ -114,7 +138,7 @@ export class GeminiEngine implements AnswerEngine {
|
|
|
114
138
|
}
|
|
115
139
|
|
|
116
140
|
async generateContent(req: GenerateContentRequest, model: string): Promise<WireResponse> {
|
|
117
|
-
const response = await this.send(model, 'generateContent', req);
|
|
141
|
+
const { response } = await this.send(model, 'generateContent', req);
|
|
118
142
|
return (await response.json()) as WireResponse;
|
|
119
143
|
}
|
|
120
144
|
|
|
@@ -122,7 +146,7 @@ export class GeminiEngine implements AnswerEngine {
|
|
|
122
146
|
req: GenerateContentRequest,
|
|
123
147
|
model: string,
|
|
124
148
|
): AsyncIterable<WireChunk> {
|
|
125
|
-
const response = await this.send(model, 'streamGenerateContent?alt=sse', req);
|
|
149
|
+
const { response, credentials } = await this.send(model, 'streamGenerateContent?alt=sse', req);
|
|
126
150
|
|
|
127
151
|
const hasBody = response.body !== null && response.body !== undefined;
|
|
128
152
|
if (!hasBody) {
|
|
@@ -156,12 +180,9 @@ export class GeminiEngine implements AnswerEngine {
|
|
|
156
180
|
if (isEmptyOrDone) {
|
|
157
181
|
continue;
|
|
158
182
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
} catch {
|
|
163
|
-
// Ignore malformed SSE chunk in stream
|
|
164
|
-
}
|
|
183
|
+
// A malformed SSE chunk is skipped.
|
|
184
|
+
const chunk = parseStreamData(dataStr, credentials);
|
|
185
|
+
if (chunk !== undefined) yield chunk;
|
|
165
186
|
}
|
|
166
187
|
}
|
|
167
188
|
|
|
@@ -173,12 +194,8 @@ export class GeminiEngine implements AnswerEngine {
|
|
|
173
194
|
const dataStr = line.slice(6).trim();
|
|
174
195
|
const isNotEmptyOrDone = dataStr !== '' && dataStr !== '[DONE]';
|
|
175
196
|
if (isNotEmptyOrDone) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
yield chunk;
|
|
179
|
-
} catch {
|
|
180
|
-
// Ignore malformed SSE chunk in stream
|
|
181
|
-
}
|
|
197
|
+
const chunk = parseStreamData(dataStr, credentials);
|
|
198
|
+
if (chunk !== undefined) yield chunk;
|
|
182
199
|
}
|
|
183
200
|
}
|
|
184
201
|
}
|
|
@@ -188,7 +205,7 @@ export class GeminiEngine implements AnswerEngine {
|
|
|
188
205
|
}
|
|
189
206
|
|
|
190
207
|
async countTokens(req: CountTokensRequest, model: string): Promise<CountTokensResponse> {
|
|
191
|
-
const response = await this.send(model, 'countTokens', req);
|
|
208
|
+
const { response } = await this.send(model, 'countTokens', req);
|
|
192
209
|
return (await response.json()) as CountTokensResponse;
|
|
193
210
|
}
|
|
194
211
|
}
|
package/src/ai/errors.ts
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
import { FirebaseError } from '../sandbox/internal/firebase-error.js';
|
|
15
15
|
import { AiBrokerError, type WireErrorEnvelope } from './broker/index.js';
|
|
16
|
+
import { BackendType, type Backend, type VertexAIBackend } from './backend.js';
|
|
16
17
|
|
|
17
18
|
const AI_TYPE = 'AI';
|
|
18
19
|
|
|
@@ -81,13 +82,35 @@ export function statusTextOf(status: number): string {
|
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
|
|
85
|
+
const SANDBOX_REQUEST_ORIGIN = 'https://firebasevertexai.googleapis.com/v1beta/projects/sandbox';
|
|
86
|
+
const VERTEX_MODEL_PREFIX = 'publishers/google/models/';
|
|
87
|
+
const STREAM_TASK = 'streamGenerateContent';
|
|
88
|
+
|
|
84
89
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
90
|
+
* The model path under the project, as the SDK's backend classes build it:
|
|
91
|
+
* Google AI's `models/<name>`, and Vertex AI's
|
|
92
|
+
* `locations/<location>/publishers/google/models/<name>`
|
|
93
|
+
* (`_getModelPath`, @firebase/ai 2.12.0). The sandbox's own model resource
|
|
94
|
+
* stays `models/<name>` on either backend; only the URL changes.
|
|
88
95
|
*/
|
|
89
|
-
|
|
90
|
-
|
|
96
|
+
function modelPath(modelResource: string, backend: Backend | undefined): string {
|
|
97
|
+
const isVertexAI = backend?.backendType === BackendType.VERTEX_AI;
|
|
98
|
+
if (!isVertexAI) return modelResource;
|
|
99
|
+
const name = modelResource.replace(/^models\//, '');
|
|
100
|
+
return `locations/${(backend as VertexAIBackend).location}/${VERTEX_MODEL_PREFIX}${name}`;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Production-shaped request URL for sandbox-minted fetch errors, the
|
|
105
|
+
* `RequestURL` the SDK interpolates into its `Error fetching from <url>`
|
|
106
|
+
* message. There is no real project behind the sandbox, so the project is
|
|
107
|
+
* `sandbox`; the model path follows the handle's backend (Google AI when none
|
|
108
|
+
* is given), and a stream carries `?alt=sse`, as the SDK's `queryParams` add
|
|
109
|
+
* it (#1640).
|
|
110
|
+
*/
|
|
111
|
+
export function sandboxRequestUrl(modelResource: string, op: string, backend?: Backend): string {
|
|
112
|
+
const query = op === STREAM_TASK ? '?alt=sse' : '';
|
|
113
|
+
return `${SANDBOX_REQUEST_ORIGIN}/${modelPath(modelResource, backend)}:${op}${query}`;
|
|
91
114
|
}
|
|
92
115
|
|
|
93
116
|
/**
|
|
@@ -99,6 +122,7 @@ export function aiErrorFromEnvelope(
|
|
|
99
122
|
envelope: WireErrorEnvelope,
|
|
100
123
|
modelResource: string,
|
|
101
124
|
op: string,
|
|
125
|
+
backend?: Backend,
|
|
102
126
|
): AIError {
|
|
103
127
|
const wire = envelope.error;
|
|
104
128
|
let message = wire.message;
|
|
@@ -108,7 +132,7 @@ export function aiErrorFromEnvelope(
|
|
|
108
132
|
errorDetails = wire.details;
|
|
109
133
|
}
|
|
110
134
|
const statusText = statusTextOf(wire.code);
|
|
111
|
-
const url = sandboxRequestUrl(modelResource, op);
|
|
135
|
+
const url = sandboxRequestUrl(modelResource, op, backend);
|
|
112
136
|
return new AIError(
|
|
113
137
|
AIErrorCode.FETCH_ERROR,
|
|
114
138
|
`Error fetching from ${url}: [${wire.code} ${statusText}] ${message}`,
|
|
@@ -140,22 +164,27 @@ function isWrappedByMakeRequest(reason: unknown): reason is Error {
|
|
|
140
164
|
}
|
|
141
165
|
|
|
142
166
|
/** `AIError('error', 'Error fetching from <url>: <message>')` with the original stack, as `makeRequest` throws it. */
|
|
143
|
-
function aiErrorFromHeadersFailure(
|
|
167
|
+
function aiErrorFromHeadersFailure(
|
|
168
|
+
failure: RequestHeadersFailure,
|
|
169
|
+
modelResource: string,
|
|
170
|
+
op: string,
|
|
171
|
+
backend: Backend | undefined,
|
|
172
|
+
): unknown {
|
|
144
173
|
const reason = failure.reason;
|
|
145
174
|
if (!isWrappedByMakeRequest(reason)) return reason;
|
|
146
|
-
const url = sandboxRequestUrl(modelResource, op);
|
|
175
|
+
const url = sandboxRequestUrl(modelResource, op, backend);
|
|
147
176
|
const error = new AIError(AIErrorCode.ERROR, `Error fetching from ${url}: ${reason.message}`);
|
|
148
177
|
error.stack = reason.stack;
|
|
149
178
|
return error;
|
|
150
179
|
}
|
|
151
180
|
|
|
152
181
|
/** Rethrow broker errors and header failures as SDK errors; pass anything else through. */
|
|
153
|
-
export function toAIError(err: unknown, modelResource: string, op: string): unknown {
|
|
182
|
+
export function toAIError(err: unknown, modelResource: string, op: string, backend?: Backend): unknown {
|
|
154
183
|
if (err instanceof AiBrokerError) {
|
|
155
|
-
return aiErrorFromEnvelope(err.envelope, modelResource, op);
|
|
184
|
+
return aiErrorFromEnvelope(err.envelope, modelResource, op, backend);
|
|
156
185
|
}
|
|
157
186
|
if (err instanceof RequestHeadersFailure) {
|
|
158
|
-
return aiErrorFromHeadersFailure(err, modelResource, op);
|
|
187
|
+
return aiErrorFromHeadersFailure(err, modelResource, op, backend);
|
|
159
188
|
}
|
|
160
189
|
return err;
|
|
161
190
|
}
|
package/src/ai/instances.ts
CHANGED
package/src/ai/internal.ts
CHANGED
package/src/ai/sandbox-plane.ts
CHANGED
|
@@ -111,7 +111,7 @@ function normalizeRequest<T>(request: T): T {
|
|
|
111
111
|
|
|
112
112
|
/** Translate a failure to the SDK's error, logging pyric's App Check guidance once per app beside it. */
|
|
113
113
|
function planeError(target: AITarget, err: unknown, modelResource: string, op: string): unknown {
|
|
114
|
-
const error = toAIError(err, modelResource, op);
|
|
114
|
+
const error = toAIError(err, modelResource, op, target.backend);
|
|
115
115
|
if (isAppCheckRefusal(error)) target.appCheck?.warnRefused();
|
|
116
116
|
return error;
|
|
117
117
|
}
|
package/src/ai/types.ts
CHANGED
|
@@ -53,6 +53,8 @@ export type AppAI = AI & { readonly app: FirebaseApp };
|
|
|
53
53
|
/** Per-handle sandbox dispatch state. */
|
|
54
54
|
export interface SandboxTarget {
|
|
55
55
|
kind: 'sandbox';
|
|
56
|
+
/** The handle's backend: the SDK's request URL, which errors quote, depends on it. */
|
|
57
|
+
backend: Backend;
|
|
56
58
|
sandbox: Sandbox;
|
|
57
59
|
broker: AiBroker;
|
|
58
60
|
/** App-backed handles assert their container is live before every operation. */
|
|
@@ -64,6 +66,8 @@ export interface SandboxTarget {
|
|
|
64
66
|
/** Adapter-owned transport target. It deliberately has no local sandbox or broker. */
|
|
65
67
|
export interface TransportTarget {
|
|
66
68
|
kind: 'transport';
|
|
69
|
+
/** The handle's backend: the SDK's request URL, which errors quote, depends on it. */
|
|
70
|
+
backend: Backend;
|
|
67
71
|
transport: AnswerEngine;
|
|
68
72
|
/** App-backed handles assert their container is live before every operation. */
|
|
69
73
|
assertAlive?: () => void;
|