failproofai 1.0.1-beta.1 → 1.0.2-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 (1222) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +6 -6
  3. package/.next/standalone/.next/prerender-manifest.json +6 -6
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +3 -3
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js +2 -2
  8. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  14. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +3 -3
  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 +2 -2
  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 +3 -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 +5 -4
  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.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/auth/login-request/route.js +3 -3
  31. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js +4 -3
  33. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/auth/logout/route.js +4 -4
  35. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/api/auth/status/route.js +4 -4
  37. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +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/build-manifest.json +3 -3
  41. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  42. package/.next/standalone/.next/server/app/audit/page.js +3 -3
  43. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/index.html +1 -1
  46. package/.next/standalone/.next/server/app/index.rsc +15 -15
  47. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +14 -14
  48. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  49. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  50. package/.next/standalone/.next/server/app/page/build-manifest.json +3 -3
  51. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  52. package/.next/standalone/.next/server/app/page.js +2 -2
  53. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +3 -3
  56. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +66 -22
  57. package/.next/standalone/.next/server/app/policies/page.js +5 -4
  58. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +3 -3
  61. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  62. package/.next/standalone/.next/server/app/project/[name]/page.js +3 -3
  63. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  64. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +3 -3
  66. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  67. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  68. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +4 -4
  69. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +3 -3
  72. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  73. package/.next/standalone/.next/server/app/projects/page.js +3 -3
  74. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  75. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/settings/page/build-manifest.json +3 -3
  77. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +4 -4
  78. package/.next/standalone/.next/server/app/settings/page.js +2 -2
  79. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/chunks/{[externals]__1qzqcio._.js → [externals]__0e32-7c._.js} +1 -1
  82. package/.next/standalone/.next/server/chunks/[externals]__1s462yl._.js +3 -0
  83. package/.next/standalone/.next/server/chunks/[root-of-the-server]__01eqny5._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0_0xu5z._.js +1 -1
  85. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1p8poxd._.js → [root-of-the-server]__0igxt32._.js} +2 -2
  86. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0neqlu-._.js +3 -0
  87. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o07qi9._.js +3 -0
  88. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t9oqnn._.js +3 -0
  89. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1adacul._.js +5 -5
  90. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0ny9q5d._.js → [root-of-the-server]__1l-khtb._.js} +1 -1
  91. package/.next/standalone/.next/server/chunks/_0bs-v8p._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/_0tovk6q._.js +3 -0
  93. package/.next/standalone/.next/server/chunks/_0trp3yc._.js +3 -0
  94. package/.next/standalone/.next/server/chunks/_185gyk9._.js +3 -0
  95. package/.next/standalone/.next/server/chunks/_1ek68ln._.js +5 -6
  96. package/.next/standalone/.next/server/chunks/_1vslkoe._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/lib_telemetry-id_ts_1k8gj9o._.js +3 -0
  98. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +2 -2
  99. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_0f-x2b0._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_04op_ou._.js} +1 -1
  100. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +2 -2
  101. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_0hwvl7e._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_0dr20uz._.js} +1 -1
  102. package/.next/standalone/.next/server/chunks/{node_modules_posthog-node_dist_entrypoints_index_node_mjs_1ctjdzl._.js → node_modules_posthog-node_dist_entrypoints_index_node_mjs_0el6rg8._.js} +1 -1
  103. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  104. package/.next/standalone/.next/server/chunks/src_hooks_0xbw3bu._.js +12 -0
  105. package/.next/standalone/.next/server/chunks/src_hooks_fp-home_ts_09kv0bn._.js +1 -1
  106. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__013jr2b._.js +4 -0
  107. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01wy8d-._.js +4 -0
  108. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02npjtd._.js +4 -0
  109. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0spkm68._.js → [root-of-the-server]__07gm3zl._.js} +21 -20
  110. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cxe_2_._.js +2 -2
  111. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da85px._.js +4 -0
  112. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ftmoxc._.js +4 -0
  113. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__15c_z97._.js → [root-of-the-server]__0jzbk4_._.js} +1 -1
  114. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oa1lav._.js +1 -1
  115. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p-5p8u._.js +4 -0
  116. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s740oi._.js +6 -0
  117. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0zig5sv._.js +3 -0
  118. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__192nhvh._.js +5 -0
  119. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__07oh8b5._.js → [root-of-the-server]__1ctpynv._.js} +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__11z_299._.js → [root-of-the-server]__1m84s36._.js} +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1p2otjt._.js +4 -0
  122. package/.next/standalone/.next/server/chunks/ssr/_00e9tnf._.js +23 -0
  123. package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
  124. package/.next/standalone/.next/server/chunks/ssr/{_04j57fb._.js → _0h_douw._.js} +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/{_0qk91ba._.js → _12l4a_k._.js} +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/_1_ozgif._.js +1 -1
  127. package/.next/standalone/.next/server/chunks/ssr/{_0hom1s1._.js → _1u8-lu2._.js} +2 -2
  128. package/.next/standalone/.next/server/chunks/ssr/{_1q7j05x._.js → _1zopuov._.js} +2 -2
  129. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +13 -13
  130. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  131. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +2 -2
  132. package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +1 -1
  133. package/.next/standalone/.next/server/chunks/ssr/node_modules_13n822a._.js +3 -0
  134. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js +1 -1
  135. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +1 -1
  136. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +2 -2
  137. package/.next/standalone/.next/server/chunks/ssr/src_hooks_08o7bqo._.js +10 -0
  138. package/.next/standalone/.next/server/chunks/ssr/src_hooks_builtin-policies_ts_09j2ndl._.js +1 -1
  139. package/.next/standalone/.next/server/chunks/ssr/src_hooks_fp-home_ts_0je3xkv._.js +1 -1
  140. package/.next/standalone/.next/server/middleware-build-manifest.js +6 -6
  141. package/.next/standalone/.next/server/middleware.js +1 -1
  142. package/.next/standalone/.next/server/pages/404.html +1 -1
  143. package/.next/standalone/.next/server/pages/500.html +1 -1
  144. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  145. package/.next/standalone/.next/server/server-reference-manifest.json +71 -27
  146. package/.next/standalone/.next/static/chunks/{01b0vu6t3wtfh.js → 0eqky-7n7dgdm.js} +1 -1
  147. package/.next/standalone/.next/static/chunks/{1x9238y5kw9vi.js → 0sa9v5mhc8861.js} +13 -13
  148. package/.next/standalone/.next/static/chunks/1mfzsja6ftim5.css +2 -0
  149. package/.next/standalone/.next/static/chunks/{1cn6xl9lfp3ei.js → 1nuqytbta44af.js} +1 -1
  150. package/.next/standalone/.next/static/chunks/1oml7c7env4-g.js +31 -0
  151. package/.next/standalone/.next/static/chunks/1sl2xmn9inx3y.js +6 -0
  152. package/.next/standalone/.next/static/chunks/1za08zjcctyil.js +22 -0
  153. package/.next/standalone/.next/static/chunks/{25c48grb44a-n.js → 2aawsjld9ied_.js} +1 -1
  154. package/.next/standalone/.next/static/chunks/2gn7ut4svofm2.js +1 -0
  155. package/.next/standalone/.next/static/chunks/{1e_2h_-zvxnke.js → 2hs7ycvsav7v2.js} +1 -1
  156. package/.next/standalone/.next/static/chunks/{2hhselnqeo4ll.js → 2i2yt3hzjredm.js} +1 -1
  157. package/.next/standalone/.next/static/chunks/{0w-2enf8raksk.js → 35xg6retpe6rp.js} +1 -1
  158. package/.next/standalone/.next/static/chunks/{28bdm54bngvc7.js → 3y54nw0i7dsjl.js} +1 -1
  159. package/.next/standalone/.next/static/chunks/{turbopack-0-gxz80mjds94.js → turbopack-3kjgdgwci4tqf.js} +1 -1
  160. package/.next/standalone/SECURITY.md +5 -4
  161. package/.next/standalone/app/actions/get-hooks-config.ts +108 -17
  162. package/.next/standalone/app/actions/pack-actions.ts +153 -0
  163. package/.next/standalone/app/audit/_components/run-progress.tsx +1 -1
  164. package/.next/standalone/app/audit/_components/share-templates.ts +13 -13
  165. package/.next/standalone/app/policies/hooks-client.tsx +320 -14
  166. package/.next/standalone/components/navbar.tsx +2 -28
  167. package/.next/standalone/components/reach-developers.tsx +8 -1
  168. package/.next/standalone/docs-old/agenteye/alerts.mdx +63 -0
  169. package/.next/standalone/docs-old/agenteye/api-keys.mdx +280 -0
  170. package/.next/standalone/docs-old/agenteye/assistant.mdx +63 -0
  171. package/.next/standalone/docs-old/agenteye/audits.mdx +54 -0
  172. package/.next/standalone/docs-old/agenteye/cli-and-agents.mdx +80 -0
  173. package/.next/standalone/docs-old/agenteye/cli-recipes.mdx +179 -0
  174. package/.next/standalone/docs-old/agenteye/cli-skill.mdx +159 -0
  175. package/.next/standalone/docs-old/agenteye/cli.mdx +350 -0
  176. package/.next/standalone/docs-old/agenteye/codex-capture.mdx +55 -0
  177. package/.next/standalone/docs-old/agenteye/concepts.mdx +87 -0
  178. package/.next/standalone/docs-old/agenteye/dashboards.mdx +46 -0
  179. package/.next/standalone/docs-old/agenteye/error-tracking.mdx +41 -0
  180. package/.next/standalone/docs-old/agenteye/evaluation-suite.mdx +402 -0
  181. package/.next/standalone/docs-old/agenteye/evaluations.mdx +51 -0
  182. package/.next/standalone/docs-old/agenteye/evaluator-skill.mdx +167 -0
  183. package/.next/standalone/docs-old/agenteye/event-stream.mdx +50 -0
  184. package/.next/standalone/docs-old/agenteye/hermes-capture.mdx +53 -0
  185. package/.next/standalone/docs-old/agenteye/images/alert-new.png +0 -0
  186. package/.next/standalone/docs-old/agenteye/images/alerts.png +0 -0
  187. package/.next/standalone/docs-old/agenteye/images/api-keys.png +0 -0
  188. package/.next/standalone/docs-old/agenteye/images/assistant.png +0 -0
  189. package/.next/standalone/docs-old/agenteye/images/audits.png +0 -0
  190. package/.next/standalone/docs-old/agenteye/images/dashboard-fleet.png +0 -0
  191. package/.next/standalone/docs-old/agenteye/images/dashboard-quality.png +0 -0
  192. package/.next/standalone/docs-old/agenteye/images/errors.png +0 -0
  193. package/.next/standalone/docs-old/agenteye/images/events-stream.png +0 -0
  194. package/.next/standalone/docs-old/agenteye/images/hooks.png +0 -0
  195. package/.next/standalone/docs-old/agenteye/images/incident-detail.png +0 -0
  196. package/.next/standalone/docs-old/agenteye/images/incidents.png +0 -0
  197. package/.next/standalone/docs-old/agenteye/images/login.png +0 -0
  198. package/.next/standalone/docs-old/agenteye/images/models.png +0 -0
  199. package/.next/standalone/docs-old/agenteye/images/queries.png +0 -0
  200. package/.next/standalone/docs-old/agenteye/images/query-lab.png +0 -0
  201. package/.next/standalone/docs-old/agenteye/images/session-detail.png +0 -0
  202. package/.next/standalone/docs-old/agenteye/images/sessions-list.png +0 -0
  203. package/.next/standalone/docs-old/agenteye/images/settings.png +0 -0
  204. package/.next/standalone/docs-old/agenteye/images/tools.png +0 -0
  205. package/.next/standalone/docs-old/agenteye/images/users.png +0 -0
  206. package/.next/standalone/docs-old/agenteye/images/video-audit.jpg +0 -0
  207. package/.next/standalone/docs-old/agenteye/images/video-tracing.jpg +0 -0
  208. package/.next/standalone/docs-old/agenteye/incidents.mdx +50 -0
  209. package/.next/standalone/docs-old/agenteye/observability.mdx +23 -0
  210. package/.next/standalone/docs-old/agenteye/openclaw-capture.mdx +49 -0
  211. package/.next/standalone/docs-old/agenteye/overview.mdx +108 -0
  212. package/.next/standalone/docs-old/agenteye/python-sdk-skill.mdx +131 -0
  213. package/.next/standalone/docs-old/agenteye/python-sdk.mdx +460 -0
  214. package/.next/standalone/docs-old/agenteye/queries.mdx +56 -0
  215. package/.next/standalone/docs-old/agenteye/security.mdx +68 -0
  216. package/.next/standalone/docs-old/agenteye/sessions.mdx +57 -0
  217. package/.next/standalone/docs-old/agenteye/telemetry.mdx +52 -0
  218. package/.next/standalone/docs-old/ar/agenteye/alerts.mdx +63 -0
  219. package/.next/standalone/docs-old/ar/agenteye/api-keys.mdx +279 -0
  220. package/.next/standalone/docs-old/ar/agenteye/assistant.mdx +62 -0
  221. package/.next/standalone/docs-old/ar/agenteye/audits.mdx +55 -0
  222. package/.next/standalone/docs-old/ar/agenteye/cli-and-agents.mdx +81 -0
  223. package/.next/standalone/docs-old/ar/agenteye/cli-recipes.mdx +178 -0
  224. package/.next/standalone/docs-old/ar/agenteye/cli-skill.mdx +160 -0
  225. package/.next/standalone/docs-old/ar/agenteye/cli.mdx +349 -0
  226. package/.next/standalone/docs-old/ar/agenteye/codex-capture.mdx +56 -0
  227. package/.next/standalone/docs-old/ar/agenteye/concepts.mdx +88 -0
  228. package/.next/standalone/docs-old/ar/agenteye/dashboards.mdx +46 -0
  229. package/.next/standalone/docs-old/ar/agenteye/error-tracking.mdx +41 -0
  230. package/.next/standalone/docs-old/ar/agenteye/evaluation-suite.mdx +299 -0
  231. package/.next/standalone/docs-old/ar/agenteye/evaluations.mdx +51 -0
  232. package/.next/standalone/docs-old/ar/agenteye/evaluator-skill.mdx +168 -0
  233. package/.next/standalone/docs-old/ar/agenteye/event-stream.mdx +50 -0
  234. package/.next/standalone/docs-old/ar/agenteye/hermes-capture.mdx +54 -0
  235. package/.next/standalone/docs-old/ar/agenteye/incidents.mdx +51 -0
  236. package/.next/standalone/docs-old/ar/agenteye/observability.mdx +24 -0
  237. package/.next/standalone/docs-old/ar/agenteye/openclaw-capture.mdx +50 -0
  238. package/.next/standalone/docs-old/ar/agenteye/overview.mdx +108 -0
  239. package/.next/standalone/docs-old/ar/agenteye/python-sdk-skill.mdx +129 -0
  240. package/.next/standalone/docs-old/ar/agenteye/python-sdk.mdx +435 -0
  241. package/.next/standalone/docs-old/ar/agenteye/queries.mdx +57 -0
  242. package/.next/standalone/docs-old/ar/agenteye/security.mdx +68 -0
  243. package/.next/standalone/docs-old/ar/agenteye/sessions.mdx +58 -0
  244. package/.next/standalone/docs-old/ar/agenteye/telemetry.mdx +52 -0
  245. package/.next/standalone/docs-old/ar/architecture.mdx +333 -0
  246. package/.next/standalone/docs-old/ar/built-in-policies.mdx +860 -0
  247. package/.next/standalone/docs-old/ar/cli/audit.mdx +120 -0
  248. package/.next/standalone/docs-old/ar/cli/dashboard.mdx +30 -0
  249. package/.next/standalone/docs-old/ar/cli/environment-variables.mdx +70 -0
  250. package/.next/standalone/docs-old/ar/cli/hook.mdx +31 -0
  251. package/.next/standalone/docs-old/ar/cli/install-policies.mdx +57 -0
  252. package/.next/standalone/docs-old/ar/cli/list-policies.mdx +32 -0
  253. package/.next/standalone/docs-old/ar/cli/migrate.mdx +110 -0
  254. package/.next/standalone/docs-old/ar/cli/remove-policies.mdx +44 -0
  255. package/.next/standalone/docs-old/ar/cli/update.mdx +79 -0
  256. package/.next/standalone/docs-old/ar/cli/version.mdx +13 -0
  257. package/.next/standalone/docs-old/ar/configuration.mdx +268 -0
  258. package/.next/standalone/docs-old/ar/custom-policies.mdx +359 -0
  259. package/.next/standalone/docs-old/ar/dashboard.mdx +152 -0
  260. package/.next/standalone/docs-old/ar/examples.mdx +307 -0
  261. package/.next/standalone/docs-old/ar/for-agents.mdx +38 -0
  262. package/.next/standalone/docs-old/ar/getting-started.mdx +199 -0
  263. package/.next/standalone/docs-old/ar/introduction.mdx +58 -0
  264. package/.next/standalone/docs-old/ar/package-aliases.mdx +83 -0
  265. package/.next/standalone/docs-old/ar/testing.mdx +260 -0
  266. package/.next/standalone/docs-old/architecture.mdx +332 -0
  267. package/.next/standalone/docs-old/built-in-policies.mdx +859 -0
  268. package/.next/standalone/docs-old/cli/audit.mdx +188 -0
  269. package/.next/standalone/docs-old/cli/dashboard.mdx +29 -0
  270. package/.next/standalone/docs-old/cli/environment-variables.mdx +75 -0
  271. package/.next/standalone/docs-old/cli/hook.mdx +30 -0
  272. package/.next/standalone/docs-old/cli/install-policies.mdx +57 -0
  273. package/.next/standalone/docs-old/cli/list-policies.mdx +31 -0
  274. package/.next/standalone/docs-old/cli/migrate.mdx +117 -0
  275. package/.next/standalone/docs-old/cli/remove-policies.mdx +43 -0
  276. package/.next/standalone/docs-old/cli/update.mdx +94 -0
  277. package/.next/standalone/docs-old/cli/version.mdx +12 -0
  278. package/.next/standalone/docs-old/configuration.mdx +295 -0
  279. package/.next/standalone/docs-old/custom-policies.mdx +362 -0
  280. package/.next/standalone/docs-old/dashboard.mdx +176 -0
  281. package/.next/standalone/docs-old/de/agenteye/alerts.mdx +63 -0
  282. package/.next/standalone/docs-old/de/agenteye/api-keys.mdx +280 -0
  283. package/.next/standalone/docs-old/de/agenteye/assistant.mdx +63 -0
  284. package/.next/standalone/docs-old/de/agenteye/audits.mdx +54 -0
  285. package/.next/standalone/docs-old/de/agenteye/cli-and-agents.mdx +80 -0
  286. package/.next/standalone/docs-old/de/agenteye/cli-recipes.mdx +179 -0
  287. package/.next/standalone/docs-old/de/agenteye/cli-skill.mdx +159 -0
  288. package/.next/standalone/docs-old/de/agenteye/cli.mdx +350 -0
  289. package/.next/standalone/docs-old/de/agenteye/codex-capture.mdx +55 -0
  290. package/.next/standalone/docs-old/de/agenteye/concepts.mdx +87 -0
  291. package/.next/standalone/docs-old/de/agenteye/dashboards.mdx +46 -0
  292. package/.next/standalone/docs-old/de/agenteye/error-tracking.mdx +41 -0
  293. package/.next/standalone/docs-old/de/agenteye/evaluation-suite.mdx +300 -0
  294. package/.next/standalone/docs-old/de/agenteye/evaluations.mdx +50 -0
  295. package/.next/standalone/docs-old/de/agenteye/evaluator-skill.mdx +167 -0
  296. package/.next/standalone/docs-old/de/agenteye/event-stream.mdx +50 -0
  297. package/.next/standalone/docs-old/de/agenteye/hermes-capture.mdx +53 -0
  298. package/.next/standalone/docs-old/de/agenteye/incidents.mdx +50 -0
  299. package/.next/standalone/docs-old/de/agenteye/observability.mdx +23 -0
  300. package/.next/standalone/docs-old/de/agenteye/openclaw-capture.mdx +49 -0
  301. package/.next/standalone/docs-old/de/agenteye/overview.mdx +108 -0
  302. package/.next/standalone/docs-old/de/agenteye/python-sdk-skill.mdx +131 -0
  303. package/.next/standalone/docs-old/de/agenteye/python-sdk.mdx +436 -0
  304. package/.next/standalone/docs-old/de/agenteye/queries.mdx +56 -0
  305. package/.next/standalone/docs-old/de/agenteye/security.mdx +68 -0
  306. package/.next/standalone/docs-old/de/agenteye/sessions.mdx +57 -0
  307. package/.next/standalone/docs-old/de/agenteye/telemetry.mdx +52 -0
  308. package/.next/standalone/docs-old/de/architecture.mdx +332 -0
  309. package/.next/standalone/docs-old/de/built-in-policies.mdx +859 -0
  310. package/.next/standalone/docs-old/de/cli/audit.mdx +131 -0
  311. package/.next/standalone/docs-old/de/cli/dashboard.mdx +29 -0
  312. package/.next/standalone/docs-old/de/cli/environment-variables.mdx +72 -0
  313. package/.next/standalone/docs-old/de/cli/hook.mdx +30 -0
  314. package/.next/standalone/docs-old/de/cli/install-policies.mdx +57 -0
  315. package/.next/standalone/docs-old/de/cli/list-policies.mdx +31 -0
  316. package/.next/standalone/docs-old/de/cli/migrate.mdx +122 -0
  317. package/.next/standalone/docs-old/de/cli/remove-policies.mdx +43 -0
  318. package/.next/standalone/docs-old/de/cli/update.mdx +75 -0
  319. package/.next/standalone/docs-old/de/cli/version.mdx +12 -0
  320. package/.next/standalone/docs-old/de/configuration.mdx +272 -0
  321. package/.next/standalone/docs-old/de/custom-policies.mdx +358 -0
  322. package/.next/standalone/docs-old/de/dashboard.mdx +151 -0
  323. package/.next/standalone/docs-old/de/examples.mdx +307 -0
  324. package/.next/standalone/docs-old/de/for-agents.mdx +38 -0
  325. package/.next/standalone/docs-old/de/getting-started.mdx +199 -0
  326. package/.next/standalone/docs-old/de/introduction.mdx +57 -0
  327. package/.next/standalone/docs-old/de/package-aliases.mdx +82 -0
  328. package/.next/standalone/docs-old/de/testing.mdx +260 -0
  329. package/.next/standalone/docs-old/docs.json +1830 -0
  330. package/.next/standalone/docs-old/es/agenteye/alerts.mdx +63 -0
  331. package/.next/standalone/docs-old/es/agenteye/api-keys.mdx +280 -0
  332. package/.next/standalone/docs-old/es/agenteye/assistant.mdx +63 -0
  333. package/.next/standalone/docs-old/es/agenteye/audits.mdx +54 -0
  334. package/.next/standalone/docs-old/es/agenteye/cli-and-agents.mdx +80 -0
  335. package/.next/standalone/docs-old/es/agenteye/cli-recipes.mdx +178 -0
  336. package/.next/standalone/docs-old/es/agenteye/cli-skill.mdx +159 -0
  337. package/.next/standalone/docs-old/es/agenteye/cli.mdx +350 -0
  338. package/.next/standalone/docs-old/es/agenteye/codex-capture.mdx +55 -0
  339. package/.next/standalone/docs-old/es/agenteye/concepts.mdx +87 -0
  340. package/.next/standalone/docs-old/es/agenteye/dashboards.mdx +46 -0
  341. package/.next/standalone/docs-old/es/agenteye/error-tracking.mdx +41 -0
  342. package/.next/standalone/docs-old/es/agenteye/evaluation-suite.mdx +300 -0
  343. package/.next/standalone/docs-old/es/agenteye/evaluations.mdx +50 -0
  344. package/.next/standalone/docs-old/es/agenteye/evaluator-skill.mdx +167 -0
  345. package/.next/standalone/docs-old/es/agenteye/event-stream.mdx +50 -0
  346. package/.next/standalone/docs-old/es/agenteye/hermes-capture.mdx +53 -0
  347. package/.next/standalone/docs-old/es/agenteye/incidents.mdx +50 -0
  348. package/.next/standalone/docs-old/es/agenteye/observability.mdx +23 -0
  349. package/.next/standalone/docs-old/es/agenteye/openclaw-capture.mdx +49 -0
  350. package/.next/standalone/docs-old/es/agenteye/overview.mdx +108 -0
  351. package/.next/standalone/docs-old/es/agenteye/python-sdk-skill.mdx +135 -0
  352. package/.next/standalone/docs-old/es/agenteye/python-sdk.mdx +436 -0
  353. package/.next/standalone/docs-old/es/agenteye/queries.mdx +56 -0
  354. package/.next/standalone/docs-old/es/agenteye/security.mdx +68 -0
  355. package/.next/standalone/docs-old/es/agenteye/sessions.mdx +56 -0
  356. package/.next/standalone/docs-old/es/agenteye/telemetry.mdx +52 -0
  357. package/.next/standalone/docs-old/es/architecture.mdx +332 -0
  358. package/.next/standalone/docs-old/es/built-in-policies.mdx +853 -0
  359. package/.next/standalone/docs-old/es/cli/audit.mdx +137 -0
  360. package/.next/standalone/docs-old/es/cli/dashboard.mdx +29 -0
  361. package/.next/standalone/docs-old/es/cli/environment-variables.mdx +72 -0
  362. package/.next/standalone/docs-old/es/cli/hook.mdx +30 -0
  363. package/.next/standalone/docs-old/es/cli/install-policies.mdx +57 -0
  364. package/.next/standalone/docs-old/es/cli/list-policies.mdx +31 -0
  365. package/.next/standalone/docs-old/es/cli/migrate.mdx +86 -0
  366. package/.next/standalone/docs-old/es/cli/remove-policies.mdx +43 -0
  367. package/.next/standalone/docs-old/es/cli/update.mdx +64 -0
  368. package/.next/standalone/docs-old/es/cli/version.mdx +12 -0
  369. package/.next/standalone/docs-old/es/configuration.mdx +271 -0
  370. package/.next/standalone/docs-old/es/custom-policies.mdx +358 -0
  371. package/.next/standalone/docs-old/es/dashboard.mdx +151 -0
  372. package/.next/standalone/docs-old/es/examples.mdx +307 -0
  373. package/.next/standalone/docs-old/es/for-agents.mdx +38 -0
  374. package/.next/standalone/docs-old/es/getting-started.mdx +199 -0
  375. package/.next/standalone/docs-old/es/introduction.mdx +57 -0
  376. package/.next/standalone/docs-old/es/package-aliases.mdx +82 -0
  377. package/.next/standalone/docs-old/es/testing.mdx +260 -0
  378. package/.next/standalone/docs-old/examples.mdx +307 -0
  379. package/.next/standalone/docs-old/favicon.ico +0 -0
  380. package/.next/standalone/docs-old/for-agents.mdx +38 -0
  381. package/.next/standalone/docs-old/fr/agenteye/alerts.mdx +63 -0
  382. package/.next/standalone/docs-old/fr/agenteye/api-keys.mdx +280 -0
  383. package/.next/standalone/docs-old/fr/agenteye/assistant.mdx +63 -0
  384. package/.next/standalone/docs-old/fr/agenteye/audits.mdx +54 -0
  385. package/.next/standalone/docs-old/fr/agenteye/cli-and-agents.mdx +79 -0
  386. package/.next/standalone/docs-old/fr/agenteye/cli-recipes.mdx +179 -0
  387. package/.next/standalone/docs-old/fr/agenteye/cli-skill.mdx +159 -0
  388. package/.next/standalone/docs-old/fr/agenteye/cli.mdx +350 -0
  389. package/.next/standalone/docs-old/fr/agenteye/codex-capture.mdx +55 -0
  390. package/.next/standalone/docs-old/fr/agenteye/concepts.mdx +87 -0
  391. package/.next/standalone/docs-old/fr/agenteye/dashboards.mdx +46 -0
  392. package/.next/standalone/docs-old/fr/agenteye/error-tracking.mdx +40 -0
  393. package/.next/standalone/docs-old/fr/agenteye/evaluation-suite.mdx +401 -0
  394. package/.next/standalone/docs-old/fr/agenteye/evaluations.mdx +50 -0
  395. package/.next/standalone/docs-old/fr/agenteye/evaluator-skill.mdx +167 -0
  396. package/.next/standalone/docs-old/fr/agenteye/event-stream.mdx +50 -0
  397. package/.next/standalone/docs-old/fr/agenteye/hermes-capture.mdx +53 -0
  398. package/.next/standalone/docs-old/fr/agenteye/incidents.mdx +50 -0
  399. package/.next/standalone/docs-old/fr/agenteye/observability.mdx +23 -0
  400. package/.next/standalone/docs-old/fr/agenteye/openclaw-capture.mdx +49 -0
  401. package/.next/standalone/docs-old/fr/agenteye/overview.mdx +108 -0
  402. package/.next/standalone/docs-old/fr/agenteye/python-sdk-skill.mdx +135 -0
  403. package/.next/standalone/docs-old/fr/agenteye/python-sdk.mdx +436 -0
  404. package/.next/standalone/docs-old/fr/agenteye/queries.mdx +56 -0
  405. package/.next/standalone/docs-old/fr/agenteye/security.mdx +68 -0
  406. package/.next/standalone/docs-old/fr/agenteye/sessions.mdx +57 -0
  407. package/.next/standalone/docs-old/fr/agenteye/telemetry.mdx +52 -0
  408. package/.next/standalone/docs-old/fr/architecture.mdx +332 -0
  409. package/.next/standalone/docs-old/fr/built-in-policies.mdx +851 -0
  410. package/.next/standalone/docs-old/fr/cli/audit.mdx +126 -0
  411. package/.next/standalone/docs-old/fr/cli/dashboard.mdx +29 -0
  412. package/.next/standalone/docs-old/fr/cli/environment-variables.mdx +70 -0
  413. package/.next/standalone/docs-old/fr/cli/hook.mdx +30 -0
  414. package/.next/standalone/docs-old/fr/cli/install-policies.mdx +57 -0
  415. package/.next/standalone/docs-old/fr/cli/list-policies.mdx +31 -0
  416. package/.next/standalone/docs-old/fr/cli/migrate.mdx +86 -0
  417. package/.next/standalone/docs-old/fr/cli/remove-policies.mdx +43 -0
  418. package/.next/standalone/docs-old/fr/cli/update.mdx +64 -0
  419. package/.next/standalone/docs-old/fr/cli/version.mdx +12 -0
  420. package/.next/standalone/docs-old/fr/configuration.mdx +271 -0
  421. package/.next/standalone/docs-old/fr/custom-policies.mdx +358 -0
  422. package/.next/standalone/docs-old/fr/dashboard.mdx +151 -0
  423. package/.next/standalone/docs-old/fr/examples.mdx +307 -0
  424. package/.next/standalone/docs-old/fr/for-agents.mdx +38 -0
  425. package/.next/standalone/docs-old/fr/getting-started.mdx +199 -0
  426. package/.next/standalone/docs-old/fr/introduction.mdx +57 -0
  427. package/.next/standalone/docs-old/fr/package-aliases.mdx +82 -0
  428. package/.next/standalone/docs-old/fr/testing.mdx +260 -0
  429. package/.next/standalone/docs-old/getting-started.mdx +201 -0
  430. package/.next/standalone/docs-old/he/agenteye/alerts.mdx +63 -0
  431. package/.next/standalone/docs-old/he/agenteye/api-keys.mdx +279 -0
  432. package/.next/standalone/docs-old/he/agenteye/assistant.mdx +63 -0
  433. package/.next/standalone/docs-old/he/agenteye/audits.mdx +53 -0
  434. package/.next/standalone/docs-old/he/agenteye/cli-and-agents.mdx +80 -0
  435. package/.next/standalone/docs-old/he/agenteye/cli-recipes.mdx +179 -0
  436. package/.next/standalone/docs-old/he/agenteye/cli-skill.mdx +160 -0
  437. package/.next/standalone/docs-old/he/agenteye/cli.mdx +349 -0
  438. package/.next/standalone/docs-old/he/agenteye/codex-capture.mdx +56 -0
  439. package/.next/standalone/docs-old/he/agenteye/concepts.mdx +87 -0
  440. package/.next/standalone/docs-old/he/agenteye/dashboards.mdx +46 -0
  441. package/.next/standalone/docs-old/he/agenteye/error-tracking.mdx +41 -0
  442. package/.next/standalone/docs-old/he/agenteye/evaluation-suite.mdx +299 -0
  443. package/.next/standalone/docs-old/he/agenteye/evaluations.mdx +51 -0
  444. package/.next/standalone/docs-old/he/agenteye/evaluator-skill.mdx +168 -0
  445. package/.next/standalone/docs-old/he/agenteye/event-stream.mdx +50 -0
  446. package/.next/standalone/docs-old/he/agenteye/hermes-capture.mdx +54 -0
  447. package/.next/standalone/docs-old/he/agenteye/incidents.mdx +50 -0
  448. package/.next/standalone/docs-old/he/agenteye/observability.mdx +23 -0
  449. package/.next/standalone/docs-old/he/agenteye/openclaw-capture.mdx +50 -0
  450. package/.next/standalone/docs-old/he/agenteye/overview.mdx +108 -0
  451. package/.next/standalone/docs-old/he/agenteye/python-sdk-skill.mdx +132 -0
  452. package/.next/standalone/docs-old/he/agenteye/python-sdk.mdx +436 -0
  453. package/.next/standalone/docs-old/he/agenteye/queries.mdx +56 -0
  454. package/.next/standalone/docs-old/he/agenteye/security.mdx +67 -0
  455. package/.next/standalone/docs-old/he/agenteye/sessions.mdx +58 -0
  456. package/.next/standalone/docs-old/he/agenteye/telemetry.mdx +52 -0
  457. package/.next/standalone/docs-old/he/architecture.mdx +332 -0
  458. package/.next/standalone/docs-old/he/built-in-policies.mdx +857 -0
  459. package/.next/standalone/docs-old/he/cli/audit.mdx +116 -0
  460. package/.next/standalone/docs-old/he/cli/dashboard.mdx +30 -0
  461. package/.next/standalone/docs-old/he/cli/environment-variables.mdx +69 -0
  462. package/.next/standalone/docs-old/he/cli/hook.mdx +30 -0
  463. package/.next/standalone/docs-old/he/cli/install-policies.mdx +58 -0
  464. package/.next/standalone/docs-old/he/cli/list-policies.mdx +32 -0
  465. package/.next/standalone/docs-old/he/cli/migrate.mdx +87 -0
  466. package/.next/standalone/docs-old/he/cli/remove-policies.mdx +44 -0
  467. package/.next/standalone/docs-old/he/cli/update.mdx +64 -0
  468. package/.next/standalone/docs-old/he/cli/version.mdx +13 -0
  469. package/.next/standalone/docs-old/he/configuration.mdx +264 -0
  470. package/.next/standalone/docs-old/he/custom-policies.mdx +359 -0
  471. package/.next/standalone/docs-old/he/dashboard.mdx +155 -0
  472. package/.next/standalone/docs-old/he/examples.mdx +308 -0
  473. package/.next/standalone/docs-old/he/for-agents.mdx +38 -0
  474. package/.next/standalone/docs-old/he/getting-started.mdx +200 -0
  475. package/.next/standalone/docs-old/he/introduction.mdx +58 -0
  476. package/.next/standalone/docs-old/he/package-aliases.mdx +82 -0
  477. package/.next/standalone/docs-old/he/testing.mdx +260 -0
  478. package/.next/standalone/docs-old/hi/agenteye/alerts.mdx +62 -0
  479. package/.next/standalone/docs-old/hi/agenteye/api-keys.mdx +279 -0
  480. package/.next/standalone/docs-old/hi/agenteye/assistant.mdx +63 -0
  481. package/.next/standalone/docs-old/hi/agenteye/audits.mdx +53 -0
  482. package/.next/standalone/docs-old/hi/agenteye/cli-and-agents.mdx +80 -0
  483. package/.next/standalone/docs-old/hi/agenteye/cli-recipes.mdx +178 -0
  484. package/.next/standalone/docs-old/hi/agenteye/cli-skill.mdx +159 -0
  485. package/.next/standalone/docs-old/hi/agenteye/cli.mdx +350 -0
  486. package/.next/standalone/docs-old/hi/agenteye/codex-capture.mdx +56 -0
  487. package/.next/standalone/docs-old/hi/agenteye/concepts.mdx +87 -0
  488. package/.next/standalone/docs-old/hi/agenteye/dashboards.mdx +47 -0
  489. package/.next/standalone/docs-old/hi/agenteye/error-tracking.mdx +42 -0
  490. package/.next/standalone/docs-old/hi/agenteye/evaluation-suite.mdx +299 -0
  491. package/.next/standalone/docs-old/hi/agenteye/evaluations.mdx +51 -0
  492. package/.next/standalone/docs-old/hi/agenteye/evaluator-skill.mdx +171 -0
  493. package/.next/standalone/docs-old/hi/agenteye/event-stream.mdx +49 -0
  494. package/.next/standalone/docs-old/hi/agenteye/hermes-capture.mdx +53 -0
  495. package/.next/standalone/docs-old/hi/agenteye/incidents.mdx +50 -0
  496. package/.next/standalone/docs-old/hi/agenteye/observability.mdx +23 -0
  497. package/.next/standalone/docs-old/hi/agenteye/openclaw-capture.mdx +50 -0
  498. package/.next/standalone/docs-old/hi/agenteye/overview.mdx +107 -0
  499. package/.next/standalone/docs-old/hi/agenteye/python-sdk-skill.mdx +133 -0
  500. package/.next/standalone/docs-old/hi/agenteye/python-sdk.mdx +434 -0
  501. package/.next/standalone/docs-old/hi/agenteye/queries.mdx +57 -0
  502. package/.next/standalone/docs-old/hi/agenteye/security.mdx +68 -0
  503. package/.next/standalone/docs-old/hi/agenteye/sessions.mdx +57 -0
  504. package/.next/standalone/docs-old/hi/agenteye/telemetry.mdx +51 -0
  505. package/.next/standalone/docs-old/hi/architecture.mdx +332 -0
  506. package/.next/standalone/docs-old/hi/built-in-policies.mdx +848 -0
  507. package/.next/standalone/docs-old/hi/cli/audit.mdx +117 -0
  508. package/.next/standalone/docs-old/hi/cli/dashboard.mdx +29 -0
  509. package/.next/standalone/docs-old/hi/cli/environment-variables.mdx +64 -0
  510. package/.next/standalone/docs-old/hi/cli/hook.mdx +30 -0
  511. package/.next/standalone/docs-old/hi/cli/install-policies.mdx +57 -0
  512. package/.next/standalone/docs-old/hi/cli/list-policies.mdx +31 -0
  513. package/.next/standalone/docs-old/hi/cli/migrate.mdx +85 -0
  514. package/.next/standalone/docs-old/hi/cli/remove-policies.mdx +43 -0
  515. package/.next/standalone/docs-old/hi/cli/update.mdx +65 -0
  516. package/.next/standalone/docs-old/hi/cli/version.mdx +12 -0
  517. package/.next/standalone/docs-old/hi/configuration.mdx +264 -0
  518. package/.next/standalone/docs-old/hi/custom-policies.mdx +359 -0
  519. package/.next/standalone/docs-old/hi/dashboard.mdx +152 -0
  520. package/.next/standalone/docs-old/hi/examples.mdx +307 -0
  521. package/.next/standalone/docs-old/hi/for-agents.mdx +38 -0
  522. package/.next/standalone/docs-old/hi/getting-started.mdx +200 -0
  523. package/.next/standalone/docs-old/hi/introduction.mdx +58 -0
  524. package/.next/standalone/docs-old/hi/package-aliases.mdx +83 -0
  525. package/.next/standalone/docs-old/hi/testing.mdx +260 -0
  526. package/.next/standalone/docs-old/i18n/README.ar.md +231 -0
  527. package/.next/standalone/docs-old/i18n/README.de.md +226 -0
  528. package/.next/standalone/docs-old/i18n/README.es.md +226 -0
  529. package/.next/standalone/docs-old/i18n/README.fr.md +226 -0
  530. package/.next/standalone/docs-old/i18n/README.he.md +231 -0
  531. package/.next/standalone/docs-old/i18n/README.hi.md +223 -0
  532. package/.next/standalone/docs-old/i18n/README.it.md +226 -0
  533. package/.next/standalone/docs-old/i18n/README.ja.md +220 -0
  534. package/.next/standalone/docs-old/i18n/README.ko.md +226 -0
  535. package/.next/standalone/docs-old/i18n/README.pt-br.md +226 -0
  536. package/.next/standalone/docs-old/i18n/README.ru.md +223 -0
  537. package/.next/standalone/docs-old/i18n/README.tr.md +222 -0
  538. package/.next/standalone/docs-old/i18n/README.vi.md +226 -0
  539. package/.next/standalone/docs-old/i18n/README.zh.md +220 -0
  540. package/.next/standalone/docs-old/introduction.mdx +57 -0
  541. package/.next/standalone/docs-old/it/agenteye/alerts.mdx +62 -0
  542. package/.next/standalone/docs-old/it/agenteye/api-keys.mdx +279 -0
  543. package/.next/standalone/docs-old/it/agenteye/assistant.mdx +63 -0
  544. package/.next/standalone/docs-old/it/agenteye/audits.mdx +54 -0
  545. package/.next/standalone/docs-old/it/agenteye/cli-and-agents.mdx +80 -0
  546. package/.next/standalone/docs-old/it/agenteye/cli-recipes.mdx +179 -0
  547. package/.next/standalone/docs-old/it/agenteye/cli-skill.mdx +159 -0
  548. package/.next/standalone/docs-old/it/agenteye/cli.mdx +349 -0
  549. package/.next/standalone/docs-old/it/agenteye/codex-capture.mdx +56 -0
  550. package/.next/standalone/docs-old/it/agenteye/concepts.mdx +87 -0
  551. package/.next/standalone/docs-old/it/agenteye/dashboards.mdx +46 -0
  552. package/.next/standalone/docs-old/it/agenteye/error-tracking.mdx +41 -0
  553. package/.next/standalone/docs-old/it/agenteye/evaluation-suite.mdx +299 -0
  554. package/.next/standalone/docs-old/it/agenteye/evaluations.mdx +51 -0
  555. package/.next/standalone/docs-old/it/agenteye/evaluator-skill.mdx +170 -0
  556. package/.next/standalone/docs-old/it/agenteye/event-stream.mdx +50 -0
  557. package/.next/standalone/docs-old/it/agenteye/hermes-capture.mdx +53 -0
  558. package/.next/standalone/docs-old/it/agenteye/incidents.mdx +49 -0
  559. package/.next/standalone/docs-old/it/agenteye/observability.mdx +23 -0
  560. package/.next/standalone/docs-old/it/agenteye/openclaw-capture.mdx +49 -0
  561. package/.next/standalone/docs-old/it/agenteye/overview.mdx +107 -0
  562. package/.next/standalone/docs-old/it/agenteye/python-sdk-skill.mdx +132 -0
  563. package/.next/standalone/docs-old/it/agenteye/python-sdk.mdx +437 -0
  564. package/.next/standalone/docs-old/it/agenteye/queries.mdx +55 -0
  565. package/.next/standalone/docs-old/it/agenteye/security.mdx +68 -0
  566. package/.next/standalone/docs-old/it/agenteye/sessions.mdx +57 -0
  567. package/.next/standalone/docs-old/it/agenteye/telemetry.mdx +52 -0
  568. package/.next/standalone/docs-old/it/architecture.mdx +333 -0
  569. package/.next/standalone/docs-old/it/built-in-policies.mdx +853 -0
  570. package/.next/standalone/docs-old/it/cli/audit.mdx +126 -0
  571. package/.next/standalone/docs-old/it/cli/dashboard.mdx +30 -0
  572. package/.next/standalone/docs-old/it/cli/environment-variables.mdx +65 -0
  573. package/.next/standalone/docs-old/it/cli/hook.mdx +30 -0
  574. package/.next/standalone/docs-old/it/cli/install-policies.mdx +57 -0
  575. package/.next/standalone/docs-old/it/cli/list-policies.mdx +31 -0
  576. package/.next/standalone/docs-old/it/cli/migrate.mdx +122 -0
  577. package/.next/standalone/docs-old/it/cli/remove-policies.mdx +43 -0
  578. package/.next/standalone/docs-old/it/cli/update.mdx +86 -0
  579. package/.next/standalone/docs-old/it/cli/version.mdx +12 -0
  580. package/.next/standalone/docs-old/it/configuration.mdx +269 -0
  581. package/.next/standalone/docs-old/it/custom-policies.mdx +359 -0
  582. package/.next/standalone/docs-old/it/dashboard.mdx +151 -0
  583. package/.next/standalone/docs-old/it/examples.mdx +307 -0
  584. package/.next/standalone/docs-old/it/for-agents.mdx +38 -0
  585. package/.next/standalone/docs-old/it/getting-started.mdx +199 -0
  586. package/.next/standalone/docs-old/it/introduction.mdx +58 -0
  587. package/.next/standalone/docs-old/it/package-aliases.mdx +82 -0
  588. package/.next/standalone/docs-old/it/testing.mdx +261 -0
  589. package/.next/standalone/docs-old/ja/agenteye/alerts.mdx +63 -0
  590. package/.next/standalone/docs-old/ja/agenteye/api-keys.mdx +280 -0
  591. package/.next/standalone/docs-old/ja/agenteye/assistant.mdx +63 -0
  592. package/.next/standalone/docs-old/ja/agenteye/audits.mdx +54 -0
  593. package/.next/standalone/docs-old/ja/agenteye/cli-and-agents.mdx +80 -0
  594. package/.next/standalone/docs-old/ja/agenteye/cli-recipes.mdx +179 -0
  595. package/.next/standalone/docs-old/ja/agenteye/cli-skill.mdx +159 -0
  596. package/.next/standalone/docs-old/ja/agenteye/cli.mdx +350 -0
  597. package/.next/standalone/docs-old/ja/agenteye/codex-capture.mdx +55 -0
  598. package/.next/standalone/docs-old/ja/agenteye/concepts.mdx +87 -0
  599. package/.next/standalone/docs-old/ja/agenteye/dashboards.mdx +46 -0
  600. package/.next/standalone/docs-old/ja/agenteye/error-tracking.mdx +41 -0
  601. package/.next/standalone/docs-old/ja/agenteye/evaluation-suite.mdx +300 -0
  602. package/.next/standalone/docs-old/ja/agenteye/evaluations.mdx +51 -0
  603. package/.next/standalone/docs-old/ja/agenteye/evaluator-skill.mdx +167 -0
  604. package/.next/standalone/docs-old/ja/agenteye/event-stream.mdx +50 -0
  605. package/.next/standalone/docs-old/ja/agenteye/hermes-capture.mdx +53 -0
  606. package/.next/standalone/docs-old/ja/agenteye/incidents.mdx +50 -0
  607. package/.next/standalone/docs-old/ja/agenteye/observability.mdx +23 -0
  608. package/.next/standalone/docs-old/ja/agenteye/openclaw-capture.mdx +49 -0
  609. package/.next/standalone/docs-old/ja/agenteye/overview.mdx +108 -0
  610. package/.next/standalone/docs-old/ja/agenteye/python-sdk-skill.mdx +131 -0
  611. package/.next/standalone/docs-old/ja/agenteye/python-sdk.mdx +433 -0
  612. package/.next/standalone/docs-old/ja/agenteye/queries.mdx +56 -0
  613. package/.next/standalone/docs-old/ja/agenteye/security.mdx +68 -0
  614. package/.next/standalone/docs-old/ja/agenteye/sessions.mdx +57 -0
  615. package/.next/standalone/docs-old/ja/agenteye/telemetry.mdx +52 -0
  616. package/.next/standalone/docs-old/ja/architecture.mdx +332 -0
  617. package/.next/standalone/docs-old/ja/built-in-policies.mdx +848 -0
  618. package/.next/standalone/docs-old/ja/cli/audit.mdx +116 -0
  619. package/.next/standalone/docs-old/ja/cli/dashboard.mdx +29 -0
  620. package/.next/standalone/docs-old/ja/cli/environment-variables.mdx +63 -0
  621. package/.next/standalone/docs-old/ja/cli/hook.mdx +30 -0
  622. package/.next/standalone/docs-old/ja/cli/install-policies.mdx +57 -0
  623. package/.next/standalone/docs-old/ja/cli/list-policies.mdx +31 -0
  624. package/.next/standalone/docs-old/ja/cli/migrate.mdx +86 -0
  625. package/.next/standalone/docs-old/ja/cli/remove-policies.mdx +43 -0
  626. package/.next/standalone/docs-old/ja/cli/update.mdx +64 -0
  627. package/.next/standalone/docs-old/ja/cli/version.mdx +12 -0
  628. package/.next/standalone/docs-old/ja/configuration.mdx +264 -0
  629. package/.next/standalone/docs-old/ja/custom-policies.mdx +358 -0
  630. package/.next/standalone/docs-old/ja/dashboard.mdx +151 -0
  631. package/.next/standalone/docs-old/ja/examples.mdx +307 -0
  632. package/.next/standalone/docs-old/ja/for-agents.mdx +38 -0
  633. package/.next/standalone/docs-old/ja/getting-started.mdx +199 -0
  634. package/.next/standalone/docs-old/ja/introduction.mdx +57 -0
  635. package/.next/standalone/docs-old/ja/package-aliases.mdx +82 -0
  636. package/.next/standalone/docs-old/ja/testing.mdx +260 -0
  637. package/.next/standalone/docs-old/ko/agenteye/alerts.mdx +63 -0
  638. package/.next/standalone/docs-old/ko/agenteye/api-keys.mdx +280 -0
  639. package/.next/standalone/docs-old/ko/agenteye/assistant.mdx +63 -0
  640. package/.next/standalone/docs-old/ko/agenteye/audits.mdx +54 -0
  641. package/.next/standalone/docs-old/ko/agenteye/cli-and-agents.mdx +80 -0
  642. package/.next/standalone/docs-old/ko/agenteye/cli-recipes.mdx +179 -0
  643. package/.next/standalone/docs-old/ko/agenteye/cli-skill.mdx +159 -0
  644. package/.next/standalone/docs-old/ko/agenteye/cli.mdx +350 -0
  645. package/.next/standalone/docs-old/ko/agenteye/codex-capture.mdx +55 -0
  646. package/.next/standalone/docs-old/ko/agenteye/concepts.mdx +87 -0
  647. package/.next/standalone/docs-old/ko/agenteye/dashboards.mdx +46 -0
  648. package/.next/standalone/docs-old/ko/agenteye/error-tracking.mdx +40 -0
  649. package/.next/standalone/docs-old/ko/agenteye/evaluation-suite.mdx +303 -0
  650. package/.next/standalone/docs-old/ko/agenteye/evaluations.mdx +50 -0
  651. package/.next/standalone/docs-old/ko/agenteye/evaluator-skill.mdx +167 -0
  652. package/.next/standalone/docs-old/ko/agenteye/event-stream.mdx +50 -0
  653. package/.next/standalone/docs-old/ko/agenteye/hermes-capture.mdx +53 -0
  654. package/.next/standalone/docs-old/ko/agenteye/incidents.mdx +50 -0
  655. package/.next/standalone/docs-old/ko/agenteye/observability.mdx +23 -0
  656. package/.next/standalone/docs-old/ko/agenteye/openclaw-capture.mdx +49 -0
  657. package/.next/standalone/docs-old/ko/agenteye/overview.mdx +108 -0
  658. package/.next/standalone/docs-old/ko/agenteye/python-sdk-skill.mdx +130 -0
  659. package/.next/standalone/docs-old/ko/agenteye/python-sdk.mdx +433 -0
  660. package/.next/standalone/docs-old/ko/agenteye/queries.mdx +56 -0
  661. package/.next/standalone/docs-old/ko/agenteye/security.mdx +68 -0
  662. package/.next/standalone/docs-old/ko/agenteye/sessions.mdx +57 -0
  663. package/.next/standalone/docs-old/ko/agenteye/telemetry.mdx +52 -0
  664. package/.next/standalone/docs-old/ko/architecture.mdx +332 -0
  665. package/.next/standalone/docs-old/ko/built-in-policies.mdx +854 -0
  666. package/.next/standalone/docs-old/ko/cli/audit.mdx +131 -0
  667. package/.next/standalone/docs-old/ko/cli/dashboard.mdx +29 -0
  668. package/.next/standalone/docs-old/ko/cli/environment-variables.mdx +66 -0
  669. package/.next/standalone/docs-old/ko/cli/hook.mdx +30 -0
  670. package/.next/standalone/docs-old/ko/cli/install-policies.mdx +57 -0
  671. package/.next/standalone/docs-old/ko/cli/list-policies.mdx +31 -0
  672. package/.next/standalone/docs-old/ko/cli/migrate.mdx +86 -0
  673. package/.next/standalone/docs-old/ko/cli/remove-policies.mdx +43 -0
  674. package/.next/standalone/docs-old/ko/cli/update.mdx +64 -0
  675. package/.next/standalone/docs-old/ko/cli/version.mdx +12 -0
  676. package/.next/standalone/docs-old/ko/configuration.mdx +267 -0
  677. package/.next/standalone/docs-old/ko/custom-policies.mdx +358 -0
  678. package/.next/standalone/docs-old/ko/dashboard.mdx +151 -0
  679. package/.next/standalone/docs-old/ko/examples.mdx +307 -0
  680. package/.next/standalone/docs-old/ko/for-agents.mdx +38 -0
  681. package/.next/standalone/docs-old/ko/getting-started.mdx +199 -0
  682. package/.next/standalone/docs-old/ko/introduction.mdx +57 -0
  683. package/.next/standalone/docs-old/ko/package-aliases.mdx +82 -0
  684. package/.next/standalone/docs-old/ko/testing.mdx +260 -0
  685. package/.next/standalone/docs-old/logo/Failproof_AI_logo.png +0 -0
  686. package/.next/standalone/docs-old/logo/Failproof_AI_logo_light.png +0 -0
  687. package/.next/standalone/docs-old/package-aliases.mdx +82 -0
  688. package/.next/standalone/docs-old/pt-br/agenteye/alerts.mdx +63 -0
  689. package/.next/standalone/docs-old/pt-br/agenteye/api-keys.mdx +280 -0
  690. package/.next/standalone/docs-old/pt-br/agenteye/assistant.mdx +63 -0
  691. package/.next/standalone/docs-old/pt-br/agenteye/audits.mdx +54 -0
  692. package/.next/standalone/docs-old/pt-br/agenteye/cli-and-agents.mdx +80 -0
  693. package/.next/standalone/docs-old/pt-br/agenteye/cli-recipes.mdx +179 -0
  694. package/.next/standalone/docs-old/pt-br/agenteye/cli-skill.mdx +159 -0
  695. package/.next/standalone/docs-old/pt-br/agenteye/cli.mdx +350 -0
  696. package/.next/standalone/docs-old/pt-br/agenteye/codex-capture.mdx +55 -0
  697. package/.next/standalone/docs-old/pt-br/agenteye/concepts.mdx +87 -0
  698. package/.next/standalone/docs-old/pt-br/agenteye/dashboards.mdx +45 -0
  699. package/.next/standalone/docs-old/pt-br/agenteye/error-tracking.mdx +40 -0
  700. package/.next/standalone/docs-old/pt-br/agenteye/evaluation-suite.mdx +401 -0
  701. package/.next/standalone/docs-old/pt-br/agenteye/evaluations.mdx +51 -0
  702. package/.next/standalone/docs-old/pt-br/agenteye/evaluator-skill.mdx +167 -0
  703. package/.next/standalone/docs-old/pt-br/agenteye/event-stream.mdx +50 -0
  704. package/.next/standalone/docs-old/pt-br/agenteye/hermes-capture.mdx +53 -0
  705. package/.next/standalone/docs-old/pt-br/agenteye/incidents.mdx +50 -0
  706. package/.next/standalone/docs-old/pt-br/agenteye/observability.mdx +23 -0
  707. package/.next/standalone/docs-old/pt-br/agenteye/openclaw-capture.mdx +49 -0
  708. package/.next/standalone/docs-old/pt-br/agenteye/overview.mdx +108 -0
  709. package/.next/standalone/docs-old/pt-br/agenteye/python-sdk-skill.mdx +136 -0
  710. package/.next/standalone/docs-old/pt-br/agenteye/python-sdk.mdx +436 -0
  711. package/.next/standalone/docs-old/pt-br/agenteye/queries.mdx +56 -0
  712. package/.next/standalone/docs-old/pt-br/agenteye/security.mdx +68 -0
  713. package/.next/standalone/docs-old/pt-br/agenteye/sessions.mdx +56 -0
  714. package/.next/standalone/docs-old/pt-br/agenteye/telemetry.mdx +52 -0
  715. package/.next/standalone/docs-old/pt-br/architecture.mdx +332 -0
  716. package/.next/standalone/docs-old/pt-br/built-in-policies.mdx +858 -0
  717. package/.next/standalone/docs-old/pt-br/cli/audit.mdx +132 -0
  718. package/.next/standalone/docs-old/pt-br/cli/dashboard.mdx +29 -0
  719. package/.next/standalone/docs-old/pt-br/cli/environment-variables.mdx +72 -0
  720. package/.next/standalone/docs-old/pt-br/cli/hook.mdx +30 -0
  721. package/.next/standalone/docs-old/pt-br/cli/install-policies.mdx +57 -0
  722. package/.next/standalone/docs-old/pt-br/cli/list-policies.mdx +31 -0
  723. package/.next/standalone/docs-old/pt-br/cli/migrate.mdx +86 -0
  724. package/.next/standalone/docs-old/pt-br/cli/remove-policies.mdx +43 -0
  725. package/.next/standalone/docs-old/pt-br/cli/update.mdx +64 -0
  726. package/.next/standalone/docs-old/pt-br/cli/version.mdx +12 -0
  727. package/.next/standalone/docs-old/pt-br/configuration.mdx +268 -0
  728. package/.next/standalone/docs-old/pt-br/custom-policies.mdx +358 -0
  729. package/.next/standalone/docs-old/pt-br/dashboard.mdx +151 -0
  730. package/.next/standalone/docs-old/pt-br/examples.mdx +307 -0
  731. package/.next/standalone/docs-old/pt-br/for-agents.mdx +38 -0
  732. package/.next/standalone/docs-old/pt-br/getting-started.mdx +199 -0
  733. package/.next/standalone/docs-old/pt-br/introduction.mdx +57 -0
  734. package/.next/standalone/docs-old/pt-br/package-aliases.mdx +82 -0
  735. package/.next/standalone/docs-old/pt-br/testing.mdx +260 -0
  736. package/.next/standalone/docs-old/ru/agenteye/alerts.mdx +63 -0
  737. package/.next/standalone/docs-old/ru/agenteye/api-keys.mdx +280 -0
  738. package/.next/standalone/docs-old/ru/agenteye/assistant.mdx +63 -0
  739. package/.next/standalone/docs-old/ru/agenteye/audits.mdx +54 -0
  740. package/.next/standalone/docs-old/ru/agenteye/cli-and-agents.mdx +80 -0
  741. package/.next/standalone/docs-old/ru/agenteye/cli-recipes.mdx +179 -0
  742. package/.next/standalone/docs-old/ru/agenteye/cli-skill.mdx +159 -0
  743. package/.next/standalone/docs-old/ru/agenteye/cli.mdx +350 -0
  744. package/.next/standalone/docs-old/ru/agenteye/codex-capture.mdx +55 -0
  745. package/.next/standalone/docs-old/ru/agenteye/concepts.mdx +87 -0
  746. package/.next/standalone/docs-old/ru/agenteye/dashboards.mdx +46 -0
  747. package/.next/standalone/docs-old/ru/agenteye/error-tracking.mdx +41 -0
  748. package/.next/standalone/docs-old/ru/agenteye/evaluation-suite.mdx +401 -0
  749. package/.next/standalone/docs-old/ru/agenteye/evaluations.mdx +51 -0
  750. package/.next/standalone/docs-old/ru/agenteye/evaluator-skill.mdx +171 -0
  751. package/.next/standalone/docs-old/ru/agenteye/event-stream.mdx +51 -0
  752. package/.next/standalone/docs-old/ru/agenteye/hermes-capture.mdx +53 -0
  753. package/.next/standalone/docs-old/ru/agenteye/incidents.mdx +50 -0
  754. package/.next/standalone/docs-old/ru/agenteye/observability.mdx +23 -0
  755. package/.next/standalone/docs-old/ru/agenteye/openclaw-capture.mdx +49 -0
  756. package/.next/standalone/docs-old/ru/agenteye/overview.mdx +107 -0
  757. package/.next/standalone/docs-old/ru/agenteye/python-sdk-skill.mdx +131 -0
  758. package/.next/standalone/docs-old/ru/agenteye/python-sdk.mdx +437 -0
  759. package/.next/standalone/docs-old/ru/agenteye/queries.mdx +56 -0
  760. package/.next/standalone/docs-old/ru/agenteye/security.mdx +68 -0
  761. package/.next/standalone/docs-old/ru/agenteye/sessions.mdx +57 -0
  762. package/.next/standalone/docs-old/ru/agenteye/telemetry.mdx +52 -0
  763. package/.next/standalone/docs-old/ru/architecture.mdx +333 -0
  764. package/.next/standalone/docs-old/ru/built-in-policies.mdx +853 -0
  765. package/.next/standalone/docs-old/ru/cli/audit.mdx +132 -0
  766. package/.next/standalone/docs-old/ru/cli/dashboard.mdx +29 -0
  767. package/.next/standalone/docs-old/ru/cli/environment-variables.mdx +72 -0
  768. package/.next/standalone/docs-old/ru/cli/hook.mdx +30 -0
  769. package/.next/standalone/docs-old/ru/cli/install-policies.mdx +57 -0
  770. package/.next/standalone/docs-old/ru/cli/list-policies.mdx +31 -0
  771. package/.next/standalone/docs-old/ru/cli/migrate.mdx +91 -0
  772. package/.next/standalone/docs-old/ru/cli/remove-policies.mdx +44 -0
  773. package/.next/standalone/docs-old/ru/cli/update.mdx +64 -0
  774. package/.next/standalone/docs-old/ru/cli/version.mdx +12 -0
  775. package/.next/standalone/docs-old/ru/configuration.mdx +269 -0
  776. package/.next/standalone/docs-old/ru/custom-policies.mdx +358 -0
  777. package/.next/standalone/docs-old/ru/dashboard.mdx +155 -0
  778. package/.next/standalone/docs-old/ru/examples.mdx +307 -0
  779. package/.next/standalone/docs-old/ru/for-agents.mdx +38 -0
  780. package/.next/standalone/docs-old/ru/getting-started.mdx +199 -0
  781. package/.next/standalone/docs-old/ru/introduction.mdx +58 -0
  782. package/.next/standalone/docs-old/ru/package-aliases.mdx +82 -0
  783. package/.next/standalone/docs-old/ru/testing.mdx +260 -0
  784. package/.next/standalone/docs-old/styles/config/vocabularies/Mintlify/accept.txt +52 -0
  785. package/.next/standalone/docs-old/superpowers/specs/2026-06-11-audit-poster-restructure-design.md +332 -0
  786. package/.next/standalone/docs-old/testing.mdx +260 -0
  787. package/.next/standalone/docs-old/tr/agenteye/alerts.mdx +63 -0
  788. package/.next/standalone/docs-old/tr/agenteye/api-keys.mdx +279 -0
  789. package/.next/standalone/docs-old/tr/agenteye/assistant.mdx +63 -0
  790. package/.next/standalone/docs-old/tr/agenteye/audits.mdx +54 -0
  791. package/.next/standalone/docs-old/tr/agenteye/cli-and-agents.mdx +80 -0
  792. package/.next/standalone/docs-old/tr/agenteye/cli-recipes.mdx +179 -0
  793. package/.next/standalone/docs-old/tr/agenteye/cli-skill.mdx +161 -0
  794. package/.next/standalone/docs-old/tr/agenteye/cli.mdx +350 -0
  795. package/.next/standalone/docs-old/tr/agenteye/codex-capture.mdx +56 -0
  796. package/.next/standalone/docs-old/tr/agenteye/concepts.mdx +87 -0
  797. package/.next/standalone/docs-old/tr/agenteye/dashboards.mdx +46 -0
  798. package/.next/standalone/docs-old/tr/agenteye/error-tracking.mdx +41 -0
  799. package/.next/standalone/docs-old/tr/agenteye/evaluation-suite.mdx +299 -0
  800. package/.next/standalone/docs-old/tr/agenteye/evaluations.mdx +51 -0
  801. package/.next/standalone/docs-old/tr/agenteye/evaluator-skill.mdx +167 -0
  802. package/.next/standalone/docs-old/tr/agenteye/event-stream.mdx +50 -0
  803. package/.next/standalone/docs-old/tr/agenteye/hermes-capture.mdx +53 -0
  804. package/.next/standalone/docs-old/tr/agenteye/incidents.mdx +50 -0
  805. package/.next/standalone/docs-old/tr/agenteye/observability.mdx +23 -0
  806. package/.next/standalone/docs-old/tr/agenteye/openclaw-capture.mdx +50 -0
  807. package/.next/standalone/docs-old/tr/agenteye/overview.mdx +107 -0
  808. package/.next/standalone/docs-old/tr/agenteye/python-sdk-skill.mdx +130 -0
  809. package/.next/standalone/docs-old/tr/agenteye/python-sdk.mdx +436 -0
  810. package/.next/standalone/docs-old/tr/agenteye/queries.mdx +55 -0
  811. package/.next/standalone/docs-old/tr/agenteye/security.mdx +69 -0
  812. package/.next/standalone/docs-old/tr/agenteye/sessions.mdx +57 -0
  813. package/.next/standalone/docs-old/tr/agenteye/telemetry.mdx +52 -0
  814. package/.next/standalone/docs-old/tr/architecture.mdx +332 -0
  815. package/.next/standalone/docs-old/tr/built-in-policies.mdx +848 -0
  816. package/.next/standalone/docs-old/tr/cli/audit.mdx +117 -0
  817. package/.next/standalone/docs-old/tr/cli/dashboard.mdx +29 -0
  818. package/.next/standalone/docs-old/tr/cli/environment-variables.mdx +65 -0
  819. package/.next/standalone/docs-old/tr/cli/hook.mdx +31 -0
  820. package/.next/standalone/docs-old/tr/cli/install-policies.mdx +57 -0
  821. package/.next/standalone/docs-old/tr/cli/list-policies.mdx +31 -0
  822. package/.next/standalone/docs-old/tr/cli/migrate.mdx +87 -0
  823. package/.next/standalone/docs-old/tr/cli/remove-policies.mdx +43 -0
  824. package/.next/standalone/docs-old/tr/cli/update.mdx +88 -0
  825. package/.next/standalone/docs-old/tr/cli/version.mdx +12 -0
  826. package/.next/standalone/docs-old/tr/configuration.mdx +268 -0
  827. package/.next/standalone/docs-old/tr/custom-policies.mdx +358 -0
  828. package/.next/standalone/docs-old/tr/dashboard.mdx +152 -0
  829. package/.next/standalone/docs-old/tr/examples.mdx +307 -0
  830. package/.next/standalone/docs-old/tr/for-agents.mdx +38 -0
  831. package/.next/standalone/docs-old/tr/getting-started.mdx +199 -0
  832. package/.next/standalone/docs-old/tr/introduction.mdx +57 -0
  833. package/.next/standalone/docs-old/tr/package-aliases.mdx +82 -0
  834. package/.next/standalone/docs-old/tr/testing.mdx +261 -0
  835. package/.next/standalone/docs-old/vi/agenteye/alerts.mdx +63 -0
  836. package/.next/standalone/docs-old/vi/agenteye/api-keys.mdx +280 -0
  837. package/.next/standalone/docs-old/vi/agenteye/assistant.mdx +63 -0
  838. package/.next/standalone/docs-old/vi/agenteye/audits.mdx +54 -0
  839. package/.next/standalone/docs-old/vi/agenteye/cli-and-agents.mdx +80 -0
  840. package/.next/standalone/docs-old/vi/agenteye/cli-recipes.mdx +178 -0
  841. package/.next/standalone/docs-old/vi/agenteye/cli-skill.mdx +159 -0
  842. package/.next/standalone/docs-old/vi/agenteye/cli.mdx +349 -0
  843. package/.next/standalone/docs-old/vi/agenteye/codex-capture.mdx +55 -0
  844. package/.next/standalone/docs-old/vi/agenteye/concepts.mdx +88 -0
  845. package/.next/standalone/docs-old/vi/agenteye/dashboards.mdx +46 -0
  846. package/.next/standalone/docs-old/vi/agenteye/error-tracking.mdx +41 -0
  847. package/.next/standalone/docs-old/vi/agenteye/evaluation-suite.mdx +300 -0
  848. package/.next/standalone/docs-old/vi/agenteye/evaluations.mdx +51 -0
  849. package/.next/standalone/docs-old/vi/agenteye/evaluator-skill.mdx +171 -0
  850. package/.next/standalone/docs-old/vi/agenteye/event-stream.mdx +50 -0
  851. package/.next/standalone/docs-old/vi/agenteye/hermes-capture.mdx +53 -0
  852. package/.next/standalone/docs-old/vi/agenteye/incidents.mdx +50 -0
  853. package/.next/standalone/docs-old/vi/agenteye/observability.mdx +23 -0
  854. package/.next/standalone/docs-old/vi/agenteye/openclaw-capture.mdx +49 -0
  855. package/.next/standalone/docs-old/vi/agenteye/overview.mdx +109 -0
  856. package/.next/standalone/docs-old/vi/agenteye/python-sdk-skill.mdx +131 -0
  857. package/.next/standalone/docs-old/vi/agenteye/python-sdk.mdx +433 -0
  858. package/.next/standalone/docs-old/vi/agenteye/queries.mdx +55 -0
  859. package/.next/standalone/docs-old/vi/agenteye/security.mdx +68 -0
  860. package/.next/standalone/docs-old/vi/agenteye/sessions.mdx +57 -0
  861. package/.next/standalone/docs-old/vi/agenteye/telemetry.mdx +52 -0
  862. package/.next/standalone/docs-old/vi/architecture.mdx +332 -0
  863. package/.next/standalone/docs-old/vi/built-in-policies.mdx +853 -0
  864. package/.next/standalone/docs-old/vi/cli/audit.mdx +120 -0
  865. package/.next/standalone/docs-old/vi/cli/dashboard.mdx +29 -0
  866. package/.next/standalone/docs-old/vi/cli/environment-variables.mdx +69 -0
  867. package/.next/standalone/docs-old/vi/cli/hook.mdx +30 -0
  868. package/.next/standalone/docs-old/vi/cli/install-policies.mdx +57 -0
  869. package/.next/standalone/docs-old/vi/cli/list-policies.mdx +32 -0
  870. package/.next/standalone/docs-old/vi/cli/migrate.mdx +122 -0
  871. package/.next/standalone/docs-old/vi/cli/remove-policies.mdx +43 -0
  872. package/.next/standalone/docs-old/vi/cli/update.mdx +95 -0
  873. package/.next/standalone/docs-old/vi/cli/version.mdx +12 -0
  874. package/.next/standalone/docs-old/vi/configuration.mdx +268 -0
  875. package/.next/standalone/docs-old/vi/custom-policies.mdx +358 -0
  876. package/.next/standalone/docs-old/vi/dashboard.mdx +151 -0
  877. package/.next/standalone/docs-old/vi/examples.mdx +308 -0
  878. package/.next/standalone/docs-old/vi/for-agents.mdx +39 -0
  879. package/.next/standalone/docs-old/vi/getting-started.mdx +200 -0
  880. package/.next/standalone/docs-old/vi/introduction.mdx +57 -0
  881. package/.next/standalone/docs-old/vi/package-aliases.mdx +83 -0
  882. package/.next/standalone/docs-old/vi/testing.mdx +261 -0
  883. package/.next/standalone/docs-old/zh/agenteye/alerts.mdx +63 -0
  884. package/.next/standalone/docs-old/zh/agenteye/api-keys.mdx +280 -0
  885. package/.next/standalone/docs-old/zh/agenteye/assistant.mdx +63 -0
  886. package/.next/standalone/docs-old/zh/agenteye/audits.mdx +54 -0
  887. package/.next/standalone/docs-old/zh/agenteye/cli-and-agents.mdx +79 -0
  888. package/.next/standalone/docs-old/zh/agenteye/cli-recipes.mdx +179 -0
  889. package/.next/standalone/docs-old/zh/agenteye/cli-skill.mdx +159 -0
  890. package/.next/standalone/docs-old/zh/agenteye/cli.mdx +350 -0
  891. package/.next/standalone/docs-old/zh/agenteye/codex-capture.mdx +55 -0
  892. package/.next/standalone/docs-old/zh/agenteye/concepts.mdx +87 -0
  893. package/.next/standalone/docs-old/zh/agenteye/dashboards.mdx +46 -0
  894. package/.next/standalone/docs-old/zh/agenteye/error-tracking.mdx +40 -0
  895. package/.next/standalone/docs-old/zh/agenteye/evaluation-suite.mdx +300 -0
  896. package/.next/standalone/docs-old/zh/agenteye/evaluations.mdx +51 -0
  897. package/.next/standalone/docs-old/zh/agenteye/evaluator-skill.mdx +167 -0
  898. package/.next/standalone/docs-old/zh/agenteye/event-stream.mdx +50 -0
  899. package/.next/standalone/docs-old/zh/agenteye/hermes-capture.mdx +53 -0
  900. package/.next/standalone/docs-old/zh/agenteye/incidents.mdx +50 -0
  901. package/.next/standalone/docs-old/zh/agenteye/observability.mdx +23 -0
  902. package/.next/standalone/docs-old/zh/agenteye/openclaw-capture.mdx +49 -0
  903. package/.next/standalone/docs-old/zh/agenteye/overview.mdx +108 -0
  904. package/.next/standalone/docs-old/zh/agenteye/python-sdk-skill.mdx +131 -0
  905. package/.next/standalone/docs-old/zh/agenteye/python-sdk.mdx +433 -0
  906. package/.next/standalone/docs-old/zh/agenteye/queries.mdx +56 -0
  907. package/.next/standalone/docs-old/zh/agenteye/security.mdx +68 -0
  908. package/.next/standalone/docs-old/zh/agenteye/sessions.mdx +56 -0
  909. package/.next/standalone/docs-old/zh/agenteye/telemetry.mdx +52 -0
  910. package/.next/standalone/docs-old/zh/architecture.mdx +332 -0
  911. package/.next/standalone/docs-old/zh/built-in-policies.mdx +850 -0
  912. package/.next/standalone/docs-old/zh/cli/audit.mdx +115 -0
  913. package/.next/standalone/docs-old/zh/cli/dashboard.mdx +29 -0
  914. package/.next/standalone/docs-old/zh/cli/environment-variables.mdx +62 -0
  915. package/.next/standalone/docs-old/zh/cli/hook.mdx +30 -0
  916. package/.next/standalone/docs-old/zh/cli/install-policies.mdx +57 -0
  917. package/.next/standalone/docs-old/zh/cli/list-policies.mdx +31 -0
  918. package/.next/standalone/docs-old/zh/cli/migrate.mdx +86 -0
  919. package/.next/standalone/docs-old/zh/cli/remove-policies.mdx +43 -0
  920. package/.next/standalone/docs-old/zh/cli/update.mdx +65 -0
  921. package/.next/standalone/docs-old/zh/cli/version.mdx +12 -0
  922. package/.next/standalone/docs-old/zh/configuration.mdx +266 -0
  923. package/.next/standalone/docs-old/zh/custom-policies.mdx +358 -0
  924. package/.next/standalone/docs-old/zh/dashboard.mdx +151 -0
  925. package/.next/standalone/docs-old/zh/examples.mdx +307 -0
  926. package/.next/standalone/docs-old/zh/for-agents.mdx +38 -0
  927. package/.next/standalone/docs-old/zh/getting-started.mdx +199 -0
  928. package/.next/standalone/docs-old/zh/introduction.mdx +57 -0
  929. package/.next/standalone/docs-old/zh/package-aliases.mdx +82 -0
  930. package/.next/standalone/docs-old/zh/testing.mdx +260 -0
  931. package/.next/standalone/fp-cloud-cli/CHANGELOG.md +431 -0
  932. package/.next/standalone/fp-cloud-cli/LICENSE +42 -0
  933. package/.next/standalone/fp-cloud-cli/MANIFEST.in +10 -0
  934. package/.next/standalone/fp-cloud-cli/README.md +259 -0
  935. package/.next/standalone/fp-cloud-cli/fp_cli/__init__.py +10 -0
  936. package/.next/standalone/fp-cloud-cli/fp_cli/__main__.py +4 -0
  937. package/.next/standalone/fp-cloud-cli/fp_cli/_click_compat.py +64 -0
  938. package/.next/standalone/fp-cloud-cli/fp_cli/_context.py +332 -0
  939. package/.next/standalone/fp-cloud-cli/fp_cli/_version.py +1 -0
  940. package/.next/standalone/fp-cloud-cli/fp_cli/analytics.py +432 -0
  941. package/.next/standalone/fp-cloud-cli/fp_cli/analytics_config.py +77 -0
  942. package/.next/standalone/fp-cloud-cli/fp_cli/analytics_registry.py +83 -0
  943. package/.next/standalone/fp-cloud-cli/fp_cli/app.py +492 -0
  944. package/.next/standalone/fp-cloud-cli/fp_cli/auth.py +160 -0
  945. package/.next/standalone/fp-cloud-cli/fp_cli/client.py +1694 -0
  946. package/.next/standalone/fp-cloud-cli/fp_cli/commands/__init__.py +0 -0
  947. package/.next/standalone/fp-cloud-cli/fp_cli/commands/_write.py +214 -0
  948. package/.next/standalone/fp-cloud-cli/fp_cli/commands/agent_cmds.py +407 -0
  949. package/.next/standalone/fp-cloud-cli/fp_cli/commands/alerts_cmds.py +445 -0
  950. package/.next/standalone/fp-cloud-cli/fp_cli/commands/audits_cmds.py +1054 -0
  951. package/.next/standalone/fp-cloud-cli/fp_cli/commands/auth_cmds.py +512 -0
  952. package/.next/standalone/fp-cloud-cli/fp_cli/commands/errors_cmds.py +190 -0
  953. package/.next/standalone/fp-cloud-cli/fp_cli/commands/evals_cmds.py +161 -0
  954. package/.next/standalone/fp-cloud-cli/fp_cli/commands/events_cmds.py +159 -0
  955. package/.next/standalone/fp-cloud-cli/fp_cli/commands/fleet_cmds.py +416 -0
  956. package/.next/standalone/fp-cloud-cli/fp_cli/commands/guardrails_cmds.py +148 -0
  957. package/.next/standalone/fp-cloud-cli/fp_cli/commands/incidents_cmds.py +472 -0
  958. package/.next/standalone/fp-cloud-cli/fp_cli/commands/keys_cmds.py +407 -0
  959. package/.next/standalone/fp-cloud-cli/fp_cli/commands/list_cmds.py +63 -0
  960. package/.next/standalone/fp-cloud-cli/fp_cli/commands/orgs_cmds.py +319 -0
  961. package/.next/standalone/fp-cloud-cli/fp_cli/commands/policies_cmds.py +499 -0
  962. package/.next/standalone/fp-cloud-cli/fp_cli/commands/queries_cmds.py +378 -0
  963. package/.next/standalone/fp-cloud-cli/fp_cli/commands/sessions_cmds.py +151 -0
  964. package/.next/standalone/fp-cloud-cli/fp_cli/commands/settings_cmds.py +150 -0
  965. package/.next/standalone/fp-cloud-cli/fp_cli/commands/usage_cmds.py +35 -0
  966. package/.next/standalone/fp-cloud-cli/fp_cli/commands/users_cmds.py +404 -0
  967. package/.next/standalone/fp-cloud-cli/fp_cli/config.py +330 -0
  968. package/.next/standalone/fp-cloud-cli/fp_cli/dates.py +78 -0
  969. package/.next/standalone/fp-cloud-cli/fp_cli/enforcement.py +345 -0
  970. package/.next/standalone/fp-cloud-cli/fp_cli/errors.py +98 -0
  971. package/.next/standalone/fp-cloud-cli/fp_cli/models.py +891 -0
  972. package/.next/standalone/fp-cloud-cli/fp_cli/orgs.py +30 -0
  973. package/.next/standalone/fp-cloud-cli/fp_cli/output.py +6593 -0
  974. package/.next/standalone/fp-cloud-cli/fp_cli/permissions.py +208 -0
  975. package/.next/standalone/fp-cloud-cli/fp_cli/policy_check.py +290 -0
  976. package/.next/standalone/fp-cloud-cli/fp_cli/py.typed +0 -0
  977. package/.next/standalone/fp-cloud-cli/fp_cli/select.py +322 -0
  978. package/.next/standalone/fp-cloud-cli/fp_cli/theme.py +53 -0
  979. package/.next/standalone/fp-cloud-cli/pyproject.toml +106 -0
  980. package/.next/standalone/fp-cloud-cli/skill/SKILL.md +302 -0
  981. package/.next/standalone/fp-cloud-cli/skill/agents/openai.yaml +8 -0
  982. package/.next/standalone/fp-cloud-cli/skill/references/commands.md +254 -0
  983. package/.next/standalone/fp-cloud-cli/tests/__init__.py +0 -0
  984. package/.next/standalone/fp-cloud-cli/tests/conftest.py +92 -0
  985. package/.next/standalone/fp-cloud-cli/tests/test_alerting.py +644 -0
  986. package/.next/standalone/fp-cloud-cli/tests/test_analytics.py +385 -0
  987. package/.next/standalone/fp-cloud-cli/tests/test_audits.py +950 -0
  988. package/.next/standalone/fp-cloud-cli/tests/test_auth.py +98 -0
  989. package/.next/standalone/fp-cloud-cli/tests/test_auth_mode.py +272 -0
  990. package/.next/standalone/fp-cloud-cli/tests/test_click_compat.py +118 -0
  991. package/.next/standalone/fp-cloud-cli/tests/test_client.py +299 -0
  992. package/.next/standalone/fp-cloud-cli/tests/test_commands.py +814 -0
  993. package/.next/standalone/fp-cloud-cli/tests/test_config.py +99 -0
  994. package/.next/standalone/fp-cloud-cli/tests/test_dashboards_agent.py +340 -0
  995. package/.next/standalone/fp-cloud-cli/tests/test_dates.py +76 -0
  996. package/.next/standalone/fp-cloud-cli/tests/test_enforcement_logic.py +481 -0
  997. package/.next/standalone/fp-cloud-cli/tests/test_facets.py +170 -0
  998. package/.next/standalone/fp-cloud-cli/tests/test_failproofai_home.py +722 -0
  999. package/.next/standalone/fp-cloud-cli/tests/test_fp_home_contract.py +198 -0
  1000. package/.next/standalone/fp-cloud-cli/tests/test_hardening.py +186 -0
  1001. package/.next/standalone/fp-cloud-cli/tests/test_help_table_coverage.py +127 -0
  1002. package/.next/standalone/fp-cloud-cli/tests/test_keys_queries.py +496 -0
  1003. package/.next/standalone/fp-cloud-cli/tests/test_list.py +59 -0
  1004. package/.next/standalone/fp-cloud-cli/tests/test_multivalue.py +183 -0
  1005. package/.next/standalone/fp-cloud-cli/tests/test_no_customer_identifiers.py +168 -0
  1006. package/.next/standalone/fp-cloud-cli/tests/test_operator.py +492 -0
  1007. package/.next/standalone/fp-cloud-cli/tests/test_orgs.py +692 -0
  1008. package/.next/standalone/fp-cloud-cli/tests/test_output.py +1732 -0
  1009. package/.next/standalone/fp-cloud-cli/tests/test_policy_check.py +191 -0
  1010. package/.next/standalone/fp-cloud-cli/tests/test_readme_matches_reality.py +125 -0
  1011. package/.next/standalone/fp-cloud-cli/tests/test_review_fixes.py +161 -0
  1012. package/.next/standalone/fp-cloud-cli/tests/test_telemetry_completeness.py +90 -0
  1013. package/.next/standalone/fp-cloud-cli/tests/test_usage.py +115 -0
  1014. package/.next/standalone/fp-cloud-cli/tests/test_v1_origin_diagnostic.py +70 -0
  1015. package/.next/standalone/fp-cloud-cli/tests/test_v1_routing.py +214 -0
  1016. package/.next/standalone/fp-cloud-cli/tests/test_whoami.py +104 -0
  1017. package/.next/standalone/fp-cloud-cli/uv.lock +552 -0
  1018. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  1019. package/.next/standalone/node_modules/@swc/helpers/esm/_interop_require_default.js +4 -0
  1020. package/.next/standalone/node_modules/@swc/helpers/esm/_interop_require_wildcard.js +36 -0
  1021. package/.next/standalone/node_modules/@swc/helpers/package.json +703 -469
  1022. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  1023. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js +8 -6
  1024. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js +26 -20
  1025. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js +2 -1
  1026. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js +5 -2
  1027. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js +2 -1
  1028. package/.next/standalone/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js +3 -1
  1029. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/cache.js +150 -169
  1030. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/navigation-testing-lock.js +16 -54
  1031. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/navigation.js +115 -23
  1032. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/optimistic-routes.js +61 -6
  1033. package/.next/standalone/node_modules/next/dist/client/components/segment-cache/scheduler.js +53 -36
  1034. package/.next/standalone/node_modules/next/dist/client/route-params.js +4 -8
  1035. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +26 -26
  1036. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +26 -26
  1037. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-route-turbo.runtime.prod.js +2 -2
  1038. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +9 -9
  1039. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  1040. package/.next/standalone/node_modules/next/dist/lib/turbopack-cache-seed.js +15 -7
  1041. package/.next/standalone/node_modules/next/dist/server/app-render/app-render.js +2 -0
  1042. package/.next/standalone/node_modules/next/dist/server/app-render/dev-validation-worker-snapshot.js +2 -1
  1043. package/.next/standalone/node_modules/next/dist/server/async-storage/request-store.js +29 -20
  1044. package/.next/standalone/node_modules/next/dist/server/async-storage/work-store.js +1 -0
  1045. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  1046. package/.next/standalone/node_modules/next/dist/server/dev/dev-validation-worker-pool.js +90 -11
  1047. package/.next/standalone/node_modules/next/dist/server/dev/dev-validation-worker.js +51 -9
  1048. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +24 -4
  1049. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  1050. package/.next/standalone/node_modules/next/dist/server/dev/use-cache-probe-worker.js +1 -0
  1051. package/.next/standalone/node_modules/next/dist/server/image-optimizer.js +1 -0
  1052. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  1053. package/.next/standalone/node_modules/next/dist/server/lib/encode-header-safe.js +44 -0
  1054. package/.next/standalone/node_modules/next/dist/server/lib/implicit-tags.js +3 -3
  1055. package/.next/standalone/node_modules/next/dist/server/lib/patch-fetch.js +2 -2
  1056. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  1057. package/.next/standalone/node_modules/next/dist/server/use-cache/handlers.js +14 -0
  1058. package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-probe-scheduler.js +2 -1
  1059. package/.next/standalone/node_modules/next/dist/server/use-cache/use-cache-wrapper.js +100 -31
  1060. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/adapters/headers.js +88 -2
  1061. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/revalidate.js +12 -5
  1062. package/.next/standalone/node_modules/next/dist/server/web/spec-extension/unstable-cache.js +13 -1
  1063. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  1064. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  1065. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  1066. package/.next/standalone/node_modules/next/package.json +11 -11
  1067. package/.next/standalone/package.json +30 -23
  1068. package/.next/standalone/sdk/python/CHANGELOG.md +70 -0
  1069. package/.next/standalone/sdk/python/LICENSE +42 -0
  1070. package/.next/standalone/sdk/python/MANIFEST.in +21 -0
  1071. package/.next/standalone/sdk/python/README.md +466 -0
  1072. package/.next/standalone/sdk/python/docs/README.md +249 -0
  1073. package/.next/standalone/sdk/python/docs/_shared/README.md +43 -0
  1074. package/.next/standalone/sdk/python/docs/_shared/__init__.py +195 -0
  1075. package/.next/standalone/sdk/python/docs/crewai/README.md +328 -0
  1076. package/.next/standalone/sdk/python/docs/crewai/examples/quickstart.py +61 -0
  1077. package/.next/standalone/sdk/python/docs/crewai/examples/research_crew.py +92 -0
  1078. package/.next/standalone/sdk/python/docs/langgraph/README.md +481 -0
  1079. package/.next/standalone/sdk/python/docs/langgraph/examples/quickstart.py +51 -0
  1080. package/.next/standalone/sdk/python/docs/langgraph/examples/research_agent.py +86 -0
  1081. package/.next/standalone/sdk/python/docs/langgraph/examples/supervisor_handoff.py +83 -0
  1082. package/.next/standalone/sdk/python/docs/llama_index/README.md +332 -0
  1083. package/.next/standalone/sdk/python/docs/llama_index/examples/quickstart.py +62 -0
  1084. package/.next/standalone/sdk/python/docs/llama_index/examples/research_agent.py +93 -0
  1085. package/.next/standalone/sdk/python/docs/manual/README.md +491 -0
  1086. package/.next/standalone/sdk/python/docs/manual/examples/quickstart.py +57 -0
  1087. package/.next/standalone/sdk/python/docs/manual/examples/research_agent.py +133 -0
  1088. package/.next/standalone/sdk/python/docs/pydantic_ai/README.md +323 -0
  1089. package/.next/standalone/sdk/python/docs/pydantic_ai/examples/quickstart.py +48 -0
  1090. package/.next/standalone/sdk/python/docs/pydantic_ai/examples/research_agent.py +94 -0
  1091. package/.next/standalone/sdk/python/failproofai_sdk/__init__.py +131 -0
  1092. package/.next/standalone/sdk/python/failproofai_sdk/_context.py +218 -0
  1093. package/.next/standalone/sdk/python/failproofai_sdk/_environment.py +78 -0
  1094. package/.next/standalone/sdk/python/failproofai_sdk/_events.py +752 -0
  1095. package/.next/standalone/sdk/python/failproofai_sdk/_resolver.py +118 -0
  1096. package/.next/standalone/sdk/python/failproofai_sdk/_runtime.py +21 -0
  1097. package/.next/standalone/sdk/python/failproofai_sdk/_schema.py +317 -0
  1098. package/.next/standalone/sdk/python/failproofai_sdk/_scopes.py +422 -0
  1099. package/.next/standalone/sdk/python/failproofai_sdk/_version.py +1 -0
  1100. package/.next/standalone/sdk/python/failproofai_sdk/_writer.py +750 -0
  1101. package/.next/standalone/sdk/python/failproofai_sdk/integrations/__init__.py +274 -0
  1102. package/.next/standalone/sdk/python/failproofai_sdk/integrations/_compat.py +247 -0
  1103. package/.next/standalone/sdk/python/failproofai_sdk/integrations/_core.py +1076 -0
  1104. package/.next/standalone/sdk/python/failproofai_sdk/integrations/crewai.py +1669 -0
  1105. package/.next/standalone/sdk/python/failproofai_sdk/integrations/langchain.py +2151 -0
  1106. package/.next/standalone/sdk/python/failproofai_sdk/integrations/llama_index.py +1588 -0
  1107. package/.next/standalone/sdk/python/failproofai_sdk/integrations/pydantic_ai.py +977 -0
  1108. package/.next/standalone/sdk/python/failproofai_sdk/py.typed +0 -0
  1109. package/.next/standalone/sdk/python/pyproject.toml +92 -0
  1110. package/.next/standalone/sdk/python/skill/SKILL.md +399 -0
  1111. package/.next/standalone/sdk/python/skill/agents/openai.yaml +8 -0
  1112. package/.next/standalone/sdk/python/skill/references/events.md +234 -0
  1113. package/.next/standalone/sdk/python/skill/references/frameworks.md +314 -0
  1114. package/.next/standalone/sdk/python/skill/references/install.md +100 -0
  1115. package/.next/standalone/sdk/python/skill/references/integration.md +352 -0
  1116. package/.next/standalone/sdk/python/tests/__init__.py +0 -0
  1117. package/.next/standalone/sdk/python/tests/conftest.py +169 -0
  1118. package/.next/standalone/sdk/python/tests/integrations/__init__.py +6 -0
  1119. package/.next/standalone/sdk/python/tests/integrations/test_crewai.py +1299 -0
  1120. package/.next/standalone/sdk/python/tests/integrations/test_langchain.py +2338 -0
  1121. package/.next/standalone/sdk/python/tests/integrations/test_llama_index.py +1576 -0
  1122. package/.next/standalone/sdk/python/tests/integrations/test_pydantic_ai.py +1102 -0
  1123. package/.next/standalone/sdk/python/tests/test_context.py +410 -0
  1124. package/.next/standalone/sdk/python/tests/test_docs.py +411 -0
  1125. package/.next/standalone/sdk/python/tests/test_durability.py +1352 -0
  1126. package/.next/standalone/sdk/python/tests/test_encoding.py +571 -0
  1127. package/.next/standalone/sdk/python/tests/test_integrations.py +1127 -0
  1128. package/.next/standalone/sdk/python/tests/test_no_customer_identifiers.py +214 -0
  1129. package/.next/standalone/sdk/python/tests/test_packaging.py +185 -0
  1130. package/.next/standalone/sdk/python/tests/test_resolver_umbrella.py +178 -0
  1131. package/.next/standalone/sdk/python/tests/test_scopes.py +487 -0
  1132. package/.next/standalone/sdk/python/tests/test_sdk.py +923 -0
  1133. package/.next/standalone/sdk/python/tests/test_server_contract.py +650 -0
  1134. package/.next/standalone/sdk/python/tests/test_site_docs.py +371 -0
  1135. package/.next/standalone/sdk/python/tests/test_skill_snippets.py +165 -0
  1136. package/.next/standalone/sdk/python/tests/test_spool_contract.py +287 -0
  1137. package/.next/standalone/sdk/python/tests/test_spool_creation.py +360 -0
  1138. package/.next/standalone/sdk/python/tests/test_wire_format.py +279 -0
  1139. package/.next/standalone/sdk/python/tests/test_zero_dependencies.py +378 -0
  1140. package/.next/standalone/sdk/python/uv.lock +6005 -0
  1141. package/.next/standalone/server.js +1 -1
  1142. package/README.md +79 -23
  1143. package/bin/failproofai.mjs +145 -11
  1144. package/dist/cli.mjs +4483 -2206
  1145. package/dist/index.js +5 -5
  1146. package/dist/worker.mjs +2399 -1978
  1147. package/package.json +30 -23
  1148. package/policy-pack/SHA256SUMS +2 -0
  1149. package/policy-pack/failproofai-pack.json +732 -0
  1150. package/policy-pack/failproofai-pack.mjs +2017 -0
  1151. package/scripts/build-policy-pack.mjs +121 -0
  1152. package/scripts/changelog-section.py +77 -0
  1153. package/scripts/prune-standalone.mjs +3 -0
  1154. package/scripts/python-version.py +232 -0
  1155. package/scripts/release-announcement.mjs +686 -0
  1156. package/scripts/translate-docs/cli.ts +21 -0
  1157. package/scripts/translate-docs/config.ts +19 -1
  1158. package/scripts/translate-docs/mintlify-nav.ts +85 -13
  1159. package/scripts/translate-docs/translator.ts +66 -11
  1160. package/src/audit/cache.ts +40 -3
  1161. package/src/audit/cli.ts +1 -1
  1162. package/src/audit/index.ts +1 -1
  1163. package/src/audit/replay.ts +89 -3
  1164. package/src/audit/report.ts +5 -5
  1165. package/src/audit/schedule-cli.ts +49 -53
  1166. package/src/hooks/builtin-policies.ts +217 -579
  1167. package/src/hooks/cloud-enrollment-cli.ts +66 -27
  1168. package/src/hooks/cloud-managed-policies.ts +6 -1
  1169. package/src/hooks/configure-wizard.ts +1 -1
  1170. package/src/hooks/custom-hooks-loader.ts +89 -6
  1171. package/src/hooks/fp-home.ts +92 -4
  1172. package/src/hooks/fp-reset.ts +26 -2
  1173. package/src/hooks/handler.ts +181 -11
  1174. package/src/hooks/harness-cli.ts +79 -25
  1175. package/src/hooks/hook-activity-store.ts +13 -3
  1176. package/src/hooks/install-prompt.ts +25 -3
  1177. package/src/hooks/manager.ts +418 -172
  1178. package/src/hooks/migrations.ts +2 -2
  1179. package/src/hooks/pack-cli.ts +505 -0
  1180. package/src/hooks/pack-failclosed.ts +189 -0
  1181. package/src/hooks/pack-manifest.ts +344 -0
  1182. package/src/hooks/pack-store.ts +930 -0
  1183. package/src/hooks/policy-catalog.ts +535 -0
  1184. package/src/hooks/policy-evaluator.ts +24 -16
  1185. package/src/hooks/policy-presets.ts +4 -2
  1186. package/src/hooks/policy-registry.ts +8 -2
  1187. package/src/hooks/policy-types.ts +26 -0
  1188. package/src/hooks/session-pause-cli.ts +33 -9
  1189. package/src/hooks/tui.ts +570 -0
  1190. package/src/hooks/types.ts +15 -1
  1191. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0agdw2a._.js +0 -3
  1192. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0d1u_na._.js +0 -3
  1193. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0nne229._.js +0 -3
  1194. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0oy4kxb._.js +0 -3
  1195. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0zf034w._.js +0 -3
  1196. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1hstmft._.js +0 -3
  1197. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1tvn4wf._.js +0 -3
  1198. package/.next/standalone/.next/server/chunks/_0lxbzdq._.js +0 -3
  1199. package/.next/standalone/.next/server/chunks/_18ty6si._.js +0 -3
  1200. package/.next/standalone/.next/server/chunks/_1zuiiy3._.js +0 -3
  1201. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_1iiwm5e._.js +0 -3
  1202. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03eykvd._.js +0 -5
  1203. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0kgy9da._.js +0 -4
  1204. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0m98kzy._.js +0 -4
  1205. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0v5_91z._.js +0 -4
  1206. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-a3135._.js +0 -4
  1207. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1_dfocn._.js +0 -4
  1208. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1e5g_ur._.js +0 -4
  1209. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1hmqefd._.js +0 -4
  1210. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1kzapg5._.js +0 -6
  1211. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1zvtylo._.js +0 -3
  1212. package/.next/standalone/.next/server/chunks/ssr/_1wboum1._.js +0 -23
  1213. package/.next/standalone/.next/server/chunks/ssr/node_modules_1j2z5jb._.js +0 -3
  1214. package/.next/standalone/.next/static/chunks/13pe0rgzztjxa.js +0 -6
  1215. package/.next/standalone/.next/static/chunks/1xajksrefvav8.js +0 -1
  1216. package/.next/standalone/.next/static/chunks/2ts65czrjjd_k.js +0 -31
  1217. package/.next/standalone/.next/static/chunks/31orv9uidm1fn.js +0 -22
  1218. package/.next/standalone/.next/static/chunks/3wq9x0c-7ld5d.css +0 -2
  1219. package/.next/standalone/node_modules/next/dist/server/lib/encode-cache-tag.js +0 -45
  1220. /package/.next/standalone/.next/static/{zMC0Yqypg3GF82-3KN6ul → nwbyWT06Ud0XdXOrVJyvS}/_buildManifest.js +0 -0
  1221. /package/.next/standalone/.next/static/{zMC0Yqypg3GF82-3KN6ul → nwbyWT06Ud0XdXOrVJyvS}/_clientMiddlewareManifest.js +0 -0
  1222. /package/.next/standalone/.next/static/{zMC0Yqypg3GF82-3KN6ul → nwbyWT06Ud0XdXOrVJyvS}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,20706,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("00b801c035726aaa9d297e34f35258369a37177149",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 i(){for(let e of a)e()}function s(e){return a.add(e),()=>a.delete(e)}function l(){return n}function u({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)(s,l,l);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)(u,{message:e.message},e.id))})},"toast",0,function(e){let t=o++;n=[...n,{id:t,message:e}],i(),setTimeout(()=>{n=n.filter(e=>e.id!==t),i()},2500)}])},63780,e=>{"use strict";var t=e.i(43476),r=e.i(22016),n=e.i(18566),o=e.i(66794),a=e.i(71645),i=e.i(56420);let s=(0,i.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 l=e.i(16327);let u=(0,i.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"}]]),c=(0,i.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"}]]),d=(0,i.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"}]]),f=(0,i.default)("messages-square",[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]]),p=(0,i.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 h=e.i(67881);let g="failproofai@exosphere.host",m=[{label:"Star us on GitHub",icon:u,href:"https://github.com/failproofai/failproofai",color:"#f5c842",bg:"rgba(245,200,66,0.08)"},{label:"Documentation",icon:c,href:"https://docs.befailproof.ai/introduction",color:"#60a5fa",bg:"rgba(96,165,250,0.08)"},{label:"Join our Discord",icon:d,href:"https://discord.befailproof.ai/",color:"#5865f2",bg:"rgba(88,101,242,0.08)"},{label:"Join r/failproofai",icon:f,href:"https://www.reddit.com/r/failproofai/",color:"#ff4500",bg:"rgba(255,69,0,0.08)"},{label:"Feedback & Issues",icon:p,href:"https://github.com/FailproofAI/failproofai/issues/new/choose",color:"#34d399",bg:"rgba(52,211,153,0.08)"}],b=()=>{let[e,r]=(0,a.useState)(!1),n=(0,a.useCallback)(()=>r(!1),[]),o=(0,a.useCallback)(e=>{"Escape"===e.key&&r(!1)},[]);return(0,t.jsxs)("div",{className:"relative",onKeyDown:o,children:[e&&(0,t.jsx)("div",{className:"fixed inset-0 z-40",onClick:n,"aria-hidden":"true"}),(0,t.jsxs)(h.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>r(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)(s,{className:"h-4 w-4"}),(0,t.jsx)("span",{className:"hidden sm:inline text-xs whitespace-nowrap",children:"Reach Us"}),(0,t.jsx)(l.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:m.map(({label:e,icon:r,href:o,color:a,bg:i})=>(0,t.jsxs)("a",{href:o,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=i,e.currentTarget.style.color=a},onMouseLeave:e=>{e.currentTarget.style.background="",e.currentTarget.style.color=""},onClick:n,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:${g}`,className:"transition-colors",style:{color:"#e879f9"},onMouseEnter:e=>e.currentTarget.style.opacity="0.75",onMouseLeave:e=>e.currentTarget.style.opacity="1",children:g})]})})]})]})},v=(0,i.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 y=e.i(47163),x=e.i(85881);let j=[{label:"Off",value:0},{label:"5s",value:5},{label:"10s",value:10},{label:"30s",value:30}];function w({className:e}){let r=(0,n.useRouter)(),[o,i]=(0,a.useTransition)(),{intervalSec:s,setIntervalSec:l}=(0,x.useAutoRefresh)(),u=(0,a.useCallback)(()=>{i(()=>r.refresh())},[r]);(0,a.useEffect)(()=>{if(s<=0)return;let e=setInterval(u,1e3*s);return()=>clearInterval(e)},[s,u]);let c=s>0;return(0,t.jsxs)("div",{className:(0,y.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:u,title:"Refresh",className:(0,y.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)(v,{className:(0,y.cn)("w-3.5 h-3.5",o&&"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:j.map(e=>(0,t.jsx)("button",{onClick:()=>l(e.value),"aria-pressed":s===e.value,className:(0,y.cn)("px-2 py-1 text-[11px] font-medium rounded-md transition-colors",s===e.value?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:e.label},e.value))})]})}var k=e.i(12344);let C=[{href:"/projects",label:"projects"},{href:"/policies",label:"policies"},{href:"/audit",label:"audit"}];e.s(["Navbar",0,({disabledPages:e=[]})=>{let a=(0,n.usePathname)(),{capture:i}=(0,k.usePostHog)(),s=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:"/logo.svg",alt:"failproof_ai",style:{height:18,display:"block",flexShrink:0}})}),(0,t.jsx)("nav",{className:"tabs",style:{border:"none",padding:0,gap:0},children:C.filter(({href:t})=>{let r=t.slice(1);return!e.includes(r)}).map(({href:e,label:n})=>{let o="/projects"===e?"/projects"===a||a.startsWith("/project/"):a.startsWith(e);return(0,t.jsx)(r.default,{href:e,className:`tab${o?" is-active":""}`,"aria-current":o?"page":void 0,onClick:()=>{"/audit"===e&&i("audit_nav_clicked",{from_path:a,is_active_tab:o})},children:n},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.2-beta.0"]}),s&&(0,t.jsx)("span",{className:"h-brand-sep","aria-hidden":"true",children:"·"}),s&&(0,t.jsx)("span",{className:"h-brand-section",children:s})]}),(0,t.jsxs)("div",{className:"h-actions",children:[(0,t.jsx)(w,{}),(0,t.jsx)("span",{style:{width:1,height:18,background:"var(--line)",margin:"0 6px"}}),!e.includes("settings")&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.default,{href:"/settings",className:`h-icon-btn${a.startsWith("/settings")?" is-active":""}`,"aria-label":"settings","aria-current":a.startsWith("/settings")?"page":void 0,title:"settings",children:(0,t.jsx)(o.Settings,{className:"w-3.5 h-3.5",strokeWidth:1.75,"aria-hidden":"true"})}),(0,t.jsx)("span",{style:{width:1,height:18,background:"var(--line)",margin:"0 6px"}})]}),(0,t.jsx)(b,{})]})]})}],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},i)=>(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:i,...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(20706),a=e.i(9969);let i=(0,r.createContext)(void 0);e.s(["PostHogProvider",0,function({children:e}){let s=(0,n.usePathname)(),l=(0,r.useRef)(null),u=(0,r.useRef)(!1);(0,r.useEffect)(()=>{let e=!1;return(0,o.getTelemetryConfig)().then(t=>{e||((0,a.setClientTelemetryConfig)(t),u.current=!0,(0,a.captureClientEvent)("$pageview"),l.current=window.location.pathname)}),()=>{e=!0}},[]),(0,r.useEffect)(()=>{u.current&&l.current!==s&&(l.current=s,(0,a.captureClientEvent)("$pageview"))},[s]);let c=r.default.useCallback((e,t)=>{(0,a.captureClientEvent)(e,t)},[]);return(0,t.jsx)(i.Provider,{value:{capture:c},children:e})},"usePostHog",0,function(){let e=(0,r.useContext)(i);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 i=(0,t.forwardRef)(({className:i,...s},l)=>(0,t.createElement)(o.default,{ref:l,iconNode:a,className:(0,r.mergeClasses)(`lucide-${n(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,i),...s}));return i.displayName=n(e),i}],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)},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)},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:i,absoluteStrokeWidth:s,className:l="",children:u,iconNode:c,...d},f)=>{let{size:p=24,strokeWidth:h=2,absoluteStrokeWidth:g=!1,color:m="currentColor",className:b=""}=(0,r.useContext)(o)??{},v=s??g?24*Number(i??h)/Number(a??p):i??h;return(0,r.createElement)("svg",{ref:f,...n,width:a??p??n.width,height:a??p??n.height,stroke:e??m,strokeWidth:v,className:t("lucide",b,l),...!u&&!(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(u)?u:[u]])});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 s.createServerReference},findSourceMapURL:function(){return i.findSourceMapURL}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(32120),i=e.r(92245),s=e.r(35326)},22016,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return b},useLinkStatus:function(){return y}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(90809),i=e.r(43476),s=a._(e.r(71645)),l=e.r(95057),u=e.r(8372),c=e.r(18581),d=e.r(18967),f=e.r(5550),p=e.r(88540),h=e.r(91949),g=e.r(73668),m=e.r(9396);function b(t){var r;let n,o,a,[b,y]=(0,s.useOptimistic)(h.IDLE_LINK_STATUS),x=(0,s.useRef)(null),{href:j,as:w,children:k,prefetch:C=null,passHref:N,replace:E,shallow:_,scroll:S,onClick:P,onMouseEnter:T,onTouchStart:R,legacyBehavior:O=!1,onNavigate:M,transitionTypes:A,ref:L,unstable_dynamicOnHover:$,...U}=t;n=k,O&&("string"==typeof n||"number"==typeof n)&&(n=(0,i.jsx)("a",{children:n}));let I=s.default.useContext(u.AppRouterContext),W=!1!==C,z=!1===C?"none":!0===C?"full":"auto",B="none"!==z?"auto"===z?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,D="string"==typeof(r=w||j)?r:(0,l.formatUrl)(r);if(O){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=s.default.Children.only(n)}let F=O?o&&"object"==typeof o&&o.ref:L,H,K=s.default.useCallback(e=>(null!==I&&(x.current=(0,h.mountLinkInstance)(e,D,I,B,W,y,H)),()=>{x.current&&((0,h.unmountLinkForCurrentNavigation)(x.current),x.current=null),(0,h.unmountPrefetchableInstance)(e)}),[W,D,I,B,y,H]),q={ref:(0,c.useMergedRef)(K,F),onClick(t){O||"function"!=typeof P||P(t),O&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!I||t.defaultPrevented||function(t,r,n,o,a,i,l,u="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,g.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);s.default.startTransition(()=>{f(r,o?"replace":"push",!1===a?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,l,u)})}}(t,D,x,E,S,M,A,z)},onMouseEnter(e){O||"function"!=typeof T||T(e),O&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),I&&W&&(0,h.onNavigationIntent)(e.currentTarget,!0===$)},onTouchStart:function(e){O||"function"!=typeof R||R(e),O&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),I&&W&&(0,h.onNavigationIntent)(e.currentTarget,!0===$)}};return(0,d.isAbsoluteUrl)(D)?q.href=D:O&&!N&&("a"!==o.type||"href"in o.props)||(q.href=(0,f.addBasePath)(D)),a=O?s.default.cloneElement(o,q):(0,i.jsx)("a",{...U,...q,children:n}),(0,i.jsx)(v.Provider,{value:b,children:a})}let v=(0,s.createContext)(h.IDLE_LINK_STATUS),y=()=>(0,s.useContext)(v);("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 b},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return x},NormalizeError:function(){return v},PageNotFoundError:function(){return y},SP:function(){return g},ST:function(){return m},WEB_VITALS:function(){return a},execOnce:function(){return i},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return w}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&s.test(e)};function u(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=u();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 g="u">typeof performance,m=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class b extends Error{}class v extends Error{}class y 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 w(e){return JSON.stringify({message:e.message,stack:e.stack})}},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 l},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return s}};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 i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(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,i(e));else t.set(r,i(n));return t}function l(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 s},formatWithValidation:function(){return u},urlObjectKeys:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(90809)._(e.r(98183)),i=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",s=e.hash||"",l=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:r&&(u=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(u+=":"+e.port)),l&&"object"==typeof l&&(l=String(a.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==u?(u="//"+(u||""),o&&"/"!==o[0]&&(o="/"+o)):u||(u=""),s&&"#"!==s[0]&&(s="#"+s),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${u}${o}${c}${s}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return s(e)}},18566,(e,t,r)=>{t.exports=e.r(76562)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,53348,e=>{"use strict";var r=e.i(43476),t=e.i(71645),n=e.i(59135),i=e.i(9969);e.s(["default",0,function({error:e,reset:o}){return(0,t.useEffect)(()=>{(0,n.getTelemetryConfig)().then(r=>{(0,i.setClientTelemetryConfig)(r),(0,i.captureClientEvent)("client_error",{error_message:e.message,error_name:e.name,error_digest:e.digest,boundary:"global"})}).catch(()=>{})},[e]),(0,r.jsx)("html",{children:(0,r.jsx)("body",{children:(0,r.jsx)("main",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#031035",color:"#f8fafc",fontFamily:"system-ui, sans-serif"},children:(0,r.jsxs)("div",{style:{textAlign:"center",padding:"2rem",border:"1px solid rgba(239,68,68,0.4)",borderRadius:"0.5rem",maxWidth:"500px"},children:[(0,r.jsx)("h2",{style:{color:"#ef4444",marginBottom:"0.5rem",fontSize:"1.25rem"},children:"Something went wrong"}),(0,r.jsx)("p",{style:{color:"#94a3b8",marginBottom:"1.5rem"},children:e.message||"An unexpected error occurred."}),(0,r.jsx)("button",{onClick:o,style:{padding:"0.5rem 1.25rem",background:"#3b82f6",color:"white",border:"none",borderRadius:"0.375rem",cursor:"pointer",fontSize:"0.875rem"},children:"Try again"})]})})})})}])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,53348,e=>{"use strict";var r=e.i(43476),t=e.i(71645),n=e.i(20706),i=e.i(9969);e.s(["default",0,function({error:e,reset:o}){return(0,t.useEffect)(()=>{(0,n.getTelemetryConfig)().then(r=>{(0,i.setClientTelemetryConfig)(r),(0,i.captureClientEvent)("client_error",{error_message:e.message,error_name:e.name,error_digest:e.digest,boundary:"global"})}).catch(()=>{})},[e]),(0,r.jsx)("html",{children:(0,r.jsx)("body",{children:(0,r.jsx)("main",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#031035",color:"#f8fafc",fontFamily:"system-ui, sans-serif"},children:(0,r.jsxs)("div",{style:{textAlign:"center",padding:"2rem",border:"1px solid rgba(239,68,68,0.4)",borderRadius:"0.5rem",maxWidth:"500px"},children:[(0,r.jsx)("h2",{style:{color:"#ef4444",marginBottom:"0.5rem",fontSize:"1.25rem"},children:"Something went wrong"}),(0,r.jsx)("p",{style:{color:"#94a3b8",marginBottom:"1.5rem"},children:e.message||"An unexpected error occurred."}),(0,r.jsx)("button",{onClick:o,style:{padding:"0.5rem 1.25rem",background:"#3b82f6",color:"white",border:"none",borderRadius:"0.375rem",cursor:"pointer",fontSize:"0.875rem"},children:"Try again"})]})})})})}])}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24380,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(8734),o=e.i(89664),l=e.i(47163);function u(e){let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t);try{return t.select(),document.execCommand("copy")}finally{document.body.removeChild(t)}}e.s(["CopyButton",0,function({text:e,className:a}){let[i,c]=(0,r.useState)(!1),s=(0,r.useRef)(void 0);(0,r.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]);let d=(0,r.useCallback)(()=>{s.current&&clearTimeout(s.current),c(!0),s.current=setTimeout(()=>c(!1),2e3)},[]),f=(0,r.useCallback)(async()=>{try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(e);else if(!u(e))throw Error("Both clipboard methods failed");d()}catch(t){console.error("Failed to copy to clipboard:",t);try{u(e)&&d()}catch{}}},[e,d]);return(0,t.jsx)("button",{type:"button",onClick:f,title:"Copy to clipboard",className:(0,l.cn)("inline-flex items-center justify-center rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted/80 transition-colors",a),children:i?(0,t.jsx)(o.Check,{className:"w-3.5 h-3.5 text-green-500"}):(0,t.jsx)(n.Copy,{className:"w-3.5 h-3.5"})})}])},69186,e=>{"use strict";var t=e.i(43476);let r=(0,e.i(70703).default)(()=>e.A(79348),{loadableGenerated:{modules:[5780]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"bg-card border border-border rounded-lg p-4 shadow-sm",children:(0,t.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,t.jsx)("div",{className:"animate-pulse text-muted-foreground",children:"Loading log viewer..."})})})});e.s(["default",0,function({entries:e,projectName:n,sessionId:o}){return(0,t.jsx)(r,{entries:e,projectName:n,sessionId:o})}])},79348,e=>{e.v(t=>Promise.all(["static/chunks/25c48grb44a-n.js","static/chunks/01b0vu6t3wtfh.js"].map(t=>e.l(t))).then(()=>t(5780)))},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)},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)},90317,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return c},createAsyncLocalStorage:function(){return i},createSnapshot:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let l=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class u{disable(){throw l}getStore(){}run(){throw l}exit(){throw l}enterWith(){throw l}static bind(e){return e}}let a="u">typeof globalThis&&globalThis.AsyncLocalStorage;function i(){return a?new a:new u}function c(e){return a?a.bind(e):u.bind(e)}function s(){return a?a.snapshot():function(e,...t){return e(...t)}}},42344,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},63599,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(42344)},9885,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},67585,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return o}});let n=e.r(32061);function o({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},52157,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return i}});let n=e.r(43476),o=e.r(74080),l=e.r(63599),u=e.r(9885),a=e.r(43369);function i({moduleIds:e}){if("u">typeof window)return null;let t=l.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}if(0===r.length)return null;let c=(0,a.getAssetTokenQuery)();return(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,u.encodeURIPath)(e)}${c}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,o.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let n=e.r(43476),o=e.r(71645),l=e.r(67585),u=e.r(52157);function a(e){return{default:e&&"default"in e?e.default:e}}let i={loader:()=>Promise.resolve(a(()=>null)),loading:null,ssr:!0},c=function(e){let t={...i,...e},r=(0,o.lazy)(()=>t.loader().then(a)),c=t.loading;function s(e){let a=c?(0,n.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,i=!t.ssr||!!t.loading,s=i?o.Suspense:o.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"<typeof window?(0,n.jsx)(u.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(s,{...i?{fallback:a}:{},children:d})}return s.displayName="LoadableComponent",s}},70703,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(55682)._(e.r(69093));function o(e,t){let r={};"function"==typeof e&&(r.loader=e);let o={...r,...t};return(0,n.default)({...o,modules:o.loadableGenerated?.modules})}("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)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24380,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(8734),o=e.i(89664),l=e.i(47163);function a(e){let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t);try{return t.select(),document.execCommand("copy")}finally{document.body.removeChild(t)}}e.s(["CopyButton",0,function({text:e,className:u}){let[i,c]=(0,r.useState)(!1),s=(0,r.useRef)(void 0);(0,r.useEffect)(()=>()=>{s.current&&clearTimeout(s.current)},[]);let d=(0,r.useCallback)(()=>{s.current&&clearTimeout(s.current),c(!0),s.current=setTimeout(()=>c(!1),2e3)},[]),f=(0,r.useCallback)(async()=>{try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(e);else if(!a(e))throw Error("Both clipboard methods failed");d()}catch(t){console.error("Failed to copy to clipboard:",t);try{a(e)&&d()}catch{}}},[e,d]);return(0,t.jsx)("button",{type:"button",onClick:f,title:"Copy to clipboard",className:(0,l.cn)("inline-flex items-center justify-center rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted/80 transition-colors",u),children:i?(0,t.jsx)(o.Check,{className:"w-3.5 h-3.5 text-green-500"}):(0,t.jsx)(n.Copy,{className:"w-3.5 h-3.5"})})}])},69186,e=>{"use strict";var t=e.i(43476);let r=(0,e.i(70703).default)(()=>e.A(79348),{loadableGenerated:{modules:[5780]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"bg-card border border-border rounded-lg p-4 shadow-sm",children:(0,t.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,t.jsx)("div",{className:"animate-pulse text-muted-foreground",children:"Loading log viewer..."})})})});e.s(["default",0,function({entries:e,projectName:n,sessionId:o}){return(0,t.jsx)(r,{entries:e,projectName:n,sessionId:o})}])},79348,e=>{e.v(t=>Promise.all(["static/chunks/2aawsjld9ied_.js","static/chunks/0eqky-7n7dgdm.js"].map(t=>e.l(t))).then(()=>t(5780)))},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)},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)},90317,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return c},createAsyncLocalStorage:function(){return i},createSnapshot:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let l=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class a{disable(){throw l}getStore(){}run(){throw l}exit(){throw l}enterWith(){throw l}static bind(e){return e}}let u="u">typeof globalThis&&globalThis.AsyncLocalStorage;function i(){return u?new u:new a}function c(e){return u?u.bind(e):a.bind(e)}function s(){return u?u.snapshot():function(e,...t){return e(...t)}}},42344,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},63599,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(42344)},9885,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},67585,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return o}});let n=e.r(32061);function o({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new n.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},52157,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return i}});let n=e.r(43476),o=e.r(74080),l=e.r(63599),a=e.r(9885),u=e.r(43369);function i({moduleIds:e}){if("u">typeof window)return null;let t=l.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}if(0===r.length)return null;let c=(0,u.getAssetTokenQuery)();return(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,a.encodeURIPath)(e)}${c}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,o.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return c}});let n=e.r(43476),o=e.r(71645),l=e.r(67585),a=e.r(52157);function u(e){return{default:e&&"default"in e?e.default:e}}let i={loader:()=>Promise.resolve(u(()=>null)),loading:null,ssr:!0},c=function(e){let t={...i,...e},r=(0,o.lazy)(()=>t.loader().then(u)),c=t.loading;function s(e){let u=c?(0,n.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,i=!t.ssr||!!t.loading,s=i?o.Suspense:o.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"<typeof window?(0,n.jsx)(a.PreloadChunks,{moduleIds:t.modules}):null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(l.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(s,{...i?{fallback:u}:{},children:d})}return s.displayName="LoadableComponent",s}},70703,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(55682)._(e.r(69093));function o(e,t){let r={};"function"==typeof e&&(r.loader=e);let o={...r,...t};return(0,n.default)({...o,modules:o.loadableGenerated?.modules})}("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)}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,64237,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(12344),n=e.i(29054);let i=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function r(e){if((0,n.isAbortError)(e))return"request timed out. check your network and try again.";let t=e instanceof Error?e.message:String(e);return`network error: ${t}`}e.s(["AuthDialog",0,function({open:e,headline:l="where to route the reminder?",subhead:o="we'll send a one-time code to confirm.",onClose:c,onAuthed:d,source:u="unknown"}){let{capture:h}=(0,s.usePostHog)(),[m,f]=(0,a.useState)({kind:"email",error:null}),[b,p]=(0,a.useState)(!1),v=(0,a.useRef)(!1),x=(0,a.useRef)(null),g=(0,a.useRef)(null);(0,a.useEffect)(()=>{e&&(f({kind:"email",error:null}),p(!1),v.current=!1,h("audit_auth_dialog_opened",{source:u}))},[h,e,u]);let y=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(e){y.current=!0;return}y.current&&!v.current&&h("audit_auth_dialog_dismissed",{source:u,step:m.kind}),y.current=!1},[h,e,u,m.kind]),(0,a.useEffect)(()=>{if(!e)return;let t=setTimeout(()=>{"email"===m.kind?x.current?.focus():"code"===m.kind&&g.current?.focus()},50);return()=>clearTimeout(t)},[e,m.kind]),(0,a.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"!==e.key||b||c()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,b,c]);let w="code"===m.kind&&m.resendIn>0;(0,a.useEffect)(()=>{if(!w)return;let e=setInterval(()=>{f(e=>"code"===e.kind?{...e,resendIn:Math.max(0,e.resendIn-1)}:e)},1e3);return()=>clearInterval(e)},[w]);let j=(0,a.useCallback)(async(e,t={})=>{let{isResend:a=!1}=t,s=e=>{a?f(t=>"code"===t.kind?{...t,error:e}:t):f({kind:"email",error:e})};p(!0);try{let t=await (0,n.fetchWithTimeout)("/api/auth/login-request",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({email:e})}),a=await t.json().catch(()=>({}));if(!t.ok){let e=a.message??"could not send code.";"rate_limited"===a.code&&void 0!==a.retry_after_secs?e=`too many tries. wait ${a.retry_after_secs}s and try again.`:"upstream_unreachable"===a.code&&(e="api-server unreachable. check your network."),s(e);return}f({kind:"code",email:e,error:null,expiresIn:a.expires_in??600,resendIn:a.resend_available_in??30})}catch(e){s(r(e))}finally{p(!1)}},[]),k=(0,a.useCallback)(async(e,t)=>{p(!0);try{let a=await (0,n.fetchWithTimeout)("/api/auth/login-verify",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({email:e,code:t})}),s=await a.json().catch(()=>({}));if(!a.ok||!s.authenticated||!s.user){let e=s.message??"invalid code.";"invalid_code"===s.code&&(e="wrong code, or it expired. try again."),f(t=>"code"===t.kind?{...t,error:e}:t);return}v.current=!0,h("audit_auth_dialog_succeeded",{source:u}),f({kind:"done",user:s.user}),d(s.user)}catch(t){let e=r(t);f(t=>"code"===t.kind?{...t,error:e}:t)}finally{p(!1)}},[h,d,u]),N=(0,a.useCallback)(async e=>{if(e.preventDefault(),b||"email"!==m.kind)return;let t=String(new FormData(e.currentTarget).get("email")??"").trim().toLowerCase();i.test(t)?await j(t):f({kind:"email",error:"that doesn't look like an email."})},[b,m,j]),S=(0,a.useCallback)(async e=>{if(e.preventDefault(),b||"code"!==m.kind)return;let t=String(new FormData(e.currentTarget).get("code")??"").trim();t.length<4||t.length>12?f(e=>"code"===e.kind?{...e,error:"code is 4–12 characters."}:e):await k(m.email,t)},[b,m,k]),C=(0,a.useCallback)(async()=>{"code"!==m.kind||m.resendIn>0||b||await j(m.email,{isResend:!0})},[m,b,j]);return e?(0,t.jsx)("div",{className:"auth-dialog-backdrop",role:"dialog","aria-modal":"true","aria-labelledby":"auth-dialog-title",onClick:e=>{b||e.target!==e.currentTarget||c()},children:(0,t.jsxs)("div",{className:"auth-dialog",children:[(0,t.jsx)("button",{type:"button",className:"auth-close",onClick:c,disabled:b,"aria-label":"close",children:"×"}),(0,t.jsx)("h2",{id:"auth-dialog-title",className:"auth-headline",children:l}),"email"===m.kind&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"auth-sub",children:o}),(0,t.jsxs)("form",{onSubmit:N,className:"auth-form",children:[(0,t.jsx)("input",{ref:x,id:"auth-dialog-email",name:"email",type:"email",autoComplete:"email",inputMode:"email",spellCheck:!1,placeholder:"you@yourdomain.com",disabled:b,className:"auth-input",required:!0}),m.error&&(0,t.jsx)("div",{className:"auth-error",children:m.error}),(0,t.jsxs)("div",{className:"auth-actions",children:[(0,t.jsx)("button",{type:"submit",className:"auth-btn primary",disabled:b,children:b?"sending…":"send code"}),(0,t.jsx)("button",{type:"button",className:"auth-btn",onClick:c,disabled:b,children:"cancel"})]})]})]}),"code"===m.kind&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"auth-sub",children:["code sent to ",(0,t.jsx)("span",{className:"auth-email",children:m.email}),". expires in ",Math.ceil(m.expiresIn/60)," min."]}),(0,t.jsxs)("form",{onSubmit:S,className:"auth-form",children:[(0,t.jsx)("input",{ref:g,id:"auth-dialog-code",name:"code",type:"text",inputMode:"numeric",autoComplete:"one-time-code",spellCheck:!1,placeholder:"123456",disabled:b,className:"auth-input auth-input-code",maxLength:12,required:!0}),m.error&&(0,t.jsx)("div",{className:"auth-error",children:m.error}),(0,t.jsxs)("div",{className:"auth-actions",children:[(0,t.jsx)("button",{type:"submit",className:"auth-btn primary",disabled:b,children:b?"verifying…":"verify"}),(0,t.jsx)("button",{type:"button",className:"auth-btn",onClick:C,disabled:b||m.resendIn>0,children:m.resendIn>0?`resend in ${m.resendIn}s`:"resend code"})]}),(0,t.jsx)("button",{type:"button",className:"auth-back",onClick:()=>f({kind:"email",error:null}),disabled:b,children:"← use a different email"})]})]}),"done"===m.kind&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"auth-sub",children:[(0,t.jsx)("span",{className:"auth-ok",children:"✓"})," signed in as"," ",(0,t.jsx)("span",{className:"auth-email",children:m.user.email}),"."]}),(0,t.jsx)("div",{className:"auth-actions",children:(0,t.jsx)("button",{type:"button",className:"auth-btn primary",onClick:c,children:"continue"})})]})]})}):null}])},86616,e=>{"use strict";var t=e.i(29054);class a extends Error{kind;constructor(e,t){super(t),this.kind=e,this.name="RerunError"}}async function s(e){try{let s=await (0,t.fetchWithTimeout)("/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(!s.ok&&409!==s.status){let e=await s.text().catch(()=>"");throw console.error("audit run failed:",s.status,e),new a("post_failed",`audit run failed (${s.status})`)}}catch(e){if(e instanceof a)throw e;throw console.error("audit run request failed:",e),new a((0,t.isAbortError)(e)?"timeout":"network","audit run request failed")}let s=0;for(;;){await new Promise(e=>setTimeout(e,1e3));let e=null;try{let a=await (0,t.fetchWithTimeout)("/api/audit/status",{cache:"no-store"});a.ok&&(e=await a.json())}catch{}if(null===e){if(++s>=10)throw new a("network","audit status poll lost the server");continue}if(s=0,!e.running){if(e.error)throw new a("post_failed",e.error);return}}}e.s(["RerunError",0,a,"triggerRun",0,s])},93237,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(95187);let n=(0,s.createServerReference)("009e6103e41f3b6229e16507f4fcaa7b3c8f2b3e48",s.callServer,void 0,s.findSourceMapURL,"getScheduledAuditAction"),i=(0,s.createServerReference)("408f39c46a4b2ee4dde76beb27a355bcbd8d2fc962",s.callServer,void 0,s.findSourceMapURL,"setAutoAuditAction"),r=(0,s.createServerReference)("4061b82b45a3b9808b69b6df0b41b8bdf4fdc6f6e5",s.callServer,void 0,s.findSourceMapURL,"setAuditIntervalAction");var l=e.i(86616),o=e.i(64237),c=e.i(55574),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(e,t){let a=e-t;if(a<=0)return"now";let s=Math.floor(a/864e5),n=Math.floor(a%864e5/36e5);return s>0?n>0?`${s}d ${n}h`:`${s}d`:n>0?`${n}h`:`${Math.max(1,Math.floor(a/6e4))}m`}function m(e){return e.toLocaleString("en-US")}function f({label:e,value:a,sub:s,tone:n}){return(0,t.jsxs)("div",{className:"set-stat",children:[(0,t.jsx)("div",{className:"set-stat-label",children:e}),(0,t.jsx)("div",{className:`set-stat-value${n?` ${n}`:""}`,children:a}),(0,t.jsx)("div",{className:"set-stat-sub",children:s??" "})]})}function b({lastRunAtMs:e,nextDueAtMs:a,now:s}){if(null==e||null==a||a<=e)return null;let n=Math.min(100,Math.max(0,(s-e)/(a-e)*100));return(0,t.jsxs)("div",{className:"tape","aria-hidden":"true",children:[(0,t.jsxs)("div",{className:"tape-rail",children:[(0,t.jsx)("div",{className:"tape-fill",style:{width:`${n}%`}}),(0,t.jsx)("div",{className:"tape-now",style:{left:`${n}%`}})]}),(0,t.jsxs)("div",{className:"tape-ends",children:[(0,t.jsxs)("span",{children:["last scan · ",u(e)]}),(0,t.jsxs)("span",{className:"tape-next",children:["next · ",h(a,s)]})]})]})}function p({enabled:e,onChange:a,disabled:s,label:n}){return(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":e,"aria-label":n,disabled:s,onClick:a,className:"sw","data-on":e?"true":"false",children:(0,t.jsx)("span",{className:"sw-knob"})})}let v=[{label:"reads",body:"every session transcript on disk — your prompts, the files your agents read and wrote, and command output."},{label:"runs",body:"entirely on this machine. the transcripts never leave it."},{label:"sends",body:"counts, redacted examples, and this machine's name — and only when a scan finds something harmful."}];e.s(["default",0,function({initial:e}){let[s,x]=(0,a.useState)(e),[g,y]=(0,a.useState)(e?.auto??!1),[w,j]=(0,a.useState)(e?.intervalDays??7),[k,N]=(0,a.useState)(!1),[S,C]=(0,a.useState)(!1),[M,$]=(0,a.useState)(!1),[A,E]=(0,a.useState)(null===e),[D,R]=(0,a.useState)(0),_=(0,a.useRef)(!0),T=(0,a.useRef)(null!==e),I=(0,a.useCallback)(async()=>{try{let e=await n();if(!_.current)return;x(e),T.current=!0,y(e.auto),j(e.intervalDays),R(Date.now()),E(!1)}catch{_.current&&!T.current&&E(!0)}},[]);(0,a.useEffect)(()=>(_.current=!0,I(),()=>{_.current=!1}),[I]),(0,a.useEffect)(()=>{let e=()=>void I();return window.addEventListener("focus",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e)}},[I]);let L=s?.signedInAs??null,F=s?.daemon==="running",O=s?.daemon==="unsupported-platform",P=s?.schedule??null,q=s?.lastScan??null,U=P?.lastExitCode!=null&&0!==P.lastExitCode&&75!==P.lastExitCode,W=(0,a.useCallback)(async()=>{N(!0);try{let e=await i(!0);if(!e.ok){if(y(!1),"unreachable"===e.reason)return void(0,c.toast)("could not reach the server. check your connection and try again.");await I(),$(!0),(0,c.toast)("that sign-in expired. one more code and it's on.");return}y(e.auto),(0,c.toast)("scheduled audits on."),await I()}catch{y(!1),(0,c.toast)("could not turn that on.")}finally{N(!1)}},[I]),B=(0,a.useCallback)(async()=>{if(g){N(!0);try{let e=await i(!1);e.ok&&y(e.auto),(0,c.toast)("scheduled audits off."),await I()}catch{(0,c.toast)("could not turn that off.")}finally{N(!1)}return}L?await W():$(!0)},[g,W,I,L]),J=(0,a.useCallback)(async e=>{N(!0);try{let t=await r(e);j(t.intervalDays),x(e=>e?{...e,intervalDays:t.intervalDays}:e),(0,c.toast)(`scanning every ${t.intervalDays} day${1===t.intervalDays?"":"s"}.`)}catch{j(s?.intervalDays??7),(0,c.toast)("could not save that.")}finally{N(!1)}},[s?.intervalDays]),K=(0,a.useCallback)(async()=>{N(!0);try{await fetch("/api/auth/logout",{method:"POST"}),(0,c.toast)("signed out. scans continue; digests pause."),await I()}catch{(0,c.toast)("could not sign out.")}finally{N(!1)}},[I]),H=(0,a.useCallback)(async()=>{if(!S){C(!0);try{await (0,l.triggerRun)({cli:[],since:"all",noCache:!1}),(0,c.toast)("scan complete."),await I()}catch(e){(0,c.toast)(e instanceof l.RerunError&&"timeout"===e.kind?"the scan is taking a while — it will finish in the background.":"the scan could not be completed.")}finally{C(!1)}}},[I,S]),z=(0,a.useCallback)(async e=>{$(!1),await I(),await W()},[W,I]),G=s?F?{value:"running",sub:null!=s.daemonStartedAtMs&&D>0?`up ${function(e){let t=Math.floor(e/864e5);if(t>0)return`${t}d`;let a=Math.floor(e/36e5);return a>0?`${a}h`:`${Math.max(1,Math.floor(e/6e4))}m`}(Math.max(0,D-s.daemonStartedAtMs))}`:"",tone:"ok"}:O?{value:"unavailable",sub:"not on this platform"}:"not-installed"===s.daemon?{value:"not installed",sub:"run failproofai config",tone:"warn"}:"unknown"===s.daemon?{value:"unknown",sub:"could not read it"}:{value:"stopped",sub:"run failproofai config",tone:"warn"}:{value:"…",sub:"reading"},Q=g?P?.nextDueAtMs==null?{value:"pending",sub:"after the next scan"}:{value:D>0?h(P.nextDueAtMs,D):"—",sub:u(P.nextDueAtMs)}:{value:"off",sub:"nothing scheduled"},V=q?{value:(0,d.formatRelativeTime)(Date.parse(q.finishedAt)),sub:null!=q.sessionsScanned?`${m(q.sessionsScanned)} sessions`:"scanned"}:{value:"none yet",sub:"run one below"},X=q?null==q.findings?{value:"—",sub:"unreadable"}:{value:m(q.findings),sub:"this scan",...q.findings>0?{tone:"warn"}:{}}:{value:"—",sub:"no scan yet"};return(0,t.jsxs)("main",{className:"report",children:[(0,t.jsxs)("section",{className:"section set-sec",children:[(0,t.jsxs)("div",{className:"set-mast",children:[(0,t.jsx)("h1",{className:"set-title",children:"settings"}),(0,t.jsx)("p",{className:"set-lede",children:"keeping watch, so you don't have to."})]}),A?(0,t.jsx)("div",{className:"set-console",children:(0,t.jsx)("div",{className:"set-cell",children:(0,t.jsxs)("p",{className:"set-warn",children:["could not read this machine's settings. check that the dashboard can reach ",(0,t.jsx)("code",{children:"~/.failproofai/config.json"}),"."]})})}):(0,t.jsxs)("div",{className:"set-console",children:[(0,t.jsxs)("div",{className:"set-stats",children:[(0,t.jsx)(f,{label:"daemon",...G}),(0,t.jsx)(f,{label:"next scan",...Q}),(0,t.jsx)(f,{label:"last scan",...V}),(0,t.jsx)(f,{label:"findings",...X})]}),(0,t.jsxs)("div",{className:"set-cols",children:[(0,t.jsxs)("div",{className:"set-cell set-config",children:[(0,t.jsx)("h2",{className:"set-cell-title",children:"scheduled audit"}),(0,t.jsxs)("div",{className:"set-row set-row-main",children:[(0,t.jsx)(p,{enabled:g,disabled:k||null===s,onChange:()=>void B(),label:g?"turn off scheduled audits":"turn on scheduled audits"}),(0,t.jsxs)("div",{className:"set-row-copy",children:[(0,t.jsx)("span",{className:"set-strong",children:g?"scanning on a schedule.":"scan on a schedule."}),(0,t.jsx)("span",{className:"set-dim",children:g?"you'll get an email only when a scan finds something.":"off. nothing runs and nothing is sent."})]})]}),(0,t.jsxs)("div",{className:"set-row set-row-interval",children:[(0,t.jsx)("span",{className:"set-dim",children:"scan every"}),(0,t.jsx)("input",{type:"number",className:"set-num",min:1,max:90,value:w,disabled:k||null===s,"aria-label":"days between scheduled scans",onChange:e=>j(Number(e.target.value)),onBlur:e=>{let t=Number(e.target.value);Number.isFinite(t)?t!==s?.intervalDays&&J(t):j(s?.intervalDays??7)}}),(0,t.jsx)("span",{className:"set-dim",children:"days"}),(0,t.jsxs)("span",{className:"set-hint",children:[1,"–",90]})]}),(0,t.jsx)("div",{className:"set-rule"}),(0,t.jsx)("div",{className:"set-row set-row-identity",children:L?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"set-dim",children:"reports go to"}),(0,t.jsx)("span",{className:"set-email",children:L.email}),(0,t.jsx)("button",{type:"button",className:"set-link",disabled:k,onClick:()=>void K(),children:"sign out"})]}):g?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"set-warn",children:"signed out — scans continue, digests are paused."}),(0,t.jsx)("button",{type:"button",className:"set-link",disabled:k,onClick:()=>$(!0),children:"sign in to resume"})]}):(0,t.jsx)("span",{className:"set-dim",children:"turning this on asks for an email, so there is somewhere to send the report."})}),g&&s&&!F&&(0,t.jsx)("p",{className:"set-warn",children:O?"the background service isn't available on this platform, so scheduled scans can't run here. you can still run one now.":"not-installed"===s.daemon?"the background service isn't installed, so nothing will run on the timer. install it with `failproofai config`.":"the background service is stopped, so nothing will run until it starts. repair it with `failproofai config`."}),U&&(0,t.jsxs)("p",{className:"set-warn",children:["the last scheduled scan exited ",P?.lastExitCode,". the next one will still run."]}),(0,t.jsx)("div",{className:"set-actions",children:(0,t.jsx)("button",{type:"button",className:"btn btn-press",disabled:S,onClick:()=>void H(),children:S?"[ scanning… ]":"[ run a scan now ]"})})]}),(0,t.jsxs)("div",{className:"set-cell set-how",children:[(0,t.jsx)("h2",{className:"set-cell-title",children:"how it works"}),(0,t.jsx)("dl",{className:"set-how-list",children:v.map(e=>(0,t.jsxs)("div",{className:"set-how-row",children:[(0,t.jsx)("dt",{className:"set-how-label",children:e.label}),(0,t.jsx)("dd",{className:"set-how-body",children:e.body})]},e.label))})]})]})]}),g&&D>0&&(0,t.jsx)(b,{lastRunAtMs:P?.lastRunAtMs??null,nextDueAtMs:P?.nextDueAtMs??null,now:D})]}),(0,t.jsx)(o.AuthDialog,{open:M,source:"settings_scheduled_audit",headline:"where should the report go?",subhead:"we'll send a one-time code to confirm.",onClose:()=>$(!1),onAuthed:e=>void z(e)})]})}],93237)},29054,e=>{"use strict";e.s(["fetchWithTimeout",0,function(e,t={},a=15e3){let s=AbortSignal.timeout(a),n=t.signal?AbortSignal.any([t.signal,s]):s;return fetch(e,{...t,signal:n})},"isAbortError",0,function(e){if(null===e||"object"!=typeof e)return!1;let t=e.name;return"AbortError"===t||"TimeoutError"===t}])},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 s=Math.round(e/6e4),n=Math.floor(s/60);return`${n}h ${s%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
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,64237,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(12344),n=e.i(29054);let i=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function r(e){if((0,n.isAbortError)(e))return"request timed out. check your network and try again.";let t=e instanceof Error?e.message:String(e);return`network error: ${t}`}e.s(["AuthDialog",0,function({open:e,headline:l="where to route the reminder?",subhead:o="we'll send a one-time code to confirm.",onClose:c,onAuthed:d,source:u="unknown"}){let{capture:h}=(0,s.usePostHog)(),[m,f]=(0,a.useState)({kind:"email",error:null}),[b,p]=(0,a.useState)(!1),v=(0,a.useRef)(!1),x=(0,a.useRef)(null),g=(0,a.useRef)(null);(0,a.useEffect)(()=>{e&&(f({kind:"email",error:null}),p(!1),v.current=!1,h("audit_auth_dialog_opened",{source:u}))},[h,e,u]);let y=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(e){y.current=!0;return}y.current&&!v.current&&h("audit_auth_dialog_dismissed",{source:u,step:m.kind}),y.current=!1},[h,e,u,m.kind]),(0,a.useEffect)(()=>{if(!e)return;let t=setTimeout(()=>{"email"===m.kind?x.current?.focus():"code"===m.kind&&g.current?.focus()},50);return()=>clearTimeout(t)},[e,m.kind]),(0,a.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"!==e.key||b||c()};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e,b,c]);let w="code"===m.kind&&m.resendIn>0;(0,a.useEffect)(()=>{if(!w)return;let e=setInterval(()=>{f(e=>"code"===e.kind?{...e,resendIn:Math.max(0,e.resendIn-1)}:e)},1e3);return()=>clearInterval(e)},[w]);let j=(0,a.useCallback)(async(e,t={})=>{let{isResend:a=!1}=t,s=e=>{a?f(t=>"code"===t.kind?{...t,error:e}:t):f({kind:"email",error:e})};p(!0);try{let t=await (0,n.fetchWithTimeout)("/api/auth/login-request",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({email:e})}),a=await t.json().catch(()=>({}));if(!t.ok){let e=a.message??"could not send code.";"rate_limited"===a.code&&void 0!==a.retry_after_secs?e=`too many tries. wait ${a.retry_after_secs}s and try again.`:"upstream_unreachable"===a.code&&(e="api-server unreachable. check your network."),s(e);return}f({kind:"code",email:e,error:null,expiresIn:a.expires_in??600,resendIn:a.resend_available_in??30})}catch(e){s(r(e))}finally{p(!1)}},[]),k=(0,a.useCallback)(async(e,t)=>{p(!0);try{let a=await (0,n.fetchWithTimeout)("/api/auth/login-verify",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({email:e,code:t})}),s=await a.json().catch(()=>({}));if(!a.ok||!s.authenticated||!s.user){let e=s.message??"invalid code.";"invalid_code"===s.code&&(e="wrong code, or it expired. try again."),f(t=>"code"===t.kind?{...t,error:e}:t);return}v.current=!0,h("audit_auth_dialog_succeeded",{source:u}),f({kind:"done",user:s.user}),d(s.user)}catch(t){let e=r(t);f(t=>"code"===t.kind?{...t,error:e}:t)}finally{p(!1)}},[h,d,u]),N=(0,a.useCallback)(async e=>{if(e.preventDefault(),b||"email"!==m.kind)return;let t=String(new FormData(e.currentTarget).get("email")??"").trim().toLowerCase();i.test(t)?await j(t):f({kind:"email",error:"that doesn't look like an email."})},[b,m,j]),S=(0,a.useCallback)(async e=>{if(e.preventDefault(),b||"code"!==m.kind)return;let t=String(new FormData(e.currentTarget).get("code")??"").trim();t.length<4||t.length>12?f(e=>"code"===e.kind?{...e,error:"code is 4–12 characters."}:e):await k(m.email,t)},[b,m,k]),C=(0,a.useCallback)(async()=>{"code"!==m.kind||m.resendIn>0||b||await j(m.email,{isResend:!0})},[m,b,j]);return e?(0,t.jsx)("div",{className:"auth-dialog-backdrop",role:"dialog","aria-modal":"true","aria-labelledby":"auth-dialog-title",onClick:e=>{b||e.target!==e.currentTarget||c()},children:(0,t.jsxs)("div",{className:"auth-dialog",children:[(0,t.jsx)("button",{type:"button",className:"auth-close",onClick:c,disabled:b,"aria-label":"close",children:"×"}),(0,t.jsx)("h2",{id:"auth-dialog-title",className:"auth-headline",children:l}),"email"===m.kind&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:"auth-sub",children:o}),(0,t.jsxs)("form",{onSubmit:N,className:"auth-form",children:[(0,t.jsx)("input",{ref:x,id:"auth-dialog-email",name:"email",type:"email",autoComplete:"email",inputMode:"email",spellCheck:!1,placeholder:"you@yourdomain.com",disabled:b,className:"auth-input",required:!0}),m.error&&(0,t.jsx)("div",{className:"auth-error",children:m.error}),(0,t.jsxs)("div",{className:"auth-actions",children:[(0,t.jsx)("button",{type:"submit",className:"auth-btn primary",disabled:b,children:b?"sending…":"send code"}),(0,t.jsx)("button",{type:"button",className:"auth-btn",onClick:c,disabled:b,children:"cancel"})]})]})]}),"code"===m.kind&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"auth-sub",children:["code sent to ",(0,t.jsx)("span",{className:"auth-email",children:m.email}),". expires in ",Math.ceil(m.expiresIn/60)," min."]}),(0,t.jsxs)("form",{onSubmit:S,className:"auth-form",children:[(0,t.jsx)("input",{ref:g,id:"auth-dialog-code",name:"code",type:"text",inputMode:"numeric",autoComplete:"one-time-code",spellCheck:!1,placeholder:"123456",disabled:b,className:"auth-input auth-input-code",maxLength:12,required:!0}),m.error&&(0,t.jsx)("div",{className:"auth-error",children:m.error}),(0,t.jsxs)("div",{className:"auth-actions",children:[(0,t.jsx)("button",{type:"submit",className:"auth-btn primary",disabled:b,children:b?"verifying…":"verify"}),(0,t.jsx)("button",{type:"button",className:"auth-btn",onClick:C,disabled:b||m.resendIn>0,children:m.resendIn>0?`resend in ${m.resendIn}s`:"resend code"})]}),(0,t.jsx)("button",{type:"button",className:"auth-back",onClick:()=>f({kind:"email",error:null}),disabled:b,children:"← use a different email"})]})]}),"done"===m.kind&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:"auth-sub",children:[(0,t.jsx)("span",{className:"auth-ok",children:"✓"})," signed in as"," ",(0,t.jsx)("span",{className:"auth-email",children:m.user.email}),"."]}),(0,t.jsx)("div",{className:"auth-actions",children:(0,t.jsx)("button",{type:"button",className:"auth-btn primary",onClick:c,children:"continue"})})]})]})}):null}])},86616,e=>{"use strict";var t=e.i(29054);class a extends Error{kind;constructor(e,t){super(t),this.kind=e,this.name="RerunError"}}async function s(e){try{let s=await (0,t.fetchWithTimeout)("/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(!s.ok&&409!==s.status){let e=await s.text().catch(()=>"");throw console.error("audit run failed:",s.status,e),new a("post_failed",`audit run failed (${s.status})`)}}catch(e){if(e instanceof a)throw e;throw console.error("audit run request failed:",e),new a((0,t.isAbortError)(e)?"timeout":"network","audit run request failed")}let s=0;for(;;){await new Promise(e=>setTimeout(e,1e3));let e=null;try{let a=await (0,t.fetchWithTimeout)("/api/audit/status",{cache:"no-store"});a.ok&&(e=await a.json())}catch{}if(null===e){if(++s>=10)throw new a("network","audit status poll lost the server");continue}if(s=0,!e.running){if(e.error)throw new a("post_failed",e.error);return}}}e.s(["RerunError",0,a,"triggerRun",0,s])},93237,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(95187);let n=(0,s.createServerReference)("00aa430d336fe5b9f2c7e99dcd724a2140126b7df5",s.callServer,void 0,s.findSourceMapURL,"getScheduledAuditAction"),i=(0,s.createServerReference)("401a4233577ae78a8a9148d4d6fd172599a73d44e4",s.callServer,void 0,s.findSourceMapURL,"setAutoAuditAction"),r=(0,s.createServerReference)("400b31c249d9e9935f930f4c64cb4bcab3daae4a25",s.callServer,void 0,s.findSourceMapURL,"setAuditIntervalAction");var l=e.i(86616),o=e.i(64237),c=e.i(55574),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(e,t){let a=e-t;if(a<=0)return"now";let s=Math.floor(a/864e5),n=Math.floor(a%864e5/36e5);return s>0?n>0?`${s}d ${n}h`:`${s}d`:n>0?`${n}h`:`${Math.max(1,Math.floor(a/6e4))}m`}function m(e){return e.toLocaleString("en-US")}function f({label:e,value:a,sub:s,tone:n}){return(0,t.jsxs)("div",{className:"set-stat",children:[(0,t.jsx)("div",{className:"set-stat-label",children:e}),(0,t.jsx)("div",{className:`set-stat-value${n?` ${n}`:""}`,children:a}),(0,t.jsx)("div",{className:"set-stat-sub",children:s??" "})]})}function b({lastRunAtMs:e,nextDueAtMs:a,now:s}){if(null==e||null==a||a<=e)return null;let n=Math.min(100,Math.max(0,(s-e)/(a-e)*100));return(0,t.jsxs)("div",{className:"tape","aria-hidden":"true",children:[(0,t.jsxs)("div",{className:"tape-rail",children:[(0,t.jsx)("div",{className:"tape-fill",style:{width:`${n}%`}}),(0,t.jsx)("div",{className:"tape-now",style:{left:`${n}%`}})]}),(0,t.jsxs)("div",{className:"tape-ends",children:[(0,t.jsxs)("span",{children:["last scan · ",u(e)]}),(0,t.jsxs)("span",{className:"tape-next",children:["next · ",h(a,s)]})]})]})}function p({enabled:e,onChange:a,disabled:s,label:n}){return(0,t.jsx)("button",{type:"button",role:"switch","aria-checked":e,"aria-label":n,disabled:s,onClick:a,className:"sw","data-on":e?"true":"false",children:(0,t.jsx)("span",{className:"sw-knob"})})}let v=[{label:"reads",body:"every session transcript on disk — your prompts, the files your agents read and wrote, and command output."},{label:"runs",body:"entirely on this machine. the transcripts never leave it."},{label:"sends",body:"counts, redacted examples, and this machine's name — and only when a scan finds something harmful."}];e.s(["default",0,function({initial:e}){let[s,x]=(0,a.useState)(e),[g,y]=(0,a.useState)(e?.auto??!1),[w,j]=(0,a.useState)(e?.intervalDays??7),[k,N]=(0,a.useState)(!1),[S,C]=(0,a.useState)(!1),[M,$]=(0,a.useState)(!1),[A,E]=(0,a.useState)(null===e),[D,R]=(0,a.useState)(0),_=(0,a.useRef)(!0),T=(0,a.useRef)(null!==e),I=(0,a.useCallback)(async()=>{try{let e=await n();if(!_.current)return;x(e),T.current=!0,y(e.auto),j(e.intervalDays),R(Date.now()),E(!1)}catch{_.current&&!T.current&&E(!0)}},[]);(0,a.useEffect)(()=>(_.current=!0,I(),()=>{_.current=!1}),[I]),(0,a.useEffect)(()=>{let e=()=>void I();return window.addEventListener("focus",e),document.addEventListener("visibilitychange",e),()=>{window.removeEventListener("focus",e),document.removeEventListener("visibilitychange",e)}},[I]);let L=s?.signedInAs??null,F=s?.daemon==="running",O=s?.daemon==="unsupported-platform",P=s?.schedule??null,q=s?.lastScan??null,U=P?.lastExitCode!=null&&0!==P.lastExitCode&&75!==P.lastExitCode,W=(0,a.useCallback)(async()=>{N(!0);try{let e=await i(!0);if(!e.ok){if(y(!1),"unreachable"===e.reason)return void(0,c.toast)("could not reach the server. check your connection and try again.");await I(),$(!0),(0,c.toast)("that sign-in expired. one more code and it's on.");return}y(e.auto),(0,c.toast)("scheduled audits on."),await I()}catch{y(!1),(0,c.toast)("could not turn that on.")}finally{N(!1)}},[I]),B=(0,a.useCallback)(async()=>{if(g){N(!0);try{let e=await i(!1);e.ok&&y(e.auto),(0,c.toast)("scheduled audits off."),await I()}catch{(0,c.toast)("could not turn that off.")}finally{N(!1)}return}L?await W():$(!0)},[g,W,I,L]),J=(0,a.useCallback)(async e=>{N(!0);try{let t=await r(e);j(t.intervalDays),x(e=>e?{...e,intervalDays:t.intervalDays}:e),(0,c.toast)(`scanning every ${t.intervalDays} day${1===t.intervalDays?"":"s"}.`)}catch{j(s?.intervalDays??7),(0,c.toast)("could not save that.")}finally{N(!1)}},[s?.intervalDays]),K=(0,a.useCallback)(async()=>{N(!0);try{await fetch("/api/auth/logout",{method:"POST"}),(0,c.toast)("signed out. scans continue; digests pause."),await I()}catch{(0,c.toast)("could not sign out.")}finally{N(!1)}},[I]),H=(0,a.useCallback)(async()=>{if(!S){C(!0);try{await (0,l.triggerRun)({cli:[],since:"all",noCache:!1}),(0,c.toast)("scan complete."),await I()}catch(e){(0,c.toast)(e instanceof l.RerunError&&"timeout"===e.kind?"the scan is taking a while — it will finish in the background.":"the scan could not be completed.")}finally{C(!1)}}},[I,S]),z=(0,a.useCallback)(async e=>{$(!1),await I(),await W()},[W,I]),G=s?F?{value:"running",sub:null!=s.daemonStartedAtMs&&D>0?`up ${function(e){let t=Math.floor(e/864e5);if(t>0)return`${t}d`;let a=Math.floor(e/36e5);return a>0?`${a}h`:`${Math.max(1,Math.floor(e/6e4))}m`}(Math.max(0,D-s.daemonStartedAtMs))}`:"",tone:"ok"}:O?{value:"unavailable",sub:"not on this platform"}:"not-installed"===s.daemon?{value:"not installed",sub:"run failproofai config",tone:"warn"}:"unknown"===s.daemon?{value:"unknown",sub:"could not read it"}:{value:"stopped",sub:"run failproofai config",tone:"warn"}:{value:"…",sub:"reading"},Q=g?P?.nextDueAtMs==null?{value:"pending",sub:"after the next scan"}:{value:D>0?h(P.nextDueAtMs,D):"—",sub:u(P.nextDueAtMs)}:{value:"off",sub:"nothing scheduled"},V=q?{value:(0,d.formatRelativeTime)(Date.parse(q.finishedAt)),sub:null!=q.sessionsScanned?`${m(q.sessionsScanned)} sessions`:"scanned"}:{value:"none yet",sub:"run one below"},X=q?null==q.findings?{value:"—",sub:"unreadable"}:{value:m(q.findings),sub:"this scan",...q.findings>0?{tone:"warn"}:{}}:{value:"—",sub:"no scan yet"};return(0,t.jsxs)("main",{className:"report",children:[(0,t.jsxs)("section",{className:"section set-sec",children:[(0,t.jsxs)("div",{className:"set-mast",children:[(0,t.jsx)("h1",{className:"set-title",children:"settings"}),(0,t.jsx)("p",{className:"set-lede",children:"keeping watch, so you don't have to."})]}),A?(0,t.jsx)("div",{className:"set-console",children:(0,t.jsx)("div",{className:"set-cell",children:(0,t.jsxs)("p",{className:"set-warn",children:["could not read this machine's settings. check that the dashboard can reach ",(0,t.jsx)("code",{children:"~/.failproofai/config.json"}),"."]})})}):(0,t.jsxs)("div",{className:"set-console",children:[(0,t.jsxs)("div",{className:"set-stats",children:[(0,t.jsx)(f,{label:"daemon",...G}),(0,t.jsx)(f,{label:"next scan",...Q}),(0,t.jsx)(f,{label:"last scan",...V}),(0,t.jsx)(f,{label:"findings",...X})]}),(0,t.jsxs)("div",{className:"set-cols",children:[(0,t.jsxs)("div",{className:"set-cell set-config",children:[(0,t.jsx)("h2",{className:"set-cell-title",children:"scheduled audit"}),(0,t.jsxs)("div",{className:"set-row set-row-main",children:[(0,t.jsx)(p,{enabled:g,disabled:k||null===s,onChange:()=>void B(),label:g?"turn off scheduled audits":"turn on scheduled audits"}),(0,t.jsxs)("div",{className:"set-row-copy",children:[(0,t.jsx)("span",{className:"set-strong",children:g?"scanning on a schedule.":"scan on a schedule."}),(0,t.jsx)("span",{className:"set-dim",children:g?"you'll get an email only when a scan finds something.":"off. nothing runs and nothing is sent."})]})]}),(0,t.jsxs)("div",{className:"set-row set-row-interval",children:[(0,t.jsx)("span",{className:"set-dim",children:"scan every"}),(0,t.jsx)("input",{type:"number",className:"set-num",min:1,max:90,value:w,disabled:k||null===s,"aria-label":"days between scheduled scans",onChange:e=>j(Number(e.target.value)),onBlur:e=>{let t=Number(e.target.value);Number.isFinite(t)?t!==s?.intervalDays&&J(t):j(s?.intervalDays??7)}}),(0,t.jsx)("span",{className:"set-dim",children:"days"}),(0,t.jsxs)("span",{className:"set-hint",children:[1,"–",90]})]}),(0,t.jsx)("div",{className:"set-rule"}),(0,t.jsx)("div",{className:"set-row set-row-identity",children:L?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"set-dim",children:"reports go to"}),(0,t.jsx)("span",{className:"set-email",children:L.email}),(0,t.jsx)("button",{type:"button",className:"set-link",disabled:k,onClick:()=>void K(),children:"sign out"})]}):g?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"set-warn",children:"signed out — scans continue, digests are paused."}),(0,t.jsx)("button",{type:"button",className:"set-link",disabled:k,onClick:()=>$(!0),children:"sign in to resume"})]}):(0,t.jsx)("span",{className:"set-dim",children:"turning this on asks for an email, so there is somewhere to send the report."})}),g&&s&&!F&&(0,t.jsx)("p",{className:"set-warn",children:O?"the background service isn't available on this platform, so scheduled scans can't run here. you can still run one now.":"not-installed"===s.daemon?"the background service isn't installed, so nothing will run on the timer. install it with `failproofai config`.":"the background service is stopped, so nothing will run until it starts. repair it with `failproofai config`."}),U&&(0,t.jsxs)("p",{className:"set-warn",children:["the last scheduled scan exited ",P?.lastExitCode,". the next one will still run."]}),(0,t.jsx)("div",{className:"set-actions",children:(0,t.jsx)("button",{type:"button",className:"btn btn-press",disabled:S,onClick:()=>void H(),children:S?"[ scanning… ]":"[ run a scan now ]"})})]}),(0,t.jsxs)("div",{className:"set-cell set-how",children:[(0,t.jsx)("h2",{className:"set-cell-title",children:"how it works"}),(0,t.jsx)("dl",{className:"set-how-list",children:v.map(e=>(0,t.jsxs)("div",{className:"set-how-row",children:[(0,t.jsx)("dt",{className:"set-how-label",children:e.label}),(0,t.jsx)("dd",{className:"set-how-body",children:e.body})]},e.label))})]})]})]}),g&&D>0&&(0,t.jsx)(b,{lastRunAtMs:P?.lastRunAtMs??null,nextDueAtMs:P?.nextDueAtMs??null,now:D})]}),(0,t.jsx)(o.AuthDialog,{open:M,source:"settings_scheduled_audit",headline:"where should the report go?",subhead:"we'll send a one-time code to confirm.",onClose:()=>$(!1),onAuthed:e=>void z(e)})]})}],93237)},29054,e=>{"use strict";e.s(["fetchWithTimeout",0,function(e,t={},a=15e3){let s=AbortSignal.timeout(a),n=t.signal?AbortSignal.any([t.signal,s]):s;return fetch(e,{...t,signal:n})},"isAbortError",0,function(e){if(null===e||"object"!=typeof e)return!1;let t=e.name;return"AbortError"===t||"TimeoutError"===t}])},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 s=Math.round(e/6e4),n=Math.floor(s/60);return`${n}h ${s%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 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,59135,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("00de52d4a97514c0c65c30b93f46538da296f56af8",t.callServer,void 0,t.findSourceMapURL,"getTelemetryConfig");e.s(["getTelemetryConfig",0,r])},53348,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(59135),l=e.i(9969);e.s(["default",0,function({error:e,reset:a}){return(0,r.useEffect)(()=>{(0,n.getTelemetryConfig)().then(t=>{(0,l.setClientTelemetryConfig)(t),(0,l.captureClientEvent)("client_error",{error_message:e.message,error_name:e.name,error_digest:e.digest,boundary:"global"})}).catch(()=>{})},[e]),(0,t.jsx)("html",{children:(0,t.jsx)("body",{children:(0,t.jsx)("main",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#031035",color:"#f8fafc",fontFamily:"system-ui, sans-serif"},children:(0,t.jsxs)("div",{style:{textAlign:"center",padding:"2rem",border:"1px solid rgba(239,68,68,0.4)",borderRadius:"0.5rem",maxWidth:"500px"},children:[(0,t.jsx)("h2",{style:{color:"#ef4444",marginBottom:"0.5rem",fontSize:"1.25rem"},children:"Something went wrong"}),(0,t.jsx)("p",{style:{color:"#94a3b8",marginBottom:"1.5rem"},children:e.message||"An unexpected error occurred."}),(0,t.jsx)("button",{onClick:a,style:{padding:"0.5rem 1.25rem",background:"#3b82f6",color:"white",border:"none",borderRadius:"0.375rem",cursor:"pointer",fontSize:"0.875rem"},children:"Try again"})]})})})})}])},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)},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 o.findSourceMapURL}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=e.r(32120),o=e.r(92245),u=e.r(35326)},28298,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useRouterBFCache",{enumerable:!0,get:function(){return l}});let n=e.r(71645);function l(e,t,r){let[l,a]=(0,n.useState)(()=>({tree:e,cacheNode:t,stateKey:r,next:null}));if(l.tree===e)return l;let o={tree:e,cacheNode:t,stateKey:r,next:null},u=1,i=l,s=o;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(o),o}("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),l=e.r(8372),a=e.r(71645),o=e.r(33906),u=e.r(61994),i=e.r(15783);function s({Component:e,serverProvidedParams:t}){let r,d;if(null!==t)r=t.searchParams,d=t.params;else{let e=(0,a.use)(l.LayoutRouterContext);d=null!==e?e.parentParams:{},r=(0,o.urlSearchParamsToParsedUrlQuery)((0,a.use)(u.SearchParamsContext))}let c=(0,i.createClientSearchParams)(r),f=(0,i.createClientParams)(d);return(0,n.jsx)(e,{params:f,searchParams:c})}("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),l=e.r(8372),a=e.r(71645),o=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)(l.LayoutRouterContext);i=null!==e?e.parentParams:{}}let s=(0,o.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 d}});let n=e.r(90809),l=e.r(43476),a=n._(e.r(71645)),o=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,o={[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,d=a===u.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return i||s||d?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("meta",{name:"robots",content:"noindex"}),!1,o[a]]}):n}return n}}function d({notFound:e,forbidden:t,unauthorized:r,children:n}){let u=(0,o.useUntrackedPathname)(),c=(0,a.useContext)(i.MissingSlotContext);return e||t||r?(0,l.jsx)(s,{pathname:u,notFound:e,forbidden:t,unauthorized:r,missingSlots:c,children:n}):(0,l.jsx)(l.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 o},RenderValidationBoundaryAtThisLevel:function(){return u},SlotMarker:function(){return i}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=null,o=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 l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});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 C},default:function(){return S}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=e.r(55682),o=e.r(90809),u=e.r(43476),i=o._(e.r(71645)),s=a._(e.r(74080)),d=e.r(8372),c=e.r(1244),f=e.r(72383),p=e.r(91915),m=e.r(58442),y=e.r(68017);e.r(77694);let b=e.r(70725),h=e.r(28298);e.r(74180);let g=e.r(61994),_=e.r(33906),v=e.r(95871);s.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function P(e,t,r){let n=e.getClientRects();if(0===n.length)return 0;let l=1/0;for(let e=0;e<n.length;e++){let t=n[e];t.top<l&&(l=t.top)}return l>=r()&&l<=t?1:2}i.default.Component;let j=function(e){let t=i.default.useRef(null);return(0,i.useLayoutEffect)(()=>{let{focusAndScrollRef:r,cacheNode:n}=e,l=r.forceScroll?r.scrollRef:n.scrollRef;if(null===l||!l.current)return;let a=null,o=r.hashFragment;if(o){var u;if(null===(a="top"===(u=o)?document.body:document.getElementById(u)??document.getElementsByName(u)[0]??null)){l.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,l;let a,o;return null===n&&(r=e,l=t,n=!Number.isFinite(o=Number.parseFloat(a=getComputedStyle(r).scrollPaddingTop))||o<0?0:a.endsWith("px")?o:a.endsWith("%")?o/100*l:0),n};(o||(t=e.clientHeight,0!==(r=P(a,t,u))))&&((i=!0,l.current=!1,o)?a.scrollIntoView():1!==r&&(e.scrollTop=0,2===P(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 x({children:e,cacheNode:t}){let r=(0,i.useContext)(d.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)(j,{focusAndScrollRef:r.focusAndScrollRef,cacheNode:t,children:e})}function O({tree:e,segmentPath:t,debugNameContext:r,cacheNode:n,params:l,url:a,isActive:o}){let s,f=(0,i.useContext)(d.GlobalLayoutRouterContext);if((0,i.useContext)(g.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)(c.unresolvedThenable),m=null!==p.prefetchRsc?p.prefetchRsc:p.rsc,y=(0,i.useDeferredValue)(p.rsc,m);if((0,v.isDeferredRsc)(y)){let e=(0,i.use)(y);null===e&&(0,i.use)(c.unresolvedThenable),s=e}else null===y&&(0,i.use)(c.unresolvedThenable),s=y;let b=s;return(0,u.jsx)(d.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:p,parentSegmentPath:t,parentParams:l,parentLoadingData:null,debugNameContext:r,url:a,isActive:o},children:b})}function C({loading:e,children:t}){let r=(0,i.use)(d.LayoutRouterContext);return null===r?t:(0,u.jsx)(d.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 R({name:e,loading:t,children:r}){if(null!==t){let n=t[0],l=t[1],a=t[2];return(0,u.jsx)(i.Suspense,{name:e,fallback:(0,u.jsxs)(u.Fragment,{children:[l,a,n]}),children:r})}return(0,u.jsx)(u.Fragment,{children:r})}function S({parallelRouterKey:e,error:t,errorStyles:r,errorScripts:n,templateStyles:l,templateScripts:a,template:o,notFound:s,forbidden:p,unauthorized:g,segmentViewBoundaries:v}){let P=(0,i.useContext)(d.LayoutRouterContext);if(!P)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:j,parentCacheNode:C,parentSegmentPath:T,parentParams:M,parentLoadingData:E,url:N,isActive:F,debugNameContext:A}=P,B=j[0],L=null===T?[e]:T.concat([B,e]),D=j[1][e],w=C.slots;(void 0===D||null===w)&&(0,i.use)(c.unresolvedThenable);let H=D[0],k=w[e]??null,U=(0,b.createRouterCacheKey)(H,!0),I=(0,h.useRouterBFCache)(D,k,U),V=[];do{let e=I.tree,i=I.cacheNode,c=I.stateKey,b=e[0],h=M;if(Array.isArray(b)){let e=b[0],t=b[1],r=b[2],n=(0,_.getParamValueFromCacheKey)(t,r);null!==n&&(h={...M,[e]:n})}let v=function(e){if("/"===e)return"/";if("string"==typeof e)if("(__SLOT__)"===e)return;else return e+"/";return e[1]+"/"}(b),P=v??A,j=void 0===v?void 0:A,C=(0,u.jsxs)(x,{cacheNode:i,children:[(0,u.jsx)(f.ErrorBoundary,{errorComponent:t,errorStyles:r,errorScripts:n,children:(0,u.jsx)(R,{name:j,loading:E,children:(0,u.jsx)(y.HTTPAccessFallbackBoundary,{notFound:s,forbidden:p,unauthorized:g,children:(0,u.jsxs)(m.RedirectBoundary,{children:[(0,u.jsx)(O,{url:N,tree:e,params:h,cacheNode:i,segmentPath:L,debugNameContext:P,isActive:F&&c===U}),null]})})})}),null]}),S=(0,u.jsxs)(d.TemplateContext.Provider,{value:C,children:[l,a,o]},c);V.push(S),I=I.next}while(null!==I)return V}("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),l=e.r(43476),a=n._(e.r(71645)),o=e.r(8372);function u(){let e=(0,a.useContext)(o.TemplateContext);return(0,l.jsx)(l.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 l}});let n=new WeakMap;function l(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 l}});let n=new WeakMap;function l(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 o.createRenderSearchParamsFromClient}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=e.r(14193),o=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)},27201,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"IconMark",{enumerable:!0,get:function(){return l}});let n=e.r(43476),l=()=>"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 l=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=l}e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}})}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,20706,e=>{"use strict";var t=e.i(95187);let r=(0,t.createServerReference)("00b801c035726aaa9d297e34f35258369a37177149",t.callServer,void 0,t.findSourceMapURL,"getTelemetryConfig");e.s(["getTelemetryConfig",0,r])},53348,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(20706),l=e.i(9969);e.s(["default",0,function({error:e,reset:a}){return(0,r.useEffect)(()=>{(0,n.getTelemetryConfig)().then(t=>{(0,l.setClientTelemetryConfig)(t),(0,l.captureClientEvent)("client_error",{error_message:e.message,error_name:e.name,error_digest:e.digest,boundary:"global"})}).catch(()=>{})},[e]),(0,t.jsx)("html",{children:(0,t.jsx)("body",{children:(0,t.jsx)("main",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#031035",color:"#f8fafc",fontFamily:"system-ui, sans-serif"},children:(0,t.jsxs)("div",{style:{textAlign:"center",padding:"2rem",border:"1px solid rgba(239,68,68,0.4)",borderRadius:"0.5rem",maxWidth:"500px"},children:[(0,t.jsx)("h2",{style:{color:"#ef4444",marginBottom:"0.5rem",fontSize:"1.25rem"},children:"Something went wrong"}),(0,t.jsx)("p",{style:{color:"#94a3b8",marginBottom:"1.5rem"},children:e.message||"An unexpected error occurred."}),(0,t.jsx)("button",{onClick:a,style:{padding:"0.5rem 1.25rem",background:"#3b82f6",color:"white",border:"none",borderRadius:"0.375rem",cursor:"pointer",fontSize:"0.875rem"},children:"Try again"})]})})})})}])},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)},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 o.findSourceMapURL}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=e.r(32120),o=e.r(92245),u=e.r(35326)},28298,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useRouterBFCache",{enumerable:!0,get:function(){return l}});let n=e.r(71645);function l(e,t,r){let[l,a]=(0,n.useState)(()=>({tree:e,cacheNode:t,stateKey:r,next:null}));if(l.tree===e)return l;let o={tree:e,cacheNode:t,stateKey:r,next:null},u=1,i=l,s=o;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(o),o}("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),l=e.r(8372),a=e.r(71645),o=e.r(33906),u=e.r(61994),i=e.r(15783);function s({Component:e,serverProvidedParams:t}){let r,d;if(null!==t)r=t.searchParams,d=t.params;else{let e=(0,a.use)(l.LayoutRouterContext);d=null!==e?e.parentParams:{},r=(0,o.urlSearchParamsToParsedUrlQuery)((0,a.use)(u.SearchParamsContext))}let c=(0,i.createClientSearchParams)(r),f=(0,i.createClientParams)(d);return(0,n.jsx)(e,{params:f,searchParams:c})}("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),l=e.r(8372),a=e.r(71645),o=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)(l.LayoutRouterContext);i=null!==e?e.parentParams:{}}let s=(0,o.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 d}});let n=e.r(90809),l=e.r(43476),a=n._(e.r(71645)),o=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,o={[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,d=a===u.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return i||s||d?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("meta",{name:"robots",content:"noindex"}),!1,o[a]]}):n}return n}}function d({notFound:e,forbidden:t,unauthorized:r,children:n}){let u=(0,o.useUntrackedPathname)(),c=(0,a.useContext)(i.MissingSlotContext);return e||t||r?(0,l.jsx)(s,{pathname:u,notFound:e,forbidden:t,unauthorized:r,missingSlots:c,children:n}):(0,l.jsx)(l.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 o},RenderValidationBoundaryAtThisLevel:function(){return u},SlotMarker:function(){return i}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=null,o=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 l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});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 C},default:function(){return S}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=e.r(55682),o=e.r(90809),u=e.r(43476),i=o._(e.r(71645)),s=a._(e.r(74080)),d=e.r(8372),c=e.r(1244),f=e.r(72383),p=e.r(91915),m=e.r(58442),y=e.r(68017);e.r(77694);let b=e.r(70725),h=e.r(28298);e.r(74180);let g=e.r(61994),_=e.r(33906),v=e.r(95871);s.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function P(e,t,r){let n=e.getClientRects();if(0===n.length)return 0;let l=1/0;for(let e=0;e<n.length;e++){let t=n[e];t.top<l&&(l=t.top)}return l>=r()&&l<=t?1:2}i.default.Component;let j=function(e){let t=i.default.useRef(null);return(0,i.useLayoutEffect)(()=>{let{focusAndScrollRef:r,cacheNode:n}=e,l=r.forceScroll?r.scrollRef:n.scrollRef;if(null===l||!l.current)return;let a=null,o=r.hashFragment;if(o){var u;if(null===(a="top"===(u=o)?document.body:document.getElementById(u)??document.getElementsByName(u)[0]??null)){l.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,l;let a,o;return null===n&&(r=e,l=t,n=!Number.isFinite(o=Number.parseFloat(a=getComputedStyle(r).scrollPaddingTop))||o<0?0:a.endsWith("px")?o:a.endsWith("%")?o/100*l:0),n};(o||(t=e.clientHeight,0!==(r=P(a,t,u))))&&((i=!0,l.current=!1,o)?a.scrollIntoView():1!==r&&(e.scrollTop=0,2===P(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 x({children:e,cacheNode:t}){let r=(0,i.useContext)(d.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)(j,{focusAndScrollRef:r.focusAndScrollRef,cacheNode:t,children:e})}function O({tree:e,segmentPath:t,debugNameContext:r,cacheNode:n,params:l,url:a,isActive:o}){let s,f=(0,i.useContext)(d.GlobalLayoutRouterContext);if((0,i.useContext)(g.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)(c.unresolvedThenable),m=null!==p.prefetchRsc?p.prefetchRsc:p.rsc,y=(0,i.useDeferredValue)(p.rsc,m);if((0,v.isDeferredRsc)(y)){let e=(0,i.use)(y);null===e&&(0,i.use)(c.unresolvedThenable),s=e}else null===y&&(0,i.use)(c.unresolvedThenable),s=y;let b=s;return(0,u.jsx)(d.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:p,parentSegmentPath:t,parentParams:l,parentLoadingData:null,debugNameContext:r,url:a,isActive:o},children:b})}function C({loading:e,children:t}){let r=(0,i.use)(d.LayoutRouterContext);return null===r?t:(0,u.jsx)(d.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 R({name:e,loading:t,children:r}){if(null!==t){let n=t[0],l=t[1],a=t[2];return(0,u.jsx)(i.Suspense,{name:e,fallback:(0,u.jsxs)(u.Fragment,{children:[l,a,n]}),children:r})}return(0,u.jsx)(u.Fragment,{children:r})}function S({parallelRouterKey:e,error:t,errorStyles:r,errorScripts:n,templateStyles:l,templateScripts:a,template:o,notFound:s,forbidden:p,unauthorized:g,segmentViewBoundaries:v}){let P=(0,i.useContext)(d.LayoutRouterContext);if(!P)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:j,parentCacheNode:C,parentSegmentPath:T,parentParams:M,parentLoadingData:E,url:N,isActive:F,debugNameContext:A}=P,B=j[0],L=null===T?[e]:T.concat([B,e]),D=j[1][e],w=C.slots;(void 0===D||null===w)&&(0,i.use)(c.unresolvedThenable);let H=D[0],k=w[e]??null,U=(0,b.createRouterCacheKey)(H,!0),I=(0,h.useRouterBFCache)(D,k,U),V=[];do{let e=I.tree,i=I.cacheNode,c=I.stateKey,b=e[0],h=M;if(Array.isArray(b)){let e=b[0],t=b[1],r=b[2],n=(0,_.getParamValueFromCacheKey)(t,r);null!==n&&(h={...M,[e]:n})}let v=function(e){if("/"===e)return"/";if("string"==typeof e)if("(__SLOT__)"===e)return;else return e+"/";return e[1]+"/"}(b),P=v??A,j=void 0===v?void 0:A,C=(0,u.jsxs)(x,{cacheNode:i,children:[(0,u.jsx)(f.ErrorBoundary,{errorComponent:t,errorStyles:r,errorScripts:n,children:(0,u.jsx)(R,{name:j,loading:E,children:(0,u.jsx)(y.HTTPAccessFallbackBoundary,{notFound:s,forbidden:p,unauthorized:g,children:(0,u.jsxs)(m.RedirectBoundary,{children:[(0,u.jsx)(O,{url:N,tree:e,params:h,cacheNode:i,segmentPath:L,debugNameContext:P,isActive:F&&c===U}),null]})})})}),null]}),S=(0,u.jsxs)(d.TemplateContext.Provider,{value:C,children:[l,a,o]},c);V.push(S),I=I.next}while(null!==I)return V}("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),l=e.r(43476),a=n._(e.r(71645)),o=e.r(8372);function u(){let e=(0,a.useContext)(o.TemplateContext);return(0,l.jsx)(l.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 l}});let n=new WeakMap;function l(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 l}});let n=new WeakMap;function l(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 o.createRenderSearchParamsFromClient}};for(var l in n)Object.defineProperty(r,l,{enumerable:!0,get:n[l]});let a=e.r(14193),o=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)},27201,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"IconMark",{enumerable:!0,get:function(){return l}});let n=e.r(43476),l=()=>"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 l=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=l}e.i(47167),Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}})}]);
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/1c6aptmytnu6q.js","static/chunks/2yuzx8716maf0.js","static/chunks/31orv9uidm1fn.js","static/chunks/2ts65czrjjd_k.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;var t,r="/_next/",n=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),o=((t=o||{})[t.Runtime=0]="Runtime",t[t.Parent=1]="Parent",t[t.Update=2]="Update",t);let l=new WeakMap;function i(e,t){this.m=e,this.e=t}let u=i.prototype,s=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function a(e,t,r){s.call(e,t)||Object.defineProperty(e,t,r)}function f(e,t){let r=e[t];return r||(r=p(t),e[t]=r),r}function p(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t,r){a(e,"__esModule",{value:!0}),c&&a(e,c,{value:"Module"});let n=0;for(;n<t.length;){let r=t[n++],o=t[n++];if("number"==typeof o)if(0===o)a(e,r,{value:t[n++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[n]?a(e,r,{get:o,set:t[n++],enumerable:!0}):a(e,r,{get:o,enumerable:!0})}r||Object.seal(e)}function h(e,t){(null!=t?f(this.c,t):this.m).exports=e}u.s=function(e,t,r){let n,o;null!=t?o=(n=f(this.c,t)).exports:(n=this.m,o=this.e),n.namespaceObject=o,d(o,e,r)},u.j=function(e,t){let r,n;null!=t?n=(r=f(this.c,t)).exports:(r=this.m,n=this.e);let o=function(e,t){let r=l.get(e);if(!r){l.set(e,r=[]);let n=e=>{if("default"!==e){for(let t of r)if(s.call(t,e))return t}};e.exports=e.namespaceObject=new Proxy(t,{get(e,t){if(s.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);let r=n(t);return r&&Reflect.get(r,t)},set:()=>!1,defineProperty:()=>!1,deleteProperty:()=>!1,has:(e,t)=>!!Reflect.has(e,t)||"default"!==t&&"__esModule"!==t&&void 0!==n(t),ownKeys(e){let t=Reflect.ownKeys(e);for(let e of r)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t},getOwnPropertyDescriptor(e,t){let r=Reflect.getOwnPropertyDescriptor(e,t);if(r||"default"===t||"__esModule"===t)return r;let o=n(t);if(o)return{enumerable:!0,configurable:!0,get:()=>Reflect.get(o,t)}}})}return r}(r,n);"object"==typeof e&&null!==e&&o.push(e)},u.v=h,u.n=function(e,t){let r;(r=null!=t?f(this.c,t):this.m).exports=r.namespaceObject=e};let m=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,m({}),m([]),m(m)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=m(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function b(e){let t=K(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function O(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}u.i=b,u.A=function(e){return this.r(e)(b.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return K(e,this.m).exports},u.f=function(e){function t(t){if(t=O(t),s.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=O(t),s.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function k(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,u.U=w,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let R=i.prototype,v=new Map;u.M=v;let U=new Map,j=new Map,$=new Map;async function _(e,t,r){let n;if("string"==typeof r)return function(e,t,r){return T(e,t,r)}(e,t,E(r));let o=r.included||[],l=o.map(e=>!!v.has(e)||U.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);for(let l of(n=T(e,t,E(r.path)),o))U.has(l)||U.set(l,n);await n}R.l=function(e){return _(o.Parent,this.m.id,e)};let P=Promise.resolve(void 0),C=new WeakMap;function T(t,r,n){let l=e.loadChunkCached(t,n),i=C.get(l);if(void 0===i){let e=C.set.bind(C,l,P);i=l.then(e).catch(e=>{let l;switch(t){case o.Runtime:l=`as a runtime dependency of chunk ${r}`;break;case o.Parent:l=`from module ${r}`;break;case o.Update:l="from an HMR update";break;default:k(t,e=>`Unknown source type: ${e}`)}let i=Error(`Failed to load chunk ${n} ${l}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw i.name="ChunkLoadError",i}),C.set(l,i)}return i}R.L=function(e){var t,r;return t=o.Parent,r=this.m.id,T(t,r,e)};R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.F=function(e){return e?`file:///ROOT/${e.split("/").map(encodeURIComponent).join("/")}`:"file:///ROOT/"},R.q=function(e,t){h.call(this,`${e}${n}`,t)};let A=/[^A-Za-z0-9\-_.!~*'()/]/;function E(e,t=r){let o=A.test(e)?e.split("/").map(encodeURIComponent).join("/"):e;return`${t}${o}${n}`}function M(e,t){let r,n=e.indexOf("?");if(-1!==n)r=n;else{let t=e.indexOf("#");r=-1!==t?t:e.length}return r>=t.length&&e.startsWith(t,r-t.length)}R.b=r,R.X=n,R.h=E;function S(e){return M(e,".css")}let x={};u.c=x;let K=(e,t)=>{let r=x[e];if(r){if(r.error)throw r.error;return r}return N(e,o.Parent,t.id)};function N(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:k(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=p(e),l=o.exports;x[e]=o;let u=new i(o,l);try{n(u,o,l)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function L(t){let r;if(!Array.isArray(t))return e.registerChunk(void 0,t);let n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let l=e[o];for(let l=r;l<o;l++){let r=e[l],o=t.get(r);if(o){n=o;break}}let i=n??l,u=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(u||(i===l&&Object.defineProperty(l,"name",{value:"module evaluation"}),u=!0),t.set(r,i))}r=o+1}}(t,v)),e.registerChunk(n,r)}let B=new Map;function I(e){let t=B.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,retryAttempts:0,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},B.set(e,t)}return t}function q(e,t,r,n,o){!(null==n||n instanceof DOMException&&"NetworkError"===n.name)||r.retryAttempts>=1||B.get(t)!==r?(B.get(t)===r&&B.delete(t),r.reject(n)):(r.retryAttempts++,setTimeout(()=>{r.resolved||B.get(t)!==r||(o?o():(r.loadingStarted=!1,F(e,t)))},200+Math.floor(401*Math.random())))}function F(e,t){let r=I(t);if(r.loadingStarted)return r.promise;if(e===o.Runtime)return r.loadingStarted=!0,S(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(S(t));else if(M(t,".js")){self.TURBOPACK_NEXT_CHUNK_URLS.push(t);try{importScripts(t)}catch(n){q(e,t,r,n)}}else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let n=decodeURI(t);if(S(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${n}"],link[rel=stylesheet][href^="${n}?"]`).length>0)r.resolve();else{let n=()=>{let o=document.createElement("link");return o.rel="stylesheet",o.crossOrigin=null,o.href=t,o.onerror=()=>{let l=document.createComment("");o.replaceWith(l),q(e,t,r,void 0,()=>l.replaceWith(n()))},o.onload=()=>{r.resolve()},o};document.head.appendChild(n())}else if(M(t,".js")){let o=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${n}"],script[src^="${n}?"]`);if(o.length>0)for(let n of Array.from(o))n.addEventListener("error",()=>{n.remove(),q(e,t,r)},{once:!0});else{let n=document.createElement("script");n.crossOrigin=null,n.src=t,n.onerror=()=>{n.remove(),q(e,t,r)},document.head.appendChild(n)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise}e={async registerChunk(e,t){let n;if(null!=e&&(n=function(e){if("string"==typeof e)return e;let t=decodeURIComponent(e.src.replace(/[?#].*$/,""));return t.startsWith(r)?t.slice(r.length):t}(e),I("string"==typeof e?E(e):e.src).resolve()),null!=t){for(let e of t.otherChunks)I(E("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(e=>{var t;return t=n,_(o.Runtime,t,e)})),t.runtimeModuleIds.length>0)for(let e of t.runtimeModuleIds)!function(e,t){let r=x[t];if(r){if(r.error)throw r.error;return}N(t,o.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>F(e,t)};var D=globalThis.TURBOPACK;globalThis.TURBOPACK={push:L},D.forEach(L)})();
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/1c6aptmytnu6q.js","static/chunks/2yuzx8716maf0.js","static/chunks/1za08zjcctyil.js","static/chunks/1oml7c7env4-g.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;var t,r="/_next/",n=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),o=((t=o||{})[t.Runtime=0]="Runtime",t[t.Parent=1]="Parent",t[t.Update=2]="Update",t);let l=new WeakMap;function i(e,t){this.m=e,this.e=t}let u=i.prototype,s=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function a(e,t,r){s.call(e,t)||Object.defineProperty(e,t,r)}function f(e,t){let r=e[t];return r||(r=p(t),e[t]=r),r}function p(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function h(e,t,r){a(e,"__esModule",{value:!0}),c&&a(e,c,{value:"Module"});let n=0;for(;n<t.length;){let r=t[n++],o=t[n++];if("number"==typeof o)if(0===o)a(e,r,{value:t[n++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[n]?a(e,r,{get:o,set:t[n++],enumerable:!0}):a(e,r,{get:o,enumerable:!0})}r||Object.seal(e)}function d(e,t){(null!=t?f(this.c,t):this.m).exports=e}u.s=function(e,t,r){let n,o;null!=t?o=(n=f(this.c,t)).exports:(n=this.m,o=this.e),n.namespaceObject=o,h(o,e,r)},u.j=function(e,t){let r,n;null!=t?n=(r=f(this.c,t)).exports:(r=this.m,n=this.e);let o=function(e,t){let r=l.get(e);if(!r){l.set(e,r=[]);let n=e=>{if("default"!==e){for(let t of r)if(s.call(t,e))return t}};e.exports=e.namespaceObject=new Proxy(t,{get(e,t){if(s.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);let r=n(t);return r&&Reflect.get(r,t)},set:()=>!1,defineProperty:()=>!1,deleteProperty:()=>!1,has:(e,t)=>!!Reflect.has(e,t)||"default"!==t&&"__esModule"!==t&&void 0!==n(t),ownKeys(e){let t=Reflect.ownKeys(e);for(let e of r)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t},getOwnPropertyDescriptor(e,t){let r=Reflect.getOwnPropertyDescriptor(e,t);if(r||"default"===t||"__esModule"===t)return r;let o=n(t);if(o)return{enumerable:!0,configurable:!0,get:()=>Reflect.get(o,t)}}})}return r}(r,n);"object"==typeof e&&null!==e&&o.push(e)},u.v=d,u.n=function(e,t){let r;(r=null!=t?f(this.c,t):this.m).exports=r.namespaceObject=e};let m=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,m({}),m([]),m(m)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=m(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),h(t,n),t}function b(e){let t=K(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function O(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}u.i=b,u.A=function(e){return this.r(e)(b.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return K(e,this.m).exports},u.f=function(e){function t(t){if(t=O(t),s.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=O(t),s.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function k(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,u.U=w,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let R=i.prototype,v=new Map;u.M=v;let U=new Map,j=new Map,$=new Map;async function P(e,t,r){let n;if("string"==typeof r)return function(e,t,r){return T(e,t,r)}(e,t,E(r));let o=r.included||[],l=o.map(e=>!!v.has(e)||U.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);for(let l of(n=T(e,t,E(r.path)),o))U.has(l)||U.set(l,n);await n}R.l=function(e){return P(o.Parent,this.m.id,e)};let _=Promise.resolve(void 0),C=new WeakMap;function T(t,r,n){let l=e.loadChunkCached(t,n),i=C.get(l);if(void 0===i){let e=C.set.bind(C,l,_);i=l.then(e).catch(e=>{let l;switch(t){case o.Runtime:l=`as a runtime dependency of chunk ${r}`;break;case o.Parent:l=`from module ${r}`;break;case o.Update:l="from an HMR update";break;default:k(t,e=>`Unknown source type: ${e}`)}let i=Error(`Failed to load chunk ${n} ${l}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw i.name="ChunkLoadError",i}),C.set(l,i)}return i}R.L=function(e){var t,r;return t=o.Parent,r=this.m.id,T(t,r,e)};R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.F=function(e){return e?`file:///ROOT/${e.split("/").map(encodeURIComponent).join("/")}`:"file:///ROOT/"},R.q=function(e,t){d.call(this,`${e}${n}`,t)};let A=/[^A-Za-z0-9\-_.!~*'()/]/;function E(e,t=r){let o=A.test(e)?e.split("/").map(encodeURIComponent).join("/"):e;return`${t}${o}${n}`}function M(e,t){let r,n=e.indexOf("?");if(-1!==n)r=n;else{let t=e.indexOf("#");r=-1!==t?t:e.length}return r>=t.length&&e.startsWith(t,r-t.length)}R.b=r,R.X=n,R.h=E;function S(e){return M(e,".css")}let x={};u.c=x;let K=(e,t)=>{let r=x[e];if(r){if(r.error)throw r.error;return r}return N(e,o.Parent,t.id)};function N(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:k(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=p(e),l=o.exports;x[e]=o;let u=new i(o,l);try{n(u,o,l)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function L(t){let r;if(!Array.isArray(t))return e.registerChunk(void 0,t);let n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let l=e[o];for(let l=r;l<o;l++){let r=e[l],o=t.get(r);if(o){n=o;break}}let i=n??l,u=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(u||(i===l&&Object.defineProperty(l,"name",{value:"module evaluation"}),u=!0),t.set(r,i))}r=o+1}}(t,v)),e.registerChunk(n,r)}let B=new Map;function I(e){let t=B.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,retryAttempts:0,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},B.set(e,t)}return t}function q(e,t,r,n,o){!(null==n||n instanceof DOMException&&"NetworkError"===n.name)||r.retryAttempts>=1||B.get(t)!==r?(B.get(t)===r&&B.delete(t),r.reject(n)):(r.retryAttempts++,setTimeout(()=>{r.resolved||B.get(t)!==r||(o?o():(r.loadingStarted=!1,F(e,t)))},200+Math.floor(401*Math.random())))}function F(e,t){let r=I(t);if(r.loadingStarted)return r.promise;if(e===o.Runtime)return r.loadingStarted=!0,S(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(S(t));else if(M(t,".js")){self.TURBOPACK_NEXT_CHUNK_URLS.push(t);try{importScripts(t)}catch(n){q(e,t,r,n)}}else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let n=decodeURI(t);if(S(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${n}"],link[rel=stylesheet][href^="${n}?"]`).length>0)r.resolve();else{let n=()=>{let o=document.createElement("link");return o.rel="stylesheet",o.crossOrigin=null,o.href=t,o.onerror=()=>{let l=document.createComment("");o.replaceWith(l),q(e,t,r,void 0,()=>l.replaceWith(n()))},o.onload=()=>{r.resolve()},o};document.head.appendChild(n())}else if(M(t,".js")){let o=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${n}"],script[src^="${n}?"]`);if(o.length>0)for(let n of Array.from(o))n.addEventListener("error",()=>{n.remove(),q(e,t,r)},{once:!0});else{let n=document.createElement("script");n.crossOrigin=null,n.src=t,n.onerror=()=>{n.remove(),q(e,t,r)},document.head.appendChild(n)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise}e={async registerChunk(e,t){let n;if(null!=e&&(n=function(e){if("string"==typeof e)return e;let t=decodeURIComponent(e.src.replace(/[?#].*$/,""));return t.startsWith(r)?t.slice(r.length):t}(e),I("string"==typeof e?E(e):e.src).resolve()),null!=t){for(let e of t.otherChunks)I(E("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(e=>{var t;return t=n,P(o.Runtime,t,e)})),t.runtimeModuleIds.length>0)for(let e of t.runtimeModuleIds)!function(e,t){let r=x[t];if(r){if(r.error)throw r.error;return}N(t,o.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>F(e,t)};var D=globalThis.TURBOPACK;globalThis.TURBOPACK={push:L},D.forEach(L)})();
@@ -1,9 +1,10 @@
1
1
  # Security Policy
2
2
 
3
- failproofai is an npm package that installs hooks into AI coding agents (Claude
4
- Code, Codex, and others) and runs locally in developers' environments, observing
5
- and gating agent actions. A compromised dependency would therefore run on our
6
- users' machines, inside their agent sessions — so we treat our supply chain as
3
+ failproofai is an npm package that installs hooks into AI agent harnesses
4
+ (Claude Code, Codex, Cursor, the Hermes and OpenClaw gateways, and others) and
5
+ runs locally in the environment the agent runs in, observing and gating agent
6
+ actions. A compromised dependency would therefore run on our
7
+ users' machines and servers, inside their agent sessions — so we treat our supply chain as
7
8
  part of our users' trust boundary. This document covers how to report a
8
9
  vulnerability and how our dependency supply-chain scanning works.
9
10
 
@@ -2,7 +2,6 @@
2
2
 
3
3
  import { configuredCustomPolicyPaths, readMergedHooksConfig } from "@/src/hooks/hooks-config";
4
4
  import { hooksInstalledInSettings, getSettingsPath } from "@/src/hooks/manager";
5
- import { BUILTIN_POLICIES } from "@/src/hooks/builtin-policies";
6
5
  import { listIntegrations } from "@/src/hooks/integrations";
7
6
  import { HOOK_SCOPES } from "@/src/hooks/types";
8
7
  import type { HookScope, IntegrationType } from "@/src/hooks/types";
@@ -13,6 +12,8 @@ import { readFile } from "node:fs/promises";
13
12
  import { existsSync } from "node:fs";
14
13
  import { basename, resolve } from "node:path";
15
14
  import { customPoliciesDir } from "@/src/hooks/fp-home";
15
+ import { readInstalledPacks } from "@/src/hooks/pack-manifest";
16
+ import type { PackError, ResolvedPack } from "@/src/hooks/pack-manifest";
16
17
 
17
18
  export interface PolicyParamSpec {
18
19
  type: string;
@@ -30,6 +31,9 @@ export interface PolicyInfo {
30
31
  eventScope: string;
31
32
  params?: Record<string, PolicyParamSpec>;
32
33
  currentParams?: Record<string, unknown>;
34
+ /** The pack this policy came from — every policy has one now. */
35
+ packId: string;
36
+ packVersion: string;
33
37
  }
34
38
 
35
39
  export interface CustomPolicyInfo {
@@ -68,6 +72,25 @@ export interface CliInstallStatus {
68
72
  detected: boolean;
69
73
  }
70
74
 
75
+ /** One policy carried by an installed pack. */
76
+ export interface PackPolicyInfo {
77
+ name: string;
78
+ description: string;
79
+ category: string;
80
+ enabled: boolean;
81
+ }
82
+
83
+ export interface InstalledPackInfo {
84
+ id: string;
85
+ version: string;
86
+ /** Where it came from, verbatim — `github:acme/ops@v1.0.0` or `bundled:...`. */
87
+ source: string;
88
+ effect: "enforce" | "observe";
89
+ policies: PackPolicyInfo[];
90
+ /** Set when the record itself could not be read, e.g. its digest changed. */
91
+ error?: string;
92
+ }
93
+
71
94
  export interface HooksConfigPayload {
72
95
  enabledPolicies: string[];
73
96
  /** Claude-only legacy field; kept for back-compat. New UI should consume `clis`. */
@@ -83,6 +106,8 @@ export interface HooksConfigPayload {
83
106
  customPolicies?: CustomPolicyInfo[];
84
107
  /** Convention-discovered policy files, project scope first. */
85
108
  conventionPolicies: ConventionPolicyFile[];
109
+ /** Installed policy packs, read from `installed.json`. */
110
+ packs: InstalledPackInfo[];
86
111
  }
87
112
 
88
113
  /**
@@ -179,7 +204,6 @@ export async function getHooksConfigAction(): Promise<HooksConfigPayload> {
179
204
  // Match runtime enforcement: project, local, and user config all
180
205
  // contribute to the effective policy state shown by the dashboard.
181
206
  const config = readMergedHooksConfig(launchCwd);
182
- const enabledSet = new Set(config.enabledPolicies);
183
207
  const disabledCustomPolicies = new Set(config.disabledCustomPolicies ?? []);
184
208
 
185
209
  const installedScopes = HOOK_SCOPES.filter((s) => hooksInstalledInSettings(s));
@@ -194,21 +218,52 @@ export async function getHooksConfigAction(): Promise<HooksConfigPayload> {
194
218
  detected: integration.detectInstalled(),
195
219
  }));
196
220
 
197
- const policies: PolicyInfo[] = BUILTIN_POLICIES.map((p) => ({
198
- name: p.name,
199
- description: p.description,
200
- category: p.category,
201
- defaultEnabled: p.defaultEnabled,
202
- beta: !!p.beta,
203
- enabled: enabledSet.has(p.name),
204
- eventScope: buildEventScope(p.match),
205
- params: p.params
206
- ? Object.fromEntries(
207
- Object.entries(p.params).map(([k, v]) => [k, { type: v.type, description: v.description, default: v.default }])
208
- )
209
- : undefined,
210
- currentParams: p.params ? (config.policyParams?.[p.name] ?? {}) : undefined,
211
- }));
221
+ // Read once, ahead of everything that needs it: the policy list IS the packs'
222
+ // policies now, and the pack listing further down describes the same read.
223
+ let installedPacks: ResolvedPack[] = [];
224
+ let packErrors: PackError[] = [];
225
+ try {
226
+ const result = readInstalledPacks();
227
+ installedPacks = result.packs;
228
+ packErrors = result.errors;
229
+ } catch {
230
+ // A listing must not be the thing that turns an unreadable manifest into a
231
+ // broken page.
232
+ }
233
+
234
+ // Every policy that enforces here comes from an installed PACK. Nothing is
235
+ // compiled into this build any more except the always-on self-protection
236
+ // guard — which no listing can switch off, so it has no row.
237
+ const policies: PolicyInfo[] = [];
238
+ for (const pack of installedPacks) {
239
+ const taken = pack.enabled ?? pack.policies.map((p) => p.name);
240
+ for (const policy of pack.policies) {
241
+ policies.push({
242
+ name: policy.name,
243
+ description: policy.description,
244
+ category: policy.category,
245
+ defaultEnabled: policy.defaultEnabled,
246
+ beta: false,
247
+ enabled:
248
+ taken.includes(policy.name) &&
249
+ !disabledCustomPolicies.has(`pack:${pack.id}@${pack.version}:${policy.name}`),
250
+ eventScope: buildEventScope(policy.match),
251
+ packId: pack.id,
252
+ packVersion: pack.version,
253
+ ...(policy.params
254
+ ? {
255
+ params: Object.fromEntries(
256
+ Object.entries(policy.params).map(([k, v]) => [
257
+ k,
258
+ { type: v.type, description: v.description, default: v.default },
259
+ ]),
260
+ ),
261
+ currentParams: config.policyParams?.[policy.name] ?? {},
262
+ }
263
+ : {}),
264
+ });
265
+ }
266
+ }
212
267
 
213
268
  const customPoliciesPaths = configuredCustomPolicyPaths(config);
214
269
  const launchRoot = findProjectConfigDir(launchCwd);
@@ -232,6 +287,41 @@ export async function getHooksConfigAction(): Promise<HooksConfigPayload> {
232
287
  new Set(resolvedCustomPaths),
233
288
  );
234
289
 
290
+ // Metadata only — deliberately never imported. Same rule as the convention
291
+ // files above: this runs on every page load, and importing a pack's artifact
292
+ // would execute a third party's code inside the long-lived dashboard server.
293
+ // The import check that proves a pack still loads belongs to the CLI and to
294
+ // the user-initiated install action.
295
+ const packs: InstalledPackInfo[] = installedPacks.map((pack) => {
296
+ const taken = pack.enabled ?? pack.policies.map((p) => p.name);
297
+ return {
298
+ id: pack.id,
299
+ version: pack.version,
300
+ source: pack.source,
301
+ effect: pack.effect,
302
+ policies: pack.policies.map((policy) => ({
303
+ name: policy.name,
304
+ description: policy.description,
305
+ category: policy.category,
306
+ enabled:
307
+ taken.includes(policy.name) &&
308
+ !disabledCustomPolicies.has(`pack:${pack.id}@${pack.version}:${policy.name}`),
309
+ })),
310
+ };
311
+ });
312
+ for (const err of packErrors) {
313
+ // A pack that will not load is what the machine denies for; a listing that
314
+ // omitted it would be the quietest possible way to report that.
315
+ packs.push({
316
+ id: err.id ?? "(unnamed pack)",
317
+ version: "",
318
+ source: "",
319
+ effect: "enforce",
320
+ policies: [],
321
+ error: err.reason,
322
+ });
323
+ }
324
+
235
325
  return {
236
326
  enabledPolicies: config.enabledPolicies,
237
327
  installedScopes,
@@ -242,5 +332,6 @@ export async function getHooksConfigAction(): Promise<HooksConfigPayload> {
242
332
  customPoliciesPath: customPoliciesPaths.length === 1 ? customPoliciesPaths[0] : undefined,
243
333
  customPolicies: customPolicies.length ? customPolicies : undefined,
244
334
  conventionPolicies,
335
+ packs,
245
336
  };
246
337
  }