pyric 0.1.0-alpha.30.2 → 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.
Files changed (434) hide show
  1. package/dist/ai/app-check-gate.d.ts +9 -2
  2. package/dist/ai/app-check-gate.d.ts.map +1 -1
  3. package/dist/ai/app-check-gate.js +36 -7
  4. package/dist/ai/app-check-gate.js.map +1 -1
  5. package/dist/ai/broker/broker.d.ts.map +1 -1
  6. package/dist/ai/broker/broker.js +17 -20
  7. package/dist/ai/broker/broker.js.map +1 -1
  8. package/dist/ai/broker/gemini-engine.d.ts +5 -2
  9. package/dist/ai/broker/gemini-engine.d.ts.map +1 -1
  10. package/dist/ai/broker/gemini-engine.js +41 -25
  11. package/dist/ai/broker/gemini-engine.js.map +1 -1
  12. package/dist/ai/broker/gemini-upstream.d.ts +7 -5
  13. package/dist/ai/broker/gemini-upstream.d.ts.map +1 -1
  14. package/dist/ai/broker/gemini-upstream.js +9 -7
  15. package/dist/ai/broker/gemini-upstream.js.map +1 -1
  16. package/dist/ai/broker/index.d.ts +2 -1
  17. package/dist/ai/broker/index.d.ts.map +1 -1
  18. package/dist/ai/broker/index.js +2 -1
  19. package/dist/ai/broker/index.js.map +1 -1
  20. package/dist/ai/broker/openai-engine.d.ts.map +1 -1
  21. package/dist/ai/broker/openai-engine.js +13 -2
  22. package/dist/ai/broker/openai-engine.js.map +1 -1
  23. package/dist/ai/broker/scripted-engine.d.ts +5 -1
  24. package/dist/ai/broker/scripted-engine.d.ts.map +1 -1
  25. package/dist/ai/broker/scripted-engine.js +8 -2
  26. package/dist/ai/broker/scripted-engine.js.map +1 -1
  27. package/dist/ai/broker/synthesizer.d.ts +7 -0
  28. package/dist/ai/broker/synthesizer.d.ts.map +1 -1
  29. package/dist/ai/broker/synthesizer.js +10 -1
  30. package/dist/ai/broker/synthesizer.js.map +1 -1
  31. package/dist/ai/broker/upstream-error-redaction.d.ts +12 -0
  32. package/dist/ai/broker/upstream-error-redaction.d.ts.map +1 -0
  33. package/dist/ai/broker/upstream-error-redaction.js +71 -0
  34. package/dist/ai/broker/upstream-error-redaction.js.map +1 -0
  35. package/dist/ai/errors.d.ts +21 -7
  36. package/dist/ai/errors.d.ts.map +1 -1
  37. package/dist/ai/errors.js +68 -10
  38. package/dist/ai/errors.js.map +1 -1
  39. package/dist/ai/instances.js +1 -0
  40. package/dist/ai/instances.js.map +1 -1
  41. package/dist/ai/internal.d.ts +5 -2
  42. package/dist/ai/internal.d.ts.map +1 -1
  43. package/dist/ai/internal.js +6 -2
  44. package/dist/ai/internal.js.map +1 -1
  45. package/dist/ai/sandbox-plane.js +1 -1
  46. package/dist/ai/sandbox-plane.js.map +1 -1
  47. package/dist/ai/types.d.ts +4 -0
  48. package/dist/ai/types.d.ts.map +1 -1
  49. package/dist/app/register-rules.d.ts.map +1 -1
  50. package/dist/app/register-rules.js +72 -9
  51. package/dist/app/register-rules.js.map +1 -1
  52. package/dist/app-check/index.d.ts.map +1 -1
  53. package/dist/app-check/index.js +14 -8
  54. package/dist/app-check/index.js.map +1 -1
  55. package/dist/app-check/never-settles-warning.d.ts +14 -0
  56. package/dist/app-check/never-settles-warning.d.ts.map +1 -0
  57. package/dist/app-check/never-settles-warning.js +23 -0
  58. package/dist/app-check/never-settles-warning.js.map +1 -0
  59. package/dist/app-check/providers.d.ts +23 -3
  60. package/dist/app-check/providers.d.ts.map +1 -1
  61. package/dist/app-check/providers.js +27 -0
  62. package/dist/app-check/providers.js.map +1 -1
  63. package/dist/app-check/state.d.ts +17 -5
  64. package/dist/app-check/state.d.ts.map +1 -1
  65. package/dist/app-check/state.js +88 -10
  66. package/dist/app-check/state.js.map +1 -1
  67. package/dist/auth/internal.d.ts +4 -0
  68. package/dist/auth/internal.d.ts.map +1 -1
  69. package/dist/auth/internal.js +3 -0
  70. package/dist/auth/internal.js.map +1 -1
  71. package/dist/auth/providers.d.ts +9 -0
  72. package/dist/auth/providers.d.ts.map +1 -1
  73. package/dist/auth/providers.js +14 -0
  74. package/dist/auth/providers.js.map +1 -1
  75. package/dist/auth/sandbox/driver.d.ts +11 -1
  76. package/dist/auth/sandbox/driver.d.ts.map +1 -1
  77. package/dist/auth/sandbox/driver.js +25 -0
  78. package/dist/auth/sandbox/driver.js.map +1 -1
  79. package/dist/auth/sandbox-backend.d.ts.map +1 -1
  80. package/dist/auth/sandbox-backend.js +7 -4
  81. package/dist/auth/sandbox-backend.js.map +1 -1
  82. package/dist/auth/sign-in.d.ts +8 -0
  83. package/dist/auth/sign-in.d.ts.map +1 -1
  84. package/dist/auth/sign-in.js +11 -3
  85. package/dist/auth/sign-in.js.map +1 -1
  86. package/dist/database/instances.d.ts.map +1 -1
  87. package/dist/database/instances.js +18 -5
  88. package/dist/database/instances.js.map +1 -1
  89. package/dist/database/internal.d.ts +1 -0
  90. package/dist/database/internal.d.ts.map +1 -1
  91. package/dist/database/internal.js +1 -0
  92. package/dist/database/internal.js.map +1 -1
  93. package/dist/database/on-disconnect.d.ts.map +1 -1
  94. package/dist/database/on-disconnect.js +3 -0
  95. package/dist/database/on-disconnect.js.map +1 -1
  96. package/dist/database/operations.d.ts +3 -0
  97. package/dist/database/operations.d.ts.map +1 -1
  98. package/dist/database/operations.js +13 -8
  99. package/dist/database/operations.js.map +1 -1
  100. package/dist/database/queries.js +1 -1
  101. package/dist/database/queries.js.map +1 -1
  102. package/dist/database/query-validation.d.ts +5 -1
  103. package/dist/database/query-validation.d.ts.map +1 -1
  104. package/dist/database/query-validation.js +9 -22
  105. package/dist/database/query-validation.js.map +1 -1
  106. package/dist/database/references.d.ts +6 -4
  107. package/dist/database/references.d.ts.map +1 -1
  108. package/dist/database/references.js +17 -13
  109. package/dist/database/references.js.map +1 -1
  110. package/dist/database/routing.d.ts +4 -0
  111. package/dist/database/routing.d.ts.map +1 -1
  112. package/dist/database/routing.js.map +1 -1
  113. package/dist/database/sandbox/normalize.d.ts +34 -12
  114. package/dist/database/sandbox/normalize.d.ts.map +1 -1
  115. package/dist/database/sandbox/normalize.js +113 -61
  116. package/dist/database/sandbox/normalize.js.map +1 -1
  117. package/dist/database/sandbox/query.d.ts.map +1 -1
  118. package/dist/database/sandbox/query.js +37 -13
  119. package/dist/database/sandbox/query.js.map +1 -1
  120. package/dist/database/sandbox/transactions.d.ts.map +1 -1
  121. package/dist/database/sandbox/transactions.js +2 -2
  122. package/dist/database/sandbox/transactions.js.map +1 -1
  123. package/dist/database/sandbox/write-plane.js +3 -3
  124. package/dist/database/sandbox/write-plane.js.map +1 -1
  125. package/dist/database/snapshots.d.ts.map +1 -1
  126. package/dist/database/snapshots.js +36 -32
  127. package/dist/database/snapshots.js.map +1 -1
  128. package/dist/database/writable-path.d.ts.map +1 -1
  129. package/dist/database/writable-path.js +5 -3
  130. package/dist/database/writable-path.js.map +1 -1
  131. package/dist/firestore/internal/implicit-order.d.ts +19 -0
  132. package/dist/firestore/internal/implicit-order.d.ts.map +1 -0
  133. package/dist/firestore/internal/implicit-order.js +36 -0
  134. package/dist/firestore/internal/implicit-order.js.map +1 -0
  135. package/dist/firestore/sandbox/collection-group-rule-proof.d.ts +4 -1
  136. package/dist/firestore/sandbox/collection-group-rule-proof.d.ts.map +1 -1
  137. package/dist/firestore/sandbox/collection-group-rule-proof.js +7 -1
  138. package/dist/firestore/sandbox/collection-group-rule-proof.js.map +1 -1
  139. package/dist/firestore/sandbox/query-execution.d.ts +2 -0
  140. package/dist/firestore/sandbox/query-execution.d.ts.map +1 -1
  141. package/dist/firestore/sandbox/query-execution.js +48 -43
  142. package/dist/firestore/sandbox/query-execution.js.map +1 -1
  143. package/dist/firestore/sandbox/query-value-order.d.ts +5 -30
  144. package/dist/firestore/sandbox/query-value-order.d.ts.map +1 -1
  145. package/dist/firestore/sandbox/query-value-order.js +94 -112
  146. package/dist/firestore/sandbox/query-value-order.js.map +1 -1
  147. package/dist/firestore/sandbox/rules-state.d.ts +6 -4
  148. package/dist/firestore/sandbox/rules-state.d.ts.map +1 -1
  149. package/dist/firestore/sandbox/rules-state.js +9 -10
  150. package/dist/firestore/sandbox/rules-state.js.map +1 -1
  151. package/dist/firestore/sandbox/value-equality.d.ts +23 -0
  152. package/dist/firestore/sandbox/value-equality.d.ts.map +1 -1
  153. package/dist/firestore/sandbox/value-equality.js +22 -3
  154. package/dist/firestore/sandbox/value-equality.js.map +1 -1
  155. package/dist/rules/api/firestore.d.ts +3 -2
  156. package/dist/rules/api/firestore.d.ts.map +1 -1
  157. package/dist/rules/api/firestore.js +29 -24
  158. package/dist/rules/api/firestore.js.map +1 -1
  159. package/dist/rules/api/values.d.ts +17 -4
  160. package/dist/rules/api/values.d.ts.map +1 -1
  161. package/dist/rules/api/values.js +47 -5
  162. package/dist/rules/api/values.js.map +1 -1
  163. package/dist/rules/generators/assembler.d.ts +4 -0
  164. package/dist/rules/generators/assembler.d.ts.map +1 -1
  165. package/dist/rules/generators/assembler.js +64 -24
  166. package/dist/rules/generators/assembler.js.map +1 -1
  167. package/dist/rules/grammar/compile-limits.d.ts.map +1 -1
  168. package/dist/rules/grammar/compile-limits.js +4 -14
  169. package/dist/rules/grammar/compile-limits.js.map +1 -1
  170. package/dist/rules/grammar/re2-pattern.d.ts +43 -0
  171. package/dist/rules/grammar/re2-pattern.d.ts.map +1 -1
  172. package/dist/rules/grammar/re2-pattern.js +172 -0
  173. package/dist/rules/grammar/re2-pattern.js.map +1 -1
  174. package/dist/rules/grammar/recursive-wildcard-minimum.d.ts +15 -0
  175. package/dist/rules/grammar/recursive-wildcard-minimum.d.ts.map +1 -0
  176. package/dist/rules/grammar/recursive-wildcard-minimum.js +17 -0
  177. package/dist/rules/grammar/recursive-wildcard-minimum.js.map +1 -0
  178. package/dist/rules/grammar/source-compile-limits.d.ts +25 -10
  179. package/dist/rules/grammar/source-compile-limits.d.ts.map +1 -1
  180. package/dist/rules/grammar/source-compile-limits.js +43 -2
  181. package/dist/rules/grammar/source-compile-limits.js.map +1 -1
  182. package/dist/rules/indexes/extract/classify.d.ts +6 -0
  183. package/dist/rules/indexes/extract/classify.d.ts.map +1 -1
  184. package/dist/rules/indexes/extract/classify.js +12 -2
  185. package/dist/rules/indexes/extract/classify.js.map +1 -1
  186. package/dist/rules/indexes/extract/extractor.d.ts.map +1 -1
  187. package/dist/rules/indexes/extract/extractor.js +10 -1
  188. package/dist/rules/indexes/extract/extractor.js.map +1 -1
  189. package/dist/rules/indexes/extract/types.d.ts +3 -1
  190. package/dist/rules/indexes/extract/types.d.ts.map +1 -1
  191. package/dist/rules/internal/index.d.ts +4 -1
  192. package/dist/rules/internal/index.d.ts.map +1 -1
  193. package/dist/rules/internal/index.js +3 -1
  194. package/dist/rules/internal/index.js.map +1 -1
  195. package/dist/rules/rtdb/simulation/spec.d.ts +6 -6
  196. package/dist/rules/simulator/evaluation-builtins.d.ts.map +1 -1
  197. package/dist/rules/simulator/evaluation-builtins.js +5 -3
  198. package/dist/rules/simulator/evaluation-builtins.js.map +1 -1
  199. package/dist/rules/simulator/firestore-values.d.ts +8 -0
  200. package/dist/rules/simulator/firestore-values.d.ts.map +1 -1
  201. package/dist/rules/simulator/firestore-values.js +16 -0
  202. package/dist/rules/simulator/firestore-values.js.map +1 -1
  203. package/dist/rules/simulator/handler.d.ts +9 -0
  204. package/dist/rules/simulator/handler.d.ts.map +1 -1
  205. package/dist/rules/simulator/handler.js +69 -50
  206. package/dist/rules/simulator/handler.js.map +1 -1
  207. package/dist/rules/simulator/list-query-proof.d.ts.map +1 -1
  208. package/dist/rules/simulator/list-query-proof.js +4 -8
  209. package/dist/rules/simulator/list-query-proof.js.map +1 -1
  210. package/dist/rules/simulator/match-resolution.d.ts +4 -3
  211. package/dist/rules/simulator/match-resolution.d.ts.map +1 -1
  212. package/dist/rules/simulator/match-resolution.js +15 -10
  213. package/dist/rules/simulator/match-resolution.js.map +1 -1
  214. package/dist/rules/simulator/re2-pattern-check.d.ts +3 -0
  215. package/dist/rules/simulator/re2-pattern-check.d.ts.map +1 -0
  216. package/dist/rules/simulator/re2-pattern-check.js +29 -0
  217. package/dist/rules/simulator/re2-pattern-check.js.map +1 -0
  218. package/dist/rules/simulator/root-match.d.ts +49 -0
  219. package/dist/rules/simulator/root-match.d.ts.map +1 -0
  220. package/dist/rules/simulator/root-match.js +145 -0
  221. package/dist/rules/simulator/root-match.js.map +1 -0
  222. package/dist/rules/simulator/rules-type.d.ts +14 -1
  223. package/dist/rules/simulator/rules-type.d.ts.map +1 -1
  224. package/dist/rules/simulator/rules-type.js +57 -14
  225. package/dist/rules/simulator/rules-type.js.map +1 -1
  226. package/dist/rules/simulator/string-split.d.ts +15 -0
  227. package/dist/rules/simulator/string-split.d.ts.map +1 -0
  228. package/dist/rules/simulator/string-split.js +28 -0
  229. package/dist/rules/simulator/string-split.js.map +1 -0
  230. package/dist/rules/simulator/string-trim.d.ts +13 -0
  231. package/dist/rules/simulator/string-trim.d.ts.map +1 -0
  232. package/dist/rules/simulator/string-trim.js +24 -0
  233. package/dist/rules/simulator/string-trim.js.map +1 -0
  234. package/dist/rules/simulator/wrappers/base.d.ts +9 -0
  235. package/dist/rules/simulator/wrappers/base.d.ts.map +1 -1
  236. package/dist/rules/simulator/wrappers/base.js +9 -0
  237. package/dist/rules/simulator/wrappers/base.js.map +1 -1
  238. package/dist/rules/simulator/wrappers/duration.d.ts +8 -0
  239. package/dist/rules/simulator/wrappers/duration.d.ts.map +1 -1
  240. package/dist/rules/simulator/wrappers/duration.js +17 -1
  241. package/dist/rules/simulator/wrappers/duration.js.map +1 -1
  242. package/dist/rules/simulator/wrappers/timestamp.d.ts +8 -0
  243. package/dist/rules/simulator/wrappers/timestamp.d.ts.map +1 -1
  244. package/dist/rules/simulator/wrappers/timestamp.js +21 -1
  245. package/dist/rules/simulator/wrappers/timestamp.js.map +1 -1
  246. package/dist/rules/simulator-tools-impl.d.ts.map +1 -1
  247. package/dist/rules/simulator-tools-impl.js +14 -1
  248. package/dist/rules/simulator-tools-impl.js.map +1 -1
  249. package/dist/rules/test/case-refusals.d.ts +26 -0
  250. package/dist/rules/test/case-refusals.d.ts.map +1 -0
  251. package/dist/rules/test/case-refusals.js +40 -0
  252. package/dist/rules/test/case-refusals.js.map +1 -0
  253. package/dist/rules/test/case-shape.d.ts +6 -0
  254. package/dist/rules/test/case-shape.d.ts.map +1 -0
  255. package/dist/rules/test/case-shape.js +26 -0
  256. package/dist/rules/test/case-shape.js.map +1 -0
  257. package/dist/rules/test/handler.d.ts.map +1 -1
  258. package/dist/rules/test/handler.js +27 -1
  259. package/dist/rules/test/handler.js.map +1 -1
  260. package/dist/rules/test/spec.d.ts +14 -2
  261. package/dist/rules/test/spec.d.ts.map +1 -1
  262. package/dist/rules/test/spec.js +50 -8
  263. package/dist/rules/test/spec.js.map +1 -1
  264. package/dist/rules/test/wire-values.d.ts +10 -0
  265. package/dist/rules/test/wire-values.d.ts.map +1 -0
  266. package/dist/rules/test/wire-values.js +87 -0
  267. package/dist/rules/test/wire-values.js.map +1 -0
  268. package/dist/rules/tools.d.ts.map +1 -1
  269. package/dist/rules/tools.js +4 -1
  270. package/dist/rules/tools.js.map +1 -1
  271. package/dist/sandbox/attribution/attribution-mode.d.ts +15 -10
  272. package/dist/sandbox/attribution/attribution-mode.d.ts.map +1 -1
  273. package/dist/sandbox/attribution/attribution-mode.js +22 -28
  274. package/dist/sandbox/attribution/attribution-mode.js.map +1 -1
  275. package/dist/sandbox/clock.d.ts +50 -6
  276. package/dist/sandbox/clock.d.ts.map +1 -1
  277. package/dist/sandbox/clock.js +96 -34
  278. package/dist/sandbox/clock.js.map +1 -1
  279. package/dist/sandbox/internal/app-check-token.d.ts +6 -0
  280. package/dist/sandbox/internal/app-check-token.d.ts.map +1 -1
  281. package/dist/sandbox/internal/app-check-token.js +6 -0
  282. package/dist/sandbox/internal/app-check-token.js.map +1 -1
  283. package/dist/sandbox/internal/auth-token-claims.d.ts +10 -3
  284. package/dist/sandbox/internal/auth-token-claims.d.ts.map +1 -1
  285. package/dist/sandbox/internal/auth-token-claims.js +11 -9
  286. package/dist/sandbox/internal/auth-token-claims.js.map +1 -1
  287. package/dist/sandbox/internal/firestore-rules-config.d.ts +106 -0
  288. package/dist/sandbox/internal/firestore-rules-config.d.ts.map +1 -0
  289. package/dist/sandbox/internal/firestore-rules-config.js +194 -0
  290. package/dist/sandbox/internal/firestore-rules-config.js.map +1 -0
  291. package/dist/sandbox/internal/index.d.ts +4 -2
  292. package/dist/sandbox/internal/index.d.ts.map +1 -1
  293. package/dist/sandbox/internal/index.js +6 -2
  294. package/dist/sandbox/internal/index.js.map +1 -1
  295. package/dist/sandbox/internal/storage-rules-config.d.ts +79 -0
  296. package/dist/sandbox/internal/storage-rules-config.d.ts.map +1 -0
  297. package/dist/sandbox/internal/storage-rules-config.js +107 -0
  298. package/dist/sandbox/internal/storage-rules-config.js.map +1 -0
  299. package/dist/storage/enforce.d.ts.map +1 -1
  300. package/dist/storage/enforce.js +36 -20
  301. package/dist/storage/enforce.js.map +1 -1
  302. package/dist/storage/instances.d.ts.map +1 -1
  303. package/dist/storage/instances.js +24 -2
  304. package/dist/storage/instances.js.map +1 -1
  305. package/dist/storage/internal.d.ts +2 -1
  306. package/dist/storage/internal.d.ts.map +1 -1
  307. package/dist/storage/internal.js +2 -1
  308. package/dist/storage/internal.js.map +1 -1
  309. package/dist/storage/rules-resolution.d.ts.map +1 -1
  310. package/dist/storage/rules-resolution.js +4 -15
  311. package/dist/storage/rules-resolution.js.map +1 -1
  312. package/dist/storage/sandbox/rules-bucket-name.d.ts +25 -0
  313. package/dist/storage/sandbox/rules-bucket-name.d.ts.map +1 -0
  314. package/dist/storage/sandbox/rules-bucket-name.js +35 -0
  315. package/dist/storage/sandbox/rules-bucket-name.js.map +1 -0
  316. package/dist/storage/sandbox/rules-evaluator.d.ts.map +1 -1
  317. package/dist/storage/sandbox/rules-evaluator.js +5 -4
  318. package/dist/storage/sandbox/rules-evaluator.js.map +1 -1
  319. package/dist/storage/sandbox/rules-firestore-lookup.d.ts.map +1 -1
  320. package/dist/storage/sandbox/rules-firestore-lookup.js +65 -22
  321. package/dist/storage/sandbox/rules-firestore-lookup.js.map +1 -1
  322. package/dist/storage/sandbox/rules-operators.d.ts +2 -1
  323. package/dist/storage/sandbox/rules-operators.d.ts.map +1 -1
  324. package/dist/storage/sandbox/rules-operators.js +15 -2
  325. package/dist/storage/sandbox/rules-operators.js.map +1 -1
  326. package/dist/storage/sandbox/rules-path-match.d.ts +8 -5
  327. package/dist/storage/sandbox/rules-path-match.d.ts.map +1 -1
  328. package/dist/storage/sandbox/rules-path-match.js +10 -6
  329. package/dist/storage/sandbox/rules-path-match.js.map +1 -1
  330. package/dist/storage/sandbox/rules-string-methods.d.ts.map +1 -1
  331. package/dist/storage/sandbox/rules-string-methods.js +17 -164
  332. package/dist/storage/sandbox/rules-string-methods.js.map +1 -1
  333. package/dist/storage/sandbox/rules-time-methods.d.ts.map +1 -1
  334. package/dist/storage/sandbox/rules-time-methods.js +17 -11
  335. package/dist/storage/sandbox/rules-time-methods.js.map +1 -1
  336. package/dist/storage/service.d.ts +56 -1
  337. package/dist/storage/service.d.ts.map +1 -1
  338. package/dist/storage/service.js +121 -2
  339. package/dist/storage/service.js.map +1 -1
  340. package/package.json +5 -1
  341. package/src/ai/app-check-gate.ts +43 -8
  342. package/src/ai/broker/broker.ts +24 -20
  343. package/src/ai/broker/gemini-engine.ts +51 -28
  344. package/src/ai/broker/gemini-upstream.ts +9 -7
  345. package/src/ai/broker/index.ts +2 -0
  346. package/src/ai/broker/openai-engine.ts +14 -2
  347. package/src/ai/broker/scripted-engine.ts +8 -2
  348. package/src/ai/broker/synthesizer.ts +15 -1
  349. package/src/ai/broker/upstream-error-redaction.ts +70 -0
  350. package/src/ai/errors.ts +74 -9
  351. package/src/ai/instances.ts +1 -0
  352. package/src/ai/internal.ts +14 -2
  353. package/src/ai/sandbox-plane.ts +1 -1
  354. package/src/ai/types.ts +4 -0
  355. package/src/app/register-rules.ts +83 -10
  356. package/src/app-check/index.ts +14 -8
  357. package/src/app-check/never-settles-warning.ts +26 -0
  358. package/src/app-check/providers.ts +42 -3
  359. package/src/app-check/state.ts +114 -14
  360. package/src/auth/internal.ts +4 -0
  361. package/src/auth/providers.ts +17 -0
  362. package/src/auth/sandbox/driver.ts +38 -6
  363. package/src/auth/sandbox-backend.ts +7 -4
  364. package/src/auth/sign-in.ts +15 -6
  365. package/src/database/instances.ts +18 -5
  366. package/src/database/internal.ts +1 -0
  367. package/src/database/on-disconnect.ts +3 -0
  368. package/src/database/operations.ts +12 -11
  369. package/src/database/queries.ts +1 -1
  370. package/src/database/query-validation.ts +9 -25
  371. package/src/database/references.ts +18 -14
  372. package/src/database/routing.ts +4 -0
  373. package/src/database/sandbox/normalize.ts +116 -61
  374. package/src/database/sandbox/query.ts +44 -23
  375. package/src/database/sandbox/transactions.ts +2 -1
  376. package/src/database/sandbox/write-plane.ts +3 -3
  377. package/src/database/snapshots.ts +45 -40
  378. package/src/database/writable-path.ts +5 -3
  379. package/src/firestore/internal/implicit-order.ts +49 -0
  380. package/src/firestore/sandbox/collection-group-rule-proof.ts +6 -1
  381. package/src/firestore/sandbox/query-execution.ts +48 -43
  382. package/src/firestore/sandbox/query-value-order.ts +102 -117
  383. package/src/firestore/sandbox/rules-state.ts +9 -11
  384. package/src/firestore/sandbox/value-equality.ts +24 -4
  385. package/src/rules/api/firestore.ts +35 -32
  386. package/src/rules/api/values.ts +50 -6
  387. package/src/rules/generators/assembler.ts +66 -23
  388. package/src/rules/grammar/compile-limits.ts +4 -13
  389. package/src/rules/grammar/re2-pattern.ts +169 -0
  390. package/src/rules/grammar/recursive-wildcard-minimum.ts +16 -0
  391. package/src/rules/grammar/source-compile-limits.ts +71 -12
  392. package/src/rules/indexes/extract/classify.ts +14 -2
  393. package/src/rules/indexes/extract/extractor.ts +10 -1
  394. package/src/rules/indexes/extract/types.ts +3 -0
  395. package/src/rules/internal/index.ts +9 -1
  396. package/src/rules/simulator/evaluation-builtins.ts +5 -3
  397. package/src/rules/simulator/firestore-values.ts +16 -0
  398. package/src/rules/simulator/handler.ts +81 -47
  399. package/src/rules/simulator/list-query-proof.ts +5 -8
  400. package/src/rules/simulator/match-resolution.ts +15 -8
  401. package/src/rules/simulator/re2-pattern-check.ts +26 -0
  402. package/src/rules/simulator/root-match.ts +184 -0
  403. package/src/rules/simulator/rules-type.ts +67 -14
  404. package/src/rules/simulator/string-split.ts +28 -0
  405. package/src/rules/simulator/string-trim.ts +22 -0
  406. package/src/rules/simulator/wrappers/base.ts +10 -0
  407. package/src/rules/simulator/wrappers/duration.ts +18 -1
  408. package/src/rules/simulator/wrappers/timestamp.ts +21 -1
  409. package/src/rules/simulator-tools-impl.ts +14 -1
  410. package/src/rules/test/case-refusals.ts +44 -0
  411. package/src/rules/test/case-shape.ts +37 -0
  412. package/src/rules/test/handler.ts +29 -3
  413. package/src/rules/test/spec.ts +48 -8
  414. package/src/rules/test/wire-values.ts +84 -0
  415. package/src/rules/tools.ts +4 -1
  416. package/src/sandbox/attribution/attribution-mode.ts +22 -26
  417. package/src/sandbox/clock.ts +105 -34
  418. package/src/sandbox/internal/app-check-token.ts +7 -0
  419. package/src/sandbox/internal/auth-token-claims.ts +11 -9
  420. package/src/sandbox/internal/firestore-rules-config.ts +266 -0
  421. package/src/sandbox/internal/index.ts +26 -2
  422. package/src/sandbox/internal/storage-rules-config.ts +169 -0
  423. package/src/storage/enforce.ts +36 -19
  424. package/src/storage/instances.ts +24 -2
  425. package/src/storage/internal.ts +5 -0
  426. package/src/storage/rules-resolution.ts +3 -16
  427. package/src/storage/sandbox/rules-bucket-name.ts +49 -0
  428. package/src/storage/sandbox/rules-evaluator.ts +5 -4
  429. package/src/storage/sandbox/rules-firestore-lookup.ts +69 -22
  430. package/src/storage/sandbox/rules-operators.ts +14 -2
  431. package/src/storage/sandbox/rules-path-match.ts +11 -5
  432. package/src/storage/sandbox/rules-string-methods.ts +17 -170
  433. package/src/storage/sandbox/rules-time-methods.ts +16 -11
  434. package/src/storage/service.ts +146 -2
@@ -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;AAE1E,+FAA+F;AAC/F,eAAO,MAAM,0BAA0B,oMAC4J,CAAC;AAEpM,iFAAiF;AACjF,eAAO,MAAM,cAAc,wWAC4U,CAAC;AAKxW,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;AAUD;;;;;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"}
@@ -1,11 +1,26 @@
1
1
  import { appCheckActivationOf, appCheckTokenFor } from '../sandbox/internal/app-check-activation.js';
2
- import { checkAppCheckToken } from '../sandbox/internal/app-check-token.js';
2
+ import { APP_CHECK_PLACEHOLDER_TOKEN, checkAppCheckToken } from '../sandbox/internal/app-check-token.js';
3
+ import { RequestHeadersFailure } from './errors.js';
3
4
  /** Production's message for a refused request (capture `app-check-ai-gate-wire`), verbatim. */
4
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';
5
- /** 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. */
6
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';
7
- /** The web SDK's stand-in when attestation fails: base64 of `{"error":"UNKNOWN_ERROR"}`. */
8
- const SDK_PLACEHOLDER_TOKEN = 'eyJlcnJvciI6IlVOS05PV05fRVJST1IifQ==';
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
+ }
9
24
  /** The captured refusal envelope (`app-check-ai-gate-wire`, `noHeader.raw`). */
10
25
  export function appCheckRequired() {
11
26
  return { error: { code: 403, message: APP_CHECK_REQUIRED_MESSAGE, status: 'PERMISSION_DENIED' } };
@@ -23,7 +38,7 @@ export async function admitsAppCheckToken(token, nowMillis = Date.now()) {
23
38
  const isMissing = token === null || token === '';
24
39
  if (isMissing)
25
40
  return false;
26
- if (token === SDK_PLACEHOLDER_TOKEN)
41
+ if (token === APP_CHECK_PLACEHOLDER_TOKEN)
27
42
  return false;
28
43
  const check = await checkAppCheckToken(token);
29
44
  if (!check.ok)
@@ -47,7 +62,21 @@ function warnOnce(app) {
47
62
  if (warnedApps.has(app))
48
63
  return;
49
64
  warnedApps.add(app);
50
- console.warn(`[pyric/ai] ${APP_CHECK_HINT}`);
65
+ console.warn(`[pyric/ai] ${appCheckHintForThisRealm()}`);
66
+ }
67
+ /**
68
+ * The token a request carries. A limited-use token request can reject (the
69
+ * provider failed, with no placeholder to fall back on); upstream `getHeaders`
70
+ * lets that rejection reach `makeRequest`'s `catch`, which turns it into
71
+ * `AIError('error', 'Error fetching from <url>: <message>')`.
72
+ */
73
+ async function tokenForRequest(app, limitedUse) {
74
+ try {
75
+ return await appCheckTokenFor(app, { limitedUse });
76
+ }
77
+ catch (reason) {
78
+ throw new RequestHeadersFailure(reason);
79
+ }
51
80
  }
52
81
  /**
53
82
  * The attachment for a handle `getAI(app)` builds now. App Check is read once,
@@ -58,7 +87,7 @@ function warnOnce(app) {
58
87
  export function appCheckAttachmentFor(app, limitedUse) {
59
88
  const activeAtCreation = appCheckActivationOf(app) !== undefined;
60
89
  return {
61
- claim: async () => ({ token: activeAtCreation ? await appCheckTokenFor(app, { limitedUse }) : null }),
90
+ claim: async () => ({ token: activeAtCreation ? await tokenForRequest(app, limitedUse) : null }),
62
91
  warnRefused: () => warnOnce(app),
63
92
  };
64
93
  }
@@ -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,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAG5E,+FAA+F;AAC/F,MAAM,CAAC,MAAM,0BAA0B,GACrC,iMAAiM,CAAC;AAEpM,iFAAiF;AACjF,MAAM,CAAC,MAAM,cAAc,GACzB,qWAAqW,CAAC;AAExW,4FAA4F;AAC5F,MAAM,qBAAqB,GAAG,sCAAsC,CAAC;AAErE,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,qBAAqB;QAAE,OAAO,KAAK,CAAC;IAClD,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,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,gBAAgB,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrG,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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/broker.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAClH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAU7C,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EAEtB,WAAW,EACX,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAuBpB,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACrC,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,4EAA4E;AAC5E,KAAK,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,QAAQ;IACnB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,OAAO,GAAE,eAAoB;IAsBzC,0FAA0F;IAC1F,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAQ9C,OAAO,CAAC,QAAQ;IAShB,0EAA0E;IAC1E,OAAO,CAAC,cAAc;IAgBtB;;;;OAIG;IACH,cAAc,IAAI,cAAc;IAUhC,wFAAwF;IACxF,OAAO,CAAC,YAAY;IAgBpB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,0BAA0B;IASlC;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhF,eAAe,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBlH;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC;IAmD/G,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiBjH,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,gBAAgB;IAaxB;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAYd;;;;OAIG;IACH,OAAO,CAAC,IAAI;CAmBb;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAYrE"}
1
+ {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/broker.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAClH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAiB7C,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EAEtB,WAAW,EACX,SAAS,EACT,YAAY,EACb,MAAM,YAAY,CAAC;AAoBpB,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACrC,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,4EAA4E;AAC5E,KAAK,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,QAAQ;IACnB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,OAAO,GAAE,eAAoB;IAsBzC,0FAA0F;IAC1F,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAQ9C,OAAO,CAAC,QAAQ;IAShB,0EAA0E;IAC1E,OAAO,CAAC,cAAc;IAgBtB;;;;OAIG;IACH,cAAc,IAAI,cAAc;IAUhC,wFAAwF;IACxF,OAAO,CAAC,YAAY;IAgBpB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,0BAA0B;IASlC;;;;;OAKG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhF,eAAe,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBlH;;;;;;;;;;OAUG;IACH,qBAAqB,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC;IAmD/G,WAAW,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiBjH,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,gBAAgB;IAaxB;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAYd;;;;OAIG;IACH,OAAO,CAAC,IAAI;CAmBb;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAYrE"}
@@ -2,30 +2,27 @@ import { aiEndpoint, getAiEvidence, setAiEvidence } from '../../sandbox/internal
2
2
  import { emitSandboxEvent, getClock, makeServiceMutationEvent } from 'pyric/sandbox/internal';
3
3
  import { describeResponseBlock } from '../blocked.js';
4
4
  import { APP_CHECK_HINT, admitsAppCheckToken, appCheckRequired } from '../app-check-gate.js';
5
- import { AiBrokerError, Synthesizer, badRole, emptyContents, missingThoughtSignature } from './synthesizer.js';
5
+ import { AiBrokerError, Synthesizer, badRole, emptyContents, functionRoleRefused, missingThoughtSignature, } from './synthesizer.js';
6
6
  import { ScriptedEngine } from './scripted-engine.js';
7
7
  import { OpenAiEngine } from './openai-engine.js';
8
8
  import { GeminiEngine, GEMINI_DEFAULT_BASE_URL } from './gemini-engine.js';
9
9
  /**
10
- * Roles production accepts, from the captured rejection text
11
- * (`ai-error-bad-role`): "Please use a valid role: SYSTEM, SYSTEM_1, USER,
12
- * ASSISTANT, DEVELOPER, CONTEXT, USER_CONTEXT, MODEL, USER." — compared
13
- * case-insensitively (the SDK sends lowercase `user`/`model`). `FUNCTION` is
14
- * additionally accepted: the captured message omits it, yet production
15
- * accepted the SDK's function-response turn (`ai-function-response-round`),
16
- * and the installed SDK threads those turns with role `function`.
10
+ * Roles the broker accepts, from the 2026-10 `ai-error-bad-role` text:
11
+ * "Please use a valid role: MODEL, USER." Compared case-insensitively (the
12
+ * SDK sends lowercase `user`/`model`). Function responses ride under `user`.
13
+ * Role `function`, which the installed SDK's `ChatSession` sends, is refused
14
+ * with its own captured text (`ai-error-function-role-refused`, #1410).
15
+ * Role `assistant` is accepted too, although that text leaves it out
16
+ * (`ai-contents-role-assistant`). Role `system` is refused with the
17
+ * unknown-role text (`ai-contents-role-system`).
17
18
  */
18
- const ACCEPTED_ROLES = new Set([
19
- 'SYSTEM',
20
- 'SYSTEM_1',
21
- 'USER',
22
- 'ASSISTANT',
23
- 'DEVELOPER',
24
- 'CONTEXT',
25
- 'USER_CONTEXT',
26
- 'MODEL',
27
- 'FUNCTION',
28
- ]);
19
+ const ACCEPTED_ROLES = new Set(['MODEL', 'USER', 'ASSISTANT']);
20
+ /** The refusal production sends for a content role the broker does not accept. */
21
+ function roleRefusal(role) {
22
+ if (role.toUpperCase() === 'FUNCTION')
23
+ return functionRoleRefused();
24
+ return badRole(role);
25
+ }
29
26
  function isAnswerEngine(value) {
30
27
  return typeof value.generateContent === 'function';
31
28
  }
@@ -340,7 +337,7 @@ export class AiBroker {
340
337
  for (const content of contents) {
341
338
  const role = content.role ?? '';
342
339
  if (!ACCEPTED_ROLES.has(role.toUpperCase())) {
343
- this.reject(model, badRole(role));
340
+ this.reject(model, roleRefusal(role));
344
341
  }
345
342
  }
346
343
  }
@@ -1 +1 @@
1
- {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/ai/broker/broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../src/ai/broker/broker.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * A sandbox engine an app selects with `engine: { kind: 'gemini' }`. It runs
6
6
  * on Pyric's backend server, authenticating via a local API key
7
- * (`GEMINI_API_KEY` / `GOOGLE_GENAI_API_KEY` / `VITE_GEMINI_API_KEY`) or Google
7
+ * (`GEMINI_API_KEY` / `GOOGLE_GENAI_API_KEY`) or Google
8
8
  * Cloud Application Default Credentials (`gcloud auth application-default login`)
9
9
  * without exposing secrets to the browser. In a browser page or SharedWorker
10
10
  * its base URL is the dev server's `/__pyric/ai-proxy/gemini` route, and the
@@ -42,7 +42,10 @@ export declare class GeminiEngine implements AnswerEngine {
42
42
  * A non-2xx upstream answer becomes an {@link AiBrokerError} carrying the
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
- * the body text.
45
+ * the body text. Either way the credentials the request carried are masked
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).
46
49
  */
47
50
  private checkStatus;
48
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;AAClF,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;IAKlB;;;;;OAKG;IACH,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe;IAIrD,OAAO,CAAC,cAAc;IAItB;;;;;OAKG;YACW,WAAW;IAmBnB,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"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * A sandbox engine an app selects with `engine: { kind: 'gemini' }`. It runs
6
6
  * on Pyric's backend server, authenticating via a local API key
7
- * (`GEMINI_API_KEY` / `GOOGLE_GENAI_API_KEY` / `VITE_GEMINI_API_KEY`) or Google
7
+ * (`GEMINI_API_KEY` / `GOOGLE_GENAI_API_KEY`) or Google
8
8
  * Cloud Application Default Credentials (`gcloud auth application-default login`)
9
9
  * without exposing secrets to the browser. In a browser page or SharedWorker
10
10
  * its base URL is the dev server's `/__pyric/ai-proxy/gemini` route, and the
@@ -14,8 +14,9 @@
14
14
  * The requested model id goes upstream unchanged, and an upstream error
15
15
  * reaches the caller with the upstream's own code, status and message.
16
16
  */
17
- import { AiBrokerError, errorEnvelope, redactUrl } from './synthesizer.js';
17
+ import { AiBrokerError, errorEnvelope } from './synthesizer.js';
18
18
  import { GeminiUpstream } from './gemini-upstream.js';
19
+ import { redactUpstreamError, redactUpstreamText } from './upstream-error-redaction.js';
19
20
  export { GEMINI_DEFAULT_BASE_URL, hasGeminiStaticKey } from './gemini-upstream.js';
20
21
  /** The `message` and `status` of a Gemini `{ error: { ... } }` body, or null. */
21
22
  function parseUpstreamError(text) {
@@ -32,6 +33,24 @@ function parseUpstreamError(text) {
32
33
  return null;
33
34
  return { message: error.message, status: error.status };
34
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
+ }
35
54
  export class GeminiEngine {
36
55
  upstream;
37
56
  constructor(options) {
@@ -48,8 +67,9 @@ export class GeminiEngine {
48
67
  }
49
68
  /** Sends one upstream request; a non-2xx answer throws the upstream's own error. */
50
69
  async send(model, action, body) {
51
- const response = await this.upstream.send(this.normalizeModel(model), action, JSON.stringify(body));
52
- return this.checkStatus(response);
70
+ const { response, credentials } = await this.upstream.sendWithCredentials(this.normalizeModel(model), action, JSON.stringify(body));
71
+ await this.checkStatus(response, credentials);
72
+ return { response, credentials };
53
73
  }
54
74
  /**
55
75
  * The model this engine calls upstream: always the requested one. The
@@ -67,25 +87,28 @@ export class GeminiEngine {
67
87
  * A non-2xx upstream answer becomes an {@link AiBrokerError} carrying the
68
88
  * upstream's own error envelope: its HTTP code, `status` and message. A
69
89
  * body that is not a Gemini error envelope keeps the HTTP code and reports
70
- * the body text.
90
+ * the body text. Either way the credentials the request carried are masked
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).
71
94
  */
72
- async checkStatus(response) {
95
+ async checkStatus(response, credentials) {
73
96
  const isSuccess = response.ok;
74
97
  if (isSuccess)
75
- return response;
98
+ return;
76
99
  const errorText = await response.text().catch(() => '');
77
- const upstream = parseUpstreamError(errorText);
100
+ const upstream = parseUpstreamError(redactUpstreamError(errorText, credentials));
78
101
  if (upstream !== null) {
79
- throw new AiBrokerError(errorEnvelope(response.status, redactUrl(upstream.message), upstream.status));
102
+ throw new AiBrokerError(errorEnvelope(response.status, upstream.message, upstream.status));
80
103
  }
81
- throw new AiBrokerError(errorEnvelope(response.status, `Gemini API returned status ${response.status}: ${redactUrl(errorText)}`, 'INTERNAL'));
104
+ throw new AiBrokerError(errorEnvelope(response.status, `Gemini API returned status ${response.status}: ${redactUpstreamText(errorText, credentials)}`, 'INTERNAL'));
82
105
  }
83
106
  async generateContent(req, model) {
84
- const response = await this.send(model, 'generateContent', req);
107
+ const { response } = await this.send(model, 'generateContent', req);
85
108
  return (await response.json());
86
109
  }
87
110
  async *streamGenerateContent(req, model) {
88
- const response = await this.send(model, 'streamGenerateContent?alt=sse', req);
111
+ const { response, credentials } = await this.send(model, 'streamGenerateContent?alt=sse', req);
89
112
  const hasBody = response.body !== null && response.body !== undefined;
90
113
  if (!hasBody) {
91
114
  throw new AiBrokerError(errorEnvelope(500, 'Gemini API returned an empty stream response.', 'INTERNAL'));
@@ -113,13 +136,10 @@ export class GeminiEngine {
113
136
  if (isEmptyOrDone) {
114
137
  continue;
115
138
  }
116
- try {
117
- const chunk = JSON.parse(dataStr);
139
+ // A malformed SSE chunk is skipped.
140
+ const chunk = parseStreamData(dataStr, credentials);
141
+ if (chunk !== undefined)
118
142
  yield chunk;
119
- }
120
- catch {
121
- // Ignore malformed SSE chunk in stream
122
- }
123
143
  }
124
144
  }
125
145
  const hasTrailingBuffer = buffer.trim().length > 0;
@@ -130,13 +150,9 @@ export class GeminiEngine {
130
150
  const dataStr = line.slice(6).trim();
131
151
  const isNotEmptyOrDone = dataStr !== '' && dataStr !== '[DONE]';
132
152
  if (isNotEmptyOrDone) {
133
- try {
134
- const chunk = JSON.parse(dataStr);
153
+ const chunk = parseStreamData(dataStr, credentials);
154
+ if (chunk !== undefined)
135
155
  yield chunk;
136
- }
137
- catch {
138
- // Ignore malformed SSE chunk in stream
139
- }
140
156
  }
141
157
  }
142
158
  }
@@ -146,7 +162,7 @@ export class GeminiEngine {
146
162
  }
147
163
  }
148
164
  async countTokens(req, model) {
149
- const response = await this.send(model, 'countTokens', req);
165
+ const { response } = await this.send(model, 'countTokens', req);
150
166
  return (await response.json());
151
167
  }
152
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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"}
@@ -3,9 +3,11 @@
3
3
  * engine sends, and what Pyric's dev server sends on a browser engine's
4
4
  * behalf.
5
5
  *
6
- * Credentials come from the explicit key, else `GEMINI_API_KEY`,
7
- * `GOOGLE_GENAI_API_KEY`, `VITE_GEMINI_API_KEY`, else Google Cloud
8
- * Application Default Credentials. A browser engine is built with
6
+ * Credentials come from the explicit key, else `GEMINI_API_KEY` or
7
+ * `GOOGLE_GENAI_API_KEY`, else Google Cloud Application Default Credentials.
8
+ * `VITE_GEMINI_API_KEY` is not read: Vite serves every `VITE_`-prefixed
9
+ * variable to the browser, so the Vite plugin refuses to start with it set
10
+ * (#1632). A browser engine is built with
9
11
  * `serverAttachesAuth`: its base URL is the dev server's
10
12
  * `/__pyric/ai-proxy/gemini`, which attaches the credentials itself, so none
11
13
  * are sent and the browser never holds the key.
@@ -16,8 +18,8 @@
16
18
  export declare const GEMINI_DEFAULT_BASE_URL = "https://generativelanguage.googleapis.com";
17
19
  /**
18
20
  * Whether a static API key is configured: the explicit option, else the first
19
- * of `GEMINI_API_KEY`, `GOOGLE_GENAI_API_KEY`, `VITE_GEMINI_API_KEY` that is
20
- * defined, which must then be non-blank. This is the engine's own precedence
21
+ * of `GEMINI_API_KEY`, `GOOGLE_GENAI_API_KEY` that is defined, which must
22
+ * then be non-blank. This is the engine's own precedence
21
23
  * (a blank earlier variable shadows a later real one), published through
22
24
  * `pyric/ai/internal` so the CLI's startup banner cannot disagree with it.
23
25
  * Application Default Credentials are not consulted: a status read must never
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-upstream.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/gemini-upstream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;gDAEgD;AAChD,eAAO,MAAM,uBAAuB,8CAA8C,CAAC;AAqBnF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAG3E;AAyDD,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;gEAC4D;IAC5D,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;oEACgE;IAChE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAmBD,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsE;IAChG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,SAAS,CAA8B;gBAEnC,OAAO,CAAC,EAAE,qBAAqB;IAS3C;;;;;OAKG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;;;;;OAMG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIvG;;;;;OAKG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GACrC,OAAO,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAgBzD;;;;OAIG;YACW,gBAAgB;IAyB9B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;YAkBR,cAAc;IAa5B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;YAuBf,IAAI;CAuBnB"}
1
+ {"version":3,"file":"gemini-upstream.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/gemini-upstream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;gDAEgD;AAChD,eAAO,MAAM,uBAAuB,8CAA8C,CAAC;AAqBnF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAG3E;AAyDD,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;gEAC4D;IAC5D,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;oEACgE;IAChE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAmBD,qBAAa,cAAc;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sEAAsE;IACtE,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsE;IAChG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAmD;IACnE,OAAO,CAAC,SAAS,CAA8B;gBAEnC,OAAO,CAAC,EAAE,qBAAqB;IAS3C;;;;;OAKG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;;;;;OAMG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIvG;;;;;OAKG;IACG,mBAAmB,CACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,GACrC,OAAO,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAgBzD;;;;OAIG;YACW,gBAAgB;IAyB9B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;YAkBR,cAAc;IAa5B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;YAuBf,IAAI;CAuBnB"}
@@ -3,9 +3,11 @@
3
3
  * engine sends, and what Pyric's dev server sends on a browser engine's
4
4
  * behalf.
5
5
  *
6
- * Credentials come from the explicit key, else `GEMINI_API_KEY`,
7
- * `GOOGLE_GENAI_API_KEY`, `VITE_GEMINI_API_KEY`, else Google Cloud
8
- * Application Default Credentials. A browser engine is built with
6
+ * Credentials come from the explicit key, else `GEMINI_API_KEY` or
7
+ * `GOOGLE_GENAI_API_KEY`, else Google Cloud Application Default Credentials.
8
+ * `VITE_GEMINI_API_KEY` is not read: Vite serves every `VITE_`-prefixed
9
+ * variable to the browser, so the Vite plugin refuses to start with it set
10
+ * (#1632). A browser engine is built with
9
11
  * `serverAttachesAuth`: its base URL is the dev server's
10
12
  * `/__pyric/ai-proxy/gemini`, which attaches the credentials itself, so none
11
13
  * are sent and the browser never holds the key.
@@ -15,7 +17,7 @@ import { AiBrokerError, errorEnvelope, redactUrl } from './synthesizer.js';
15
17
  * through `pyric/ai/internal` so the CLI's startup banner can name the same
16
18
  * endpoint instead of keeping its own copy. */
17
19
  export const GEMINI_DEFAULT_BASE_URL = 'https://generativelanguage.googleapis.com';
18
- const KEY_VARIABLES = ['GEMINI_API_KEY', 'GOOGLE_GENAI_API_KEY', 'VITE_GEMINI_API_KEY'];
20
+ const KEY_VARIABLES = ['GEMINI_API_KEY', 'GOOGLE_GENAI_API_KEY'];
19
21
  /** A variable from the runtime's environment, or undefined where there is
20
22
  * none: a browser page or SharedWorker has no `process`. */
21
23
  function readEnv(name) {
@@ -35,8 +37,8 @@ function configuredKey(explicitKey) {
35
37
  }
36
38
  /**
37
39
  * Whether a static API key is configured: the explicit option, else the first
38
- * of `GEMINI_API_KEY`, `GOOGLE_GENAI_API_KEY`, `VITE_GEMINI_API_KEY` that is
39
- * defined, which must then be non-blank. This is the engine's own precedence
40
+ * of `GEMINI_API_KEY`, `GOOGLE_GENAI_API_KEY` that is defined, which must
41
+ * then be non-blank. This is the engine's own precedence
40
42
  * (a blank earlier variable shadows a later real one), published through
41
43
  * `pyric/ai/internal` so the CLI's startup banner cannot disagree with it.
42
44
  * Application Default Credentials are not consulted: a status read must never
@@ -179,7 +181,7 @@ export class GeminiUpstream {
179
181
  if (adcToken !== '') {
180
182
  return { token: adcToken, isBearer: true, isAdc: true };
181
183
  }
182
- throw new AiBrokerError(errorEnvelope(401, 'The Pyric gemini AI engine requires GEMINI_API_KEY, GOOGLE_GENAI_API_KEY, or VITE_GEMINI_API_KEY in your server environment (or Application Default Credentials via `gcloud auth application-default login`).', 'UNAUTHENTICATED'));
184
+ throw new AiBrokerError(errorEnvelope(401, 'The Pyric gemini AI engine requires GEMINI_API_KEY or GOOGLE_GENAI_API_KEY in your server environment (or Application Default Credentials via `gcloud auth application-default login`).', 'UNAUTHENTICATED'));
183
185
  }
184
186
  /**
185
187
  * The ADC access token, reused for {@link ADC_TOKEN_TTL_MS}. Concurrent
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-upstream.js","sourceRoot":"","sources":["../../../src/ai/broker/gemini-upstream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-upstream.js","sourceRoot":"","sources":["../../../src/ai/broker/gemini-upstream.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ export { AiBroker, loadObservationEnvelope, type AiBrokerOptions, type AiEngineS
8
8
  export { ScriptedEngine, lastUserText, promptTextOf } from './scripted-engine.js';
9
9
  export { GeminiEngine, GEMINI_DEFAULT_BASE_URL, hasGeminiStaticKey, type GeminiEngineOptions } from './gemini-engine.js';
10
10
  export { GeminiUpstream, type GeminiUpstreamOptions } from './gemini-upstream.js';
11
+ export { redactUpstreamError, redactUpstreamText } from './upstream-error-redaction.js';
11
12
  export { OpenAiEngine, ToolCallBuffer, SseParser, DONE_SENTINEL, geminiToOpenAIRequest, normalizeSchema, mapFinishReason, openAIToGeminiResponse, openAIChunkToParts, type OpenAiEngineOptions, type OpenAIRequest, type OpenAIResponse, type OpenAIStreamChunk, type OpenAIMessage, type OpenAIToolCall, } from './openai-engine.js';
12
- export { AiBrokerError, Synthesizer, errorEnvelope, unknownModel, badRole, emptyContents, missingThoughtSignature, resolveModelVersion, estimateTokens, mintThoughtSignature, mintFunctionCallId, redactUrl, type SynthesizeOptions, } from './synthesizer.js';
13
+ export { AiBrokerError, Synthesizer, errorEnvelope, unknownModel, badRole, functionRoleRefused, emptyContents, missingThoughtSignature, resolveModelVersion, estimateTokens, mintThoughtSignature, mintFunctionCallId, redactUrl, type SynthesizeOptions, } from './synthesizer.js';
13
14
  export type { AnswerEngine, AppCheckClaim, CountTokensRequest, CountTokensResponse, EngineConfig, GenerateContentRequest, RawEnvelope, ScriptEntry, ScriptMatcher, ScriptRespond, ScriptShorthand, WireCandidate, WireChunk, WireContent, WireErrorEnvelope, WirePart, WireResponse, WireUsageMetadata, } from './types.js';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,OAAO,EACP,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/broker/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACZ,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -8,6 +8,7 @@ export { AiBroker, loadObservationEnvelope } from './broker.js';
8
8
  export { ScriptedEngine, lastUserText, promptTextOf } from './scripted-engine.js';
9
9
  export { GeminiEngine, GEMINI_DEFAULT_BASE_URL, hasGeminiStaticKey } from './gemini-engine.js';
10
10
  export { GeminiUpstream } from './gemini-upstream.js';
11
+ export { redactUpstreamError, redactUpstreamText } from './upstream-error-redaction.js';
11
12
  export { OpenAiEngine, ToolCallBuffer, SseParser, DONE_SENTINEL, geminiToOpenAIRequest, normalizeSchema, mapFinishReason, openAIToGeminiResponse, openAIChunkToParts, } from './openai-engine.js';
12
- export { AiBrokerError, Synthesizer, errorEnvelope, unknownModel, badRole, emptyContents, missingThoughtSignature, resolveModelVersion, estimateTokens, mintThoughtSignature, mintFunctionCallId, redactUrl, } from './synthesizer.js';
13
+ export { AiBrokerError, Synthesizer, errorEnvelope, unknownModel, badRole, functionRoleRefused, emptyContents, missingThoughtSignature, resolveModelVersion, estimateTokens, mintThoughtSignature, mintFunctionCallId, redactUrl, } from './synthesizer.js';
13
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/broker/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAA6C,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAA4B,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,cAAc,EAA8B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,kBAAkB,GAOnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,OAAO,EACP,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GAEV,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/broker/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAA6C,MAAM,aAAa,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAA4B,MAAM,oBAAoB,CAAC;AACzH,OAAO,EAAE,cAAc,EAA8B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EACL,YAAY,EACZ,cAAc,EACd,SAAS,EACT,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,kBAAkB,GAOnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,WAAW,EACX,aAAa,EACb,YAAY,EACZ,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GAEV,MAAM,kBAAkB,CAAC"}