failproofai 1.0.0 → 1.0.1-beta.0

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 (238) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +0 -1
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +5 -5
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/routes-manifest.json +0 -6
  7. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page.js +4 -3
  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 +6 -6
  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/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js +4 -3
  18. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  22. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  23. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +14 -14
  24. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  25. package/.next/standalone/.next/server/app/api/audit/invite/route.js +2 -2
  26. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/audit/run/route.js +3 -3
  28. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/audit/status/route.js +2 -2
  30. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +4 -3
  32. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +2 -2
  34. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/auth/logout/route.js +3 -2
  36. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/api/auth/status/route.js +4 -3
  38. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  41. package/.next/standalone/.next/server/app/audit/page.js +5 -3
  42. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/index.html +1 -1
  45. package/.next/standalone/.next/server/app/index.rsc +15 -15
  46. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +14 -14
  47. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  48. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  49. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  50. package/.next/standalone/.next/server/app/page.js +4 -3
  51. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +10 -10
  54. package/.next/standalone/.next/server/app/policies/page.js +6 -5
  55. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  58. package/.next/standalone/.next/server/app/project/[name]/page.js +5 -4
  59. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  60. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  61. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  62. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  63. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +6 -4
  64. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  67. package/.next/standalone/.next/server/app/projects/page.js +5 -4
  68. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  69. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +4 -4
  71. package/.next/standalone/.next/server/app/settings/page.js +6 -4
  72. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  73. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app-paths-manifest.json +0 -1
  75. package/.next/standalone/.next/server/chunks/[root-of-the-server]__05ja_05._.js +3 -0
  76. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0agdw2a._.js +3 -0
  77. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d1u_na._.js +1 -1
  78. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nne229._.js +3 -0
  79. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ny9q5d._.js +1 -1
  80. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oy4kxb._.js +3 -0
  81. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zf034w._.js +3 -0
  82. package/.next/standalone/.next/server/chunks/[root-of-the-server]__17g9wh7._.js +3 -0
  83. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1hstmft._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1p8poxd._.js +3 -0
  85. package/.next/standalone/.next/server/chunks/_0lxbzdq._.js +1 -1
  86. package/.next/standalone/.next/server/chunks/_1ek68ln._.js +1 -1
  87. package/.next/standalone/.next/server/chunks/_1zuiiy3._.js +1 -1
  88. package/.next/standalone/.next/server/chunks/lib_telemetry_ts_0dctyyw._.js +1 -1
  89. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_0jx6cp6._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_0f-x2b0._.js} +1 -1
  90. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_1f290jp._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_0hwvl7e._.js} +1 -1
  91. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_1g2ji1t._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_1ctjdzl._.js} +1 -1
  92. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  93. package/.next/standalone/.next/server/chunks/src_hooks_fp-home_ts_09kv0bn._.js +3 -0
  94. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03eykvd._.js +5 -0
  95. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__07175vb._.js → [root-of-the-server]__07oh8b5._.js} +1 -1
  96. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cxe_2_._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g2rg69._.js +3 -0
  98. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kgy9da._.js +4 -0
  99. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m98kzy._.js +4 -0
  100. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oa1lav._.js +3 -0
  101. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0sjzdjg._.js +3 -0
  102. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0spkm68._.js +2 -2
  103. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0v5_91z._.js +4 -0
  104. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-a3135._.js +4 -0
  105. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1hvwiw8._.js → [root-of-the-server]__11z_299._.js} +1 -1
  106. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1apc90t._.js → [root-of-the-server]__15c_z97._.js} +1 -1
  107. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1wmno1q._.js → [root-of-the-server]__17d_ffl._.js} +1 -1
  108. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1_dfocn._.js +4 -0
  109. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1e5g_ur._.js +4 -0
  110. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1hmqefd._.js +4 -0
  111. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1jiwfsj._.js +1 -1
  112. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1kzapg5._.js +6 -0
  113. package/.next/standalone/.next/server/chunks/ssr/_04j57fb._.js +3 -0
  114. package/.next/standalone/.next/server/chunks/ssr/_05enntk._.js +3 -0
  115. package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +3 -0
  116. package/.next/standalone/.next/server/chunks/ssr/_0hom1s1._.js +3 -0
  117. package/.next/standalone/.next/server/chunks/ssr/_1nq-35m._.js +23 -0
  118. package/.next/standalone/.next/server/chunks/ssr/_1q7j05x._.js +3 -0
  119. package/.next/standalone/.next/server/chunks/ssr/_1ylae7o._.js +3 -0
  120. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +2 -2
  121. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  122. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +2 -2
  123. package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +3 -0
  124. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/src_hooks_builtin-policies_ts_09j2ndl._.js +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/src_hooks_fp-config_ts_04t589g._.js +4 -0
  127. package/.next/standalone/.next/server/chunks/ssr/src_hooks_fp-home_ts_0je3xkv._.js +3 -0
  128. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  129. package/.next/standalone/.next/server/pages/404.html +1 -1
  130. package/.next/standalone/.next/server/pages/500.html +1 -1
  131. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  132. package/.next/standalone/.next/server/server-reference-manifest.json +15 -15
  133. package/.next/standalone/.next/static/chunks/00q6cfzuzpc85.js +1 -0
  134. package/.next/standalone/.next/static/chunks/{0zm3_8jpqitxy.js → 054eg7y_cjyf9.js} +22 -22
  135. package/.next/standalone/.next/static/chunks/{2ouq44jv_0x04.js → 0mjufa_0xxz75.js} +1 -1
  136. package/.next/standalone/.next/static/chunks/0u64yey446k4f.css +1 -0
  137. package/.next/standalone/.next/static/chunks/{0zi8zjav5a4rq.js → 1-oz4co31nvc5.js} +1 -1
  138. package/.next/standalone/.next/static/chunks/13--2yvqek_s1.js +1 -0
  139. package/.next/standalone/.next/static/chunks/136ldjmzxhush.js +1 -0
  140. package/.next/standalone/.next/static/chunks/18fqy3doo2ial.js +6 -0
  141. package/.next/standalone/.next/static/chunks/1eyl7fzkmnkf_.js +1 -0
  142. package/.next/standalone/.next/static/chunks/{31k3yxpy57_fy.js → 1o5sxp_mdaoci.js} +1 -1
  143. package/.next/standalone/.next/static/chunks/29-iqnp9v_axt.css +1 -0
  144. package/.next/standalone/.next/static/chunks/{2676v-lyzgo91.js → 2es4z1ei90vsv.js} +1 -1
  145. package/.next/standalone/.next/static/chunks/2k9f4tyv04809.css +1 -0
  146. package/.next/standalone/.next/static/chunks/3peix2vxzj7eh.js +1 -0
  147. package/.next/standalone/.next/static/chunks/3qfoeqhy5l10x.js +1 -0
  148. package/.next/standalone/.next/static/chunks/{0km-jn9o5xyqs.css → 3wq9x0c-7ld5d.css} +1 -1
  149. package/.next/standalone/app/actions/get-scheduled-audit.ts +65 -6
  150. package/.next/standalone/app/actions/update-scheduled-audit.ts +90 -17
  151. package/.next/standalone/app/api/auth/status/route.ts +7 -17
  152. package/.next/standalone/app/audit/_components/audit-dashboard.tsx +2 -6
  153. package/.next/standalone/app/audit/_components/come-back-better-section.tsx +101 -281
  154. package/.next/standalone/app/audit/_components/empty-state.tsx +2 -2
  155. package/.next/standalone/app/audit/_components/run-progress.tsx +1 -1
  156. package/.next/standalone/app/audit/audit-styles.css +150 -26
  157. package/.next/standalone/app/globals.css +39 -1
  158. package/.next/standalone/app/settings/page.tsx +38 -21
  159. package/.next/standalone/app/settings/settings-client.tsx +583 -392
  160. package/.next/standalone/app/settings/settings.css +354 -0
  161. package/.next/standalone/components/navbar.tsx +33 -4
  162. package/.next/standalone/lib/auth/api-server-client.ts +51 -29
  163. package/.next/standalone/lib/auth/auth-store.ts +44 -59
  164. package/.next/standalone/package.json +12 -10
  165. package/.next/standalone/server.js +1 -1
  166. package/bin/failproofai.mjs +6 -0
  167. package/bin/failproofaid-shim.mjs +0 -0
  168. package/dist/cli.mjs +1889 -426
  169. package/dist/worker.mjs +27 -5
  170. package/lib/auth/api-server-client.ts +51 -29
  171. package/lib/auth/auth-store.ts +44 -59
  172. package/package.json +12 -10
  173. package/scripts/docs-audit.ts +493 -0
  174. package/scripts/translate-docs/cli.ts +16 -2
  175. package/scripts/translate-docs/mdx-translator.ts +6 -1
  176. package/scripts/translate-docs/readme-translator.ts +4 -2
  177. package/src/audit/cli-login.ts +330 -0
  178. package/src/audit/cli.ts +124 -6
  179. package/src/audit/dashboard-cache.ts +44 -8
  180. package/src/audit/harm-report.ts +260 -0
  181. package/src/audit/machine-store.ts +120 -0
  182. package/src/audit/redact-example.ts +312 -0
  183. package/src/audit/report-harm.ts +167 -0
  184. package/src/audit/schedule-cli.ts +352 -0
  185. package/src/hooks/builtin-policies.ts +26 -0
  186. package/src/hooks/daemon-service.ts +76 -0
  187. package/src/hooks/fp-config.ts +96 -5
  188. package/src/hooks/fp-home.ts +118 -8
  189. package/src/hooks/fp-reset.ts +79 -9
  190. package/src/hooks/migrations.ts +241 -4
  191. package/src/hooks/tui.ts +61 -3
  192. package/.next/standalone/.next/server/app/api/auth/reminder/route/app-paths-manifest.json +0 -3
  193. package/.next/standalone/.next/server/app/api/auth/reminder/route/build-manifest.json +0 -12
  194. package/.next/standalone/.next/server/app/api/auth/reminder/route/server-reference-manifest.json +0 -4
  195. package/.next/standalone/.next/server/app/api/auth/reminder/route.js +0 -9
  196. package/.next/standalone/.next/server/app/api/auth/reminder/route.js.map +0 -5
  197. package/.next/standalone/.next/server/app/api/auth/reminder/route.js.nft.json +0 -1
  198. package/.next/standalone/.next/server/app/api/auth/reminder/route_client-reference-manifest.js +0 -3
  199. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-xggru._.js +0 -3
  200. package/.next/standalone/.next/server/chunks/[root-of-the-server]__00ds05_._.js +0 -3
  201. package/.next/standalone/.next/server/chunks/[root-of-the-server]__094p1f1._.js +0 -3
  202. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1dxagv_._.js +0 -3
  203. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1fgqj1_._.js +0 -3
  204. package/.next/standalone/.next/server/chunks/_084toou._.js +0 -3
  205. package/.next/standalone/.next/server/chunks/_0g4t8c9._.js +0 -3
  206. package/.next/standalone/.next/server/chunks/_0km521a._.js +0 -3
  207. package/.next/standalone/.next/server/chunks/_0t8kefc._.js +0 -3
  208. package/.next/standalone/.next/server/chunks/_16dwkfn._.js +0 -3
  209. package/.next/standalone/.next/server/chunks/_1phm9ui._.js +0 -3
  210. package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_auth_reminder_route_actions_1kjgxf8.js +0 -3
  211. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dk8r_l._.js +0 -3
  212. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kviq2m._.js +0 -3
  213. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ogyhu0._.js +0 -3
  214. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-rfu32._.js +0 -5
  215. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1mmefsr._.js +0 -5
  216. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1t62w37._.js +0 -3
  217. package/.next/standalone/.next/server/chunks/ssr/_032wo7w._.js +0 -3
  218. package/.next/standalone/.next/server/chunks/ssr/_08840em._.js +0 -3
  219. package/.next/standalone/.next/server/chunks/ssr/_0gl2ujp._.js +0 -3
  220. package/.next/standalone/.next/server/chunks/ssr/_0j0ggkc._.js +0 -3
  221. package/.next/standalone/.next/server/chunks/ssr/_0kbv5-q._.js +0 -3
  222. package/.next/standalone/.next/server/chunks/ssr/_0r1jgvp._.js +0 -3
  223. package/.next/standalone/.next/server/chunks/ssr/_0t5xq1b._.js +0 -3
  224. package/.next/standalone/.next/server/chunks/ssr/_0w_be0g._.js +0 -3
  225. package/.next/standalone/.next/server/chunks/ssr/_15gba46._.js +0 -5
  226. package/.next/standalone/.next/server/chunks/ssr/_1qyhb9r._.js +0 -23
  227. package/.next/standalone/.next/server/chunks/ssr/_1vel2ey._.js +0 -3
  228. package/.next/standalone/.next/static/chunks/0wd503tv801gy.js +0 -1
  229. package/.next/standalone/.next/static/chunks/1hfocb0sdl85c.js +0 -1
  230. package/.next/standalone/.next/static/chunks/1v1gqvpjk62jm.js +0 -1
  231. package/.next/standalone/.next/static/chunks/2kopjq_or743g.js +0 -6
  232. package/.next/standalone/.next/static/chunks/2uvhw57mf9lg_.css +0 -2
  233. package/.next/standalone/.next/static/chunks/2ynl0-6aqng_b.js +0 -1
  234. package/.next/standalone/.next/static/chunks/3xvtgz6arztp_.js +0 -1
  235. package/.next/standalone/app/api/auth/reminder/route.ts +0 -213
  236. /package/.next/standalone/.next/static/{Aulh3DRWwRfwh2POCvZR_ → jSKB7CQQSNTX-uSbY2bUs}/_buildManifest.js +0 -0
  237. /package/.next/standalone/.next/static/{Aulh3DRWwRfwh2POCvZR_ → jSKB7CQQSNTX-uSbY2bUs}/_clientMiddlewareManifest.js +0 -0
  238. /package/.next/standalone/.next/static/{Aulh3DRWwRfwh2POCvZR_ → jSKB7CQQSNTX-uSbY2bUs}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- module.exports=[39027,a=>{"use strict";var b=a.i(36359);a.s([],35268),a.i(35268),a.s(["006a491d9b9e28070f91d8d26841e01d7067fe86ff",()=>b.getTelemetryConfig],39027)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
2
-
3
- //# sourceMappingURL=_032wo7w._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[89564,17094,a=>{"use strict";function b(a,c={},d=15e3){let e=AbortSignal.timeout(d),f=c.signal?AbortSignal.any([c.signal,e]):e;return fetch(a,{...c,signal:f})}function c(a){if(null===a||"object"!=typeof a)return!1;let b=a.name;return"AbortError"===b||"TimeoutError"===b}a.s(["fetchWithTimeout",0,b,"isAbortError",0,c],17094);class d extends Error{kind;constructor(a,b){super(b),this.kind=a,this.name="RerunError"}}async function e(a){try{let c=await b("/api/audit/run",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({cli:a.cli.length>0?a.cli:void 0,since:"all"===a.since?void 0:a.since,noCache:!!a.noCache||void 0})});if(!c.ok&&409!==c.status){let a=await c.text().catch(()=>"");throw console.error("audit run failed:",c.status,a),new d("post_failed",`audit run failed (${c.status})`)}}catch(a){if(a instanceof d)throw a;throw console.error("audit run request failed:",a),new d(c(a)?"timeout":"network","audit run request failed")}let e=0;for(;;){await new Promise(a=>setTimeout(a,1e3));let a=null;try{let c=await b("/api/audit/status",{cache:"no-store"});c.ok&&(a=await c.json())}catch{}if(null===a){if(++e>=10)throw new d("network","audit status poll lost the server");continue}if(e=0,!a.running){if(a.error)throw new d("post_failed",a.error);return}}}a.s(["RerunError",0,d,"triggerRun",0,e],89564)},41857,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("00dc7ed4781c57a19663cc5e66e863754dcda6c848",d.callServer,void 0,d.findSourceMapURL,"getScheduledAuditAction"),f=(0,d.createServerReference)("4041cde6b08702664b018639f80eccf64207e30fee",d.callServer,void 0,d.findSourceMapURL,"setAutoAuditAction"),g=(0,d.createServerReference)("4047a587d6748b05fc6b084476da2af6d73119f2b5",d.callServer,void 0,d.findSourceMapURL,"setAuditIntervalAction");var h=a.i(89564),i=a.i(18952),j=a.i(17094),k=a.i(80977);function l(a){return new Date(a).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function m({enabled:a,onChange:c,disabled:d,label:e}){return(0,b.jsx)("button",{type:"button",onClick:c,disabled:d,role:"switch","aria-checked":a,"aria-label":e,className:`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors disabled:opacity-40 ${a?"bg-emerald-500":"bg-muted-foreground/30"}`,children:(0,b.jsx)("span",{className:`inline-block h-3 w-3 rounded-full bg-white shadow transition-transform ${a?"translate-x-3.5":"translate-x-0.5"}`})})}let n={ok:{fg:"var(--accent-green)",bg:"rgba(102,209,181,0.10)",bd:"rgba(102,209,181,0.30)"},warn:{fg:"var(--amber)",bg:"rgba(232,196,106,0.10)",bd:"rgba(232,196,106,0.30)"},bad:{fg:"var(--accent-pink)",bg:"rgba(228,88,124,0.10)",bd:"rgba(228,88,124,0.30)"},muted:{fg:"var(--ink-2)",bg:"transparent",bd:"var(--line-2)"}};function o({tone:a,children:c}){let d=n[a];return(0,b.jsx)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 9px",fontFamily:"var(--font-mono)",fontSize:11,letterSpacing:"0.04em",color:d.fg,background:d.bg,border:`1px solid ${d.bd}`,textTransform:"uppercase"},children:c})}let p={fontFamily:"var(--font-mono)",fontSize:16,fontWeight:600,letterSpacing:"-0.01em",color:"var(--ink)",margin:"0 0 4px"},q={fontFamily:"var(--font-mono)",fontSize:13,color:"var(--ink-2)",lineHeight:1.65,margin:0},r={...q,color:"var(--dim)",fontSize:12},s={color:"var(--ink)",fontVariantLigatures:"none"};function t({children:a}){return(0,b.jsx)("code",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--accent-green)",background:"var(--bg-2)",border:"1px solid var(--line-2)",padding:"1px 6px",whiteSpace:"nowrap"},children:a})}function u({view:a,onReload:d}){let e,[n,v]=(0,c.useState)(a.auto),[w,x]=(0,c.useState)(a.intervalDays),[y,z]=(0,c.useState)(!1),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(!1);(0,c.useEffect)(()=>v(a.auto),[a.auto]),(0,c.useEffect)(()=>x(a.intervalDays),[a.intervalDays]),(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await (0,j.fetchWithTimeout)("/api/audit/status",{cache:"no-store"});if(b.ok&&!a){let a=await b.json();D(!!a.running)}}catch{}})(),()=>{a=!0}},[]);let G="running"!==a.daemon,H="unsupported-platform"===a.daemon,I=(0,c.useCallback)(async()=>{let a=!n;v(a),z(!0);try{let b=await f(a);v(b.auto),(0,i.toast)(b.auto?"Scheduled scanning on.":"Scheduled scanning off."),await d()}catch{v(!a),(0,i.toast)("Could not save that.")}finally{z(!1)}},[n,d]),J=(0,c.useCallback)(async b=>{B(!0);try{let a=await g(b);x(a.intervalDays),(0,i.toast)(`Scanning every ${a.intervalDays} day${1===a.intervalDays?"":"s"}.`)}catch{x(a.intervalDays),(0,i.toast)("Could not save that.")}finally{B(!1)}},[a.intervalDays]),K=(0,c.useCallback)(async()=>{if(!E&&!C){F(!0),D(!0);try{await (0,h.triggerRun)({cli:[],since:"all",noCache:!1}),(0,i.toast)("Audit complete."),await d()}catch(b){let a=b instanceof h.RerunError&&"timeout"===b.kind?"The scan is taking a while — it will finish in the background.":"The scan could not be completed.";(0,i.toast)(a)}finally{F(!1),D(!1)}}},[E,C,d]),L=a.schedule,M=L?.lastExitCode!=null&&0!==L.lastExitCode&&75!==L.lastExitCode;return(0,b.jsxs)("div",{className:"panel",style:{padding:20,marginBottom:20},children:[(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"},children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h3",{style:p,children:"Scheduled audit"}),(0,b.jsx)("p",{style:r,children:"Scan this machine on a timer, in the background."})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:["running"===a.daemon&&(0,b.jsx)(o,{tone:"ok",children:"daemon running"}),"stopped"===a.daemon&&(0,b.jsx)(o,{tone:"warn",children:"daemon stopped"}),"not-installed"===a.daemon&&(0,b.jsx)(o,{tone:"warn",children:"daemon not installed"}),"unsupported-platform"===a.daemon&&(0,b.jsx)(o,{tone:"muted",children:"daemon unavailable"})]})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:12,marginTop:18},children:[(0,b.jsx)("div",{style:{marginTop:2},children:(0,b.jsx)(m,{enabled:n,onChange:I,disabled:y||H,label:n?"Turn off scheduled scanning":"Turn on scheduled scanning"})}),(0,b.jsxs)("div",{style:{minWidth:0},children:[(0,b.jsx)("p",{style:{...q,color:"var(--ink)"},children:n?"Scanning this machine on a schedule.":"Scan this machine on a schedule."}),(0,b.jsxs)("p",{style:{...q,marginTop:6},children:["The scan reads the ",(0,b.jsx)("span",{style:s,children:"contents"})," of every session transcript on disk across all installed agent CLIs — your prompts, the files they read and wrote, and command output. It runs entirely on this machine. Nothing is sent anywhere unless you also turn on emailed reports below."]})]})]}),(0,b.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:16,flexWrap:"wrap"},children:[(0,b.jsx)("label",{htmlFor:"scan-interval",style:{...q},children:"Scan every"}),(0,b.jsx)("input",{id:"scan-interval",type:"number",min:1,max:90,step:1,value:w,disabled:A||H,onChange:a=>x(Number(a.target.value)),onBlur:b=>{let c=Number(b.target.value);Number.isFinite(c)?c!==a.intervalDays&&J(c):x(a.intervalDays)},style:{width:64,padding:"6px 8px",background:"var(--bg)",border:"1px solid var(--line-2)",color:"var(--ink)",fontFamily:"var(--font-mono)",fontSize:13,textAlign:"center"}}),(0,b.jsxs)("span",{style:q,children:["day",1===w?"":"s","."]}),(0,b.jsx)("span",{style:r,children:"1–90; the config keeps it in range."})]}),(0,b.jsxs)("div",{style:{marginTop:18,paddingTop:16,borderTop:"1px dashed var(--line)",display:"flex",flexDirection:"column",gap:6},children:[C&&(0,b.jsx)("p",{style:{...q,color:"var(--accent-green)"},children:"A scan is running now…"}),L?.lastRunAtMs!=null?(0,b.jsxs)("p",{style:q,children:["Last scheduled scan:"," ",(0,b.jsx)("span",{style:s,children:l(L.lastRunAtMs)})," ",(0,b.jsxs)("span",{style:r,children:["(",(0,k.formatRelativeTime)(L.lastRunAtMs),")"]})]}):a.lastResultAt?(0,b.jsxs)("p",{style:q,children:["Last audit result:"," ",(0,b.jsx)("span",{style:s,children:l(new Date(a.lastResultAt).getTime())})," ",(0,b.jsx)("span",{style:r,children:"(no scheduled scan has run yet)"})]}):(0,b.jsx)("p",{style:q,children:"No scan has run yet."}),n?L?.nextDueAtMs!=null?(0,b.jsxs)("p",{style:q,children:["Next scan due:"," ",(0,b.jsx)("span",{style:s,children:l(L.nextDueAtMs)})," ",(0,b.jsxs)("span",{style:r,children:["(",(e=L.nextDueAtMs-Date.now())<=0?"now":e<36e5?`in ${Math.max(1,Math.floor(e/6e4))}m`:e<864e5?`in ${Math.floor(e/36e5)}h`:`in ${Math.floor(e/864e5)}d`,")"]})]}):(0,b.jsxs)("p",{style:q,children:["Next scan:"," ",(0,b.jsx)("span",{style:r,children:"the daemon will schedule it shortly."})]}):(0,b.jsx)("p",{style:r,children:"Scheduled scanning is off — no scan is scheduled."}),M&&(0,b.jsxs)("p",{style:{...q,color:"var(--amber)"},children:["The last scheduled scan exited with code ",L?.lastExitCode,". It will retry on the next tick."]}),L?.schemaAhead&&(0,b.jsx)("p",{style:r,children:"A newer daemon wrote this schedule; some fields may not be shown."})]}),n&&G&&(0,b.jsx)("p",{style:{...q,color:"var(--amber)",marginTop:14},children:H?(0,b.jsx)(b.Fragment,{children:"The background daemon isn't available on this platform, so scheduled scans can't run here. You can still run one now, and use the audit page."}):"not-installed"===a.daemon?(0,b.jsxs)(b.Fragment,{children:["Scheduled scanning is on, but the background service isn't installed, so nothing will run on the timer yet. Install it with ",(0,b.jsx)(t,{children:"failproofai config"}),"."]}):(0,b.jsxs)(b.Fragment,{children:["Scheduled scanning is on, but the background service is stopped, so nothing will run until it starts. Reinstall or repair it with ",(0,b.jsx)(t,{children:"failproofai config"}),"."]})}),(0,b.jsx)("div",{style:{marginTop:18},children:(0,b.jsx)("button",{type:"button",className:"btn",onClick:K,disabled:E||C,children:E||C?"[ scanning… ]":"[ run a scan now ]"})})]})}a.s(["default",0,function(){let[a,d]=(0,c.useState)(null),[f,g]=(0,c.useState)(!0),[h,i]=(0,c.useState)(!1),j=(0,c.useRef)(!0),k=(0,c.useCallback)(async()=>{let a=await e();j.current&&d(a)},[]);return(0,c.useEffect)(()=>(j.current=!0,(async()=>{try{await k()}catch{j.current&&i(!0)}finally{j.current&&g(!1)}})(),()=>{j.current=!1}),[k]),(0,b.jsx)("main",{className:"report",children:(0,b.jsxs)("section",{className:"section","data-screen-label":"settings",children:[(0,b.jsx)("h2",{style:{fontFamily:"var(--font-mono)",fontSize:24,fontWeight:600,letterSpacing:"-0.01em",color:"var(--ink)",margin:"0 0 8px"},children:"Settings"}),(0,b.jsx)("p",{style:{...q,maxWidth:720,margin:"0 0 24px"},children:"Machine-level controls for scheduled scanning and emailed reports."}),f?(0,b.jsx)("p",{style:r,children:"Loading…"}):h||!a?(0,b.jsx)("p",{style:{...q,color:"var(--accent-pink)"},children:"Could not load settings. Refresh to try again."}):(0,b.jsx)(u,{view:a,onReload:k})]})})}],41857)},80977,a=>{"use strict";a.s(["formatRelativeTime",0,function(a){let b=Date.now()-a;return b<6e4?`${Math.max(1,Math.floor(b/1e3))}s ago`:b<36e5?`${Math.floor(b/6e4)}m ago`:b<864e5?`${Math.floor(b/36e5)}h ago`:`${Math.floor(b/864e5)}d ago`}])}];
2
-
3
- //# sourceMappingURL=_08840em._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[99558,a=>{"use strict";var b=a.i(36359),c=a.i(37936),d=a.i(15501);async function e(){let a=(0,d.readDashboardCache)();if(!a){let a=(0,d.readDashboardCacheMeta)();return{status:"empty",expired:null!==a,expiredAt:a?.cachedAt??null}}return{status:"cached",cachedAt:a.cachedAt,params:a.params,result:a.result}}(0,a.i(13095).ensureServerEntryExports)([e]),(0,c.registerServerReference)(e,"006ce6610745fc7123711e82aa0d7881387cf91dfa",null),a.s([],62946),a.i(62946),a.s(["006a491d9b9e28070f91d8d26841e01d7067fe86ff",()=>b.getTelemetryConfig,"006ce6610745fc7123711e82aa0d7881387cf91dfa",0,e],99558)},8674,a=>{"use strict";a.i(2157),a.i(50227),a.i(66680),a.s([])},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},15501,a=>{"use strict";var b=a.i(2157);a.i(8674);var c=a.i(75818);function d(){return(0,c.auditDashboardFile)()}a.s(["readDashboardCache",0,function(){let a=d();if(!(0,b.existsSync)(a))return null;try{let c=(0,b.readFileSync)(a,"utf-8"),d=JSON.parse(c);if(!d||"object"!=typeof d||"string"!=typeof d.cachedAt||!d.params||"object"!=typeof d.params||!d.result||"object"!=typeof d.result||2!==d.schemaVersion||function(a,b=30){let c=new Date(a).getTime();return!!Number.isNaN(c)||Date.now()-c>6e4*b}(d.cachedAt,10080))return null;return d}catch{return null}},"readDashboardCacheMeta",0,function(){let a=d();if(!(0,b.existsSync)(a))return null;try{let c=(0,b.readFileSync)(a,"utf-8"),d=JSON.parse(c);if(!d||2!==d.schemaVersion||"string"!=typeof d.cachedAt||Number.isNaN(new Date(d.cachedAt).getTime()))return null;return{cachedAt:d.cachedAt}}catch{return null}}])}];
2
-
3
- //# sourceMappingURL=_0gl2ujp._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[26035,a=>{"use strict";var b=a.i(36359);a.s([],19459),a.i(19459),a.s(["006a491d9b9e28070f91d8d26841e01d7067fe86ff",()=>b.getTelemetryConfig],26035)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
2
-
3
- //# sourceMappingURL=_0j0ggkc._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[21776,a=>{"use strict";var b=a.i(36359),c=a.i(7292);a.s([],84740),a.i(84740),a.s(["006a491d9b9e28070f91d8d26841e01d7067fe86ff",()=>b.getTelemetryConfig,"601983ac74197064585b90d8ec471f0d67787711d1",()=>c.searchHookActivityAction],21776)},7292,1144,a=>{"use strict";var b=a.i(37936),c=a.i(2157),d=a.i(50227),e=a.i(75818);let f="current.jsonl",g=()=>(0,e.hookActivityDir)();function h(){(0,c.existsSync)(g())||(0,c.mkdirSync)(g(),{recursive:!0})}function i(){let a=function(){try{return JSON.parse((0,c.readFileSync)((0,d.join)(g(),"stats.json"),"utf-8"))}catch{return{totalEvents:0,denyCount:0,policyMap:{}}}}(),b=null,e=0;for(let[c,d]of Object.entries(a.policyMap))d>e&&(b=c,e=d);return{totalEvents:a.totalEvents,denyCount:a.denyCount,topPolicy:b,topPolicyCount:e}}function j(a,b){let c=(function(){h();let a=l((0,d.join)(g(),f)).reverse(),b=m(),c=[];for(let a of b){let b=l((0,d.join)(g(),a));c.push(...b.reverse())}return[...a,...c]})().filter(b=>(!a.decision||b.decision===a.decision)&&(!a.eventType||b.eventType===a.eventType)&&(!a.policyName||!!b.policyName&&!!b.policyName.toLowerCase().includes(a.policyName.toLowerCase()))&&(!a.sessionId||!!b.sessionId&&!!b.sessionId.toLowerCase().includes(a.sessionId.toLowerCase()))&&(!a.integration||b.integration===a.integration)&&(!a.source||b.policySource===a.source)&&!0),e=Math.max(1,Math.ceil(c.length/25)),j=(b-1)*25;return{entries:c.slice(j,j+25),totalPages:e,page:b,stats:i()}}function k(a){let b=function(a){if(h(),a<1)return[];if(1===a)return l((0,d.join)(g(),f)).reverse();let b=m(),c=a-2;return c>=b.length?[]:l((0,d.join)(g(),b[c])).reverse()}(a);return{entries:b,totalPages:(h(),1+m().length),page:a,stats:i()}}function l(a){let b=function(a){try{return(0,c.readFileSync)(a,"utf-8")}catch{return""}}(a);if(!b.trim())return[];let d=[];for(let a of b.trim().split("\n"))try{var e;d.push((e=JSON.parse(a),void 0===e.cloudVersion&&"number"==typeof e.cloudRevision&&(e.cloudVersion=e.cloudRevision),void 0===e.cloudDeployment&&"number"==typeof e.cloudGeneration&&(e.cloudDeployment=e.cloudGeneration),e))}catch{}return d}function m(){try{return(0,c.readdirSync)(g()).filter(a=>a.startsWith("page-")&&a.endsWith(".jsonl")).sort((a,b)=>{let c=a.slice(5,-6).split("-"),d=b.slice(5,-6).split("-"),e=parseInt(c[0],10),f=parseInt(d[0],10);if(e!==f)return f-e;let g=c.length>1?parseInt(c[1],10):0;return(d.length>1?parseInt(d[1],10):0)-g})}catch{return[]}}async function n(a){return k(a)}async function o(a,b){return j(a,b)}a.s(["getHookActivityHistory",0,k,"searchHookActivity",0,j],1144),(0,a.i(13095).ensureServerEntryExports)([n,o]),(0,b.registerServerReference)(n,"400e32aa5f42389c9fcdbec27a17ff0dd08541c2c1",null),(0,b.registerServerReference)(o,"601983ac74197064585b90d8ec471f0d67787711d1",null),a.s(["getHookActivityAction",0,n,"searchHookActivityAction",0,o],7292)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
2
-
3
- //# sourceMappingURL=_0kbv5-q._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[89564,17094,a=>{"use strict";function b(a,c={},d=15e3){let e=AbortSignal.timeout(d),f=c.signal?AbortSignal.any([c.signal,e]):e;return fetch(a,{...c,signal:f})}function c(a){if(null===a||"object"!=typeof a)return!1;let b=a.name;return"AbortError"===b||"TimeoutError"===b}a.s(["fetchWithTimeout",0,b,"isAbortError",0,c],17094);class d extends Error{kind;constructor(a,b){super(b),this.kind=a,this.name="RerunError"}}async function e(a){try{let c=await b("/api/audit/run",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({cli:a.cli.length>0?a.cli:void 0,since:"all"===a.since?void 0:a.since,noCache:!!a.noCache||void 0})});if(!c.ok&&409!==c.status){let a=await c.text().catch(()=>"");throw console.error("audit run failed:",c.status,a),new d("post_failed",`audit run failed (${c.status})`)}}catch(a){if(a instanceof d)throw a;throw console.error("audit run request failed:",a),new d(c(a)?"timeout":"network","audit run request failed")}let e=0;for(;;){await new Promise(a=>setTimeout(a,1e3));let a=null;try{let c=await b("/api/audit/status",{cache:"no-store"});c.ok&&(a=await c.json())}catch{}if(null===a){if(++e>=10)throw new d("network","audit status poll lost the server");continue}if(e=0,!a.running){if(a.error)throw new d("post_failed",a.error);return}}}a.s(["RerunError",0,d,"triggerRun",0,e],89564)},3900,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules_html-to-image_es_index_1ao30b1.js"].map(b=>a.l(b))).then(()=>b(63460)))}];
2
-
3
- //# sourceMappingURL=_0r1jgvp._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[37985,a=>{"use strict";var b=a.i(36359);a.s([],80194),a.i(80194),a.s(["006a491d9b9e28070f91d8d26841e01d7067fe86ff",()=>b.getTelemetryConfig],37985)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
2
-
3
- //# sourceMappingURL=_0t5xq1b._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[24190,a=>{"use strict";var b=a.i(36359);a.s([],40488),a.i(40488),a.s(["006a491d9b9e28070f91d8d26841e01d7067fe86ff",()=>b.getTelemetryConfig],24190)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
2
-
3
- //# sourceMappingURL=_0w_be0g._.js.map
@@ -1,5 +0,0 @@
1
- module.exports=[8674,a=>{"use strict";a.i(2157),a.i(50227),a.i(66680),a.s([])},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},15501,a=>{"use strict";var b=a.i(2157);a.i(8674);var c=a.i(75818);function d(){return(0,c.auditDashboardFile)()}a.s(["readDashboardCache",0,function(){let a=d();if(!(0,b.existsSync)(a))return null;try{let c=(0,b.readFileSync)(a,"utf-8"),d=JSON.parse(c);if(!d||"object"!=typeof d||"string"!=typeof d.cachedAt||!d.params||"object"!=typeof d.params||!d.result||"object"!=typeof d.result||2!==d.schemaVersion||function(a,b=30){let c=new Date(a).getTime();return!!Number.isNaN(c)||Date.now()-c>6e4*b}(d.cachedAt,10080))return null;return d}catch{return null}},"readDashboardCacheMeta",0,function(){let a=d();if(!(0,b.existsSync)(a))return null;try{let c=(0,b.readFileSync)(a,"utf-8"),d=JSON.parse(c);if(!d||2!==d.schemaVersion||"string"!=typeof d.cachedAt||Number.isNaN(new Date(d.cachedAt).getTime()))return null;return{cachedAt:d.cachedAt}}catch{return null}}])},84670,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__1v185mo._.js"].map(b=>a.l(b))).then(()=>b(32271)))},10695,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(75818);let e={info:0,warn:1,error:2},f=(0,d.logsDir)(),g=!1,h="warn",i=!1,j=f;function k(a){return!function(){if(g)return;g=!0;let a=(process.env.FAILPROOFAI_LOG_LEVEL??"").toLowerCase();("info"===a||"warn"===a||"error"===a)&&(h=a);let b=(process.env.FAILPROOFAI_HOOK_LOG_FILE??"").trim();b&&(i=!0,"1"!==b&&"true"!==b&&(j=b))}(),e[a]>=e[h]}function l(a,b){process.stderr.write(`[failproofai:hook] ${a} ${b}
2
- `)}function m(a,d){if(i)try{(0,b.existsSync)(j)||(0,b.mkdirSync)(j,{recursive:!0});let e=(0,c.join)(j,"hooks.log");try{if((0,b.statSync)(e).size>=524288){let a=`hooks-${Date.now()}.log`;(0,b.renameSync)(e,(0,c.join)(j,a))}}catch{}let f=new Date().toISOString(),g=`[${f}] ${a} ${d}
3
- `;(0,b.appendFileSync)(e,g,"utf-8")}catch{}}a.s(["hookLogError",0,function(a){k("error")&&(l("ERROR",a),m("ERROR",a))},"hookLogWarn",0,function(a){k("warn")&&(l("WARN",a),m("WARN",a))}])}];
4
-
5
- //# sourceMappingURL=_15gba46._.js.map
@@ -1,23 +0,0 @@
1
- module.exports=[42698,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("006a491d9b9e28070f91d8d26841e01d7067fe86ff",b.callServer,void 0,b.findSourceMapURL,"getTelemetryConfig");a.s(["getTelemetryConfig",0,c])},40695,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(97895);let e=c.forwardRef(({className:a,variant:c="default",size:e="default",...f},g)=>(0,b.jsx)("button",{className:(0,d.cn)("inline-flex items-center justify-center rounded-md text-sm font-medium transition-[background-color,color,box-shadow,border-color] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:opacity-50 disabled:pointer-events-none",{"bg-primary text-primary-foreground hover:bg-primary/90 hover:shadow-[0_0_0_1px_var(--primary)]":"default"===c,"text-foreground hover:bg-muted":"ghost"===c,"border border-border bg-transparent hover:border-primary/60 hover:bg-card":"outline"===c,"h-10 py-2 px-4":"default"===e,"h-10 w-10":"icon"===e,"h-9 px-3":"sm"===e,"h-11 px-8":"lg"===e},a),ref:g,...f}));e.displayName="Button",a.s(["Button",0,e])},6236,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=(0,c.createContext)(void 0);a.s(["AutoRefreshProvider",0,function({children:a}){let[e,f]=(0,c.useState)(0);return(0,b.jsx)(d.Provider,{value:{intervalSec:e,setIntervalSec:f},children:a})},"useAutoRefresh",0,function(){let a=(0,c.useContext)(d);if(!a)throw Error("useAutoRefresh must be used within AutoRefreshProvider");return a}])},10765,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(42698),f=a.i(66036);let g=(0,c.createContext)(void 0);a.s(["PostHogProvider",0,function({children:a}){let h=(0,d.usePathname)(),i=(0,c.useRef)(null),j=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=!1;return(0,e.getTelemetryConfig)().then(b=>{a||((0,f.setClientTelemetryConfig)(b),j.current=!0,(0,f.captureClientEvent)("$pageview"),i.current=window.location.pathname)}),()=>{a=!0}},[]),(0,c.useEffect)(()=>{j.current&&i.current!==h&&(i.current=h,(0,f.captureClientEvent)("$pageview"))},[h]);let k=c.default.useCallback((a,b)=>{(0,f.captureClientEvent)(a,b)},[]);return(0,b.jsx)(g.Provider,{value:{capture:k},children:a})},"usePostHog",0,function(){let a=(0,c.useContext)(g);if(void 0===a)throw Error("usePostHog must be used within a PostHogProvider");return a}])},66036,a=>{"use strict";a.s(["captureClientEvent",0,function(a,b){},"setClientTelemetryConfig",0,function(a){}])},46058,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},89027,a=>{"use strict";let b=(0,a.i(64831).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",0,b],89027)},5050,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20611),g=a.r(1722),h=a.r(38783)},20611,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"callServer",{enumerable:!0,get:function(){return g}});let d=a.r(72131),e=a.r(88347),f=a.r(90841);async function g(a,b){return new Promise((c,g)=>{(0,d.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:e.ACTION_SERVER_ACTION,actionId:a,actionArgs:b,resolve:c,reject:g})})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},1722,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findSourceMapURL",{enumerable:!0,get:function(){return d}});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},88347,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={ACTION_HMR_REFRESH:function(){return l},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return h},ACTION_RESTORE:function(){return j},ACTION_SERVER_ACTION:function(){return m},ACTION_SERVER_PATCH:function(){return k},PrefetchKind:function(){return n},ScrollBehavior:function(){return o}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h="refresh",i="navigate",j="restore",k="server-patch",l="hmr-refresh",m="server-action";var n=((d={}).AUTO="auto",d.FULL="full",d),o=((e={})[e.Default=0]="Default",e[e.NoScroll=1]="NoScroll",e);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},90841,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={dispatchAppRouterAction:function(){return i},dispatchGestureState:function(){return j},refreshOnInstantNavigationUnlock:function(){return h},useActionQueue:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(46058)._(a.r(72131)),g=a.r(67009);a.r(88347);function h(){}function i(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function j(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function k(a){let[b,c]=f.default.useState(a.state),[d,e]=(0,f.useOptimistic)(b),h=(0,f.useMemo)(()=>d,[d]);return(0,g.isThenable)(h)?(0,f.use)(h):h}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},14827,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={createLinkPrefetchPartialError:function(){return g},createUnrenderedSegmentError:function(){return f}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a,b){let c=`Route "${a}": Could not validate that a segment in your UI has instant navigation.`;if(b.length>0){let a=1===b.length?"Dropped segment":"Dropped segments";c+=`
2
-
3
- This segment was dropped from rendering. Issues that would prevent instant navigation will go undetected.
4
-
5
- ${a}:
6
- ${b.map(a=>` ${a}`).join("\n")}
7
-
8
- Ways to fix this:
9
- - [render] Render the dropped segment
10
- - [ignore] Set \`export const instant = false\` to opt the dropped segment out of instant-navigation validation
11
-
12
- Learn more: https://nextjs.org/docs/messages/instant-unrendered-segment`}return Object.defineProperty(Error(c),"__NEXT_ERROR_CODE",{value:"E1286",enumerable:!1,configurable:!0})}function g(a){return Object.defineProperty(Error(`Next.js encountered dynamic data during prefetching for "${a}".
13
-
14
- This will lead to slower, more expensive prefetches.
15
-
16
- Ways to fix this:
17
- - [upgrade] Opt into Partial Prefetching by exporting \`const prefetch = 'partial'\` from the page or layout, or by setting \`partialPrefetching: true\` in next.config to opt the whole app in
18
- - [disable] Remove \`prefetch={true}\` from the <Link> to use the default prefetch
19
- - [ignore] Set \`export const instant = false\` to opt the route out of instant-navigation validation
20
-
21
- Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`),"__NEXT_ERROR_CODE",{value:"E1435",enumerable:!1,configurable:!0})}},88644,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1179",enumerable:!1,configurable:!0}),this.name="InvariantError"}}},67009,(a,b,c)=>{"use strict";function d(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isThenable",{enumerable:!0,get:function(){return d}})},41997,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},54427,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},39118,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"}];
22
-
23
- //# sourceMappingURL=_1qyhb9r._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[165,a=>{"use strict";var b=a.i(36359);a.s([],84833),a.i(84833),a.s(["006a491d9b9e28070f91d8d26841e01d7067fe86ff",()=>b.getTelemetryConfig],165)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
2
-
3
- //# sourceMappingURL=_1vel2ey._.js.map
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,86616,29054,e=>{"use strict";function t(e,n={},a=15e3){let r=AbortSignal.timeout(a),i=n.signal?AbortSignal.any([n.signal,r]):r;return fetch(e,{...n,signal:i})}function n(e){if(null===e||"object"!=typeof e)return!1;let t=e.name;return"AbortError"===t||"TimeoutError"===t}e.s(["fetchWithTimeout",0,t,"isAbortError",0,n],29054);class a extends Error{kind;constructor(e,t){super(t),this.kind=e,this.name="RerunError"}}async function r(e){try{let n=await t("/api/audit/run",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({cli:e.cli.length>0?e.cli:void 0,since:"all"===e.since?void 0:e.since,noCache:!!e.noCache||void 0})});if(!n.ok&&409!==n.status){let e=await n.text().catch(()=>"");throw console.error("audit run failed:",n.status,e),new a("post_failed",`audit run failed (${n.status})`)}}catch(e){if(e instanceof a)throw e;throw console.error("audit run request failed:",e),new a(n(e)?"timeout":"network","audit run request failed")}let r=0;for(;;){await new Promise(e=>setTimeout(e,1e3));let e=null;try{let n=await t("/api/audit/status",{cache:"no-store"});n.ok&&(e=await n.json())}catch{}if(null===e){if(++r>=10)throw new a("network","audit status poll lost the server");continue}if(r=0,!e.running){if(e.error)throw new a("post_failed",e.error);return}}}e.s(["RerunError",0,a,"triggerRun",0,r],86616)},93237,e=>{"use strict";var t=e.i(43476),n=e.i(71645),a=e.i(95187);let r=(0,a.createServerReference)("00dc7ed4781c57a19663cc5e66e863754dcda6c848",a.callServer,void 0,a.findSourceMapURL,"getScheduledAuditAction"),i=(0,a.createServerReference)("4041cde6b08702664b018639f80eccf64207e30fee",a.callServer,void 0,a.findSourceMapURL,"setAutoAuditAction"),s=(0,a.createServerReference)("4047a587d6748b05fc6b084476da2af6d73119f2b5",a.callServer,void 0,a.findSourceMapURL,"setAuditIntervalAction");var l=e.i(86616),o=e.i(55574),c=e.i(29054),d=e.i(34713);function u(e){return new Date(e).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function h({enabled:e,onChange:n,disabled:a,label:r}){return(0,t.jsx)("button",{type:"button",onClick:n,disabled:a,role:"switch","aria-checked":e,"aria-label":r,className:`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors disabled:opacity-40 ${e?"bg-emerald-500":"bg-muted-foreground/30"}`,children:(0,t.jsx)("span",{className:`inline-block h-3 w-3 rounded-full bg-white shadow transition-transform ${e?"translate-x-3.5":"translate-x-0.5"}`})})}let f={ok:{fg:"var(--accent-green)",bg:"rgba(102,209,181,0.10)",bd:"rgba(102,209,181,0.30)"},warn:{fg:"var(--amber)",bg:"rgba(232,196,106,0.10)",bd:"rgba(232,196,106,0.30)"},bad:{fg:"var(--accent-pink)",bg:"rgba(228,88,124,0.10)",bd:"rgba(228,88,124,0.30)"},muted:{fg:"var(--ink-2)",bg:"transparent",bd:"var(--line-2)"}};function p({tone:e,children:n}){let a=f[e];return(0,t.jsx)("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 9px",fontFamily:"var(--font-mono)",fontSize:11,letterSpacing:"0.04em",color:a.fg,background:a.bg,border:`1px solid ${a.bd}`,textTransform:"uppercase"},children:n})}let g={fontFamily:"var(--font-mono)",fontSize:16,fontWeight:600,letterSpacing:"-0.01em",color:"var(--ink)",margin:"0 0 4px"},m={fontFamily:"var(--font-mono)",fontSize:13,color:"var(--ink-2)",lineHeight:1.65,margin:0},y={...m,color:"var(--dim)",fontSize:12},x={color:"var(--ink)",fontVariantLigatures:"none"};function v({children:e}){return(0,t.jsx)("code",{style:{fontFamily:"var(--font-mono)",fontSize:12,color:"var(--accent-green)",background:"var(--bg-2)",border:"1px solid var(--line-2)",padding:"1px 6px",whiteSpace:"nowrap"},children:e})}function b({view:e,onReload:a}){let r,[f,j]=(0,n.useState)(e.auto),[w,S]=(0,n.useState)(e.intervalDays),[k,T]=(0,n.useState)(!1),[A,M]=(0,n.useState)(!1),[R,C]=(0,n.useState)(!1),[D,$]=(0,n.useState)(!1);(0,n.useEffect)(()=>j(e.auto),[e.auto]),(0,n.useEffect)(()=>S(e.intervalDays),[e.intervalDays]),(0,n.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await (0,c.fetchWithTimeout)("/api/audit/status",{cache:"no-store"});if(t.ok&&!e){let e=await t.json();C(!!e.running)}}catch{}})(),()=>{e=!0}},[]);let E="running"!==e.daemon,N="unsupported-platform"===e.daemon,F=(0,n.useCallback)(async()=>{let e=!f;j(e),T(!0);try{let t=await i(e);j(t.auto),(0,o.toast)(t.auto?"Scheduled scanning on.":"Scheduled scanning off."),await a()}catch{j(!e),(0,o.toast)("Could not save that.")}finally{T(!1)}},[f,a]),I=(0,n.useCallback)(async t=>{M(!0);try{let e=await s(t);S(e.intervalDays),(0,o.toast)(`Scanning every ${e.intervalDays} day${1===e.intervalDays?"":"s"}.`)}catch{S(e.intervalDays),(0,o.toast)("Could not save that.")}finally{M(!1)}},[e.intervalDays]),L=(0,n.useCallback)(async()=>{if(!D&&!R){$(!0),C(!0);try{await (0,l.triggerRun)({cli:[],since:"all",noCache:!1}),(0,o.toast)("Audit complete."),await a()}catch(t){let e=t instanceof l.RerunError&&"timeout"===t.kind?"The scan is taking a while — it will finish in the background.":"The scan could not be completed.";(0,o.toast)(e)}finally{$(!1),C(!1)}}},[D,R,a]),W=e.schedule,z=W?.lastExitCode!=null&&0!==W.lastExitCode&&75!==W.lastExitCode;return(0,t.jsxs)("div",{className:"panel",style:{padding:20,marginBottom:20},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{style:g,children:"Scheduled audit"}),(0,t.jsx)("p",{style:y,children:"Scan this machine on a timer, in the background."})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:["running"===e.daemon&&(0,t.jsx)(p,{tone:"ok",children:"daemon running"}),"stopped"===e.daemon&&(0,t.jsx)(p,{tone:"warn",children:"daemon stopped"}),"not-installed"===e.daemon&&(0,t.jsx)(p,{tone:"warn",children:"daemon not installed"}),"unsupported-platform"===e.daemon&&(0,t.jsx)(p,{tone:"muted",children:"daemon unavailable"})]})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:12,marginTop:18},children:[(0,t.jsx)("div",{style:{marginTop:2},children:(0,t.jsx)(h,{enabled:f,onChange:F,disabled:k||N,label:f?"Turn off scheduled scanning":"Turn on scheduled scanning"})}),(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsx)("p",{style:{...m,color:"var(--ink)"},children:f?"Scanning this machine on a schedule.":"Scan this machine on a schedule."}),(0,t.jsxs)("p",{style:{...m,marginTop:6},children:["The scan reads the ",(0,t.jsx)("span",{style:x,children:"contents"})," of every session transcript on disk across all installed agent CLIs — your prompts, the files they read and wrote, and command output. It runs entirely on this machine. Nothing is sent anywhere unless you also turn on emailed reports below."]})]})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:16,flexWrap:"wrap"},children:[(0,t.jsx)("label",{htmlFor:"scan-interval",style:{...m},children:"Scan every"}),(0,t.jsx)("input",{id:"scan-interval",type:"number",min:1,max:90,step:1,value:w,disabled:A||N,onChange:e=>S(Number(e.target.value)),onBlur:t=>{let n=Number(t.target.value);Number.isFinite(n)?n!==e.intervalDays&&I(n):S(e.intervalDays)},style:{width:64,padding:"6px 8px",background:"var(--bg)",border:"1px solid var(--line-2)",color:"var(--ink)",fontFamily:"var(--font-mono)",fontSize:13,textAlign:"center"}}),(0,t.jsxs)("span",{style:m,children:["day",1===w?"":"s","."]}),(0,t.jsx)("span",{style:y,children:"1–90; the config keeps it in range."})]}),(0,t.jsxs)("div",{style:{marginTop:18,paddingTop:16,borderTop:"1px dashed var(--line)",display:"flex",flexDirection:"column",gap:6},children:[R&&(0,t.jsx)("p",{style:{...m,color:"var(--accent-green)"},children:"A scan is running now…"}),W?.lastRunAtMs!=null?(0,t.jsxs)("p",{style:m,children:["Last scheduled scan:"," ",(0,t.jsx)("span",{style:x,children:u(W.lastRunAtMs)})," ",(0,t.jsxs)("span",{style:y,children:["(",(0,d.formatRelativeTime)(W.lastRunAtMs),")"]})]}):e.lastResultAt?(0,t.jsxs)("p",{style:m,children:["Last audit result:"," ",(0,t.jsx)("span",{style:x,children:u(new Date(e.lastResultAt).getTime())})," ",(0,t.jsx)("span",{style:y,children:"(no scheduled scan has run yet)"})]}):(0,t.jsx)("p",{style:m,children:"No scan has run yet."}),f?W?.nextDueAtMs!=null?(0,t.jsxs)("p",{style:m,children:["Next scan due:"," ",(0,t.jsx)("span",{style:x,children:u(W.nextDueAtMs)})," ",(0,t.jsxs)("span",{style:y,children:["(",(r=W.nextDueAtMs-Date.now())<=0?"now":r<36e5?`in ${Math.max(1,Math.floor(r/6e4))}m`:r<864e5?`in ${Math.floor(r/36e5)}h`:`in ${Math.floor(r/864e5)}d`,")"]})]}):(0,t.jsxs)("p",{style:m,children:["Next scan:"," ",(0,t.jsx)("span",{style:y,children:"the daemon will schedule it shortly."})]}):(0,t.jsx)("p",{style:y,children:"Scheduled scanning is off — no scan is scheduled."}),z&&(0,t.jsxs)("p",{style:{...m,color:"var(--amber)"},children:["The last scheduled scan exited with code ",W?.lastExitCode,". It will retry on the next tick."]}),W?.schemaAhead&&(0,t.jsx)("p",{style:y,children:"A newer daemon wrote this schedule; some fields may not be shown."})]}),f&&E&&(0,t.jsx)("p",{style:{...m,color:"var(--amber)",marginTop:14},children:N?(0,t.jsx)(t.Fragment,{children:"The background daemon isn't available on this platform, so scheduled scans can't run here. You can still run one now, and use the audit page."}):"not-installed"===e.daemon?(0,t.jsxs)(t.Fragment,{children:["Scheduled scanning is on, but the background service isn't installed, so nothing will run on the timer yet. Install it with ",(0,t.jsx)(v,{children:"failproofai config"}),"."]}):(0,t.jsxs)(t.Fragment,{children:["Scheduled scanning is on, but the background service is stopped, so nothing will run until it starts. Reinstall or repair it with ",(0,t.jsx)(v,{children:"failproofai config"}),"."]})}),(0,t.jsx)("div",{style:{marginTop:18},children:(0,t.jsx)("button",{type:"button",className:"btn",onClick:L,disabled:D||R,children:D||R?"[ scanning… ]":"[ run a scan now ]"})})]})}e.s(["default",0,function(){let[e,a]=(0,n.useState)(null),[i,s]=(0,n.useState)(!0),[l,o]=(0,n.useState)(!1),c=(0,n.useRef)(!0),d=(0,n.useCallback)(async()=>{let e=await r();c.current&&a(e)},[]);return(0,n.useEffect)(()=>(c.current=!0,(async()=>{try{await d()}catch{c.current&&o(!0)}finally{c.current&&s(!1)}})(),()=>{c.current=!1}),[d]),(0,t.jsx)("main",{className:"report",children:(0,t.jsxs)("section",{className:"section","data-screen-label":"settings",children:[(0,t.jsx)("h2",{style:{fontFamily:"var(--font-mono)",fontSize:24,fontWeight:600,letterSpacing:"-0.01em",color:"var(--ink)",margin:"0 0 8px"},children:"Settings"}),(0,t.jsx)("p",{style:{...m,maxWidth:720,margin:"0 0 24px"},children:"Machine-level controls for scheduled scanning and emailed reports."}),i?(0,t.jsx)("p",{style:y,children:"Loading…"}):l||!e?(0,t.jsx)("p",{style:{...m,color:"var(--accent-pink)"},children:"Could not load settings. Refresh to try again."}):(0,t.jsx)(b,{view:e,onReload:d})]})})}],93237)},34713,e=>{"use strict";e.s(["formatDuration",0,function(e){if(e<1e3)return`${e}ms`;let t=Math.round(e/100);if(t<600)return`${(t/10).toFixed(1)}s`;let n=Math.round(e/1e3);if(n<3600){let e=Math.floor(n/60);return`${e}m ${n%60}s`}let a=Math.round(e/6e4),r=Math.floor(a/60);return`${r}h ${a%60}m`},"formatRelativeTime",0,function(e){let t=Date.now()-e;return t<6e4?`${Math.max(1,Math.floor(t/1e3))}s ago`:t<36e5?`${Math.floor(t/6e4)}m ago`:t<864e5?`${Math.floor(t/36e5)}h ago`:`${Math.floor(t/864e5)}d ago`}])}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,28101,e=>{"use strict";var t=e.i(95187);let a=(0,t.createServerReference)("601983ac74197064585b90d8ec471f0d67787711d1",t.callServer,void 0,t.findSourceMapURL,"searchHookActivityAction");e.s(["searchHookActivityAction",0,a])},73520,e=>{"use strict";var t=e.i(43476),a=e.i(24071),r=e.i(67927);e.s(["default",0,function({currentPage:e,totalPages:s,onPageChange:i}){if(s<=1)return null;let l=e=>`px-3 py-2 text-sm rounded-md transition-colors flex items-center gap-1 bg-muted text-muted-foreground ${e?"opacity-50 cursor-not-allowed":"hover:bg-muted/80"}`;return(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4",children:[(0,t.jsxs)("button",{onClick:()=>i(e-1),disabled:1===e,className:l(1===e),"aria-label":"Previous page",children:[(0,t.jsx)(a.ChevronLeft,{className:"w-4 h-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Previous"})]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:(()=>{if(s<=7)return Array.from({length:s},(e,t)=>t+1);let t=[1],a=Math.max(2,e-1),r=Math.min(s-1,e+1);e<=3&&(r=Math.min(5,s-1)),e>=s-2&&(a=Math.max(2,s-4)),a>2&&t.push("ellipsis-start");for(let e=a;e<=r;e++)t.push(e);return r<s-1&&t.push("ellipsis-end"),t.push(s),t})().map(a=>"string"==typeof a?(0,t.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},a):(0,t.jsx)("button",{onClick:()=>i(a),className:`min-w-[2.5rem] px-3 py-2 text-sm rounded-md transition-colors ${e===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,"aria-label":`Page ${a}`,"aria-current":e===a?"page":void 0,children:a},a))}),(0,t.jsxs)("button",{onClick:()=>i(e+1),disabled:e===s,className:l(e===s),"aria-label":"Next page",children:[(0,t.jsx)("span",{className:"hidden sm:inline",children:"Next"}),(0,t.jsx)(r.ChevronRight,{className:"w-4 h-4"})]})]})}])},34713,e=>{"use strict";e.s(["formatDuration",0,function(e){if(e<1e3)return`${e}ms`;let t=Math.round(e/100);if(t<600)return`${(t/10).toFixed(1)}s`;let a=Math.round(e/1e3);if(a<3600){let e=Math.floor(a/60);return`${e}m ${a%60}s`}let r=Math.round(e/6e4),s=Math.floor(r/60);return`${s}h ${r%60}m`},"formatRelativeTime",0,function(e){let t=Date.now()-e;return t<6e4?`${Math.max(1,Math.floor(t/1e3))}s ago`:t<36e5?`${Math.floor(t/6e4)}m ago`:t<864e5?`${Math.floor(t/36e5)}h ago`:`${Math.floor(t/864e5)}d ago`}])},24071,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",0,t],24071)},67927,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],67927)},66794,e=>{"use strict";let t=(0,e.i(56420).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Settings",0,t],66794)},16306,e=>{"use strict";let t=(0,e.i(56420).default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);e.s(["ShieldAlert",0,t],16306)},84026,29407,e=>{"use strict";var t=e.i(56420);let a=(0,t.default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["ShieldCheck",0,a],84026);let r=(0,t.default)("shield-x",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]);e.s(["ShieldX",0,r],29407)},82954,e=>{"use strict";let t=(0,e.i(56420).default)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);e.s(["Shield",0,t],82954)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,86616,29054,t=>{"use strict";function e(t,r={},i=15e3){let o=AbortSignal.timeout(i),n=r.signal?AbortSignal.any([r.signal,o]):o;return fetch(t,{...r,signal:n})}function r(t){if(null===t||"object"!=typeof t)return!1;let e=t.name;return"AbortError"===e||"TimeoutError"===e}t.s(["fetchWithTimeout",0,e,"isAbortError",0,r],29054);class i extends Error{kind;constructor(t,e){super(e),this.kind=t,this.name="RerunError"}}async function o(t){try{let r=await e("/api/audit/run",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({cli:t.cli.length>0?t.cli:void 0,since:"all"===t.since?void 0:t.since,noCache:!!t.noCache||void 0})});if(!r.ok&&409!==r.status){let t=await r.text().catch(()=>"");throw console.error("audit run failed:",r.status,t),new i("post_failed",`audit run failed (${r.status})`)}}catch(t){if(t instanceof i)throw t;throw console.error("audit run request failed:",t),new i(r(t)?"timeout":"network","audit run request failed")}let o=0;for(;;){await new Promise(t=>setTimeout(t,1e3));let t=null;try{let r=await e("/api/audit/status",{cache:"no-store"});r.ok&&(t=await r.json())}catch{}if(null===t){if(++o>=10)throw new i("network","audit status poll lost the server");continue}if(o=0,!t.running){if(t.error)throw new i("post_failed",t.error);return}}}t.s(["RerunError",0,i,"triggerRun",0,o],86616)},17571,t=>{t.v(e=>Promise.all(["static/chunks/3zkg2s2vzxc3d.js"].map(e=>t.l(e))).then(()=>e(66459)))}]);
@@ -1,6 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,64245,e=>{"use strict";var t=e.i(43476),s=e.i(71645),r=e.i(74080),n=e.i(22016),o=e.i(89664),l=e.i(16327),a=e.i(56420);let i=(0,a.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);var c=e.i(8734),d=e.i(66794),m=e.i(82954),u=e.i(16306),x=e.i(84026),p=e.i(29407);let h=(0,a.default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var b=e.i(63676),f=e.i(73520),g=e.i(95187);let v=(0,g.createServerReference)("400e32aa5f42389c9fcdbec27a17ff0dd08541c2c1",g.callServer,void 0,g.findSourceMapURL,"getHookActivityAction");var j=e.i(28101);let y=(0,g.createServerReference)("00bdcc2c60681317d1d2e47e06e6035b6db5511191",g.callServer,void 0,g.findSourceMapURL,"getActivePausesAction");function N({pauses:e,now:r}){let[n,o]=(0,s.useState)(()=>Date.now());(0,s.useEffect)(()=>{let e=setInterval(()=>o(Date.now()),3e4);return()=>clearInterval(e)},[]);let l=r??n,a=e.filter(e=>e.expiresAt>l);if(0===a.length)return null;let i=a.reduce((e,t)=>e.expiresAt<t.expiresAt?e:t);return(0,t.jsxs)("div",{role:"status",className:"mb-4 flex items-start gap-2.5 rounded border border-amber-500/40 bg-amber-500/[0.07] px-3 py-2.5",children:[(0,t.jsx)(u.ShieldAlert,{className:"h-4 w-4 shrink-0 text-amber-500 mt-0.5","aria-hidden":"true"}),(0,t.jsxs)("div",{className:"text-xs leading-relaxed",children:[(0,t.jsxs)("p",{className:"font-medium text-foreground",children:["Enforcement is paused for ",a.length," session",1===a.length?"":"s"," —"," ",function(e){if(e<=0)return"expiring now";if(e<6e4)return"under a minute";let t=Math.round(e/6e4);if(t<60)return`${t}m`;let s=Math.floor(t/60),r=t%60;return 0===r?`${s}h`:`${s}h${r}m`}(i.expiresAt-l)," left",a.length>1?" on the next to expire":"","."]}),(0,t.jsxs)("p",{className:"text-muted-foreground mt-0.5",children:["Builtin, custom and convention policies are suspended for"," ",1===a.length?"that session":"those sessions","; cloud-managed policies keep enforcing. It lifts on its own — or run"," ",(0,t.jsx)("span",{className:"font-mono text-foreground",children:"failproofai config --resume"}),"."]})]})]})}function k(){return(0,t.jsx)("span",{title:"Enforcement was paused for this session — local policies did not run",className:"ml-1.5 inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium uppercase tracking-wide border border-amber-500/40 bg-amber-500/10 text-amber-600 dark:text-amber-500",children:"paused"})}function S({item:e}){if(!e.pausedBy)return null;let s="number"==typeof e.pauseExpiresAt?new Date(e.pauseExpiresAt).toLocaleTimeString():null;return(0,t.jsxs)("div",{className:"sm:col-span-2 lg:col-span-3 mt-1 flex items-start gap-2 rounded border border-amber-500/30 bg-amber-500/5 px-2.5 py-2",children:[(0,t.jsx)(h,{className:"h-3.5 w-3.5 shrink-0 text-amber-500/80 mt-0.5","aria-hidden":"true"}),(0,t.jsxs)("p",{className:"text-[0.7rem] leading-relaxed text-muted-foreground",children:[(0,t.jsx)("span",{className:"font-medium text-foreground",children:"Not enforced — paused."})," Enforcement was suspended for this session","cli"===e.pausedBy?" from the CLI":` by ${e.pausedBy}`,s?`, lifting at ${s}`:"",". Builtin, custom and convention policies did not run for this event; cloud-managed policies did."]})]})}let w=(0,g.createServerReference)("003fb7f76134d3c1519d06421257705950a1f0f132",g.callServer,void 0,g.findSourceMapURL,"getHooksConfigAction"),P=(0,g.createServerReference)("6097813734725ca43bc8c4a422546faba9aeddc1f3",g.callServer,void 0,g.findSourceMapURL,"toggleCustomPolicyAction"),C=(0,g.createServerReference)("60a1dd4cfe2cebb03552ba21838505e7e8941bf985",g.callServer,void 0,g.findSourceMapURL,"togglePolicyAction"),_=(0,g.createServerReference)("603656977396c4f31c8de8fe88dd205e85588e6080",g.callServer,void 0,g.findSourceMapURL,"installHooksWebAction"),T=(0,g.createServerReference)("607b4c80e1d824eb21155eca02ac16a3eab7ff5307",g.callServer,void 0,g.findSourceMapURL,"removeHooksWebAction"),U=(0,g.createServerReference)("60f682117b5e7243ad2deae9b5bd7963dc360e5e0f",g.callServer,void 0,g.findSourceMapURL,"updatePolicyParamsAction");var I=e.i(85881),E=e.i(12344),R=e.i(80060),$=e.i(2711),A=e.i(24578);let L={claude:{PreToolUse:"block",UserPromptSubmit:"block",PermissionRequest:"block",Stop:"block",SubagentStop:"block",PreCompact:"block",PostToolBatch:"block",ConfigChange:"block",UserPromptExpansion:"block",TaskCreated:"block",TaskCompleted:"block",TeammateIdle:"block",Elicitation:"block",ElicitationResult:"block",PostToolUse:"observe",PostToolUseFailure:"observe",SessionStart:"observe",Setup:"observe",SubagentStart:"observe",SessionEnd:"observe",StopFailure:"observe",PermissionDenied:"observe",Notification:"observe",InstructionsLoaded:"observe",CwdChanged:"observe",FileChanged:"observe",PostCompact:"observe",WorktreeRemove:"observe"},codex:{PreToolUse:"block",PermissionRequest:"block",UserPromptSubmit:"block",Stop:"block",SubagentStop:"block",PostToolUse:"block",SessionStart:"observe",SubagentStart:"observe",PreCompact:"observe",PostCompact:"observe"},copilot:{PreToolUse:"block",Stop:"block",SubagentStop:"block",UserPromptSubmit:"block",PermissionRequest:"block",PostToolUse:"block",SessionStart:"observe",SessionEnd:"observe",PostToolUseFailure:"observe",PreCompact:"observe",Notification:"observe"},cursor:{PreToolUse:"block",Stop:"block",UserPromptSubmit:"block",PostToolUse:"observe",SessionStart:"observe",SessionEnd:"observe"},opencode:{PreToolUse:"block",PostToolUse:"observe",SessionStart:"observe",SessionEnd:"observe",UserPromptSubmit:"observe",PermissionRequest:"observe"},pi:{PreToolUse:"block",UserPromptSubmit:"block",PostToolUse:"observe",SessionStart:"observe",SessionEnd:"observe",Stop:"observe"},hermes:{PreToolUse:"block",PostToolUse:"observe",SubagentStop:"observe",SessionStart:"observe",SessionEnd:"observe"},openclaw:{PreToolUse:"block",UserPromptSubmit:"block",Stop:"block",PostToolUse:"observe",SessionStart:"observe",SessionEnd:"observe",SubagentStop:"observe",PreCompact:"observe"},factory:{PreToolUse:"block",UserPromptSubmit:"block",Stop:"block",PreCompact:"block",PostToolUse:"observe",SubagentStop:"observe",SessionStart:"observe",SessionEnd:"observe",Notification:"observe"},devin:{PreToolUse:"block",UserPromptSubmit:"block",Stop:"block",PermissionRequest:"block",PostToolUse:"observe",SessionStart:"observe",SessionEnd:"observe"},antigravity:{PreToolUse:"block",Stop:"block",PostToolUse:"observe",UserPromptSubmit:"observe"},goose:{PreToolUse:"block",UserPromptSubmit:"observe",PostToolUse:"observe",SessionStart:"observe",SessionEnd:"observe"}};var F=e.i(34713),D=e.i(67881);function B({sessionId:e,transcriptPath:s,integration:r,cwd:o}){if(!e)return(0,t.jsx)("span",{className:"text-muted-foreground",children:"\\u2014"});let l=e?e.slice(0,8):"—",a="codex"===r||(s?.includes("/.codex/")??!1),i="copilot"===r||(s?.includes("/.copilot/session-state/")??!1),c="cursor"===r||(s?.includes("/.cursor/")??!1),d="opencode"===r||(s?.includes("/.local/share/opencode/")??!1)||(s?.includes("/.opencode/")??!1),m="pi"===r||(s?.includes("/.pi/")??!1);if(a||i||c||d||m){let s,r=o?(s=/^([A-Za-z]):[\\/](.*)$/.exec(o))?s[1]+"--"+s[2].replace(/[\\/]/g,"-"):o.replace(/[\\/]/g,"-"):a?"codex":i?"copilot":c?"cursor":d?"opencode":"pi";return(0,t.jsx)(n.default,{href:`/project/${encodeURIComponent(r)}/session/${encodeURIComponent(e)}`,className:"text-primary hover:underline font-mono",onClick:e=>e.stopPropagation(),children:l})}let u=s?function(e){let t=e.replace(/\\/g,"/").split("/").filter(Boolean);if(t.length<2)return null;let s=t[t.length-2];return!s||s.startsWith(".")?null:s}(s):null;return u?(0,t.jsx)(n.default,{href:`/project/${encodeURIComponent(u)}/session/${encodeURIComponent(e)}`,className:"text-primary hover:underline font-mono",onClick:e=>e.stopPropagation(),children:l}):(0,t.jsx)("span",{className:"text-muted-foreground font-mono",children:l})}function z({decision:e}){return"deny"===e?(0,t.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,t.jsx)(p.ShieldX,{className:"h-3 w-3"}),"Deny"]}):"instruct"===e?(0,t.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,t.jsx)(u.ShieldAlert,{className:"h-3 w-3"}),"Instruct"]}):(0,t.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,t.jsx)(x.ShieldCheck,{className:"h-3 w-3"}),"Allow"]})}function M({eventType:e}){return(0,t.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 O({integration:e}){if(!e)return null;let s=(0,A.getCliLabel)(e),r=(0,A.getCliBadgeClasses)(e);return(0,t.jsx)("span",{className:`inline-flex items-center rounded px-1.5 py-0.5 text-[0.6rem] font-medium border ${r}`,title:`Agent CLI: ${s}`,children:s})}function W({mode:e}){let s="default"===e;return(0,t.jsx)("span",{title:e,className:`inline-block max-w-full truncate rounded px-1.5 py-0.5 align-middle text-[0.6rem] font-medium border ${s?"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 H({ms:e}){return(0,t.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 q({text:e,field:r}){let[n,l]=(0,s.useState)(!1),{capture:a}=(0,E.usePostHog)(),i=async t=>{t.stopPropagation(),a("activity_copy_clicked",{field:r??"unknown"});try{await navigator.clipboard.writeText(e),l(!0),setTimeout(()=>l(!1),1500)}catch{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),l(!0),setTimeout(()=>l(!1),1500)}};return(0,t.jsx)("button",{onClick:i,className:"inline-flex items-center justify-center h-5 w-5 rounded hover:bg-muted/50 text-muted-foreground hover:text-foreground transition-colors",title:"Copy",children:n?(0,t.jsx)(o.Check,{className:"h-3 w-3 text-emerald-400"}):(0,t.jsx)(c.Copy,{className:"h-3 w-3"})})}function X({value:e,onChange:s}){return(0,t.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,t.jsx)("button",{onClick:()=>s(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 K({stats:e}){let s=e.totalEvents>0?e.denyCount/e.totalEvents*100:0,r=s.toFixed(s>=10?0:1),n=0===e.denyCount?"":s>=5?" is-deny":s>=2?" is-warn":"";return(0,t.jsxs)("div",{className:"stat-bar",role:"group","aria-label":"Activity stats",children:[(0,t.jsxs)("div",{className:"stat-cell",children:[(0,t.jsx)("span",{className:"eyebrow",children:"total events"}),(0,t.jsx)("span",{className:"value",children:e.totalEvents.toLocaleString()}),(0,t.jsx)("span",{className:"meta",children:"across all installed agents"})]}),(0,t.jsxs)("div",{className:"stat-cell",children:[(0,t.jsx)("span",{className:"eyebrow",children:"deny rate"}),(0,t.jsxs)("span",{className:`value${n}`,children:[r,"%"]}),(0,t.jsxs)("span",{className:"meta",children:[e.denyCount.toLocaleString()," of ",e.totalEvents.toLocaleString()," denied"]})]}),(0,t.jsxs)("div",{className:"stat-cell",children:[(0,t.jsx)("span",{className:"eyebrow",children:"top policy"}),(0,t.jsx)("span",{className:"value",style:{fontSize:16,fontWeight:500,color:e.topPolicy?"var(--accent-pink)":"var(--dim)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},title:e.topPolicy??void 0,children:e.topPolicy??"—"}),(0,t.jsx)("span",{className:"meta",children:"most-evaluated policy in scope"})]})]})}function J({item:e}){if("observe"!==function(e,t){if(!e||!t)return;let s=L[e];if(s)return s[t]}(e.integration,e.eventType))return null;let s=e.matchedPolicies??[];if(0===s.length)return null;let r=e.integration?(0,A.getCliLabel)(e.integration):"This CLI",n=s.map(e=>e.replace(/^(custom|\.failproofai-(project|user))\//,"")),o=1===n.length?n[0]:`${n.length} policies`,l="deny"===e.decision;return(0,t.jsxs)("div",{className:"sm:col-span-2 lg:col-span-3 mt-1 flex items-start gap-2 rounded border border-amber-500/30 bg-amber-500/5 px-2.5 py-2",children:[(0,t.jsx)(h,{className:"h-3.5 w-3.5 shrink-0 text-amber-500/80 mt-0.5","aria-hidden":"true"}),(0,t.jsxs)("p",{className:"text-[0.7rem] leading-relaxed text-muted-foreground",children:[(0,t.jsx)("span",{className:"font-medium text-foreground",children:l?"Not enforced.":"Ran, but cannot enforce here."})," ",(0,t.jsx)("span",{className:"font-mono",children:o})," ran on"," ",(0,t.jsx)("span",{className:"font-mono",children:e.eventType}),", but ",r," discards hook verdicts for this event",l?" — the action went ahead anyway.":", so a policy cannot block here."," ","Move the check to an event ",r," enforces on, such as"," ",(0,t.jsx)("span",{className:"font-mono",children:"PreToolUse"}),"."]})]})}function V({item:e}){return(0,t.jsx)("tr",{children:(0,t.jsx)("td",{colSpan:11,className:"px-0 py-0",children:(0,t.jsxs)("div",{className:"activity-detail animate-expand text-xs",children:[(0,t.jsxs)("span",{className:"activity-detail-eyebrow",children:[(0,t.jsx)("span",{"aria-hidden":"true",children:"▾"}),"event detail"]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-2",children:[(0,t.jsx)(S,{item:e}),(0,t.jsx)(J,{item:e}),e.policySource&&(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Decided by: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:"cloud"===e.policySource&&e.cloudPolicyId?`cloud \xb7 ${e.cloudPolicyId} version ${e.cloudVersion}`:e.policySource})]}),void 0!==e.cloudDeployment&&(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Cloud deployment: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.cloudDeployment})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Session ID: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.sessionId??"—"}),e.sessionId&&(0,t.jsx)(q,{text:e.sessionId,field:"session_id"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"CWD: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.cwd??"—"}),e.cwd&&(0,t.jsx)(q,{text:e.cwd,field:"cwd"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Transcript: "}),(0,t.jsx)("span",{className:"font-mono text-foreground break-all",children:e.transcriptPath??"—"}),e.transcriptPath?.startsWith("opencode-db://")&&(0,t.jsx)("span",{className:"text-muted-foreground ml-1",children:"(stored in opencode DB)"})]})]}),e.policyNames&&e.policyNames.length>1&&(0,t.jsxs)("div",{style:{marginTop:8},children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Policies: "}),(0,t.jsx)("span",{className:"font-mono text-foreground",children:e.policyNames.join(", ")})]}),e.reason&&(0,t.jsxs)("div",{style:{marginTop:8},children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:"Full reason: "}),(0,t.jsx)("span",{className:"text-foreground",children:e.reason})]})]})})})}function G({hooksInstalled:e,onSwitchTab:r}){let{intervalSec:n}=(0,I.useAutoRefresh)(),{capture:o}=(0,E.usePostHog)(),a=(0,R.useUrlParams)(),i=(0,s.useRef)(!1),[c,d]=(0,s.useState)(()=>(0,$.paramToPage)(a.get("page"))),[u,x]=(0,s.useState)(null),[p,h]=(0,s.useState)([]),[b,g]=(0,s.useState)(null),[S,w]=(0,s.useState)(()=>{let e=a.get("decision");return"allow"===e||"deny"===e||"instruct"===e?e:""}),[P,C]=(0,s.useState)(()=>a.get("event")??""),[_,T]=(0,s.useState)(()=>a.get("policy")??""),[U,L]=(0,s.useState)(()=>a.get("session")??""),[D,q]=(0,s.useState)(()=>{let e=a.get("cli");return(0,A.isKnownCli)(e)?e:""}),[J,Z]=(0,s.useState)(()=>{let e=a.get("source");return"builtin"===e||"custom"===e||"convention"===e||"cloud"===e?e:""}),Q=(0,s.useRef)(null),Y=(0,s.useRef)(!0),ee=(0,s.useRef)({filterDecision:S,filterEventType:P,filterPolicy:_,filterSessionId:U,filterCli:D,filterSource:J});ee.current={filterDecision:S,filterEventType:P,filterPolicy:_,filterSessionId:U,filterCli:D,filterSource:J},(0,s.useEffect)(()=>{if(!i.current){i.current=!0;return}a.setAll({decision:S||void 0,event:P||void 0,policy:_||void 0,session:U||void 0,cli:D||void 0,source:J||void 0,page:(0,$.pageToParam)(c)})},[S,P,_,U,D,J,c]);let et=""!==S||""!==P||""!==_||""!==U||""!==D||""!==J,es=(0,s.useCallback)(async e=>{try{let t,{filterDecision:s,filterEventType:r,filterPolicy:n,filterSessionId:o,filterCli:l,filterSource:a}=ee.current;t=""!==s||""!==r||""!==n||""!==o||""!==l||""!==a?await (0,j.searchHookActivityAction)({decision:s||void 0,eventType:r||void 0,policyName:n||void 0,sessionId:o||void 0,integration:l||void 0,source:a||void 0},e):await v(e),x(t)}catch{}},[]);(0,s.useEffect)(()=>{es(c);let e=setInterval(()=>es(c),n>0?1e3*n:5e3);return()=>clearInterval(e)},[c,es,n]),(0,s.useEffect)(()=>{let e=!1,t=()=>{y().then(t=>{e||h(t)}).catch(()=>{})};t();let s=setInterval(t,n>0?1e3*n:5e3);return()=>{e=!0,clearInterval(s)}},[n]),(0,s.useEffect)(()=>(Q.current&&clearTimeout(Q.current),Q.current=setTimeout(()=>{if(d(1),g(null),es(1),Y.current){Y.current=!1;return}o("activity_filter_changed",{active_filter_count:+(""!==S)+ +(""!==P)+ +(""!==_)+ +(""!==U)+ +(""!==D),has_decision:""!==S,has_event_type:""!==P,has_policy:""!==_,has_session:""!==U,has_cli:""!==D,decision:S||null,event_type:P||null,cli:D||null})},300),()=>{Q.current&&clearTimeout(Q.current)}),[S,P,_,U,D]);let er=u?.entries??[],en=u?.totalPages??1;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(N,{pauses:p}),u?.stats&&u.stats.totalEvents>0&&(0,t.jsx)("div",{style:{marginBottom:18},children:(0,t.jsx)(K,{stats:u.stats})}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"filter-bar",children:[(0,t.jsxs)("div",{className:"filter-group",children:[(0,t.jsx)("span",{className:"filter-label",children:"decision"}),(0,t.jsx)(X,{value:S,onChange:w})]}),(0,t.jsxs)("div",{className:"filter-group",children:[(0,t.jsx)("span",{className:"filter-label",children:"event"}),(0,t.jsxs)("select",{value:P,onChange:e=>C(e.target.value),className:"filter-input",children:[(0,t.jsx)("option",{value:"",children:"all events"}),(0,t.jsx)("option",{value:"PreToolUse",children:"PreToolUse"}),(0,t.jsx)("option",{value:"PostToolUse",children:"PostToolUse"}),(0,t.jsx)("option",{value:"SessionStart",children:"SessionStart"}),(0,t.jsx)("option",{value:"SessionEnd",children:"SessionEnd"}),(0,t.jsx)("option",{value:"UserPromptSubmit",children:"UserPromptSubmit"}),(0,t.jsx)("option",{value:"PermissionRequest",children:"PermissionRequest"})]})]}),(0,t.jsxs)("div",{className:"filter-group",children:[(0,t.jsx)("span",{className:"filter-label",children:"source"}),(0,t.jsxs)("select",{value:J,onChange:e=>{let t=e.target.value;Z("builtin"===t||"custom"===t||"convention"===t||"cloud"===t?t:"")},className:"filter-input","aria-label":"Filter by policy source",children:[(0,t.jsx)("option",{value:"",children:"all sources"}),(0,t.jsx)("option",{value:"builtin",children:"builtin"}),(0,t.jsx)("option",{value:"custom",children:"custom"}),(0,t.jsx)("option",{value:"convention",children:"convention"}),(0,t.jsx)("option",{value:"cloud",children:"cloud"})]})]}),(0,t.jsxs)("div",{className:"filter-group",children:[(0,t.jsx)("span",{className:"filter-label",children:"cli"}),(0,t.jsxs)("select",{value:D,onChange:e=>{let t=e.target.value;q(""===t||(0,A.isKnownCli)(t)?t:"")},className:"filter-input","aria-label":"Filter by CLI",children:[(0,t.jsx)("option",{value:"",children:"all clis"}),A.KNOWN_CLI_IDS.map(e=>(0,t.jsx)("option",{value:e,children:(0,A.getCliLabel)(e)},e))]})]}),(0,t.jsxs)("div",{className:"filter-group filter-group--grow",children:[(0,t.jsx)("span",{className:"filter-label",children:"policy"}),(0,t.jsx)("input",{type:"text",value:_,onChange:e=>T(e.target.value),placeholder:"filter by policy…",className:"filter-input"})]}),(0,t.jsxs)("div",{className:"filter-group filter-group--grow",children:[(0,t.jsx)("span",{className:"filter-label",children:"session"}),(0,t.jsx)("input",{type:"text",value:U,onChange:e=>L(e.target.value),placeholder:"filter by session…",className:"filter-input"})]}),et&&(0,t.jsx)("button",{type:"button",className:"filter-clear",onClick:()=>{w(""),C(""),q(""),T(""),L(""),Z("")},"aria-label":"Clear all filters",children:"[ clear ]"})]}),0===er.length?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[(0,t.jsx)(m.Shield,{className:"h-12 w-12 text-muted-foreground/30"}),!1===e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-4 font-medium",children:"Policies are not installed"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground mt-1 max-w-sm",children:["Go to the"," ",(0,t.jsx)("button",{className:"underline hover:text-foreground transition-colors",onClick:()=>r?.("policies"),children:"Policies tab"})," ","and click ",(0,t.jsx)("span",{className:"font-mono bg-muted px-1 rounded",children:"Install"})," to enable policy monitoring."]})]}):(0,t.jsx)("p",{className:"text-sm text-muted-foreground mt-4",children:et?"No matching activity.":"Waiting for hook events…"})]}):(0,t.jsx)("div",{className:"overflow-x-auto activity-table-wrap",children:(0,t.jsxs)("table",{className:"w-full text-xs activity-table",style:{tableLayout:"fixed"},children:[(0,t.jsxs)("colgroup",{children:[(0,t.jsx)("col",{style:{width:32}}),(0,t.jsx)("col",{style:{width:"7%"}}),(0,t.jsx)("col",{style:{width:"9%"}}),(0,t.jsx)("col",{style:{width:"12%"}}),(0,t.jsx)("col",{style:{width:"11%"}}),(0,t.jsx)("col",{style:{width:"9%"}}),(0,t.jsx)("col",{style:{width:"13%"}}),(0,t.jsx)("col",{style:{width:"12%"}}),(0,t.jsx)("col",{style:{width:"11%"}}),(0,t.jsx)("col",{style:{width:"8%"}}),(0,t.jsx)("col",{style:{width:"8%"}})]}),(0,t.jsx)("thead",{className:"activity-thead",children:(0,t.jsxs)("tr",{children:[(0,t.jsx)("th",{className:"px-4 py-3"}),(0,t.jsx)("th",{className:"px-3 py-3 activity-th",children:"Time"}),(0,t.jsx)("th",{className:"px-3 py-3 activity-th",children:"Decision"}),(0,t.jsx)("th",{className:"px-3 py-3 activity-th",children:"Event"}),(0,t.jsx)("th",{className:"px-3 py-3 activity-th",children:"CLI"}),(0,t.jsx)("th",{className:"px-3 py-3 activity-th",children:"Tool"}),(0,t.jsx)("th",{className:"px-3 py-3 activity-th",children:"Policy"}),(0,t.jsx)("th",{className:"px-3 py-3 activity-th",children:"Reason"}),(0,t.jsx)("th",{className:"px-3 py-3 activity-th",children:"Mode"}),(0,t.jsx)("th",{className:"px-3 py-3 activity-th",children:"Duration"}),(0,t.jsx)("th",{className:"px-3 py-3 activity-th",children:"Session"})]})}),(0,t.jsx)("tbody",{className:"divide-y divide-border/30",children:er.map((e,r)=>{let n="deny"===e.decision,a=b===r,i="instruct"===e.decision;return(0,t.jsxs)(s.Fragment,{children:[(0,t.jsxs)("tr",{onClick:()=>{g(e=>{let t=e===r?null:r,s=er[r];return o("activity_row_toggled",{expanded:null!==t,decision:s?.decision??null,policy_name:s?.policyName??null,event_type:s?.eventType??null}),t})},className:`activity-data-row cursor-pointer transition-colors ${n?"bg-red-500/[0.03] hover:bg-red-500/[0.07] border-l-2 border-l-red-500/40":i?"bg-amber-500/[0.03] hover:bg-amber-500/[0.07] border-l-2 border-l-amber-500/40":r%2==0?"hover:bg-muted/30":"bg-muted/[0.04] hover:bg-muted/30"} ${a?"bg-muted/20":""}`,children:[(0,t.jsx)("td",{className:"px-4 py-2",children:(0,t.jsx)(l.ChevronDown,{className:`h-3.5 w-3.5 text-muted-foreground transition-transform duration-150 ${a?"rotate-0":"-rotate-90"}`})}),(0,t.jsx)("td",{className:"px-3 py-2 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,F.formatRelativeTime)(e.timestamp)}),(0,t.jsxs)("td",{className:"px-3 py-2",children:[(0,t.jsx)(z,{decision:e.decision}),e.pausedBy&&(0,t.jsx)(k,{})]}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(M,{eventType:e.eventType})}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(O,{integration:e.integration})}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.toolName??"—"}),(0,t.jsx)("td",{className:"px-3 py-2 font-mono text-foreground",children:e.policyNames&&e.policyNames.length>1?(0,t.jsxs)("span",{title:e.policyNames.join(", "),children:[e.policyNames[0],(0,t.jsxs)("span",{className:"text-muted-foreground text-[0.6rem]",children:[" +",e.policyNames.length-1]})]}):e.policyName??"—"}),(0,t.jsx)("td",{className:"px-3 py-2 text-muted-foreground truncate",title:e.reason??"",children:e.reason??"—"}),(0,t.jsx)("td",{className:"px-3 py-2",children:e.permissionMode?(0,t.jsx)(W,{mode:e.permissionMode}):"—"}),(0,t.jsx)("td",{className:"px-3 py-2",children:(0,t.jsx)(H,{ms:e.durationMs})}),(0,t.jsx)("td",{className:"px-3 py-2",title:e.sessionId??"",children:(0,t.jsx)(B,{sessionId:e.sessionId,transcriptPath:e.transcriptPath,integration:e.integration,cwd:e.cwd})})]}),a&&(0,t.jsx)(V,{item:e})]},`${e.timestamp}-${r}`)})})]})}),(0,t.jsx)(f.default,{currentPage:c,totalPages:en,onPageChange:e=>{o("activity_pagination_changed",{from_page:c,to_page:e,total_pages:en}),d(e),g(null)}})]})]})}function Z({enabled:e,onChange:s,disabled:r}){return(0,t.jsx)("button",{onClick:s,disabled:r,className:`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors disabled:opacity-40 ${e?"bg-emerald-500":"bg-muted-foreground/30"}`,"aria-label":e?"Disable policy":"Enable policy",children:(0,t.jsx)("span",{className:`inline-block h-3 w-3 rounded-full bg-white shadow transition-transform ${e?"translate-x-3.5":"translate-x-0.5"}`})})}function Q({policy:e,onClose:r,onSave:n}){let o=e.params??{},l=e.currentParams??{},[a,i]=(0,s.useState)(()=>{let e={};for(let[t,s]of Object.entries(o)){let r=t in l?l[t]:s.default;e[t]=r}return e});(0,s.useEffect)(()=>{let e=e=>{"Escape"===e.key&&r()};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[r]);let c=(e,t)=>{i(s=>({...s,[e]:t}))};return(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:e=>{e.target===e.currentTarget&&r()},children:(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg shadow-xl w-full max-w-lg mx-4 max-h-[80vh] flex flex-col",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm font-mono font-semibold text-foreground",children:e.name}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:e.description})]}),(0,t.jsx)("button",{onClick:r,className:"text-muted-foreground hover:text-foreground transition-colors",children:(0,t.jsx)(b.X,{className:"h-4 w-4"})})]}),(0,t.jsx)("div",{className:"overflow-y-auto flex-1 px-4 py-4 space-y-4",children:Object.entries(o).map(([e,s])=>(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"block text-xs font-semibold text-foreground mb-1 font-mono",children:e}),(0,t.jsx)("p",{className:"text-[0.65rem] text-muted-foreground mb-1.5",children:s.description}),((e,s)=>{let r=a[e];if("boolean"===s.type)return(0,t.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,t.jsx)("input",{type:"checkbox",checked:!!r,onChange:t=>c(e,t.target.checked),className:"rounded border-border"}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:s.description})]});if("number"===s.type)return(0,t.jsx)("input",{type:"number",value:"number"==typeof r?r:"",onChange:t=>c(e,Number(t.target.value)),className:"w-full h-7 rounded border border-border bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-primary/40"});if("string[]"===s.type){let s=Array.isArray(r)?r.join("\n"):"";return(0,t.jsx)("textarea",{value:s,onChange:t=>c(e,t.target.value.split("\n").filter(e=>""!==e.trim())),rows:4,placeholder:"One entry per line",className:"w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground font-mono focus:outline-none focus:ring-2 focus:ring-primary/40 resize-y"})}if("pattern[]"===s.type){let s=Array.isArray(r)?r:[];return(0,t.jsxs)("div",{className:"space-y-1.5",children:[s.map((r,n)=>(0,t.jsxs)("div",{className:"flex gap-1.5 items-center",children:[(0,t.jsx)("input",{type:"text",value:r.regex,onChange:t=>{let r=[...s];r[n]={...r[n],regex:t.target.value},c(e,r)},placeholder:"regex",className:"flex-1 h-6 rounded border border-border bg-background px-2 text-xs font-mono focus:outline-none focus:ring-2 focus:ring-primary/40"}),(0,t.jsx)("input",{type:"text",value:r.label,onChange:t=>{let r=[...s];r[n]={...r[n],label:t.target.value},c(e,r)},placeholder:"label",className:"flex-1 h-6 rounded border border-border bg-background px-2 text-xs focus:outline-none focus:ring-2 focus:ring-primary/40"}),(0,t.jsx)("button",{onClick:()=>c(e,s.filter((e,t)=>t!==n)),className:"text-muted-foreground/50 hover:text-destructive transition-colors",children:(0,t.jsx)(b.X,{className:"h-3.5 w-3.5"})})]},n)),(0,t.jsx)("button",{onClick:()=>c(e,[...s,{regex:"",label:""}]),className:"text-xs text-primary hover:underline",children:"+ Add pattern"})]})}return(0,t.jsx)("input",{type:"text",value:"string"==typeof r?r:"",onChange:t=>c(e,t.target.value),className:"w-full h-7 rounded border border-border bg-background px-2 text-xs text-foreground focus:outline-none focus:ring-2 focus:ring-primary/40"})})(e,s)]},e))}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 px-4 py-3 border-t border-border",children:[(0,t.jsx)(D.Button,{variant:"outline",size:"sm",onClick:r,className:"h-7 text-xs",children:"Cancel"}),(0,t.jsx)(D.Button,{size:"sm",onClick:()=>n(a),className:"h-7 text-xs",children:"Save"})]})]})})}function Y({message:e,onDismiss:s,onInstall:n,isPending:o}){let{capture:l}=(0,E.usePostHog)();return(0,r.createPortal)((0,t.jsxs)("div",{className:"fixed top-4 right-4 z-[9999] w-full max-w-sm",style:{animation:"slideInFromRight 0.25s ease-out"},children:[(0,t.jsx)("style",{children:`
2
- @keyframes slideInFromRight {
3
- from { transform: translateX(calc(100% + 1rem)); opacity: 0; }
4
- to { transform: translateX(0); opacity: 1; }
5
- }
6
- `}),(0,t.jsxs)("div",{className:"rounded-lg border border-red-500/40 bg-red-950/95 shadow-2xl shadow-red-900/40 overflow-hidden backdrop-blur-sm",children:[(0,t.jsx)("div",{className:"h-0.5 w-full bg-gradient-to-r from-red-600 via-red-400 to-red-600"}),(0,t.jsxs)("div",{className:"p-4",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"shrink-0 mt-0.5 flex h-5 w-5 items-center justify-center rounded-full bg-red-500 ring-2 ring-red-500/30",children:(0,t.jsx)(b.X,{className:"h-3 w-3 text-white",strokeWidth:3})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("p",{className:"text-[0.65rem] font-bold uppercase tracking-widest text-red-400 mb-0.5",children:"Error"}),(0,t.jsx)("p",{className:"text-sm text-red-100 leading-snug",children:e})]}),(0,t.jsx)("button",{onClick:s,className:"shrink-0 -mt-0.5 -mr-0.5 rounded p-0.5 text-red-400/60 transition-colors hover:bg-red-500/20 hover:text-red-200","aria-label":"Dismiss",children:(0,t.jsx)(b.X,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"mt-3 flex gap-2",children:[(0,t.jsx)(D.Button,{size:"sm",onClick:()=>{l("hooks_install_from_error_clicked",{error_message:e.slice(0,200)}),s(),n()},disabled:o,className:"h-7 flex-1 border-0 bg-red-500 px-3 text-xs font-semibold text-white hover:bg-red-400 disabled:opacity-50",children:"Install hooks"}),(0,t.jsx)(D.Button,{variant:"ghost",size:"sm",onClick:s,className:"h-7 px-3 text-xs text-red-400 hover:bg-red-500/10 hover:text-red-200",children:"Dismiss"})]})]})]})]}),document.body)}function ee({onHooksInstallChange:e}){let[r,n]=(0,s.useState)(null),[o,l]=(0,s.useTransition)(),[a,c]=(0,s.useState)(null),[u,x]=(0,s.useState)(null),[p,h]=(0,s.useState)(null),[b,f]=(0,s.useState)(()=>new Set),g=(0,s.useRef)(!1),{capture:v}=(0,E.usePostHog)(),j=(0,s.useCallback)((e,t)=>{v("action_error_displayed",{error_type:e,error_message:t.slice(0,200)}),c(t)},[v]),y=(0,s.useCallback)(async()=>{try{let t=await w();n(t),e?.(t.clis.some(e=>e.installed))}catch{}},[e]);(0,s.useEffect)(()=>{y()},[y]),(0,s.useEffect)(()=>{r&&(g.current?f(new Set(r.clis.filter(e=>e.installed).map(e=>e.id))):(g.current=!0,f(new Set(r.clis.filter(e=>e.installed||e.detected).map(e=>e.id)))))},[r?.clis]);let N=(0,s.useMemo)(()=>new Set((r?.clis??[]).filter(e=>e.installed).map(e=>e.id)),[r?.clis]),k=(0,s.useMemo)(()=>{let e=[],t=[];for(let s of r?.clis??[]){let r=b.has(s.id);r&&!N.has(s.id)&&e.push(s.id),!r&&N.has(s.id)&&t.push(s.id)}return{toInstall:e,toRemove:t}},[r?.clis,b,N]),S=k.toInstall.length>0||k.toRemove.length>0,I=(e,t)=>{r&&(n(s=>s?{...s,customPolicies:s.customPolicies?.map(s=>s.id===e?{...s,enabled:!t}:s),conventionPolicies:s.conventionPolicies.map(s=>({...s,policies:s.policies.map(s=>s.id===e?{...s,enabled:!t}:s)}))}:s),l(async()=>{try{await P(e,!t)}catch{j("custom_policy_toggle","Failed to save custom policy change."),y()}}))},R=()=>{let{toInstall:e,toRemove:t}=k;(0!==e.length||0!==t.length)&&(v("cli_install_remove_submitted",{to_install:e,to_remove:t,count_install:e.length,count_remove:t.length}),l(async()=>{try{c(null),e.length>0&&await _("user",e),t.length>0&&await T("user",t)}catch(e){j("cli_apply",e instanceof Error?e.message:"Failed to apply changes.")}finally{await y()}}))};if(!r)return(0,t.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,t.jsxs)("span",{className:"text-sm text-muted-foreground",children:["Loading","…"]})});let $=r.clis.some(e=>e.installed),L=N.size,F=b.size,B=Array.from(new Set(r.policies.map(e=>e.category)));return(0,t.jsxs)(t.Fragment,{children:[p&&(0,t.jsx)(Q,{policy:p,onClose:()=>{v("policy_config_modal_closed",{policy_name:p.name,action:"cancel"}),h(null)},onSave:e=>{if(!p)return;let t=p.name;h(null),l(async()=>{try{c(null),await U(t,e),await y()}catch(e){j("param_update",e instanceof Error?e.message:"Failed to save configuration.")}})}}),(0,t.jsxs)("div",{className:"bg-card border border-border rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 px-5 py-3.5 border-b border-border/60 bg-muted/10",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 min-w-0 flex-wrap",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:`h-2 w-2 rounded-full transition-shadow ${$?"bg-emerald-400 shadow-[0_0_8px_rgba(52,211,153,0.6)]":"bg-muted-foreground/40"}`,"aria-hidden":!0}),(0,t.jsx)("span",{className:"text-[0.65rem] uppercase tracking-[0.2em] font-mono text-foreground/90",children:"Integrations"})]}),(0,t.jsx)("span",{className:"text-[0.65rem] font-mono text-muted-foreground/40",children:"·"}),(0,t.jsxs)("div",{className:"text-[0.65rem] uppercase tracking-[0.2em] font-mono text-muted-foreground",children:[(0,t.jsx)("span",{className:"text-foreground tabular-nums",children:L.toString().padStart(2,"0")}),(0,t.jsxs)("span",{className:"opacity-50",children:[" / 0",r.clis.length," active"]})]}),S&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-[0.65rem] font-mono text-muted-foreground/40",children:"·"}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[0.65rem] uppercase tracking-[0.2em] font-mono text-pink-400",children:[(0,t.jsx)("span",{className:"h-1 w-1 rounded-full bg-pink-400 animate-pulse"}),k.toInstall.length+k.toRemove.length," pending"]})]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,t.jsx)(D.Button,{variant:"outline",size:"sm",onClick:()=>{let e=Array.from(N).filter(e=>b.has(e));0!==e.length&&(v("cli_reinstall_submitted",{cli_ids:e,count:e.length}),l(async()=>{try{c(null),await _("user",e)}catch(e){j("cli_reinstall",e instanceof Error?e.message:"Failed to reinstall.")}finally{await y()}}))},disabled:o||0===F,className:"text-xs h-7 px-3 font-mono",children:"Reinstall"}),(0,t.jsx)(D.Button,{variant:"default",size:"sm",onClick:R,disabled:o||!S,className:"text-xs h-7 px-3 font-mono",children:"Apply changes"})]})]}),(0,t.jsx)("div",{className:"divide-y divide-border/30 border-b border-border/60",children:r.clis.map((e,s)=>{let n=b.has(e.id),l=N.has(e.id),a=n!==l,i=(0,A.getCliBadgeClasses)(e.id),c=i.split(" ").find(e=>e.startsWith("text-"))??"text-foreground";return(0,t.jsxs)("label",{className:`group relative flex items-center gap-3 pl-6 pr-5 py-3 cursor-pointer transition-colors hover:bg-muted/15 ${a?"bg-pink-500/[0.04]":""}`,children:[(0,t.jsx)("div",{className:`absolute left-0 top-0 bottom-0 w-[3px] ${c} bg-current transition-opacity ${n?"opacity-100":"opacity-25 group-hover:opacity-60"}`,"aria-hidden":!0}),(0,t.jsx)("div",{className:"font-mono text-[0.65rem] text-muted-foreground/40 tabular-nums w-6 select-none",children:(s+1).toString().padStart(2,"0")}),(0,t.jsxs)("div",{className:"relative shrink-0",children:[(0,t.jsx)("input",{type:"checkbox",checked:n,onChange:()=>{var t;return t=e.id,void f(e=>{let s=new Set(e),n=!s.has(t);n?s.add(t):s.delete(t);let o=r?.clis.find(e=>e.id===t);return v("cli_selection_toggled",{cli_id:t,checked:n,current_state:o?.installed?"installed":o?.detected?"detected":"inactive"}),s})},disabled:o,className:"sr-only peer","aria-label":`Toggle ${e.label}`}),(0,t.jsx)("div",{className:`h-[18px] w-[18px] rounded-sm border transition-all peer-focus-visible:ring-2 peer-focus-visible:ring-primary/40 ${n?"bg-primary border-primary":"bg-background/50 border-border group-hover:border-foreground/40"}`,children:n&&(0,t.jsx)("svg",{viewBox:"0 0 18 18",className:"h-full w-full text-primary-foreground",fill:"none","aria-hidden":!0,children:(0,t.jsx)("path",{d:"M4 9.5L7.5 12.5L14 6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),(0,t.jsx)("div",{className:"min-w-[150px] shrink-0",children:(0,t.jsx)("div",{className:"text-sm font-medium text-foreground",children:e.label})}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[l?(0,t.jsxs)("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 rounded-sm text-[0.6rem] uppercase tracking-[0.15em] font-mono border ${i}`,children:[(0,t.jsx)("span",{className:"h-1 w-1 rounded-full bg-current shadow-[0_0_4px_currentColor]"}),"Active"]}):e.detected?(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2 py-0.5 rounded-sm text-[0.6rem] uppercase tracking-[0.15em] font-mono border border-border/60 text-muted-foreground/80 bg-muted/20",children:[(0,t.jsx)("span",{className:"h-1 w-1 rounded-full bg-current opacity-60"}),"Detected"]}):(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 rounded-sm text-[0.6rem] uppercase tracking-[0.15em] font-mono border border-border/30 text-muted-foreground/40",children:"Inactive"}),a&&(0,t.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 rounded-sm text-[0.6rem] uppercase tracking-[0.15em] font-mono border border-pink-500/40 text-pink-400 bg-pink-500/10",children:n?"+ install":"− remove"})]}),(0,t.jsx)("div",{className:"ml-auto hidden lg:block text-[0.7rem] font-mono text-muted-foreground/50 truncate max-w-[420px] group-hover:text-muted-foreground/80 transition-colors",title:e.settingsPath,children:e.settingsPath})]},e.id)})}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-border/40 bg-muted/5",children:[(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:r.enabledPolicies.length})," / ",r.policies.length+(r.customPolicies?.length??0)+(r.conventionPolicies?.reduce((e,t)=>e+t.policies.length,0)??0)," ","policies enabled"]}),$&&(0,t.jsxs)("span",{className:"text-[0.65rem] text-muted-foreground/60",children:["· shared across ",L," active CLI",1===L?"":"s"]})]}),a&&(0,t.jsx)("div",{className:"px-4 py-2 bg-red-500/10 border-b border-red-500/20 text-xs text-red-400",children:a}),u&&(0,t.jsx)(Y,{message:u,onDismiss:()=>x(null),onInstall:R,isPending:o}),B.map(e=>{let s=r.policies.filter(t=>t.category===e),a=s.filter(e=>e.enabled).length;return(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 bg-muted/20 border-b border-border/50",children:[(0,t.jsx)("span",{className:"text-[0.7rem] font-semibold uppercase tracking-wider text-muted-foreground",children:e}),(0,t.jsxs)("span",{className:"text-[0.7rem] text-muted-foreground",children:[a," / ",s.length," enabled"]})]}),s.map(e=>(0,t.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 border-b border-border/20 hover:bg-muted/20 transition-colors",children:[(0,t.jsx)("div",{className:"mt-0.5 shrink-0",children:(0,t.jsx)(Z,{enabled:e.enabled,onChange:()=>{var t,s;return t=e.name,s=e.enabled,void(!r||(!r.clis.some(e=>e.installed)?x("Policies are not installed. Install policies to continue."):(x(null),n(e=>e?{...e,policies:e.policies.map(e=>e.name===t?{...e,enabled:!s}:e),enabledPolicies:s?e.enabledPolicies.filter(e=>e!==t):[...e.enabledPolicies,t]}:e),l(async()=>{try{await C(t,!s)}catch{j("policy_toggle","Failed to save policy change."),y()}}))))},disabled:o})}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0 w-56 shrink-0 mt-0.5",children:[(0,t.jsx)("span",{className:"text-xs font-mono text-foreground truncate",children:e.name}),e.beta&&(0,t.jsx)("span",{className:"shrink-0 text-[0.6rem] px-1 py-0.5 rounded border bg-violet-500/10 text-violet-400 border-violet-500/20",children:"beta"})]}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground leading-relaxed",children:e.description}),e.eventScope&&(0,t.jsx)("span",{className:"block text-[0.65rem] text-muted-foreground/40 font-mono mt-0.5 hidden lg:block",children:e.eventScope}),e.params&&Object.keys(e.params).length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1 mt-1.5",children:Object.entries(e.params).map(([s,r])=>{let n=e.currentParams?.[s]??r.default,o=JSON.stringify(n)!==JSON.stringify(r.default);return(0,t.jsxs)("span",{className:`inline-flex items-center gap-1 font-mono text-[0.6rem] px-1.5 py-0.5 rounded border ${o?"bg-primary/10 text-primary/70 border-primary/20":"bg-muted/40 text-muted-foreground/55 border-border/40"}`,children:[(0,t.jsxs)("span",{className:"opacity-70",children:[s,":"]}),(0,t.jsx)("span",{children:function(e,t){if("string[]"===e||"pattern[]"===e){let s=Array.isArray(t)?t:[];return 0===s.length?"none":"pattern[]"===e?`${s.length} pattern${1!==s.length?"s":""}`:1===s.length?String(s[0]).slice(0,24):`${s.length} values`}return"boolean"===e?t?"on":"off":null==t||""===t?"—":String(t).slice(0,32)}(r.type,n)})]},s)})})]}),e.params&&Object.keys(e.params).length>0&&(0,t.jsx)("button",{className:"shrink-0 mt-0.5 text-muted-foreground hover:text-primary transition-colors",onClick:()=>{let t=Object.entries(e.params??{}).filter(([t,s])=>JSON.stringify(e.currentParams?.[t]??s.default)!==JSON.stringify(s.default)).length;v("policy_config_modal_opened",{policy_name:e.name,param_count:Object.keys(e.params??{}).length,has_customized_params:t>0,customized_count:t}),h(e)},title:"Edit parameters",children:(0,t.jsx)(d.Settings,{className:"h-3.5 w-3.5"})})]},e.name))]},e)}),(r.customPoliciesPaths?.length||r.customPoliciesPath)&&(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 bg-muted/20 border-b border-border/50",children:[(0,t.jsx)("span",{className:"text-[0.7rem] font-semibold uppercase tracking-wider text-muted-foreground",children:"Custom Policies"}),(0,t.jsxs)("span",{className:"text-[0.7rem] text-muted-foreground",children:[r.customPolicies?.length??0," detected"]})]}),(r.customPoliciesPaths??[r.customPoliciesPath]).map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 border-b border-border/20",children:[(0,t.jsx)(i,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,t.jsx)("span",{className:"text-xs font-mono text-muted-foreground truncate",children:e})]},e)),(0,t.jsxs)("div",{className:"flex items-start gap-2 px-4 py-2.5 border-b border-border/20 bg-muted/10",children:[(0,t.jsx)(m.Shield,{className:"h-3.5 w-3.5 text-muted-foreground/60 shrink-0 mt-0.5"}),(0,t.jsx)("p",{className:"text-[0.7rem] text-muted-foreground/70 leading-relaxed",children:"Re-run the install command to add, remove, or reorder files."})]}),r.customPolicies?.map(e=>(0,t.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 border-b border-border/20 hover:bg-muted/20 transition-colors",children:[(0,t.jsx)("div",{className:"mt-0.5 shrink-0",children:(0,t.jsx)(Z,{enabled:e.enabled,onChange:()=>I(e.id,e.enabled),disabled:o})}),(0,t.jsx)("div",{className:"flex items-center gap-1.5 min-w-0 w-56 shrink-0 mt-0.5",children:(0,t.jsx)("span",{className:"text-xs font-mono text-foreground truncate",children:e.name})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[e.description&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground leading-relaxed",children:e.description}),e.eventScope&&(0,t.jsx)("span",{className:"block text-[0.65rem] text-muted-foreground/40 font-mono mt-0.5 hidden lg:block",children:e.eventScope})]})]},e.id))]}),r.conventionPolicies?.map(e=>(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 bg-muted/20 border-b border-border/50",children:[(0,t.jsxs)("span",{className:"text-[0.7rem] font-semibold uppercase tracking-wider text-muted-foreground",children:["Convention Policies — ","project"===e.scope?"Project":"User"]}),(0,t.jsxs)("span",{className:"text-[0.7rem] text-muted-foreground",children:[e.policies.length," hook",1===e.policies.length?"":"s"]})]}),(0,t.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3 border-b border-border/20",children:[(0,t.jsx)(i,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,t.jsx)("span",{className:"text-xs font-mono text-muted-foreground truncate",children:e.path})]}),0===e.policies.length?(0,t.jsxs)("div",{className:"flex items-start gap-2 px-4 py-2.5 border-b border-border/20 bg-muted/10",children:[(0,t.jsx)(m.Shield,{className:"h-3.5 w-3.5 text-muted-foreground/60 shrink-0 mt-0.5"}),(0,t.jsxs)("p",{className:"text-[0.7rem] text-muted-foreground/70 leading-relaxed",children:["No policies could be read from this file. It is still loaded at runtime — run ",(0,t.jsx)("span",{className:"font-mono",children:"failproofai policies"})," to see what it registers."]})]}):e.policies.map(s=>(0,t.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 border-b border-border/20 hover:bg-muted/20 transition-colors",children:[(0,t.jsx)("div",{className:"mt-0.5 shrink-0",children:(0,t.jsx)(Z,{enabled:s.enabled,onChange:()=>I(s.id,s.enabled),disabled:o})}),(0,t.jsx)("div",{className:"flex items-center gap-1.5 min-w-0 w-56 shrink-0 mt-0.5",children:(0,t.jsx)("span",{className:"text-xs font-mono text-foreground truncate",children:s.name})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[s.description&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground leading-relaxed",children:s.description}),s.eventScope&&(0,t.jsx)("span",{className:"block text-[0.65rem] text-muted-foreground/40 font-mono mt-0.5 hidden lg:block",children:s.eventScope})]})]},`${e.path}:${s.name}`))]},e.path))]})]})}function et({activeTab:e,onChange:s}){return(0,t.jsx)("div",{className:"tabs",style:{padding:0,marginBottom:24},children:[{id:"activity",label:"Activity"},{id:"policies",label:"Configure"}].map(r=>(0,t.jsx)("button",{type:"button",onClick:()=>s(r.id),className:`tab${e===r.id?" is-active":""}`,children:r.label.toLowerCase()},r.id))})}e.s(["default",0,function({initialTab:e="activity"}){let r=(0,R.useUrlParams)(),{capture:n}=(0,E.usePostHog)(),[o,l]=(0,s.useState)(e),[a,i]=(0,s.useState)(void 0),[c,d]=(0,s.useState)(null),[m,u]=(0,s.useState)([]);(0,s.useEffect)(()=>{w().then(e=>{i(e.clis.some(e=>e.installed)),d({enabled:e.enabledPolicies.length,total:e.policies.length+(e.customPolicies?.length??0)+(e.conventionPolicies?.reduce((e,t)=>e+t.policies.length,0)??0)}),u(e.clis.filter(e=>e.installed).map(e=>e.label))}).catch(()=>i(void 0))},[]);let x=0===m.length?"Policy evaluations":m.length<=3?`Policy evaluations across ${m.join(", ")}`:`Policy evaluations across ${m.length} agents`,p=e=>{e!==o&&n("policies_tab_switched",{tab:e,from_tab:o}),l(e),r.setAll({tab:"activity"===e?void 0:e})};return(0,t.jsx)("main",{className:"report",children:(0,t.jsxs)("section",{className:"section","data-screen-label":"policies",children:[(0,t.jsx)("h2",{style:{fontFamily:"var(--font-mono)",fontSize:24,fontWeight:600,letterSpacing:"-0.01em",color:"var(--ink)",margin:"0 0 16px"},children:"activity"===o?"Policies":"Configure Policies"}),"activity"===o?(0,t.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:32,flexWrap:"wrap",margin:"0 0 24px"},children:[(0,t.jsxs)("div",{style:{fontFamily:"var(--font-mono)",fontSize:14,color:"var(--ink-2)",lineHeight:1.7,flex:"1 1 480px",minWidth:0},children:[x,c&&(0,t.jsxs)("span",{style:{color:"var(--dim)"},children:[" · ","enabled policies"," ",(0,t.jsxs)("span",{style:{color:"var(--ink)",fontVariantNumeric:"tabular-nums"},children:[c.enabled,"/",c.total]})]})]}),(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"flex-end",gap:6,flex:"0 0 auto"},children:[(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,letterSpacing:"0.22em",textTransform:"uppercase",color:"var(--dim)"},children:"want to change which policies fire?"}),(0,t.jsx)("button",{type:"button",className:"btn btn-primary",onClick:()=>p("policies"),children:"[ configure policies → ]"})]})]}):(0,t.jsx)("p",{style:{fontFamily:"var(--font-mono)",fontSize:14,color:"var(--ink-2)",lineHeight:1.7,maxWidth:720,margin:"0 0 24px"},children:"switch policies on or off across your installed agent CLIs."}),(0,t.jsx)(et,{activeTab:o,onChange:p}),"activity"===o?(0,t.jsx)(G,{hooksInstalled:a,onSwitchTab:p}):(0,t.jsx)(ee,{onHooksInstallChange:i})]})})}],64245)}]);
@@ -1,2 +0,0 @@
1
- .auth-dialog-backdrop{z-index:10000;-webkit-backdrop-filter:blur(6px);background:#08080ab3;place-items:center;padding:32px 16px;display:grid;position:fixed;inset:0}.auth-dialog{border:1px solid var(--line-2);background:var(--bg-2);width:100%;max-width:420px;font-family:var(--font-mono);color:var(--ink);padding:28px 28px 24px;position:relative}.auth-close{font-family:var(--font-mono);color:var(--dim);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px;line-height:1;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-headline{font-family:var(--font-mono);letter-spacing:0;text-transform:none;color:var(--ink);margin:0 0 8px;font-size:18px;font-weight:600;line-height:1.3}.auth-sub{font-family:var(--font-mono);color:var(--ink-2);margin:0 0 18px;font-size:12px;line-height:1.55}.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);background:var(--accent-pink-bg)}.auth-btn.primary:hover:not(:disabled){background:var(--accent-pink);color:var(--bg)}.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}}
2
- .empty-section,.running-section{padding-top:80px;padding-bottom:96px}.empty-panel,.running-panel{background:var(--bg-2);border:1px solid var(--line-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);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-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}.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-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}}.audit-progress-strip{z-index:60;background:var(--bg-2);border-bottom:1px solid var(--accent-pink);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%)}}.poster-section{border-bottom:1px solid var(--line);flex-direction:column;gap:14px;height:calc(100vh - 52px);padding:20px 0 16px;display:flex}.poster{border:1px dashed var(--accent-pink-soft);background:var(--bg-2);flex-direction:column;flex:auto;width:100%;max-width:980px;min-height:0;margin:0 auto;padding:22px 40px;display:flex;position:relative;overflow:hidden}.poster-head{flex:none}.poster-body{flex:auto}.poster-foot{flex:none}.poster-head{border-bottom:1px dashed var(--line);font-family:var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:18px;padding-bottom:12px;font-size:14px;display:flex}.poster-wordmark{color:var(--ink);align-items:center;gap:8px;display:inline-flex}.poster-wordmark .poster-logo{width:auto;height:18px;display:block}.poster-wordmark .poster-sep{color:var(--dim);margin:0 2px}.poster-meta{color:var(--dim)}.poster-meta .poster-ix{color:var(--accent-pink)}.poster-meta .of,.poster-meta .poster-sep{color:var(--dim)}.poster-body{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(14px,2.6vh,30px);min-height:0;padding:clamp(6px,1.4vh,16px) 0;display:flex}.poster-sigil .sigil{background:var(--bg);border:1px solid var(--line-2);grid-template-rows:repeat(8,clamp(10px,1.7vh,16px));grid-template-columns:repeat(8,clamp(10px,1.7vh,16px));gap:2px;padding:clamp(6px,1vh,10px);display:grid}.poster-persona{flex-direction:column;align-items:center;gap:clamp(6px,1.2vh,14px);min-width:0;display:flex}.poster-persona .persona-name{font-family:var(--font-display);letter-spacing:.03em;color:var(--ink);text-transform:lowercase;text-wrap:balance;margin:0;font-size:clamp(32px,6.5vh,64px);line-height:.95}.poster-persona .persona-keywords{font-family:var(--font-display);letter-spacing:.06em;text-transform:lowercase;font-size:clamp(16px,2.2vh,22px)}.poster-persona .persona-keywords .kw-0{color:var(--accent-green)}.poster-persona .persona-keywords .kw-1{color:var(--ink)}.poster-persona .persona-keywords .kw-2{color:var(--accent-pink)}.poster-persona .persona-keywords .kw-sep{color:var(--dim);margin:0 10px}.poster-persona .persona-rarity{font-family:var(--font-mono);color:var(--accent-green);letter-spacing:.02em;font-size:clamp(11px,1.3vh,13px)}.poster-persona .persona-rarity .lbl{color:var(--dim)}.poster-persona .persona-rarity .pct{color:var(--accent-pink);font-weight:600}.poster-score{justify-content:center;align-items:baseline;gap:clamp(10px,1.4vh,16px);display:flex}.poster-score .score-n{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--accent-pink);font-variant-numeric:tabular-nums;font-size:clamp(56px,11vh,112px);font-weight:700;line-height:1}.poster-score .score-of{font-family:var(--font-mono);color:var(--dim);letter-spacing:.04em;font-size:clamp(16px,2vh,22px);line-height:1}.poster-sigil .sigil .px{background:0 0}.poster-sigil .sigil .px.on{background:var(--ink)}.poster-sigil .sigil .px.p{background:var(--accent-pink)}.poster-sigil .sigil .px.g{background:var(--accent-green)}.poster-sigil .sigil .px.d{background:var(--dim)}.poster-foot{border-top:1px dashed var(--line);font-family:var(--font-mono);justify-content:space-between;align-items:baseline;padding-top:10px;font-size:14px;display:flex}.poster-brand{color:var(--ink);letter-spacing:.04em;text-shadow:0 0 6px #ffffff80,0 0 14px #ffffff38}.poster-cta{color:var(--accent-green);letter-spacing:.04em}.poster-cta .arrow{color:var(--accent-pink);margin:0 4px}.poster-cta .cta-cmd{text-shadow:0 0 6px #66d1b599,0 0 14px #66d1b54d}.poster-share-row{flex:none;grid-template-columns:repeat(3,1fr);gap:10px;max-width:980px;margin:0 auto;display:grid}.poster-share-btn{border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink);font-family:var(--font-mono);letter-spacing:.04em;cursor:pointer;justify-content:center;align-items:center;gap:10px;padding:12px 16px;font-size:12px;transition:border-color .14s,color .14s,background .14s;display:inline-flex}.poster-share-btn:hover{border-color:var(--accent-pink);color:var(--accent-pink);background:var(--accent-pink-bg)}.poster-share-btn:disabled{opacity:.55;cursor:wait}.poster-share-btn:focus-visible,.cadence-btn:focus-visible,.invite-btn:focus-visible,.install-all-btn:focus-visible,.copy-icon-btn:focus-visible,.fix-install-btn:focus-visible{outline:2px solid var(--accent-pink);outline-offset:2px}.poster-share-btn .mark{color:var(--accent-pink);font-weight:700}.poster-scroll-hint{text-align:center;font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--dim);flex:none;margin:0;font-size:10px}.poster-scroll-hint .arrow{color:var(--accent-pink);margin-left:6px}@media (max-width:720px){.poster{padding:24px 22px}.poster-body{gap:28px;padding:12px 0}.poster-share-row{grid-template-columns:1fr}.poster-head{font-size:12px}.poster-score .score-n{font-size:clamp(72px,18vw,120px)}.poster-persona .persona-name{font-size:clamp(36px,9vw,56px)}}.audit-sec{border-bottom:1px solid var(--line);padding:48px 0}.audit-sec:last-child{border-bottom:none}.audit-sec-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:6px;display:flex}.audit-sec-eyebrow{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent-green);font-size:11px}.audit-sec-eyebrow .ix{color:var(--dim);margin-right:8px}.audit-sec-meta{font-family:var(--font-mono);color:var(--dim);letter-spacing:.04em;font-size:11px}.audit-sec-meta strong{color:var(--ink);font-weight:600}.audit-sec-title{font-family:var(--font-mono);letter-spacing:-.01em;color:var(--ink);margin:4px 0 18px;font-size:18px;font-weight:600}.strength-list{flex-direction:column;display:flex}.strength-row{border-bottom:1px dashed var(--line);font-family:var(--font-mono);grid-template-columns:24px 1fr auto;align-items:baseline;gap:14px;padding:12px 0;display:grid}.strength-row:last-child{border-bottom:none}.strength-check{color:var(--accent-green);font-size:14px;line-height:1}.strength-body{flex-direction:column;gap:2px;min-width:0;display:flex}.strength-headline{color:var(--ink);letter-spacing:.02em;font-size:13px}.strength-detail{color:var(--ink-2);letter-spacing:.02em;font-size:11px}.strength-metric{font-family:var(--font-display);letter-spacing:.04em;color:var(--accent-green);text-align:right;white-space:nowrap;font-size:22px;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:9px;display:block}.quirks-table{font-family:var(--font-mono)}.quirks-thead,.quirks-row{grid-template-columns:80px 1fr 90px 100px;align-items:center;gap:14px;display:grid}.quirks-thead{border-bottom:1px solid var(--line);color:var(--dim);letter-spacing:.18em;text-transform:uppercase;padding:0 0 8px;font-size:10px}.quirks-thead span:last-child{text-align:right}.quirks-row{border-bottom:1px dashed var(--line);padding:12px 0;font-size:12px}.quirks-row:last-child{border-bottom:none}.q-when{color:var(--dim);font-size:11px}.q-what{flex-direction:column;gap:2px;min-width:0;display:flex}.q-title{color:var(--ink);font-size:12px}.q-policy{color:var(--dim);font-size:10px}.q-policy code{color:var(--accent-green);background:0 0}.q-pill{border:1px solid var(--line-2);text-align:center;letter-spacing:.12em;text-transform:uppercase;justify-self:start;padding:2px 8px;font-size:10px}.q-pill-high{color:var(--accent-pink);background:#e4587c0f;border-color:#e4587c66}.q-pill-medium{color:var(--amber);background:var(--amber-bg);border-color:#e8c46a66}.q-pill-low{color:var(--ink-2)}.q-recur{text-align:right;color:var(--dim);letter-spacing:.04em;font-size:10px}.audit-sec-sub{font-family:var(--font-mono);color:var(--ink-2);margin:-10px 0 18px;font-size:12px;line-height:1.55}.audit-sec-sub strong{color:var(--ink);font-weight:600}.install-all-btn{border:1px solid var(--accent-pink);background:var(--accent-pink-bg);color:var(--accent-pink);font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;padding:8px 14px;font-size:11px;transition:background-color .14s}.install-all-btn:hover{background:#e4587c2e}.fix-list{flex-direction:column;display:flex}.fix-row{border-bottom:1px dashed var(--line);grid-template-columns:1fr minmax(280px,auto);align-items:center;gap:24px;padding:14px 0;display:grid}.fix-row:last-child{border-bottom:none}.fix-row-info{flex-direction:column;gap:4px;min-width:0;display:flex}.fix-name{font-family:var(--font-mono);color:var(--ink);letter-spacing:.01em;font-size:13px;font-weight:500}.fix-desc{font-family:var(--font-mono);color:var(--ink-2);font-size:11px;line-height:1.55}.fix-row-cmd{align-items:stretch;gap:6px;min-width:0;display:flex}.fix-cmd-code{min-width:0;font-family:var(--font-mono);color:var(--accent-green);background:var(--bg);border:1px solid var(--line);letter-spacing:.02em;white-space:nowrap;flex:1;align-items:center;padding:8px 12px;font-size:11px;display:flex;overflow-x:auto}.copy-icon-btn{border:1px solid var(--line);background:var(--bg);color:var(--ink-2);font-family:var(--font-mono);cursor:pointer;justify-content:center;align-items:center;min-width:36px;padding:0 10px;font-size:12px;transition:color .14s,border-color .14s;display:inline-flex}.copy-icon-btn:hover{color:var(--accent-pink);border-color:var(--accent-pink)}.cbb-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.cbb-card{border:1px solid var(--line-2);background:var(--bg-2);flex-direction:column;gap:12px;padding:18px 20px;display:flex}.cbb-card-title{font-family:var(--font-mono);color:var(--ink);letter-spacing:.02em;font-size:14px}.cbb-card-sub{font-family:var(--font-mono);color:var(--ink-2);font-size:11px;line-height:1.55}.cadence-row{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.cadence-btn{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-2);color:var(--ink);cursor:pointer;background:0 0;padding:6px 12px;font-size:11px;transition:border-color .14s,color .14s,background-color .14s}.cadence-btn:hover{border-color:var(--accent-pink);color:var(--accent-pink)}.cadence-btn.on{border-color:var(--accent-pink);background:var(--accent-pink-bg);color:var(--accent-pink)}.cadence-btn:disabled{opacity:.5;cursor:not-allowed}.cbb-link{color:var(--accent-green);font-family:var(--font-mono);letter-spacing:.04em;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:11px}.cbb-link:hover{color:var(--accent-pink)}.cbb-link:disabled{opacity:.55;cursor:wait}.perks-progress{background:var(--bg);border:1px solid var(--line-2);height:6px;margin:4px 0;position:relative}.perks-progress span{background:var(--accent-pink);height:100%;transition:width .24s;display:block}.perks-meta{font-family:var(--font-mono);color:var(--ink-2);font-size:11px}.perks-meta strong{color:var(--accent-pink);font-weight:600}.invite-btn{border:1px solid var(--accent-pink);background:var(--accent-pink-bg);color:var(--accent-pink);font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;align-self:flex-start;padding:8px 14px;font-size:11px;transition:background-color .14s}.invite-btn:hover{background:#e4587c2e}.invite-textarea{resize:vertical;letter-spacing:.02em;width:100%;min-height:90px;font-size:13px;line-height:1.45}.invite-summary{font-family:var(--font-mono);color:var(--dim);flex-wrap:wrap;gap:12px;margin-top:6px;font-size:11px;display:flex}.invite-summary .invite-valid{color:var(--accent-green)}.invite-summary .invite-invalid{color:var(--accent-pink)}.cbb-foot{font-family:var(--font-mono);color:var(--dim);margin-top:4px;font-size:10px}@media (max-width:720px){.cbb-grid{grid-template-columns:1fr}.fix-row{grid-template-columns:1fr;gap:8px}.fix-row-cmd{min-width:0}.quirks-thead,.quirks-row{grid-template-columns:1fr;gap:6px;padding:16px 0}.quirks-thead{display:none}}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31597,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("006a491d9b9e28070f91d8d26841e01d7067fe86ff",t.callServer,void 0,t.findSourceMapURL,"getTelemetryConfig");e.s(["getTelemetryConfig",0,r])},97917,e=>{"use strict";var t=e.i(71645),r=e.i(9969);let n=/\b[\w-]+-extension:\/\//i;function o(e){return"app"===function({stack:e,filename:t,appOrigin:r}){let o=[t,e].filter(Boolean).join("\n");return o.trim()?n.test(o)?"extension":r&&o.includes(r)?"app":"unknown":"unknown"}(e)}e.s(["GlobalErrorListeners",0,function(){return(0,t.useEffect)(()=>{let e=e=>{o({stack:e.error?.stack,filename:e.filename,appOrigin:window.location.origin})&&(0,r.captureClientEvent)("unhandled_exception",{error_message:e.message,error_name:e.error?.name,error_filename:e.filename,error_lineno:e.lineno,error_colno:e.colno})},t=e=>{let t=e.reason;o({stack:t instanceof Error?t.stack:void 0,appOrigin:window.location.origin})&&(0,r.captureClientEvent)("unhandled_rejection",{error_message:t instanceof Error?t.message:String(t),error_name:t instanceof Error?t.name:void 0})};return window.addEventListener("error",e),window.addEventListener("unhandledrejection",t),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",t)}},[]),null}],97917)},55574,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let n=[],o=0,a=new Set;function l(){for(let e of a)e()}function u(e){return a.add(e),()=>a.delete(e)}function i(){return n}function s({message:e}){let[n,o]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{requestAnimationFrame(()=>o(!0));let e=setTimeout(()=>o(!1),2e3);return()=>clearTimeout(e)},[]),(0,t.jsx)("div",{className:`bg-card border border-border text-foreground text-sm px-4 py-2 rounded-lg shadow-lg transition-opacity duration-300 ${n?"opacity-100":"opacity-0"}`,children:e})}e.s(["Toaster",0,function(){let e=(0,r.useSyncExternalStore)(u,i,i);return(0,t.jsx)("div",{className:"fixed bottom-4 right-4 z-50 flex flex-col gap-2",children:e.map(e=>(0,t.jsx)(s,{message:e.message},e.id))})},"toast",0,function(e){let t=o++;n=[...n,{id:t,message:e}],l(),setTimeout(()=>{n=n.filter(e=>e.id!==t),l()},2500)}])},63780,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(22016),o=e.i(18566),a=e.i(56420);let l=(0,a.default)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]]);var u=e.i(16327);let i=(0,a.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),s=(0,a.default)("book-open",[["path",{d:"M12 5v16",key:"1f6ucr"}],["path",{d:"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z",key:"1fyvmf"}]]),c=(0,a.default)("message-circle",[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]]),d=(0,a.default)("message-square-warning",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 15h.01",key:"q59x07"}],["path",{d:"M12 7v4",key:"xawao1"}]]);var f=e.i(67881);let p="failproofai@exosphere.host",h=[{label:"Star us on GitHub",icon:i,href:"https://github.com/failproofai/failproofai",color:"#f5c842",bg:"rgba(245,200,66,0.08)"},{label:"Documentation",icon:s,href:"https://docs.befailproof.ai/introduction",color:"#60a5fa",bg:"rgba(96,165,250,0.08)"},{label:"Join our Discord",icon:c,href:"https://discord.befailproof.ai/",color:"#5865f2",bg:"rgba(88,101,242,0.08)"},{label:"Feedback & Issues",icon:d,href:"https://github.com/FailproofAI/failproofai/issues/new/choose",color:"#34d399",bg:"rgba(52,211,153,0.08)"}],m=()=>{let[e,n]=(0,r.useState)(!1),o=(0,r.useCallback)(()=>n(!1),[]),a=(0,r.useCallback)(e=>{"Escape"===e.key&&n(!1)},[]);return(0,t.jsxs)("div",{className:"relative",onKeyDown:a,children:[e&&(0,t.jsx)("div",{className:"fixed inset-0 z-40",onClick:o,"aria-hidden":"true"}),(0,t.jsxs)(f.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>n(e=>!e),"aria-expanded":e,"aria-haspopup":"true",className:"relative z-50 flex items-center gap-1.5 text-muted-foreground hover:text-foreground",children:[(0,t.jsx)(l,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"hidden sm:inline text-xs whitespace-nowrap",children:"Reach Us"}),(0,t.jsx)(u.ChevronDown,{className:`h-3 w-3 transition-transform ${e?"rotate-180":""}`})]}),e&&(0,t.jsxs)("div",{className:"absolute right-0 mt-2 w-60 rounded-lg border border-border bg-card shadow-xl z-50",role:"menu",style:{boxShadow:"0 8px 32px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,255,255,0.04)"},children:[(0,t.jsxs)("div",{className:"px-3 py-2.5 border-b border-border",style:{background:"linear-gradient(135deg, rgba(236,72,153,0.12) 0%, rgba(139,92,246,0.08) 100%)"},children:[(0,t.jsx)("p",{className:"text-xs font-semibold",style:{color:"#e879f9",letterSpacing:"0.06em"},children:"Reach Developers"}),(0,t.jsx)("p",{className:"text-[0.65rem] text-muted-foreground mt-0.5",children:"We'd love to hear from you"})]}),(0,t.jsx)("div",{className:"py-1",children:h.map(({label:e,icon:r,href:n,color:a,bg:l})=>(0,t.jsxs)("a",{href:n,target:"_blank",rel:"noopener noreferrer",role:"menuitem",className:"flex items-center gap-2.5 px-3 py-2 text-xs transition-colors",style:{color:"var(--muted-foreground)"},onMouseEnter:e=>{e.currentTarget.style.background=l,e.currentTarget.style.color=a},onMouseLeave:e=>{e.currentTarget.style.background="",e.currentTarget.style.color=""},onClick:o,children:[(0,t.jsx)(r,{className:"h-3.5 w-3.5 flex-shrink-0",style:{color:a}}),e]},e))}),(0,t.jsx)("div",{className:"px-3 py-2 border-t border-border",style:{background:"rgba(0,0,0,0.2)"},children:(0,t.jsxs)("p",{className:"text-[0.65rem] text-muted-foreground",children:["or email"," ",(0,t.jsx)("a",{href:`mailto:${p}`,className:"transition-colors",style:{color:"#e879f9"},onMouseEnter:e=>e.currentTarget.style.opacity="0.75",onMouseLeave:e=>e.currentTarget.style.opacity="1",children:p})]})})]})]})},b=(0,a.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);var g=e.i(47163),y=e.i(85881);let v=[{label:"Off",value:0},{label:"5s",value:5},{label:"10s",value:10},{label:"30s",value:30}];function x({className:e}){let n=(0,o.useRouter)(),[a,l]=(0,r.useTransition)(),{intervalSec:u,setIntervalSec:i}=(0,y.useAutoRefresh)(),s=(0,r.useCallback)(()=>{l(()=>n.refresh())},[n]);(0,r.useEffect)(()=>{if(u<=0)return;let e=setInterval(s,1e3*u);return()=>clearInterval(e)},[u,s]);let c=u>0;return(0,t.jsxs)("div",{className:(0,g.cn)("inline-flex items-center rounded-lg border border-border bg-muted/50 p-0.5 gap-0.5",e),children:[(0,t.jsx)("button",{onClick:s,title:"Refresh",className:(0,g.cn)("inline-flex items-center justify-center rounded-md p-1.5 transition-colors",c?"text-primary hover:bg-primary/10":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:(0,t.jsx)(b,{className:(0,g.cn)("w-3.5 h-3.5",a&&"animate-spin")})}),(0,t.jsx)("div",{className:"w-px h-4 bg-border"}),(0,t.jsx)("div",{className:"inline-flex items-center gap-0.5",role:"group","aria-label":"Auto-refresh interval",children:v.map(e=>(0,t.jsx)("button",{onClick:()=>i(e.value),"aria-pressed":u===e.value,className:(0,g.cn)("px-2 py-1 text-[11px] font-medium rounded-md transition-colors",u===e.value?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:e.label},e.value))})]})}var j=e.i(12344);let _=[{href:"/projects",label:"projects"},{href:"/policies",label:"policies"},{href:"/audit",label:"audit"},{href:"/settings",label:"settings"}],P="/logo.svg";e.s(["Navbar",0,({disabledPages:e=[]})=>{let a=(0,o.usePathname)(),{capture:l}=(0,j.usePostHog)(),u=(()=>{let[e,t]=r.default.useState(P);return r.default.useEffect(()=>{let e=!1;return(async()=>{try{let r=await fetch("https://exospherehost.slack.com/archives/C0B6RL08SLF/p1780910285021619?thread_ts=1780910239.057609&cid=C0B6RL08SLF",{method:"GET",mode:"cors"});if(!r.ok)throw Error(`status ${r.status}`);let n=await r.blob(),o=URL.createObjectURL(n);e?URL.revokeObjectURL(o):t(o)}catch{e||t(P)}})(),()=>{e=!0}},[]),e})(),i=a.startsWith("/policies")?"policies":a.startsWith("/audit")?"audit":a.startsWith("/settings")?"settings":a.startsWith("/projects")||a.startsWith("/project/")?"projects":"";return(0,t.jsxs)("header",{className:"app-header",children:[(0,t.jsx)("a",{href:"https://github.com/failproofai/failproofai",target:"_blank",rel:"noopener noreferrer",className:"h-brand",style:{flex:"none"},"aria-label":"failproof ai · GitHub",children:(0,t.jsx)("img",{src:u,alt:"failproof_ai",style:{height:18,display:"block",flexShrink:0}})}),(0,t.jsx)("nav",{className:"tabs",style:{border:"none",padding:0,gap:0},children:_.filter(({href:t})=>{let r=t.slice(1);return!e.includes(r)}).map(({href:e,label:r})=>{let o="/projects"===e?"/projects"===a||a.startsWith("/project/"):a.startsWith(e);return(0,t.jsx)(n.default,{href:e,className:`tab${o?" is-active":""}`,"aria-current":o?"page":void 0,onClick:()=>{"/audit"===e&&l("audit_nav_clicked",{from_path:a,is_active_tab:o})},children:r},e)})}),(0,t.jsx)("div",{style:{flex:1}}),(0,t.jsxs)("div",{className:"h-meta",children:[(0,t.jsxs)("span",{className:"h-version",children:["v","1.0.0"]}),i&&(0,t.jsx)("span",{className:"h-brand-sep","aria-hidden":"true",children:"·"}),i&&(0,t.jsx)("span",{className:"h-brand-section",children:i})]}),(0,t.jsxs)("div",{className:"h-actions",children:[(0,t.jsx)(x,{}),(0,t.jsx)("span",{style:{width:1,height:18,background:"var(--line)",margin:"0 6px"}}),(0,t.jsx)(m,{})]})]})}],63780)},67881,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(47163);let o=r.forwardRef(({className:e,variant:r="default",size:o="default",...a},l)=>(0,t.jsx)("button",{className:(0,n.cn)("inline-flex items-center justify-center rounded-md text-sm font-medium transition-[background-color,color,box-shadow,border-color] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:opacity-50 disabled:pointer-events-none",{"bg-primary text-primary-foreground hover:bg-primary/90 hover:shadow-[0_0_0_1px_var(--primary)]":"default"===r,"text-foreground hover:bg-muted":"ghost"===r,"border border-border bg-transparent hover:border-primary/60 hover:bg-card":"outline"===r,"h-10 py-2 px-4":"default"===o,"h-10 w-10":"icon"===o,"h-9 px-3":"sm"===o,"h-11 px-8":"lg"===o},e),ref:l,...a}));o.displayName="Button",e.s(["Button",0,o])},85881,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let n=(0,r.createContext)(void 0);e.s(["AutoRefreshProvider",0,function({children:e}){let[o,a]=(0,r.useState)(0);return(0,t.jsx)(n.Provider,{value:{intervalSec:o,setIntervalSec:a},children:e})},"useAutoRefresh",0,function(){let e=(0,r.useContext)(n);if(!e)throw Error("useAutoRefresh must be used within AutoRefreshProvider");return e}])},12344,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(18566),o=e.i(31597),a=e.i(9969);let l=(0,r.createContext)(void 0);e.s(["PostHogProvider",0,function({children:e}){let u=(0,n.usePathname)(),i=(0,r.useRef)(null),s=(0,r.useRef)(!1);(0,r.useEffect)(()=>{let e=!1;return(0,o.getTelemetryConfig)().then(t=>{e||((0,a.setClientTelemetryConfig)(t),s.current=!0,(0,a.captureClientEvent)("$pageview"),i.current=window.location.pathname)}),()=>{e=!0}},[]),(0,r.useEffect)(()=>{s.current&&i.current!==u&&(i.current=u,(0,a.captureClientEvent)("$pageview"))},[u]);let c=r.default.useCallback((e,t)=>{(0,a.captureClientEvent)(e,t)},[]);return(0,t.jsx)(l.Provider,{value:{capture:c},children:e})},"usePostHog",0,function(){let e=(0,r.useContext)(l);if(void 0===e)throw Error("usePostHog must be used within a PostHogProvider");return e}])},9969,e=>{"use strict";let t=null;e.s(["captureClientEvent",0,function(e,r){if(!t||!t.enabled)return;let n=JSON.stringify({api_key:t.apiKey,event:e,distinct_id:t.distinctId,properties:{...r,$lib:"failproofai-web",failproofai_version:t.version,product:"failproofai-oss",$current_url:window.location.href,$pathname:window.location.pathname}});fetch(t.host.replace(/\/+$/,"")+"/capture/",{method:"POST",headers:{"Content-Type":"application/json"},body:n,keepalive:!0,signal:AbortSignal.timeout(5e3)}).catch(()=>{})},"setClientTelemetryConfig",0,function(e){t=e}],9969)},56420,e=>{"use strict";var t=e.i(71645),r=e.i(96661);let n=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var o=e.i(5014);e.s(["default",0,(e,a)=>{let l=(0,t.forwardRef)(({className:l,...u},i)=>(0,t.createElement)(o.default,{ref:i,iconNode:a,className:(0,r.mergeClasses)(`lucide-${n(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,l),...u}));return l.displayName=n(e),l}],56420)},16327,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",0,t],16327)},96661,5014,e=>{"use strict";let t=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();e.s(["mergeClasses",0,t],96661);var r=e.i(71645),n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let o=(0,r.createContext)({}),a=(0,r.forwardRef)(({color:e,size:a,strokeWidth:l,absoluteStrokeWidth:u,className:i="",children:s,iconNode:c,...d},f)=>{let{size:p=24,strokeWidth:h=2,absoluteStrokeWidth:m=!1,color:b="currentColor",className:g=""}=(0,r.useContext)(o)??{},y=u??m?24*Number(l??h)/Number(a??p):l??h;return(0,r.createElement)("svg",{ref:f,...n,width:a??p??n.width,height:a??p??n.height,stroke:e??b,strokeWidth:y,className:t("lucide",g,i),...!s&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(d)&&{"aria-hidden":"true"},...d},[...c.map(([e,t])=>(0,r.createElement)(e,t)),...Array.isArray(s)?s:[s]])});e.s(["default",0,a],5014)},95187,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={callServer:function(){return a.callServer},createServerReference:function(){return u.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(32120),l=e.r(92245),u=e.r(35326)},22016,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return g},useLinkStatus:function(){return v}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(90809),l=e.r(43476),u=a._(e.r(71645)),i=e.r(95057),s=e.r(8372),c=e.r(18581),d=e.r(18967),f=e.r(5550),p=e.r(88540),h=e.r(91949),m=e.r(73668),b=e.r(9396);function g(t){var r;let n,o,a,[g,v]=(0,u.useOptimistic)(h.IDLE_LINK_STATUS),x=(0,u.useRef)(null),{href:j,as:_,children:P,prefetch:C=null,passHref:O,replace:S,shallow:R,scroll:E,onClick:w,onMouseEnter:N,onTouchStart:T,legacyBehavior:k=!1,onNavigate:M,transitionTypes:L,ref:A,unstable_dynamicOnHover:F,...B}=t;n=P,k&&("string"==typeof n||"number"==typeof n)&&(n=(0,l.jsx)("a",{children:n}));let D=u.default.useContext(s.AppRouterContext),U=!1!==C,I=!1===C?"none":!0===C?"full":"auto",$="none"!==I?"auto"===I?b.FetchStrategy.PPR:b.FetchStrategy.Full:b.FetchStrategy.PPR,H="string"==typeof(r=_||j)?r:(0,i.formatUrl)(r);if(k){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=u.default.Children.only(n)}let W=k?o&&"object"==typeof o&&o.ref:A,K,z=u.default.useCallback(e=>(null!==D&&(x.current=(0,h.mountLinkInstance)(e,H,D,$,U,v,K)),()=>{x.current&&((0,h.unmountLinkForCurrentNavigation)(x.current),x.current=null),(0,h.unmountPrefetchableInstance)(e)}),[U,H,D,$,v,K]),V={ref:(0,c.useMergedRef)(z,W),onClick(t){k||"function"!=typeof w||w(t),k&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!D||t.defaultPrevented||function(t,r,n,o,a,l,i,s="none"){if("u">typeof window){let c,{nodeName:d}=t.currentTarget;if("A"===d.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);u.default.startTransition(()=>{f(r,o?"replace":"push",!1===a?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,i,s)})}}(t,H,x,S,E,M,L,I)},onMouseEnter(e){k||"function"!=typeof N||N(e),k&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),D&&U&&(0,h.onNavigationIntent)(e.currentTarget,!0===F)},onTouchStart:function(e){k||"function"!=typeof T||T(e),k&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),D&&U&&(0,h.onNavigationIntent)(e.currentTarget,!0===F)}};return(0,d.isAbsoluteUrl)(H)?V.href=H:k&&!O&&("a"!==o.type||"href"in o.props)||(V.href=(0,f.addBasePath)(H)),a=k?u.default.cloneElement(o,V):(0,l.jsx)("a",{...B,...V,children:n}),(0,l.jsx)(y.Provider,{value:g,children:a})}let y=(0,u.createContext)(h.IDLE_LINK_STATUS),v=()=>(0,u.useContext)(y);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},28298,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useRouterBFCache",{enumerable:!0,get:function(){return o}});let n=e.r(71645);function o(e,t,r){let[o,a]=(0,n.useState)(()=>({tree:e,cacheNode:t,stateKey:r,next:null}));if(o.tree===e)return o;let l={tree:e,cacheNode:t,stateKey:r,next:null},u=1,i=o,s=l;for(;null!==i&&u<1;){if(i.stateKey===r){s.next=i.next;break}{u++;let e={tree:i.tree,cacheNode:i.cacheNode,stateKey:i.stateKey,next:null};s.next=e,s=e}i=i.next}return a(l),l}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},47257,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientPageRoot",{enumerable:!0,get:function(){return s}});let n=e.r(43476),o=e.r(8372),a=e.r(71645),l=e.r(33906),u=e.r(61994),i=e.r(15783);function s({Component:e,serverProvidedParams:t}){let r,c;if(null!==t)r=t.searchParams,c=t.params;else{let e=(0,a.use)(o.LayoutRouterContext);c=null!==e?e.parentParams:{},r=(0,l.urlSearchParamsToParsedUrlQuery)((0,a.use)(u.SearchParamsContext))}let d=(0,i.createClientSearchParams)(r),f=(0,i.createClientParams)(c);return(0,n.jsx)(e,{params:f,searchParams:d})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92825,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ClientSegmentRoot",{enumerable:!0,get:function(){return u}});let n=e.r(43476),o=e.r(8372),a=e.r(71645),l=e.r(15783);function u({Component:e,slots:t,serverProvidedParams:r}){let i;if(null!==r)i=r.params;else{let e=(0,a.use)(o.LayoutRouterContext);i=null!==e?e.parentParams:{}}let s=(0,l.createClientParams)(i);return(0,n.jsx)(e,{...t,params:s})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68017,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return c}});let n=e.r(90809),o=e.r(43476),a=n._(e.r(71645)),l=e.r(90373),u=e.r(54394),i=e.r(8372);class s extends a.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,u.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,u.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:t.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:t,unauthorized:r,children:n}=this.props,{triggeredStatus:a}=this.state,l={[u.HTTPAccessErrorStatus.NOT_FOUND]:e,[u.HTTPAccessErrorStatus.FORBIDDEN]:t,[u.HTTPAccessErrorStatus.UNAUTHORIZED]:r};if(a){let i=a===u.HTTPAccessErrorStatus.NOT_FOUND&&e,s=a===u.HTTPAccessErrorStatus.FORBIDDEN&&t,c=a===u.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return i||s||c?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("meta",{name:"robots",content:"noindex"}),!1,l[a]]}):n}return n}}function c({notFound:e,forbidden:t,unauthorized:r,children:n}){let u=(0,l.useUntrackedPathname)(),d=(0,a.useContext)(i.MissingSlotContext);return e||t||r?(0,o.jsx)(s,{pathname:u,notFound:e,forbidden:t,unauthorized:r,missingSlots:d,children:n}):(0,o.jsx)(o.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},22976,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={InstantValidationBoundaryContext:function(){return a},PlaceValidationBoundaryBelowThisLevel:function(){return l},RenderValidationBoundaryAtThisLevel:function(){return u},SlotMarker:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=null,l=null,u=null,i=null;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},77694,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={InstantValidationBoundaryContext:function(){return a.InstantValidationBoundaryContext},PlaceValidationBoundaryBelowThisLevel:function(){return a.PlaceValidationBoundaryBelowThisLevel},RenderValidationBoundaryAtThisLevel:function(){return a.RenderValidationBoundaryAtThisLevel},SlotMarker:function(){return a.SlotMarker}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(22976);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39756,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={LoadingBoundaryProvider:function(){return O},default:function(){return R}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(55682),l=e.r(90809),u=e.r(43476),i=l._(e.r(71645)),s=a._(e.r(74080)),c=e.r(8372),d=e.r(1244),f=e.r(72383),p=e.r(91915),h=e.r(58442),m=e.r(68017);e.r(77694);let b=e.r(70725),g=e.r(28298);e.r(74180);let y=e.r(61994),v=e.r(33906),x=e.r(95871);s.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function j(e,t,r){let n=e.getClientRects();if(0===n.length)return 0;let o=1/0;for(let e=0;e<n.length;e++){let t=n[e];t.top<o&&(o=t.top)}return o>=r()&&o<=t?1:2}i.default.Component;let _=function(e){let t=i.default.useRef(null);return(0,i.useLayoutEffect)(()=>{let{focusAndScrollRef:r,cacheNode:n}=e,o=r.forceScroll?r.scrollRef:n.scrollRef;if(null===o||!o.current)return;let a=null,l=r.hashFragment;if(l){var u;if(null===(a="top"===(u=l)?document.body:document.getElementById(u)??document.getElementsByName(u)[0]??null)){o.current=!1,r.onlyHashChange=!1,r.hashFragment=null;return}}else a=t.current;if(null===a)return;let i=!1;(0,p.disableSmoothScrollDuringRouteTransition)(()=>{let e=document.documentElement,t=null,r=null,n=null,u=()=>{var r,o;let a,l;return null===n&&(r=e,o=t,n=!Number.isFinite(l=Number.parseFloat(a=getComputedStyle(r).scrollPaddingTop))||l<0?0:a.endsWith("px")?l:a.endsWith("%")?l/100*o:0),n};(l||(t=e.clientHeight,0!==(r=j(a,t,u))))&&((i=!0,o.current=!1,l)?a.scrollIntoView():1!==r&&(e.scrollTop=0,2===j(a,t,u)&&a.scrollIntoView()))},{dontForceLayout:!0,onlyHashChange:r.onlyHashChange}),i&&(r.onlyHashChange=!1,r.hashFragment=null)},void 0),(0,u.jsx)(i.Fragment,{ref:t,children:e.children})};function P({children:e,cacheNode:t}){let r=(0,i.useContext)(c.GlobalLayoutRouterContext);if(!r)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,u.jsx)(_,{focusAndScrollRef:r.focusAndScrollRef,cacheNode:t,children:e})}function C({tree:e,segmentPath:t,debugNameContext:r,cacheNode:n,params:o,url:a,isActive:l}){let s,f=(0,i.useContext)(c.GlobalLayoutRouterContext);if((0,i.useContext)(y.NavigationPromisesContext),!f)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let p=null!==n?n:(0,i.use)(d.unresolvedThenable),h=null!==p.prefetchRsc?p.prefetchRsc:p.rsc,m=(0,i.useDeferredValue)(p.rsc,h);if((0,x.isDeferredRsc)(m)){let e=(0,i.use)(m);null===e&&(0,i.use)(d.unresolvedThenable),s=e}else null===m&&(0,i.use)(d.unresolvedThenable),s=m;let b=s;return(0,u.jsx)(c.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:p,parentSegmentPath:t,parentParams:o,parentLoadingData:null,debugNameContext:r,url:a,isActive:l},children:b})}function O({loading:e,children:t}){let r=(0,i.use)(c.LayoutRouterContext);return null===r?t:(0,u.jsx)(c.LayoutRouterContext.Provider,{value:{parentTree:r.parentTree,parentCacheNode:r.parentCacheNode,parentSegmentPath:r.parentSegmentPath,parentParams:r.parentParams,parentLoadingData:e,debugNameContext:r.debugNameContext,url:r.url,isActive:r.isActive},children:t})}function S({name:e,loading:t,children:r}){if(null!==t){let n=t[0],o=t[1],a=t[2];return(0,u.jsx)(i.Suspense,{name:e,fallback:(0,u.jsxs)(u.Fragment,{children:[o,a,n]}),children:r})}return(0,u.jsx)(u.Fragment,{children:r})}function R({parallelRouterKey:e,error:t,errorStyles:r,errorScripts:n,templateStyles:o,templateScripts:a,template:l,notFound:s,forbidden:p,unauthorized:y,segmentViewBoundaries:x}){let j=(0,i.useContext)(c.LayoutRouterContext);if(!j)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:_,parentCacheNode:O,parentSegmentPath:E,parentParams:w,parentLoadingData:N,url:T,isActive:k,debugNameContext:M}=j,L=_[0],A=null===E?[e]:E.concat([L,e]),F=_[1][e],B=O.slots;(void 0===F||null===B)&&(0,i.use)(d.unresolvedThenable);let D=F[0],U=B[e]??null,I=(0,b.createRouterCacheKey)(D,!0),$=(0,g.useRouterBFCache)(F,U,I),H=[];do{let e=$.tree,i=$.cacheNode,d=$.stateKey,b=e[0],g=w;if(Array.isArray(b)){let e=b[0],t=b[1],r=b[2],n=(0,v.getParamValueFromCacheKey)(t,r);null!==n&&(g={...w,[e]:n})}let x=function(e){if("/"===e)return"/";if("string"==typeof e)if("(__SLOT__)"===e)return;else return e+"/";return e[1]+"/"}(b),j=x??M,_=void 0===x?void 0:M,O=(0,u.jsxs)(P,{cacheNode:i,children:[(0,u.jsx)(f.ErrorBoundary,{errorComponent:t,errorStyles:r,errorScripts:n,children:(0,u.jsx)(S,{name:_,loading:N,children:(0,u.jsx)(m.HTTPAccessFallbackBoundary,{notFound:s,forbidden:p,unauthorized:y,children:(0,u.jsxs)(h.RedirectBoundary,{children:[(0,u.jsx)(C,{url:T,tree:e,params:g,cacheNode:i,segmentPath:A,debugNameContext:j,isActive:k&&d===I}),null]})})})}),null]}),R=(0,u.jsxs)(c.TemplateContext.Provider,{value:O,children:[o,a,l]},d);H.push(R),$=$.next}while(null!==$)return H}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},37457,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return u}});let n=e.r(90809),o=e.r(43476),a=n._(e.r(71645)),l=e.r(8372);function u(){let e=(0,a.useContext)(l.TemplateContext);return(0,o.jsx)(o.Fragment,{children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},6831,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return o}});let n=new WeakMap;function o(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},14193,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(6831).createRenderParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},93504,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return o}});let n=new WeakMap;function o(e){let t=n.get(e);if(t)return t;let r=Promise.resolve(e);return n.set(e,r),r}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66996,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(93504).createRenderSearchParamsFromClient;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},15783,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createClientParams:function(){return a.createRenderParamsFromClient},createClientSearchParams:function(){return l.createRenderSearchParamsFromClient}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(14193),l=e.r(66996);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(71645);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=a(e,n)),t&&(o.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18967,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return g},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return x},NormalizeError:function(){return y},PageNotFoundError:function(){return v},SP:function(){return m},ST:function(){return b},WEB_VITALS:function(){return a},execOnce:function(){return l},getDisplayName:function(){return d},getLocationOrigin:function(){return s},getURL:function(){return c},isAbsoluteUrl:function(){return i},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return _}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function l(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let u=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,i=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&u.test(e)};function s(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=s();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,b=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class y extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class x extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function _(e){return JSON.stringify({message:e.message,stack:e.stack})}},27201,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"IconMark",{enumerable:!0,get:function(){return o}});let n=e.r(43476),o=()=>"u">typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})},91915,(e,t,r)=>{"use strict";function n(e,t={}){if(t.onlyHashChange)return void e();let r=document.documentElement;if("smooth"!==r.dataset.scrollBehavior)return void e();let o=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=o}e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}})},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(18967),o=e.r(52817);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return i},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function l(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function u(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,l(e));else t.set(r,l(n));return t}function i(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return u},formatWithValidation:function(){return s},urlObjectKeys:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(90809)._(e.r(98183)),l=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",u=e.hash||"",i=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(s+=":"+e.port)),i&&"object"==typeof i&&(i=String(a.urlQueryToSearchParams(i)));let c=e.search||i&&`?${i}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||l.test(n))&&!1!==s?(s="//"+(s||""),o&&"/"!==o[0]&&(o="/"+o)):s||(s=""),u&&"#"!==u[0]&&(u="#"+u),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${s}${o}${c}${u}`}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function s(e){return u(e)}},18566,(e,t,r)=>{t.exports=e.r(76562)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,28101,e=>{"use strict";var t=e.i(95187);let a=(0,t.createServerReference)("601983ac74197064585b90d8ec471f0d67787711d1",t.callServer,void 0,t.findSourceMapURL,"searchHookActivityAction");e.s(["searchHookActivityAction",0,a])},73520,e=>{"use strict";var t=e.i(43476),a=e.i(24071),r=e.i(67927);e.s(["default",0,function({currentPage:e,totalPages:l,onPageChange:s}){if(l<=1)return null;let o=e=>`px-3 py-2 text-sm rounded-md transition-colors flex items-center gap-1 bg-muted text-muted-foreground ${e?"opacity-50 cursor-not-allowed":"hover:bg-muted/80"}`;return(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 py-4",children:[(0,t.jsxs)("button",{onClick:()=>s(e-1),disabled:1===e,className:o(1===e),"aria-label":"Previous page",children:[(0,t.jsx)(a.ChevronLeft,{className:"w-4 h-4"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:"Previous"})]}),(0,t.jsx)("div",{className:"flex items-center gap-1",children:(()=>{if(l<=7)return Array.from({length:l},(e,t)=>t+1);let t=[1],a=Math.max(2,e-1),r=Math.min(l-1,e+1);e<=3&&(r=Math.min(5,l-1)),e>=l-2&&(a=Math.max(2,l-4)),a>2&&t.push("ellipsis-start");for(let e=a;e<=r;e++)t.push(e);return r<l-1&&t.push("ellipsis-end"),t.push(l),t})().map(a=>"string"==typeof a?(0,t.jsx)("span",{className:"px-2 text-muted-foreground",children:"..."},a):(0,t.jsx)("button",{onClick:()=>s(a),className:`min-w-[2.5rem] px-3 py-2 text-sm rounded-md transition-colors ${e===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:bg-muted/80"}`,"aria-label":`Page ${a}`,"aria-current":e===a?"page":void 0,children:a},a))}),(0,t.jsxs)("button",{onClick:()=>s(e+1),disabled:e===l,className:o(e===l),"aria-label":"Next page",children:[(0,t.jsx)("span",{className:"hidden sm:inline",children:"Next"}),(0,t.jsx)(r.ChevronRight,{className:"w-4 h-4"})]})]})}])},24578,e=>{"use strict";let t={claude:{id:"claude",label:"Claude Code",badgeClasses:"bg-orange-500/10 text-orange-400 border-orange-500/20"},codex:{id:"codex",label:"OpenAI Codex",badgeClasses:"bg-purple-500/10 text-purple-400 border-purple-500/20"},copilot:{id:"copilot",label:"GitHub Copilot",badgeClasses:"bg-blue-500/10 text-blue-400 border-blue-500/20"},cursor:{id:"cursor",label:"Cursor Agent",badgeClasses:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20"},opencode:{id:"opencode",label:"OpenCode",badgeClasses:"bg-amber-500/10 text-amber-400 border-amber-500/20"},pi:{id:"pi",label:"Pi",badgeClasses:"bg-pink-500/10 text-pink-400 border-pink-500/20"},hermes:{id:"hermes",label:"Hermes",badgeClasses:"bg-indigo-500/10 text-indigo-400 border-indigo-500/20"},openclaw:{id:"openclaw",label:"OpenClaw",badgeClasses:"bg-teal-500/10 text-teal-400 border-teal-500/20"},factory:{id:"factory",label:"Factory Droid",badgeClasses:"bg-rose-500/10 text-rose-400 border-rose-500/20"},devin:{id:"devin",label:"Devin CLI",badgeClasses:"bg-violet-500/10 text-violet-400 border-violet-500/20"},antigravity:{id:"antigravity",label:"Antigravity CLI",badgeClasses:"bg-cyan-500/10 text-cyan-400 border-cyan-500/20"},goose:{id:"goose",label:"Goose",badgeClasses:"bg-lime-500/10 text-lime-400 border-lime-500/20"}};e.s(["KNOWN_CLI_IDS",0,["claude","codex","copilot","cursor","opencode","pi","hermes","openclaw","factory","devin","antigravity","goose"],"getCliBadgeClasses",0,function(e){return t[e]?.badgeClasses??t.claude.badgeClasses},"getCliLabel",0,function(e){return t[e]?.label??e},"isKnownCli",0,function(e){return"string"==typeof e&&Object.prototype.hasOwnProperty.call(t,e)}])},34713,e=>{"use strict";e.s(["formatDuration",0,function(e){if(e<1e3)return`${e}ms`;let t=Math.round(e/100);if(t<600)return`${(t/10).toFixed(1)}s`;let a=Math.round(e/1e3);if(a<3600){let e=Math.floor(a/60);return`${e}m ${a%60}s`}let r=Math.round(e/6e4),l=Math.floor(r/60);return`${l}h ${r%60}m`},"formatRelativeTime",0,function(e){let t=Date.now()-e;return t<6e4?`${Math.max(1,Math.floor(t/1e3))}s ago`:t<36e5?`${Math.floor(t/6e4)}m ago`:t<864e5?`${Math.floor(t/36e5)}h ago`:`${Math.floor(t/864e5)}d ago`}])},80060,2711,e=>{"use strict";var t=e.i(18566),a=e.i(71645);function r(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${r}`}function l(e){var t;if(!e||(t=e,!/^\d{4}-\d{2}-\d{2}$/.test(t)||isNaN(Date.parse(t))))return null;let[a,r,l]=e.split("-").map(Number);return new Date(a,r-1,l,12,0,0)}e.s(["useUrlParams",0,function(){let e=(0,t.useSearchParams)(),r=(0,t.useRouter)(),l=(0,t.usePathname)(),s=(0,a.useRef)(null),o=(0,a.useCallback)(t=>e.get(t),[e]),i=(0,a.useCallback)(()=>new URLSearchParams(e.toString()),[e]),n=(0,a.useCallback)(t=>{s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{let a=new URLSearchParams(e.toString());for(let[e,r]of Object.entries(t))void 0===r||""===r?a.delete(e):a.set(e,r);let s=a.toString(),o=s?`${l}?${s}`:l;r.replace(o,{scroll:!1})},150)},[e,l,r]);return(0,a.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]),{get:o,getAll:i,setAll:n}}],80060),e.s(["dateRangeToParams",0,function(e){let t={};return e.from&&(t.from=r(e.from)),e.to&&(t.to=r(e.to)),t},"keywordsToParam",0,function(e){if(0!==e.length)return e.map(e=>encodeURIComponent(e)).join(",")},"pageToParam",0,function(e){return e<=1?void 0:String(e)},"paramToKeywords",0,function(e){return e?e.split(",").map(e=>decodeURIComponent(e.trim())).filter(e=>e.length>0):[]},"paramToPage",0,function(e){if(!e)return 1;let t=parseInt(e,10);return Number.isFinite(t)&&t>=1?t:1},"paramToPreset",0,function(e){return e&&["all","last-hour","today","last-7-days","last-30-days","custom"].includes(e)?e:"all"},"paramsToDateRange",0,function(e,t){return{from:l(e),to:l(t)}},"presetToParam",0,function(e){return"all"===e?void 0:e}],2711)},89664,e=>{"use strict";let t=(0,e.i(56420).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",0,t],89664)},24071,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",0,t],24071)},67927,e=>{"use strict";let t=(0,e.i(56420).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,t],67927)},8734,e=>{"use strict";let t=(0,e.i(56420).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",0,t],8734)},66794,e=>{"use strict";let t=(0,e.i(56420).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Settings",0,t],66794)},16306,e=>{"use strict";let t=(0,e.i(56420).default)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);e.s(["ShieldAlert",0,t],16306)},84026,29407,e=>{"use strict";var t=e.i(56420);let a=(0,t.default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["ShieldCheck",0,a],84026);let r=(0,t.default)("shield-x",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]);e.s(["ShieldX",0,r],29407)},82954,e=>{"use strict";let t=(0,e.i(56420).default)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);e.s(["Shield",0,t],82954)},63676,e=>{"use strict";let t=(0,e.i(56420).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);e.s(["X",0,t],63676)}]);