@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,1489 @@
1
+
2
+ <!-- Generated from published package declarations via TypeDoc. Do not edit by hand; run bun run docs:api:generate. -->
3
+
4
+ ## Interfaces
5
+
6
+ <a id="metricpoint"></a>
7
+
8
+ ### MetricPoint
9
+
10
+ #### Properties
11
+
12
+ | Property | Type | Description |
13
+ | :------ | :------ | :------ |
14
+ | <a id="end"></a> `end` | `number` | - |
15
+ | <a id="index"></a> `index` | `number` | 0-based bucket index, left (oldest) to right (newest). |
16
+ | <a id="start"></a> `start` | `number` | Half-open bounds of this bucket `[start, end)` in epoch-ms. |
17
+
18
+ ***
19
+
20
+ <a id="metricseries"></a>
21
+
22
+ ### MetricSeries
23
+
24
+ #### Properties
25
+
26
+ | Property | Type | Description |
27
+ | :------ | :------ | :------ |
28
+ | <a id="key"></a> `key` | `string` | - |
29
+ | <a id="label"></a> `label` | `string` | - |
30
+ | <a id="total"></a> `total` | `number` | Sum of `values` — the period total (the legend/card number). |
31
+ | <a id="values"></a> `values` | `number`[] | One count per bucket, aligned with `points`. |
32
+
33
+ ***
34
+
35
+ <a id="ruleheatmapentry"></a>
36
+
37
+ ### RuleHeatmapEntry
38
+
39
+ #### Properties
40
+
41
+ | Property | Type | Description |
42
+ | :------ | :------ | :------ |
43
+ | <a id="allows"></a> `allows` | `number` | - |
44
+ | <a id="denies"></a> `denies` | `number` | - |
45
+ | <a id="denyratio"></a> `denyRatio` | `number` | `denies / total` — 0 when the rule never denied. |
46
+ | <a id="operations"></a> `operations` | `string`[] | Union of all operations seen matching this rule. |
47
+ | <a id="ruleindex"></a> `ruleIndex` | `number` | The rule's index in the rules file. |
48
+ | <a id="total-1"></a> `total` | `number` | Total events that matched this rule. |
49
+ | <a id="unsupported"></a> `unsupported` | `number` | - |
50
+
51
+ ***
52
+
53
+ <a id="ruleheatmapprops"></a>
54
+
55
+ ### RuleHeatmapProps
56
+
57
+ #### Properties
58
+
59
+ | Property | Type | Description |
60
+ | :------ | :------ | :------ |
61
+ | <a id="classname"></a> `className?` | `string` | - |
62
+ | <a id="emptystate"></a> `emptyState?` | `ReactNode` | - |
63
+ | <a id="entries"></a> `entries` | [`RuleHeatmapEntry`](#ruleheatmapentry)[] | Per-rule rollup from `useRuleHeatmap`. |
64
+ | <a id="onselectrule"></a> `onSelectRule?` | (`ruleIndex`: `number`) => `void` | Fired when a rule row is clicked — wire this to the log filter for the cross-view "click a rule, see its traffic" interaction. |
65
+ | <a id="selectedruleindex"></a> `selectedRuleIndex?` | `number` | Marks one rule row as the active selection. |
66
+
67
+ ***
68
+
69
+ <a id="timewindow"></a>
70
+
71
+ ### TimeWindow
72
+
73
+ A half-open time window `[start, end)` in epoch-ms. The timeline
74
+ buckets events whose `at` falls inside it; events outside are
75
+ dropped from the histogram (but still counted in `outOfWindow`).
76
+
77
+ #### Properties
78
+
79
+ | Property | Type |
80
+ | :------ | :------ |
81
+ | <a id="end-1"></a> `end` | `number` |
82
+ | <a id="start-1"></a> `start` | `number` |
83
+
84
+ ***
85
+
86
+ <a id="trafficauthstate"></a>
87
+
88
+ ### TrafficAuthState
89
+
90
+ #### Properties
91
+
92
+ | Property | Type |
93
+ | :------ | :------ |
94
+ | <a id="token"></a> `token?` | `Record`\<`string`, `unknown`\> |
95
+ | <a id="uid"></a> `uid` | `string` |
96
+
97
+ ***
98
+
99
+ <a id="trafficbucket"></a>
100
+
101
+ ### TrafficBucket
102
+
103
+ #### Properties
104
+
105
+ | Property | Type | Description |
106
+ | :------ | :------ | :------ |
107
+ | <a id="allows-1"></a> `allows` | `number` | `count - denies` — allowed + unsupported. The "non-deny" stack. |
108
+ | <a id="count"></a> `count` | `number` | Total events that fell in this bucket. |
109
+ | <a id="denies-1"></a> `denies` | `number` | How many of `count` were denied. |
110
+ | <a id="denyheightratio"></a> `denyHeightRatio` | `number` | `denies / maxCount` — 0..1. The deny sub-stack height as a fraction of the tallest bucket, so the deny segment is drawn to the same scale as the full bar. Drives `--pyric-bucket-deny-h`. |
111
+ | <a id="end-2"></a> `end` | `number` | - |
112
+ | <a id="heightratio"></a> `heightRatio` | `number` | `count / maxCount` across all buckets — 0..1. The full bar height as a fraction of the tallest bucket. Drives `--pyric-bucket-h`. |
113
+ | <a id="index-1"></a> `index` | `number` | 0-based bucket index, left (oldest) to right (newest). |
114
+ | <a id="start-2"></a> `start` | `number` | Half-open bounds of this bucket `[start, end)` in epoch-ms. |
115
+
116
+ ***
117
+
118
+ <a id="trafficcounts"></a>
119
+
120
+ ### TrafficCounts
121
+
122
+ #### Properties
123
+
124
+ | Property | Type | Description |
125
+ | :------ | :------ | :------ |
126
+ | <a id="denied"></a> `denied` | `number` | Of those, how many were denied. |
127
+ | <a id="listener"></a> `listener` | `number` | Of those, how many are listener re-evals. |
128
+ | <a id="total-2"></a> `total` | `number` | Events currently in the buffer. |
129
+
130
+ ***
131
+
132
+ <a id="trafficdetailprops"></a>
133
+
134
+ ### TrafficDetailProps
135
+
136
+ #### Properties
137
+
138
+ | Property | Type | Description |
139
+ | :------ | :------ | :------ |
140
+ | <a id="classname-1"></a> `className?` | `string` | - |
141
+ | <a id="event"></a> `event` | [`TrafficEvent`](#trafficevent) | - |
142
+ | <a id="formattime"></a> `formatTime?` | (`at`: `number`) => `string` | Override the timestamp rendering. Default is `HH:MM:SS`. |
143
+ | <a id="onback"></a> `onBack?` | () => `void` | Fired by the back affordance. When absent, no back button. |
144
+ | <a id="renderclassification"></a> `renderClassification?` | (`event`: [`TrafficEvent`](#trafficevent)) => `ReactNode` | Render-prop slot below the header — the playground drops its denial overlay (classification + LLM analysis) here. The library doesn't own that analysis. |
145
+
146
+ ***
147
+
148
+ <a id="trafficevent"></a>
149
+
150
+ ### TrafficEvent
151
+
152
+ #### Properties
153
+
154
+ | Property | Type | Description |
155
+ | :------ | :------ | :------ |
156
+ | <a id="at"></a> `at` | `number` | `Date.now()` at op start. |
157
+ | <a id="auth"></a> `auth` | [`TrafficAuthState`](#trafficauthstate) | - |
158
+ | <a id="durationms"></a> `durationMs?` | `number` | Canonical service-operation duration. |
159
+ | <a id="evalms"></a> `evalMs?` | `number` | Simulator eval duration in ms. De-featured in the UI (local simulator) — present for the detail panel only. |
160
+ | <a id="groupid"></a> `groupId?` | `string` | Shared across ops in one batch or transaction. |
161
+ | <a id="groupkind"></a> `groupKind?` | \| `string` & \{ \} \| `"transaction"` \| `"batch"` | - |
162
+ | <a id="id"></a> `id` | `string` | Unique per emission. |
163
+ | <a id="kind"></a> `kind?` | `"request"` \| `"operation"` | Source event kind. Firestore request events omit this in older adapters. |
164
+ | <a id="matchedrule"></a> `matchedRule?` | [`TrafficMatchedRule`](#trafficmatchedrule) | Parsed from the matched `Rule #N` debug line — absent if none. |
165
+ | <a id="method"></a> `method` | [`TrafficMethod`](#trafficmethod) | - |
166
+ | <a id="origin"></a> `origin` | [`TrafficOrigin`](#trafficorigin) | - |
167
+ | <a id="path"></a> `path` | `string` | - |
168
+ | <a id="reasons"></a> `reasons` | `string`[] | Simulator debug messages — `Rule #N (op) → ALLOW` format. |
169
+ | <a id="request"></a> `request?` | \{ `data?`: `unknown`; `query?`: `unknown`; `resourceData?`: `unknown`; \} | Proposed write payload — absent on reads + delete. |
170
+ | `request.data?` | `unknown` | - |
171
+ | `request.query?` | `unknown` | - |
172
+ | `request.resourceData?` | `unknown` | - |
173
+ | <a id="resourceafter"></a> `resourceAfter?` | [`TrafficResourceState`](#trafficresourcestate) | Projected doc state after the write — absent on reads. |
174
+ | <a id="resourcebefore"></a> `resourceBefore?` | [`TrafficResourceState`](#trafficresourcestate) | Existing doc state before the write (or the read target). |
175
+ | <a id="result"></a> `result` | [`TrafficResult`](#trafficresult) | - |
176
+ | <a id="service"></a> `service?` | \| `"firestore"` \| `"auth"` \| `"storage"` \| `"rtdb"` \| `string` & \{ \} | Service that emitted the event. Omitted means Firestore. |
177
+ | <a id="triggeredby"></a> `triggeredBy?` | \{ `method`: `string`; `path?`: `string`; \} | For listener re-evals — the originating user op. |
178
+ | `triggeredBy.method` | `string` | - |
179
+ | `triggeredBy.path?` | `string` | - |
180
+
181
+ ***
182
+
183
+ <a id="trafficfilterstate"></a>
184
+
185
+ ### TrafficFilterState
186
+
187
+ #### Properties
188
+
189
+ | Property | Type |
190
+ | :------ | :------ |
191
+ | <a id="origin-1"></a> `origin` | [`TrafficOriginFilter`](#trafficoriginfilter) |
192
+ | <a id="pathquery"></a> `pathQuery` | `string` |
193
+ | <a id="result-1"></a> `result` | [`TrafficResultFilter`](#trafficresultfilter) |
194
+
195
+ ***
196
+
197
+ <a id="trafficgroup"></a>
198
+
199
+ ### TrafficGroup
200
+
201
+ #### Properties
202
+
203
+ | Property | Type | Description |
204
+ | :------ | :------ | :------ |
205
+ | <a id="count-1"></a> `count` | `number` | - |
206
+ | <a id="denies-2"></a> `denies` | `number` | - |
207
+ | <a id="events"></a> `events` | [`TrafficEvent`](#trafficevent)[] | - |
208
+ | <a id="key-1"></a> `key` | `string` | `groupId` for batch/transaction; a synthetic key for listener runs. Stable enough for a React key. |
209
+ | <a id="kind-1"></a> `kind` | [`TrafficGroupKind`](#trafficgroupkind-1) | - |
210
+ | <a id="type"></a> `type` | `"group"` | - |
211
+
212
+ ***
213
+
214
+ <a id="trafficgrouprowprops"></a>
215
+
216
+ ### TrafficGroupRowProps
217
+
218
+ #### Properties
219
+
220
+ | Property | Type | Description |
221
+ | :------ | :------ | :------ |
222
+ | <a id="classname-2"></a> `className?` | `string` | - |
223
+ | <a id="defaultexpanded"></a> `defaultExpanded?` | `boolean` | Whether the group starts expanded. Default false — grouping exists to collapse volume, so collapsed is the useful default. |
224
+ | <a id="formattime-1"></a> `formatTime?` | (`at`: `number`) => `string` | Passed through to each member `<TrafficRow>`. |
225
+ | <a id="group"></a> `group` | [`TrafficGroup`](#trafficgroup) | - |
226
+ | <a id="onselect"></a> `onSelect?` | (`event`: [`TrafficEvent`](#trafficevent)) => `void` | - |
227
+ | <a id="renderclassification-1"></a> `renderClassification?` | (`event`: [`TrafficEvent`](#trafficevent)) => `ReactNode` | Passed through to each member `<TrafficRow>`. |
228
+ | <a id="selectedid"></a> `selectedId?` | `string` | - |
229
+
230
+ ***
231
+
232
+ <a id="trafficlinechartprops"></a>
233
+
234
+ ### TrafficLineChartProps
235
+
236
+ #### Properties
237
+
238
+ | Property | Type | Description |
239
+ | :------ | :------ | :------ |
240
+ | <a id="classname-3"></a> `className?` | `string` | - |
241
+ | <a id="emptystate-1"></a> `emptyState?` | `ReactNode` | - |
242
+ | <a id="formattime-2"></a> `formatTime?` | (`t`: `number`) => `string` | - |
243
+ | <a id="formatvalue"></a> `formatValue?` | (`n`: `number`) => `string` | - |
244
+ | <a id="omitzeroseries"></a> `omitZeroSeries?` | `boolean` | Omit all-zero series from the plot and tooltip while retaining their explicit total in the accompanying metric strip. |
245
+ | <a id="points"></a> `points` | readonly [`MetricPoint`](#metricpoint)[] | - |
246
+ | <a id="series"></a> `series` | readonly [`MetricSeries`](#metricseries)[] | - |
247
+ | <a id="visible"></a> `visible?` | `ReadonlySet`\<`string`\> | Series keys currently drawn. Omit to draw every series. Pair with [TrafficMetricCards](#trafficmetriccards)' `visible`/`onToggle` so the legend cards and the chart's lines toggle in lockstep. |
248
+
249
+ ***
250
+
251
+ <a id="trafficlogprops"></a>
252
+
253
+ ### TrafficLogProps
254
+
255
+ #### Properties
256
+
257
+ | Property | Type | Description |
258
+ | :------ | :------ | :------ |
259
+ | <a id="classname-4"></a> `className?` | `string` | - |
260
+ | <a id="emptystate-2"></a> `emptyState?` | `ReactNode` | - |
261
+ | <a id="events-1"></a> `events` | [`TrafficEvent`](#trafficevent)[] | Events to render, in display order. The hook layer decides the order — `<TrafficLog>` renders the array as given. |
262
+ | <a id="formattime-3"></a> `formatTime?` | (`at`: `number`) => `string` | Passed through to each `<TrafficRow>`. |
263
+ | <a id="items"></a> `items?` | [`TrafficLogItem`](#trafficlogitem)[] | Grouped items from `useTrafficGroups`. When provided, the log renders singles + collapsible group rows and does NOT virtualize — grouping is itself the volume reducer (a 250-event listener storm becomes one group row). `events` is ignored. |
264
+ | <a id="onselect-1"></a> `onSelect?` | (`event`: [`TrafficEvent`](#trafficevent)) => `void` | - |
265
+ | <a id="renderclassification-2"></a> `renderClassification?` | (`event`: [`TrafficEvent`](#trafficevent)) => `ReactNode` | Passed through to each `<TrafficRow>`. |
266
+ | <a id="renderrow"></a> `renderRow?` | (`event`: [`TrafficEvent`](#trafficevent), `selected`: `boolean`) => `ReactNode` | Full escape hatch — render a row yourself instead of the default `<TrafficRow>`. Receives the event and its selected state. Applies to the flat (`events`) path only. |
267
+ | <a id="rowheight"></a> `rowHeight?` | `number` \| (`index`: `number`) => `number` | Estimated row height when virtualizing. Default 28. |
268
+ | <a id="selectedid-1"></a> `selectedId?` | `string` | The selected event's id, marked with `data-pyric-selected`. |
269
+ | <a id="virtualizedheight"></a> `virtualizedHeight?` | `string` \| `number` | Pixel height the virtualized scroll container fills. Default `'60vh'`. |
270
+ | <a id="virtualizethreshold"></a> `virtualizeThreshold?` | `number` | Above this row count, the list virtualizes via `<VirtualList>`. Default 100 — a `load-test`-shaped session can emit 100k+ events, so virtualization is load-bearing, not polish. |
271
+
272
+ ***
273
+
274
+ <a id="trafficmatchedrule"></a>
275
+
276
+ ### TrafficMatchedRule
277
+
278
+ #### Properties
279
+
280
+ | Property | Type |
281
+ | :------ | :------ |
282
+ | <a id="operations-1"></a> `operations` | `string`[] |
283
+ | <a id="ruleindex-1"></a> `ruleIndex` | `number` |
284
+
285
+ ***
286
+
287
+ <a id="trafficmetriccardsprops"></a>
288
+
289
+ ### TrafficMetricCardsProps
290
+
291
+ #### Properties
292
+
293
+ | Property | Type | Description |
294
+ | :------ | :------ | :------ |
295
+ | <a id="classname-5"></a> `className?` | `string` | - |
296
+ | <a id="formatvalue-1"></a> `formatValue?` | (`n`: `number`) => `string` | - |
297
+ | <a id="ontoggle"></a> `onToggle?` | (`key`: `string`) => `void` | - |
298
+ | <a id="series-1"></a> `series` | readonly [`MetricSeries`](#metricseries)[] | - |
299
+ | <a id="visible-1"></a> `visible?` | `ReadonlySet`\<`string`\> | When supplied (with `onToggle`), each card gets a checkbox and doubles as the chart's legend — Console reference semantics ("toggle series visibility"). Omit for a read-only totals strip. |
300
+
301
+ ***
302
+
303
+ <a id="trafficmetricsresult"></a>
304
+
305
+ ### TrafficMetricsResult
306
+
307
+ #### Properties
308
+
309
+ | Property | Type | Description |
310
+ | :------ | :------ | :------ |
311
+ | <a id="maxvalue"></a> `maxValue` | `number` | The largest single-bucket value across every series — the shared y-scale divisor a chart would use by default. |
312
+ | <a id="points-1"></a> `points` | [`MetricPoint`](#metricpoint)[] | - |
313
+ | <a id="series-2"></a> `series` | [`MetricSeries`](#metricseries)[] | - |
314
+
315
+ ***
316
+
317
+ <a id="trafficresourcestate"></a>
318
+
319
+ ### TrafficResourceState
320
+
321
+ #### Properties
322
+
323
+ | Property | Type |
324
+ | :------ | :------ |
325
+ | <a id="data"></a> `data` | `unknown` |
326
+ | <a id="exists"></a> `exists` | `boolean` |
327
+
328
+ ***
329
+
330
+ <a id="trafficrowprops"></a>
331
+
332
+ ### TrafficRowProps
333
+
334
+ #### Properties
335
+
336
+ | Property | Type | Description |
337
+ | :------ | :------ | :------ |
338
+ | <a id="classname-6"></a> `className?` | `string` | - |
339
+ | <a id="event-1"></a> `event` | [`TrafficEvent`](#trafficevent) | - |
340
+ | <a id="formattime-4"></a> `formatTime?` | (`at`: `number`) => `string` | Override the timestamp rendering. Default is `HH:MM:SS`. |
341
+ | <a id="onselect-2"></a> `onSelect?` | (`event`: [`TrafficEvent`](#trafficevent)) => `void` | - |
342
+ | <a id="renderclassification-3"></a> `renderClassification?` | (`event`: [`TrafficEvent`](#trafficevent)) => `ReactNode` | Render-prop slot for a consumer-specific classification badge — e.g. the playground's `expected`/`ambiguous`/`unexpected` verdict, which is app-source analysis the library doesn't own. Returns `null` to render nothing. |
343
+ | <a id="selected"></a> `selected?` | `boolean` | Marks the row as the active selection (`data-pyric-selected`). |
344
+
345
+ ***
346
+
347
+ <a id="trafficsingle"></a>
348
+
349
+ ### TrafficSingle
350
+
351
+ #### Properties
352
+
353
+ | Property | Type |
354
+ | :------ | :------ |
355
+ | <a id="event-2"></a> `event` | [`TrafficEvent`](#trafficevent) |
356
+ | <a id="type-1"></a> `type` | `"single"` |
357
+
358
+ ***
359
+
360
+ <a id="trafficstatbucket"></a>
361
+
362
+ ### TrafficStatBucket
363
+
364
+ #### Properties
365
+
366
+ | Property | Type |
367
+ | :------ | :------ |
368
+ | <a id="count-2"></a> `count` | `number` |
369
+ | <a id="key-2"></a> `key` | `string` |
370
+
371
+ ***
372
+
373
+ <a id="trafficstatsprops"></a>
374
+
375
+ ### TrafficStatsProps
376
+
377
+ #### Properties
378
+
379
+ | Property | Type |
380
+ | :------ | :------ |
381
+ | <a id="classname-7"></a> `className?` | `string` |
382
+ | <a id="stats"></a> `stats` | [`TrafficStatsSummary`](#trafficstatssummary) |
383
+
384
+ ***
385
+
386
+ <a id="trafficstatssummary"></a>
387
+
388
+ ### TrafficStatsSummary
389
+
390
+ #### Properties
391
+
392
+ | Property | Type | Description |
393
+ | :------ | :------ | :------ |
394
+ | <a id="allows-2"></a> `allows` | `number` | - |
395
+ | <a id="bymethod"></a> `byMethod` | [`TrafficStatBucket`](#trafficstatbucket)[] | Counts by method, sorted descending. |
396
+ | <a id="byorigin"></a> `byOrigin` | [`TrafficStatBucket`](#trafficstatbucket)[] | Counts by origin, sorted descending. |
397
+ | <a id="bypath"></a> `byPath` | [`TrafficStatBucket`](#trafficstatbucket)[] | Counts by path, sorted descending, capped at `topPaths`. |
398
+ | <a id="denies-3"></a> `denies` | `number` | - |
399
+ | <a id="denyrate"></a> `denyRate` | `number` | `denies / total` — 0 for an empty buffer. |
400
+ | <a id="total-3"></a> `total` | `number` | - |
401
+ | <a id="unsupported-1"></a> `unsupported` | `number` | - |
402
+
403
+ ***
404
+
405
+ <a id="traffictimelineprops"></a>
406
+
407
+ ### TrafficTimelineProps
408
+
409
+ #### Properties
410
+
411
+ | Property | Type | Description |
412
+ | :------ | :------ | :------ |
413
+ | <a id="axis"></a> `axis?` | `ReactNode` \| (`window`: [`TimeWindow`](#timewindow)) => `ReactNode` | Axis slot — tick labels below the bars inside `[data-pyric-timeline-axis]`. The mock puts "14m ago · 7m · now" here. Receives the resolved window so labels can be derived. |
414
+ | <a id="brush"></a> `brush?` | [`TimeWindow`](#timewindow) | A brushed sub-range (`[start, end)`) drawn as an overlay over the bars. Position is derived from where it falls inside `window`, so a partly-out-of-window brush clamps to the chart edges. |
415
+ | <a id="bucketcount"></a> `bucketCount?` | `number` | Number of bars. Default 30. Only used on the `events` path. |
416
+ | <a id="buckets"></a> `buckets?` | [`UseTrafficBucketsResult`](#usetrafficbucketsresult) | Pre-bucketed counts — the escape hatch when the caller already ran [useTrafficBuckets](#usetrafficbuckets) (or `bucketTraffic`) upstream, e.g. to share one bucketing pass across the timeline + a stats header. Takes precedence over `events`. |
417
+ | <a id="classname-8"></a> `className?` | `string` | - |
418
+ | <a id="emptystate-3"></a> `emptyState?` | `ReactNode` | - |
419
+ | <a id="events-2"></a> `events?` | [`TrafficEvent`](#trafficevent)[] | Raw traffic events to bucket. Ignored when `buckets` is supplied (the consumer pre-bucketed). Exactly one of `events` / `buckets` should drive the histogram. |
420
+ | <a id="header"></a> `header?` | `ReactNode` | Header slot — title, deny summary, live label. Rendered above the bars inside `[data-pyric-timeline-header]`. The mock puts "142 requests · 16 denied · live" here. |
421
+ | <a id="liveat"></a> `liveAt?` | `number` | Where the live edge marker sits, in epoch-ms. Defaults to `window.end` (the right edge = "now"). Omit / pass `null` to hide the marker entirely (e.g. a frozen, non-live window). |
422
+ | <a id="onbrush"></a> `onBrush?` | (`window`: [`TimeWindow`](#timewindow)) => `void` | Fired when a bar inside the brush region is clicked-through — the component itself is presentation-agnostic about drag, so the primary brush gesture is owned by the consumer. As a built-in affordance, clicking a bucket calls this with a one-bucket-wide window so a bare consumer still gets a working selection. |
423
+ | <a id="renderbucketsummary"></a> `renderBucketSummary?` | (`bucket`: [`TrafficBucket`](#trafficbucket)) => `ReactNode` | Direct annotation shown while a bucket is hovered or keyboard-focused. The timeline owns preview state and positioning; the consumer owns the words and number formatting. |
424
+ | <a id="window"></a> `window` | [`TimeWindow`](#timewindow) | The time range the histogram spans. |
425
+
426
+ ***
427
+
428
+ <a id="useruleheatmapoptions"></a>
429
+
430
+ ### UseRuleHeatmapOptions
431
+
432
+ #### Properties
433
+
434
+ | Property | Type |
435
+ | :------ | :------ |
436
+ | <a id="events-3"></a> `events` | [`TrafficEvent`](#trafficevent)[] |
437
+
438
+ ***
439
+
440
+ <a id="useruleheatmapresult"></a>
441
+
442
+ ### UseRuleHeatmapResult
443
+
444
+ #### Properties
445
+
446
+ | Property | Type | Description |
447
+ | :------ | :------ | :------ |
448
+ | <a id="entries-1"></a> `entries` | [`RuleHeatmapEntry`](#ruleheatmapentry)[] | Per-rule rollup, sorted by `total` descending (busiest first), ties broken by `ruleIndex` ascending. |
449
+ | <a id="unmatchedcount"></a> `unmatchedCount` | `number` | Events that matched no rule — counted here, not attributed to any entry. |
450
+
451
+ ***
452
+
453
+ <a id="usetrafficbucketsoptions"></a>
454
+
455
+ ### UseTrafficBucketsOptions
456
+
457
+ #### Properties
458
+
459
+ | Property | Type | Description |
460
+ | :------ | :------ | :------ |
461
+ | <a id="bucketcount-1"></a> `bucketCount?` | `number` | Number of buckets to divide the window into. Default 30. |
462
+ | <a id="events-4"></a> `events` | [`TrafficEvent`](#trafficevent)[] | - |
463
+ | <a id="window-1"></a> `window` | [`TimeWindow`](#timewindow) | The time range to bucket over. |
464
+
465
+ ***
466
+
467
+ <a id="usetrafficbucketsresult"></a>
468
+
469
+ ### UseTrafficBucketsResult
470
+
471
+ #### Properties
472
+
473
+ | Property | Type | Description |
474
+ | :------ | :------ | :------ |
475
+ | <a id="buckets-1"></a> `buckets` | [`TrafficBucket`](#trafficbucket)[] | - |
476
+ | <a id="denies-4"></a> `denies` | `number` | Sum of `denies` across buckets. |
477
+ | <a id="maxcount"></a> `maxCount` | `number` | The largest single-bucket `count` — the height-ratio divisor. |
478
+ | <a id="outofwindow"></a> `outOfWindow` | `number` | Events whose `at` fell outside `[window.start, window.end)`. |
479
+ | <a id="total-4"></a> `total` | `number` | Sum of `count` across buckets (events inside the window). |
480
+
481
+ ***
482
+
483
+ <a id="usetrafficfilteroptions"></a>
484
+
485
+ ### UseTrafficFilterOptions
486
+
487
+ #### Properties
488
+
489
+ | Property | Type | Description |
490
+ | :------ | :------ | :------ |
491
+ | <a id="events-5"></a> `events` | [`TrafficEvent`](#trafficevent)[] | - |
492
+ | <a id="initialorigin"></a> `initialOrigin?` | [`TrafficOriginFilter`](#trafficoriginfilter) | Default `user` — the probe found listener traffic is 94–99.6% of events, so it's hidden until explicitly asked for. |
493
+ | <a id="initialpathquery"></a> `initialPathQuery?` | `string` | - |
494
+ | <a id="initialresult"></a> `initialResult?` | [`TrafficResultFilter`](#trafficresultfilter) | Default `all` — the probe found ~75–80% allow in realistic sessions, so hiding either side loses diagnostic signal. |
495
+
496
+ ***
497
+
498
+ <a id="usetrafficfilterresult"></a>
499
+
500
+ ### UseTrafficFilterResult
501
+
502
+ #### Properties
503
+
504
+ | Property | Type | Description |
505
+ | :------ | :------ | :------ |
506
+ | <a id="filter"></a> `filter` | [`TrafficFilterState`](#trafficfilterstate) | - |
507
+ | <a id="filtered"></a> `filtered` | [`TrafficEvent`](#trafficevent)[] | Events passing all three filters, in the input order. |
508
+ | <a id="setorigin"></a> `setOrigin` | (`origin`: [`TrafficOriginFilter`](#trafficoriginfilter)) => `void` | - |
509
+ | <a id="setpathquery"></a> `setPathQuery` | (`pathQuery`: `string`) => `void` | - |
510
+ | <a id="setresult"></a> `setResult` | (`result`: [`TrafficResultFilter`](#trafficresultfilter)) => `void` | - |
511
+
512
+ ***
513
+
514
+ <a id="usetrafficgroupsoptions"></a>
515
+
516
+ ### UseTrafficGroupsOptions
517
+
518
+ #### Properties
519
+
520
+ | Property | Type | Description |
521
+ | :------ | :------ | :------ |
522
+ | <a id="events-6"></a> `events` | [`TrafficEvent`](#trafficevent)[] | - |
523
+ | <a id="groupbatches"></a> `groupBatches?` | `boolean` | Collapse consecutive ops sharing a `groupId`. Default true. |
524
+ | <a id="grouplistenerruns"></a> `groupListenerRuns?` | `boolean` | Collapse a consecutive run of listener re-evals from the same originating op into one group — the probe found a single write can trigger 250+ re-evals. Default true. |
525
+
526
+ ***
527
+
528
+ <a id="usetrafficgroupsresult"></a>
529
+
530
+ ### UseTrafficGroupsResult
531
+
532
+ #### Properties
533
+
534
+ | Property | Type | Description |
535
+ | :------ | :------ | :------ |
536
+ | <a id="items-1"></a> `items` | [`TrafficLogItem`](#trafficlogitem)[] | Events folded into a flat list of singles and groups, in the input order. |
537
+
538
+ ***
539
+
540
+ <a id="usetrafficmetricsoptions"></a>
541
+
542
+ ### UseTrafficMetricsOptions
543
+
544
+ #### Properties
545
+
546
+ | Property | Type | Description |
547
+ | :------ | :------ | :------ |
548
+ | <a id="bucketcount-2"></a> `bucketCount?` | `number` | Number of buckets to divide the window into. The window itself should already be sized to the session (sandbox sessions run minutes, not days) — bucket count doesn't need to change, only the window a caller passes in. Default 24. |
549
+ | <a id="events-7"></a> `events` | [`TrafficEvent`](#trafficevent)[] | - |
550
+ | <a id="isadmin"></a> `isAdmin?` | (`event`: `Pick`\<[`TrafficEvent`](#trafficevent), `"origin"`\>) => `boolean` | Override admin classification (e.g. a Studio caller with `authLens` provenance available — see the module doc). Defaults to `origin === 'admin'`. |
551
+ | <a id="window-2"></a> `window` | [`TimeWindow`](#timewindow) | - |
552
+
553
+ ***
554
+
555
+ <a id="usetrafficmonitoroptions"></a>
556
+
557
+ ### UseTrafficMonitorOptions
558
+
559
+ #### Properties
560
+
561
+ | Property | Type | Description |
562
+ | :------ | :------ | :------ |
563
+ | <a id="buffersize"></a> `bufferSize?` | `number` | Ring-buffer cap. Once exceeded, the oldest events are dropped. Default 5000 (~3 MB worst case — see the traffic-monitor probe findings). |
564
+ | <a id="paused"></a> `paused?` | `boolean` | Whether the buffer starts paused. Default false. |
565
+ | <a id="source"></a> `source` | [`TrafficSource`](#trafficsource) | The subscription function — `sandbox.onRequest` satisfies this directly. Pass a stable reference; the hook re-subscribes on identity change. |
566
+ | <a id="transform"></a> `transform?` | (`event`: [`TrafficEvent`](#trafficevent)) => [`TrafficEvent`](#trafficevent) | Runs per event before buffering — return a (possibly trimmed) event. Lets the consumer shrink oversized payloads without the library knowing payload semantics. Identity is read fresh on each event, so it need not be memoized. |
567
+
568
+ ***
569
+
570
+ <a id="usetrafficmonitorresult"></a>
571
+
572
+ ### UseTrafficMonitorResult
573
+
574
+ #### Properties
575
+
576
+ | Property | Type | Description |
577
+ | :------ | :------ | :------ |
578
+ | <a id="clear"></a> `clear` | () => `void` | Empty the buffer. |
579
+ | <a id="counts"></a> `counts` | [`TrafficCounts`](#trafficcounts) | - |
580
+ | <a id="events-8"></a> `events` | [`TrafficEvent`](#trafficevent)[] | The buffered events, oldest first. |
581
+ | <a id="ispaused"></a> `isPaused` | `boolean` | - |
582
+ | <a id="pause"></a> `pause` | () => `void` | Stop appending — incoming events are dropped while paused. |
583
+ | <a id="resume"></a> `resume` | () => `void` | Resume appending. |
584
+
585
+ ***
586
+
587
+ <a id="usetrafficstatsoptions"></a>
588
+
589
+ ### UseTrafficStatsOptions
590
+
591
+ #### Properties
592
+
593
+ | Property | Type | Description |
594
+ | :------ | :------ | :------ |
595
+ | <a id="events-9"></a> `events` | [`TrafficEvent`](#trafficevent)[] | - |
596
+ | <a id="toppaths"></a> `topPaths?` | `number` | Cap on `byPath` entries — paths are unbounded. Default 10. |
597
+
598
+ ## Type Aliases
599
+
600
+ <a id="billableserieskey"></a>
601
+
602
+ ### BillableSeriesKey
603
+
604
+ ```ts
605
+ type BillableSeriesKey = "reads" | "writes" | "deletes";
606
+ ```
607
+
608
+ ***
609
+
610
+ <a id="rulesserieskey"></a>
611
+
612
+ ### RulesSeriesKey
613
+
614
+ ```ts
615
+ type RulesSeriesKey = "allows" | "denies" | "errors";
616
+ ```
617
+
618
+ ***
619
+
620
+ <a id="trafficgroupkind-1"></a>
621
+
622
+ ### TrafficGroupKind
623
+
624
+ ```ts
625
+ type TrafficGroupKind = "batch" | "transaction" | "listener-run";
626
+ ```
627
+
628
+ ***
629
+
630
+ <a id="trafficlogitem"></a>
631
+
632
+ ### TrafficLogItem
633
+
634
+ ```ts
635
+ type TrafficLogItem = TrafficGroup | TrafficSingle;
636
+ ```
637
+
638
+ ***
639
+
640
+ <a id="trafficmethod"></a>
641
+
642
+ ### TrafficMethod
643
+
644
+ ```ts
645
+ type TrafficMethod =
646
+ | "get"
647
+ | "list"
648
+ | "create"
649
+ | "update"
650
+ | "set"
651
+ | "delete"
652
+ | "remove"
653
+ | "push"
654
+ | "listen"
655
+ | "transaction"
656
+ | string & {
657
+ };
658
+ ```
659
+
660
+ The traffic domain types. `TrafficEvent` is structurally identical
661
+ to `pyric/sandbox`'s `RequestEvent` (locked in
662
+ the design rationale) — but the library defines its
663
+ own copy so it never imports `pyric/sandbox`. `sandbox.onRequest`
664
+ is assignable as a `TrafficSource` with zero adapter code; a prod
665
+ log feed can satisfy the same shape.
666
+
667
+ ***
668
+
669
+ <a id="trafficorigin"></a>
670
+
671
+ ### TrafficOrigin
672
+
673
+ ```ts
674
+ type TrafficOrigin = "user" | "listener" | "transaction" | "batch" | "admin" | "system";
675
+ ```
676
+
677
+ ***
678
+
679
+ <a id="trafficoriginfilter"></a>
680
+
681
+ ### TrafficOriginFilter
682
+
683
+ ```ts
684
+ type TrafficOriginFilter = "user" | "all" | "listener";
685
+ ```
686
+
687
+ `user` keeps everything that isn't a listener re-eval (user ops
688
+ plus their transaction/batch sub-ops); `listener` keeps only
689
+ listener re-evals; `all` keeps everything.
690
+
691
+ ***
692
+
693
+ <a id="trafficresult"></a>
694
+
695
+ ### TrafficResult
696
+
697
+ ```ts
698
+ type TrafficResult = "allow" | "deny" | "unsupported" | "error" | "not-applicable";
699
+ ```
700
+
701
+ ***
702
+
703
+ <a id="trafficresultfilter"></a>
704
+
705
+ ### TrafficResultFilter
706
+
707
+ ```ts
708
+ type TrafficResultFilter = "all" | "allow" | "deny";
709
+ ```
710
+
711
+ ***
712
+
713
+ <a id="trafficsource"></a>
714
+
715
+ ### TrafficSource()
716
+
717
+ ```ts
718
+ type TrafficSource = (cb: (event: TrafficEvent) => void) => () => void;
719
+ ```
720
+
721
+ A subscription function: register a callback, get back an
722
+ unsubscribe. `pyric/sandbox`'s `Sandbox.onRequest` matches this
723
+ signature exactly.
724
+
725
+ #### Parameters
726
+
727
+ | Parameter | Type |
728
+ | :------ | :------ |
729
+ | `cb` | (`event`: [`TrafficEvent`](#trafficevent)) => `void` |
730
+
731
+ #### Returns
732
+
733
+ ```ts
734
+ (): void;
735
+ ```
736
+
737
+ ##### Returns
738
+
739
+ `void`
740
+
741
+ ## Variables
742
+
743
+ <a id="billable_series_defs"></a>
744
+
745
+ ### BILLABLE\_SERIES\_DEFS
746
+
747
+ ```ts
748
+ const BILLABLE_SERIES_DEFS: ReadonlyArray<{
749
+ key: BillableSeriesKey;
750
+ label: string;
751
+ }>;
752
+ ```
753
+
754
+ ***
755
+
756
+ <a id="rules_series_defs"></a>
757
+
758
+ ### RULES\_SERIES\_DEFS
759
+
760
+ ```ts
761
+ const RULES_SERIES_DEFS: ReadonlyArray<{
762
+ key: RulesSeriesKey;
763
+ label: string;
764
+ }>;
765
+ ```
766
+
767
+ ## Functions
768
+
769
+ <a id="bucketbillablemetrics"></a>
770
+
771
+ ### bucketBillableMetrics()
772
+
773
+ ```ts
774
+ function bucketBillableMetrics(
775
+ events: readonly TrafficEvent[],
776
+ window: TimeWindow,
777
+ bucketCount?: number,
778
+ isAdmin?: (event: Pick<TrafficEvent, "origin">) => boolean): TrafficMetricsResult;
779
+ ```
780
+
781
+ Pure kernel behind [useBillableMetrics](#usebillablemetrics) — usable outside React.
782
+
783
+ #### Parameters
784
+
785
+ | Parameter | Type |
786
+ | :------ | :------ |
787
+ | `events` | readonly [`TrafficEvent`](#trafficevent)[] |
788
+ | `window` | [`TimeWindow`](#timewindow) |
789
+ | `bucketCount?` | `number` |
790
+ | `isAdmin?` | (`event`: `Pick`\<[`TrafficEvent`](#trafficevent), `"origin"`\>) => `boolean` |
791
+
792
+ #### Returns
793
+
794
+ [`TrafficMetricsResult`](#trafficmetricsresult)
795
+
796
+ ***
797
+
798
+ <a id="bucketrulesmetrics"></a>
799
+
800
+ ### bucketRulesMetrics()
801
+
802
+ ```ts
803
+ function bucketRulesMetrics(
804
+ events: readonly TrafficEvent[],
805
+ window: TimeWindow,
806
+ bucketCount?: number,
807
+ isAdmin?: (event: Pick<TrafficEvent, "origin">) => boolean): TrafficMetricsResult;
808
+ ```
809
+
810
+ Pure kernel behind [useRulesMetrics](#userulesmetrics) — usable outside React.
811
+
812
+ #### Parameters
813
+
814
+ | Parameter | Type |
815
+ | :------ | :------ |
816
+ | `events` | readonly [`TrafficEvent`](#trafficevent)[] |
817
+ | `window` | [`TimeWindow`](#timewindow) |
818
+ | `bucketCount?` | `number` |
819
+ | `isAdmin?` | (`event`: `Pick`\<[`TrafficEvent`](#trafficevent), `"origin"`\>) => `boolean` |
820
+
821
+ #### Returns
822
+
823
+ [`TrafficMetricsResult`](#trafficmetricsresult)
824
+
825
+ ***
826
+
827
+ <a id="buckettraffic"></a>
828
+
829
+ ### bucketTraffic()
830
+
831
+ ```ts
832
+ function bucketTraffic(
833
+ events: TrafficEvent[],
834
+ window: TimeWindow,
835
+ bucketCount?: number): UseTrafficBucketsResult;
836
+ ```
837
+
838
+ The pure bucketing kernel behind [useTrafficBuckets](#usetrafficbuckets) — usable
839
+ outside React. Returns an empty result for a non-positive
840
+ `bucketCount` or a zero/negative-width window.
841
+
842
+ #### Parameters
843
+
844
+ | Parameter | Type |
845
+ | :------ | :------ |
846
+ | `events` | [`TrafficEvent`](#trafficevent)[] |
847
+ | `window` | [`TimeWindow`](#timewindow) |
848
+ | `bucketCount?` | `number` |
849
+
850
+ #### Returns
851
+
852
+ [`UseTrafficBucketsResult`](#usetrafficbucketsresult)
853
+
854
+ ***
855
+
856
+ <a id="classifybillable"></a>
857
+
858
+ ### classifyBillable()
859
+
860
+ ```ts
861
+ function classifyBillable(event: Pick<TrafficEvent, "method" | "result" | "origin">, isAdmin?: (event: Pick<TrafficEvent, "origin">) => boolean): BillableSeriesKey;
862
+ ```
863
+
864
+ Classify a billable op, or `null` if it isn't one / never ran.
865
+
866
+ #### Parameters
867
+
868
+ | Parameter | Type |
869
+ | :------ | :------ |
870
+ | `event` | `Pick`\<[`TrafficEvent`](#trafficevent), `"method"` \| `"result"` \| `"origin"`\> |
871
+ | `isAdmin?` | (`event`: `Pick`\<[`TrafficEvent`](#trafficevent), `"origin"`\>) => `boolean` |
872
+
873
+ #### Returns
874
+
875
+ [`BillableSeriesKey`](#billableserieskey)
876
+
877
+ ***
878
+
879
+ <a id="classifyrules"></a>
880
+
881
+ ### classifyRules()
882
+
883
+ ```ts
884
+ function classifyRules(event: Pick<TrafficEvent, "result" | "origin">, isAdmin?: (event: Pick<TrafficEvent, "origin">) => boolean): RulesSeriesKey;
885
+ ```
886
+
887
+ Classify a rules-engine verdict, or `null` if it isn't one (bypassed,
888
+ unsupported, or not-applicable).
889
+
890
+ #### Parameters
891
+
892
+ | Parameter | Type |
893
+ | :------ | :------ |
894
+ | `event` | `Pick`\<[`TrafficEvent`](#trafficevent), `"result"` \| `"origin"`\> |
895
+ | `isAdmin?` | (`event`: `Pick`\<[`TrafficEvent`](#trafficevent), `"origin"`\>) => `boolean` |
896
+
897
+ #### Returns
898
+
899
+ [`RulesSeriesKey`](#rulesserieskey)
900
+
901
+ ***
902
+
903
+ <a id="defaultformattime"></a>
904
+
905
+ ### defaultFormatTime()
906
+
907
+ ```ts
908
+ function defaultFormatTime(at: number): string;
909
+ ```
910
+
911
+ Default `HH:MM:SS` timestamp formatter. Components accept a
912
+ `formatTime` prop to override — this is just the fallback so the
913
+ library has no hard locale dependency.
914
+
915
+ #### Parameters
916
+
917
+ | Parameter | Type |
918
+ | :------ | :------ |
919
+ | `at` | `number` |
920
+
921
+ #### Returns
922
+
923
+ `string`
924
+
925
+ ***
926
+
927
+ <a id="isadminevent"></a>
928
+
929
+ ### isAdminEvent()
930
+
931
+ ```ts
932
+ function isAdminEvent(event: Pick<TrafficEvent, "origin">): boolean;
933
+ ```
934
+
935
+ Default admin predicate: the one signal the public `TrafficEvent`
936
+ type declares. See the module doc for the known Firestore gap.
937
+
938
+ #### Parameters
939
+
940
+ | Parameter | Type |
941
+ | :------ | :------ |
942
+ | `event` | `Pick`\<[`TrafficEvent`](#trafficevent), `"origin"`\> |
943
+
944
+ #### Returns
945
+
946
+ `boolean`
947
+
948
+ ***
949
+
950
+ <a id="reasonverdict"></a>
951
+
952
+ ### reasonVerdict()
953
+
954
+ ```ts
955
+ function reasonVerdict(reason: string): "allow" | "deny" | "neutral";
956
+ ```
957
+
958
+ Classifies a simulator debug line as a deny / allow / neutral
959
+ verdict so consumers can tint reason rows via
960
+ `[data-pyric-reason-verdict="…"]`.
961
+
962
+ #### Parameters
963
+
964
+ | Parameter | Type |
965
+ | :------ | :------ |
966
+ | `reason` | `string` |
967
+
968
+ #### Returns
969
+
970
+ `"allow"` \| `"deny"` \| `"neutral"`
971
+
972
+ ***
973
+
974
+ <a id="ruleheatmap"></a>
975
+
976
+ ### RuleHeatmap()
977
+
978
+ ```ts
979
+ function RuleHeatmap(__namedParameters: RuleHeatmapProps): Element;
980
+ ```
981
+
982
+ Headless rule heatmap — one row per rule, busiest first. Each row
983
+ exposes two styling channels:
984
+
985
+ - `data-pyric-rule-heat` — a discrete bucket (`none`/`low`/
986
+ `medium`/`high`) by deny ratio, for threshold-based coloring.
987
+ - `--pyric-deny-ratio` — the raw 0–1 ratio as a CSS custom
988
+ property, for a proportional bar / gradient.
989
+
990
+ Counts render as separate elements (`data-pyric-rule-total`,
991
+ `-allows`, `-denies`) so the consumer can show numbers, bars, or
992
+ both.
993
+
994
+ Styling hooks: `[data-pyric-ui="rule-heatmap"]`,
995
+ `[data-pyric-rule-row]` (with `data-pyric-rule-index`,
996
+ `data-pyric-rule-heat`, `data-pyric-selected`).
997
+
998
+ #### Parameters
999
+
1000
+ | Parameter | Type |
1001
+ | :------ | :------ |
1002
+ | `__namedParameters` | [`RuleHeatmapProps`](#ruleheatmapprops) |
1003
+
1004
+ #### Returns
1005
+
1006
+ `Element`
1007
+
1008
+ ***
1009
+
1010
+ <a id="trafficdetail"></a>
1011
+
1012
+ ### TrafficDetail()
1013
+
1014
+ ```ts
1015
+ function TrafficDetail(__namedParameters: TrafficDetailProps): Element;
1016
+ ```
1017
+
1018
+ Headless drill-in panel for a single traffic event. Renders the
1019
+ header (result + origin + timestamp + method/path + matched rule),
1020
+ a consumer classification slot, then JSON sections for auth,
1021
+ request payload, and resource before/after via `<JsonView>`, plus
1022
+ the reasons list, `triggeredBy`, and `groupId`.
1023
+
1024
+ `evalMs` appears here as a minor header field only — it is not a
1025
+ log column (local simulator; latency is de-featured per
1026
+ the design rationale).
1027
+
1028
+ Styling hooks: `[data-pyric-ui="traffic-detail"]`,
1029
+ `[data-pyric-traffic-section]` (with `data-pyric-section-label`),
1030
+ `[data-pyric-traffic-reason]` (with `data-pyric-reason-verdict`).
1031
+
1032
+ #### Parameters
1033
+
1034
+ | Parameter | Type |
1035
+ | :------ | :------ |
1036
+ | `__namedParameters` | [`TrafficDetailProps`](#trafficdetailprops) |
1037
+
1038
+ #### Returns
1039
+
1040
+ `Element`
1041
+
1042
+ ***
1043
+
1044
+ <a id="trafficgrouprow"></a>
1045
+
1046
+ ### TrafficGroupRow()
1047
+
1048
+ ```ts
1049
+ function TrafficGroupRow(__namedParameters: TrafficGroupRowProps): Element;
1050
+ ```
1051
+
1052
+ A collapsible group row — one header summarizing a batch,
1053
+ transaction, or listener-run, expanding to the member rows. The
1054
+ header carries `data-pyric-group-kind` and a `data-pyric-group-*`
1055
+ count/deny rollup; expansion state is `data-pyric-expanded`.
1056
+
1057
+ Styling hooks: `[data-pyric-traffic-group]`,
1058
+ `[data-pyric-traffic-group-header]` (with `data-pyric-group-kind`),
1059
+ `[data-pyric-traffic-group-members]`.
1060
+
1061
+ #### Parameters
1062
+
1063
+ | Parameter | Type |
1064
+ | :------ | :------ |
1065
+ | `__namedParameters` | [`TrafficGroupRowProps`](#trafficgrouprowprops) |
1066
+
1067
+ #### Returns
1068
+
1069
+ `Element`
1070
+
1071
+ ***
1072
+
1073
+ <a id="trafficlinechart"></a>
1074
+
1075
+ ### TrafficLineChart()
1076
+
1077
+ ```ts
1078
+ function TrafficLineChart(__namedParameters: TrafficLineChartProps): Element;
1079
+ ```
1080
+
1081
+ Hand-rolled SVG line chart, no charting dependency — plain lines over
1082
+ a 0..100 viewBox so CSS drives the actual size (intrinsic layout, no
1083
+ fixed pixel chart). Each series draws only when `visible` includes
1084
+ its key (or `visible` is omitted). The y-scale is the max value
1085
+ across the currently VISIBLE series only, so toggling a tall series
1086
+ off rescales the rest up — matching the Console reference.
1087
+
1088
+ Interaction: hovering (or focusing, via the invisible per-bucket hit
1089
+ targets) shows a tooltip with the bucket's time range and each visible
1090
+ series' value at that bucket — `[data-pyric-chart-tooltip]`, positioned
1091
+ via `--pyric-hover-x`.
1092
+
1093
+ Styling hooks: `[data-pyric-ui="traffic-line-chart"]`,
1094
+ `[data-pyric-chart-svg]`, `[data-pyric-chart-line]` (with
1095
+ `data-pyric-series-key`, `data-pyric-series-index` — the same index a
1096
+ `TrafficMetricCards` card carries, so line + card colors line up),
1097
+ `[data-pyric-chart-hit]` (with `data-pyric-point-index`),
1098
+ `[data-pyric-chart-tooltip]`, `[data-pyric-tooltip-row]`.
1099
+
1100
+ #### Parameters
1101
+
1102
+ | Parameter | Type |
1103
+ | :------ | :------ |
1104
+ | `__namedParameters` | [`TrafficLineChartProps`](#trafficlinechartprops) |
1105
+
1106
+ #### Returns
1107
+
1108
+ `Element`
1109
+
1110
+ ***
1111
+
1112
+ <a id="trafficlog"></a>
1113
+
1114
+ ### TrafficLog()
1115
+
1116
+ ```ts
1117
+ function TrafficLog(__namedParameters: TrafficLogProps): Element;
1118
+ ```
1119
+
1120
+ Headless traffic log — a Chrome DevTools Network-panel-style event
1121
+ stream. Below `virtualizeThreshold` it renders a plain `<ul>`;
1122
+ above it, TanStack-Virtual via `<VirtualList>`.
1123
+
1124
+ Styling hooks: `[data-pyric-ui="traffic-log"]`,
1125
+ `[data-pyric-traffic-entry]` (the list item wrapper), plus the
1126
+ `<TrafficRow>` hooks.
1127
+
1128
+ #### Parameters
1129
+
1130
+ | Parameter | Type |
1131
+ | :------ | :------ |
1132
+ | `__namedParameters` | [`TrafficLogProps`](#trafficlogprops) |
1133
+
1134
+ #### Returns
1135
+
1136
+ `Element`
1137
+
1138
+ ***
1139
+
1140
+ <a id="trafficmetriccards"></a>
1141
+
1142
+ ### TrafficMetricCards()
1143
+
1144
+ ```ts
1145
+ function TrafficMetricCards(__namedParameters: TrafficMetricCardsProps): Element;
1146
+ ```
1147
+
1148
+ The period-total strip: one card per series, each showing the series'
1149
+ total for the current window. Doubles as BOTH the chart's legend row
1150
+ (pass `visible` + `onToggle` to get the checkbox-toggle semantics) AND
1151
+ the standalone fallback presentation when a chart isn't warranted —
1152
+ this component never depends on [TrafficLineChart](#trafficlinechart).
1153
+
1154
+ Styling hooks: `[data-pyric-ui="traffic-metric-cards"]`,
1155
+ `[data-pyric-metric-card]` (with `data-pyric-metric-key`,
1156
+ `data-pyric-series-index` — the color channel a chart's lines also
1157
+ key off of, so a card and its line always match), `[data-pyric-metric-hidden]`
1158
+ when toggled off.
1159
+
1160
+ #### Parameters
1161
+
1162
+ | Parameter | Type |
1163
+ | :------ | :------ |
1164
+ | `__namedParameters` | [`TrafficMetricCardsProps`](#trafficmetriccardsprops) |
1165
+
1166
+ #### Returns
1167
+
1168
+ `Element`
1169
+
1170
+ ***
1171
+
1172
+ <a id="trafficrow"></a>
1173
+
1174
+ ### TrafficRow()
1175
+
1176
+ ```ts
1177
+ function TrafficRow(__namedParameters: TrafficRowProps): Element;
1178
+ ```
1179
+
1180
+ One headless traffic row — timestamp, method badge, path, and an
1181
+ optional consumer classification slot. The raw result is exposed as
1182
+ `data-pyric-result` on the row (for tinting/filtering); rendering a
1183
+ verdict/outcome label is the consumer's job via
1184
+ `renderClassification` — the row itself draws no result chip, so a
1185
+ consumer verdict never collides with a built-in one. Latency is
1186
+ intentionally absent: this is a local simulator, so `evalMs` lives
1187
+ in `<TrafficDetail>` only.
1188
+
1189
+ Styling hooks:
1190
+ - `[data-pyric-traffic-row]` — the row button, with
1191
+ `data-pyric-result`, `data-pyric-origin`, `data-pyric-method`
1192
+ - `[data-pyric-traffic-row][data-pyric-selected]` — active row
1193
+ - `[data-pyric-traffic-time]` / `[data-pyric-traffic-path]`
1194
+ - `[data-pyric-traffic-service]` — the service label (firestore / rtdb /
1195
+ storage / auth), rendered even when unknown (empty) so fixed-width
1196
+ styling keeps the columns aligned
1197
+ - method renders as `<Badge>` (`data-pyric-badge-kind`)
1198
+
1199
+ #### Parameters
1200
+
1201
+ | Parameter | Type |
1202
+ | :------ | :------ |
1203
+ | `__namedParameters` | [`TrafficRowProps`](#trafficrowprops) |
1204
+
1205
+ #### Returns
1206
+
1207
+ `Element`
1208
+
1209
+ ***
1210
+
1211
+ <a id="trafficstats"></a>
1212
+
1213
+ ### TrafficStats()
1214
+
1215
+ ```ts
1216
+ function TrafficStats(__namedParameters: TrafficStatsProps): Element;
1217
+ ```
1218
+
1219
+ Headless aggregation panel. Renders the totals, the deny rate, and
1220
+ count breakdowns by method / origin / path. The deny rate is
1221
+ exposed both as text and as a `--pyric-deny-rate` CSS custom
1222
+ property on the root for a proportional meter.
1223
+
1224
+ Styling hooks: `[data-pyric-ui="traffic-stats"]`,
1225
+ `[data-pyric-stat]` (with `data-pyric-stat-key`),
1226
+ `[data-pyric-stat-group]` (with `data-pyric-stat-group-label`),
1227
+ `[data-pyric-stat-bucket]`.
1228
+
1229
+ #### Parameters
1230
+
1231
+ | Parameter | Type |
1232
+ | :------ | :------ |
1233
+ | `__namedParameters` | [`TrafficStatsProps`](#trafficstatsprops) |
1234
+
1235
+ #### Returns
1236
+
1237
+ `Element`
1238
+
1239
+ ***
1240
+
1241
+ <a id="traffictimeline"></a>
1242
+
1243
+ ### TrafficTimeline()
1244
+
1245
+ ```ts
1246
+ function TrafficTimeline(__namedParameters: TrafficTimelineProps): Element;
1247
+ ```
1248
+
1249
+ Headless volume-over-time histogram — the time axis for the traffic
1250
+ lens. Buckets events into N bars; each bar stacks denies (dark, at
1251
+ the base) under the allow remainder, matching the Studio mock.
1252
+
1253
+ Per-bucket styling channels (on `[data-pyric-bucket]`):
1254
+ - `data-pyric-bucket-count` / `-denies` — raw integers.
1255
+ - `--pyric-bucket-h` — full bar height, 0..1 of the tallest bucket.
1256
+ - `--pyric-bucket-deny-h` — deny sub-stack height, same scale.
1257
+ The deny segment (`[data-pyric-bucket-deny]`) and allow segment
1258
+ (`[data-pyric-bucket-allow]`) are separate children so the consumer
1259
+ colors them independently.
1260
+
1261
+ A `[data-pyric-brush]` overlay marks a sub-range via
1262
+ `--pyric-brush-left` / `--pyric-brush-right` (0..1 fractions). The
1263
+ `[data-pyric-live]` edge marker sits at `--pyric-live-x`.
1264
+
1265
+ Styling hooks: `[data-pyric-ui="traffic-timeline"]`,
1266
+ `[data-pyric-timeline-header]`, `[data-pyric-timeline-bars]`,
1267
+ `[data-pyric-bucket]` (with `data-pyric-bucket-index`,
1268
+ `data-pyric-has-denies`, `data-pyric-bucket-selected`),
1269
+ `[data-pyric-bucket-summary]`, `[data-pyric-brush]`, `[data-pyric-live]`,
1270
+ `[data-pyric-timeline-axis]`.
1271
+
1272
+ #### Parameters
1273
+
1274
+ | Parameter | Type |
1275
+ | :------ | :------ |
1276
+ | `__namedParameters` | [`TrafficTimelineProps`](#traffictimelineprops) |
1277
+
1278
+ #### Returns
1279
+
1280
+ `Element`
1281
+
1282
+ ***
1283
+
1284
+ <a id="usebillablemetrics"></a>
1285
+
1286
+ ### useBillableMetrics()
1287
+
1288
+ ```ts
1289
+ function useBillableMetrics(__namedParameters: UseTrafficMetricsOptions): TrafficMetricsResult;
1290
+ ```
1291
+
1292
+ Reads / writes / deletes, bucketed over `window`. See the module doc
1293
+ for the billable mapping + the "read ops, not billable reads" caveat.
1294
+
1295
+ #### Parameters
1296
+
1297
+ | Parameter | Type |
1298
+ | :------ | :------ |
1299
+ | `__namedParameters` | [`UseTrafficMetricsOptions`](#usetrafficmetricsoptions) |
1300
+
1301
+ #### Returns
1302
+
1303
+ [`TrafficMetricsResult`](#trafficmetricsresult)
1304
+
1305
+ ***
1306
+
1307
+ <a id="useruleheatmap"></a>
1308
+
1309
+ ### useRuleHeatmap()
1310
+
1311
+ ```ts
1312
+ function useRuleHeatmap(__namedParameters: UseRuleHeatmapOptions): UseRuleHeatmapResult;
1313
+ ```
1314
+
1315
+ Rolls a traffic buffer up by `matchedRule.ruleIndex`: how often
1316
+ each rule fired, and how that split across allow / deny /
1317
+ unsupported. Pure derivation — feed it the filtered or full
1318
+ event list depending on what the heatmap should reflect.
1319
+
1320
+ #### Parameters
1321
+
1322
+ | Parameter | Type |
1323
+ | :------ | :------ |
1324
+ | `__namedParameters` | [`UseRuleHeatmapOptions`](#useruleheatmapoptions) |
1325
+
1326
+ #### Returns
1327
+
1328
+ [`UseRuleHeatmapResult`](#useruleheatmapresult)
1329
+
1330
+ ***
1331
+
1332
+ <a id="userulesmetrics"></a>
1333
+
1334
+ ### useRulesMetrics()
1335
+
1336
+ ```ts
1337
+ function useRulesMetrics(__namedParameters: UseTrafficMetricsOptions): TrafficMetricsResult;
1338
+ ```
1339
+
1340
+ Allows / denies / errors, bucketed over `window`. Excludes
1341
+ rules-bypassed (admin) ops — see the module doc.
1342
+
1343
+ #### Parameters
1344
+
1345
+ | Parameter | Type |
1346
+ | :------ | :------ |
1347
+ | `__namedParameters` | [`UseTrafficMetricsOptions`](#usetrafficmetricsoptions) |
1348
+
1349
+ #### Returns
1350
+
1351
+ [`TrafficMetricsResult`](#trafficmetricsresult)
1352
+
1353
+ ***
1354
+
1355
+ <a id="usetrafficbuckets"></a>
1356
+
1357
+ ### useTrafficBuckets()
1358
+
1359
+ ```ts
1360
+ function useTrafficBuckets(__namedParameters: UseTrafficBucketsOptions): UseTrafficBucketsResult;
1361
+ ```
1362
+
1363
+ Buckets a traffic buffer into `bucketCount` equal time slices over
1364
+ `window`, counting total + denied events per slice. Pure
1365
+ derivation — the histogram component renders the result, this hook
1366
+ (and `bucketTraffic` under it) owns the math.
1367
+
1368
+ Each bucket carries a `heightRatio` and `denyHeightRatio`
1369
+ (0..1, scaled to the tallest bucket) so the consumer can map them
1370
+ straight onto a bar height without re-finding the max.
1371
+
1372
+ #### Parameters
1373
+
1374
+ | Parameter | Type |
1375
+ | :------ | :------ |
1376
+ | `__namedParameters` | [`UseTrafficBucketsOptions`](#usetrafficbucketsoptions) |
1377
+
1378
+ #### Returns
1379
+
1380
+ [`UseTrafficBucketsResult`](#usetrafficbucketsresult)
1381
+
1382
+ ***
1383
+
1384
+ <a id="usetrafficfilter"></a>
1385
+
1386
+ ### useTrafficFilter()
1387
+
1388
+ ```ts
1389
+ function useTrafficFilter(__namedParameters: UseTrafficFilterOptions): UseTrafficFilterResult;
1390
+ ```
1391
+
1392
+ Derives a filtered view over a traffic buffer along three
1393
+ dimensions: origin, result, and a case-insensitive path substring.
1394
+ Owns the filter state; pure derivation otherwise.
1395
+
1396
+ #### Parameters
1397
+
1398
+ | Parameter | Type |
1399
+ | :------ | :------ |
1400
+ | `__namedParameters` | [`UseTrafficFilterOptions`](#usetrafficfilteroptions) |
1401
+
1402
+ #### Returns
1403
+
1404
+ [`UseTrafficFilterResult`](#usetrafficfilterresult)
1405
+
1406
+ ***
1407
+
1408
+ <a id="usetrafficgroups"></a>
1409
+
1410
+ ### useTrafficGroups()
1411
+
1412
+ ```ts
1413
+ function useTrafficGroups(__namedParameters: UseTrafficGroupsOptions): UseTrafficGroupsResult;
1414
+ ```
1415
+
1416
+ Folds a traffic buffer into a list of singles and collapsible
1417
+ groups. Two grouping modes, both over *consecutive* events:
1418
+
1419
+ - `groupId` — batch/transaction sub-ops sharing an id collapse
1420
+ into one `batch` / `transaction` group.
1421
+ - listener runs — a consecutive run of listener re-evals from the
1422
+ same originating op collapses into one `listener-run` group.
1423
+ A run of length 1 stays a single (no point collapsing one row).
1424
+
1425
+ Pure derivation; the input order is preserved.
1426
+
1427
+ #### Parameters
1428
+
1429
+ | Parameter | Type |
1430
+ | :------ | :------ |
1431
+ | `__namedParameters` | [`UseTrafficGroupsOptions`](#usetrafficgroupsoptions) |
1432
+
1433
+ #### Returns
1434
+
1435
+ [`UseTrafficGroupsResult`](#usetrafficgroupsresult)
1436
+
1437
+ ***
1438
+
1439
+ <a id="usetrafficmonitor"></a>
1440
+
1441
+ ### useTrafficMonitor()
1442
+
1443
+ ```ts
1444
+ function useTrafficMonitor(__namedParameters: UseTrafficMonitorOptions): UseTrafficMonitorResult;
1445
+ ```
1446
+
1447
+ Buffers a traffic stream into a capped ring buffer with
1448
+ pause/resume/clear. Decoupled from `pyric/sandbox` — `source` is
1449
+ just a `(cb) => unsubscribe` function.
1450
+
1451
+ Pause is consumer-side: while paused, the subscription stays
1452
+ attached but incoming events are dropped (not queued). This
1453
+ matches the probe decision — a `load-test`-shaped session can emit
1454
+ 100k+ events, so queueing-while-paused would defeat the point.
1455
+
1456
+ #### Parameters
1457
+
1458
+ | Parameter | Type |
1459
+ | :------ | :------ |
1460
+ | `__namedParameters` | [`UseTrafficMonitorOptions`](#usetrafficmonitoroptions) |
1461
+
1462
+ #### Returns
1463
+
1464
+ [`UseTrafficMonitorResult`](#usetrafficmonitorresult)
1465
+
1466
+ ***
1467
+
1468
+ <a id="usetrafficstats"></a>
1469
+
1470
+ ### useTrafficStats()
1471
+
1472
+ ```ts
1473
+ function useTrafficStats(__namedParameters: UseTrafficStatsOptions): TrafficStatsSummary;
1474
+ ```
1475
+
1476
+ Aggregations over a traffic buffer: totals, deny rate, and counts
1477
+ broken down by method, origin, and path. Pure derivation — feed it
1478
+ the filtered or full event list depending on what the panel
1479
+ should reflect.
1480
+
1481
+ #### Parameters
1482
+
1483
+ | Parameter | Type |
1484
+ | :------ | :------ |
1485
+ | `__namedParameters` | [`UseTrafficStatsOptions`](#usetrafficstatsoptions) |
1486
+
1487
+ #### Returns
1488
+
1489
+ [`TrafficStatsSummary`](#trafficstatssummary)