@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
@@ -93,8 +93,53 @@ export function failBridgeResponse(frame: BridgeMessage, error: FrameError): Bri
93
93
  }
94
94
  }
95
95
 
96
+ const RTDB_WRITE_FIELDS = ['value', 'values', 'priority'] as const;
97
+
98
+ function childPath(path: string, key: string): string {
99
+ return path.endsWith('/') ? `${path}${key}` : `${path}/${key}`;
100
+ }
101
+
102
+ /** Where `value` holds something JSON drops or turns into null, and what it is. */
103
+ function findJsonLoss(value: unknown, path: string): { path: string; found: string } | undefined {
104
+ const isLost = value === undefined || (typeof value === 'number' && !Number.isFinite(value));
105
+ if (isLost) return { path, found: String(value) };
106
+ const isLeaf = typeof value !== 'object' || value === null;
107
+ if (isLeaf) return;
108
+ for (const [key, child] of Object.entries(value)) {
109
+ const loss = findJsonLoss(child, childPath(path, key));
110
+ if (loss !== undefined) return loss;
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Refuse an RTDB write whose value JSON cannot carry. NaN and Infinity encode
116
+ * as null and an undefined member vanishes, so the host would store a delete
117
+ * (RP-1, #1362). The served client refuses these first with the SDK's text;
118
+ * this is the second line.
119
+ */
120
+ function assertJsonSafeRtdbWrite(frame: BridgeMessage): void {
121
+ const isOtherFrame = frame.type !== 'worker-message';
122
+ if (isOtherFrame) return;
123
+ const message = frame.message;
124
+ const isRtdbOperation = message.t === 'op' && message.method.startsWith('rtdb.');
125
+ if (!isRtdbOperation) return;
126
+ const fields: Record<string, unknown> = { ...message };
127
+ const path = typeof fields.path === 'string' ? fields.path : '/';
128
+ for (const field of RTDB_WRITE_FIELDS) {
129
+ const isAbsent = !Object.hasOwn(fields, field);
130
+ if (isAbsent) continue;
131
+ const loss = findJsonLoss(fields[field], path);
132
+ const isJsonSafe = loss === undefined;
133
+ if (isJsonSafe) continue;
134
+ throw new Error(
135
+ `RTDB ${message.method} ${field} at ${loss.path} holds ${loss.found}, which a JSON frame cannot carry. The write was not sent.`,
136
+ );
137
+ }
138
+ }
139
+
96
140
  /** Encode bounded output, retaining correlation when an oversized result can be refused. */
97
141
  export function encodeBridgeMessage(frame: BridgeMessage): string | undefined {
142
+ assertJsonSafeRtdbWrite(frame);
98
143
  const payload = JSON.stringify(frame);
99
144
  const fitsFrameLimit = utf8.encode(payload).byteLength <= MAX_BRIDGE_FRAME_BYTES;
100
145
  if (fitsFrameLimit) return payload;
@@ -84,6 +84,19 @@ export const PEER_REPLACED_CLOSE_CODE = 4001;
84
84
  /** Human-readable reason sent with {@link PEER_REPLACED_CLOSE_CODE}. */
85
85
  export const PEER_REPLACED_CLOSE_REASON = 'replaced by a newer sandbox peer';
86
86
 
87
+ /**
88
+ * WS close code the standalone `pyric bridge` sends a page that opens its
89
+ * `/sandbox` socket. That bridge has no browser peer (#1468): the page is
90
+ * closed before it can register, and `connectBridge` stops instead of
91
+ * reconnecting. A page that needs a browser bridge runs under
92
+ * `pyric sandbox --bridge`, which serves the page and guards its socket.
93
+ */
94
+ export const NO_BROWSER_PEER_CLOSE_CODE = 4010;
95
+
96
+ /** Reason sent with {@link NO_BROWSER_PEER_CLOSE_CODE}; a close frame carries at most 123 bytes. */
97
+ export const NO_BROWSER_PEER_CLOSE_REASON =
98
+ 'pyric bridge does not accept a browser sandbox. Run pyric sandbox --bridge, which serves the page and its bridge.';
99
+
87
100
  // ── Bridge ↔ browser WebSocket protocol ──────────────────────────────
88
101
  //
89
102
  // All messages are JSON. Each message has a `type` discriminator.
@@ -53,6 +53,14 @@ import {
53
53
  import type { BridgeToolEvent } from './bridge.js';
54
54
  import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
55
55
  import { claimProjectState } from '../../serve/hosted/project-ownership.js';
56
+ import {
57
+ firestoreDatabaseWarnings,
58
+ firestoreDatabases,
59
+ prepareStorageRulesSource,
60
+ storageRulesPath,
61
+ } from '../../serve/rules.js';
62
+ import { readFirebaseRcSync, type FirebaseJson } from '../../cli/firebase-json.js';
63
+ import { defaultFirestoreDatabase } from 'pyric/sandbox/internal';
56
64
  import { TargetRouter } from './target-router.js';
57
65
  import type { discoverServe } from '../../serve/discovery.js';
58
66
  import type { callHostedMethod } from '../../cli/hosted-method.js';
@@ -156,17 +164,44 @@ export interface ProjectRulesLoad {
156
164
  refused: string | null;
157
165
  }
158
166
 
167
+ function readProjectFirebaseJson(cwd: string): FirebaseJson | null {
168
+ const path = join(cwd, 'firebase.json');
169
+ if (!existsSync(path)) return null;
170
+ try {
171
+ return JSON.parse(readFileSync(path, 'utf8')) as FirebaseJson;
172
+ } catch (error) {
173
+ throw new Error(`pyric: failed to parse firebase.json: ${error instanceof Error ? error.message : String(error)}`);
174
+ }
175
+ }
176
+
159
177
  /**
160
- * Load `<cwd>/firestore.rules` into the sandbox when present. A file
161
- * production would not load (it does not parse, or it is past a compile
162
- * limit) is refused: the rules in force stay, and lint and simulate read the
163
- * file's source. Null when there is no rules file. Without rules,
164
- * rules-enforcing (`as:{uid}`) ops fall back to the sandbox's default; admin
165
- * ops are unaffected.
178
+ * Load the rules `<cwd>/firebase.json` deploys to the `(default)` Firestore
179
+ * database, resolved as the dev server resolves them, else
180
+ * `<cwd>/firestore.rules` when `firebase.json` names none. A file production
181
+ * would not load (it does not parse, or it is past a compile limit) is
182
+ * refused: the rules in force stay, and lint and simulate read the file's
183
+ * source. Null when there is no rules file. Without rules, rules-enforcing
184
+ * (`as:{uid}`) ops fall back to the sandbox's default; admin ops are
185
+ * unaffected. `onWarning` receives one line per named database or unresolved
186
+ * deploy target pyric does not serve yet, and one for a named file that is
187
+ * missing.
166
188
  */
167
- export function loadProjectRules(sandbox: LocalSandbox, cwd: string): ProjectRulesLoad | null {
168
- const path = join(cwd, 'firestore.rules');
169
- if (!existsSync(path)) return null;
189
+ export function loadProjectRules(
190
+ sandbox: LocalSandbox,
191
+ cwd: string,
192
+ onWarning: (message: string) => void = () => {},
193
+ ): ProjectRulesLoad | null {
194
+ const config = readProjectFirebaseJson(cwd);
195
+ const projectId = readFirebaseRcSync(cwd)?.projects?.default;
196
+ const databases = firestoreDatabases(cwd, config, projectId === undefined ? {} : { projectId });
197
+ for (const warning of firestoreDatabaseWarnings(cwd, databases)) onWarning(warning);
198
+ const entry = defaultFirestoreDatabase(databases);
199
+ const path = entry?.rulesFile;
200
+ if (entry === undefined || path === undefined) return null;
201
+ if (!existsSync(path)) {
202
+ if (entry.configured) onWarning(`${entry.label} points Firestore rules at ${path}, but it does not exist.`);
203
+ return null;
204
+ }
170
205
  return { path, refused: loadFirestoreRules(sandbox, readFileSync(path, 'utf8')) };
171
206
  }
172
207
 
@@ -179,23 +214,28 @@ export function loadProjectRules(sandbox: LocalSandbox, cwd: string): ProjectRul
179
214
  * a restored session complete. Returns the storage handle, which the sidecar
180
215
  * codec reads and writes; storage keeps its own durability and is not in the
181
216
  * bundle at all.
217
+ *
218
+ * Storage enforces the rules file the project deploys, found and prepared as
219
+ * the dev server finds and prepares it: the first `firebase.json` `storage`
220
+ * entry with a `rules` path, else `storage.rules` in `cwd`, with `2+modules`
221
+ * imports resolved against the file's own directory.
182
222
  */
183
223
  export function openPersistedServices(sandbox: LocalSandbox, cwd: string): FirebaseStorage {
184
224
  getAuth(sandbox);
185
225
  getAdminDatabase(sandbox);
186
226
  // Storage rules are read only by the call that opens the service, so the
187
227
  // project's rules have to be in hand here or not at all.
188
- const rulesPath = join(cwd, 'storage.rules');
228
+ const rulesPath = storageRulesPath(cwd, readProjectFirebaseJson(cwd));
189
229
  if (!existsSync(rulesPath)) return getAdminStorageSandbox(sandbox);
190
230
  const source = readFileSync(rulesPath, 'utf8');
191
231
  try {
192
- return getAdminStorageSandbox(sandbox, { rules: source });
232
+ return getAdminStorageSandbox(sandbox, { rules: prepareStorageRulesSource(source, rulesPath) });
193
233
  } catch (error) {
194
- // A rules file that does not parse cannot govern the service, but a lint
195
- // call must still be able to say what is wrong with it. The service opens
196
- // without rules and the source is kept for the lint operation.
234
+ // A rules file the sandbox cannot install cannot govern the service, but a
235
+ // lint call must still be able to say what is wrong with it. The service
236
+ // opens without rules and the source is kept for the lint operation.
197
237
  process.stderr.write(
198
- `[pyric mcp in-process] storage.rules not loaded: ${error instanceof Error ? error.message : String(error)}\n`,
238
+ `[pyric mcp in-process] Storage rules not loaded: ${error instanceof Error ? error.message : String(error)}\n`,
199
239
  );
200
240
  rememberUnloadedStorageRules(sandbox, source);
201
241
  return getAdminStorageSandbox(sandbox);
@@ -389,13 +429,13 @@ async function runInProcessSession(
389
429
  }
390
430
  // After the snapshot: restoring it resets the ruleset to the sandbox default,
391
431
  // and the project's rules file is the authority for what the server enforces.
392
- const projectRules = loadProjectRules(sandbox, projectDir);
432
+ const projectRules = loadProjectRules(sandbox, projectDir, log);
393
433
  if (projectRules !== null && projectRules.refused === null) {
394
434
  log(`rules loaded from ${projectRules.path}`);
395
435
  } else if (projectRules !== null) {
396
436
  log(`rules not loaded from ${projectRules.path}: ${projectRules.refused} The sandbox keeps the rules in force.`);
397
437
  } else {
398
- log(`no firestore.rules found in ${projectDir}`);
438
+ log(`no Firestore rules for (default) found in ${projectDir}`);
399
439
  }
400
440
  const restoredObjects = await loadStorageSidecar(storage, projectDir);
401
441
  const restoredStorage = restoredObjects > 0;
@@ -449,6 +449,65 @@ export function createConsumerSession(
449
449
  * code lets a route answer 413 instead of treating it as malformed JSON. */
450
450
  export const BODY_TOO_LARGE_CODE = 'PYRIC_BODY_TOO_LARGE';
451
451
 
452
+ /**
453
+ * Headers for an answer sent before the request body was read to its end,
454
+ * as a 413 is. The server is still owed the rest of the upload, so a client
455
+ * that reuses the socket would have its next request read as that remainder
456
+ * and answered 400 (#1706). Closing the connection sends the next request on
457
+ * a fresh one (RFC 9112 §9.6).
458
+ */
459
+ export function closingHeaders(headers: Record<string, string> = {}): Record<string, string> {
460
+ return { ...headers, connection: 'close' };
461
+ }
462
+
463
+ function bodyTooLarge(): Error {
464
+ return Object.assign(new Error('request body too large'), { code: BODY_TOO_LARGE_CODE });
465
+ }
466
+
467
+ /**
468
+ * Read a request body as bytes, for a route that forwards it verbatim.
469
+ *
470
+ * Unlike {@link collectBody} the limit is required: the bytes are held in
471
+ * memory once as received chunks and once as the joined copy, so an
472
+ * unbounded read would let one request grow the process twice over. Past the
473
+ * limit the rest of the upload is read and discarded, as `collectBody` does,
474
+ * so the caller's 413 reaches the client.
475
+ */
476
+ export async function collectRawBody(
477
+ req: IncomingMessage,
478
+ limitBytes: number,
479
+ ): Promise<Uint8Array<ArrayBuffer>> {
480
+ return await new Promise<Uint8Array<ArrayBuffer>>((resolve, reject) => {
481
+ const chunks: Buffer[] = [];
482
+ let total = 0;
483
+ let overLimit = false;
484
+ req.on('data', (chunk: Buffer) => {
485
+ if (overLimit) return;
486
+ total += chunk.byteLength;
487
+ const withinLimit = total <= limitBytes;
488
+ if (withinLimit) {
489
+ chunks.push(chunk);
490
+ return;
491
+ }
492
+ overLimit = true;
493
+ chunks.length = 0;
494
+ reject(bodyTooLarge());
495
+ });
496
+ req.on('end', () => {
497
+ if (overLimit) return;
498
+ // A plain-ArrayBuffer view: fetch's BodyInit typing rejects Buffer's ArrayBufferLike backing.
499
+ const body = new Uint8Array(total);
500
+ let offset = 0;
501
+ for (const chunk of chunks) {
502
+ body.set(chunk, offset);
503
+ offset += chunk.byteLength;
504
+ }
505
+ resolve(body);
506
+ });
507
+ req.on('error', reject);
508
+ });
509
+ }
510
+
452
511
  /**
453
512
  * Read a request body and parse it as JSON.
454
513
  *
@@ -474,7 +533,7 @@ export async function collectBody(
474
533
  if (limitBytes === undefined || Buffer.byteLength(raw) <= limitBytes) return;
475
534
  overLimit = true;
476
535
  raw = '';
477
- reject(Object.assign(new Error('request body too large'), { code: BODY_TOO_LARGE_CODE }));
536
+ reject(bodyTooLarge());
478
537
  });
479
538
  req.on('end', () => {
480
539
  if (!raw) {
@@ -1,10 +1,15 @@
1
1
  /**
2
2
  * Standalone bridge server. Spins up an HTTP server on a known
3
- * loopback port that handles three routes:
3
+ * loopback port that handles two routes:
4
4
  *
5
5
  * GET /health — diagnostic
6
6
  * POST /mcp — MCP-over-HTTP (StreamableHTTPServerTransport)
7
- * GET /sandbox (Upgrade) — WebSocket the browser tab connects to
7
+ *
8
+ * It serves only the tools that run in the bridge process. It has no browser
9
+ * socket (#1468): a page that opens `/sandbox` is closed with
10
+ * NO_BROWSER_PEER_CLOSE_CODE and a reason naming `pyric sandbox --bridge`,
11
+ * before it can register as the sandbox peer. `connectBridge` stops on that
12
+ * close and reports the reason.
8
13
  *
9
14
  * Bound to 127.0.0.1 only. Refuses to start if the port is occupied.
10
15
  *
@@ -16,7 +21,7 @@
16
21
 
17
22
  import { createServer } from 'node:http';
18
23
  import { randomUUID } from 'node:crypto';
19
- import { WebSocketServer, WebSocket } from 'ws';
24
+ import { WebSocketServer } from 'ws';
20
25
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
21
26
  import { createBridge, type Bridge, type BridgeToolEvent } from './bridge.js';
22
27
  import { buildMcpServer } from './mcp.js';
@@ -29,16 +34,15 @@ import {
29
34
  } from './logger.js';
30
35
  import {
31
36
  DEFAULT_BRIDGE_PORT,
32
- MAX_BRIDGE_FRAME_BYTES,
33
37
  DEFAULT_HEALTH_PATH,
34
38
  DEFAULT_MCP_PATH,
35
39
  DEFAULT_SANDBOX_PATH,
36
- type BridgeMessage,
40
+ NO_BROWSER_PEER_CLOSE_CODE,
41
+ NO_BROWSER_PEER_CLOSE_REASON,
37
42
  } from '../protocol.js';
38
- import { parseBridgeMessage, requestEnvelopeError, requestProtocolError } from './request-envelope.js';
39
- import { sendBridgeMessage } from './socket-message.js';
40
43
  import { pyricVersion } from '../../serve/standalone-assets.js';
41
44
  import { isAllowedLoopbackRequest, isAllowedUpgrade } from '../../serve/server.js';
45
+ import { createAppPorts } from '../../serve/app-ports.js';
42
46
 
43
47
  const BRIDGE_VERSION = pyricVersion();
44
48
  const DEFAULT_SESSION_IDLE_MS = 10 * 60 * 1000; // 10 minutes
@@ -112,7 +116,8 @@ export async function startServer(
112
116
  },
113
117
  });
114
118
 
115
- const { forwarded, inProcess } = getBridgeToolSurface({
119
+ // No browser peer can attach here, so the tools a peer would run are not offered.
120
+ const { inProcess } = getBridgeToolSurface({
116
121
  projectDir: opts.projectDir ?? process.cwd(),
117
122
  consumers: bridge.consumers,
118
123
  callerIdentity: bridge.callerIdentity,
@@ -165,7 +170,7 @@ export async function startServer(
165
170
  logger.verbose(`session ${id.slice(0, 8)}… initialized`);
166
171
  },
167
172
  });
168
- const server = buildMcpServer(bridge, { forwarded, inProcess });
173
+ const server = buildMcpServer(bridge, { forwarded: [], inProcess });
169
174
  const session: Session = {
170
175
  transport,
171
176
  idleTimer: null,
@@ -185,6 +190,8 @@ export async function startServer(
185
190
  }
186
191
 
187
192
  // ── HTTP server ─────────────────────────────────────────────────
193
+ // No proxy fronts this bridge, so it learns no port: an MCP request names this port or none.
194
+ const mcpPorts = createAppPorts('127.0.0.1');
188
195
  const http = createServer(async (req, res) => {
189
196
  const url = req.url ?? '/';
190
197
  const debugEnabled = Boolean(process.env.PYRIC_DEBUG);
@@ -201,7 +208,7 @@ export async function startServer(
201
208
  const supportsMcpMethod = req.method === 'POST' || req.method === 'GET' || req.method === 'DELETE';
202
209
  const requestsMcp = url === DEFAULT_MCP_PATH && supportsMcpMethod;
203
210
  if (requestsMcp) {
204
- const refusesOrigin = !isAllowedLoopbackRequest(req, '127.0.0.1', opts.allowedHosts);
211
+ const refusesOrigin = !isAllowedLoopbackRequest(req, '127.0.0.1', opts.allowedHosts, mcpPorts.forRequest(req));
205
212
  if (refusesOrigin) {
206
213
  res.writeHead(403, { 'Content-Type': 'application/json' });
207
214
  res.end(JSON.stringify({ error: 'Forbidden: invalid host or origin' }));
@@ -259,17 +266,20 @@ export async function startServer(
259
266
  res.end(JSON.stringify({ error: 'not found', path: url }));
260
267
  });
261
268
 
262
- // ── WebSocket server (mounted on /sandbox) ──────────────────────
263
- const wss = new WebSocketServer({ noServer: true, maxPayload: MAX_BRIDGE_FRAME_BYTES });
269
+ // ── /sandbox: refused with a reason ─────────────────────────────
270
+ // A browser cannot read an HTTP refusal of an upgrade, so the socket is
271
+ // accepted and closed at once with a reason `connectBridge` reports. No
272
+ // message from it is read, and it never registers as the sandbox peer.
273
+ const wss = new WebSocketServer({ noServer: true, maxPayload: 1024 });
264
274
  http.on('upgrade', (req, socket, head) => {
265
275
  const hasWrongPath = (req.url ?? '') !== DEFAULT_SANDBOX_PATH;
266
276
  if (hasWrongPath) {
267
277
  socket.destroy();
268
278
  return;
269
279
  }
270
- // DNS-rebinding + cross-origin hijack guard (the request-time isAllowedHost
271
- // runs on the `request` event only — `upgrade` bypasses it). The standalone
272
- // bridge binds 127.0.0.1 only, so the allowlist is the loopback set.
280
+ // DNS-rebinding + cross-origin guard: only a loopback page is told why.
281
+ // The port is not compared here: the page that reaches this socket loads
282
+ // from the app's own dev server on another port.
273
283
  const refusesUpgrade = !isAllowedUpgrade(req.headers, '127.0.0.1', opts.allowedHosts);
274
284
  if (refusesUpgrade) {
275
285
  logger.error(
@@ -279,7 +289,8 @@ export async function startServer(
279
289
  return;
280
290
  }
281
291
  wss.handleUpgrade(req, socket, head, (ws) => {
282
- attachPeer(bridge, ws, logger);
292
+ logger.info(`refused a browser sandbox on ${DEFAULT_SANDBOX_PATH}: run pyric sandbox --bridge instead`);
293
+ ws.close(NO_BROWSER_PEER_CLOSE_CODE, NO_BROWSER_PEER_CLOSE_REASON);
283
294
  });
284
295
  });
285
296
 
@@ -305,12 +316,9 @@ export async function startServer(
305
316
  url,
306
317
  auditLogPath: auditWriter?.path ?? null,
307
318
  async stop() {
308
- // Stop accepting new WebSocket upgrades…
319
+ // Stop accepting new WebSocket upgrades, and terminate a refused
320
+ // socket whose close handshake is still in flight.
309
321
  wss.close();
310
- // …and forcibly terminate any existing WS clients. Without this,
311
- // http.close() below waits for clients to disconnect on their own
312
- // (MCP keep-alives sit forever — a Ctrl-C with any open peer
313
- // would hang the CLI shutdown indefinitely).
314
322
  for (const client of wss.clients) {
315
323
  try { client.terminate(); } catch { /* already closed */ }
316
324
  }
@@ -332,92 +340,6 @@ export async function startServer(
332
340
  };
333
341
  }
334
342
 
335
- function attachPeer(bridge: Bridge, ws: WebSocket, logger: BridgeLogger): void {
336
- let disconnect: (() => void) | null = null;
337
- let helloed = false;
338
- let sandboxId: string | null = null;
339
- let peerGeneration = 0;
340
-
341
- ws.on('message', (raw) => {
342
- const isClosingConnection = ws.readyState !== ws.OPEN;
343
- if (isClosingConnection) return;
344
- const parsed = parseBridgeMessage(raw.toString());
345
- const isInvalidMessage = parsed.kind === 'invalid';
346
- if (isInvalidMessage) {
347
- ws.close(1002, parsed.reason);
348
- return;
349
- }
350
- const msg = parsed.message;
351
- const isHello = msg.type === 'hello';
352
- if (isHello) {
353
- const protocolError = requestProtocolError(msg);
354
- const hasProtocolError = protocolError !== undefined;
355
- if (hasProtocolError) {
356
- ws.close(1008, protocolError);
357
- return;
358
- }
359
- const envelopeError = requestEnvelopeError(msg);
360
- const hasEnvelopeError = envelopeError !== undefined;
361
- if (hasEnvelopeError) {
362
- ws.close(1002, envelopeError);
363
- return;
364
- }
365
- if (helloed) return; // ignore duplicate hellos
366
- helloed = true;
367
- sandboxId = msg.sandboxId;
368
- logger.info(
369
- `peer connected — sandboxId=${sandboxId.slice(0, 12)} tools=${msg.tools.length}`,
370
- );
371
- disconnect = bridge.registerSandboxPeer(
372
- (out: BridgeMessage) => {
373
- try {
374
- sendBridgeMessage(ws, out, bridge.handleSandboxMessage);
375
- } catch {
376
- // socket likely closed; the close handler runs disconnect.
377
- }
378
- },
379
- msg.tools,
380
- msg.sandboxId,
381
- );
382
- peerGeneration = bridge.peerGeneration();
383
- sendBridgeMessage(ws, {
384
- type: 'hello-ack',
385
- protocol: 1,
386
- bridgeVersion: bridge.version,
387
- });
388
- return;
389
- }
390
-
391
- const isUnregistered = !helloed;
392
- if (isUnregistered) return; // ignore messages before hello
393
- const envelopeError = requestEnvelopeError(msg);
394
- const hasEnvelopeError = envelopeError !== undefined;
395
- if (hasEnvelopeError) {
396
- ws.close(1002, envelopeError);
397
- return;
398
- }
399
- bridge.handleSandboxMessage(msg, peerGeneration);
400
- });
401
-
402
- ws.on('close', () => {
403
- const releasePeer = disconnect;
404
- const hasPeer = releasePeer !== null;
405
- if (hasPeer) {
406
- releasePeer();
407
- const id = sandboxId;
408
- const hasId = id !== null && id.length > 0;
409
- let label = 'unknown';
410
- if (hasId) label = id.slice(0, 12);
411
- logger.info(`peer disconnected — sandboxId=${label}`);
412
- }
413
- disconnect = null;
414
- });
415
-
416
- ws.on('error', () => {
417
- // ws will follow up with a 'close' event; cleanup happens there.
418
- });
419
- }
420
-
421
343
  /** Construct a default logger only when the caller did not supply one. */
422
344
  function defaultLogger(silent = false): BridgeLogger {
423
345
  if (silent) return createSilentLogger();
@@ -2,11 +2,8 @@
2
2
  * The `sandbox` tool's argument vocabulary: the names, shapes, and reads of the
3
3
  * project directory that more than one of its methods needs.
4
4
  *
5
- * `seed` is the one method here with nested arguments, and its user entries are
6
- * where the Admin SDK naming gap reappears: `auth.createUser` already rejects
7
- * `claims` and `tenant` in favor of `customClaims` and `tenantId`, and a seed
8
- * that quietly dropped them would leave the tenant or the claim out of the
9
- * sandbox with nothing said.
5
+ * The seed entries live in `./seed.ts`, apart from these reads of the project
6
+ * directory, so the records that take them can run where the sandbox lives.
10
7
  *
11
8
  * The branch methods share more than a schema. Six of them name a branch, four
12
9
  * have to say the same thing when the project holds no branch by that name, and
@@ -22,70 +19,6 @@ import { CAPTURE_RELATIVE_PATH } from '../../../serve/capture-store.js';
22
19
  import { z } from 'zod';
23
20
 
24
21
  import type { Args, Fail, InvalidArguments } from '../method-types.js';
25
- import { closest, quoted } from '../closest-name.js';
26
-
27
- /** The fields a `seed` users entry accepts, after the Admin SDK rename. */
28
- const USER_FIELDS = ['uid', 'email', 'password', 'customClaims', 'tenantId'] as const;
29
-
30
- /** Client SDK spellings of the two user fields the Admin SDK names differently. */
31
- const USER_FIELD_RENAMES: Readonly<Record<string, string>> = {
32
- claims: 'customClaims',
33
- tenant: 'tenantId',
34
- };
35
-
36
- /**
37
- * One seeded user, under the Admin SDK field names. `auth.importUsers` takes
38
- * the same entry, so an import and a seed describe an identity one way.
39
- */
40
- export const userSeed = z.object({
41
- uid: z.string().describe('The user id.'),
42
- email: z.string().optional().describe('Email address. Generated when omitted.'),
43
- password: z
44
- .string()
45
- .optional()
46
- .describe('Password the identity can sign in with. Derived from the uid when omitted.'),
47
- customClaims: z.record(z.unknown()).optional().describe('Custom claims on the record.'),
48
- tenantId: z.string().optional().describe('Identity Platform tenant the record belongs to.'),
49
- });
50
-
51
- /** One seeded storage object. */
52
- export const storageObjectSeed = z.object({
53
- path: z.string(),
54
- contentBase64: z.string(),
55
- contentType: z.string().optional(),
56
- customMetadata: z.record(z.string()).optional(),
57
- });
58
-
59
- /**
60
- * Reject a `users` entry field the schema does not declare. The seed schema
61
- * strips unknown keys rather than failing on them, so this walks the raw
62
- * arguments a client sent, not the parsed result, the same way the shared
63
- * validator walks a method's top-level arguments.
64
- */
65
- export function checkUserFields(args: Args, fail: Fail): InvalidArguments | null {
66
- const users = args.users;
67
- if (!Array.isArray(users)) return null;
68
- for (const user of users) {
69
- if (user === null || typeof user !== 'object' || Array.isArray(user)) continue;
70
- for (const name of Object.keys(user as Record<string, unknown>)) {
71
- if ((USER_FIELDS as readonly string[]).includes(name)) continue;
72
- const renamed = USER_FIELD_RENAMES[name] ?? closest(name, [...USER_FIELDS]);
73
- if (renamed !== null && renamed !== undefined) {
74
- return fail(
75
- `users entry has unknown field ${quoted(name)}. seed names this field ${quoted(renamed)}.`,
76
- `Pass '${renamed}' instead of '${name}' in the users entry.`,
77
- `users.${name}`,
78
- );
79
- }
80
- return fail(
81
- `users entry has unknown field ${quoted(name)}. A users entry accepts ${USER_FIELDS.join(', ')}.`,
82
- `Remove '${name}' from the users entry.`,
83
- `users.${name}`,
84
- );
85
- }
86
- }
87
- return null;
88
- }
89
22
 
90
23
  /** The value of `against` that names the live sandbox rather than a checkpoint. */
91
24
  export const AGAINST_LIVE = 'live';
@@ -0,0 +1,78 @@
1
+ /**
2
+ * The seed entry vocabulary `sandbox.seed` and `auth.importUsers` share.
3
+ *
4
+ * A users entry is where the Admin SDK naming gap reappears: `auth.createUser`
5
+ * already rejects `claims` and `tenant` in favor of `customClaims` and
6
+ * `tenantId`, and a seed that quietly dropped them would leave the tenant or
7
+ * the claim out of the sandbox with nothing said.
8
+ *
9
+ * Nothing here reads the project directory, so both records can run where the
10
+ * sandbox lives.
11
+ */
12
+ import { z } from 'zod';
13
+
14
+ import type { Args, Fail, InvalidArguments } from '../method-types.js';
15
+ import { closest, quoted } from '../closest-name.js';
16
+
17
+ /** The fields a `seed` users entry accepts, after the Admin SDK rename. */
18
+ const USER_FIELDS = ['uid', 'email', 'password', 'customClaims', 'tenantId'] as const;
19
+
20
+ /** Client SDK spellings of the two user fields the Admin SDK names differently. */
21
+ const USER_FIELD_RENAMES: Readonly<Record<string, string>> = {
22
+ claims: 'customClaims',
23
+ tenant: 'tenantId',
24
+ };
25
+
26
+ /**
27
+ * One seeded user, under the Admin SDK field names. `auth.importUsers` takes
28
+ * the same entry, so an import and a seed describe an identity one way.
29
+ */
30
+ export const userSeed = z.object({
31
+ uid: z.string().describe('The user id.'),
32
+ email: z.string().optional().describe('Email address. Generated when omitted.'),
33
+ password: z
34
+ .string()
35
+ .optional()
36
+ .describe('Password the identity can sign in with. Derived from the uid when omitted.'),
37
+ customClaims: z.record(z.unknown()).optional().describe('Custom claims on the record.'),
38
+ tenantId: z.string().optional().describe('Identity Platform tenant the record belongs to.'),
39
+ });
40
+
41
+ /** One seeded storage object. */
42
+ export const storageObjectSeed = z.object({
43
+ path: z.string(),
44
+ contentBase64: z.string(),
45
+ contentType: z.string().optional(),
46
+ customMetadata: z.record(z.string()).optional(),
47
+ });
48
+
49
+ /**
50
+ * Reject a `users` entry field the schema does not declare. The seed schema
51
+ * strips unknown keys rather than failing on them, so this walks the raw
52
+ * arguments a client sent, not the parsed result, the same way the shared
53
+ * validator walks a method's top-level arguments.
54
+ */
55
+ export function checkUserFields(args: Args, fail: Fail): InvalidArguments | null {
56
+ const users = args.users;
57
+ if (!Array.isArray(users)) return null;
58
+ for (const user of users) {
59
+ if (user === null || typeof user !== 'object' || Array.isArray(user)) continue;
60
+ for (const name of Object.keys(user as Record<string, unknown>)) {
61
+ if ((USER_FIELDS as readonly string[]).includes(name)) continue;
62
+ const renamed = USER_FIELD_RENAMES[name] ?? closest(name, [...USER_FIELDS]);
63
+ if (renamed !== null && renamed !== undefined) {
64
+ return fail(
65
+ `users entry has unknown field ${quoted(name)}. seed names this field ${quoted(renamed)}.`,
66
+ `Pass '${renamed}' instead of '${name}' in the users entry.`,
67
+ `users.${name}`,
68
+ );
69
+ }
70
+ return fail(
71
+ `users entry has unknown field ${quoted(name)}. A users entry accepts ${USER_FIELDS.join(', ')}.`,
72
+ `Remove '${name}' from the users entry.`,
73
+ `users.${name}`,
74
+ );
75
+ }
76
+ }
77
+ return null;
78
+ }