@pyric/cli 0.1.0-alpha.9

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 (1169) hide show
  1. package/LICENSE +216 -0
  2. package/README.md +156 -0
  3. package/README.md.orig +138 -0
  4. package/dist/assurance/attachment.d.ts +24 -0
  5. package/dist/assurance/attachment.d.ts.map +1 -0
  6. package/dist/assurance/attachment.js +138 -0
  7. package/dist/assurance/attachment.js.map +1 -0
  8. package/dist/assurance/browser.d.ts +7 -0
  9. package/dist/assurance/browser.d.ts.map +1 -0
  10. package/dist/assurance/browser.js +68 -0
  11. package/dist/assurance/browser.js.map +1 -0
  12. package/dist/assurance/campaign.d.ts +41 -0
  13. package/dist/assurance/campaign.d.ts.map +1 -0
  14. package/dist/assurance/campaign.js +364 -0
  15. package/dist/assurance/campaign.js.map +1 -0
  16. package/dist/assurance/capabilities.d.ts +7 -0
  17. package/dist/assurance/capabilities.d.ts.map +1 -0
  18. package/dist/assurance/capabilities.js +295 -0
  19. package/dist/assurance/capabilities.js.map +1 -0
  20. package/dist/assurance/cases.d.ts +14 -0
  21. package/dist/assurance/cases.d.ts.map +1 -0
  22. package/dist/assurance/cases.js +27 -0
  23. package/dist/assurance/cases.js.map +1 -0
  24. package/dist/assurance/generated-capabilities.d.ts +52 -0
  25. package/dist/assurance/generated-capabilities.d.ts.map +1 -0
  26. package/dist/assurance/generated-capabilities.js +329 -0
  27. package/dist/assurance/generated-capabilities.js.map +1 -0
  28. package/dist/assurance/index.d.ts +11 -0
  29. package/dist/assurance/index.d.ts.map +1 -0
  30. package/dist/assurance/index.js +9 -0
  31. package/dist/assurance/index.js.map +1 -0
  32. package/dist/assurance/runner.d.ts +3 -0
  33. package/dist/assurance/runner.d.ts.map +1 -0
  34. package/dist/assurance/runner.js +633 -0
  35. package/dist/assurance/runner.js.map +1 -0
  36. package/dist/assurance/tool-names.d.ts +4 -0
  37. package/dist/assurance/tool-names.d.ts.map +1 -0
  38. package/dist/assurance/tool-names.js +14 -0
  39. package/dist/assurance/tool-names.js.map +1 -0
  40. package/dist/assurance/tools.d.ts +19 -0
  41. package/dist/assurance/tools.d.ts.map +1 -0
  42. package/dist/assurance/tools.js +740 -0
  43. package/dist/assurance/tools.js.map +1 -0
  44. package/dist/assurance/types.d.ts +348 -0
  45. package/dist/assurance/types.d.ts.map +1 -0
  46. package/dist/assurance/types.js +7 -0
  47. package/dist/assurance/types.js.map +1 -0
  48. package/dist/assurance/validation.d.ts +8 -0
  49. package/dist/assurance/validation.d.ts.map +1 -0
  50. package/dist/assurance/validation.js +269 -0
  51. package/dist/assurance/validation.js.map +1 -0
  52. package/dist/bridge/client/bridge.d.ts +133 -0
  53. package/dist/bridge/client/bridge.d.ts.map +1 -0
  54. package/dist/bridge/client/bridge.js +429 -0
  55. package/dist/bridge/client/bridge.js.map +1 -0
  56. package/dist/bridge/client/dispatch.d.ts +41 -0
  57. package/dist/bridge/client/dispatch.d.ts.map +1 -0
  58. package/dist/bridge/client/dispatch.js +111 -0
  59. package/dist/bridge/client/dispatch.js.map +1 -0
  60. package/dist/bridge/client.d.ts +24 -0
  61. package/dist/bridge/client.d.ts.map +1 -0
  62. package/dist/bridge/client.js +26 -0
  63. package/dist/bridge/client.js.map +1 -0
  64. package/dist/bridge/protocol.d.ts +227 -0
  65. package/dist/bridge/protocol.d.ts.map +1 -0
  66. package/dist/bridge/protocol.js +131 -0
  67. package/dist/bridge/protocol.js.map +1 -0
  68. package/dist/bridge/server/audit.d.ts +19 -0
  69. package/dist/bridge/server/audit.d.ts.map +1 -0
  70. package/dist/bridge/server/audit.js +46 -0
  71. package/dist/bridge/server/audit.js.map +1 -0
  72. package/dist/bridge/server/bridge.d.ts +126 -0
  73. package/dist/bridge/server/bridge.d.ts.map +1 -0
  74. package/dist/bridge/server/bridge.js +383 -0
  75. package/dist/bridge/server/bridge.js.map +1 -0
  76. package/dist/bridge/server/headless.d.ts +36 -0
  77. package/dist/bridge/server/headless.d.ts.map +1 -0
  78. package/dist/bridge/server/headless.js +142 -0
  79. package/dist/bridge/server/headless.js.map +1 -0
  80. package/dist/bridge/server/json-schema-to-zod.d.ts +37 -0
  81. package/dist/bridge/server/json-schema-to-zod.d.ts.map +1 -0
  82. package/dist/bridge/server/json-schema-to-zod.js +93 -0
  83. package/dist/bridge/server/json-schema-to-zod.js.map +1 -0
  84. package/dist/bridge/server/local-bridge.d.ts +33 -0
  85. package/dist/bridge/server/local-bridge.d.ts.map +1 -0
  86. package/dist/bridge/server/local-bridge.js +41 -0
  87. package/dist/bridge/server/local-bridge.js.map +1 -0
  88. package/dist/bridge/server/logger.d.ts +28 -0
  89. package/dist/bridge/server/logger.d.ts.map +1 -0
  90. package/dist/bridge/server/logger.js +42 -0
  91. package/dist/bridge/server/logger.js.map +1 -0
  92. package/dist/bridge/server/mcp-contract.d.ts +21 -0
  93. package/dist/bridge/server/mcp-contract.d.ts.map +1 -0
  94. package/dist/bridge/server/mcp-contract.js +62 -0
  95. package/dist/bridge/server/mcp-contract.js.map +1 -0
  96. package/dist/bridge/server/mcp.d.ts +26 -0
  97. package/dist/bridge/server/mcp.d.ts.map +1 -0
  98. package/dist/bridge/server/mcp.js +102 -0
  99. package/dist/bridge/server/mcp.js.map +1 -0
  100. package/dist/bridge/server/peer.d.ts +39 -0
  101. package/dist/bridge/server/peer.d.ts.map +1 -0
  102. package/dist/bridge/server/peer.js +189 -0
  103. package/dist/bridge/server/peer.js.map +1 -0
  104. package/dist/bridge/server/standalone.d.ts +49 -0
  105. package/dist/bridge/server/standalone.d.ts.map +1 -0
  106. package/dist/bridge/server/standalone.js +267 -0
  107. package/dist/bridge/server/standalone.js.map +1 -0
  108. package/dist/bridge/server/tool-metadata.d.ts +38 -0
  109. package/dist/bridge/server/tool-metadata.d.ts.map +1 -0
  110. package/dist/bridge/server/tool-metadata.js +81 -0
  111. package/dist/bridge/server/tool-metadata.js.map +1 -0
  112. package/dist/bridge/server.d.ts +21 -0
  113. package/dist/bridge/server.d.ts.map +1 -0
  114. package/dist/bridge/server.js +18 -0
  115. package/dist/bridge/server.js.map +1 -0
  116. package/dist/cli/database-rules.d.ts +43 -0
  117. package/dist/cli/database-rules.d.ts.map +1 -0
  118. package/dist/cli/database-rules.js +261 -0
  119. package/dist/cli/database-rules.js.map +1 -0
  120. package/dist/cli/dev-runner.d.ts +112 -0
  121. package/dist/cli/dev-runner.d.ts.map +1 -0
  122. package/dist/cli/dev-runner.js +239 -0
  123. package/dist/cli/dev-runner.js.map +1 -0
  124. package/dist/cli/firebase-json.d.ts +66 -0
  125. package/dist/cli/firebase-json.d.ts.map +1 -0
  126. package/dist/cli/firebase-json.js +60 -0
  127. package/dist/cli/firebase-json.js.map +1 -0
  128. package/dist/cli/firestore-indexes.d.ts +21 -0
  129. package/dist/cli/firestore-indexes.d.ts.map +1 -0
  130. package/dist/cli/firestore-indexes.js +39 -0
  131. package/dist/cli/firestore-indexes.js.map +1 -0
  132. package/dist/cli/index.d.ts +56 -0
  133. package/dist/cli/index.d.ts.map +1 -0
  134. package/dist/cli/index.js +379 -0
  135. package/dist/cli/index.js.map +1 -0
  136. package/dist/cli/init.d.ts +50 -0
  137. package/dist/cli/init.d.ts.map +1 -0
  138. package/dist/cli/init.js +182 -0
  139. package/dist/cli/init.js.map +1 -0
  140. package/dist/cli/mcp-proxy.d.ts +10 -0
  141. package/dist/cli/mcp-proxy.d.ts.map +1 -0
  142. package/dist/cli/mcp-proxy.js +129 -0
  143. package/dist/cli/mcp-proxy.js.map +1 -0
  144. package/dist/cli/parse-args.d.ts +20 -0
  145. package/dist/cli/parse-args.d.ts.map +1 -0
  146. package/dist/cli/parse-args.js +69 -0
  147. package/dist/cli/parse-args.js.map +1 -0
  148. package/dist/cli/rules.d.ts +55 -0
  149. package/dist/cli/rules.d.ts.map +1 -0
  150. package/dist/cli/rules.js +199 -0
  151. package/dist/cli/rules.js.map +1 -0
  152. package/dist/cli/scope.d.ts +12 -0
  153. package/dist/cli/scope.d.ts.map +1 -0
  154. package/dist/cli/scope.js +44 -0
  155. package/dist/cli/scope.js.map +1 -0
  156. package/dist/cli/serve.d.ts +122 -0
  157. package/dist/cli/serve.d.ts.map +1 -0
  158. package/dist/cli/serve.js +844 -0
  159. package/dist/cli/serve.js.map +1 -0
  160. package/dist/cli/service-commands.d.ts +8 -0
  161. package/dist/cli/service-commands.d.ts.map +1 -0
  162. package/dist/cli/service-commands.js +58 -0
  163. package/dist/cli/service-commands.js.map +1 -0
  164. package/dist/cli/snapshot.d.ts +22 -0
  165. package/dist/cli/snapshot.d.ts.map +1 -0
  166. package/dist/cli/snapshot.js +139 -0
  167. package/dist/cli/snapshot.js.map +1 -0
  168. package/dist/cli/storage-rules.d.ts +21 -0
  169. package/dist/cli/storage-rules.d.ts.map +1 -0
  170. package/dist/cli/storage-rules.js +121 -0
  171. package/dist/cli/storage-rules.js.map +1 -0
  172. package/dist/cli/verify.d.ts +23 -0
  173. package/dist/cli/verify.d.ts.map +1 -0
  174. package/dist/cli/verify.js +349 -0
  175. package/dist/cli/verify.js.map +1 -0
  176. package/dist/credentials/core/memoize-ttl.d.ts +58 -0
  177. package/dist/credentials/core/memoize-ttl.d.ts.map +1 -0
  178. package/dist/credentials/core/memoize-ttl.js +88 -0
  179. package/dist/credentials/core/memoize-ttl.js.map +1 -0
  180. package/dist/credentials/core/types.d.ts +11 -0
  181. package/dist/credentials/core/types.d.ts.map +1 -0
  182. package/dist/credentials/core/types.js +2 -0
  183. package/dist/credentials/core/types.js.map +1 -0
  184. package/dist/credentials/node/from-adc.d.ts +10 -0
  185. package/dist/credentials/node/from-adc.d.ts.map +1 -0
  186. package/dist/credentials/node/from-adc.js +76 -0
  187. package/dist/credentials/node/from-adc.js.map +1 -0
  188. package/dist/credentials/node/from-service-account.d.ts +24 -0
  189. package/dist/credentials/node/from-service-account.d.ts.map +1 -0
  190. package/dist/credentials/node/from-service-account.js +108 -0
  191. package/dist/credentials/node/from-service-account.js.map +1 -0
  192. package/dist/credentials/node/index.d.ts +7 -0
  193. package/dist/credentials/node/index.d.ts.map +1 -0
  194. package/dist/credentials/node/index.js +7 -0
  195. package/dist/credentials/node/index.js.map +1 -0
  196. package/dist/discover/concurrency.d.ts +42 -0
  197. package/dist/discover/concurrency.d.ts.map +1 -0
  198. package/dist/discover/concurrency.js +113 -0
  199. package/dist/discover/concurrency.js.map +1 -0
  200. package/dist/discover/crawler-adapter.d.ts +48 -0
  201. package/dist/discover/crawler-adapter.d.ts.map +1 -0
  202. package/dist/discover/crawler-adapter.js +92 -0
  203. package/dist/discover/crawler-adapter.js.map +1 -0
  204. package/dist/discover/crawler.d.ts +294 -0
  205. package/dist/discover/crawler.d.ts.map +1 -0
  206. package/dist/discover/crawler.js +764 -0
  207. package/dist/discover/crawler.js.map +1 -0
  208. package/dist/discover/credential-free.d.ts +19 -0
  209. package/dist/discover/credential-free.d.ts.map +1 -0
  210. package/dist/discover/credential-free.js +18 -0
  211. package/dist/discover/credential-free.js.map +1 -0
  212. package/dist/discover/findCollectionGroup.d.ts +44 -0
  213. package/dist/discover/findCollectionGroup.d.ts.map +1 -0
  214. package/dist/discover/findCollectionGroup.js +81 -0
  215. package/dist/discover/findCollectionGroup.js.map +1 -0
  216. package/dist/discover/firestore-source.d.ts +60 -0
  217. package/dist/discover/firestore-source.d.ts.map +1 -0
  218. package/dist/discover/firestore-source.js +11 -0
  219. package/dist/discover/firestore-source.js.map +1 -0
  220. package/dist/discover/index.d.ts +3 -0
  221. package/dist/discover/index.d.ts.map +1 -0
  222. package/dist/discover/index.js +5 -0
  223. package/dist/discover/index.js.map +1 -0
  224. package/dist/discover/merge.d.ts +108 -0
  225. package/dist/discover/merge.d.ts.map +1 -0
  226. package/dist/discover/merge.js +394 -0
  227. package/dist/discover/merge.js.map +1 -0
  228. package/dist/discover/session.d.ts +116 -0
  229. package/dist/discover/session.d.ts.map +1 -0
  230. package/dist/discover/session.js +331 -0
  231. package/dist/discover/session.js.map +1 -0
  232. package/dist/discover/tools.d.ts +58 -0
  233. package/dist/discover/tools.d.ts.map +1 -0
  234. package/dist/discover/tools.js +115 -0
  235. package/dist/discover/tools.js.map +1 -0
  236. package/dist/discover/types.d.ts +190 -0
  237. package/dist/discover/types.d.ts.map +1 -0
  238. package/dist/discover/types.js +12 -0
  239. package/dist/discover/types.js.map +1 -0
  240. package/dist/discover/wire.d.ts +70 -0
  241. package/dist/discover/wire.d.ts.map +1 -0
  242. package/dist/discover/wire.js +309 -0
  243. package/dist/discover/wire.js.map +1 -0
  244. package/dist/functions-rtdb/child.d.ts +52 -0
  245. package/dist/functions-rtdb/child.d.ts.map +1 -0
  246. package/dist/functions-rtdb/child.js +283 -0
  247. package/dist/functions-rtdb/child.js.map +1 -0
  248. package/dist/functions-rtdb/delivery.d.ts +4 -0
  249. package/dist/functions-rtdb/delivery.d.ts.map +1 -0
  250. package/dist/functions-rtdb/delivery.js +2 -0
  251. package/dist/functions-rtdb/delivery.js.map +1 -0
  252. package/dist/functions-rtdb/discovery.d.ts +41 -0
  253. package/dist/functions-rtdb/discovery.d.ts.map +1 -0
  254. package/dist/functions-rtdb/discovery.js +86 -0
  255. package/dist/functions-rtdb/discovery.js.map +1 -0
  256. package/dist/functions-rtdb/event.d.ts +20 -0
  257. package/dist/functions-rtdb/event.d.ts.map +1 -0
  258. package/dist/functions-rtdb/event.js +45 -0
  259. package/dist/functions-rtdb/event.js.map +1 -0
  260. package/dist/functions-rtdb/execution.d.ts +20 -0
  261. package/dist/functions-rtdb/execution.d.ts.map +1 -0
  262. package/dist/functions-rtdb/execution.js +70 -0
  263. package/dist/functions-rtdb/execution.js.map +1 -0
  264. package/dist/functions-rtdb/in-memory-delivery.d.ts +9 -0
  265. package/dist/functions-rtdb/in-memory-delivery.d.ts.map +1 -0
  266. package/dist/functions-rtdb/in-memory-delivery.js +36 -0
  267. package/dist/functions-rtdb/in-memory-delivery.js.map +1 -0
  268. package/dist/functions-rtdb/project.d.ts +7 -0
  269. package/dist/functions-rtdb/project.d.ts.map +1 -0
  270. package/dist/functions-rtdb/project.js +54 -0
  271. package/dist/functions-rtdb/project.js.map +1 -0
  272. package/dist/functions-rtdb/projection.d.ts +14 -0
  273. package/dist/functions-rtdb/projection.d.ts.map +1 -0
  274. package/dist/functions-rtdb/projection.js +65 -0
  275. package/dist/functions-rtdb/projection.js.map +1 -0
  276. package/dist/functions-rtdb/reference-pattern.d.ts +5 -0
  277. package/dist/functions-rtdb/reference-pattern.d.ts.map +1 -0
  278. package/dist/functions-rtdb/reference-pattern.js +14 -0
  279. package/dist/functions-rtdb/reference-pattern.js.map +1 -0
  280. package/dist/functions-rtdb/remote-delivery.d.ts +9 -0
  281. package/dist/functions-rtdb/remote-delivery.d.ts.map +1 -0
  282. package/dist/functions-rtdb/remote-delivery.js +11 -0
  283. package/dist/functions-rtdb/remote-delivery.js.map +1 -0
  284. package/dist/pkg-version.d.ts +2 -0
  285. package/dist/pkg-version.d.ts.map +1 -0
  286. package/dist/pkg-version.js +47 -0
  287. package/dist/pkg-version.js.map +1 -0
  288. package/dist/register/esm-exports.d.ts +26 -0
  289. package/dist/register/esm-exports.d.ts.map +1 -0
  290. package/dist/register/esm-exports.js +61 -0
  291. package/dist/register/esm-exports.js.map +1 -0
  292. package/dist/register/hooks.d.ts +13 -0
  293. package/dist/register/hooks.d.ts.map +1 -0
  294. package/dist/register/hooks.js +15 -0
  295. package/dist/register/hooks.js.map +1 -0
  296. package/dist/register/index.d.ts +5 -0
  297. package/dist/register/index.d.ts.map +1 -0
  298. package/dist/register/index.js +124 -0
  299. package/dist/register/index.js.map +1 -0
  300. package/dist/register/mapping.d.ts +19 -0
  301. package/dist/register/mapping.d.ts.map +1 -0
  302. package/dist/register/mapping.js +35 -0
  303. package/dist/register/mapping.js.map +1 -0
  304. package/dist/remote/index.d.ts +232 -0
  305. package/dist/remote/index.d.ts.map +1 -0
  306. package/dist/remote/index.js +720 -0
  307. package/dist/remote/index.js.map +1 -0
  308. package/dist/rtdb/crawl-snapshot.d.ts +17 -0
  309. package/dist/rtdb/crawl-snapshot.d.ts.map +1 -0
  310. package/dist/rtdb/crawl-snapshot.js +72 -0
  311. package/dist/rtdb/crawl-snapshot.js.map +1 -0
  312. package/dist/rtdb/inspection.d.ts +8 -0
  313. package/dist/rtdb/inspection.d.ts.map +1 -0
  314. package/dist/rtdb/inspection.js +111 -0
  315. package/dist/rtdb/inspection.js.map +1 -0
  316. package/dist/rtdb/load-rules-document.d.ts +25 -0
  317. package/dist/rtdb/load-rules-document.d.ts.map +1 -0
  318. package/dist/rtdb/load-rules-document.js +38 -0
  319. package/dist/rtdb/load-rules-document.js.map +1 -0
  320. package/dist/rtdb/rules-generation-tool.d.ts +4 -0
  321. package/dist/rtdb/rules-generation-tool.d.ts.map +1 -0
  322. package/dist/rtdb/rules-generation-tool.js +35 -0
  323. package/dist/rtdb/rules-generation-tool.js.map +1 -0
  324. package/dist/rtdb/rules-json.d.ts +8 -0
  325. package/dist/rtdb/rules-json.d.ts.map +1 -0
  326. package/dist/rtdb/rules-json.js +17 -0
  327. package/dist/rtdb/rules-json.js.map +1 -0
  328. package/dist/serve/bridge-mount.d.ts +36 -0
  329. package/dist/serve/bridge-mount.d.ts.map +1 -0
  330. package/dist/serve/bridge-mount.js +162 -0
  331. package/dist/serve/bridge-mount.js.map +1 -0
  332. package/dist/serve/bundler.d.ts +110 -0
  333. package/dist/serve/bundler.d.ts.map +1 -0
  334. package/dist/serve/bundler.js +432 -0
  335. package/dist/serve/bundler.js.map +1 -0
  336. package/dist/serve/capture-store.d.ts +27 -0
  337. package/dist/serve/capture-store.d.ts.map +1 -0
  338. package/dist/serve/capture-store.js +47 -0
  339. package/dist/serve/capture-store.js.map +1 -0
  340. package/dist/serve/discovery.d.ts +71 -0
  341. package/dist/serve/discovery.d.ts.map +1 -0
  342. package/dist/serve/discovery.js +158 -0
  343. package/dist/serve/discovery.js.map +1 -0
  344. package/dist/serve/docs-ui/_astro/_slug_.CQYSemvw.css +1 -0
  345. package/dist/serve/docs-ui/docs/_rhythm/index.html +99 -0
  346. package/dist/serve/docs-ui/docs/_rhythm.md +101 -0
  347. package/dist/serve/docs-ui/docs/api-reference/index.html +64 -0
  348. package/dist/serve/docs-ui/docs/api-reference.md +67 -0
  349. package/dist/serve/docs-ui/docs/audit-your-rules/index.html +34 -0
  350. package/dist/serve/docs-ui/docs/audit-your-rules.md +50 -0
  351. package/dist/serve/docs-ui/docs/create-pyric-reference-api/index.html +498 -0
  352. package/dist/serve/docs-ui/docs/create-pyric-reference-api.md +345 -0
  353. package/dist/serve/docs-ui/docs/firestore-rules-limits/index.html +59 -0
  354. package/dist/serve/docs-ui/docs/firestore-rules-limits.md +54 -0
  355. package/dist/serve/docs-ui/docs/how-the-swap-works/index.html +47 -0
  356. package/dist/serve/docs-ui/docs/how-the-swap-works.md +43 -0
  357. package/dist/serve/docs-ui/docs/how-we-know-it-matches-firebase/index.html +131 -0
  358. package/dist/serve/docs-ui/docs/how-we-know-it-matches-firebase.md +169 -0
  359. package/dist/serve/docs-ui/docs/index.html +2 -0
  360. package/dist/serve/docs-ui/docs/index.json +18637 -0
  361. package/dist/serve/docs-ui/docs/overview/index.html +23 -0
  362. package/dist/serve/docs-ui/docs/overview.md +40 -0
  363. package/dist/serve/docs-ui/docs/pyric-admin-app/index.html +19 -0
  364. package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api/index.html +185 -0
  365. package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api.md +206 -0
  366. package/dist/serve/docs-ui/docs/pyric-admin-app.md +27 -0
  367. package/dist/serve/docs-ui/docs/pyric-admin-auth/index.html +24 -0
  368. package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api/index.html +617 -0
  369. package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api.md +441 -0
  370. package/dist/serve/docs-ui/docs/pyric-admin-auth.md +29 -0
  371. package/dist/serve/docs-ui/docs/pyric-admin-database/index.html +26 -0
  372. package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api/index.html +583 -0
  373. package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api.md +597 -0
  374. package/dist/serve/docs-ui/docs/pyric-admin-database.md +31 -0
  375. package/dist/serve/docs-ui/docs/pyric-admin-firestore/index.html +38 -0
  376. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-error-translation/index.html +57 -0
  377. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-error-translation.md +95 -0
  378. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-per-call-delegate/index.html +58 -0
  379. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-per-call-delegate.md +94 -0
  380. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-why-mirror-admin-shape/index.html +59 -0
  381. package/dist/serve/docs-ui/docs/pyric-admin-firestore-explanation-why-mirror-admin-shape.md +88 -0
  382. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-run-a-transaction/index.html +53 -0
  383. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-run-a-transaction.md +76 -0
  384. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-seed-and-set-rules/index.html +62 -0
  385. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-seed-and-set-rules.md +96 -0
  386. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-translate-denials/index.html +80 -0
  387. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-translate-denials.md +98 -0
  388. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-use-onsnapshot/index.html +57 -0
  389. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-use-onsnapshot.md +88 -0
  390. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-write-a-batch/index.html +50 -0
  391. package/dist/serve/docs-ui/docs/pyric-admin-firestore-how-to-write-a-batch.md +73 -0
  392. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api/index.html +32 -0
  393. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api.md +30 -0
  394. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-onsnapshot/index.html +68 -0
  395. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-onsnapshot.md +81 -0
  396. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-re-exported-types/index.html +76 -0
  397. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-re-exported-types.md +103 -0
  398. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-sandbox-firestore/index.html +40 -0
  399. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-sandbox-firestore.md +77 -0
  400. package/dist/serve/docs-ui/docs/pyric-admin-firestore-tutorials-01-first-admin-session/index.html +118 -0
  401. package/dist/serve/docs-ui/docs/pyric-admin-firestore-tutorials-01-first-admin-session.md +166 -0
  402. package/dist/serve/docs-ui/docs/pyric-admin-firestore.md +53 -0
  403. package/dist/serve/docs-ui/docs/pyric-admin-storage/index.html +25 -0
  404. package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api/index.html +317 -0
  405. package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api.md +285 -0
  406. package/dist/serve/docs-ui/docs/pyric-admin-storage.md +30 -0
  407. package/dist/serve/docs-ui/docs/pyric-ai-compat/index.html +436 -0
  408. package/dist/serve/docs-ui/docs/pyric-ai-compat.md +471 -0
  409. package/dist/serve/docs-ui/docs/pyric-ai-reference-api/index.html +5831 -0
  410. package/dist/serve/docs-ui/docs/pyric-ai-reference-api.md +5440 -0
  411. package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api/index.html +159 -0
  412. package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api.md +122 -0
  413. package/dist/serve/docs-ui/docs/pyric-app-compat/index.html +180 -0
  414. package/dist/serve/docs-ui/docs/pyric-app-compat.md +199 -0
  415. package/dist/serve/docs-ui/docs/pyric-app-reference-api/index.html +420 -0
  416. package/dist/serve/docs-ui/docs/pyric-app-reference-api.md +326 -0
  417. package/dist/serve/docs-ui/docs/pyric-auth/index.html +59 -0
  418. package/dist/serve/docs-ui/docs/pyric-auth-compat/index.html +804 -0
  419. package/dist/serve/docs-ui/docs/pyric-auth-compat.md +847 -0
  420. package/dist/serve/docs-ui/docs/pyric-auth-reference-api/index.html +5452 -0
  421. package/dist/serve/docs-ui/docs/pyric-auth-reference-api.md +5271 -0
  422. package/dist/serve/docs-ui/docs/pyric-auth-reference-feature-matrix/index.html +781 -0
  423. package/dist/serve/docs-ui/docs/pyric-auth-reference-feature-matrix.md +198 -0
  424. package/dist/serve/docs-ui/docs/pyric-auth-reference-sandbox-test-driver/index.html +71 -0
  425. package/dist/serve/docs-ui/docs/pyric-auth-reference-sandbox-test-driver.md +108 -0
  426. package/dist/serve/docs-ui/docs/pyric-auth.md +86 -0
  427. package/dist/serve/docs-ui/docs/pyric-cli/index.html +40 -0
  428. package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +98 -0
  429. package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api.md +88 -0
  430. package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api/index.html +2355 -0
  431. package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api.md +1554 -0
  432. package/dist/serve/docs-ui/docs/pyric-cli-bridge/index.html +69 -0
  433. package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api/index.html +546 -0
  434. package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api.md +485 -0
  435. package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api/index.html +506 -0
  436. package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api.md +419 -0
  437. package/dist/serve/docs-ui/docs/pyric-cli-bridge.md +99 -0
  438. package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api/index.html +67 -0
  439. package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api.md +59 -0
  440. package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api/index.html +2355 -0
  441. package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api.md +2036 -0
  442. package/dist/serve/docs-ui/docs/pyric-cli-functions-rtdb-compat/index.html +112 -0
  443. package/dist/serve/docs-ui/docs/pyric-cli-functions-rtdb-compat.md +124 -0
  444. package/dist/serve/docs-ui/docs/pyric-cli-how-to-build-a-standalone-binary/index.html +91 -0
  445. package/dist/serve/docs-ui/docs/pyric-cli-how-to-build-a-standalone-binary.md +105 -0
  446. package/dist/serve/docs-ui/docs/pyric-cli-how-to-promote-sandbox-state-to-a-fixture/index.html +52 -0
  447. package/dist/serve/docs-ui/docs/pyric-cli-how-to-promote-sandbox-state-to-a-fixture.md +98 -0
  448. package/dist/serve/docs-ui/docs/pyric-cli-how-to-run-rtdb-onvaluecreated/index.html +66 -0
  449. package/dist/serve/docs-ui/docs/pyric-cli-how-to-run-rtdb-onvaluecreated.md +100 -0
  450. package/dist/serve/docs-ui/docs/pyric-cli-how-to-serve-persistence-and-multi-tab/index.html +228 -0
  451. package/dist/serve/docs-ui/docs/pyric-cli-how-to-serve-persistence-and-multi-tab.md +179 -0
  452. package/dist/serve/docs-ui/docs/pyric-cli-how-to-use-the-vite-plugin/index.html +341 -0
  453. package/dist/serve/docs-ui/docs/pyric-cli-how-to-use-the-vite-plugin.md +309 -0
  454. package/dist/serve/docs-ui/docs/pyric-cli-how-to-verify-against-a-captured-session/index.html +128 -0
  455. package/dist/serve/docs-ui/docs/pyric-cli-how-to-verify-against-a-captured-session.md +207 -0
  456. package/dist/serve/docs-ui/docs/pyric-cli-reference-cli/index.html +404 -0
  457. package/dist/serve/docs-ui/docs/pyric-cli-reference-cli.md +249 -0
  458. package/dist/serve/docs-ui/docs/pyric-cli-reference-package-and-resolution/index.html +93 -0
  459. package/dist/serve/docs-ui/docs/pyric-cli-reference-package-and-resolution.md +65 -0
  460. package/dist/serve/docs-ui/docs/pyric-cli-reference-verify/index.html +81 -0
  461. package/dist/serve/docs-ui/docs/pyric-cli-reference-verify.md +110 -0
  462. package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api/index.html +10 -0
  463. package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api.md +16 -0
  464. package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api/index.html +1044 -0
  465. package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api.md +952 -0
  466. package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api/index.html +5041 -0
  467. package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api.md +4739 -0
  468. package/dist/serve/docs-ui/docs/pyric-cli-tutorials-server-adoption/index.html +219 -0
  469. package/dist/serve/docs-ui/docs/pyric-cli-tutorials-server-adoption.md +251 -0
  470. package/dist/serve/docs-ui/docs/pyric-cli-tutorials-wire-claude-code/index.html +136 -0
  471. package/dist/serve/docs-ui/docs/pyric-cli-tutorials-wire-claude-code.md +217 -0
  472. package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api/index.html +926 -0
  473. package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api.md +586 -0
  474. package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api/index.html +102 -0
  475. package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api.md +76 -0
  476. package/dist/serve/docs-ui/docs/pyric-cli.md +42 -0
  477. package/dist/serve/docs-ui/docs/pyric-conformance-scores/index.html +180 -0
  478. package/dist/serve/docs-ui/docs/pyric-conformance-scores.md +184 -0
  479. package/dist/serve/docs-ui/docs/pyric-database/index.html +43 -0
  480. package/dist/serve/docs-ui/docs/pyric-database-compat/index.html +1224 -0
  481. package/dist/serve/docs-ui/docs/pyric-database-compat.md +1289 -0
  482. package/dist/serve/docs-ui/docs/pyric-database-explanation-rules-authoring-and-deploy-are-separate/index.html +16 -0
  483. package/dist/serve/docs-ui/docs/pyric-database-explanation-rules-authoring-and-deploy-are-separate.md +23 -0
  484. package/dist/serve/docs-ui/docs/pyric-database-reference-api/index.html +1851 -0
  485. package/dist/serve/docs-ui/docs/pyric-database-reference-api.md +1842 -0
  486. package/dist/serve/docs-ui/docs/pyric-database-reference-constraints/index.html +381 -0
  487. package/dist/serve/docs-ui/docs/pyric-database-reference-constraints.md +168 -0
  488. package/dist/serve/docs-ui/docs/pyric-database-reference-rules-tooling/index.html +218 -0
  489. package/dist/serve/docs-ui/docs/pyric-database-reference-rules-tooling.md +303 -0
  490. package/dist/serve/docs-ui/docs/pyric-database-tutorials-01-author-rtdb-rules-with-constraints/index.html +125 -0
  491. package/dist/serve/docs-ui/docs/pyric-database-tutorials-01-author-rtdb-rules-with-constraints.md +171 -0
  492. package/dist/serve/docs-ui/docs/pyric-database.md +26 -0
  493. package/dist/serve/docs-ui/docs/pyric-explanation-versioning-and-compatibility/index.html +40 -0
  494. package/dist/serve/docs-ui/docs/pyric-explanation-versioning-and-compatibility.md +68 -0
  495. package/dist/serve/docs-ui/docs/pyric-firestore/index.html +48 -0
  496. package/dist/serve/docs-ui/docs/pyric-firestore-compat/index.html +868 -0
  497. package/dist/serve/docs-ui/docs/pyric-firestore-compat.md +939 -0
  498. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-rules-tooling-is-separate/index.html +92 -0
  499. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-rules-tooling-is-separate.md +70 -0
  500. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-target-symbol-opacity/index.html +59 -0
  501. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-target-symbol-opacity.md +91 -0
  502. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-two-backends-one-surface/index.html +43 -0
  503. package/dist/serve/docs-ui/docs/pyric-firestore-explanation-two-backends-one-surface.md +58 -0
  504. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-migrate-from-firebase-firestore/index.html +58 -0
  505. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-migrate-from-firebase-firestore.md +86 -0
  506. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-pick-a-backend/index.html +52 -0
  507. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-pick-a-backend.md +83 -0
  508. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-run-a-transaction/index.html +42 -0
  509. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-run-a-transaction.md +59 -0
  510. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-onsnapshot/index.html +66 -0
  511. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-onsnapshot.md +96 -0
  512. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-sandbox-ops/index.html +61 -0
  513. package/dist/serve/docs-ui/docs/pyric-firestore-how-to-use-sandbox-ops.md +92 -0
  514. package/dist/serve/docs-ui/docs/pyric-firestore-reference-api/index.html +3623 -0
  515. package/dist/serve/docs-ui/docs/pyric-firestore-reference-api.md +3399 -0
  516. package/dist/serve/docs-ui/docs/pyric-firestore-reference-feature-matrix/index.html +80 -0
  517. package/dist/serve/docs-ui/docs/pyric-firestore-reference-feature-matrix.md +66 -0
  518. package/dist/serve/docs-ui/docs/pyric-firestore-reference-getfirestore/index.html +46 -0
  519. package/dist/serve/docs-ui/docs/pyric-firestore-reference-getfirestore.md +73 -0
  520. package/dist/serve/docs-ui/docs/pyric-firestore-reference-query-constraints/index.html +80 -0
  521. package/dist/serve/docs-ui/docs/pyric-firestore-reference-query-constraints.md +129 -0
  522. package/dist/serve/docs-ui/docs/pyric-firestore-reference-sandbox-ops/index.html +58 -0
  523. package/dist/serve/docs-ui/docs/pyric-firestore-reference-sandbox-ops.md +88 -0
  524. package/dist/serve/docs-ui/docs/pyric-firestore-reference-tool-factories/index.html +51 -0
  525. package/dist/serve/docs-ui/docs/pyric-firestore-reference-tool-factories.md +71 -0
  526. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-01-write-a-sandbox-demo/index.html +130 -0
  527. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-01-write-a-sandbox-demo.md +180 -0
  528. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-02-swap-to-prod-backend/index.html +59 -0
  529. package/dist/serve/docs-ui/docs/pyric-firestore-tutorials-02-swap-to-prod-backend.md +92 -0
  530. package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api/index.html +30 -0
  531. package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api.md +30 -0
  532. package/dist/serve/docs-ui/docs/pyric-firestore.md +72 -0
  533. package/dist/serve/docs-ui/docs/pyric-messaging-compat/index.html +300 -0
  534. package/dist/serve/docs-ui/docs/pyric-messaging-compat.md +321 -0
  535. package/dist/serve/docs-ui/docs/pyric-messaging-reference-api/index.html +508 -0
  536. package/dist/serve/docs-ui/docs/pyric-messaging-reference-api.md +374 -0
  537. package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api/index.html +482 -0
  538. package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api.md +348 -0
  539. package/dist/serve/docs-ui/docs/pyric-rules/index.html +87 -0
  540. package/dist/serve/docs-ui/docs/pyric-rules-compat/index.html +328 -0
  541. package/dist/serve/docs-ui/docs/pyric-rules-compat.md +347 -0
  542. package/dist/serve/docs-ui/docs/pyric-rules-explanation-agent-failure-modes/index.html +50 -0
  543. package/dist/serve/docs-ui/docs/pyric-rules-explanation-agent-failure-modes.md +78 -0
  544. package/dist/serve/docs-ui/docs/pyric-rules-explanation-lint-vs-validate-vs-simulate-vs-test/index.html +79 -0
  545. package/dist/serve/docs-ui/docs/pyric-rules-explanation-lint-vs-validate-vs-simulate-vs-test.md +69 -0
  546. package/dist/serve/docs-ui/docs/pyric-rules-explanation-runtime-budget-and-shared-gates/index.html +67 -0
  547. package/dist/serve/docs-ui/docs/pyric-rules-explanation-runtime-budget-and-shared-gates.md +75 -0
  548. package/dist/serve/docs-ui/docs/pyric-rules-explanation-sentinel-expression-engine/index.html +49 -0
  549. package/dist/serve/docs-ui/docs/pyric-rules-explanation-sentinel-expression-engine.md +74 -0
  550. package/dist/serve/docs-ui/docs/pyric-rules-explanation-simulator-vs-rules-test-api/index.html +95 -0
  551. package/dist/serve/docs-ui/docs/pyric-rules-explanation-simulator-vs-rules-test-api.md +80 -0
  552. package/dist/serve/docs-ui/docs/pyric-rules-explanation-the-2-plus-modules-extension/index.html +58 -0
  553. package/dist/serve/docs-ui/docs/pyric-rules-explanation-the-2-plus-modules-extension.md +79 -0
  554. package/dist/serve/docs-ui/docs/pyric-rules-explanation-value-wrappers-design/index.html +63 -0
  555. package/dist/serve/docs-ui/docs/pyric-rules-explanation-value-wrappers-design.md +84 -0
  556. package/dist/serve/docs-ui/docs/pyric-rules-explanation-why-this-package-exists/index.html +34 -0
  557. package/dist/serve/docs-ui/docs/pyric-rules-explanation-why-this-package-exists.md +43 -0
  558. package/dist/serve/docs-ui/docs/pyric-rules-how-to-compare-rulesets-for-weakening/index.html +55 -0
  559. package/dist/serve/docs-ui/docs/pyric-rules-how-to-compare-rulesets-for-weakening.md +77 -0
  560. package/dist/serve/docs-ui/docs/pyric-rules-how-to-inspect-rules-via-the-ast/index.html +90 -0
  561. package/dist/serve/docs-ui/docs/pyric-rules-how-to-inspect-rules-via-the-ast.md +129 -0
  562. package/dist/serve/docs-ui/docs/pyric-rules-how-to-lint-rules-source/index.html +55 -0
  563. package/dist/serve/docs-ui/docs/pyric-rules-how-to-lint-rules-source.md +84 -0
  564. package/dist/serve/docs-ui/docs/pyric-rules-how-to-pin-request-time/index.html +49 -0
  565. package/dist/serve/docs-ui/docs/pyric-rules-how-to-pin-request-time.md +64 -0
  566. package/dist/serve/docs-ui/docs/pyric-rules-how-to-register-tools-with-an-agent/index.html +61 -0
  567. package/dist/serve/docs-ui/docs/pyric-rules-how-to-register-tools-with-an-agent.md +87 -0
  568. package/dist/serve/docs-ui/docs/pyric-rules-how-to-resolve-module-imports/index.html +93 -0
  569. package/dist/serve/docs-ui/docs/pyric-rules-how-to-resolve-module-imports.md +105 -0
  570. package/dist/serve/docs-ui/docs/pyric-rules-how-to-simulate-rules-locally/index.html +89 -0
  571. package/dist/serve/docs-ui/docs/pyric-rules-how-to-simulate-rules-locally.md +134 -0
  572. package/dist/serve/docs-ui/docs/pyric-rules-how-to-test-rules-against-firebase/index.html +66 -0
  573. package/dist/serve/docs-ui/docs/pyric-rules-how-to-test-rules-against-firebase.md +102 -0
  574. package/dist/serve/docs-ui/docs/pyric-rules-reference-api/index.html +2629 -0
  575. package/dist/serve/docs-ui/docs/pyric-rules-reference-api.md +2213 -0
  576. package/dist/serve/docs-ui/docs/pyric-rules-reference-ast/index.html +85 -0
  577. package/dist/serve/docs-ui/docs/pyric-rules-reference-ast.md +121 -0
  578. package/dist/serve/docs-ui/docs/pyric-rules-reference-conformance-gaps/index.html +277 -0
  579. package/dist/serve/docs-ui/docs/pyric-rules-reference-conformance-gaps.md +360 -0
  580. package/dist/serve/docs-ui/docs/pyric-rules-reference-errors/index.html +76 -0
  581. package/dist/serve/docs-ui/docs/pyric-rules-reference-errors.md +123 -0
  582. package/dist/serve/docs-ui/docs/pyric-rules-reference-lint-rules/index.html +148 -0
  583. package/dist/serve/docs-ui/docs/pyric-rules-reference-lint-rules.md +159 -0
  584. package/dist/serve/docs-ui/docs/pyric-rules-reference-simulator-context/index.html +66 -0
  585. package/dist/serve/docs-ui/docs/pyric-rules-reference-simulator-context.md +104 -0
  586. package/dist/serve/docs-ui/docs/pyric-rules-reference-stdlib-modules/index.html +241 -0
  587. package/dist/serve/docs-ui/docs/pyric-rules-reference-stdlib-modules.md +143 -0
  588. package/dist/serve/docs-ui/docs/pyric-rules-reference-test-case-schema/index.html +94 -0
  589. package/dist/serve/docs-ui/docs/pyric-rules-reference-test-case-schema.md +121 -0
  590. package/dist/serve/docs-ui/docs/pyric-rules-reference-validator-findings/index.html +87 -0
  591. package/dist/serve/docs-ui/docs/pyric-rules-reference-validator-findings.md +117 -0
  592. package/dist/serve/docs-ui/docs/pyric-rules-reference-value-wrappers/index.html +102 -0
  593. package/dist/serve/docs-ui/docs/pyric-rules-reference-value-wrappers.md +152 -0
  594. package/dist/serve/docs-ui/docs/pyric-rules.md +93 -0
  595. package/dist/serve/docs-ui/docs/pyric-sandbox/index.html +67 -0
  596. package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api/index.html +120 -0
  597. package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api.md +110 -0
  598. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-every-op-is-a-request/index.html +141 -0
  599. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-every-op-is-a-request.md +161 -0
  600. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-identity-is-a-context/index.html +66 -0
  601. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-identity-is-a-context.md +110 -0
  602. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-internal-adapter-protocol/index.html +71 -0
  603. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-internal-adapter-protocol.md +111 -0
  604. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-listener-re-evaluation/index.html +56 -0
  605. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-listener-re-evaluation.md +82 -0
  606. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-local-backend-vs-firestore-offline/index.html +64 -0
  607. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-local-backend-vs-firestore-offline.md +56 -0
  608. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-adapters-are-siblings/index.html +92 -0
  609. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-adapters-are-siblings.md +90 -0
  610. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-this-package-exists/index.html +69 -0
  611. package/dist/serve/docs-ui/docs/pyric-sandbox-explanation-why-this-package-exists.md +57 -0
  612. package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api/index.html +202 -0
  613. package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api.md +134 -0
  614. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-multiple-isolated-sandboxes/index.html +63 -0
  615. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-multiple-isolated-sandboxes.md +89 -0
  616. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-observe-events/index.html +159 -0
  617. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-observe-events.md +168 -0
  618. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-pick-an-adapter/index.html +79 -0
  619. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-pick-an-adapter.md +75 -0
  620. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-replay-events/index.html +88 -0
  621. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-replay-events.md +92 -0
  622. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-reset-between-tests/index.html +68 -0
  623. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-reset-between-tests.md +92 -0
  624. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-seed-data-and-rules/index.html +91 -0
  625. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-seed-data-and-rules.md +122 -0
  626. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-switch-users/index.html +50 -0
  627. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-switch-users.md +78 -0
  628. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-use-admin-reads/index.html +54 -0
  629. package/dist/serve/docs-ui/docs/pyric-sandbox-how-to-use-admin-reads.md +85 -0
  630. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api/index.html +5019 -0
  631. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api.md +4060 -0
  632. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-divergences/index.html +125 -0
  633. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-divergences.md +151 -0
  634. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-error-codes/index.html +110 -0
  635. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-error-codes.md +118 -0
  636. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-internal-protocol/index.html +72 -0
  637. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-internal-protocol.md +109 -0
  638. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-and-context/index.html +90 -0
  639. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-and-context.md +140 -0
  640. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-event/index.html +146 -0
  641. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-sandbox-event.md +204 -0
  642. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-snapshot-and-admin/index.html +53 -0
  643. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-snapshot-and-admin.md +89 -0
  644. package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-01-your-first-sandbox-session/index.html +115 -0
  645. package/dist/serve/docs-ui/docs/pyric-sandbox-tutorials-01-your-first-sandbox-session.md +176 -0
  646. package/dist/serve/docs-ui/docs/pyric-sandbox.md +69 -0
  647. package/dist/serve/docs-ui/docs/pyric-storage/index.html +65 -0
  648. package/dist/serve/docs-ui/docs/pyric-storage-compat/index.html +676 -0
  649. package/dist/serve/docs-ui/docs/pyric-storage-compat.md +699 -0
  650. package/dist/serve/docs-ui/docs/pyric-storage-explanation-implementation-scope/index.html +52 -0
  651. package/dist/serve/docs-ui/docs/pyric-storage-explanation-implementation-scope.md +85 -0
  652. package/dist/serve/docs-ui/docs/pyric-storage-explanation-session-archive-use-case/index.html +58 -0
  653. package/dist/serve/docs-ui/docs/pyric-storage-explanation-session-archive-use-case.md +82 -0
  654. package/dist/serve/docs-ui/docs/pyric-storage-explanation-why-indexeddb/index.html +50 -0
  655. package/dist/serve/docs-ui/docs/pyric-storage-explanation-why-indexeddb.md +82 -0
  656. package/dist/serve/docs-ui/docs/pyric-storage-how-to-enforce-rules/index.html +120 -0
  657. package/dist/serve/docs-ui/docs/pyric-storage-how-to-enforce-rules.md +127 -0
  658. package/dist/serve/docs-ui/docs/pyric-storage-how-to-list-and-delete/index.html +53 -0
  659. package/dist/serve/docs-ui/docs/pyric-storage-how-to-list-and-delete.md +86 -0
  660. package/dist/serve/docs-ui/docs/pyric-storage-how-to-switch-backends/index.html +43 -0
  661. package/dist/serve/docs-ui/docs/pyric-storage-how-to-switch-backends.md +65 -0
  662. package/dist/serve/docs-ui/docs/pyric-storage-how-to-test-rule-expressions/index.html +70 -0
  663. package/dist/serve/docs-ui/docs/pyric-storage-how-to-test-rule-expressions.md +88 -0
  664. package/dist/serve/docs-ui/docs/pyric-storage-reference-api/index.html +2120 -0
  665. package/dist/serve/docs-ui/docs/pyric-storage-reference-api.md +1687 -0
  666. package/dist/serve/docs-ui/docs/pyric-storage-reference-conformance-gaps/index.html +137 -0
  667. package/dist/serve/docs-ui/docs/pyric-storage-reference-conformance-gaps.md +171 -0
  668. package/dist/serve/docs-ui/docs/pyric-storage-reference-error-codes/index.html +37 -0
  669. package/dist/serve/docs-ui/docs/pyric-storage-reference-error-codes.md +57 -0
  670. package/dist/serve/docs-ui/docs/pyric-storage-reference-rules-subset/index.html +96 -0
  671. package/dist/serve/docs-ui/docs/pyric-storage-reference-rules-subset.md +134 -0
  672. package/dist/serve/docs-ui/docs/pyric-storage-reference-storage-options/index.html +39 -0
  673. package/dist/serve/docs-ui/docs/pyric-storage-reference-storage-options.md +61 -0
  674. package/dist/serve/docs-ui/docs/pyric-storage.md +67 -0
  675. package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api/index.html +638 -0
  676. package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api.md +430 -0
  677. package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +813 -0
  678. package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api.md +634 -0
  679. package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api/index.html +1708 -0
  680. package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api.md +1300 -0
  681. package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api/index.html +177 -0
  682. package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api.md +111 -0
  683. package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api/index.html +1542 -0
  684. package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api.md +903 -0
  685. package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +1024 -0
  686. package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api.md +640 -0
  687. package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api/index.html +2753 -0
  688. package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api.md +2171 -0
  689. package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api/index.html +1005 -0
  690. package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api.md +693 -0
  691. package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api/index.html +1388 -0
  692. package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api.md +1340 -0
  693. package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +131 -0
  694. package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api.md +76 -0
  695. package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api/index.html +648 -0
  696. package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api.md +508 -0
  697. package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +1457 -0
  698. package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api.md +1029 -0
  699. package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api/index.html +2476 -0
  700. package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api.md +1919 -0
  701. package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +1241 -0
  702. package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api.md +817 -0
  703. package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api/index.html +2289 -0
  704. package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api.md +1489 -0
  705. package/dist/serve/docs-ui/docs/read-a-denial/index.html +40 -0
  706. package/dist/serve/docs-ui/docs/read-a-denial.md +62 -0
  707. package/dist/serve/docs-ui/docs/receive-messages/index.html +28 -0
  708. package/dist/serve/docs-ui/docs/receive-messages.md +43 -0
  709. package/dist/serve/docs-ui/docs/rtdb-rules-in-typescript/index.html +67 -0
  710. package/dist/serve/docs-ui/docs/rtdb-rules-in-typescript.md +101 -0
  711. package/dist/serve/docs-ui/docs/rules-patterns/index.html +68 -0
  712. package/dist/serve/docs-ui/docs/rules-patterns.md +104 -0
  713. package/dist/serve/docs-ui/docs/rules-standard-library/index.html +87 -0
  714. package/dist/serve/docs-ui/docs/rules-standard-library.md +93 -0
  715. package/dist/serve/docs-ui/docs/run-ai-logic-locally/index.html +27 -0
  716. package/dist/serve/docs-ui/docs/run-ai-logic-locally.md +43 -0
  717. package/dist/serve/docs-ui/docs/secure-it-with-rules/index.html +69 -0
  718. package/dist/serve/docs-ui/docs/secure-it-with-rules.md +101 -0
  719. package/dist/serve/docs-ui/docs/see-whats-happening/index.html +73 -0
  720. package/dist/serve/docs-ui/docs/see-whats-happening.md +77 -0
  721. package/dist/serve/docs-ui/docs/set-up-the-project/index.html +14 -0
  722. package/dist/serve/docs-ui/docs/set-up-the-project.md +19 -0
  723. package/dist/serve/docs-ui/docs/set-up-your-agent/index.html +42 -0
  724. package/dist/serve/docs-ui/docs/set-up-your-agent.md +86 -0
  725. package/dist/serve/docs-ui/docs/shape-your-data/index.html +44 -0
  726. package/dist/serve/docs-ui/docs/shape-your-data.md +88 -0
  727. package/dist/serve/docs-ui/docs/ship-to-production/index.html +36 -0
  728. package/dist/serve/docs-ui/docs/ship-to-production.md +80 -0
  729. package/dist/serve/docs-ui/docs/sign-in-and-manage-users/index.html +31 -0
  730. package/dist/serve/docs-ui/docs/sign-in-and-manage-users.md +50 -0
  731. package/dist/serve/docs-ui/docs/simulate-and-lint/index.html +95 -0
  732. package/dist/serve/docs-ui/docs/simulate-and-lint.md +99 -0
  733. package/dist/serve/docs-ui/docs/skills/index.html +20 -0
  734. package/dist/serve/docs-ui/docs/skills.md +34 -0
  735. package/dist/serve/docs-ui/docs/start-building/index.html +32 -0
  736. package/dist/serve/docs-ui/docs/start-building.md +64 -0
  737. package/dist/serve/docs-ui/docs/store-and-query-data/index.html +16 -0
  738. package/dist/serve/docs-ui/docs/store-and-query-data.md +33 -0
  739. package/dist/serve/docs-ui/docs/store-files/index.html +13 -0
  740. package/dist/serve/docs-ui/docs/store-files.md +25 -0
  741. package/dist/serve/docs-ui/docs/sync-realtime-data/index.html +15 -0
  742. package/dist/serve/docs-ui/docs/sync-realtime-data.md +27 -0
  743. package/dist/serve/docs-ui/docs/test-in-node/index.html +74 -0
  744. package/dist/serve/docs-ui/docs/test-in-node.md +100 -0
  745. package/dist/serve/docs-ui/docs/ui/index.html +76 -0
  746. package/dist/serve/docs-ui/docs/ui-auth-authsigninhelper/index.html +194 -0
  747. package/dist/serve/docs-ui/docs/ui-auth-authsigninhelper.md +114 -0
  748. package/dist/serve/docs-ui/docs/ui-auth-authusers/index.html +263 -0
  749. package/dist/serve/docs-ui/docs/ui-auth-authusers.md +183 -0
  750. package/dist/serve/docs-ui/docs/ui-firestore-collectionlist/index.html +92 -0
  751. package/dist/serve/docs-ui/docs/ui-firestore-collectionlist.md +79 -0
  752. package/dist/serve/docs-ui/docs/ui-firestore-deletewithconfirm/index.html +128 -0
  753. package/dist/serve/docs-ui/docs/ui-firestore-deletewithconfirm.md +104 -0
  754. package/dist/serve/docs-ui/docs/ui-firestore-documenteditor/index.html +154 -0
  755. package/dist/serve/docs-ui/docs/ui-firestore-documenteditor.md +117 -0
  756. package/dist/serve/docs-ui/docs/ui-firestore-documentlist/index.html +132 -0
  757. package/dist/serve/docs-ui/docs/ui-firestore-documentlist.md +92 -0
  758. package/dist/serve/docs-ui/docs/ui-firestore-documentpreview/index.html +159 -0
  759. package/dist/serve/docs-ui/docs/ui-firestore-documentpreview.md +84 -0
  760. package/dist/serve/docs-ui/docs/ui-firestore-querybuilder/index.html +104 -0
  761. package/dist/serve/docs-ui/docs/ui-firestore-querybuilder.md +103 -0
  762. package/dist/serve/docs-ui/docs/ui-firestore-referencepicker/index.html +113 -0
  763. package/dist/serve/docs-ui/docs/ui-firestore-referencepicker.md +93 -0
  764. package/dist/serve/docs-ui/docs/ui-primitives-badge/index.html +56 -0
  765. package/dist/serve/docs-ui/docs/ui-primitives-badge.md +40 -0
  766. package/dist/serve/docs-ui/docs/ui-primitives-confirmdialog/index.html +140 -0
  767. package/dist/serve/docs-ui/docs/ui-primitives-confirmdialog.md +108 -0
  768. package/dist/serve/docs-ui/docs/ui-primitives-copybutton/index.html +58 -0
  769. package/dist/serve/docs-ui/docs/ui-primitives-copybutton.md +37 -0
  770. package/dist/serve/docs-ui/docs/ui-primitives-jsonview/index.html +58 -0
  771. package/dist/serve/docs-ui/docs/ui-primitives-jsonview.md +47 -0
  772. package/dist/serve/docs-ui/docs/ui-primitives-segmentedcontrol/index.html +70 -0
  773. package/dist/serve/docs-ui/docs/ui-primitives-segmentedcontrol.md +50 -0
  774. package/dist/serve/docs-ui/docs/ui-primitives-toast/index.html +87 -0
  775. package/dist/serve/docs-ui/docs/ui-primitives-toast.md +82 -0
  776. package/dist/serve/docs-ui/docs/ui-primitives-virtuallist/index.html +85 -0
  777. package/dist/serve/docs-ui/docs/ui-primitives-virtuallist.md +54 -0
  778. package/dist/serve/docs-ui/docs/ui-storage/index.html +150 -0
  779. package/dist/serve/docs-ui/docs/ui-storage-deleteselectionwithconfirm/index.html +126 -0
  780. package/dist/serve/docs-ui/docs/ui-storage-deleteselectionwithconfirm.md +88 -0
  781. package/dist/serve/docs-ui/docs/ui-storage-objectbrowser/index.html +137 -0
  782. package/dist/serve/docs-ui/docs/ui-storage-objectbrowser.md +90 -0
  783. package/dist/serve/docs-ui/docs/ui-storage-objectinspector/index.html +139 -0
  784. package/dist/serve/docs-ui/docs/ui-storage-objectinspector.md +93 -0
  785. package/dist/serve/docs-ui/docs/ui-storage-pathbreadcrumb/index.html +72 -0
  786. package/dist/serve/docs-ui/docs/ui-storage-pathbreadcrumb.md +57 -0
  787. package/dist/serve/docs-ui/docs/ui-storage-rules-aware-affordances/index.html +60 -0
  788. package/dist/serve/docs-ui/docs/ui-storage-rules-aware-affordances.md +52 -0
  789. package/dist/serve/docs-ui/docs/ui-storage-uploaddropzone/index.html +93 -0
  790. package/dist/serve/docs-ui/docs/ui-storage-uploaddropzone.md +78 -0
  791. package/dist/serve/docs-ui/docs/ui-storage-usestoragerulesgate/index.html +144 -0
  792. package/dist/serve/docs-ui/docs/ui-storage-usestoragerulesgate.md +101 -0
  793. package/dist/serve/docs-ui/docs/ui-storage.md +165 -0
  794. package/dist/serve/docs-ui/docs/ui-traffic/index.html +88 -0
  795. package/dist/serve/docs-ui/docs/ui-traffic-ruleheatmap/index.html +79 -0
  796. package/dist/serve/docs-ui/docs/ui-traffic-ruleheatmap.md +60 -0
  797. package/dist/serve/docs-ui/docs/ui-traffic-trafficdetail/index.html +78 -0
  798. package/dist/serve/docs-ui/docs/ui-traffic-trafficdetail.md +59 -0
  799. package/dist/serve/docs-ui/docs/ui-traffic-trafficlog/index.html +118 -0
  800. package/dist/serve/docs-ui/docs/ui-traffic-trafficlog.md +69 -0
  801. package/dist/serve/docs-ui/docs/ui-traffic-trafficstats/index.html +51 -0
  802. package/dist/serve/docs-ui/docs/ui-traffic-trafficstats.md +46 -0
  803. package/dist/serve/docs-ui/docs/ui-traffic.md +102 -0
  804. package/dist/serve/docs-ui/docs/ui.md +90 -0
  805. package/dist/serve/docs-ui/docs/watch-and-review/index.html +25 -0
  806. package/dist/serve/docs-ui/docs/watch-and-review.md +40 -0
  807. package/dist/serve/docs-ui/docs/what-your-agent-can-do/index.html +81 -0
  808. package/dist/serve/docs-ui/docs/what-your-agent-can-do.md +78 -0
  809. package/dist/serve/docs-ui/docs/whats-experimental/index.html +22 -0
  810. package/dist/serve/docs-ui/docs/whats-experimental.md +33 -0
  811. package/dist/serve/docs-ui/docs/whats-possible/index.html +63 -0
  812. package/dist/serve/docs-ui/docs/whats-possible.md +53 -0
  813. package/dist/serve/docs-ui/docs/which-data-service/index.html +8 -0
  814. package/dist/serve/docs-ui/docs/which-data-service.md +11 -0
  815. package/dist/serve/docs-ui/docs/write-a-rules-test-suite/index.html +85 -0
  816. package/dist/serve/docs-ui/docs/write-a-rules-test-suite.md +119 -0
  817. package/dist/serve/docs-ui/index.html +1 -0
  818. package/dist/serve/docs-ui/llms.txt +308 -0
  819. package/dist/serve/entries/ai.d.ts +4 -0
  820. package/dist/serve/entries/ai.d.ts.map +1 -0
  821. package/dist/serve/entries/ai.js +184 -0
  822. package/dist/serve/entries/ai.js.map +1 -0
  823. package/dist/serve/entries/app-backend.d.ts +2 -0
  824. package/dist/serve/entries/app-backend.d.ts.map +1 -0
  825. package/dist/serve/entries/app-backend.js +4 -0
  826. package/dist/serve/entries/app-backend.js.map +1 -0
  827. package/dist/serve/entries/app-client.d.ts +5 -0
  828. package/dist/serve/entries/app-client.d.ts.map +1 -0
  829. package/dist/serve/entries/app-client.js +23 -0
  830. package/dist/serve/entries/app-client.js.map +1 -0
  831. package/dist/serve/entries/app-session-store.d.ts +14 -0
  832. package/dist/serve/entries/app-session-store.d.ts.map +1 -0
  833. package/dist/serve/entries/app-session-store.js +37 -0
  834. package/dist/serve/entries/app-session-store.js.map +1 -0
  835. package/dist/serve/entries/app.d.ts +2 -0
  836. package/dist/serve/entries/app.d.ts.map +1 -0
  837. package/dist/serve/entries/app.js +10 -0
  838. package/dist/serve/entries/app.js.map +1 -0
  839. package/dist/serve/entries/auth-helper-core.d.ts +52 -0
  840. package/dist/serve/entries/auth-helper-core.d.ts.map +1 -0
  841. package/dist/serve/entries/auth-helper-core.js +118 -0
  842. package/dist/serve/entries/auth-helper-core.js.map +1 -0
  843. package/dist/serve/entries/auth-helper-dom.d.ts +14 -0
  844. package/dist/serve/entries/auth-helper-dom.d.ts.map +1 -0
  845. package/dist/serve/entries/auth-helper-dom.js +116 -0
  846. package/dist/serve/entries/auth-helper-dom.js.map +1 -0
  847. package/dist/serve/entries/auth-helper-runtime.d.ts +5 -0
  848. package/dist/serve/entries/auth-helper-runtime.d.ts.map +1 -0
  849. package/dist/serve/entries/auth-helper-runtime.js +11 -0
  850. package/dist/serve/entries/auth-helper-runtime.js.map +1 -0
  851. package/dist/serve/entries/auth.d.ts +77 -0
  852. package/dist/serve/entries/auth.d.ts.map +1 -0
  853. package/dist/serve/entries/auth.js +201 -0
  854. package/dist/serve/entries/auth.js.map +1 -0
  855. package/dist/serve/entries/bridge-url.d.ts +25 -0
  856. package/dist/serve/entries/bridge-url.d.ts.map +1 -0
  857. package/dist/serve/entries/bridge-url.js +30 -0
  858. package/dist/serve/entries/bridge-url.js.map +1 -0
  859. package/dist/serve/entries/database.d.ts +46 -0
  860. package/dist/serve/entries/database.d.ts.map +1 -0
  861. package/dist/serve/entries/database.js +80 -0
  862. package/dist/serve/entries/database.js.map +1 -0
  863. package/dist/serve/entries/firestore.d.ts +104 -0
  864. package/dist/serve/entries/firestore.d.ts.map +1 -0
  865. package/dist/serve/entries/firestore.js +202 -0
  866. package/dist/serve/entries/firestore.js.map +1 -0
  867. package/dist/serve/entries/init.d.ts +2 -0
  868. package/dist/serve/entries/init.d.ts.map +1 -0
  869. package/dist/serve/entries/init.js +40 -0
  870. package/dist/serve/entries/init.js.map +1 -0
  871. package/dist/serve/entries/keepalive.d.ts +20 -0
  872. package/dist/serve/entries/keepalive.d.ts.map +1 -0
  873. package/dist/serve/entries/keepalive.js +38 -0
  874. package/dist/serve/entries/keepalive.js.map +1 -0
  875. package/dist/serve/entries/messaging-sw.d.ts +10 -0
  876. package/dist/serve/entries/messaging-sw.d.ts.map +1 -0
  877. package/dist/serve/entries/messaging-sw.js +36 -0
  878. package/dist/serve/entries/messaging-sw.js.map +1 -0
  879. package/dist/serve/entries/messaging.d.ts +11 -0
  880. package/dist/serve/entries/messaging.d.ts.map +1 -0
  881. package/dist/serve/entries/messaging.js +53 -0
  882. package/dist/serve/entries/messaging.js.map +1 -0
  883. package/dist/serve/entries/runtime.d.ts +46 -0
  884. package/dist/serve/entries/runtime.d.ts.map +1 -0
  885. package/dist/serve/entries/runtime.js +435 -0
  886. package/dist/serve/entries/runtime.js.map +1 -0
  887. package/dist/serve/entries/session-store.d.ts +48 -0
  888. package/dist/serve/entries/session-store.d.ts.map +1 -0
  889. package/dist/serve/entries/session-store.js +82 -0
  890. package/dist/serve/entries/session-store.js.map +1 -0
  891. package/dist/serve/entries/storage.d.ts +25 -0
  892. package/dist/serve/entries/storage.d.ts.map +1 -0
  893. package/dist/serve/entries/storage.js +61 -0
  894. package/dist/serve/entries/storage.js.map +1 -0
  895. package/dist/serve/entries/tab-sync-wiring.d.ts +88 -0
  896. package/dist/serve/entries/tab-sync-wiring.d.ts.map +1 -0
  897. package/dist/serve/entries/tab-sync-wiring.js +217 -0
  898. package/dist/serve/entries/tab-sync-wiring.js.map +1 -0
  899. package/dist/serve/entries/worker-runtime.d.ts +10 -0
  900. package/dist/serve/entries/worker-runtime.d.ts.map +1 -0
  901. package/dist/serve/entries/worker-runtime.js +59 -0
  902. package/dist/serve/entries/worker-runtime.js.map +1 -0
  903. package/dist/serve/init-payload.d.ts +21 -0
  904. package/dist/serve/init-payload.d.ts.map +1 -0
  905. package/dist/serve/init-payload.js +2 -0
  906. package/dist/serve/init-payload.js.map +1 -0
  907. package/dist/serve/namespace.d.ts +73 -0
  908. package/dist/serve/namespace.d.ts.map +1 -0
  909. package/dist/serve/namespace.js +470 -0
  910. package/dist/serve/namespace.js.map +1 -0
  911. package/dist/serve/open-browser.d.ts +23 -0
  912. package/dist/serve/open-browser.d.ts.map +1 -0
  913. package/dist/serve/open-browser.js +58 -0
  914. package/dist/serve/open-browser.js.map +1 -0
  915. package/dist/serve/rules.d.ts +77 -0
  916. package/dist/serve/rules.d.ts.map +1 -0
  917. package/dist/serve/rules.js +202 -0
  918. package/dist/serve/rules.js.map +1 -0
  919. package/dist/serve/sandbox-marker.d.ts +9 -0
  920. package/dist/serve/sandbox-marker.d.ts.map +1 -0
  921. package/dist/serve/sandbox-marker.js +31 -0
  922. package/dist/serve/sandbox-marker.js.map +1 -0
  923. package/dist/serve/server.d.ts +135 -0
  924. package/dist/serve/server.d.ts.map +1 -0
  925. package/dist/serve/server.js +328 -0
  926. package/dist/serve/server.js.map +1 -0
  927. package/dist/serve/standalone-assets.d.ts +67 -0
  928. package/dist/serve/standalone-assets.d.ts.map +1 -0
  929. package/dist/serve/standalone-assets.js +134 -0
  930. package/dist/serve/standalone-assets.js.map +1 -0
  931. package/dist/serve/state-store.d.ts +45 -0
  932. package/dist/serve/state-store.d.ts.map +1 -0
  933. package/dist/serve/state-store.js +120 -0
  934. package/dist/serve/state-store.js.map +1 -0
  935. package/dist/serve/studio/disk-project-store.d.ts +9 -0
  936. package/dist/serve/studio/disk-project-store.d.ts.map +1 -0
  937. package/dist/serve/studio/disk-project-store.js +173 -0
  938. package/dist/serve/studio/disk-project-store.js.map +1 -0
  939. package/dist/serve/studio/disk-workspace.d.ts +14 -0
  940. package/dist/serve/studio/disk-workspace.d.ts.map +1 -0
  941. package/dist/serve/studio/disk-workspace.js +152 -0
  942. package/dist/serve/studio/disk-workspace.js.map +1 -0
  943. package/dist/serve/studio/index.d.ts +10 -0
  944. package/dist/serve/studio/index.d.ts.map +1 -0
  945. package/dist/serve/studio/index.js +9 -0
  946. package/dist/serve/studio/index.js.map +1 -0
  947. package/dist/serve/studio/routes.d.ts +40 -0
  948. package/dist/serve/studio/routes.d.ts.map +1 -0
  949. package/dist/serve/studio/routes.js +182 -0
  950. package/dist/serve/studio/routes.js.map +1 -0
  951. package/dist/serve/studio/store-types.d.ts +45 -0
  952. package/dist/serve/studio/store-types.d.ts.map +1 -0
  953. package/dist/serve/studio/store-types.js +11 -0
  954. package/dist/serve/studio/store-types.js.map +1 -0
  955. package/dist/serve/studio-ui/assets/RulesCodeEditor-BZpD57II.js +23 -0
  956. package/dist/serve/studio-ui/assets/index-Bsa-TQNK.css +1 -0
  957. package/dist/serve/studio-ui/assets/index-DGaVuOhE.js +1211 -0
  958. package/dist/serve/studio-ui/assets/seed-CTmn6YuO.js +2 -0
  959. package/dist/serve/studio-ui/index.html +32 -0
  960. package/dist/serve/studio-ui/pyric-logo.svg +76 -0
  961. package/dist/serve/vite-plugin.d.ts +57 -0
  962. package/dist/serve/vite-plugin.d.ts.map +1 -0
  963. package/dist/serve/vite-plugin.js +658 -0
  964. package/dist/serve/vite-plugin.js.map +1 -0
  965. package/dist/serve/worker/client/admin-firestore.d.ts +18 -0
  966. package/dist/serve/worker/client/admin-firestore.d.ts.map +1 -0
  967. package/dist/serve/worker/client/admin-firestore.js +26 -0
  968. package/dist/serve/worker/client/admin-firestore.js.map +1 -0
  969. package/dist/serve/worker/client/ai.d.ts +31 -0
  970. package/dist/serve/worker/client/ai.d.ts.map +1 -0
  971. package/dist/serve/worker/client/ai.js +89 -0
  972. package/dist/serve/worker/client/ai.js.map +1 -0
  973. package/dist/serve/worker/client/auth.d.ts +168 -0
  974. package/dist/serve/worker/client/auth.d.ts.map +1 -0
  975. package/dist/serve/worker/client/auth.js +322 -0
  976. package/dist/serve/worker/client/auth.js.map +1 -0
  977. package/dist/serve/worker/client/connection.d.ts +80 -0
  978. package/dist/serve/worker/client/connection.d.ts.map +1 -0
  979. package/dist/serve/worker/client/connection.js +148 -0
  980. package/dist/serve/worker/client/connection.js.map +1 -0
  981. package/dist/serve/worker/client/core.d.ts +109 -0
  982. package/dist/serve/worker/client/core.d.ts.map +1 -0
  983. package/dist/serve/worker/client/core.js +248 -0
  984. package/dist/serve/worker/client/core.js.map +1 -0
  985. package/dist/serve/worker/client/disconnect.d.ts +7 -0
  986. package/dist/serve/worker/client/disconnect.d.ts.map +1 -0
  987. package/dist/serve/worker/client/disconnect.js +26 -0
  988. package/dist/serve/worker/client/disconnect.js.map +1 -0
  989. package/dist/serve/worker/client/firestore-reads.d.ts +49 -0
  990. package/dist/serve/worker/client/firestore-reads.d.ts.map +1 -0
  991. package/dist/serve/worker/client/firestore-reads.js +139 -0
  992. package/dist/serve/worker/client/firestore-reads.js.map +1 -0
  993. package/dist/serve/worker/client/firestore-refs.d.ts +54 -0
  994. package/dist/serve/worker/client/firestore-refs.d.ts.map +1 -0
  995. package/dist/serve/worker/client/firestore-refs.js +167 -0
  996. package/dist/serve/worker/client/firestore-refs.js.map +1 -0
  997. package/dist/serve/worker/client/firestore-writes.d.ts +70 -0
  998. package/dist/serve/worker/client/firestore-writes.d.ts.map +1 -0
  999. package/dist/serve/worker/client/firestore-writes.js +169 -0
  1000. package/dist/serve/worker/client/firestore-writes.js.map +1 -0
  1001. package/dist/serve/worker/client/handles.d.ts +73 -0
  1002. package/dist/serve/worker/client/handles.d.ts.map +1 -0
  1003. package/dist/serve/worker/client/handles.js +4 -0
  1004. package/dist/serve/worker/client/handles.js.map +1 -0
  1005. package/dist/serve/worker/client/messaging.d.ts +16 -0
  1006. package/dist/serve/worker/client/messaging.d.ts.map +1 -0
  1007. package/dist/serve/worker/client/messaging.js +60 -0
  1008. package/dist/serve/worker/client/messaging.js.map +1 -0
  1009. package/dist/serve/worker/client/presence.d.ts +43 -0
  1010. package/dist/serve/worker/client/presence.d.ts.map +1 -0
  1011. package/dist/serve/worker/client/presence.js +132 -0
  1012. package/dist/serve/worker/client/presence.js.map +1 -0
  1013. package/dist/serve/worker/client/rtdb.d.ts +36 -0
  1014. package/dist/serve/worker/client/rtdb.d.ts.map +1 -0
  1015. package/dist/serve/worker/client/rtdb.js +241 -0
  1016. package/dist/serve/worker/client/rtdb.js.map +1 -0
  1017. package/dist/serve/worker/client/rules.d.ts +24 -0
  1018. package/dist/serve/worker/client/rules.d.ts.map +1 -0
  1019. package/dist/serve/worker/client/rules.js +44 -0
  1020. package/dist/serve/worker/client/rules.js.map +1 -0
  1021. package/dist/serve/worker/client/service-worker-connection.d.ts +3 -0
  1022. package/dist/serve/worker/client/service-worker-connection.d.ts.map +1 -0
  1023. package/dist/serve/worker/client/service-worker-connection.js +53 -0
  1024. package/dist/serve/worker/client/service-worker-connection.js.map +1 -0
  1025. package/dist/serve/worker/client/snapshots.d.ts +32 -0
  1026. package/dist/serve/worker/client/snapshots.d.ts.map +1 -0
  1027. package/dist/serve/worker/client/snapshots.js +46 -0
  1028. package/dist/serve/worker/client/snapshots.js.map +1 -0
  1029. package/dist/serve/worker/client/storage.d.ts +64 -0
  1030. package/dist/serve/worker/client/storage.d.ts.map +1 -0
  1031. package/dist/serve/worker/client/storage.js +125 -0
  1032. package/dist/serve/worker/client/storage.js.map +1 -0
  1033. package/dist/serve/worker/client/studio.d.ts +32 -0
  1034. package/dist/serve/worker/client/studio.d.ts.map +1 -0
  1035. package/dist/serve/worker/client/studio.js +61 -0
  1036. package/dist/serve/worker/client/studio.js.map +1 -0
  1037. package/dist/serve/worker/client.d.ts +43 -0
  1038. package/dist/serve/worker/client.d.ts.map +1 -0
  1039. package/dist/serve/worker/client.js +44 -0
  1040. package/dist/serve/worker/client.js.map +1 -0
  1041. package/dist/serve/worker/entry.d.ts +40 -0
  1042. package/dist/serve/worker/entry.d.ts.map +1 -0
  1043. package/dist/serve/worker/entry.js +144 -0
  1044. package/dist/serve/worker/entry.js.map +1 -0
  1045. package/dist/serve/worker/host/admin-firestore.d.ts +17 -0
  1046. package/dist/serve/worker/host/admin-firestore.d.ts.map +1 -0
  1047. package/dist/serve/worker/host/admin-firestore.js +92 -0
  1048. package/dist/serve/worker/host/admin-firestore.js.map +1 -0
  1049. package/dist/serve/worker/host/connection.d.ts +40 -0
  1050. package/dist/serve/worker/host/connection.d.ts.map +1 -0
  1051. package/dist/serve/worker/host/connection.js +153 -0
  1052. package/dist/serve/worker/host/connection.js.map +1 -0
  1053. package/dist/serve/worker/host/core.d.ts +159 -0
  1054. package/dist/serve/worker/host/core.d.ts.map +1 -0
  1055. package/dist/serve/worker/host/core.js +296 -0
  1056. package/dist/serve/worker/host/core.js.map +1 -0
  1057. package/dist/serve/worker/host/dispatch.d.ts +34 -0
  1058. package/dist/serve/worker/host/dispatch.d.ts.map +1 -0
  1059. package/dist/serve/worker/host/dispatch.js +267 -0
  1060. package/dist/serve/worker/host/dispatch.js.map +1 -0
  1061. package/dist/serve/worker/host/firestore-reads.d.ts +17 -0
  1062. package/dist/serve/worker/host/firestore-reads.d.ts.map +1 -0
  1063. package/dist/serve/worker/host/firestore-reads.js +108 -0
  1064. package/dist/serve/worker/host/firestore-reads.js.map +1 -0
  1065. package/dist/serve/worker/host/firestore-writes.d.ts +37 -0
  1066. package/dist/serve/worker/host/firestore-writes.d.ts.map +1 -0
  1067. package/dist/serve/worker/host/firestore-writes.js +409 -0
  1068. package/dist/serve/worker/host/firestore-writes.js.map +1 -0
  1069. package/dist/serve/worker/host/presence.d.ts +38 -0
  1070. package/dist/serve/worker/host/presence.d.ts.map +1 -0
  1071. package/dist/serve/worker/host/presence.js +280 -0
  1072. package/dist/serve/worker/host/presence.js.map +1 -0
  1073. package/dist/serve/worker/host/rtdb.d.ts +18 -0
  1074. package/dist/serve/worker/host/rtdb.d.ts.map +1 -0
  1075. package/dist/serve/worker/host/rtdb.js +128 -0
  1076. package/dist/serve/worker/host/rtdb.js.map +1 -0
  1077. package/dist/serve/worker/host/rules.d.ts +17 -0
  1078. package/dist/serve/worker/host/rules.d.ts.map +1 -0
  1079. package/dist/serve/worker/host/rules.js +118 -0
  1080. package/dist/serve/worker/host/rules.js.map +1 -0
  1081. package/dist/serve/worker/host/storage.d.ts +19 -0
  1082. package/dist/serve/worker/host/storage.d.ts.map +1 -0
  1083. package/dist/serve/worker/host/storage.js +260 -0
  1084. package/dist/serve/worker/host/storage.js.map +1 -0
  1085. package/dist/serve/worker/host/studio.d.ts +13 -0
  1086. package/dist/serve/worker/host/studio.d.ts.map +1 -0
  1087. package/dist/serve/worker/host/studio.js +30 -0
  1088. package/dist/serve/worker/host/studio.js.map +1 -0
  1089. package/dist/serve/worker/host/subscriptions.d.ts +21 -0
  1090. package/dist/serve/worker/host/subscriptions.d.ts.map +1 -0
  1091. package/dist/serve/worker/host/subscriptions.js +162 -0
  1092. package/dist/serve/worker/host/subscriptions.js.map +1 -0
  1093. package/dist/serve/worker/host-ai.d.ts +59 -0
  1094. package/dist/serve/worker/host-ai.d.ts.map +1 -0
  1095. package/dist/serve/worker/host-ai.js +158 -0
  1096. package/dist/serve/worker/host-ai.js.map +1 -0
  1097. package/dist/serve/worker/host-auth.d.ts +47 -0
  1098. package/dist/serve/worker/host-auth.d.ts.map +1 -0
  1099. package/dist/serve/worker/host-auth.js +464 -0
  1100. package/dist/serve/worker/host-auth.js.map +1 -0
  1101. package/dist/serve/worker/host-context.d.ts +220 -0
  1102. package/dist/serve/worker/host-context.d.ts.map +1 -0
  1103. package/dist/serve/worker/host-context.js +45 -0
  1104. package/dist/serve/worker/host-context.js.map +1 -0
  1105. package/dist/serve/worker/host-events.d.ts +21 -0
  1106. package/dist/serve/worker/host-events.d.ts.map +1 -0
  1107. package/dist/serve/worker/host-events.js +87 -0
  1108. package/dist/serve/worker/host-events.js.map +1 -0
  1109. package/dist/serve/worker/host-messaging.d.ts +60 -0
  1110. package/dist/serve/worker/host-messaging.d.ts.map +1 -0
  1111. package/dist/serve/worker/host-messaging.js +226 -0
  1112. package/dist/serve/worker/host-messaging.js.map +1 -0
  1113. package/dist/serve/worker/host.d.ts +36 -0
  1114. package/dist/serve/worker/host.d.ts.map +1 -0
  1115. package/dist/serve/worker/host.js +39 -0
  1116. package/dist/serve/worker/host.js.map +1 -0
  1117. package/dist/serve/worker/index.d.ts +22 -0
  1118. package/dist/serve/worker/index.d.ts.map +1 -0
  1119. package/dist/serve/worker/index.js +61 -0
  1120. package/dist/serve/worker/index.js.map +1 -0
  1121. package/dist/serve/worker/presence-timing.d.ts +14 -0
  1122. package/dist/serve/worker/presence-timing.d.ts.map +1 -0
  1123. package/dist/serve/worker/presence-timing.js +14 -0
  1124. package/dist/serve/worker/presence-timing.js.map +1 -0
  1125. package/dist/serve/worker/protocol.d.ts +1150 -0
  1126. package/dist/serve/worker/protocol.d.ts.map +1 -0
  1127. package/dist/serve/worker/protocol.js +228 -0
  1128. package/dist/serve/worker/protocol.js.map +1 -0
  1129. package/dist/serve/worker/serve-init.d.ts +201 -0
  1130. package/dist/serve/worker/serve-init.d.ts.map +1 -0
  1131. package/dist/serve/worker/serve-init.js +579 -0
  1132. package/dist/serve/worker/serve-init.js.map +1 -0
  1133. package/dist/serve/worker/service-worker-channel.d.ts +23 -0
  1134. package/dist/serve/worker/service-worker-channel.d.ts.map +1 -0
  1135. package/dist/serve/worker/service-worker-channel.js +9 -0
  1136. package/dist/serve/worker/service-worker-channel.js.map +1 -0
  1137. package/dist/serve/worker/service-worker-relay.d.ts +22 -0
  1138. package/dist/serve/worker/service-worker-relay.d.ts.map +1 -0
  1139. package/dist/serve/worker/service-worker-relay.js +63 -0
  1140. package/dist/serve/worker/service-worker-relay.js.map +1 -0
  1141. package/dist/serve/writer-lock.d.ts +32 -0
  1142. package/dist/serve/writer-lock.d.ts.map +1 -0
  1143. package/dist/serve/writer-lock.js +43 -0
  1144. package/dist/serve/writer-lock.js.map +1 -0
  1145. package/dist/verify/cases.d.ts +37 -0
  1146. package/dist/verify/cases.d.ts.map +1 -0
  1147. package/dist/verify/cases.js +173 -0
  1148. package/dist/verify/cases.js.map +1 -0
  1149. package/dist/verify/fixture.d.ts +100 -0
  1150. package/dist/verify/fixture.d.ts.map +1 -0
  1151. package/dist/verify/fixture.js +156 -0
  1152. package/dist/verify/fixture.js.map +1 -0
  1153. package/dist/verify/index.d.ts +102 -0
  1154. package/dist/verify/index.d.ts.map +1 -0
  1155. package/dist/verify/index.js +318 -0
  1156. package/dist/verify/index.js.map +1 -0
  1157. package/dist/verify/tools.d.ts +7 -0
  1158. package/dist/verify/tools.d.ts.map +1 -0
  1159. package/dist/verify/tools.js +83 -0
  1160. package/dist/verify/tools.js.map +1 -0
  1161. package/dist/version/compat-target.d.ts +18 -0
  1162. package/dist/version/compat-target.d.ts.map +1 -0
  1163. package/dist/version/compat-target.js +18 -0
  1164. package/dist/version/compat-target.js.map +1 -0
  1165. package/dist/vite.d.ts +12 -0
  1166. package/dist/vite.d.ts.map +1 -0
  1167. package/dist/vite.js +16 -0
  1168. package/dist/vite.js.map +1 -0
  1169. package/package.json +133 -0
@@ -0,0 +1,2036 @@
1
+
2
+ <!-- Generated from published package declarations via TypeDoc. Do not edit by hand; run bun run docs:api:generate. -->
3
+
4
+ ## Classes
5
+
6
+ <a id="localenvironmentcrawleradapter"></a>
7
+
8
+ ### LocalEnvironmentCrawlerAdapter
9
+
10
+ Wrap a LocalEnvironment as a Firestore root that satisfies
11
+ the discover/crawler + find-collection-group contracts.
12
+
13
+ #### Implements
14
+
15
+ - [`CrawlerFirestore`](#crawlerfirestore)
16
+ - [`CollectionGroupCapableFirestore`](#collectiongroupcapablefirestore)
17
+
18
+ #### Constructors
19
+
20
+ <a id="constructor"></a>
21
+
22
+ ##### Constructor
23
+
24
+ ```ts
25
+ new LocalEnvironmentCrawlerAdapter(env: LocalEnvironment): LocalEnvironmentCrawlerAdapter;
26
+ ```
27
+
28
+ ###### Parameters
29
+
30
+ | Parameter | Type |
31
+ | :------ | :------ |
32
+ | `env` | `LocalEnvironment` |
33
+
34
+ ###### Returns
35
+
36
+ [`LocalEnvironmentCrawlerAdapter`](#localenvironmentcrawleradapter)
37
+
38
+ #### Methods
39
+
40
+ <a id="collection"></a>
41
+
42
+ ##### collection()
43
+
44
+ ```ts
45
+ collection(path: string): CrawlerCollectionRef;
46
+ ```
47
+
48
+ ###### Parameters
49
+
50
+ | Parameter | Type |
51
+ | :------ | :------ |
52
+ | `path` | `string` |
53
+
54
+ ###### Returns
55
+
56
+ [`CrawlerCollectionRef`](#crawlercollectionref)
57
+
58
+ ###### Implementation of
59
+
60
+ [`CrawlerFirestore`](#crawlerfirestore).[`collection`](#collection-2)
61
+
62
+ <a id="collectiongroup"></a>
63
+
64
+ ##### collectionGroup()
65
+
66
+ ```ts
67
+ collectionGroup(collectionId: string): CollectionGroupQuery;
68
+ ```
69
+
70
+ ###### Parameters
71
+
72
+ | Parameter | Type |
73
+ | :------ | :------ |
74
+ | `collectionId` | `string` |
75
+
76
+ ###### Returns
77
+
78
+ [`CollectionGroupQuery`](#collectiongroupquery)
79
+
80
+ ###### Implementation of
81
+
82
+ [`CollectionGroupCapableFirestore`](#collectiongroupcapablefirestore).[`collectionGroup`](#collectiongroup-2)
83
+
84
+ <a id="doc"></a>
85
+
86
+ ##### doc()
87
+
88
+ ```ts
89
+ doc(path: string): CrawlerDocumentRef;
90
+ ```
91
+
92
+ ###### Parameters
93
+
94
+ | Parameter | Type |
95
+ | :------ | :------ |
96
+ | `path` | `string` |
97
+
98
+ ###### Returns
99
+
100
+ [`CrawlerDocumentRef`](#crawlerdocumentref)
101
+
102
+ ###### Implementation of
103
+
104
+ [`CrawlerFirestore`](#crawlerfirestore).[`doc`](#doc-2)
105
+
106
+ <a id="listcollections"></a>
107
+
108
+ ##### listCollections()
109
+
110
+ ```ts
111
+ listCollections(): Promise<CrawlerCollectionRef[]>;
112
+ ```
113
+
114
+ ###### Returns
115
+
116
+ `Promise`\<[`CrawlerCollectionRef`](#crawlercollectionref)[]\>
117
+
118
+ ###### Implementation of
119
+
120
+ [`CrawlerFirestore`](#crawlerfirestore).[`listCollections`](#listcollections-4)
121
+
122
+ ***
123
+
124
+ <a id="semaphore"></a>
125
+
126
+ ### Semaphore
127
+
128
+ FIFO counting semaphore. `acquire()` resolves immediately while
129
+ fewer than `max` permits are checked out, otherwise it queues until
130
+ a `release()` frees a slot. Waiters are served in arrival order.
131
+
132
+ `release()` without a prior `acquire()` is a no-op (does not go
133
+ negative). This is intentional — it lets defensive `try/finally`
134
+ release in error paths without bookkeeping.
135
+
136
+ #### Constructors
137
+
138
+ <a id="constructor-1"></a>
139
+
140
+ ##### Constructor
141
+
142
+ ```ts
143
+ new Semaphore(max: number): Semaphore;
144
+ ```
145
+
146
+ ###### Parameters
147
+
148
+ | Parameter | Type |
149
+ | :------ | :------ |
150
+ | `max` | `number` |
151
+
152
+ ###### Returns
153
+
154
+ [`Semaphore`](#semaphore)
155
+
156
+ #### Accessors
157
+
158
+ <a id="inflight"></a>
159
+
160
+ ##### inFlight
161
+
162
+ ###### Get Signature
163
+
164
+ ```ts
165
+ get inFlight(): number;
166
+ ```
167
+
168
+ Number of permits currently checked out. For tests and instrumentation
169
+ only; do not branch on this in production logic.
170
+
171
+ ###### Returns
172
+
173
+ `number`
174
+
175
+ <a id="pending"></a>
176
+
177
+ ##### pending
178
+
179
+ ###### Get Signature
180
+
181
+ ```ts
182
+ get pending(): number;
183
+ ```
184
+
185
+ Number of waiters queued. For tests and instrumentation only.
186
+
187
+ ###### Returns
188
+
189
+ `number`
190
+
191
+ #### Methods
192
+
193
+ <a id="acquire"></a>
194
+
195
+ ##### acquire()
196
+
197
+ ```ts
198
+ acquire(): Promise<void>;
199
+ ```
200
+
201
+ ###### Returns
202
+
203
+ `Promise`\<`void`\>
204
+
205
+ <a id="release"></a>
206
+
207
+ ##### release()
208
+
209
+ ```ts
210
+ release(): void;
211
+ ```
212
+
213
+ ###### Returns
214
+
215
+ `void`
216
+
217
+ ***
218
+
219
+ <a id="sessionstore"></a>
220
+
221
+ ### SessionStore
222
+
223
+ In-process LRU session store with TTL sweep and per-session byte cap.
224
+
225
+ Eviction policy:
226
+ 1. On every `create`/`get`/`update`, sweep TTL-expired sessions first.
227
+ Their tokens land in the eviction log as `SESSION_EXPIRED`.
228
+ 2. If `create` would exceed `maxSessions`, evict the LRU
229
+ (oldest-by-`lastAccessedAt`). Its token lands in the eviction log
230
+ as `SESSION_EVICTED` so the displaced agent gets a meaningful
231
+ error on its next call.
232
+ 3. `update` rejects with `SESSION_PAYLOAD_TOO_LARGE` if the new
233
+ `bytes` exceeds `maxSessionBytes` (per-session cap, not aggregate).
234
+
235
+ The eviction log is a bounded ring buffer; once it overflows, evicted
236
+ tokens degrade silently to `SESSION_EXPIRED` (still actionable — the
237
+ recoveryHint is the same: re-issue without continuation).
238
+
239
+ #### Type Parameters
240
+
241
+ | Type Parameter |
242
+ | :------ |
243
+ | `TState` |
244
+
245
+ #### Constructors
246
+
247
+ <a id="constructor-2"></a>
248
+
249
+ ##### Constructor
250
+
251
+ ```ts
252
+ new SessionStore<TState>(opts?: SessionStoreOptions): SessionStore<TState>;
253
+ ```
254
+
255
+ ###### Parameters
256
+
257
+ | Parameter | Type |
258
+ | :------ | :------ |
259
+ | `opts?` | [`SessionStoreOptions`](#sessionstoreoptions) |
260
+
261
+ ###### Returns
262
+
263
+ [`SessionStore`](#sessionstore)\<`TState`\>
264
+
265
+ #### Accessors
266
+
267
+ <a id="size"></a>
268
+
269
+ ##### size
270
+
271
+ ###### Get Signature
272
+
273
+ ```ts
274
+ get size(): number;
275
+ ```
276
+
277
+ Live session count.
278
+
279
+ ###### Returns
280
+
281
+ `number`
282
+
283
+ #### Methods
284
+
285
+ <a id="create"></a>
286
+
287
+ ##### create()
288
+
289
+ ```ts
290
+ create(state: TState, bytes: number): SessionResult<SessionRecord<TState>>;
291
+ ```
292
+
293
+ Create a new session. Always succeeds unless `bytes` exceeds the
294
+ per-session byte cap. On cap-hit, evicts the LRU session — the
295
+ displaced token will report `SESSION_EVICTED` on its next access.
296
+
297
+ ###### Parameters
298
+
299
+ | Parameter | Type |
300
+ | :------ | :------ |
301
+ | `state` | `TState` |
302
+ | `bytes` | `number` |
303
+
304
+ ###### Returns
305
+
306
+ [`SessionResult`](#sessionresult)\<[`SessionRecord`](#sessionrecord)\<`TState`\>\>
307
+
308
+ <a id="delete"></a>
309
+
310
+ ##### delete()
311
+
312
+ ```ts
313
+ delete(token: string): boolean;
314
+ ```
315
+
316
+ Best-effort delete; returns true if a session was removed.
317
+
318
+ ###### Parameters
319
+
320
+ | Parameter | Type |
321
+ | :------ | :------ |
322
+ | `token` | `string` |
323
+
324
+ ###### Returns
325
+
326
+ `boolean`
327
+
328
+ <a id="get"></a>
329
+
330
+ ##### get()
331
+
332
+ ```ts
333
+ get(token: string): SessionResult<SessionRecord<TState>>;
334
+ ```
335
+
336
+ Look up a session by token. Touches `lastAccessedAt` on success so
337
+ subsequent reads keep the session warm. On expired/malformed/evicted
338
+ tokens returns the appropriate structured error.
339
+
340
+ ###### Parameters
341
+
342
+ | Parameter | Type |
343
+ | :------ | :------ |
344
+ | `token` | `string` |
345
+
346
+ ###### Returns
347
+
348
+ [`SessionResult`](#sessionresult)\<[`SessionRecord`](#sessionrecord)\<`TState`\>\>
349
+
350
+ <a id="sweepexpired"></a>
351
+
352
+ ##### sweepExpired()
353
+
354
+ ```ts
355
+ sweepExpired(now?: number): number;
356
+ ```
357
+
358
+ Drop sessions whose `lastAccessedAt + ttlMs` is in the past.
359
+ Returns the number of sessions evicted. Public for tests +
360
+ future scheduled-sweep usage; `create`/`get`/`update` all call it
361
+ lazily so callers don't normally need to.
362
+
363
+ ###### Parameters
364
+
365
+ | Parameter | Type |
366
+ | :------ | :------ |
367
+ | `now?` | `number` |
368
+
369
+ ###### Returns
370
+
371
+ `number`
372
+
373
+ <a id="update"></a>
374
+
375
+ ##### update()
376
+
377
+ ```ts
378
+ update(
379
+ token: string,
380
+ state: TState,
381
+ bytes: number): SessionResult<SessionRecord<TState>>;
382
+ ```
383
+
384
+ Replace the state of an existing session. Same lookup/error model
385
+ as `get`, plus per-session-bytes enforcement on the new payload.
386
+
387
+ ###### Parameters
388
+
389
+ | Parameter | Type |
390
+ | :------ | :------ |
391
+ | `token` | `string` |
392
+ | `state` | `TState` |
393
+ | `bytes` | `number` |
394
+
395
+ ###### Returns
396
+
397
+ [`SessionResult`](#sessionresult)\<[`SessionRecord`](#sessionrecord)\<`TState`\>\>
398
+
399
+ ***
400
+
401
+ <a id="wireprotounavailableerror"></a>
402
+
403
+ ### WireProtoUnavailableError
404
+
405
+ Thrown when `DocumentSnapshot._fieldsProto` is unavailable or malformed.
406
+ Per prerequisite 0.A, the wire reader does NOT silently fall back to
407
+ `data()` — that would collapse integer/double at the value boundary
408
+ and corrupt every downstream codegen consumer.
409
+
410
+ #### Extends
411
+
412
+ - `Error`
413
+
414
+ #### Constructors
415
+
416
+ <a id="constructor-3"></a>
417
+
418
+ ##### Constructor
419
+
420
+ ```ts
421
+ new WireProtoUnavailableError(opts: {
422
+ docPath: string;
423
+ reason: string;
424
+ }): WireProtoUnavailableError;
425
+ ```
426
+
427
+ ###### Parameters
428
+
429
+ | Parameter | Type |
430
+ | :------ | :------ |
431
+ | `opts` | \{ `docPath`: `string`; `reason`: `string`; \} |
432
+ | `opts.docPath` | `string` |
433
+ | `opts.reason` | `string` |
434
+
435
+ ###### Returns
436
+
437
+ [`WireProtoUnavailableError`](#wireprotounavailableerror)
438
+
439
+ ###### Overrides
440
+
441
+ ```ts
442
+ Error.constructor
443
+ ```
444
+
445
+ #### Properties
446
+
447
+ | Property | Modifier | Type | Default value | Overrides |
448
+ | :------ | :------ | :------ | :------ | :------ |
449
+ | <a id="name"></a> `name` | `readonly` | `"WireProtoUnavailableError"` | `"WireProtoUnavailableError"` | `Error.name` |
450
+
451
+ ## Interfaces
452
+
453
+ <a id="collectiongroupcapablefirestore"></a>
454
+
455
+ ### CollectionGroupCapableFirestore
456
+
457
+ Optional source capability used by `findCollectionGroup`.
458
+
459
+ #### Methods
460
+
461
+ <a id="collectiongroup-2"></a>
462
+
463
+ ##### collectionGroup()
464
+
465
+ ```ts
466
+ collectionGroup(collectionId: string): CollectionGroupQuery;
467
+ ```
468
+
469
+ ###### Parameters
470
+
471
+ | Parameter | Type |
472
+ | :------ | :------ |
473
+ | `collectionId` | `string` |
474
+
475
+ ###### Returns
476
+
477
+ [`CollectionGroupQuery`](#collectiongroupquery)
478
+
479
+ ***
480
+
481
+ <a id="collectiongroupquery"></a>
482
+
483
+ ### CollectionGroupQuery
484
+
485
+ Minimal collection-group query shape used by host discovery.
486
+
487
+ #### Methods
488
+
489
+ <a id="get-2"></a>
490
+
491
+ ##### get()
492
+
493
+ ```ts
494
+ get(): Promise<{
495
+ docs: CollectionGroupSnapshot[];
496
+ }>;
497
+ ```
498
+
499
+ ###### Returns
500
+
501
+ `Promise`\<\{
502
+ `docs`: [`CollectionGroupSnapshot`](#collectiongroupsnapshot)[];
503
+ \}\>
504
+
505
+ <a id="limit"></a>
506
+
507
+ ##### limit()
508
+
509
+ ```ts
510
+ limit(n: number): CollectionGroupQuery;
511
+ ```
512
+
513
+ ###### Parameters
514
+
515
+ | Parameter | Type |
516
+ | :------ | :------ |
517
+ | `n` | `number` |
518
+
519
+ ###### Returns
520
+
521
+ [`CollectionGroupQuery`](#collectiongroupquery)
522
+
523
+ <a id="select"></a>
524
+
525
+ ##### select()
526
+
527
+ ```ts
528
+ select(...fields: string[]): CollectionGroupQuery;
529
+ ```
530
+
531
+ ###### Parameters
532
+
533
+ | Parameter | Type |
534
+ | :------ | :------ |
535
+ | ...`fields` | `string`[] |
536
+
537
+ ###### Returns
538
+
539
+ [`CollectionGroupQuery`](#collectiongroupquery)
540
+
541
+ ***
542
+
543
+ <a id="collectiongroupsnapshot"></a>
544
+
545
+ ### CollectionGroupSnapshot
546
+
547
+ Parent-path projection used by collection-group discovery.
548
+
549
+ #### Properties
550
+
551
+ | Property | Type |
552
+ | :------ | :------ |
553
+ | <a id="ref"></a> `ref` | \{ `parent`: \{ `path`: `string`; \}; \} |
554
+ | `ref.parent` | \{ `path`: `string`; \} |
555
+ | `ref.parent.path` | `string` |
556
+
557
+ ***
558
+
559
+ <a id="collectionschema"></a>
560
+
561
+ ### CollectionSchema
562
+
563
+ Schema for a single collection as surfaced in the tool output's
564
+ `finalizedSchemas`.
565
+
566
+ #### Properties
567
+
568
+ | Property | Type |
569
+ | :------ | :------ |
570
+ | <a id="declaredat"></a> `declaredAt` | `number` |
571
+ | <a id="examplepath"></a> `examplePath?` | `string` |
572
+ | <a id="samplingcomplete"></a> `samplingComplete` | [`SamplingComplete`](#samplingcomplete-1) |
573
+ | <a id="schema"></a> `schema` | [`FieldSchema`](#fieldschema) |
574
+ | <a id="subcollectiontemplatepaths"></a> `subcollectionTemplatePaths` | `string`[] |
575
+ | <a id="templatepath"></a> `templatePath` | `string` |
576
+
577
+ ***
578
+
579
+ <a id="convergenceresult"></a>
580
+
581
+ ### ConvergenceResult
582
+
583
+ #### Properties
584
+
585
+ | Property | Type | Description |
586
+ | :------ | :------ | :------ |
587
+ | <a id="declaredat-1"></a> `declaredAt` | `number` | Doc index where `stopOnStable` fired (0-based), or null if never. |
588
+ | <a id="finalschema"></a> `finalSchema` | [`FieldSchema`](#fieldschema) | Final accumulated schema. |
589
+ | <a id="missedchangesafterdeclared"></a> `missedChangesAfterDeclared` | [`SchemaChange`](#schemachange)[] | Changes emitted *after* convergence was declared — caller-visible for test-time assertion that `stopOnStable` would not have lost data. |
590
+ | <a id="totalchanges"></a> `totalChanges` | `number` | Total change count across the stream. |
591
+ | <a id="totaldocs"></a> `totalDocs` | `number` | Total docs consumed (≤ stream length). |
592
+
593
+ ***
594
+
595
+ <a id="crawlercollectionref"></a>
596
+
597
+ ### CrawlerCollectionRef
598
+
599
+ Minimal collection-reference shape needed for traversal.
600
+
601
+ #### Properties
602
+
603
+ | Property | Modifier | Type |
604
+ | :------ | :------ | :------ |
605
+ | <a id="id"></a> `id` | `readonly` | `string` |
606
+ | <a id="path"></a> `path` | `readonly` | `string` |
607
+
608
+ #### Methods
609
+
610
+ <a id="listdocuments"></a>
611
+
612
+ ##### listDocuments()
613
+
614
+ ```ts
615
+ listDocuments(): Promise<CrawlerDocumentRef[]>;
616
+ ```
617
+
618
+ ###### Returns
619
+
620
+ `Promise`\<[`CrawlerDocumentRef`](#crawlerdocumentref)[]\>
621
+
622
+ ***
623
+
624
+ <a id="crawlerdocumentref"></a>
625
+
626
+ ### CrawlerDocumentRef
627
+
628
+ Minimal document-reference shape needed for traversal and sampling.
629
+
630
+ #### Properties
631
+
632
+ | Property | Modifier | Type |
633
+ | :------ | :------ | :------ |
634
+ | <a id="id-1"></a> `id` | `readonly` | `string` |
635
+ | <a id="path-1"></a> `path` | `readonly` | `string` |
636
+
637
+ #### Methods
638
+
639
+ <a id="get-4"></a>
640
+
641
+ ##### get()
642
+
643
+ ```ts
644
+ get(): Promise<WireDocumentSnapshot>;
645
+ ```
646
+
647
+ ###### Returns
648
+
649
+ `Promise`\<[`WireDocumentSnapshot`](#wiredocumentsnapshot)\>
650
+
651
+ <a id="listcollections-2"></a>
652
+
653
+ ##### listCollections()
654
+
655
+ ```ts
656
+ listCollections(): Promise<CrawlerCollectionRef[]>;
657
+ ```
658
+
659
+ ###### Returns
660
+
661
+ `Promise`\<[`CrawlerCollectionRef`](#crawlercollectionref)[]\>
662
+
663
+ ***
664
+
665
+ <a id="crawlerfirestore"></a>
666
+
667
+ ### CrawlerFirestore
668
+
669
+ Firestore-shaped source consumed by the crawler.
670
+
671
+ `collection` and `doc` are needed only when resuming a continuation.
672
+
673
+ #### Methods
674
+
675
+ <a id="collection-2"></a>
676
+
677
+ ##### collection()?
678
+
679
+ ```ts
680
+ optional collection(path: string): CrawlerCollectionRef;
681
+ ```
682
+
683
+ ###### Parameters
684
+
685
+ | Parameter | Type |
686
+ | :------ | :------ |
687
+ | `path` | `string` |
688
+
689
+ ###### Returns
690
+
691
+ [`CrawlerCollectionRef`](#crawlercollectionref)
692
+
693
+ <a id="doc-2"></a>
694
+
695
+ ##### doc()?
696
+
697
+ ```ts
698
+ optional doc(path: string): CrawlerDocumentRef;
699
+ ```
700
+
701
+ ###### Parameters
702
+
703
+ | Parameter | Type |
704
+ | :------ | :------ |
705
+ | `path` | `string` |
706
+
707
+ ###### Returns
708
+
709
+ [`CrawlerDocumentRef`](#crawlerdocumentref)
710
+
711
+ <a id="listcollections-4"></a>
712
+
713
+ ##### listCollections()
714
+
715
+ ```ts
716
+ listCollections(): Promise<CrawlerCollectionRef[]>;
717
+ ```
718
+
719
+ ###### Returns
720
+
721
+ `Promise`\<[`CrawlerCollectionRef`](#crawlercollectionref)[]\>
722
+
723
+ ***
724
+
725
+ <a id="crawloptions"></a>
726
+
727
+ ### CrawlOptions
728
+
729
+ Crawl options. All fields are optional with documented defaults.
730
+
731
+ - `maxConcurrency`: in-flight RPC cap. Default 32 per the Risk #1 sweep
732
+ on 2026-05-05. Sweep over `{4, 8, 16, 32, 64}` against the corpus
733
+ showed `4 → 8 → 16 → 32 → 64` was a steady ~10–15% per-doubling
734
+ descent (no plateau). 32 was picked over 64 because the curve hadn't
735
+ flattened — 64 was the cap of the test range, not a true knee — and
736
+ doubling in-flight RPCs again increases the chance of tripping
737
+ per-project connection/quota limits in agent environments. Agents
738
+ that want max speed can override.
739
+ - `maxDepth`: hard cap on BFS layers from the root. Defaults to 10
740
+ (well above any real-world Firestore tree). Used as a runaway guard,
741
+ not an agent-facing knob.
742
+ - `rootFilter`: optional predicate on root collection IDs. Used by tests
743
+ and the corpus harness to scope discovery to a known prefix without
744
+ walking the entire database.
745
+
746
+ #### Properties
747
+
748
+ | Property | Type | Description |
749
+ | :------ | :------ | :------ |
750
+ | <a id="continuation"></a> `continuation?` | `string` | Resume a previously paused crawl. Only valid when a `SessionStore` is passed to `crawl()`. The token is the `continuation` value from a prior paused result. Malformed/expired tokens surface as a `SESSION_EXPIRED`/`SESSION_EVICTED`/`SESSION_MALFORMED_TOKEN` error event with no other side effects (per 0.C). |
751
+ | <a id="dryrun"></a> `dryRun?` | `boolean` | Informational-only cost preview. When `true`, the crawler issues exactly **one** RPC — `db.listCollections()` at the root — and returns a heuristic projection of what a real crawl would cost. No documents are read, no per-doc `listCollections` calls are made, no sampling occurs. The result has empty `discovered` and `finalizedSchemas`, `complete: true`, and `continuation: undefined`. It is **not** a partial crawl that can be resumed — to "commit", call `crawl()` again with `dryRun: false` (a fresh full crawl). Rationale: an agent reading `dryRun: true` reasonably expects no real crawl happened. Doing a structure walk under that flag would let the agent make decisions on data it didn't realize it paid for. See Item 5 revision in the implementation plan. Default `false`. |
752
+ | <a id="dryrunsubtreemultiplier"></a> `dryRunSubtreeMultiplier?` | `number` | Heuristic multiplier used in the dryRun cost projection: assumes each root collection has roughly this many subtree-collections (root + descendants) on average. Default 3 — conservative for typical app schemas. Surfaced as an option so agents tuning for known shapes can revise. Only consulted when `dryRun: true`. |
753
+ | <a id="maxbatchbytes"></a> `maxBatchBytes?` | `number` | Pause threshold for batch payload size. After each layer (structure phase) and each templatePath (sampling phase) the crawler measures the JSON-serialized state size; if it exceeds this many bytes, the crawl pauses and returns a continuation token. Default 1 MB per Phase 0.4 sizing — well below `maxSessionBytes=32MB` so the agent has headroom for response framing. Only effective when a `SessionStore` is provided to `crawl()`. With no store, single-call mode runs to completion regardless of size. |
754
+ | <a id="maxconcurrency"></a> `maxConcurrency?` | `number` | - |
755
+ | <a id="maxdepth"></a> `maxDepth?` | `number` | - |
756
+ | <a id="maxerrorspercollection"></a> `maxErrorsPerCollection?` | `number` | Per-templatePath cap on tolerated PERMISSION_DENIED / transient errors during sampling. Default 3 per prerequisite 0.E. Past this threshold, sampling for the templatePath stops and `samplingComplete` is set to `sampling_open` so the agent can see the collection wasn't fully sampled. Errors during structure discovery are emitted but do not count toward this cap. |
757
+ | <a id="maxsamples"></a> `maxSamples?` | `number` | Hard cap on docs sampled per templatePath. Default 50 per Phase 2.1 lock. Item 3 will add adaptive `stopOnStable` early-exit on top of this cap; for now sampling reads exactly `min(maxSamples, available)` docs per templatePath. |
758
+ | <a id="rootfilter"></a> `rootFilter?` | (`collectionId`: `string`) => `boolean` | - |
759
+ | <a id="stoponstable"></a> `stopOnStable?` | `number` | Adaptive early-exit threshold. After this many consecutive no-change merges in a templatePath's sampling stream, sampling stops and `samplingComplete` is set to `converged_via_stable`. Default 8 per Phase 2.1 lock. Set to a value > maxSamples to disable early-exit (the hard cap then governs). Reads are issued in chunks of `stopOnStable` so an early-exit avoids fetching the remainder of `sampleRefs`. Worst-case wasted-read count per templatePath is `stopOnStable - 1`. |
760
+
761
+ ***
762
+
763
+ <a id="crawlresult"></a>
764
+
765
+ ### CrawlResult
766
+
767
+ #### Extended by
768
+
769
+ - [`FullCrawlResult`](#fullcrawlresult)
770
+
771
+ #### Properties
772
+
773
+ | Property | Type | Description |
774
+ | :------ | :------ | :------ |
775
+ | <a id="discovered"></a> `discovered` | `Map`\<`string`, [`DiscoveredCollection`](#discoveredcollection)\> | - |
776
+ | <a id="events"></a> `events` | [`DiscoverEvent`](#discoverevent)[] | - |
777
+ | <a id="listops"></a> `listOps` | `number` | Total `listCollections` + `listDocuments` calls — feeds cost reporting. |
778
+
779
+ ***
780
+
781
+ <a id="discoveredcollection"></a>
782
+
783
+ ### DiscoveredCollection
784
+
785
+ Per-template-path bookkeeping built up during a crawl. Collection refs
786
+ are kept here for Item 2.3 to drive document sampling.
787
+
788
+ Multiple concrete collection paths may collapse to the same template
789
+ path (e.g. `users/uid_1/posts` and `users/uid_2/posts` both map to
790
+ `users/{userId}/posts`); their refs are accumulated under one entry.
791
+
792
+ #### Properties
793
+
794
+ | Property | Type | Description |
795
+ | :------ | :------ | :------ |
796
+ | <a id="depth"></a> `depth` | `number` | - |
797
+ | <a id="docrefs"></a> `docRefs` | [`CrawlerDocumentRef`](#crawlerdocumentref)[] | Doc refs accumulated across `refs` during BFS expansion. Sampling draws from this pool — re-listing would double the listDocuments cost we already paid during structure discovery. |
798
+ | <a id="examplepath-1"></a> `examplePath` | `string` | First concrete collection path encountered for this template. |
799
+ | <a id="refs"></a> `refs` | [`CrawlerCollectionRef`](#crawlercollectionref)[] | All concrete collection refs that share this template path. |
800
+ | <a id="templatepath-1"></a> `templatePath` | `string` | - |
801
+
802
+ ***
803
+
804
+ <a id="discoverpathstoolresult"></a>
805
+
806
+ ### DiscoverPathsToolResult
807
+
808
+ JSON-serializable shape returned by `firestore_discover_paths`.
809
+
810
+ #### Properties
811
+
812
+ | Property | Type | Description |
813
+ | :------ | :------ | :------ |
814
+ | <a id="complete"></a> `complete` | `boolean` | True iff the crawl finished. Equivalent to `continuation === undefined`. |
815
+ | <a id="continuation-1"></a> `continuation?` | `string` | Opaque resume handle iff the crawl paused at a payload boundary. |
816
+ | <a id="dryruncostestimate"></a> `dryRunCostEstimate?` | [`DryRunCostEstimate`](#dryruncostestimate-1) | Present iff this was a `dryRun: true` preview. |
817
+ | <a id="events-1"></a> `events` | [`DiscoverEvent`](#discoverevent)[] | - |
818
+ | <a id="listops-1"></a> `listOps` | `number` | `listCollections` + `listDocuments` calls — cumulative across batches. |
819
+ | <a id="readops"></a> `readOps` | `number` | `.get()` calls during sampling — cumulative across batches. |
820
+ | <a id="schemas"></a> `schemas` | `Record`\<`string`, [`CollectionSchema`](#collectionschema)\> | Per-templatePath finalized schemas, keyed by templatePath. |
821
+
822
+ ***
823
+
824
+ <a id="dryruncostestimate-1"></a>
825
+
826
+ ### DryRunCostEstimate
827
+
828
+ Heuristic cost projection returned by `dryRun: true`. The numbers are
829
+ upper-bound estimates — agents should treat them as "no more than"
830
+ figures, not exact predictions. Formulas are documented in-line so
831
+ consumers can sanity-check.
832
+
833
+ #### Properties
834
+
835
+ | Property | Type | Description |
836
+ | :------ | :------ | :------ |
837
+ | <a id="estimatedlistops"></a> `estimatedListOps` | `number` | Projected total `listCollections` + `listDocuments` cost of a real crawl: `1 + rootCount × subtreeMultiplier`. The `1` is the root `listCollections`; each subtree contributes one `listDocuments` call to enumerate docs. Per-doc `listCollections` cost is folded into the multiplier (a subtree of 3 implies ~2 layers of doc listings). |
838
+ | <a id="estimatedreadops"></a> `estimatedReadOps` | `number` | Projected total `.get()` cost of sampling: `rootCount × subtreeMultiplier × maxSamples`. Upper bound — `stopOnStable` early-exit and `cappedByMax` can reduce the actual draw. |
839
+ | <a id="maxsamples-1"></a> `maxSamples` | `number` | The `maxSamples` value the projection used. |
840
+ | <a id="rootcollectioncount"></a> `rootCollectionCount` | `number` | Number of root collections discovered by the single root listCollections call. |
841
+ | <a id="rootcollectionids"></a> `rootCollectionIds` | `string`[] | The root collection IDs (after `rootFilter` is applied, if any). |
842
+ | <a id="subtreemultiplier"></a> `subtreeMultiplier` | `number` | The `dryRunSubtreeMultiplier` value the projection used. |
843
+
844
+ ***
845
+
846
+ <a id="enumcandidate"></a>
847
+
848
+ ### EnumCandidate
849
+
850
+ Captured low-cardinality value set for enum-candidate fields.
851
+
852
+ #### Properties
853
+
854
+ | Property | Type | Description |
855
+ | :------ | :------ | :------ |
856
+ | <a id="qualifies"></a> `qualifies` | `boolean` | Whether the field still passes the threshold; flips to false if widened past it. |
857
+ | <a id="threshold"></a> `threshold` | `number` | Distinct count after which the candidate is dropped (default 10). |
858
+ | <a id="values"></a> `values` | (`string` \| `number`)[] | Distinct values observed so far (string/number); ordered by first-seen. |
859
+
860
+ ***
861
+
862
+ <a id="fielddescriptor"></a>
863
+
864
+ ### FieldDescriptor
865
+
866
+ Per-field descriptor accumulated across a sampled stream.
867
+
868
+ - `types` is a deduped union; vector-dim drift keeps each dimension as a
869
+ distinct entry by default (Phase 1.2 lock).
870
+ - `presenceSeen / presenceTotal` ratio drives presence-based agent UX; the
871
+ denominator includes docs where the field was absent.
872
+ - `nullable` is an annotation, not a peer type (Phase 2.1 lock — `null`
873
+ never appears as a `FieldType` in this descriptor's types[]).
874
+ - `enumCandidate` populated when the field qualifies per Phase 3.2 lock
875
+ (`distinct ≤ 10 AND distinct ≤ samplesSeen / 2`); otherwise `undefined`.
876
+ Tracked only for `scalar:string` and `scalar:integer/double`; other kinds
877
+ are not enum candidates.
878
+ - `example` is one observed non-null value per Phase 3.2 lock. Drives form
879
+ placeholders, fixtures, README payloads. JSON-stringifiable (wire-typed
880
+ primitives + arrays + plain-object maps).
881
+ - `reservedReason` populated by the wire layer when the field name matches
882
+ a reserved-name pattern per 0.B; agents/codegen use it to skip or
883
+ sanitize the field.
884
+
885
+ #### Properties
886
+
887
+ | Property | Type |
888
+ | :------ | :------ |
889
+ | <a id="enumcandidate-1"></a> `enumCandidate?` | [`EnumCandidate`](#enumcandidate) |
890
+ | <a id="example"></a> `example?` | [`ExampleValue`](#examplevalue) |
891
+ | <a id="nullable"></a> `nullable` | `boolean` |
892
+ | <a id="presenceseen"></a> `presenceSeen` | `number` |
893
+ | <a id="presencetotal"></a> `presenceTotal` | `number` |
894
+ | <a id="reservedreason"></a> `reservedReason?` | [`ReservedFieldReason`](#reservedfieldreason) |
895
+ | <a id="types"></a> `types` | [`FieldType`](#fieldtype)[] |
896
+
897
+ ***
898
+
899
+ <a id="fieldobservation"></a>
900
+
901
+ ### FieldObservation
902
+
903
+ A single field observation passed into `mergeDoc`. The wire layer
904
+ (`wire.ts`) is responsible for producing this shape.
905
+
906
+ #### Properties
907
+
908
+ | Property | Type | Description |
909
+ | :------ | :------ | :------ |
910
+ | <a id="enumsample"></a> `enumSample?` | `EnumSample` | For enum-eligible scalars (string/int/double), the raw value. Used to update enumCandidate. |
911
+ | <a id="example-1"></a> `example?` | `ExampleValue` | A JSON-safe sample of the wire value. Used to populate `example` on the descriptor when no example exists yet. Optional — wire layer omits for kinds with no codegen-friendly representation. |
912
+ | <a id="isnull"></a> `isNull` | `boolean` | True iff the wire value was a null literal. |
913
+ | <a id="type"></a> `type` | [`FieldType`](#fieldtype) | The inferred FieldType for this observation. `null` is allowed and is surfaced via `isNull`; the `type` itself is `{kind:'scalar', type:'null'}` by convention but is NOT added to the descriptor's types[] union. |
914
+
915
+ ***
916
+
917
+ <a id="fieldschema"></a>
918
+
919
+ ### FieldSchema
920
+
921
+ Per-collection accumulated schema. `samplesSeen` is the doc count fed
922
+ through `mergeDoc`, used as the presence denominator.
923
+
924
+ #### Properties
925
+
926
+ | Property | Type |
927
+ | :------ | :------ |
928
+ | <a id="fields"></a> `fields` | `Record`\<`string`, [`FieldDescriptor`](#fielddescriptor)\> |
929
+ | <a id="samplesseen"></a> `samplesSeen` | `number` |
930
+
931
+ ***
932
+
933
+ <a id="findcollectiongrouphost"></a>
934
+
935
+ ### FindCollectionGroupHost
936
+
937
+ #### Properties
938
+
939
+ | Property | Type | Description |
940
+ | :------ | :------ | :------ |
941
+ | <a id="sampledoccount"></a> `sampleDocCount` | `number` | Number of docs in the N-doc draw that shared this parent path. NOT the host's total doc count — that's a separate query. |
942
+ | <a id="templatepath-2"></a> `templatePath` | `string` | Template-form parent collection path, e.g. `users/{userId}/posts`. |
943
+
944
+ ***
945
+
946
+ <a id="findcollectiongroupoptions"></a>
947
+
948
+ ### FindCollectionGroupOptions
949
+
950
+ #### Properties
951
+
952
+ | Property | Type | Description |
953
+ | :------ | :------ | :------ |
954
+ | <a id="limit-2"></a> `limit?` | `number` | Max docs to fetch from the collection group. Default 100 — covers ~22 distinct hosts with high confidence per the coupon-collector heuristic. Raise this if the result reports `limitWasReached: true` and you suspect more hosts exist. |
955
+
956
+ ***
957
+
958
+ <a id="findcollectiongroupresult"></a>
959
+
960
+ ### FindCollectionGroupResult
961
+
962
+ #### Properties
963
+
964
+ | Property | Type | Description |
965
+ | :------ | :------ | :------ |
966
+ | <a id="hosts"></a> `hosts` | [`FindCollectionGroupHost`](#findcollectiongrouphost)[] | Discovered hosts, deduped by templatePath. Order is insertion order (i.e. the order in which the first matching doc surfaced). |
967
+ | <a id="limitwasreached"></a> `limitWasReached` | `boolean` | True iff `reads === limit`, signaling the agent should consider raising `limit` if they need exhaustive host coverage. |
968
+ | <a id="reads"></a> `reads` | `number` | Total docs read — the cost line item. Always `min(limit, totalDocsInGroup)`. |
969
+
970
+ ***
971
+
972
+ <a id="firestorediscovertooldeps"></a>
973
+
974
+ ### FirestoreDiscoverToolDeps
975
+
976
+ #### Methods
977
+
978
+ <a id="resolvedb"></a>
979
+
980
+ ##### resolveDb()
981
+
982
+ ```ts
983
+ resolveDb(): CrawlerFirestore & CollectionGroupCapableFirestore;
984
+ ```
985
+
986
+ Resolver returning the CrawlerFirestore to scan. Called per
987
+ dispatch (F4). For `firestore_find_collection_group` the returned
988
+ Firestore must also satisfy [CollectionGroupCapableFirestore](#collectiongroupcapablefirestore).
989
+
990
+ ###### Returns
991
+
992
+ [`CrawlerFirestore`](#crawlerfirestore) & [`CollectionGroupCapableFirestore`](#collectiongroupcapablefirestore)
993
+
994
+ ***
995
+
996
+ <a id="fullcrawlresult"></a>
997
+
998
+ ### FullCrawlResult
999
+
1000
+ Result of a full crawl (structure + sampling). Augments `CrawlResult`
1001
+ with the per-templatePath finalized schemas the agent surface consumes.
1002
+
1003
+ `continuation` is present iff the crawl paused at a `maxBatchBytes`
1004
+ boundary; agents resume by calling `crawl(db, { continuation }, sessions)`.
1005
+ `complete` is true iff the crawl finished — equivalent to
1006
+ `continuation === undefined` but more readable at call sites.
1007
+
1008
+ Counter fields (`listOps`, `readOps`) are *cumulative* across batches:
1009
+ a paused crawl returns the running total so the agent's cost-reporting
1010
+ doesn't have to do the bookkeeping.
1011
+
1012
+ #### Extends
1013
+
1014
+ - [`CrawlResult`](#crawlresult)
1015
+
1016
+ #### Properties
1017
+
1018
+ | Property | Type | Description |
1019
+ | :------ | :------ | :------ |
1020
+ | <a id="complete-1"></a> `complete` | `boolean` | True iff the crawl completed (no continuation pending). |
1021
+ | <a id="continuation-2"></a> `continuation?` | `string` | Opaque resume handle (only present when paused). |
1022
+ | <a id="discovered-1"></a> `discovered` | `Map`\<`string`, [`DiscoveredCollection`](#discoveredcollection)\> | - |
1023
+ | <a id="dryruncostestimate-2"></a> `dryRunCostEstimate?` | [`DryRunCostEstimate`](#dryruncostestimate-1) | Present iff the crawl was a `dryRun: true` preview. Heuristic projection of what a full crawl would cost; see [CrawlOptions.dryRun](#dryrun). |
1024
+ | <a id="events-2"></a> `events` | [`DiscoverEvent`](#discoverevent)[] | - |
1025
+ | <a id="finalizedschemas"></a> `finalizedSchemas` | `Map`\<`string`, [`CollectionSchema`](#collectionschema)\> | - |
1026
+ | <a id="listops-2"></a> `listOps` | `number` | Total `listCollections` + `listDocuments` calls — feeds cost reporting. |
1027
+ | <a id="readops-1"></a> `readOps` | `number` | `.get()` calls issued during sampling — feeds cost reporting. |
1028
+
1029
+ ***
1030
+
1031
+ <a id="persistedcrawlstate"></a>
1032
+
1033
+ ### PersistedCrawlState
1034
+
1035
+ JSON-serializable snapshot of an in-progress crawl. Stored in the
1036
+ session between batches. Refs (CollectionRef/DocumentRef) carry
1037
+ methods so they can't be persisted directly — we serialize their
1038
+ paths and reconstruct via `db.collection(path)` / `db.doc(path)` on
1039
+ resume.
1040
+
1041
+ Phase invariants:
1042
+ - `structure` phase: `frontierPaths` may be non-empty; `samplingQueue`
1043
+ is empty.
1044
+ - `sampling` phase: `frontierPaths` is empty; `samplingQueue` lists
1045
+ the templatePaths still pending. Existing entries in
1046
+ `finalizedSchemas` are immutable across the rest of the crawl.
1047
+
1048
+ #### Properties
1049
+
1050
+ | Property | Type | Description |
1051
+ | :------ | :------ | :------ |
1052
+ | <a id="currentdepth"></a> `currentDepth` | `number` | Layer index after the last completed structure pass. |
1053
+ | <a id="discovered-2"></a> `discovered` | `Record`\<`string`, [`PersistedDiscoveredCollection`](#persisteddiscoveredcollection)\> | Discovered map serialized — all paths only, refs reconstructed on resume. |
1054
+ | <a id="finalizedschemas-1"></a> `finalizedSchemas` | `Record`\<`string`, [`CollectionSchema`](#collectionschema)\> | Per-templatePath finalized schemas — immutable once set. |
1055
+ | <a id="frontierpaths"></a> `frontierPaths` | `string`[] | Concrete collection paths to expand in the next structure layer. |
1056
+ | <a id="listops-3"></a> `listOps` | `number` | Cumulative cost counters across batches. |
1057
+ | <a id="maxdepth-1"></a> `maxDepth` | `number` | Crawl options carried so resume preserves caps the agent set. |
1058
+ | <a id="phase"></a> `phase` | `"structure"` \| `"sampling"` | - |
1059
+ | <a id="readops-2"></a> `readOps` | `number` | - |
1060
+ | <a id="samplingqueue"></a> `samplingQueue` | `string`[] | TemplatePaths still to sample. Drained left-to-right. |
1061
+
1062
+ ***
1063
+
1064
+ <a id="persisteddiscoveredcollection"></a>
1065
+
1066
+ ### PersistedDiscoveredCollection
1067
+
1068
+ Persisted shape of a `DiscoveredCollection` (refs → paths).
1069
+
1070
+ #### Properties
1071
+
1072
+ | Property | Type |
1073
+ | :------ | :------ |
1074
+ | <a id="depth-1"></a> `depth` | `number` |
1075
+ | <a id="docrefpaths"></a> `docRefPaths` | `string`[] |
1076
+ | <a id="examplepath-2"></a> `examplePath` | `string` |
1077
+ | <a id="refpaths"></a> `refPaths` | `string`[] |
1078
+ | <a id="templatepath-3"></a> `templatePath` | `string` |
1079
+
1080
+ ***
1081
+
1082
+ <a id="sessionerror"></a>
1083
+
1084
+ ### SessionError
1085
+
1086
+ #### Properties
1087
+
1088
+ | Property | Type |
1089
+ | :------ | :------ |
1090
+ | <a id="code"></a> `code` | [`SessionErrorCode`](#sessionerrorcode-1) |
1091
+ | <a id="message"></a> `message` | `string` |
1092
+ | <a id="recoveryhint"></a> `recoveryHint` | `string` |
1093
+
1094
+ ***
1095
+
1096
+ <a id="sessionrecord"></a>
1097
+
1098
+ ### SessionRecord
1099
+
1100
+ A live session record. `state` is opaque to the store — Item 4.2 will
1101
+ instantiate `SessionStore` with the concrete crawler-state type.
1102
+
1103
+ #### Type Parameters
1104
+
1105
+ | Type Parameter |
1106
+ | :------ |
1107
+ | `TState` |
1108
+
1109
+ #### Properties
1110
+
1111
+ | Property | Modifier | Type | Description |
1112
+ | :------ | :------ | :------ | :------ |
1113
+ | <a id="bytes"></a> `bytes` | `public` | `number` | Caller-reported payload size for byte-cap enforcement. |
1114
+ | <a id="createdat"></a> `createdAt` | `readonly` | `number` | - |
1115
+ | <a id="id-2"></a> `id` | `readonly` | `string` | Raw ULID — internal id; not the token surfaced to agents. |
1116
+ | <a id="lastaccessedat"></a> `lastAccessedAt` | `public` | `number` | Last get/update; drives both LRU eviction and TTL. |
1117
+ | <a id="state"></a> `state` | `public` | `TState` | - |
1118
+ | <a id="token"></a> `token` | `readonly` | `string` | Opaque continuation handle: `disc_<base64url-ulid>`. |
1119
+
1120
+ ***
1121
+
1122
+ <a id="sessionstoreoptions"></a>
1123
+
1124
+ ### SessionStoreOptions
1125
+
1126
+ #### Properties
1127
+
1128
+ | Property | Type | Description |
1129
+ | :------ | :------ | :------ |
1130
+ | <a id="evictionlogsize"></a> `evictionLogSize?` | `number` | - |
1131
+ | <a id="maxsessionbytes"></a> `maxSessionBytes?` | `number` | - |
1132
+ | <a id="maxsessions"></a> `maxSessions?` | `number` | - |
1133
+ | <a id="now"></a> `now?` | () => `number` | Test seam — defaults to `Date.now`. |
1134
+ | <a id="randombytes"></a> `randomBytes?` | (`n`: `number`) => `Uint8Array` | Test seam — defaults to `crypto.randomBytes`. |
1135
+ | <a id="ttlms"></a> `ttlMs?` | `number` | - |
1136
+
1137
+ ***
1138
+
1139
+ <a id="wiredocumentsnapshot"></a>
1140
+
1141
+ ### WireDocumentSnapshot
1142
+
1143
+ Minimal document snapshot shape needed for wire-type inference.
1144
+
1145
+ #### Properties
1146
+
1147
+ | Property | Type |
1148
+ | :------ | :------ |
1149
+ | <a id="ref-1"></a> `ref?` | \{ `path?`: `string`; \} |
1150
+ | `ref.path?` | `string` |
1151
+
1152
+ ## Type Aliases
1153
+
1154
+ <a id="discoverevent"></a>
1155
+
1156
+ ### DiscoverEvent
1157
+
1158
+ ```ts
1159
+ type DiscoverEvent =
1160
+ | {
1161
+ depth: number;
1162
+ kind: "collection_discovered";
1163
+ parentPath?: string;
1164
+ templatePath: string;
1165
+ }
1166
+ | {
1167
+ changes: SchemaChange[];
1168
+ kind: "schema_updated";
1169
+ templatePath: string;
1170
+ }
1171
+ | {
1172
+ declaredAt: number | null;
1173
+ kind: "sampling_complete";
1174
+ samplesSeen: number;
1175
+ samplingComplete: SamplingComplete;
1176
+ templatePath: string;
1177
+ }
1178
+ | {
1179
+ code: string;
1180
+ kind: "error";
1181
+ message: string;
1182
+ templatePath: string;
1183
+ };
1184
+ ```
1185
+
1186
+ Event stream emitted by `firestore_discover_paths`. Frozen enum per
1187
+ Phase 3.3 lock. Order within a batch is meaningful — agents may rely on
1188
+ `collection_discovered` arriving before `schema_updated` for the same path.
1189
+
1190
+ ***
1191
+
1192
+ <a id="examplevalue"></a>
1193
+
1194
+ ### ExampleValue
1195
+
1196
+ ```ts
1197
+ type ExampleValue =
1198
+ | string
1199
+ | number
1200
+ | boolean
1201
+ | null
1202
+ | ExampleValue[]
1203
+ | {
1204
+ [k: string]: ExampleValue;
1205
+ };
1206
+ ```
1207
+
1208
+ A representative observed value, JSON-safe.
1209
+
1210
+ ***
1211
+
1212
+ <a id="fieldpath"></a>
1213
+
1214
+ ### FieldPath
1215
+
1216
+ ```ts
1217
+ type FieldPath = ReadonlyArray<string | "[]">;
1218
+ ```
1219
+
1220
+ Path within a doc to a field. `'[]'` segment denotes array element scope,
1221
+ used for nested-array/map descriptors.
1222
+
1223
+ ***
1224
+
1225
+ <a id="fieldtype"></a>
1226
+
1227
+ ### FieldType
1228
+
1229
+ ```ts
1230
+ type FieldType =
1231
+ | {
1232
+ kind: "scalar";
1233
+ type: FirestoreScalarType;
1234
+ }
1235
+ | {
1236
+ kind: "reference";
1237
+ targetCollection: string;
1238
+ }
1239
+ | {
1240
+ elementTypes: FieldType[];
1241
+ kind: "array";
1242
+ }
1243
+ | {
1244
+ fields: Record<string, FieldDescriptor>;
1245
+ kind: "map";
1246
+ }
1247
+ | {
1248
+ dimension: number | "mixed";
1249
+ kind: "vector";
1250
+ };
1251
+ ```
1252
+
1253
+ One observed type for a field. Vector kept distinct from map per Phase 1.2
1254
+ vector-sentinel lock; reference target is the **template-form full path**
1255
+ per Phase 3.1 lock (`users/{userId}/posts`, not `posts`).
1256
+
1257
+ ***
1258
+
1259
+ <a id="firestorescalartype"></a>
1260
+
1261
+ ### FirestoreScalarType
1262
+
1263
+ ```ts
1264
+ type FirestoreScalarType =
1265
+ | "null"
1266
+ | "boolean"
1267
+ | "integer"
1268
+ | "double"
1269
+ | "timestamp"
1270
+ | "string"
1271
+ | "bytes"
1272
+ | "geopoint";
1273
+ ```
1274
+
1275
+ Firestore scalar wire types. Matches the discriminator emitted by
1276
+ `_fieldsProto.<field>.valueType` (Phase 0.1 lock).
1277
+
1278
+ `null` is represented as a scalar so descriptors can carry a single union
1279
+ shape; the merge layer separately tracks `nullable` per descriptor.
1280
+
1281
+ ***
1282
+
1283
+ <a id="reservedfieldreason"></a>
1284
+
1285
+ ### ReservedFieldReason
1286
+
1287
+ ```ts
1288
+ type ReservedFieldReason =
1289
+ | "firestore_reserved_name"
1290
+ | "dotted_field_name"
1291
+ | "numeric_field_name"
1292
+ | "double_underscore_wrap";
1293
+ ```
1294
+
1295
+ Why a field name is flagged reserved per 0.B.
1296
+
1297
+ ***
1298
+
1299
+ <a id="samplingcomplete-1"></a>
1300
+
1301
+ ### SamplingComplete
1302
+
1303
+ ```ts
1304
+ type SamplingComplete =
1305
+ | "converged_via_stable"
1306
+ | "converged_via_exhausted"
1307
+ | "converged_via_max"
1308
+ | "sampling_open";
1309
+ ```
1310
+
1311
+ 4-state classification for sampling termination per Phase 2.2 lock.
1312
+
1313
+ - `converged_via_stable`: hit `stopOnStable` consecutive no-change docs.
1314
+ Schema is *probably* complete — known false-negative is mid-stream drift
1315
+ later than `stopOnStable` docs into the stable region (out of scope per
1316
+ Phase 2.1 lock; deferred to a future `firestore_re_crawl`).
1317
+ - `converged_via_exhausted`: iterator returned empty before `maxSamples`.
1318
+ Schema is *provably* complete — we read every doc.
1319
+ - `converged_via_max`: hit `maxSamples` cap without converging. Schema may
1320
+ be incomplete; agent should treat with caution.
1321
+ - `sampling_open`: crawl interrupted (continuation boundary). Resume with
1322
+ the returned continuation handle to keep sampling.
1323
+
1324
+ ***
1325
+
1326
+ <a id="schemachange"></a>
1327
+
1328
+ ### SchemaChange
1329
+
1330
+ ```ts
1331
+ type SchemaChange =
1332
+ | {
1333
+ kind: "field_added";
1334
+ path: FieldPath;
1335
+ type: FieldType;
1336
+ }
1337
+ | {
1338
+ addedType: FieldType;
1339
+ kind: "type_expanded";
1340
+ path: FieldPath;
1341
+ }
1342
+ | {
1343
+ kind: "presence_changed";
1344
+ path: FieldPath;
1345
+ presenceSeen: number;
1346
+ presenceTotal: number;
1347
+ }
1348
+ | {
1349
+ kind: "enum_added";
1350
+ path: FieldPath;
1351
+ values: (string | number)[];
1352
+ }
1353
+ | {
1354
+ addedValue: string | number;
1355
+ kind: "enum_widened";
1356
+ path: FieldPath;
1357
+ }
1358
+ | {
1359
+ kind: "enum_dropped";
1360
+ path: FieldPath;
1361
+ reason: "over_threshold" | "type_widened";
1362
+ }
1363
+ | {
1364
+ addedDimension: number;
1365
+ kind: "vector_dim_drift";
1366
+ path: FieldPath;
1367
+ }
1368
+ | {
1369
+ kind: "became_nullable";
1370
+ path: FieldPath;
1371
+ };
1372
+ ```
1373
+
1374
+ Frozen `SchemaChange` enum per Phase 5 implementation plan lock. Emitted
1375
+ by the merge layer; carried in `schema_updated` events.
1376
+
1377
+ Renamed from v1 scope's `ChangeReason` to match the agent-facing terminology
1378
+ in the validation plan's event-model lock.
1379
+
1380
+ ***
1381
+
1382
+ <a id="sessionerrorcode-1"></a>
1383
+
1384
+ ### SessionErrorCode
1385
+
1386
+ ```ts
1387
+ type SessionErrorCode =
1388
+ | "SESSION_EXPIRED"
1389
+ | "SESSION_EVICTED"
1390
+ | "SESSION_PAYLOAD_TOO_LARGE"
1391
+ | "SESSION_MALFORMED_TOKEN";
1392
+ ```
1393
+
1394
+ ***
1395
+
1396
+ <a id="sessionresult"></a>
1397
+
1398
+ ### SessionResult
1399
+
1400
+ ```ts
1401
+ type SessionResult<T> =
1402
+ | {
1403
+ ok: true;
1404
+ value: T;
1405
+ }
1406
+ | {
1407
+ error: SessionError;
1408
+ ok: false;
1409
+ };
1410
+ ```
1411
+
1412
+ Discriminated-union result so callers don't have to try/catch.
1413
+
1414
+ #### Type Parameters
1415
+
1416
+ | Type Parameter |
1417
+ | :------ |
1418
+ | `T` |
1419
+
1420
+ ***
1421
+
1422
+ <a id="wirevalue"></a>
1423
+
1424
+ ### WireValue
1425
+
1426
+ ```ts
1427
+ type WireValue = any;
1428
+ ```
1429
+
1430
+ ## Variables
1431
+
1432
+ <a id="default_enum_threshold"></a>
1433
+
1434
+ ### DEFAULT\_ENUM\_THRESHOLD
1435
+
1436
+ ```ts
1437
+ const DEFAULT_ENUM_THRESHOLD: 10 = 10;
1438
+ ```
1439
+
1440
+ Default enum-candidate distinct-value cap (Phase 3.2 lock).
1441
+
1442
+ ***
1443
+
1444
+ <a id="default_max_session_bytes"></a>
1445
+
1446
+ ### DEFAULT\_MAX\_SESSION\_BYTES
1447
+
1448
+ ```ts
1449
+ const DEFAULT_MAX_SESSION_BYTES: number;
1450
+ ```
1451
+
1452
+ ***
1453
+
1454
+ <a id="default_max_sessions"></a>
1455
+
1456
+ ### DEFAULT\_MAX\_SESSIONS
1457
+
1458
+ ```ts
1459
+ const DEFAULT_MAX_SESSIONS: 8 = 8;
1460
+ ```
1461
+
1462
+ ***
1463
+
1464
+ <a id="default_ttl_ms"></a>
1465
+
1466
+ ### DEFAULT\_TTL\_MS
1467
+
1468
+ ```ts
1469
+ const DEFAULT_TTL_MS: number;
1470
+ ```
1471
+
1472
+ ## Functions
1473
+
1474
+ <a id="classifyfieldname"></a>
1475
+
1476
+ ### classifyFieldName()
1477
+
1478
+ ```ts
1479
+ function classifyFieldName(name: string): ReservedFieldReason;
1480
+ ```
1481
+
1482
+ Classify a field name. Returns undefined for normal names, or a
1483
+ specific ReservedFieldReason for names that codegen must skip/sanitize.
1484
+
1485
+ Rules ordered by specificity (most specific first):
1486
+ - exact `__name__` etc. → firestore_reserved_name
1487
+ - contains '.' → dotted_field_name (breaks dot-path access)
1488
+ - pure-numeric → numeric_field_name (looks like array index)
1489
+ - __foo__ → double_underscore_wrap (sentinel collision)
1490
+
1491
+ #### Parameters
1492
+
1493
+ | Parameter | Type |
1494
+ | :------ | :------ |
1495
+ | `name` | `string` |
1496
+
1497
+ #### Returns
1498
+
1499
+ [`ReservedFieldReason`](#reservedfieldreason)
1500
+
1501
+ ***
1502
+
1503
+ <a id="crawl"></a>
1504
+
1505
+ ### crawl()
1506
+
1507
+ ```ts
1508
+ function crawl(
1509
+ db: CrawlerFirestore,
1510
+ options?: CrawlOptions,
1511
+ sessions?: SessionStore<PersistedCrawlState>): Promise<FullCrawlResult>;
1512
+ ```
1513
+
1514
+ Full crawl: discover structure, then sample up to `maxSamples` docs per
1515
+ discovered templatePath and feed them through the merge layer. Emits
1516
+ `schema_updated` events for every non-empty merge and `sampling_complete`
1517
+ once per templatePath.
1518
+
1519
+ **Pause/resume (Item 4.2).** When a `SessionStore` is supplied, the
1520
+ crawler measures the persisted-state size at two pause boundaries:
1521
+
1522
+ 1. End of every BFS layer in the structure phase
1523
+ 2. End of every templatePath in the sampling phase
1524
+
1525
+ If the persisted state exceeds `maxBatchBytes` (default 1 MB), the
1526
+ crawler persists state and returns a `continuation` token. The agent
1527
+ resumes by passing `{ continuation }` on the next call. Counters
1528
+ (`listOps`, `readOps`) are cumulative across batches; events are
1529
+ per-batch only (agents accumulate them themselves).
1530
+
1531
+ Without a `SessionStore`, the crawler runs to completion regardless of
1532
+ size — single-call mode is unchanged.
1533
+
1534
+ **Continuation lifecycle.** Continuation handles are minted/validated by
1535
+ the supplied `SessionStore` (see `discover/session.ts`). Malformed,
1536
+ expired, or evicted tokens surface as a single `error` event and an
1537
+ otherwise-empty result — agents can re-issue without continuation
1538
+ per the recovery hint.
1539
+
1540
+ #### Parameters
1541
+
1542
+ | Parameter | Type |
1543
+ | :------ | :------ |
1544
+ | `db` | [`CrawlerFirestore`](#crawlerfirestore) |
1545
+ | `options?` | [`CrawlOptions`](#crawloptions) |
1546
+ | `sessions?` | [`SessionStore`](#sessionstore)\<[`PersistedCrawlState`](#persistedcrawlstate)\> |
1547
+
1548
+ #### Returns
1549
+
1550
+ `Promise`\<[`FullCrawlResult`](#fullcrawlresult)\>
1551
+
1552
+ ***
1553
+
1554
+ <a id="crawlstructure"></a>
1555
+
1556
+ ### crawlStructure()
1557
+
1558
+ ```ts
1559
+ function crawlStructure(db: CrawlerFirestore, options?: CrawlOptions): Promise<CrawlResult>;
1560
+ ```
1561
+
1562
+ Walk the Firestore tree breadth-first. Each layer issues its
1563
+ `listDocuments` + per-doc `listCollections` calls in parallel under a
1564
+ shared concurrency cap.
1565
+
1566
+ Returns once every reachable collection (within `maxDepth`) is recorded.
1567
+ The returned `discovered` map is keyed by templatePath; `events` is the
1568
+ ordered event log emitted during the walk (currently only
1569
+ `collection_discovered`).
1570
+
1571
+ #### Parameters
1572
+
1573
+ | Parameter | Type |
1574
+ | :------ | :------ |
1575
+ | `db` | [`CrawlerFirestore`](#crawlerfirestore) |
1576
+ | `options?` | [`CrawlOptions`](#crawloptions) |
1577
+
1578
+ #### Returns
1579
+
1580
+ `Promise`\<[`CrawlResult`](#crawlresult)\>
1581
+
1582
+ ***
1583
+
1584
+ <a id="createfirestorediscovertools"></a>
1585
+
1586
+ ### createFirestoreDiscoverTools()
1587
+
1588
+ ```ts
1589
+ function createFirestoreDiscoverTools(deps: FirestoreDiscoverToolDeps): ToolHandler<unknown, unknown>[];
1590
+ ```
1591
+
1592
+ #### Parameters
1593
+
1594
+ | Parameter | Type |
1595
+ | :------ | :------ |
1596
+ | `deps` | [`FirestoreDiscoverToolDeps`](#firestorediscovertooldeps) |
1597
+
1598
+ #### Returns
1599
+
1600
+ `ToolHandler`\<`unknown`, `unknown`\>[]
1601
+
1602
+ ***
1603
+
1604
+ <a id="decodetoken"></a>
1605
+
1606
+ ### decodeToken()
1607
+
1608
+ ```ts
1609
+ function decodeToken(token: string): {
1610
+ id: string;
1611
+ };
1612
+ ```
1613
+
1614
+ Decode a `disc_<base64url>` token. Returns `null` on any malformation
1615
+ — caller maps null to `SESSION_MALFORMED_TOKEN`.
1616
+
1617
+ #### Parameters
1618
+
1619
+ | Parameter | Type |
1620
+ | :------ | :------ |
1621
+ | `token` | `string` |
1622
+
1623
+ #### Returns
1624
+
1625
+ ```ts
1626
+ {
1627
+ id: string;
1628
+ }
1629
+ ```
1630
+
1631
+ ##### id
1632
+
1633
+ ```ts
1634
+ id: string;
1635
+ ```
1636
+
1637
+ ***
1638
+
1639
+ <a id="emptyschema"></a>
1640
+
1641
+ ### emptySchema()
1642
+
1643
+ ```ts
1644
+ function emptySchema(): FieldSchema;
1645
+ ```
1646
+
1647
+ #### Returns
1648
+
1649
+ [`FieldSchema`](#fieldschema)
1650
+
1651
+ ***
1652
+
1653
+ <a id="encodetoken"></a>
1654
+
1655
+ ### encodeToken()
1656
+
1657
+ ```ts
1658
+ function encodeToken(ulidBytes: Uint8Array): string;
1659
+ ```
1660
+
1661
+ Encode a 16-byte ULID into a `disc_<base64url>` token. Internal — used
1662
+ by `SessionStore.create`.
1663
+
1664
+ #### Parameters
1665
+
1666
+ | Parameter | Type |
1667
+ | :------ | :------ |
1668
+ | `ulidBytes` | `Uint8Array` |
1669
+
1670
+ #### Returns
1671
+
1672
+ `string`
1673
+
1674
+ ***
1675
+
1676
+ <a id="fieldtypekey"></a>
1677
+
1678
+ ### fieldTypeKey()
1679
+
1680
+ ```ts
1681
+ function fieldTypeKey(t: FieldType): string;
1682
+ ```
1683
+
1684
+ Stable key for FieldType used in dedup. NaN/±Infinity all collapse to
1685
+ `s:double` so no special handling needed (Phase 1.2 lock).
1686
+
1687
+ #### Parameters
1688
+
1689
+ | Parameter | Type |
1690
+ | :------ | :------ |
1691
+ | `t` | [`FieldType`](#fieldtype) |
1692
+
1693
+ #### Returns
1694
+
1695
+ `string`
1696
+
1697
+ ***
1698
+
1699
+ <a id="findcollectiongroup"></a>
1700
+
1701
+ ### findCollectionGroup()
1702
+
1703
+ ```ts
1704
+ function findCollectionGroup(
1705
+ db: CollectionGroupCapableFirestore,
1706
+ collectionId: string,
1707
+ options?: FindCollectionGroupOptions): Promise<FindCollectionGroupResult>;
1708
+ ```
1709
+
1710
+ Find every collection-group host of a given collection ID.
1711
+
1712
+ One read per returned doc — cost is bounded by `limit` (default 100).
1713
+ Returns the hosts in template-path form (e.g. `users/{userId}/posts`)
1714
+ with the per-host sample doc count.
1715
+
1716
+ Throws on Admin SDK errors (network / permission). The tool is
1717
+ standalone — no session, no continuation, no events — so error
1718
+ propagation is straightforward.
1719
+
1720
+ #### Parameters
1721
+
1722
+ | Parameter | Type |
1723
+ | :------ | :------ |
1724
+ | `db` | [`CollectionGroupCapableFirestore`](#collectiongroupcapablefirestore) |
1725
+ | `collectionId` | `string` |
1726
+ | `options?` | [`FindCollectionGroupOptions`](#findcollectiongroupoptions) |
1727
+
1728
+ #### Returns
1729
+
1730
+ `Promise`\<[`FindCollectionGroupResult`](#findcollectiongroupresult)\>
1731
+
1732
+ ***
1733
+
1734
+ <a id="infertemplatevariable"></a>
1735
+
1736
+ ### inferTemplateVariable()
1737
+
1738
+ ```ts
1739
+ function inferTemplateVariable(collectionId: string): string;
1740
+ ```
1741
+
1742
+ Convert a collection ID to the conventional template-variable name a
1743
+ Firestore rules author would write for its docs. Strips a trailing
1744
+ snake/dot-cased prefix word so `ttt_lobbies` → `lobbyId` (not
1745
+ `ttt_lobbieId`).
1746
+
1747
+ #### Parameters
1748
+
1749
+ | Parameter | Type |
1750
+ | :------ | :------ |
1751
+ | `collectionId` | `string` |
1752
+
1753
+ #### Returns
1754
+
1755
+ `string`
1756
+
1757
+ ***
1758
+
1759
+ <a id="mergedescriptorwithobservation"></a>
1760
+
1761
+ ### mergeDescriptorWithObservation()
1762
+
1763
+ ```ts
1764
+ function mergeDescriptorWithObservation(
1765
+ prev: FieldDescriptor,
1766
+ observation: FieldObservation | "absent",
1767
+ newTotal: number,
1768
+ path: FieldPath): MergeFieldResult;
1769
+ ```
1770
+
1771
+ Merge a single field observation into an existing descriptor.
1772
+ `observation === 'absent'` means the field was missing from the doc.
1773
+ `newTotal` is the doc count after this observation.
1774
+
1775
+ #### Parameters
1776
+
1777
+ | Parameter | Type |
1778
+ | :------ | :------ |
1779
+ | `prev` | [`FieldDescriptor`](#fielddescriptor) |
1780
+ | `observation` | [`FieldObservation`](#fieldobservation) \| `"absent"` |
1781
+ | `newTotal` | `number` |
1782
+ | `path` | [`FieldPath`](#fieldpath) |
1783
+
1784
+ #### Returns
1785
+
1786
+ `MergeFieldResult`
1787
+
1788
+ ***
1789
+
1790
+ <a id="mergedoc"></a>
1791
+
1792
+ ### mergeDoc()
1793
+
1794
+ ```ts
1795
+ function mergeDoc(prev: FieldSchema, doc: Record<string, FieldObservation>): {
1796
+ changes: SchemaChange[];
1797
+ next: FieldSchema;
1798
+ };
1799
+ ```
1800
+
1801
+ Merge a single document's typed field observations into a collection-level
1802
+ schema. Returns the next schema and the changes emitted.
1803
+
1804
+ The wire layer (`wire.ts`) is responsible for converting Firestore wire
1805
+ values into the `Record<string, FieldObservation>` shape expected here.
1806
+
1807
+ #### Parameters
1808
+
1809
+ | Parameter | Type |
1810
+ | :------ | :------ |
1811
+ | `prev` | [`FieldSchema`](#fieldschema) |
1812
+ | `doc` | `Record`\<`string`, [`FieldObservation`](#fieldobservation)\> |
1813
+
1814
+ #### Returns
1815
+
1816
+ ```ts
1817
+ {
1818
+ changes: SchemaChange[];
1819
+ next: FieldSchema;
1820
+ }
1821
+ ```
1822
+
1823
+ ##### changes
1824
+
1825
+ ```ts
1826
+ changes: SchemaChange[];
1827
+ ```
1828
+
1829
+ ##### next
1830
+
1831
+ ```ts
1832
+ next: FieldSchema;
1833
+ ```
1834
+
1835
+ ***
1836
+
1837
+ <a id="runconvergence"></a>
1838
+
1839
+ ### runConvergence()
1840
+
1841
+ ```ts
1842
+ function runConvergence(docs: Iterable<Record<string, FieldObservation>>, stopOnStable: number): ConvergenceResult;
1843
+ ```
1844
+
1845
+ Stream-driven convergence runner. Used by the production crawler's
1846
+ sampling loop and by Phase 2.x tests that replay corpus snapshots.
1847
+
1848
+ `stopOnStable` is the optimistic early-exit signal (Phase 2.1 lock — must
1849
+ be paired with a `maxSamples` hard cap in the crawler, not here).
1850
+
1851
+ #### Parameters
1852
+
1853
+ | Parameter | Type |
1854
+ | :------ | :------ |
1855
+ | `docs` | `Iterable`\<`Record`\<`string`, [`FieldObservation`](#fieldobservation)\>\> |
1856
+ | `stopOnStable` | `number` |
1857
+
1858
+ #### Returns
1859
+
1860
+ [`ConvergenceResult`](#convergenceresult)
1861
+
1862
+ ***
1863
+
1864
+ <a id="runwithlimit"></a>
1865
+
1866
+ ### runWithLimit()
1867
+
1868
+ ```ts
1869
+ function runWithLimit<T, R>(
1870
+ items: readonly T[],
1871
+ limit: number,
1872
+ producer: (item: T, index: number) => Promise<R>): Promise<R[]>;
1873
+ ```
1874
+
1875
+ Run `items` through `producer` concurrently, capping in-flight calls
1876
+ at `limit`. Returns results in input order (same shape as
1877
+ `Promise.all(items.map(producer))` — but bounded).
1878
+
1879
+ `producer` may throw; the rejection propagates after in-flight work
1880
+ settles. Other items continue running so the rejection isn't masked
1881
+ by a Promise.all-style fast-fail leaving zombie pending work.
1882
+
1883
+ Implementation detail: uses an internal `Semaphore(limit)`; callers
1884
+ who need to share a permit pool across multiple `runWithLimit` calls
1885
+ (e.g. crawler global RPC cap) should use the `Semaphore` class
1886
+ directly via `acquire`/`release`.
1887
+
1888
+ #### Type Parameters
1889
+
1890
+ | Type Parameter |
1891
+ | :------ |
1892
+ | `T` |
1893
+ | `R` |
1894
+
1895
+ #### Parameters
1896
+
1897
+ | Parameter | Type |
1898
+ | :------ | :------ |
1899
+ | `items` | readonly `T`[] |
1900
+ | `limit` | `number` |
1901
+ | `producer` | (`item`: `T`, `index`: `number`) => `Promise`\<`R`\> |
1902
+
1903
+ #### Returns
1904
+
1905
+ `Promise`\<`R`[]\>
1906
+
1907
+ ***
1908
+
1909
+ <a id="snapshottoobservations"></a>
1910
+
1911
+ ### snapshotToObservations()
1912
+
1913
+ ```ts
1914
+ function snapshotToObservations(snap: WireDocumentSnapshot): {
1915
+ observations: Record<string, FieldObservation>;
1916
+ reservedNames: Record<string, ReservedFieldReason>;
1917
+ };
1918
+ ```
1919
+
1920
+ Convert a Firestore document snapshot into a FieldObservation map.
1921
+ Detects reserved field names per 0.B — they appear in the output but
1922
+ the descriptor returned by the merge layer carries `reservedReason`
1923
+ so codegen can skip them.
1924
+
1925
+ Throws `WireProtoUnavailableError` if `_fieldsProto` is absent (0.A
1926
+ fail-loud contract). Empty docs (proto present but zero keys) return
1927
+ an empty record without throwing.
1928
+
1929
+ #### Parameters
1930
+
1931
+ | Parameter | Type |
1932
+ | :------ | :------ |
1933
+ | `snap` | [`WireDocumentSnapshot`](#wiredocumentsnapshot) |
1934
+
1935
+ #### Returns
1936
+
1937
+ ```ts
1938
+ {
1939
+ observations: Record<string, FieldObservation>;
1940
+ reservedNames: Record<string, ReservedFieldReason>;
1941
+ }
1942
+ ```
1943
+
1944
+ ##### observations
1945
+
1946
+ ```ts
1947
+ observations: Record<string, FieldObservation>;
1948
+ ```
1949
+
1950
+ ##### reservedNames
1951
+
1952
+ ```ts
1953
+ reservedNames: Record<string, ReservedFieldReason>;
1954
+ ```
1955
+
1956
+ ***
1957
+
1958
+ <a id="totemplatepath"></a>
1959
+
1960
+ ### toTemplatePath()
1961
+
1962
+ ```ts
1963
+ function toTemplatePath(concretePath: string): string;
1964
+ ```
1965
+
1966
+ Map a concrete collection path to its template-path form per Phase 3.1
1967
+ lock. Doc-id segments become `{singular(parentColl)Id}` so the result
1968
+ matches Firestore rules' `path.raw` segments under typical naming
1969
+ conventions (TTT corpus verified: `ttt_lobbies` → `{lobbyId}`).
1970
+
1971
+ Inputs alternate `coll/doc/coll/doc/.../coll`. Length is always odd (a
1972
+ collection path ends on a collection segment).
1973
+
1974
+ Heuristic — agents needing strict alignment with rules should normalize
1975
+ both sides before joining. See Risk 6 in the implementation plan.
1976
+
1977
+ Examples:
1978
+ `users` → `users`
1979
+ `users/uid_1/posts` → `users/{userId}/posts`
1980
+ `ttt_lobbies/abc/games/g1/moves` → `ttt_lobbies/{lobbyId}/games/{gameId}/moves`
1981
+
1982
+ #### Parameters
1983
+
1984
+ | Parameter | Type |
1985
+ | :------ | :------ |
1986
+ | `concretePath` | `string` |
1987
+
1988
+ #### Returns
1989
+
1990
+ `string`
1991
+
1992
+ ***
1993
+
1994
+ <a id="wirevaluetofieldtype"></a>
1995
+
1996
+ ### wireValueToFieldType()
1997
+
1998
+ ```ts
1999
+ function wireValueToFieldType(v: any): FieldType;
2000
+ ```
2001
+
2002
+ Pure type extraction. Does not extract examples or enum samples — use
2003
+ `wireValueToObservation` for the full observation.
2004
+
2005
+ #### Parameters
2006
+
2007
+ | Parameter | Type |
2008
+ | :------ | :------ |
2009
+ | `v` | `any` |
2010
+
2011
+ #### Returns
2012
+
2013
+ [`FieldType`](#fieldtype)
2014
+
2015
+ ***
2016
+
2017
+ <a id="wirevaluetoobservation"></a>
2018
+
2019
+ ### wireValueToObservation()
2020
+
2021
+ ```ts
2022
+ function wireValueToObservation(v: any): FieldObservation;
2023
+ ```
2024
+
2025
+ Full observation including JSON-safe example projection and enum sample
2026
+ extraction. The merge layer consumes this shape.
2027
+
2028
+ #### Parameters
2029
+
2030
+ | Parameter | Type |
2031
+ | :------ | :------ |
2032
+ | `v` | `any` |
2033
+
2034
+ #### Returns
2035
+
2036
+ [`FieldObservation`](#fieldobservation)