@pyric/cli 0.1.0-alpha.10

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 (903) hide show
  1. package/LICENSE +216 -0
  2. package/README.md +180 -0
  3. package/README.md.orig +141 -0
  4. package/dist/assurance/.generated/conformance-verdicts.d.ts +1071 -0
  5. package/dist/assurance/.generated/conformance-verdicts.d.ts.map +1 -0
  6. package/dist/assurance/.generated/conformance-verdicts.js +1070 -0
  7. package/dist/assurance/.generated/conformance-verdicts.js.map +1 -0
  8. package/dist/assurance/attachment.d.ts +24 -0
  9. package/dist/assurance/attachment.d.ts.map +1 -0
  10. package/dist/assurance/attachment.js +138 -0
  11. package/dist/assurance/attachment.js.map +1 -0
  12. package/dist/assurance/browser.d.ts +7 -0
  13. package/dist/assurance/browser.d.ts.map +1 -0
  14. package/dist/assurance/browser.js +68 -0
  15. package/dist/assurance/browser.js.map +1 -0
  16. package/dist/assurance/campaign.d.ts +41 -0
  17. package/dist/assurance/campaign.d.ts.map +1 -0
  18. package/dist/assurance/campaign.js +364 -0
  19. package/dist/assurance/campaign.js.map +1 -0
  20. package/dist/assurance/capabilities.d.ts +11 -0
  21. package/dist/assurance/capabilities.d.ts.map +1 -0
  22. package/dist/assurance/capabilities.js +282 -0
  23. package/dist/assurance/capabilities.js.map +1 -0
  24. package/dist/assurance/cases.d.ts +14 -0
  25. package/dist/assurance/cases.d.ts.map +1 -0
  26. package/dist/assurance/cases.js +27 -0
  27. package/dist/assurance/cases.js.map +1 -0
  28. package/dist/assurance/index.d.ts +10 -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 +737 -0
  43. package/dist/assurance/tools.js.map +1 -0
  44. package/dist/assurance/types.d.ts +347 -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 +63 -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 +84 -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/can-i-use.d.ts +5 -0
  117. package/dist/cli/can-i-use.d.ts.map +1 -0
  118. package/dist/cli/can-i-use.js +49 -0
  119. package/dist/cli/can-i-use.js.map +1 -0
  120. package/dist/cli/database-rules.d.ts +43 -0
  121. package/dist/cli/database-rules.d.ts.map +1 -0
  122. package/dist/cli/database-rules.js +261 -0
  123. package/dist/cli/database-rules.js.map +1 -0
  124. package/dist/cli/dev-runner.d.ts +112 -0
  125. package/dist/cli/dev-runner.d.ts.map +1 -0
  126. package/dist/cli/dev-runner.js +239 -0
  127. package/dist/cli/dev-runner.js.map +1 -0
  128. package/dist/cli/firebase-json.d.ts +66 -0
  129. package/dist/cli/firebase-json.d.ts.map +1 -0
  130. package/dist/cli/firebase-json.js +60 -0
  131. package/dist/cli/firebase-json.js.map +1 -0
  132. package/dist/cli/firestore-indexes.d.ts +21 -0
  133. package/dist/cli/firestore-indexes.d.ts.map +1 -0
  134. package/dist/cli/firestore-indexes.js +39 -0
  135. package/dist/cli/firestore-indexes.js.map +1 -0
  136. package/dist/cli/index.d.ts +56 -0
  137. package/dist/cli/index.d.ts.map +1 -0
  138. package/dist/cli/index.js +387 -0
  139. package/dist/cli/index.js.map +1 -0
  140. package/dist/cli/init.d.ts +50 -0
  141. package/dist/cli/init.d.ts.map +1 -0
  142. package/dist/cli/init.js +182 -0
  143. package/dist/cli/init.js.map +1 -0
  144. package/dist/cli/mcp-proxy.d.ts +10 -0
  145. package/dist/cli/mcp-proxy.d.ts.map +1 -0
  146. package/dist/cli/mcp-proxy.js +129 -0
  147. package/dist/cli/mcp-proxy.js.map +1 -0
  148. package/dist/cli/parse-args.d.ts +20 -0
  149. package/dist/cli/parse-args.d.ts.map +1 -0
  150. package/dist/cli/parse-args.js +74 -0
  151. package/dist/cli/parse-args.js.map +1 -0
  152. package/dist/cli/rules.d.ts +55 -0
  153. package/dist/cli/rules.d.ts.map +1 -0
  154. package/dist/cli/rules.js +199 -0
  155. package/dist/cli/rules.js.map +1 -0
  156. package/dist/cli/scope.d.ts +12 -0
  157. package/dist/cli/scope.d.ts.map +1 -0
  158. package/dist/cli/scope.js +44 -0
  159. package/dist/cli/scope.js.map +1 -0
  160. package/dist/cli/serve.d.ts +122 -0
  161. package/dist/cli/serve.d.ts.map +1 -0
  162. package/dist/cli/serve.js +844 -0
  163. package/dist/cli/serve.js.map +1 -0
  164. package/dist/cli/service-commands.d.ts +8 -0
  165. package/dist/cli/service-commands.d.ts.map +1 -0
  166. package/dist/cli/service-commands.js +58 -0
  167. package/dist/cli/service-commands.js.map +1 -0
  168. package/dist/cli/snapshot.d.ts +22 -0
  169. package/dist/cli/snapshot.d.ts.map +1 -0
  170. package/dist/cli/snapshot.js +139 -0
  171. package/dist/cli/snapshot.js.map +1 -0
  172. package/dist/cli/storage-rules.d.ts +21 -0
  173. package/dist/cli/storage-rules.d.ts.map +1 -0
  174. package/dist/cli/storage-rules.js +121 -0
  175. package/dist/cli/storage-rules.js.map +1 -0
  176. package/dist/cli/verify.d.ts +23 -0
  177. package/dist/cli/verify.d.ts.map +1 -0
  178. package/dist/cli/verify.js +349 -0
  179. package/dist/cli/verify.js.map +1 -0
  180. package/dist/conformance/.generated/can-i-use-browser.d.ts +44 -0
  181. package/dist/conformance/.generated/can-i-use-browser.d.ts.map +1 -0
  182. package/dist/conformance/.generated/can-i-use-browser.js +67 -0
  183. package/dist/conformance/.generated/can-i-use-browser.js.map +1 -0
  184. package/dist/conformance/.generated/can-i-use.d.ts +61 -0
  185. package/dist/conformance/.generated/can-i-use.d.ts.map +1 -0
  186. package/dist/conformance/.generated/can-i-use.js +68 -0
  187. package/dist/conformance/.generated/can-i-use.js.map +1 -0
  188. package/dist/conformance/browser.d.ts +7 -0
  189. package/dist/conformance/browser.d.ts.map +1 -0
  190. package/dist/conformance/browser.js +8 -0
  191. package/dist/conformance/browser.js.map +1 -0
  192. package/dist/conformance/can-i-use-tool.d.ts +21 -0
  193. package/dist/conformance/can-i-use-tool.d.ts.map +1 -0
  194. package/dist/conformance/can-i-use-tool.js +40 -0
  195. package/dist/conformance/can-i-use-tool.js.map +1 -0
  196. package/dist/conformance/can-i-use.d.ts +6 -0
  197. package/dist/conformance/can-i-use.d.ts.map +1 -0
  198. package/dist/conformance/can-i-use.js +10 -0
  199. package/dist/conformance/can-i-use.js.map +1 -0
  200. package/dist/conformance/index.d.ts +8 -0
  201. package/dist/conformance/index.d.ts.map +1 -0
  202. package/dist/conformance/index.js +2 -0
  203. package/dist/conformance/index.js.map +1 -0
  204. package/dist/conformance/tools.d.ts +4 -0
  205. package/dist/conformance/tools.d.ts.map +1 -0
  206. package/dist/conformance/tools.js +14 -0
  207. package/dist/conformance/tools.js.map +1 -0
  208. package/dist/credentials/core/memoize-ttl.d.ts +58 -0
  209. package/dist/credentials/core/memoize-ttl.d.ts.map +1 -0
  210. package/dist/credentials/core/memoize-ttl.js +88 -0
  211. package/dist/credentials/core/memoize-ttl.js.map +1 -0
  212. package/dist/credentials/core/types.d.ts +11 -0
  213. package/dist/credentials/core/types.d.ts.map +1 -0
  214. package/dist/credentials/core/types.js +2 -0
  215. package/dist/credentials/core/types.js.map +1 -0
  216. package/dist/credentials/node/from-adc.d.ts +10 -0
  217. package/dist/credentials/node/from-adc.d.ts.map +1 -0
  218. package/dist/credentials/node/from-adc.js +76 -0
  219. package/dist/credentials/node/from-adc.js.map +1 -0
  220. package/dist/credentials/node/from-service-account.d.ts +24 -0
  221. package/dist/credentials/node/from-service-account.d.ts.map +1 -0
  222. package/dist/credentials/node/from-service-account.js +108 -0
  223. package/dist/credentials/node/from-service-account.js.map +1 -0
  224. package/dist/credentials/node/index.d.ts +7 -0
  225. package/dist/credentials/node/index.d.ts.map +1 -0
  226. package/dist/credentials/node/index.js +7 -0
  227. package/dist/credentials/node/index.js.map +1 -0
  228. package/dist/discover/concurrency.d.ts +42 -0
  229. package/dist/discover/concurrency.d.ts.map +1 -0
  230. package/dist/discover/concurrency.js +113 -0
  231. package/dist/discover/concurrency.js.map +1 -0
  232. package/dist/discover/crawler-adapter.d.ts +48 -0
  233. package/dist/discover/crawler-adapter.d.ts.map +1 -0
  234. package/dist/discover/crawler-adapter.js +92 -0
  235. package/dist/discover/crawler-adapter.js.map +1 -0
  236. package/dist/discover/crawler.d.ts +294 -0
  237. package/dist/discover/crawler.d.ts.map +1 -0
  238. package/dist/discover/crawler.js +764 -0
  239. package/dist/discover/crawler.js.map +1 -0
  240. package/dist/discover/credential-free.d.ts +19 -0
  241. package/dist/discover/credential-free.d.ts.map +1 -0
  242. package/dist/discover/credential-free.js +18 -0
  243. package/dist/discover/credential-free.js.map +1 -0
  244. package/dist/discover/findCollectionGroup.d.ts +44 -0
  245. package/dist/discover/findCollectionGroup.d.ts.map +1 -0
  246. package/dist/discover/findCollectionGroup.js +81 -0
  247. package/dist/discover/findCollectionGroup.js.map +1 -0
  248. package/dist/discover/firestore-source.d.ts +60 -0
  249. package/dist/discover/firestore-source.d.ts.map +1 -0
  250. package/dist/discover/firestore-source.js +11 -0
  251. package/dist/discover/firestore-source.js.map +1 -0
  252. package/dist/discover/index.d.ts +3 -0
  253. package/dist/discover/index.d.ts.map +1 -0
  254. package/dist/discover/index.js +5 -0
  255. package/dist/discover/index.js.map +1 -0
  256. package/dist/discover/merge.d.ts +108 -0
  257. package/dist/discover/merge.d.ts.map +1 -0
  258. package/dist/discover/merge.js +394 -0
  259. package/dist/discover/merge.js.map +1 -0
  260. package/dist/discover/session.d.ts +116 -0
  261. package/dist/discover/session.d.ts.map +1 -0
  262. package/dist/discover/session.js +331 -0
  263. package/dist/discover/session.js.map +1 -0
  264. package/dist/discover/tools.d.ts +58 -0
  265. package/dist/discover/tools.d.ts.map +1 -0
  266. package/dist/discover/tools.js +115 -0
  267. package/dist/discover/tools.js.map +1 -0
  268. package/dist/discover/types.d.ts +190 -0
  269. package/dist/discover/types.d.ts.map +1 -0
  270. package/dist/discover/types.js +12 -0
  271. package/dist/discover/types.js.map +1 -0
  272. package/dist/discover/wire.d.ts +70 -0
  273. package/dist/discover/wire.d.ts.map +1 -0
  274. package/dist/discover/wire.js +309 -0
  275. package/dist/discover/wire.js.map +1 -0
  276. package/dist/functions-rtdb/child.d.ts +52 -0
  277. package/dist/functions-rtdb/child.d.ts.map +1 -0
  278. package/dist/functions-rtdb/child.js +283 -0
  279. package/dist/functions-rtdb/child.js.map +1 -0
  280. package/dist/functions-rtdb/delivery.d.ts +4 -0
  281. package/dist/functions-rtdb/delivery.d.ts.map +1 -0
  282. package/dist/functions-rtdb/delivery.js +2 -0
  283. package/dist/functions-rtdb/delivery.js.map +1 -0
  284. package/dist/functions-rtdb/discovery.d.ts +41 -0
  285. package/dist/functions-rtdb/discovery.d.ts.map +1 -0
  286. package/dist/functions-rtdb/discovery.js +86 -0
  287. package/dist/functions-rtdb/discovery.js.map +1 -0
  288. package/dist/functions-rtdb/event.d.ts +20 -0
  289. package/dist/functions-rtdb/event.d.ts.map +1 -0
  290. package/dist/functions-rtdb/event.js +45 -0
  291. package/dist/functions-rtdb/event.js.map +1 -0
  292. package/dist/functions-rtdb/execution.d.ts +20 -0
  293. package/dist/functions-rtdb/execution.d.ts.map +1 -0
  294. package/dist/functions-rtdb/execution.js +70 -0
  295. package/dist/functions-rtdb/execution.js.map +1 -0
  296. package/dist/functions-rtdb/in-memory-delivery.d.ts +9 -0
  297. package/dist/functions-rtdb/in-memory-delivery.d.ts.map +1 -0
  298. package/dist/functions-rtdb/in-memory-delivery.js +36 -0
  299. package/dist/functions-rtdb/in-memory-delivery.js.map +1 -0
  300. package/dist/functions-rtdb/project.d.ts +7 -0
  301. package/dist/functions-rtdb/project.d.ts.map +1 -0
  302. package/dist/functions-rtdb/project.js +54 -0
  303. package/dist/functions-rtdb/project.js.map +1 -0
  304. package/dist/functions-rtdb/projection.d.ts +14 -0
  305. package/dist/functions-rtdb/projection.d.ts.map +1 -0
  306. package/dist/functions-rtdb/projection.js +65 -0
  307. package/dist/functions-rtdb/projection.js.map +1 -0
  308. package/dist/functions-rtdb/reference-pattern.d.ts +5 -0
  309. package/dist/functions-rtdb/reference-pattern.d.ts.map +1 -0
  310. package/dist/functions-rtdb/reference-pattern.js +14 -0
  311. package/dist/functions-rtdb/reference-pattern.js.map +1 -0
  312. package/dist/functions-rtdb/remote-delivery.d.ts +9 -0
  313. package/dist/functions-rtdb/remote-delivery.d.ts.map +1 -0
  314. package/dist/functions-rtdb/remote-delivery.js +11 -0
  315. package/dist/functions-rtdb/remote-delivery.js.map +1 -0
  316. package/dist/pkg-version.d.ts +2 -0
  317. package/dist/pkg-version.d.ts.map +1 -0
  318. package/dist/pkg-version.js +47 -0
  319. package/dist/pkg-version.js.map +1 -0
  320. package/dist/register/esm-exports.d.ts +26 -0
  321. package/dist/register/esm-exports.d.ts.map +1 -0
  322. package/dist/register/esm-exports.js +61 -0
  323. package/dist/register/esm-exports.js.map +1 -0
  324. package/dist/register/hooks.d.ts +13 -0
  325. package/dist/register/hooks.d.ts.map +1 -0
  326. package/dist/register/hooks.js +15 -0
  327. package/dist/register/hooks.js.map +1 -0
  328. package/dist/register/index.d.ts +5 -0
  329. package/dist/register/index.d.ts.map +1 -0
  330. package/dist/register/index.js +124 -0
  331. package/dist/register/index.js.map +1 -0
  332. package/dist/register/mapping.d.ts +19 -0
  333. package/dist/register/mapping.d.ts.map +1 -0
  334. package/dist/register/mapping.js +35 -0
  335. package/dist/register/mapping.js.map +1 -0
  336. package/dist/remote/index.d.ts +232 -0
  337. package/dist/remote/index.d.ts.map +1 -0
  338. package/dist/remote/index.js +720 -0
  339. package/dist/remote/index.js.map +1 -0
  340. package/dist/rtdb/crawl-snapshot.d.ts +17 -0
  341. package/dist/rtdb/crawl-snapshot.d.ts.map +1 -0
  342. package/dist/rtdb/crawl-snapshot.js +72 -0
  343. package/dist/rtdb/crawl-snapshot.js.map +1 -0
  344. package/dist/rtdb/inspection.d.ts +8 -0
  345. package/dist/rtdb/inspection.d.ts.map +1 -0
  346. package/dist/rtdb/inspection.js +111 -0
  347. package/dist/rtdb/inspection.js.map +1 -0
  348. package/dist/rtdb/load-rules-document.d.ts +25 -0
  349. package/dist/rtdb/load-rules-document.d.ts.map +1 -0
  350. package/dist/rtdb/load-rules-document.js +38 -0
  351. package/dist/rtdb/load-rules-document.js.map +1 -0
  352. package/dist/rtdb/rules-generation-tool.d.ts +4 -0
  353. package/dist/rtdb/rules-generation-tool.d.ts.map +1 -0
  354. package/dist/rtdb/rules-generation-tool.js +35 -0
  355. package/dist/rtdb/rules-generation-tool.js.map +1 -0
  356. package/dist/rtdb/rules-json.d.ts +8 -0
  357. package/dist/rtdb/rules-json.d.ts.map +1 -0
  358. package/dist/rtdb/rules-json.js +17 -0
  359. package/dist/rtdb/rules-json.js.map +1 -0
  360. package/dist/serve/bridge-mount.d.ts +36 -0
  361. package/dist/serve/bridge-mount.d.ts.map +1 -0
  362. package/dist/serve/bridge-mount.js +162 -0
  363. package/dist/serve/bridge-mount.js.map +1 -0
  364. package/dist/serve/bundler.d.ts +110 -0
  365. package/dist/serve/bundler.d.ts.map +1 -0
  366. package/dist/serve/bundler.js +432 -0
  367. package/dist/serve/bundler.js.map +1 -0
  368. package/dist/serve/capture-store.d.ts +27 -0
  369. package/dist/serve/capture-store.d.ts.map +1 -0
  370. package/dist/serve/capture-store.js +47 -0
  371. package/dist/serve/capture-store.js.map +1 -0
  372. package/dist/serve/discovery.d.ts +71 -0
  373. package/dist/serve/discovery.d.ts.map +1 -0
  374. package/dist/serve/discovery.js +158 -0
  375. package/dist/serve/discovery.js.map +1 -0
  376. package/dist/serve/docs-ui/_astro/_slug_.DPUwShm2.css +1 -0
  377. package/dist/serve/docs-ui/docs/_rhythm/index.html +99 -0
  378. package/dist/serve/docs-ui/docs/_rhythm.md +97 -0
  379. package/dist/serve/docs-ui/docs/agent/set-up-your-agent/index.html +42 -0
  380. package/dist/serve/docs-ui/docs/agent/set-up-your-agent.md +72 -0
  381. package/dist/serve/docs-ui/docs/agent/watch-and-review/index.html +25 -0
  382. package/dist/serve/docs-ui/docs/agent/watch-and-review.md +38 -0
  383. package/dist/serve/docs-ui/docs/agent/work-with-an-agent/index.html +69 -0
  384. package/dist/serve/docs-ui/docs/agent/work-with-an-agent.md +74 -0
  385. package/dist/serve/docs-ui/docs/ai-compat/index.html +423 -0
  386. package/dist/serve/docs-ui/docs/ai-compat.md +456 -0
  387. package/dist/serve/docs-ui/docs/api-reference/index.html +66 -0
  388. package/dist/serve/docs-ui/docs/api-reference.md +69 -0
  389. package/dist/serve/docs-ui/docs/app-compat/index.html +159 -0
  390. package/dist/serve/docs-ui/docs/app-compat.md +178 -0
  391. package/dist/serve/docs-ui/docs/auth-compat/index.html +644 -0
  392. package/dist/serve/docs-ui/docs/auth-compat.md +701 -0
  393. package/dist/serve/docs-ui/docs/build/ai-logic/index.html +27 -0
  394. package/dist/serve/docs-ui/docs/build/ai-logic.md +39 -0
  395. package/dist/serve/docs-ui/docs/build/authentication/index.html +65 -0
  396. package/dist/serve/docs-ui/docs/build/authentication.md +95 -0
  397. package/dist/serve/docs-ui/docs/build/cloud-firestore/index.html +69 -0
  398. package/dist/serve/docs-ui/docs/build/cloud-firestore.md +93 -0
  399. package/dist/serve/docs-ui/docs/build/cloud-messaging/index.html +27 -0
  400. package/dist/serve/docs-ui/docs/build/cloud-messaging.md +37 -0
  401. package/dist/serve/docs-ui/docs/build/cloud-storage/index.html +65 -0
  402. package/dist/serve/docs-ui/docs/build/cloud-storage.md +86 -0
  403. package/dist/serve/docs-ui/docs/build/realtime-database/index.html +49 -0
  404. package/dist/serve/docs-ui/docs/build/realtime-database.md +67 -0
  405. package/dist/serve/docs-ui/docs/conformance-scores/index.html +49 -0
  406. package/dist/serve/docs-ui/docs/conformance-scores.md +53 -0
  407. package/dist/serve/docs-ui/docs/create-pyric-reference-api/index.html +498 -0
  408. package/dist/serve/docs-ui/docs/create-pyric-reference-api.md +345 -0
  409. package/dist/serve/docs-ui/docs/database-compat/index.html +1037 -0
  410. package/dist/serve/docs-ui/docs/database-compat.md +1099 -0
  411. package/dist/serve/docs-ui/docs/firestore-compat/index.html +823 -0
  412. package/dist/serve/docs-ui/docs/firestore-compat.md +881 -0
  413. package/dist/serve/docs-ui/docs/functions-rtdb-compat/index.html +72 -0
  414. package/dist/serve/docs-ui/docs/functions-rtdb-compat.md +83 -0
  415. package/dist/serve/docs-ui/docs/get-started/how-the-swap-works/index.html +27 -0
  416. package/dist/serve/docs-ui/docs/get-started/how-the-swap-works.md +50 -0
  417. package/dist/serve/docs-ui/docs/get-started/start-building/index.html +31 -0
  418. package/dist/serve/docs-ui/docs/get-started/start-building.md +53 -0
  419. package/dist/serve/docs-ui/docs/index.html +2 -0
  420. package/dist/serve/docs-ui/docs/index.json +11719 -0
  421. package/dist/serve/docs-ui/docs/messaging-compat/index.html +264 -0
  422. package/dist/serve/docs-ui/docs/messaging-compat.md +285 -0
  423. package/dist/serve/docs-ui/docs/observe/see-whats-happening/index.html +73 -0
  424. package/dist/serve/docs-ui/docs/observe/see-whats-happening.md +69 -0
  425. package/dist/serve/docs-ui/docs/observe/shape-your-data/index.html +44 -0
  426. package/dist/serve/docs-ui/docs/observe/shape-your-data.md +74 -0
  427. package/dist/serve/docs-ui/docs/overview/index.html +16 -0
  428. package/dist/serve/docs-ui/docs/overview.md +31 -0
  429. package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api/index.html +185 -0
  430. package/dist/serve/docs-ui/docs/pyric-admin-app-reference-api.md +206 -0
  431. package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api/index.html +617 -0
  432. package/dist/serve/docs-ui/docs/pyric-admin-auth-reference-api.md +441 -0
  433. package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api/index.html +583 -0
  434. package/dist/serve/docs-ui/docs/pyric-admin-database-reference-api.md +597 -0
  435. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api/index.html +32 -0
  436. package/dist/serve/docs-ui/docs/pyric-admin-firestore-reference-api.md +30 -0
  437. package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api/index.html +317 -0
  438. package/dist/serve/docs-ui/docs/pyric-admin-storage-reference-api.md +285 -0
  439. package/dist/serve/docs-ui/docs/pyric-ai-reference-api/index.html +5830 -0
  440. package/dist/serve/docs-ui/docs/pyric-ai-reference-api.md +5439 -0
  441. package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api/index.html +159 -0
  442. package/dist/serve/docs-ui/docs/pyric-ai-scripting-reference-api.md +122 -0
  443. package/dist/serve/docs-ui/docs/pyric-app-reference-api/index.html +420 -0
  444. package/dist/serve/docs-ui/docs/pyric-app-reference-api.md +326 -0
  445. package/dist/serve/docs-ui/docs/pyric-auth-reference-api/index.html +5452 -0
  446. package/dist/serve/docs-ui/docs/pyric-auth-reference-api.md +5271 -0
  447. package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api/index.html +98 -0
  448. package/dist/serve/docs-ui/docs/pyric-cli-assurance-browser-reference-api.md +88 -0
  449. package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api/index.html +2263 -0
  450. package/dist/serve/docs-ui/docs/pyric-cli-assurance-reference-api.md +1477 -0
  451. package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api/index.html +546 -0
  452. package/dist/serve/docs-ui/docs/pyric-cli-bridge-client-reference-api.md +485 -0
  453. package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api/index.html +506 -0
  454. package/dist/serve/docs-ui/docs/pyric-cli-bridge-reference-api.md +419 -0
  455. package/dist/serve/docs-ui/docs/pyric-cli-conformance-browser-reference-api/index.html +257 -0
  456. package/dist/serve/docs-ui/docs/pyric-cli-conformance-browser-reference-api.md +197 -0
  457. package/dist/serve/docs-ui/docs/pyric-cli-conformance-reference-api/index.html +307 -0
  458. package/dist/serve/docs-ui/docs/pyric-cli-conformance-reference-api.md +254 -0
  459. package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api/index.html +67 -0
  460. package/dist/serve/docs-ui/docs/pyric-cli-credentials-node-reference-api.md +59 -0
  461. package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api/index.html +2355 -0
  462. package/dist/serve/docs-ui/docs/pyric-cli-discover-reference-api.md +2036 -0
  463. package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api/index.html +10 -0
  464. package/dist/serve/docs-ui/docs/pyric-cli-register-reference-api.md +16 -0
  465. package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api/index.html +1044 -0
  466. package/dist/serve/docs-ui/docs/pyric-cli-remote-reference-api.md +952 -0
  467. package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api/index.html +5041 -0
  468. package/dist/serve/docs-ui/docs/pyric-cli-serve-worker-reference-api.md +4739 -0
  469. package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api/index.html +926 -0
  470. package/dist/serve/docs-ui/docs/pyric-cli-verify-reference-api.md +586 -0
  471. package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api/index.html +102 -0
  472. package/dist/serve/docs-ui/docs/pyric-cli-vite-reference-api.md +76 -0
  473. package/dist/serve/docs-ui/docs/pyric-database-reference-api/index.html +1851 -0
  474. package/dist/serve/docs-ui/docs/pyric-database-reference-api.md +1842 -0
  475. package/dist/serve/docs-ui/docs/pyric-firestore-reference-api/index.html +3623 -0
  476. package/dist/serve/docs-ui/docs/pyric-firestore-reference-api.md +3399 -0
  477. package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api/index.html +30 -0
  478. package/dist/serve/docs-ui/docs/pyric-firestore-values-reference-api.md +30 -0
  479. package/dist/serve/docs-ui/docs/pyric-messaging-reference-api/index.html +508 -0
  480. package/dist/serve/docs-ui/docs/pyric-messaging-reference-api.md +374 -0
  481. package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api/index.html +482 -0
  482. package/dist/serve/docs-ui/docs/pyric-messaging-sw-reference-api.md +348 -0
  483. package/dist/serve/docs-ui/docs/pyric-rules-reference-api/index.html +2629 -0
  484. package/dist/serve/docs-ui/docs/pyric-rules-reference-api.md +2213 -0
  485. package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api/index.html +120 -0
  486. package/dist/serve/docs-ui/docs/pyric-sandbox-database-reference-api.md +110 -0
  487. package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api/index.html +202 -0
  488. package/dist/serve/docs-ui/docs/pyric-sandbox-firestore-reference-api.md +134 -0
  489. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api/index.html +5019 -0
  490. package/dist/serve/docs-ui/docs/pyric-sandbox-reference-api.md +4060 -0
  491. package/dist/serve/docs-ui/docs/pyric-storage-reference-api/index.html +2120 -0
  492. package/dist/serve/docs-ui/docs/pyric-storage-reference-api.md +1687 -0
  493. package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api/index.html +638 -0
  494. package/dist/serve/docs-ui/docs/pyric-ui-agents-reference-api.md +430 -0
  495. package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api/index.html +813 -0
  496. package/dist/serve/docs-ui/docs/pyric-ui-auth-hooks-reference-api.md +634 -0
  497. package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api/index.html +1708 -0
  498. package/dist/serve/docs-ui/docs/pyric-ui-auth-reference-api.md +1300 -0
  499. package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api/index.html +177 -0
  500. package/dist/serve/docs-ui/docs/pyric-ui-events-hooks-reference-api.md +111 -0
  501. package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api/index.html +1542 -0
  502. package/dist/serve/docs-ui/docs/pyric-ui-events-reference-api.md +903 -0
  503. package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api/index.html +1024 -0
  504. package/dist/serve/docs-ui/docs/pyric-ui-firestore-hooks-reference-api.md +640 -0
  505. package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api/index.html +2753 -0
  506. package/dist/serve/docs-ui/docs/pyric-ui-firestore-reference-api.md +2171 -0
  507. package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api/index.html +1005 -0
  508. package/dist/serve/docs-ui/docs/pyric-ui-primitives-reference-api.md +693 -0
  509. package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api/index.html +1388 -0
  510. package/dist/serve/docs-ui/docs/pyric-ui-rtdb-reference-api.md +1340 -0
  511. package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api/index.html +131 -0
  512. package/dist/serve/docs-ui/docs/pyric-ui-rules-hooks-reference-api.md +76 -0
  513. package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api/index.html +648 -0
  514. package/dist/serve/docs-ui/docs/pyric-ui-rules-reference-api.md +508 -0
  515. package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api/index.html +1457 -0
  516. package/dist/serve/docs-ui/docs/pyric-ui-storage-hooks-reference-api.md +1029 -0
  517. package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api/index.html +2476 -0
  518. package/dist/serve/docs-ui/docs/pyric-ui-storage-reference-api.md +1919 -0
  519. package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api/index.html +1241 -0
  520. package/dist/serve/docs-ui/docs/pyric-ui-traffic-hooks-reference-api.md +817 -0
  521. package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api/index.html +2289 -0
  522. package/dist/serve/docs-ui/docs/pyric-ui-traffic-reference-api.md +1489 -0
  523. package/dist/serve/docs-ui/docs/rules-compat/index.html +272 -0
  524. package/dist/serve/docs-ui/docs/rules-compat.md +287 -0
  525. package/dist/serve/docs-ui/docs/secure/audit-your-rules/index.html +34 -0
  526. package/dist/serve/docs-ui/docs/secure/audit-your-rules.md +67 -0
  527. package/dist/serve/docs-ui/docs/secure/firestore-rules-limits/index.html +105 -0
  528. package/dist/serve/docs-ui/docs/secure/firestore-rules-limits.md +152 -0
  529. package/dist/serve/docs-ui/docs/secure/read-a-denial/index.html +40 -0
  530. package/dist/serve/docs-ui/docs/secure/read-a-denial.md +58 -0
  531. package/dist/serve/docs-ui/docs/secure/rtdb-rules-in-typescript/index.html +66 -0
  532. package/dist/serve/docs-ui/docs/secure/rtdb-rules-in-typescript.md +89 -0
  533. package/dist/serve/docs-ui/docs/secure/rules-standard-library/index.html +158 -0
  534. package/dist/serve/docs-ui/docs/secure/rules-standard-library.md +116 -0
  535. package/dist/serve/docs-ui/docs/secure/secure-it-with-rules/index.html +46 -0
  536. package/dist/serve/docs-ui/docs/secure/secure-it-with-rules.md +51 -0
  537. package/dist/serve/docs-ui/docs/secure/simulate-and-lint/index.html +94 -0
  538. package/dist/serve/docs-ui/docs/secure/simulate-and-lint.md +86 -0
  539. package/dist/serve/docs-ui/docs/secure/write-a-rules-test-suite/index.html +81 -0
  540. package/dist/serve/docs-ui/docs/secure/write-a-rules-test-suite.md +105 -0
  541. package/dist/serve/docs-ui/docs/ship/ship-to-production/index.html +36 -0
  542. package/dist/serve/docs-ui/docs/ship/ship-to-production.md +64 -0
  543. package/dist/serve/docs-ui/docs/ship/test-in-node/index.html +74 -0
  544. package/dist/serve/docs-ui/docs/ship/test-in-node.md +94 -0
  545. package/dist/serve/docs-ui/docs/storage-compat/index.html +532 -0
  546. package/dist/serve/docs-ui/docs/storage-compat.md +577 -0
  547. package/dist/serve/docs-ui/docs/trust/how-we-know-it-matches-firebase/index.html +131 -0
  548. package/dist/serve/docs-ui/docs/trust/how-we-know-it-matches-firebase.md +155 -0
  549. package/dist/serve/docs-ui/docs/trust/versioning-and-compatibility/index.html +13 -0
  550. package/dist/serve/docs-ui/docs/trust/versioning-and-compatibility.md +21 -0
  551. package/dist/serve/docs-ui/index.html +1 -0
  552. package/dist/serve/docs-ui/llms.txt +123 -0
  553. package/dist/serve/entries/ai.d.ts +4 -0
  554. package/dist/serve/entries/ai.d.ts.map +1 -0
  555. package/dist/serve/entries/ai.js +184 -0
  556. package/dist/serve/entries/ai.js.map +1 -0
  557. package/dist/serve/entries/app-backend.d.ts +2 -0
  558. package/dist/serve/entries/app-backend.d.ts.map +1 -0
  559. package/dist/serve/entries/app-backend.js +4 -0
  560. package/dist/serve/entries/app-backend.js.map +1 -0
  561. package/dist/serve/entries/app-client.d.ts +5 -0
  562. package/dist/serve/entries/app-client.d.ts.map +1 -0
  563. package/dist/serve/entries/app-client.js +23 -0
  564. package/dist/serve/entries/app-client.js.map +1 -0
  565. package/dist/serve/entries/app-session-store.d.ts +14 -0
  566. package/dist/serve/entries/app-session-store.d.ts.map +1 -0
  567. package/dist/serve/entries/app-session-store.js +37 -0
  568. package/dist/serve/entries/app-session-store.js.map +1 -0
  569. package/dist/serve/entries/app.d.ts +2 -0
  570. package/dist/serve/entries/app.d.ts.map +1 -0
  571. package/dist/serve/entries/app.js +10 -0
  572. package/dist/serve/entries/app.js.map +1 -0
  573. package/dist/serve/entries/auth-helper-core.d.ts +52 -0
  574. package/dist/serve/entries/auth-helper-core.d.ts.map +1 -0
  575. package/dist/serve/entries/auth-helper-core.js +118 -0
  576. package/dist/serve/entries/auth-helper-core.js.map +1 -0
  577. package/dist/serve/entries/auth-helper-dom.d.ts +14 -0
  578. package/dist/serve/entries/auth-helper-dom.d.ts.map +1 -0
  579. package/dist/serve/entries/auth-helper-dom.js +116 -0
  580. package/dist/serve/entries/auth-helper-dom.js.map +1 -0
  581. package/dist/serve/entries/auth-helper-runtime.d.ts +5 -0
  582. package/dist/serve/entries/auth-helper-runtime.d.ts.map +1 -0
  583. package/dist/serve/entries/auth-helper-runtime.js +11 -0
  584. package/dist/serve/entries/auth-helper-runtime.js.map +1 -0
  585. package/dist/serve/entries/auth.d.ts +77 -0
  586. package/dist/serve/entries/auth.d.ts.map +1 -0
  587. package/dist/serve/entries/auth.js +201 -0
  588. package/dist/serve/entries/auth.js.map +1 -0
  589. package/dist/serve/entries/bridge-url.d.ts +25 -0
  590. package/dist/serve/entries/bridge-url.d.ts.map +1 -0
  591. package/dist/serve/entries/bridge-url.js +30 -0
  592. package/dist/serve/entries/bridge-url.js.map +1 -0
  593. package/dist/serve/entries/database.d.ts +46 -0
  594. package/dist/serve/entries/database.d.ts.map +1 -0
  595. package/dist/serve/entries/database.js +80 -0
  596. package/dist/serve/entries/database.js.map +1 -0
  597. package/dist/serve/entries/firestore.d.ts +104 -0
  598. package/dist/serve/entries/firestore.d.ts.map +1 -0
  599. package/dist/serve/entries/firestore.js +202 -0
  600. package/dist/serve/entries/firestore.js.map +1 -0
  601. package/dist/serve/entries/init.d.ts +2 -0
  602. package/dist/serve/entries/init.d.ts.map +1 -0
  603. package/dist/serve/entries/init.js +40 -0
  604. package/dist/serve/entries/init.js.map +1 -0
  605. package/dist/serve/entries/keepalive.d.ts +20 -0
  606. package/dist/serve/entries/keepalive.d.ts.map +1 -0
  607. package/dist/serve/entries/keepalive.js +38 -0
  608. package/dist/serve/entries/keepalive.js.map +1 -0
  609. package/dist/serve/entries/messaging-sw.d.ts +10 -0
  610. package/dist/serve/entries/messaging-sw.d.ts.map +1 -0
  611. package/dist/serve/entries/messaging-sw.js +36 -0
  612. package/dist/serve/entries/messaging-sw.js.map +1 -0
  613. package/dist/serve/entries/messaging.d.ts +11 -0
  614. package/dist/serve/entries/messaging.d.ts.map +1 -0
  615. package/dist/serve/entries/messaging.js +53 -0
  616. package/dist/serve/entries/messaging.js.map +1 -0
  617. package/dist/serve/entries/runtime.d.ts +46 -0
  618. package/dist/serve/entries/runtime.d.ts.map +1 -0
  619. package/dist/serve/entries/runtime.js +435 -0
  620. package/dist/serve/entries/runtime.js.map +1 -0
  621. package/dist/serve/entries/session-store.d.ts +48 -0
  622. package/dist/serve/entries/session-store.d.ts.map +1 -0
  623. package/dist/serve/entries/session-store.js +82 -0
  624. package/dist/serve/entries/session-store.js.map +1 -0
  625. package/dist/serve/entries/storage.d.ts +25 -0
  626. package/dist/serve/entries/storage.d.ts.map +1 -0
  627. package/dist/serve/entries/storage.js +61 -0
  628. package/dist/serve/entries/storage.js.map +1 -0
  629. package/dist/serve/entries/tab-sync-wiring.d.ts +88 -0
  630. package/dist/serve/entries/tab-sync-wiring.d.ts.map +1 -0
  631. package/dist/serve/entries/tab-sync-wiring.js +217 -0
  632. package/dist/serve/entries/tab-sync-wiring.js.map +1 -0
  633. package/dist/serve/entries/worker-runtime.d.ts +10 -0
  634. package/dist/serve/entries/worker-runtime.d.ts.map +1 -0
  635. package/dist/serve/entries/worker-runtime.js +59 -0
  636. package/dist/serve/entries/worker-runtime.js.map +1 -0
  637. package/dist/serve/init-payload.d.ts +21 -0
  638. package/dist/serve/init-payload.d.ts.map +1 -0
  639. package/dist/serve/init-payload.js +2 -0
  640. package/dist/serve/init-payload.js.map +1 -0
  641. package/dist/serve/namespace.d.ts +73 -0
  642. package/dist/serve/namespace.d.ts.map +1 -0
  643. package/dist/serve/namespace.js +470 -0
  644. package/dist/serve/namespace.js.map +1 -0
  645. package/dist/serve/open-browser.d.ts +23 -0
  646. package/dist/serve/open-browser.d.ts.map +1 -0
  647. package/dist/serve/open-browser.js +58 -0
  648. package/dist/serve/open-browser.js.map +1 -0
  649. package/dist/serve/rules.d.ts +77 -0
  650. package/dist/serve/rules.d.ts.map +1 -0
  651. package/dist/serve/rules.js +202 -0
  652. package/dist/serve/rules.js.map +1 -0
  653. package/dist/serve/sandbox-marker.d.ts +9 -0
  654. package/dist/serve/sandbox-marker.d.ts.map +1 -0
  655. package/dist/serve/sandbox-marker.js +31 -0
  656. package/dist/serve/sandbox-marker.js.map +1 -0
  657. package/dist/serve/server.d.ts +135 -0
  658. package/dist/serve/server.d.ts.map +1 -0
  659. package/dist/serve/server.js +328 -0
  660. package/dist/serve/server.js.map +1 -0
  661. package/dist/serve/standalone-assets.d.ts +67 -0
  662. package/dist/serve/standalone-assets.d.ts.map +1 -0
  663. package/dist/serve/standalone-assets.js +134 -0
  664. package/dist/serve/standalone-assets.js.map +1 -0
  665. package/dist/serve/state-store.d.ts +45 -0
  666. package/dist/serve/state-store.d.ts.map +1 -0
  667. package/dist/serve/state-store.js +120 -0
  668. package/dist/serve/state-store.js.map +1 -0
  669. package/dist/serve/studio/disk-project-store.d.ts +9 -0
  670. package/dist/serve/studio/disk-project-store.d.ts.map +1 -0
  671. package/dist/serve/studio/disk-project-store.js +173 -0
  672. package/dist/serve/studio/disk-project-store.js.map +1 -0
  673. package/dist/serve/studio/disk-workspace.d.ts +14 -0
  674. package/dist/serve/studio/disk-workspace.d.ts.map +1 -0
  675. package/dist/serve/studio/disk-workspace.js +152 -0
  676. package/dist/serve/studio/disk-workspace.js.map +1 -0
  677. package/dist/serve/studio/index.d.ts +10 -0
  678. package/dist/serve/studio/index.d.ts.map +1 -0
  679. package/dist/serve/studio/index.js +9 -0
  680. package/dist/serve/studio/index.js.map +1 -0
  681. package/dist/serve/studio/routes.d.ts +40 -0
  682. package/dist/serve/studio/routes.d.ts.map +1 -0
  683. package/dist/serve/studio/routes.js +182 -0
  684. package/dist/serve/studio/routes.js.map +1 -0
  685. package/dist/serve/studio/store-types.d.ts +45 -0
  686. package/dist/serve/studio/store-types.d.ts.map +1 -0
  687. package/dist/serve/studio/store-types.js +11 -0
  688. package/dist/serve/studio/store-types.js.map +1 -0
  689. package/dist/serve/studio-ui/assets/RulesCodeEditor-CXdSLKhO.js +23 -0
  690. package/dist/serve/studio-ui/assets/index-BlSGru_r.css +1 -0
  691. package/dist/serve/studio-ui/assets/index-BvtQIpGn.js +1211 -0
  692. package/dist/serve/studio-ui/assets/seed-3DMedLL3.js +2 -0
  693. package/dist/serve/studio-ui/index.html +32 -0
  694. package/dist/serve/studio-ui/pyric-logo.svg +76 -0
  695. package/dist/serve/vite-plugin.d.ts +57 -0
  696. package/dist/serve/vite-plugin.d.ts.map +1 -0
  697. package/dist/serve/vite-plugin.js +664 -0
  698. package/dist/serve/vite-plugin.js.map +1 -0
  699. package/dist/serve/worker/client/admin-firestore.d.ts +18 -0
  700. package/dist/serve/worker/client/admin-firestore.d.ts.map +1 -0
  701. package/dist/serve/worker/client/admin-firestore.js +26 -0
  702. package/dist/serve/worker/client/admin-firestore.js.map +1 -0
  703. package/dist/serve/worker/client/ai.d.ts +31 -0
  704. package/dist/serve/worker/client/ai.d.ts.map +1 -0
  705. package/dist/serve/worker/client/ai.js +89 -0
  706. package/dist/serve/worker/client/ai.js.map +1 -0
  707. package/dist/serve/worker/client/auth.d.ts +168 -0
  708. package/dist/serve/worker/client/auth.d.ts.map +1 -0
  709. package/dist/serve/worker/client/auth.js +322 -0
  710. package/dist/serve/worker/client/auth.js.map +1 -0
  711. package/dist/serve/worker/client/connection.d.ts +80 -0
  712. package/dist/serve/worker/client/connection.d.ts.map +1 -0
  713. package/dist/serve/worker/client/connection.js +148 -0
  714. package/dist/serve/worker/client/connection.js.map +1 -0
  715. package/dist/serve/worker/client/core.d.ts +109 -0
  716. package/dist/serve/worker/client/core.d.ts.map +1 -0
  717. package/dist/serve/worker/client/core.js +248 -0
  718. package/dist/serve/worker/client/core.js.map +1 -0
  719. package/dist/serve/worker/client/disconnect.d.ts +7 -0
  720. package/dist/serve/worker/client/disconnect.d.ts.map +1 -0
  721. package/dist/serve/worker/client/disconnect.js +26 -0
  722. package/dist/serve/worker/client/disconnect.js.map +1 -0
  723. package/dist/serve/worker/client/firestore-reads.d.ts +49 -0
  724. package/dist/serve/worker/client/firestore-reads.d.ts.map +1 -0
  725. package/dist/serve/worker/client/firestore-reads.js +139 -0
  726. package/dist/serve/worker/client/firestore-reads.js.map +1 -0
  727. package/dist/serve/worker/client/firestore-refs.d.ts +54 -0
  728. package/dist/serve/worker/client/firestore-refs.d.ts.map +1 -0
  729. package/dist/serve/worker/client/firestore-refs.js +167 -0
  730. package/dist/serve/worker/client/firestore-refs.js.map +1 -0
  731. package/dist/serve/worker/client/firestore-writes.d.ts +70 -0
  732. package/dist/serve/worker/client/firestore-writes.d.ts.map +1 -0
  733. package/dist/serve/worker/client/firestore-writes.js +169 -0
  734. package/dist/serve/worker/client/firestore-writes.js.map +1 -0
  735. package/dist/serve/worker/client/handles.d.ts +73 -0
  736. package/dist/serve/worker/client/handles.d.ts.map +1 -0
  737. package/dist/serve/worker/client/handles.js +4 -0
  738. package/dist/serve/worker/client/handles.js.map +1 -0
  739. package/dist/serve/worker/client/messaging.d.ts +16 -0
  740. package/dist/serve/worker/client/messaging.d.ts.map +1 -0
  741. package/dist/serve/worker/client/messaging.js +60 -0
  742. package/dist/serve/worker/client/messaging.js.map +1 -0
  743. package/dist/serve/worker/client/presence.d.ts +43 -0
  744. package/dist/serve/worker/client/presence.d.ts.map +1 -0
  745. package/dist/serve/worker/client/presence.js +132 -0
  746. package/dist/serve/worker/client/presence.js.map +1 -0
  747. package/dist/serve/worker/client/rtdb.d.ts +36 -0
  748. package/dist/serve/worker/client/rtdb.d.ts.map +1 -0
  749. package/dist/serve/worker/client/rtdb.js +241 -0
  750. package/dist/serve/worker/client/rtdb.js.map +1 -0
  751. package/dist/serve/worker/client/rules.d.ts +24 -0
  752. package/dist/serve/worker/client/rules.d.ts.map +1 -0
  753. package/dist/serve/worker/client/rules.js +44 -0
  754. package/dist/serve/worker/client/rules.js.map +1 -0
  755. package/dist/serve/worker/client/service-worker-connection.d.ts +3 -0
  756. package/dist/serve/worker/client/service-worker-connection.d.ts.map +1 -0
  757. package/dist/serve/worker/client/service-worker-connection.js +53 -0
  758. package/dist/serve/worker/client/service-worker-connection.js.map +1 -0
  759. package/dist/serve/worker/client/snapshots.d.ts +32 -0
  760. package/dist/serve/worker/client/snapshots.d.ts.map +1 -0
  761. package/dist/serve/worker/client/snapshots.js +46 -0
  762. package/dist/serve/worker/client/snapshots.js.map +1 -0
  763. package/dist/serve/worker/client/storage.d.ts +64 -0
  764. package/dist/serve/worker/client/storage.d.ts.map +1 -0
  765. package/dist/serve/worker/client/storage.js +125 -0
  766. package/dist/serve/worker/client/storage.js.map +1 -0
  767. package/dist/serve/worker/client/studio.d.ts +32 -0
  768. package/dist/serve/worker/client/studio.d.ts.map +1 -0
  769. package/dist/serve/worker/client/studio.js +61 -0
  770. package/dist/serve/worker/client/studio.js.map +1 -0
  771. package/dist/serve/worker/client.d.ts +43 -0
  772. package/dist/serve/worker/client.d.ts.map +1 -0
  773. package/dist/serve/worker/client.js +44 -0
  774. package/dist/serve/worker/client.js.map +1 -0
  775. package/dist/serve/worker/entry.d.ts +40 -0
  776. package/dist/serve/worker/entry.d.ts.map +1 -0
  777. package/dist/serve/worker/entry.js +144 -0
  778. package/dist/serve/worker/entry.js.map +1 -0
  779. package/dist/serve/worker/host/admin-firestore.d.ts +17 -0
  780. package/dist/serve/worker/host/admin-firestore.d.ts.map +1 -0
  781. package/dist/serve/worker/host/admin-firestore.js +92 -0
  782. package/dist/serve/worker/host/admin-firestore.js.map +1 -0
  783. package/dist/serve/worker/host/connection.d.ts +40 -0
  784. package/dist/serve/worker/host/connection.d.ts.map +1 -0
  785. package/dist/serve/worker/host/connection.js +153 -0
  786. package/dist/serve/worker/host/connection.js.map +1 -0
  787. package/dist/serve/worker/host/core.d.ts +159 -0
  788. package/dist/serve/worker/host/core.d.ts.map +1 -0
  789. package/dist/serve/worker/host/core.js +296 -0
  790. package/dist/serve/worker/host/core.js.map +1 -0
  791. package/dist/serve/worker/host/dispatch.d.ts +34 -0
  792. package/dist/serve/worker/host/dispatch.d.ts.map +1 -0
  793. package/dist/serve/worker/host/dispatch.js +267 -0
  794. package/dist/serve/worker/host/dispatch.js.map +1 -0
  795. package/dist/serve/worker/host/firestore-reads.d.ts +17 -0
  796. package/dist/serve/worker/host/firestore-reads.d.ts.map +1 -0
  797. package/dist/serve/worker/host/firestore-reads.js +108 -0
  798. package/dist/serve/worker/host/firestore-reads.js.map +1 -0
  799. package/dist/serve/worker/host/firestore-writes.d.ts +37 -0
  800. package/dist/serve/worker/host/firestore-writes.d.ts.map +1 -0
  801. package/dist/serve/worker/host/firestore-writes.js +409 -0
  802. package/dist/serve/worker/host/firestore-writes.js.map +1 -0
  803. package/dist/serve/worker/host/presence.d.ts +38 -0
  804. package/dist/serve/worker/host/presence.d.ts.map +1 -0
  805. package/dist/serve/worker/host/presence.js +280 -0
  806. package/dist/serve/worker/host/presence.js.map +1 -0
  807. package/dist/serve/worker/host/rtdb.d.ts +18 -0
  808. package/dist/serve/worker/host/rtdb.d.ts.map +1 -0
  809. package/dist/serve/worker/host/rtdb.js +128 -0
  810. package/dist/serve/worker/host/rtdb.js.map +1 -0
  811. package/dist/serve/worker/host/rules.d.ts +17 -0
  812. package/dist/serve/worker/host/rules.d.ts.map +1 -0
  813. package/dist/serve/worker/host/rules.js +118 -0
  814. package/dist/serve/worker/host/rules.js.map +1 -0
  815. package/dist/serve/worker/host/storage.d.ts +19 -0
  816. package/dist/serve/worker/host/storage.d.ts.map +1 -0
  817. package/dist/serve/worker/host/storage.js +260 -0
  818. package/dist/serve/worker/host/storage.js.map +1 -0
  819. package/dist/serve/worker/host/studio.d.ts +13 -0
  820. package/dist/serve/worker/host/studio.d.ts.map +1 -0
  821. package/dist/serve/worker/host/studio.js +30 -0
  822. package/dist/serve/worker/host/studio.js.map +1 -0
  823. package/dist/serve/worker/host/subscriptions.d.ts +21 -0
  824. package/dist/serve/worker/host/subscriptions.d.ts.map +1 -0
  825. package/dist/serve/worker/host/subscriptions.js +162 -0
  826. package/dist/serve/worker/host/subscriptions.js.map +1 -0
  827. package/dist/serve/worker/host-ai.d.ts +59 -0
  828. package/dist/serve/worker/host-ai.d.ts.map +1 -0
  829. package/dist/serve/worker/host-ai.js +158 -0
  830. package/dist/serve/worker/host-ai.js.map +1 -0
  831. package/dist/serve/worker/host-auth.d.ts +47 -0
  832. package/dist/serve/worker/host-auth.d.ts.map +1 -0
  833. package/dist/serve/worker/host-auth.js +464 -0
  834. package/dist/serve/worker/host-auth.js.map +1 -0
  835. package/dist/serve/worker/host-context.d.ts +220 -0
  836. package/dist/serve/worker/host-context.d.ts.map +1 -0
  837. package/dist/serve/worker/host-context.js +45 -0
  838. package/dist/serve/worker/host-context.js.map +1 -0
  839. package/dist/serve/worker/host-events.d.ts +21 -0
  840. package/dist/serve/worker/host-events.d.ts.map +1 -0
  841. package/dist/serve/worker/host-events.js +87 -0
  842. package/dist/serve/worker/host-events.js.map +1 -0
  843. package/dist/serve/worker/host-messaging.d.ts +60 -0
  844. package/dist/serve/worker/host-messaging.d.ts.map +1 -0
  845. package/dist/serve/worker/host-messaging.js +226 -0
  846. package/dist/serve/worker/host-messaging.js.map +1 -0
  847. package/dist/serve/worker/host.d.ts +36 -0
  848. package/dist/serve/worker/host.d.ts.map +1 -0
  849. package/dist/serve/worker/host.js +39 -0
  850. package/dist/serve/worker/host.js.map +1 -0
  851. package/dist/serve/worker/index.d.ts +22 -0
  852. package/dist/serve/worker/index.d.ts.map +1 -0
  853. package/dist/serve/worker/index.js +61 -0
  854. package/dist/serve/worker/index.js.map +1 -0
  855. package/dist/serve/worker/presence-timing.d.ts +14 -0
  856. package/dist/serve/worker/presence-timing.d.ts.map +1 -0
  857. package/dist/serve/worker/presence-timing.js +14 -0
  858. package/dist/serve/worker/presence-timing.js.map +1 -0
  859. package/dist/serve/worker/protocol.d.ts +1150 -0
  860. package/dist/serve/worker/protocol.d.ts.map +1 -0
  861. package/dist/serve/worker/protocol.js +228 -0
  862. package/dist/serve/worker/protocol.js.map +1 -0
  863. package/dist/serve/worker/serve-init.d.ts +201 -0
  864. package/dist/serve/worker/serve-init.d.ts.map +1 -0
  865. package/dist/serve/worker/serve-init.js +579 -0
  866. package/dist/serve/worker/serve-init.js.map +1 -0
  867. package/dist/serve/worker/service-worker-channel.d.ts +23 -0
  868. package/dist/serve/worker/service-worker-channel.d.ts.map +1 -0
  869. package/dist/serve/worker/service-worker-channel.js +9 -0
  870. package/dist/serve/worker/service-worker-channel.js.map +1 -0
  871. package/dist/serve/worker/service-worker-relay.d.ts +22 -0
  872. package/dist/serve/worker/service-worker-relay.d.ts.map +1 -0
  873. package/dist/serve/worker/service-worker-relay.js +63 -0
  874. package/dist/serve/worker/service-worker-relay.js.map +1 -0
  875. package/dist/serve/writer-lock.d.ts +32 -0
  876. package/dist/serve/writer-lock.d.ts.map +1 -0
  877. package/dist/serve/writer-lock.js +43 -0
  878. package/dist/serve/writer-lock.js.map +1 -0
  879. package/dist/verify/cases.d.ts +37 -0
  880. package/dist/verify/cases.d.ts.map +1 -0
  881. package/dist/verify/cases.js +173 -0
  882. package/dist/verify/cases.js.map +1 -0
  883. package/dist/verify/fixture.d.ts +100 -0
  884. package/dist/verify/fixture.d.ts.map +1 -0
  885. package/dist/verify/fixture.js +156 -0
  886. package/dist/verify/fixture.js.map +1 -0
  887. package/dist/verify/index.d.ts +102 -0
  888. package/dist/verify/index.d.ts.map +1 -0
  889. package/dist/verify/index.js +318 -0
  890. package/dist/verify/index.js.map +1 -0
  891. package/dist/verify/tools.d.ts +7 -0
  892. package/dist/verify/tools.d.ts.map +1 -0
  893. package/dist/verify/tools.js +83 -0
  894. package/dist/verify/tools.js.map +1 -0
  895. package/dist/version/compat-target.d.ts +18 -0
  896. package/dist/version/compat-target.d.ts.map +1 -0
  897. package/dist/version/compat-target.js +18 -0
  898. package/dist/version/compat-target.js.map +1 -0
  899. package/dist/vite.d.ts +12 -0
  900. package/dist/vite.d.ts.map +1 -0
  901. package/dist/vite.js +16 -0
  902. package/dist/vite.js.map +1 -0
  903. package/package.json +144 -0
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Type system for `firestore_discover_paths`.
3
+ *
4
+ * Locked by the design rationale Decisions Log.
5
+ * Do not change shape without updating that file first; v2's `diff_schemas`
6
+ * tool depends on these types JSON-roundtripping cleanly.
7
+ *
8
+ * Pure types — no runtime imports. Both the merge module and the agent-facing
9
+ * tool surface depend on this file.
10
+ */
11
+ /**
12
+ * Firestore scalar wire types. Matches the discriminator emitted by
13
+ * `_fieldsProto.<field>.valueType` (Phase 0.1 lock).
14
+ *
15
+ * `null` is represented as a scalar so descriptors can carry a single union
16
+ * shape; the merge layer separately tracks `nullable` per descriptor.
17
+ */
18
+ export type FirestoreScalarType = 'null' | 'boolean' | 'integer' | 'double' | 'timestamp' | 'string' | 'bytes' | 'geopoint';
19
+ /**
20
+ * One observed type for a field. Vector kept distinct from map per Phase 1.2
21
+ * vector-sentinel lock; reference target is the **template-form full path**
22
+ * per Phase 3.1 lock (`users/{userId}/posts`, not `posts`).
23
+ */
24
+ export type FieldType = {
25
+ kind: 'scalar';
26
+ type: FirestoreScalarType;
27
+ } | {
28
+ kind: 'reference';
29
+ targetCollection: string;
30
+ } | {
31
+ kind: 'array';
32
+ elementTypes: FieldType[];
33
+ } | {
34
+ kind: 'map';
35
+ fields: Record<string, FieldDescriptor>;
36
+ } | {
37
+ kind: 'vector';
38
+ dimension: number | 'mixed';
39
+ };
40
+ /**
41
+ * Per-field descriptor accumulated across a sampled stream.
42
+ *
43
+ * - `types` is a deduped union; vector-dim drift keeps each dimension as a
44
+ * distinct entry by default (Phase 1.2 lock).
45
+ * - `presenceSeen / presenceTotal` ratio drives presence-based agent UX; the
46
+ * denominator includes docs where the field was absent.
47
+ * - `nullable` is an annotation, not a peer type (Phase 2.1 lock — `null`
48
+ * never appears as a `FieldType` in this descriptor's types[]).
49
+ * - `enumCandidate` populated when the field qualifies per Phase 3.2 lock
50
+ * (`distinct ≤ 10 AND distinct ≤ samplesSeen / 2`); otherwise `undefined`.
51
+ * Tracked only for `scalar:string` and `scalar:integer/double`; other kinds
52
+ * are not enum candidates.
53
+ * - `example` is one observed non-null value per Phase 3.2 lock. Drives form
54
+ * placeholders, fixtures, README payloads. JSON-stringifiable (wire-typed
55
+ * primitives + arrays + plain-object maps).
56
+ * - `reservedReason` populated by the wire layer when the field name matches
57
+ * a reserved-name pattern per 0.B; agents/codegen use it to skip or
58
+ * sanitize the field.
59
+ */
60
+ export interface FieldDescriptor {
61
+ types: FieldType[];
62
+ presenceSeen: number;
63
+ presenceTotal: number;
64
+ nullable: boolean;
65
+ enumCandidate?: EnumCandidate;
66
+ example?: ExampleValue;
67
+ reservedReason?: ReservedFieldReason;
68
+ }
69
+ /** Captured low-cardinality value set for enum-candidate fields. */
70
+ export interface EnumCandidate {
71
+ /** Whether the field still passes the threshold; flips to false if widened past it. */
72
+ qualifies: boolean;
73
+ /** Distinct values observed so far (string/number); ordered by first-seen. */
74
+ values: Array<string | number>;
75
+ /** Distinct count after which the candidate is dropped (default 10). */
76
+ threshold: number;
77
+ }
78
+ /** A representative observed value, JSON-safe. */
79
+ export type ExampleValue = string | number | boolean | null | ExampleValue[] | {
80
+ [k: string]: ExampleValue;
81
+ };
82
+ /** Why a field name is flagged reserved per 0.B. */
83
+ export type ReservedFieldReason = 'firestore_reserved_name' | 'dotted_field_name' | 'numeric_field_name' | 'double_underscore_wrap';
84
+ /**
85
+ * Per-collection accumulated schema. `samplesSeen` is the doc count fed
86
+ * through `mergeDoc`, used as the presence denominator.
87
+ */
88
+ export interface FieldSchema {
89
+ fields: Record<string, FieldDescriptor>;
90
+ samplesSeen: number;
91
+ }
92
+ /**
93
+ * 4-state classification for sampling termination per Phase 2.2 lock.
94
+ *
95
+ * - `converged_via_stable`: hit `stopOnStable` consecutive no-change docs.
96
+ * Schema is *probably* complete — known false-negative is mid-stream drift
97
+ * later than `stopOnStable` docs into the stable region (out of scope per
98
+ * Phase 2.1 lock; deferred to a future `firestore_re_crawl`).
99
+ * - `converged_via_exhausted`: iterator returned empty before `maxSamples`.
100
+ * Schema is *provably* complete — we read every doc.
101
+ * - `converged_via_max`: hit `maxSamples` cap without converging. Schema may
102
+ * be incomplete; agent should treat with caution.
103
+ * - `sampling_open`: crawl interrupted (continuation boundary). Resume with
104
+ * the returned continuation handle to keep sampling.
105
+ */
106
+ export type SamplingComplete = 'converged_via_stable' | 'converged_via_exhausted' | 'converged_via_max' | 'sampling_open';
107
+ /**
108
+ * Schema for a single collection as surfaced in the tool output's
109
+ * `finalizedSchemas`.
110
+ */
111
+ export interface CollectionSchema {
112
+ templatePath: string;
113
+ examplePath?: string;
114
+ schema: FieldSchema;
115
+ samplingComplete: SamplingComplete;
116
+ declaredAt: number | null;
117
+ subcollectionTemplatePaths: string[];
118
+ }
119
+ /**
120
+ * Path within a doc to a field. `'[]'` segment denotes array element scope,
121
+ * used for nested-array/map descriptors.
122
+ */
123
+ export type FieldPath = ReadonlyArray<string | '[]'>;
124
+ /**
125
+ * Frozen `SchemaChange` enum per Phase 5 implementation plan lock. Emitted
126
+ * by the merge layer; carried in `schema_updated` events.
127
+ *
128
+ * Renamed from v1 scope's `ChangeReason` to match the agent-facing terminology
129
+ * in the validation plan's event-model lock.
130
+ */
131
+ export type SchemaChange = {
132
+ kind: 'field_added';
133
+ path: FieldPath;
134
+ type: FieldType;
135
+ } | {
136
+ kind: 'type_expanded';
137
+ path: FieldPath;
138
+ addedType: FieldType;
139
+ } | {
140
+ kind: 'presence_changed';
141
+ path: FieldPath;
142
+ presenceSeen: number;
143
+ presenceTotal: number;
144
+ } | {
145
+ kind: 'enum_added';
146
+ path: FieldPath;
147
+ values: Array<string | number>;
148
+ } | {
149
+ kind: 'enum_widened';
150
+ path: FieldPath;
151
+ addedValue: string | number;
152
+ } | {
153
+ kind: 'enum_dropped';
154
+ path: FieldPath;
155
+ reason: 'over_threshold' | 'type_widened';
156
+ } | {
157
+ kind: 'vector_dim_drift';
158
+ path: FieldPath;
159
+ addedDimension: number;
160
+ } | {
161
+ kind: 'became_nullable';
162
+ path: FieldPath;
163
+ };
164
+ /**
165
+ * Event stream emitted by `firestore_discover_paths`. Frozen enum per
166
+ * Phase 3.3 lock. Order within a batch is meaningful — agents may rely on
167
+ * `collection_discovered` arriving before `schema_updated` for the same path.
168
+ */
169
+ export type DiscoverEvent = {
170
+ kind: 'collection_discovered';
171
+ templatePath: string;
172
+ depth: number;
173
+ parentPath?: string;
174
+ } | {
175
+ kind: 'schema_updated';
176
+ templatePath: string;
177
+ changes: SchemaChange[];
178
+ } | {
179
+ kind: 'sampling_complete';
180
+ templatePath: string;
181
+ samplingComplete: SamplingComplete;
182
+ samplesSeen: number;
183
+ declaredAt: number | null;
184
+ } | {
185
+ kind: 'error';
186
+ templatePath: string;
187
+ code: string;
188
+ message: string;
189
+ };
190
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/discover/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Type system for `firestore_discover_paths`.
3
+ *
4
+ * Locked by the design rationale Decisions Log.
5
+ * Do not change shape without updating that file first; v2's `diff_schemas`
6
+ * tool depends on these types JSON-roundtripping cleanly.
7
+ *
8
+ * Pure types — no runtime imports. Both the merge module and the agent-facing
9
+ * tool surface depend on this file.
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/discover/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Firestore wire-format → FieldObservation conversion.
3
+ *
4
+ * The SDK boundary for `firestore_discover_paths`. Reads the private
5
+ * `DocumentSnapshot._fieldsProto` representation per the Phase 0.1 lock
6
+ * (numberTypeStrategy: "wire" — preserves integerValue/doubleValue
7
+ * distinction at the value boundary).
8
+ *
9
+ * Three responsibilities:
10
+ * 1. Validate `_fieldsProto` is present and shaped as expected. Fail
11
+ * loud if absent (prerequisite 0.A — silent fallback to data() would
12
+ * collapse all numeric types and corrupt downstream codegen).
13
+ * 2. Convert each wire value into a FieldObservation suitable for
14
+ * `mergeDoc` — including the example projection and the enum sample.
15
+ * 3. Flag reserved field names (prerequisite 0.B) so codegen layers can
16
+ * skip or sanitize.
17
+ */
18
+ import type { FieldObservation } from './merge.js';
19
+ import type { WireDocumentSnapshot } from './firestore-source.js';
20
+ import type { FieldType, ReservedFieldReason } from './types.js';
21
+ /**
22
+ * Thrown when `DocumentSnapshot._fieldsProto` is unavailable or malformed.
23
+ * Per prerequisite 0.A, the wire reader does NOT silently fall back to
24
+ * `data()` — that would collapse integer/double at the value boundary
25
+ * and corrupt every downstream codegen consumer.
26
+ */
27
+ export declare class WireProtoUnavailableError extends Error {
28
+ readonly name = "WireProtoUnavailableError";
29
+ constructor(opts: {
30
+ docPath: string;
31
+ reason: string;
32
+ });
33
+ }
34
+ /**
35
+ * Classify a field name. Returns undefined for normal names, or a
36
+ * specific ReservedFieldReason for names that codegen must skip/sanitize.
37
+ *
38
+ * Rules ordered by specificity (most specific first):
39
+ * - exact `__name__` etc. → firestore_reserved_name
40
+ * - contains '.' → dotted_field_name (breaks dot-path access)
41
+ * - pure-numeric → numeric_field_name (looks like array index)
42
+ * - __foo__ → double_underscore_wrap (sentinel collision)
43
+ */
44
+ export declare function classifyFieldName(name: string): ReservedFieldReason | undefined;
45
+ export type WireValue = any;
46
+ /**
47
+ * Pure type extraction. Does not extract examples or enum samples — use
48
+ * `wireValueToObservation` for the full observation.
49
+ */
50
+ export declare function wireValueToFieldType(v: WireValue): FieldType;
51
+ /**
52
+ * Full observation including JSON-safe example projection and enum sample
53
+ * extraction. The merge layer consumes this shape.
54
+ */
55
+ export declare function wireValueToObservation(v: WireValue): FieldObservation;
56
+ /**
57
+ * Convert a Firestore document snapshot into a FieldObservation map.
58
+ * Detects reserved field names per 0.B — they appear in the output but
59
+ * the descriptor returned by the merge layer carries `reservedReason`
60
+ * so codegen can skip them.
61
+ *
62
+ * Throws `WireProtoUnavailableError` if `_fieldsProto` is absent (0.A
63
+ * fail-loud contract). Empty docs (proto present but zero keys) return
64
+ * an empty record without throwing.
65
+ */
66
+ export declare function snapshotToObservations(snap: WireDocumentSnapshot): {
67
+ observations: Record<string, FieldObservation>;
68
+ reservedNames: Record<string, ReservedFieldReason>;
69
+ };
70
+ //# sourceMappingURL=wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/discover/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAEV,SAAS,EACT,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAIpB;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,SAAkB,IAAI,+BAA+B;gBACzC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAWtD;AAMD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAQ/E;AAKD,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,CA8C5D;AAID;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAMrE;AA4GD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG;IAClE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC/C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CACpD,CAqCA"}
@@ -0,0 +1,309 @@
1
+ /**
2
+ * Firestore wire-format → FieldObservation conversion.
3
+ *
4
+ * The SDK boundary for `firestore_discover_paths`. Reads the private
5
+ * `DocumentSnapshot._fieldsProto` representation per the Phase 0.1 lock
6
+ * (numberTypeStrategy: "wire" — preserves integerValue/doubleValue
7
+ * distinction at the value boundary).
8
+ *
9
+ * Three responsibilities:
10
+ * 1. Validate `_fieldsProto` is present and shaped as expected. Fail
11
+ * loud if absent (prerequisite 0.A — silent fallback to data() would
12
+ * collapse all numeric types and corrupt downstream codegen).
13
+ * 2. Convert each wire value into a FieldObservation suitable for
14
+ * `mergeDoc` — including the example projection and the enum sample.
15
+ * 3. Flag reserved field names (prerequisite 0.B) so codegen layers can
16
+ * skip or sanitize.
17
+ */
18
+ import { fieldTypeKey } from './merge.js';
19
+ // ─── Error type for 0.A ───────────────────────────────────────────────────
20
+ /**
21
+ * Thrown when `DocumentSnapshot._fieldsProto` is unavailable or malformed.
22
+ * Per prerequisite 0.A, the wire reader does NOT silently fall back to
23
+ * `data()` — that would collapse integer/double at the value boundary
24
+ * and corrupt every downstream codegen consumer.
25
+ */
26
+ export class WireProtoUnavailableError extends Error {
27
+ name = 'WireProtoUnavailableError';
28
+ constructor(opts) {
29
+ super(`firestore_discover_paths could not read wire types from document ` +
30
+ `"${opts.docPath}": ${opts.reason}. The discover_paths tool depends on ` +
31
+ `firebase-admin DocumentSnapshot._fieldsProto for accurate ` +
32
+ `integer/double type inference (Phase 0.1 lock). If this is a ` +
33
+ `firebase-admin upgrade incompatibility, set ` +
34
+ `numberTypeStrategy: "heuristic" to opt into the lossy fallback ` +
35
+ `knowingly. Otherwise file an issue with the admin SDK version.`);
36
+ }
37
+ }
38
+ // ─── Reserved-name detection (0.B) ────────────────────────────────────────
39
+ const FIRESTORE_RESERVED_NAMES = new Set(['__name__']);
40
+ /**
41
+ * Classify a field name. Returns undefined for normal names, or a
42
+ * specific ReservedFieldReason for names that codegen must skip/sanitize.
43
+ *
44
+ * Rules ordered by specificity (most specific first):
45
+ * - exact `__name__` etc. → firestore_reserved_name
46
+ * - contains '.' → dotted_field_name (breaks dot-path access)
47
+ * - pure-numeric → numeric_field_name (looks like array index)
48
+ * - __foo__ → double_underscore_wrap (sentinel collision)
49
+ */
50
+ export function classifyFieldName(name) {
51
+ if (FIRESTORE_RESERVED_NAMES.has(name))
52
+ return 'firestore_reserved_name';
53
+ if (name.includes('.'))
54
+ return 'dotted_field_name';
55
+ if (/^-?\d+$/.test(name))
56
+ return 'numeric_field_name';
57
+ if (name.length >= 4 && name.startsWith('__') && name.endsWith('__')) {
58
+ return 'double_underscore_wrap';
59
+ }
60
+ return undefined;
61
+ }
62
+ /**
63
+ * Pure type extraction. Does not extract examples or enum samples — use
64
+ * `wireValueToObservation` for the full observation.
65
+ */
66
+ export function wireValueToFieldType(v) {
67
+ if ('nullValue' in v)
68
+ return { kind: 'scalar', type: 'null' };
69
+ if ('booleanValue' in v)
70
+ return { kind: 'scalar', type: 'boolean' };
71
+ if ('integerValue' in v)
72
+ return { kind: 'scalar', type: 'integer' };
73
+ if ('doubleValue' in v)
74
+ return { kind: 'scalar', type: 'double' };
75
+ if ('timestampValue' in v)
76
+ return { kind: 'scalar', type: 'timestamp' };
77
+ if ('stringValue' in v)
78
+ return { kind: 'scalar', type: 'string' };
79
+ if ('bytesValue' in v)
80
+ return { kind: 'scalar', type: 'bytes' };
81
+ if ('geoPointValue' in v)
82
+ return { kind: 'scalar', type: 'geopoint' };
83
+ if ('referenceValue' in v) {
84
+ return {
85
+ kind: 'reference',
86
+ targetCollection: parseRefTargetCollectionPath(v.referenceValue),
87
+ };
88
+ }
89
+ if ('arrayValue' in v) {
90
+ const values = v.arrayValue?.values ?? [];
91
+ const elementTypes = values.map(wireValueToFieldType);
92
+ const seen = new Set();
93
+ const deduped = elementTypes.filter((t) => {
94
+ const k = fieldTypeKey(t);
95
+ if (seen.has(k))
96
+ return false;
97
+ seen.add(k);
98
+ return true;
99
+ });
100
+ return { kind: 'array', elementTypes: deduped };
101
+ }
102
+ if ('mapValue' in v) {
103
+ const fieldsObj = v.mapValue?.fields ?? {};
104
+ // Vector sentinel detection (Phase 1.2 lock)
105
+ const sentinel = fieldsObj['__type__'];
106
+ if (sentinel?.stringValue === '__vector__') {
107
+ const arr = fieldsObj['value']?.arrayValue?.values ?? [];
108
+ return { kind: 'vector', dimension: arr.length };
109
+ }
110
+ const fields = {};
111
+ for (const [k, sub] of Object.entries(fieldsObj)) {
112
+ fields[k] = descriptorFromObservation(wireValueToObservation(sub));
113
+ }
114
+ return { kind: 'map', fields };
115
+ }
116
+ throw new Error(`Unrecognized wire value: ${JSON.stringify(Object.keys(v))}`);
117
+ }
118
+ // ─── Wire value → FieldObservation ────────────────────────────────────────
119
+ /**
120
+ * Full observation including JSON-safe example projection and enum sample
121
+ * extraction. The merge layer consumes this shape.
122
+ */
123
+ export function wireValueToObservation(v) {
124
+ const type = wireValueToFieldType(v);
125
+ const isNull = type.kind === 'scalar' && type.type === 'null';
126
+ const example = exampleFromWire(v);
127
+ const enumSample = enumSampleFromWire(v, type);
128
+ return { type, isNull, example, enumSample };
129
+ }
130
+ /** Project a wire value into a JSON-safe example. */
131
+ function exampleFromWire(v) {
132
+ if ('nullValue' in v)
133
+ return null;
134
+ if ('booleanValue' in v)
135
+ return v.booleanValue;
136
+ if ('stringValue' in v)
137
+ return v.stringValue;
138
+ if ('integerValue' in v) {
139
+ const raw = v.integerValue;
140
+ // integerValue is wire-encoded as a string (int64). Parse but cap at
141
+ // safe integer range; outside that, return as-string to preserve.
142
+ const n = typeof raw === 'string' ? Number(raw) : raw;
143
+ if (Number.isSafeInteger(n))
144
+ return n;
145
+ return String(raw);
146
+ }
147
+ if ('doubleValue' in v)
148
+ return v.doubleValue;
149
+ // timestamp/bytes/geopoint/reference: not codegen-friendly placeholders;
150
+ // omit so descriptor.example stays undefined and codegen knows to skip.
151
+ if ('timestampValue' in v)
152
+ return undefined;
153
+ if ('bytesValue' in v)
154
+ return undefined;
155
+ if ('geoPointValue' in v)
156
+ return undefined;
157
+ if ('referenceValue' in v)
158
+ return undefined;
159
+ if ('arrayValue' in v) {
160
+ const values = v.arrayValue?.values ?? [];
161
+ const projected = [];
162
+ for (const e of values) {
163
+ const proj = exampleFromWire(e);
164
+ // Skip elements that don't project (e.g., bytes inside an array).
165
+ // Better than nulling them out — keeps the example shape useful.
166
+ if (proj !== undefined)
167
+ projected.push(proj);
168
+ }
169
+ return projected;
170
+ }
171
+ if ('mapValue' in v) {
172
+ const fieldsObj = v.mapValue?.fields ?? {};
173
+ if (fieldsObj['__type__']?.stringValue === '__vector__')
174
+ return undefined;
175
+ const out = {};
176
+ for (const [k, sub] of Object.entries(fieldsObj)) {
177
+ const proj = exampleFromWire(sub);
178
+ if (proj !== undefined)
179
+ out[k] = proj;
180
+ }
181
+ return out;
182
+ }
183
+ return undefined;
184
+ }
185
+ /** Extract an enum sample if the type is enum-eligible (string/int/double). */
186
+ function enumSampleFromWire(v, type) {
187
+ if (type.kind !== 'scalar')
188
+ return undefined;
189
+ if (type.type === 'string')
190
+ return v.stringValue;
191
+ if (type.type === 'integer') {
192
+ const raw = v.integerValue;
193
+ const n = typeof raw === 'string' ? Number(raw) : raw;
194
+ return Number.isSafeInteger(n) ? n : undefined;
195
+ }
196
+ if (type.type === 'double')
197
+ return v.doubleValue;
198
+ return undefined;
199
+ }
200
+ /** Tiny adapter — turns a single observation into a one-shot descriptor for
201
+ * nested map fields. Mirrors what mergeDoc does for first-time keys. */
202
+ function descriptorFromObservation(obs) {
203
+ const isNull = obs.isNull;
204
+ return {
205
+ types: isNull ? [] : [obs.type],
206
+ presenceSeen: 1,
207
+ presenceTotal: 1,
208
+ nullable: isNull,
209
+ enumCandidate: !isNull &&
210
+ obs.type.kind === 'scalar' &&
211
+ (obs.type.type === 'string' ||
212
+ obs.type.type === 'integer' ||
213
+ obs.type.type === 'double') &&
214
+ obs.enumSample !== undefined
215
+ ? { qualifies: false, values: [obs.enumSample], threshold: 10 }
216
+ : undefined,
217
+ example: obs.example,
218
+ };
219
+ }
220
+ // ─── Reference path parsing ───────────────────────────────────────────────
221
+ /**
222
+ * Parse a referenceValue string into the full collection path of the target.
223
+ *
224
+ * Format: projects/<p>/databases/<d>/documents/<coll>/<doc>[/<coll>/<doc>...]
225
+ * For `projects/x/databases/(default)/documents/users/uid_1/posts/p_1`,
226
+ * returns `users/uid_1/posts` (full path, Phase 1.2 lock for unambiguity).
227
+ *
228
+ * Note: this is the *literal* path of the observed reference. Callers that
229
+ * want the template form must substitute doc IDs into wildcards based on
230
+ * the parent collection's template path.
231
+ */
232
+ function parseRefTargetCollectionPath(refPath) {
233
+ const idx = refPath.indexOf('/documents/');
234
+ if (idx === -1)
235
+ return refPath; // unparseable; preserve raw
236
+ const tail = refPath.slice(idx + '/documents/'.length);
237
+ const segments = tail.split('/');
238
+ if (segments.length < 2 || segments.length % 2 !== 0)
239
+ return tail;
240
+ return segments.slice(0, -1).join('/');
241
+ }
242
+ // ─── Document snapshot → observations ─────────────────────────────────────
243
+ /**
244
+ * Convert a Firestore document snapshot into a FieldObservation map.
245
+ * Detects reserved field names per 0.B — they appear in the output but
246
+ * the descriptor returned by the merge layer carries `reservedReason`
247
+ * so codegen can skip them.
248
+ *
249
+ * Throws `WireProtoUnavailableError` if `_fieldsProto` is absent (0.A
250
+ * fail-loud contract). Empty docs (proto present but zero keys) return
251
+ * an empty record without throwing.
252
+ */
253
+ export function snapshotToObservations(snap) {
254
+ const proto = snap._fieldsProto;
255
+ const docPath = snap.ref?.path ?? '<unknown>';
256
+ if (proto === undefined || proto === null) {
257
+ throw new WireProtoUnavailableError({
258
+ docPath,
259
+ reason: '_fieldsProto is undefined; firebase-admin SDK contract may have changed',
260
+ });
261
+ }
262
+ const observations = {};
263
+ const reservedNames = {};
264
+ for (const [k, v] of Object.entries(proto)) {
265
+ // Sanity check: every value must have a valueType discriminator (or
266
+ // one of the explicit *Value keys). If neither is present, we're
267
+ // looking at a shape we don't recognize — fail loud.
268
+ if (v == null || (typeof v !== 'object')) {
269
+ throw new WireProtoUnavailableError({
270
+ docPath,
271
+ reason: `field "${k}" has non-object proto value (${typeof v}); SDK contract may have changed`,
272
+ });
273
+ }
274
+ if (!hasAnyKnownValueKey(v)) {
275
+ throw new WireProtoUnavailableError({
276
+ docPath,
277
+ reason: `field "${k}" has no recognizable valueType discriminator; SDK contract may have changed`,
278
+ });
279
+ }
280
+ const reason = classifyFieldName(k);
281
+ if (reason)
282
+ reservedNames[k] = reason;
283
+ observations[k] = wireValueToObservation(v);
284
+ }
285
+ return { observations, reservedNames };
286
+ }
287
+ const KNOWN_VALUE_KEYS = [
288
+ 'nullValue',
289
+ 'booleanValue',
290
+ 'integerValue',
291
+ 'doubleValue',
292
+ 'timestampValue',
293
+ 'stringValue',
294
+ 'bytesValue',
295
+ 'geoPointValue',
296
+ 'referenceValue',
297
+ 'arrayValue',
298
+ 'mapValue',
299
+ ];
300
+ function hasAnyKnownValueKey(v) {
301
+ for (const k of KNOWN_VALUE_KEYS)
302
+ if (k in v)
303
+ return true;
304
+ // valueType discriminator alone (without a peer *Value key) is NOT
305
+ // sufficient — some SDK versions emit it but still need the parallel
306
+ // key for value access.
307
+ return false;
308
+ }
309
+ //# sourceMappingURL=wire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/discover/wire.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { type ChildProcess } from 'node:child_process';
2
+ export interface SerializedFunctionsRtdbError {
3
+ name: string;
4
+ message: string;
5
+ stack?: string;
6
+ }
7
+ export type FunctionsRtdbChildEvent = {
8
+ type: 'execution';
9
+ exportName: string;
10
+ ref: string;
11
+ params: Record<string, string>;
12
+ status: 'fulfilled';
13
+ } | {
14
+ type: 'execution';
15
+ exportName: string;
16
+ ref: string;
17
+ params: Record<string, string>;
18
+ status: 'rejected';
19
+ error: SerializedFunctionsRtdbError;
20
+ } | {
21
+ type: 'delivery-error';
22
+ exportName: string;
23
+ error: SerializedFunctionsRtdbError;
24
+ };
25
+ export interface FunctionsRtdbChildReady {
26
+ triggerCount: number;
27
+ unsupportedTriggers: UnsupportedFunctionsTrigger[];
28
+ }
29
+ export interface UnsupportedFunctionsTrigger {
30
+ exportName: string;
31
+ eventType: string;
32
+ }
33
+ export interface SpawnFunctionsRtdbChildOptions {
34
+ cwd: string;
35
+ entry: string;
36
+ env: NodeJS.ProcessEnv;
37
+ instance: string;
38
+ location: string;
39
+ databaseHost?: string;
40
+ childModuleUrl?: string | URL;
41
+ nodeExecutable?: string;
42
+ onEvent?(event: FunctionsRtdbChildEvent): void;
43
+ }
44
+ export interface FunctionsRtdbChildHandle {
45
+ child: ChildProcess;
46
+ ready: Promise<FunctionsRtdbChildReady>;
47
+ exited: Promise<number>;
48
+ stop(): Promise<number>;
49
+ }
50
+ /** Spawn the real Firebase Functions SDK in an isolated Node process. */
51
+ export declare function spawnFunctionsRtdbChild(options: SpawnFunctionsRtdbChildOptions): FunctionsRtdbChildHandle;
52
+ //# sourceMappingURL=child.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child.d.ts","sourceRoot":"","sources":["../../src/functions-rtdb/child.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAkB9D,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,uBAAuB,GAC/B;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;CACrB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,4BAA4B,CAAC;CACrC,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,4BAA4B,CAAC;CACrC,CAAC;AAEN,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,2BAA2B,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAyBD,yEAAyE;AACzE,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,wBAAwB,CA8F1B"}