@pyric/cli 0.1.0-alpha.11 → 0.1.0-alpha.12

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 (301) hide show
  1. package/dist/conformance/.generated/can-i-use-browser.d.ts.map +1 -1
  2. package/dist/conformance/.generated/can-i-use-browser.js +1 -1
  3. package/dist/conformance/.generated/can-i-use-browser.js.map +1 -1
  4. package/dist/conformance/.generated/can-i-use.d.ts.map +1 -1
  5. package/dist/conformance/.generated/can-i-use.js +2 -2
  6. package/dist/conformance/.generated/can-i-use.js.map +1 -1
  7. package/dist/serve/docs-ui/docs/_rhythm/index.html +1 -1
  8. package/dist/serve/docs-ui/docs/agent/set-up-your-agent/index.html +1 -1
  9. package/dist/serve/docs-ui/docs/agent/watch-and-review/index.html +1 -1
  10. package/dist/serve/docs-ui/docs/agent/work-with-an-agent/index.html +1 -1
  11. package/dist/serve/docs-ui/docs/ai-compat/index.html +1 -1
  12. package/dist/serve/docs-ui/docs/api-reference/index.html +2 -2
  13. package/dist/serve/docs-ui/docs/api-reference.md +1 -1
  14. package/dist/serve/docs-ui/docs/app-compat/index.html +1 -1
  15. package/dist/serve/docs-ui/docs/auth-compat/index.html +1 -1
  16. package/dist/serve/docs-ui/docs/build/ai-logic/index.html +1 -1
  17. package/dist/serve/docs-ui/docs/build/authentication/index.html +1 -1
  18. package/dist/serve/docs-ui/docs/build/cloud-firestore/index.html +1 -1
  19. package/dist/serve/docs-ui/docs/build/cloud-messaging/index.html +1 -1
  20. package/dist/serve/docs-ui/docs/build/cloud-storage/index.html +1 -1
  21. package/dist/serve/docs-ui/docs/build/realtime-database/index.html +1 -1
  22. package/dist/serve/docs-ui/docs/conformance-scores/index.html +1 -1
  23. package/dist/serve/docs-ui/docs/create-pyric-reference-api/index.html +1 -1
  24. package/dist/serve/docs-ui/docs/database-compat/index.html +1 -1
  25. package/dist/serve/docs-ui/docs/firestore-compat/index.html +1 -1
  26. package/dist/serve/docs-ui/docs/functions-rtdb-compat/index.html +1 -1
  27. package/dist/serve/docs-ui/docs/get-started/how-the-swap-works/index.html +1 -1
  28. package/dist/serve/docs-ui/docs/get-started/start-building/index.html +1 -1
  29. package/dist/serve/docs-ui/docs/index.json +200 -25
  30. package/dist/serve/docs-ui/docs/messaging-compat/index.html +1 -1
  31. package/dist/serve/docs-ui/docs/observe/see-whats-happening/index.html +1 -1
  32. package/dist/serve/docs-ui/docs/observe/shape-your-data/index.html +1 -1
  33. package/dist/serve/docs-ui/docs/overview/index.html +1 -1
  34. package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api/index.html +1 -1
  35. package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api/index.html +1 -1
  36. package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api/index.html +1 -1
  37. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api/index.html +1 -1
  38. package/dist/serve/docs-ui/docs/pyric-admin-messaging-reference-api/index.html +916 -0
  39. package/dist/serve/docs-ui/docs/pyric-admin-messaging-reference-api.md +706 -0
  40. package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api/index.html +1 -1
  41. package/dist/serve/docs-ui/docs/pyric-ai-reference-api/index.html +1 -1
  42. package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api/index.html +1 -1
  43. package/dist/serve/docs-ui/docs/pyric-app-reference-api/index.html +1 -1
  44. package/dist/serve/docs-ui/docs/pyric-auth-reference-api/index.html +1 -1
  45. package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +1 -1
  46. package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api/index.html +1 -1
  47. package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api/index.html +1 -1
  48. package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api/index.html +1 -1
  49. package/dist/serve/docs-ui/docs/pyric-cli-conformance-browser-reference-api/index.html +1 -1
  50. package/dist/serve/docs-ui/docs/pyric-cli-conformance-docs-reference-api/index.html +1 -1
  51. package/dist/serve/docs-ui/docs/pyric-cli-conformance-reference-api/index.html +1 -1
  52. package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api/index.html +1 -1
  53. package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api/index.html +1 -1
  54. package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api/index.html +1 -1
  55. package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api/index.html +1 -1
  56. package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api/index.html +131 -66
  57. package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api.md +130 -65
  58. package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api/index.html +1 -1
  59. package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api/index.html +1 -1
  60. package/dist/serve/docs-ui/docs/pyric-database-reference-api/index.html +1 -1
  61. package/dist/serve/docs-ui/docs/pyric-firestore-reference-api/index.html +1 -1
  62. package/dist/serve/docs-ui/docs/pyric-messaging-reference-api/index.html +1 -1
  63. package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api/index.html +1 -1
  64. package/dist/serve/docs-ui/docs/pyric-rules-reference-api/index.html +1 -1
  65. package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api/index.html +1 -1
  66. package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api/index.html +1 -1
  67. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api/index.html +37 -14
  68. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api.md +28 -8
  69. package/dist/serve/docs-ui/docs/pyric-storage-reference-api/index.html +1 -1
  70. package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api/index.html +1 -1
  71. package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +1 -1
  72. package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api/index.html +1 -1
  73. package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api/index.html +1 -1
  74. package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api/index.html +1 -1
  75. package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +1 -1
  76. package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api/index.html +1 -1
  77. package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api/index.html +1 -1
  78. package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api/index.html +1 -1
  79. package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +1 -1
  80. package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api/index.html +1 -1
  81. package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +1 -1
  82. package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api/index.html +1 -1
  83. package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +1 -1
  84. package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api/index.html +1 -1
  85. package/dist/serve/docs-ui/docs/rules-compat/index.html +1 -1
  86. package/dist/serve/docs-ui/docs/secure/audit-your-rules/index.html +1 -1
  87. package/dist/serve/docs-ui/docs/secure/firestore-rules-limits/index.html +1 -1
  88. package/dist/serve/docs-ui/docs/secure/read-a-denial/index.html +1 -1
  89. package/dist/serve/docs-ui/docs/secure/rtdb-rules-in-typescript/index.html +1 -1
  90. package/dist/serve/docs-ui/docs/secure/rules-standard-library/index.html +1 -1
  91. package/dist/serve/docs-ui/docs/secure/secure-it-with-rules/index.html +1 -1
  92. package/dist/serve/docs-ui/docs/secure/simulate-and-lint/index.html +1 -1
  93. package/dist/serve/docs-ui/docs/secure/write-a-rules-test-suite/index.html +1 -1
  94. package/dist/serve/docs-ui/docs/ship/ship-to-production/index.html +1 -1
  95. package/dist/serve/docs-ui/docs/ship/test-in-node/index.html +1 -1
  96. package/dist/serve/docs-ui/docs/storage-compat/index.html +1 -1
  97. package/dist/serve/docs-ui/docs/trust/how-we-know-it-matches-firebase/index.html +1 -1
  98. package/dist/serve/docs-ui/docs/trust/versioning-and-compatibility/index.html +1 -1
  99. package/dist/serve/docs-ui/llms.txt +1 -1
  100. package/dist/serve/worker/host/core.js +1 -1
  101. package/dist/serve/worker/host/core.js.map +1 -1
  102. package/dist/serve/worker/host/firestore-writes.d.ts.map +1 -1
  103. package/dist/serve/worker/host/firestore-writes.js +3 -2
  104. package/dist/serve/worker/host/firestore-writes.js.map +1 -1
  105. package/dist/serve/worker/index.d.ts +2 -1
  106. package/dist/serve/worker/index.d.ts.map +1 -1
  107. package/dist/serve/worker/index.js +2 -1
  108. package/dist/serve/worker/index.js.map +1 -1
  109. package/dist/serve/worker/protocol.js +2 -2
  110. package/dist/serve/worker/protocol.js.map +1 -1
  111. package/package.json +5 -4
  112. package/src/assurance/.generated/conformance-verdicts.ts +1090 -0
  113. package/src/assurance/attachment.ts +211 -0
  114. package/src/assurance/browser.ts +80 -0
  115. package/src/assurance/campaign.ts +496 -0
  116. package/src/assurance/capabilities.ts +446 -0
  117. package/src/assurance/cases.ts +43 -0
  118. package/src/assurance/index.ts +75 -0
  119. package/src/assurance/runner.ts +885 -0
  120. package/src/assurance/tool-names.ts +15 -0
  121. package/src/assurance/tools.ts +830 -0
  122. package/src/assurance/types.ts +352 -0
  123. package/src/assurance/validation.ts +434 -0
  124. package/src/bridge/client/bridge.ts +550 -0
  125. package/src/bridge/client/dispatch.ts +137 -0
  126. package/src/bridge/client.ts +45 -0
  127. package/src/bridge/protocol.ts +351 -0
  128. package/src/bridge/server/audit.ts +53 -0
  129. package/src/bridge/server/bridge.ts +597 -0
  130. package/src/bridge/server/headless.ts +160 -0
  131. package/src/bridge/server/json-schema-to-zod.ts +108 -0
  132. package/src/bridge/server/local-bridge.ts +66 -0
  133. package/src/bridge/server/logger.ts +50 -0
  134. package/src/bridge/server/mcp-contract.ts +93 -0
  135. package/src/bridge/server/mcp.ts +129 -0
  136. package/src/bridge/server/peer.ts +232 -0
  137. package/src/bridge/server/standalone.ts +347 -0
  138. package/src/bridge/server/tool-metadata.ts +99 -0
  139. package/src/bridge/server.ts +28 -0
  140. package/src/cli/can-i-use.ts +50 -0
  141. package/src/cli/cli.test.ts +493 -0
  142. package/src/cli/database-rules.ts +329 -0
  143. package/src/cli/dev-runner.ts +282 -0
  144. package/src/cli/firebase-json.ts +100 -0
  145. package/src/cli/firestore-indexes.ts +70 -0
  146. package/src/cli/index.ts +425 -0
  147. package/src/cli/init.ts +260 -0
  148. package/src/cli/mcp-proxy.ts +196 -0
  149. package/src/cli/parse-args.ts +80 -0
  150. package/src/cli/rules.ts +259 -0
  151. package/src/cli/scope.ts +67 -0
  152. package/src/cli/serve.ts +996 -0
  153. package/src/cli/service-commands.ts +73 -0
  154. package/src/cli/snapshot.ts +164 -0
  155. package/src/cli/storage-rules.ts +172 -0
  156. package/src/cli/verify.ts +416 -0
  157. package/src/conformance/.generated/can-i-use-browser.ts +113 -0
  158. package/src/conformance/.generated/can-i-use.ts +117 -0
  159. package/src/conformance/.generated/conformance-docs.ts +14 -0
  160. package/src/conformance/browser.ts +24 -0
  161. package/src/conformance/can-i-use-tool.ts +51 -0
  162. package/src/conformance/can-i-use.ts +18 -0
  163. package/src/conformance/docs.ts +8 -0
  164. package/src/conformance/index.ts +20 -0
  165. package/src/conformance/tools.ts +16 -0
  166. package/src/credentials/core/memoize-ttl.ts +142 -0
  167. package/src/credentials/core/types.ts +10 -0
  168. package/src/credentials/node/from-adc.ts +96 -0
  169. package/src/credentials/node/from-service-account.ts +133 -0
  170. package/src/credentials/node/index.ts +6 -0
  171. package/src/discover/concurrency.ts +127 -0
  172. package/src/discover/crawler-adapter.ts +142 -0
  173. package/src/discover/crawler.ts +1127 -0
  174. package/src/discover/credential-free.ts +27 -0
  175. package/src/discover/findCollectionGroup.ts +131 -0
  176. package/src/discover/firestore-source.ts +59 -0
  177. package/src/discover/index.ts +5 -0
  178. package/src/discover/merge.ts +523 -0
  179. package/src/discover/session.ts +402 -0
  180. package/src/discover/tools.ts +201 -0
  181. package/src/discover/types.ts +187 -0
  182. package/src/discover/wire.ts +324 -0
  183. package/src/functions-rtdb/child.ts +382 -0
  184. package/src/functions-rtdb/delivery.ts +7 -0
  185. package/src/functions-rtdb/discovery.ts +136 -0
  186. package/src/functions-rtdb/event.ts +64 -0
  187. package/src/functions-rtdb/execution.ts +111 -0
  188. package/src/functions-rtdb/in-memory-delivery.ts +40 -0
  189. package/src/functions-rtdb/project.ts +74 -0
  190. package/src/functions-rtdb/projection.ts +104 -0
  191. package/src/functions-rtdb/reference-pattern.ts +20 -0
  192. package/src/functions-rtdb/remote-delivery.ts +23 -0
  193. package/src/pkg-version.ts +49 -0
  194. package/src/register/esm-exports.ts +63 -0
  195. package/src/register/hooks.ts +30 -0
  196. package/src/register/index.ts +150 -0
  197. package/src/register/mapping.ts +33 -0
  198. package/src/remote/index.ts +1050 -0
  199. package/src/rtdb/crawl-snapshot.ts +118 -0
  200. package/src/rtdb/inspection.ts +137 -0
  201. package/src/rtdb/load-rules-document.ts +56 -0
  202. package/src/rtdb/rules-generation-tool.ts +38 -0
  203. package/src/rtdb/rules-json.ts +29 -0
  204. package/src/serve/activity-guard.ts +29 -0
  205. package/src/serve/activity-route.ts +164 -0
  206. package/src/serve/activity-warning.ts +26 -0
  207. package/src/serve/bridge-mount.ts +200 -0
  208. package/src/serve/bundler.ts +493 -0
  209. package/src/serve/capture-store.ts +65 -0
  210. package/src/serve/discovery.ts +199 -0
  211. package/src/serve/entries/ai.ts +292 -0
  212. package/src/serve/entries/app-backend.ts +4 -0
  213. package/src/serve/entries/app-client.ts +26 -0
  214. package/src/serve/entries/app-session-store.ts +47 -0
  215. package/src/serve/entries/app.ts +11 -0
  216. package/src/serve/entries/auth-helper-core.ts +181 -0
  217. package/src/serve/entries/auth-helper-dom.ts +134 -0
  218. package/src/serve/entries/auth-helper-runtime.ts +20 -0
  219. package/src/serve/entries/auth.ts +255 -0
  220. package/src/serve/entries/bridge-url.ts +31 -0
  221. package/src/serve/entries/database.ts +129 -0
  222. package/src/serve/entries/firestore.ts +232 -0
  223. package/src/serve/entries/init.ts +46 -0
  224. package/src/serve/entries/keepalive.ts +46 -0
  225. package/src/serve/entries/messaging-sw.ts +75 -0
  226. package/src/serve/entries/messaging.ts +96 -0
  227. package/src/serve/entries/runtime.ts +540 -0
  228. package/src/serve/entries/session-store.ts +97 -0
  229. package/src/serve/entries/storage.ts +92 -0
  230. package/src/serve/entries/tab-sync-wiring.ts +274 -0
  231. package/src/serve/entries/worker-runtime.ts +75 -0
  232. package/src/serve/init-payload.ts +42 -0
  233. package/src/serve/namespace.ts +675 -0
  234. package/src/serve/open-browser.ts +68 -0
  235. package/src/serve/rules.ts +272 -0
  236. package/src/serve/sandbox-marker.ts +31 -0
  237. package/src/serve/server.ts +428 -0
  238. package/src/serve/standalone-assets.ts +180 -0
  239. package/src/serve/state-store.ts +166 -0
  240. package/src/serve/studio/disk-project-store.ts +185 -0
  241. package/src/serve/studio/disk-workspace.ts +162 -0
  242. package/src/serve/studio/index.ts +20 -0
  243. package/src/serve/studio/routes.ts +237 -0
  244. package/src/serve/studio/store-types.ts +48 -0
  245. package/src/serve/studio/studio-storage.test.ts +289 -0
  246. package/src/serve/vite-plugin.ts +1102 -0
  247. package/src/serve/worker/activity-bootstrap.ts +24 -0
  248. package/src/serve/worker/client/admin-firestore.ts +38 -0
  249. package/src/serve/worker/client/ai.ts +124 -0
  250. package/src/serve/worker/client/auth.ts +489 -0
  251. package/src/serve/worker/client/connection.ts +202 -0
  252. package/src/serve/worker/client/core.ts +350 -0
  253. package/src/serve/worker/client/disconnect.ts +45 -0
  254. package/src/serve/worker/client/firestore-reads.ts +181 -0
  255. package/src/serve/worker/client/firestore-refs.ts +226 -0
  256. package/src/serve/worker/client/firestore-writes.ts +232 -0
  257. package/src/serve/worker/client/handles.ts +91 -0
  258. package/src/serve/worker/client/messaging.ts +119 -0
  259. package/src/serve/worker/client/presence.ts +174 -0
  260. package/src/serve/worker/client/rtdb.ts +311 -0
  261. package/src/serve/worker/client/rules.ts +63 -0
  262. package/src/serve/worker/client/service-worker-connection.ts +59 -0
  263. package/src/serve/worker/client/snapshots.ts +86 -0
  264. package/src/serve/worker/client/storage.ts +195 -0
  265. package/src/serve/worker/client/studio.ts +88 -0
  266. package/src/serve/worker/client.ts +57 -0
  267. package/src/serve/worker/durable-persistence.ts +137 -0
  268. package/src/serve/worker/entry.ts +179 -0
  269. package/src/serve/worker/host/admin-firestore.ts +88 -0
  270. package/src/serve/worker/host/connection.ts +179 -0
  271. package/src/serve/worker/host/core.ts +387 -0
  272. package/src/serve/worker/host/dispatch.ts +316 -0
  273. package/src/serve/worker/host/firestore-reads.ts +117 -0
  274. package/src/serve/worker/host/firestore-writes.ts +456 -0
  275. package/src/serve/worker/host/presence.ts +312 -0
  276. package/src/serve/worker/host/rtdb.ts +136 -0
  277. package/src/serve/worker/host/rules.ts +128 -0
  278. package/src/serve/worker/host/storage.ts +312 -0
  279. package/src/serve/worker/host/studio.ts +75 -0
  280. package/src/serve/worker/host/subscriptions.ts +238 -0
  281. package/src/serve/worker/host-ai.ts +165 -0
  282. package/src/serve/worker/host-auth.ts +469 -0
  283. package/src/serve/worker/host-context.ts +273 -0
  284. package/src/serve/worker/host-events.ts +94 -0
  285. package/src/serve/worker/host-messaging.ts +240 -0
  286. package/src/serve/worker/host.ts +47 -0
  287. package/src/serve/worker/index.ts +196 -0
  288. package/src/serve/worker/presence-timing.ts +15 -0
  289. package/src/serve/worker/protocol.ts +1112 -0
  290. package/src/serve/worker/serve-init.ts +606 -0
  291. package/src/serve/worker/service-worker-channel.ts +33 -0
  292. package/src/serve/worker/service-worker-relay.ts +86 -0
  293. package/src/serve/writer-lock.ts +53 -0
  294. package/src/verify/cases.ts +233 -0
  295. package/src/verify/fixture.ts +258 -0
  296. package/src/verify/index.ts +519 -0
  297. package/src/verify/tools.ts +108 -0
  298. package/src/version/compat-target.ts +17 -0
  299. package/src/vite.ts +17 -0
  300. package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api/index.html +0 -31
  301. package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api.md +0 -29
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>API reference: @pyric/cli/serve/worker · Pyric Studio</title><meta name="description" content="Published declarations for @pyric/cli/serve/worker."><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"><link rel="stylesheet" href="/__pyric/ui/_astro/_slug_.CXh9yTP1.css">
2
- <link rel="stylesheet" href="/__pyric/ui/_astro/_slug_.DUci-duz.css"></head> <body> <header class="studio__bar"> <div class="studio__bar-inner"> <a class="studio__brand" href="/__pyric/ui/" aria-label="Pyric Studio">Pyric</a> <nav class="studio__nav" aria-label="Studio tabs"> <a class="studio__nav-tab" href="/__pyric/ui/"> Home </a><a class="studio__nav-tab" href="/__pyric/ui/firestore"> Firestore </a><a class="studio__nav-tab" href="/__pyric/ui/auth"> Auth </a><a class="studio__nav-tab" href="/__pyric/ui/rtdb"> RTDB </a><a class="studio__nav-tab" href="/__pyric/ui/storage"> Storage </a><a class="studio__nav-tab" href="/__pyric/ui/traffic"> Traffic </a><a class="studio__nav-tab" href="/__pyric/ui/settings"> Settings </a><a class="studio__nav-tab" href="/__pyric/ui/docs" aria-current="page"> Docs </a> </nav> </div> </header> <div class="docs-shell"> <details class="docs-nav-drawer"> <summary>Navigate</summary> <nav class="docs-nav" aria-label="Documentation"> <div class="docs-search" data-index-url="/__pyric/ui/docs/index.json"> <div class="docs-search-field"> <svg class="docs-search-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"> <path d="M11.5 11.5 15 15M13 7A6 6 0 1 1 1 7a6 6 0 0 1 12 0Z" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path> </svg> <input type="text" class="docs-search-input" placeholder="Search docs" aria-label="Search docs" autocomplete="off" spellcheck="false"> <kbd class="docs-search-kbd">⌘K</kbd> </div> <ul class="docs-search-results" hidden></ul> </div> <script type="module">let i=null;function d(t){return i||(i=fetch(t).then(e=>e.json())),i}function l(t,e){return t.title.toLowerCase().includes(e)||t.excerpt.toLowerCase().includes(e)?!0:t.headings.some(r=>r.text.toLowerCase().includes(e))}function u(t,e,r){if(e.innerHTML="",t.length===0){e.hidden=!1;{const n=document.createElement("li");n.className="docs-search-empty",n.textContent="No matches",e.appendChild(n)}return}e.hidden=!1;for(const n of t.slice(0,8)){const s=document.createElement("li"),c=document.createElement("a");c.href=n.path;const o=document.createElement("span");o.className="docs-search-result-title",o.textContent=n.title;const a=document.createElement("span");a.className="docs-search-result-meta",a.textContent=[n.group,n.section].filter(Boolean).join(" / "),c.append(o,a),s.appendChild(c),e.appendChild(s)}}document.querySelectorAll(".docs-search").forEach(t=>{const e=t.dataset.indexUrl,r=t.querySelector(".docs-search-input"),n=t.querySelector(".docs-search-results");r.addEventListener("input",async()=>{const s=r.value.trim().toLowerCase();if(!s){n.hidden=!0,n.innerHTML="";return}const{pages:c}=await d(e);r.value.trim().toLowerCase()===s&&u(c.filter(o=>l(o,s)),n)}),r.addEventListener("focus",()=>{d(e),n.childElementCount>0&&(n.hidden=!1)}),r.addEventListener("keydown",s=>{s.key==="Escape"&&(r.value="",n.hidden=!0,n.innerHTML="",r.blur())}),r.addEventListener("blur",()=>{window.setTimeout(()=>{n.hidden=!0},150)})});document.addEventListener("keydown",t=>{if(!(t.metaKey||t.ctrlKey)||t.key.toLowerCase()!=="k")return;const e=[...document.querySelectorAll(".docs-search-input")].find(r=>r.offsetParent!==null);e&&(t.preventDefault(),e.focus(),e.select())});</script> <a class="docs-nav-toplink" href="/__pyric/ui/docs/overview/"> Overview </a><details class="docs-nav-group"> <summary>Get started</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/get-started/start-building/"> Quickstart </a> </li><li> <a href="/__pyric/ui/docs/get-started/how-the-swap-works/"> How the swap works </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Build</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/build/authentication/"> Authentication </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-firestore/"> Cloud Firestore </a> </li><li> <a href="/__pyric/ui/docs/build/realtime-database/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-storage/"> Cloud Storage </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-messaging/"> Cloud Messaging </a> </li><li> <a href="/__pyric/ui/docs/build/ai-logic/"> AI Logic </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Secure &amp; debug</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/secure/secure-it-with-rules/"> Security Rules </a> </li><li> <a href="/__pyric/ui/docs/secure/simulate-and-lint/"> Simulate and lint before you deploy </a> </li><li> <a href="/__pyric/ui/docs/secure/write-a-rules-test-suite/"> Write a rules test suite </a> </li><li> <a href="/__pyric/ui/docs/secure/read-a-denial/"> Read a denial and understand it </a> </li><li> <a href="/__pyric/ui/docs/secure/rules-standard-library/"> The rules standard library </a> </li><li> <a href="/__pyric/ui/docs/secure/rtdb-rules-in-typescript/"> RTDB rules in TypeScript </a> </li><li> <a href="/__pyric/ui/docs/secure/firestore-rules-limits/"> Rules limits </a> </li><li> <a href="/__pyric/ui/docs/secure/audit-your-rules/"> Audit rules and data </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Observe &amp; shape</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/observe/see-whats-happening/"> Traffic &amp; rule verdicts </a> </li><li> <a href="/__pyric/ui/docs/observe/shape-your-data/"> Seed, snapshot, replay </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Ship &amp; test</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/ship/ship-to-production/"> Ship to production </a> </li><li> <a href="/__pyric/ui/docs/ship/test-in-node/"> Test in Node </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Work with an agent</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/agent/set-up-your-agent/"> Connect an agent </a> </li><li> <a href="/__pyric/ui/docs/agent/work-with-an-agent/"> Use the MCP tools </a> </li><li> <a href="/__pyric/ui/docs/agent/watch-and-review/"> Watch in Pyric Studio </a> </li> </ul> </div> </div> </details><a class="docs-nav-toplink" href="/__pyric/ui/docs/trust/versioning-and-compatibility/"> Trust </a><details class="docs-nav-group"> <summary>Conformance</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/conformance-scores/"> Public API coverage </a> </li><li> <a href="/__pyric/ui/docs/trust/how-we-know-it-matches-firebase/"> How we know it matches Firebase </a> </li><li> <a href="/__pyric/ui/docs/app-compat/"> App </a> </li><li> <a href="/__pyric/ui/docs/ai-compat/"> AI Logic </a> </li><li> <a href="/__pyric/ui/docs/auth-compat/"> Auth </a> </li><li> <a href="/__pyric/ui/docs/firestore-compat/"> Firestore </a> </li><li> <a href="/__pyric/ui/docs/database-compat/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/storage-compat/"> Storage </a> </li><li> <a href="/__pyric/ui/docs/messaging-compat/"> Messaging </a> </li><li> <a href="/__pyric/ui/docs/functions-rtdb-compat/"> Functions · RTDB </a> </li><li> <a href="/__pyric/ui/docs/rules-compat/"> Rules </a> </li> </ul> </div> </div> </details> <details class="docs-nav-group" open> <summary>Reference</summary> <div class="docs-nav-group-body docs-nav-group-body--reference"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/api-reference/"> API reference </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-app-reference-api/"> pyric/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-reference-api/"> pyric/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-auth-reference-api/"> pyric/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-reference-api/"> pyric/ai </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-scripting-reference-api/"> pyric/ai/scripting </a> </li><li> <a href="/__pyric/ui/docs/pyric-database-reference-api/"> pyric/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-storage-reference-api/"> pyric/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-reference-api/"> pyric/messaging </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-sw-reference-api/"> pyric/messaging/sw </a> </li><li> <a href="/__pyric/ui/docs/pyric-rules-reference-api/"> pyric/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-values-reference-api/"> pyric/firestore-values </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-reference-api/"> pyric/sandbox </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-firestore-reference-api/"> pyric/sandbox/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-database-reference-api/"> pyric/sandbox/database </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric-admin</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-admin-app-reference-api/"> pyric-admin/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-firestore-reference-api/"> pyric-admin/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-auth-reference-api/"> pyric-admin/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-database-reference-api/"> pyric-admin/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-storage-reference-api/"> pyric-admin/storage </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">create-pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/create-pyric-reference-api/"> create-pyric </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-cli-credentials-node-reference-api/"> @pyric/cli/credentials/node </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-verify-reference-api/"> @pyric/cli/verify </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-reference-api/"> @pyric/cli/conformance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-browser-reference-api/"> @pyric/cli/conformance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-docs-reference-api/"> @pyric/cli/conformance/docs </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-reference-api/"> @pyric/cli/assurance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-browser-reference-api/"> @pyric/cli/assurance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-reference-api/"> @pyric/cli/bridge </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-client-reference-api/"> @pyric/cli/bridge/client </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-discover-reference-api/"> @pyric/cli/discover </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-vite-reference-api/"> @pyric/cli/vite </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-serve-worker-reference-api/" aria-current="page"> @pyric/cli/serve/worker </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-remote-reference-api/"> @pyric/cli/remote </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-reference-api/"> @pyric/cli/register </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/ui</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-ui-auth-reference-api/"> @pyric/ui/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-auth-hooks-reference-api/"> @pyric/ui/auth/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-primitives-reference-api/"> @pyric/ui/primitives </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-reference-api/"> @pyric/ui/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-hooks-reference-api/"> @pyric/ui/firestore/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rtdb-reference-api/"> @pyric/ui/rtdb </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-reference-api/"> @pyric/ui/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-hooks-reference-api/"> @pyric/ui/storage/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-reference-api/"> @pyric/ui/traffic </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-hooks-reference-api/"> @pyric/ui/traffic/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-reference-api/"> @pyric/ui/events </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-hooks-reference-api/"> @pyric/ui/events/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-agents-reference-api/"> @pyric/ui/agents </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-reference-api/"> @pyric/ui/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-hooks-reference-api/"> @pyric/ui/rules/hooks </a> </li> </ul> </div> </div> </details> </nav> </details> <nav class="docs-nav" aria-label="Documentation"> <div class="docs-search" data-index-url="/__pyric/ui/docs/index.json"> <div class="docs-search-field"> <svg class="docs-search-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"> <path d="M11.5 11.5 15 15M13 7A6 6 0 1 1 1 7a6 6 0 0 1 12 0Z" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path> </svg> <input type="text" class="docs-search-input" placeholder="Search docs" aria-label="Search docs" autocomplete="off" spellcheck="false"> <kbd class="docs-search-kbd">⌘K</kbd> </div> <ul class="docs-search-results" hidden></ul> </div> <a class="docs-nav-toplink" href="/__pyric/ui/docs/overview/" id="nav-group-overview"> Overview </a><details class="docs-nav-group" id="nav-group-get-started"> <summary>Get started</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/get-started/start-building/"> Quickstart </a> </li><li> <a href="/__pyric/ui/docs/get-started/how-the-swap-works/"> How the swap works </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-build"> <summary>Build</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/build/authentication/"> Authentication </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-firestore/"> Cloud Firestore </a> </li><li> <a href="/__pyric/ui/docs/build/realtime-database/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-storage/"> Cloud Storage </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-messaging/"> Cloud Messaging </a> </li><li> <a href="/__pyric/ui/docs/build/ai-logic/"> AI Logic </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-secure-debug"> <summary>Secure &amp; debug</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/secure/secure-it-with-rules/"> Security Rules </a> </li><li> <a href="/__pyric/ui/docs/secure/simulate-and-lint/"> Simulate and lint before you deploy </a> </li><li> <a href="/__pyric/ui/docs/secure/write-a-rules-test-suite/"> Write a rules test suite </a> </li><li> <a href="/__pyric/ui/docs/secure/read-a-denial/"> Read a denial and understand it </a> </li><li> <a href="/__pyric/ui/docs/secure/rules-standard-library/"> The rules standard library </a> </li><li> <a href="/__pyric/ui/docs/secure/rtdb-rules-in-typescript/"> RTDB rules in TypeScript </a> </li><li> <a href="/__pyric/ui/docs/secure/firestore-rules-limits/"> Rules limits </a> </li><li> <a href="/__pyric/ui/docs/secure/audit-your-rules/"> Audit rules and data </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-observe-shape"> <summary>Observe &amp; shape</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/observe/see-whats-happening/"> Traffic &amp; rule verdicts </a> </li><li> <a href="/__pyric/ui/docs/observe/shape-your-data/"> Seed, snapshot, replay </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-ship-test"> <summary>Ship &amp; test</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/ship/ship-to-production/"> Ship to production </a> </li><li> <a href="/__pyric/ui/docs/ship/test-in-node/"> Test in Node </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-work-with-an-agent"> <summary>Work with an agent</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/agent/set-up-your-agent/"> Connect an agent </a> </li><li> <a href="/__pyric/ui/docs/agent/work-with-an-agent/"> Use the MCP tools </a> </li><li> <a href="/__pyric/ui/docs/agent/watch-and-review/"> Watch in Pyric Studio </a> </li> </ul> </div> </div> </details><a class="docs-nav-toplink" href="/__pyric/ui/docs/trust/versioning-and-compatibility/" id="nav-group-trust"> Trust </a><details class="docs-nav-group" id="nav-group-conformance"> <summary>Conformance</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/conformance-scores/"> Public API coverage </a> </li><li> <a href="/__pyric/ui/docs/trust/how-we-know-it-matches-firebase/"> How we know it matches Firebase </a> </li><li> <a href="/__pyric/ui/docs/app-compat/"> App </a> </li><li> <a href="/__pyric/ui/docs/ai-compat/"> AI Logic </a> </li><li> <a href="/__pyric/ui/docs/auth-compat/"> Auth </a> </li><li> <a href="/__pyric/ui/docs/firestore-compat/"> Firestore </a> </li><li> <a href="/__pyric/ui/docs/database-compat/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/storage-compat/"> Storage </a> </li><li> <a href="/__pyric/ui/docs/messaging-compat/"> Messaging </a> </li><li> <a href="/__pyric/ui/docs/functions-rtdb-compat/"> Functions · RTDB </a> </li><li> <a href="/__pyric/ui/docs/rules-compat/"> Rules </a> </li> </ul> </div> </div> </details> <details class="docs-nav-group" id="nav-group-reference" open> <summary>Reference</summary> <div class="docs-nav-group-body docs-nav-group-body--reference"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/api-reference/"> API reference </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-app-reference-api/"> pyric/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-reference-api/"> pyric/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-auth-reference-api/"> pyric/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-reference-api/"> pyric/ai </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-scripting-reference-api/"> pyric/ai/scripting </a> </li><li> <a href="/__pyric/ui/docs/pyric-database-reference-api/"> pyric/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-storage-reference-api/"> pyric/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-reference-api/"> pyric/messaging </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-sw-reference-api/"> pyric/messaging/sw </a> </li><li> <a href="/__pyric/ui/docs/pyric-rules-reference-api/"> pyric/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-values-reference-api/"> pyric/firestore-values </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-reference-api/"> pyric/sandbox </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-firestore-reference-api/"> pyric/sandbox/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-database-reference-api/"> pyric/sandbox/database </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric-admin</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-admin-app-reference-api/"> pyric-admin/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-firestore-reference-api/"> pyric-admin/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-auth-reference-api/"> pyric-admin/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-database-reference-api/"> pyric-admin/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-storage-reference-api/"> pyric-admin/storage </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">create-pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/create-pyric-reference-api/"> create-pyric </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-cli-credentials-node-reference-api/"> @pyric/cli/credentials/node </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-verify-reference-api/"> @pyric/cli/verify </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-reference-api/"> @pyric/cli/conformance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-browser-reference-api/"> @pyric/cli/conformance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-docs-reference-api/"> @pyric/cli/conformance/docs </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-reference-api/"> @pyric/cli/assurance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-browser-reference-api/"> @pyric/cli/assurance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-reference-api/"> @pyric/cli/bridge </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-client-reference-api/"> @pyric/cli/bridge/client </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-discover-reference-api/"> @pyric/cli/discover </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-vite-reference-api/"> @pyric/cli/vite </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-serve-worker-reference-api/" aria-current="page"> @pyric/cli/serve/worker </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-remote-reference-api/"> @pyric/cli/remote </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-reference-api/"> @pyric/cli/register </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/ui</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-ui-auth-reference-api/"> @pyric/ui/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-auth-hooks-reference-api/"> @pyric/ui/auth/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-primitives-reference-api/"> @pyric/ui/primitives </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-reference-api/"> @pyric/ui/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-hooks-reference-api/"> @pyric/ui/firestore/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rtdb-reference-api/"> @pyric/ui/rtdb </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-reference-api/"> @pyric/ui/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-hooks-reference-api/"> @pyric/ui/storage/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-reference-api/"> @pyric/ui/traffic </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-hooks-reference-api/"> @pyric/ui/traffic/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-reference-api/"> @pyric/ui/events </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-hooks-reference-api/"> @pyric/ui/events/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-agents-reference-api/"> @pyric/ui/agents </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-reference-api/"> @pyric/ui/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-hooks-reference-api/"> @pyric/ui/rules/hooks </a> </li> </ul> </div> </div> </details> </nav> <main class="doc-main"> <nav class="docs-breadcrumbs" aria-label="Breadcrumb"> <ol> <li> <a href="/__pyric/ui/docs/api-reference/">API reference</a> </li><li> <span class="docs-breadcrumbs-sep" aria-hidden="true">/</span> <span>@pyric/cli</span> </li><li> <span class="docs-breadcrumbs-sep" aria-hidden="true">/</span> <span aria-current="page">@pyric/cli/serve/worker</span> </li> </ol> </nav> <header class="api-reference-header"> <p class="api-reference-kicker">API reference</p> <h1><code>@pyric/cli/serve/worker</code></h1> <p class="api-reference-meta"> 145 published symbols from <code>@pyric/cli</code> </p> <p class="api-reference-source">
2
+ <link rel="stylesheet" href="/__pyric/ui/_astro/_slug_.DUci-duz.css"></head> <body> <header class="studio__bar"> <div class="studio__bar-inner"> <a class="studio__brand" href="/__pyric/ui/" aria-label="Pyric Studio">Pyric</a> <nav class="studio__nav" aria-label="Studio tabs"> <a class="studio__nav-tab" href="/__pyric/ui/"> Home </a><a class="studio__nav-tab" href="/__pyric/ui/firestore"> Firestore </a><a class="studio__nav-tab" href="/__pyric/ui/auth"> Auth </a><a class="studio__nav-tab" href="/__pyric/ui/rtdb"> RTDB </a><a class="studio__nav-tab" href="/__pyric/ui/storage"> Storage </a><a class="studio__nav-tab" href="/__pyric/ui/traffic"> Traffic </a><a class="studio__nav-tab" href="/__pyric/ui/settings"> Settings </a><a class="studio__nav-tab" href="/__pyric/ui/docs" aria-current="page"> Docs </a> </nav> </div> </header> <div class="docs-shell"> <details class="docs-nav-drawer"> <summary>Navigate</summary> <nav class="docs-nav" aria-label="Documentation"> <div class="docs-search" data-index-url="/__pyric/ui/docs/index.json"> <div class="docs-search-field"> <svg class="docs-search-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"> <path d="M11.5 11.5 15 15M13 7A6 6 0 1 1 1 7a6 6 0 0 1 12 0Z" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path> </svg> <input type="text" class="docs-search-input" placeholder="Search docs" aria-label="Search docs" autocomplete="off" spellcheck="false"> <kbd class="docs-search-kbd">⌘K</kbd> </div> <ul class="docs-search-results" hidden></ul> </div> <script type="module">let i=null;function d(t){return i||(i=fetch(t).then(e=>e.json())),i}function l(t,e){return t.title.toLowerCase().includes(e)||t.excerpt.toLowerCase().includes(e)?!0:t.headings.some(r=>r.text.toLowerCase().includes(e))}function u(t,e,r){if(e.innerHTML="",t.length===0){e.hidden=!1;{const n=document.createElement("li");n.className="docs-search-empty",n.textContent="No matches",e.appendChild(n)}return}e.hidden=!1;for(const n of t.slice(0,8)){const s=document.createElement("li"),c=document.createElement("a");c.href=n.path;const o=document.createElement("span");o.className="docs-search-result-title",o.textContent=n.title;const a=document.createElement("span");a.className="docs-search-result-meta",a.textContent=[n.group,n.section].filter(Boolean).join(" / "),c.append(o,a),s.appendChild(c),e.appendChild(s)}}document.querySelectorAll(".docs-search").forEach(t=>{const e=t.dataset.indexUrl,r=t.querySelector(".docs-search-input"),n=t.querySelector(".docs-search-results");r.addEventListener("input",async()=>{const s=r.value.trim().toLowerCase();if(!s){n.hidden=!0,n.innerHTML="";return}const{pages:c}=await d(e);r.value.trim().toLowerCase()===s&&u(c.filter(o=>l(o,s)),n)}),r.addEventListener("focus",()=>{d(e),n.childElementCount>0&&(n.hidden=!1)}),r.addEventListener("keydown",s=>{s.key==="Escape"&&(r.value="",n.hidden=!0,n.innerHTML="",r.blur())}),r.addEventListener("blur",()=>{window.setTimeout(()=>{n.hidden=!0},150)})});document.addEventListener("keydown",t=>{if(!(t.metaKey||t.ctrlKey)||t.key.toLowerCase()!=="k")return;const e=[...document.querySelectorAll(".docs-search-input")].find(r=>r.offsetParent!==null);e&&(t.preventDefault(),e.focus(),e.select())});</script> <a class="docs-nav-toplink" href="/__pyric/ui/docs/overview/"> Overview </a><details class="docs-nav-group"> <summary>Get started</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/get-started/start-building/"> Quickstart </a> </li><li> <a href="/__pyric/ui/docs/get-started/how-the-swap-works/"> How the swap works </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Build</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/build/authentication/"> Authentication </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-firestore/"> Cloud Firestore </a> </li><li> <a href="/__pyric/ui/docs/build/realtime-database/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-storage/"> Cloud Storage </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-messaging/"> Cloud Messaging </a> </li><li> <a href="/__pyric/ui/docs/build/ai-logic/"> AI Logic </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Secure &amp; debug</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/secure/secure-it-with-rules/"> Security Rules </a> </li><li> <a href="/__pyric/ui/docs/secure/simulate-and-lint/"> Simulate and lint before you deploy </a> </li><li> <a href="/__pyric/ui/docs/secure/write-a-rules-test-suite/"> Write a rules test suite </a> </li><li> <a href="/__pyric/ui/docs/secure/read-a-denial/"> Read a denial and understand it </a> </li><li> <a href="/__pyric/ui/docs/secure/rules-standard-library/"> The rules standard library </a> </li><li> <a href="/__pyric/ui/docs/secure/rtdb-rules-in-typescript/"> RTDB rules in TypeScript </a> </li><li> <a href="/__pyric/ui/docs/secure/firestore-rules-limits/"> Rules limits </a> </li><li> <a href="/__pyric/ui/docs/secure/audit-your-rules/"> Audit rules and data </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Observe &amp; shape</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/observe/see-whats-happening/"> Traffic &amp; rule verdicts </a> </li><li> <a href="/__pyric/ui/docs/observe/shape-your-data/"> Seed, snapshot, replay </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Ship &amp; test</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/ship/ship-to-production/"> Ship to production </a> </li><li> <a href="/__pyric/ui/docs/ship/test-in-node/"> Test in Node </a> </li> </ul> </div> </div> </details><details class="docs-nav-group"> <summary>Work with an agent</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/agent/set-up-your-agent/"> Connect an agent </a> </li><li> <a href="/__pyric/ui/docs/agent/work-with-an-agent/"> Use the MCP tools </a> </li><li> <a href="/__pyric/ui/docs/agent/watch-and-review/"> Watch in Pyric Studio </a> </li> </ul> </div> </div> </details><a class="docs-nav-toplink" href="/__pyric/ui/docs/trust/versioning-and-compatibility/"> Trust </a><details class="docs-nav-group"> <summary>Conformance</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/conformance-scores/"> Public API coverage </a> </li><li> <a href="/__pyric/ui/docs/trust/how-we-know-it-matches-firebase/"> How we know it matches Firebase </a> </li><li> <a href="/__pyric/ui/docs/app-compat/"> App </a> </li><li> <a href="/__pyric/ui/docs/ai-compat/"> AI Logic </a> </li><li> <a href="/__pyric/ui/docs/auth-compat/"> Auth </a> </li><li> <a href="/__pyric/ui/docs/firestore-compat/"> Firestore </a> </li><li> <a href="/__pyric/ui/docs/database-compat/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/storage-compat/"> Storage </a> </li><li> <a href="/__pyric/ui/docs/messaging-compat/"> Messaging </a> </li><li> <a href="/__pyric/ui/docs/functions-rtdb-compat/"> Functions · RTDB </a> </li><li> <a href="/__pyric/ui/docs/rules-compat/"> Rules </a> </li> </ul> </div> </div> </details> <details class="docs-nav-group" open> <summary>Reference</summary> <div class="docs-nav-group-body docs-nav-group-body--reference"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/api-reference/"> API reference </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-app-reference-api/"> pyric/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-reference-api/"> pyric/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-auth-reference-api/"> pyric/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-reference-api/"> pyric/ai </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-scripting-reference-api/"> pyric/ai/scripting </a> </li><li> <a href="/__pyric/ui/docs/pyric-database-reference-api/"> pyric/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-storage-reference-api/"> pyric/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-reference-api/"> pyric/messaging </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-sw-reference-api/"> pyric/messaging/sw </a> </li><li> <a href="/__pyric/ui/docs/pyric-rules-reference-api/"> pyric/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-reference-api/"> pyric/sandbox </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-firestore-reference-api/"> pyric/sandbox/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-database-reference-api/"> pyric/sandbox/database </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric-admin</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-admin-app-reference-api/"> pyric-admin/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-firestore-reference-api/"> pyric-admin/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-auth-reference-api/"> pyric-admin/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-database-reference-api/"> pyric-admin/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-storage-reference-api/"> pyric-admin/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-messaging-reference-api/"> pyric-admin/messaging </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">create-pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/create-pyric-reference-api/"> create-pyric </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-cli-credentials-node-reference-api/"> @pyric/cli/credentials/node </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-verify-reference-api/"> @pyric/cli/verify </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-reference-api/"> @pyric/cli/conformance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-browser-reference-api/"> @pyric/cli/conformance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-docs-reference-api/"> @pyric/cli/conformance/docs </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-reference-api/"> @pyric/cli/assurance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-browser-reference-api/"> @pyric/cli/assurance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-reference-api/"> @pyric/cli/bridge </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-client-reference-api/"> @pyric/cli/bridge/client </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-discover-reference-api/"> @pyric/cli/discover </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-vite-reference-api/"> @pyric/cli/vite </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-serve-worker-reference-api/" aria-current="page"> @pyric/cli/serve/worker </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-remote-reference-api/"> @pyric/cli/remote </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-reference-api/"> @pyric/cli/register </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/ui</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-ui-auth-reference-api/"> @pyric/ui/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-auth-hooks-reference-api/"> @pyric/ui/auth/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-primitives-reference-api/"> @pyric/ui/primitives </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-reference-api/"> @pyric/ui/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-hooks-reference-api/"> @pyric/ui/firestore/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rtdb-reference-api/"> @pyric/ui/rtdb </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-reference-api/"> @pyric/ui/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-hooks-reference-api/"> @pyric/ui/storage/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-reference-api/"> @pyric/ui/traffic </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-hooks-reference-api/"> @pyric/ui/traffic/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-reference-api/"> @pyric/ui/events </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-hooks-reference-api/"> @pyric/ui/events/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-agents-reference-api/"> @pyric/ui/agents </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-reference-api/"> @pyric/ui/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-hooks-reference-api/"> @pyric/ui/rules/hooks </a> </li> </ul> </div> </div> </details> </nav> </details> <nav class="docs-nav" aria-label="Documentation"> <div class="docs-search" data-index-url="/__pyric/ui/docs/index.json"> <div class="docs-search-field"> <svg class="docs-search-icon" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"> <path d="M11.5 11.5 15 15M13 7A6 6 0 1 1 1 7a6 6 0 0 1 12 0Z" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"></path> </svg> <input type="text" class="docs-search-input" placeholder="Search docs" aria-label="Search docs" autocomplete="off" spellcheck="false"> <kbd class="docs-search-kbd">⌘K</kbd> </div> <ul class="docs-search-results" hidden></ul> </div> <a class="docs-nav-toplink" href="/__pyric/ui/docs/overview/" id="nav-group-overview"> Overview </a><details class="docs-nav-group" id="nav-group-get-started"> <summary>Get started</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/get-started/start-building/"> Quickstart </a> </li><li> <a href="/__pyric/ui/docs/get-started/how-the-swap-works/"> How the swap works </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-build"> <summary>Build</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/build/authentication/"> Authentication </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-firestore/"> Cloud Firestore </a> </li><li> <a href="/__pyric/ui/docs/build/realtime-database/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-storage/"> Cloud Storage </a> </li><li> <a href="/__pyric/ui/docs/build/cloud-messaging/"> Cloud Messaging </a> </li><li> <a href="/__pyric/ui/docs/build/ai-logic/"> AI Logic </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-secure-debug"> <summary>Secure &amp; debug</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/secure/secure-it-with-rules/"> Security Rules </a> </li><li> <a href="/__pyric/ui/docs/secure/simulate-and-lint/"> Simulate and lint before you deploy </a> </li><li> <a href="/__pyric/ui/docs/secure/write-a-rules-test-suite/"> Write a rules test suite </a> </li><li> <a href="/__pyric/ui/docs/secure/read-a-denial/"> Read a denial and understand it </a> </li><li> <a href="/__pyric/ui/docs/secure/rules-standard-library/"> The rules standard library </a> </li><li> <a href="/__pyric/ui/docs/secure/rtdb-rules-in-typescript/"> RTDB rules in TypeScript </a> </li><li> <a href="/__pyric/ui/docs/secure/firestore-rules-limits/"> Rules limits </a> </li><li> <a href="/__pyric/ui/docs/secure/audit-your-rules/"> Audit rules and data </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-observe-shape"> <summary>Observe &amp; shape</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/observe/see-whats-happening/"> Traffic &amp; rule verdicts </a> </li><li> <a href="/__pyric/ui/docs/observe/shape-your-data/"> Seed, snapshot, replay </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-ship-test"> <summary>Ship &amp; test</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/ship/ship-to-production/"> Ship to production </a> </li><li> <a href="/__pyric/ui/docs/ship/test-in-node/"> Test in Node </a> </li> </ul> </div> </div> </details><details class="docs-nav-group" id="nav-group-work-with-an-agent"> <summary>Work with an agent</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/agent/set-up-your-agent/"> Connect an agent </a> </li><li> <a href="/__pyric/ui/docs/agent/work-with-an-agent/"> Use the MCP tools </a> </li><li> <a href="/__pyric/ui/docs/agent/watch-and-review/"> Watch in Pyric Studio </a> </li> </ul> </div> </div> </details><a class="docs-nav-toplink" href="/__pyric/ui/docs/trust/versioning-and-compatibility/" id="nav-group-trust"> Trust </a><details class="docs-nav-group" id="nav-group-conformance"> <summary>Conformance</summary> <div class="docs-nav-group-body"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/conformance-scores/"> Public API coverage </a> </li><li> <a href="/__pyric/ui/docs/trust/how-we-know-it-matches-firebase/"> How we know it matches Firebase </a> </li><li> <a href="/__pyric/ui/docs/app-compat/"> App </a> </li><li> <a href="/__pyric/ui/docs/ai-compat/"> AI Logic </a> </li><li> <a href="/__pyric/ui/docs/auth-compat/"> Auth </a> </li><li> <a href="/__pyric/ui/docs/firestore-compat/"> Firestore </a> </li><li> <a href="/__pyric/ui/docs/database-compat/"> Realtime Database </a> </li><li> <a href="/__pyric/ui/docs/storage-compat/"> Storage </a> </li><li> <a href="/__pyric/ui/docs/messaging-compat/"> Messaging </a> </li><li> <a href="/__pyric/ui/docs/functions-rtdb-compat/"> Functions · RTDB </a> </li><li> <a href="/__pyric/ui/docs/rules-compat/"> Rules </a> </li> </ul> </div> </div> </details> <details class="docs-nav-group" id="nav-group-reference" open> <summary>Reference</summary> <div class="docs-nav-group-body docs-nav-group-body--reference"> <div class="docs-nav-section"> <ul> <li> <a href="/__pyric/ui/docs/api-reference/"> API reference </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-app-reference-api/"> pyric/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-firestore-reference-api/"> pyric/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-auth-reference-api/"> pyric/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-reference-api/"> pyric/ai </a> </li><li> <a href="/__pyric/ui/docs/pyric-ai-scripting-reference-api/"> pyric/ai/scripting </a> </li><li> <a href="/__pyric/ui/docs/pyric-database-reference-api/"> pyric/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-storage-reference-api/"> pyric/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-reference-api/"> pyric/messaging </a> </li><li> <a href="/__pyric/ui/docs/pyric-messaging-sw-reference-api/"> pyric/messaging/sw </a> </li><li> <a href="/__pyric/ui/docs/pyric-rules-reference-api/"> pyric/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-reference-api/"> pyric/sandbox </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-firestore-reference-api/"> pyric/sandbox/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-sandbox-database-reference-api/"> pyric/sandbox/database </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">pyric-admin</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-admin-app-reference-api/"> pyric-admin/app </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-firestore-reference-api/"> pyric-admin/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-auth-reference-api/"> pyric-admin/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-database-reference-api/"> pyric-admin/database </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-storage-reference-api/"> pyric-admin/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-admin-messaging-reference-api/"> pyric-admin/messaging </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">create-pyric</h2> <ul> <li> <a href="/__pyric/ui/docs/create-pyric-reference-api/"> create-pyric </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/cli</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-cli-credentials-node-reference-api/"> @pyric/cli/credentials/node </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-verify-reference-api/"> @pyric/cli/verify </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-reference-api/"> @pyric/cli/conformance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-browser-reference-api/"> @pyric/cli/conformance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-conformance-docs-reference-api/"> @pyric/cli/conformance/docs </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-reference-api/"> @pyric/cli/assurance </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-assurance-browser-reference-api/"> @pyric/cli/assurance/browser </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-reference-api/"> @pyric/cli/bridge </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-bridge-client-reference-api/"> @pyric/cli/bridge/client </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-discover-reference-api/"> @pyric/cli/discover </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-vite-reference-api/"> @pyric/cli/vite </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-serve-worker-reference-api/" aria-current="page"> @pyric/cli/serve/worker </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-remote-reference-api/"> @pyric/cli/remote </a> </li><li> <a href="/__pyric/ui/docs/pyric-cli-register-reference-api/"> @pyric/cli/register </a> </li> </ul> </div><div class="docs-nav-section"> <h2 class="docs-nav-heading">@pyric/ui</h2> <ul> <li> <a href="/__pyric/ui/docs/pyric-ui-auth-reference-api/"> @pyric/ui/auth </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-auth-hooks-reference-api/"> @pyric/ui/auth/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-primitives-reference-api/"> @pyric/ui/primitives </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-reference-api/"> @pyric/ui/firestore </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-firestore-hooks-reference-api/"> @pyric/ui/firestore/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rtdb-reference-api/"> @pyric/ui/rtdb </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-reference-api/"> @pyric/ui/storage </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-storage-hooks-reference-api/"> @pyric/ui/storage/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-reference-api/"> @pyric/ui/traffic </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-traffic-hooks-reference-api/"> @pyric/ui/traffic/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-reference-api/"> @pyric/ui/events </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-events-hooks-reference-api/"> @pyric/ui/events/hooks </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-agents-reference-api/"> @pyric/ui/agents </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-reference-api/"> @pyric/ui/rules </a> </li><li> <a href="/__pyric/ui/docs/pyric-ui-rules-hooks-reference-api/"> @pyric/ui/rules/hooks </a> </li> </ul> </div> </div> </details> </nav> <main class="doc-main"> <nav class="docs-breadcrumbs" aria-label="Breadcrumb"> <ol> <li> <a href="/__pyric/ui/docs/api-reference/">API reference</a> </li><li> <span class="docs-breadcrumbs-sep" aria-hidden="true">/</span> <span>@pyric/cli</span> </li><li> <span class="docs-breadcrumbs-sep" aria-hidden="true">/</span> <span aria-current="page">@pyric/cli/serve/worker</span> </li> </ol> </nav> <header class="api-reference-header"> <p class="api-reference-kicker">API reference</p> <h1><code>@pyric/cli/serve/worker</code></h1> <p class="api-reference-meta"> 145 published symbols from <code>@pyric/cli</code> </p> <p class="api-reference-source">
3
3
  Generated from the TypeScript declarations shipped at this import path.
4
4
  </p> </header> <article class="prose api-reference-body"> <!-- Generated from published package declarations via TypeDoc. Rendered by the api-reference content loader. -->
5
5
  <h2 id="interfaces">Interfaces</h2>
@@ -66,7 +66,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
66
66
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
67
67
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
68
68
  </ul>
69
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
69
+ <p><code>client.ts</code> imports only the value codec
70
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
70
71
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
71
72
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
72
73
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -147,7 +148,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
147
148
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
148
149
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
149
150
  </ul>
150
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
151
+ <p><code>client.ts</code> imports only the value codec
152
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
151
153
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
152
154
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
153
155
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -192,7 +194,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
192
194
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
193
195
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
194
196
  </ul>
195
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
197
+ <p><code>client.ts</code> imports only the value codec
198
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
196
199
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
197
200
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
198
201
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -712,7 +715,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
712
715
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
713
716
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
714
717
  </ul>
715
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
718
+ <p><code>client.ts</code> imports only the value codec
719
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
716
720
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
717
721
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
718
722
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -853,7 +857,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
853
857
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
854
858
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
855
859
  </ul>
856
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
860
+ <p><code>client.ts</code> imports only the value codec
861
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
857
862
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
858
863
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
859
864
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -984,7 +989,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
984
989
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
985
990
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
986
991
  </ul>
987
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
992
+ <p><code>client.ts</code> imports only the value codec
993
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
988
994
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
989
995
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
990
996
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1226,7 +1232,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1226
1232
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1227
1233
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1228
1234
  </ul>
1229
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1235
+ <p><code>client.ts</code> imports only the value codec
1236
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1230
1237
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1231
1238
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1232
1239
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1251,7 +1258,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1251
1258
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1252
1259
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1253
1260
  </ul>
1254
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1261
+ <p><code>client.ts</code> imports only the value codec
1262
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1255
1263
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1256
1264
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1257
1265
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1328,7 +1336,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1328
1336
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1329
1337
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1330
1338
  </ul>
1331
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1339
+ <p><code>client.ts</code> imports only the value codec
1340
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1332
1341
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1333
1342
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1334
1343
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1368,7 +1377,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1368
1377
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1369
1378
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1370
1379
  </ul>
1371
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1380
+ <p><code>client.ts</code> imports only the value codec
1381
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1372
1382
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1373
1383
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1374
1384
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1404,7 +1414,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1404
1414
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1405
1415
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1406
1416
  </ul>
1407
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1417
+ <p><code>client.ts</code> imports only the value codec
1418
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1408
1419
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1409
1420
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1410
1421
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1444,7 +1455,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1444
1455
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1445
1456
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1446
1457
  </ul>
1447
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1458
+ <p><code>client.ts</code> imports only the value codec
1459
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1448
1460
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1449
1461
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1450
1462
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1484,7 +1496,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1484
1496
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1485
1497
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1486
1498
  </ul>
1487
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1499
+ <p><code>client.ts</code> imports only the value codec
1500
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1488
1501
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1489
1502
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1490
1503
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1524,7 +1537,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1524
1537
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1525
1538
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1526
1539
  </ul>
1527
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1540
+ <p><code>client.ts</code> imports only the value codec
1541
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1528
1542
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1529
1543
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1530
1544
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1564,7 +1578,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1564
1578
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1565
1579
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1566
1580
  </ul>
1567
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1581
+ <p><code>client.ts</code> imports only the value codec
1582
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1568
1583
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1569
1584
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1570
1585
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1608,7 +1623,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1608
1623
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1609
1624
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1610
1625
  </ul>
1611
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1626
+ <p><code>client.ts</code> imports only the value codec
1627
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1612
1628
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1613
1629
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1614
1630
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1652,7 +1668,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1652
1668
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1653
1669
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1654
1670
  </ul>
1655
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1671
+ <p><code>client.ts</code> imports only the value codec
1672
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1656
1673
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1657
1674
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1658
1675
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1691,7 +1708,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1691
1708
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1692
1709
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1693
1710
  </ul>
1694
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1711
+ <p><code>client.ts</code> imports only the value codec
1712
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1695
1713
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1696
1714
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1697
1715
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1742,7 +1760,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1742
1760
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1743
1761
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1744
1762
  </ul>
1745
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1763
+ <p><code>client.ts</code> imports only the value codec
1764
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1746
1765
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1747
1766
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1748
1767
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1789,7 +1808,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1789
1808
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1790
1809
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1791
1810
  </ul>
1792
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1811
+ <p><code>client.ts</code> imports only the value codec
1812
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1793
1813
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1794
1814
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1795
1815
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1880,7 +1900,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1880
1900
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1881
1901
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1882
1902
  </ul>
1883
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1903
+ <p><code>client.ts</code> imports only the value codec
1904
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1884
1905
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1885
1906
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1886
1907
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1927,7 +1948,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1927
1948
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1928
1949
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1929
1950
  </ul>
1930
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
1951
+ <p><code>client.ts</code> imports only the value codec
1952
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1931
1953
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1932
1954
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1933
1955
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -1993,7 +2015,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
1993
2015
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
1994
2016
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
1995
2017
  </ul>
1996
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2018
+ <p><code>client.ts</code> imports only the value codec
2019
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
1997
2020
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
1998
2021
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
1999
2022
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2029,7 +2052,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2029
2052
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2030
2053
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2031
2054
  </ul>
2032
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2055
+ <p><code>client.ts</code> imports only the value codec
2056
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2033
2057
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2034
2058
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2035
2059
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2235,7 +2259,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2235
2259
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2236
2260
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2237
2261
  </ul>
2238
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2262
+ <p><code>client.ts</code> imports only the value codec
2263
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2239
2264
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2240
2265
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2241
2266
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2279,7 +2304,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2279
2304
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2280
2305
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2281
2306
  </ul>
2282
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2307
+ <p><code>client.ts</code> imports only the value codec
2308
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2283
2309
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2284
2310
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2285
2311
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2315,7 +2341,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2315
2341
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2316
2342
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2317
2343
  </ul>
2318
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2344
+ <p><code>client.ts</code> imports only the value codec
2345
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2319
2346
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2320
2347
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2321
2348
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2414,7 +2441,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2414
2441
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2415
2442
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2416
2443
  </ul>
2417
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2444
+ <p><code>client.ts</code> imports only the value codec
2445
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2418
2446
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2419
2447
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2420
2448
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2450,7 +2478,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2450
2478
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2451
2479
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2452
2480
  </ul>
2453
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2481
+ <p><code>client.ts</code> imports only the value codec
2482
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2454
2483
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2455
2484
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2456
2485
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2535,7 +2564,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2535
2564
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2536
2565
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2537
2566
  </ul>
2538
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2567
+ <p><code>client.ts</code> imports only the value codec
2568
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2539
2569
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2540
2570
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2541
2571
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2707,7 +2737,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2707
2737
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2708
2738
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2709
2739
  </ul>
2710
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2740
+ <p><code>client.ts</code> imports only the value codec
2741
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2711
2742
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2712
2743
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2713
2744
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2747,7 +2778,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2747
2778
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2748
2779
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2749
2780
  </ul>
2750
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2781
+ <p><code>client.ts</code> imports only the value codec
2782
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2751
2783
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2752
2784
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2753
2785
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2783,7 +2815,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2783
2815
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2784
2816
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2785
2817
  </ul>
2786
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2818
+ <p><code>client.ts</code> imports only the value codec
2819
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2787
2820
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2788
2821
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2789
2822
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2956,7 +2989,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2956
2989
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2957
2990
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2958
2991
  </ul>
2959
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
2992
+ <p><code>client.ts</code> imports only the value codec
2993
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2960
2994
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
2961
2995
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
2962
2996
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -2995,7 +3029,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
2995
3029
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
2996
3030
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
2997
3031
  </ul>
2998
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3032
+ <p><code>client.ts</code> imports only the value codec
3033
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
2999
3034
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3000
3035
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3001
3036
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3162,7 +3197,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3162
3197
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3163
3198
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3164
3199
  </ul>
3165
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3200
+ <p><code>client.ts</code> imports only the value codec
3201
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3166
3202
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3167
3203
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3168
3204
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3198,7 +3234,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3198
3234
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3199
3235
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3200
3236
  </ul>
3201
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3237
+ <p><code>client.ts</code> imports only the value codec
3238
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3202
3239
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3203
3240
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3204
3241
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3234,7 +3271,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3234
3271
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3235
3272
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3236
3273
  </ul>
3237
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3274
+ <p><code>client.ts</code> imports only the value codec
3275
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3238
3276
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3239
3277
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3240
3278
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3350,7 +3388,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3350
3388
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3351
3389
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3352
3390
  </ul>
3353
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3391
+ <p><code>client.ts</code> imports only the value codec
3392
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3354
3393
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3355
3394
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3356
3395
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3537,7 +3576,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3537
3576
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3538
3577
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3539
3578
  </ul>
3540
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3579
+ <p><code>client.ts</code> imports only the value codec
3580
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3541
3581
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3542
3582
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3543
3583
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3734,7 +3774,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3734
3774
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3735
3775
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3736
3776
  </ul>
3737
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3777
+ <p><code>client.ts</code> imports only the value codec
3778
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3738
3779
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3739
3780
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3740
3781
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3774,7 +3815,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3774
3815
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3775
3816
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3776
3817
  </ul>
3777
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3818
+ <p><code>client.ts</code> imports only the value codec
3819
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3778
3820
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3779
3821
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3780
3822
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3795,7 +3837,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3795
3837
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3796
3838
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3797
3839
  </ul>
3798
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3840
+ <p><code>client.ts</code> imports only the value codec
3841
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3799
3842
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3800
3843
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3801
3844
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3831,7 +3874,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3831
3874
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3832
3875
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3833
3876
  </ul>
3834
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3877
+ <p><code>client.ts</code> imports only the value codec
3878
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3835
3879
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3836
3880
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3837
3881
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3874,7 +3918,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3874
3918
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3875
3919
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3876
3920
  </ul>
3877
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3921
+ <p><code>client.ts</code> imports only the value codec
3922
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3878
3923
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3879
3924
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3880
3925
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3921,7 +3966,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3921
3966
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3922
3967
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3923
3968
  </ul>
3924
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
3969
+ <p><code>client.ts</code> imports only the value codec
3970
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3925
3971
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3926
3972
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3927
3973
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -3965,7 +4011,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
3965
4011
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
3966
4012
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
3967
4013
  </ul>
3968
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4014
+ <p><code>client.ts</code> imports only the value codec
4015
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
3969
4016
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
3970
4017
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
3971
4018
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4005,7 +4052,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4005
4052
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4006
4053
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4007
4054
  </ul>
4008
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4055
+ <p><code>client.ts</code> imports only the value codec
4056
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4009
4057
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4010
4058
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4011
4059
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4045,7 +4093,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4045
4093
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4046
4094
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4047
4095
  </ul>
4048
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4096
+ <p><code>client.ts</code> imports only the value codec
4097
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4049
4098
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4050
4099
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4051
4100
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4082,7 +4131,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4082
4131
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4083
4132
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4084
4133
  </ul>
4085
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4134
+ <p><code>client.ts</code> imports only the value codec
4135
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4086
4136
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4087
4137
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4088
4138
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4104,7 +4154,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4104
4154
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4105
4155
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4106
4156
  </ul>
4107
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4157
+ <p><code>client.ts</code> imports only the value codec
4158
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4108
4159
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4109
4160
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4110
4161
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4144,7 +4195,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4144
4195
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4145
4196
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4146
4197
  </ul>
4147
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4198
+ <p><code>client.ts</code> imports only the value codec
4199
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4148
4200
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4149
4201
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4150
4202
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4269,7 +4321,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4269
4321
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4270
4322
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4271
4323
  </ul>
4272
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4324
+ <p><code>client.ts</code> imports only the value codec
4325
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4273
4326
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4274
4327
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4275
4328
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4293,7 +4346,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4293
4346
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4294
4347
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4295
4348
  </ul>
4296
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4349
+ <p><code>client.ts</code> imports only the value codec
4350
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4297
4351
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4298
4352
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4299
4353
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4342,7 +4396,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4342
4396
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4343
4397
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4344
4398
  </ul>
4345
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4399
+ <p><code>client.ts</code> imports only the value codec
4400
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4346
4401
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4347
4402
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4348
4403
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4398,7 +4453,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4398
4453
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4399
4454
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4400
4455
  </ul>
4401
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4456
+ <p><code>client.ts</code> imports only the value codec
4457
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4402
4458
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4403
4459
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4404
4460
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4524,7 +4580,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4524
4580
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4525
4581
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4526
4582
  </ul>
4527
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4583
+ <p><code>client.ts</code> imports only the value codec
4584
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4528
4585
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4529
4586
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4530
4587
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4600,7 +4657,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4600
4657
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4601
4658
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4602
4659
  </ul>
4603
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4660
+ <p><code>client.ts</code> imports only the value codec
4661
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4604
4662
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4605
4663
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4606
4664
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4639,7 +4697,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4639
4697
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4640
4698
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4641
4699
  </ul>
4642
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4700
+ <p><code>client.ts</code> imports only the value codec
4701
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4643
4702
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4644
4703
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4645
4704
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4683,7 +4742,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4683
4742
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4684
4743
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4685
4744
  </ul>
4686
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4745
+ <p><code>client.ts</code> imports only the value codec
4746
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4687
4747
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4688
4748
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4689
4749
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4719,7 +4779,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4719
4779
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4720
4780
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4721
4781
  </ul>
4722
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4782
+ <p><code>client.ts</code> imports only the value codec
4783
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4723
4784
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4724
4785
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4725
4786
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4755,7 +4816,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4755
4816
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4756
4817
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4757
4818
  </ul>
4758
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4819
+ <p><code>client.ts</code> imports only the value codec
4820
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4759
4821
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4760
4822
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4761
4823
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -4921,7 +4983,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
4921
4983
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
4922
4984
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
4923
4985
  </ul>
4924
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
4986
+ <p><code>client.ts</code> imports only the value codec
4987
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
4925
4988
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
4926
4989
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
4927
4990
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -5004,7 +5067,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
5004
5067
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
5005
5068
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
5006
5069
  </ul>
5007
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
5070
+ <p><code>client.ts</code> imports only the value codec
5071
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
5008
5072
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
5009
5073
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
5010
5074
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can
@@ -5048,7 +5112,8 @@ does NOT re-export <code>host.ts</code>/<code>entry.ts</code>:</p>
5048
5112
  the backend) — node/engine-heavy, never wanted in a page bundle.</li>
5049
5113
  <li><code>entry.ts</code> references <code>SharedWorkerGlobalScope</code> and is esbuild-only.</li>
5050
5114
  </ul>
5051
- <p><code>client.ts</code> imports only the value codec (<code>pyric/firestore-values</code>, a leaf)
5115
+ <p><code>client.ts</code> imports only the value codec
5116
+ (<code>pyric/firestore/internal/value-codec</code>, a leaf internal seam)
5052
5117
  and type-only <code>pyric/sandbox</code> (erased at build), so this entry stays free of
5053
5118
  the ~10 MB rules/sandbox engine — safe to import from any browser app.</p>
5054
5119
  <p>Exposed by <code>@pyric/cli</code>’s <code>./serve/worker</code> package export so Studio can