@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
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Swap or stop (ADR 0022): under the register, `firebase` and `firebase-admin`
3
+ * imports resolve to the sandbox. When a resolve lands in the real SDK anyway,
4
+ * through an absolute path, an npm alias, a link under another name, or a
5
+ * direct `@firebase/*` import, the import stops before the file loads. The
6
+ * real SDK never runs, so it never reaches production with this machine's
7
+ * credentials.
8
+ *
9
+ * The package is named by the resolved file's own `package.json`
10
+ * (`package-identity.ts`), never by its folder. Only files under a
11
+ * `node_modules` directory are checked: every installed SDK lives under one,
12
+ * including the pnpm and bun stores, and the check stays off the resolve path
13
+ * for everything else.
14
+ *
15
+ * The real SDK is allowed only where the swap table chooses it
16
+ * (`choosesRealFirebase` in `mapping.ts`), or when an SDK file this hook
17
+ * already allowed imports what its entry needs: a firebase-admin file
18
+ * reaches only the verifier bridge pair's files, and a client SDK file only
19
+ * the `@firebase/*` packages the production AI entries import. The importer's
20
+ * URL alone is no proof, since `createRequire` can name any file, so each
21
+ * hook keeps the URLs it allowed. In sandbox AI mode that set stays empty.
22
+ * `firebase-admin` is never chosen, with one exception: the App Check verifier
23
+ * bridge that production AI mode loads on pyric's behalf (#1552), whose
24
+ * firebase-admin app holds no credentials. An app's own import of the real
25
+ * package still stops. `PYRIC_GUARD` does not change any of this: the stop
26
+ * belongs to the swap, not to the network guard.
27
+ *
28
+ * Loaded by both resolve hooks, including the loader-thread one, so it imports
29
+ * node built-ins and side-effect-free modules only.
30
+ */
31
+ import { fileURLToPath } from 'node:url';
32
+ import { packageNameOf, pathInPackageOf } from './package-identity.js';
33
+ import { choosesRealFirebase } from './mapping.js';
34
+ import {
35
+ SDK_MODULES,
36
+ isAdminBridgeFile,
37
+ isBypassedBridgeImport,
38
+ isProductionAiSdkPackage,
39
+ resolveAiMode,
40
+ type AiMode,
41
+ } from '../serve/firebase-module-swap.js';
42
+
43
+ /** The code on the error a stopped import throws. */
44
+ export const REAL_SDK_STOPPED_CODE = 'PYRIC_REAL_SDK_STOPPED';
45
+
46
+ const LOG_PREFIX = '@pyric/cli/register';
47
+ const REPORT_URL = 'https://github.com/davideast/pyric/issues/new';
48
+
49
+ /** One resolve the register finished: what was asked, by whom, and where it landed. */
50
+ export interface ResolvedLoad {
51
+ readonly specifier: string;
52
+ /** The canonical name of a Turbopack-renamed specifier, when it is one. */
53
+ readonly canonical?: string | null;
54
+ readonly importer: string | undefined;
55
+ readonly url: string;
56
+ /** Defaults to the mode `PYRIC_AI_MODE` and `PYRIC_AI_PASSTHROUGH` select. */
57
+ readonly aiMode?: AiMode;
58
+ /** Defaults to the manifest lookup in `package-identity.ts`. */
59
+ readonly nameOf?: (url: string) => string | null;
60
+ /** Defaults to `pathInPackageOf` in `package-identity.ts`. */
61
+ readonly pathInPackage?: (url: string, packageName: string) => string | null;
62
+ }
63
+
64
+ type SdkFamily = 'admin' | 'client';
65
+
66
+ /** `firebase-admin` is the admin SDK; `firebase` and every `@firebase/*` package are the client SDK. */
67
+ function sdkFamilyOf(name: string | null): SdkFamily | null {
68
+ if (name === 'firebase-admin') return 'admin';
69
+ const isClientPackage = name === 'firebase' || (name?.startsWith('@firebase/') ?? false);
70
+ return isClientPackage ? 'client' : null;
71
+ }
72
+
73
+ function isInstalledFile(url: string): boolean {
74
+ return url.startsWith('file:') && url.includes('/node_modules/');
75
+ }
76
+
77
+ /**
78
+ * Whether this load is an SDK file the hook already allowed, importing what
79
+ * that SDK entry needs: a firebase-admin file reaches only the files of the
80
+ * verifier bridge's `firebase-admin/app` and `firebase-admin/app-check`, and a
81
+ * client SDK file only the `@firebase/*` packages that `firebase/ai`,
82
+ * `firebase/app` and `firebase/app-check` import. So a `createRequire` forge
83
+ * from an allowed file gets no further than the entry it came from.
84
+ */
85
+ function isFromAllowedSdkFile(load: ResolvedLoad, packageName: string, allowedUrls: ReadonlySet<string>): boolean {
86
+ const importer = load.importer;
87
+ const isAllowedImporter = importer !== undefined && allowedUrls.has(importer);
88
+ if (!isAllowedImporter) return false;
89
+ const importerFamily = sdkFamilyOf((load.nameOf ?? packageNameOf)(importer));
90
+ if (importerFamily === 'client') return isProductionAiSdkPackage(packageName);
91
+ const isAdminTarget = importerFamily === 'admin' && packageName === 'firebase-admin';
92
+ if (!isAdminTarget) return false;
93
+ const pathOf = load.pathInPackage ?? pathInPackageOf;
94
+ return isAdminBridgeFile(pathOf(load.url, packageName));
95
+ }
96
+
97
+ /** Whether this load may reach the real SDK. */
98
+ function isAllowedRealLoad(load: ResolvedLoad, packageName: string, family: SdkFamily, allowedUrls: ReadonlySet<string>): boolean {
99
+ if (isFromAllowedSdkFile(load, packageName, allowedUrls)) return true;
100
+ const specifier = load.canonical ?? load.specifier;
101
+ const aiMode = load.aiMode ?? resolveAiMode(undefined, process.env);
102
+ if (family === 'admin') return isBypassedBridgeImport(specifier, load.importer, aiMode);
103
+ const pathOf = load.pathInPackage ?? pathInPackageOf;
104
+ return choosesRealFirebase({
105
+ specifier,
106
+ importer: load.importer,
107
+ packageName,
108
+ pathInPackage: () => pathOf(load.url, packageName),
109
+ aiMode,
110
+ });
111
+ }
112
+
113
+ /** The served `firebase/*` import that stands for a `@firebase/*` package, when pyric serves one. */
114
+ function servedImportFor(packageName: string): string | null {
115
+ const candidate = `firebase/${packageName.slice('@firebase/'.length)}`;
116
+ const isServed = (SDK_MODULES as readonly string[]).includes(candidate);
117
+ return isServed ? candidate : null;
118
+ }
119
+
120
+ /** The import an app writes in place of the one that stopped. */
121
+ function fixFor(family: SdkFamily, packageName: string): string {
122
+ if (family === 'admin') {
123
+ return "import firebase-admin by its package name (for example 'firebase-admin/app'), so the register routes it to the sandbox";
124
+ }
125
+ if (packageName === 'firebase') {
126
+ return "import firebase by its package name (for example 'firebase/firestore'), so the register routes it to the sandbox";
127
+ }
128
+ const served = servedImportFor(packageName);
129
+ if (served === null) {
130
+ return `pyric serves no firebase/* import for '${packageName}', so import a served one (for example 'firebase/firestore'), or move this code out of the sandboxed process`;
131
+ }
132
+ return `import '${served}' instead of '${packageName}', so the register routes it to the sandbox`;
133
+ }
134
+
135
+ function stopMessage(load: ResolvedLoad, family: SdkFamily, packageName: string): string {
136
+ const consequence = family === 'admin'
137
+ ? "so it would have run with this machine's Google credentials"
138
+ : "so it would have reached production with the app's API key";
139
+ return [
140
+ `${LOG_PREFIX}: stopped loading the real ${packageName}`,
141
+ ` import '${load.specifier}'`,
142
+ ` from ${load.importer ?? 'the entry point'}`,
143
+ ` found ${load.url}`,
144
+ `Under pyric, ${packageName} resolves to the sandbox. This import didn't, ${consequence}.`,
145
+ `Fix: ${fixFor(family, packageName)}. To run the real SDK, start this process without @pyric/cli/register.`,
146
+ `If pyric should have routed this import, report it: ${REPORT_URL}`,
147
+ `code: ${REAL_SDK_STOPPED_CODE}`,
148
+ ].join('\n');
149
+ }
150
+
151
+ /**
152
+ * Whether this load is Node 22 resolving again a CommonJS file this hook
153
+ * already allowed. Node 22 resolves a CommonJS file imported from ESM a second
154
+ * time, by its own path and with no importer; Node 24 does not. That second
155
+ * pass loads nothing new, so it goes ahead. An app's import of the same file
156
+ * names its importer, so it still stops.
157
+ */
158
+ function isCjsReloadOfAllowedFile(load: ResolvedLoad, allowedUrls: ReadonlySet<string>): boolean {
159
+ const hasNoImporter = load.importer === undefined;
160
+ const wasAllowed = allowedUrls.has(load.url);
161
+ if (!hasNoImporter || !wasAllowed) return false;
162
+ return load.specifier === fileURLToPath(load.url);
163
+ }
164
+
165
+ /**
166
+ * The error that stops this load, or `null` when the load may go ahead: it is
167
+ * not the real SDK, or the swap table chose the real SDK here. `allowedUrls`
168
+ * is the calling hook's record of the real SDK files it allowed; an allowed
169
+ * load joins it.
170
+ */
171
+ export function stopFor(load: ResolvedLoad, allowedUrls: Set<string>): Error | null {
172
+ if (!isInstalledFile(load.url)) return null;
173
+ const packageName = (load.nameOf ?? packageNameOf)(load.url);
174
+ const family = sdkFamilyOf(packageName);
175
+ if (family === null || packageName === null) return null;
176
+ if (isCjsReloadOfAllowedFile(load, allowedUrls)) return null;
177
+ if (isAllowedRealLoad(load, packageName, family, allowedUrls)) {
178
+ allowedUrls.add(load.url);
179
+ return null;
180
+ }
181
+ const error = new Error(stopMessage(load, family, packageName));
182
+ return Object.assign(error, { code: REAL_SDK_STOPPED_CODE, url: load.url, specifier: load.specifier });
183
+ }
184
+
185
+ /** Writes each stop to stderr once per file, so a caught import still shows in the log. */
186
+ export function createStopReporter(write: (line: string) => void): (error: Error) => void {
187
+ const reported = new Set<string>();
188
+ return (error) => {
189
+ const url = (error as { url?: string }).url ?? error.message;
190
+ if (reported.has(url)) return;
191
+ reported.add(url);
192
+ write(`${error.message}\n`);
193
+ };
194
+ }
@@ -0,0 +1,90 @@
1
+ /**
2
+ * The register in worker threads.
3
+ *
4
+ * Built-in modules and resolve hooks are per thread, so the swap, the stop
5
+ * and the network guard have to be installed inside each worker as well. The
6
+ * register installs this wrapper whatever `PYRIC_GUARD` says. Node runs `--import` preloads (from the command
7
+ * line or `NODE_OPTIONS`) in a worker built from a file, a `data:` URL or ESM
8
+ * source, and the register then activates there as it does on the main
9
+ * thread. Two kinds of worker skip it:
10
+ *
11
+ * - a worker built from CommonJS source with `eval: true`, which never runs
12
+ * preloads;
13
+ * - a worker given its own `execArgv`, when the register came from the
14
+ * command line rather than `NODE_OPTIONS`.
15
+ *
16
+ * Wrapping `worker_threads.Worker` closes both. The worker still activates
17
+ * the register only under its own `PYRIC_SANDBOX`, exactly as the main thread
18
+ * does, so a worker the caller started outside the sandbox stays outside it.
19
+ */
20
+ import Module, { createRequire } from 'node:module';
21
+ import { fileURLToPath } from 'node:url';
22
+
23
+ /** The `Worker` options this module reads. */
24
+ interface WorkerOptionsLike {
25
+ eval?: unknown;
26
+ execArgv?: unknown;
27
+ }
28
+
29
+ type WorkerConstructor = new (source: unknown, options?: unknown) => object;
30
+
31
+ /** Marks a `Worker` this module already wrapped. */
32
+ const GUARDED_WORKER = Symbol.for('pyric.guardedWorker');
33
+
34
+ /** A `'use strict'` directive, which must stay the first statement. */
35
+ const USE_STRICT = /^(\s*(['"])use strict\2;?[ \t]*\n?)/;
36
+
37
+ /**
38
+ * The arguments to build the worker with, so that it loads the register at
39
+ * `registerUrl`. Returns new values and never changes the caller's.
40
+ */
41
+ export function guardWorkerArguments(
42
+ source: unknown,
43
+ options: WorkerOptionsLike | undefined,
44
+ registerUrl: string,
45
+ ): [unknown, WorkerOptionsLike | undefined] {
46
+ let guardedSource = source;
47
+ let guardedOptions = options;
48
+ if (options?.eval === true && typeof source === 'string') {
49
+ guardedSource = withRegisterPrefix(source, registerUrl);
50
+ }
51
+ if (Array.isArray(options?.execArgv) && !options.execArgv.includes(registerUrl)) {
52
+ guardedOptions = { ...options, execArgv: [...options.execArgv, '--import', registerUrl] };
53
+ }
54
+ return [guardedSource, guardedOptions];
55
+ }
56
+
57
+ /**
58
+ * Eval source that first loads the register. `require` exists only when Node
59
+ * runs the source as CommonJS; ESM source already ran the preload, and the
60
+ * prefix does nothing there.
61
+ */
62
+ function withRegisterPrefix(source: string, registerUrl: string): string {
63
+ const prefix = `typeof require === 'function' && require(${JSON.stringify(fileURLToPath(registerUrl))});\n`;
64
+ const directive = USE_STRICT.exec(source)?.[1];
65
+ if (directive === undefined) return `${prefix}${source}`;
66
+ const separator = directive.endsWith('\n') ? '' : '\n';
67
+ return `${directive}${separator}${prefix}${source.slice(directive.length)}`;
68
+ }
69
+
70
+ /**
71
+ * Replace `workerThreads.Worker` with a subclass that builds every worker with
72
+ * {@link guardWorkerArguments}. A subclass keeps `instanceof Worker` true.
73
+ * `workerThreads` defaults to `node:worker_threads`; tests pass a stand-in.
74
+ */
75
+ export function installWorkerGuard(registerUrl: string, workerThreads?: { Worker: unknown }): void {
76
+ const target = workerThreads ?? (createRequire(import.meta.url)('node:worker_threads') as { Worker: unknown });
77
+ const Original = target.Worker as (WorkerConstructor & { [GUARDED_WORKER]?: true }) | undefined;
78
+ if (typeof Original !== 'function' || Original[GUARDED_WORKER] === true) return;
79
+ class GuardedWorker extends Original {
80
+ static readonly [GUARDED_WORKER] = true;
81
+ constructor(source: unknown, options?: WorkerOptionsLike) {
82
+ super(...guardWorkerArguments(source, options, registerUrl));
83
+ }
84
+ }
85
+ Object.defineProperty(GuardedWorker, 'name', { value: Original.name });
86
+ target.Worker = GuardedWorker;
87
+ // ESM `import { Worker } from 'node:worker_threads'` reads the export as
88
+ // synced, so publish the replacement there too.
89
+ if (workerThreads === undefined) Module.syncBuiltinESMExports();
90
+ }
@@ -6,6 +6,13 @@
6
6
  * Shared by the Node remote client (`connectRemoteSandbox`, which
7
7
  * `pyric-admin` uses) and the client SDK bootstrap that `@pyric/cli/register`
8
8
  * installs (#1082), so both pick the same host for the same process.
9
+ *
10
+ * Discovery reads the project's `.pyric/serve.json` and probes the port it
11
+ * names, without the port scan `discoverServe` falls back to: a host found
12
+ * only by the scan is never attached to (`selectProjectHost`), and on a
13
+ * machine where closed ports never answer the scan takes seconds. A process
14
+ * resolves again at each reconnect, so a scan there would spend the window
15
+ * its held calls wait in (#1219).
9
16
  */
10
17
  import {
11
18
  discoverServe,
@@ -54,12 +61,17 @@ function warnOncePerUrl(url: string, message: string, warn?: (message: string) =
54
61
  else process.stderr.write(`${message}\n`);
55
62
  }
56
63
 
64
+ /** The project's host as its `.pyric/serve.json` names it; no port scan. */
65
+ export function discoverProjectPointer(cwd: string): Promise<Discovered | null> {
66
+ return discoverServe(cwd, () => {}, []);
67
+ }
68
+
57
69
  async function resolveConfiguredHost(configuredUrl: string, options: ResolveRemoteHostOptions): Promise<ResolvedRemoteHost> {
58
70
  const choice = await selectExplicitHost({
59
71
  url: configuredUrl,
60
72
  cwd: options.cwd,
61
73
  launcherInstanceId: options.instanceId,
62
- discover: options.discover,
74
+ discover: options.discover ?? discoverProjectPointer,
63
75
  probe: options.probe,
64
76
  });
65
77
  if (choice.kind === 'stale') throw hostError('not-found', choice.message);
@@ -73,7 +85,7 @@ async function resolveConfiguredHost(configuredUrl: string, options: ResolveRemo
73
85
 
74
86
  async function discoverProjectHost(options: ResolveRemoteHostOptions): Promise<ResolvedRemoteHost> {
75
87
  const refused: string[] = [];
76
- const found = selectProjectHost(await (options.discover ?? discoverServe)(options.cwd), (m) => refused.push(m));
88
+ const found = selectProjectHost(await (options.discover ?? discoverProjectPointer)(options.cwd), (m) => refused.push(m));
77
89
  const hasNoDiscovery = found === null;
78
90
  if (hasNoDiscovery) {
79
91
  throw hostError(
@@ -11,7 +11,8 @@ import { capTerminalText } from './ai-terminal-text.js';
11
11
  * agent driving `pyric dev` in process therefore saw NOTHING.
12
12
  *
13
13
  * - `request_rejected`: a bad role, empty `contents`, a missing thought
14
- * signature, or an engine that answered an error envelope.
14
+ * signature, a request without a valid App Check token, or an engine
15
+ * that answered an error envelope.
15
16
  * - `response_blocked`: the SILENT refusal. A safety / recitation /
16
17
  * blocklist filter answers HTTP 200 with an empty candidate, so nothing
17
18
  * throws anywhere and the app simply renders nothing.
@@ -73,6 +74,8 @@ interface AiRejectionRelayPayload {
73
74
  code?: number;
74
75
  /** The rejection reason: production's own message for shape errors. */
75
76
  message: string;
77
+ /** Pyric's guidance beside production's message, such as the App Check gate's. */
78
+ hint?: string;
76
79
  }
77
80
 
78
81
  /** Shape POSTed for a `response_blocked` event. Carries the wire's own
@@ -148,6 +151,8 @@ function toRejectionPayload(event: ServiceMutation): AiRejectionRelayPayload | n
148
151
  payload.engine = detailText(detail, 'engine');
149
152
  payload.status = detailText(detail, 'status');
150
153
  if (typeof detail.code === 'number') payload.code = detail.code;
154
+ const hint = detailText(detail, 'hint');
155
+ if (hint !== undefined) payload.hint = hint;
151
156
  return payload;
152
157
  }
153
158
 
@@ -10,12 +10,14 @@
10
10
  */
11
11
  import type { IncomingMessage, ServerResponse } from 'node:http';
12
12
  import type { ServeLogger } from './server.js';
13
- import { redactUrl } from 'pyric/ai/internal';
13
+ import { redactUpstreamText, redactUrl } from 'pyric/ai/internal';
14
14
  import { sanitizeForTerminal } from './ai-terminal-text.js';
15
15
  import type { AiEngineConfigWire } from './worker/protocol.js';
16
16
  import { permitGuardHost } from '../register/net-guard.js';
17
17
  import { FIREBASE_AI_LOGIC_HOST } from '../google-endpoints.js';
18
18
  import type { AiMode } from './firebase-module-swap.js';
19
+ import { HOSTED_METHOD_BODY_LIMIT } from './hosted/method-protocol.js';
20
+ import { BODY_TOO_LARGE_CODE, closingHeaders, collectRawBody } from '../bridge/server/peer.js';
19
21
 
20
22
  /** The dev server's diagnostics throttle, as this module needs it: the
21
23
  * denials route owns the instance, and the proxy shares it so a failing
@@ -30,6 +32,10 @@ export const AI_PROXY_DEFAULT_UPSTREAM = 'http://localhost:11434/v1';
30
32
  /** The route the dev server mounts for OpenAI-compatible traffic. */
31
33
  export const AI_PROXY_ROUTE = '/__pyric/ai-proxy';
32
34
 
35
+ /** Largest request body the proxy forwards: the hosted method route's limit,
36
+ * which already carries AI requests with inline images. */
37
+ export const AI_PROXY_BODY_LIMIT_BYTES = HOSTED_METHOD_BODY_LIMIT;
38
+
33
39
  /**
34
40
  * Request headers that must NOT be forwarded upstream: origin-sensitive
35
41
  * browser context (`origin`/`referer`/`cookie`, since the upstream is a
@@ -64,6 +70,8 @@ type AiProxyFailure =
64
70
  status: number;
65
71
  /** The upstream's raw `Retry-After` header, when it sent one. */
66
72
  retryAfter?: string;
73
+ /** The credentials the request carried, masked from `retryAfter`. */
74
+ credentials?: readonly string[];
67
75
  }
68
76
  | { kind: 'stream-abort'; target: string; latencyMs: number; cause: string };
69
77
 
@@ -76,13 +84,17 @@ const AI_PROXY_RETRY_AFTER_MAX = 64;
76
84
  * nothing worth printing.
77
85
  *
78
86
  * The header is remote-authored, so it is sanitized and length-capped like
79
- * every other upstream string that reaches the terminal. Delta-seconds (the
87
+ * every other upstream string that reaches the terminal. It is masked of the
88
+ * request's credentials first, with the masking the gemini engine and proxy
89
+ * use (`redactUpstreamText`), so the cap cannot leave a prefix of a key
90
+ * behind. Delta-seconds (the
80
91
  * common form) get an `s` suffix so the wait reads as a duration; the
81
92
  * HTTP-date form is echoed verbatim, since `Wed, 21 Oct 2026 07:28:00 GMTs`
82
93
  * would be nonsense.
83
94
  */
84
- function formatRetryAfter(raw: string): string | null {
85
- const clean = sanitizeForTerminal(raw).slice(0, AI_PROXY_RETRY_AFTER_MAX).trim();
95
+ function formatRetryAfter(raw: string, credentials: readonly string[]): string | null {
96
+ const masked = redactUpstreamText(raw, credentials);
97
+ const clean = sanitizeForTerminal(masked).slice(0, AI_PROXY_RETRY_AFTER_MAX).trim();
86
98
  if (clean === '') return null;
87
99
  if (/^\d+$/.test(clean)) return `${clean}s`;
88
100
  return clean;
@@ -155,7 +167,7 @@ export function formatAiProxyWarning(failure: AiProxyFailure, source = 'ai-proxy
155
167
  );
156
168
  }
157
169
  if (failure.kind === 'status' && failure.retryAfter !== undefined) {
158
- const wait = formatRetryAfter(failure.retryAfter);
170
+ const wait = formatRetryAfter(failure.retryAfter, failure.credentials ?? []);
159
171
  if (wait !== null) {
160
172
  lines.push(` Retry-After: ${wait}, no automatic retry; the status went to the caller`);
161
173
  }
@@ -223,6 +235,28 @@ export function permitAiUpstreams(ai: {
223
235
  for (const destination of destinations) permitGuardHost(destination);
224
236
  }
225
237
 
238
+ /** The `key` parameter of `target`, or null when it has none or is not a URL. */
239
+ function urlKeyParam(target: string): string | null {
240
+ try {
241
+ return new URL(target).searchParams.get('key');
242
+ } catch {
243
+ return null;
244
+ }
245
+ }
246
+
247
+ /**
248
+ * The credentials an upstream request carries: the `key` URL parameter, the
249
+ * `x-goog-api-key` header, and the `Authorization` value without its scheme.
250
+ */
251
+ function requestCredentials(input: Parameters<typeof fetch>[0], init: RequestInit | undefined): string[] {
252
+ const isRequest = input instanceof Request;
253
+ const headers = new Headers(isRequest ? input.headers : init?.headers);
254
+ const urlKey = urlKeyParam(isRequest ? input.url : String(input));
255
+ const authorization = headers.get('authorization')?.replace(/^\S+\s+/, '') ?? null;
256
+ const found = [urlKey, headers.get('x-goog-api-key'), authorization];
257
+ return found.filter((value): value is string => value !== null && value !== '');
258
+ }
259
+
226
260
  /** Shared upstream I/O for the browser proxy and the direct Node engine.
227
261
  * Responses remain incremental; cancellation stops reading without a warning.
228
262
  */
@@ -249,7 +283,7 @@ export async function fetchAiUpstream(
249
283
  if (failed) {
250
284
  const retryAfter = upstream.headers.get('retry-after');
251
285
  note({ kind: 'status', target, latencyMs: Date.now() - startedAt, status: upstream.status,
252
- ...(retryAfter !== null ? { retryAfter } : {}) });
286
+ ...(retryAfter !== null ? { retryAfter, credentials: requestCredentials(input, init) } : {}) });
253
287
  }
254
288
  const body = upstream.body;
255
289
  const hasNoBody = body === null;
@@ -280,6 +314,25 @@ export async function fetchAiUpstream(
280
314
  });
281
315
  }
282
316
 
317
+ /**
318
+ * Read an AI proxy request's body, at most {@link AI_PROXY_BODY_LIMIT_BYTES}.
319
+ * Past the limit it answers 413, and on a broken upload 400, and returns
320
+ * null: the caller sends nothing upstream. Both proxy routes read through it.
321
+ */
322
+ export async function readAiProxyBody(
323
+ req: IncomingMessage,
324
+ res: ServerResponse,
325
+ ): Promise<Uint8Array<ArrayBuffer> | null> {
326
+ try {
327
+ return await collectRawBody(req, AI_PROXY_BODY_LIMIT_BYTES);
328
+ } catch (error) {
329
+ const tooLarge = (error as { code?: unknown }).code === BODY_TOO_LARGE_CODE;
330
+ const status = tooLarge ? 413 : 400;
331
+ res.writeHead(status, closingHeaders({ 'content-type': 'text/plain' })).end(tooLarge ? 'Payload Too Large' : 'Bad Request');
332
+ return null;
333
+ }
334
+ }
335
+
283
336
  /**
284
337
  * Handle `POST /__pyric/ai-proxy/<suffix>`: a same-origin passthrough to the
285
338
  * configured OpenAI-compatible upstream, so the browser openai engine
@@ -290,7 +343,11 @@ export async function fetchAiUpstream(
290
343
  * - POST only (the OpenAI chat-completions surface is POST); 405 otherwise.
291
344
  * - the path suffix + query ride through verbatim
292
345
  * (`/__pyric/ai-proxy/chat/completions` becomes `<upstream>/chat/completions`).
293
- * - the request body is forwarded verbatim; headers minus the
346
+ * - the caller must pass the namespace's loopback guard (Host, and an
347
+ * Origin naming this server when one is sent), which the namespace runs
348
+ * before this handler: the upstream may carry the developer's key.
349
+ * - the request body is forwarded verbatim, up to
350
+ * {@link AI_PROXY_BODY_LIMIT_BYTES} (413 past it); headers minus the
294
351
  * origin-sensitive/hop-by-hop set above (`authorization` DOES forward,
295
352
  * since upstreams may require a key).
296
353
  * - the response body is STREAMED through chunk-by-chunk. SSE passthrough
@@ -319,17 +376,9 @@ export async function handleAiProxy(
319
376
  const suffix = url.pathname.slice(AI_PROXY_ROUTE.length);
320
377
  const target = `${upstreamBase}${suffix}${url.search}`;
321
378
 
322
- // Buffer the REQUEST body (small JSON payloads); the RESPONSE streams.
323
- const raw = await new Promise<Buffer>((resolve, reject) => {
324
- const chunks: Buffer[] = [];
325
- req.on('data', (c: Buffer) => chunks.push(c));
326
- req.on('end', () => resolve(Buffer.concat(chunks)));
327
- req.on('error', reject);
328
- });
329
- // Copy into a plain-ArrayBuffer view; fetch's BodyInit typing rejects
330
- // Buffer's ArrayBufferLike backing.
331
- const body = new Uint8Array(raw.byteLength);
332
- body.set(raw);
379
+ // The request body is a bounded JSON payload, read once; the RESPONSE streams.
380
+ const body = await readAiProxyBody(req, res);
381
+ if (body === null) return;
333
382
 
334
383
  const headers: Record<string, string> = {};
335
384
  for (const [key, value] of Object.entries(req.headers)) {
@@ -355,6 +404,16 @@ export async function handleAiProxy(
355
404
  return;
356
405
  }
357
406
 
407
+ await relayAiUpstream(upstream, res);
408
+ }
409
+
410
+ /**
411
+ * Send an upstream's answer to the caller: its status and content type, then
412
+ * the body chunk by chunk. SSE passthrough must never buffer. A dropped
413
+ * client cancels the upstream read so an abandoned stream doesn't keep the
414
+ * upstream generating.
415
+ */
416
+ export async function relayAiUpstream(upstream: Response, res: ServerResponse): Promise<void> {
358
417
  const responseHeaders: Record<string, string> = { 'cache-control': 'no-store' };
359
418
  const contentType = upstream.headers.get('content-type');
360
419
  if (contentType) responseHeaders['content-type'] = contentType;
@@ -365,8 +424,6 @@ export async function handleAiProxy(
365
424
  }
366
425
  (res as ServerResponse & { flushHeaders?: () => void }).flushHeaders?.();
367
426
 
368
- // Chunk-by-chunk passthrough. A dropped client cancels the upstream read
369
- // so an abandoned SSE stream doesn't keep the upstream generating.
370
427
  const reader = upstream.body.getReader();
371
428
  res.on('close', () => {
372
429
  void reader.cancel().catch(() => {});
@@ -30,6 +30,8 @@ export interface AiRejectionPayload {
30
30
  code?: unknown;
31
31
  /** The rejection reason: production's own message for shape errors. */
32
32
  message?: unknown;
33
+ /** Pyric's guidance beside production's message, such as the App Check gate's. */
34
+ hint?: unknown;
33
35
  }
34
36
 
35
37
  /** Loosely-typed mirror of the AI blocked-response payload. Unlike a
@@ -99,10 +101,10 @@ function formatModelLine(model: unknown, engine: unknown): string | null {
99
101
  /**
100
102
  * Format a relayed AI broker rejection into the compact terminal block, the
101
103
  * same ` [pyric] ...` idiom the denial relay and the ai-proxy warning print.
102
- * Three lines at most: the reason production itself gives, then the model
103
- * (with the resolved engine, since a rejection reads very differently for
104
- * `scripted` than for a real upstream), then the wire status. Exported for
105
- * unit tests.
104
+ * The reason production itself gives, then the model (with the resolved
105
+ * engine, since a rejection reads very differently for `scripted` than for a
106
+ * real upstream), then the wire status, then pyric's guidance when the broker
107
+ * gave one (the App Check gate does). Exported for unit tests.
106
108
  */
107
109
  export function formatAiRejectionBlock(payload: AiRejectionPayload): string {
108
110
  const message = readText(payload.message) ?? 'request rejected';
@@ -117,6 +119,8 @@ export function formatAiRejectionBlock(payload: AiRejectionPayload): string {
117
119
  if (code !== null) suffix = ` (${code})`;
118
120
  lines.push(` ${label}${suffix}`);
119
121
  }
122
+ const hint = readText(payload.hint);
123
+ if (hint !== null) lines.push(` ${hint}`);
120
124
  return lines.join('\n');
121
125
  }
122
126
 
@@ -37,6 +37,17 @@ export function capTerminalText(text: string): string {
37
37
  const TERMINAL_UNSAFE_CHARS =
38
38
  /[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u2028-\u202e\u2066-\u2069\ufeff]/g;
39
39
 
40
+ /**
41
+ * Replace control, bidi-override and line-separator characters with spaces,
42
+ * and change nothing else: no flattening, no whitespace collapsing, no cut.
43
+ * For one line of text a reader copies out of the terminal, such as a
44
+ * pasteable command or JSON fixture, where the exact spacing and the whole
45
+ * length matter. The caller splits lines first and bounds the total.
46
+ */
47
+ export function stripTerminalControls(text: string): string {
48
+ return text.replace(TERMINAL_UNSAFE_CHARS, ' ');
49
+ }
50
+
40
51
  /**
41
52
  * Flatten an upstream-authored string into ONE terminal-safe line.
42
53
  *