failproofai 1.0.4-beta.6 → 1.0.4-beta.7

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 (118) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +1 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  10. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
  11. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +13 -13
  20. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +5 -5
  30. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/index.html +1 -1
  33. package/.next/standalone/.next/server/app/index.rsc +14 -14
  34. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +13 -13
  35. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
  36. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  38. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
  41. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  44. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  47. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  48. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  51. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +15 -4
  54. package/.next/standalone/.next/server/app/settings/page.js +2 -2
  55. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o07qi9._.js +1 -1
  58. package/.next/standalone/.next/server/chunks/_0tovk6q._.js +1 -1
  59. package/.next/standalone/.next/server/chunks/_0trp3yc._.js +1 -1
  60. package/.next/standalone/.next/server/chunks/_1ek68ln._.js +10 -10
  61. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  62. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-4ja6q._.js +2 -2
  63. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00cr3xu._.js +2 -2
  64. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04px77e._.js +2 -2
  65. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0egr5s1._.js +2 -2
  66. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0i0l1di._.js +2 -2
  67. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0oa1lav._.js +1 -1
  68. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0r3c1_0._.js +2 -2
  69. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1ui5ur8._.js → [root-of-the-server]__12hbpha._.js} +2 -2
  70. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__17xnxlx._.js +2 -2
  71. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1ckpmkk._.js +2 -2
  72. package/.next/standalone/.next/server/chunks/ssr/_04ng_6x._.js +1 -1
  73. package/.next/standalone/.next/server/chunks/ssr/_07t3jol._.js +1 -1
  74. package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
  75. package/.next/standalone/.next/server/chunks/ssr/{_02b3i98._.js → _0a0zlpr._.js} +2 -2
  76. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo.js +2 -2
  77. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
  78. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  79. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
  80. package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +1 -1
  81. package/.next/standalone/.next/server/chunks/ssr/src_hooks_builtin-policies_ts_09j2ndl._.js +1 -1
  82. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  83. package/.next/standalone/.next/server/pages/404.html +1 -1
  84. package/.next/standalone/.next/server/pages/500.html +1 -1
  85. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  86. package/.next/standalone/.next/server/server-reference-manifest.json +33 -22
  87. package/.next/standalone/.next/static/chunks/{20xkiqzvfkuvm.js → 083fk73jtv9a0.js} +1 -1
  88. package/.next/standalone/.next/static/chunks/{1xgq22tri86an.js → 0divvxng208xo.js} +1 -1
  89. package/.next/standalone/.next/static/chunks/{1gn08w2pgqh09.js → 0f1pznnc7zlub.js} +1 -1
  90. package/.next/standalone/.next/static/chunks/{3jxd133cw2vm3.js → 0ntdfr2552x-h.js} +1 -1
  91. package/.next/standalone/.next/static/chunks/{32m2ryfankf_2.js → 0t6ea7d3bkmdv.js} +1 -1
  92. package/.next/standalone/.next/static/chunks/{07c6l1lq5_69b.js → 15uon66hpwbgg.js} +1 -1
  93. package/.next/standalone/.next/static/chunks/{2a84ug32tzik2.js → 1csubx9gwhsf6.js} +1 -1
  94. package/.next/standalone/.next/static/chunks/27du9n7ssja7l.js +1 -0
  95. package/.next/standalone/.next/static/chunks/2h_pcb1y8_jde.js +1 -0
  96. package/.next/standalone/.next/static/chunks/{12bsgz8czvcnn.js → 2pwfrn6_mw-1u.js} +1 -1
  97. package/.next/standalone/app/actions/get-scheduled-audit.ts +5 -0
  98. package/.next/standalone/app/actions/update-scheduled-audit.ts +14 -1
  99. package/.next/standalone/app/audit/_components/audit-dashboard.tsx +1 -1
  100. package/.next/standalone/app/audit/_components/empty-state.tsx +1 -1
  101. package/.next/standalone/app/audit/_components/leak-section.tsx +1 -1
  102. package/.next/standalone/app/settings/settings-client.tsx +42 -11
  103. package/.next/standalone/package.json +9 -9
  104. package/.next/standalone/server.js +1 -1
  105. package/dist/cli.mjs +69 -68
  106. package/dist/worker.mjs +3 -3
  107. package/package.json +9 -9
  108. package/src/audit/index.ts +1 -1
  109. package/src/audit/leak-record.ts +24 -12
  110. package/src/audit/macos-notifier.ts +54 -66
  111. package/src/hooks/builtin-policies.ts +2 -2
  112. package/src/hooks/configure-wizard.ts +8 -1
  113. package/src/hooks/uninstall-cli.ts +3 -3
  114. package/.next/standalone/.next/static/chunks/3ioub_lpen-sq.js +0 -1
  115. package/.next/standalone/.next/static/chunks/44ncu88eq6z71.js +0 -1
  116. /package/.next/standalone/.next/static/{aeM365dNTtUZOZvNkX8ba → YiPsVpjrc-pEQoN7XvhZ0}/_buildManifest.js +0 -0
  117. /package/.next/standalone/.next/static/{aeM365dNTtUZOZvNkX8ba → YiPsVpjrc-pEQoN7XvhZ0}/_clientMiddlewareManifest.js +0 -0
  118. /package/.next/standalone/.next/static/{aeM365dNTtUZOZvNkX8ba → YiPsVpjrc-pEQoN7XvhZ0}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},26035,a=>{"use strict";var b=a.i(36359);a.s([],19459),a.i(19459),a.s(["007ccdb1326c7e33bd8fd7a1fe8c1779bdb5425857",()=>b.getTelemetryConfig],26035)},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"007ccdb1326c7e33bd8fd7a1fe8c1779bdb5425857",null),a.s(["getTelemetryConfig",0,f])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";a.i(69839),a.i(31920),a.i(79779).POSTHOG_API_KEY,a.s([])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.4-beta.6",description:"Observability and enforcement for AI agent harnesses. 39 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","openclaw-plugin/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node --external sql.js && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"","build:worker":"bun build --target=node --format=esm --outfile=dist/worker.mjs bin/failproofai-worker.mjs --external posthog-node --external sql.js",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun run build:worker && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate","validate:mdx":"bun scripts/validate-mdx.ts","docs:audit":"bun scripts/docs-audit.ts","build:pack":"bun scripts/build-policy-pack.mjs"},keywords:["agent-observability","llm-observability","agent-tracing","agent-monitoring","agent-harness","guardrails","enforcement","policies","evals","ai-agent","autonomous-agent","agent-reliability","failure-prevention","claude-code","codex","hermes","openclaw","cli","local-first","hooks"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/FailproofAI/failproofai",repository:{type:"git",url:"https://github.com/FailproofAI/failproofai.git"},bugs:{url:"https://github.com/FailproofAI/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.123.0","@mdx-js/mdx":"^3.1.1","@tailwindcss/postcss":"^4.3.1","@tanstack/react-virtual":"^3.14.10","@testing-library/jest-dom":"^7.0.0","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.5","@types/node":"26.4.1","@types/react":"19.2.18","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.1.0",clsx:"^2.1.1",eslint:"^10.9.0","eslint-config-next":"^16.3.2",jsdom:"^30.0.1","lucide-react":"^1.33.0",next:"^16.3.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.0","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.4-beta.6","@failproofai/failproofaid-linux-arm64":"1.0.4-beta.6","@failproofai/failproofaid-darwin-x64":"1.0.4-beta.6","@failproofai/failproofaid-darwin-arm64":"1.0.4-beta.6"},failproofaidBinaries:{"linux-x64":"24118b8bd058cc5d8711053c4c77cdca9361c12dbf0f421a757d33f07596d428","linux-arm64":"b4278c34a288de2c747bcebcc623d8fd5bda3a1f1e55800926eb1a4b89f0a5e9","darwin-x64":"ecb66699f45f605b0d54ac9e4bac360ac11e4e136442dcccdd083514d77c7d42","darwin-arm64":"b3dbad58bda960ef9481f90bc5085ba8624b2472519cc0bf212a0e8451dd2db4"}}},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
1
+ module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},26035,a=>{"use strict";var b=a.i(36359);a.s([],19459),a.i(19459),a.s(["003e262c4767efbfd41aad89a867e6eff6ad16d665",()=>b.getTelemetryConfig],26035)},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"003e262c4767efbfd41aad89a867e6eff6ad16d665",null),a.s(["getTelemetryConfig",0,f])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";a.i(69839),a.i(31920),a.i(79779).POSTHOG_API_KEY,a.s([])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.4-beta.7",description:"Observability and enforcement for AI agent harnesses. 39 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","openclaw-plugin/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node --external sql.js && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"","build:worker":"bun build --target=node --format=esm --outfile=dist/worker.mjs bin/failproofai-worker.mjs --external posthog-node --external sql.js",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun run build:worker && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate","validate:mdx":"bun scripts/validate-mdx.ts","docs:audit":"bun scripts/docs-audit.ts","build:pack":"bun scripts/build-policy-pack.mjs"},keywords:["agent-observability","llm-observability","agent-tracing","agent-monitoring","agent-harness","guardrails","enforcement","policies","evals","ai-agent","autonomous-agent","agent-reliability","failure-prevention","claude-code","codex","hermes","openclaw","cli","local-first","hooks"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/FailproofAI/failproofai",repository:{type:"git",url:"https://github.com/FailproofAI/failproofai.git"},bugs:{url:"https://github.com/FailproofAI/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.123.0","@mdx-js/mdx":"^3.1.1","@tailwindcss/postcss":"^4.3.1","@tanstack/react-virtual":"^3.14.10","@testing-library/jest-dom":"^7.0.0","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.5","@types/node":"26.4.1","@types/react":"19.2.18","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.1.0",clsx:"^2.1.1",eslint:"^10.9.0","eslint-config-next":"^16.3.2",jsdom:"^30.0.1","lucide-react":"^1.33.0",next:"^16.3.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.0","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.4-beta.7","@failproofai/failproofaid-linux-arm64":"1.0.4-beta.7","@failproofai/failproofaid-darwin-x64":"1.0.4-beta.7","@failproofai/failproofaid-darwin-arm64":"1.0.4-beta.7"},failproofaidBinaries:{"linux-x64":"e59735a8f94cd8ac697b2bd67aafdd8d76a8394d53db229876980cc13a18f07e","linux-arm64":"b9ce50dd2f79b55f4f7112add265a776a4a6d002c2a56f971e666fbb796f3906","darwin-x64":"b46efc8ec33945a5cc26b7bb288fb87cea65b5983bd83094b5e607d53b8eda4c","darwin-arm64":"a8cc6112cee5ca8a7d517900e9ce32118855135980f22979fa0ff7aa6f68d954"}}},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
3
3
 
4
4
  //# sourceMappingURL=%5Broot-of-the-server%5D__1ckpmkk._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[74863,a=>{"use strict";var b=a.i(36359),c=a.i(37936),d=a.i(15501),e=a.i(13095);async function f(){let a=(0,d.readDashboardCache)();if(!a){let a=(0,d.readDashboardCacheMeta)();return{status:"empty",expired:null!==a,expiredAt:a?.cachedAt??null}}return{status:"cached",cachedAt:a.cachedAt,params:a.params,result:a.result}}(0,e.ensureServerEntryExports)([f]),(0,c.registerServerReference)(f,"009ad545620d7158fc4c18ddc9854cfa5473399e64",null);var g=a.i(66680),h=a.i(2157),i=a.i(50227),j=a.i(75818),k=a.i(8674);function l(a){try{if(!(0,h.existsSync)(a))return null;return JSON.parse((0,h.readFileSync)(a,"utf8"))}catch{return null}}function m(a){let b=l((0,j.auditLeakIdentityFile)(a));if(b&&"string"==typeof b.salt&&b.salt.length>=32)return{salt:b.salt,dismissed:b.dismissed??[]};let c={salt:(0,g.randomBytes)(32).toString("hex"),dismissed:[]};return n(c,a),c}function n(a,b){let c=(0,j.auditLeakIdentityFile)(b);try{return(0,h.mkdirSync)((0,i.dirname)(c),{recursive:!0}),(0,k.writeJsonAtomically)(c,a,{mode:384}),!0}catch{return!1}}function o(a){var b;if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.id||(b=a.id,!/^[0-9a-f]{16}$/.test(b)))return null;let c=a.fingerprint;if(!c||"object"!=typeof c||"string"!=typeof c.display||"string"!=typeof c.label)return null;let d=Array.isArray(a.sightings)?a.sightings.filter(a=>{if(!a||"object"!=typeof a)return!1;let b=a.mechanism;return!!b&&"object"==typeof b&&"string"==typeof b.summary}):[];return{...a,fingerprint:{display:c.display,label:c.label,length:"number"==typeof c.length&&Number.isFinite(c.length)?c.length:0,attributed:!0===c.attributed},name:"string"==typeof a.name?a.name:null,firstSeen:"string"==typeof a.firstSeen?a.firstSeen:"",lastSeen:"string"==typeof a.lastSeen?a.lastSeen:"",occurrences:"number"==typeof a.occurrences&&Number.isFinite(a.occurrences)?a.occurrences:d.length,sightings:d}}var p=a.i(21572);async function q(){var a;let b,c=(a=function(){let a=m(void 0),b=l((0,j.auditLeaksFile)(void 0));if(!b||1!==b.schemaVersion||!Array.isArray(b.findings))return{schemaVersion:1,salt:a.salt,updatedAt:new Date().toISOString(),findings:[]};let c=b.findings.map(o).filter(a=>null!==a);return{...b,findings:c,salt:a.salt}}(),b=new Set(m(void 0).dismissed),a.findings.filter(a=>!b.has(a.id)).sort((a,b)=>a.lastSeen<b.lastSeen?1:a.lastSeen>b.lastSeen?-1:0)).map(a=>{let b=a.sightings?.[a.sightings.length-1];return{id:a.id,display:a.fingerprint?.display??"[credential]",label:a.fingerprint?.label??"secret",length:a.fingerprint?.length??0,attributed:a.fingerprint?.attributed===!0,name:a.name,cli:b?.cli??"unknown",project:b?.cwd??"unknown",lastSeen:a.lastSeen,firstSeen:a.firstSeen,mechanism:b?.mechanism?.summary??"seen in a transcript",direction:b?.mechanism?.direction??"result",occurrences:a.occurrences,sessions:new Set((a.sightings??[]).map(a=>a.sessionId)).size}});return c.sort((a,b)=>Date.parse(b.lastSeen)-Date.parse(a.lastSeen)),{rows:c,notify:(0,p.readConfig)().audit.notify}}async function r(a){let b;return!!(b=m(void 0)).dismissed.includes(a)||(b.dismissed.push(a),n(b,void 0))}async function s(a){try{return(0,p.updateConfig)({audit:{notify:a}}),!0}catch{return!1}}(0,e.ensureServerEntryExports)([q,r,s]),(0,c.registerServerReference)(q,"004c0a92f30b3875d89d14068f7fbdb7ecce772dc3",null),(0,c.registerServerReference)(r,"40627fe0bb35d1aea2f59f4ed5f39912b524a8cc1c",null),(0,c.registerServerReference)(s,"40dbb536ad33353d440386d51c0242e56cd808cfbc",null),a.s([],37550),a.i(37550),a.s(["004c0a92f30b3875d89d14068f7fbdb7ecce772dc3",0,q,"007ccdb1326c7e33bd8fd7a1fe8c1779bdb5425857",()=>b.getTelemetryConfig,"009ad545620d7158fc4c18ddc9854cfa5473399e64",0,f,"40627fe0bb35d1aea2f59f4ed5f39912b524a8cc1c",0,r,"40dbb536ad33353d440386d51c0242e56cd808cfbc",0,s],74863)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
1
+ module.exports=[74863,a=>{"use strict";var b=a.i(36359),c=a.i(37936),d=a.i(15501),e=a.i(13095);async function f(){let a=(0,d.readDashboardCache)();if(!a){let a=(0,d.readDashboardCacheMeta)();return{status:"empty",expired:null!==a,expiredAt:a?.cachedAt??null}}return{status:"cached",cachedAt:a.cachedAt,params:a.params,result:a.result}}(0,e.ensureServerEntryExports)([f]),(0,c.registerServerReference)(f,"0000e73cd773fa2c53602d9adf5b270fa497747e54",null);var g=a.i(66680),h=a.i(2157),i=a.i(50227),j=a.i(75818),k=a.i(8674);function l(a){try{if(!(0,h.existsSync)(a))return null;return JSON.parse((0,h.readFileSync)(a,"utf8"))}catch{return null}}function m(a){let b=l((0,j.auditLeakIdentityFile)(a));if(b&&"string"==typeof b.salt&&b.salt.length>=32)return{salt:b.salt,dismissed:b.dismissed??[]};let c={salt:(0,g.randomBytes)(32).toString("hex"),dismissed:[]};return n(c,a),c}function n(a,b){let c=(0,j.auditLeakIdentityFile)(b);try{return(0,h.mkdirSync)((0,i.dirname)(c),{recursive:!0}),(0,k.writeJsonAtomically)(c,a,{mode:384}),!0}catch{return!1}}function o(a){var b;if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.id||(b=a.id,!/^[0-9a-f]{16}$/.test(b)))return null;let c=a.fingerprint;if(!c||"object"!=typeof c||"string"!=typeof c.display||"string"!=typeof c.label)return null;let d=Array.isArray(a.sightings)?a.sightings.filter(a=>{if(!a||"object"!=typeof a)return!1;let b=a.mechanism;return!!b&&"object"==typeof b&&"string"==typeof b.summary}):[];return{...a,fingerprint:{display:c.display,label:c.label,length:"number"==typeof c.length&&Number.isFinite(c.length)?c.length:0,attributed:!0===c.attributed},name:"string"==typeof a.name?a.name:null,firstSeen:"string"==typeof a.firstSeen?a.firstSeen:"",lastSeen:"string"==typeof a.lastSeen?a.lastSeen:"",occurrences:"number"==typeof a.occurrences&&Number.isFinite(a.occurrences)?a.occurrences:d.length,sightings:d}}var p=a.i(21572);async function q(){var a;let b,c=(a=function(){let a=m(void 0),b=l((0,j.auditLeaksFile)(void 0));if(!b||1!==b.schemaVersion||!Array.isArray(b.findings))return{schemaVersion:1,salt:a.salt,updatedAt:new Date().toISOString(),findings:[]};let c=b.findings.map(o).filter(a=>null!==a);return{...b,findings:c,salt:a.salt}}(),b=new Set(m(void 0).dismissed),a.findings.filter(a=>!b.has(a.id)).sort((a,b)=>a.lastSeen<b.lastSeen?1:a.lastSeen>b.lastSeen?-1:0)).map(a=>{let b=a.sightings?.[a.sightings.length-1];return{id:a.id,display:a.fingerprint?.display??"[credential]",label:a.fingerprint?.label??"secret",length:a.fingerprint?.length??0,attributed:a.fingerprint?.attributed===!0,name:a.name,cli:b?.cli??"unknown",project:b?.cwd??"unknown",lastSeen:a.lastSeen,firstSeen:a.firstSeen,mechanism:b?.mechanism?.summary??"seen in a transcript",direction:b?.mechanism?.direction??"result",occurrences:a.occurrences,sessions:new Set((a.sightings??[]).map(a=>a.sessionId)).size}});return c.sort((a,b)=>Date.parse(b.lastSeen)-Date.parse(a.lastSeen)),{rows:c,notify:(0,p.readConfig)().audit.notify}}async function r(a){let b;return!!(b=m(void 0)).dismissed.includes(a)||(b.dismissed.push(a),n(b,void 0))}async function s(a){try{return(0,p.updateConfig)({audit:{notify:a}}),!0}catch{return!1}}(0,e.ensureServerEntryExports)([q,r,s]),(0,c.registerServerReference)(q,"006f2aa64f86bf0154079fad166e1e5e06b1d050e5",null),(0,c.registerServerReference)(r,"40b4a6c8d1e4b511e816c8d7493f24fb0e7e7be2e6",null),(0,c.registerServerReference)(s,"40a7972103d740f0429a2a6110f5ac4613c7847631",null),a.s([],37550),a.i(37550),a.s(["0000e73cd773fa2c53602d9adf5b270fa497747e54",0,f,"003e262c4767efbfd41aad89a867e6eff6ad16d665",()=>b.getTelemetryConfig,"006f2aa64f86bf0154079fad166e1e5e06b1d050e5",0,q,"40a7972103d740f0429a2a6110f5ac4613c7847631",0,s,"40b4a6c8d1e4b511e816c8d7493f24fb0e7e7be2e6",0,r],74863)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
2
2
 
3
3
  //# sourceMappingURL=_04ng_6x._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[21776,a=>{"use strict";var b=a.i(36359),c=a.i(7292);a.s([],84740),a.i(84740),a.s(["007ccdb1326c7e33bd8fd7a1fe8c1779bdb5425857",()=>b.getTelemetryConfig,"6009779268cbebb950fffbef0f7dab73fe58ddbf3b",()=>c.searchHookActivityAction],21776)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
1
+ module.exports=[21776,a=>{"use strict";var b=a.i(36359),c=a.i(7292);a.s([],84740),a.i(84740),a.s(["003e262c4767efbfd41aad89a867e6eff6ad16d665",()=>b.getTelemetryConfig,"6059e7956847dcf118f5aab7d116ab9adae0d0979e",()=>c.searchHookActivityAction],21776)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
2
2
 
3
3
  //# sourceMappingURL=_07t3jol._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[45550,a=>{"use strict";var b=a.i(72131),c=a.i(66036);let d=/\b[\w-]+-extension:\/\//i;function e(a){return"app"===function({stack:a,filename:b,appOrigin:c}){let e=[b,a].filter(Boolean).join("\n");return e.trim()?d.test(e)?"extension":c&&e.includes(c)?"app":"unknown":"unknown"}(a)}a.s(["GlobalErrorListeners",0,function(){return(0,b.useEffect)(()=>{let a=a=>{e({stack:a.error?.stack,filename:a.filename,appOrigin:window.location.origin})&&(0,c.captureClientEvent)("unhandled_exception",{error_message:a.message,error_name:a.error?.name,error_filename:a.filename,error_lineno:a.lineno,error_colno:a.colno})},b=a=>{let b=a.reason;e({stack:b instanceof Error?b.stack:void 0,appOrigin:window.location.origin})&&(0,c.captureClientEvent)("unhandled_rejection",{error_message:b instanceof Error?b.message:String(b),error_name:b instanceof Error?b.name:void 0})};return window.addEventListener("error",a),window.addEventListener("unhandledrejection",b),()=>{window.removeEventListener("error",a),window.removeEventListener("unhandledrejection",b)}},[]),null}],45550)},10815,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(50944),e=a.i(41476),f=a.i(72131),g=a.i(64831);let h=(0,g.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 i=a.i(89027);let j=(0,g.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"}]]),k=(0,g.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"}]]),l=(0,g.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"}]]),m=(0,g.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"}]]),n=(0,g.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 o=a.i(40695);let p="failproofai@exosphere.host",q=[{label:"Star us on GitHub",icon:j,href:"https://github.com/failproofai/failproofai",color:"#f5c842",bg:"rgba(245,200,66,0.08)"},{label:"Documentation",icon:k,href:"https://docs.befailproof.ai/introduction",color:"#60a5fa",bg:"rgba(96,165,250,0.08)"},{label:"Join our Discord",icon:l,href:"https://discord.befailproof.ai/",color:"#5865f2",bg:"rgba(88,101,242,0.08)"},{label:"Join r/failproofai",icon:m,href:"https://www.reddit.com/r/failproofai/",color:"#ff4500",bg:"rgba(255,69,0,0.08)"},{label:"Feedback & Issues",icon:n,href:"https://github.com/FailproofAI/failproofai/issues/new/choose",color:"#34d399",bg:"rgba(52,211,153,0.08)"}],r=()=>{let[a,c]=(0,f.useState)(!1),d=(0,f.useCallback)(()=>c(!1),[]),e=(0,f.useCallback)(a=>{"Escape"===a.key&&c(!1)},[]);return(0,b.jsxs)("div",{className:"relative",onKeyDown:e,children:[a&&(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:d,"aria-hidden":"true"}),(0,b.jsxs)(o.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>c(a=>!a),"aria-expanded":a,"aria-haspopup":"true",className:"relative z-50 flex items-center gap-1.5 text-muted-foreground hover:text-foreground",children:[(0,b.jsx)(h,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"hidden sm:inline text-xs whitespace-nowrap",children:"Reach Us"}),(0,b.jsx)(i.ChevronDown,{className:`h-3 w-3 transition-transform ${a?"rotate-180":""}`})]}),a&&(0,b.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,b.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,b.jsx)("p",{className:"text-xs font-semibold",style:{color:"#e879f9",letterSpacing:"0.06em"},children:"Reach Developers"}),(0,b.jsx)("p",{className:"text-[0.65rem] text-muted-foreground mt-0.5",children:"We'd love to hear from you"})]}),(0,b.jsx)("div",{className:"py-1",children:q.map(({label:a,icon:c,href:e,color:f,bg:g})=>(0,b.jsxs)("a",{href:e,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:a=>{a.currentTarget.style.background=g,a.currentTarget.style.color=f},onMouseLeave:a=>{a.currentTarget.style.background="",a.currentTarget.style.color=""},onClick:d,children:[(0,b.jsx)(c,{className:"h-3.5 w-3.5 flex-shrink-0",style:{color:f}}),a]},a))}),(0,b.jsx)("div",{className:"px-3 py-2 border-t border-border",style:{background:"rgba(0,0,0,0.2)"},children:(0,b.jsxs)("p",{className:"text-[0.65rem] text-muted-foreground",children:["or email"," ",(0,b.jsx)("a",{href:`mailto:${p}`,className:"transition-colors",style:{color:"#e879f9"},onMouseEnter:a=>a.currentTarget.style.opacity="0.75",onMouseLeave:a=>a.currentTarget.style.opacity="1",children:p})]})})]})]})},s=(0,g.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 t=a.i(97895),u=a.i(6236);let v=[{label:"Off",value:0},{label:"5s",value:5},{label:"10s",value:10},{label:"30s",value:30}];function w({className:a}){let c=(0,d.useRouter)(),[e,g]=(0,f.useTransition)(),{intervalSec:h,setIntervalSec:i}=(0,u.useAutoRefresh)(),j=(0,f.useCallback)(()=>{g(()=>c.refresh())},[c]);(0,f.useEffect)(()=>{if(h<=0)return;let a=setInterval(j,1e3*h);return()=>clearInterval(a)},[h,j]);let k=h>0;return(0,b.jsxs)("div",{className:(0,t.cn)("inline-flex items-center rounded-lg border border-border bg-muted/50 p-0.5 gap-0.5",a),children:[(0,b.jsx)("button",{onClick:j,title:"Refresh",className:(0,t.cn)("inline-flex items-center justify-center rounded-md p-1.5 transition-colors",k?"text-primary hover:bg-primary/10":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:(0,b.jsx)(s,{className:(0,t.cn)("w-3.5 h-3.5",e&&"animate-spin")})}),(0,b.jsx)("div",{className:"w-px h-4 bg-border"}),(0,b.jsx)("div",{className:"inline-flex items-center gap-0.5",role:"group","aria-label":"Auto-refresh interval",children:v.map(a=>(0,b.jsx)("button",{onClick:()=>i(a.value),"aria-pressed":h===a.value,className:(0,t.cn)("px-2 py-1 text-[11px] font-medium rounded-md transition-colors",h===a.value?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:a.label},a.value))})]})}var x=a.i(10765);let y=[{href:"/projects",label:"projects"},{href:"/policies",label:"policies"},{href:"/audit",label:"audit"}];a.s(["Navbar",0,({disabledPages:a=[]})=>{let f=(0,d.usePathname)(),{capture:g}=(0,x.usePostHog)(),h=f.startsWith("/policies")?"policies":f.startsWith("/audit")?"audit":f.startsWith("/settings")?"settings":f.startsWith("/projects")||f.startsWith("/project/")?"projects":"";return(0,b.jsxs)("header",{className:"app-header",children:[(0,b.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,b.jsx)("img",{src:"/logo.svg",alt:"failproof_ai",style:{height:18,display:"block",flexShrink:0}})}),(0,b.jsx)("nav",{className:"tabs",style:{border:"none",padding:0,gap:0},children:y.filter(({href:b})=>{let c=b.slice(1);return!a.includes(c)}).map(({href:a,label:d})=>{let e="/projects"===a?"/projects"===f||f.startsWith("/project/"):f.startsWith(a);return(0,b.jsx)(c.default,{href:a,className:`tab${e?" is-active":""}`,"aria-current":e?"page":void 0,onClick:()=>{"/audit"===a&&g("audit_nav_clicked",{from_path:f,is_active_tab:e})},children:d},a)})}),(0,b.jsx)("div",{style:{flex:1}}),(0,b.jsxs)("div",{className:"h-meta",children:[(0,b.jsxs)("span",{className:"h-version",children:["v","1.0.4-beta.6"]}),h&&(0,b.jsx)("span",{className:"h-brand-sep","aria-hidden":"true",children:"·"}),h&&(0,b.jsx)("span",{className:"h-brand-section",children:h})]}),(0,b.jsxs)("div",{className:"h-actions",children:[(0,b.jsx)(w,{}),(0,b.jsx)("span",{style:{width:1,height:18,background:"var(--line)",margin:"0 6px"}}),!a.includes("settings")&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c.default,{href:"/settings",className:`h-icon-btn${f.startsWith("/settings")?" is-active":""}`,"aria-label":"settings","aria-current":f.startsWith("/settings")?"page":void 0,title:"settings",children:(0,b.jsx)(e.Settings,{className:"w-3.5 h-3.5",strokeWidth:1.75,"aria-hidden":"true"})}),(0,b.jsx)("span",{style:{width:1,height:18,background:"var(--line)",margin:"0 6px"}})]}),(0,b.jsx)(r,{})]})]})}],10815)},6236,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=(0,c.createContext)(void 0);a.s(["AutoRefreshProvider",0,function({children:a}){let[e,f]=(0,c.useState)(0);return(0,b.jsx)(d.Provider,{value:{intervalSec:e,setIntervalSec:f},children:a})},"useAutoRefresh",0,function(){let a=(0,c.useContext)(d);if(!a)throw Error("useAutoRefresh must be used within AutoRefreshProvider");return a}])},89027,a=>{"use strict";let b=(0,a.i(64831).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",0,b],89027)},41476,40695,a=>{"use strict";let b=(0,a.i(64831).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"}]]);a.s(["Settings",0,b],41476);var c=a.i(87924),d=a.i(72131),e=a.i(97895);let f=d.forwardRef(({className:a,variant:b="default",size:d="default",...f},g)=>(0,c.jsx)("button",{className:(0,e.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"===b,"text-foreground hover:bg-muted":"ghost"===b,"border border-border bg-transparent hover:border-primary/60 hover:bg-card":"outline"===b,"h-10 py-2 px-4":"default"===d,"h-10 w-10":"icon"===d,"h-9 px-3":"sm"===d,"h-11 px-8":"lg"===d},a),ref:g,...f}));f.displayName="Button",a.s(["Button",0,f],40695)}];
1
+ module.exports=[45550,a=>{"use strict";var b=a.i(72131),c=a.i(66036);let d=/\b[\w-]+-extension:\/\//i;function e(a){return"app"===function({stack:a,filename:b,appOrigin:c}){let e=[b,a].filter(Boolean).join("\n");return e.trim()?d.test(e)?"extension":c&&e.includes(c)?"app":"unknown":"unknown"}(a)}a.s(["GlobalErrorListeners",0,function(){return(0,b.useEffect)(()=>{let a=a=>{e({stack:a.error?.stack,filename:a.filename,appOrigin:window.location.origin})&&(0,c.captureClientEvent)("unhandled_exception",{error_message:a.message,error_name:a.error?.name,error_filename:a.filename,error_lineno:a.lineno,error_colno:a.colno})},b=a=>{let b=a.reason;e({stack:b instanceof Error?b.stack:void 0,appOrigin:window.location.origin})&&(0,c.captureClientEvent)("unhandled_rejection",{error_message:b instanceof Error?b.message:String(b),error_name:b instanceof Error?b.name:void 0})};return window.addEventListener("error",a),window.addEventListener("unhandledrejection",b),()=>{window.removeEventListener("error",a),window.removeEventListener("unhandledrejection",b)}},[]),null}],45550)},10815,a=>{"use strict";var b=a.i(87924),c=a.i(38246),d=a.i(50944),e=a.i(41476),f=a.i(72131),g=a.i(64831);let h=(0,g.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 i=a.i(89027);let j=(0,g.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"}]]),k=(0,g.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"}]]),l=(0,g.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"}]]),m=(0,g.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"}]]),n=(0,g.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 o=a.i(40695);let p="failproofai@exosphere.host",q=[{label:"Star us on GitHub",icon:j,href:"https://github.com/failproofai/failproofai",color:"#f5c842",bg:"rgba(245,200,66,0.08)"},{label:"Documentation",icon:k,href:"https://docs.befailproof.ai/introduction",color:"#60a5fa",bg:"rgba(96,165,250,0.08)"},{label:"Join our Discord",icon:l,href:"https://discord.befailproof.ai/",color:"#5865f2",bg:"rgba(88,101,242,0.08)"},{label:"Join r/failproofai",icon:m,href:"https://www.reddit.com/r/failproofai/",color:"#ff4500",bg:"rgba(255,69,0,0.08)"},{label:"Feedback & Issues",icon:n,href:"https://github.com/FailproofAI/failproofai/issues/new/choose",color:"#34d399",bg:"rgba(52,211,153,0.08)"}],r=()=>{let[a,c]=(0,f.useState)(!1),d=(0,f.useCallback)(()=>c(!1),[]),e=(0,f.useCallback)(a=>{"Escape"===a.key&&c(!1)},[]);return(0,b.jsxs)("div",{className:"relative",onKeyDown:e,children:[a&&(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:d,"aria-hidden":"true"}),(0,b.jsxs)(o.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>c(a=>!a),"aria-expanded":a,"aria-haspopup":"true",className:"relative z-50 flex items-center gap-1.5 text-muted-foreground hover:text-foreground",children:[(0,b.jsx)(h,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"hidden sm:inline text-xs whitespace-nowrap",children:"Reach Us"}),(0,b.jsx)(i.ChevronDown,{className:`h-3 w-3 transition-transform ${a?"rotate-180":""}`})]}),a&&(0,b.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,b.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,b.jsx)("p",{className:"text-xs font-semibold",style:{color:"#e879f9",letterSpacing:"0.06em"},children:"Reach Developers"}),(0,b.jsx)("p",{className:"text-[0.65rem] text-muted-foreground mt-0.5",children:"We'd love to hear from you"})]}),(0,b.jsx)("div",{className:"py-1",children:q.map(({label:a,icon:c,href:e,color:f,bg:g})=>(0,b.jsxs)("a",{href:e,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:a=>{a.currentTarget.style.background=g,a.currentTarget.style.color=f},onMouseLeave:a=>{a.currentTarget.style.background="",a.currentTarget.style.color=""},onClick:d,children:[(0,b.jsx)(c,{className:"h-3.5 w-3.5 flex-shrink-0",style:{color:f}}),a]},a))}),(0,b.jsx)("div",{className:"px-3 py-2 border-t border-border",style:{background:"rgba(0,0,0,0.2)"},children:(0,b.jsxs)("p",{className:"text-[0.65rem] text-muted-foreground",children:["or email"," ",(0,b.jsx)("a",{href:`mailto:${p}`,className:"transition-colors",style:{color:"#e879f9"},onMouseEnter:a=>a.currentTarget.style.opacity="0.75",onMouseLeave:a=>a.currentTarget.style.opacity="1",children:p})]})})]})]})},s=(0,g.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 t=a.i(97895),u=a.i(6236);let v=[{label:"Off",value:0},{label:"5s",value:5},{label:"10s",value:10},{label:"30s",value:30}];function w({className:a}){let c=(0,d.useRouter)(),[e,g]=(0,f.useTransition)(),{intervalSec:h,setIntervalSec:i}=(0,u.useAutoRefresh)(),j=(0,f.useCallback)(()=>{g(()=>c.refresh())},[c]);(0,f.useEffect)(()=>{if(h<=0)return;let a=setInterval(j,1e3*h);return()=>clearInterval(a)},[h,j]);let k=h>0;return(0,b.jsxs)("div",{className:(0,t.cn)("inline-flex items-center rounded-lg border border-border bg-muted/50 p-0.5 gap-0.5",a),children:[(0,b.jsx)("button",{onClick:j,title:"Refresh",className:(0,t.cn)("inline-flex items-center justify-center rounded-md p-1.5 transition-colors",k?"text-primary hover:bg-primary/10":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:(0,b.jsx)(s,{className:(0,t.cn)("w-3.5 h-3.5",e&&"animate-spin")})}),(0,b.jsx)("div",{className:"w-px h-4 bg-border"}),(0,b.jsx)("div",{className:"inline-flex items-center gap-0.5",role:"group","aria-label":"Auto-refresh interval",children:v.map(a=>(0,b.jsx)("button",{onClick:()=>i(a.value),"aria-pressed":h===a.value,className:(0,t.cn)("px-2 py-1 text-[11px] font-medium rounded-md transition-colors",h===a.value?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:a.label},a.value))})]})}var x=a.i(10765);let y=[{href:"/projects",label:"projects"},{href:"/policies",label:"policies"},{href:"/audit",label:"audit"}];a.s(["Navbar",0,({disabledPages:a=[]})=>{let f=(0,d.usePathname)(),{capture:g}=(0,x.usePostHog)(),h=f.startsWith("/policies")?"policies":f.startsWith("/audit")?"audit":f.startsWith("/settings")?"settings":f.startsWith("/projects")||f.startsWith("/project/")?"projects":"";return(0,b.jsxs)("header",{className:"app-header",children:[(0,b.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,b.jsx)("img",{src:"/logo.svg",alt:"failproof_ai",style:{height:18,display:"block",flexShrink:0}})}),(0,b.jsx)("nav",{className:"tabs",style:{border:"none",padding:0,gap:0},children:y.filter(({href:b})=>{let c=b.slice(1);return!a.includes(c)}).map(({href:a,label:d})=>{let e="/projects"===a?"/projects"===f||f.startsWith("/project/"):f.startsWith(a);return(0,b.jsx)(c.default,{href:a,className:`tab${e?" is-active":""}`,"aria-current":e?"page":void 0,onClick:()=>{"/audit"===a&&g("audit_nav_clicked",{from_path:f,is_active_tab:e})},children:d},a)})}),(0,b.jsx)("div",{style:{flex:1}}),(0,b.jsxs)("div",{className:"h-meta",children:[(0,b.jsxs)("span",{className:"h-version",children:["v","1.0.4-beta.7"]}),h&&(0,b.jsx)("span",{className:"h-brand-sep","aria-hidden":"true",children:"·"}),h&&(0,b.jsx)("span",{className:"h-brand-section",children:h})]}),(0,b.jsxs)("div",{className:"h-actions",children:[(0,b.jsx)(w,{}),(0,b.jsx)("span",{style:{width:1,height:18,background:"var(--line)",margin:"0 6px"}}),!a.includes("settings")&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(c.default,{href:"/settings",className:`h-icon-btn${f.startsWith("/settings")?" is-active":""}`,"aria-label":"settings","aria-current":f.startsWith("/settings")?"page":void 0,title:"settings",children:(0,b.jsx)(e.Settings,{className:"w-3.5 h-3.5",strokeWidth:1.75,"aria-hidden":"true"})}),(0,b.jsx)("span",{style:{width:1,height:18,background:"var(--line)",margin:"0 6px"}})]}),(0,b.jsx)(r,{})]})]})}],10815)},6236,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=(0,c.createContext)(void 0);a.s(["AutoRefreshProvider",0,function({children:a}){let[e,f]=(0,c.useState)(0);return(0,b.jsx)(d.Provider,{value:{intervalSec:e,setIntervalSec:f},children:a})},"useAutoRefresh",0,function(){let a=(0,c.useContext)(d);if(!a)throw Error("useAutoRefresh must be used within AutoRefreshProvider");return a}])},89027,a=>{"use strict";let b=(0,a.i(64831).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",0,b],89027)},41476,40695,a=>{"use strict";let b=(0,a.i(64831).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"}]]);a.s(["Settings",0,b],41476);var c=a.i(87924),d=a.i(72131),e=a.i(97895);let f=d.forwardRef(({className:a,variant:b="default",size:d="default",...f},g)=>(0,c.jsx)("button",{className:(0,e.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"===b,"text-foreground hover:bg-muted":"ghost"===b,"border border-border bg-transparent hover:border-primary/60 hover:bg-card":"outline"===b,"h-10 py-2 px-4":"default"===d,"h-10 w-10":"icon"===d,"h-9 px-3":"sm"===d,"h-11 px-8":"lg"===d},a),ref:g,...f}));f.displayName="Button",a.s(["Button",0,f],40695)}];
2
2
 
3
3
  //# sourceMappingURL=_08x1r5t._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[18987,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("007ccdb1326c7e33bd8fd7a1fe8c1779bdb5425857",b.callServer,void 0,b.findSourceMapURL,"getTelemetryConfig");a.s(["getTelemetryConfig",0,c])},18952,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=[],e=0,f=new Set;function g(){for(let a of f)a()}function h(a){return f.add(a),()=>f.delete(a)}function i(){return d}function j({message:a}){let[d,e]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{requestAnimationFrame(()=>e(!0));let a=setTimeout(()=>e(!1),2e3);return()=>clearTimeout(a)},[]),(0,b.jsx)("div",{className:`bg-card border border-border text-foreground text-sm px-4 py-2 rounded-lg shadow-lg transition-opacity duration-300 ${d?"opacity-100":"opacity-0"}`,children:a})}a.s(["Toaster",0,function(){let a=(0,c.useSyncExternalStore)(h,i,i);return(0,b.jsx)("div",{className:"fixed bottom-4 right-4 z-50 flex flex-col gap-2",children:a.map(a=>(0,b.jsx)(j,{message:a.message},a.id))})},"toast",0,function(a){let b=e++;d=[...d,{id:b,message:a}],g(),setTimeout(()=>{d=d.filter(a=>a.id!==b),g()},2500)}])},10765,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(18987),f=a.i(66036);let g=(0,c.createContext)(void 0);a.s(["PostHogProvider",0,function({children:a}){let h=(0,d.usePathname)(),i=(0,c.useRef)(null),j=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=!1;return(0,e.getTelemetryConfig)().then(b=>{a||((0,f.setClientTelemetryConfig)(b),j.current=!0,(0,f.captureClientEvent)("$pageview"),i.current=window.location.pathname)}),()=>{a=!0}},[]),(0,c.useEffect)(()=>{j.current&&i.current!==h&&(i.current=h,(0,f.captureClientEvent)("$pageview"))},[h]);let k=c.default.useCallback((a,b)=>{(0,f.captureClientEvent)(a,b)},[]);return(0,b.jsx)(g.Provider,{value:{capture:k},children:a})},"usePostHog",0,function(){let a=(0,c.useContext)(g);if(void 0===a)throw Error("usePostHog must be used within a PostHogProvider");return a}])},66036,a=>{"use strict";a.s(["captureClientEvent",0,function(a,b){},"setClientTelemetryConfig",0,function(a){}])},46058,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},5050,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20611),g=a.r(1722),h=a.r(38783)},20611,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"callServer",{enumerable:!0,get:function(){return g}});let d=a.r(72131),e=a.r(88347),f=a.r(90841);async function g(a,b){return new Promise((c,g)=>{(0,d.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:e.ACTION_SERVER_ACTION,actionId:a,actionArgs:b,resolve:c,reject:g})})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},1722,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findSourceMapURL",{enumerable:!0,get:function(){return d}});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},88347,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={ACTION_HMR_REFRESH:function(){return l},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return h},ACTION_RESTORE:function(){return j},ACTION_SERVER_ACTION:function(){return m},ACTION_SERVER_PATCH:function(){return k},PrefetchKind:function(){return n},ScrollBehavior:function(){return o}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h="refresh",i="navigate",j="restore",k="server-patch",l="hmr-refresh",m="server-action";var n=((d={}).AUTO="auto",d.FULL="full",d),o=((e={})[e.Default=0]="Default",e[e.NoScroll=1]="NoScroll",e);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},90841,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={dispatchAppRouterAction:function(){return i},dispatchGestureState:function(){return j},refreshOnInstantNavigationUnlock:function(){return h},useActionQueue:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(46058)._(a.r(72131)),g=a.r(67009);a.r(88347);function h(){}function i(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function j(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function k(a){let[b,c]=f.default.useState(a.state),[d,e]=(0,f.useOptimistic)(b),h=(0,f.useMemo)(()=>d,[d]);return(0,g.isThenable)(h)?(0,f.use)(h):h}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},14827,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={createLinkPrefetchPartialError:function(){return g},createUnrenderedSegmentError:function(){return f}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a,b){let c=`Route "${a}": Could not validate that a segment in your UI has instant navigation.`;if(b.length>0){let a=1===b.length?"Dropped segment":"Dropped segments";c+=`
1
+ module.exports=[36263,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("003e262c4767efbfd41aad89a867e6eff6ad16d665",b.callServer,void 0,b.findSourceMapURL,"getTelemetryConfig");a.s(["getTelemetryConfig",0,c])},18952,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=[],e=0,f=new Set;function g(){for(let a of f)a()}function h(a){return f.add(a),()=>f.delete(a)}function i(){return d}function j({message:a}){let[d,e]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{requestAnimationFrame(()=>e(!0));let a=setTimeout(()=>e(!1),2e3);return()=>clearTimeout(a)},[]),(0,b.jsx)("div",{className:`bg-card border border-border text-foreground text-sm px-4 py-2 rounded-lg shadow-lg transition-opacity duration-300 ${d?"opacity-100":"opacity-0"}`,children:a})}a.s(["Toaster",0,function(){let a=(0,c.useSyncExternalStore)(h,i,i);return(0,b.jsx)("div",{className:"fixed bottom-4 right-4 z-50 flex flex-col gap-2",children:a.map(a=>(0,b.jsx)(j,{message:a.message},a.id))})},"toast",0,function(a){let b=e++;d=[...d,{id:b,message:a}],g(),setTimeout(()=>{d=d.filter(a=>a.id!==b),g()},2500)}])},10765,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(36263),f=a.i(66036);let g=(0,c.createContext)(void 0);a.s(["PostHogProvider",0,function({children:a}){let h=(0,d.usePathname)(),i=(0,c.useRef)(null),j=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=!1;return(0,e.getTelemetryConfig)().then(b=>{a||((0,f.setClientTelemetryConfig)(b),j.current=!0,(0,f.captureClientEvent)("$pageview"),i.current=window.location.pathname)}),()=>{a=!0}},[]),(0,c.useEffect)(()=>{j.current&&i.current!==h&&(i.current=h,(0,f.captureClientEvent)("$pageview"))},[h]);let k=c.default.useCallback((a,b)=>{(0,f.captureClientEvent)(a,b)},[]);return(0,b.jsx)(g.Provider,{value:{capture:k},children:a})},"usePostHog",0,function(){let a=(0,c.useContext)(g);if(void 0===a)throw Error("usePostHog must be used within a PostHogProvider");return a}])},66036,a=>{"use strict";a.s(["captureClientEvent",0,function(a,b){},"setClientTelemetryConfig",0,function(a){}])},46058,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},5050,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20611),g=a.r(1722),h=a.r(38783)},20611,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"callServer",{enumerable:!0,get:function(){return g}});let d=a.r(72131),e=a.r(88347),f=a.r(90841);async function g(a,b){return new Promise((c,g)=>{(0,d.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:e.ACTION_SERVER_ACTION,actionId:a,actionArgs:b,resolve:c,reject:g})})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},1722,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findSourceMapURL",{enumerable:!0,get:function(){return d}});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},88347,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={ACTION_HMR_REFRESH:function(){return l},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return h},ACTION_RESTORE:function(){return j},ACTION_SERVER_ACTION:function(){return m},ACTION_SERVER_PATCH:function(){return k},PrefetchKind:function(){return n},ScrollBehavior:function(){return o}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h="refresh",i="navigate",j="restore",k="server-patch",l="hmr-refresh",m="server-action";var n=((d={}).AUTO="auto",d.FULL="full",d),o=((e={})[e.Default=0]="Default",e[e.NoScroll=1]="NoScroll",e);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},90841,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={dispatchAppRouterAction:function(){return i},dispatchGestureState:function(){return j},refreshOnInstantNavigationUnlock:function(){return h},useActionQueue:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(46058)._(a.r(72131)),g=a.r(67009);a.r(88347);function h(){}function i(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function j(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function k(a){let[b,c]=f.default.useState(a.state),[d,e]=(0,f.useOptimistic)(b),h=(0,f.useMemo)(()=>d,[d]);return(0,g.isThenable)(h)?(0,f.use)(h):h}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},14827,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={createLinkPrefetchPartialError:function(){return g},createUnrenderedSegmentError:function(){return f}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a,b){let c=`Route "${a}": Could not validate that a segment in your UI has instant navigation.`;if(b.length>0){let a=1===b.length?"Dropped segment":"Dropped segments";c+=`
2
2
 
3
3
  This segment was dropped from rendering. Issues that would prevent instant navigation will go undetected.
4
4
 
@@ -20,4 +20,4 @@ Ways to fix this:
20
20
 
21
21
  Learn more: https://nextjs.org/docs/messages/instant-link-prefetch-partial`),"__NEXT_ERROR_CODE",{value:"E1435",enumerable:!1,configurable:!0})}},88644,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1179",enumerable:!1,configurable:!0}),this.name="InvariantError"}}},67009,(a,b,c)=>{"use strict";function d(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isThenable",{enumerable:!0,get:function(){return d}})},41997,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},54427,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},39118,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"}];
22
22
 
23
- //# sourceMappingURL=_02b3i98._.js.map
23
+ //# sourceMappingURL=_0a0zlpr._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[73338,a=>{"use strict";var b=a.i(36359),c=a.i(7292),d=a.i(37936),e=a.i(2157);a.i(66680);var f=a.i(50227);a.i(8674),a.i(1144);var g=a.i(75818),h=a.i(13095);async function i(){return function(a=Date.now()){let b,c,d=(c=process.env.FAILPROOFAI_STATE_DIR)?(0,f.resolve)(c,"sessions"):(0,g.sessionPauseDir)();if(!(0,e.existsSync)(d))return[];let h=[];try{b=(0,e.readdirSync)(d)}catch{return[]}for(let c of b)if(c.endsWith(".json"))try{let b=function(a){if(!a||"object"!=typeof a||1!==a.schemaVersion||"string"!=typeof a.sessionId||0===a.sessionId.length||!Number.isFinite(a.pausedAt)||!Number.isFinite(a.expiresAt))return null;let b=a.pausedAt,c=Number.isFinite(a.firstPausedAt)?a.firstPausedAt:b;return{schemaVersion:1,sessionId:a.sessionId,pausedAt:b,firstPausedAt:c,expiresAt:Math.min(a.expiresAt,c+288e5),setBy:"string"==typeof a.setBy?a.setBy:"unknown",..."string"==typeof a.cwd?{cwd:a.cwd}:{}}}(JSON.parse((0,e.readFileSync)((0,f.join)(d,c),"utf8")));if(!b||b.expiresAt<=a)continue;let{schemaVersion:g,...i}=b;h.push(i)}catch{}return h.sort((a,b)=>b.pausedAt-a.pausedAt)}()}(0,h.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"0077a2e270ba59e7a233b4d791a5ef1cba7671247b",null);var j=a.i(17280);a.i(10695);var k=a.i(98378),l=a.i(69839),m=a.i(28120),n=a.i(74533),o=a.i(60526),p=a.i(91997),q=a.i(67121),r=a.i(92956),s=a.i(15638);class t extends Error{exitCode;constructor(a,b=1){super(a),this.name="CliError",this.exitCode=b}}a.i(89790);var u=a.i(9909);a.i(1459);let v=new Set(r.BUILTIN_POLICIES.map(a=>a.name));function w(a,b){return q.claudeCode.getSettingsPath(a,b)}function x(a){let b=[],c=[],d=[],e=[];try{e=(0,u.readInstalledPacks)().packs}catch{}let f=(a,b)=>e.filter(b=>null===a||b.id===a).filter(a=>a.policies.some(a=>a.name===b)).map(a=>({packId:a.id,packVersion:a.version,name:b,disabledKey:`pack:${a.id}@${a.version}:${b}`}));for(let e of a){let a=f(null,e);if(1===a.length){c.push(a[0]);continue}if(a.length>1)throw new t(`"${e}" is declared by ${a.length} installed packs.
1
+ module.exports=[73338,a=>{"use strict";var b=a.i(36359),c=a.i(7292),d=a.i(37936),e=a.i(2157);a.i(66680);var f=a.i(50227);a.i(8674),a.i(1144);var g=a.i(75818),h=a.i(13095);async function i(){return function(a=Date.now()){let b,c,d=(c=process.env.FAILPROOFAI_STATE_DIR)?(0,f.resolve)(c,"sessions"):(0,g.sessionPauseDir)();if(!(0,e.existsSync)(d))return[];let h=[];try{b=(0,e.readdirSync)(d)}catch{return[]}for(let c of b)if(c.endsWith(".json"))try{let b=function(a){if(!a||"object"!=typeof a||1!==a.schemaVersion||"string"!=typeof a.sessionId||0===a.sessionId.length||!Number.isFinite(a.pausedAt)||!Number.isFinite(a.expiresAt))return null;let b=a.pausedAt,c=Number.isFinite(a.firstPausedAt)?a.firstPausedAt:b;return{schemaVersion:1,sessionId:a.sessionId,pausedAt:b,firstPausedAt:c,expiresAt:Math.min(a.expiresAt,c+288e5),setBy:"string"==typeof a.setBy?a.setBy:"unknown",..."string"==typeof a.cwd?{cwd:a.cwd}:{}}}(JSON.parse((0,e.readFileSync)((0,f.join)(d,c),"utf8")));if(!b||b.expiresAt<=a)continue;let{schemaVersion:g,...i}=b;h.push(i)}catch{}return h.sort((a,b)=>b.pausedAt-a.pausedAt)}()}(0,h.ensureServerEntryExports)([i]),(0,d.registerServerReference)(i,"007b5668557af111a6094f21a003756a04950619cb",null);var j=a.i(17280);a.i(10695);var k=a.i(98378),l=a.i(69839),m=a.i(28120),n=a.i(74533),o=a.i(60526),p=a.i(91997),q=a.i(67121),r=a.i(92956),s=a.i(15638);class t extends Error{exitCode;constructor(a,b=1){super(a),this.name="CliError",this.exitCode=b}}a.i(89790);var u=a.i(9909);a.i(1459);let v=new Set(r.BUILTIN_POLICIES.map(a=>a.name));function w(a,b){return q.claudeCode.getSettingsPath(a,b)}function x(a){let b=[],c=[],d=[],e=[];try{e=(0,u.readInstalledPacks)().packs}catch{}let f=(a,b)=>e.filter(b=>null===a||b.id===a).filter(a=>a.policies.some(a=>a.name===b)).map(a=>({packId:a.id,packVersion:a.version,name:b,disabledKey:`pack:${a.id}@${a.version}:${b}`}));for(let e of a){let a=f(null,e);if(1===a.length){c.push(a[0]);continue}if(a.length>1)throw new t(`"${e}" is declared by ${a.length} installed packs.
2
2
  Name the one you mean:
3
3
  `+a.map(a=>` ${a.packId}:${a.name}`).join("\n"));if(v.has(e)){b.push(e);continue}let g=e.lastIndexOf(":"),h=g>0?{packId:e.slice(0,g),name:e.slice(g+1)}:null,i=h?f(h.packId,h.name):f(null,e);if(1===i.length){c.push(i[0]);continue}if(i.length>1)throw new t(`"${e}" is declared by ${i.length} installed packs.
4
4
  Name the one you mean:
@@ -12,6 +12,6 @@ Run \`failproofai policies add FailproofAI/policies\` once you are online.`)}if(
12
12
  Enabled ${E.length} policy(ies): ${E.join(", ")}
13
13
  `),i)console.log("Custom hooks path cleared.");else if(K.customPoliciesPaths?.length||K.customPoliciesPath){let a=K.customPoliciesPaths??[K.customPoliciesPath];console.log(`Custom hooks paths: ${a.join(", ")}`)}let N=[];for(let a of G){let d=(0,q.getIntegration)(a),e=(0,q.settingsPathsFor)(d,b,c);try{for(let c of e){let e=d.readSettings(c);d.writeHookEntries(e,H,b),d.writeSettings(c,e),N.push({cli:a,path:c})}}catch(d){let c=d instanceof Error&&/EACCES|EPERM/.test(d.message)?"permission_denied":d instanceof Error&&/ENOENT|ENOTDIR/.test(d.message)?"path_not_found":"write_error";try{await (0,k.trackHookEvent)((0,l.getInstanceId)(),"hook_write_failed",{cli:a,scope:b,error_type:c})}catch{}throw d}}try{let a=new Set(E),c=E.filter(a=>!J.has(a)),e=[...J].filter(b=>!a.has(b)),f=(0,l.getInstanceId)();if(await (0,k.trackHookEvent)(f,"hooks_installed",{scope:b,cli:G,cli_count:G.length,policies:E,policy_count:E.length,policies_added:c,policies_removed:e,...g?{source:g}:{},platform:(0,o.platform)(),arch:(0,o.arch)(),os_release:(0,o.release)(),hostname_hash:(0,l.hashToId)((0,o.hostname)()),has_custom_hooks_path:!!(K.customPoliciesPaths?.length||K.customPoliciesPath),has_policy_params:!!(K.policyParams&&Object.keys(K.policyParams).length>0),param_policy_names:K.policyParams?Object.keys(K.policyParams):[],command_format:"project"===b?"npx":"absolute"}),d){let a=new Set(r.BUILTIN_POLICIES.filter(a=>a.beta).map(a=>a.name)),c=E.filter(b=>a.has(b));c.length>0&&await (0,k.trackHookEvent)(f,"beta_policies_installed",{scope:b,cli:G,beta_count:c.length,beta_policy_names:c,...g?{source:g}:{}})}}catch{}for(let{cli:a,path:c}of N){let d=(0,q.getIntegration)(a);console.log(`Failproof AI hooks installed for ${d.displayName} (${d.eventTypes.length} event types, scope: ${b}).`),console.log(`Settings: ${c}`)}"project"===b?(console.log("Command: npx -y failproofai"),console.log(`
14
14
  This file can be committed to git — no machine-specific paths.`)):console.log(`Binary: ${H}`);let O=(D=p.HOOK_SCOPES,F=new Set,D.filter(a=>{let b=w(a,c);return!F.has(b)&&(F.add(b),!0)})).filter(a=>a!==b).filter(a=>z(a,c));if(O.length>0){let a=O.map(a=>`${a} (${function(a){switch(a){case"user":return"~/.claude/settings.json";case"project":return"{cwd}/.claude/settings.json";case"local":return"{cwd}/.claude/settings.local.json"}}(a)})`).join(", ");console.log(),console.log(`\x1b[33mWarning: Failproof AI hooks are also installed at ${a}.\x1b[0m`),console.log("Having hooks in multiple scopes may cause duplicate policy evaluation."),console.log(`Use \`failproofai policies --uninstall --scope ${O[0]}\` to remove the other installation,`),console.log("or `failproofai policies` to see all scopes.");try{await (0,k.trackHookEvent)((0,l.getInstanceId)(),"multi_scope_warning_shown",{new_scope:b,existing_scopes:O,cli:G})}catch{}}}async function C(a,b="user",c,d){let f="all"===b?"user":b,g=d?.cli&&d.cli.length>0?[...new Set(d.cli)]:["claude"];if(d?.removeCustomHooks){let a=(0,m.readScopedHooksConfig)(f,c);delete a.customPoliciesPath,delete a.customPoliciesPaths,(0,m.writeScopedHooksConfig)(a,f,c),console.log("Custom hooks path cleared.")}if(a&&a.length>0&&(1!==a.length||"all"!==a[0])){let b=x(a);y(b.packs,!1,f,c);var h=a=b.builtins;let d=new Set(r.BUILTIN_POLICIES.filter(a=>a.alwaysOn).map(a=>a.name)),e=h.filter(a=>d.has(a));if(e.length>0)throw new t(`Cannot disable: ${e.join(", ")}
15
- This policy stops an agent from switching off failproofai itself, so it is always on and ships with the package. A guard the agent can disable by the means it is meant to prevent is not a guard.`);if(b.packs.length>0&&0===a.length)return}if(a&&a.length>0&&(1!==a.length||"all"!==a[0])){let e=(0,m.readScopedHooksConfig)(f,c),h=new Set(a),i=e.enabledPolicies.filter(a=>!h.has(a)),j=a.filter(a=>!e.enabledPolicies.includes(a));j.length>0&&console.log(`Warning: policy(ies) not currently enabled: ${j.join(", ")}`);let{policyParams:n,...p}=e,q=n?Object.fromEntries(Object.entries(n).filter(([a])=>!h.has(a))):null,r={...p,enabledPolicies:i,...q&&Object.keys(q).length>0?{policyParams:q}:{}};(0,m.writeScopedHooksConfig)(r,f,c);try{let c=(0,l.getInstanceId)(),f=a.filter(a=>e.enabledPolicies.includes(a));await (0,k.trackHookEvent)(c,"hooks_removed",{scope:b,cli:g,removal_mode:d?.betaOnly?"beta_policies":"policies",beta_only:d?.betaOnly??!1,policies_removed:f,removed_count:f.length,...d?.source?{source:d.source}:{},platform:(0,o.platform)(),arch:(0,o.arch)(),os_release:(0,o.release)(),hostname_hash:(0,l.hashToId)((0,o.hostname)())})}catch{}console.log(`Disabled ${a.length-j.length} policy(ies).`),console.log(`Remaining: ${i.length>0?i.join(", "):"(none)"}`);return}let i=(0,m.readScopedHooksConfig)(f,c),j=0,n=!1;for(let a of g){let d=(0,q.getIntegration)(a);for(let a of"all"===b?[...d.scopes]:d.scopes.includes(b)?[b]:[]){let f=(0,q.settingsPathsFor)(d,a,c).filter(a=>(0,e.existsSync)(a));if(0===f.length){"all"!==b&&1===g.length&&(console.log("No settings file found. Nothing to remove."),n=!0);continue}let h=0;for(let a of f){let c=d.removeHooksFromFile(a);h+=c,c>0&&"all"!==b&&(console.log(`Removed ${c} failproofai hook(s) from ${d.displayName} settings.`),console.log(`Settings: ${a}`))}if(0===h&&"all"!==b&&1===g.length){console.log("No hooks found in settings. Nothing to remove."),n=!0;continue}j+=h}}if(!n||0!==j){if("all"===b)for(let a of(console.log(`Removed ${j} failproofai hook(s) from all scopes.`),g)){let b=(0,q.getIntegration)(a);for(let a of b.scopes)for(let d of(0,q.settingsPathsFor)(b,a,c))console.log(` ${b.displayName} / ${a}: ${d}`)}try{let a=(0,l.getInstanceId)();await (0,k.trackHookEvent)(a,"hooks_removed",{scope:b,cli:g,removal_mode:"hooks",policies_removed:i.enabledPolicies,removed_count:j,...d?.source?{source:d.source}:{},platform:(0,o.platform)(),arch:(0,o.arch)(),os_release:(0,o.release)(),hostname_hash:(0,l.hashToId)((0,o.hostname)())})}catch{}if("all"===b)for(let a of p.HOOK_SCOPES){let b=(0,m.readScopedHooksConfig)(a,c);if(b.enabledPolicies.length>0||b.customPoliciesPaths?.length||b.customPoliciesPath||b.policyParams){let{customPoliciesPath:d,customPoliciesPaths:e,policyParams:f,...g}=b;(0,m.writeScopedHooksConfig)({...g,enabledPolicies:[]},a,c)}}else if(!p.HOOK_SCOPES.some(a=>z(a,c))){let{customPoliciesPath:a,customPoliciesPaths:b,policyParams:d,...e}=(0,m.readScopedHooksConfig)(f,c);(0,m.writeScopedHooksConfig)({...e,enabledPolicies:[]},f,c)}}}var D=a.i(24282),E=a.i(12714);async function F(a,b){let c=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd(),d=(0,f.resolve)((0,m.findProjectConfigDir)(c),".failproofai","policies"),e=(0,g.customPoliciesDir)(),h=[];for(let{scope:c,dir:g}of[{scope:"project",dir:d},...e===d?[]:[{scope:"user",dir:e}]]){let d=[];try{d=(0,s.discoverPolicyFiles)(g)}catch{continue}for(let e of d){if(b.has(e))continue;let d=[];try{d=(await G(e)).map(b=>{let d=(0,s.conventionPolicyId)(c,(0,f.basename)(e),b.name);return{...b,id:d,enabled:!a.has(d)}})}catch{}h.push({scope:c,file:(0,f.basename)(e),path:e,policies:d})}}return h}async function G(a){if(!(0,e.existsSync)(a))return[];let b=await (0,E.readFile)(a,"utf-8"),c=[],d=b.split(/customPolicies\.add\s*\(/);for(let a=1;a<d.length;a++){let b=d[a],e=b.match(/name:\s*["'`]([^"'`]+)["'`]/);if(!e)continue;let f=b.match(/description:\s*["'`]([^"'`]+)["'`]/),g=b.match(/events:\s*\[([^\]]+)\]/),h=g?g[1].replace(/["'`\s]/g,"").split(",").filter(Boolean).join(", "):void 0;c.push({name:e[1],description:f?.[1],eventScope:h,id:"",enabled:!0})}return c}async function H(){let a=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd(),b=(0,m.readMergedHooksConfig)(a),c=new Set(b.disabledCustomPolicies??[]),d=p.HOOK_SCOPES.filter(a=>z(a)),e=w(d[0]??"user"),g=(0,q.listIntegrations)().map(a=>({id:a.id,label:(0,D.getCliLabel)(a.id),installed:a.hooksInstalledInSettings("user"),settingsPath:a.getSettingsPath("user"),detected:a.detectInstalled()})),h=[],i=[];try{let a=(0,u.readInstalledPacks)();h=a.packs,i=a.errors}catch{}let k=[];for(let a of h){let d=a.enabled??a.policies.map(a=>a.name);for(let e of a.policies)k.push({name:e.name,description:e.description,category:e.category,defaultEnabled:e.defaultEnabled,beta:!1,enabled:d.includes(e.name)&&!c.has(`pack:${a.id}@${a.version}:${e.name}`),eventScope:function(a){let b=a.events?.join(", ")??"",c=a.toolNames?` \xb7 ${a.toolNames.join(", ")}`:"";return`${b}${c}`}(e.match),packId:a.id,packVersion:a.version,...e.params?{params:Object.fromEntries(Object.entries(e.params).map(([a,b])=>[a,{type:b.type,description:b.description,default:b.default}])),currentParams:function(a,b,c){if(!a)return;let d=a[`pack/${b}/${c}`];return d||(b.toLowerCase()===j.CORE_SOURCE.toLowerCase()?a[c]:void 0)}(b.policyParams,a.id,e.name)??{}}:{}})}let l=(0,m.configuredCustomPolicyPaths)(b),n=(0,m.findProjectConfigDir)(a),o=l.map(a=>(0,f.resolve)(n,a)),r=(await Promise.all(o.map(async a=>{try{return(await G(a)).map(b=>{let d=(0,s.customPolicyId)(a,b.name);return{...b,id:d,enabled:!c.has(d)}})}catch{return[]}}))).flat(),t=await F(c,new Set(o)),v=h.map(a=>{let b=a.enabled??a.policies.map(a=>a.name);return{id:a.id,version:a.version,source:a.source,effect:a.effect,policies:a.policies.map(d=>({name:d.name,description:d.description,category:d.category,enabled:b.includes(d.name)&&!c.has(`pack:${a.id}@${a.version}:${d.name}`)}))}});for(let a of i)v.push({id:a.id??"(unnamed pack)",version:"",source:"",effect:"enforce",policies:[],error:a.reason});return{enabledPolicies:b.enabledPolicies,installedScopes:d,settingsPath:e,clis:g,policies:k,customPoliciesPaths:l.length?l:void 0,customPoliciesPath:1===l.length?l[0]:void 0,customPolicies:r.length?r:void 0,conventionPolicies:t,packs:v}}async function I(a,b){let c=(0,m.readHooksConfig)(),d=new Set(c.enabledPolicies);b?d.add(a):d.delete(a),(0,m.writeHooksConfig)({...c,enabledPolicies:[...d]});try{let c=(0,l.getInstanceId)();await (0,k.trackHookEvent)(c,"policy_toggled",{policy_name:a,enabled:b,action:b?"enable":"disable",source:"web"})}catch{}}async function J(a,b){if(!a.startsWith("custom:")&&!a.startsWith("convention:"))throw Error("Invalid custom policy ID");let c=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd();if(b){for(let b of p.HOOK_SCOPES){let d=(0,m.readScopedHooksConfig)(b,c);if(!d.disabledCustomPolicies?.includes(a))continue;let e=d.disabledCustomPolicies.filter(b=>b!==a),f={...d,disabledCustomPolicies:e};e.length||delete f.disabledCustomPolicies,(0,m.writeScopedHooksConfig)(f,b,c)}return}let d=(0,m.readHooksConfig)(),e=new Set(d.disabledCustomPolicies??[]);e.add(a);let f={...d,disabledCustomPolicies:[...e]};e.size||delete f.disabledCustomPolicies,(0,m.writeHooksConfig)(f)}async function K(a,b){let c=a.trim();if(!c)return{ok:!1,error:"Enter a pack source, for example acme/ops"};try{let a=await (0,j.addPackFromSource)(c,b??{});return{ok:!0,id:a.id,version:a.version,enabled:a.enabled,available:a.available}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function L(){try{let a=await (0,j.addPack)(j.CORE_SOURCE);return{ok:!0,id:a.id,version:a.version,enabled:a.enabled,available:a.available}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function M(a){let b;try{b=(0,j.removePack)(a)}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}return b?{ok:!0,id:b}:{ok:!1,error:`No installed pack with id ${a}`}}async function N(a,b,c){let d=(0,j.setPackPolicyEnabled)(a,b,c);if(!d.ok)return{ok:!1,error:d.reason};if(c){let c=(0,u.readInstalledPacks)().packs.find(b=>b.id===a);if(c){let a=`pack:${c.id}@${c.version}:${b}`,d=(0,m.readHooksConfig)(),e=(d.disabledCustomPolicies??[]).filter(b=>b!==a);if(e.length!==(d.disabledCustomPolicies??[]).length){let{disabledCustomPolicies:a,...b}=d;(0,m.writeHooksConfig)(e.length>0?{...b,disabledCustomPolicies:e}:b)}}}return{ok:!0,id:a}}async function O(a){let b=a.trim();if(!b)return{ok:!1,error:"Enter a pack source, for example acme/ops"};try{let a=await (0,j.fetchPackPreview)(b);return{ok:!0,id:a.id,version:a.version,source:a.source,effect:a.effect,policies:a.policies.map(a=>({name:a.name,description:a.description,category:a.category,defaultEnabled:a.defaultEnabled}))}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function P(a="user",b){let c=(0,m.readHooksConfig)(),d=c.enabledPolicies.length>0?c.enabledPolicies:r.BUILTIN_POLICIES.filter(a=>a.defaultEnabled&&!a.beta).map(a=>a.name),e=b&&b.length>0?b:(0,q.detectInstalledClis)(),f=e.length>0?e:["claude"];await A(d,a,void 0,!1,"web",void 0,!1,f)}async function Q(a="user",b){let c=b&&b.length>0?b:(0,q.detectInstalledClis)(),d=c.length>0?c:["claude"];await C(void 0,a,void 0,{source:"web",cli:d})}async function R(a,b){let c=(0,m.readHooksConfig)(),d={...c.policyParams??{},[a]:b};(0,m.writeHooksConfig)({...c,policyParams:d});try{let c=(0,l.getInstanceId)();await (0,k.trackHookEvent)(c,"policy_params_updated",{policy_name:a,param_keys:Object.keys(b),source:"web"})}catch{}}(0,h.ensureServerEntryExports)([H]),(0,d.registerServerReference)(H,"007d58580520408b2040a7ae4e2e90d36a2f0d72da",null),(0,h.ensureServerEntryExports)([I,J]),(0,d.registerServerReference)(I,"60bb507652010e43ca29edb4631a5e05f98f1f4588",null),(0,d.registerServerReference)(J,"60df994c72122478ca7af41a080886c923481d00e9",null),(0,h.ensureServerEntryExports)([K,L,M,N,O]),(0,d.registerServerReference)(K,"60fa4cfdb5bfb185db6006543676bfa5136fcbd8a1",null),(0,d.registerServerReference)(L,"002ab5a555b104880543ad247bc448800dcf570ea4",null),(0,d.registerServerReference)(M,"402331f715383bdca28170eb80112b781cba8cd4cf",null),(0,d.registerServerReference)(N,"706e976016592623f2426adabba14ae4303f8eecb1",null),(0,d.registerServerReference)(O,"400e09fa39c2683dc7e946a7cf3deafa718259b5e9",null),(0,h.ensureServerEntryExports)([P,Q]),(0,d.registerServerReference)(P,"60ed16ed27cd934db35b1ac51144c3d3251638c759",null),(0,d.registerServerReference)(Q,"6027e75b89c9e5d777ef3d1a9767fae3cb0b453afe",null),(0,h.ensureServerEntryExports)([R]),(0,d.registerServerReference)(R,"60507fd2978345f3e9ac2945900576ab9181bc0f96",null),a.s([],96801),a.i(96801),a.s(["002ab5a555b104880543ad247bc448800dcf570ea4",0,L,"0077a2e270ba59e7a233b4d791a5ef1cba7671247b",0,i,"007ccdb1326c7e33bd8fd7a1fe8c1779bdb5425857",()=>b.getTelemetryConfig,"007d58580520408b2040a7ae4e2e90d36a2f0d72da",0,H,"400e09fa39c2683dc7e946a7cf3deafa718259b5e9",0,O,"402331f715383bdca28170eb80112b781cba8cd4cf",0,M,"4093f83a7764d675f24855d2588b3b9996539cf3da",()=>c.getHookActivityAction,"6009779268cbebb950fffbef0f7dab73fe58ddbf3b",()=>c.searchHookActivityAction,"6027e75b89c9e5d777ef3d1a9767fae3cb0b453afe",0,Q,"60507fd2978345f3e9ac2945900576ab9181bc0f96",0,R,"60df994c72122478ca7af41a080886c923481d00e9",0,J,"60ed16ed27cd934db35b1ac51144c3d3251638c759",0,P,"60fa4cfdb5bfb185db6006543676bfa5136fcbd8a1",0,K,"706e976016592623f2426adabba14ae4303f8eecb1",0,N],73338)}];
15
+ This policy stops an agent from switching off failproofai itself, so it is always on and ships with the package. A guard the agent can disable by the means it is meant to prevent is not a guard.`);if(b.packs.length>0&&0===a.length)return}if(a&&a.length>0&&(1!==a.length||"all"!==a[0])){let e=(0,m.readScopedHooksConfig)(f,c),h=new Set(a),i=e.enabledPolicies.filter(a=>!h.has(a)),j=a.filter(a=>!e.enabledPolicies.includes(a));j.length>0&&console.log(`Warning: policy(ies) not currently enabled: ${j.join(", ")}`);let{policyParams:n,...p}=e,q=n?Object.fromEntries(Object.entries(n).filter(([a])=>!h.has(a))):null,r={...p,enabledPolicies:i,...q&&Object.keys(q).length>0?{policyParams:q}:{}};(0,m.writeScopedHooksConfig)(r,f,c);try{let c=(0,l.getInstanceId)(),f=a.filter(a=>e.enabledPolicies.includes(a));await (0,k.trackHookEvent)(c,"hooks_removed",{scope:b,cli:g,removal_mode:d?.betaOnly?"beta_policies":"policies",beta_only:d?.betaOnly??!1,policies_removed:f,removed_count:f.length,...d?.source?{source:d.source}:{},platform:(0,o.platform)(),arch:(0,o.arch)(),os_release:(0,o.release)(),hostname_hash:(0,l.hashToId)((0,o.hostname)())})}catch{}console.log(`Disabled ${a.length-j.length} policy(ies).`),console.log(`Remaining: ${i.length>0?i.join(", "):"(none)"}`);return}let i=(0,m.readScopedHooksConfig)(f,c),j=0,n=!1;for(let a of g){let d=(0,q.getIntegration)(a);for(let a of"all"===b?[...d.scopes]:d.scopes.includes(b)?[b]:[]){let f=(0,q.settingsPathsFor)(d,a,c).filter(a=>(0,e.existsSync)(a));if(0===f.length){"all"!==b&&1===g.length&&(console.log("No settings file found. Nothing to remove."),n=!0);continue}let h=0;for(let a of f){let c=d.removeHooksFromFile(a);h+=c,c>0&&"all"!==b&&(console.log(`Removed ${c} failproofai hook(s) from ${d.displayName} settings.`),console.log(`Settings: ${a}`))}if(0===h&&"all"!==b&&1===g.length){console.log("No hooks found in settings. Nothing to remove."),n=!0;continue}j+=h}}if(!n||0!==j){if("all"===b)for(let a of(console.log(`Removed ${j} failproofai hook(s) from all scopes.`),g)){let b=(0,q.getIntegration)(a);for(let a of b.scopes)for(let d of(0,q.settingsPathsFor)(b,a,c))console.log(` ${b.displayName} / ${a}: ${d}`)}try{let a=(0,l.getInstanceId)();await (0,k.trackHookEvent)(a,"hooks_removed",{scope:b,cli:g,removal_mode:"hooks",policies_removed:i.enabledPolicies,removed_count:j,...d?.source?{source:d.source}:{},platform:(0,o.platform)(),arch:(0,o.arch)(),os_release:(0,o.release)(),hostname_hash:(0,l.hashToId)((0,o.hostname)())})}catch{}if("all"===b)for(let a of p.HOOK_SCOPES){let b=(0,m.readScopedHooksConfig)(a,c);if(b.enabledPolicies.length>0||b.customPoliciesPaths?.length||b.customPoliciesPath||b.policyParams){let{customPoliciesPath:d,customPoliciesPaths:e,policyParams:f,...g}=b;(0,m.writeScopedHooksConfig)({...g,enabledPolicies:[]},a,c)}}else if(!p.HOOK_SCOPES.some(a=>z(a,c))){let{customPoliciesPath:a,customPoliciesPaths:b,policyParams:d,...e}=(0,m.readScopedHooksConfig)(f,c);(0,m.writeScopedHooksConfig)({...e,enabledPolicies:[]},f,c)}}}var D=a.i(24282),E=a.i(12714);async function F(a,b){let c=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd(),d=(0,f.resolve)((0,m.findProjectConfigDir)(c),".failproofai","policies"),e=(0,g.customPoliciesDir)(),h=[];for(let{scope:c,dir:g}of[{scope:"project",dir:d},...e===d?[]:[{scope:"user",dir:e}]]){let d=[];try{d=(0,s.discoverPolicyFiles)(g)}catch{continue}for(let e of d){if(b.has(e))continue;let d=[];try{d=(await G(e)).map(b=>{let d=(0,s.conventionPolicyId)(c,(0,f.basename)(e),b.name);return{...b,id:d,enabled:!a.has(d)}})}catch{}h.push({scope:c,file:(0,f.basename)(e),path:e,policies:d})}}return h}async function G(a){if(!(0,e.existsSync)(a))return[];let b=await (0,E.readFile)(a,"utf-8"),c=[],d=b.split(/customPolicies\.add\s*\(/);for(let a=1;a<d.length;a++){let b=d[a],e=b.match(/name:\s*["'`]([^"'`]+)["'`]/);if(!e)continue;let f=b.match(/description:\s*["'`]([^"'`]+)["'`]/),g=b.match(/events:\s*\[([^\]]+)\]/),h=g?g[1].replace(/["'`\s]/g,"").split(",").filter(Boolean).join(", "):void 0;c.push({name:e[1],description:f?.[1],eventScope:h,id:"",enabled:!0})}return c}async function H(){let a=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd(),b=(0,m.readMergedHooksConfig)(a),c=new Set(b.disabledCustomPolicies??[]),d=p.HOOK_SCOPES.filter(a=>z(a)),e=w(d[0]??"user"),g=(0,q.listIntegrations)().map(a=>({id:a.id,label:(0,D.getCliLabel)(a.id),installed:a.hooksInstalledInSettings("user"),settingsPath:a.getSettingsPath("user"),detected:a.detectInstalled()})),h=[],i=[];try{let a=(0,u.readInstalledPacks)();h=a.packs,i=a.errors}catch{}let k=[];for(let a of h){let d=a.enabled??a.policies.map(a=>a.name);for(let e of a.policies)k.push({name:e.name,description:e.description,category:e.category,defaultEnabled:e.defaultEnabled,beta:!1,enabled:d.includes(e.name)&&!c.has(`pack:${a.id}@${a.version}:${e.name}`),eventScope:function(a){let b=a.events?.join(", ")??"",c=a.toolNames?` \xb7 ${a.toolNames.join(", ")}`:"";return`${b}${c}`}(e.match),packId:a.id,packVersion:a.version,...e.params?{params:Object.fromEntries(Object.entries(e.params).map(([a,b])=>[a,{type:b.type,description:b.description,default:b.default}])),currentParams:function(a,b,c){if(!a)return;let d=a[`pack/${b}/${c}`];return d||(b.toLowerCase()===j.CORE_SOURCE.toLowerCase()?a[c]:void 0)}(b.policyParams,a.id,e.name)??{}}:{}})}let l=(0,m.configuredCustomPolicyPaths)(b),n=(0,m.findProjectConfigDir)(a),o=l.map(a=>(0,f.resolve)(n,a)),r=(await Promise.all(o.map(async a=>{try{return(await G(a)).map(b=>{let d=(0,s.customPolicyId)(a,b.name);return{...b,id:d,enabled:!c.has(d)}})}catch{return[]}}))).flat(),t=await F(c,new Set(o)),v=h.map(a=>{let b=a.enabled??a.policies.map(a=>a.name);return{id:a.id,version:a.version,source:a.source,effect:a.effect,policies:a.policies.map(d=>({name:d.name,description:d.description,category:d.category,enabled:b.includes(d.name)&&!c.has(`pack:${a.id}@${a.version}:${d.name}`)}))}});for(let a of i)v.push({id:a.id??"(unnamed pack)",version:"",source:"",effect:"enforce",policies:[],error:a.reason});return{enabledPolicies:b.enabledPolicies,installedScopes:d,settingsPath:e,clis:g,policies:k,customPoliciesPaths:l.length?l:void 0,customPoliciesPath:1===l.length?l[0]:void 0,customPolicies:r.length?r:void 0,conventionPolicies:t,packs:v}}async function I(a,b){let c=(0,m.readHooksConfig)(),d=new Set(c.enabledPolicies);b?d.add(a):d.delete(a),(0,m.writeHooksConfig)({...c,enabledPolicies:[...d]});try{let c=(0,l.getInstanceId)();await (0,k.trackHookEvent)(c,"policy_toggled",{policy_name:a,enabled:b,action:b?"enable":"disable",source:"web"})}catch{}}async function J(a,b){if(!a.startsWith("custom:")&&!a.startsWith("convention:"))throw Error("Invalid custom policy ID");let c=process.env.FAILPROOFAI_LAUNCH_CWD||process.cwd();if(b){for(let b of p.HOOK_SCOPES){let d=(0,m.readScopedHooksConfig)(b,c);if(!d.disabledCustomPolicies?.includes(a))continue;let e=d.disabledCustomPolicies.filter(b=>b!==a),f={...d,disabledCustomPolicies:e};e.length||delete f.disabledCustomPolicies,(0,m.writeScopedHooksConfig)(f,b,c)}return}let d=(0,m.readHooksConfig)(),e=new Set(d.disabledCustomPolicies??[]);e.add(a);let f={...d,disabledCustomPolicies:[...e]};e.size||delete f.disabledCustomPolicies,(0,m.writeHooksConfig)(f)}async function K(a,b){let c=a.trim();if(!c)return{ok:!1,error:"Enter a pack source, for example acme/ops"};try{let a=await (0,j.addPackFromSource)(c,b??{});return{ok:!0,id:a.id,version:a.version,enabled:a.enabled,available:a.available}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function L(){try{let a=await (0,j.addPack)(j.CORE_SOURCE);return{ok:!0,id:a.id,version:a.version,enabled:a.enabled,available:a.available}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function M(a){let b;try{b=(0,j.removePack)(a)}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}return b?{ok:!0,id:b}:{ok:!1,error:`No installed pack with id ${a}`}}async function N(a,b,c){let d=(0,j.setPackPolicyEnabled)(a,b,c);if(!d.ok)return{ok:!1,error:d.reason};if(c){let c=(0,u.readInstalledPacks)().packs.find(b=>b.id===a);if(c){let a=`pack:${c.id}@${c.version}:${b}`,d=(0,m.readHooksConfig)(),e=(d.disabledCustomPolicies??[]).filter(b=>b!==a);if(e.length!==(d.disabledCustomPolicies??[]).length){let{disabledCustomPolicies:a,...b}=d;(0,m.writeHooksConfig)(e.length>0?{...b,disabledCustomPolicies:e}:b)}}}return{ok:!0,id:a}}async function O(a){let b=a.trim();if(!b)return{ok:!1,error:"Enter a pack source, for example acme/ops"};try{let a=await (0,j.fetchPackPreview)(b);return{ok:!0,id:a.id,version:a.version,source:a.source,effect:a.effect,policies:a.policies.map(a=>({name:a.name,description:a.description,category:a.category,defaultEnabled:a.defaultEnabled}))}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}}async function P(a="user",b){let c=(0,m.readHooksConfig)(),d=c.enabledPolicies.length>0?c.enabledPolicies:r.BUILTIN_POLICIES.filter(a=>a.defaultEnabled&&!a.beta).map(a=>a.name),e=b&&b.length>0?b:(0,q.detectInstalledClis)(),f=e.length>0?e:["claude"];await A(d,a,void 0,!1,"web",void 0,!1,f)}async function Q(a="user",b){let c=b&&b.length>0?b:(0,q.detectInstalledClis)(),d=c.length>0?c:["claude"];await C(void 0,a,void 0,{source:"web",cli:d})}async function R(a,b){let c=(0,m.readHooksConfig)(),d={...c.policyParams??{},[a]:b};(0,m.writeHooksConfig)({...c,policyParams:d});try{let c=(0,l.getInstanceId)();await (0,k.trackHookEvent)(c,"policy_params_updated",{policy_name:a,param_keys:Object.keys(b),source:"web"})}catch{}}(0,h.ensureServerEntryExports)([H]),(0,d.registerServerReference)(H,"00e14cc21175ea704ac6901e57931f5fbe4e3eaf6b",null),(0,h.ensureServerEntryExports)([I,J]),(0,d.registerServerReference)(I,"604b4498506f4896853cd2a1bad73d3419ae728cc0",null),(0,d.registerServerReference)(J,"602453ecff22142bcb5a0cf150329cdd43e8391685",null),(0,h.ensureServerEntryExports)([K,L,M,N,O]),(0,d.registerServerReference)(K,"607d1f229b8e17bd1bb5418b9b060b1bdaf57469f2",null),(0,d.registerServerReference)(L,"005ea0afd36fbbe327e8c6d55f16262375b7f300c2",null),(0,d.registerServerReference)(M,"40b79b55b770248c11f82829a181abff1e7af612b6",null),(0,d.registerServerReference)(N,"70ea7376ff72d48d3ea9e5f6fee7ec2c45a7bbbe20",null),(0,d.registerServerReference)(O,"40bbf1a22819fb883255920a943592ec11b0f160bc",null),(0,h.ensureServerEntryExports)([P,Q]),(0,d.registerServerReference)(P,"604318f74fb83477f090cd3dfc6ddafddfde2efff5",null),(0,d.registerServerReference)(Q,"605e026ff4a0fbb991a2b547ba9f09ea3a4234332a",null),(0,h.ensureServerEntryExports)([R]),(0,d.registerServerReference)(R,"606c3179d4ddf58487e6abcd2b36d86c563660b774",null),a.s([],96801),a.i(96801),a.s(["003e262c4767efbfd41aad89a867e6eff6ad16d665",()=>b.getTelemetryConfig,"005ea0afd36fbbe327e8c6d55f16262375b7f300c2",0,L,"007b5668557af111a6094f21a003756a04950619cb",0,i,"00e14cc21175ea704ac6901e57931f5fbe4e3eaf6b",0,H,"40507a8c41b1ca62cbf2a726599d769cbd5c205aa7",()=>c.getHookActivityAction,"40b79b55b770248c11f82829a181abff1e7af612b6",0,M,"40bbf1a22819fb883255920a943592ec11b0f160bc",0,O,"602453ecff22142bcb5a0cf150329cdd43e8391685",0,J,"604318f74fb83477f090cd3dfc6ddafddfde2efff5",0,P,"6059e7956847dcf118f5aab7d116ab9adae0d0979e",()=>c.searchHookActivityAction,"605e026ff4a0fbb991a2b547ba9f09ea3a4234332a",0,Q,"606c3179d4ddf58487e6abcd2b36d86c563660b774",0,R,"607d1f229b8e17bd1bb5418b9b060b1bdaf57469f2",0,K,"70ea7376ff72d48d3ea9e5f6fee7ec2c45a7bbbe20",0,N],73338)}];
16
16
 
17
17
  //# sourceMappingURL=_next-internal_server_app_policies_page_actions_1sp2-yo.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[80311,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("009ad545620d7158fc4c18ddc9854cfa5473399e64",d.callServer,void 0,d.findSourceMapURL,"getAuditResultAction");var f=a.i(10765);function g({cachedAt:a,fixed:c=!1}){return(0,b.jsxs)("footer",{className:c?"report-footer report-footer--fixed":"report-footer",children:[(0,b.jsx)("img",{src:"/logo.svg",alt:"failproof_ai",style:{height:18,display:"inline-block",verticalAlign:"middle"}}),(0,b.jsx)("span",{style:{margin:"0 12px",color:"var(--line-2)"},children:"·"}),"audit v1.0",(0,b.jsx)("span",{style:{margin:"0 12px",color:"var(--line-2)"},children:"·"}),"generated ",function(a){if(!a)return"—";let b=new Date(a);if(Number.isNaN(b.getTime()))return"—";let c=b.getUTCDate().toString().padStart(2,"0"),d=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"][b.getUTCMonth()],e=b.getUTCFullYear(),f=b.getUTCHours().toString().padStart(2,"0"),g=b.getUTCMinutes().toString().padStart(2,"0");return`${c} ${d} ${e}, ${f}:${g} utc`}(a),(0,b.jsx)("span",{style:{margin:"0 12px",color:"var(--line-2)"},children:"·"}),(0,b.jsx)("span",{style:{color:"var(--ink-2)"},children:"auto-healing for your agents."})]})}let h=(0,d.createServerReference)("40627fe0bb35d1aea2f59f4ed5f39912b524a8cc1c",d.callServer,void 0,d.findSourceMapURL,"dismissLeakAction"),i=(0,d.createServerReference)("004c0a92f30b3875d89d14068f7fbdb7ecce772dc3",d.callServer,void 0,d.findSourceMapURL,"getLeaksAction"),j=(0,d.createServerReference)("40dbb536ad33353d440386d51c0242e56cd808cfbc",d.callServer,void 0,d.findSourceMapURL,"setLeakNotifyAction");function k(a){let b=Date.parse(a);if(!Number.isFinite(b))return"unknown";let c=Math.floor((Date.now()-b)/864e5);return c<=0?"today":1===c?"yesterday":c<30?`${c}d ago`:new Date(b).toLocaleDateString(void 0,{month:"short",day:"numeric"})}function l(){let[a,d]=(0,c.useState)(null),[e,f]=(0,c.useState)(!0),[g,l]=(0,c.useState)(null),m=(0,c.useCallback)(async()=>{let a=await i();d(a.rows),f(a.notify)},[]);(0,c.useEffect)(()=>{m()},[m]);let n=(0,c.useCallback)(async a=>{l(a);try{await h(a)&&d(b=>b?.filter(b=>b.id!==a)??null)}finally{l(null)}},[]),o=(0,c.useCallback)(async()=>{let a=!e;f(a),await j(a)||f(!a)},[e]);return null===a?null:(0,b.jsxs)("section",{className:"audit-sec","data-screen-label":"02 Leaks",children:[(0,b.jsxs)("div",{className:"audit-sec-head",children:[(0,b.jsxs)("span",{className:"audit-sec-eyebrow",children:[(0,b.jsx)("span",{className:"ix",children:"02"}),"// credentials"]}),(0,b.jsx)("button",{type:"button",className:"cbb-toggle leak-notify","data-on":e,onClick:o,"aria-label":e?"turn desktop notifications off":"turn desktop notifications on",title:"desktop notification when a new credential is found",children:(0,b.jsx)("span",{className:"cbb-toggle-knob"})})]}),0===a.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h2",{className:"audit-sec-title",children:"no credentials found"}),(0,b.jsxs)("div",{className:"audit-sec-sub",children:["// nothing in this machine's transcripts matched a known key format",(0,b.jsx)("br",{}),"// or a secret-named assignment."]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("h2",{className:"audit-sec-title",children:[a.length," credential",1===a.length?"":"s"," in your transcripts"]}),(0,b.jsx)("div",{className:"audit-sec-sub",children:"// one row per distinct key — an exposure count is not a key count."}),(0,b.jsx)("ul",{className:"leak-list",children:a.map(a=>(0,b.jsxs)("li",{className:"leak-row","data-attributed":a.attributed,children:[(0,b.jsxs)("div",{className:"leak-row-top",children:[(0,b.jsx)("code",{className:"leak-key",children:a.display}),(0,b.jsx)("span",{className:"leak-label",children:a.label}),a.name?(0,b.jsx)("span",{className:"leak-name",children:a.name}):null,(0,b.jsx)("button",{type:"button",className:"leak-dismiss",onClick:()=>void n(a.id),disabled:g===a.id,children:"not a secret"})]}),(0,b.jsxs)("div",{className:"leak-how",children:[(0,b.jsx)("span",{className:"leak-verb",children:a.mechanism})," in ",(0,b.jsx)("span",{className:"leak-where",children:a.project})," via ",(0,b.jsx)("span",{className:"leak-who",children:a.cli})," · leaked ",(0,b.jsx)("span",{className:"leak-when",children:k(a.firstSeen)}),k(a.firstSeen)!==k(a.lastSeen)?(0,b.jsxs)(b.Fragment,{children:[" · last seen ",(0,b.jsx)("span",{className:"leak-when",children:k(a.lastSeen)})]}):null]}),(0,b.jsxs)("div",{className:"leak-foot",children:[(0,b.jsxs)("span",{className:"leak-meta",children:[a.occurrences," exposure",1===a.occurrences?"":"s",a.sessions>1?` \xb7 ${a.sessions} sessions`:""," · ",a.length," chars"]}),(0,b.jsx)("span",{className:"leak-dir",children:"input"===a.direction?"sent by the agent — blockable at PreToolUse":"returned to the agent — already in the transcript"}),(0,b.jsx)("span",{className:"leak-fix",children:a.attributed?`rotate it in the ${a.label.replace(/ (API )?(key|token).*$/i,"")} console`:a.name?`find what reads ${a.name}, then rotate it there`:"trace it to its owner, then rotate it"})]})]},a.id))})]})]})}var m=a.i(89564);function n({mode:a,running:c,onStarted:d,onCompleted:e}){let{capture:g}=(0,f.usePostHog)(),h=async()=>{g("audit_first_run_clicked",{source:"empty_state",mode:a}),d();try{await (0,m.triggerRun)({cli:[],since:"all"})}catch(a){console.error("audit first run failed:",a)}finally{await e()}};return"no-cache"===a?(0,b.jsxs)("section",{className:"section empty-section","data-screen-label":"00 Empty",children:[(0,b.jsxs)("div",{className:"section-mast",children:[(0,b.jsxs)("div",{className:"section-label",children:[(0,b.jsx)("span",{className:"glyph",children:"━━"})," audit"," ",(0,b.jsx)("span",{className:"sep",children:"·"})," first run"]}),(0,b.jsxs)("div",{className:"section-meta",children:[(0,b.jsx)("span",{style:{color:"var(--dim)"},children:"○"})," no cache yet"]})]}),(0,b.jsx)("h2",{className:"section-h",children:"scan and see."}),(0,b.jsxs)("div",{className:"panel empty-panel",children:[(0,b.jsxs)("div",{className:"empty-glyph","aria-hidden":"true",children:[(0,b.jsx)("div",{className:"empty-glyph-grid",children:Array.from({length:36}).map((a,c)=>{let d=["1","5","8","10","13","17","20","23","25","30","32"].includes(String(c));return(0,b.jsx)("span",{className:"px"+(d?" on":"")},c)})}),(0,b.jsx)("div",{className:"empty-glyph-label",children:"▮▮ no audit data yet"})]}),(0,b.jsx)("h3",{className:"empty-headline",children:"run your first audit."}),(0,b.jsxs)("p",{className:"empty-sub",children:["we'll walk every transcript across your installed CLIs — Claude Code, Codex, Copilot, Cursor, OpenCode, Pi — and count every wasteful","or risky action. you'll get your agent's archetype and a punch-list."]}),(0,b.jsxs)("div",{className:"empty-actions",children:[(0,b.jsx)("button",{type:"button",className:"btn btn-primary btn-press empty-cta",onClick:h,disabled:c,children:c?"[ scanning… ]":"[ run audit ]"}),(0,b.jsx)("span",{className:"empty-meta",children:"scans all sessions · all installed CLIs · may take a while"})]})]})]}):(0,b.jsxs)("section",{className:"section empty-section","data-screen-label":"00 Empty",children:[(0,b.jsxs)("div",{className:"section-mast",children:[(0,b.jsxs)("div",{className:"section-label",children:[(0,b.jsx)("span",{className:"glyph",children:"━━"})," audit"," ",(0,b.jsx)("span",{className:"sep",children:"·"})," zero transcripts"]}),(0,b.jsxs)("div",{className:"section-meta",children:[(0,b.jsx)("span",{style:{color:"var(--amber)"},children:"●"})," hooks not installed"]})]}),(0,b.jsx)("h2",{className:"section-h",children:"nothing to read."}),(0,b.jsxs)("div",{className:"panel empty-panel",children:[(0,b.jsxs)("div",{className:"empty-glyph","aria-hidden":"true",children:[(0,b.jsx)("div",{className:"empty-glyph-grid",children:Array.from({length:36}).map((a,c)=>{let d=["2","4","9","11","16","18","23","25","27","30","33"].includes(String(c));return(0,b.jsx)("span",{className:"px"+(d?" on":"")},c)})}),(0,b.jsx)("div",{className:"empty-glyph-label",children:"▮▮ no sessions found"})]}),(0,b.jsx)("h3",{className:"empty-headline",children:"install hooks first."}),(0,b.jsx)("p",{className:"empty-sub",children:"failproofai couldn't find any transcripts to scan on this machine. install the hooks for at least one CLI and come back."}),(0,b.jsxs)("div",{className:"empty-actions",children:[(0,b.jsx)("a",{href:"https://docs.befailproof.ai/getting-started",target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary btn-press empty-cta",onClick:()=>{g("audit_install_guide_clicked",{source:"empty_state",mode:a})},children:"[ install guide → ]"}),(0,b.jsx)("span",{className:"empty-meta",children:"takes about 30 seconds · one command per CLI"})]})]})]})}let o=[{label:"discovering transcripts",detail:"walking ~/.claude, ~/.codex, ~/.cursor, …"},{label:"parsing session logs",detail:"reading JSONL + sqlite session stores"},{label:"running policy checks",detail:"replaying every policy against each tool call"},{label:"aggregating results",detail:"counting hits, ranking by frequency"}];function p(){let[a,d]=(0,c.useState)(0),[e,f]=(0,c.useState)(0);(0,c.useEffect)(()=>{let a=setInterval(()=>{d(a=>Math.min(a+1,o.length-1))},4e3),b=setInterval(()=>f(a=>(a+1)%4),350);return()=>{clearInterval(a),clearInterval(b)}},[]);let g=".".repeat(e+1),h=a===o.length-1,i=Math.round(100*Math.min(.9,(a+1)/o.length*.9));return(0,b.jsxs)("section",{className:"section running-section","data-screen-label":"00 Running",children:[(0,b.jsxs)("div",{className:"section-mast",children:[(0,b.jsxs)("div",{className:"section-label",children:[(0,b.jsx)("span",{className:"glyph",children:"━━"})," audit"," ",(0,b.jsx)("span",{className:"sep",children:"·"})," in progress"]}),(0,b.jsxs)("div",{className:"section-meta",children:[(0,b.jsx)("span",{style:{color:"var(--accent-pink)"},children:"●"})," scanning"]})]}),(0,b.jsxs)("h2",{className:"section-h",children:["scanning sessions",g]}),(0,b.jsxs)("div",{className:"panel running-panel",children:[(0,b.jsxs)("div",{className:"running-header",children:[(0,b.jsx)("span",{className:"running-prompt",children:"$"}),(0,b.jsx)("span",{className:"running-cmd",children:"failproofai audit"}),(0,b.jsx)("span",{className:"running-cursor","aria-hidden":"true",children:"▮"})]}),(0,b.jsx)("ul",{className:"running-stages",children:o.map((c,d)=>{let f=d<a,g=d===a;return(0,b.jsxs)("li",{className:"running-stage"+(f?" done":g?" active":" queued"),children:[(0,b.jsx)("span",{className:"running-marker","aria-hidden":"true",children:f?"✓":g?"▮▮":"○"}),(0,b.jsxs)("div",{className:"running-stage-body",children:[(0,b.jsx)("div",{className:"running-stage-label",children:c.label}),g&&(0,b.jsx)("div",{className:"running-stage-detail",children:h?"finishing up…":c.detail})]}),g&&(0,b.jsx)("span",{className:"running-stage-spin","aria-hidden":"true",children:["⠋","⠙","⠹","⠸"][e]})]},d)})}),(0,b.jsxs)("div",{className:"running-bar-label",children:[(0,b.jsx)("span",{children:"progress"}),(0,b.jsxs)("span",{style:{color:"var(--dim)"},children:[i,"%"]})]}),(0,b.jsx)("div",{className:"running-bar-track",children:(0,b.jsx)("div",{className:"running-bar-fill",style:{width:`${i}%`}})}),(0,b.jsx)("p",{className:"running-foot",children:"this can take a while depending on how much session history you have."})]})]})}let q={timeout:"audit took too long — try again",network:"network hiccup — check your connection",post_failed:"audit failed — try again"};function r({status:a,onDismiss:d}){let[e,f]=(0,c.useState)(()=>Date.now());if((0,c.useEffect)(()=>{if("running"!==a.kind)return;let b=setInterval(()=>f(Date.now()),1e3);return()=>clearInterval(b)},[a.kind]),"idle"===a.kind)return null;if("running"===a.kind){let c=Math.max(0,e-a.startedAt);return(0,b.jsxs)("div",{className:"audit-progress-strip",role:"status","aria-live":"polite",children:[(0,b.jsxs)("div",{className:"audit-progress-strip__inner",children:[(0,b.jsxs)("span",{className:"audit-progress-strip__label",children:[(0,b.jsx)("span",{className:"audit-progress-strip__spinner","aria-hidden":"true"}),"re-auditing your sessions"]}),(0,b.jsx)("span",{className:"audit-progress-strip__elapsed",children:function(a){if(a<0)return"00:00";let b=Math.floor(a/1e3),c=Math.floor(b/60).toString().padStart(2,"0"),d=(b%60).toString().padStart(2,"0");return`${c}:${d}`}(c)})]}),(0,b.jsx)("div",{className:"audit-progress-strip__pulse","aria-hidden":"true"})]})}return(0,b.jsx)("div",{className:"audit-progress-strip audit-progress-strip--failed",role:"alert",children:(0,b.jsxs)("div",{className:"audit-progress-strip__inner",children:[(0,b.jsxs)("span",{className:"audit-progress-strip__label",children:[(0,b.jsx)("span",{className:"audit-progress-strip__x","aria-hidden":"true",children:"×"}),q[a.reason]]}),(0,b.jsx)("button",{type:"button",className:"audit-progress-strip__dismiss",onClick:d,"aria-label":"dismiss",children:"[ dismiss ]"})]})})}function s({result:a,cachedAt:d,projectFromUrl:e,isRunning:h,rerunStatus:i,onRerun:j,onDismissRerun:k}){let{capture:m}=(0,f.usePostHog)(),{detectorsTriggered:n,missing:o}=(0,c.useMemo)(()=>{let b=0,c=0;for(let d of a.results)d.hits>0&&b++,"builtin"===d.source&&!d.enabledInConfig&&d.hits>0&&c++;return{detectorsTriggered:b,missing:c}},[a]),p=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{p.current||(p.current=!0,m("audit_dashboard_viewed",{missing:o,transcripts_scanned:a.transcripts.scanned,results_count:a.results.length,detectors_triggered:n}))},[m,o,a.transcripts.scanned,a.results.length,n]),(0,b.jsxs)("div",{className:"app",children:[(0,b.jsx)(r,{status:i,onDismiss:k}),(0,b.jsxs)("div",{className:"app-shell",children:[(0,b.jsxs)("div",{className:"report",children:[(0,b.jsx)(t,{transcripts:a.transcripts.scanned,events:a.eventsScanned??0,projects:a.projectsScanned.length,isRunning:h||"running"===i.kind,onRerun:()=>j("scan_header")}),(0,b.jsx)(l,{})]}),(0,b.jsx)(g,{cachedAt:d})]})]})}function t({transcripts:a,events:c,projects:d,isRunning:e,onRerun:f}){return(0,b.jsxs)("section",{className:"audit-sec","data-screen-label":"01 Scan",children:[(0,b.jsxs)("div",{className:"audit-sec-head",children:[(0,b.jsxs)("span",{className:"audit-sec-eyebrow",children:[(0,b.jsx)("span",{className:"ix",children:"01"}),"// scan"]}),(0,b.jsx)("button",{type:"button",className:"scan-rerun",onClick:f,disabled:e,children:e?"scanning…":"run again"})]}),(0,b.jsx)("h2",{className:"audit-sec-title",children:"scan complete"}),(0,b.jsxs)("div",{className:"audit-sec-sub",children:[c.toLocaleString()," tool call",1===c?"":"s"," across ",a.toLocaleString()," ","transcript",1===a?"":"s",d>0?` \xb7 ${d.toLocaleString()} project${1===d?"":"s"}`:""]}),(0,b.jsxs)("div",{className:"audit-sec-sub",children:["// the report is being rebuilt around leak detection. the scan, the",(0,b.jsx)("br",{}),"// 12-CLI transcript reader and the emailed digest are unaffected."]})]})}function u({running:a,mode:c="no-cache",rerunStatus:d,onDismissRerun:e,onStarted:f,onCompleted:h}){return(0,b.jsxs)("div",{className:"app",children:[(0,b.jsx)(r,{status:d,onDismiss:e}),(0,b.jsxs)("div",{className:"app-shell",children:[(0,b.jsx)("div",{className:"report",children:a?(0,b.jsx)(p,{}):(0,b.jsx)(n,{mode:c,running:a,onStarted:f,onCompleted:h})}),(0,b.jsx)(g,{cachedAt:null,fixed:!0})]})]})}a.s(["AuditDashboard",0,function({initial:a,projectFromUrl:d,totalCatalogSize:g}){let[h,i]=(0,c.useState)(a),[j,k]=(0,c.useState)(!1),[l,n]=(0,c.useState)({kind:"idle"}),{capture:o}=(0,f.usePostHog)(),p=(0,c.useRef)(null),q=(0,c.useRef)(!1),r="cached"===h.status?h.result.transcripts.scanned:0,t="cached"===h.status?h.result.results.length:0,v=(0,c.useCallback)(async()=>{i(await e())},[]),w=(0,c.useCallback)(async a=>{if(j)return;o("audit_rerun_clicked",{source:a,since:"all"}),k(!0);let b=Date.now();n({kind:"running",startedAt:b});try{await (0,m.triggerRun)({cli:[],since:"all",noCache:!0}),await v(),o("audit_rerun_succeeded",{source:a,since:"all",duration_ms:Date.now()-b}),n({kind:"idle"})}catch(d){let c=d instanceof m.RerunError?d.kind:"network";o("audit_rerun_failed",{kind:c,source:a,since:"all",cli_filter:"all",duration_ms:Date.now()-b}),n({kind:"failed",reason:c,failedAt:Date.now()})}finally{k(!1)}},[o,v,j]),x=(0,c.useCallback)(()=>{n({kind:"idle"})},[]);if((0,c.useEffect)(()=>(document.body.classList.add("audit-body"),()=>document.body.classList.remove("audit-body")),[]),(0,c.useEffect)(()=>{let a=j?"running":"empty"===h.status?"empty":0===r?"zero_sessions":"report";p.current!==a&&(p.current=a,o("audit_page_viewed",{state:a,has_cache:"cached"===h.status}))},[h.status,o,j,r]),(0,c.useEffect)(()=>{q.current=!1},[h.status,j,r]),(0,c.useEffect)(()=>{if(j||"cached"!==h.status||0===r)return;let a=0,b=()=>{if(a=0,q.current)return;let b=document.documentElement.scrollHeight-window.innerHeight;b<=0||window.scrollY>=b-24&&(q.current=!0,o("audit_page_scrolled_to_end",{results_count:t,transcripts_scanned:r}))},c=()=>{0===a&&(a=requestAnimationFrame(b))};return b(),window.addEventListener("scroll",c,{passive:!0}),()=>{window.removeEventListener("scroll",c),0!==a&&cancelAnimationFrame(a)}},[h.status,o,t,j,r]),"empty"===h.status&&!j)return(0,b.jsx)(u,{running:!1,rerunStatus:l,onDismissRerun:x,onStarted:()=>k(!0),onCompleted:async()=>{k(!1),await v()}});if("empty"===h.status&&j)return(0,b.jsx)(u,{running:!0,rerunStatus:l,onDismissRerun:x,onStarted:()=>{},onCompleted:async()=>{k(!1),await v()}});let y="cached"===h.status?h.result:null;if(!y)return null;let z="cached"===h.status?h.cachedAt:null;return 0===y.transcripts.scanned?(0,b.jsx)(u,{running:j,mode:"zero-sessions",rerunStatus:l,onDismissRerun:x,onStarted:()=>k(!0),onCompleted:async()=>{k(!1),await v()}}):(0,b.jsx)(s,{result:y,cachedAt:z,projectFromUrl:d,isRunning:j,rerunStatus:l,onRerun:a=>w(a),onDismissRerun:x})}],80311)}];
1
+ module.exports=[80311,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("0000e73cd773fa2c53602d9adf5b270fa497747e54",d.callServer,void 0,d.findSourceMapURL,"getAuditResultAction");var f=a.i(10765);function g({cachedAt:a,fixed:c=!1}){return(0,b.jsxs)("footer",{className:c?"report-footer report-footer--fixed":"report-footer",children:[(0,b.jsx)("img",{src:"/logo.svg",alt:"failproof_ai",style:{height:18,display:"inline-block",verticalAlign:"middle"}}),(0,b.jsx)("span",{style:{margin:"0 12px",color:"var(--line-2)"},children:"·"}),"audit v1.0",(0,b.jsx)("span",{style:{margin:"0 12px",color:"var(--line-2)"},children:"·"}),"generated ",function(a){if(!a)return"—";let b=new Date(a);if(Number.isNaN(b.getTime()))return"—";let c=b.getUTCDate().toString().padStart(2,"0"),d=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"][b.getUTCMonth()],e=b.getUTCFullYear(),f=b.getUTCHours().toString().padStart(2,"0"),g=b.getUTCMinutes().toString().padStart(2,"0");return`${c} ${d} ${e}, ${f}:${g} utc`}(a),(0,b.jsx)("span",{style:{margin:"0 12px",color:"var(--line-2)"},children:"·"}),(0,b.jsx)("span",{style:{color:"var(--ink-2)"},children:"auto-healing for your agents."})]})}let h=(0,d.createServerReference)("40b4a6c8d1e4b511e816c8d7493f24fb0e7e7be2e6",d.callServer,void 0,d.findSourceMapURL,"dismissLeakAction"),i=(0,d.createServerReference)("006f2aa64f86bf0154079fad166e1e5e06b1d050e5",d.callServer,void 0,d.findSourceMapURL,"getLeaksAction"),j=(0,d.createServerReference)("40a7972103d740f0429a2a6110f5ac4613c7847631",d.callServer,void 0,d.findSourceMapURL,"setLeakNotifyAction");function k(a){let b=Date.parse(a);if(!Number.isFinite(b))return"unknown";let c=Math.floor((Date.now()-b)/864e5);return c<=0?"today":1===c?"yesterday":c<30?`${c}d ago`:new Date(b).toLocaleDateString(void 0,{month:"short",day:"numeric"})}function l(){let[a,d]=(0,c.useState)(null),[e,f]=(0,c.useState)(!0),[g,l]=(0,c.useState)(null),m=(0,c.useCallback)(async()=>{let a=await i();d(a.rows),f(a.notify)},[]);(0,c.useEffect)(()=>{m()},[m]);let n=(0,c.useCallback)(async a=>{l(a);try{await h(a)&&d(b=>b?.filter(b=>b.id!==a)??null)}finally{l(null)}},[]),o=(0,c.useCallback)(async()=>{let a=!e;f(a),await j(a)||f(!a)},[e]);return null===a?null:(0,b.jsxs)("section",{className:"audit-sec","data-screen-label":"02 Leaks",children:[(0,b.jsxs)("div",{className:"audit-sec-head",children:[(0,b.jsxs)("span",{className:"audit-sec-eyebrow",children:[(0,b.jsx)("span",{className:"ix",children:"02"}),"// credentials"]}),(0,b.jsx)("button",{type:"button",className:"cbb-toggle leak-notify","data-on":e,onClick:o,"aria-label":e?"turn desktop notifications off":"turn desktop notifications on",title:"desktop notification when a new credential is found",children:(0,b.jsx)("span",{className:"cbb-toggle-knob"})})]}),0===a.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h2",{className:"audit-sec-title",children:"no credentials found"}),(0,b.jsxs)("div",{className:"audit-sec-sub",children:["// nothing in this machine's transcripts matched a known key format",(0,b.jsx)("br",{}),"// or a secret-named assignment."]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("h2",{className:"audit-sec-title",children:[a.length," credential",1===a.length?"":"s"," in your transcripts"]}),(0,b.jsx)("div",{className:"audit-sec-sub",children:"// one row per distinct key — an exposure count is not a key count."}),(0,b.jsx)("ul",{className:"leak-list",children:a.map(a=>(0,b.jsxs)("li",{className:"leak-row","data-attributed":a.attributed,children:[(0,b.jsxs)("div",{className:"leak-row-top",children:[(0,b.jsx)("code",{className:"leak-key",children:a.display}),(0,b.jsx)("span",{className:"leak-label",children:a.label}),a.name?(0,b.jsx)("span",{className:"leak-name",children:a.name}):null,(0,b.jsx)("button",{type:"button",className:"leak-dismiss",onClick:()=>void n(a.id),disabled:g===a.id,children:"not a secret"})]}),(0,b.jsxs)("div",{className:"leak-how",children:[(0,b.jsx)("span",{className:"leak-verb",children:a.mechanism})," in ",(0,b.jsx)("span",{className:"leak-where",children:a.project})," via ",(0,b.jsx)("span",{className:"leak-who",children:a.cli})," · leaked ",(0,b.jsx)("span",{className:"leak-when",children:k(a.firstSeen)}),a.firstSeen!==a.lastSeen?(0,b.jsxs)(b.Fragment,{children:[" · last seen ",(0,b.jsx)("span",{className:"leak-when",children:k(a.lastSeen)})]}):null]}),(0,b.jsxs)("div",{className:"leak-foot",children:[(0,b.jsxs)("span",{className:"leak-meta",children:[a.occurrences," exposure",1===a.occurrences?"":"s",a.sessions>1?` \xb7 ${a.sessions} sessions`:""," · ",a.length," chars"]}),(0,b.jsx)("span",{className:"leak-dir",children:"input"===a.direction?"sent by the agent — blockable at PreToolUse":"returned to the agent — already in the transcript"}),(0,b.jsx)("span",{className:"leak-fix",children:a.attributed?`rotate it in the ${a.label.replace(/ (API )?(key|token).*$/i,"")} console`:a.name?`find what reads ${a.name}, then rotate it there`:"trace it to its owner, then rotate it"})]})]},a.id))})]})]})}var m=a.i(89564);function n({mode:a,running:c,onStarted:d,onCompleted:e}){let{capture:g}=(0,f.usePostHog)(),h=async()=>{g("audit_first_run_clicked",{source:"empty_state",mode:a}),d();try{await (0,m.triggerRun)({cli:[],since:"all"})}catch(a){console.error("audit first run failed:",a)}finally{await e()}};return"no-cache"===a?(0,b.jsxs)("section",{className:"section empty-section","data-screen-label":"00 Empty",children:[(0,b.jsxs)("div",{className:"section-mast",children:[(0,b.jsxs)("div",{className:"section-label",children:[(0,b.jsx)("span",{className:"glyph",children:"━━"})," audit"," ",(0,b.jsx)("span",{className:"sep",children:"·"})," first run"]}),(0,b.jsxs)("div",{className:"section-meta",children:[(0,b.jsx)("span",{style:{color:"var(--dim)"},children:"○"})," no cache yet"]})]}),(0,b.jsx)("h2",{className:"section-h",children:"scan and see."}),(0,b.jsxs)("div",{className:"panel empty-panel",children:[(0,b.jsxs)("div",{className:"empty-glyph","aria-hidden":"true",children:[(0,b.jsx)("div",{className:"empty-glyph-grid",children:Array.from({length:36}).map((a,c)=>{let d=["1","5","8","10","13","17","20","23","25","30","32"].includes(String(c));return(0,b.jsx)("span",{className:"px"+(d?" on":"")},c)})}),(0,b.jsx)("div",{className:"empty-glyph-label",children:"▮▮ no audit data yet"})]}),(0,b.jsx)("h3",{className:"empty-headline",children:"run your first audit."}),(0,b.jsxs)("p",{className:"empty-sub",children:["we'll walk every transcript across your installed CLIs — Claude Code, Codex, Copilot, Cursor, OpenCode, Pi — and count every wasteful","or risky action. you'll get a leak report and a scan summary."]}),(0,b.jsxs)("div",{className:"empty-actions",children:[(0,b.jsx)("button",{type:"button",className:"btn btn-primary btn-press empty-cta",onClick:h,disabled:c,children:c?"[ scanning… ]":"[ run audit ]"}),(0,b.jsx)("span",{className:"empty-meta",children:"scans all sessions · all installed CLIs · may take a while"})]})]})]}):(0,b.jsxs)("section",{className:"section empty-section","data-screen-label":"00 Empty",children:[(0,b.jsxs)("div",{className:"section-mast",children:[(0,b.jsxs)("div",{className:"section-label",children:[(0,b.jsx)("span",{className:"glyph",children:"━━"})," audit"," ",(0,b.jsx)("span",{className:"sep",children:"·"})," zero transcripts"]}),(0,b.jsxs)("div",{className:"section-meta",children:[(0,b.jsx)("span",{style:{color:"var(--amber)"},children:"●"})," hooks not installed"]})]}),(0,b.jsx)("h2",{className:"section-h",children:"nothing to read."}),(0,b.jsxs)("div",{className:"panel empty-panel",children:[(0,b.jsxs)("div",{className:"empty-glyph","aria-hidden":"true",children:[(0,b.jsx)("div",{className:"empty-glyph-grid",children:Array.from({length:36}).map((a,c)=>{let d=["2","4","9","11","16","18","23","25","27","30","33"].includes(String(c));return(0,b.jsx)("span",{className:"px"+(d?" on":"")},c)})}),(0,b.jsx)("div",{className:"empty-glyph-label",children:"▮▮ no sessions found"})]}),(0,b.jsx)("h3",{className:"empty-headline",children:"install hooks first."}),(0,b.jsx)("p",{className:"empty-sub",children:"failproofai couldn't find any transcripts to scan on this machine. install the hooks for at least one CLI and come back."}),(0,b.jsxs)("div",{className:"empty-actions",children:[(0,b.jsx)("a",{href:"https://docs.befailproof.ai/getting-started",target:"_blank",rel:"noopener noreferrer",className:"btn btn-primary btn-press empty-cta",onClick:()=>{g("audit_install_guide_clicked",{source:"empty_state",mode:a})},children:"[ install guide → ]"}),(0,b.jsx)("span",{className:"empty-meta",children:"takes about 30 seconds · one command per CLI"})]})]})]})}let o=[{label:"discovering transcripts",detail:"walking ~/.claude, ~/.codex, ~/.cursor, …"},{label:"parsing session logs",detail:"reading JSONL + sqlite session stores"},{label:"running policy checks",detail:"replaying every policy against each tool call"},{label:"aggregating results",detail:"counting hits, ranking by frequency"}];function p(){let[a,d]=(0,c.useState)(0),[e,f]=(0,c.useState)(0);(0,c.useEffect)(()=>{let a=setInterval(()=>{d(a=>Math.min(a+1,o.length-1))},4e3),b=setInterval(()=>f(a=>(a+1)%4),350);return()=>{clearInterval(a),clearInterval(b)}},[]);let g=".".repeat(e+1),h=a===o.length-1,i=Math.round(100*Math.min(.9,(a+1)/o.length*.9));return(0,b.jsxs)("section",{className:"section running-section","data-screen-label":"00 Running",children:[(0,b.jsxs)("div",{className:"section-mast",children:[(0,b.jsxs)("div",{className:"section-label",children:[(0,b.jsx)("span",{className:"glyph",children:"━━"})," audit"," ",(0,b.jsx)("span",{className:"sep",children:"·"})," in progress"]}),(0,b.jsxs)("div",{className:"section-meta",children:[(0,b.jsx)("span",{style:{color:"var(--accent-pink)"},children:"●"})," scanning"]})]}),(0,b.jsxs)("h2",{className:"section-h",children:["scanning sessions",g]}),(0,b.jsxs)("div",{className:"panel running-panel",children:[(0,b.jsxs)("div",{className:"running-header",children:[(0,b.jsx)("span",{className:"running-prompt",children:"$"}),(0,b.jsx)("span",{className:"running-cmd",children:"failproofai audit"}),(0,b.jsx)("span",{className:"running-cursor","aria-hidden":"true",children:"▮"})]}),(0,b.jsx)("ul",{className:"running-stages",children:o.map((c,d)=>{let f=d<a,g=d===a;return(0,b.jsxs)("li",{className:"running-stage"+(f?" done":g?" active":" queued"),children:[(0,b.jsx)("span",{className:"running-marker","aria-hidden":"true",children:f?"✓":g?"▮▮":"○"}),(0,b.jsxs)("div",{className:"running-stage-body",children:[(0,b.jsx)("div",{className:"running-stage-label",children:c.label}),g&&(0,b.jsx)("div",{className:"running-stage-detail",children:h?"finishing up…":c.detail})]}),g&&(0,b.jsx)("span",{className:"running-stage-spin","aria-hidden":"true",children:["⠋","⠙","⠹","⠸"][e]})]},d)})}),(0,b.jsxs)("div",{className:"running-bar-label",children:[(0,b.jsx)("span",{children:"progress"}),(0,b.jsxs)("span",{style:{color:"var(--dim)"},children:[i,"%"]})]}),(0,b.jsx)("div",{className:"running-bar-track",children:(0,b.jsx)("div",{className:"running-bar-fill",style:{width:`${i}%`}})}),(0,b.jsx)("p",{className:"running-foot",children:"this can take a while depending on how much session history you have."})]})]})}let q={timeout:"audit took too long — try again",network:"network hiccup — check your connection",post_failed:"audit failed — try again"};function r({status:a,onDismiss:d}){let[e,f]=(0,c.useState)(()=>Date.now());if((0,c.useEffect)(()=>{if("running"!==a.kind)return;let b=setInterval(()=>f(Date.now()),1e3);return()=>clearInterval(b)},[a.kind]),"idle"===a.kind)return null;if("running"===a.kind){let c=Math.max(0,e-a.startedAt);return(0,b.jsxs)("div",{className:"audit-progress-strip",role:"status","aria-live":"polite",children:[(0,b.jsxs)("div",{className:"audit-progress-strip__inner",children:[(0,b.jsxs)("span",{className:"audit-progress-strip__label",children:[(0,b.jsx)("span",{className:"audit-progress-strip__spinner","aria-hidden":"true"}),"re-auditing your sessions"]}),(0,b.jsx)("span",{className:"audit-progress-strip__elapsed",children:function(a){if(a<0)return"00:00";let b=Math.floor(a/1e3),c=Math.floor(b/60).toString().padStart(2,"0"),d=(b%60).toString().padStart(2,"0");return`${c}:${d}`}(c)})]}),(0,b.jsx)("div",{className:"audit-progress-strip__pulse","aria-hidden":"true"})]})}return(0,b.jsx)("div",{className:"audit-progress-strip audit-progress-strip--failed",role:"alert",children:(0,b.jsxs)("div",{className:"audit-progress-strip__inner",children:[(0,b.jsxs)("span",{className:"audit-progress-strip__label",children:[(0,b.jsx)("span",{className:"audit-progress-strip__x","aria-hidden":"true",children:"×"}),q[a.reason]]}),(0,b.jsx)("button",{type:"button",className:"audit-progress-strip__dismiss",onClick:d,"aria-label":"dismiss",children:"[ dismiss ]"})]})})}function s({result:a,cachedAt:d,projectFromUrl:e,isRunning:h,rerunStatus:i,onRerun:j,onDismissRerun:k}){let{capture:m}=(0,f.usePostHog)(),{detectorsTriggered:n,missing:o}=(0,c.useMemo)(()=>{let b=0,c=0;for(let d of a.results)d.hits>0&&b++,"builtin"===d.source&&!d.enabledInConfig&&d.hits>0&&c++;return{detectorsTriggered:b,missing:c}},[a]),p=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{p.current||(p.current=!0,m("audit_dashboard_viewed",{missing:o,transcripts_scanned:a.transcripts.scanned,results_count:a.results.length,detectors_triggered:n}))},[m,o,a.transcripts.scanned,a.results.length,n]),(0,b.jsxs)("div",{className:"app",children:[(0,b.jsx)(r,{status:i,onDismiss:k}),(0,b.jsxs)("div",{className:"app-shell",children:[(0,b.jsxs)("div",{className:"report",children:[(0,b.jsx)(t,{transcripts:a.transcripts.scanned,events:a.eventsScanned??0,projects:a.projectsScanned?.length??0,isRunning:h||"running"===i.kind,onRerun:()=>j("scan_header")}),(0,b.jsx)(l,{})]}),(0,b.jsx)(g,{cachedAt:d})]})]})}function t({transcripts:a,events:c,projects:d,isRunning:e,onRerun:f}){return(0,b.jsxs)("section",{className:"audit-sec","data-screen-label":"01 Scan",children:[(0,b.jsxs)("div",{className:"audit-sec-head",children:[(0,b.jsxs)("span",{className:"audit-sec-eyebrow",children:[(0,b.jsx)("span",{className:"ix",children:"01"}),"// scan"]}),(0,b.jsx)("button",{type:"button",className:"scan-rerun",onClick:f,disabled:e,children:e?"scanning…":"run again"})]}),(0,b.jsx)("h2",{className:"audit-sec-title",children:"scan complete"}),(0,b.jsxs)("div",{className:"audit-sec-sub",children:[c.toLocaleString()," tool call",1===c?"":"s"," across ",a.toLocaleString()," ","transcript",1===a?"":"s",d>0?` \xb7 ${d.toLocaleString()} project${1===d?"":"s"}`:""]}),(0,b.jsxs)("div",{className:"audit-sec-sub",children:["// the report is being rebuilt around leak detection. the scan, the",(0,b.jsx)("br",{}),"// 12-CLI transcript reader and the emailed digest are unaffected."]})]})}function u({running:a,mode:c="no-cache",rerunStatus:d,onDismissRerun:e,onStarted:f,onCompleted:h}){return(0,b.jsxs)("div",{className:"app",children:[(0,b.jsx)(r,{status:d,onDismiss:e}),(0,b.jsxs)("div",{className:"app-shell",children:[(0,b.jsx)("div",{className:"report",children:a?(0,b.jsx)(p,{}):(0,b.jsx)(n,{mode:c,running:a,onStarted:f,onCompleted:h})}),(0,b.jsx)(g,{cachedAt:null,fixed:!0})]})]})}a.s(["AuditDashboard",0,function({initial:a,projectFromUrl:d,totalCatalogSize:g}){let[h,i]=(0,c.useState)(a),[j,k]=(0,c.useState)(!1),[l,n]=(0,c.useState)({kind:"idle"}),{capture:o}=(0,f.usePostHog)(),p=(0,c.useRef)(null),q=(0,c.useRef)(!1),r="cached"===h.status?h.result.transcripts.scanned:0,t="cached"===h.status?h.result.results.length:0,v=(0,c.useCallback)(async()=>{i(await e())},[]),w=(0,c.useCallback)(async a=>{if(j)return;o("audit_rerun_clicked",{source:a,since:"all"}),k(!0);let b=Date.now();n({kind:"running",startedAt:b});try{await (0,m.triggerRun)({cli:[],since:"all",noCache:!0}),await v(),o("audit_rerun_succeeded",{source:a,since:"all",duration_ms:Date.now()-b}),n({kind:"idle"})}catch(d){let c=d instanceof m.RerunError?d.kind:"network";o("audit_rerun_failed",{kind:c,source:a,since:"all",cli_filter:"all",duration_ms:Date.now()-b}),n({kind:"failed",reason:c,failedAt:Date.now()})}finally{k(!1)}},[o,v,j]),x=(0,c.useCallback)(()=>{n({kind:"idle"})},[]);if((0,c.useEffect)(()=>(document.body.classList.add("audit-body"),()=>document.body.classList.remove("audit-body")),[]),(0,c.useEffect)(()=>{let a=j?"running":"empty"===h.status?"empty":0===r?"zero_sessions":"report";p.current!==a&&(p.current=a,o("audit_page_viewed",{state:a,has_cache:"cached"===h.status}))},[h.status,o,j,r]),(0,c.useEffect)(()=>{q.current=!1},[h.status,j,r]),(0,c.useEffect)(()=>{if(j||"cached"!==h.status||0===r)return;let a=0,b=()=>{if(a=0,q.current)return;let b=document.documentElement.scrollHeight-window.innerHeight;b<=0||window.scrollY>=b-24&&(q.current=!0,o("audit_page_scrolled_to_end",{results_count:t,transcripts_scanned:r}))},c=()=>{0===a&&(a=requestAnimationFrame(b))};return b(),window.addEventListener("scroll",c,{passive:!0}),()=>{window.removeEventListener("scroll",c),0!==a&&cancelAnimationFrame(a)}},[h.status,o,t,j,r]),"empty"===h.status&&!j)return(0,b.jsx)(u,{running:!1,rerunStatus:l,onDismissRerun:x,onStarted:()=>k(!0),onCompleted:async()=>{k(!1),await v()}});if("empty"===h.status&&j)return(0,b.jsx)(u,{running:!0,rerunStatus:l,onDismissRerun:x,onStarted:()=>{},onCompleted:async()=>{k(!1),await v()}});let y="cached"===h.status?h.result:null;if(!y)return null;let z="cached"===h.status?h.cachedAt:null;return 0===y.transcripts.scanned?(0,b.jsx)(u,{running:j,mode:"zero-sessions",rerunStatus:l,onDismissRerun:x,onStarted:()=>k(!0),onCompleted:async()=>{k(!1),await v()}}):(0,b.jsx)(s,{result:y,cachedAt:z,projectFromUrl:d,isRunning:j,rerunStatus:l,onRerun:a=>w(a),onDismissRerun:x})}],80311)}];
2
2
 
3
3
  //# sourceMappingURL=app_audit__components_audit-dashboard_tsx_0p9ud47._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[3171,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(18987),e=a.i(66036);a.s(["default",0,function({error:a,reset:f}){return(0,c.useEffect)(()=>{(0,d.getTelemetryConfig)().then(b=>{(0,e.setClientTelemetryConfig)(b),(0,e.captureClientEvent)("client_error",{error_message:a.message,error_name:a.name,error_digest:a.digest,boundary:"global"})}).catch(()=>{})},[a]),(0,b.jsx)("html",{children:(0,b.jsx)("body",{children:(0,b.jsx)("main",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#031035",color:"#f8fafc",fontFamily:"system-ui, sans-serif"},children:(0,b.jsxs)("div",{style:{textAlign:"center",padding:"2rem",border:"1px solid rgba(239,68,68,0.4)",borderRadius:"0.5rem",maxWidth:"500px"},children:[(0,b.jsx)("h2",{style:{color:"#ef4444",marginBottom:"0.5rem",fontSize:"1.25rem"},children:"Something went wrong"}),(0,b.jsx)("p",{style:{color:"#94a3b8",marginBottom:"1.5rem"},children:a.message||"An unexpected error occurred."}),(0,b.jsx)("button",{onClick:f,style:{padding:"0.5rem 1.25rem",background:"#3b82f6",color:"white",border:"none",borderRadius:"0.375rem",cursor:"pointer",fontSize:"0.875rem"},children:"Try again"})]})})})})}])}];
1
+ module.exports=[3171,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(36263),e=a.i(66036);a.s(["default",0,function({error:a,reset:f}){return(0,c.useEffect)(()=>{(0,d.getTelemetryConfig)().then(b=>{(0,e.setClientTelemetryConfig)(b),(0,e.captureClientEvent)("client_error",{error_message:a.message,error_name:a.name,error_digest:a.digest,boundary:"global"})}).catch(()=>{})},[a]),(0,b.jsx)("html",{children:(0,b.jsx)("body",{children:(0,b.jsx)("main",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#031035",color:"#f8fafc",fontFamily:"system-ui, sans-serif"},children:(0,b.jsxs)("div",{style:{textAlign:"center",padding:"2rem",border:"1px solid rgba(239,68,68,0.4)",borderRadius:"0.5rem",maxWidth:"500px"},children:[(0,b.jsx)("h2",{style:{color:"#ef4444",marginBottom:"0.5rem",fontSize:"1.25rem"},children:"Something went wrong"}),(0,b.jsx)("p",{style:{color:"#94a3b8",marginBottom:"1.5rem"},children:a.message||"An unexpected error occurred."}),(0,b.jsx)("button",{onClick:f,style:{padding:"0.5rem 1.25rem",background:"#3b82f6",color:"white",border:"none",borderRadius:"0.375rem",cursor:"pointer",fontSize:"0.875rem"},children:"Try again"})]})})})})}])}];
2
2
 
3
3
  //# sourceMappingURL=app_global-error_tsx_1kp6l3x._.js.map