@pyric/cli 0.1.0-alpha.30.1 → 0.1.0-alpha.30.2

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.
Files changed (109) hide show
  1. package/dist/assurance/.generated/conformance-verdicts.d.ts +4 -0
  2. package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -1
  3. package/dist/assurance/.generated/conformance-verdicts.js +4 -0
  4. package/dist/assurance/.generated/conformance-verdicts.js.map +1 -1
  5. package/dist/bridge/server/peer.d.ts +10 -0
  6. package/dist/bridge/server/peer.d.ts.map +1 -1
  7. package/dist/bridge/server/peer.js +46 -1
  8. package/dist/bridge/server/peer.js.map +1 -1
  9. package/dist/conformance/.generated/can-i-use.d.ts.map +1 -1
  10. package/dist/conformance/.generated/can-i-use.js +1 -1
  11. package/dist/conformance/.generated/can-i-use.js.map +1 -1
  12. package/dist/conformance/.generated/conformance-docs.d.ts.map +1 -1
  13. package/dist/conformance/.generated/conformance-docs.js +1 -1
  14. package/dist/conformance/.generated/conformance-docs.js.map +1 -1
  15. package/dist/serve/ai-diagnostics-relay.d.ts +4 -1
  16. package/dist/serve/ai-diagnostics-relay.d.ts.map +1 -1
  17. package/dist/serve/ai-diagnostics-relay.js +3 -0
  18. package/dist/serve/ai-diagnostics-relay.js.map +1 -1
  19. package/dist/serve/ai-proxy.d.ts +21 -1
  20. package/dist/serve/ai-proxy.d.ts.map +1 -1
  21. package/dist/serve/ai-proxy.js +39 -14
  22. package/dist/serve/ai-proxy.js.map +1 -1
  23. package/dist/serve/ai-terminal-blocks.d.ts +6 -4
  24. package/dist/serve/ai-terminal-blocks.d.ts.map +1 -1
  25. package/dist/serve/ai-terminal-blocks.js +7 -4
  26. package/dist/serve/ai-terminal-blocks.js.map +1 -1
  27. package/dist/serve/ai-terminal-text.d.ts +8 -0
  28. package/dist/serve/ai-terminal-text.d.ts.map +1 -1
  29. package/dist/serve/ai-terminal-text.js +10 -0
  30. package/dist/serve/ai-terminal-text.js.map +1 -1
  31. package/dist/serve/entries/ai.d.ts.map +1 -1
  32. package/dist/serve/entries/ai.js +28 -26
  33. package/dist/serve/entries/ai.js.map +1 -1
  34. package/dist/serve/gemini-error-redaction.d.ts +6 -0
  35. package/dist/serve/gemini-error-redaction.d.ts.map +1 -0
  36. package/dist/serve/gemini-error-redaction.js +61 -0
  37. package/dist/serve/gemini-error-redaction.js.map +1 -0
  38. package/dist/serve/gemini-proxy.d.ts +40 -0
  39. package/dist/serve/gemini-proxy.d.ts.map +1 -0
  40. package/dist/serve/gemini-proxy.js +105 -0
  41. package/dist/serve/gemini-proxy.js.map +1 -0
  42. package/dist/serve/namespace.d.ts +9 -0
  43. package/dist/serve/namespace.d.ts.map +1 -1
  44. package/dist/serve/namespace.js +66 -14
  45. package/dist/serve/namespace.js.map +1 -1
  46. package/dist/serve/sandbox-session.d.ts +3 -0
  47. package/dist/serve/sandbox-session.d.ts.map +1 -1
  48. package/dist/serve/sandbox-session.js +1 -0
  49. package/dist/serve/sandbox-session.js.map +1 -1
  50. package/dist/serve/site-ui/docs/ai-compat/index.html +20 -1
  51. package/dist/serve/site-ui/docs/ai-compat.md +21 -0
  52. package/dist/serve/site-ui/docs/app-check-compat/index.html +8 -8
  53. package/dist/serve/site-ui/docs/app-check-compat.md +8 -8
  54. package/dist/serve/site-ui/docs/build/ai-logic/index.html +19 -5
  55. package/dist/serve/site-ui/docs/build/ai-logic.md +19 -2
  56. package/dist/serve/site-ui/docs/index.json +10 -0
  57. package/dist/serve/site-ui/docs/storage-compat/index.html +2 -2
  58. package/dist/serve/site-ui/docs/storage-compat.md +2 -2
  59. package/dist/serve/site-ui/docs/tutorial/index.html +11 -1
  60. package/dist/serve/site-ui/docs/tutorial.md +12 -1
  61. package/dist/serve/site-ui/examples/chess/index.html +1 -1
  62. package/dist/serve/vite-sandbox-generation.d.ts.map +1 -1
  63. package/dist/serve/vite-sandbox-generation.js +2 -0
  64. package/dist/serve/vite-sandbox-generation.js.map +1 -1
  65. package/dist/serve/worker/ai-proxy-paths.d.ts +32 -0
  66. package/dist/serve/worker/ai-proxy-paths.d.ts.map +1 -0
  67. package/dist/serve/worker/ai-proxy-paths.js +20 -0
  68. package/dist/serve/worker/ai-proxy-paths.js.map +1 -0
  69. package/dist/serve/worker/client/ai.d.ts +3 -1
  70. package/dist/serve/worker/client/ai.d.ts.map +1 -1
  71. package/dist/serve/worker/client/ai.js +3 -0
  72. package/dist/serve/worker/client/ai.js.map +1 -1
  73. package/dist/serve/worker/entry.js +2 -0
  74. package/dist/serve/worker/entry.js.map +1 -1
  75. package/dist/serve/worker/host-ai.d.ts +4 -5
  76. package/dist/serve/worker/host-ai.d.ts.map +1 -1
  77. package/dist/serve/worker/host-ai.js +19 -23
  78. package/dist/serve/worker/host-ai.js.map +1 -1
  79. package/dist/serve/worker/host-context.d.ts +13 -4
  80. package/dist/serve/worker/host-context.d.ts.map +1 -1
  81. package/dist/serve/worker/host-context.js.map +1 -1
  82. package/dist/serve/worker/inbound-validation/operation-arguments.d.ts.map +1 -1
  83. package/dist/serve/worker/inbound-validation/operation-arguments.js +11 -0
  84. package/dist/serve/worker/inbound-validation/operation-arguments.js.map +1 -1
  85. package/dist/serve/worker/protocol.d.ts +13 -0
  86. package/dist/serve/worker/protocol.d.ts.map +1 -1
  87. package/dist/serve/worker/protocol.js.map +1 -1
  88. package/package.json +4 -4
  89. package/src/assurance/.generated/conformance-verdicts.ts +4 -0
  90. package/src/bridge/server/peer.ts +49 -1
  91. package/src/conformance/.generated/can-i-use.ts +1 -1
  92. package/src/conformance/.generated/conformance-docs.ts +1 -1
  93. package/src/serve/ai-diagnostics-relay.ts +6 -1
  94. package/src/serve/ai-proxy.ts +43 -14
  95. package/src/serve/ai-terminal-blocks.ts +8 -4
  96. package/src/serve/ai-terminal-text.ts +11 -0
  97. package/src/serve/entries/ai.ts +28 -27
  98. package/src/serve/gemini-error-redaction.ts +60 -0
  99. package/src/serve/gemini-proxy.ts +140 -0
  100. package/src/serve/namespace.ts +69 -14
  101. package/src/serve/sandbox-session.ts +4 -0
  102. package/src/serve/vite-sandbox-generation.ts +2 -0
  103. package/src/serve/worker/ai-proxy-paths.ts +35 -0
  104. package/src/serve/worker/client/ai.ts +6 -1
  105. package/src/serve/worker/entry.ts +2 -0
  106. package/src/serve/worker/host-ai.ts +23 -23
  107. package/src/serve/worker/host-context.ts +13 -3
  108. package/src/serve/worker/inbound-validation/operation-arguments.ts +11 -0
  109. package/src/serve/worker/protocol.ts +14 -2
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Masking an upstream Gemini error before the gemini proxy relays it to the
3
+ * browser (#1584). An upstream or a gateway can quote the credential it was
4
+ * sent in any form: in the URL (`?key=`, `&key=`, JSON-escaped or
5
+ * percent-encoded), in plain text, or in an echoed header such as
6
+ * `x-goog-api-key` or `Authorization: Bearer`. So the proxy removes the exact
7
+ * credentials the request carried, raw and percent-encoded, then runs
8
+ * `redactUrl` as a second pass for any other credential parameter.
9
+ *
10
+ * A JSON body is masked value by value and serialized again, so the
11
+ * browser engine still reads Gemini's own status and message. Text
12
+ * redaction over the raw JSON could eat a closing quote and leave the
13
+ * envelope unparseable.
14
+ */
15
+ import { redactUrl } from 'pyric/ai/internal';
16
+ const MASK = '***';
17
+ /** The forms a credential can appear in, longest first. */
18
+ function quotedForms(credential) {
19
+ const forms = new Set([encodeURIComponent(credential), credential]);
20
+ return [...forms].sort((a, b) => b.length - a.length);
21
+ }
22
+ function redactText(text, credentials) {
23
+ let masked = text;
24
+ for (const credential of credentials) {
25
+ for (const form of quotedForms(credential))
26
+ masked = masked.split(form).join(MASK);
27
+ }
28
+ return redactUrl(masked);
29
+ }
30
+ function redactValue(value, credentials) {
31
+ if (typeof value === 'string')
32
+ return redactText(value, credentials);
33
+ if (Array.isArray(value))
34
+ return value.map((item) => redactValue(item, credentials));
35
+ const isObject = value !== null && typeof value === 'object';
36
+ if (!isObject)
37
+ return value;
38
+ const entries = Object.entries(value)
39
+ .map(([key, item]) => [redactText(key, credentials), redactValue(item, credentials)]);
40
+ return Object.fromEntries(entries);
41
+ }
42
+ /** The JSON value `text` holds, or undefined when it is not JSON. */
43
+ function parseJson(text) {
44
+ try {
45
+ return { value: JSON.parse(text) };
46
+ }
47
+ catch {
48
+ return undefined;
49
+ }
50
+ }
51
+ /**
52
+ * `text` with every credential in `credentials` removed, and every
53
+ * credential URL parameter masked. A JSON body stays JSON.
54
+ */
55
+ export function redactUpstreamError(text, credentials) {
56
+ const json = parseJson(text);
57
+ if (json === undefined)
58
+ return redactText(text, credentials);
59
+ return JSON.stringify(redactValue(json.value, credentials));
60
+ }
61
+ //# sourceMappingURL=gemini-error-redaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini-error-redaction.js","sourceRoot":"","sources":["../../src/serve/gemini-error-redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,IAAI,GAAG,KAAK,CAAC;AAEnB,2DAA2D;AAC3D,SAAS,WAAW,CAAC,UAAkB;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,WAA8B;IAC9D,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,UAAU,CAAC;YAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,WAA8B;IACjE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACrE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;IAC7D,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;SAC7D,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,qEAAqE;AACrE,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,EAAE,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,WAA8B;IAC9E,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * `/__pyric/ai-proxy/gemini`: where a browser gemini engine sends (#1584).
3
+ *
4
+ * A page or SharedWorker has no server environment, and the Gemini API key
5
+ * must never reach it. The browser engine sends each request here with no
6
+ * credentials. The dev server sends it on with the gemini engine's own
7
+ * request code (`GeminiUpstream` from `pyric/ai/internal`): the key from the
8
+ * server's environment or ADC, to the server's configured base URL. A
9
+ * successful answer streams back unchanged. An error comes back with its
10
+ * status and with any credential it quotes masked, so the browser engine
11
+ * reads Gemini's own error and never the key. The body is bounded as the
12
+ * openai route's is.
13
+ *
14
+ * The browser chooses only the model and the call. The target and the
15
+ * credentials are the server's, so no page can send the key anywhere else.
16
+ * The App Check gate runs before any of this, in the broker that owns the
17
+ * browser engine.
18
+ */
19
+ import type { IncomingMessage, ServerResponse } from 'node:http';
20
+ import { type GeminiUpstreamOptions } from 'pyric/ai/internal';
21
+ import type { ServeLogger } from './server.js';
22
+ import { type AiDiagnosticThrottle } from './ai-proxy.js';
23
+ import { type AiEngineConfigWire } from './worker/protocol.js';
24
+ export { GEMINI_PROXY_PATH } from './worker/ai-proxy-paths.js';
25
+ /** The server's gemini engine config: the Vite plugin's `ai.engine`, when it is gemini. */
26
+ export interface GeminiProxyConfig {
27
+ baseUrl?: string;
28
+ apiKey?: string;
29
+ }
30
+ /** The gemini proxy's config from a configured engine, when that engine is gemini. */
31
+ export declare function geminiProxyConfig(engine: AiEngineConfigWire | undefined): GeminiProxyConfig | undefined;
32
+ /** Is this request for the gemini proxy (and not the OpenAI-compatible one)? */
33
+ export declare function isGeminiProxyPath(pathname: string): boolean;
34
+ /**
35
+ * The gemini proxy handler. One `GeminiUpstream` serves every request, so an
36
+ * ADC token is looked up once and reused, as the engine itself does.
37
+ * `seams` replaces the ADC lookup in tests.
38
+ */
39
+ export declare function createGeminiProxy(config: GeminiProxyConfig | undefined, throttle: AiDiagnosticThrottle, logger?: ServeLogger, seams?: Pick<GeminiUpstreamOptions, 'printAdcToken'>): (req: IncomingMessage, res: ServerResponse, url: URL) => Promise<void>;
40
+ //# sourceMappingURL=gemini-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini-proxy.d.ts","sourceRoot":"","sources":["../../src/serve/gemini-proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAqD,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE7G,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,2FAA2F;AAC3F,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAOvG;AAYD,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAgCD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,iBAAiB,GAAG,SAAS,EACrC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,CAAC,EAAE,WAAW,EACpB,KAAK,GAAE,IAAI,CAAC,qBAAqB,EAAE,eAAe,CAAM,GACvD,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAwCxE"}
@@ -0,0 +1,105 @@
1
+ import { GeminiUpstream } from 'pyric/ai/internal';
2
+ import { redactUpstreamError } from './gemini-error-redaction.js';
3
+ import { fetchAiUpstream, readAiProxyBody, relayAiUpstream } from './ai-proxy.js';
4
+ import { GEMINI_PROXY_PATH } from './worker/ai-proxy-paths.js';
5
+ import { serializeError } from './worker/protocol.js';
6
+ export { GEMINI_PROXY_PATH } from './worker/ai-proxy-paths.js';
7
+ /** The gemini proxy's config from a configured engine, when that engine is gemini. */
8
+ export function geminiProxyConfig(engine) {
9
+ const isGemini = engine?.kind === 'gemini';
10
+ if (!isGemini)
11
+ return undefined;
12
+ return {
13
+ ...(engine.baseUrl !== undefined ? { baseUrl: engine.baseUrl } : {}),
14
+ ...(engine.apiKey !== undefined ? { apiKey: engine.apiKey } : {}),
15
+ };
16
+ }
17
+ /** `/v1beta/models/<model>:<call>`, for the three calls the browser engine makes. */
18
+ const GEMINI_CALL_PATH = /^\/v1beta\/(models\/[A-Za-z0-9._-]+):(generateContent|streamGenerateContent|countTokens)$/;
19
+ /** The query each call may carry: only the stream asks for server-sent events. */
20
+ const CALL_QUERY = {
21
+ generateContent: '',
22
+ countTokens: '',
23
+ streamGenerateContent: '?alt=sse',
24
+ };
25
+ /** Is this request for the gemini proxy (and not the OpenAI-compatible one)? */
26
+ export function isGeminiProxyPath(pathname) {
27
+ return pathname.startsWith(`${GEMINI_PROXY_PATH}/`);
28
+ }
29
+ /** The resource and the action `GeminiUpstream.send` takes, or null for anything else. */
30
+ function geminiCall(url) {
31
+ const match = url.pathname.slice(GEMINI_PROXY_PATH.length).match(GEMINI_CALL_PATH);
32
+ if (match === null)
33
+ return null;
34
+ const [, resource, call] = match;
35
+ const isExpectedQuery = url.search === CALL_QUERY[call];
36
+ if (!isExpectedQuery)
37
+ return null;
38
+ return { resource, action: `${call}${url.search}` };
39
+ }
40
+ /** Answer with a Gemini error envelope, as the upstream would. */
41
+ function sendEnvelope(res, code, message, status) {
42
+ res.writeHead(code, { 'content-type': 'application/json', 'cache-control': 'no-store' });
43
+ res.end(JSON.stringify({ error: { code, message, status } }));
44
+ }
45
+ /**
46
+ * Send a non-2xx upstream answer with the credentials the request carried
47
+ * removed, in whatever form the upstream quotes them, and a JSON envelope
48
+ * kept parseable (`gemini-error-redaction.ts`).
49
+ */
50
+ async function relayRedactedError(upstream, credentials, res) {
51
+ const text = redactUpstreamError(await upstream.text().catch(() => ''), credentials);
52
+ const headers = { 'cache-control': 'no-store' };
53
+ const contentType = upstream.headers.get('content-type');
54
+ if (contentType)
55
+ headers['content-type'] = contentType;
56
+ res.writeHead(upstream.status, headers);
57
+ res.end(text);
58
+ }
59
+ /**
60
+ * The gemini proxy handler. One `GeminiUpstream` serves every request, so an
61
+ * ADC token is looked up once and reused, as the engine itself does.
62
+ * `seams` replaces the ADC lookup in tests.
63
+ */
64
+ export function createGeminiProxy(config, throttle, logger, seams = {}) {
65
+ const upstream = new GeminiUpstream({
66
+ ...seams,
67
+ ...(config?.baseUrl !== undefined ? { baseUrl: config.baseUrl } : {}),
68
+ ...(config?.apiKey !== undefined ? { apiKey: config.apiKey } : {}),
69
+ fetch: Object.assign((input, init) => fetchAiUpstream(input, init, throttle, logger), { preconnect: fetch.preconnect }),
70
+ });
71
+ return async (req, res, url) => {
72
+ if (req.method !== 'POST') {
73
+ res.writeHead(405, { allow: 'POST' }).end('method not allowed');
74
+ return;
75
+ }
76
+ const call = geminiCall(url);
77
+ if (call === null) {
78
+ sendEnvelope(res, 404, `pyric dev ai-proxy: ${url.pathname} is not a Gemini call the proxy sends.`, 'NOT_FOUND');
79
+ return;
80
+ }
81
+ const body = await readAiProxyBody(req, res);
82
+ if (body === null)
83
+ return;
84
+ let response;
85
+ let credentials;
86
+ try {
87
+ ({ response, credentials } = await upstream.sendWithCredentials(call.resource, call.action, body));
88
+ }
89
+ catch (error) {
90
+ // Missing credentials (401) and an unreachable upstream (502) come as
91
+ // the engine's own envelopes, already redacted.
92
+ const envelope = serializeError(error).aiEnvelope;
93
+ if (envelope === undefined)
94
+ throw error;
95
+ sendEnvelope(res, envelope.error.code, envelope.error.message, envelope.error.status);
96
+ return;
97
+ }
98
+ if (response.ok) {
99
+ await relayAiUpstream(response, res);
100
+ return;
101
+ }
102
+ await relayRedactedError(response, credentials, res);
103
+ };
104
+ }
105
+ //# sourceMappingURL=gemini-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini-proxy.js","sourceRoot":"","sources":["../../src/serve/gemini-proxy.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { type StateStore } from './state-store.js';
4
4
  import { type StudioRouteOptions } from './studio/index.js';
5
5
  import { type ServeLogger } from './server.js';
6
6
  import type { InitPayload } from './init-payload.js';
7
+ import { type GeminiProxyConfig } from './gemini-proxy.js';
7
8
  import { type AiDiagnosticPayload } from './ai-terminal-blocks.js';
8
9
  import type { AssetResolver } from './assets/resolver.js';
9
10
  import { type BeaconReport } from '../register/beacon.js';
@@ -75,6 +76,10 @@ export interface NamespaceOptions {
75
76
  * (local Ollama). Always mounted — the route only touches the network
76
77
  * when a request arrives. */
77
78
  aiProxyUpstream?: string;
79
+ /** The gemini engine `/__pyric/ai-proxy/gemini` sends for a browser engine
80
+ * (#1584): the Vite plugin's `ai.engine` when it is gemini. Absent, it
81
+ * sends to Google AI Studio with the key from this process's environment. */
82
+ aiGemini?: GeminiProxyConfig;
78
83
  /** Receives one handshake beacon per pyric-launched child (`POST
79
84
  * /__pyric/beacon`, sent by `@pyric/cli/register` once its hooks and
80
85
  * net-guard are installed). Absent means the route still 204s; the child
@@ -90,6 +95,10 @@ export interface NamespaceOptions {
90
95
  * falling back to raw `console`). */
91
96
  logger?: ServeLogger;
92
97
  }
98
+ /** Largest relayed denial the route reads. A real one is a message, a path, a
99
+ * uid and a short owner stack, a few KiB at most; the index route's 64 KiB
100
+ * leaves room for a deep stack without letting a page grow the server. */
101
+ export declare const DENIAL_BODY_LIMIT_BYTES: number;
93
102
  /** Loosely-typed mirror of the client's relay payload — JSON from the served
94
103
  * page, read defensively since nothing here enforces the wire shape. */
95
104
  interface DenialRelayPayload {
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/serve/namespace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../src/serve/namespace.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@ import { handleThresholdConfig } from './threshold-config-route.js';
21
21
  import { randomBytes } from 'node:crypto';
22
22
  import { createReadStream, existsSync, statSync } from 'node:fs';
23
23
  import { basename, join } from 'node:path';
24
- import { collectBody } from '../bridge/server/peer.js';
24
+ import { BODY_TOO_LARGE_CODE, collectBody } from '../bridge/server/peer.js';
25
25
  import { handleIndexConfig } from './index-config-route.js';
26
26
  import { StateFileError } from './state-store.js';
27
27
  import { createWriterLock } from './writer-lock.js';
@@ -29,7 +29,9 @@ import { createStudioRoutes } from './studio/index.js';
29
29
  import { pipeFileToResponse, getHeader, isAllowedHost, isAllowedOrigin, isAllowedSessionToken } from './server.js';
30
30
  import { handleActivity } from './activity-route.js';
31
31
  import { handleAiProxy, AI_PROXY_ROUTE } from './ai-proxy.js';
32
+ import { createGeminiProxy, isGeminiProxyPath } from './gemini-proxy.js';
32
33
  import { aiTerminalBlockFor } from './ai-terminal-blocks.js';
34
+ import { sanitizeForTerminal, stripTerminalControls } from './ai-terminal-text.js';
33
35
  import { createSiteTreeHandler } from './site-tree.js';
34
36
  import { handleAvatar } from './assets/avatar-route.js';
35
37
  import { ASSETS_ROUTE_PREFIX } from './assets/avatar-url.js';
@@ -256,6 +258,10 @@ async function handleCapture(capture, req, res) {
256
258
  // silent (no output at all) on suppression rather than a "suppressed N more"
257
259
  // line, to keep this a diagnostics side channel, not its own log noise.
258
260
  const DENIAL_THROTTLE_MS = 5_000;
261
+ /** Largest relayed denial the route reads. A real one is a message, a path, a
262
+ * uid and a short owner stack, a few KiB at most; the index route's 64 KiB
263
+ * leaves room for a deep stack without letting a page grow the server. */
264
+ export const DENIAL_BODY_LIMIT_BYTES = 64 * 1024;
259
265
  /** Per-dev-server-instance throttle: at most one printed line per key within
260
266
  * {@link DENIAL_THROTTLE_MS}. Exported for unit tests. */
261
267
  export function createDenialThrottle(windowMs = DENIAL_THROTTLE_MS) {
@@ -270,28 +276,49 @@ export function createDenialThrottle(windowMs = DENIAL_THROTTLE_MS) {
270
276
  },
271
277
  };
272
278
  }
279
+ /** A page-supplied string as one terminal-safe line. Every field of a relayed
280
+ * denial comes from the served page, which need not be the developer's own
281
+ * code, so none of it reaches the terminal with control characters intact. */
282
+ function pageText(value) {
283
+ return sanitizeForTerminal(value);
284
+ }
285
+ /** A multi-line page-supplied string (a query-proof remediation) as indented
286
+ * terminal lines. Each line keeps its spacing and its whole length, because a
287
+ * reader pastes the `pyric rules test` command and the `Fixture case:` JSON
288
+ * out of it; only control and bidi characters are replaced. The denial body
289
+ * limit bounds the total, so no line or line count is cut here. */
290
+ function pageLines(value) {
291
+ const lines = value.split(/\r?\n/).map((line) => stripTerminalControls(line).trimEnd());
292
+ const first = lines.findIndex((line) => line.length > 0);
293
+ if (first === -1)
294
+ return [];
295
+ let last = lines.length - 1;
296
+ while (lines[last].length === 0)
297
+ last -= 1;
298
+ return lines.slice(first, last + 1).map((line) => (line.length > 0 ? ` ${line}` : ''));
299
+ }
273
300
  /** Format a relayed denial into the compact terminal block: the message,
274
301
  * then (when present) the request method/path, the auth uid, and any
275
302
  * remediation guidance. A few lines, never a JSON dump. */
276
303
  export function formatDenialBlock(payload) {
277
304
  const message = typeof payload.message === 'string' ? payload.message : 'permission denied';
278
- const lines = [` ⚠ [pyric] denied: ${message}`];
305
+ const lines = [` ⚠ [pyric] denied: ${pageText(message)}`];
279
306
  const ctx = payload.denialContext;
280
307
  const request = ctx?.request;
281
308
  if (request?.method && request?.path) {
282
- const instance = typeof payload.instance === 'string' ? ` (${payload.instance})` : '';
283
- lines.push(` ${request.method} ${request.path}${instance}`);
309
+ const instance = typeof payload.instance === 'string' ? ` (${pageText(payload.instance)})` : '';
310
+ lines.push(` ${pageText(String(request.method))} ${pageText(String(request.path))}${instance}`);
284
311
  }
285
312
  const uid = ctx?.auth?.uid;
286
- lines.push(` auth: ${uid ?? 'anonymous'}`);
313
+ lines.push(` auth: ${uid === undefined || uid === null ? 'anonymous' : pageText(String(uid))}`);
287
314
  // An RTDB message names no rule, so the block names the deciding one.
288
315
  if (ctx?.engine === 'rtdb' && typeof ctx.matchedRule === 'string') {
289
- const node = typeof ctx.matchedPath === 'string' ? `${ctx.matchedPath} ` : '';
290
- lines.push(` rule: ${node}${ctx.matchedRule}`);
316
+ const node = typeof ctx.matchedPath === 'string' ? `${pageText(ctx.matchedPath)} ` : '';
317
+ lines.push(` rule: ${node}${pageText(ctx.matchedRule)}`);
291
318
  }
292
319
  const remediation = typeof payload.remediation === 'string' ? payload.remediation : ctx?.remediation;
293
320
  if (remediation)
294
- lines.push(` ${remediation}`);
321
+ lines.push(...pageLines(String(remediation)));
295
322
  lines.push(...ownerLines(payload.owners));
296
323
  return lines.join('\n');
297
324
  }
@@ -303,7 +330,7 @@ function isRelayedFrame(value) {
303
330
  /** A frame's file as a reader looks for it: a served URL loses its origin and query. */
304
331
  function frameLocation(frame) {
305
332
  const path = frame.file.replace(/^[a-z][a-z0-9+.-]*:\/\/[^/]*/i, '').replace(/[?#].*$/, '');
306
- return `${path}:${frame.line}`;
333
+ return pageText(`${path}:${frame.line}`);
307
334
  }
308
335
  /**
309
336
  * The `owner:` and `stack:` lines for a denied listener: the frame its owner
@@ -317,7 +344,7 @@ function ownerLines(owners) {
317
344
  const frame = owners.find((owner) => owner?.kind === 'frame');
318
345
  if (!isRelayedFrame(frame))
319
346
  return [];
320
- const name = typeof frame.function === 'string' && frame.function.length > 0 ? `${frame.function} ` : '';
347
+ const name = typeof frame.function === 'string' && frame.function.length > 0 ? `${pageText(frame.function)} ` : '';
321
348
  const lines = [` owner: ${name}${frameLocation(frame)}`];
322
349
  const stack = frame.stack;
323
350
  const chain = Array.isArray(stack) ? stack.filter(isRelayedFrame) : [];
@@ -355,15 +382,19 @@ export function noteAiDiagnostic(throttle, logger, payload) {
355
382
  * (target, reason) per window is the right volume for every one of them. A
356
383
  * rules denial's target also names its RTDB instance, so the same path
357
384
  * denied on two instances prints once for each.
358
- * Always 204s (best-effort diagnostics: a malformed body or a caller with no
359
- * logger wired must never fail the page that reported the refusal). */
385
+ * Answers 204 (best-effort diagnostics: a malformed body or a caller with no
386
+ * logger wired must never fail the page that reported the refusal), except
387
+ * 413 for a body over {@link DENIAL_BODY_LIMIT_BYTES}. On the 0.1.0-alpha.30
388
+ * line the namespace runs no loopback guard before this route, so a page on
389
+ * any origin can reach here; the body limit and the terminal-text sanitizing
390
+ * still apply. */
360
391
  async function handleDenials(throttle, logger, req, res) {
361
392
  if (req.method !== 'POST') {
362
393
  res.writeHead(405, { allow: 'POST' }).end('method not allowed');
363
394
  return;
364
395
  }
365
396
  try {
366
- const payload = (await collectBody(req));
397
+ const payload = (await collectBody(req, DENIAL_BODY_LIMIT_BYTES));
367
398
  const isAiDiagnostic = aiTerminalBlockFor(payload.kind) !== null;
368
399
  if (isAiDiagnostic) {
369
400
  noteAiDiagnostic(throttle, logger, payload);
@@ -379,7 +410,12 @@ async function handleDenials(throttle, logger, req, res) {
379
410
  }
380
411
  }
381
412
  }
382
- catch {
413
+ catch (error) {
414
+ const tooLarge = error?.code === BODY_TOO_LARGE_CODE;
415
+ if (tooLarge) {
416
+ res.writeHead(413, { 'content-type': 'text/plain' }).end('Payload Too Large');
417
+ return;
418
+ }
383
419
  /* malformed body: drop it; this is a diagnostics side channel */
384
420
  }
385
421
  res.writeHead(204).end();
@@ -426,6 +462,7 @@ export function createPyricNamespace(opts) {
426
462
  ? createSiteTreeHandler(siteUiDir, opts.workerVersion, hostedStudioProject(opts))
427
463
  : null;
428
464
  const denialThrottle = createDenialThrottle();
465
+ const geminiProxy = createGeminiProxy(opts.aiGemini, denialThrottle, opts.logger);
429
466
  // Issued once per server boot. The outer static/Vite host guard protects
430
467
  // init.json before this capability is disclosed to the served runtime.
431
468
  const activity = opts.activity;
@@ -549,8 +586,20 @@ export function createPyricNamespace(opts) {
549
586
  events.handle(req, res);
550
587
  return true;
551
588
  }
589
+ const isGeminiProxyRequest = isGeminiProxyPath(url.pathname);
590
+ if (isGeminiProxyRequest) {
591
+ // It spends the server's key, so only this app's pages may call it.
592
+ const hostRefused = !guardLoopback(req, res, opts.boundHost ?? 'localhost', opts.allowedHosts);
593
+ if (hostRefused)
594
+ return true;
595
+ return geminiProxy(req, res, url).then(() => true);
596
+ }
552
597
  const isAiProxyRequest = url.pathname === AI_PROXY_ROUTE || url.pathname.startsWith(`${AI_PROXY_ROUTE}/`);
553
598
  if (isAiProxyRequest) {
599
+ // The upstream may carry the developer's key, so only this server's pages may spend it.
600
+ const hostRefused = !guardLoopback(req, res, opts.boundHost ?? 'localhost', opts.allowedHosts);
601
+ if (hostRefused)
602
+ return true;
554
603
  return handleAiProxy(opts.aiProxyUpstream, denialThrottle, req, res, url, opts.logger).then(() => true);
555
604
  }
556
605
  const isBeaconRequest = url.pathname === BEACON_PATH;
@@ -559,6 +608,9 @@ export function createPyricNamespace(opts) {
559
608
  }
560
609
  const isDenialRequest = url.pathname === '/__pyric/denials';
561
610
  if (isDenialRequest) {
611
+ // No origin guard on the 0.1.0-alpha.30 line: without the learned proxy
612
+ // ports from #1497, it would refuse the Next dev server's page under
613
+ // `pyric sandbox -- next dev`. The body limit still applies.
562
614
  return handleDenials(denialThrottle, opts.logger, req, res).then(() => true);
563
615
  }
564
616
  const isInitRequest = url.pathname === '/__pyric/init.json';
@@ -1 +1 @@
1
- {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/serve/namespace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"namespace.js","sourceRoot":"","sources":["../../src/serve/namespace.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import type { BeaconReport } from '../register/beacon.js';
8
8
  import type { ServeLogger } from './server.js';
9
9
  import type { ResolvedAvatarsConfig } from './avatars-config.js';
10
10
  import { type HostedPersistence } from './hosted/persistence.js';
11
+ import type { GeminiProxyConfig } from './gemini-proxy.js';
11
12
  import { type RulesFixtureCheckSummary } from './rules-fixture-check.js';
12
13
  export interface SandboxSessionOptions {
13
14
  boundHost?: string;
@@ -36,6 +37,8 @@ export interface SandboxSessionOptions {
36
37
  deployHostedRules?: (service: 'firestore' | 'database' | 'storage', source: string | null, instance?: DatabaseRulesDestination) => Promise<void>;
37
38
  ai?: InitPayload['ai'];
38
39
  aiProxyUpstream?: string;
40
+ /** The gemini engine the dev server's gemini proxy sends for a browser engine. */
41
+ aiGemini?: GeminiProxyConfig;
39
42
  /** Resolved `avatars` option (already reduced by `avatars-config.ts` from
40
43
  * whatever the caller — the Vite plugin or `pyric sandbox` — accepted).
41
44
  * Absent behaves like `{ enabled: false }`: no avatar route is mounted. */
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-session.d.ts","sourceRoot":"","sources":["../../src/serve/sandbox-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox-session.d.ts","sourceRoot":"","sources":["../../src/serve/sandbox-session.ts"],"names":[],"mappings":"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"}
@@ -306,6 +306,7 @@ export async function createSandboxSession(options) {
306
306
  workerVersion: options.sdk.workerVersion,
307
307
  avatars: avatarsResolver,
308
308
  aiProxyUpstream: options.aiProxyUpstream,
309
+ aiGemini: options.aiGemini,
309
310
  activity: options.activity,
310
311
  beacon: options.beacon,
311
312
  beaconToken: options.beaconToken,