failproofai 0.0.11-beta.7 → 0.0.11-beta.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 (233) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/.next/standalone/.next/build-manifest.json +6 -6
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/routes-manifest.json +6 -0
  7. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
  8. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  13. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  14. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  15. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  16. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  17. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
  19. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page.js +2 -2
  21. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  24. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  25. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  26. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  27. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  28. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  29. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  30. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  31. package/.next/standalone/.next/server/app/api/audit/invite/route/app-paths-manifest.json +3 -0
  32. package/.next/standalone/.next/server/app/api/audit/invite/route/build-manifest.json +9 -0
  33. package/.next/standalone/.next/server/app/api/audit/invite/route/server-reference-manifest.json +4 -0
  34. package/.next/standalone/.next/server/app/api/audit/invite/route.js +7 -0
  35. package/.next/standalone/.next/server/app/api/audit/invite/route.js.map +5 -0
  36. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -0
  37. package/.next/standalone/.next/server/app/api/audit/invite/route_client-reference-manifest.js +3 -0
  38. package/.next/standalone/.next/server/app/api/audit/run/route.js +1 -1
  39. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +1 -1
  41. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +2 -2
  43. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/api/auth/logout/route.js +2 -2
  45. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/api/auth/reminder/route.js +2 -2
  47. package/.next/standalone/.next/server/app/api/auth/reminder/route.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/api/auth/status/route.js +2 -2
  49. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  50. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  51. package/.next/standalone/.next/server/app/audit/page/build-manifest.json +3 -3
  52. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  53. package/.next/standalone/.next/server/app/audit/page.js +2 -2
  54. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/index.html +1 -1
  57. package/.next/standalone/.next/server/app/index.rsc +15 -15
  58. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  59. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  60. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  61. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  62. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  63. package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
  64. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  65. package/.next/standalone/.next/server/app/page.js +2 -2
  66. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  67. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +3 -3
  69. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  70. package/.next/standalone/.next/server/app/policies/page.js +2 -2
  71. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  72. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +3 -3
  74. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  75. package/.next/standalone/.next/server/app/project/[name]/page.js +3 -3
  76. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +3 -3
  79. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  80. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  81. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +3 -3
  82. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +3 -3
  85. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  86. package/.next/standalone/.next/server/app/projects/page.js +3 -3
  87. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  90. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1_mqemn._.js +1 -1
  91. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1r1h8v9._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1rhmvod._.js +1 -1
  93. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1uatkiv._.js +3 -0
  94. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1y6gxxb._.js +3 -0
  95. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_audit_invite_route_actions_0-2n5sy.js +3 -0
  96. package/.next/standalone/.next/server/chunks/node_modules_0-tu4ot._.js +3 -0
  97. package/.next/standalone/.next/server/chunks/node_modules_0ttxbz7._.js +3 -0
  98. package/.next/standalone/.next/server/chunks/node_modules_1bnh1y0._.js +3 -0
  99. package/.next/standalone/.next/server/chunks/node_modules_1epycqa._.js +3 -0
  100. package/.next/standalone/.next/server/chunks/node_modules_1wpdcgo._.js +3 -0
  101. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_17k9e3w.js +8 -8
  102. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +1 -1
  103. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +1 -1
  104. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  105. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0808sha._.js +4 -0
  106. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1cd25c7._.js → [root-of-the-server]__0e4-6d8._.js} +3 -3
  107. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__08gyb62._.js → [root-of-the-server]__0e446gb._.js} +2 -2
  108. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ehe24g._.js +4 -0
  109. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1-scthx._.js → [root-of-the-server]__0f62vu9._.js} +2 -2
  110. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g253ve._.js +4 -0
  111. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0l13qf2._.js → [root-of-the-server]__0k65l27._.js} +2 -2
  112. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0vxf0_g._.js +4 -0
  113. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__08v7sn2._.js → [root-of-the-server]__0wprfyc._.js} +2 -2
  114. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12mcauo._.js +4 -0
  115. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0989_dx._.js → [root-of-the-server]__1e-x7j4._.js} +2 -2
  116. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1mt35_w._.js +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pcxxwg._.js +2 -2
  118. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1uvfwgr._.js +4 -0
  119. package/.next/standalone/.next/server/chunks/ssr/_05whahf._.js +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/_0il3fl1._.js +3 -0
  121. package/.next/standalone/.next/server/chunks/ssr/_11_p9y8._.js +1 -1
  122. package/.next/standalone/.next/server/chunks/ssr/_1kje4fm._.js +1 -1
  123. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +21 -21
  124. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +2 -2
  126. package/.next/standalone/.next/server/chunks/ssr/node_modules_html-to-image_es_index_0y4a-0q.js +3 -0
  127. package/.next/standalone/.next/server/chunks/ssr/node_modules_html-to-image_es_index_1ao30b1.js +3 -0
  128. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +1 -1
  129. package/.next/standalone/.next/server/functions-config-manifest.json +0 -3
  130. package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
  131. package/.next/standalone/.next/server/pages/404.html +1 -1
  132. package/.next/standalone/.next/server/pages/500.html +1 -1
  133. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/server-reference-manifest.json +10 -10
  135. package/.next/standalone/.next/static/chunks/{0hmxjseydp6as.js → 07_d165p5h5ys.js} +1 -1
  136. package/.next/standalone/.next/static/chunks/0f7d7hnbh4djs.js +1 -0
  137. package/.next/standalone/.next/static/chunks/0h7auy7hzjyhw.js +1 -0
  138. package/.next/standalone/.next/static/chunks/168k-8z6k7e8z.css +1 -0
  139. package/.next/standalone/.next/static/chunks/{3n28elq6kwpy3.js → 1kvadxkgnapyj.js} +1 -1
  140. package/.next/standalone/.next/static/chunks/{0fpw1jzeg66_x.js → 277oc363p56n6.js} +2 -2
  141. package/.next/standalone/.next/static/chunks/28mkxkl_d91-l.js +1 -0
  142. package/.next/standalone/.next/static/chunks/28x7jvo3kxd3u.js +41 -0
  143. package/.next/standalone/.next/static/chunks/29nrs5xs9c4hx.css +2 -0
  144. package/.next/standalone/.next/static/chunks/{41vwoxpkauj1w.js → 29tg7deqmq32l.js} +1 -1
  145. package/.next/standalone/.next/static/chunks/{3w8d8k_dca5rp.js → 2h0dkzyy0vocp.js} +1 -1
  146. package/.next/standalone/.next/static/chunks/{1eq7f419t6ln3.js → 2z42u62k-8-_q.js} +1 -1
  147. package/.next/standalone/.next/static/chunks/{0avgb78edu0i-.js → 3nj6g3xu9uy78.js} +1 -1
  148. package/.next/standalone/.next/static/chunks/{0xkxbaa-oo180.js → 3ty6dhcuogout.js} +1 -1
  149. package/.next/standalone/.next/static/chunks/3zkg2s2vzxc3d.js +1 -0
  150. package/.next/standalone/.next/static/chunks/{turbopack-00qy7zfa7m--m.js → turbopack-3lrm4f20fz89b.js} +1 -1
  151. package/.next/standalone/app/api/audit/_state.ts +40 -33
  152. package/.next/standalone/app/api/audit/invite/route.ts +183 -0
  153. package/.next/standalone/app/api/audit/run/route.ts +30 -16
  154. package/.next/standalone/app/api/audit/status/route.ts +1 -0
  155. package/.next/standalone/app/audit/_components/audit-dashboard.tsx +33 -65
  156. package/.next/standalone/app/audit/_components/audit-poster.tsx +322 -0
  157. package/.next/standalone/app/audit/_components/audit-progress-strip.tsx +1 -1
  158. package/.next/standalone/app/audit/_components/auth-dialog.tsx +21 -49
  159. package/.next/standalone/app/audit/_components/come-back-better-section.tsx +316 -0
  160. package/.next/standalone/app/audit/_components/empty-state.tsx +8 -2
  161. package/.next/standalone/app/audit/_components/how-to-improve-section.tsx +187 -0
  162. package/.next/standalone/app/audit/_components/invite-dialog.tsx +227 -0
  163. package/.next/standalone/app/audit/_components/quirks-section.tsx +75 -0
  164. package/.next/standalone/app/audit/_components/rerun-button.tsx +43 -14
  165. package/.next/standalone/app/audit/_components/run-progress.tsx +2 -2
  166. package/.next/standalone/app/audit/_components/share-templates.ts +23 -22
  167. package/.next/standalone/app/audit/_components/sigil.tsx +9 -66
  168. package/.next/standalone/app/audit/_components/strengths-section.tsx +20 -32
  169. package/.next/standalone/app/audit/audit-styles.css +781 -1784
  170. package/.next/standalone/app/components/sessions-list.tsx +77 -80
  171. package/.next/standalone/app/globals.css +214 -32
  172. package/.next/standalone/app/layout.tsx +1 -10
  173. package/.next/standalone/app/policies/hooks-client.tsx +12 -4
  174. package/.next/standalone/app/project/[name]/page.tsx +23 -79
  175. package/.next/standalone/app/projects/page.tsx +14 -23
  176. package/.next/standalone/assets/audit/poster-styles.css +1 -1
  177. package/.next/standalone/assets/audit/styles.css +11 -11
  178. package/.next/standalone/components/navbar.tsx +2 -37
  179. package/.next/standalone/lib/auth/api-server-client.ts +25 -0
  180. package/.next/standalone/node_modules/@next/env/package.json +2 -2
  181. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  182. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
  183. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  184. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  185. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  186. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  187. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  188. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  189. package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  190. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  191. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  192. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  193. package/.next/standalone/node_modules/next/package.json +15 -15
  194. package/.next/standalone/package.json +18 -15
  195. package/.next/standalone/server.js +1 -1
  196. package/dist/cli.mjs +2 -2
  197. package/lib/auth/api-server-client.ts +25 -0
  198. package/package.json +18 -15
  199. package/src/audit/dashboard-cache.ts +13 -6
  200. package/src/audit/social-proof.ts +34 -0
  201. package/.next/standalone/.next/server/chunks/[root-of-the-server]__07tgnzi._.js +0 -3
  202. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oeun7z._.js +0 -3
  203. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12pit4m._.js +0 -3
  204. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13ra2jq._.js +0 -3
  205. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1b9z5-i._.js +0 -3
  206. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ixjiy8._.js +0 -3
  207. package/.next/standalone/.next/server/chunks/_1-1804f._.js +0 -3
  208. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00jkjmt._.js +0 -4
  209. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__013du6r._.js +0 -4
  210. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e85wxv._.js +0 -4
  211. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0gfxvb1._.js +0 -3
  212. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1hlrq6y._.js +0 -4
  213. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1ihxdo5._.js +0 -4
  214. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1vvfde2._.js +0 -4
  215. package/.next/standalone/.next/server/chunks/ssr/node_modules_html2canvas_dist_html2canvas_esm_0q4m0_h.js +0 -3
  216. package/.next/standalone/.next/server/chunks/ssr/node_modules_html2canvas_dist_html2canvas_esm_1n-0xws.js +0 -3
  217. package/.next/standalone/.next/static/chunks/09ueq8s1as8xs.css +0 -2
  218. package/.next/standalone/.next/static/chunks/0qassxjx1ef04.js +0 -1
  219. package/.next/standalone/.next/static/chunks/2452blhu4bcdr.js +0 -41
  220. package/.next/standalone/.next/static/chunks/2so39wg7mjbi7.js +0 -1
  221. package/.next/standalone/.next/static/chunks/3gti1qdk5epqn.js +0 -1
  222. package/.next/standalone/.next/static/chunks/3osmt-t2hsrng.js +0 -1
  223. package/.next/standalone/.next/static/chunks/3wycox197ouus.css +0 -1
  224. package/.next/standalone/app/audit/_components/findings-section.tsx +0 -135
  225. package/.next/standalone/app/audit/_components/identity-section.tsx +0 -126
  226. package/.next/standalone/app/audit/_components/policies-section.tsx +0 -194
  227. package/.next/standalone/app/audit/_components/return-section.tsx +0 -416
  228. package/.next/standalone/app/audit/_components/score-section.tsx +0 -179
  229. package/.next/standalone/app/audit/_components/share-dock.tsx +0 -265
  230. package/.next/standalone/app/audit/_components/show-off-cta.tsx +0 -135
  231. /package/.next/standalone/.next/static/{90NFQus9VOnEzD6sP0EyP → NYPiJP6Rv_exQdSFVS8HP}/_buildManifest.js +0 -0
  232. /package/.next/standalone/.next/static/{90NFQus9VOnEzD6sP0EyP → NYPiJP6Rv_exQdSFVS8HP}/_clientMiddlewareManifest.js +0 -0
  233. /package/.next/standalone/.next/static/{90NFQus9VOnEzD6sP0EyP → NYPiJP6Rv_exQdSFVS8HP}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,36406,e=>{"use strict";let t;var s=e.i(43476),r=e.i(71645),n=e.i(74080);function i(e,t,s){let r,n=s.initialDeps??[],i=!0;function l(){let l=e();return(l.length!==n.length||l.some((e,t)=>n[t]!==e))&&(n=l,r=t(...l),(null==s?void 0:s.onChange)&&!(i&&s.skipInitialOnChange)&&s.onChange(r),i=!1),r}return l.updateDeps=e=>{n=e},l}function l(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(47167);let o=()=>{if(void 0!==t)return t;if("u"<typeof navigator)return t=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return t=!0;let e=navigator.maxTouchPoints;return t="MacIntel"===navigator.platform&&void 0!==e&&e>0},a=e=>e,d=e=>{let t=Math.max(e.startIndex-e.overscan,0),s=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(s);for(let e=0;e<s;e++)r[e]=t+e;return r},c={passive:!0},h=(e,t)=>{let s=e.scrollElement;if(!s)return;let r=()=>{t({width:s.innerWidth,height:s.innerHeight})};return r(),s.addEventListener("resize",r,c),()=>{s.removeEventListener("resize",r)}},u="u"<typeof window||"onscrollend"in window,m=(e,t)=>((e,t,s)=>{var r,n;let i,l=e.scrollElement;if(!l)return;let o=e.targetWindow;if(!o)return;let a=e.options.useScrollendEvent&&u,d=0,h=a?null:(r=()=>t(d,!1),n=e.options.isScrollingResetDelay,function(...e){o.clearTimeout(i),i=o.setTimeout(()=>r.apply(this,e),n)}),m=e=>()=>{d=s(l),null==h||h(),t(d,e)},p=m(!0),f=m(!1);return l.addEventListener("scroll",p,c),a&&l.addEventListener("scrollend",f,c),()=>{l.removeEventListener("scroll",p),a&&l.removeEventListener("scrollend",f)}})(e,t,t=>e.options.horizontal?t.scrollX:t.scrollY),p=(e,t,s)=>{if(s.options.useCachedMeasurements){let t=s.indexFromElement(e),r=s.options.getItemKey(t);return s.itemSizeCache.get(r)??s.options.estimateSize(t)}if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[s.options.horizontal?"inlineSize":"blockSize"])}if(!t){let t=s.indexFromElement(e),r=s.options.getItemKey(t),n=s.itemSizeCache.get(r);if(void 0!==n)return n}return e[s.options.horizontal?"offsetWidth":"offsetHeight"]},f=(e,{adjustments:t=0,behavior:s},r)=>{var n,i;null==(i=null==(n=r.scrollElement)?void 0:n.scrollTo)||i.call(n,{[r.options.horizontal?"left":"top"]:e+t,behavior:s})};class g{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e,t,s;return(null==(s=null==(t=null==(e=this.targetWindow)?void 0:e.performance)?void 0:t.now)?void 0:s.call(t))??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,s=this.indexFromElement(t);if(!t.isConnected){for(let[e,s]of(this.observer.unobserve(t),this.elementsCache))if(s===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(s)&&this.resizeItem(s,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var s;null==(s=t())||s.disconnect(),e=null},observe:e=>{var s;return null==(s=t())?void 0:s.observe(e,{box:"border-box"})},unobserve:e=>{var s;return null==(s=t())?void 0:s.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{var t,s;let r={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:a,rangeExtractor:d,onChange:()=>{},measureElement:p,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(let t in e){let s=e[t];void 0!==s&&(r[t]=s)}let n=this.options,i=null,l=null,o=!1;if(void 0!==n&&n.enabled&&r.enabled&&"end"===r.anchorTo&&null!==this.scrollElement){let e=n.count,a=r.count,d=this.getMeasurements(),c=e>0?(null==(t=d[0])?void 0:t.key)??n.getItemKey(0):null,h=e>0?(null==(s=d[e-1])?void 0:s.key)??n.getItemKey(e-1):null;if(a!==e||e>0&&a>0&&(r.getItemKey(0)!==c||r.getItemKey(a-1)!==h)){o=!0;let t=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??d[0]:null;t&&(i=[t.key,this.getScrollOffset()-t.start]);let s=!0===r.followOnAppend?"auto":r.followOnAppend||null;s&&a>e&&this.isAtEnd(n.scrollEndThreshold)&&(0===e||r.getItemKey(a-1)!==h)&&(l=s)}}this.options=r,o&&(this.pendingMin=0,this.itemSizeCacheVersion++);let c=!1,h=0;if(i&&null!==this.scrollOffset){let[e,t]=i,s=this.getMeasurements(),{count:r,getItemKey:n}=this.options,l=0;for(;l<r&&n(l)!==e;)l++;if(l<r){let e=s[l];if(e){let s=e.start+t;s!==this.scrollOffset&&(h=s-this.scrollOffset,this.scrollOffset=s,c=!0)}}}(c||l)&&(this.pendingScrollAnchor=[c?i[0]:null,c?i[1]:0,l,h])},this.notify=e=>{var t,s;null==(s=(t=this.options).onChange)||s.call(t,this,e)},this.maybeNotify=i(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),null!=this.rafId&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();if(this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{null!==this._intendedScrollOffset&&1.5>Math.abs(e-this._intendedScrollOffset)&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?"forward":"backward":null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,null!==this._iosTouchEndTimerId&&null!=this.targetWindow&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},s=()=>{this._iosTouching=!1,o()&&null!=this.targetWindow&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener("touchstart",t,c),e.addEventListener("touchend",s,c),this.unsubs.push(()=>{e.removeEventListener("touchstart",t),e.removeEventListener("touchend",s),null!==this._iosTouchEndTimerId&&null!=this.targetWindow&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let s=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,s&&this.scrollElement&&this.options.enabled){let[e,t,r,n]=s;null===e||r||(o()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?0!==n&&(this._iosDeferredAdjustment+=n):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(0===this._iosDeferredAdjustment||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;let s=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=s,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let s=new Map,r=new Map;for(let n=t-1;n>=0;n--){let t=e[n];if(s.has(t.lane))continue;let i=r.get(t.lane);if(null==i||t.end>i.end?r.set(t.lane,t):t.end<i.end&&s.set(t.lane,!0),s.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=i(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,s,r,n,i,l)=>(void 0!==this.prevLanes&&this.prevLanes!==i&&(this.lanesChangedFlag=!0),this.prevLanes=i,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:s,getItemKey:r,enabled:n,lanes:i,laneAssignmentMode:l}),{key:!1}),this.getMeasurements=i(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:s,getItemKey:r,enabled:n,lanes:i,laneAssignmentMode:l},o)=>{let a=this.itemSizeCache;if(!n)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),0!==this.measurementsCache.length||this.lanesSettling||(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let d=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),1===i){var c;let n,i=this.options.gap,l=2*e,o=this._flatMeasurements;if(!o||o.length<l){let e=new Float64Array(l);o&&d>0&&e.set(o.subarray(0,2*d)),o=e,this._flatMeasurements=o}if(0===d)n=t+s;else{let e=d-1;n=o[2*e]+o[2*e+1]+i}for(let t=d;t<e;t++){let e=r(t),s=a.get(e),l="number"==typeof s?s:this.options.estimateSize(t);o[2*t]=n,o[2*t+1]=l,n+=l+i}let h=(c=o,new Proxy(Array(e),{get(t,s,n){if("string"==typeof s){let n=s.charCodeAt(0);if(n>=48&&n<=57){let n=+s;if(Number.isInteger(n)&&n>=0&&n<e){let e=t[n];if(!e){let s=c[2*n];e=t[n]={index:n,key:r(n),start:s,size:c[2*n+1],end:s+c[2*n+1],lane:0}}return e}}if("length"===s)return e}return Reflect.get(t,s,n)}}));return this.measurementsCache=h,h}let h=this.measurementsCache.slice(0,d),u=Array(i).fill(void 0);for(let e=0;e<d;e++){let t=h[e];t&&(u[t.lane]=e)}for(let n=d;n<e;n++){let e,i,o=r(n),d=this.laneAssignments.get(n),c="estimate"===l||a.has(o);if(void 0!==d&&this.options.lanes>1){let r=u[e=d],n=void 0!==r?h[r]:void 0;i=n?n.end+this.options.gap:t+s}else{let r=1===this.options.lanes?h[n-1]:this.getFurthestMeasurement(h,n);i=r?r.end+this.options.gap:t+s,e=r?r.lane:n%this.options.lanes,this.options.lanes>1&&c&&this.laneAssignments.set(n,e)}let m=a.get(o),p="number"==typeof m?m:this.options.estimateSize(n),f=i+p;h[n]={index:n,start:i,size:p,end:f,key:o,lane:e},u[e]=n}return this.measurementsCache=h,h},{key:!1,debug:()=>this.options.debug}),this.calculateRange=i(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,s,r)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:s,lanes:r,flat:n}){let i=e.length-1,l=n?e=>n[2*e]:t=>e[t].start,o=n?e=>n[2*e]+n[2*e+1]:t=>e[t].end;if(e.length<=r)return{startIndex:0,endIndex:i};let a=x(0,i,l,s),d=a;if(1===r)for(;d<i&&o(d)<s+t;)d++;else if(r>1){let n=Array(r).fill(0);for(;d<i&&n.some(e=>e<s+t);){let t=e[d];n[t.lane]=t.end,d++}let l=Array(r).fill(s+t);for(;a>=0&&l.some(e=>e>=s);){let t=e[a];l[t.lane]=t.start,a--}a=Math.max(0,a-a%r),d=Math.min(i,d+(r-1-d%r))}return{startIndex:a,endIndex:d}}({measurements:e,outerSize:t,scrollOffset:s,lanes:r,flat:1===r&&null!=this._flatMeasurements?this._flatMeasurements:null}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=i(()=>{let e=null,t=null,s=this.calculateRange();return s&&(e=s.startIndex,t=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,s,r,n)=>null===r||null===n?[]:e({startIndex:r,endIndex:n,overscan:t,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,s=e.getAttribute(t);return s?parseInt(s,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{var t;if(!this.scrollState||"smooth"!==this.scrollState.behavior)return!0;let s=this.scrollState.index??(null==(t=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))?void 0:t.index);if(void 0!==s&&this.range){let t=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,s-t),n=Math.min(this.options.count-1,s+t);return e>=r&&e<=n}return!0},this.measureElement=e=>{if(!e)return void this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});let t=this.indexFromElement(e),s=this.options.getItemKey(t),r=this.elementsCache.get(s);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(s,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{var s,r;let n,i,l;if(e<0||e>=this.options.count)return;let o=this._flatMeasurements;if(1===this.options.lanes&&null!==o)l=this.options.getItemKey(e),i=o[2*e],n=o[2*e+1];else{let t=this.measurementsCache[e];if(!t)return;l=t.key,i=t.start,n=t.size}let a=t-(this.itemSizeCache.get(l)??n);if(0!==a){let o="end"===this.options.anchorTo&&(null==(s=this.scrollState)?void 0:s.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,d=o?this.getTotalSize():0,c=(null==(r=this.scrollState)?void 0:r.behavior)!=="smooth"&&(void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:l,start:i,size:n,end:i+n,lane:0},a,this):i<this.getScrollOffset()+this.scrollAdjustments&&"backward"!==this.scrollDirection);(null===this.pendingMin||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(l,t),this.itemSizeCacheVersion++,o?this.applyScrollAdjustment(this.getTotalSize()-d):c&&this.applyScrollAdjustment(a),this.notify(!1)}},this.getVirtualItems=i(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let s=[];for(let r=0,n=e.length;r<n;r++){let n=t[e[r]];s.push(n)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0===t.length)return;let s=this._flatMeasurements,r=1===this.options.lanes&&null!=s,n=x(0,t.length-1,r?e=>s[2*e]:e=>l(t[e]).start,e);return l(t[n])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,s=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),n=this.getScrollOffset();return"auto"===t&&(t=e>=n+r?"end":"start"),"center"===t?e+=(s-r)/2:"end"===t&&(e-=r),Math.max(Math.min(this.getMaxScrollOffset(),e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let s=this.getSize(),r=this.getScrollOffset(),n=this.measurementsCache[e];if(!n)return;if("auto"===t)if(n.end>=r+s-this.options.scrollPaddingEnd)t="end";else{if(!(n.start<=r+this.options.scrollPaddingStart))return[r,t];t="start"}if("end"===t&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let i="end"===t?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(i,t,n.size),t]},this.scrollToOffset=(e,{align:t="start",behavior:s="auto"}={})=>{let r=this.getOffsetForAlignment(e,t),n=this.now();this.scrollState={index:null,align:t,behavior:s,startedAt:n,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t="auto",behavior:s="auto"}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[n,i]=r,l=this.now();this.scrollState={index:e,align:i,behavior:s,startedAt:l,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t="auto"}={})=>{let s=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:"start",behavior:t,startedAt:r,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e="auto"}={})=>{this.options.count>0?this.scrollToIndex(this.options.count-1,{align:"end",behavior:e}):this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{var e;let t,s=this.getMeasurements();if(0===s.length)t=this.options.paddingStart;else if(1===this.options.lanes){let r=s.length-1,n=this._flatMeasurements;t=null!=n?n[2*r]+n[2*r+1]:(null==(e=s[r])?void 0:e.end)??0}else{let e=Array(this.options.lanes).fill(null),r=s.length-1;for(;r>=0&&e.some(e=>null===e);){let t=s[r];null===e[t.lane]&&(e[t.lane]=t.end),r--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(0===this.itemSizeCache.size)return e;for(let t of this.getMeasurements())t&&this.itemSizeCache.has(t.key)&&e.push({index:t.index,key:t.key,start:t.start,size:t.size,end:t.end,lane:t.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:s})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:s,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){0!==e&&(o()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=e:this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}null==this.rafId&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=null!=this.scrollState.index?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,t=e?e[0]:this.scrollState.lastTargetOffset,s=t!==this.scrollState.lastTargetOffset;if(!s&&1.01>Math.abs(t-this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,s){let e=this.getSize()||600,s=Math.abs(t-this.getScrollOffset()),r="smooth"===this.scrollState.behavior&&s>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior="auto"),this._scrollToOffset(t,{adjustments:void 0,behavior:r?"smooth":"auto"})}this.scheduleScrollReconcile()}}let x=(e,t,s,r)=>{for(;e<=t;){let n=(e+t)/2|0,i=s(n);if(i<r)e=n+1;else{if(!(i>r))return n;t=n-1}}return e>0?e-1:0},y="u">typeof document?r.useLayoutEffect:r.useEffect;var b=e.i(16327),v=e.i(56420);let j=(0,v.default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]),w=(0,v.default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),S=(0,v.default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]),N=(0,v.default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]),M=(0,v.default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);var k=e.i(68590);let E=(0,v.default)("workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);var T=e.i(34713);let I=r.default.memo(function({entries:e,compact:t=!1}){let n=(0,r.useMemo)(()=>(function(e){let t=0,s=0,r=0,n=0,i=0,l=new Set;for(let o of e)if("user"===o.type&&t++,"queue-operation"===o.type&&i++,"assistant"===o.type){for(let e of(s++,o.message.content))"tool_use"===e.type&&("Task"===e.name&&(e.subagentType||e.subagentId)?n++:r++);o.message.model&&l.add(o.message.model)}let o="";if(e.length>=2){let t=e[e.length-1].timestampMs-e[0].timestampMs;o=(0,T.formatDuration)(t)}return{turnCount:i,userCount:t,assistantCount:s,toolCallCount:r,subagentCount:n,duration:o,models:Array.from(l)}})(e),[e]),i=t?"w-3.5 h-3.5":"w-4 h-4",l=t?"text-xs font-medium":"text-sm font-medium",o=t?"text-[10px] text-muted-foreground":"text-xs text-muted-foreground",a=[...t?[]:[{Icon:k.MessageSquare,color:"text-primary",v:n.turnCount,l:"Turns"}],{Icon:w,color:"text-[color:var(--chart-1)]",v:n.userCount,l:"User"},{Icon:S,color:"text-[color:var(--chart-2)]",v:n.assistantCount,l:"Assistant"},{Icon:j,color:"text-[color:var(--chart-3)]",v:n.toolCallCount,l:t?"Tools":"Tool Calls"},{Icon:E,color:"text-[color:var(--chart-5)]",v:n.subagentCount,l:"Subagents"},{Icon:M,color:"text-[color:var(--chart-4)]",v:n.duration||"—",l:"Duration"},{Icon:N,color:"text-[color:var(--chart-5)]",v:n.models.length>0?n.models.join(", "):"—",l:t?"Model":"Model(s)"}];return(0,s.jsx)("div",{className:t?"bg-muted/30 border border-border/50 rounded-lg p-3 mb-3":"bg-card border border-border rounded-lg p-4",children:(0,s.jsx)("div",{className:`grid grid-cols-2 ${t?"sm:grid-cols-6 gap-3":"sm:grid-cols-4 lg:grid-cols-7 gap-4"}`,children:a.map(({Icon:e,color:t,v:r,l:n})=>(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(e,{className:`${i} ${t}`}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:`${l} truncate max-w-[120px]`,children:r}),(0,s.jsx)("div",{className:o,children:n})]})]},n))})})}),C=(0,v.default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);var O=e.i(67927);function A(e){return JSON.stringify(e.raw,null,2)}let z=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",second:"2-digit",hour12:!0});function _(e){let t=new Date(e),s=z.format(t),r=t.getMilliseconds().toString().padStart(3,"0");return`${s}.${r}`}let F=r.default.memo(function({entry:e,isCollapsed:t,entryCount:r,onToggle:n}){let i="function"==typeof n,l=(0,s.jsxs)("div",{className:`flex items-center gap-2 px-3 py-1 rounded-full bg-primary/10 border border-primary/20 text-primary text-xs font-medium${i?" group-hover:bg-primary/20 transition-colors":""}`,children:[i?(0,s.jsx)(O.ChevronRight,{className:`w-3 h-3 transition-transform ${t?"":"rotate-90"}`}):(0,s.jsx)(C,{className:"w-3 h-3"}),(0,s.jsx)("span",{children:e.label}),(0,s.jsx)("span",{className:"text-muted-foreground",children:_(e.timestampMs)}),i&&t&&"number"==typeof r&&(0,s.jsxs)("span",{className:"ml-1 px-1.5 py-0.5 rounded bg-primary/20 text-[10px] leading-none",children:[r," ",1===r?"entry":"entries"]})]});return i?(0,s.jsxs)("button",{type:"button",onClick:n,className:"group flex items-center gap-3 py-3 px-4 w-full cursor-pointer",children:[(0,s.jsx)("div",{className:"flex-1 h-px bg-primary/30"}),l,(0,s.jsx)("div",{className:"flex-1 h-px bg-primary/30"})]}):(0,s.jsxs)("div",{className:"flex items-center gap-3 py-3 px-4",children:[(0,s.jsx)("div",{className:"flex-1 h-px bg-primary/30"}),l,(0,s.jsx)("div",{className:"flex-1 h-px bg-primary/30"})]})});var D=e.i(47163);let R={user:"User",assistant:"Assistant","file-history-snapshot":"Snapshot",progress:"Progress",system:"System","queue-operation":"Queue"},$={user:"bg-[color:var(--chart-1)]/20 text-[color:var(--chart-1)] border-[color:var(--chart-1)]/30",assistant:"bg-[color:var(--chart-2)]/20 text-[color:var(--chart-2)] border-[color:var(--chart-2)]/30","file-history-snapshot":"bg-[color:var(--chart-3)]/20 text-[color:var(--chart-3)] border-[color:var(--chart-3)]/30",progress:"bg-[color:var(--chart-5)]/20 text-[color:var(--chart-5)] border-[color:var(--chart-5)]/30",system:"bg-[color:var(--chart-4)]/20 text-[color:var(--chart-4)] border-[color:var(--chart-4)]/30","queue-operation":"bg-primary/20 text-primary border-primary/30"},P={user:"border-l-[color:var(--chart-1)]",assistant:"border-l-[color:var(--chart-2)]","file-history-snapshot":"border-l-[color:var(--chart-3)]",progress:"border-l-[color:var(--chart-5)]",system:"border-l-[color:var(--chart-4)]","queue-operation":"border-l-primary"},W=(0,v.default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]),L=(0,v.default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);var U=e.i(66794);function q({type:e}){let t="w-4 h-4";switch(e){case"user":return(0,s.jsx)(w,{className:t});case"assistant":return(0,s.jsx)(S,{className:t});case"file-history-snapshot":return(0,s.jsx)(W,{className:t});case"progress":return(0,s.jsx)(L,{className:t});case"system":return(0,s.jsx)(U.Settings,{className:t});case"queue-operation":return(0,s.jsx)(C,{className:t})}}function B({type:e}){return(0,s.jsxs)("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 text-xs font-mono rounded border ${$[e]}`,children:[(0,s.jsx)(q,{type:e}),R[e]]})}var H=e.i(24380);function V({block:e}){let t=(0,r.useMemo)(()=>JSON.stringify(e.input,null,2),[e]);return(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("details",{open:!0,children:[(0,s.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:(0,s.jsxs)("span",{className:"inline-flex items-center gap-1",children:["Input",(0,s.jsx)(H.CopyButton,{text:t})]})}),(0,s.jsx)("pre",{className:"mt-1 p-2 bg-muted/50 rounded text-xs whitespace-pre-wrap break-words max-h-64 overflow-y-auto",children:t})]}),e.result?(0,s.jsxs)("div",{className:"border-l-2 border-primary/50 pl-3 space-y-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"inline-block px-2 py-0.5 text-xs font-mono rounded border bg-primary/20 text-primary border-primary/30",children:"Result"}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:_(new Date(e.result.timestamp).getTime())})]}),e.result.content&&(0,s.jsxs)("details",{open:!0,children:[(0,s.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:(0,s.jsxs)("span",{className:"inline-flex items-center gap-1",children:["Output",(0,s.jsx)(H.CopyButton,{text:e.result.content})]})}),(0,s.jsx)("pre",{className:"mt-1 p-2 bg-muted/50 rounded text-xs whitespace-pre-wrap break-words max-h-48 overflow-y-auto",children:e.result.content})]}),e.result.images?.map((e,t)=>(0,s.jsx)("img",{src:`data:${e.mediaType};base64,${e.base64}`,alt:`Tool result image ${t+1}`,className:"mt-2 max-w-full rounded border border-border"},t))]}):(0,s.jsx)("div",{className:"text-xs text-muted-foreground",children:"Tool did not return a result"})]})}let K=(0,v.default)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]),J=r.default.memo(function({block:e,entriesBySource:t,projectName:r,sessionId:n,highlightedUuid:i,autoExpandForUuid:l}){switch(e.type){case"text":return(0,s.jsx)("p",{className:"whitespace-pre-wrap text-sm",children:e.text});case"tool_use":if("Task"===e.name&&(e.subagentType||e.subagentId)){let o=e.subagentId&&t?t.get(`agent-${e.subagentId}`):void 0;return(0,s.jsx)(et,{block:e,subagentEntries:o,projectName:r,sessionId:n,highlightedUuid:i,autoExpandForUuid:l})}return(0,s.jsxs)("div",{className:"border border-border/50 rounded-lg p-3 bg-muted/10",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,s.jsx)(j,{className:"w-4 h-4 text-primary flex-shrink-0"}),(0,s.jsx)("span",{className:"font-mono text-sm text-primary truncate min-w-0",children:e.name}),e.result&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground ml-auto flex-shrink-0",children:e.result.durationFormatted})]}),(0,s.jsx)(V,{block:e})]});case"thinking":return(0,s.jsx)("div",{className:"border border-[color:var(--chart-5)]/30 rounded-lg p-3 bg-[color:var(--chart-5)]/5",children:(0,s.jsxs)("details",{children:[(0,s.jsxs)("summary",{className:"flex items-center gap-2 text-xs cursor-pointer hover:text-foreground transition-colors text-[color:var(--chart-5)]",children:[(0,s.jsx)(K,{className:"w-4 h-4"}),(0,s.jsx)("span",{children:"Thinking"}),(0,s.jsxs)("span",{className:"text-muted-foreground ml-1",children:["(",e.thinking.length.toLocaleString()," chars)"]})]}),(0,s.jsx)("p",{className:"mt-2 whitespace-pre-wrap text-xs text-muted-foreground p-2 bg-muted/30 rounded max-h-64 overflow-y-auto",children:e.thinking})]})})}});function Y({entry:e}){return(0,s.jsx)("div",{children:e.message.content&&(0,s.jsx)("p",{className:"whitespace-pre-wrap text-sm",children:e.message.content})})}let X=r.default.memo(function({entry:e,entriesBySource:t,projectName:r,sessionId:n,highlightedUuid:i,autoExpandForUuid:l}){let{content:o}=e.message;return(0,s.jsx)("div",{className:"space-y-3",children:o.map((e,o)=>(0,s.jsx)(J,{block:e,entriesBySource:t,projectName:r,sessionId:n,highlightedUuid:i,autoExpandForUuid:l},o))})}),Q=r.default.memo(function({entry:e}){let t=(0,r.useMemo)(()=>{if("progress"===e.type){let t=e.raw.data,s=t?.agentId;return[t?.type,s&&`agent:${s}`].filter(Boolean).join(" | ")}return"file-history-snapshot"===e.type?"File history snapshot":e.type},[e.type,e.raw]);return(0,s.jsxs)("div",{className:"text-sm",children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:t}),(0,s.jsxs)("details",{className:"mt-1",children:[(0,s.jsx)("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground transition-colors",children:"Show raw JSON"}),(0,s.jsx)("pre",{className:"mt-1 p-2 bg-muted/50 rounded text-xs whitespace-pre-wrap break-words max-h-64 overflow-y-auto",children:A(e)})]})]})}),G=(0,v.default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);var Z=e.i(55574);function ee({uuid:e}){let t=(0,r.useCallback)(async()=>{window.history.replaceState(null,"",`#entry-${e}`);try{await navigator.clipboard.writeText(window.location.href)}catch{let e=document.createElement("textarea");e.value=window.location.href,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}(0,Z.toast)("Link copied")},[e]);return(0,s.jsx)("button",{onClick:t,title:"Copy link to entry",className:"inline-flex items-center justify-center rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted/80 transition-colors opacity-0 group-hover:opacity-100 transition-opacity",children:(0,s.jsx)(G,{className:"w-3.5 h-3.5"})})}function et({block:e,subagentEntries:t,projectName:n,sessionId:i,highlightedUuid:l,autoExpandForUuid:o}){let a=!!(o&&t?.some(e=>e.uuid===o)),[d,c]=(0,r.useState)(a);(0,r.useEffect)(()=>{if(!a)return;let e=requestAnimationFrame(()=>c(!0));return()=>cancelAnimationFrame(e)},[a]);let h=(0,r.useCallback)(()=>{c(e=>!e)},[]),u=t&&t.length>0;return(0,s.jsxs)("div",{className:"border border-border/50 rounded-lg p-3 bg-muted/10",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,s.jsx)(E,{className:"w-4 h-4 text-[color:var(--chart-5)]"}),(0,s.jsx)("span",{className:"font-mono text-sm text-[color:var(--chart-5)]",children:"Subagent"}),e.subagentType&&(0,s.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 text-xs font-mono rounded border bg-[color:var(--chart-5)]/20 text-[color:var(--chart-5)] border-[color:var(--chart-5)]/30",children:e.subagentType}),e.result&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground ml-auto",children:e.result.durationFormatted})]}),e.subagentDescription&&(0,s.jsx)("p",{className:"text-sm text-muted-foreground mb-2",children:e.subagentDescription}),e.subagentId&&t&&(0,s.jsxs)("button",{onClick:h,className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded border border-primary/30 bg-primary/10 text-primary hover:bg-primary/20 transition-colors mb-2",children:[(0,s.jsx)(O.ChevronRight,{className:(0,D.cn)("w-3 h-3 transition-transform",d&&"rotate-90")}),(0,s.jsxs)("span",{children:["agent-",e.subagentId]}),(0,s.jsx)("span",{className:"text-muted-foreground",children:d?"Collapse":"View subagent log"})]}),d&&(0,s.jsxs)("div",{className:"ml-4 pl-3 border-l-2 border-primary/30 mt-2 space-y-2",children:[t&&0===t.length&&(0,s.jsx)("div",{className:"text-xs text-muted-foreground py-2",children:"No entries found in subagent log."}),u&&(0,s.jsx)(s.Fragment,{children:(0,s.jsx)(I,{entries:t,compact:!0})}),t&&t.map(e=>"queue-operation"===e.type?(0,s.jsx)(F,{entry:e},e.uuid||e.timestamp):(0,s.jsx)(er,{entry:e,projectName:n,sessionId:i,isHighlighted:!!l&&e.uuid===l},e.uuid||e.timestamp))]}),(0,s.jsx)(V,{block:e})]})}function es({entry:e,entriesBySource:t,projectName:r,sessionId:n,highlightedUuid:i,autoExpandForUuid:l}){switch(e.type){case"user":return(0,s.jsx)(Y,{entry:e});case"assistant":return(0,s.jsx)(X,{entry:e,entriesBySource:t,projectName:r,sessionId:n,highlightedUuid:i,autoExpandForUuid:l});case"file-history-snapshot":case"progress":case"system":return(0,s.jsx)(Q,{entry:e})}}let er=r.default.memo(function({entry:e,entriesBySource:t,projectName:r,sessionId:n,isHighlighted:i,highlightedUuid:l,autoExpandForUuid:o}){return(0,s.jsxs)("div",{id:e.uuid?`entry-${e.uuid}`:void 0,className:(0,D.cn)(`group border-l-4 ${P[e.type]} bg-card/50 rounded-r-lg mb-2 hover:bg-muted/30 transition-colors`,i&&"entry-highlighted"),children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-border/30",children:[(0,s.jsx)(B,{type:e.type}),(0,s.jsxs)("div",{className:"flex items-center gap-1 ml-auto",children:[e.uuid&&(0,s.jsx)(ee,{uuid:e.uuid}),(0,s.jsx)(H.CopyButton,{text:function(e){switch(e.type){case"user":return e.message.content;case"assistant":return e.message.content.filter(e=>"text"===e.type).map(e=>e.text).join("\n");case"file-history-snapshot":case"progress":case"system":return A(e);case"queue-operation":return e.label}}(e)}),(0,s.jsx)("span",{className:"text-xs font-mono text-muted-foreground whitespace-nowrap",children:_(e.timestampMs)})]})]}),(0,s.jsx)("div",{className:"px-4 py-3",children:(0,s.jsx)(es,{entry:e,entriesBySource:t,projectName:r,sessionId:n,highlightedUuid:l,autoExpandForUuid:o})})]})},(e,t)=>e.entry===t.entry&&e.entriesBySource===t.entriesBySource&&e.projectName===t.projectName&&e.sessionId===t.sessionId&&e.isHighlighted===t.isHighlighted&&e.highlightedUuid===t.highlightedUuid&&e.autoExpandForUuid===t.autoExpandForUuid);var en=e.i(92472),ei=e.i(84026),el=e.i(29407),eo=e.i(16306),ea=e.i(82954),ed=e.i(73520),ec=e.i(85881);function eh({decision:e}){return"deny"===e?(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-red-500/10 text-red-400 border border-red-500/20",children:[(0,s.jsx)(el.ShieldX,{className:"h-3 w-3"}),"Deny"]}):"instruct"===e?(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-amber-500/10 text-amber-400 border border-amber-500/20",children:[(0,s.jsx)(eo.ShieldAlert,{className:"h-3 w-3"}),"Instruct"]}):(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[0.65rem] font-semibold tracking-wide uppercase bg-emerald-500/10 text-emerald-400 border border-emerald-500/20",children:[(0,s.jsx)(ei.ShieldCheck,{className:"h-3 w-3"}),"Allow"]})}function eu({eventType:e}){return(0,s.jsx)("span",{className:"inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium bg-muted text-muted-foreground border border-border/50",children:e})}function em({mode:e}){let t="default"===e;return(0,s.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium border ${t?"bg-sky-500/10 text-sky-400 border-sky-500/20":"bg-amber-500/10 text-amber-400 border-amber-500/20"}`,children:e})}function ep({ms:e}){return(0,s.jsx)("span",{className:`font-mono text-[0.7rem] ${e>500?"text-red-400":e>100?"text-amber-400":"text-muted-foreground"}`,children:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`})}function ef({value:e,onChange:t}){return(0,s.jsx)("div",{className:"inline-flex items-center rounded-md border border-border bg-muted/30 p-0.5",children:[{label:"All",value:""},{label:"Allow",value:"allow"},{label:"Instruct",value:"instruct"},{label:"Deny",value:"deny"}].map(r=>(0,s.jsx)("button",{onClick:()=>t(r.value),className:`px-2.5 py-1 text-[0.65rem] font-medium rounded transition-all ${e===r.value?"deny"===r.value?"bg-red-500/15 text-red-400 shadow-sm":"allow"===r.value?"bg-emerald-500/15 text-emerald-400 shadow-sm":"instruct"===r.value?"bg-amber-500/15 text-amber-400 shadow-sm":"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"}`,children:r.label},r.value))})}function eg({item:e}){return(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:9,className:"px-0 py-0",children:(0,s.jsxs)("div",{className:"px-6 py-3 bg-muted/20 border-t border-border/30 space-y-2 text-xs animate-expand",children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-1.5",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:"Session ID: "}),(0,s.jsx)("span",{className:"font-mono text-foreground",children:e.sessionId??"—"}),e.sessionId&&(0,s.jsx)(H.CopyButton,{text:e.sessionId})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:"CWD: "}),(0,s.jsx)("span",{className:"font-mono text-foreground",children:e.cwd??"—"}),e.cwd&&(0,s.jsx)(H.CopyButton,{text:e.cwd})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:"Transcript: "}),(0,s.jsx)("span",{className:"font-mono text-foreground break-all",children:e.transcriptPath??"—"}),e.transcriptPath?.startsWith("opencode-db://")&&(0,s.jsx)("span",{className:"text-muted-foreground ml-1",children:"(stored in opencode DB)"})]})]}),e.policyNames&&e.policyNames.length>1&&(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:"Policies: "}),(0,s.jsx)("span",{className:"font-mono text-foreground",children:e.policyNames.join(", ")})]}),e.reason&&(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-muted-foreground",children:"Full reason: "}),(0,s.jsx)("span",{className:"text-foreground",children:e.reason})]})]})})})}function ex({sessionId:e,initialData:t}){let{intervalSec:n}=(0,ec.useAutoRefresh)(),[i,l]=(0,r.useState)(!1),[o,a]=(0,r.useState)(1),[d,c]=(0,r.useState)(t),[h,u]=(0,r.useState)(null),[m,p]=(0,r.useState)(""),[f,g]=(0,r.useState)(""),[x,y]=(0,r.useState)(""),v=(0,r.useRef)(null),j=(0,r.useRef)({filterDecision:m,filterEventType:f,filterPolicy:x});j.current={filterDecision:m,filterEventType:f,filterPolicy:x};let w=""!==m||""!==f||""!==x,S=(0,r.useCallback)(async t=>{try{let{filterDecision:s,filterEventType:r,filterPolicy:n}=j.current,i=await (0,en.searchHookActivityAction)({sessionId:e,decision:s||void 0,eventType:r||void 0,policyName:n||void 0},t);c(i)}catch{}},[e]);(0,r.useEffect)(()=>{S(o);let e=setInterval(()=>S(o),n>0?1e3*n:5e3);return()=>clearInterval(e)},[o,S,n]),(0,r.useEffect)(()=>(v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{a(1),u(null),S(1)},300),()=>{v.current&&clearTimeout(v.current)}),[m,f,x]);let N=d.entries,M=d.totalPages;return(0,s.jsxs)("div",{children:[(0,s.jsxs)("button",{onClick:()=>l(e=>!e),className:"flex items-center gap-2 hover:opacity-80 transition-opacity",children:[(0,s.jsx)(b.ChevronDown,{className:`w-4 h-4 text-muted-foreground transition-transform ${i?"-rotate-90":""}`}),(0,s.jsx)("span",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Hook Logs"})]}),!i&&(0,s.jsxs)("div",{className:"mt-2 bg-card border border-border rounded-lg overflow-hidden shadow-sm",children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-3 px-4 py-2.5 border-b border-border bg-muted/20",children:[(0,s.jsx)(ef,{value:m,onChange:p}),(0,s.jsxs)("select",{value:f,onChange:e=>g(e.target.value),className:"h-7 rounded-md border border-border bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/40 transition-shadow",children:[(0,s.jsx)("option",{value:"",children:"All Events"}),(0,s.jsx)("option",{value:"PreToolUse",children:"PreToolUse"}),(0,s.jsx)("option",{value:"PostToolUse",children:"PostToolUse"}),(0,s.jsx)("option",{value:"SessionStart",children:"SessionStart"}),(0,s.jsx)("option",{value:"SessionEnd",children:"SessionEnd"}),(0,s.jsx)("option",{value:"UserPromptSubmit",children:"UserPromptSubmit"}),(0,s.jsx)("option",{value:"PermissionRequest",children:"PermissionRequest"})]}),(0,s.jsx)("div",{className:"relative",children:(0,s.jsx)("input",{type:"text",value:x,onChange:e=>y(e.target.value),placeholder:"Filter by policy…",className:"h-7 rounded-md border border-border bg-background px-2.5 text-xs text-foreground placeholder:text-muted-foreground w-44 focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/40 transition-shadow"})})]}),0===N.length?(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 px-4",children:[(0,s.jsx)(ea.Shield,{className:"h-10 w-10 text-muted-foreground/30"}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground mt-3",children:w?"No matching hook events.":"No hook events found."})]}):(0,s.jsx)("div",{className:"overflow-x-auto",children:(0,s.jsxs)("table",{className:"w-full text-xs",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{className:"text-left text-muted-foreground border-b border-border bg-muted/30",children:[(0,s.jsx)("th",{className:"px-4 py-2.5 font-medium w-6"}),(0,s.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Decision"}),(0,s.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Event"}),(0,s.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Tool"}),(0,s.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Policy"}),(0,s.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Reason"}),(0,s.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Duration"}),(0,s.jsx)("th",{className:"px-3 py-2.5 font-medium",children:"Mode"}),(0,s.jsx)("th",{className:"px-3 py-2.5 font-medium text-right",children:"Time"})]})}),(0,s.jsx)("tbody",{className:"divide-y divide-border/30",children:N.map((e,t)=>{let n="deny"===e.decision,i=h===t,l="instruct"===e.decision;return(0,s.jsxs)(r.default.Fragment,{children:[(0,s.jsxs)("tr",{onClick:()=>{u(e=>e===t?null:t)},className:`cursor-pointer transition-colors ${n?"bg-red-500/[0.03] hover:bg-red-500/[0.07] border-l-2 border-l-red-500/40":l?"bg-amber-500/[0.03] hover:bg-amber-500/[0.07] border-l-2 border-l-amber-500/40":t%2==0?"hover:bg-muted/30":"bg-muted/[0.04] hover:bg-muted/30"} ${i?"bg-muted/20":""}`,children:[(0,s.jsx)("td",{className:"px-4 py-2",children:(0,s.jsx)(b.ChevronDown,{className:`h-3.5 w-3.5 text-muted-foreground transition-transform duration-150 ${i?"rotate-0":"-rotate-90"}`})}),(0,s.jsx)("td",{className:"px-3 py-2",children:(0,s.jsx)(eh,{decision:e.decision})}),(0,s.jsx)("td",{className:"px-3 py-2",children:(0,s.jsx)(eu,{eventType:e.eventType})}),(0,s.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.toolName??"—"}),(0,s.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.policyNames&&e.policyNames.length>1?(0,s.jsxs)("span",{title:e.policyNames.join(", "),children:[e.policyNames[0],(0,s.jsxs)("span",{className:"text-muted-foreground text-[0.6rem]",children:[" +",e.policyNames.length-1]})]}):e.policyName??"—"}),(0,s.jsx)("td",{className:"px-3 py-2 text-muted-foreground truncate max-w-[240px]",title:e.reason??"",children:e.reason??"—"}),(0,s.jsx)("td",{className:"px-3 py-2",children:(0,s.jsx)(ep,{ms:e.durationMs})}),(0,s.jsx)("td",{className:"px-3 py-2",children:e.permissionMode?(0,s.jsx)(em,{mode:e.permissionMode}):"—"}),(0,s.jsx)("td",{className:"px-3 py-2 text-right text-muted-foreground whitespace-nowrap",title:new Date(e.timestamp).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}),children:(0,T.formatRelativeTime)(e.timestamp)})]}),i&&(0,s.jsx)(eg,{item:e})]},`${e.timestamp}-${t}`)})})]})}),(0,s.jsx)(ed.default,{currentPage:o,totalPages:M,onPageChange:e=>{a(e),u(null)}})]})]})}function ey(e){let t=new Map;for(let s of e)if("assistant"===s.type)for(let e of s.message.content){if("tool_use"!==e.type||"Task"===e.name&&(e.subagentType||e.subagentId))continue;let s=t.get(e.name)||{count:0,totalDurationMs:0};s.count++,e.result?.durationMs&&(s.totalDurationMs+=e.result.durationMs),t.set(e.name,s)}return Array.from(t.entries()).map(([e,t])=>({name:e,...t})).sort((e,t)=>t.count-e.count)}function eb({tools:e,compact:t}){return(0,s.jsx)("div",{className:`bg-card border border-border rounded-lg ${t?"p-3":"p-4"}`,children:(0,s.jsx)("div",{className:`grid grid-cols-[repeat(auto-fit,minmax(200px,1fr))] ${t?"gap-2":"gap-3"}`,children:e.map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsx)(j,{className:"w-3.5 h-3.5 text-muted-foreground flex-shrink-0"}),(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("div",{className:`${t?"text-xs":"text-sm"} font-mono font-medium truncate`,children:e.name}),(0,s.jsxs)("div",{className:"text-xs text-muted-foreground truncate",children:[e.count," call",1!==e.count?"s":"",e.totalDurationMs>0&&` \xb7 ${(e.totalDurationMs/1e3).toFixed(1)}s`]})]})]},e.name))})})}function ev(e){return`${e.uuid}-${e.timestampMs}`}function ej(){let e=window.location.hash;return e.startsWith("#entry-")?e.slice(7):null}function ew({entries:e,entriesBySource:t,projectName:i,sessionId:l}){let o=(0,r.useMemo)(()=>Array.from(t.values()).flat(),[t]),[a,d]=(0,r.useState)(new Set),[c,u]=(0,r.useState)(0),[p,x]=(0,r.useState)(()=>ej()),b=(0,r.useRef)(void 0),v=(0,r.useRef)(!1),j=(0,r.useRef)(null);(0,r.useLayoutEffect)(()=>{let e=j.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect().top+window.scrollY;u(e=>e===t?e:t)};t();let s=new ResizeObserver(t);return s.observe(document.body),window.addEventListener("resize",t),()=>{s.disconnect(),window.removeEventListener("resize",t)}},[]);let w=(0,r.useMemo)(()=>(function(e){let t=new Map,s=null,r=0;for(let n of e)"queue-operation"===n.type?(null!==s&&t.set(s,r),s=ev(n),r=0):null!==s&&r++;return null!==s&&t.set(s,r),t})(e),[e]),S=(0,r.useMemo)(()=>{let t;return t=!1,e.filter(e=>"queue-operation"===e.type?(t=a.has(ev(e)),!0):!t)},[e,a]),N=(0,r.useMemo)(()=>{let e=new Map;return S.forEach((t,s)=>{t.uuid&&e.set(t.uuid,s)}),e},[S]),M=(0,r.useMemo)(()=>(function(e){let t=new Map;for(let s of e)if("assistant"===s.type&&s.uuid)for(let e of s.message.content)"tool_use"===e.type&&"Task"===e.name&&e.subagentId&&t.set(e.subagentId,s.uuid);let s=new Map;for(let r of e){if(!r._source?.startsWith("agent-")||!r.uuid)continue;let e=r._source.slice(6),n=t.get(e);n&&s.set(r.uuid,n)}return s})(o),[o]),k=(0,r.useMemo)(()=>p&&M.has(p)?p:null,[p,M]),E=k?M.get(k)??null:null;(0,r.useEffect)(()=>{if(p)return b.current=setTimeout(()=>x(null),4e3),()=>{b.current&&clearTimeout(b.current)}},[]),(0,r.useEffect)(()=>{let e=()=>{let e=ej();x(e),v.current=!1,b.current&&clearTimeout(b.current),e&&(b.current=setTimeout(()=>x(null),4e3))};return window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[]);let T=(0,r.useMemo)(()=>{if(!p)return null;let t=E??p,s=e.some(e=>e.uuid===t),r=N.has(t);if(s&&!r){let s=null;for(let r of e)if("queue-operation"===r.type)s=ev(r);else if(r.uuid===t&&s)return s}return null},[p,E,e,N]);(0,r.useEffect)(()=>{if(!T)return;let e=requestAnimationFrame(()=>{d(e=>{if(!e.has(T))return e;let t=new Set(e);return t.delete(T),t})});return()=>cancelAnimationFrame(e)},[T]);let I=(0,r.useCallback)(e=>{d(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[]),C=function({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:s="transform",...i}){let l=r.useReducer(e=>e+1,0)[1],o=r.useRef({enabled:t,mode:s,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});o.current.enabled=t,o.current.mode=s;let a=e=>{let t=o.current;if(!t.enabled)return;let s=e.getTotalSize();if(t.container&&s!==t.lastSize){t.lastSize=s;let r=e.options.horizontal?"width":"height";t.container.style[r]=`${s}px`}let r=!!e.options.horizontal,n="transform"===t.mode,i=r?"left":"top",l=e.options.scrollMargin;for(let s of e.getVirtualItems()){let o=s.start-l,a=e.elementsCache.get(s.key);a&&t.lastPositions.get(a)!==o&&(t.lastPositions.set(a,o),n?a.style.transform=r?`translate3d(${o}px, 0, 0)`:`translate3d(0, ${o}px, 0)`:a.style[i]=`${o}px`)}},d={...i,onChange:(t,s)=>{var r;let d=o.current,c=!0;if(d.enabled){a(t);let e=t.range,s=d.prevRange;(c=!s||s.isScrolling!==t.isScrolling||s.startIndex!==(null==e?void 0:e.startIndex)||s.endIndex!==(null==e?void 0:e.endIndex))&&(d.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}c&&(e&&s?(0,n.flushSync)(l):l()),null==(r=i.onChange)||r.call(i,t,s)}},[c]=r.useState(()=>{let e=new g(d);return Object.assign(e,{containerRef:t=>{let s=o.current;if(s.container=t,s.lastSize=null,t&&s.enabled){let r=e.getTotalSize();s.lastSize=r;let n=e.options.horizontal?"width":"height";t.style[n]=`${r}px`}}})});return c.setOptions(d),y(()=>c._didMount(),[]),y(()=>c._willUpdate()),y(()=>{a(c)}),c}({getScrollElement:()=>"u">typeof document?window:null,observeElementRect:h,observeElementOffset:m,scrollToFn:f,initialOffset:()=>"u">typeof document?window.scrollY:0,...{count:S.length,estimateSize:e=>(function(e){switch(e.type){case"queue-operation":return 48;case"user":return 90;case"assistant":return 80+120*e.message.content.length;default:return 100}})(S[e]),overscan:5,scrollMargin:c}});return(0,r.useEffect)(()=>{if(!p||v.current)return;let e=E??p,t=N.get(e);null!=t&&(v.current=!0,requestAnimationFrame(()=>{C.scrollToIndex(t,{align:"center"})}))},[p,E,N,C]),(0,s.jsx)("div",{ref:j,children:(0,s.jsx)("div",{style:{height:`${C.getTotalSize()}px`,width:"100%",position:"relative"},children:C.getVirtualItems().map(e=>{let r=S[e.index],n=!!p&&r.uuid===(E??p);return(0,s.jsx)("div",{"data-index":e.index,ref:C.measureElement,style:{position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${e.start-C.options.scrollMargin}px)`},children:"queue-operation"===r.type?(0,s.jsx)(F,{entry:r,isCollapsed:a.has(ev(r)),entryCount:w.get(ev(r))??0,onToggle:()=>I(ev(r))}):(0,s.jsx)(er,{entry:r,entriesBySource:t,projectName:i,sessionId:l,isHighlighted:!k&&n,highlightedUuid:k,autoExpandForUuid:k})},"queue-operation"===r.type?ev(r):r.uuid||r.timestamp)})})})}let eS=[];e.s([],76248),e.i(76248),e.s(["default",0,function({entries:e,projectName:t,sessionId:n}){let i=(0,r.useMemo)(()=>{let t=new Map;for(let s of e){let e=t.get(s._source);e?e.push(s):t.set(s._source,[s])}return t},[e]),l=i.get("session")??eS,o=(0,r.useMemo)(()=>(function(e){let t=new Map;for(let s of e)if("assistant"===s.type)for(let e of s.message.content)"tool_use"===e.type&&"Task"===e.name&&e.subagentId&&(t.has(e.subagentId)||t.set(e.subagentId,{id:e.subagentId,type:e.subagentType||"unknown",description:e.subagentDescription||""}));return Array.from(t.values())})(e),[e]),a=(0,r.useMemo)(()=>ey(l),[l]),[d,c]=(0,r.useState)(!1),[h,u]=(0,r.useState)(new Set),[m,p]=(0,r.useState)(!1),[f,g]=(0,r.useState)(null);(0,r.useEffect)(()=>{(0,en.searchHookActivityAction)({sessionId:n},1).then(e=>{e.entries.length>0&&g(e)}).catch(()=>{})},[n]),(0,r.useEffect)(()=>{let e=()=>{window.location.hash.startsWith("#entry-")&&p(!1)};return window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[]);let x=(0,r.useCallback)(e=>{u(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[]);return(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(I,{entries:l}),f&&(0,s.jsx)(ex,{sessionId:n,initialData:f},n),o.length>0&&(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("button",{onClick:()=>c(e=>!e),className:"flex items-center gap-2 hover:opacity-80 transition-opacity",children:[(0,s.jsx)(b.ChevronDown,{className:`w-4 h-4 text-muted-foreground transition-transform ${d?"-rotate-90":""}`}),(0,s.jsx)("span",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Subagents"}),(0,s.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",o.length,")"]})]}),!d&&o.map(e=>{let t;return(0,s.jsxs)("div",{className:"pl-3 border-l-2 border-primary/30 space-y-2",children:[(0,s.jsxs)("button",{onClick:()=>x(e.id),className:"flex items-center gap-2 hover:opacity-80 transition-opacity",children:[(0,s.jsx)(b.ChevronDown,{className:`w-3.5 h-3.5 text-muted-foreground transition-transform ${h.has(e.id)?"-rotate-90":""}`}),(0,s.jsx)("span",{className:"text-sm font-bold",children:e.type}),e.description&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground truncate max-w-[400px]",children:e.description})]}),!h.has(e.id)&&(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(I,{entries:i.get(`agent-${e.id}`)||[],compact:!0}),(t=ey(i.get(`agent-${e.id}`)||[])).length>0?(0,s.jsx)(eb,{tools:t,compact:!0}):null]})]},e.id)})]}),a.length>0&&(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Tools"}),(0,s.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",a.reduce((e,t)=>e+t.count,0),")"]})]}),(0,s.jsx)(eb,{tools:a})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("button",{onClick:()=>p(e=>!e),className:"flex items-center gap-2 hover:opacity-80 transition-opacity",children:[(0,s.jsx)(b.ChevronDown,{className:`w-4 h-4 text-muted-foreground transition-transform ${m?"-rotate-90":""}`}),(0,s.jsx)("span",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wide",children:"Logs"})]}),!m&&(0,s.jsx)("div",{className:"mt-2 bg-card border border-border rounded-lg p-4 shadow-sm",children:0===l.length?(0,s.jsx)("p",{className:"text-muted-foreground text-center py-8",children:"No entries found."}):(0,s.jsx)(ew,{entries:l,entriesBySource:i,projectName:t,sessionId:n})})]})]})}],36406)},5780,e=>{e.n(e.i(36406))}]);
@@ -1 +0,0 @@
1
- .scanline-overlay{pointer-events:none;z-index:9999;mix-blend-mode:overlay;background:repeating-linear-gradient(#fff0 0 2px,#ffffff05 2px 3px);position:fixed;inset:0}.empty-section,.running-section{padding-top:80px;padding-bottom:96px}.empty-panel,.running-panel{background:repeating-linear-gradient(0deg, #e4587d06 0 1px, transparent 1px 16px), repeating-linear-gradient(90deg, #66d1b506 0 1px, transparent 1px 16px), var(--bg-2);flex-direction:column;padding:48px 56px;display:flex}.empty-glyph{text-align:center;align-self:center;margin-bottom:28px}.empty-glyph-grid{border:1px solid var(--line-2);background:var(--bg);box-shadow:6px 6px 0 0 var(--accent-pink-shadow);grid-template-rows:repeat(6,14px);grid-template-columns:repeat(6,14px);gap:3px;margin:0 auto 14px;padding:16px;display:grid}.empty-glyph-grid .px{background:0 0}.empty-glyph-grid .px.on{background:var(--accent-pink)}.empty-glyph-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--dim);font-size:11px}.empty-headline{font-family:var(--font-display);letter-spacing:.1em;text-transform:lowercase;color:var(--ink);text-shadow:3px 3px 0 var(--accent-pink-shadow);text-wrap:balance;text-align:center;margin:0 0 16px;font-size:clamp(32px,4.6vw,48px);line-height:1.05}.empty-sub{font-family:var(--font-mono);color:var(--ink-2);text-align:center;max-width:580px;margin:0 auto 32px;font-size:14px;line-height:1.65}.empty-actions{flex-direction:column;align-items:center;gap:12px;display:flex}.empty-cta{letter-spacing:.08em;padding:12px 24px;font-size:14px;text-decoration:none}.empty-meta{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--dim);font-size:11px}.running-panel{padding:36px 40px}.running-header{border-bottom:1px dashed var(--line);font-family:var(--font-mono);align-items:center;gap:10px;margin-bottom:22px;padding-bottom:18px;font-size:13px;display:flex}.running-prompt{color:var(--accent-green)}.running-cmd{color:var(--ink);letter-spacing:.02em}.running-cursor{color:var(--accent-pink);margin-left:4px;animation:.9s steps(2,end) infinite cursor-blink}@keyframes cursor-blink{50%{opacity:0}}.running-stages{flex-direction:column;margin:0 0 28px;padding:0;list-style:none;display:flex}.running-stage{border-bottom:1px dashed var(--line);font-family:var(--font-mono);grid-template-columns:28px 1fr auto;align-items:start;gap:14px;padding:12px 0;display:grid}.running-stage:last-child{border-bottom:none}.running-marker{font-family:var(--font-mono);letter-spacing:-1px;margin-top:1px;font-size:12px}.running-stage.queued{color:var(--dim)}.running-stage.queued .running-marker{color:var(--line-2)}.running-stage.active{color:var(--ink)}.running-stage.active .running-marker{color:var(--accent-pink)}.running-stage.done{color:var(--ink-2)}.running-stage.done .running-marker{color:var(--accent-green)}.running-stage.done .running-stage-label{text-decoration:line-through;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2)}.running-stage-label{letter-spacing:.04em;font-size:13px}.running-stage-detail{color:var(--ink-2);letter-spacing:.02em;margin-top:4px;font-size:11px}.running-stage-spin{font-family:var(--font-mono);color:var(--accent-pink);align-self:center;font-size:16px;animation:.7s steps(4,end) infinite spin-step}@keyframes spin-step{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.running-bar-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2);justify-content:space-between;margin-bottom:8px;font-size:10px;display:flex}.running-bar-track{background:var(--bg);border:1px solid var(--line);height:6px;position:relative;overflow:hidden}.running-bar-fill{background:linear-gradient(90deg, var(--accent-pink) 0%, #e89aaf 100%);height:100%;transition:width .6s cubic-bezier(.22,1,.36,1);position:relative}.running-bar-fill:after{content:"";background:linear-gradient(90deg,#0000 0% 40%,#ffffff59 50%,#0000 60% 100%);animation:1.6s linear infinite bar-shine;position:absolute;inset:0}@keyframes bar-shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.running-foot{font-family:var(--font-mono);letter-spacing:.05em;color:var(--dim);text-align:center;margin-top:22px;font-size:11px}@media (max-width:720px){.empty-panel,.running-panel{padding:32px 24px}}.report{width:100%;max-width:clamp(720px,92vw,1480px);margin:0 auto;padding:0 clamp(20px,3vw,48px)}.section{border-bottom:1px solid var(--line);padding:64px 0;position:relative}.section:last-child{border-bottom:none}.section-mast{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:28px;display:flex}.section-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-green);align-items:baseline;gap:10px;font-size:11px;display:inline-flex}.section-label .glyph{color:var(--accent-pink);letter-spacing:-2px}.section-meta{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);font-size:11px}.section-meta .g{color:var(--accent-green)}.section-meta .p{color:var(--accent-pink)}.section-h{font-family:var(--font-display);letter-spacing:.11em;color:var(--ink);text-transform:lowercase;text-wrap:balance;margin:0 0 18px;font-size:clamp(28px,4vw,44px);font-weight:400;line-height:1.05}.identity{padding:80px 0 96px;position:relative}.archetype-frame{border:1px solid var(--line-2);background:repeating-linear-gradient(0deg, #e4587d06 0 1px, transparent 1px 16px), repeating-linear-gradient(90deg, #66d1b506 0 1px, transparent 1px 16px), var(--bg-2);max-width:1320px;box-shadow:8px 8px 0 0 var(--accent-pink-shadow);margin-left:auto;margin-right:auto;padding:56px 56px 48px;position:relative}.archetype-frame .corner{font-family:var(--font-mono);color:var(--accent-pink);opacity:.6;letter-spacing:.1em;font-size:11px;position:absolute}.archetype-frame .corner.tl{top:8px;left:12px}.archetype-frame .corner.tr{top:8px;right:12px}.archetype-frame .corner.bl{bottom:8px;left:12px}.archetype-frame .corner.br{bottom:8px;right:12px}.arch-mast{border-bottom:1px dashed var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px;padding-bottom:22px;display:flex}.arch-mast-left{flex-direction:column;gap:8px;display:flex}.arch-eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-green);font-size:11px}.arch-eyebrow .ix{color:var(--accent-pink)}.arch-target{font-family:var(--font-mono);color:var(--ink-2);letter-spacing:.05em;font-size:12px}.arch-target .slash{color:var(--dim);margin:0 6px}.arch-target .live{color:var(--accent-green);letter-spacing:.2em;text-transform:uppercase;align-items:center;gap:6px;margin-left:10px;font-size:10px;display:inline-flex}.arch-target .dot-live{background:var(--accent-green);width:7px;height:7px;animation:1.6s ease-in-out infinite pulseDot;display:inline-block;box-shadow:0 0 8px #66d1b599}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}@media (prefers-reduced-motion:reduce){.arch-target .dot-live{animation:none}}.arch-counter{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);text-align:right;font-size:11px}.arch-counter .of{color:var(--ink-2)}.arch-body{grid-template-columns:1.7fr 1fr;align-items:center;gap:56px;display:grid}.arch-name{font-family:var(--font-display);letter-spacing:.08em;text-transform:lowercase;color:var(--ink);text-wrap:balance;text-shadow:4px 4px 0 var(--accent-pink-shadow);margin:0 0 16px;font-size:clamp(56px,10vw,124px);line-height:.95}.arch-tagline{font-family:var(--font-mono);color:var(--ink-2);text-wrap:pretty;max-width:580px;margin:0 0 28px;font-size:16px;line-height:1.5}.arch-desc{font-family:var(--font-mono);color:var(--ink);text-wrap:pretty;max-width:580px;margin:0 0 28px;font-size:13px;line-height:1.65}.arch-secondary{border:1px dashed var(--line-2);font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-2);align-items:center;gap:10px;margin-bottom:24px;padding:6px 12px;font-size:11px;display:inline-flex}.arch-secondary .with{color:var(--dim)}.arch-secondary .name{color:var(--accent-pink)}.arch-keywords{font-family:var(--font-display);letter-spacing:.11em;text-transform:lowercase;flex-wrap:wrap;align-items:baseline;gap:16px;padding:18px 0 4px;font-size:clamp(20px,2.4vw,28px);line-height:1.1;display:flex}.arch-keywords .kw{color:var(--ink)}.arch-keywords .kw:first-child{color:var(--accent-green)}.arch-keywords .kw:nth-child(3){color:var(--ink)}.arch-keywords .kw:nth-child(5){color:var(--accent-pink)}.arch-keywords .kw-sep{color:var(--dim);font-family:var(--font-mono);letter-spacing:0;font-size:18px}.signature-block{background:var(--bg);border:1px solid var(--line);font-family:var(--font-mono);white-space:pre;max-width:580px;padding:18px 20px;font-size:13px;line-height:1.75;position:relative;overflow-x:auto}.signature-block:before{content:"";border-top:1px solid var(--accent-pink);border-left:1px solid var(--accent-pink);width:8px;height:8px;position:absolute;top:-1px;left:-1px}.signature-block:after{content:"";border-bottom:1px solid var(--accent-pink);border-right:1px solid var(--accent-pink);width:8px;height:8px;position:absolute;bottom:-1px;right:-1px}.sig-line{color:var(--ink);display:block}.sig-line .arrow{color:var(--accent-green);margin-right:6px}.sig-line .comment{color:var(--dim)}.sig-line .err{color:var(--accent-pink)}.arch-meta-grid{border-top:1px dashed var(--line);grid-template-columns:1fr 1fr;gap:24px;margin-top:28px;padding-top:22px;display:grid}.arch-meta-item .label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-green);margin-bottom:8px;font-size:10px;display:block}.arch-meta-item .label.p{color:var(--accent-pink)}.arch-meta-item .body{font-family:var(--font-mono);color:var(--ink-2);font-size:12px;line-height:1.55}.arch-closing{font-family:var(--font-display);letter-spacing:.11em;color:var(--accent-pink);text-transform:lowercase;border-top:1px dashed var(--line);margin-top:28px;padding-top:22px;font-size:22px}.sigil-wrap{flex-direction:column;justify-self:center;align-items:center;display:flex}.sigil-plate{background: repeating-linear-gradient(0deg, #e4587d0a 0 1px, transparent 1px 12px), repeating-linear-gradient(90deg, #66d1b50a 0 1px, transparent 1px 12px), var(--bg);border:1px solid var(--line-2);box-shadow:8px 8px 0 0 var(--accent-pink-shadow), 16px 16px 0 0 #0000008c;padding:18px 22px;position:relative}.sigil-mark{width:10px;height:10px;color:var(--accent-pink);opacity:.75;pointer-events:none;position:absolute}.sigil-mark:before,.sigil-mark:after{content:"";background:currentColor;position:absolute}.sigil-mark:before{height:1px;top:50%;left:0;right:0}.sigil-mark:after{width:1px;top:0;bottom:0;left:50%}.sigil-mark.tl{top:6px;left:6px}.sigil-mark.tr{top:6px;right:6px}.sigil-mark.bl{bottom:6px;left:6px}.sigil-mark.br{bottom:6px;right:6px}.sigil-strip{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--dim);justify-content:space-between;align-items:baseline;font-size:10px;display:flex}.sigil-strip--top{border-bottom:1px dashed var(--line);margin-bottom:14px;padding-bottom:10px}.sigil-strip--bot{border-top:1px dashed var(--line);margin-top:14px;padding-top:10px}.sigil-ix{color:var(--accent-pink)}.sigil-coord,.sigil-strip-key{color:var(--dim)}.sigil-strip-val{color:var(--accent-green)}.sigil{background:var(--bg-2);border:1px dashed var(--line);grid-template-rows:repeat(8,20px);grid-template-columns:repeat(8,20px);gap:2px;margin:0 auto;padding:12px;display:grid}.sigil-wrap[data-bare=true] .sigil{background:var(--bg);border:1px solid var(--line-2);box-shadow:6px 6px 0 0 var(--accent-pink-shadow)}.sigil .px{opacity:0;animation:.28s cubic-bezier(.22,1,.36,1) forwards sigil-cell-in;animation-delay:calc((var(--cx,0) + var(--cy,0)) * 22ms);background:0 0}.sigil .px.on{background:var(--ink)}.sigil .px.p{background:var(--accent-pink);box-shadow:0 0 4px #e4587d73}.sigil .px.g{background:var(--accent-green);box-shadow:0 0 4px #66d1b559}.sigil .px.d{background:var(--dim)}@keyframes sigil-cell-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.sigil .px{opacity:1;animation:none;transform:none}}.archetype-frame.capturing{min-width:1080px;max-width:1180px;box-shadow:none;padding:52px 52px 44px}.archetype-frame.capturing .arch-name{text-shadow:none;letter-spacing:.06em;margin:0 0 24px;font-size:88px;line-height:1}.archetype-frame.capturing .arch-tagline{max-width:560px;margin:0 0 32px;font-size:16px}.archetype-frame.capturing .arch-secondary{margin-bottom:32px}.archetype-frame.capturing .arch-keywords{letter-spacing:.09em;gap:14px;max-width:560px;padding:16px 0 12px;font-size:24px}.archetype-frame.capturing .arch-body{grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);align-items:start;gap:56px}.archetype-frame.capturing .arch-meta-grid{gap:28px;margin-top:32px;padding-top:26px}.archetype-frame.capturing .arch-closing{margin-top:32px;padding-top:26px;font-size:22px}.archetype-frame.capturing .sigil-wrap{place-self:center;padding-top:0;position:static}.archetype-frame.capturing .sigil-plate{box-shadow:8px 8px 0 0 var(--accent-pink-shadow)}.archetype-frame.capturing .sigil{box-shadow:none}.archetype-frame.capturing .sigil .px{opacity:1;animation:none;transform:none}.identity-share-grid{border-top:1px dashed var(--line);grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px;padding-top:18px;display:grid}@media (max-width:720px){.identity-share-grid{grid-template-columns:1fr}}.share-btn{background:var(--bg);border:1px solid var(--line-2);border-right:2px solid var(--accent-pink-soft);color:var(--ink);font-family:var(--font-mono);text-align:left;cursor:pointer;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;padding:12px 18px;transition:border-color .16s cubic-bezier(.22,1,.36,1),background-color .16s cubic-bezier(.22,1,.36,1),box-shadow .16s cubic-bezier(.22,1,.36,1),transform .16s cubic-bezier(.22,1,.36,1);display:grid;position:relative}.share-btn:hover{border-color:var(--accent-pink);background:var(--accent-pink-bg);box-shadow:4px 4px 0 0 var(--accent-pink-shadow);transform:translate(-1px,-1px)}.share-btn:active{box-shadow:0 0 0 0 var(--accent-pink-shadow);transform:translate(2px,2px)}.share-btn:disabled{opacity:.55;cursor:not-allowed;border-right-color:var(--line)}.share-btn:disabled:hover{background:var(--bg);border-color:var(--line-2);border-right-color:var(--line);box-shadow:none;transform:none}.share-btn-mark{width:44px;height:44px;font-family:var(--font-mono);border:1px solid var(--line-2);background:linear-gradient(to right, var(--accent-pink) 0 6px, transparent 6px) top left/100% 1px no-repeat, linear-gradient(to bottom, var(--accent-pink) 0 6px, transparent 6px) top left/1px 100% no-repeat, linear-gradient(to left, var(--accent-pink) 0 6px, transparent 6px) bottom right/100% 1px no-repeat, linear-gradient(to top, var(--accent-pink) 0 6px, transparent 6px) bottom right/1px 100% no-repeat, var(--bg-2);color:var(--ink);place-items:center;font-size:22px;font-weight:700;line-height:1;display:grid}.share-btn-mark--x{color:#fff;background-color:#000}.share-btn-mark--li{color:#fff;background-color:#0a66c2;background-image:none}.share-btn-mark--dl{color:var(--accent-pink)}.share-btn-body{flex-direction:column;gap:2px;min-width:0;display:flex}.share-btn-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--accent-green);font-size:10px}.share-btn-label{letter-spacing:.05em;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.share-btn-arrow{font-family:var(--font-mono);color:var(--accent-pink);opacity:.7;font-size:18px;transition:opacity .16s cubic-bezier(.22,1,.36,1),transform .16s cubic-bezier(.22,1,.36,1)}.share-btn:hover .share-btn-arrow{opacity:1;transform:translate(2px)}@media (prefers-reduced-motion:reduce){.share-btn,.share-btn-arrow{transition:none}.share-btn:hover{transform:none}}.archetype-frame.capturing .identity-share-grid{display:none}.strengths-grid{border:1px solid var(--line-2);background:var(--bg-2);gap:0;display:grid}.strength-row{border-bottom:1px solid var(--line);grid-template-columns:56px 1fr auto;align-items:start;gap:16px;padding:22px 24px;transition:background .12s;display:grid}.strength-row:last-child{border-bottom:none}.strength-row:hover{background:#66d1b508}.strength-check{border:1px solid var(--accent-green);background:var(--accent-green-bg);width:32px;height:32px;color:var(--accent-green);font-family:var(--font-mono);place-items:center;font-size:14px;font-weight:600;display:grid}.strength-body{flex-direction:column;gap:6px;display:flex}.strength-headline{font-family:var(--font-mono);color:var(--ink);letter-spacing:.01em;font-size:14px;font-weight:500}.strength-detail{font-family:var(--font-mono);color:var(--ink-2);letter-spacing:.01em;font-size:12px;line-height:1.55}.strength-metric{font-family:var(--font-display);letter-spacing:.06em;text-transform:lowercase;color:var(--accent-green);text-align:right;white-space:nowrap;font-size:26px;line-height:1}.strength-metric .unit{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-top:4px;font-size:10px;display:block}.strengths-footer{font-family:var(--font-mono);color:var(--ink-2);letter-spacing:.02em;margin-top:18px;padding-left:4px;font-size:12px}.score-share-card{background:repeating-linear-gradient(0deg, #e4587d08 0 1px, transparent 1px 16px), repeating-linear-gradient(90deg, #e4587d08 0 1px, transparent 1px 16px), var(--bg-2);padding:22px 24px 20px}.score-card-header{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin-bottom:16px;font-size:10px}.ss-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-green);margin-bottom:14px;font-size:10px}.ss-score-row{align-items:baseline;gap:10px;margin:0 0 10px;display:flex}.ss-score{font-family:var(--font-display);letter-spacing:.04em;color:var(--accent-pink);text-shadow:4px 4px 0 var(--accent-pink-shadow);font-size:clamp(52px,7vw,76px);line-height:.9}.ss-score.g-S,.ss-score.g-A{color:var(--accent-green);text-shadow:4px 4px 0 var(--accent-green-shadow)}.ss-score.g-B{color:#d3e1a8;text-shadow:4px 4px #6f7e45}.ss-score-of{font-family:var(--font-mono);color:var(--dim);letter-spacing:.08em;font-size:18px}.ss-tier-row{align-items:center;gap:12px;margin-bottom:16px;display:flex}.ss-tier-badge{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--accent-pink);background:var(--accent-pink-bg);color:var(--accent-pink);padding:5px 10px;font-size:11px}.ss-tier-badge.g-S,.ss-tier-badge.g-A{border-color:var(--accent-green);background:var(--accent-green-bg);color:var(--accent-green)}.ss-tier-badge.g-B{color:#d3e1a8;background:#d3e1a81a;border-color:#d3e1a8}.ss-arch{font-family:var(--font-mono);color:var(--ink-2);letter-spacing:.06em;font-size:12px}.ss-progress-label{font-family:var(--font-mono);letter-spacing:.06em;justify-content:space-between;margin-bottom:6px;font-size:11px;display:flex}.ss-progress-track{background:var(--bg);border:1px solid var(--line);height:10px;margin-bottom:6px;position:relative;overflow:visible}.ss-progress-fill{background:linear-gradient(90deg, var(--accent-pink) 0%, #f472b6 60%, #a78bfa 100%);height:100%}.ss-progress-tick{background:var(--line-2);pointer-events:none;width:1px;position:absolute;top:-4px;bottom:-4px}.ss-grade-stops{height:16px;margin-bottom:16px;position:relative}.ss-grade-stop{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-size:9px;position:absolute;top:0;transform:translate(-50%)}.ss-grade-stop.active{color:var(--accent-pink);font-weight:700}.ss-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.ss-stat{border:1px solid var(--line-2);background:var(--bg);text-align:left;padding:10px 12px}.ss-stat-n{font-family:var(--font-display);letter-spacing:.04em;margin-bottom:6px;font-size:24px;line-height:1}.ss-stat-l{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--dim);font-size:9px;line-height:1.4}.ss-policy-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2);border-top:1px dashed var(--line);margin-top:14px;margin-bottom:10px;padding-top:14px;font-size:10px}.ss-policy-chips{flex-wrap:wrap;gap:6px;display:flex}.ss-chip{border:1px solid var(--line-2);background:var(--bg);font-family:var(--font-mono);color:var(--ink-2);border-radius:0;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:inline-flex}.ss-chip .dot{background:var(--dim);border-radius:0;width:5px;height:5px}.ss-chip.missing{color:var(--accent-pink);background:#e4587d0f;border-color:#e4587d99}.ss-chip.missing .dot{background:var(--accent-pink)}.ss-chip.enabled{color:var(--accent-green);background:#66d1b50d;border-color:#66d1b580}.ss-chip.enabled .dot{background:var(--accent-green)}.ss-templates{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.ss-template{border:1px solid var(--line-2);background:var(--bg);padding:14px 16px}.ss-template-head{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);align-items:center;gap:8px;margin-bottom:8px;font-size:10px;display:inline-flex}.ss-template-head .dot{background:var(--accent-pink);border-radius:50%;width:6px;height:6px}.ss-template-body{font-family:var(--font-mono);color:var(--ink-2);margin:0;font-size:12.5px;line-height:1.55}.ss-actions{flex-direction:column;gap:8px;display:flex}.ss-action-btn{border:1px solid var(--line-2);color:var(--ink);text-align:left;font-family:var(--font-mono);cursor:pointer;background:0 0;grid-template-columns:28px 1fr;align-items:center;gap:12px;padding:10px 14px;font-size:12px;text-decoration:none;transition:all .12s;display:grid}.ss-action-btn:hover{border-color:var(--accent-pink);background:var(--accent-pink-bg);color:var(--accent-pink)}.ss-action-btn:disabled{opacity:.55;cursor:wait}.ss-action-glyph{border:1px solid var(--ink-2);width:24px;height:24px;font-family:var(--font-mono);text-transform:uppercase;color:var(--ink-2);place-items:center;font-size:11px;display:grid}.ss-action-btn:hover .ss-action-glyph{border-color:var(--accent-pink);color:var(--accent-pink)}.ss-action-text{flex-direction:column;display:flex}.ss-action-title{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink);font-size:13px}.ss-action-btn:hover .ss-action-title{color:var(--accent-pink)}.ss-action-sub{font-family:var(--font-mono);letter-spacing:.05em;color:var(--dim);margin-top:2px;font-size:10px}.ss-foot{border-top:1px dashed var(--line);font-family:var(--font-mono);color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:26px;padding-top:18px;font-size:11px;display:flex}.ss-foot-link{color:var(--accent-green);text-decoration:none}.ss-foot-link:hover{text-underline-offset:3px;text-decoration:underline}@media (max-width:880px){.score-share-card{padding:16px}}.findings-list{flex-direction:column;gap:20px;display:flex}.finding{border:1px solid var(--line-2);background:var(--bg-2);position:relative}.finding:before{content:"";border-top:1px solid var(--accent-pink);border-left:1px solid var(--accent-pink);width:8px;height:8px;position:absolute;top:-1px;left:-1px}.finding-head{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:20px 24px;display:grid}.finding-num{font-family:var(--font-mono);color:var(--accent-pink);letter-spacing:.12em;font-size:13px;font-weight:600}.finding-title{font-family:var(--font-display);letter-spacing:.11em;color:var(--ink);text-transform:lowercase;font-size:22px}.finding-count{font-family:var(--font-display);letter-spacing:.04em;color:var(--accent-pink);text-transform:lowercase;align-items:baseline;gap:6px;font-size:36px;line-height:1;display:flex}.finding-count .label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--dim);font-size:10px}.finding-meta{font-family:var(--font-mono);letter-spacing:.05em;color:var(--ink-2);border-bottom:1px solid var(--line);background:#00000026;flex-wrap:wrap;gap:16px;padding:12px 24px;font-size:11px;display:flex}.finding-meta .policy{color:var(--accent-green)}.finding-meta .sep{color:var(--dim)}.finding-body{grid-template-columns:1fr 1fr;gap:0;display:grid}.finding-block{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:10px;padding:22px 24px;display:flex}.finding-block:nth-child(2n){border-right:none}.finding-block:nth-last-child(-n+2){border-bottom:none}.fb-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-green);font-size:10px}.fb-label.cost{color:var(--amber)}.fb-label.fix{color:var(--accent-pink)}.fb-body{font-family:var(--font-mono);color:var(--ink-2);font-size:13px;line-height:1.65}.fb-body .pk{color:var(--accent-pink)}.fb-body .g{color:var(--accent-green)}.fb-body .a{color:var(--amber)}.fb-body code{background:var(--bg);border:1px solid var(--line);color:var(--accent-green);padding:1px 6px;font-size:12px}.fb-evidence{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--line);white-space:pre;color:var(--ink);padding:12px 14px;font-size:12px;line-height:1.65;overflow-x:auto}.fb-evidence .arrow{color:var(--accent-green)}.fb-evidence .err{color:var(--accent-pink)}.fb-evidence .comment{color:var(--dim)}.fb-fix{background:var(--bg);border:1px solid var(--line);font-family:var(--font-mono);padding:14px;font-size:12px}.fb-fix .slug{background:var(--accent-pink-bg);color:var(--accent-pink);border:1px solid var(--accent-pink);letter-spacing:.15em;text-transform:uppercase;margin-bottom:10px;padding:2px 8px;font-size:10px;display:inline-block}.fb-fix .cmd{color:var(--accent-green);border-top:1px dashed var(--line);margin-top:12px;padding-top:10px;font-size:12px;display:block}.fb-fix .cmd .prompt{color:var(--dim);margin-right:6px}.showoff{border-bottom:1px solid var(--line);margin-bottom:0;padding:0 0 32px;scroll-margin-top:80px}.showoff-cta{border:1px solid var(--line-2);background:repeating-linear-gradient(0deg, #e4587d06 0 1px, transparent 1px 16px), repeating-linear-gradient(90deg, #e4587d06 0 1px, transparent 1px 16px), var(--bg-2);color:var(--ink);grid-template-columns:auto 1fr auto;align-items:center;gap:32px;padding:28px 32px;text-decoration:none;transition:border-color .12s,background .12s;display:grid;position:relative}.showoff-cta:hover{border-color:var(--ink-2);background:repeating-linear-gradient(0deg, #e4587d0a 0 1px, transparent 1px 16px), repeating-linear-gradient(90deg, #e4587d0a 0 1px, transparent 1px 16px), var(--bg-3)}.showoff-cta:before{content:"";border-top:1px solid var(--accent-pink);border-left:1px solid var(--accent-pink);width:10px;height:10px;position:absolute;top:-1px;left:-1px}.showoff-cta:after{content:"";border-bottom:1px solid var(--accent-pink);border-right:1px solid var(--accent-pink);width:10px;height:10px;position:absolute;bottom:-1px;right:-1px}.showoff-glyph{transform-origin:50%;margin:-40px -28px;display:block;transform:scale(.55)}.showoff-glyph .sigil-wrap[data-bare=true] .sigil{box-shadow:4px 4px 0 0 var(--accent-pink-shadow)}.showoff-glyph .sigil-label{display:none}.showoff-copy{flex-direction:column;gap:6px;min-width:0;display:flex}.showoff-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-green);font-size:11px}.showoff-headline{font-family:var(--font-display);letter-spacing:.11em;text-transform:lowercase;color:var(--ink);text-shadow:3px 3px 0 var(--accent-pink-shadow);font-size:clamp(28px,3.4vw,40px);line-height:1.05}.showoff-sub{font-family:var(--font-mono);color:var(--ink-2);max-width:520px;font-size:13px;line-height:1.55}.showoff-action{border:1px solid var(--accent-pink);background:var(--accent-pink-bg);color:var(--accent-pink);font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;white-space:nowrap;flex-direction:column;align-items:center;gap:8px;padding:16px 24px;font-size:11px;display:inline-flex}.showoff-arrow{font-family:var(--font-display);letter-spacing:0;color:var(--accent-pink);font-size:36px;line-height:1}@media (max-width:800px){.showoff-cta{grid-template-columns:1fr;gap:18px;padding:24px 20px}.showoff-glyph{transform-origin:0 0;margin:0;transform:scale(.6)}.showoff-action{flex-direction:row;justify-content:center;width:100%}}.policy-callout{border:1px solid var(--accent-green);background:var(--accent-green-bg);font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink);box-shadow:4px 4px 0 0 var(--accent-green-shadow);align-items:baseline;gap:12px;margin-bottom:28px;padding:12px 18px;font-size:13px;display:inline-flex}.policy-callout .arrow{color:var(--accent-green);margin:0 4px}.policy-callout .new-score{font-family:var(--font-display);letter-spacing:.08em;color:var(--accent-green);font-size:22px}.policy-callout .new-tier{color:var(--accent-green);font-weight:600}.policies-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.policy-card{border:1px solid var(--line-2);background:var(--bg-2);flex-direction:column;gap:10px;padding:20px 22px;transition:all .12s;display:flex;position:relative}.policy-card:before{content:"";background:var(--accent-pink);opacity:.7;width:3px;height:100%;position:absolute;top:0;left:0}.policy-card:hover{background:var(--bg-3)}.policy-card .head{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;padding-bottom:10px;display:flex}.policy-name{font-family:var(--font-display);letter-spacing:.11em;color:var(--ink);text-transform:lowercase;font-size:18px}.policy-slug{font-family:var(--font-mono);letter-spacing:.12em;color:var(--dim);text-transform:uppercase;font-size:10px}.policy-desc{font-family:var(--font-mono);color:var(--ink-2);font-size:12px;line-height:1.6}.policy-impact{font-family:var(--font-mono);color:var(--accent-green);letter-spacing:.01em;border-top:1px dashed var(--line);margin-top:auto;padding-top:10px;font-size:12px}.policy-impact .check{margin-right:6px}.policy-install{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--line);color:var(--accent-green);align-items:center;gap:8px;margin-top:4px;padding:8px 10px;font-size:11px;display:flex}.policy-install .prompt{color:var(--dim)}.policy-install .copy{color:var(--dim);cursor:pointer;letter-spacing:.15em;text-transform:uppercase;margin-left:auto;font-size:10px;transition:color .12s}.policy-install .copy:hover{color:var(--accent-pink)}.share-grid{grid-template-columns:1fr 1fr;align-items:start;gap:32px;display:grid}.share-card{border:1px solid var(--accent-pink);background:repeating-linear-gradient(0deg, #e4587d05 0 1px, transparent 1px 16px), repeating-linear-gradient(90deg, #e4587d05 0 1px, transparent 1px 16px), var(--bg-2);box-shadow:8px 8px 0 0 var(--accent-pink-shadow);padding:32px;position:relative}.share-card .stamp-tl,.share-card .stamp-br{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-pink);opacity:.55;font-size:9px;position:absolute}.share-card .stamp-tl{top:8px;left:12px}.share-card .stamp-br{bottom:8px;right:12px}.share-brand{align-items:center;gap:10px;margin-bottom:28px;display:flex}.share-brand .glyph{color:var(--accent-pink);font-family:var(--font-mono);letter-spacing:-2px;font-size:14px;font-weight:700}.share-brand .name{font-family:var(--font-display);letter-spacing:.11em;text-transform:lowercase;color:var(--ink);font-size:14px}.share-brand .sep{color:var(--dim);font-size:11px}.share-brand .meta{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);font-size:10px}.share-project{font-family:var(--font-mono);letter-spacing:.05em;color:var(--ink-2);margin-bottom:20px;font-size:12px}.share-archetype{font-family:var(--font-display);letter-spacing:.08em;text-transform:lowercase;color:var(--ink);text-shadow:3px 3px 0 var(--accent-pink-shadow);text-wrap:balance;margin:0 0 12px;font-size:clamp(36px,5vw,56px);line-height:1}.share-rule{background:var(--accent-pink);width:56px;height:2px;margin:16px 0 20px}.share-tagline{font-family:var(--font-mono);color:var(--ink-2);text-wrap:pretty;margin-bottom:32px;font-size:14px;line-height:1.45}.share-score-row{font-family:var(--font-mono);letter-spacing:.05em;border-top:1px dashed var(--line);align-items:center;gap:14px;padding-top:22px;font-size:14px;display:flex}.share-score-row .tier{font-family:var(--font-display);letter-spacing:.08em;color:var(--accent-pink);text-transform:uppercase;font-size:22px}.share-score-row .sep{color:var(--dim)}.share-score-row .num{color:var(--ink)}.share-score-row .rank{color:var(--ink-2)}.share-url{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-green);margin-top:22px;font-size:11px}.share-actions{flex-direction:column;gap:16px;display:flex}.tweet-tabs{border:1px solid var(--line-2);gap:0;display:flex}.tweet-tab{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--ink-2);border-right:1px solid var(--line);background:var(--bg-2);flex:1;padding:10px 14px;font-size:11px;transition:all .12s}.tweet-tab:last-child{border-right:none}.tweet-tab:hover{color:var(--ink)}.tweet-tab.is-active{color:var(--accent-pink);background:var(--accent-pink-bg)}.tweet-preview{background:var(--bg-2);border:1px solid var(--line-2);font-family:var(--font-mono);color:var(--ink);white-space:pre-wrap;min-height:200px;padding:20px 22px;font-size:13px;line-height:1.65;position:relative}.tweet-preview .url,.tweet-preview .arch{color:var(--accent-pink)}.tweet-meta{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);justify-content:space-between;font-size:10px;display:flex}.tweet-meta .count.over{color:var(--accent-pink)}.share-buttons{flex-wrap:wrap;gap:12px;display:flex}.share-btn{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--accent-pink);color:var(--accent-pink);box-shadow:4px 4px 0 0 var(--accent-pink-shadow);background:0 0;align-items:center;gap:10px;padding:14px 20px;font-size:13px;transition:all .12s;display:inline-flex}.share-btn:hover{background:var(--accent-pink);color:var(--bg);box-shadow:2px 2px 0 0 var(--accent-pink-shadow);transform:translate(2px,2px)}.share-btn.alt{border-color:var(--line-2);color:var(--ink);box-shadow:4px 4px #1a1a20}.share-btn.alt:hover{border-color:var(--ink);color:var(--ink);background:#ffffff0a;box-shadow:2px 2px #1a1a20}.share-btn .arrow{color:var(--accent-green)}.share-btn:hover .arrow{color:var(--bg)}.return-hook{border:1px solid var(--line-2);background:var(--bg-2);margin-top:64px;padding:40px 48px;position:relative}.return-hook:before,.return-hook:after{content:"";width:8px;height:8px;position:absolute}.return-hook:before{border-top:1px solid var(--accent-green);border-left:1px solid var(--accent-green);top:-1px;left:-1px}.return-hook:after{border-bottom:1px solid var(--accent-green);border-right:1px solid var(--accent-green);bottom:-1px;right:-1px}.return-hook .label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-green);margin-bottom:12px;font-size:11px}.return-hook h3{font-family:var(--font-display);letter-spacing:.11em;text-transform:lowercase;color:var(--ink);margin:0 0 16px;font-size:clamp(28px,3.6vw,40px);font-weight:400;line-height:1.1}.return-hook p{font-family:var(--font-mono);color:var(--ink-2);max-width:600px;margin:0 0 8px;font-size:13px;line-height:1.7}.return-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px;display:flex}.return-status{border:1px solid var(--accent-pink);background:repeating-linear-gradient(0deg, #e4587d08 0 1px, transparent 1px 16px), repeating-linear-gradient(90deg, #e4587d08 0 1px, transparent 1px 16px), var(--bg-2);margin-top:24px;padding:18px 20px}.return-status .rs-row{font-family:var(--font-mono);color:var(--ink-2);align-items:center;gap:12px;margin:6px 0;font-size:13px;display:flex}.return-status .rs-row-primary{color:var(--ink);letter-spacing:.02em;font-size:15px}.return-status .rs-strong{color:var(--accent-pink)}.return-status .rs-email{color:var(--accent-green)}.rs-dot{flex-shrink:0;width:8px;height:8px;display:inline-block}.rs-dot-pink{background:var(--accent-pink);animation:1.6s ease-in-out infinite pulseDot;box-shadow:0 0 8px #e4587d8c}.rs-dot-green{background:var(--accent-green);box-shadow:0 0 6px #66d1b58c}.rs-clear{font-family:var(--font-mono);letter-spacing:.1em;color:var(--dim);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:4px 0;font-size:11px;text-decoration:underline;transition:color .12s}.rs-clear:hover:not(:disabled){color:var(--accent-pink)}.rs-clear:disabled{opacity:.5;cursor:not-allowed}.report-footer{border-top:1px solid var(--line);background:var(--bg);text-align:center;font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--dim);padding:48px 32px 24px;font-size:11px}.report-footer--fixed{z-index:10;padding:16px 32px;position:fixed;bottom:0;left:0;right:0}.report-footer .brand-mark{color:var(--accent-pink);font-family:var(--font-mono);letter-spacing:-2px;margin-right:6px;font-size:14px;font-weight:700}.auth-dialog-backdrop{z-index:10000;-webkit-backdrop-filter:blur(6px);background:radial-gradient(1000px 700px at 30% 20%,#e4587d14 0%,#0000 60%),#08080ac7;place-items:center;padding:32px 16px;animation:.14s ease-out authFadeIn;display:grid;position:fixed;inset:0}@keyframes authFadeIn{0%{opacity:0}to{opacity:1}}.auth-dialog{border:1px solid var(--accent-pink);background:repeating-linear-gradient(0deg, #e4587d08 0 1px, transparent 1px 16px), repeating-linear-gradient(90deg, #e4587d08 0 1px, transparent 1px 16px), var(--bg-2);width:100%;max-width:460px;box-shadow:8px 8px 0 0 var(--accent-pink-shadow);font-family:var(--font-mono);color:var(--ink);padding:32px 32px 28px;animation:.16s ease-out authPop;position:relative}@keyframes authPop{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.auth-dialog .corner{font-family:var(--font-mono);color:var(--accent-pink);opacity:.85;font-size:14px;line-height:1;position:absolute}.auth-dialog .corner.tl{top:6px;left:8px}.auth-dialog .corner.tr{top:6px;right:8px}.auth-dialog .corner.bl{bottom:6px;left:8px}.auth-dialog .corner.br{bottom:6px;right:8px}.auth-close{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--dim);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:11px;transition:color .12s;position:absolute;top:12px;right:14px}.auth-close:hover{color:var(--accent-pink)}.auth-close:disabled{color:var(--line-2);cursor:not-allowed}.auth-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-green);margin-bottom:14px;font-size:11px}.auth-headline{font-family:var(--font-display);letter-spacing:.09em;text-transform:lowercase;color:var(--ink);text-shadow:3px 3px 0 var(--accent-pink-shadow);text-wrap:balance;margin:0 0 12px;font-size:clamp(26px,3.6vw,34px);line-height:1.1}.auth-sub{font-family:var(--font-mono);color:var(--ink-2);margin:0 0 22px;font-size:13px;line-height:1.65}.auth-sub .auth-email{color:var(--accent-pink)}.auth-sub .auth-ok{color:var(--accent-green);margin-right:6px}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-field-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-green);font-size:10px}.auth-input{background:var(--bg);border:1px solid var(--line-2);width:100%;color:var(--ink);font-family:var(--font-mono);letter-spacing:.03em;outline:none;padding:11px 14px;font-size:14px;transition:border-color .12s,box-shadow .12s}.auth-input:focus{border-color:var(--accent-pink);box-shadow:0 0 0 1px var(--accent-pink-soft)}.auth-input:disabled{opacity:.55;cursor:not-allowed}.auth-input-code{letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums;font-size:18px}.auth-input::placeholder{color:var(--dim)}.auth-error{font-family:var(--font-mono);color:var(--accent-pink);background:var(--accent-pink-bg);border:1px solid var(--accent-pink);letter-spacing:.02em;border-left-width:3px;margin-top:4px;padding:8px 12px;font-size:12px}.auth-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.auth-btn{font-family:var(--font-mono);letter-spacing:.06em;border:1px solid var(--line-2);color:var(--ink);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:10px 16px;font-size:12px;transition:all .12s;display:inline-flex}.auth-btn:hover:not(:disabled){border-color:var(--ink);background:#ffffff0a}.auth-btn:disabled{opacity:.45;cursor:not-allowed}.auth-btn.primary{border-color:var(--accent-pink);color:var(--accent-pink);box-shadow:4px 4px 0 0 var(--accent-pink-shadow)}.auth-btn.primary:hover:not(:disabled){background:var(--accent-pink);color:var(--bg);box-shadow:2px 2px 0 0 var(--accent-pink-shadow);transform:translate(2px,2px)}.auth-back{font-family:var(--font-mono);letter-spacing:.1em;color:var(--dim);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-top:4px;padding:6px 0;font-size:11px;transition:color .12s}.auth-back:hover:not(:disabled){color:var(--ink-2)}.auth-back:disabled{opacity:.45;cursor:not-allowed}@media (max-width:520px){.auth-dialog{padding:26px 22px 22px}.auth-actions{flex-direction:column;align-items:stretch}.auth-btn{justify-content:center}}.auth-status-pill{border:1px dashed var(--line-2);font-family:var(--font-mono);letter-spacing:.1em;color:var(--ink-2);align-items:center;gap:8px;margin-top:16px;padding:6px 10px;font-size:11px;display:inline-flex}.auth-status-pill .dot{background:var(--accent-green);width:7px;height:7px;display:inline-block;box-shadow:0 0 6px #66d1b58c}.auth-status-pill .email{color:var(--accent-green)}@media (max-width:960px){.report{padding:0 20px}.archetype-frame{padding:32px 24px}.arch-body{grid-template-columns:1fr;gap:32px}.arch-meta-grid,.score-grid{grid-template-columns:1fr;gap:16px}.finding-body{grid-template-columns:1fr}.finding-block{border-right:none!important}.policies-grid,.share-grid{grid-template-columns:1fr}.strength-row{grid-template-columns:40px 1fr}.strength-metric{text-align:left;grid-column:2;margin-top:6px}.return-hook{padding:28px 24px}}@media (prefers-reduced-motion:reduce){.running-cursor,.running-stage-spin,.running-bar-fill:after,.auth-status-pill .dot{animation:none}.running-bar-fill{transition:none}}.share-dock{z-index:40;background:var(--bg-2);border:1px solid var(--line-2);width:300px;box-shadow:8px 8px 0 0 var(--accent-pink-shadow), 16px 16px 0 0 #00000080;animation:.32s cubic-bezier(.22,1,.36,1) share-dock-in;position:fixed;bottom:clamp(16px,2.5vw,32px);right:clamp(16px,2.5vw,32px)}.share-dock:before,.share-dock:after{content:"";width:10px;height:10px;position:absolute}.share-dock:before{border-top:1px solid var(--accent-pink);border-left:1px solid var(--accent-pink);top:-1px;left:-1px}.share-dock:after{border-bottom:1px solid var(--accent-pink);border-right:1px solid var(--accent-pink);bottom:-1px;right:-1px}@keyframes share-dock-in{0%{opacity:0;transform:translate(8px,8px)}to{opacity:1;transform:translate(0)}}.share-dock-head{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.share-dock-eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-green);font-size:10px}.share-dock-eyebrow>span{color:var(--accent-pink);letter-spacing:-2px;margin-right:8px}.share-dock-caret{border:1px solid var(--line-2);width:24px;height:24px;color:var(--ink-2);font-family:var(--font-mono);cursor:pointer;background:0 0;place-items:center;font-size:11px;transition:color .14s cubic-bezier(.22,1,.36,1),border-color .14s cubic-bezier(.22,1,.36,1);display:grid}.share-dock-caret:hover{color:var(--accent-pink);border-color:var(--accent-pink)}.share-dock-stack{flex-direction:column;gap:8px;padding:14px 14px 10px;display:flex}.share-dock-stack .share-btn{width:100%}.share-dock-foot{border-top:1px dashed var(--line);font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);text-align:center;padding:10px 16px 12px;font-size:10px}.share-dock-foot>span{color:var(--accent-pink);margin-right:6px}.share-dock-fab{z-index:40;background:var(--accent-pink);width:56px;height:56px;color:var(--bg);border:1px solid var(--accent-pink);box-shadow:6px 6px 0 0 var(--accent-pink-shadow);font-family:var(--font-mono);cursor:pointer;place-items:center;font-size:22px;font-weight:700;transition:transform .16s cubic-bezier(.22,1,.36,1),box-shadow .16s cubic-bezier(.22,1,.36,1);animation:.32s cubic-bezier(.22,1,.36,1) share-dock-in;display:grid;position:fixed;bottom:clamp(16px,2.5vw,32px);right:clamp(16px,2.5vw,32px)}.share-dock-fab:hover{box-shadow:9px 9px 0 0 var(--accent-pink-shadow);transform:translate(-2px,-2px)}.share-dock-fab:active{box-shadow:0 0 0 0 var(--accent-pink-shadow);transform:translate(2px,2px)}@media (max-width:760px){.share-dock,.share-dock-fab{display:none}}@media (prefers-reduced-motion:reduce){.share-dock,.share-dock-fab{animation:none}.share-dock-fab,.share-dock-caret{transition:none}}.audit-progress-strip{z-index:60;background:var(--bg-2);border-bottom:1px solid var(--accent-pink);box-shadow:0 4px 0 0 var(--accent-pink-shadow);font-family:var(--font-mono);animation:.22s cubic-bezier(.22,1,.36,1) audit-progress-slide-in;position:sticky;top:0;left:0;right:0}.audit-progress-strip--failed{border-bottom-color:var(--accent-pink);background:linear-gradient(to right, var(--accent-pink-bg), var(--bg-2))}.audit-progress-strip__inner{justify-content:space-between;align-items:center;gap:16px;max-width:1480px;margin:0 auto;padding:12px clamp(20px,3vw,48px);display:flex;position:relative}.audit-progress-strip__label{color:var(--ink);letter-spacing:.06em;text-transform:lowercase;align-items:center;gap:10px;font-size:12px;display:inline-flex}.audit-progress-strip--failed .audit-progress-strip__label{color:var(--accent-pink)}.audit-progress-strip__elapsed{font-variant-numeric:tabular-nums;color:var(--accent-pink);letter-spacing:.08em;font-size:12px}.audit-progress-strip__spinner{border:1.5px solid var(--accent-pink);background:0 0;border-top-color:#0000;border-radius:50%;width:9px;height:9px;animation:.8s linear infinite audit-progress-spin}.audit-progress-strip__x{border:1px solid var(--accent-pink);width:14px;height:14px;color:var(--accent-pink);justify-content:center;align-items:center;font-size:11px;line-height:1;display:inline-flex}.audit-progress-strip__dismiss{border:1px solid var(--line-2);color:var(--ink-2);font-family:var(--font-mono);text-transform:lowercase;letter-spacing:.06em;cursor:pointer;background:0 0;padding:5px 10px;font-size:11px;transition:border-color .14s,color .14s}.audit-progress-strip__dismiss:hover{border-color:var(--accent-pink);color:var(--accent-pink)}.audit-progress-strip__pulse{background:linear-gradient(90deg, transparent 0%, var(--accent-pink) 20%, var(--accent-pink) 80%, transparent 100%);transform-origin:0;height:1px;animation:2.4s cubic-bezier(.55,.1,.45,.9) infinite audit-progress-pulse;position:absolute;bottom:-1px;left:0;right:0}@keyframes audit-progress-spin{to{transform:rotate(360deg)}}@keyframes audit-progress-pulse{0%{opacity:.4;transform:scaleX(0)translate(0%)}50%{opacity:1;transform:scaleX(.6)translate(20%)}to{opacity:.2;transform:scaleX(0)translate(100%)}}@keyframes audit-progress-slide-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.audit-progress-strip{animation:none}.audit-progress-strip__spinner{border-top-color:var(--accent-pink);animation:none}.audit-progress-strip__pulse{opacity:.4;animation:none;transform:scaleX(.4)translate(30%)}}
@@ -1,135 +0,0 @@
1
- "use client";
2
-
3
- /**
4
- * Section 04 — FINDINGS. "your agent has some quirks."
5
- *
6
- * Per-finding cards with four blocks: what happened / what this costs /
7
- * evidence sample / the fix. Data sourced from `src/audit/findings.ts`.
8
- */
9
- import React, { useState } from "react";
10
- import type { FindingCard } from "@/src/audit/findings";
11
- import { usePostHog } from "@/contexts/PostHogContext";
12
-
13
- interface Props {
14
- findings: FindingCard[];
15
- }
16
-
17
- export function FindingsSection({ findings }: Props) {
18
- if (findings.length === 0) return null;
19
-
20
- return (
21
- <section className="section" data-screen-label="04 Findings">
22
- <div className="section-mast">
23
- <div className="section-label">
24
- <span className="glyph">━━</span> findings{" "}
25
- <span style={{ color: "var(--dim)" }}>·</span> ranked by impact
26
- </div>
27
- <div className="section-meta">
28
- <span className="p">●</span> {findings.length} detector{findings.length === 1 ? "" : "s"} triggered
29
- </div>
30
- </div>
31
- <h2 className="section-h">your agent has some quirks.</h2>
32
-
33
- <div className="findings-list">
34
- {findings.map((f) => <Finding key={f.sourceSlug} f={f} />)}
35
- </div>
36
- </section>
37
- );
38
- }
39
-
40
- function Finding({ f }: { f: FindingCard }) {
41
- const { capture } = usePostHog();
42
- const [copied, setCopied] = useState(false);
43
-
44
- const handleCopy = async (e: React.MouseEvent) => {
45
- e.stopPropagation();
46
- try {
47
- await navigator.clipboard.writeText(f.fix.install);
48
- setCopied(true);
49
- capture("audit_copy_clicked", {
50
- source: "findings_section",
51
- item_type: "single_policy_install_command",
52
- policy_name: f.fix.slug,
53
- finding_slug: f.sourceSlug,
54
- });
55
- setTimeout(() => setCopied(false), 1500);
56
- } catch { /* ignore */ }
57
- };
58
-
59
- return (
60
- <article className="finding">
61
- <header className="finding-head">
62
- <div className="finding-num">№{f.num}</div>
63
- <div className="finding-title">{f.title}</div>
64
- <div className="finding-count">
65
- {f.count}×
66
- <span className="label">occurrences</span>
67
- </div>
68
- </header>
69
- <div className="finding-meta">
70
- <span>
71
- <span style={{ color: "var(--dim)" }}>policy</span>{" "}
72
- <span className="policy">{f.policy}</span>
73
- </span>
74
- <span className="sep">·</span>
75
- <span>{f.projects} {f.projects === 1 ? "project" : "projects"}</span>
76
- <span className="sep">·</span>
77
- <span>last seen {f.lastSeen}</span>
78
- {f.alreadyEnabled && (
79
- <>
80
- <span className="sep">·</span>
81
- <span style={{ color: "var(--accent-green)" }}>enforced</span>
82
- </>
83
- )}
84
- </div>
85
- <div className="finding-body">
86
- <div className="finding-block">
87
- <div className="fb-label">what happened</div>
88
- <div className="fb-body">{f.body}</div>
89
- </div>
90
- <div className="finding-block">
91
- <div className="fb-label cost">what this costs</div>
92
- <div className="fb-body">{f.cost}</div>
93
- </div>
94
- <div className="finding-block">
95
- <div className="fb-label">evidence · sample</div>
96
- <div className="fb-evidence">
97
- {f.evidence.map((e, i) => {
98
- if (e.kind === "comment") {
99
- return <div key={i} className="comment">{e.text}</div>;
100
- }
101
- if (e.kind === "err") {
102
- return <div key={i} className="err">{e.text}</div>;
103
- }
104
- return (
105
- <div key={i}>
106
- <span className="arrow">→ </span>
107
- <span>{e.text}</span>
108
- </div>
109
- );
110
- })}
111
- </div>
112
- </div>
113
- <div className="finding-block">
114
- <div className="fb-label fix">the fix</div>
115
- <div className="fb-fix">
116
- <span className="slug">{f.fix.slug}</span>
117
- <div style={{ color: "var(--ink-2)" }}>{f.fix.desc}</div>
118
- {f.fix.alsoCoveredBy && (
119
- <div style={{ color: "var(--dim)", fontSize: 11, marginTop: 4 }}>
120
- also covered by{" "}
121
- <span style={{ color: "var(--accent-green)" }}>{f.fix.alsoCoveredBy}</span>
122
- </div>
123
- )}
124
- <code className="cmd" onClick={handleCopy} style={{ cursor: "pointer" }}>
125
- <span className="prompt">$</span>{f.fix.install}{" "}
126
- <span style={{ color: "var(--dim)", marginLeft: 8, fontSize: 10, letterSpacing: "0.15em", textTransform: "uppercase" }}>
127
- {copied ? "copied" : "click to copy"}
128
- </span>
129
- </code>
130
- </div>
131
- </div>
132
- </div>
133
- </article>
134
- );
135
- }
@@ -1,126 +0,0 @@
1
- "use client";
2
-
3
- /**
4
- * Section 01 — IDENTITY. The hero. Big archetype name with hard-offset
5
- * stamp shadow, sigil to the right, keywords strip, "common in / primary
6
- * risk" meta grid, and the closing one-liner.
7
- *
8
- * Layout uses the ported `.archetype-frame` / `.arch-mast` / `.arch-body`
9
- * classes from audit-styles.css. Data sources from `src/audit/archetypes.ts`.
10
- *
11
- * The variant copy (tagline / keywords / common / risk / closing) is
12
- * picked deterministically from a multi-variant catalog using the `seed`
13
- * prop — typically the inferred project name. Same seed → same persona
14
- * blurb across renders; different seeds → different copy. So two users
15
- * who both land on "the optimist" see different language for it.
16
- *
17
- * Exposes a `frameRef` forwarded onto the `.archetype-frame` element so
18
- * the ShowOff "make poster" action can capture it via html2canvas.
19
- */
20
- import React, { forwardRef, useMemo } from "react";
21
- import { ARCHETYPES, pickArchetypeVariant, type ArchetypeKey } from "@/src/audit/archetypes";
22
- import { type Grade } from "@/src/audit/scoring";
23
- import { Sigil } from "./sigil";
24
-
25
- interface Props {
26
- archetypeKey: ArchetypeKey;
27
- secondaryKey: ArchetypeKey;
28
- toolCalls: number;
29
- sessions: number;
30
- /** "30d", "7d", etc. shown in the target line; "all time" otherwise. */
31
- window: string;
32
- /** Stable seed for variant selection (project name is the natural fit). */
33
- seed: string;
34
- }
35
-
36
- export const IdentitySection = forwardRef<HTMLDivElement, Props>(function IdentitySection(
37
- { archetypeKey, secondaryKey, toolCalls, sessions, window, seed }: Props,
38
- frameRef,
39
- ) {
40
- // `pickArchetypeVariant` re-hashes the seed string via djb2 + 4 mix
41
- // passes per axis. Deterministic over (archetypeKey, seed) so memoize.
42
- const archetype = useMemo(
43
- () => pickArchetypeVariant(archetypeKey, seed),
44
- [archetypeKey, seed],
45
- );
46
- const secondary = secondaryKey !== archetypeKey ? ARCHETYPES[secondaryKey] : null;
47
-
48
- return (
49
- <section className="identity" data-screen-label="01 Identity">
50
- <div className="archetype-frame" ref={frameRef}>
51
- <span className="corner tl">┌ identity</span>
52
- <span className="corner tr">v1.0 ┐</span>
53
- <span className="corner bl">└ № {archetype.index} / 08</span>
54
- <span className="corner br">archetype ┘</span>
55
-
56
- <div className="arch-mast">
57
- <div className="arch-mast-left">
58
- <div className="arch-eyebrow">
59
- ━━ identity <span className="ix">·</span> your agent&apos;s archetype
60
- </div>
61
- <div className="arch-target">
62
- detected from{" "}
63
- <span style={{ color: "var(--ink)" }}>{toolCalls.toLocaleString()}</span>
64
- {" "}tool calls
65
- <span className="slash">/</span>
66
- <span style={{ color: "var(--ink)" }}>{sessions}</span>
67
- {" "}sessions
68
- <span className="slash">/</span>
69
- <span style={{ color: "var(--ink)" }}>{window}</span>
70
- <span className="live">
71
- <span className="dot-live"></span>live
72
- </span>
73
- </div>
74
- </div>
75
- <div className="arch-counter">
76
- <div>
77
- № {archetype.index}<span className="of"> of 08</span>
78
- </div>
79
- <div style={{ color: "var(--ink-2)", marginTop: 4 }}>archetype</div>
80
- </div>
81
- </div>
82
-
83
- <div className="arch-body">
84
- <div>
85
- <h1 className="arch-name">{archetype.name}</h1>
86
- <p className="arch-tagline">{archetype.tagline}</p>
87
-
88
- {secondary && (
89
- <div className="arch-secondary">
90
- <span className="with">with</span>
91
- <span className="name">{secondary.name.replace("the ", "")}</span>
92
- <span className="with">tendencies</span>
93
- </div>
94
- )}
95
-
96
- <div className="arch-keywords">
97
- {archetype.keywords.map((k, i) => (
98
- <React.Fragment key={k}>
99
- <span className="kw">{k}</span>
100
- {i < archetype.keywords.length - 1 && (
101
- <span className="kw-sep">·</span>
102
- )}
103
- </React.Fragment>
104
- ))}
105
- </div>
106
-
107
- <div className="arch-meta-grid">
108
- <div className="arch-meta-item">
109
- <span className="label">common in</span>
110
- <span className="body">{archetype.common}</span>
111
- </div>
112
- <div className="arch-meta-item">
113
- <span className="label p">primary risk</span>
114
- <span className="body">{archetype.risk}</span>
115
- </div>
116
- </div>
117
-
118
- <div className="arch-closing">— {archetype.closing}</div>
119
- </div>
120
-
121
- <Sigil archetypeKey={archetypeKey} />
122
- </div>
123
- </div>
124
- </section>
125
- );
126
- });