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

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 (1365) hide show
  1. package/dist/assurance/.generated/conformance-verdicts.d.ts +111 -40
  2. package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -1
  3. package/dist/assurance/.generated/conformance-verdicts.js +111 -40
  4. package/dist/assurance/.generated/conformance-verdicts.js.map +1 -1
  5. package/dist/assurance/capabilities.d.ts.map +1 -1
  6. package/dist/assurance/capabilities.js +12 -14
  7. package/dist/assurance/capabilities.js.map +1 -1
  8. package/dist/bounded-request.d.ts +27 -5
  9. package/dist/bounded-request.d.ts.map +1 -1
  10. package/dist/bounded-request.js +48 -4
  11. package/dist/bounded-request.js.map +1 -1
  12. package/dist/bridge/client/bridge-url.d.ts +5 -1
  13. package/dist/bridge/client/bridge-url.d.ts.map +1 -1
  14. package/dist/bridge/client/bridge-url.js +5 -1
  15. package/dist/bridge/client/bridge-url.js.map +1 -1
  16. package/dist/bridge/client/bridge.d.ts +9 -3
  17. package/dist/bridge/client/bridge.d.ts.map +1 -1
  18. package/dist/bridge/client/bridge.js +17 -3
  19. package/dist/bridge/client/bridge.js.map +1 -1
  20. package/dist/bridge/frame-output.d.ts.map +1 -1
  21. package/dist/bridge/frame-output.js +46 -0
  22. package/dist/bridge/frame-output.js.map +1 -1
  23. package/dist/bridge/protocol.d.ts +10 -0
  24. package/dist/bridge/protocol.d.ts.map +1 -1
  25. package/dist/bridge/protocol.js +10 -0
  26. package/dist/bridge/protocol.js.map +1 -1
  27. package/dist/bridge/server/in-process.d.ts +16 -7
  28. package/dist/bridge/server/in-process.d.ts.map +1 -1
  29. package/dist/bridge/server/in-process.js +51 -17
  30. package/dist/bridge/server/in-process.js.map +1 -1
  31. package/dist/bridge/server/peer.d.ts +18 -0
  32. package/dist/bridge/server/peer.d.ts.map +1 -1
  33. package/dist/bridge/server/peer.js +56 -1
  34. package/dist/bridge/server/peer.js.map +1 -1
  35. package/dist/bridge/server/standalone.d.ts +7 -2
  36. package/dist/bridge/server/standalone.d.ts.map +1 -1
  37. package/dist/bridge/server/standalone.js +27 -99
  38. package/dist/bridge/server/standalone.js.map +1 -1
  39. package/dist/bridge/surface/arguments/firestore.d.ts +6 -6
  40. package/dist/bridge/surface/arguments/sandbox.d.ts +0 -47
  41. package/dist/bridge/surface/arguments/sandbox.d.ts.map +1 -1
  42. package/dist/bridge/surface/arguments/sandbox.js +2 -59
  43. package/dist/bridge/surface/arguments/sandbox.js.map +1 -1
  44. package/dist/bridge/surface/arguments/seed.d.ts +61 -0
  45. package/dist/bridge/surface/arguments/seed.d.ts.map +1 -0
  46. package/dist/bridge/surface/arguments/seed.js +67 -0
  47. package/dist/bridge/surface/arguments/seed.js.map +1 -0
  48. package/dist/bridge/surface/arguments/storage.d.ts +2 -2
  49. package/dist/bridge/surface/context.d.ts +5 -10
  50. package/dist/bridge/surface/context.d.ts.map +1 -1
  51. package/dist/bridge/surface/context.js +11 -23
  52. package/dist/bridge/surface/context.js.map +1 -1
  53. package/dist/bridge/surface/database-instance-catalog.d.ts +0 -3
  54. package/dist/bridge/surface/database-instance-catalog.d.ts.map +1 -1
  55. package/dist/bridge/surface/database-instance-catalog.js +4 -27
  56. package/dist/bridge/surface/database-instance-catalog.js.map +1 -1
  57. package/dist/bridge/surface/database-instance-project.d.ts +5 -0
  58. package/dist/bridge/surface/database-instance-project.d.ts.map +1 -0
  59. package/dist/bridge/surface/database-instance-project.js +32 -0
  60. package/dist/bridge/surface/database-instance-project.js.map +1 -0
  61. package/dist/bridge/surface/database-instance.d.ts +3 -3
  62. package/dist/bridge/surface/database-instance.d.ts.map +1 -1
  63. package/dist/bridge/surface/database-instance.js +1 -2
  64. package/dist/bridge/surface/database-instance.js.map +1 -1
  65. package/dist/bridge/surface/functions-runtime.d.ts +2 -2
  66. package/dist/bridge/surface/functions-runtime.js +5 -5
  67. package/dist/bridge/surface/functions-runtime.js.map +1 -1
  68. package/dist/bridge/surface/held-identity.d.ts +4 -4
  69. package/dist/bridge/surface/held-identity.d.ts.map +1 -1
  70. package/dist/bridge/surface/held-identity.js.map +1 -1
  71. package/dist/bridge/surface/manifest.sandbox.generated.d.ts +3 -0
  72. package/dist/bridge/surface/manifest.sandbox.generated.d.ts.map +1 -0
  73. package/dist/bridge/surface/manifest.sandbox.generated.js +135 -0
  74. package/dist/bridge/surface/manifest.sandbox.generated.js.map +1 -0
  75. package/dist/bridge/surface/method-types.d.ts +48 -7
  76. package/dist/bridge/surface/method-types.d.ts.map +1 -1
  77. package/dist/bridge/surface/method-types.js +15 -0
  78. package/dist/bridge/surface/method-types.js.map +1 -1
  79. package/dist/bridge/surface/methods/ai_logic/clearScripts.d.ts +2 -1
  80. package/dist/bridge/surface/methods/ai_logic/clearScripts.d.ts.map +1 -1
  81. package/dist/bridge/surface/methods/ai_logic/clearScripts.js +2 -1
  82. package/dist/bridge/surface/methods/ai_logic/clearScripts.js.map +1 -1
  83. package/dist/bridge/surface/methods/ai_logic/script.d.ts +2 -1
  84. package/dist/bridge/surface/methods/ai_logic/script.d.ts.map +1 -1
  85. package/dist/bridge/surface/methods/ai_logic/script.js +2 -1
  86. package/dist/bridge/surface/methods/ai_logic/script.js.map +1 -1
  87. package/dist/bridge/surface/methods/ai_logic/scripts.d.ts +2 -1
  88. package/dist/bridge/surface/methods/ai_logic/scripts.d.ts.map +1 -1
  89. package/dist/bridge/surface/methods/ai_logic/scripts.js +2 -1
  90. package/dist/bridge/surface/methods/ai_logic/scripts.js.map +1 -1
  91. package/dist/bridge/surface/methods/ai_logic/status.d.ts +2 -1
  92. package/dist/bridge/surface/methods/ai_logic/status.d.ts.map +1 -1
  93. package/dist/bridge/surface/methods/ai_logic/status.js +1 -0
  94. package/dist/bridge/surface/methods/ai_logic/status.js.map +1 -1
  95. package/dist/bridge/surface/methods/assurance/attach.d.ts +1 -0
  96. package/dist/bridge/surface/methods/assurance/attach.d.ts.map +1 -1
  97. package/dist/bridge/surface/methods/assurance/attach.js +1 -0
  98. package/dist/bridge/surface/methods/assurance/attach.js.map +1 -1
  99. package/dist/bridge/surface/methods/assurance/canIUse.d.ts +1 -0
  100. package/dist/bridge/surface/methods/assurance/canIUse.d.ts.map +1 -1
  101. package/dist/bridge/surface/methods/assurance/canIUse.js +1 -0
  102. package/dist/bridge/surface/methods/assurance/canIUse.js.map +1 -1
  103. package/dist/bridge/surface/methods/assurance/define.d.ts +1 -0
  104. package/dist/bridge/surface/methods/assurance/define.d.ts.map +1 -1
  105. package/dist/bridge/surface/methods/assurance/define.js +1 -0
  106. package/dist/bridge/surface/methods/assurance/define.js.map +1 -1
  107. package/dist/bridge/surface/methods/assurance/export.d.ts +1 -0
  108. package/dist/bridge/surface/methods/assurance/export.d.ts.map +1 -1
  109. package/dist/bridge/surface/methods/assurance/export.js +1 -0
  110. package/dist/bridge/surface/methods/assurance/export.js.map +1 -1
  111. package/dist/bridge/surface/methods/assurance/inspect.d.ts +1 -0
  112. package/dist/bridge/surface/methods/assurance/inspect.d.ts.map +1 -1
  113. package/dist/bridge/surface/methods/assurance/inspect.js +1 -0
  114. package/dist/bridge/surface/methods/assurance/inspect.js.map +1 -1
  115. package/dist/bridge/surface/methods/assurance/map.d.ts +1 -0
  116. package/dist/bridge/surface/methods/assurance/map.d.ts.map +1 -1
  117. package/dist/bridge/surface/methods/assurance/map.js +1 -0
  118. package/dist/bridge/surface/methods/assurance/map.js.map +1 -1
  119. package/dist/bridge/surface/methods/assurance/minimize.d.ts +1 -0
  120. package/dist/bridge/surface/methods/assurance/minimize.d.ts.map +1 -1
  121. package/dist/bridge/surface/methods/assurance/minimize.js +1 -0
  122. package/dist/bridge/surface/methods/assurance/minimize.js.map +1 -1
  123. package/dist/bridge/surface/methods/assurance/propose.d.ts +1 -0
  124. package/dist/bridge/surface/methods/assurance/propose.d.ts.map +1 -1
  125. package/dist/bridge/surface/methods/assurance/propose.js +1 -0
  126. package/dist/bridge/surface/methods/assurance/propose.js.map +1 -1
  127. package/dist/bridge/surface/methods/assurance/replaySession.d.ts +1 -0
  128. package/dist/bridge/surface/methods/assurance/replaySession.d.ts.map +1 -1
  129. package/dist/bridge/surface/methods/assurance/replaySession.js +1 -0
  130. package/dist/bridge/surface/methods/assurance/replaySession.js.map +1 -1
  131. package/dist/bridge/surface/methods/assurance/run.d.ts +1 -0
  132. package/dist/bridge/surface/methods/assurance/run.d.ts.map +1 -1
  133. package/dist/bridge/surface/methods/assurance/run.js +1 -0
  134. package/dist/bridge/surface/methods/assurance/run.js.map +1 -1
  135. package/dist/bridge/surface/methods/assurance/start.d.ts +1 -0
  136. package/dist/bridge/surface/methods/assurance/start.d.ts.map +1 -1
  137. package/dist/bridge/surface/methods/assurance/start.js +1 -0
  138. package/dist/bridge/surface/methods/assurance/start.js.map +1 -1
  139. package/dist/bridge/surface/methods/assurance/testRulesHosted.d.ts +1 -0
  140. package/dist/bridge/surface/methods/assurance/testRulesHosted.d.ts.map +1 -1
  141. package/dist/bridge/surface/methods/assurance/testRulesHosted.js +1 -0
  142. package/dist/bridge/surface/methods/assurance/testRulesHosted.js.map +1 -1
  143. package/dist/bridge/surface/methods/assurance/verify.d.ts +1 -0
  144. package/dist/bridge/surface/methods/assurance/verify.d.ts.map +1 -1
  145. package/dist/bridge/surface/methods/assurance/verify.js +1 -0
  146. package/dist/bridge/surface/methods/assurance/verify.js.map +1 -1
  147. package/dist/bridge/surface/methods/assurance/verifyCases.d.ts +1 -0
  148. package/dist/bridge/surface/methods/assurance/verifyCases.d.ts.map +1 -1
  149. package/dist/bridge/surface/methods/assurance/verifyCases.js +1 -0
  150. package/dist/bridge/surface/methods/assurance/verifyCases.js.map +1 -1
  151. package/dist/bridge/surface/methods/auth/actAsAdmin.d.ts +2 -1
  152. package/dist/bridge/surface/methods/auth/actAsAdmin.d.ts.map +1 -1
  153. package/dist/bridge/surface/methods/auth/actAsAdmin.js +1 -0
  154. package/dist/bridge/surface/methods/auth/actAsAdmin.js.map +1 -1
  155. package/dist/bridge/surface/methods/auth/actAsAnonymous.d.ts +2 -1
  156. package/dist/bridge/surface/methods/auth/actAsAnonymous.d.ts.map +1 -1
  157. package/dist/bridge/surface/methods/auth/actAsAnonymous.js +1 -0
  158. package/dist/bridge/surface/methods/auth/actAsAnonymous.js.map +1 -1
  159. package/dist/bridge/surface/methods/auth/createCustomToken.d.ts +1 -0
  160. package/dist/bridge/surface/methods/auth/createCustomToken.d.ts.map +1 -1
  161. package/dist/bridge/surface/methods/auth/createCustomToken.js +1 -0
  162. package/dist/bridge/surface/methods/auth/createCustomToken.js.map +1 -1
  163. package/dist/bridge/surface/methods/auth/createUser.d.ts +2 -1
  164. package/dist/bridge/surface/methods/auth/createUser.d.ts.map +1 -1
  165. package/dist/bridge/surface/methods/auth/createUser.js +2 -1
  166. package/dist/bridge/surface/methods/auth/createUser.js.map +1 -1
  167. package/dist/bridge/surface/methods/auth/deleteUser.d.ts +2 -1
  168. package/dist/bridge/surface/methods/auth/deleteUser.d.ts.map +1 -1
  169. package/dist/bridge/surface/methods/auth/deleteUser.js +2 -1
  170. package/dist/bridge/surface/methods/auth/deleteUser.js.map +1 -1
  171. package/dist/bridge/surface/methods/auth/getUser.d.ts +2 -1
  172. package/dist/bridge/surface/methods/auth/getUser.d.ts.map +1 -1
  173. package/dist/bridge/surface/methods/auth/getUser.js +2 -1
  174. package/dist/bridge/surface/methods/auth/getUser.js.map +1 -1
  175. package/dist/bridge/surface/methods/auth/getUserByEmail.d.ts +2 -1
  176. package/dist/bridge/surface/methods/auth/getUserByEmail.d.ts.map +1 -1
  177. package/dist/bridge/surface/methods/auth/getUserByEmail.js +2 -1
  178. package/dist/bridge/surface/methods/auth/getUserByEmail.js.map +1 -1
  179. package/dist/bridge/surface/methods/auth/impersonate.d.ts +2 -1
  180. package/dist/bridge/surface/methods/auth/impersonate.d.ts.map +1 -1
  181. package/dist/bridge/surface/methods/auth/impersonate.js +1 -0
  182. package/dist/bridge/surface/methods/auth/impersonate.js.map +1 -1
  183. package/dist/bridge/surface/methods/auth/importUsers.d.ts +2 -1
  184. package/dist/bridge/surface/methods/auth/importUsers.d.ts.map +1 -1
  185. package/dist/bridge/surface/methods/auth/importUsers.js +3 -2
  186. package/dist/bridge/surface/methods/auth/importUsers.js.map +1 -1
  187. package/dist/bridge/surface/methods/auth/listUsers.d.ts +2 -1
  188. package/dist/bridge/surface/methods/auth/listUsers.d.ts.map +1 -1
  189. package/dist/bridge/surface/methods/auth/listUsers.js +2 -1
  190. package/dist/bridge/surface/methods/auth/listUsers.js.map +1 -1
  191. package/dist/bridge/surface/methods/auth/sessions.d.ts +2 -1
  192. package/dist/bridge/surface/methods/auth/sessions.d.ts.map +1 -1
  193. package/dist/bridge/surface/methods/auth/sessions.js +1 -0
  194. package/dist/bridge/surface/methods/auth/sessions.js.map +1 -1
  195. package/dist/bridge/surface/methods/auth/setCustomUserClaims.d.ts +2 -1
  196. package/dist/bridge/surface/methods/auth/setCustomUserClaims.d.ts.map +1 -1
  197. package/dist/bridge/surface/methods/auth/setCustomUserClaims.js +2 -1
  198. package/dist/bridge/surface/methods/auth/setCustomUserClaims.js.map +1 -1
  199. package/dist/bridge/surface/methods/auth/signInAnonymously.d.ts +2 -1
  200. package/dist/bridge/surface/methods/auth/signInAnonymously.d.ts.map +1 -1
  201. package/dist/bridge/surface/methods/auth/signInAnonymously.js +1 -0
  202. package/dist/bridge/surface/methods/auth/signInAnonymously.js.map +1 -1
  203. package/dist/bridge/surface/methods/auth/signInWithCredential.d.ts +2 -1
  204. package/dist/bridge/surface/methods/auth/signInWithCredential.d.ts.map +1 -1
  205. package/dist/bridge/surface/methods/auth/signInWithCredential.js +1 -0
  206. package/dist/bridge/surface/methods/auth/signInWithCredential.js.map +1 -1
  207. package/dist/bridge/surface/methods/auth/signInWithCustomToken.d.ts +2 -1
  208. package/dist/bridge/surface/methods/auth/signInWithCustomToken.d.ts.map +1 -1
  209. package/dist/bridge/surface/methods/auth/signInWithCustomToken.js +1 -0
  210. package/dist/bridge/surface/methods/auth/signInWithCustomToken.js.map +1 -1
  211. package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.d.ts +2 -1
  212. package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.d.ts.map +1 -1
  213. package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.js +1 -0
  214. package/dist/bridge/surface/methods/auth/signInWithEmailAndPassword.js.map +1 -1
  215. package/dist/bridge/surface/methods/auth/signOut.d.ts +2 -1
  216. package/dist/bridge/surface/methods/auth/signOut.d.ts.map +1 -1
  217. package/dist/bridge/surface/methods/auth/signOut.js +1 -0
  218. package/dist/bridge/surface/methods/auth/signOut.js.map +1 -1
  219. package/dist/bridge/surface/methods/auth/takeAuthMail.d.ts +2 -1
  220. package/dist/bridge/surface/methods/auth/takeAuthMail.d.ts.map +1 -1
  221. package/dist/bridge/surface/methods/auth/takeAuthMail.js +1 -0
  222. package/dist/bridge/surface/methods/auth/takeAuthMail.js.map +1 -1
  223. package/dist/bridge/surface/methods/auth/updateUser.d.ts +2 -1
  224. package/dist/bridge/surface/methods/auth/updateUser.d.ts.map +1 -1
  225. package/dist/bridge/surface/methods/auth/updateUser.js +2 -1
  226. package/dist/bridge/surface/methods/auth/updateUser.js.map +1 -1
  227. package/dist/bridge/surface/methods/auth/useAppSession.d.ts +2 -1
  228. package/dist/bridge/surface/methods/auth/useAppSession.d.ts.map +1 -1
  229. package/dist/bridge/surface/methods/auth/useAppSession.js +1 -0
  230. package/dist/bridge/surface/methods/auth/useAppSession.js.map +1 -1
  231. package/dist/bridge/surface/methods/auth/whoami.d.ts +2 -1
  232. package/dist/bridge/surface/methods/auth/whoami.d.ts.map +1 -1
  233. package/dist/bridge/surface/methods/auth/whoami.js +1 -0
  234. package/dist/bridge/surface/methods/auth/whoami.js.map +1 -1
  235. package/dist/bridge/surface/methods/database/crawl.d.ts +2 -1
  236. package/dist/bridge/surface/methods/database/crawl.d.ts.map +1 -1
  237. package/dist/bridge/surface/methods/database/crawl.js +1 -0
  238. package/dist/bridge/surface/methods/database/crawl.js.map +1 -1
  239. package/dist/bridge/surface/methods/database/get.d.ts +2 -1
  240. package/dist/bridge/surface/methods/database/get.d.ts.map +1 -1
  241. package/dist/bridge/surface/methods/database/get.js +1 -0
  242. package/dist/bridge/surface/methods/database/get.js.map +1 -1
  243. package/dist/bridge/surface/methods/database/push.d.ts +2 -1
  244. package/dist/bridge/surface/methods/database/push.d.ts.map +1 -1
  245. package/dist/bridge/surface/methods/database/push.js +1 -0
  246. package/dist/bridge/surface/methods/database/push.js.map +1 -1
  247. package/dist/bridge/surface/methods/database/query.d.ts +2 -1
  248. package/dist/bridge/surface/methods/database/query.d.ts.map +1 -1
  249. package/dist/bridge/surface/methods/database/query.js +1 -0
  250. package/dist/bridge/surface/methods/database/query.js.map +1 -1
  251. package/dist/bridge/surface/methods/database/remove.d.ts +2 -1
  252. package/dist/bridge/surface/methods/database/remove.d.ts.map +1 -1
  253. package/dist/bridge/surface/methods/database/remove.js +1 -0
  254. package/dist/bridge/surface/methods/database/remove.js.map +1 -1
  255. package/dist/bridge/surface/methods/database/set.d.ts +2 -1
  256. package/dist/bridge/surface/methods/database/set.d.ts.map +1 -1
  257. package/dist/bridge/surface/methods/database/set.js +1 -0
  258. package/dist/bridge/surface/methods/database/set.js.map +1 -1
  259. package/dist/bridge/surface/methods/database/update.d.ts +2 -1
  260. package/dist/bridge/surface/methods/database/update.d.ts.map +1 -1
  261. package/dist/bridge/surface/methods/database/update.js +1 -0
  262. package/dist/bridge/surface/methods/database/update.js.map +1 -1
  263. package/dist/bridge/surface/methods/firestore/addDoc.d.ts +2 -1
  264. package/dist/bridge/surface/methods/firestore/addDoc.d.ts.map +1 -1
  265. package/dist/bridge/surface/methods/firestore/addDoc.js +2 -1
  266. package/dist/bridge/surface/methods/firestore/addDoc.js.map +1 -1
  267. package/dist/bridge/surface/methods/firestore/deleteDoc.d.ts +2 -1
  268. package/dist/bridge/surface/methods/firestore/deleteDoc.d.ts.map +1 -1
  269. package/dist/bridge/surface/methods/firestore/deleteDoc.js +2 -1
  270. package/dist/bridge/surface/methods/firestore/deleteDoc.js.map +1 -1
  271. package/dist/bridge/surface/methods/firestore/discoverPaths.d.ts +2 -1
  272. package/dist/bridge/surface/methods/firestore/discoverPaths.d.ts.map +1 -1
  273. package/dist/bridge/surface/methods/firestore/discoverPaths.js +1 -0
  274. package/dist/bridge/surface/methods/firestore/discoverPaths.js.map +1 -1
  275. package/dist/bridge/surface/methods/firestore/extractIndexes.d.ts +7 -6
  276. package/dist/bridge/surface/methods/firestore/extractIndexes.d.ts.map +1 -1
  277. package/dist/bridge/surface/methods/firestore/extractIndexes.js +1 -0
  278. package/dist/bridge/surface/methods/firestore/extractIndexes.js.map +1 -1
  279. package/dist/bridge/surface/methods/firestore/findCollectionGroup.d.ts +2 -1
  280. package/dist/bridge/surface/methods/firestore/findCollectionGroup.d.ts.map +1 -1
  281. package/dist/bridge/surface/methods/firestore/findCollectionGroup.js +1 -0
  282. package/dist/bridge/surface/methods/firestore/findCollectionGroup.js.map +1 -1
  283. package/dist/bridge/surface/methods/firestore/getAggregateFromServer.d.ts +6 -5
  284. package/dist/bridge/surface/methods/firestore/getAggregateFromServer.d.ts.map +1 -1
  285. package/dist/bridge/surface/methods/firestore/getAggregateFromServer.js +1 -0
  286. package/dist/bridge/surface/methods/firestore/getAggregateFromServer.js.map +1 -1
  287. package/dist/bridge/surface/methods/firestore/getCountFromServer.d.ts +6 -5
  288. package/dist/bridge/surface/methods/firestore/getCountFromServer.d.ts.map +1 -1
  289. package/dist/bridge/surface/methods/firestore/getCountFromServer.js +1 -0
  290. package/dist/bridge/surface/methods/firestore/getCountFromServer.js.map +1 -1
  291. package/dist/bridge/surface/methods/firestore/getDoc.d.ts +2 -1
  292. package/dist/bridge/surface/methods/firestore/getDoc.d.ts.map +1 -1
  293. package/dist/bridge/surface/methods/firestore/getDoc.js +2 -1
  294. package/dist/bridge/surface/methods/firestore/getDoc.js.map +1 -1
  295. package/dist/bridge/surface/methods/firestore/getDocs.d.ts +6 -5
  296. package/dist/bridge/surface/methods/firestore/getDocs.d.ts.map +1 -1
  297. package/dist/bridge/surface/methods/firestore/getDocs.js +2 -1
  298. package/dist/bridge/surface/methods/firestore/getDocs.js.map +1 -1
  299. package/dist/bridge/surface/methods/firestore/setDoc.d.ts +2 -1
  300. package/dist/bridge/surface/methods/firestore/setDoc.d.ts.map +1 -1
  301. package/dist/bridge/surface/methods/firestore/setDoc.js +2 -1
  302. package/dist/bridge/surface/methods/firestore/setDoc.js.map +1 -1
  303. package/dist/bridge/surface/methods/firestore/updateDoc.d.ts +2 -1
  304. package/dist/bridge/surface/methods/firestore/updateDoc.d.ts.map +1 -1
  305. package/dist/bridge/surface/methods/firestore/updateDoc.js +2 -1
  306. package/dist/bridge/surface/methods/firestore/updateDoc.js.map +1 -1
  307. package/dist/bridge/surface/methods/firestore/writeBatch.d.ts +2 -1
  308. package/dist/bridge/surface/methods/firestore/writeBatch.d.ts.map +1 -1
  309. package/dist/bridge/surface/methods/firestore/writeBatch.js +2 -1
  310. package/dist/bridge/surface/methods/firestore/writeBatch.js.map +1 -1
  311. package/dist/bridge/surface/methods/firestore/writeIndexes.d.ts +1 -0
  312. package/dist/bridge/surface/methods/firestore/writeIndexes.d.ts.map +1 -1
  313. package/dist/bridge/surface/methods/firestore/writeIndexes.js +1 -0
  314. package/dist/bridge/surface/methods/firestore/writeIndexes.js.map +1 -1
  315. package/dist/bridge/surface/methods/functions/executions.d.ts +3 -2
  316. package/dist/bridge/surface/methods/functions/executions.d.ts.map +1 -1
  317. package/dist/bridge/surface/methods/functions/executions.js +2 -1
  318. package/dist/bridge/surface/methods/functions/executions.js.map +1 -1
  319. package/dist/bridge/surface/methods/functions/fire.d.ts +1 -0
  320. package/dist/bridge/surface/methods/functions/fire.d.ts.map +1 -1
  321. package/dist/bridge/surface/methods/functions/fire.js +6 -5
  322. package/dist/bridge/surface/methods/functions/fire.js.map +1 -1
  323. package/dist/bridge/surface/methods/functions/listTriggers.d.ts +2 -1
  324. package/dist/bridge/surface/methods/functions/listTriggers.d.ts.map +1 -1
  325. package/dist/bridge/surface/methods/functions/listTriggers.js +1 -0
  326. package/dist/bridge/surface/methods/functions/listTriggers.js.map +1 -1
  327. package/dist/bridge/surface/methods/messaging/deliveries.d.ts +2 -1
  328. package/dist/bridge/surface/methods/messaging/deliveries.d.ts.map +1 -1
  329. package/dist/bridge/surface/methods/messaging/deliveries.js +1 -0
  330. package/dist/bridge/surface/methods/messaging/deliveries.js.map +1 -1
  331. package/dist/bridge/surface/methods/messaging/send.d.ts +2 -1
  332. package/dist/bridge/surface/methods/messaging/send.d.ts.map +1 -1
  333. package/dist/bridge/surface/methods/messaging/send.js +2 -1
  334. package/dist/bridge/surface/methods/messaging/send.js.map +1 -1
  335. package/dist/bridge/surface/methods/messaging/subscribeToTopic.d.ts +2 -1
  336. package/dist/bridge/surface/methods/messaging/subscribeToTopic.d.ts.map +1 -1
  337. package/dist/bridge/surface/methods/messaging/subscribeToTopic.js +1 -0
  338. package/dist/bridge/surface/methods/messaging/subscribeToTopic.js.map +1 -1
  339. package/dist/bridge/surface/methods/messaging/tokens.d.ts +2 -1
  340. package/dist/bridge/surface/methods/messaging/tokens.d.ts.map +1 -1
  341. package/dist/bridge/surface/methods/messaging/tokens.js +1 -0
  342. package/dist/bridge/surface/methods/messaging/tokens.js.map +1 -1
  343. package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.d.ts +2 -1
  344. package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.d.ts.map +1 -1
  345. package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.js +1 -0
  346. package/dist/bridge/surface/methods/messaging/unsubscribeFromTopic.js.map +1 -1
  347. package/dist/bridge/surface/methods/registry.d.ts.map +1 -1
  348. package/dist/bridge/surface/methods/registry.js +2 -8
  349. package/dist/bridge/surface/methods/registry.js.map +1 -1
  350. package/dist/bridge/surface/methods/rules/explainDenial.d.ts +1 -0
  351. package/dist/bridge/surface/methods/rules/explainDenial.d.ts.map +1 -1
  352. package/dist/bridge/surface/methods/rules/explainDenial.js +1 -0
  353. package/dist/bridge/surface/methods/rules/explainDenial.js.map +1 -1
  354. package/dist/bridge/surface/methods/rules/getStdlib.d.ts +1 -0
  355. package/dist/bridge/surface/methods/rules/getStdlib.d.ts.map +1 -1
  356. package/dist/bridge/surface/methods/rules/getStdlib.js +1 -0
  357. package/dist/bridge/surface/methods/rules/getStdlib.js.map +1 -1
  358. package/dist/bridge/surface/methods/rules/lint.d.ts +1 -0
  359. package/dist/bridge/surface/methods/rules/lint.d.ts.map +1 -1
  360. package/dist/bridge/surface/methods/rules/lint.js +1 -0
  361. package/dist/bridge/surface/methods/rules/lint.js.map +1 -1
  362. package/dist/bridge/surface/methods/rules/listStdlib.d.ts +1 -0
  363. package/dist/bridge/surface/methods/rules/listStdlib.d.ts.map +1 -1
  364. package/dist/bridge/surface/methods/rules/listStdlib.js +1 -0
  365. package/dist/bridge/surface/methods/rules/listStdlib.js.map +1 -1
  366. package/dist/bridge/surface/methods/rules/set.d.ts +1 -0
  367. package/dist/bridge/surface/methods/rules/set.d.ts.map +1 -1
  368. package/dist/bridge/surface/methods/rules/set.js +1 -0
  369. package/dist/bridge/surface/methods/rules/set.js.map +1 -1
  370. package/dist/bridge/surface/methods/rules/simulate.d.ts +1 -0
  371. package/dist/bridge/surface/methods/rules/simulate.d.ts.map +1 -1
  372. package/dist/bridge/surface/methods/rules/simulate.js +1 -0
  373. package/dist/bridge/surface/methods/rules/simulate.js.map +1 -1
  374. package/dist/bridge/surface/methods/sandbox/activity.d.ts +2 -1
  375. package/dist/bridge/surface/methods/sandbox/activity.d.ts.map +1 -1
  376. package/dist/bridge/surface/methods/sandbox/activity.js +2 -1
  377. package/dist/bridge/surface/methods/sandbox/activity.js.map +1 -1
  378. package/dist/bridge/surface/methods/sandbox/advanceClock.d.ts +2 -1
  379. package/dist/bridge/surface/methods/sandbox/advanceClock.d.ts.map +1 -1
  380. package/dist/bridge/surface/methods/sandbox/advanceClock.js +1 -0
  381. package/dist/bridge/surface/methods/sandbox/advanceClock.js.map +1 -1
  382. package/dist/bridge/surface/methods/sandbox/apply.d.ts +1 -0
  383. package/dist/bridge/surface/methods/sandbox/apply.d.ts.map +1 -1
  384. package/dist/bridge/surface/methods/sandbox/apply.js +1 -0
  385. package/dist/bridge/surface/methods/sandbox/apply.js.map +1 -1
  386. package/dist/bridge/surface/methods/sandbox/checkpoint.d.ts +1 -0
  387. package/dist/bridge/surface/methods/sandbox/checkpoint.d.ts.map +1 -1
  388. package/dist/bridge/surface/methods/sandbox/checkpoint.js +1 -0
  389. package/dist/bridge/surface/methods/sandbox/checkpoint.js.map +1 -1
  390. package/dist/bridge/surface/methods/sandbox/deleteCapture.d.ts +1 -0
  391. package/dist/bridge/surface/methods/sandbox/deleteCapture.d.ts.map +1 -1
  392. package/dist/bridge/surface/methods/sandbox/deleteCapture.js +1 -1
  393. package/dist/bridge/surface/methods/sandbox/deleteCapture.js.map +1 -1
  394. package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.d.ts +1 -0
  395. package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.d.ts.map +1 -1
  396. package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.js +1 -0
  397. package/dist/bridge/surface/methods/sandbox/deleteCheckpoint.js.map +1 -1
  398. package/dist/bridge/surface/methods/sandbox/diff.d.ts +1 -0
  399. package/dist/bridge/surface/methods/sandbox/diff.d.ts.map +1 -1
  400. package/dist/bridge/surface/methods/sandbox/diff.js +1 -0
  401. package/dist/bridge/surface/methods/sandbox/diff.js.map +1 -1
  402. package/dist/bridge/surface/methods/sandbox/discard.d.ts +1 -0
  403. package/dist/bridge/surface/methods/sandbox/discard.d.ts.map +1 -1
  404. package/dist/bridge/surface/methods/sandbox/discard.js +1 -0
  405. package/dist/bridge/surface/methods/sandbox/discard.js.map +1 -1
  406. package/dist/bridge/surface/methods/sandbox/events.d.ts +2 -1
  407. package/dist/bridge/surface/methods/sandbox/events.d.ts.map +1 -1
  408. package/dist/bridge/surface/methods/sandbox/events.js +2 -1
  409. package/dist/bridge/surface/methods/sandbox/events.js.map +1 -1
  410. package/dist/bridge/surface/methods/sandbox/exportFixture.d.ts +1 -0
  411. package/dist/bridge/surface/methods/sandbox/exportFixture.d.ts.map +1 -1
  412. package/dist/bridge/surface/methods/sandbox/exportFixture.js +1 -0
  413. package/dist/bridge/surface/methods/sandbox/exportFixture.js.map +1 -1
  414. package/dist/bridge/surface/methods/sandbox/fork.d.ts +1 -0
  415. package/dist/bridge/surface/methods/sandbox/fork.d.ts.map +1 -1
  416. package/dist/bridge/surface/methods/sandbox/fork.js +1 -0
  417. package/dist/bridge/surface/methods/sandbox/fork.js.map +1 -1
  418. package/dist/bridge/surface/methods/sandbox/inspect.d.ts +2 -1
  419. package/dist/bridge/surface/methods/sandbox/inspect.d.ts.map +1 -1
  420. package/dist/bridge/surface/methods/sandbox/inspect.js +2 -1
  421. package/dist/bridge/surface/methods/sandbox/inspect.js.map +1 -1
  422. package/dist/bridge/surface/methods/sandbox/listBranches.d.ts +1 -0
  423. package/dist/bridge/surface/methods/sandbox/listBranches.d.ts.map +1 -1
  424. package/dist/bridge/surface/methods/sandbox/listBranches.js +1 -0
  425. package/dist/bridge/surface/methods/sandbox/listBranches.js.map +1 -1
  426. package/dist/bridge/surface/methods/sandbox/listCaptures.d.ts +1 -0
  427. package/dist/bridge/surface/methods/sandbox/listCaptures.d.ts.map +1 -1
  428. package/dist/bridge/surface/methods/sandbox/listCaptures.js +1 -1
  429. package/dist/bridge/surface/methods/sandbox/listCaptures.js.map +1 -1
  430. package/dist/bridge/surface/methods/sandbox/listCheckpoints.d.ts +1 -0
  431. package/dist/bridge/surface/methods/sandbox/listCheckpoints.d.ts.map +1 -1
  432. package/dist/bridge/surface/methods/sandbox/listCheckpoints.js +1 -0
  433. package/dist/bridge/surface/methods/sandbox/listCheckpoints.js.map +1 -1
  434. package/dist/bridge/surface/methods/sandbox/listeners.d.ts +2 -1
  435. package/dist/bridge/surface/methods/sandbox/listeners.d.ts.map +1 -1
  436. package/dist/bridge/surface/methods/sandbox/listeners.js +1 -0
  437. package/dist/bridge/surface/methods/sandbox/listeners.js.map +1 -1
  438. package/dist/bridge/surface/methods/sandbox/openCapture.d.ts +1 -0
  439. package/dist/bridge/surface/methods/sandbox/openCapture.d.ts.map +1 -1
  440. package/dist/bridge/surface/methods/sandbox/openCapture.js +1 -1
  441. package/dist/bridge/surface/methods/sandbox/openCapture.js.map +1 -1
  442. package/dist/bridge/surface/methods/sandbox/promote.d.ts +1 -0
  443. package/dist/bridge/surface/methods/sandbox/promote.d.ts.map +1 -1
  444. package/dist/bridge/surface/methods/sandbox/promote.js +1 -0
  445. package/dist/bridge/surface/methods/sandbox/promote.js.map +1 -1
  446. package/dist/bridge/surface/methods/sandbox/renameCapture.d.ts +3 -2
  447. package/dist/bridge/surface/methods/sandbox/renameCapture.d.ts.map +1 -1
  448. package/dist/bridge/surface/methods/sandbox/renameCapture.js +1 -1
  449. package/dist/bridge/surface/methods/sandbox/renameCapture.js.map +1 -1
  450. package/dist/bridge/surface/methods/sandbox/reset.d.ts +3 -2
  451. package/dist/bridge/surface/methods/sandbox/reset.d.ts.map +1 -1
  452. package/dist/bridge/surface/methods/sandbox/reset.js +1 -0
  453. package/dist/bridge/surface/methods/sandbox/reset.js.map +1 -1
  454. package/dist/bridge/surface/methods/sandbox/resetClock.d.ts +2 -1
  455. package/dist/bridge/surface/methods/sandbox/resetClock.d.ts.map +1 -1
  456. package/dist/bridge/surface/methods/sandbox/resetClock.js +1 -0
  457. package/dist/bridge/surface/methods/sandbox/resetClock.js.map +1 -1
  458. package/dist/bridge/surface/methods/sandbox/restore.d.ts +1 -0
  459. package/dist/bridge/surface/methods/sandbox/restore.d.ts.map +1 -1
  460. package/dist/bridge/surface/methods/sandbox/restore.js +1 -0
  461. package/dist/bridge/surface/methods/sandbox/restore.js.map +1 -1
  462. package/dist/bridge/surface/methods/sandbox/saveCapture.d.ts +1 -0
  463. package/dist/bridge/surface/methods/sandbox/saveCapture.d.ts.map +1 -1
  464. package/dist/bridge/surface/methods/sandbox/saveCapture.js +1 -1
  465. package/dist/bridge/surface/methods/sandbox/saveCapture.js.map +1 -1
  466. package/dist/bridge/surface/methods/sandbox/seed.d.ts +2 -1
  467. package/dist/bridge/surface/methods/sandbox/seed.d.ts.map +1 -1
  468. package/dist/bridge/surface/methods/sandbox/seed.js +3 -2
  469. package/dist/bridge/surface/methods/sandbox/seed.js.map +1 -1
  470. package/dist/bridge/surface/methods/sandbox/seedFromFixture.d.ts +1 -0
  471. package/dist/bridge/surface/methods/sandbox/seedFromFixture.d.ts.map +1 -1
  472. package/dist/bridge/surface/methods/sandbox/seedFromFixture.js +1 -0
  473. package/dist/bridge/surface/methods/sandbox/seedFromFixture.js.map +1 -1
  474. package/dist/bridge/surface/methods/sandbox/setClock.d.ts +2 -1
  475. package/dist/bridge/surface/methods/sandbox/setClock.d.ts.map +1 -1
  476. package/dist/bridge/surface/methods/sandbox/setClock.js +1 -0
  477. package/dist/bridge/surface/methods/sandbox/setClock.js.map +1 -1
  478. package/dist/bridge/surface/methods/sandbox-registry.d.ts +6 -0
  479. package/dist/bridge/surface/methods/sandbox-registry.d.ts.map +1 -0
  480. package/dist/bridge/surface/methods/sandbox-registry.js +21 -0
  481. package/dist/bridge/surface/methods/sandbox-registry.js.map +1 -0
  482. package/dist/bridge/surface/methods/storage/deleteObject.d.ts +2 -1
  483. package/dist/bridge/surface/methods/storage/deleteObject.d.ts.map +1 -1
  484. package/dist/bridge/surface/methods/storage/deleteObject.js +1 -0
  485. package/dist/bridge/surface/methods/storage/deleteObject.js.map +1 -1
  486. package/dist/bridge/surface/methods/storage/getBytes.d.ts +2 -1
  487. package/dist/bridge/surface/methods/storage/getBytes.d.ts.map +1 -1
  488. package/dist/bridge/surface/methods/storage/getBytes.js +1 -0
  489. package/dist/bridge/surface/methods/storage/getBytes.js.map +1 -1
  490. package/dist/bridge/surface/methods/storage/getDownloadURL.d.ts +2 -1
  491. package/dist/bridge/surface/methods/storage/getDownloadURL.d.ts.map +1 -1
  492. package/dist/bridge/surface/methods/storage/getDownloadURL.js +1 -0
  493. package/dist/bridge/surface/methods/storage/getDownloadURL.js.map +1 -1
  494. package/dist/bridge/surface/methods/storage/getMetadata.d.ts +2 -1
  495. package/dist/bridge/surface/methods/storage/getMetadata.d.ts.map +1 -1
  496. package/dist/bridge/surface/methods/storage/getMetadata.js +1 -0
  497. package/dist/bridge/surface/methods/storage/getMetadata.js.map +1 -1
  498. package/dist/bridge/surface/methods/storage/listAll.d.ts +2 -1
  499. package/dist/bridge/surface/methods/storage/listAll.d.ts.map +1 -1
  500. package/dist/bridge/surface/methods/storage/listAll.js +1 -0
  501. package/dist/bridge/surface/methods/storage/listAll.js.map +1 -1
  502. package/dist/bridge/surface/methods/storage/provision.d.ts +1 -0
  503. package/dist/bridge/surface/methods/storage/provision.d.ts.map +1 -1
  504. package/dist/bridge/surface/methods/storage/provision.js +1 -0
  505. package/dist/bridge/surface/methods/storage/provision.js.map +1 -1
  506. package/dist/bridge/surface/methods/storage/setCrossServiceIam.d.ts +2 -1
  507. package/dist/bridge/surface/methods/storage/setCrossServiceIam.d.ts.map +1 -1
  508. package/dist/bridge/surface/methods/storage/setCrossServiceIam.js +1 -0
  509. package/dist/bridge/surface/methods/storage/setCrossServiceIam.js.map +1 -1
  510. package/dist/bridge/surface/methods/storage/status.d.ts +1 -0
  511. package/dist/bridge/surface/methods/storage/status.d.ts.map +1 -1
  512. package/dist/bridge/surface/methods/storage/status.js +1 -0
  513. package/dist/bridge/surface/methods/storage/status.js.map +1 -1
  514. package/dist/bridge/surface/methods/storage/updateMetadata.d.ts +6 -5
  515. package/dist/bridge/surface/methods/storage/updateMetadata.d.ts.map +1 -1
  516. package/dist/bridge/surface/methods/storage/updateMetadata.js +1 -0
  517. package/dist/bridge/surface/methods/storage/updateMetadata.js.map +1 -1
  518. package/dist/bridge/surface/methods/storage/uploadBytes.d.ts +1 -0
  519. package/dist/bridge/surface/methods/storage/uploadBytes.d.ts.map +1 -1
  520. package/dist/bridge/surface/methods/storage/uploadBytes.js +1 -0
  521. package/dist/bridge/surface/methods/storage/uploadBytes.js.map +1 -1
  522. package/dist/bridge/surface/render/discriminator-schemas.d.ts +2 -2
  523. package/dist/bridge/surface/request-instant.d.ts +2 -2
  524. package/dist/bridge/surface/request-instant.d.ts.map +1 -1
  525. package/dist/bridge/surface/request-instant.js.map +1 -1
  526. package/dist/bridge/surface/rules-engines/database.d.ts.map +1 -1
  527. package/dist/bridge/surface/rules-engines/database.js +1 -2
  528. package/dist/bridge/surface/rules-engines/database.js.map +1 -1
  529. package/dist/bridge/surface/rules-engines/storage-request-resource.d.ts +38 -0
  530. package/dist/bridge/surface/rules-engines/storage-request-resource.d.ts.map +1 -0
  531. package/dist/bridge/surface/rules-engines/storage-request-resource.js +246 -0
  532. package/dist/bridge/surface/rules-engines/storage-request-resource.js.map +1 -0
  533. package/dist/bridge/surface/rules-engines/storage.d.ts.map +1 -1
  534. package/dist/bridge/surface/rules-engines/storage.js +44 -65
  535. package/dist/bridge/surface/rules-engines/storage.js.map +1 -1
  536. package/dist/bridge/surface/sandbox-context.d.ts +25 -0
  537. package/dist/bridge/surface/sandbox-context.d.ts.map +1 -0
  538. package/dist/bridge/surface/sandbox-context.js +29 -0
  539. package/dist/bridge/surface/sandbox-context.js.map +1 -0
  540. package/dist/bridge/surface/service-handles.d.ts +6 -6
  541. package/dist/bridge/surface/service-handles.d.ts.map +1 -1
  542. package/dist/bridge/surface/service-handles.js +7 -4
  543. package/dist/bridge/surface/service-handles.js.map +1 -1
  544. package/dist/bridge/surface/sign-in.d.ts +2 -2
  545. package/dist/bridge/surface/sign-in.d.ts.map +1 -1
  546. package/dist/bridge/surface/sign-in.js +1 -1
  547. package/dist/bridge/surface/sign-in.js.map +1 -1
  548. package/dist/bridge/surface/storage-rules.d.ts +2 -9
  549. package/dist/bridge/surface/storage-rules.d.ts.map +1 -1
  550. package/dist/bridge/surface/storage-rules.js +0 -10
  551. package/dist/bridge/surface/storage-rules.js.map +1 -1
  552. package/dist/bridge/surface/stored-identity.d.ts +3 -3
  553. package/dist/bridge/surface/stored-identity.d.ts.map +1 -1
  554. package/dist/bridge/surface/stored-identity.js.map +1 -1
  555. package/dist/bridge/surface/types.d.ts +29 -8
  556. package/dist/bridge/surface/types.d.ts.map +1 -1
  557. package/dist/cli/firebase-json.d.ts +35 -7
  558. package/dist/cli/firebase-json.d.ts.map +1 -1
  559. package/dist/cli/firebase-json.js +13 -0
  560. package/dist/cli/firebase-json.js.map +1 -1
  561. package/dist/cli/firestore-indexes.d.ts.map +1 -1
  562. package/dist/cli/firestore-indexes.js +2 -1
  563. package/dist/cli/firestore-indexes.js.map +1 -1
  564. package/dist/cli/index.d.ts +6 -0
  565. package/dist/cli/index.d.ts.map +1 -1
  566. package/dist/cli/index.js +44 -11
  567. package/dist/cli/index.js.map +1 -1
  568. package/dist/cli/public-dir-hint.d.ts +8 -0
  569. package/dist/cli/public-dir-hint.d.ts.map +1 -0
  570. package/dist/cli/public-dir-hint.js +30 -0
  571. package/dist/cli/public-dir-hint.js.map +1 -0
  572. package/dist/cli/run.d.ts +8 -2
  573. package/dist/cli/run.d.ts.map +1 -1
  574. package/dist/cli/run.js +28 -5
  575. package/dist/cli/run.js.map +1 -1
  576. package/dist/cli/sandbox-runner.d.ts.map +1 -1
  577. package/dist/cli/sandbox-runner.js +11 -2
  578. package/dist/cli/sandbox-runner.js.map +1 -1
  579. package/dist/cli/serve-diagnostics.d.ts.map +1 -1
  580. package/dist/cli/serve-diagnostics.js +11 -1
  581. package/dist/cli/serve-diagnostics.js.map +1 -1
  582. package/dist/cli/serve.d.ts.map +1 -1
  583. package/dist/cli/serve.js +25 -24
  584. package/dist/cli/serve.js.map +1 -1
  585. package/dist/cli/snapshot.d.ts.map +1 -1
  586. package/dist/cli/snapshot.js +13 -5
  587. package/dist/cli/snapshot.js.map +1 -1
  588. package/dist/cli/surface-method-runner.js +1 -1
  589. package/dist/cli/surface-method-runner.js.map +1 -1
  590. package/dist/cli/verify.d.ts.map +1 -1
  591. package/dist/cli/verify.js +10 -1
  592. package/dist/cli/verify.js.map +1 -1
  593. package/dist/conformance/.generated/can-i-use-browser.d.ts.map +1 -1
  594. package/dist/conformance/.generated/can-i-use-browser.js +19 -3
  595. package/dist/conformance/.generated/can-i-use-browser.js.map +1 -1
  596. package/dist/conformance/.generated/can-i-use.d.ts.map +1 -1
  597. package/dist/conformance/.generated/can-i-use.js +1 -1
  598. package/dist/conformance/.generated/can-i-use.js.map +1 -1
  599. package/dist/conformance/.generated/conformance-docs.d.ts.map +1 -1
  600. package/dist/conformance/.generated/conformance-docs.js +1 -1
  601. package/dist/conformance/.generated/conformance-docs.js.map +1 -1
  602. package/dist/conformance/.generated/served-availability.d.ts.map +1 -1
  603. package/dist/conformance/.generated/served-availability.js +1 -1
  604. package/dist/conformance/.generated/served-availability.js.map +1 -1
  605. package/dist/discover/merge.d.ts.map +1 -1
  606. package/dist/discover/merge.js +11 -3
  607. package/dist/discover/merge.js.map +1 -1
  608. package/dist/functions/child-protocol.d.ts +43 -0
  609. package/dist/functions/child-protocol.d.ts.map +1 -0
  610. package/dist/functions/child-protocol.js +14 -0
  611. package/dist/functions/child-protocol.js.map +1 -0
  612. package/dist/functions/child.d.ts +2 -0
  613. package/dist/functions/child.d.ts.map +1 -0
  614. package/dist/functions/child.js +92 -0
  615. package/dist/functions/child.js.map +1 -0
  616. package/dist/{functions-rtdb → functions}/development-runtime.d.ts +5 -4
  617. package/dist/functions/development-runtime.d.ts.map +1 -0
  618. package/dist/{functions-rtdb → functions}/development-runtime.js +2 -2
  619. package/dist/functions/development-runtime.js.map +1 -0
  620. package/dist/functions/endpoints.d.ts +39 -0
  621. package/dist/functions/endpoints.d.ts.map +1 -0
  622. package/dist/functions/endpoints.js +48 -0
  623. package/dist/functions/endpoints.js.map +1 -0
  624. package/dist/functions/events.d.ts.map +1 -0
  625. package/dist/functions/events.js.map +1 -0
  626. package/dist/functions/execution-log.d.ts.map +1 -0
  627. package/dist/functions/execution-log.js.map +1 -0
  628. package/dist/functions/module-loader.d.ts.map +1 -0
  629. package/dist/functions/module-loader.js.map +1 -0
  630. package/dist/functions/project.d.ts +7 -0
  631. package/dist/functions/project.d.ts.map +1 -0
  632. package/dist/{functions-rtdb → functions}/project.js +1 -1
  633. package/dist/functions/project.js.map +1 -0
  634. package/dist/functions/rtdb/child-runtime.d.ts +23 -0
  635. package/dist/functions/rtdb/child-runtime.d.ts.map +1 -0
  636. package/dist/functions/rtdb/child-runtime.js +102 -0
  637. package/dist/functions/rtdb/child-runtime.js.map +1 -0
  638. package/dist/functions/rtdb/delivery.d.ts.map +1 -0
  639. package/dist/functions/rtdb/delivery.js.map +1 -0
  640. package/dist/{functions-rtdb → functions/rtdb}/discovery.d.ts +3 -20
  641. package/dist/functions/rtdb/discovery.d.ts.map +1 -0
  642. package/dist/{functions-rtdb → functions/rtdb}/discovery.js +6 -21
  643. package/dist/functions/rtdb/discovery.js.map +1 -0
  644. package/dist/functions/rtdb/event.d.ts.map +1 -0
  645. package/dist/functions/rtdb/event.js.map +1 -0
  646. package/dist/functions/rtdb/execution.d.ts.map +1 -0
  647. package/dist/functions/rtdb/execution.js.map +1 -0
  648. package/dist/functions/rtdb/in-memory-delivery.d.ts.map +1 -0
  649. package/dist/functions/rtdb/in-memory-delivery.js.map +1 -0
  650. package/dist/functions/rtdb/projection.d.ts.map +1 -0
  651. package/dist/functions/rtdb/projection.js.map +1 -0
  652. package/dist/functions/rtdb/reference-pattern.d.ts.map +1 -0
  653. package/dist/functions/rtdb/reference-pattern.js.map +1 -0
  654. package/dist/{functions-rtdb → functions/rtdb}/remote-delivery.d.ts +1 -1
  655. package/dist/functions/rtdb/remote-delivery.d.ts.map +1 -0
  656. package/dist/functions/rtdb/remote-delivery.js.map +1 -0
  657. package/dist/{functions-rtdb/child.d.ts → functions/spawn.d.ts} +16 -38
  658. package/dist/functions/spawn.d.ts.map +1 -0
  659. package/dist/functions/spawn.js +166 -0
  660. package/dist/functions/spawn.js.map +1 -0
  661. package/dist/functions/unsupported.d.ts +23 -0
  662. package/dist/functions/unsupported.d.ts.map +1 -0
  663. package/dist/functions/unsupported.js +25 -0
  664. package/dist/functions/unsupported.js.map +1 -0
  665. package/dist/google-endpoints.d.ts +9 -2
  666. package/dist/google-endpoints.d.ts.map +1 -1
  667. package/dist/google-endpoints.js +72 -3
  668. package/dist/google-endpoints.js.map +1 -1
  669. package/dist/next/bridge-import-loader.d.ts +9 -0
  670. package/dist/next/bridge-import-loader.d.ts.map +1 -0
  671. package/dist/next/bridge-import-loader.js +45 -0
  672. package/dist/next/bridge-import-loader.js.map +1 -0
  673. package/dist/next/bridge-imports.d.ts +26 -0
  674. package/dist/next/bridge-imports.d.ts.map +1 -0
  675. package/dist/next/bridge-imports.js +90 -0
  676. package/dist/next/bridge-imports.js.map +1 -0
  677. package/dist/next/client-aliases.d.ts +13 -5
  678. package/dist/next/client-aliases.d.ts.map +1 -1
  679. package/dist/next/client-aliases.js +14 -27
  680. package/dist/next/client-aliases.js.map +1 -1
  681. package/dist/next/guard.d.ts +3 -2
  682. package/dist/next/guard.d.ts.map +1 -1
  683. package/dist/next/guard.js +28 -10
  684. package/dist/next/guard.js.map +1 -1
  685. package/dist/next/turbopack-config.d.ts +9 -0
  686. package/dist/next/turbopack-config.d.ts.map +1 -1
  687. package/dist/next/turbopack-config.js +21 -0
  688. package/dist/next/turbopack-config.js.map +1 -1
  689. package/dist/next/webpack-config.d.ts +9 -0
  690. package/dist/next/webpack-config.d.ts.map +1 -1
  691. package/dist/next/webpack-config.js +18 -0
  692. package/dist/next/webpack-config.js.map +1 -1
  693. package/dist/next/with-pyric.d.ts +1 -0
  694. package/dist/next/with-pyric.d.ts.map +1 -1
  695. package/dist/next/with-pyric.js +25 -0
  696. package/dist/next/with-pyric.js.map +1 -1
  697. package/dist/register/activation.d.ts +16 -0
  698. package/dist/register/activation.d.ts.map +1 -0
  699. package/dist/register/activation.js +22 -0
  700. package/dist/register/activation.js.map +1 -0
  701. package/dist/register/app-bridge-admin-app-check.d.ts.map +1 -1
  702. package/dist/register/app-bridge-admin-app-check.js +3 -1
  703. package/dist/register/app-bridge-admin-app-check.js.map +1 -1
  704. package/dist/register/child-process-guard.d.ts +43 -0
  705. package/dist/register/child-process-guard.d.ts.map +1 -0
  706. package/dist/register/child-process-guard.js +165 -0
  707. package/dist/register/child-process-guard.js.map +1 -0
  708. package/dist/register/client/bootstrap.js +6 -1
  709. package/dist/register/client/bootstrap.js.map +1 -1
  710. package/dist/register/connect-prototypes.d.ts +9 -0
  711. package/dist/register/connect-prototypes.d.ts.map +1 -1
  712. package/dist/register/connect-prototypes.js +11 -0
  713. package/dist/register/connect-prototypes.js.map +1 -1
  714. package/dist/register/hooks.d.ts +7 -1
  715. package/dist/register/hooks.d.ts.map +1 -1
  716. package/dist/register/hooks.js +44 -2
  717. package/dist/register/hooks.js.map +1 -1
  718. package/dist/register/index.d.ts.map +1 -1
  719. package/dist/register/index.js +93 -23
  720. package/dist/register/index.js.map +1 -1
  721. package/dist/register/mapping.d.ts +33 -0
  722. package/dist/register/mapping.d.ts.map +1 -1
  723. package/dist/register/mapping.js +45 -3
  724. package/dist/register/mapping.js.map +1 -1
  725. package/dist/register/net-guard.d.ts +17 -0
  726. package/dist/register/net-guard.d.ts.map +1 -1
  727. package/dist/register/net-guard.js +118 -41
  728. package/dist/register/net-guard.js.map +1 -1
  729. package/dist/register/package-identity.d.ts +16 -0
  730. package/dist/register/package-identity.d.ts.map +1 -0
  731. package/dist/register/package-identity.js +97 -0
  732. package/dist/register/package-identity.js.map +1 -0
  733. package/dist/register/swap-or-stop.d.ts +27 -0
  734. package/dist/register/swap-or-stop.d.ts.map +1 -0
  735. package/dist/register/swap-or-stop.js +170 -0
  736. package/dist/register/swap-or-stop.js.map +1 -0
  737. package/dist/register/worker-guard.d.ts +20 -0
  738. package/dist/register/worker-guard.d.ts.map +1 -0
  739. package/dist/register/worker-guard.js +77 -0
  740. package/dist/register/worker-guard.js.map +1 -0
  741. package/dist/remote/resolve-host.d.ts +9 -0
  742. package/dist/remote/resolve-host.d.ts.map +1 -1
  743. package/dist/remote/resolve-host.js +13 -2
  744. package/dist/remote/resolve-host.js.map +1 -1
  745. package/dist/serve/ai-diagnostics-relay.d.ts +4 -1
  746. package/dist/serve/ai-diagnostics-relay.d.ts.map +1 -1
  747. package/dist/serve/ai-diagnostics-relay.js +3 -0
  748. package/dist/serve/ai-diagnostics-relay.js.map +1 -1
  749. package/dist/serve/ai-proxy.d.ts +23 -1
  750. package/dist/serve/ai-proxy.d.ts.map +1 -1
  751. package/dist/serve/ai-proxy.js +70 -20
  752. package/dist/serve/ai-proxy.js.map +1 -1
  753. package/dist/serve/ai-terminal-blocks.d.ts +6 -4
  754. package/dist/serve/ai-terminal-blocks.d.ts.map +1 -1
  755. package/dist/serve/ai-terminal-blocks.js +7 -4
  756. package/dist/serve/ai-terminal-blocks.js.map +1 -1
  757. package/dist/serve/ai-terminal-text.d.ts +8 -0
  758. package/dist/serve/ai-terminal-text.d.ts.map +1 -1
  759. package/dist/serve/ai-terminal-text.js +10 -0
  760. package/dist/serve/ai-terminal-text.js.map +1 -1
  761. package/dist/serve/app-ports.d.ts +48 -0
  762. package/dist/serve/app-ports.d.ts.map +1 -0
  763. package/dist/serve/app-ports.js +82 -0
  764. package/dist/serve/app-ports.js.map +1 -0
  765. package/dist/serve/bridge-mount.d.ts +13 -0
  766. package/dist/serve/bridge-mount.d.ts.map +1 -1
  767. package/dist/serve/bridge-mount.js +28 -8
  768. package/dist/serve/bridge-mount.js.map +1 -1
  769. package/dist/serve/bundler.d.ts +6 -0
  770. package/dist/serve/bundler.d.ts.map +1 -1
  771. package/dist/serve/bundler.js +78 -26
  772. package/dist/serve/bundler.js.map +1 -1
  773. package/dist/serve/discovery.d.ts +17 -3
  774. package/dist/serve/discovery.d.ts.map +1 -1
  775. package/dist/serve/discovery.js +199 -63
  776. package/dist/serve/discovery.js.map +1 -1
  777. package/dist/serve/entries/ai.d.ts.map +1 -1
  778. package/dist/serve/entries/ai.js +28 -26
  779. package/dist/serve/entries/ai.js.map +1 -1
  780. package/dist/serve/entries/auth.d.ts.map +1 -1
  781. package/dist/serve/entries/auth.js +19 -1
  782. package/dist/serve/entries/auth.js.map +1 -1
  783. package/dist/serve/entries/firestore-surface.d.ts +1 -0
  784. package/dist/serve/entries/firestore-surface.d.ts.map +1 -1
  785. package/dist/serve/entries/firestore-surface.js +1 -0
  786. package/dist/serve/entries/firestore-surface.js.map +1 -1
  787. package/dist/serve/entries/init-payload.d.ts +9 -2
  788. package/dist/serve/entries/init-payload.d.ts.map +1 -1
  789. package/dist/serve/entries/init-payload.js +25 -5
  790. package/dist/serve/entries/init-payload.js.map +1 -1
  791. package/dist/serve/entries/moved-host.d.ts +18 -0
  792. package/dist/serve/entries/moved-host.d.ts.map +1 -0
  793. package/dist/serve/entries/moved-host.js +14 -0
  794. package/dist/serve/entries/moved-host.js.map +1 -0
  795. package/dist/serve/entries/runtime-origin.d.ts +6 -0
  796. package/dist/serve/entries/runtime-origin.d.ts.map +1 -1
  797. package/dist/serve/entries/runtime-origin.js.map +1 -1
  798. package/dist/serve/entries/unsupported/firestore.d.ts +0 -1
  799. package/dist/serve/entries/unsupported/firestore.d.ts.map +1 -1
  800. package/dist/serve/entries/unsupported/firestore.js +0 -1
  801. package/dist/serve/entries/unsupported/firestore.js.map +1 -1
  802. package/dist/serve/entries/worker-runtime.d.ts.map +1 -1
  803. package/dist/serve/entries/worker-runtime.js +19 -7
  804. package/dist/serve/entries/worker-runtime.js.map +1 -1
  805. package/dist/serve/firebase-module-swap.d.ts +19 -2
  806. package/dist/serve/firebase-module-swap.d.ts.map +1 -1
  807. package/dist/serve/firebase-module-swap.js +92 -16
  808. package/dist/serve/firebase-module-swap.js.map +1 -1
  809. package/dist/serve/gemini-proxy.d.ts +40 -0
  810. package/dist/serve/gemini-proxy.d.ts.map +1 -0
  811. package/dist/serve/gemini-proxy.js +105 -0
  812. package/dist/serve/gemini-proxy.js.map +1 -0
  813. package/dist/serve/hosted/runtime.d.ts.map +1 -1
  814. package/dist/serve/hosted/runtime.js +10 -3
  815. package/dist/serve/hosted/runtime.js.map +1 -1
  816. package/dist/serve/namespace.d.ts +16 -0
  817. package/dist/serve/namespace.d.ts.map +1 -1
  818. package/dist/serve/namespace.js +87 -27
  819. package/dist/serve/namespace.js.map +1 -1
  820. package/dist/serve/repro/compare.d.ts +2 -1
  821. package/dist/serve/repro/compare.d.ts.map +1 -1
  822. package/dist/serve/repro/compare.js +9 -1
  823. package/dist/serve/repro/compare.js.map +1 -1
  824. package/dist/serve/rules-fixture-check.d.ts.map +1 -1
  825. package/dist/serve/rules-fixture-check.js +22 -10
  826. package/dist/serve/rules-fixture-check.js.map +1 -1
  827. package/dist/serve/rules.d.ts +35 -9
  828. package/dist/serve/rules.d.ts.map +1 -1
  829. package/dist/serve/rules.js +72 -21
  830. package/dist/serve/rules.js.map +1 -1
  831. package/dist/serve/sandbox-session.d.ts +6 -0
  832. package/dist/serve/sandbox-session.d.ts.map +1 -1
  833. package/dist/serve/sandbox-session.js +11 -3
  834. package/dist/serve/sandbox-session.js.map +1 -1
  835. package/dist/serve/server.d.ts +10 -2
  836. package/dist/serve/server.d.ts.map +1 -1
  837. package/dist/serve/server.js +24 -4
  838. package/dist/serve/server.js.map +1 -1
  839. package/dist/serve/site-ui/_astro/{RulesCodeEditor.Cp_-FK3b.js → RulesCodeEditor.D-eQLCvu.js} +1 -1
  840. package/dist/serve/site-ui/_astro/app.BjQiEBOY.js +1 -0
  841. package/dist/serve/site-ui/_astro/app.C84Qr10v.js +151 -0
  842. package/dist/serve/site-ui/_astro/{chess-showcase.CVhCNUi_.js → chess-showcase.CsH1s4g7.js} +1 -1
  843. package/dist/serve/site-ui/_astro/{example-runtime.zC1l-Yka.js → example-runtime.CTp8mh7I.js} +1 -1
  844. package/dist/serve/site-ui/_astro/sandbox-controls.DI8MTU3L.js +1725 -0
  845. package/dist/serve/site-ui/_astro/{seed.B4vza_Bv.js → seed.BvtbLu-q.js} +1 -1
  846. package/dist/serve/site-ui/_astro/writes.D8gcuovU.js +1 -0
  847. package/dist/serve/site-ui/auth/index.html +1 -1
  848. package/dist/serve/site-ui/docs/ai-compat/index.html +66 -8
  849. package/dist/serve/site-ui/docs/ai-compat.md +73 -7
  850. package/dist/serve/site-ui/docs/app-check-compat/index.html +102 -26
  851. package/dist/serve/site-ui/docs/app-check-compat.md +107 -25
  852. package/dist/serve/site-ui/docs/auth-compat/index.html +33 -21
  853. package/dist/serve/site-ui/docs/auth-compat.md +35 -20
  854. package/dist/serve/site-ui/docs/build/ai-logic/index.html +29 -6
  855. package/dist/serve/site-ui/docs/build/ai-logic.md +30 -3
  856. package/dist/serve/site-ui/docs/conformance-scores/index.html +2 -2
  857. package/dist/serve/site-ui/docs/conformance-scores.md +2 -2
  858. package/dist/serve/site-ui/docs/database-compat/index.html +113 -49
  859. package/dist/serve/site-ui/docs/database-compat.md +118 -48
  860. package/dist/serve/site-ui/docs/firestore-compat/index.html +144 -37
  861. package/dist/serve/site-ui/docs/firestore-compat.md +149 -36
  862. package/dist/serve/site-ui/docs/firestore-swift-compat/index.html +1 -1
  863. package/dist/serve/site-ui/docs/firestore-swift-compat.md +1 -1
  864. package/dist/serve/site-ui/docs/functions-rtdb-compat/index.html +12 -12
  865. package/dist/serve/site-ui/docs/functions-rtdb-compat.md +12 -12
  866. package/dist/serve/site-ui/docs/get-started/how-the-swap-works/index.html +1 -1
  867. package/dist/serve/site-ui/docs/get-started/how-the-swap-works.md +1 -1
  868. package/dist/serve/site-ui/docs/get-started/node-host/index.html +1 -0
  869. package/dist/serve/site-ui/docs/get-started/node-host.md +2 -0
  870. package/dist/serve/site-ui/docs/index.json +55 -5
  871. package/dist/serve/site-ui/docs/messaging-compat/index.html +2 -2
  872. package/dist/serve/site-ui/docs/messaging-compat.md +2 -2
  873. package/dist/serve/site-ui/docs/pyric-ai-scripting-reference-api/index.html +3 -1
  874. package/dist/serve/site-ui/docs/pyric-ai-scripting-reference-api.md +2 -0
  875. package/dist/serve/site-ui/docs/pyric-app-check-reference-api/index.html +11 -3
  876. package/dist/serve/site-ui/docs/pyric-app-check-reference-api.md +13 -3
  877. package/dist/serve/site-ui/docs/pyric-cli-bridge-client-reference-api/index.html +1 -1
  878. package/dist/serve/site-ui/docs/pyric-cli-bridge-client-reference-api.md +1 -1
  879. package/dist/serve/site-ui/docs/pyric-cli-next-reference-api/index.html +1 -0
  880. package/dist/serve/site-ui/docs/pyric-cli-next-reference-api.md +1 -0
  881. package/dist/serve/site-ui/docs/pyric-cli-register-client-firestore-reference-api/index.html +1 -1
  882. package/dist/serve/site-ui/docs/pyric-cli-register-client-firestore-reference-api.md +1 -1
  883. package/dist/serve/site-ui/docs/pyric-cli-serve-worker-reference-api/index.html +17 -9
  884. package/dist/serve/site-ui/docs/pyric-cli-serve-worker-reference-api.md +13 -11
  885. package/dist/serve/site-ui/docs/pyric-database-reference-api/index.html +8 -4
  886. package/dist/serve/site-ui/docs/pyric-database-reference-api.md +9 -4
  887. package/dist/serve/site-ui/docs/pyric-rules-reference-api/index.html +15 -4
  888. package/dist/serve/site-ui/docs/pyric-rules-reference-api.md +21 -4
  889. package/dist/serve/site-ui/docs/pyric-storage-reference-api/index.html +7 -1
  890. package/dist/serve/site-ui/docs/pyric-storage-reference-api.md +1 -0
  891. package/dist/serve/site-ui/docs/reference/cli/index.html +4 -3
  892. package/dist/serve/site-ui/docs/reference/cli.md +5 -3
  893. package/dist/serve/site-ui/docs/rules-compat/index.html +150 -49
  894. package/dist/serve/site-ui/docs/rules-compat.md +149 -51
  895. package/dist/serve/site-ui/docs/storage-compat/index.html +20 -20
  896. package/dist/serve/site-ui/docs/storage-compat.md +20 -20
  897. package/dist/serve/site-ui/docs/tutorial/index.html +12 -1
  898. package/dist/serve/site-ui/docs/tutorial.md +13 -1
  899. package/dist/serve/site-ui/examples/chess/index.html +1 -1
  900. package/dist/serve/site-ui/firestore/index.html +1 -1
  901. package/dist/serve/site-ui/rtdb/index.html +1 -1
  902. package/dist/serve/site-ui/settings/index.html +1 -1
  903. package/dist/serve/site-ui/storage/index.html +1 -1
  904. package/dist/serve/site-ui/studio/index.html +1 -1
  905. package/dist/serve/site-ui/traffic/index.html +1 -1
  906. package/dist/serve/vite-ai-config.d.ts +8 -0
  907. package/dist/serve/vite-ai-config.d.ts.map +1 -1
  908. package/dist/serve/vite-ai-config.js +16 -1
  909. package/dist/serve/vite-ai-config.js.map +1 -1
  910. package/dist/serve/vite-functions-development.d.ts +3 -3
  911. package/dist/serve/vite-functions-development.d.ts.map +1 -1
  912. package/dist/serve/vite-functions-development.js +1 -1
  913. package/dist/serve/vite-functions-development.js.map +1 -1
  914. package/dist/serve/vite-generation-bridge.d.ts +2 -2
  915. package/dist/serve/vite-generation-bridge.d.ts.map +1 -1
  916. package/dist/serve/vite-generation-functions.d.ts +3 -3
  917. package/dist/serve/vite-generation-functions.d.ts.map +1 -1
  918. package/dist/serve/vite-generation-functions.js +1 -1
  919. package/dist/serve/vite-generation-functions.js.map +1 -1
  920. package/dist/serve/vite-generation-middleware.d.ts +1 -1
  921. package/dist/serve/vite-generation-middleware.d.ts.map +1 -1
  922. package/dist/serve/vite-generation-middleware.js +36 -1
  923. package/dist/serve/vite-generation-middleware.js.map +1 -1
  924. package/dist/serve/vite-module-swap.d.ts.map +1 -1
  925. package/dist/serve/vite-module-swap.js +8 -0
  926. package/dist/serve/vite-module-swap.js.map +1 -1
  927. package/dist/serve/vite-page-runtime.d.ts.map +1 -1
  928. package/dist/serve/vite-page-runtime.js +7 -1
  929. package/dist/serve/vite-page-runtime.js.map +1 -1
  930. package/dist/serve/vite-rules-source.d.ts +1 -1
  931. package/dist/serve/vite-rules-source.d.ts.map +1 -1
  932. package/dist/serve/vite-rules-source.js +2 -4
  933. package/dist/serve/vite-rules-source.js.map +1 -1
  934. package/dist/serve/vite-sandbox-generation.d.ts +2 -2
  935. package/dist/serve/vite-sandbox-generation.d.ts.map +1 -1
  936. package/dist/serve/vite-sandbox-generation.js +4 -2
  937. package/dist/serve/vite-sandbox-generation.js.map +1 -1
  938. package/dist/serve/worker/ai-proxy-paths.d.ts +32 -0
  939. package/dist/serve/worker/ai-proxy-paths.d.ts.map +1 -0
  940. package/dist/serve/worker/ai-proxy-paths.js +20 -0
  941. package/dist/serve/worker/ai-proxy-paths.js.map +1 -0
  942. package/dist/serve/worker/client/ai.d.ts +3 -1
  943. package/dist/serve/worker/client/ai.d.ts.map +1 -1
  944. package/dist/serve/worker/client/ai.js +3 -0
  945. package/dist/serve/worker/client/ai.js.map +1 -1
  946. package/dist/serve/worker/client/auth.d.ts +29 -5
  947. package/dist/serve/worker/client/auth.d.ts.map +1 -1
  948. package/dist/serve/worker/client/auth.js +61 -11
  949. package/dist/serve/worker/client/auth.js.map +1 -1
  950. package/dist/serve/worker/client/clock.d.ts +0 -16
  951. package/dist/serve/worker/client/clock.d.ts.map +1 -1
  952. package/dist/serve/worker/client/clock.js +23 -10
  953. package/dist/serve/worker/client/clock.js.map +1 -1
  954. package/dist/serve/worker/client/firestore-reads.d.ts +12 -5
  955. package/dist/serve/worker/client/firestore-reads.d.ts.map +1 -1
  956. package/dist/serve/worker/client/firestore-reads.js +47 -16
  957. package/dist/serve/worker/client/firestore-reads.js.map +1 -1
  958. package/dist/serve/worker/client/firestore-refs.d.ts.map +1 -1
  959. package/dist/serve/worker/client/firestore-refs.js +4 -14
  960. package/dist/serve/worker/client/firestore-refs.js.map +1 -1
  961. package/dist/serve/worker/client/rtdb-connection-lifecycle.d.ts.map +1 -1
  962. package/dist/serve/worker/client/rtdb-connection-lifecycle.js +5 -0
  963. package/dist/serve/worker/client/rtdb-connection-lifecycle.js.map +1 -1
  964. package/dist/serve/worker/client/rtdb-snapshots.d.ts +7 -0
  965. package/dist/serve/worker/client/rtdb-snapshots.d.ts.map +1 -1
  966. package/dist/serve/worker/client/rtdb-snapshots.js +25 -1
  967. package/dist/serve/worker/client/rtdb-snapshots.js.map +1 -1
  968. package/dist/serve/worker/client/rtdb-value-validation.d.ts +21 -0
  969. package/dist/serve/worker/client/rtdb-value-validation.d.ts.map +1 -0
  970. package/dist/serve/worker/client/rtdb-value-validation.js +183 -0
  971. package/dist/serve/worker/client/rtdb-value-validation.js.map +1 -0
  972. package/dist/serve/worker/client/rtdb-writes.d.ts.map +1 -1
  973. package/dist/serve/worker/client/rtdb-writes.js +7 -0
  974. package/dist/serve/worker/client/rtdb-writes.js.map +1 -1
  975. package/dist/serve/worker/client/snapshots.d.ts +2 -0
  976. package/dist/serve/worker/client/snapshots.d.ts.map +1 -1
  977. package/dist/serve/worker/client/snapshots.js +13 -7
  978. package/dist/serve/worker/client/snapshots.js.map +1 -1
  979. package/dist/serve/worker/client/websocket-connection.d.ts +6 -0
  980. package/dist/serve/worker/client/websocket-connection.d.ts.map +1 -1
  981. package/dist/serve/worker/client/websocket-connection.js +32 -3
  982. package/dist/serve/worker/client/websocket-connection.js.map +1 -1
  983. package/dist/serve/worker/entry.js +2 -0
  984. package/dist/serve/worker/entry.js.map +1 -1
  985. package/dist/serve/worker/host/auth-credential-sign-in.d.ts +33 -0
  986. package/dist/serve/worker/host/auth-credential-sign-in.d.ts.map +1 -0
  987. package/dist/serve/worker/host/auth-credential-sign-in.js +70 -0
  988. package/dist/serve/worker/host/auth-credential-sign-in.js.map +1 -0
  989. package/dist/serve/worker/host/auth-reauthentication.js +3 -3
  990. package/dist/serve/worker/host/auth-reauthentication.js.map +1 -1
  991. package/dist/serve/worker/host/rules.d.ts +15 -1
  992. package/dist/serve/worker/host/rules.d.ts.map +1 -1
  993. package/dist/serve/worker/host/rules.js +43 -34
  994. package/dist/serve/worker/host/rules.js.map +1 -1
  995. package/dist/serve/worker/host/staged-sign-in-results.d.ts +24 -0
  996. package/dist/serve/worker/host/staged-sign-in-results.d.ts.map +1 -0
  997. package/dist/serve/worker/host/staged-sign-in-results.js +40 -0
  998. package/dist/serve/worker/host/staged-sign-in-results.js.map +1 -0
  999. package/dist/serve/worker/host/storage.d.ts.map +1 -1
  1000. package/dist/serve/worker/host/storage.js +20 -12
  1001. package/dist/serve/worker/host/storage.js.map +1 -1
  1002. package/dist/serve/worker/host/subscriptions.d.ts.map +1 -1
  1003. package/dist/serve/worker/host/subscriptions.js +6 -2
  1004. package/dist/serve/worker/host/subscriptions.js.map +1 -1
  1005. package/dist/serve/worker/host-ai.d.ts +4 -5
  1006. package/dist/serve/worker/host-ai.d.ts.map +1 -1
  1007. package/dist/serve/worker/host-ai.js +19 -23
  1008. package/dist/serve/worker/host-ai.js.map +1 -1
  1009. package/dist/serve/worker/host-auth.d.ts +3 -0
  1010. package/dist/serve/worker/host-auth.d.ts.map +1 -1
  1011. package/dist/serve/worker/host-auth.js +32 -13
  1012. package/dist/serve/worker/host-auth.js.map +1 -1
  1013. package/dist/serve/worker/host-context.d.ts +13 -4
  1014. package/dist/serve/worker/host-context.d.ts.map +1 -1
  1015. package/dist/serve/worker/host-context.js.map +1 -1
  1016. package/dist/serve/worker/inbound-validation/operation-arguments.d.ts.map +1 -1
  1017. package/dist/serve/worker/inbound-validation/operation-arguments.js +38 -14
  1018. package/dist/serve/worker/inbound-validation/operation-arguments.js.map +1 -1
  1019. package/dist/serve/worker/operation-persistence.d.ts +1 -0
  1020. package/dist/serve/worker/operation-persistence.d.ts.map +1 -1
  1021. package/dist/serve/worker/operation-persistence.js +1 -0
  1022. package/dist/serve/worker/operation-persistence.js.map +1 -1
  1023. package/dist/serve/worker/protocol.d.ts +22 -1
  1024. package/dist/serve/worker/protocol.d.ts.map +1 -1
  1025. package/dist/serve/worker/protocol.js.map +1 -1
  1026. package/dist/serve/worker/rtdb-value-equality.d.ts.map +1 -1
  1027. package/dist/serve/worker/rtdb-value-equality.js +3 -1
  1028. package/dist/serve/worker/rtdb-value-equality.js.map +1 -1
  1029. package/dist/serve/worker/serve-init.d.ts.map +1 -1
  1030. package/dist/serve/worker/serve-init.js +3 -9
  1031. package/dist/serve/worker/serve-init.js.map +1 -1
  1032. package/dist/serve/worker-build-lock.d.ts +23 -0
  1033. package/dist/serve/worker-build-lock.d.ts.map +1 -0
  1034. package/dist/serve/worker-build-lock.js +179 -0
  1035. package/dist/serve/worker-build-lock.js.map +1 -0
  1036. package/dist/serve/worker-bundle-cache.d.ts +17 -0
  1037. package/dist/serve/worker-bundle-cache.d.ts.map +1 -0
  1038. package/dist/serve/worker-bundle-cache.js +89 -0
  1039. package/dist/serve/worker-bundle-cache.js.map +1 -0
  1040. package/dist/verify/cases.js +7 -3
  1041. package/dist/verify/cases.js.map +1 -1
  1042. package/dist/verify/index.d.ts.map +1 -1
  1043. package/dist/verify/index.js +11 -5
  1044. package/dist/verify/index.js.map +1 -1
  1045. package/package.json +10 -4
  1046. package/src/assurance/.generated/conformance-verdicts.ts +111 -40
  1047. package/src/assurance/capabilities.ts +11 -15
  1048. package/src/bounded-request.ts +66 -7
  1049. package/src/bridge/client/bridge-url.ts +5 -1
  1050. package/src/bridge/client/bridge.ts +19 -3
  1051. package/src/bridge/frame-output.ts +45 -0
  1052. package/src/bridge/protocol.ts +13 -0
  1053. package/src/bridge/server/in-process.ts +57 -17
  1054. package/src/bridge/server/peer.ts +60 -1
  1055. package/src/bridge/server/standalone.ts +29 -107
  1056. package/src/bridge/surface/arguments/sandbox.ts +2 -69
  1057. package/src/bridge/surface/arguments/seed.ts +78 -0
  1058. package/src/bridge/surface/context.ts +26 -37
  1059. package/src/bridge/surface/database-instance-catalog.ts +4 -32
  1060. package/src/bridge/surface/database-instance-project.ts +40 -0
  1061. package/src/bridge/surface/database-instance.ts +4 -4
  1062. package/src/bridge/surface/functions-runtime.ts +5 -5
  1063. package/src/bridge/surface/held-identity.ts +4 -4
  1064. package/src/bridge/surface/manifest.sandbox.generated.ts +137 -0
  1065. package/src/bridge/surface/method-types.ts +61 -7
  1066. package/src/bridge/surface/methods/ai_logic/clearScripts.ts +2 -1
  1067. package/src/bridge/surface/methods/ai_logic/script.ts +2 -1
  1068. package/src/bridge/surface/methods/ai_logic/scripts.ts +2 -1
  1069. package/src/bridge/surface/methods/ai_logic/status.ts +1 -0
  1070. package/src/bridge/surface/methods/assurance/attach.ts +1 -0
  1071. package/src/bridge/surface/methods/assurance/canIUse.ts +1 -0
  1072. package/src/bridge/surface/methods/assurance/define.ts +1 -0
  1073. package/src/bridge/surface/methods/assurance/export.ts +1 -0
  1074. package/src/bridge/surface/methods/assurance/inspect.ts +1 -0
  1075. package/src/bridge/surface/methods/assurance/map.ts +1 -0
  1076. package/src/bridge/surface/methods/assurance/minimize.ts +1 -0
  1077. package/src/bridge/surface/methods/assurance/propose.ts +1 -0
  1078. package/src/bridge/surface/methods/assurance/replaySession.ts +1 -0
  1079. package/src/bridge/surface/methods/assurance/run.ts +1 -0
  1080. package/src/bridge/surface/methods/assurance/start.ts +1 -0
  1081. package/src/bridge/surface/methods/assurance/testRulesHosted.ts +1 -0
  1082. package/src/bridge/surface/methods/assurance/verify.ts +1 -0
  1083. package/src/bridge/surface/methods/assurance/verifyCases.ts +1 -0
  1084. package/src/bridge/surface/methods/auth/actAsAdmin.ts +1 -0
  1085. package/src/bridge/surface/methods/auth/actAsAnonymous.ts +1 -0
  1086. package/src/bridge/surface/methods/auth/createCustomToken.ts +1 -0
  1087. package/src/bridge/surface/methods/auth/createUser.ts +2 -1
  1088. package/src/bridge/surface/methods/auth/deleteUser.ts +2 -1
  1089. package/src/bridge/surface/methods/auth/getUser.ts +2 -1
  1090. package/src/bridge/surface/methods/auth/getUserByEmail.ts +2 -1
  1091. package/src/bridge/surface/methods/auth/impersonate.ts +1 -0
  1092. package/src/bridge/surface/methods/auth/importUsers.ts +3 -2
  1093. package/src/bridge/surface/methods/auth/listUsers.ts +2 -1
  1094. package/src/bridge/surface/methods/auth/sessions.ts +1 -0
  1095. package/src/bridge/surface/methods/auth/setCustomUserClaims.ts +2 -1
  1096. package/src/bridge/surface/methods/auth/signInAnonymously.ts +1 -0
  1097. package/src/bridge/surface/methods/auth/signInWithCredential.ts +1 -0
  1098. package/src/bridge/surface/methods/auth/signInWithCustomToken.ts +1 -0
  1099. package/src/bridge/surface/methods/auth/signInWithEmailAndPassword.ts +1 -0
  1100. package/src/bridge/surface/methods/auth/signOut.ts +1 -0
  1101. package/src/bridge/surface/methods/auth/takeAuthMail.ts +1 -0
  1102. package/src/bridge/surface/methods/auth/updateUser.ts +2 -1
  1103. package/src/bridge/surface/methods/auth/useAppSession.ts +1 -0
  1104. package/src/bridge/surface/methods/auth/whoami.ts +1 -0
  1105. package/src/bridge/surface/methods/database/crawl.ts +1 -0
  1106. package/src/bridge/surface/methods/database/get.ts +1 -0
  1107. package/src/bridge/surface/methods/database/push.ts +1 -0
  1108. package/src/bridge/surface/methods/database/query.ts +1 -0
  1109. package/src/bridge/surface/methods/database/remove.ts +1 -0
  1110. package/src/bridge/surface/methods/database/set.ts +1 -0
  1111. package/src/bridge/surface/methods/database/update.ts +1 -0
  1112. package/src/bridge/surface/methods/firestore/addDoc.ts +2 -1
  1113. package/src/bridge/surface/methods/firestore/deleteDoc.ts +2 -1
  1114. package/src/bridge/surface/methods/firestore/discoverPaths.ts +1 -0
  1115. package/src/bridge/surface/methods/firestore/extractIndexes.ts +1 -0
  1116. package/src/bridge/surface/methods/firestore/findCollectionGroup.ts +1 -0
  1117. package/src/bridge/surface/methods/firestore/getAggregateFromServer.ts +1 -0
  1118. package/src/bridge/surface/methods/firestore/getCountFromServer.ts +1 -0
  1119. package/src/bridge/surface/methods/firestore/getDoc.ts +2 -1
  1120. package/src/bridge/surface/methods/firestore/getDocs.ts +2 -1
  1121. package/src/bridge/surface/methods/firestore/setDoc.ts +2 -1
  1122. package/src/bridge/surface/methods/firestore/updateDoc.ts +2 -1
  1123. package/src/bridge/surface/methods/firestore/writeBatch.ts +2 -1
  1124. package/src/bridge/surface/methods/firestore/writeIndexes.ts +1 -0
  1125. package/src/bridge/surface/methods/functions/executions.ts +2 -1
  1126. package/src/bridge/surface/methods/functions/fire.ts +7 -6
  1127. package/src/bridge/surface/methods/functions/listTriggers.ts +1 -0
  1128. package/src/bridge/surface/methods/messaging/deliveries.ts +1 -0
  1129. package/src/bridge/surface/methods/messaging/send.ts +2 -1
  1130. package/src/bridge/surface/methods/messaging/subscribeToTopic.ts +1 -0
  1131. package/src/bridge/surface/methods/messaging/tokens.ts +1 -0
  1132. package/src/bridge/surface/methods/messaging/unsubscribeFromTopic.ts +1 -0
  1133. package/src/bridge/surface/methods/registry.ts +2 -12
  1134. package/src/bridge/surface/methods/rules/explainDenial.ts +1 -0
  1135. package/src/bridge/surface/methods/rules/getStdlib.ts +1 -0
  1136. package/src/bridge/surface/methods/rules/lint.ts +1 -0
  1137. package/src/bridge/surface/methods/rules/listStdlib.ts +1 -0
  1138. package/src/bridge/surface/methods/rules/set.ts +1 -0
  1139. package/src/bridge/surface/methods/rules/simulate.ts +1 -0
  1140. package/src/bridge/surface/methods/sandbox/activity.ts +2 -1
  1141. package/src/bridge/surface/methods/sandbox/advanceClock.ts +1 -0
  1142. package/src/bridge/surface/methods/sandbox/apply.ts +1 -0
  1143. package/src/bridge/surface/methods/sandbox/checkpoint.ts +1 -0
  1144. package/src/bridge/surface/methods/sandbox/deleteCapture.ts +1 -1
  1145. package/src/bridge/surface/methods/sandbox/deleteCheckpoint.ts +1 -0
  1146. package/src/bridge/surface/methods/sandbox/diff.ts +1 -0
  1147. package/src/bridge/surface/methods/sandbox/discard.ts +1 -0
  1148. package/src/bridge/surface/methods/sandbox/events.ts +2 -1
  1149. package/src/bridge/surface/methods/sandbox/exportFixture.ts +1 -0
  1150. package/src/bridge/surface/methods/sandbox/fork.ts +1 -0
  1151. package/src/bridge/surface/methods/sandbox/inspect.ts +2 -1
  1152. package/src/bridge/surface/methods/sandbox/listBranches.ts +1 -0
  1153. package/src/bridge/surface/methods/sandbox/listCaptures.ts +1 -1
  1154. package/src/bridge/surface/methods/sandbox/listCheckpoints.ts +1 -0
  1155. package/src/bridge/surface/methods/sandbox/listeners.ts +1 -0
  1156. package/src/bridge/surface/methods/sandbox/openCapture.ts +1 -1
  1157. package/src/bridge/surface/methods/sandbox/promote.ts +1 -0
  1158. package/src/bridge/surface/methods/sandbox/renameCapture.ts +1 -1
  1159. package/src/bridge/surface/methods/sandbox/reset.ts +3 -2
  1160. package/src/bridge/surface/methods/sandbox/resetClock.ts +1 -0
  1161. package/src/bridge/surface/methods/sandbox/restore.ts +1 -0
  1162. package/src/bridge/surface/methods/sandbox/saveCapture.ts +1 -1
  1163. package/src/bridge/surface/methods/sandbox/seed.ts +3 -2
  1164. package/src/bridge/surface/methods/sandbox/seedFromFixture.ts +1 -0
  1165. package/src/bridge/surface/methods/sandbox/setClock.ts +1 -0
  1166. package/src/bridge/surface/methods/sandbox-registry.ts +24 -0
  1167. package/src/bridge/surface/methods/storage/deleteObject.ts +1 -0
  1168. package/src/bridge/surface/methods/storage/getBytes.ts +1 -0
  1169. package/src/bridge/surface/methods/storage/getDownloadURL.ts +1 -0
  1170. package/src/bridge/surface/methods/storage/getMetadata.ts +1 -0
  1171. package/src/bridge/surface/methods/storage/listAll.ts +1 -0
  1172. package/src/bridge/surface/methods/storage/provision.ts +1 -0
  1173. package/src/bridge/surface/methods/storage/setCrossServiceIam.ts +1 -0
  1174. package/src/bridge/surface/methods/storage/status.ts +1 -0
  1175. package/src/bridge/surface/methods/storage/updateMetadata.ts +1 -0
  1176. package/src/bridge/surface/methods/storage/uploadBytes.ts +1 -0
  1177. package/src/bridge/surface/request-instant.ts +2 -2
  1178. package/src/bridge/surface/rules-engines/database.ts +1 -2
  1179. package/src/bridge/surface/rules-engines/storage-request-resource.ts +275 -0
  1180. package/src/bridge/surface/rules-engines/storage.ts +54 -81
  1181. package/src/bridge/surface/sandbox-context.ts +49 -0
  1182. package/src/bridge/surface/service-handles.ts +13 -9
  1183. package/src/bridge/surface/sign-in.ts +3 -3
  1184. package/src/bridge/surface/storage-rules.ts +2 -14
  1185. package/src/bridge/surface/stored-identity.ts +3 -3
  1186. package/src/bridge/surface/types.ts +30 -8
  1187. package/src/cli/firebase-json.ts +45 -7
  1188. package/src/cli/firestore-indexes.ts +2 -1
  1189. package/src/cli/index.ts +46 -11
  1190. package/src/cli/public-dir-hint.ts +35 -0
  1191. package/src/cli/run.ts +35 -7
  1192. package/src/cli/sandbox-runner.ts +10 -2
  1193. package/src/cli/serve-diagnostics.ts +12 -1
  1194. package/src/cli/serve.ts +27 -26
  1195. package/src/cli/service-commands.test.ts +7 -0
  1196. package/src/cli/snapshot.ts +15 -6
  1197. package/src/cli/surface-method-runner.ts +1 -1
  1198. package/src/cli/verify.ts +11 -1
  1199. package/src/conformance/.generated/can-i-use-browser.ts +22 -3
  1200. package/src/conformance/.generated/can-i-use.ts +1 -1
  1201. package/src/conformance/.generated/conformance-docs.ts +1 -1
  1202. package/src/conformance/.generated/served-availability.ts +1 -1
  1203. package/src/discover/merge.ts +12 -3
  1204. package/src/functions/child-protocol.ts +59 -0
  1205. package/src/functions/child.ts +107 -0
  1206. package/src/{functions-rtdb → functions}/development-runtime.ts +13 -14
  1207. package/src/functions/endpoints.ts +80 -0
  1208. package/src/{functions-rtdb → functions}/project.ts +2 -2
  1209. package/src/functions/rtdb/child-runtime.ts +139 -0
  1210. package/src/{functions-rtdb → functions/rtdb}/discovery.ts +9 -43
  1211. package/src/{functions-rtdb → functions/rtdb}/remote-delivery.ts +1 -1
  1212. package/src/functions/spawn.ts +212 -0
  1213. package/src/functions/unsupported.ts +42 -0
  1214. package/src/google-endpoints.ts +74 -3
  1215. package/src/next/bridge-import-loader.ts +56 -0
  1216. package/src/next/bridge-imports.ts +108 -0
  1217. package/src/next/client-aliases.ts +14 -27
  1218. package/src/next/guard.ts +33 -11
  1219. package/src/next/turbopack-config.ts +26 -0
  1220. package/src/next/webpack-config.ts +26 -0
  1221. package/src/next/with-pyric.ts +26 -0
  1222. package/src/register/activation.ts +26 -0
  1223. package/src/register/app-bridge-admin-app-check.ts +3 -1
  1224. package/src/register/child-process-guard.ts +189 -0
  1225. package/src/register/client/bootstrap.ts +7 -1
  1226. package/src/register/connect-prototypes.ts +12 -0
  1227. package/src/register/hooks.ts +56 -3
  1228. package/src/register/index.ts +92 -20
  1229. package/src/register/mapping.ts +57 -3
  1230. package/src/register/net-guard.ts +149 -39
  1231. package/src/register/package-identity.ts +98 -0
  1232. package/src/register/swap-or-stop.ts +194 -0
  1233. package/src/register/worker-guard.ts +90 -0
  1234. package/src/remote/resolve-host.ts +14 -2
  1235. package/src/serve/ai-diagnostics-relay.ts +6 -1
  1236. package/src/serve/ai-proxy.ts +77 -20
  1237. package/src/serve/ai-terminal-blocks.ts +8 -4
  1238. package/src/serve/ai-terminal-text.ts +11 -0
  1239. package/src/serve/app-ports.ts +119 -0
  1240. package/src/serve/bridge-mount.ts +36 -8
  1241. package/src/serve/bundler.ts +87 -29
  1242. package/src/serve/discovery.ts +244 -67
  1243. package/src/serve/entries/ai.ts +28 -27
  1244. package/src/serve/entries/auth.ts +22 -1
  1245. package/src/serve/entries/firestore-surface.ts +1 -0
  1246. package/src/serve/entries/init-payload.ts +28 -5
  1247. package/src/serve/entries/moved-host.ts +28 -0
  1248. package/src/serve/entries/runtime-origin.ts +6 -0
  1249. package/src/serve/entries/unsupported/firestore.ts +0 -1
  1250. package/src/serve/entries/worker-runtime.ts +19 -6
  1251. package/src/serve/firebase-module-swap.ts +98 -15
  1252. package/src/serve/gemini-proxy.ts +140 -0
  1253. package/src/serve/hosted/runtime.ts +10 -2
  1254. package/src/serve/namespace.ts +99 -32
  1255. package/src/serve/repro/compare.ts +9 -1
  1256. package/src/serve/rules-fixture-check.ts +34 -9
  1257. package/src/serve/rules.ts +104 -20
  1258. package/src/serve/sandbox-session.ts +15 -3
  1259. package/src/serve/server.ts +29 -2
  1260. package/src/serve/vite-ai-config.ts +19 -1
  1261. package/src/serve/vite-functions-development.ts +3 -3
  1262. package/src/serve/vite-generation-bridge.ts +2 -2
  1263. package/src/serve/vite-generation-functions.ts +5 -5
  1264. package/src/serve/vite-generation-middleware.ts +38 -2
  1265. package/src/serve/vite-module-swap.ts +8 -0
  1266. package/src/serve/vite-page-runtime.ts +6 -0
  1267. package/src/serve/vite-rules-source.ts +2 -5
  1268. package/src/serve/vite-sandbox-generation.ts +7 -5
  1269. package/src/serve/worker/__tests__/auth-credential-sign-in.test.ts +343 -0
  1270. package/src/serve/worker/__tests__/auth-m2-parity.test.ts +45 -1
  1271. package/src/serve/worker/__tests__/staged-sign-in-results.test.ts +139 -0
  1272. package/src/serve/worker/ai-proxy-paths.ts +35 -0
  1273. package/src/serve/worker/client/ai.ts +6 -1
  1274. package/src/serve/worker/client/auth.ts +97 -21
  1275. package/src/serve/worker/client/clock.ts +10 -12
  1276. package/src/serve/worker/client/firestore-reads.ts +70 -21
  1277. package/src/serve/worker/client/firestore-refs.ts +4 -14
  1278. package/src/serve/worker/client/rtdb-connection-lifecycle.ts +5 -0
  1279. package/src/serve/worker/client/rtdb-snapshots.ts +24 -2
  1280. package/src/serve/worker/client/rtdb-value-validation.ts +198 -0
  1281. package/src/serve/worker/client/rtdb-writes.ts +7 -0
  1282. package/src/serve/worker/client/snapshots.ts +15 -6
  1283. package/src/serve/worker/client/websocket-connection.ts +39 -3
  1284. package/src/serve/worker/entry.ts +2 -0
  1285. package/src/serve/worker/host/auth-credential-sign-in.ts +97 -0
  1286. package/src/serve/worker/host/auth-reauthentication.ts +3 -3
  1287. package/src/serve/worker/host/rules.ts +53 -34
  1288. package/src/serve/worker/host/staged-sign-in-results.ts +53 -0
  1289. package/src/serve/worker/host/storage.ts +26 -11
  1290. package/src/serve/worker/host/subscriptions.ts +7 -4
  1291. package/src/serve/worker/host-ai.ts +23 -23
  1292. package/src/serve/worker/host-auth.ts +33 -15
  1293. package/src/serve/worker/host-context.ts +13 -3
  1294. package/src/serve/worker/inbound-validation/operation-arguments.ts +38 -14
  1295. package/src/serve/worker/operation-persistence.ts +1 -0
  1296. package/src/serve/worker/protocol.ts +21 -3
  1297. package/src/serve/worker/rtdb-value-equality.ts +3 -1
  1298. package/src/serve/worker/serve-init.ts +3 -9
  1299. package/src/serve/worker-build-lock.ts +207 -0
  1300. package/src/serve/worker-bundle-cache.ts +90 -0
  1301. package/src/verify/cases.ts +6 -3
  1302. package/src/verify/index.ts +16 -4
  1303. package/dist/functions-rtdb/child.d.ts.map +0 -1
  1304. package/dist/functions-rtdb/child.js +0 -386
  1305. package/dist/functions-rtdb/child.js.map +0 -1
  1306. package/dist/functions-rtdb/delivery.d.ts.map +0 -1
  1307. package/dist/functions-rtdb/delivery.js.map +0 -1
  1308. package/dist/functions-rtdb/development-runtime.d.ts.map +0 -1
  1309. package/dist/functions-rtdb/development-runtime.js.map +0 -1
  1310. package/dist/functions-rtdb/discovery.d.ts.map +0 -1
  1311. package/dist/functions-rtdb/discovery.js.map +0 -1
  1312. package/dist/functions-rtdb/event.d.ts.map +0 -1
  1313. package/dist/functions-rtdb/event.js.map +0 -1
  1314. package/dist/functions-rtdb/events.d.ts.map +0 -1
  1315. package/dist/functions-rtdb/events.js.map +0 -1
  1316. package/dist/functions-rtdb/execution-log.d.ts.map +0 -1
  1317. package/dist/functions-rtdb/execution-log.js.map +0 -1
  1318. package/dist/functions-rtdb/execution.d.ts.map +0 -1
  1319. package/dist/functions-rtdb/execution.js.map +0 -1
  1320. package/dist/functions-rtdb/in-memory-delivery.d.ts.map +0 -1
  1321. package/dist/functions-rtdb/in-memory-delivery.js.map +0 -1
  1322. package/dist/functions-rtdb/module-loader.d.ts.map +0 -1
  1323. package/dist/functions-rtdb/module-loader.js.map +0 -1
  1324. package/dist/functions-rtdb/project.d.ts +0 -7
  1325. package/dist/functions-rtdb/project.d.ts.map +0 -1
  1326. package/dist/functions-rtdb/project.js.map +0 -1
  1327. package/dist/functions-rtdb/projection.d.ts.map +0 -1
  1328. package/dist/functions-rtdb/projection.js.map +0 -1
  1329. package/dist/functions-rtdb/reference-pattern.d.ts.map +0 -1
  1330. package/dist/functions-rtdb/reference-pattern.js.map +0 -1
  1331. package/dist/functions-rtdb/remote-delivery.d.ts.map +0 -1
  1332. package/dist/functions-rtdb/remote-delivery.js.map +0 -1
  1333. package/dist/serve/site-ui/_astro/app.C--T2qDK.js +0 -151
  1334. package/dist/serve/site-ui/_astro/app.DqyhRyrU.js +0 -1
  1335. package/dist/serve/site-ui/_astro/sandbox-controls.Bv6lfpIe.js +0 -1725
  1336. package/dist/serve/site-ui/_astro/writes.Bg0YEEA7.js +0 -1
  1337. package/src/functions-rtdb/child.ts +0 -512
  1338. /package/dist/{functions-rtdb → functions}/events.d.ts +0 -0
  1339. /package/dist/{functions-rtdb → functions}/events.js +0 -0
  1340. /package/dist/{functions-rtdb → functions}/execution-log.d.ts +0 -0
  1341. /package/dist/{functions-rtdb → functions}/execution-log.js +0 -0
  1342. /package/dist/{functions-rtdb → functions}/module-loader.d.ts +0 -0
  1343. /package/dist/{functions-rtdb → functions}/module-loader.js +0 -0
  1344. /package/dist/{functions-rtdb → functions/rtdb}/delivery.d.ts +0 -0
  1345. /package/dist/{functions-rtdb → functions/rtdb}/delivery.js +0 -0
  1346. /package/dist/{functions-rtdb → functions/rtdb}/event.d.ts +0 -0
  1347. /package/dist/{functions-rtdb → functions/rtdb}/event.js +0 -0
  1348. /package/dist/{functions-rtdb → functions/rtdb}/execution.d.ts +0 -0
  1349. /package/dist/{functions-rtdb → functions/rtdb}/execution.js +0 -0
  1350. /package/dist/{functions-rtdb → functions/rtdb}/in-memory-delivery.d.ts +0 -0
  1351. /package/dist/{functions-rtdb → functions/rtdb}/in-memory-delivery.js +0 -0
  1352. /package/dist/{functions-rtdb → functions/rtdb}/projection.d.ts +0 -0
  1353. /package/dist/{functions-rtdb → functions/rtdb}/projection.js +0 -0
  1354. /package/dist/{functions-rtdb → functions/rtdb}/reference-pattern.d.ts +0 -0
  1355. /package/dist/{functions-rtdb → functions/rtdb}/reference-pattern.js +0 -0
  1356. /package/dist/{functions-rtdb → functions/rtdb}/remote-delivery.js +0 -0
  1357. /package/src/{functions-rtdb → functions}/events.ts +0 -0
  1358. /package/src/{functions-rtdb → functions}/execution-log.ts +0 -0
  1359. /package/src/{functions-rtdb → functions}/module-loader.ts +0 -0
  1360. /package/src/{functions-rtdb → functions/rtdb}/delivery.ts +0 -0
  1361. /package/src/{functions-rtdb → functions/rtdb}/event.ts +0 -0
  1362. /package/src/{functions-rtdb → functions/rtdb}/execution.ts +0 -0
  1363. /package/src/{functions-rtdb → functions/rtdb}/in-memory-delivery.ts +0 -0
  1364. /package/src/{functions-rtdb → functions/rtdb}/projection.ts +0 -0
  1365. /package/src/{functions-rtdb → functions/rtdb}/reference-pattern.ts +0 -0
@@ -319,7 +319,7 @@ html{scrollbar-gutter:stable}
319
319
  </details>
320
320
  <details class="compat-row" data-status="ok">
321
321
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">SnapshotMetadata (hasPendingWrites, isFromCache)</code><span class="compat-sub"><span class="compat-behavior">Flags indicating uncommitted local writes and cache data origin.</span></span></span></summary>
322
- <div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. When the bridge connection drops, a listener registered with includeMetadataChanges receives its last documents with isFromCache true and no changes, and its first snapshot after re-attach has isFromCache false; a listener without includeMetadataChanges receives neither, as production raises a metadata-only change only to listeners that include metadata changes. Reconnect tests: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/BridgeReconnectTests.swift#L823" target="_blank" rel="noopener noreferrer"><code>BridgeReconnectTests.swift</code></a>. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceQueryAndCodableTests.swift#L291" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceQueryAndCodableTests.swift</code></a> assertion set <code>firestore-swift#73</code>.</div></div>
322
+ <div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. When the bridge connection drops, a listener registered with includeMetadataChanges receives its last documents with isFromCache true and no changes, and its first snapshot after re-attach has isFromCache false; a listener without includeMetadataChanges receives neither, as production raises a metadata-only change only to listeners that include metadata changes. Reconnect tests: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/BridgeReconnectTests.swift#L829" target="_blank" rel="noopener noreferrer"><code>BridgeReconnectTests.swift</code></a>. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceQueryAndCodableTests.swift#L291" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceQueryAndCodableTests.swift</code></a> assertion set <code>firestore-swift#73</code>.</div></div>
323
323
  </details>
324
324
  <details class="compat-row" data-status="ok">
325
325
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">QuerySnapshot.documents</code><span class="compat-sub"><span class="compat-behavior">Ordered array of QueryDocumentSnapshot instances matched by query.</span></span></span></summary>
@@ -330,7 +330,7 @@
330
330
  </details>
331
331
  <details class="compat-row" data-status="ok">
332
332
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">SnapshotMetadata (hasPendingWrites, isFromCache)</code><span class="compat-sub"><span class="compat-behavior">Flags indicating uncommitted local writes and cache data origin.</span></span></span></summary>
333
- <div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. When the bridge connection drops, a listener registered with includeMetadataChanges receives its last documents with isFromCache true and no changes, and its first snapshot after re-attach has isFromCache false; a listener without includeMetadataChanges receives neither, as production raises a metadata-only change only to listeners that include metadata changes. Reconnect tests: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/BridgeReconnectTests.swift#L823" target="_blank" rel="noopener noreferrer"><code>BridgeReconnectTests.swift</code></a>. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceQueryAndCodableTests.swift#L291" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceQueryAndCodableTests.swift</code></a> assertion set <code>firestore-swift#73</code>.</div></div>
333
+ <div class="compat-evidence"><div class="compat-probe">FirebaseFirestore Swift specification. When the bridge connection drops, a listener registered with includeMetadataChanges receives its last documents with isFromCache true and no changes, and its first snapshot after re-attach has isFromCache false; a listener without includeMetadataChanges receives neither, as production raises a metadata-only change only to listeners that include metadata changes. Reconnect tests: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/BridgeReconnectTests.swift#L829" target="_blank" rel="noopener noreferrer"><code>BridgeReconnectTests.swift</code></a>. Swift test: <a href="https://github.com/davideast/pyric/blob/main/packages/swift-client/Tests/PyricFirestoreTests/ConformanceQueryAndCodableTests.swift#L291" target="_blank" rel="noopener noreferrer"><code>packages/swift-client/Tests/PyricFirestoreTests/ConformanceQueryAndCodableTests.swift</code></a> assertion set <code>firestore-swift#73</code>.</div></div>
334
334
  </details>
335
335
  <details class="compat-row" data-status="ok">
336
336
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">QuerySnapshot.documents</code><span class="compat-sub"><span class="compat-behavior">Ordered array of QueryDocumentSnapshot instances matched by query.</span></span></span></summary>
@@ -16,47 +16,47 @@ html{scrollbar-gutter:stable}
16
16
  <div class="compat-list">
17
17
  <details class="compat-row" data-status="ok">
18
18
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">A write that changes an exact matched RTDB location from absent to present invokes the handler once with a create CloudEvent and a DataSnapshot containing the created value.</span></span></span></summary>
19
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a> (firebase-functions 7.2.5); production exact-create behavior. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#1</code>.</div></div>
19
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a> (firebase-functions 7.2.5); production exact-create behavior. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#1</code>.</div></div>
20
20
  </details>
21
21
  <details class="compat-row" data-status="ok">
22
22
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">After the initial create delivery, changing or deleting that same matched value does not invoke an onValueCreated handler.</span></span></span></summary>
23
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; update/delete produced no additional delivery in the bounded production scenario. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#2</code>.</div></div>
23
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; update/delete produced no additional delivery in the bounded production scenario. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#2</code>.</div></div>
24
24
  </details>
25
25
  <details class="compat-row" data-status="ok">
26
26
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">A value that already exists when the trigger is deployed does not produce a historical create delivery.</span></span></span></summary>
27
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-startup-existing.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-startup-existing.json</code></a>; pre-seeded value, zero delivery in the observation window. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L324" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#3</code>.</div></div>
27
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-startup-existing.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-startup-existing.json</code></a>; pre-seeded value, zero delivery in the observation window. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L322" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#3</code>.</div></div>
28
28
  </details>
29
29
  <details class="compat-row" data-status="ok">
30
30
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">A named single-segment wildcard matches a created child and exposes the matched segment through event.params.</span></span></span></summary>
31
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; production populated caseId and itemId. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L325" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#4</code>.</div></div>
31
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; production populated caseId and itemId. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#4</code>.</div></div>
32
32
  </details>
33
33
  <details class="compat-row" data-status="ok">
34
34
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">Creating an ancestor object invokes the wildcard handler once for each newly-present matching descendant.</span></span></span></summary>
35
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; one ancestor set delivered alpha and beta. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L325" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#5</code>.</div></div>
35
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; one ancestor set delivered alpha and beta. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#5</code>.</div></div>
36
36
  </details>
37
37
  <details class="compat-row" data-status="ok">
38
38
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">When an ancestor write creates an exact matched descendant, the event snapshot is projected to that descendant rather than the ancestor object.</span></span></span></summary>
39
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-descendant-projection.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-descendant-projection.json</code></a>; leaf snapshot excluded its sibling. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L326" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#6</code>.</div></div>
39
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-descendant-projection.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-descendant-projection.json</code></a>; leaf snapshot excluded its sibling. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L324" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#6</code>.</div></div>
40
40
  </details>
41
41
  <details class="compat-row" data-status="ok">
42
42
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">One multi-location update that creates multiple wildcard-matched children produces one create delivery for each child.</span></span></span></summary>
43
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; one update delivered delta and gamma. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L325" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#7</code>.</div></div>
43
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; one update delivered delta and gamma. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#7</code>.</div></div>
44
44
  </details>
45
45
  <details class="compat-row" data-status="ok">
46
46
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DatabaseEvent.data</code><span class="compat-sub"><span class="compat-behavior">The delivered DataSnapshot exposes the created value, key, existence, JSON projection, child lookup, child count, and child enumeration.</span></span></span></summary>
47
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; frozen val/key/exists/toJSON/child enumeration shape. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#8</code>.</div></div>
47
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; frozen val/key/exists/toJSON/child enumeration shape. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#8</code>.</div></div>
48
48
  </details>
49
49
  <details class="compat-row" data-status="ok">
50
50
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DatabaseEvent.data.ref</code><span class="compat-sub"><span class="compat-behavior">The snapshot ref is an Admin DatabaseReference rooted at the matched path and can perform an awaited write from the handler.</span></span></span></summary>
51
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; matched Admin ref completed the awaited sibling write. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#9</code>.</div></div>
51
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; matched Admin ref completed the awaited sibling write. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#9</code>.</div></div>
52
52
  </details>
53
53
  <details class="compat-row" data-status="ok">
54
54
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DatabaseEvent.authType / authId</code><span class="compat-sub"><span class="compat-behavior">For the production Admin SDK write, the event exposes authType <code>unknown</code> and authId <code>null</code>.</span></span></span></summary>
55
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#10</code>.</div></div>
55
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#10</code>.</div></div>
56
56
  </details>
57
57
  <details class="compat-row" data-status="ok">
58
58
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, async handler)</code><span class="compat-sub"><span class="compat-behavior">A Promise returned by the handler keeps the execution open through delayed asynchronous work and its awaited Admin write.</span></span></span></summary>
59
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; capture logged only after the delayed Admin write completed. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#11</code>.</div></div>
59
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; capture logged only after the delayed Admin write completed. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#11</code>.</div></div>
60
60
  </details>
61
61
  <details class="compat-row" data-status="unverified">
62
62
  <summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">A handler that throws or returns a rejected Promise is reported by the managed runtime; with retry disabled, the Eventarc request can still be acknowledged with HTTP 200.</span></span></span></summary>
@@ -64,7 +64,7 @@ html{scrollbar-gutter:stable}
64
64
  </details>
65
65
  <details class="compat-row" data-status="ok">
66
66
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">Sequential creates are all delivered; their observed arrival order is evidence, not an ordering guarantee.</span></span></span></summary>
67
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; all three arrived in observed order 2, 1, 3. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L325" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#13</code>.</div></div>
67
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; all three arrived in observed order 2, 1, 3. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#13</code>.</div></div>
68
68
  </details>
69
69
  </div>
70
70
  <h2 id="current-gaps">Current gaps</h2>
@@ -19,47 +19,47 @@
19
19
  <div class="compat-list">
20
20
  <details class="compat-row" data-status="ok">
21
21
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">A write that changes an exact matched RTDB location from absent to present invokes the handler once with a create CloudEvent and a DataSnapshot containing the created value.</span></span></span></summary>
22
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a> (firebase-functions 7.2.5); production exact-create behavior. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#1</code>.</div></div>
22
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a> (firebase-functions 7.2.5); production exact-create behavior. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#1</code>.</div></div>
23
23
  </details>
24
24
  <details class="compat-row" data-status="ok">
25
25
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">After the initial create delivery, changing or deleting that same matched value does not invoke an onValueCreated handler.</span></span></span></summary>
26
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; update/delete produced no additional delivery in the bounded production scenario. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#2</code>.</div></div>
26
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; update/delete produced no additional delivery in the bounded production scenario. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#2</code>.</div></div>
27
27
  </details>
28
28
  <details class="compat-row" data-status="ok">
29
29
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">A value that already exists when the trigger is deployed does not produce a historical create delivery.</span></span></span></summary>
30
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-startup-existing.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-startup-existing.json</code></a>; pre-seeded value, zero delivery in the observation window. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L324" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#3</code>.</div></div>
30
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-startup-existing.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-startup-existing.json</code></a>; pre-seeded value, zero delivery in the observation window. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L322" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#3</code>.</div></div>
31
31
  </details>
32
32
  <details class="compat-row" data-status="ok">
33
33
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">A named single-segment wildcard matches a created child and exposes the matched segment through event.params.</span></span></span></summary>
34
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; production populated caseId and itemId. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L325" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#4</code>.</div></div>
34
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; production populated caseId and itemId. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#4</code>.</div></div>
35
35
  </details>
36
36
  <details class="compat-row" data-status="ok">
37
37
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">Creating an ancestor object invokes the wildcard handler once for each newly-present matching descendant.</span></span></span></summary>
38
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; one ancestor set delivered alpha and beta. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L325" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#5</code>.</div></div>
38
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; one ancestor set delivered alpha and beta. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#5</code>.</div></div>
39
39
  </details>
40
40
  <details class="compat-row" data-status="ok">
41
41
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">When an ancestor write creates an exact matched descendant, the event snapshot is projected to that descendant rather than the ancestor object.</span></span></span></summary>
42
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-descendant-projection.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-descendant-projection.json</code></a>; leaf snapshot excluded its sibling. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L326" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#6</code>.</div></div>
42
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-descendant-projection.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-descendant-projection.json</code></a>; leaf snapshot excluded its sibling. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L324" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#6</code>.</div></div>
43
43
  </details>
44
44
  <details class="compat-row" data-status="ok">
45
45
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">One multi-location update that creates multiple wildcard-matched children produces one create delivery for each child.</span></span></span></summary>
46
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; one update delivered delta and gamma. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L325" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#7</code>.</div></div>
46
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; one update delivered delta and gamma. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#7</code>.</div></div>
47
47
  </details>
48
48
  <details class="compat-row" data-status="ok">
49
49
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DatabaseEvent.data</code><span class="compat-sub"><span class="compat-behavior">The delivered DataSnapshot exposes the created value, key, existence, JSON projection, child lookup, child count, and child enumeration.</span></span></span></summary>
50
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; frozen val/key/exists/toJSON/child enumeration shape. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#8</code>.</div></div>
50
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; frozen val/key/exists/toJSON/child enumeration shape. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#8</code>.</div></div>
51
51
  </details>
52
52
  <details class="compat-row" data-status="ok">
53
53
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DatabaseEvent.data.ref</code><span class="compat-sub"><span class="compat-behavior">The snapshot ref is an Admin DatabaseReference rooted at the matched path and can perform an awaited write from the handler.</span></span></span></summary>
54
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; matched Admin ref completed the awaited sibling write. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#9</code>.</div></div>
54
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; matched Admin ref completed the awaited sibling write. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#9</code>.</div></div>
55
55
  </details>
56
56
  <details class="compat-row" data-status="ok">
57
57
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">DatabaseEvent.authType / authId</code><span class="compat-sub"><span class="compat-behavior">For the production Admin SDK write, the event exposes authType <code>unknown</code> and authId <code>null</code>.</span></span></span></summary>
58
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#10</code>.</div></div>
58
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#10</code>.</div></div>
59
59
  </details>
60
60
  <details class="compat-row" data-status="ok">
61
61
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, async handler)</code><span class="compat-sub"><span class="compat-behavior">A Promise returned by the handler keeps the execution open through delayed asynchronous work and its awaited Admin write.</span></span></span></summary>
62
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; capture logged only after the delayed Admin write completed. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#11</code>.</div></div>
62
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-exact-create.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-exact-create.json</code></a>; capture logged only after the delayed Admin write completed. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L321" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#11</code>.</div></div>
63
63
  </details>
64
64
  <details class="compat-row" data-status="unverified">
65
65
  <summary class="compat-line"><span class="compat-dot" data-status="unverified" role="img" aria-label="Unverified" title="Unverified"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">A handler that throws or returns a rejected Promise is reported by the managed runtime; with retry disabled, the Eventarc request can still be acknowledged with HTTP 200.</span></span></span></summary>
@@ -67,7 +67,7 @@
67
67
  </details>
68
68
  <details class="compat-row" data-status="ok">
69
69
  <summary class="compat-line"><span class="compat-dot" data-status="ok" role="img" aria-label="Conforming" title="Conforming"></span><span class="compat-main"><code class="compat-api">onValueCreated(ref, handler)</code><span class="compat-sub"><span class="compat-behavior">Sequential creates are all delivered; their observed arrival order is evidence, not an ordering guarantee.</span></span></span></summary>
70
- <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; all three arrived in observed order 2, 1, 3. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L325" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#13</code>.</div></div>
70
+ <div class="compat-evidence"><div class="compat-probe">oracle: <a href="https://github.com/davideast/pyric/blob/main/packages/conformance/observations/functions-rtdb/functions-rtdb-onvaluecreated-wildcard-batches.json" target="_blank" rel="noopener noreferrer"><code>functions-rtdb-onvaluecreated-wildcard-batches.json</code></a>; all three arrived in observed order 2, 1, 3. Local replay: <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/functions-rtdb/oracle-conformance.test.ts#L323" target="_blank" rel="noopener noreferrer"><code>packages/cli/test/functions-rtdb/oracle-conformance.test.ts</code></a> assertion set <code>functions-rtdb#13</code>.</div></div>
71
71
  </details>
72
72
  </div>
73
73
 
@@ -49,7 +49,7 @@ html{scrollbar-gutter:stable}
49
49
 
50
50
 
51
51
 
52
- <table><thead><tr><th>In a server-rendered module</th><th><code>pyric({ hosted: true })</code></th><th>the default SharedWorker sandbox</th></tr></thead><tbody><tr><td><code>firebase/app</code>, <code>auth</code>, <code>database</code>, <code>firestore</code>, <code>storage</code></td><td>reach the dev server’s sandbox, signed in as the server’s own user, under your rules</td><td>each call fails with <code>failed-precondition</code>, naming <code>hosted: true</code></td></tr><tr><td><code>firebase/ai</code>, <code>firebase/messaging</code></td><td>each call fails with <code>failed-precondition</code></td><td>the same</td></tr><tr><td><code>firebase/app-check</code></td><td><code>initializeAppCheck</code> and token calls work in the server’s process; tokens are minted locally with production’s shape</td><td>the same</td></tr><tr><td><code>firebase/analytics</code>, <code>firestore/lite</code>, <code>functions</code>, <code>performance</code>, <code>remote-config</code></td><td>imports resolve; each call fails with <code>PyricDeferredApiError</code> naming the subpath</td><td>the same</td></tr><tr><td><code>firebase-admin/*</code></td><td>reaches the dev server’s sandbox as admin, past your rules</td><td>each call fails with <code>failed-precondition</code>, naming <code>hosted: true</code></td></tr></tbody></table></div>
52
+ <table><thead><tr><th>In a server-rendered module</th><th><code>pyric({ hosted: true })</code></th><th>the default SharedWorker sandbox</th></tr></thead><tbody><tr><td><code>firebase/app</code>, <code>auth</code>, <code>database</code>, <code>firestore</code>, <code>storage</code></td><td>reach the dev server’s sandbox, signed in as the server’s own user, under your rules</td><td>each call fails with <code>failed-precondition</code>, naming <code>hosted: true</code></td></tr><tr><td><code>firebase/ai</code>, <code>firebase/messaging</code></td><td>each call fails with <code>failed-precondition</code></td><td>the same</td></tr><tr><td><code>firebase/app-check</code></td><td><code>initializeAppCheck</code> with a <code>CustomProvider</code>, and token calls, work in the server’s process; tokens are minted locally with production’s shape, except that the <code>CustomProvider</code> is called when no debug token is set. A reCAPTCHA provider throws <code>ReferenceError: document is not defined</code>, as the Firebase SDK does on a server</td><td>the same</td></tr><tr><td><code>firebase/analytics</code>, <code>firestore/lite</code>, <code>functions</code>, <code>performance</code>, <code>remote-config</code></td><td>imports resolve; each call fails with <code>PyricDeferredApiError</code> naming the subpath</td><td>the same</td></tr><tr><td><code>firebase-admin/*</code></td><td>reaches the dev server’s sandbox as admin, past your rules</td><td>each call fails with <code>failed-precondition</code>, naming <code>hosted: true</code></td></tr></tbody></table></div>
53
53
  <p>Server code has one signed-in user for the whole dev server process, shared by every request, as a Node server that calls <code>initializeApp</code> has in production. Browser sessions are separate.</p>
54
54
  <p>Vite’s default externalization and <code>ssr.noExternal</code> both work. A server environment Vite does not run in its own Node process, such as a Cloudflare Workers runtime, gets a module that throws when it loads.</p>
55
55
  <p>The dev server’s network guard stays on for Firebase code the swap does not reach: other <code>firebase/*</code> subpaths, an installed package that imports <code>firebase</code> itself, and your Vite config’s own imports. The dev server log names each refused host.</p>
@@ -29,7 +29,7 @@ Under `vite dev`, modules Vite loads for server rendering get the swap too: `ser
29
29
  |---|---|---|
30
30
  | `firebase/app`, `auth`, `database`, `firestore`, `storage` | reach the dev server's sandbox, signed in as the server's own user, under your rules | each call fails with `failed-precondition`, naming `hosted: true` |
31
31
  | `firebase/ai`, `firebase/messaging` | each call fails with `failed-precondition` | the same |
32
- | `firebase/app-check` | `initializeAppCheck` and token calls work in the server's process; tokens are minted locally with production's shape | the same |
32
+ | `firebase/app-check` | `initializeAppCheck` with a `CustomProvider`, and token calls, work in the server's process; tokens are minted locally with production's shape, except that the `CustomProvider` is called when no debug token is set. A reCAPTCHA provider throws `ReferenceError: document is not defined`, as the Firebase SDK does on a server | the same |
33
33
  | `firebase/analytics`, `firestore/lite`, `functions`, `performance`, `remote-config` | imports resolve; each call fails with `PyricDeferredApiError` naming the subpath | the same |
34
34
  | `firebase-admin/*` | reaches the dev server's sandbox as admin, past your rules | each call fails with `failed-precondition`, naming `hosted: true` |
35
35
 
@@ -63,6 +63,7 @@ html{scrollbar-gutter:stable}
63
63
  <span class="line"></span>
64
64
  <span class="line"><span style="color:#7F848E;font-style:italic"># Run host and execute your application command with automatic interception</span></span>
65
65
  <span class="line"><span style="color:#61AFEF">npx</span><span style="color:#98C379"> pyric</span><span style="color:#98C379"> sandbox</span><span style="color:#D19A66"> --hosted</span><span style="color:#D19A66"> --</span><span style="color:#98C379"> npm</span><span style="color:#98C379"> run</span><span style="color:#98C379"> dev</span></span></code></pre>
66
+ <p><code>pyric sandbox</code> serves the directory <code>hosting.public</code> names. When that is a build output such as <code>dist</code>, run the build first. For a Vite dev server, set <code>pyric({ hosted: true })</code> in <code>vite.config.ts</code> instead, as the next section shows.</p>
66
67
  <p>When running <code>-- &#x3C;command></code>, Pyric automatically activates <code>@pyric/cli/register</code> in the child environment via <code>NODE_OPTIONS</code>. Unchanged <code>firebase-admin</code> imports in your child command connect to the Node host.</p>
67
68
  <p>Client Firebase SDKs in the child connect to the Node host too. <code>firebase/database</code>, <code>firebase/firestore</code>, <code>firebase/auth</code> and <code>firebase/storage</code> run as the process’s own signed-in user, so your rules apply to server code as they do in production. The app must use the same Firebase options as your pages. <code>firebase/ai</code> and <code>firebase/messaging</code> in a server process fail with <code>failed-precondition</code>; use <code>firebase-admin</code> for those. Against the browser-hosted sandbox (<code>pyric sandbox</code> without <code>--hosted</code>), client SDKs in a server process fail with <code>failed-precondition</code> and name the Node host.</p>
68
69
  <p>A process that used <code>firebase/database</code> stays running until it calls <code>goOffline()</code> or <code>deleteApp()</code>, as the production SDK keeps it running.</p>
@@ -38,6 +38,8 @@ npx pyric sandbox --hosted
38
38
  npx pyric sandbox --hosted -- npm run dev
39
39
  ```
40
40
 
41
+ `pyric sandbox` serves the directory `hosting.public` names. When that is a build output such as `dist`, run the build first. For a Vite dev server, set `pyric({ hosted: true })` in `vite.config.ts` instead, as the next section shows.
42
+
41
43
  When running `-- <command>`, Pyric automatically activates `@pyric/cli/register` in the child environment via `NODE_OPTIONS`. Unchanged `firebase-admin` imports in your child command connect to the Node host.
42
44
 
43
45
  Client Firebase SDKs in the child connect to the Node host too. `firebase/database`, `firebase/firestore`, `firebase/auth` and `firebase/storage` run as the process's own signed-in user, so your rules apply to server code as they do in production. The app must use the same Firebase options as your pages. `firebase/ai` and `firebase/messaging` in a server process fail with `failed-precondition`; use `firebase-admin` for those. Against the browser-hosted sandbox (`pyric sandbox` without `--hosted`), client SDKs in a server process fail with `failed-precondition` and name the Node host.
@@ -807,6 +807,11 @@
807
807
  "group": "Build",
808
808
  "section": "",
809
809
  "headings": [
810
+ {
811
+ "depth": 2,
812
+ "slug": "initialize-app-check-before-getai",
813
+ "text": "Initialize App Check before getAI"
814
+ },
810
815
  {
811
816
  "depth": 2,
812
817
  "slug": "start-with-deterministic-responses",
@@ -2042,6 +2047,11 @@
2042
2047
  "slug": "error-envelopes",
2043
2048
  "text": "Error envelopes"
2044
2049
  },
2050
+ {
2051
+ "depth": 2,
2052
+ "slug": "requests-checked-against-production-captures",
2053
+ "text": "Requests checked against production captures"
2054
+ },
2045
2055
  {
2046
2056
  "depth": 2,
2047
2057
  "slug": "response-helpers-enhancedgeneratecontentresponse",
@@ -2072,6 +2082,11 @@
2072
2082
  "slug": "app-check-on-the-ai-path",
2073
2083
  "text": "App Check on the AI path"
2074
2084
  },
2085
+ {
2086
+ "depth": 2,
2087
+ "slug": "app-check-in-sandbox-ai-mode",
2088
+ "text": "App Check in sandbox AI mode"
2089
+ },
2075
2090
  {
2076
2091
  "depth": 2,
2077
2092
  "slug": "current-gaps",
@@ -2082,6 +2097,11 @@
2082
2097
  "slug": "documented-divergences",
2083
2098
  "text": "Documented divergences"
2084
2099
  },
2100
+ {
2101
+ "depth": 3,
2102
+ "slug": "bugs",
2103
+ "text": "Bugs"
2104
+ },
2085
2105
  {
2086
2106
  "depth": 2,
2087
2107
  "slug": "reviewed-public-runtime-gaps",
@@ -2227,6 +2247,11 @@
2227
2247
  "slug": "documented-divergences",
2228
2248
  "text": "Documented divergences"
2229
2249
  },
2250
+ {
2251
+ "depth": 3,
2252
+ "slug": "bugs",
2253
+ "text": "Bugs"
2254
+ },
2230
2255
  {
2231
2256
  "depth": 3,
2232
2257
  "slug": "not-implemented-yet",
@@ -2397,6 +2422,11 @@
2397
2422
  "slug": "server-rendered-modules-under-vite-dev",
2398
2423
  "text": "Server-rendered modules under vite dev"
2399
2424
  },
2425
+ {
2426
+ "depth": 2,
2427
+ "slug": "behavior-checked-against-production-captures",
2428
+ "text": "Behavior checked against production captures"
2429
+ },
2400
2430
  {
2401
2431
  "depth": 2,
2402
2432
  "slug": "current-gaps",
@@ -2406,6 +2436,11 @@
2406
2436
  "depth": 3,
2407
2437
  "slug": "documented-divergences",
2408
2438
  "text": "Documented divergences"
2439
+ },
2440
+ {
2441
+ "depth": 3,
2442
+ "slug": "bugs",
2443
+ "text": "Bugs"
2409
2444
  }
2410
2445
  ],
2411
2446
  "excerpt": "<div class=\"compat-stat\"> <p class=\"compat-stat-figure\"> <span class=\"compat-stat-pct\">100%</span> <span class=\"compat-stat-label\">of the public API supported</span> </p> <div class=\"compat-meters\"> <span class=\"compat-meter-track\"><span class=\"compat-meter-fill\" style=\"width: 100%\"></span></span> </div> <p class=\"compat-stat-denom\">182 of 182 public API</p> </div>"
@@ -2522,6 +2557,11 @@
2522
2557
  "slug": "server-rendered-modules-under-vite-dev",
2523
2558
  "text": "Server-rendered modules under vite dev"
2524
2559
  },
2560
+ {
2561
+ "depth": 2,
2562
+ "slug": "behavior-checked-against-production-captures",
2563
+ "text": "Behavior checked against production captures"
2564
+ },
2525
2565
  {
2526
2566
  "depth": 2,
2527
2567
  "slug": "current-gaps",
@@ -2531,6 +2571,11 @@
2531
2571
  "depth": 3,
2532
2572
  "slug": "documented-divergences",
2533
2573
  "text": "Documented divergences"
2574
+ },
2575
+ {
2576
+ "depth": 3,
2577
+ "slug": "bugs",
2578
+ "text": "Bugs"
2534
2579
  }
2535
2580
  ],
2536
2581
  "excerpt": "<div class=\"compat-stat\"> <p class=\"compat-stat-figure\"> <span class=\"compat-stat-pct\">100%</span> <span class=\"compat-stat-label\">of the public API supported</span> </p> <div class=\"compat-meters\"> <span class=\"compat-meter-track\"><span class=\"compat-meter-fill\" style=\"width: 100%\"></span></span> </div> <p class=\"compat-stat-denom\">59 of 59 public API</p> </div>"
@@ -2797,6 +2842,11 @@
2797
2842
  "slug": "firebase-admin-getappcheck",
2798
2843
  "text": "firebase-admin getAppCheck()"
2799
2844
  },
2845
+ {
2846
+ "depth": 2,
2847
+ "slug": "firebase-admin-createtoken-options-checked-against-production-captures",
2848
+ "text": "firebase-admin createToken options, checked against production captures"
2849
+ },
2800
2850
  {
2801
2851
  "depth": 2,
2802
2852
  "slug": "current-gaps",
@@ -2807,6 +2857,11 @@
2807
2857
  "slug": "documented-divergences",
2808
2858
  "text": "Documented divergences"
2809
2859
  },
2860
+ {
2861
+ "depth": 3,
2862
+ "slug": "bugs",
2863
+ "text": "Bugs"
2864
+ },
2810
2865
  {
2811
2866
  "depth": 3,
2812
2867
  "slug": "not-implemented-yet",
@@ -2886,11 +2941,6 @@
2886
2941
  "depth": 3,
2887
2942
  "slug": "documented-divergences",
2888
2943
  "text": "Documented divergences"
2889
- },
2890
- {
2891
- "depth": 3,
2892
- "slug": "unverified",
2893
- "text": "Unverified"
2894
2944
  }
2895
2945
  ],
2896
2946
  "excerpt": "<div class=\"compat-stat\"> <p class=\"compat-stat-surface\">This is a Pyric-native API with no Firebase counterpart, so coverage is measured against its own public exports rather than a Firebase surface.</p> </div>"
@@ -307,7 +307,7 @@ html{scrollbar-gutter:stable}
307
307
  <div class="compat-list">
308
308
  <details class="compat-row" data-status="diverged">
309
309
  <summary class="compat-line"><span class="compat-dot" data-status="diverged" role="img" aria-label="Diverged (documented)" title="Diverged (documented)"></span><span class="compat-main"><code class="compat-api">getMessaging(app) in a registered server process</code><span class="compat-sub"><span class="compat-behavior">Under a remote register activation, <code>getMessaging(app)</code> in a server process fails with <code>failed-precondition</code> and a message that names the client services that do reach the Node host: <code>firebase/messaging</code> has no path to the host, and no in-process sandbox stands in for it.</span></span></span></summary>
310
- <div class="compat-evidence"><div class="compat-probe">App scenario <code>test/apps/client-sdk-under-register</code> calls it under <code>node --import @pyric/cli/register</code> against a hosted Vite dev server and asserts the refusal; on main (942cb175) it returned a handle on a private in-process sandbox. <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/mapping.test.ts#L80" target="_blank" rel="noopener noreferrer"><code>mapping.test.ts</code></a> pins that the subpath keeps its mirror under a remote activation, and <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/node-origin.test.ts#L2" target="_blank" rel="noopener noreferrer"><code>node-origin.test.ts</code></a> that a mirror resolved from such an app refuses. (Structured evidence: <a href="https://github.com/davideast/pyric/blob/main/test/apps/client-sdk-under-register/scenario.ts#L1" target="_blank" rel="noopener noreferrer"><code>scenario.ts</code></a>, <a href="https://github.com/davideast/pyric/blob/main/packages/pyric/test/messaging/oracle-conformance.test.ts#L479" target="_blank" rel="noopener noreferrer"><code>oracle-conformance.test.ts</code></a>)</div>
310
+ <div class="compat-evidence"><div class="compat-probe">App scenario <code>test/apps/client-sdk-under-register</code> calls it under <code>node --import @pyric/cli/register</code> against a hosted Vite dev server and asserts the refusal; on main (942cb175) it returned a handle on a private in-process sandbox. <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/mapping.test.ts#L78" target="_blank" rel="noopener noreferrer"><code>mapping.test.ts</code></a> pins that the subpath keeps its mirror under a remote activation, and <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/node-origin.test.ts#L2" target="_blank" rel="noopener noreferrer"><code>node-origin.test.ts</code></a> that a mirror resolved from such an app refuses. (Structured evidence: <a href="https://github.com/davideast/pyric/blob/main/test/apps/client-sdk-under-register/scenario.ts#L1" target="_blank" rel="noopener noreferrer"><code>scenario.ts</code></a>, <a href="https://github.com/davideast/pyric/blob/main/packages/pyric/test/messaging/oracle-conformance.test.ts#L479" target="_blank" rel="noopener noreferrer"><code>oracle-conformance.test.ts</code></a>)</div>
311
311
  <div class="compat-note">refused in a server process; production runs it in Node</div></div>
312
312
  </details>
313
313
  <details class="compat-row" data-status="diverged">
@@ -321,7 +321,7 @@ html{scrollbar-gutter:stable}
321
321
  <p>Known differences between Pyric and production Firebase. Each remains tracked as a non-conforming row.</p>
322
322
  <div class="compat-list">
323
323
  <details class="compat-row" data-status="diverged"><summary class="compat-line"><span class="compat-dot" data-status="diverged" role="img" aria-label="Diverged (documented)" title="Diverged (documented)"></span><span class="compat-main"><code class="compat-api">getMessaging(app) in a registered server process</code><span class="compat-sub"><span class="compat-behavior">Under a remote register activation, <code>getMessaging(app)</code> in a server process fails with <code>failed-precondition</code> and a message that names the client services that do reach the Node host: <code>firebase/messaging</code> has no path to the host, and no in-process sandbox stands in for it.</span></span></span></summary>
324
- <div class="compat-evidence"><div class="compat-note">App scenario <code>test/apps/client-sdk-under-register</code> calls it under <code>node --import @pyric/cli/register</code> against a hosted Vite dev server and asserts the refusal; on main (942cb175) it returned a handle on a private in-process sandbox. <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/mapping.test.ts#L80" target="_blank" rel="noopener noreferrer"><code>mapping.test.ts</code></a> pins that the subpath keeps its mirror under a remote activation, and <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/node-origin.test.ts#L2" target="_blank" rel="noopener noreferrer"><code>node-origin.test.ts</code></a> that a mirror resolved from such an app refuses. (Structured evidence: <a href="https://github.com/davideast/pyric/blob/main/test/apps/client-sdk-under-register/scenario.ts#L1" target="_blank" rel="noopener noreferrer"><code>scenario.ts</code></a>, <a href="https://github.com/davideast/pyric/blob/main/packages/pyric/test/messaging/oracle-conformance.test.ts#L479" target="_blank" rel="noopener noreferrer"><code>oracle-conformance.test.ts</code></a>)</div></div></details>
324
+ <div class="compat-evidence"><div class="compat-note">App scenario <code>test/apps/client-sdk-under-register</code> calls it under <code>node --import @pyric/cli/register</code> against a hosted Vite dev server and asserts the refusal; on main (942cb175) it returned a handle on a private in-process sandbox. <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/mapping.test.ts#L78" target="_blank" rel="noopener noreferrer"><code>mapping.test.ts</code></a> pins that the subpath keeps its mirror under a remote activation, and <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/node-origin.test.ts#L2" target="_blank" rel="noopener noreferrer"><code>node-origin.test.ts</code></a> that a mirror resolved from such an app refuses. (Structured evidence: <a href="https://github.com/davideast/pyric/blob/main/test/apps/client-sdk-under-register/scenario.ts#L1" target="_blank" rel="noopener noreferrer"><code>scenario.ts</code></a>, <a href="https://github.com/davideast/pyric/blob/main/packages/pyric/test/messaging/oracle-conformance.test.ts#L479" target="_blank" rel="noopener noreferrer"><code>oracle-conformance.test.ts</code></a>)</div></div></details>
325
325
  <details class="compat-row" data-status="diverged"><summary class="compat-line"><span class="compat-dot" data-status="diverged" role="img" aria-label="Diverged (documented)" title="Diverged (documented)"></span><span class="compat-main"><code class="compat-api">getMessaging(app) in a server-rendered module under vite dev</code><span class="compat-sub"><span class="compat-behavior">Under <code>vite dev</code>, <code>getMessaging(app)</code> in a server-rendered module fails with <code>failed-precondition</code>, naming the client services that reach the host: <code>firebase/messaging</code> has no path to the dev server's host from server code, and the real SDK does not load.</span></span></span></summary>
326
326
  <div class="compat-evidence"><div class="compat-note">App scenario <code>test/apps/vite-ssr-client-sdk</code> calls it in SSR on a hosted dev server and asserts the refusal. On main (ba2c0bf0a) it was the real SDK. <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/serve/vite-module-swap.test.ts#L4" target="_blank" rel="noopener noreferrer"><code>vite-module-swap.test.ts</code></a> pins the routing. (Structured evidence: <a href="https://github.com/davideast/pyric/blob/main/test/apps/vite-ssr-client-sdk/scenario.ts#L1" target="_blank" rel="noopener noreferrer"><code>scenario.ts</code></a>, <a href="https://github.com/davideast/pyric/blob/main/packages/pyric/test/messaging/oracle-conformance.test.ts#L493" target="_blank" rel="noopener noreferrer"><code>oracle-conformance.test.ts</code></a>)</div></div></details>
327
327
  </div>
@@ -330,7 +330,7 @@
330
330
  <div class="compat-list">
331
331
  <details class="compat-row" data-status="diverged">
332
332
  <summary class="compat-line"><span class="compat-dot" data-status="diverged" role="img" aria-label="Diverged (documented)" title="Diverged (documented)"></span><span class="compat-main"><code class="compat-api">getMessaging(app) in a registered server process</code><span class="compat-sub"><span class="compat-behavior">Under a remote register activation, <code>getMessaging(app)</code> in a server process fails with <code>failed-precondition</code> and a message that names the client services that do reach the Node host: <code>firebase/messaging</code> has no path to the host, and no in-process sandbox stands in for it.</span></span></span></summary>
333
- <div class="compat-evidence"><div class="compat-probe">App scenario <code>test/apps/client-sdk-under-register</code> calls it under <code>node --import @pyric/cli/register</code> against a hosted Vite dev server and asserts the refusal; on main (942cb175) it returned a handle on a private in-process sandbox. <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/mapping.test.ts#L80" target="_blank" rel="noopener noreferrer"><code>mapping.test.ts</code></a> pins that the subpath keeps its mirror under a remote activation, and <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/node-origin.test.ts#L2" target="_blank" rel="noopener noreferrer"><code>node-origin.test.ts</code></a> that a mirror resolved from such an app refuses. (Structured evidence: <a href="https://github.com/davideast/pyric/blob/main/test/apps/client-sdk-under-register/scenario.ts#L1" target="_blank" rel="noopener noreferrer"><code>scenario.ts</code></a>, <a href="https://github.com/davideast/pyric/blob/main/packages/pyric/test/messaging/oracle-conformance.test.ts#L479" target="_blank" rel="noopener noreferrer"><code>oracle-conformance.test.ts</code></a>)</div>
333
+ <div class="compat-evidence"><div class="compat-probe">App scenario <code>test/apps/client-sdk-under-register</code> calls it under <code>node --import @pyric/cli/register</code> against a hosted Vite dev server and asserts the refusal; on main (942cb175) it returned a handle on a private in-process sandbox. <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/mapping.test.ts#L78" target="_blank" rel="noopener noreferrer"><code>mapping.test.ts</code></a> pins that the subpath keeps its mirror under a remote activation, and <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/node-origin.test.ts#L2" target="_blank" rel="noopener noreferrer"><code>node-origin.test.ts</code></a> that a mirror resolved from such an app refuses. (Structured evidence: <a href="https://github.com/davideast/pyric/blob/main/test/apps/client-sdk-under-register/scenario.ts#L1" target="_blank" rel="noopener noreferrer"><code>scenario.ts</code></a>, <a href="https://github.com/davideast/pyric/blob/main/packages/pyric/test/messaging/oracle-conformance.test.ts#L479" target="_blank" rel="noopener noreferrer"><code>oracle-conformance.test.ts</code></a>)</div>
334
334
  <div class="compat-note">refused in a server process; production runs it in Node</div></div>
335
335
  </details>
336
336
  <details class="compat-row" data-status="diverged">
@@ -348,7 +348,7 @@ Known differences between Pyric and production Firebase. Each remains tracked as
348
348
 
349
349
  <div class="compat-list">
350
350
  <details class="compat-row" data-status="diverged"><summary class="compat-line"><span class="compat-dot" data-status="diverged" role="img" aria-label="Diverged (documented)" title="Diverged (documented)"></span><span class="compat-main"><code class="compat-api">getMessaging(app) in a registered server process</code><span class="compat-sub"><span class="compat-behavior">Under a remote register activation, <code>getMessaging(app)</code> in a server process fails with <code>failed-precondition</code> and a message that names the client services that do reach the Node host: <code>firebase/messaging</code> has no path to the host, and no in-process sandbox stands in for it.</span></span></span></summary>
351
- <div class="compat-evidence"><div class="compat-note">App scenario <code>test/apps/client-sdk-under-register</code> calls it under <code>node --import @pyric/cli/register</code> against a hosted Vite dev server and asserts the refusal; on main (942cb175) it returned a handle on a private in-process sandbox. <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/mapping.test.ts#L80" target="_blank" rel="noopener noreferrer"><code>mapping.test.ts</code></a> pins that the subpath keeps its mirror under a remote activation, and <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/node-origin.test.ts#L2" target="_blank" rel="noopener noreferrer"><code>node-origin.test.ts</code></a> that a mirror resolved from such an app refuses. (Structured evidence: <a href="https://github.com/davideast/pyric/blob/main/test/apps/client-sdk-under-register/scenario.ts#L1" target="_blank" rel="noopener noreferrer"><code>scenario.ts</code></a>, <a href="https://github.com/davideast/pyric/blob/main/packages/pyric/test/messaging/oracle-conformance.test.ts#L479" target="_blank" rel="noopener noreferrer"><code>oracle-conformance.test.ts</code></a>)</div></div></details>
351
+ <div class="compat-evidence"><div class="compat-note">App scenario <code>test/apps/client-sdk-under-register</code> calls it under <code>node --import @pyric/cli/register</code> against a hosted Vite dev server and asserts the refusal; on main (942cb175) it returned a handle on a private in-process sandbox. <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/mapping.test.ts#L78" target="_blank" rel="noopener noreferrer"><code>mapping.test.ts</code></a> pins that the subpath keeps its mirror under a remote activation, and <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/register/node-origin.test.ts#L2" target="_blank" rel="noopener noreferrer"><code>node-origin.test.ts</code></a> that a mirror resolved from such an app refuses. (Structured evidence: <a href="https://github.com/davideast/pyric/blob/main/test/apps/client-sdk-under-register/scenario.ts#L1" target="_blank" rel="noopener noreferrer"><code>scenario.ts</code></a>, <a href="https://github.com/davideast/pyric/blob/main/packages/pyric/test/messaging/oracle-conformance.test.ts#L479" target="_blank" rel="noopener noreferrer"><code>oracle-conformance.test.ts</code></a>)</div></div></details>
352
352
  <details class="compat-row" data-status="diverged"><summary class="compat-line"><span class="compat-dot" data-status="diverged" role="img" aria-label="Diverged (documented)" title="Diverged (documented)"></span><span class="compat-main"><code class="compat-api">getMessaging(app) in a server-rendered module under vite dev</code><span class="compat-sub"><span class="compat-behavior">Under <code>vite dev</code>, <code>getMessaging(app)</code> in a server-rendered module fails with <code>failed-precondition</code>, naming the client services that reach the host: <code>firebase/messaging</code> has no path to the dev server's host from server code, and the real SDK does not load.</span></span></span></summary>
353
353
  <div class="compat-evidence"><div class="compat-note">App scenario <code>test/apps/vite-ssr-client-sdk</code> calls it in SSR on a hosted dev server and asserts the refusal. On main (ba2c0bf0a) it was the real SDK. <a href="https://github.com/davideast/pyric/blob/main/packages/cli/test/serve/vite-module-swap.test.ts#L4" target="_blank" rel="noopener noreferrer"><code>vite-module-swap.test.ts</code></a> pins the routing. (Structured evidence: <a href="https://github.com/davideast/pyric/blob/main/test/apps/vite-ssr-client-sdk/scenario.ts#L1" target="_blank" rel="noopener noreferrer"><code>scenario.ts</code></a>, <a href="https://github.com/davideast/pyric/blob/main/packages/pyric/test/messaging/oracle-conformance.test.ts#L493" target="_blank" rel="noopener noreferrer"><code>oracle-conformance.test.ts</code></a>)</div></div></details>
354
354
  </div>
@@ -377,7 +377,9 @@ every event is <code>data: &#x3C;complete JSON></code>, events separated by CRLF
377
377
  <p><a id="lastusertext"></a></p>
378
378
  <h3 id="lastusertext">lastUserText()</h3>
379
379
  <pre class="astro-code one-dark-pro" style="background-color:#282c34;color:#abb2bf; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#C678DD">function</span><span style="color:#61AFEF"> lastUserText</span><span style="color:#ABB2BF">(</span><span style="color:#E06C75;font-style:italic">req</span><span style="color:#ABB2BF">: </span><span style="color:#E5C07B">GenerateContentRequest</span><span style="color:#ABB2BF">): </span><span style="color:#E5C07B">string</span><span style="color:#ABB2BF">;</span></span></code></pre>
380
- <p>Text of the last <code>user</code> turn — what string/regex matchers run against.</p>
380
+ <p>Text of the last <code>user</code> turn — what string/regex matchers run against.
381
+ A function response turn rides under role <code>user</code> too (#1410); it carries
382
+ a tool result, not a prompt, so it is skipped.</p>
381
383
  <h4 id="parameters-3">Parameters</h4>
382
384
  <div class="table-scroll">
383
385
 
@@ -228,6 +228,8 @@ function lastUserText(req: GenerateContentRequest): string;
228
228
  ```
229
229
 
230
230
  Text of the last `user` turn — what string/regex matchers run against.
231
+ A function response turn rides under role `user` too (#1410); it carries
232
+ a tool result, not a prompt, so it is skipped.
231
233
 
232
234
  #### Parameters
233
235