@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
@@ -1,11 +1,16 @@
1
- import { redactUrl } from 'pyric/ai/internal';
1
+ import { redactUpstreamText, redactUrl } from 'pyric/ai/internal';
2
2
  import { sanitizeForTerminal } from './ai-terminal-text.js';
3
3
  import { permitGuardHost } from '../register/net-guard.js';
4
4
  import { FIREBASE_AI_LOGIC_HOST } from '../google-endpoints.js';
5
+ import { HOSTED_METHOD_BODY_LIMIT } from './hosted/method-protocol.js';
6
+ import { BODY_TOO_LARGE_CODE, closingHeaders, collectRawBody } from '../bridge/server/peer.js';
5
7
  /** Default upstream: local Ollama's OpenAI-compatible endpoint. */
6
8
  export const AI_PROXY_DEFAULT_UPSTREAM = 'http://localhost:11434/v1';
7
9
  /** The route the dev server mounts for OpenAI-compatible traffic. */
8
10
  export const AI_PROXY_ROUTE = '/__pyric/ai-proxy';
11
+ /** Largest request body the proxy forwards: the hosted method route's limit,
12
+ * which already carries AI requests with inline images. */
13
+ export const AI_PROXY_BODY_LIMIT_BYTES = HOSTED_METHOD_BODY_LIMIT;
9
14
  /**
10
15
  * Request headers that must NOT be forwarded upstream: origin-sensitive
11
16
  * browser context (`origin`/`referer`/`cookie`, since the upstream is a
@@ -37,13 +42,17 @@ const AI_PROXY_RETRY_AFTER_MAX = 64;
37
42
  * nothing worth printing.
38
43
  *
39
44
  * The header is remote-authored, so it is sanitized and length-capped like
40
- * every other upstream string that reaches the terminal. Delta-seconds (the
45
+ * every other upstream string that reaches the terminal. It is masked of the
46
+ * request's credentials first, with the masking the gemini engine and proxy
47
+ * use (`redactUpstreamText`), so the cap cannot leave a prefix of a key
48
+ * behind. Delta-seconds (the
41
49
  * common form) get an `s` suffix so the wait reads as a duration; the
42
50
  * HTTP-date form is echoed verbatim, since `Wed, 21 Oct 2026 07:28:00 GMTs`
43
51
  * would be nonsense.
44
52
  */
45
- function formatRetryAfter(raw) {
46
- const clean = sanitizeForTerminal(raw).slice(0, AI_PROXY_RETRY_AFTER_MAX).trim();
53
+ function formatRetryAfter(raw, credentials) {
54
+ const masked = redactUpstreamText(raw, credentials);
55
+ const clean = sanitizeForTerminal(masked).slice(0, AI_PROXY_RETRY_AFTER_MAX).trim();
47
56
  if (clean === '')
48
57
  return null;
49
58
  if (/^\d+$/.test(clean))
@@ -112,7 +121,7 @@ export function formatAiProxyWarning(failure, source = 'ai-proxy') {
112
121
  lines.push(` set PYRIC_AI_PROXY_UPSTREAM to an OpenAI-compatible base URL (default ${AI_PROXY_DEFAULT_UPSTREAM})`);
113
122
  }
114
123
  if (failure.kind === 'status' && failure.retryAfter !== undefined) {
115
- const wait = formatRetryAfter(failure.retryAfter);
124
+ const wait = formatRetryAfter(failure.retryAfter, failure.credentials ?? []);
116
125
  if (wait !== null) {
117
126
  lines.push(` Retry-After: ${wait}, no automatic retry; the status went to the caller`);
118
127
  }
@@ -176,6 +185,27 @@ export function permitAiUpstreams(ai) {
176
185
  for (const destination of destinations)
177
186
  permitGuardHost(destination);
178
187
  }
188
+ /** The `key` parameter of `target`, or null when it has none or is not a URL. */
189
+ function urlKeyParam(target) {
190
+ try {
191
+ return new URL(target).searchParams.get('key');
192
+ }
193
+ catch {
194
+ return null;
195
+ }
196
+ }
197
+ /**
198
+ * The credentials an upstream request carries: the `key` URL parameter, the
199
+ * `x-goog-api-key` header, and the `Authorization` value without its scheme.
200
+ */
201
+ function requestCredentials(input, init) {
202
+ const isRequest = input instanceof Request;
203
+ const headers = new Headers(isRequest ? input.headers : init?.headers);
204
+ const urlKey = urlKeyParam(isRequest ? input.url : String(input));
205
+ const authorization = headers.get('authorization')?.replace(/^\S+\s+/, '') ?? null;
206
+ const found = [urlKey, headers.get('x-goog-api-key'), authorization];
207
+ return found.filter((value) => value !== null && value !== '');
208
+ }
179
209
  /** Shared upstream I/O for the browser proxy and the direct Node engine.
180
210
  * Responses remain incremental; cancellation stops reading without a warning.
181
211
  */
@@ -197,7 +227,7 @@ export async function fetchAiUpstream(input, init, throttle, logger, source = 'a
197
227
  if (failed) {
198
228
  const retryAfter = upstream.headers.get('retry-after');
199
229
  note({ kind: 'status', target, latencyMs: Date.now() - startedAt, status: upstream.status,
200
- ...(retryAfter !== null ? { retryAfter } : {}) });
230
+ ...(retryAfter !== null ? { retryAfter, credentials: requestCredentials(input, init) } : {}) });
201
231
  }
202
232
  const body = upstream.body;
203
233
  const hasNoBody = body === null;
@@ -233,6 +263,22 @@ export async function fetchAiUpstream(input, init, throttle, logger, source = 'a
233
263
  status: upstream.status, statusText: upstream.statusText, headers: upstream.headers,
234
264
  });
235
265
  }
266
+ /**
267
+ * Read an AI proxy request's body, at most {@link AI_PROXY_BODY_LIMIT_BYTES}.
268
+ * Past the limit it answers 413, and on a broken upload 400, and returns
269
+ * null: the caller sends nothing upstream. Both proxy routes read through it.
270
+ */
271
+ export async function readAiProxyBody(req, res) {
272
+ try {
273
+ return await collectRawBody(req, AI_PROXY_BODY_LIMIT_BYTES);
274
+ }
275
+ catch (error) {
276
+ const tooLarge = error.code === BODY_TOO_LARGE_CODE;
277
+ const status = tooLarge ? 413 : 400;
278
+ res.writeHead(status, closingHeaders({ 'content-type': 'text/plain' })).end(tooLarge ? 'Payload Too Large' : 'Bad Request');
279
+ return null;
280
+ }
281
+ }
236
282
  /**
237
283
  * Handle `POST /__pyric/ai-proxy/<suffix>`: a same-origin passthrough to the
238
284
  * configured OpenAI-compatible upstream, so the browser openai engine
@@ -243,7 +289,11 @@ export async function fetchAiUpstream(input, init, throttle, logger, source = 'a
243
289
  * - POST only (the OpenAI chat-completions surface is POST); 405 otherwise.
244
290
  * - the path suffix + query ride through verbatim
245
291
  * (`/__pyric/ai-proxy/chat/completions` becomes `<upstream>/chat/completions`).
246
- * - the request body is forwarded verbatim; headers minus the
292
+ * - the caller must pass the namespace's loopback guard (Host, and an
293
+ * Origin naming this server when one is sent), which the namespace runs
294
+ * before this handler: the upstream may carry the developer's key.
295
+ * - the request body is forwarded verbatim, up to
296
+ * {@link AI_PROXY_BODY_LIMIT_BYTES} (413 past it); headers minus the
247
297
  * origin-sensitive/hop-by-hop set above (`authorization` DOES forward,
248
298
  * since upstreams may require a key).
249
299
  * - the response body is STREAMED through chunk-by-chunk. SSE passthrough
@@ -264,17 +314,10 @@ export async function handleAiProxy(configuredUpstream, throttle, req, res, url,
264
314
  const upstreamBase = resolveAiProxyUpstream(configuredUpstream).target;
265
315
  const suffix = url.pathname.slice(AI_PROXY_ROUTE.length);
266
316
  const target = `${upstreamBase}${suffix}${url.search}`;
267
- // Buffer the REQUEST body (small JSON payloads); the RESPONSE streams.
268
- const raw = await new Promise((resolve, reject) => {
269
- const chunks = [];
270
- req.on('data', (c) => chunks.push(c));
271
- req.on('end', () => resolve(Buffer.concat(chunks)));
272
- req.on('error', reject);
273
- });
274
- // Copy into a plain-ArrayBuffer view; fetch's BodyInit typing rejects
275
- // Buffer's ArrayBufferLike backing.
276
- const body = new Uint8Array(raw.byteLength);
277
- body.set(raw);
317
+ // The request body is a bounded JSON payload, read once; the RESPONSE streams.
318
+ const body = await readAiProxyBody(req, res);
319
+ if (body === null)
320
+ return;
278
321
  const headers = {};
279
322
  for (const [key, value] of Object.entries(req.headers)) {
280
323
  if (value === undefined)
@@ -298,6 +341,15 @@ export async function handleAiProxy(configuredUpstream, throttle, req, res, url,
298
341
  `(default ${AI_PROXY_DEFAULT_UPSTREAM}).`);
299
342
  return;
300
343
  }
344
+ await relayAiUpstream(upstream, res);
345
+ }
346
+ /**
347
+ * Send an upstream's answer to the caller: its status and content type, then
348
+ * the body chunk by chunk. SSE passthrough must never buffer. A dropped
349
+ * client cancels the upstream read so an abandoned stream doesn't keep the
350
+ * upstream generating.
351
+ */
352
+ export async function relayAiUpstream(upstream, res) {
301
353
  const responseHeaders = { 'cache-control': 'no-store' };
302
354
  const contentType = upstream.headers.get('content-type');
303
355
  if (contentType)
@@ -308,8 +360,6 @@ export async function handleAiProxy(configuredUpstream, throttle, req, res, url,
308
360
  return;
309
361
  }
310
362
  res.flushHeaders?.();
311
- // Chunk-by-chunk passthrough. A dropped client cancels the upstream read
312
- // so an abandoned SSE stream doesn't keep the upstream generating.
313
363
  const reader = upstream.body.getReader();
314
364
  res.on('close', () => {
315
365
  void reader.cancel().catch(() => { });
@@ -1 +1 @@
1
- {"version":3,"file":"ai-proxy.js","sourceRoot":"","sources":["../../src/serve/ai-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-proxy.js","sourceRoot":"","sources":["../../src/serve/ai-proxy.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ export interface AiRejectionPayload {
12
12
  code?: unknown;
13
13
  /** The rejection reason: production's own message for shape errors. */
14
14
  message?: unknown;
15
+ /** Pyric's guidance beside production's message, such as the App Check gate's. */
16
+ hint?: unknown;
15
17
  }
16
18
  /** Loosely-typed mirror of the AI blocked-response payload. Unlike a
17
19
  * rejection this carries no `message`: a filter block has no error envelope
@@ -51,10 +53,10 @@ export type AiDiagnosticPayload = AiRejectionPayload & AiBlockedPayload & AiMode
51
53
  /**
52
54
  * Format a relayed AI broker rejection into the compact terminal block, the
53
55
  * same ` [pyric] ...` idiom the denial relay and the ai-proxy warning print.
54
- * Three lines at most: the reason production itself gives, then the model
55
- * (with the resolved engine, since a rejection reads very differently for
56
- * `scripted` than for a real upstream), then the wire status. Exported for
57
- * unit tests.
56
+ * The reason production itself gives, then the model (with the resolved
57
+ * engine, since a rejection reads very differently for `scripted` than for a
58
+ * real upstream), then the wire status, then pyric's guidance when the broker
59
+ * gave one (the App Check gate does). Exported for unit tests.
58
60
  */
59
61
  export declare function formatAiRejectionBlock(payload: AiRejectionPayload): string;
60
62
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ai-terminal-blocks.d.ts","sourceRoot":"","sources":["../../src/serve/ai-terminal-blocks.ts"],"names":[],"mappings":"AAkBA;8DAC8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;mCAGmC;AACnC,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yEAAyE;IACzE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;yDAEyD;AACzD,MAAM,WAAW,0BAA0B;IACzC,yEAAyE;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,2EAA2E;AAC3E,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,0BAA0B,CAAC;AA4BrG;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAc1E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAgBtE;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAS1F;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAC7C,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAAC;IACrD,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAAC;IACrD;;8DAE0D;IAC1D,UAAU,EAAE,OAAO,CAAC;CACrB;AAwBD;+DAC+D;AAC/D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAIxE"}
1
+ {"version":3,"file":"ai-terminal-blocks.d.ts","sourceRoot":"","sources":["../../src/serve/ai-terminal-blocks.ts"],"names":[],"mappings":"AAkBA;8DAC8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;mCAGmC;AACnC,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yEAAyE;IACzE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;yDAEyD;AACzD,MAAM,WAAW,0BAA0B;IACzC,yEAAyE;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,2EAA2E;AAC3E,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,0BAA0B,CAAC;AA4BrG;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAgB1E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAgBtE;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,0BAA0B,GAAG,MAAM,CAS1F;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAAC;IAC7C,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAAC;IACrD,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAAC;IACrD;;8DAE0D;IAC1D,UAAU,EAAE,OAAO,CAAC;CACrB;AAwBD;+DAC+D;AAC/D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAIxE"}
@@ -31,10 +31,10 @@ function formatModelLine(model, engine) {
31
31
  /**
32
32
  * Format a relayed AI broker rejection into the compact terminal block, the
33
33
  * same ` [pyric] ...` idiom the denial relay and the ai-proxy warning print.
34
- * Three lines at most: the reason production itself gives, then the model
35
- * (with the resolved engine, since a rejection reads very differently for
36
- * `scripted` than for a real upstream), then the wire status. Exported for
37
- * unit tests.
34
+ * The reason production itself gives, then the model (with the resolved
35
+ * engine, since a rejection reads very differently for `scripted` than for a
36
+ * real upstream), then the wire status, then pyric's guidance when the broker
37
+ * gave one (the App Check gate does). Exported for unit tests.
38
38
  */
39
39
  export function formatAiRejectionBlock(payload) {
40
40
  const message = readText(payload.message) ?? 'request rejected';
@@ -51,6 +51,9 @@ export function formatAiRejectionBlock(payload) {
51
51
  suffix = ` (${code})`;
52
52
  lines.push(` ${label}${suffix}`);
53
53
  }
54
+ const hint = readText(payload.hint);
55
+ if (hint !== null)
56
+ lines.push(` ${hint}`);
54
57
  return lines.join('\n');
55
58
  }
56
59
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ai-terminal-blocks.js","sourceRoot":"","sources":["../../src/serve/ai-terminal-blocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-terminal-blocks.js","sourceRoot":"","sources":["../../src/serve/ai-terminal-blocks.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,14 @@
23
23
  export declare const AI_TERMINAL_TEXT_MAX = 512;
24
24
  /** Cut text to {@link AI_TERMINAL_TEXT_MAX}, marking the cut. */
25
25
  export declare function capTerminalText(text: string): string;
26
+ /**
27
+ * Replace control, bidi-override and line-separator characters with spaces,
28
+ * and change nothing else: no flattening, no whitespace collapsing, no cut.
29
+ * For one line of text a reader copies out of the terminal, such as a
30
+ * pasteable command or JSON fixture, where the exact spacing and the whole
31
+ * length matter. The caller splits lines first and bounds the total.
32
+ */
33
+ export declare function stripTerminalControls(text: string): string;
26
34
  /**
27
35
  * Flatten an upstream-authored string into ONE terminal-safe line.
28
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ai-terminal-text.d.ts","sourceRoot":"","sources":["../../src/serve/ai-terminal-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAKxC,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD;AAOD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD"}
1
+ {"version":3,"file":"ai-terminal-text.d.ts","sourceRoot":"","sources":["../../src/serve/ai-terminal-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAKxC,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD;AAOD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD"}
@@ -32,6 +32,16 @@ export function capTerminalText(text) {
32
32
  /** Control, bidi-override, and line-separator characters. A remote string
33
33
  * carrying these can forge a terminal line or reverse the text around it. */
34
34
  const TERMINAL_UNSAFE_CHARS = /[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u2028-\u202e\u2066-\u2069\ufeff]/g;
35
+ /**
36
+ * Replace control, bidi-override and line-separator characters with spaces,
37
+ * and change nothing else: no flattening, no whitespace collapsing, no cut.
38
+ * For one line of text a reader copies out of the terminal, such as a
39
+ * pasteable command or JSON fixture, where the exact spacing and the whole
40
+ * length matter. The caller splits lines first and bounds the total.
41
+ */
42
+ export function stripTerminalControls(text) {
43
+ return text.replace(TERMINAL_UNSAFE_CHARS, ' ');
44
+ }
35
45
  /**
36
46
  * Flatten an upstream-authored string into ONE terminal-safe line.
37
47
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ai-terminal-text.js","sourceRoot":"","sources":["../../src/serve/ai-terminal-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,8EAA8E;AAC9E,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEnC,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,IAAI,CAAC,MAAM,IAAI,oBAAoB;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,GAAG,iBAAiB,EAAE,CAAC;AACtE,CAAC;AAED;8EAC8E;AAC9E,MAAM,qBAAqB,GACzB,iFAAiF,CAAC;AAEpF;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvF,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"ai-terminal-text.js","sourceRoot":"","sources":["../../src/serve/ai-terminal-text.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,8EAA8E;AAC9E,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEnC,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,IAAI,CAAC,MAAM,IAAI,oBAAoB;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,GAAG,iBAAiB,EAAE,CAAC;AACtE,CAAC;AAED;8EAC8E;AAC9E,MAAM,qBAAqB,GACzB,iFAAiF,CAAC;AAEpF;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvF,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The ports a page of this app may name in its `Origin` when it opens the
3
+ * bridge socket or calls a control route.
4
+ *
5
+ * A page this server serves names the server's own port. Under a dev server
6
+ * that proxies `/__pyric/*` to this one, such as `withPyric`'s rewrite under
7
+ * `pyric sandbox -- next dev`, the page loads from the dev server, so its
8
+ * Origin names the dev server's port instead. The proxy says which port that
9
+ * is: it forwards each request with `x-forwarded-host` set to the host the
10
+ * browser asked it for. A socket the proxy forwards (the Node host's page)
11
+ * carries that header itself. A socket that comes straight to this server
12
+ * (the SharedWorker sandbox) does not, but the page's `/__pyric/init.json`
13
+ * went through the proxy before the page learned the bridge URL, so the
14
+ * port was learned from that request.
15
+ *
16
+ * Only a same-origin request teaches a port: one whose `sec-fetch-site` is
17
+ * `same-origin`, which the browser sets and a page cannot change. The page
18
+ * Next serves fetches `/__pyric/*` from Next's own origin, and the proxy
19
+ * passes the header through. A page on another port that sends the request
20
+ * itself, even with an `x-forwarded-host` it chose, is `same-site` at most,
21
+ * so it teaches nothing. A proxy names its own host, never the page's, so a
22
+ * page on another port that goes through the proxy is still refused. Only
23
+ * loopback names and the bound host are learned; a name allowed through
24
+ * `--allowed-host` (a tunnel) is never port-checked in the first place.
25
+ *
26
+ * Only the standalone server learns (`learnsProxyPorts`). A mount inside a
27
+ * dev server, such as the Vite plugin's, serves the page on the connection's
28
+ * own port, and that dev server may answer cross-origin preflights for
29
+ * `/__pyric/*` paths it does not handle.
30
+ */
31
+ import type { IncomingMessage } from 'node:http';
32
+ export interface AppPorts {
33
+ /** Records the proxy port a same-origin forwarded request names. */
34
+ learn(req: IncomingMessage): void;
35
+ /** The ports a page's Origin may name on this request's connection. */
36
+ forRequest(req: IncomingMessage): number[];
37
+ /**
38
+ * The same, plus the proxy's port when a proxy forwarded this WebSocket
39
+ * upgrade from the page it serves: the Origin names the host the proxy
40
+ * names in `x-forwarded-host`. A browser cannot put a header on a
41
+ * WebSocket handshake, so only a proxy can name that host, and it names
42
+ * its own. The page may open its socket before any same-origin request
43
+ * has gone through the proxy, as the Node host's page under Next does.
44
+ */
45
+ forUpgrade(req: IncomingMessage): number[];
46
+ }
47
+ export declare function createAppPorts(boundHost: string): AppPorts;
48
+ //# sourceMappingURL=app-ports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-ports.d.ts","sourceRoot":"","sources":["../../src/serve/app-ports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAMjD,MAAM,WAAW,QAAQ;IACvB,oEAAoE;IACpE,KAAK,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,uEAAuE;IACvE,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAAC;IAC3C;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,EAAE,CAAC;CAC5C;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CA8B1D"}
@@ -0,0 +1,82 @@
1
+ import { getHeader, isAllowedHost } from './server.js';
2
+ /** A dev server proxies from one port; a handful covers restarts on new ports. */
3
+ const MAX_LEARNED_PORTS = 8;
4
+ export function createAppPorts(boundHost) {
5
+ const learned = new Set();
6
+ const forRequest = (req) => {
7
+ const ports = [...learned];
8
+ const localPort = req.socket?.localPort;
9
+ const hasLocalPort = typeof localPort === 'number';
10
+ if (hasLocalPort)
11
+ ports.unshift(localPort);
12
+ return ports;
13
+ };
14
+ return {
15
+ learn(req) {
16
+ const isSameOrigin = getHeader(req, 'sec-fetch-site') === 'same-origin';
17
+ if (!isSameOrigin)
18
+ return;
19
+ const port = forwardedLoopbackPort(getHeader(req, 'x-forwarded-host'), boundHost);
20
+ const namesNoPort = port === undefined;
21
+ if (namesNoPort)
22
+ return;
23
+ learned.delete(port);
24
+ learned.add(port);
25
+ const isOverCapacity = learned.size > MAX_LEARNED_PORTS;
26
+ if (isOverCapacity)
27
+ learned.delete(learned.values().next().value);
28
+ },
29
+ forRequest,
30
+ forUpgrade(req) {
31
+ const ports = forRequest(req);
32
+ const proxyPort = proxiedPagePort(req, boundHost);
33
+ const isProxiedFromItsPage = proxyPort !== undefined;
34
+ if (isProxiedFromItsPage)
35
+ ports.push(proxyPort);
36
+ return ports;
37
+ },
38
+ };
39
+ }
40
+ /** The proxy's port when the Origin names the host `x-forwarded-host` names, else `undefined`. */
41
+ function proxiedPagePort(req, boundHost) {
42
+ const forwardedHost = getHeader(req, 'x-forwarded-host');
43
+ const originHeader = getHeader(req, 'origin');
44
+ const lacksEither = forwardedHost === undefined || originHeader === undefined;
45
+ if (lacksEither)
46
+ return undefined;
47
+ let origin;
48
+ try {
49
+ origin = new URL(originHeader);
50
+ }
51
+ catch {
52
+ return undefined;
53
+ }
54
+ const namesTheProxy = origin.host.toLowerCase() === forwardedHost.trim().toLowerCase();
55
+ if (!namesTheProxy)
56
+ return undefined;
57
+ return forwardedLoopbackPort(forwardedHost, boundHost);
58
+ }
59
+ /** The port in a single loopback `x-forwarded-host`, else `undefined`. */
60
+ function forwardedLoopbackPort(forwardedHost, boundHost) {
61
+ const hasNoForwardedHost = forwardedHost === undefined || forwardedHost.trim() === '';
62
+ if (hasNoForwardedHost)
63
+ return undefined;
64
+ const namesSeveralHosts = forwardedHost.includes(',');
65
+ if (namesSeveralHosts)
66
+ return undefined;
67
+ let forwarded;
68
+ try {
69
+ forwarded = new URL(`http://${forwardedHost.trim()}`);
70
+ }
71
+ catch {
72
+ return undefined;
73
+ }
74
+ const isLoopback = isAllowedHost(forwarded.hostname, boundHost);
75
+ if (!isLoopback)
76
+ return undefined;
77
+ const namesNoPort = forwarded.port === '';
78
+ if (namesNoPort)
79
+ return 80;
80
+ return Number(forwarded.port);
81
+ }
82
+ //# sourceMappingURL=app-ports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-ports.js","sourceRoot":"","sources":["../../src/serve/app-ports.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import type { IncomingMessage, Server, ServerResponse } from 'node:http';
2
+ import { type AppPorts } from './app-ports.js';
2
3
  import type { DatabaseRulesDestination, InitPayload } from './init-payload.js';
3
4
  import type { HostedRuntimeOptions } from './hosted/runtime.js';
5
+ export declare const HEALTH_PATH = "/__pyric/health";
6
+ /** The 503 a closed mount answers its routes with, so a client knows the host is going away. */
7
+ export declare function answerMountClosed(res: ServerResponse): void;
4
8
  export interface BridgeMountOptions {
5
9
  hosted?: boolean;
6
10
  project?: string;
@@ -15,6 +19,15 @@ export interface BridgeMountOptions {
15
19
  boundHost: string;
16
20
  allowedHosts?: string[] | true;
17
21
  };
22
+ /** Accept a page on the port of a dev server that proxies `/__pyric/*` to
23
+ * this one (`pyric sandbox -- next dev`). Only the standalone server sets
24
+ * it. A mount inside a dev server, such as the Vite plugin's, serves the
25
+ * page on its own port, which the connection's port already covers. */
26
+ learnsProxyPorts?: boolean;
27
+ /** The app's ports, shared with the namespace's guarded routes. The caller
28
+ * that passes them teaches them from each request, so the mount does not.
29
+ * Absent, the mount keeps its own and learns when `learnsProxyPorts`. */
30
+ appPorts?: AppPorts;
18
31
  }
19
32
  export interface BridgeMount {
20
33
  /** A null database or Storage source clears the rules, so the default policy applies. */
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-mount.d.ts","sourceRoot":"","sources":["../../src/serve/bridge-mount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-mount.d.ts","sourceRoot":"","sources":["../../src/serve/bridge-mount.ts"],"names":[],"mappings":"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"}
@@ -27,16 +27,23 @@ import { getBridgeToolSurface } from '../bridge/server/mcp-contract.js';
27
27
  import { createAuditWriter } from '../bridge/server/audit.js';
28
28
  import { attachPeer, collectBody, BODY_TOO_LARGE_CODE } from '../bridge/server/peer.js';
29
29
  import { pointerHeldByAnotherHost } from './discovery.js';
30
+ import { boundedFetch } from '../bounded-request.js';
30
31
  import { pyricVersion } from './standalone-assets.js';
31
32
  import { getHeader, isAllowedHost, isAllowedLoopbackRequest, isAllowedOrigin, isAllowedUpgrade } from './server.js';
33
+ import { createAppPorts } from './app-ports.js';
32
34
  import { MAX_BRIDGE_FRAME_BYTES, MAX_MOUNTED_MCP_SESSIONS, STORAGE_BYTE_ROUTE_CAPABILITY, WORKER_PORT_CAPABILITY, WORKER_RELAY_CAPABILITY } from '../bridge/protocol.js';
33
35
  import { STORAGE_ROUTE_PREFIX } from './worker/protocol/storage.js';
34
36
  import { HOSTED_METHOD_PATH, HOSTED_METHOD_BODY_LIMIT, HOSTED_REPRO_PATH, hostedMethodRequest, hostedReproRequest } from './hosted/method-protocol.js';
35
37
  import { MCP_PROJECT_HEADER, MCP_INSTANCE_HEADER, mcpProjectError } from './mcp-project.js';
36
38
  const WS_PATH = '/__pyric/sandbox';
37
39
  const MCP_PATH = '/__pyric/mcp';
38
- const HEALTH_PATH = '/__pyric/health';
40
+ export const HEALTH_PATH = '/__pyric/health';
39
41
  const BRIDGE_VERSION = pyricVersion();
42
+ /** The 503 a closed mount answers its routes with, so a client knows the host is going away. */
43
+ export function answerMountClosed(res) {
44
+ res.writeHead(503, { 'content-type': 'application/json' });
45
+ res.end(JSON.stringify({ error: 'pyric bridge: mount is closed' }));
46
+ }
40
47
  /**
41
48
  * Test-only: `PYRIC_TEST_PEER_LIVENESS_MS` shortens the host's peer liveness
42
49
  * window so app scenarios (`test/apps/host-closes-silent-page`) need not wait
@@ -58,6 +65,10 @@ export function urlHost(host) {
58
65
  }
59
66
  export function createBridgeMount(opts = {}) {
60
67
  const peerOptions = { livenessTimeoutMs: testPeerLivenessMs() };
68
+ // The ports a page of this app may name in its Origin (see app-ports.ts).
69
+ const sharesPorts = opts.appPorts !== undefined;
70
+ const appPorts = opts.appPorts ?? createAppPorts(opts.upgradeGuard?.boundHost ?? 'localhost');
71
+ const learnsHere = opts.learnsProxyPorts === true && !sharesPorts;
61
72
  let hostedRuntime;
62
73
  let hostedStartup;
63
74
  let disconnectHosted;
@@ -235,6 +246,8 @@ export function createBridgeMount(opts = {}) {
235
246
  project,
236
247
  instanceId: bridge.instanceId,
237
248
  async handler(req, res, url) {
249
+ if (learnsHere)
250
+ appPorts.learn(req);
238
251
  const isHealthRequest = url.pathname === HEALTH_PATH;
239
252
  const isMcpRequest = url.pathname === MCP_PATH;
240
253
  const isHostedRepro = url.pathname === HOSTED_REPRO_PATH;
@@ -243,8 +256,7 @@ export function createBridgeMount(opts = {}) {
243
256
  const isStorageBytes = url.pathname.startsWith(STORAGE_ROUTE_PREFIX);
244
257
  const rejectsClosedRequest = closed && (isHealthRequest || isMcpRequest || isHostedMethod || isStorageBytes);
245
258
  if (rejectsClosedRequest) {
246
- res.writeHead(503, { 'content-type': 'application/json' });
247
- res.end(JSON.stringify({ error: 'pyric bridge: mount is closed' }));
259
+ answerMountClosed(res);
248
260
  return true;
249
261
  }
250
262
  if (isHealthRequest) {
@@ -260,7 +272,7 @@ export function createBridgeMount(opts = {}) {
260
272
  const allowedHosts = guard?.allowedHosts;
261
273
  const hasNamedHosts = Array.isArray(allowedHosts);
262
274
  const extra = hasNamedHosts ? allowedHosts : [];
263
- const isForbidden = !isAllowedLoopbackRequest(req, boundHost, extra);
275
+ const isForbidden = !isAllowedLoopbackRequest(req, boundHost, extra, appPorts.forRequest(req));
264
276
  if (isForbidden) {
265
277
  res.writeHead(403, { 'content-type': 'application/json' });
266
278
  res.end(JSON.stringify({ error: 'Forbidden: invalid host or origin' }));
@@ -455,7 +467,9 @@ export function createBridgeMount(opts = {}) {
455
467
  const allowedHosts = guard.allowedHosts;
456
468
  const hasNamedHosts = Array.isArray(allowedHosts);
457
469
  const extra = hasNamedHosts ? allowedHosts : [];
458
- const isForbidden = !isAllowedUpgrade(req.headers, boundHost, extra);
470
+ const acceptsProxiedPage = opts.learnsProxyPorts === true;
471
+ const ports = acceptsProxiedPage ? appPorts.forUpgrade(req) : appPorts.forRequest(req);
472
+ const isForbidden = !isAllowedUpgrade(req.headers, boundHost, extra, ports);
459
473
  if (isForbidden) {
460
474
  socket.destroy();
461
475
  return;
@@ -504,11 +518,17 @@ export function createBridgeMount(opts = {}) {
504
518
  const cannotProbe = !currentOrigin?.port || attachmentClosed;
505
519
  if (cannotProbe)
506
520
  return;
521
+ // By default a bounded request, connect included, so a family whose
522
+ // connect never completes leaves no socket pending past 1 s (#1167).
523
+ const probeHealth = (url) => {
524
+ const injected = collision.fetchImpl;
525
+ if (injected)
526
+ return injected(url, { signal: AbortSignal.any([collisionAbort.signal, AbortSignal.timeout(1000)]) });
527
+ return boundedFetch(url, { deadlineMs: 1000, signal: collisionAbort.signal });
528
+ };
507
529
  for (const probe of [`http://127.0.0.1:${currentOrigin.port}`, `http://[::1]:${currentOrigin.port}`]) {
508
530
  try {
509
- const response = await (collision.fetchImpl ?? fetch)(`${probe}${HEALTH_PATH}`, {
510
- signal: AbortSignal.any([collisionAbort.signal, AbortSignal.timeout(1000)]),
511
- });
531
+ const response = await probeHealth(`${probe}${HEALTH_PATH}`);
512
532
  if (attachmentClosed)
513
533
  return;
514
534
  const isUnavailable = response.status !== 200;