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.
@@ -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;;;;;;;;;;;;;;;;;;;;;GAqBG;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,iFAAiF;AACjF,eAAO,MAAM,cAAc,wWAC4U,CAAC;AAExW,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"}
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] ${APP_CHECK_HINT}`);
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":"AAuBA,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACrG,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAEzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,0BAA0B,GACrC,iMAAiM,CAAC;AAEpM,iFAAiF;AACjF,MAAM,CAAC,MAAM,cAAc,GACzB,qWAAqW,CAAC;AAExW,gFAAgF;AAChF,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,CAAC;AACpG,CAAC;AAED,SAAS,YAAY,CAAC,MAAyC,EAAE,SAAiB;IAChF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAoB,EAAE,YAAoB,IAAI,CAAC,GAAG,EAAE;IAC5F,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;IACjD,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,KAAK,KAAK,2BAA2B;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,QAAQ,GAAI,KAAiD,EAAE,QAAQ,CAAC;IAC9E,MAAM,eAAe,GAAG,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,0BAA0B,CAAC;IAC9G,IAAI,eAAe;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,QAAQ,GAAG,KAA6E,CAAC;IAC/F,MAAM,YAAY,GAAG,QAAQ,EAAE,eAAe,EAAE,MAAM,KAAK,GAAG;WACzD,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;WACpC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;IAC3D,OAAO,YAAY,CAAC;AACtB,CAAC;AAUD,MAAM,UAAU,GAAG,IAAI,OAAO,EAAU,CAAC;AAEzC,SAAS,QAAQ,CAAC,GAAgB;IAChC,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAChC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,cAAc,cAAc,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,GAAgB,EAAE,UAAmB;IAClE,IAAI,CAAC;QACH,OAAO,MAAM,gBAAgB,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAgB,EAAE,UAAmB;IACzE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACjE,OAAO;QACL,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChG,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;KACjC,CAAC;AACJ,CAAC"}
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, as the gemini proxy masks
47
- * them (`upstream-error-redaction.ts`).
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;AAgBnF,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;IASlB;;;;;OAKG;IACH,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAIrD,OAAO,CAAC,cAAc;IAItB;;;;;;;OAOG;YACW,WAAW;IAkBnB,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;IAkErB,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAIxF"}
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
- return this.checkStatus(response, credentials);
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, as the gemini proxy masks
73
- * them (`upstream-error-redaction.ts`).
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 response;
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
- const message = redactUpstreamText(upstream.message, credentials);
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
- try {
121
- const chunk = JSON.parse(dataStr);
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
- try {
138
- const chunk = JSON.parse(dataStr);
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":"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"}
1
+ {"version":3,"file":"gemini-engine.js","sourceRoot":"","sources":["../../../src/ai/broker/gemini-engine.ts"],"names":[],"mappings":"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"}
@@ -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. There is no
54
- * real project behind the sandbox; the path is deterministic and mirrors the
55
- * GoogleAI backend's `/v1beta/projects/<project>/models/<model>:<op>` shape.
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
@@ -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;AAI1E,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;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE,MAAM,GACT,OAAO,CAeT;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO;gBAAf,MAAM,EAAE,OAAO;CAIrC;AAsBD,2FAA2F;AAC3F,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAQlF"}
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
- * Production-shaped request URL for sandbox-minted fetch errors. There is no
70
- * real project behind the sandbox; the path is deterministic and mirrors the
71
- * GoogleAI backend's `/v1beta/projects/<project>/models/<model>:<op>` shape.
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
- export function sandboxRequestUrl(modelResource, op) {
74
- return `https://firebasevertexai.googleapis.com/v1beta/projects/sandbox/${modelResource}:${op}`;
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ai/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ai/errors.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,7 @@ function sandboxHandle(sandbox, broker, options, app) {
113
113
  : resolveClientAppIncludingDeleted(app);
114
114
  const target = {
115
115
  kind: 'sandbox',
116
+ backend,
116
117
  sandbox,
117
118
  broker,
118
119
  ...(appRuntime !== undefined
@@ -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,CA4BJ;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"}
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"}
@@ -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
@@ -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"}
@@ -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":"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"}
1
+ {"version":3,"file":"sandbox-plane.js","sourceRoot":"","sources":["../../src/ai/sandbox-plane.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -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":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,mFAAmF;IACnF,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;CACtC;AAED,+DAA+D;AAC/D,MAAM,WAAW,EAAE;IACjB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,2DAA2D;AAC3D,MAAM,MAAM,KAAK,GAAG,EAAE,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvD,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,sFAAsF;IACtF,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,sFAAsF;AACtF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,sFAAsF;IACtF,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,YAAY,CAAC;IACxB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,kEAAkE;AAClE,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,eAAe,CAAC;AAEvD,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,mBAAmB,CAAC,EAAE,KAAK,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,qBAAqB,CAAC;IAClC,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,mBAAmB,CAAC,EAAE,KAAK,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,mBAAmB,CAAC,EAAE,KAAK,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,mBAAmB,CAAC,EAAE,KAAK,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,mBAAmB,CAAC,EAAE,KAAK,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,mBAAmB,CAAC,EAAE,KAAK,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,cAAc,CAAC,EAAE,KAAK,CAAC;IACvB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,MAAM,MAAM,IAAI,GACZ,QAAQ,GACR,cAAc,GACd,gBAAgB,GAChB,oBAAoB,GACpB,YAAY,GACZ,kBAAkB,GAClB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IAC5C,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,oBAAoB,GAAG,mBAAmB,CAAC;IACxD,iBAAiB,CAAC,EAAE,QAAQ,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;CAAG;AAEhC,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;CAAG;AAE9B,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,MAAM,IAAI,GACZ,wBAAwB,GACxB,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,CAAC;AAEnB,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY,CAAC,eAAe,CAAC;IACpE,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC,aAAa,CAAC;IAChE,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,IAAI,EAAE,QAAQ,CAAC;IACf,kBAAkB,CAAC,EAAE,KAAK,CAAC;CAC5B;AAED,UAAU,cAAe,SAAQ,eAAe;IAC9C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,oBAAqB,SAAQ,cAAc;IACnD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,WAAW,GAAG,aAAa,CAAC;IAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,eAAe,CAAC;IAC7B,QAAQ,EAAE,YAAY,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,IAAI,CAAC,EAAE,wBAAwB,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,WAAW,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC3C,uBAAuB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/C,0BAA0B,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClD,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;CAC7C;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACxC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,WAAW,+BAAgC,SAAQ,uBAAuB;IAC9E,IAAI,IAAI,MAAM,CAAC;IACf,eAAe,IAAI,cAAc,EAAE,GAAG,SAAS,CAAC;IAChD,aAAa,IAAI,YAAY,EAAE,GAAG,SAAS,CAAC;IAC5C,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pyric",
3
- "version": "0.1.0-alpha.31",
3
+ "version": "0.1.0-alpha.32",
4
4
  "license": "Apache-2.0",
5
5
  "homepage": "https://pyric.dev",
6
6
  "repository": {
@@ -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] ${APP_CHECK_HINT}`);
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<Response> {
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
- return this.checkStatus(response, credentials);
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, as the gemini proxy masks
96
- * them (`upstream-error-redaction.ts`).
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<Response> {
123
+ private async checkStatus(response: Response, credentials: readonly string[]): Promise<void> {
99
124
  const isSuccess = response.ok;
100
- if (isSuccess) return response;
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
- const message = redactUpstreamText(upstream.message, credentials);
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
- try {
160
- const chunk = JSON.parse(dataStr) as WireChunk;
161
- yield chunk;
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
- try {
177
- const chunk = JSON.parse(dataStr) as WireChunk;
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
- * Production-shaped request URL for sandbox-minted fetch errors. There is no
86
- * real project behind the sandbox; the path is deterministic and mirrors the
87
- * GoogleAI backend's `/v1beta/projects/<project>/models/<model>:<op>` shape.
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
- export function sandboxRequestUrl(modelResource: string, op: string): string {
90
- return `https://firebasevertexai.googleapis.com/v1beta/projects/sandbox/${modelResource}:${op}`;
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(failure: RequestHeadersFailure, modelResource: string, op: string): unknown {
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
  }
@@ -146,6 +146,7 @@ function sandboxHandle(sandbox: Sandbox, broker: AiBroker, options?: AIOptions,
146
146
  : resolveClientAppIncludingDeleted(app);
147
147
  const target: SandboxTarget = {
148
148
  kind: 'sandbox',
149
+ backend,
149
150
  sandbox,
150
151
  broker,
151
152
  ...(appRuntime !== undefined
@@ -69,6 +69,7 @@ export function createTransportAI(
69
69
  };
70
70
  const target: TransportTarget = {
71
71
  kind: 'transport',
72
+ backend,
72
73
  transport,
73
74
  ...(assertAlive !== undefined ? { assertAlive } : {}),
74
75
  // Read App Check now, as the SDK's AI service does when it is built; the
@@ -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;