failproofai 1.0.12-beta.0 → 1.0.12-beta.2

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 (214) 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 +2 -2
  10. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  11. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
  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 +3 -3
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  19. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  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 +22 -22
  23. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  25. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  31. package/.next/standalone/.next/server/app/audit/page.js +1 -1
  32. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/index.html +1 -1
  35. package/.next/standalone/.next/server/app/index.rsc +3 -3
  36. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  37. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  38. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  39. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  40. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
  43. package/.next/standalone/.next/server/app/policies/page.js +4 -4
  44. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  47. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  50. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  51. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  54. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  55. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +8 -8
  57. package/.next/standalone/.next/server/app/settings/page.js +7 -7
  58. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  59. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/.next/server/chunks/{[externals]__0-ha5ydqq0mws._.js → [externals]__0vt9i6fqinjne._.js} +1 -1
  61. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__20xe05hm5u8_1._.js → [root-of-the-server]__0f_4g-vazrvxv._.js} +1 -1
  62. package/.next/standalone/.next/server/chunks/_0hf5q4xzyg40j._.js +1 -1
  63. package/.next/standalone/.next/server/chunks/_0tovk6q0miud6._.js +1 -1
  64. package/.next/standalone/.next/server/chunks/_0trp3ycqv17cl._.js +1 -1
  65. package/.next/standalone/.next/server/chunks/_19011-u44143j._.js +1 -1
  66. package/.next/standalone/.next/server/chunks/_1ek68lnh2daur._.js +2 -2
  67. package/.next/standalone/.next/server/chunks/{_0kc-piux3hady._.js → _1y590mjzpkbos._.js} +2 -2
  68. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4vkpxxu7._.js +1 -1
  69. package/.next/standalone/.next/server/chunks/src_hooks_0_em82s16zfym._.js +5 -0
  70. package/.next/standalone/.next/server/chunks/src_hooks_builtin-policies_ts_1yq5ybgx1v98e._.js +3 -0
  71. package/.next/standalone/.next/server/chunks/src_hooks_custom-hooks-loader_ts_0lnb3n3h94wnn._.js +1 -1
  72. package/.next/standalone/.next/server/chunks/src_hooks_daemon-client_ts_0il_yu1zc0291._.js +1 -1
  73. package/.next/standalone/.next/server/chunks/src_hooks_fp-home_ts_09kv0bn_4twyh._.js +1 -1
  74. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0ts0fg5yih1c1._.js → [root-of-the-server]__00l2u6j86cb8y._.js} +2 -2
  75. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08ch3staq3ejw._.js +1 -1
  76. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bigvy9xmv2ka._.js +1 -1
  77. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h86bl2qf0k_o._.js +1 -1
  78. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1_xbg2kx30wp-._.js → [root-of-the-server]__0naevg4bcoh54._.js} +1 -1
  79. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pia5h3p8re4c._.js +1 -1
  80. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pwj2h2efe5f-._.js +1 -1
  81. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1-ey9fgesfbc0._.js +1 -1
  82. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__15usvs-ms-0hf._.js +1 -1
  83. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__16gb3_92zvk5x._.js +1 -1
  84. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1avi2kypusyb_._.js +1 -1
  85. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1r7drlqli-ado._.js +1 -1
  86. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0vcyntk4snf0f._.js → [root-of-the-server]__1vofkb2oq7p7e._.js} +1 -1
  87. package/.next/standalone/.next/server/chunks/ssr/_0bseae9u7g98r._.js +1 -1
  88. package/.next/standalone/.next/server/chunks/ssr/_0eoura3_9gjb-._.js +1 -1
  89. package/.next/standalone/.next/server/chunks/ssr/_0mouhaflye1ro._.js +1 -1
  90. package/.next/standalone/.next/server/chunks/ssr/{_1gb0ifpkowwub._.js → _0ouu886szh6yj._.js} +10 -9
  91. package/.next/standalone/.next/server/chunks/ssr/_0pedwblqdoh58._.js +1 -1
  92. package/.next/standalone/.next/server/chunks/ssr/_1djqs9i27e4kg._.js +1 -1
  93. package/.next/standalone/.next/server/chunks/ssr/{_1ve8y151ua7qx._.js → _1fw0_nzkae5ao._.js} +2 -2
  94. package/.next/standalone/.next/server/chunks/ssr/_20hn4gn87nsjc._.js +1 -1
  95. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo5_vm5f.js +2 -2
  96. package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9snixb5fd-._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47q0xq5w._.js +1 -1
  98. package/.next/standalone/.next/server/chunks/ssr/app_components_project-list_tsx_1ke6anr0vt64h._.js +1 -1
  99. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x33jqb6._.js +1 -1
  100. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpcz0uxur._.js +2 -2
  101. package/.next/standalone/.next/server/chunks/ssr/app_settings_02tf1h47jmhhd._.js +1 -1
  102. package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_00jxj8foxqz5t.js → node_modules_html-to-image_es_index_1fv03uigni8s5.js} +1 -1
  103. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +1 -1
  104. package/.next/standalone/.next/server/chunks/ssr/package_json_[json]_cjs_013tntikdft59._.js +1 -1
  105. package/.next/standalone/.next/server/chunks/ssr/src_hooks_06kzv9ddabn3_._.js +1 -1
  106. package/.next/standalone/.next/server/chunks/ssr/src_hooks_0agdmptetetdt._.js +5 -0
  107. package/.next/standalone/.next/server/chunks/ssr/src_hooks_0mdwgjisv4fub._.js +5 -0
  108. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1cv9_c4l1tzrm._.js +1 -1
  109. package/.next/standalone/.next/server/chunks/ssr/src_hooks_daemon-client_ts_0k41_i7jg6ndv._.js +1 -1
  110. package/.next/standalone/.next/server/chunks/ssr/src_hooks_fp-config_ts_04t589gp4p60j._.js +1 -1
  111. package/.next/standalone/.next/server/chunks/ssr/src_hooks_pack-cli_ts_0t7me658zqmh_._.js +1 -1
  112. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  113. package/.next/standalone/.next/server/pages/404.html +1 -1
  114. package/.next/standalone/.next/server/pages/500.html +1 -1
  115. package/.next/standalone/.next/server/preview-props.json +3 -3
  116. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/server-reference-manifest.json +23 -23
  118. package/.next/standalone/.next/static/chunks/{0pjxnp927y7_j.js → 0ay__-d2h1xb5.js} +1 -1
  119. package/.next/standalone/.next/static/chunks/{2znt1784j9gd9.js → 0tbm3vjm62h-2.js} +1 -1
  120. package/.next/standalone/.next/static/chunks/1c_jf6g5wnslk.js +1 -0
  121. package/.next/standalone/.next/static/chunks/{3tn1bzk094e8e.js → 1my3-5p47t7r-.js} +1 -1
  122. package/.next/standalone/.next/static/chunks/20py8k1gd_i1m.js +1 -0
  123. package/.next/standalone/.next/static/chunks/21hckpmsc4g70.js +6 -0
  124. package/.next/standalone/.next/static/chunks/2hmex93ppj1ke.js +1 -0
  125. package/.next/standalone/.next/static/chunks/2o6d37j425uci.js +1 -0
  126. package/.next/standalone/.next/static/chunks/40oworn_-x12p.js +1 -0
  127. package/.next/standalone/.next/static/chunks/{2qz5piiir-qqm.js → 42xptz88mtq3x.js} +1 -1
  128. package/.next/standalone/app/actions/update-jev-config.ts +5 -3
  129. package/.next/standalone/app/settings/jev-panel.tsx +1 -1
  130. package/.next/standalone/fp-cloud-cli/CHANGELOG.md +32 -0
  131. package/.next/standalone/fp-cloud-cli/README.md +40 -1
  132. package/.next/standalone/fp-cloud-cli/fp_cli/client.py +91 -12
  133. package/.next/standalone/fp-cloud-cli/fp_cli/commands/fleet_cmds.py +78 -16
  134. package/.next/standalone/fp-cloud-cli/fp_cli/commands/policies_cmds.py +84 -18
  135. package/.next/standalone/fp-cloud-cli/fp_cli/enforcement.py +124 -6
  136. package/.next/standalone/fp-cloud-cli/fp_cli/models.py +89 -6
  137. package/.next/standalone/fp-cloud-cli/fp_cli/output.py +189 -20
  138. package/.next/standalone/fp-cloud-cli/fp_cli/policy_check.py +8 -5
  139. package/.next/standalone/fp-cloud-cli/skill/SKILL.md +2 -2
  140. package/.next/standalone/fp-cloud-cli/skill/references/commands.md +14 -7
  141. package/.next/standalone/fp-cloud-cli/tests/test_cloud_jev.py +527 -0
  142. package/.next/standalone/fp-cloud-cli/tests/test_enforcement_logic.py +46 -0
  143. package/.next/standalone/fp-cloud-cli/tests/test_output.py +23 -0
  144. package/.next/standalone/hermes-plugin/README.md +6 -4
  145. package/.next/standalone/hermes-plugin/__init__.py +27 -0
  146. package/.next/standalone/hermes-plugin/client.py +5 -1
  147. package/.next/standalone/hermes-plugin/plugin.yaml +1 -1
  148. package/.next/standalone/package.json +11 -10
  149. package/.next/standalone/sdk/python/uv.lock +31 -8
  150. package/.next/standalone/server.js +1 -1
  151. package/bin/failproofai.mjs +17 -1
  152. package/dist/cli.mjs +3507 -1250
  153. package/dist/worker.mjs +1779 -169
  154. package/hermes-plugin/README.md +6 -4
  155. package/hermes-plugin/__init__.py +27 -0
  156. package/hermes-plugin/client.py +5 -1
  157. package/hermes-plugin/plugin.yaml +1 -1
  158. package/package.json +11 -10
  159. package/src/audit/open-browser.ts +6 -7
  160. package/src/hooks/agent-roster.ts +180 -0
  161. package/src/hooks/agent-skill.ts +203 -0
  162. package/src/hooks/agent-targets.ts +60 -0
  163. package/src/hooks/cloud-connection.ts +91 -45
  164. package/src/hooks/cloud-enrollment-cli.ts +7 -4
  165. package/src/hooks/cloud-login.ts +6 -3
  166. package/src/hooks/cloud-managed-policies.ts +430 -20
  167. package/src/hooks/cloud-policy-errors.ts +481 -0
  168. package/src/hooks/codex-system-hooks.ts +10 -4
  169. package/src/hooks/config-status.ts +10 -4
  170. package/src/hooks/configure-wizard.ts +54 -26
  171. package/src/hooks/custom-hooks-loader.ts +26 -3
  172. package/src/hooks/daemon-client.ts +9 -4
  173. package/src/hooks/daemon-service.ts +2 -1
  174. package/src/hooks/delivery-health.ts +47 -2
  175. package/src/hooks/effective-reviewers.ts +36 -1
  176. package/src/hooks/fp-config.ts +19 -0
  177. package/src/hooks/fp-home.ts +6 -0
  178. package/src/hooks/handler.ts +255 -19
  179. package/src/hooks/health-probe.ts +15 -0
  180. package/src/hooks/hook-activity-store.ts +7 -1
  181. package/src/hooks/integrations.ts +36 -14
  182. package/src/hooks/jev-activity.ts +117 -1
  183. package/src/hooks/jev-cli.ts +196 -1
  184. package/src/hooks/jev-cloud-connection.ts +92 -0
  185. package/src/hooks/manager.ts +174 -34
  186. package/src/hooks/pack-failclosed.ts +2 -0
  187. package/src/hooks/pack-manifest.ts +8 -1
  188. package/src/hooks/policy-evaluator.ts +22 -1
  189. package/src/hooks/policy-registry.ts +3 -2
  190. package/src/hooks/policy-reviewability.ts +23 -5
  191. package/src/hooks/semantic/cloud-jev-health.ts +227 -0
  192. package/src/hooks/semantic/cloud-jev.ts +868 -0
  193. package/src/hooks/semantic/combine.ts +26 -1
  194. package/src/hooks/semantic/jev-client.ts +19 -2
  195. package/src/hooks/semantic/jev-config.ts +179 -30
  196. package/src/hooks/semantic/jev-review.ts +217 -10
  197. package/src/hooks/semantic/pack-policies.ts +2 -1
  198. package/src/hooks/semantic/types.ts +8 -0
  199. package/src/hooks/session-pause-cli.ts +1 -1
  200. package/src/hooks/tui.ts +13 -4
  201. package/src/hooks/uninstall-cli.ts +12 -1
  202. package/src/hooks/worker-server.ts +5 -1
  203. package/.next/standalone/.next/server/chunks/src_hooks_1aveq0uhs2t1b._.js +0 -5
  204. package/.next/standalone/.next/server/chunks/src_hooks_1eem5a7cyqlb2._.js +0 -3
  205. package/.next/standalone/.next/server/chunks/ssr/src_hooks_effective-reviewers_ts_1h4wtvo55j16x._.js +0 -5
  206. package/.next/standalone/.next/static/chunks/0a-ccsp3xmypz.js +0 -1
  207. package/.next/standalone/.next/static/chunks/13jv-xvabeb62.js +0 -6
  208. package/.next/standalone/.next/static/chunks/2ank2u3apy8m6.js +0 -1
  209. package/.next/standalone/.next/static/chunks/2meqb9kygrncb.js +0 -1
  210. package/.next/standalone/.next/static/chunks/2ohktp_-lkv3x.js +0 -1
  211. package/.next/standalone/.next/static/chunks/2py0eldhwz8ay.js +0 -1
  212. /package/.next/standalone/.next/static/{SNr7o_-G4kNBQTR-iLZMM → LHCtFxVG0mdvd4lsXAOFC}/_buildManifest.js +0 -0
  213. /package/.next/standalone/.next/static/{SNr7o_-G4kNBQTR-iLZMM → LHCtFxVG0mdvd4lsXAOFC}/_clientMiddlewareManifest.js +0 -0
  214. /package/.next/standalone/.next/static/{SNr7o_-G4kNBQTR-iLZMM → LHCtFxVG0mdvd4lsXAOFC}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
1
  globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {};
2
- globalThis.__RSC_MANIFEST["/settings/page"] = {"moduleLoading":{"prefix":""},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/contexts/PostHogContext.tsx":{"id":12344,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/app/components/global-error-listeners.tsx":{"id":97917,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/contexts/AutoRefreshContext.tsx":{"id":85881,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/components/navbar.tsx":{"id":63780,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/app/components/toast.tsx":{"id":55574,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js"],"async":false},"[project]/app/error.tsx":{"id":8821,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js","/_next/static/chunks/32s3y34p0t2pe.js"],"async":false},"[project]/app/global-error.tsx":{"id":53348,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js","/_next/static/chunks/2ank2u3apy8m6.js"],"async":false},"[project]/app/settings/jev-panel.tsx":{"id":2917,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js","/_next/static/chunks/2qz5piiir-qqm.js"],"async":false},"[project]/app/settings/settings-client.tsx":{"id":93237,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/2py0eldhwz8ay.js","/_next/static/chunks/2qz5piiir-qqm.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"12344":{"*":{"id":10765,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"97917":{"*":{"id":45550,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"85881":{"*":{"id":6236,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"63780":{"*":{"id":10815,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"55574":{"*":{"id":18952,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"8821":{"*":{"id":78141,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js","server/chunks/ssr/app_209u41o446my6._.js"],"async":false}},"53348":{"*":{"id":3171,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js","server/chunks/ssr/app_global-error_tsx_1kp6l3x33jqb6._.js"],"async":false}},"2917":{"*":{"id":4614,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js","server/chunks/ssr/lib_format-duration_ts_09vnd_qdginp7._.js","server/chunks/ssr/app_settings_02tf1h47jmhhd._.js","server/chunks/ssr/_00e4_rvim31u_._.js"],"async":false}},"93237":{"*":{"id":41857,"name":"*","chunks":["server/chunks/ssr/_1ve8y151ua7qx._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js","server/chunks/ssr/lib_format-duration_ts_09vnd_qdginp7._.js","server/chunks/ssr/app_settings_02tf1h47jmhhd._.js","server/chunks/ssr/_00e4_rvim31u_._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"12344":{"*":{"id":92036,"name":"*","chunks":[],"async":false}},"97917":{"*":{"id":16336,"name":"*","chunks":[],"async":false}},"85881":{"*":{"id":54950,"name":"*","chunks":[],"async":false}},"63780":{"*":{"id":42976,"name":"*","chunks":[],"async":false}},"55574":{"*":{"id":33711,"name":"*","chunks":[],"async":false}},"8821":{"*":{"id":50757,"name":"*","chunks":[],"async":false}},"53348":{"*":{"id":53128,"name":"*","chunks":[],"async":false}},"2917":{"*":{"id":41804,"name":"*","chunks":[],"async":false}},"93237":{"*":{"id":30575,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/layout":[{"path":"static/chunks/26c4gmdpsthv6.css","inlined":false}],"[project]/app/error":[{"path":"static/chunks/26c4gmdpsthv6.css","inlined":false}],"[project]/app/global-error":[{"path":"static/chunks/26c4gmdpsthv6.css","inlined":false}],"[project]/app/settings/page":[{"path":"static/chunks/26c4gmdpsthv6.css","inlined":false},{"path":"static/chunks/0u64yey446k4f.css","inlined":false},{"path":"static/chunks/2qv4hshejedtx.css","inlined":false}]},"entryJSFiles":{"[project]/app/layout":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/2py0eldhwz8ay.js"],"[project]/app/error":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/2py0eldhwz8ay.js","static/chunks/32s3y34p0t2pe.js"],"[project]/app/global-error":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/2py0eldhwz8ay.js","static/chunks/2ank2u3apy8m6.js"],"[project]/app/settings/page":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/2py0eldhwz8ay.js","static/chunks/2qz5piiir-qqm.js"]}};
2
+ globalThis.__RSC_MANIFEST["/settings/page"] = {"moduleLoading":{"prefix":""},"clientModules":{"[project]/node_modules/next/dist/esm/client/components/layout-router.js":{"id":39756,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":37457,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-page.js":{"id":47257,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/client-segment.js":{"id":92825,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":68017,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":97367,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":27201,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/contexts/PostHogContext.tsx":{"id":12344,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/app/components/global-error-listeners.tsx":{"id":97917,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/contexts/AutoRefreshContext.tsx":{"id":85881,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/components/navbar.tsx":{"id":63780,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/app/components/toast.tsx":{"id":55574,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js"],"async":false},"[project]/app/error.tsx":{"id":8821,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js","/_next/static/chunks/32s3y34p0t2pe.js"],"async":false},"[project]/app/global-error.tsx":{"id":53348,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js","/_next/static/chunks/2o6d37j425uci.js"],"async":false},"[project]/app/settings/jev-panel.tsx":{"id":2917,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js","/_next/static/chunks/42xptz88mtq3x.js"],"async":false},"[project]/app/settings/settings-client.tsx":{"id":93237,"name":"*","chunks":["/_next/static/chunks/2_sj5ssr_m_wm.js","/_next/static/chunks/2j5zpvs3pd7mw.js","/_next/static/chunks/20py8k1gd_i1m.js","/_next/static/chunks/42xptz88mtq3x.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"37457":{"*":{"id":24017,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"47257":{"*":{"id":77682,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"92825":{"*":{"id":97296,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"68017":{"*":{"id":61660,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"97367":{"*":{"id":90574,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"27201":{"*":{"id":60704,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"12344":{"*":{"id":10765,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"97917":{"*":{"id":45550,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"85881":{"*":{"id":6236,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"63780":{"*":{"id":10815,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"55574":{"*":{"id":18952,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js"],"async":false}},"8821":{"*":{"id":78141,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js","server/chunks/ssr/app_209u41o446my6._.js"],"async":false}},"53348":{"*":{"id":3171,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js","server/chunks/ssr/app_global-error_tsx_1kp6l3x33jqb6._.js"],"async":false}},"2917":{"*":{"id":4614,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js","server/chunks/ssr/lib_format-duration_ts_09vnd_qdginp7._.js","server/chunks/ssr/app_settings_02tf1h47jmhhd._.js","server/chunks/ssr/_00e4_rvim31u_._.js"],"async":false}},"93237":{"*":{"id":41857,"name":"*","chunks":["server/chunks/ssr/_1fw0_nzkae5ao._.js","server/chunks/ssr/[root-of-the-server]__1vxwetblyf8vp._.js","server/chunks/ssr/node_modules_next_0zuikgt2xho-v._.js","server/chunks/ssr/node_modules_next_dist_shared_lib_03w27x2kh17_8._.js","server/chunks/ssr/lib_utils_ts_0az0sfq5wo-3f._.js","server/chunks/ssr/node_modules_09s4n108bqreq._.js","server/chunks/ssr/node_modules_next_dist_1dupwucoqt5qm._.js","server/chunks/ssr/_1djqs9i27e4kg._.js","server/chunks/ssr/node_modules_0dad4au22rq0p._.js","server/chunks/ssr/lib_format-duration_ts_09vnd_qdginp7._.js","server/chunks/ssr/app_settings_02tf1h47jmhhd._.js","server/chunks/ssr/_00e4_rvim31u_._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"39756":{"*":{"id":26768,"name":"*","chunks":[],"async":false}},"37457":{"*":{"id":17910,"name":"*","chunks":[],"async":false}},"47257":{"*":{"id":92977,"name":"*","chunks":[],"async":false}},"92825":{"*":{"id":48552,"name":"*","chunks":[],"async":false}},"68017":{"*":{"id":83919,"name":"*","chunks":[],"async":false}},"97367":{"*":{"id":24150,"name":"*","chunks":[],"async":false}},"27201":{"*":{"id":40771,"name":"*","chunks":[],"async":false}},"12344":{"*":{"id":92036,"name":"*","chunks":[],"async":false}},"97917":{"*":{"id":16336,"name":"*","chunks":[],"async":false}},"85881":{"*":{"id":54950,"name":"*","chunks":[],"async":false}},"63780":{"*":{"id":42976,"name":"*","chunks":[],"async":false}},"55574":{"*":{"id":33711,"name":"*","chunks":[],"async":false}},"8821":{"*":{"id":50757,"name":"*","chunks":[],"async":false}},"53348":{"*":{"id":53128,"name":"*","chunks":[],"async":false}},"2917":{"*":{"id":41804,"name":"*","chunks":[],"async":false}},"93237":{"*":{"id":30575,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/layout":[{"path":"static/chunks/26c4gmdpsthv6.css","inlined":false}],"[project]/app/error":[{"path":"static/chunks/26c4gmdpsthv6.css","inlined":false}],"[project]/app/global-error":[{"path":"static/chunks/26c4gmdpsthv6.css","inlined":false}],"[project]/app/settings/page":[{"path":"static/chunks/26c4gmdpsthv6.css","inlined":false},{"path":"static/chunks/0u64yey446k4f.css","inlined":false},{"path":"static/chunks/2qv4hshejedtx.css","inlined":false}]},"entryJSFiles":{"[project]/app/layout":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/20py8k1gd_i1m.js"],"[project]/app/error":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/20py8k1gd_i1m.js","static/chunks/32s3y34p0t2pe.js"],"[project]/app/global-error":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/20py8k1gd_i1m.js","static/chunks/2o6d37j425uci.js"],"[project]/app/settings/page":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/20py8k1gd_i1m.js","static/chunks/42xptz88mtq3x.js"]}};
3
3
 
@@ -1,3 +1,3 @@
1
1
  module.exports=[60815,e=>{e.v(e=>Promise.resolve().then(()=>e(24868)))},57764,(e,r,o)=>{r.exports=e.x("node:url",()=>require("node:url"))},92509,(e,r,o)=>{r.exports=e.x("url",()=>require("url"))}];
2
2
 
3
- //# sourceMappingURL=%5Bexternals%5D__0-ha5ydqq0mws._.js.map
3
+ //# sourceMappingURL=%5Bexternals%5D__0vt9i6fqinjne._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[874,(e,r,o)=>{r.exports=e.x("buffer",()=>require("buffer"))},60815,e=>{e.v(e=>Promise.resolve().then(()=>e(24868)))},44376,(e,r,o)=>{r.exports=e.x("node:module",()=>require("node:module"))},1457,(e,r,o)=>{r.exports=e.x("node:readline",()=>require("node:readline"))},57764,(e,r,o)=>{r.exports=e.x("node:url",()=>require("node:url"))},27028,(e,r,o)=>{r.exports=e.x("node:zlib",()=>require("node:zlib"))},5365,(e,r,o)=>{r.exports=e.x("process",()=>require("process"))},92509,(e,r,o)=>{r.exports=e.x("url",()=>require("url"))},67259,e=>{e.v(r=>Promise.all(["server/chunks/[externals]_node_net_1yam_zj43-40b._.js","server/chunks/src_hooks_daemon-client_ts_0il_yu1zc0291._.js"].map(r=>e.l(r))).then(()=>r(4464)))}];
2
2
 
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__20xe05hm5u8_1._.js.map
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0f_4g-vazrvxv._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[48480,t=>{let r={running:!1,error:null};t.s(["w",0,function(t){r.running=!1,r.startedAt=void 0,r.error=t},"J",0,function(){return{...r}},"O",0,function(){return!r.running&&(r.running=!0,r.startedAt=Date.now(),r.error=null,!0)}])},29095,t=>{var r=t.i(2157),e=t.i(79857);function n(t,r){return!(t&&function(t){if(!Number.isInteger(t)||t<=0)return!1;try{return process.kill(t,0),!0}catch(t){return"EPERM"===t.code}}(t.pid))||r-t.startedAt>36e5}function c(t,e){let n=!1,c=()=>{if(n)return;n=!0,process.removeListener("exit",c);let u=i(t);if(!u||u.pid===e.pid)try{(0,r.unlinkSync)(t)}catch{}};return process.once("exit",c),{info:e,release:c}}function i(t){try{let e=JSON.parse((0,r.readFileSync)(t,"utf8"));if("number"!=typeof e?.pid||"number"!=typeof e?.startedAt)return null;return{pid:e.pid,startedAt:e.startedAt,source:e.source??"cli"}}catch{return null}}function u(t,e){let n=JSON.stringify(e),c=`${t}.${process.pid}.tmp`;try{(0,r.writeFileSync)(c,n,{mode:384})}catch{return!1}try{return(0,r.linkSync)(c,t),!0}catch(c){let e;if("EEXIST"===c.code)return!1;var i=t,u=n;try{return e=(0,r.openSync)(i,"wx",384),(0,r.writeSync)(e,u),!0}catch{return!1}finally{if(void 0!==e)try{(0,r.closeSync)(e)}catch{}}}finally{try{(0,r.unlinkSync)(c)}catch{}}}t.s(["R",0,function(t,o=Date.now()){let l=(0,e.D)(),s={pid:process.pid,startedAt:o,source:t};try{(0,r.mkdirSync)((0,e.I)(),{recursive:!0}),(0,r.mkdirSync)((0,e.m)(),{recursive:!0,mode:448})}catch{return{ok:!1,heldBy:null}}if(u(l,s))return{ok:!0,lock:c(l,s)};let a=i(l);if(!n(a,o))return{ok:!1,heldBy:a};try{(0,r.unlinkSync)(l)}catch{}return u(l,s)?{ok:!0,lock:c(l,s)}:{ok:!1,heldBy:i(l)}},"T",0,function(t=Date.now()){let r=i((0,e.D)());return n(r,t)?null:r}])},47756,t=>{var r=t.i(2157),e=t.i(94930),n=t.i(79857);t.s(["x",0,function(){let t=(0,n.X)();if(!(0,r.existsSync)(t))return null;try{let e=(0,r.readFileSync)(t,"utf-8"),n=JSON.parse(e);if(!n||"object"!=typeof n||"string"!=typeof n.cachedAt||!n.params||"object"!=typeof n.params||!n.result||"object"!=typeof n.result||2!==n.schemaVersion||function(t,r=30){let e=new Date(t).getTime();return!!Number.isNaN(e)||Date.now()-e>6e4*r}(n.cachedAt,10080))return null;return n}catch{return null}},"T",0,function(t,r){try{let c={schemaVersion:2,cachedAt:new Date().toISOString(),params:t,result:r};return(0,e.f)((0,n.X)(),c),!0}catch{return!1}}])}]})();
1
+ (()=>{"use strict";module.exports=[48480,t=>{let r={running:!1,error:null};t.s(["w",0,function(t){r.running=!1,r.startedAt=void 0,r.error=t},"J",0,function(){return{...r}},"O",0,function(){return!r.running&&(r.running=!0,r.startedAt=Date.now(),r.error=null,!0)}])},29095,t=>{var r=t.i(2157),e=t.i(79857);function n(t,r){return!(t&&function(t){if(!Number.isInteger(t)||t<=0)return!1;try{return process.kill(t,0),!0}catch(t){return"EPERM"===t.code}}(t.pid))||r-t.startedAt>36e5}function c(t,e){let n=!1,c=()=>{if(n)return;n=!0,process.removeListener("exit",c);let u=i(t);if(!u||u.pid===e.pid)try{(0,r.unlinkSync)(t)}catch{}};return process.once("exit",c),{info:e,release:c}}function i(t){try{let e=JSON.parse((0,r.readFileSync)(t,"utf8"));if("number"!=typeof e?.pid||"number"!=typeof e?.startedAt)return null;return{pid:e.pid,startedAt:e.startedAt,source:e.source??"cli"}}catch{return null}}function u(t,e){let n=JSON.stringify(e),c=`${t}.${process.pid}.tmp`;try{(0,r.writeFileSync)(c,n,{mode:384})}catch{return!1}try{return(0,r.linkSync)(c,t),!0}catch(c){let e;if("EEXIST"===c.code)return!1;var i=t,u=n;try{return e=(0,r.openSync)(i,"wx",384),(0,r.writeSync)(e,u),!0}catch{return!1}finally{if(void 0!==e)try{(0,r.closeSync)(e)}catch{}}}finally{try{(0,r.unlinkSync)(c)}catch{}}}t.s(["R",0,function(t,o=Date.now()){let l=(0,e.D)(),s={pid:process.pid,startedAt:o,source:t};try{(0,r.mkdirSync)((0,e.J)(),{recursive:!0}),(0,r.mkdirSync)((0,e.m)(),{recursive:!0,mode:448})}catch{return{ok:!1,heldBy:null}}if(u(l,s))return{ok:!0,lock:c(l,s)};let a=i(l);if(!n(a,o))return{ok:!1,heldBy:a};try{(0,r.unlinkSync)(l)}catch{}return u(l,s)?{ok:!0,lock:c(l,s)}:{ok:!1,heldBy:i(l)}},"T",0,function(t=Date.now()){let r=i((0,e.D)());return n(r,t)?null:r}])},47756,t=>{var r=t.i(2157),e=t.i(94930),n=t.i(79857);t.s(["x",0,function(){let t=(0,n.X)();if(!(0,r.existsSync)(t))return null;try{let e=(0,r.readFileSync)(t,"utf-8"),n=JSON.parse(e);if(!n||"object"!=typeof n||"string"!=typeof n.cachedAt||!n.params||"object"!=typeof n.params||!n.result||"object"!=typeof n.result||2!==n.schemaVersion||function(t,r=30){let e=new Date(t).getTime();return!!Number.isNaN(e)||Date.now()-e>6e4*r}(n.cachedAt,10080))return null;return n}catch{return null}},"T",0,function(t,r){try{let c={schemaVersion:2,cachedAt:new Date().toISOString(),params:t,result:r};return(0,e.f)((0,n.X)(),c),!0}catch{return!1}}])}]})();
2
2
 
3
3
  //# sourceMappingURL=_0hf5q4xzyg40j._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[[17694,e=>{var t=e.i(32127);e.s(["f",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,t.f)().telemetry.enabled}catch{return!0}}])},10659,e=>{let t;var i=e.i(2157),a=e.i(50227),r=e.i(60526),n=e.i(66680);e.i(74533);var s=e.i(79857);let o=a.default.join(r.default.homedir(),".failproofai"),l=a.default.join(o,"instance-id");function c(e){return n.default.createHmac("sha256","failproofai-telemetry-v1").update(e).digest("hex")}function d(e){let t;try{if(t=(0,s.z)(),i.default.readFileSync(t,"utf-8").trim()===e)return}catch{try{t=(0,s.z)()}catch{return}}try{i.default.mkdirSync(a.default.dirname(t),{recursive:!0});let r=`${t}.${process.pid}.tmp`;i.default.writeFileSync(r,e,{encoding:"utf-8",mode:384}),i.default.renameSync(r,t)}catch{}}e.s(["f",0,function(){if(t)return t;let e=function(){try{for(let e of(r.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let t=i.default.readFileSync(e,"utf-8").trim();if(t)return t}catch{}}catch{}}();if(e)return d(t=c(e)),t;let a=[r.default.hostname(),r.default.homedir(),r.default.platform(),r.default.arch(),r.default.cpus()[0]?.model??""].join(":");return a?d(t=c(a)):d(t=function(){try{let e=i.default.readFileSync(l,"utf-8").trim();if(e)return e}catch{}let e=n.default.randomUUID();try{i.default.mkdirSync(o,{recursive:!0}),i.default.writeFileSync(l,e,"utf-8")}catch{}return e}()),t}])},28067,e=>{e.s(["_",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","W",0,"failproofai-oss"])}],24214,(e,t,i)=>{t.exports={name:"failproofai",version:"1.0.12-beta.0",description:"Observability and enforcement for AI agent harnesses. 40 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/","hermes-plugin/","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.135.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.6.5","@types/react":"19.3.0","@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.8",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","jsonc-parser":"^3.3.1","posthog-node":"^5.50.0","smol-toml":"^1.9.1","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.1.6",undici:"7.29.1","brace-expansion":"5.0.12",sharp:"0.35.5","source-map-js":"1.2.2",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.12-beta.0","@failproofai/failproofaid-linux-arm64":"1.0.12-beta.0","@failproofai/failproofaid-darwin-x64":"1.0.12-beta.0","@failproofai/failproofaid-darwin-arm64":"1.0.12-beta.0"},failproofaidBinaries:{"linux-x64":"61710dd6261ff0deb1116e390c366c26809bf04bb2e2c16f279b7d79e1819049","linux-arm64":"5e9501522d35b32790664b4f3b1b90aa1728629f5013df94e72c2e2a11842bd2","darwin-x64":"e9d195cf30b6bc2427b7cbe89e354cc8dab7ae02e7c45a7e44a941eda84c2674","darwin-arm64":"d70ae3a3b8073ace0852a20671dba3d32f380b97ed4a01f5791a13d2fa12e63b"}}}];
1
+ module.exports=[[17694,e=>{var t=e.i(32127);e.s(["f",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,t.f)().telemetry.enabled}catch{return!0}}])},10659,e=>{let t;var i=e.i(2157),a=e.i(50227),r=e.i(60526),n=e.i(66680);e.i(74533);var s=e.i(79857);let o=a.default.join(r.default.homedir(),".failproofai"),l=a.default.join(o,"instance-id");function d(e){return n.default.createHmac("sha256","failproofai-telemetry-v1").update(e).digest("hex")}function c(e){let t;try{if(t=(0,s.z)(),i.default.readFileSync(t,"utf-8").trim()===e)return}catch{try{t=(0,s.z)()}catch{return}}try{i.default.mkdirSync(a.default.dirname(t),{recursive:!0});let r=`${t}.${process.pid}.tmp`;i.default.writeFileSync(r,e,{encoding:"utf-8",mode:384}),i.default.renameSync(r,t)}catch{}}e.s(["f",0,function(){if(t)return t;let e=function(){try{for(let e of(r.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let t=i.default.readFileSync(e,"utf-8").trim();if(t)return t}catch{}}catch{}}();if(e)return c(t=d(e)),t;let a=[r.default.hostname(),r.default.homedir(),r.default.platform(),r.default.arch(),r.default.cpus()[0]?.model??""].join(":");return a?c(t=d(a)):c(t=function(){try{let e=i.default.readFileSync(l,"utf-8").trim();if(e)return e}catch{}let e=n.default.randomUUID();try{i.default.mkdirSync(o,{recursive:!0}),i.default.writeFileSync(l,e,"utf-8")}catch{}return e}()),t}])},28067,e=>{e.s(["_",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","W",0,"failproofai-oss"])}],24214,(e,t,i)=>{t.exports={name:"failproofai",version:"1.0.12-beta.2",description:"Observability and enforcement for AI agent harnesses. 40 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/","hermes-plugin/","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.135.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.6.5","@types/react":"19.3.0","@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.8",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","jsonc-parser":"^3.3.1","posthog-node":"^5.50.0","smol-toml":"^1.9.1","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.1.6",undici:"7.30.1",zod:"4.6.6","brace-expansion":"5.0.12",sharp:"0.35.5","source-map-js":"1.2.2",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.12-beta.2","@failproofai/failproofaid-linux-arm64":"1.0.12-beta.2","@failproofai/failproofaid-darwin-x64":"1.0.12-beta.2","@failproofai/failproofaid-darwin-arm64":"1.0.12-beta.2"},failproofaidBinaries:{"linux-x64":"4c09117fdb80d87792d1d2b77d9359cdbd0c522b5a6222ab7b927659130ddf54","linux-arm64":"dd390d76561267fc519ceb96fb90be340044e2f564bef36a44e284f227d93f29","darwin-x64":"62381f7ffe21d02289c36c4b205166b2867dbde986444d1ea185241b94fd04ef","darwin-arm64":"9ad798817d3048a5126e80dc71883538d37c1b6b6443e9c19389dc2583c8f675"}}}];
2
2
 
3
3
  //# sourceMappingURL=_0tovk6q0miud6._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[[17694,e=>{var t=e.i(32127);e.s(["f",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,t.f)().telemetry.enabled}catch{return!0}}])},10659,e=>{let t;var i=e.i(2157),a=e.i(50227),r=e.i(60526),n=e.i(66680);e.i(74533);var s=e.i(79857);let o=a.default.join(r.default.homedir(),".failproofai"),l=a.default.join(o,"instance-id");function c(e){return n.default.createHmac("sha256","failproofai-telemetry-v1").update(e).digest("hex")}function d(e){let t;try{if(t=(0,s.z)(),i.default.readFileSync(t,"utf-8").trim()===e)return}catch{try{t=(0,s.z)()}catch{return}}try{i.default.mkdirSync(a.default.dirname(t),{recursive:!0});let r=`${t}.${process.pid}.tmp`;i.default.writeFileSync(r,e,{encoding:"utf-8",mode:384}),i.default.renameSync(r,t)}catch{}}e.s(["f",0,function(){if(t)return t;let e=function(){try{for(let e of(r.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let t=i.default.readFileSync(e,"utf-8").trim();if(t)return t}catch{}}catch{}}();if(e)return d(t=c(e)),t;let a=[r.default.hostname(),r.default.homedir(),r.default.platform(),r.default.arch(),r.default.cpus()[0]?.model??""].join(":");return a?d(t=c(a)):d(t=function(){try{let e=i.default.readFileSync(l,"utf-8").trim();if(e)return e}catch{}let e=n.default.randomUUID();try{i.default.mkdirSync(o,{recursive:!0}),i.default.writeFileSync(l,e,"utf-8")}catch{}return e}()),t}])},28067,e=>{e.s(["_",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","W",0,"failproofai-oss"])}],24214,(e,t,i)=>{t.exports={name:"failproofai",version:"1.0.12-beta.0",description:"Observability and enforcement for AI agent harnesses. 40 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/","hermes-plugin/","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.135.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.6.5","@types/react":"19.3.0","@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.8",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","jsonc-parser":"^3.3.1","posthog-node":"^5.50.0","smol-toml":"^1.9.1","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.1.6",undici:"7.29.1","brace-expansion":"5.0.12",sharp:"0.35.5","source-map-js":"1.2.2",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.12-beta.0","@failproofai/failproofaid-linux-arm64":"1.0.12-beta.0","@failproofai/failproofaid-darwin-x64":"1.0.12-beta.0","@failproofai/failproofaid-darwin-arm64":"1.0.12-beta.0"},failproofaidBinaries:{"linux-x64":"61710dd6261ff0deb1116e390c366c26809bf04bb2e2c16f279b7d79e1819049","linux-arm64":"5e9501522d35b32790664b4f3b1b90aa1728629f5013df94e72c2e2a11842bd2","darwin-x64":"e9d195cf30b6bc2427b7cbe89e354cc8dab7ae02e7c45a7e44a941eda84c2674","darwin-arm64":"d70ae3a3b8073ace0852a20671dba3d32f380b97ed4a01f5791a13d2fa12e63b"}}}];
1
+ module.exports=[[17694,e=>{var t=e.i(32127);e.s(["f",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,t.f)().telemetry.enabled}catch{return!0}}])},10659,e=>{let t;var i=e.i(2157),a=e.i(50227),r=e.i(60526),n=e.i(66680);e.i(74533);var s=e.i(79857);let o=a.default.join(r.default.homedir(),".failproofai"),l=a.default.join(o,"instance-id");function d(e){return n.default.createHmac("sha256","failproofai-telemetry-v1").update(e).digest("hex")}function c(e){let t;try{if(t=(0,s.z)(),i.default.readFileSync(t,"utf-8").trim()===e)return}catch{try{t=(0,s.z)()}catch{return}}try{i.default.mkdirSync(a.default.dirname(t),{recursive:!0});let r=`${t}.${process.pid}.tmp`;i.default.writeFileSync(r,e,{encoding:"utf-8",mode:384}),i.default.renameSync(r,t)}catch{}}e.s(["f",0,function(){if(t)return t;let e=function(){try{for(let e of(r.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let t=i.default.readFileSync(e,"utf-8").trim();if(t)return t}catch{}}catch{}}();if(e)return c(t=d(e)),t;let a=[r.default.hostname(),r.default.homedir(),r.default.platform(),r.default.arch(),r.default.cpus()[0]?.model??""].join(":");return a?c(t=d(a)):c(t=function(){try{let e=i.default.readFileSync(l,"utf-8").trim();if(e)return e}catch{}let e=n.default.randomUUID();try{i.default.mkdirSync(o,{recursive:!0}),i.default.writeFileSync(l,e,"utf-8")}catch{}return e}()),t}])},28067,e=>{e.s(["_",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","W",0,"failproofai-oss"])}],24214,(e,t,i)=>{t.exports={name:"failproofai",version:"1.0.12-beta.2",description:"Observability and enforcement for AI agent harnesses. 40 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/","hermes-plugin/","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.135.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.6.5","@types/react":"19.3.0","@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.8",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","jsonc-parser":"^3.3.1","posthog-node":"^5.50.0","smol-toml":"^1.9.1","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.1.6",undici:"7.30.1",zod:"4.6.6","brace-expansion":"5.0.12",sharp:"0.35.5","source-map-js":"1.2.2",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.12-beta.2","@failproofai/failproofaid-linux-arm64":"1.0.12-beta.2","@failproofai/failproofaid-darwin-x64":"1.0.12-beta.2","@failproofai/failproofaid-darwin-arm64":"1.0.12-beta.2"},failproofaidBinaries:{"linux-x64":"4c09117fdb80d87792d1d2b77d9359cdbd0c522b5a6222ab7b927659130ddf54","linux-arm64":"dd390d76561267fc519ceb96fb90be340044e2f564bef36a44e284f227d93f29","darwin-x64":"62381f7ffe21d02289c36c4b205166b2867dbde986444d1ea185241b94fd04ef","darwin-arm64":"9ad798817d3048a5126e80dc71883538d37c1b6b6443e9c19389dc2583c8f675"}}}];
2
2
 
3
3
  //# sourceMappingURL=_0trp3ycqv17cl._.js.map
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[48480,t=>{let r={running:!1,error:null};t.s(["w",0,function(t){r.running=!1,r.startedAt=void 0,r.error=t},"J",0,function(){return{...r}},"O",0,function(){return!r.running&&(r.running=!0,r.startedAt=Date.now(),r.error=null,!0)}])},29095,t=>{var r=t.i(2157),e=t.i(79857);function n(t,r){return!(t&&function(t){if(!Number.isInteger(t)||t<=0)return!1;try{return process.kill(t,0),!0}catch(t){return"EPERM"===t.code}}(t.pid))||r-t.startedAt>36e5}function c(t,e){let n=!1,c=()=>{if(n)return;n=!0,process.removeListener("exit",c);let u=i(t);if(!u||u.pid===e.pid)try{(0,r.unlinkSync)(t)}catch{}};return process.once("exit",c),{info:e,release:c}}function i(t){try{let e=JSON.parse((0,r.readFileSync)(t,"utf8"));if("number"!=typeof e?.pid||"number"!=typeof e?.startedAt)return null;return{pid:e.pid,startedAt:e.startedAt,source:e.source??"cli"}}catch{return null}}function u(t,e){let n=JSON.stringify(e),c=`${t}.${process.pid}.tmp`;try{(0,r.writeFileSync)(c,n,{mode:384})}catch{return!1}try{return(0,r.linkSync)(c,t),!0}catch(c){let e;if("EEXIST"===c.code)return!1;var i=t,u=n;try{return e=(0,r.openSync)(i,"wx",384),(0,r.writeSync)(e,u),!0}catch{return!1}finally{if(void 0!==e)try{(0,r.closeSync)(e)}catch{}}}finally{try{(0,r.unlinkSync)(c)}catch{}}}t.s(["R",0,function(t,o=Date.now()){let l=(0,e.D)(),s={pid:process.pid,startedAt:o,source:t};try{(0,r.mkdirSync)((0,e.I)(),{recursive:!0}),(0,r.mkdirSync)((0,e.m)(),{recursive:!0,mode:448})}catch{return{ok:!1,heldBy:null}}if(u(l,s))return{ok:!0,lock:c(l,s)};let a=i(l);if(!n(a,o))return{ok:!1,heldBy:a};try{(0,r.unlinkSync)(l)}catch{}return u(l,s)?{ok:!0,lock:c(l,s)}:{ok:!1,heldBy:i(l)}},"T",0,function(t=Date.now()){let r=i((0,e.D)());return n(r,t)?null:r}])},47756,t=>{var r=t.i(2157),e=t.i(94930),n=t.i(79857);t.s(["x",0,function(){let t=(0,n.X)();if(!(0,r.existsSync)(t))return null;try{let e=(0,r.readFileSync)(t,"utf-8"),n=JSON.parse(e);if(!n||"object"!=typeof n||"string"!=typeof n.cachedAt||!n.params||"object"!=typeof n.params||!n.result||"object"!=typeof n.result||2!==n.schemaVersion||function(t,r=30){let e=new Date(t).getTime();return!!Number.isNaN(e)||Date.now()-e>6e4*r}(n.cachedAt,10080))return null;return n}catch{return null}},"T",0,function(t,r){try{let c={schemaVersion:2,cachedAt:new Date().toISOString(),params:t,result:r};return(0,e.f)((0,n.X)(),c),!0}catch{return!1}}])}]})();
1
+ (()=>{"use strict";module.exports=[48480,t=>{let r={running:!1,error:null};t.s(["w",0,function(t){r.running=!1,r.startedAt=void 0,r.error=t},"J",0,function(){return{...r}},"O",0,function(){return!r.running&&(r.running=!0,r.startedAt=Date.now(),r.error=null,!0)}])},29095,t=>{var r=t.i(2157),e=t.i(79857);function n(t,r){return!(t&&function(t){if(!Number.isInteger(t)||t<=0)return!1;try{return process.kill(t,0),!0}catch(t){return"EPERM"===t.code}}(t.pid))||r-t.startedAt>36e5}function c(t,e){let n=!1,c=()=>{if(n)return;n=!0,process.removeListener("exit",c);let u=i(t);if(!u||u.pid===e.pid)try{(0,r.unlinkSync)(t)}catch{}};return process.once("exit",c),{info:e,release:c}}function i(t){try{let e=JSON.parse((0,r.readFileSync)(t,"utf8"));if("number"!=typeof e?.pid||"number"!=typeof e?.startedAt)return null;return{pid:e.pid,startedAt:e.startedAt,source:e.source??"cli"}}catch{return null}}function u(t,e){let n=JSON.stringify(e),c=`${t}.${process.pid}.tmp`;try{(0,r.writeFileSync)(c,n,{mode:384})}catch{return!1}try{return(0,r.linkSync)(c,t),!0}catch(c){let e;if("EEXIST"===c.code)return!1;var i=t,u=n;try{return e=(0,r.openSync)(i,"wx",384),(0,r.writeSync)(e,u),!0}catch{return!1}finally{if(void 0!==e)try{(0,r.closeSync)(e)}catch{}}}finally{try{(0,r.unlinkSync)(c)}catch{}}}t.s(["R",0,function(t,o=Date.now()){let l=(0,e.D)(),s={pid:process.pid,startedAt:o,source:t};try{(0,r.mkdirSync)((0,e.J)(),{recursive:!0}),(0,r.mkdirSync)((0,e.m)(),{recursive:!0,mode:448})}catch{return{ok:!1,heldBy:null}}if(u(l,s))return{ok:!0,lock:c(l,s)};let a=i(l);if(!n(a,o))return{ok:!1,heldBy:a};try{(0,r.unlinkSync)(l)}catch{}return u(l,s)?{ok:!0,lock:c(l,s)}:{ok:!1,heldBy:i(l)}},"T",0,function(t=Date.now()){let r=i((0,e.D)());return n(r,t)?null:r}])},47756,t=>{var r=t.i(2157),e=t.i(94930),n=t.i(79857);t.s(["x",0,function(){let t=(0,n.X)();if(!(0,r.existsSync)(t))return null;try{let e=(0,r.readFileSync)(t,"utf-8"),n=JSON.parse(e);if(!n||"object"!=typeof n||"string"!=typeof n.cachedAt||!n.params||"object"!=typeof n.params||!n.result||"object"!=typeof n.result||2!==n.schemaVersion||function(t,r=30){let e=new Date(t).getTime();return!!Number.isNaN(e)||Date.now()-e>6e4*r}(n.cachedAt,10080))return null;return n}catch{return null}},"T",0,function(t,r){try{let c={schemaVersion:2,cachedAt:new Date().toISOString(),params:t,result:r};return(0,e.f)((0,n.X)(),c),!0}catch{return!1}}])}]})();
2
2
 
3
3
  //# sourceMappingURL=_19011-u44143j._.js.map
@@ -1,4 +1,4 @@
1
- (()=>{"use strict";module.exports=[97610,e=>{var t=e.i(89171),i=e.i(71809),n=e.i(73634),s=e.i(73136),r=e.i(52306),o=e.i(38791),a=e.i(38441),c=e.i(12714),l=e.i(2157),d=e.i(50227),u=e.i(81580);let p=/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i;var f=e.i(54214);function m(e,t){let i=[];for(let s of e)if("assistant"===s.type)for(let e of s.message.content){var n;let r;if("tool_use"!==e.type)continue;let o=e.name,c=(n=t.cli,(o?"copilot"===n?a.s[o]??o:"cursor"===n?a.D[o]??o:"codex"===n?a.j[o]??o:"opencode"===n?a.A[o]??o:"pi"===n?a.S[o]??o:"hermes"===n?a.C[o]??o:"openclaw"===n?a.e[o]??o:"factory"===n?a.r[o]??o:"devin"===n?a.u[o]??o:"antigravity"===n?a.I[o]??o:"goose"===n?a.K[o]??o:o:o)??o),l=function(e,t,i){let n;if(!e||!t||"object"!=typeof t||Array.isArray(t)||("copilot"===i?n=a.U[e]:"opencode"===i?n=a.k[e]:"pi"===i?n=a.V[e]:"hermes"===i?n=a.z[e]:"openclaw"===i?n=a.v[e]:"antigravity"===i?n=a.H[e]:"goose"===i&&(n=a.M[e]),!n))return t;let s={};for(let[e,i]of Object.entries(t))s[n[e]??e]=i;return s}(c,e.input,t.cli);e.result?.content&&(r=function(e){let t=Buffer.from(e,"utf-8");if(t.byteLength<=65536)return e;let i=65536;for(;i>0&&(192&t[i])==128;)i--;return t.subarray(0,i).toString("utf-8")}(e.result.content)),i.push({cli:t.cli,sessionId:t.sessionId,transcriptPath:t.transcriptPath,cwd:t.cwd,timestamp:s.timestamp,toolName:c,rawToolName:o,toolInput:l??{},toolResultText:r})}return i}async function y(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of function(){let e,t=(0,u.n)();try{e=(0,l.readdirSync)(t,{withFileTypes:!0})}catch{return[]}return e.filter(e=>e.isDirectory()).map(e=>({name:e.name,cwd:(0,u.b)(e.name),path:(0,d.join)(t,e.name)}))}()){let s;if(!t||t.has(e.cwd)){try{s=function(e){let t,i=[];try{t=(0,l.readdirSync)(e.path,{withFileTypes:!0})}catch{return i}for(let n of t)if(n.isFile()&&n.name.endsWith(".jsonl")){let t=n.name.slice(0,-6);if(!p.test(t))continue;let s=(0,d.join)(e.path,n.name);try{let n=(0,l.statSync)(s);i.push({projectName:e.name,cwd:e.cwd,sessionId:t,transcriptPath:s,mtimeMs:n.mtimeMs,sizeBytes:n.size,isSubagent:!1})}catch{}}else if(n.isDirectory()&&p.test(n.name)){let t,s=(0,d.join)(e.path,n.name,"subagents");if(!(0,l.existsSync)(s))continue;try{t=(0,l.readdirSync)(s,{withFileTypes:!0})}catch{continue}for(let n of t){if(!n.isFile()||!n.name.endsWith(".jsonl"))continue;let t=n.name.slice(0,-6),r=(0,d.join)(s,n.name);try{let n=(0,l.statSync)(r);i.push({projectName:e.name,cwd:e.cwd,sessionId:t,transcriptPath:r,mtimeMs:n.mtimeMs,sizeBytes:n.size,isSubagent:!0})}catch{}}}return i}(e)}catch{continue}for(let t of s)t.mtimeMs<i||n.push({cli:"claude",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.transcriptPath,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes})}}return n}async function h(e){let t,i;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}try{i=await (0,f.j)(t,"session")}catch{return[]}let n="";for(let e of t.split("\n",50))if(e.trim())try{let t=JSON.parse(e);if("string"==typeof t.cwd&&t.cwd.length>0){n=t.cwd;break}}catch{}return m(i,{cli:"claude",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:n})}async function g(e,t){let i,n;if(!Number.isFinite(t)||t<0)return null;let s=null;try{s=await (0,c.open)(e.transcriptPath,"r");let{size:n}=await s.stat();if(t>n)return null;if(t===n)return{events:[],bytesConsumed:t};let r=Buffer.alloc(n-t);await s.read(r,0,r.length,t),i=r.toString("utf-8")}catch{return null}finally{if(s)try{await s.close()}catch{}}let r=i.lastIndexOf("\n"),o=-1===r?"":i.slice(0,r+1),a=i.slice(r+1),l=a.trim().length>0&&(()=>{try{return JSON.parse(a),!0}catch{return!1}})()?o+a:o;if(0===l.length)return{events:[],bytesConsumed:t};let d=t+Buffer.byteLength(l,"utf-8");try{n=await (0,f.j)(l,"session")}catch{return null}let u="";for(let e of l.split("\n",50))if(e.trim())try{let t=JSON.parse(e);if("string"==typeof t.cwd&&t.cwd.length>0){u=t.cwd;break}}catch{}return{events:m(n,{cli:"claude",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:u}),bytesConsumed:d,cwd:u||void 0}}var w=e.i(36203),N=e.i(57232);async function v(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,w.getCodexProjects)())){let{cwd:s,sessions:r}=await (0,w.getCodexSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"codex",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function S(e){let t=await (0,N.getCodexSessionLog)(e.sessionId);return t?m(t.entries,{cli:"codex",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var b=e.i(55851),x=e.i(78166);async function j(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,b.getCopilotProjects)())){let{cwd:s,sessions:r}=await (0,b.getCopilotSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"copilot",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function O(e){let t=await (0,x.getCopilotSessionLog)(e.sessionId);return t?m(t.entries,{cli:"copilot",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var I=e.i(46413),C=e.i(72094);async function $(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,I.getCursorProjects)())){let{cwd:s,sessions:r}=await (0,I.getCursorSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"cursor",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function T(e){let t=await (0,C.getCursorSessionLog)(e.sessionId);return t?m(t.entries,{cli:"cursor",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var k=e.i(35435),P=e.i(99440);async function M(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,k.getOpenCodeProjects)())){let{cwd:s,sessions:r}=await (0,k.getOpenCodeSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();!(s<i)&&t.sessionId&&n.push({cli:"opencode",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:0})}}return n}async function R(e){let t=await (0,P.getOpenCodeSessionLog)(e.sessionId);return t?m(t.entries,{cli:"opencode",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var B=e.i(19791),E=e.i(85116);async function A(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,B.getPiProjects)())){let{cwd:s,sessions:r}=await (0,B.getPiSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"pi",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function D(e){let t=await (0,E.getPiSessionLog)(e.sessionId);return t?m(t.entries,{cli:"pi",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var _=e.i(64828),U=e.i(28898),J=e.i(3605);async function z(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,_.getHermesSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!(e.messageCount<=0)||e.hasMessages)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"hermes",projectName:e.cwd?(0,u.f)(e.cwd):e.source?(0,U.S)(e.profile,e.source):`hermes:${e.profile}`,sessionId:e.sessionId,transcriptPath:`hermes://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:e.messageCount});return s}async function W(e){let t=await (0,J.getHermesSessionLog)(e.sessionId);return t?m(t.entries,{cli:"hermes",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var q=e.i(90624),Y=e.i(64199);async function F(e={}){if(e.projects&&e.projects.length>0)return[];let t=e.sinceMs??0,i=[];for(let e of(await (0,q.getOpenClawSessions)()))e.mtimeMs<t||i.push({cli:"openclaw",projectName:(0,q.openClawProjectPath)(e.agentId,e.channel),sessionId:e.sessionId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});return i}async function L(e){let t=await (0,Y.getOpenClawSessionLog)(e.sessionId);return t?m(t.entries,{cli:"openclaw",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var H=e.i(28246);async function Q(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(0,H.listFactoryTranscripts)())!(e.mtimeMs<i)&&(!t||t.has(e.cwd))&&n.push({cli:"factory",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});return n}async function V(e){let t;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}let i=(0,f.V)(t,"session"),n=(0,H.factoryLinesToLogEntries)(i,"session"),s="";for(let e of i)if(e&&"object"==typeof e&&"session_start"===e.type){let t=e.cwd;if("string"==typeof t&&t.length>0){s=t;break}}return m(n,{cli:"factory",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:s})}var G=e.i(93114),Z=e.i(30441);async function K(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[],s=await (0,Z.getAntigravityIndex)();for(let e of(0,G.listAntigravityTranscripts)()){if(e.mtimeMs<i)continue;let r=s.get(e.conversationId)?.cwd;(!t||r&&t.has(r))&&n.push({cli:"antigravity",projectName:r?(0,u.f)(r):"antigravity",sessionId:e.conversationId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes})}return n}async function X(e){let t;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}let i=(0,f.V)(t,"session"),n=(0,G.antigravityLinesToLogEntries)(i,"session"),s="";for(let e of i){if(!e||"object"!=typeof e)continue;let t=e.tool_calls;if(Array.isArray(t)){for(let e of t){let t=e&&"object"==typeof e?e.args:void 0,i=t&&"object"==typeof t?t.Cwd:void 0;if("string"==typeof i&&i.length>0){s=i;break}}if(s)break}}return m(n,{cli:"antigravity",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:s})}var ee=e.i(79364),et=e.i(40375);async function ei(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,ee.getDevinSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"devin",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:`devin-db://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:0});return s}async function en(e){let t=await (0,et.getDevinSessionLog)(e.sessionId);return t?m(t.entries,{cli:"devin",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var es=e.i(69164),er=e.i(36618);let eo={claude:{cli:"claude",listTranscripts:y,streamEvents:h,streamEventsFrom:g},codex:{cli:"codex",listTranscripts:v,streamEvents:S},copilot:{cli:"copilot",listTranscripts:j,streamEvents:O},cursor:{cli:"cursor",listTranscripts:$,streamEvents:T},opencode:{cli:"opencode",listTranscripts:M,streamEvents:R},pi:{cli:"pi",listTranscripts:A,streamEvents:D},hermes:{cli:"hermes",listTranscripts:z,streamEvents:W},openclaw:{cli:"openclaw",listTranscripts:F,streamEvents:L},factory:{cli:"factory",listTranscripts:Q,streamEvents:V},devin:{cli:"devin",listTranscripts:ei,streamEvents:en},antigravity:{cli:"antigravity",listTranscripts:K,streamEvents:X},goose:{cli:"goose",listTranscripts:async function(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,es.getGooseSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"goose",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:`goose-db://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:0});return s},streamEvents:async function(e){let t=await (0,er.getGooseSessionLog)(e.sessionId);return t?m(t.entries,{cli:"goose",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}}},ea=/\.(?:ts|tsx|js|jsx|mjs|cjs|py|go|rs|java|kt|swift|rb|php|c|h|cc|cpp|hpp|cs|scala|sh|bash|zsh|json|yaml|yml|toml|md|txt|sql|html|css|scss|sass)$/i,ec=["/","/home","/usr","/etc","/var","/opt","/Users"],el="rereadAfterEdit",ed=[{name:"redundant-cd-cwd",description:"Bash commands prefixed with `cd <cwd> && …` even though commands already run in cwd.",category:"Wasteful",severity:"info",displayTitle:"Prepended cd <cwd> before commands",impact:"Pure waste — your agent's shell already runs in `cwd`.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t||!e.cwd)return null;let i=t.trimStart(),n=/^cd\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s*&&\s*([\s\S]+)$/.exec(i);if(!n)return null;let s=(n[1]??n[2]??n[3]??"").replace(/\/+$/,"");if(s!==e.cwd.replace(/\/+$/,""))return null;let r=n[4].trim();return{example:`cd ${s} && ${r}`}}},{name:"prefer-edit-over-read-cat",description:"Bash `cat`/`head`/`tail`/`less`/`more` on a single source file — use Read.",category:"Wasteful",severity:"info",displayTitle:"Used `cat`/`head`/`tail` on a source file",impact:"Burns tokens; the Read tool returns content directly without going through Bash output.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim();if(/[|<>;&`$()]/.test(i))return null;let n=/^(cat|head|tail|less|more)\s+(?:-\S+\s+)*(?:"([^"]+)"|'([^']+)'|(\S+))\s*$/.exec(i);if(!n)return null;let s=n[2]??n[3]??n[4]??"";return!s||/(?:^|\/)\.env(?:\..+)?$/.test(s)||!ea.test(s)?null:{example:i}}},{name:"prefer-edit-over-sed-awk",description:"Bash `sed -i`/`awk` in-place edits — use Edit.",category:"Wasteful",severity:"info",displayTitle:"Used sed -i or awk for an in-place edit",impact:"Edit tool is safer and produces a diff the agent can verify.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim();return/(?:^|\s|;|&&|\|\|)sed\b[^|]*\s-i(?=\b|['"])/.test(i)||/(?:^|\s|;|&&|\|\|)awk\b[^|]*\s>\s*\S+/.test(i)&&!/\|/.test(i)?{example:i}:null}},{name:"prefer-write-over-heredoc",description:"Bash heredoc / `echo > file` writing multi-line content — use Write.",category:"Wasteful",severity:"info",displayTitle:"Used heredoc / `echo > file` to write a multi-line file",impact:"Write tool handles escaping and is verifiable.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;return"string"!=typeof t?null:/<<-?\s*['"]?[A-Za-z_][A-Za-z0-9_]*['"]?\s*>\s*\S/.test(t)||/(?:^|\s|;|&&|\|\|)(?:echo|printf)\s+["'][^"']*\n[^"']*["']\s*>\s*\S/.test(t)?{example:t.replace(/\s+/g," ").trim().slice(0,160)}:null}},{name:"sleep-polling-loop",description:"Bash long `sleep` or while-sleep polling loops.",category:"Wasteful",severity:"info",displayTitle:"Used a long sleep or while-sleep polling loop",impact:"Burns wall-clock; better to wait for an explicit signal.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;if(/\bwhile\b[\s\S]*?\bsleep\b[\s\S]*?\bdone\b/.test(t))return{example:t.replace(/\s+/g," ").trim().slice(0,160)};let i=/\bsleep\s+(\d+(?:\.\d+)?)(m|h|d)?\b/.exec(t);if(i){let e=parseFloat(i[1]),n=i[2]??"s";if(("m"===n?60*e:"h"===n?3600*e:"d"===n?86400*e:e)>=30)return{example:t.replace(/\s+/g," ").trim().slice(0,160)}}return null}},{name:"find-from-root",description:"Bash `find` against `/`, `/home`, `/usr`, etc. — scope to cwd instead.",category:"Risky",severity:"warn",displayTitle:"Ran find from /, /home, /usr, etc.",impact:"Filesystem-wide finds exhaust resources and rarely return useful results.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim(),n=/(?:^|[\s;|&])find\s+(?:-\S+\s+)*("[^"]+"|'[^']+'|\S+)/.exec(i);if(!n)return null;let s=n[1].replace(/^["']|["']$/g,"").replace(/\/+$/,"")||"/";return ec.includes(s)?{example:i.slice(0,160)}:null}},{name:"git-commit-no-verify",description:"git commit invoked with --no-verify / -n, skipping hooks.",category:"Risky",severity:"warn",displayTitle:"Committed with --no-verify",impact:"Skips pre-commit hooks that exist to catch broken or unsafe code.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;return"string"!=typeof t?null:/\bgit\s+commit\b/.test(t)&&(/\s--no-verify\b/.test(t)||/\s-n\b/.test(t))?{example:t.replace(/\s+/g," ").trim().slice(0,160)}:null}},{name:"reread-after-edit",description:"Read of a file that was just Edit'd or Write'n in the same session.",category:"Wasteful",severity:"info",displayTitle:"Re-read a file it just edited",impact:"Edit/Write already returned the updated content; the second Read is wasted tokens.",detect(e,t){let i,n=((i=t[el])||(i={countdown:new Map},t[el]=i),i),s=e.toolInput.file_path,r="string"==typeof s?s:null;for(let[e,t]of n.countdown)t<=1?n.countdown.delete(e):n.countdown.set(e,t-1);return r?"Edit"===e.toolName||"Write"===e.toolName?(n.countdown.set(r,5),null):"Read"===e.toolName&&n.countdown.has(r)?(n.countdown.delete(r),{example:`Read ${r} immediately after Edit/Write`}):null:null}}],eu=["cowboy","explorer","ghost","optimist","hammer","architect"],ep={explorer:.38,architect:.33,hammer:.11,cowboy:.11,optimist:.07,ghost:.01,precision:0,goldfish:0},ef={optimist:0,cowboy:0,explorer:0,goldfish:0,architect:0,precision:0,hammer:0,ghost:0};for(let e of eu)ef[e]=Math.max(ep[e],.05);var em=e.i(66680),ey=e.i(79857);let eh=null,eg=null;function ew(){if(eh)return eh;let e=n.H.map(e=>`${e.name}|${e.fn.toString()}`).sort().join("\n");return eh=(0,em.createHash)("sha1").update(e).digest("hex").slice(0,16)}function eN(){if(eg)return eg;let e=ed.map(e=>`${e.name}|${e.detect.toString()}`).sort().join("\n");return eg=(0,em.createHash)("sha1").update(e).digest("hex").slice(0,16)}function ev(e){let t=(0,ey.r)(),i=(0,em.createHash)("sha1").update(e).digest("hex");return(0,d.join)(t,`${i}.json`)}function eS(e,t){if(t<=0)return null;let i=null;try{i=(0,l.openSync)(e,"r");let n=Buffer.alloc(Math.min(4096,t));(0,l.readSync)(i,n,0,n.length,0);let s=Math.min(4096,t),r=Buffer.alloc(s);return(0,l.readSync)(i,r,0,s,t-s),(0,em.createHash)("sha1").update(String(t)).update(n).update(r).digest("hex").slice(0,32)}catch{return null}finally{if(null!==i)try{(0,l.closeSync)(i)}catch{}}}var eb=e.i(71194);let ex="request-cut",ej=/^[A-Za-z0-9._:/@~+-]{1,200}$/;function eO(e){let t=e.find(e=>"deny"===e.decision);if(t)return{decision:"deny",entries:[{policyName:t.policyName,reason:t.reason??""}]};let i=e.filter(e=>"instruct"===e.decision);return i.length>0?{decision:"instruct",entries:i.map(e=>({policyName:e.policyName,reason:e.reason??""}))}:{decision:"allow",entries:e.filter(e=>"allow"===e.decision&&e.reason).map(e=>({policyName:e.policyName,reason:e.reason}))}}let eI={allow:0,instruct:1,deny:2};var eC=e.i(97348),e$=e.i(49335),eT=e.i(10659);function ek(e,t){let i=e.trim(),n="string"==typeof t?t.trim():"";return n?i?`${i}. ${n}`:n:i}function eP(e,t){if(!e?.policyParams)return;let i=e.policyParams[t];if(i)return i;let n=function(e){if(!e.startsWith("pack/"))return null;let t=e.slice(5),i=t.lastIndexOf("/");if(i<=0)return null;let n=t.slice(0,i),s=n.lastIndexOf("@");return{packId:s>0?n.slice(0,s):n,name:t.slice(i+1)}}(t);if(n)return function(e,t,i){if(!e)return;let n=e[`pack/${t}/${i}`];return n||(t.toLowerCase()===eb.w.toLowerCase()?e[i]:void 0)}(e.policyParams,n.packId,n.name);let s=`${o.l}/`;if(t.startsWith(s))return e.policyParams[t.slice(s.length)]}let eM={authority:"hard",reviewedBy:[]};async function eR(e,t,i,n,s){let r,a,c=t.tool_name,l=(0,o.w)(e,c);if((0,eC.Q)(`evaluating ${l.length} policies for ${e}`),!s){if(0===l.length)return{exitCode:0,stdout:"",stderr:"",policyName:null,reason:null,decision:"allow"};let{verdicts:s}=await eB(e,t,i,n,l);return eE(e,i,c,eO(s))}try{r=await eB(e,t,i,n,l,s)}catch(e){throw s.abort(),e}r.hardDenied?(s.abort(),a={kind:"not-consulted"}):(s.releaseRegistry?.(),a=await s.review);let d=function(e,t,i){let n=eO(e);if("not-consulted"===t.kind)return{final:n,cleared:[],decidedByJev:!1,activity:{evaluator:"jev",jevMode:i}};if("fallback"===t.kind)return{final:n,cleared:[],decidedByJev:!1,activity:{evaluator:"jev-fallback",jevFallbackReason:t.reason,...null!==t.latencyMs?{jevLatencyMs:t.latencyMs}:{},...t.model?{jevModel:t.model}:{},jevMode:i}};let s=t.injectionAsked&&!t.injected&&!t.requestCut,r=new Set(t.asked),o=new Set(t.notDenied),a=s&&!t.unclearableWarned?e.filter(e=>"allow"!==e.decision&&"reviewable"===e.authority&&0!==e.reviewedBy.length&&e.reviewedBy.every(e=>r.has(e)&&o.has(e))).map(e=>e.policyName):[],c={policyName:t.policyName,reason:t.reason??`Flagged by semantic review (${t.policyName})`},l=function(e,t,i,n){let s=new Set(t),r=e.filter(e=>!s.has(e.policyName)),o=r.find(e=>"deny"===e.decision);if(o)return{final:{decision:"deny",entries:[{policyName:o.policyName,reason:o.reason??""}]},decidedByJev:!1};if("deny"===i)return{final:{decision:"deny",entries:[n]},decidedByJev:!0};let a=r.filter(e=>"instruct"===e.decision).map(e=>({policyName:e.policyName,reason:e.reason??""}));return("instruct"===i&&a.push(n),a.length>0)?{final:{decision:"instruct",entries:a},decidedByJev:a[0]===n}:{final:eO(r),decidedByJev:!1}}(e,a,t.decision,c),d={evaluator:t.requestCut?"jev-fallback":"jev",...t.requestCut?{jevFallbackReason:ex}:{},jevDecision:t.decision,...a.length>0&&eI[l.final.decision]<eI[n.decision]?{jevCleared:a}:{},...null!==t.latencyMs?{jevLatencyMs:t.latencyMs}:{},...t.model?{jevModel:t.model}:{},jevMode:i};if("observe"===i){let e="deny"===t.decision||"instruct"===t.decision?{policyName:c.policyName,decision:t.decision,reason:c.reason,version:t.model&&ej.test(t.model)?t.model:"jev"}:void 0;return{final:n,cleared:a,decidedByJev:!1,activity:d,...e?{observeVerdict:e}:{}}}return{...l,cleared:a,activity:d}}(r.verdicts,a,s.mode);return d.cleared.length>0&&(0,eC.Q)(`jev ${"observe"===s.mode?"would clear":"cleared"}: ${d.cleared.join(", ")}`),"jev-fallback"===d.activity.evaluator&&(0,eC.Q)(d.activity.jevFallbackReason===ex?"jev could not be shown the whole call; it cleared nothing, and the call was not allowed on a partial read":`jev unavailable (${d.activity.jevFallbackReason}); the regex result decided this call`),{...eE(e,i,c,d.final,d.decidedByJev),twoTier:{activity:d.activity,decidedByJev:d.decidedByJev,...d.decidedByJev&&"answered"===a.kind&&a.origin?{jevOrigin:a.origin}:{},...d.observeVerdict?{observeVerdict:d.observeVerdict}:{}}}}async function eB(e,t,i,n,s,r){let a=t.tool_name,c=t.tool_input,l={eventType:e,payload:t,toolName:a,toolInput:c,session:i,cli:i?.cli},d=[];for(let t of s){let s,a,c=t.params,u=eP(n,t.name)??{};if(c){let e={};for(let[t,i]of Object.entries(c))e[t]=t in u?u[t]:i.default;s={...l,params:e}}else s={...l,params:u};try{a=await t.fn(s)}catch(s){let n=s instanceof Error?s.message:String(s);(0,eC.g)(`policy "${t.name}" threw: ${n}`),t.name.startsWith(`${o.l}/`)&&(0,e$.f)((0,eT.f)(),"policy_evaluation_error",{policy_name:t.name,event_type:e,cli:i?.cli??null,error_type:s instanceof Error?s.name:"unknown"});continue}if("deny"===a.decision){let e=ek(a.reason??`Blocked by policy: ${t.name}`,eP(n,t.name)?.hint);(0,eC.Q)(`deny by "${t.name}": ${e}`);let{authority:i,reviewedBy:s}=r?r.authorityOf(t):eM;if(d.push({policyName:t.name,decision:"deny",reason:e,authority:i,reviewedBy:s}),"hard"===i)return{verdicts:d,hardDenied:!0};continue}if("instruct"===a.decision){let e=ek(a.reason??`Instruction from policy: ${t.name}`,eP(n,t.name)?.hint),{authority:i,reviewedBy:s}=r?r.authorityOf(t):eM;d.push({policyName:t.name,decision:"instruct",reason:e,authority:i,reviewedBy:s}),(0,eC.Q)(`instruct by "${t.name}": ${e}`)}"allow"===a.decision&&a.reason&&d.push({policyName:t.name,decision:"allow",reason:a.reason,...eM})}return{verdicts:d,hardDenied:!1}}function eE(e,t,i,n,s=!1){if("deny"===n.decision){let[r]=n.entries;return function(e,t,i,n,s,r=!1){let o;o=i||("UserPromptSubmit"===e?"prompt":"SessionStart"===e?"session start":"SessionEnd"===e?"session end":"Stop"===e?"stop":"operation");let a=r?`Blocked ${o} by failproofai because: ${s.replace(/[.\s]+$/,"")}, as flagged by Jev semantic review`:`Blocked ${o} by failproofai because: ${s}, as per the policy configured by the user`;if(t?.cli==="cursor")return"Stop"===e||"SubagentStop"===e?{exitCode:0,stdout:JSON.stringify({followup_message:`MANDATORY ACTION REQUIRED from failproofai (policy: ${n}): ${s}
1
+ (()=>{"use strict";module.exports=[97610,e=>{var t=e.i(89171),i=e.i(71809),n=e.i(73634),s=e.i(73136),r=e.i(52306),o=e.i(38791),a=e.i(38441),c=e.i(12714),l=e.i(2157),d=e.i(50227),u=e.i(81580);let p=/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i;var f=e.i(54214);function m(e,t){let i=[];for(let s of e)if("assistant"===s.type)for(let e of s.message.content){var n;let r;if("tool_use"!==e.type)continue;let o=e.name,c=(n=t.cli,(o?"copilot"===n?a.s[o]??o:"cursor"===n?a.D[o]??o:"codex"===n?a.j[o]??o:"opencode"===n?a.A[o]??o:"pi"===n?a.S[o]??o:"hermes"===n?a.C[o]??o:"openclaw"===n?a.e[o]??o:"factory"===n?a.r[o]??o:"devin"===n?a.u[o]??o:"antigravity"===n?a.I[o]??o:"goose"===n?a.K[o]??o:o:o)??o),l=function(e,t,i){let n;if(!e||!t||"object"!=typeof t||Array.isArray(t)||("copilot"===i?n=a.U[e]:"opencode"===i?n=a.k[e]:"pi"===i?n=a.V[e]:"hermes"===i?n=a.z[e]:"openclaw"===i?n=a.v[e]:"antigravity"===i?n=a.H[e]:"goose"===i&&(n=a.M[e]),!n))return t;let s={};for(let[e,i]of Object.entries(t))s[n[e]??e]=i;return s}(c,e.input,t.cli);e.result?.content&&(r=function(e){let t=Buffer.from(e,"utf-8");if(t.byteLength<=65536)return e;let i=65536;for(;i>0&&(192&t[i])==128;)i--;return t.subarray(0,i).toString("utf-8")}(e.result.content)),i.push({cli:t.cli,sessionId:t.sessionId,transcriptPath:t.transcriptPath,cwd:t.cwd,timestamp:s.timestamp,toolName:c,rawToolName:o,toolInput:l??{},toolResultText:r})}return i}async function y(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of function(){let e,t=(0,u.n)();try{e=(0,l.readdirSync)(t,{withFileTypes:!0})}catch{return[]}return e.filter(e=>e.isDirectory()).map(e=>({name:e.name,cwd:(0,u.b)(e.name),path:(0,d.join)(t,e.name)}))}()){let s;if(!t||t.has(e.cwd)){try{s=function(e){let t,i=[];try{t=(0,l.readdirSync)(e.path,{withFileTypes:!0})}catch{return i}for(let n of t)if(n.isFile()&&n.name.endsWith(".jsonl")){let t=n.name.slice(0,-6);if(!p.test(t))continue;let s=(0,d.join)(e.path,n.name);try{let n=(0,l.statSync)(s);i.push({projectName:e.name,cwd:e.cwd,sessionId:t,transcriptPath:s,mtimeMs:n.mtimeMs,sizeBytes:n.size,isSubagent:!1})}catch{}}else if(n.isDirectory()&&p.test(n.name)){let t,s=(0,d.join)(e.path,n.name,"subagents");if(!(0,l.existsSync)(s))continue;try{t=(0,l.readdirSync)(s,{withFileTypes:!0})}catch{continue}for(let n of t){if(!n.isFile()||!n.name.endsWith(".jsonl"))continue;let t=n.name.slice(0,-6),r=(0,d.join)(s,n.name);try{let n=(0,l.statSync)(r);i.push({projectName:e.name,cwd:e.cwd,sessionId:t,transcriptPath:r,mtimeMs:n.mtimeMs,sizeBytes:n.size,isSubagent:!0})}catch{}}}return i}(e)}catch{continue}for(let t of s)t.mtimeMs<i||n.push({cli:"claude",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.transcriptPath,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes})}}return n}async function h(e){let t,i;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}try{i=await (0,f.j)(t,"session")}catch{return[]}let n="";for(let e of t.split("\n",50))if(e.trim())try{let t=JSON.parse(e);if("string"==typeof t.cwd&&t.cwd.length>0){n=t.cwd;break}}catch{}return m(i,{cli:"claude",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:n})}async function g(e,t){let i,n;if(!Number.isFinite(t)||t<0)return null;let s=null;try{s=await (0,c.open)(e.transcriptPath,"r");let{size:n}=await s.stat();if(t>n)return null;if(t===n)return{events:[],bytesConsumed:t};let r=Buffer.alloc(n-t);await s.read(r,0,r.length,t),i=r.toString("utf-8")}catch{return null}finally{if(s)try{await s.close()}catch{}}let r=i.lastIndexOf("\n"),o=-1===r?"":i.slice(0,r+1),a=i.slice(r+1),l=a.trim().length>0&&(()=>{try{return JSON.parse(a),!0}catch{return!1}})()?o+a:o;if(0===l.length)return{events:[],bytesConsumed:t};let d=t+Buffer.byteLength(l,"utf-8");try{n=await (0,f.j)(l,"session")}catch{return null}let u="";for(let e of l.split("\n",50))if(e.trim())try{let t=JSON.parse(e);if("string"==typeof t.cwd&&t.cwd.length>0){u=t.cwd;break}}catch{}return{events:m(n,{cli:"claude",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:u}),bytesConsumed:d,cwd:u||void 0}}var w=e.i(36203),N=e.i(57232);async function v(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,w.getCodexProjects)())){let{cwd:s,sessions:r}=await (0,w.getCodexSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"codex",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function S(e){let t=await (0,N.getCodexSessionLog)(e.sessionId);return t?m(t.entries,{cli:"codex",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var b=e.i(55851),x=e.i(78166);async function j(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,b.getCopilotProjects)())){let{cwd:s,sessions:r}=await (0,b.getCopilotSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"copilot",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function O(e){let t=await (0,x.getCopilotSessionLog)(e.sessionId);return t?m(t.entries,{cli:"copilot",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var I=e.i(46413),k=e.i(72094);async function C(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,I.getCursorProjects)())){let{cwd:s,sessions:r}=await (0,I.getCursorSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"cursor",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function $(e){let t=await (0,k.getCursorSessionLog)(e.sessionId);return t?m(t.entries,{cli:"cursor",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var T=e.i(35435),P=e.i(99440);async function M(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,T.getOpenCodeProjects)())){let{cwd:s,sessions:r}=await (0,T.getOpenCodeSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();!(s<i)&&t.sessionId&&n.push({cli:"opencode",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:0})}}return n}async function R(e){let t=await (0,P.getOpenCodeSessionLog)(e.sessionId);return t?m(t.entries,{cli:"opencode",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var B=e.i(19791),E=e.i(85116);async function A(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(await (0,B.getPiProjects)())){let{cwd:s,sessions:r}=await (0,B.getPiSessionsByEncodedName)(e.name),o=s??"";if(!t||t.has(o))for(let t of r){let s=t.lastModified.getTime();if(s<i)continue;let r=0;try{r=(0,l.statSync)(t.path).size}catch{}t.sessionId&&n.push({cli:"pi",projectName:e.name,sessionId:t.sessionId,transcriptPath:t.path,mtimeMs:s,sizeBytes:r})}}return n}async function D(e){let t=await (0,E.getPiSessionLog)(e.sessionId);return t?m(t.entries,{cli:"pi",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var _=e.i(64828),U=e.i(28898),J=e.i(3605);async function z(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,_.getHermesSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!(e.messageCount<=0)||e.hasMessages)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"hermes",projectName:e.cwd?(0,u.f)(e.cwd):e.source?(0,U.S)(e.profile,e.source):`hermes:${e.profile}`,sessionId:e.sessionId,transcriptPath:`hermes://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:e.messageCount});return s}async function W(e){let t=await (0,J.getHermesSessionLog)(e.sessionId);return t?m(t.entries,{cli:"hermes",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var q=e.i(90624),Y=e.i(64199);async function F(e={}){if(e.projects&&e.projects.length>0)return[];let t=e.sinceMs??0,i=[];for(let e of(await (0,q.getOpenClawSessions)()))e.mtimeMs<t||i.push({cli:"openclaw",projectName:(0,q.openClawProjectPath)(e.agentId,e.channel),sessionId:e.sessionId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});return i}async function L(e){let t=await (0,Y.getOpenClawSessionLog)(e.sessionId);return t?m(t.entries,{cli:"openclaw",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var H=e.i(28246);async function Q(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[];for(let e of(0,H.listFactoryTranscripts)())!(e.mtimeMs<i)&&(!t||t.has(e.cwd))&&n.push({cli:"factory",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes});return n}async function V(e){let t;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}let i=(0,f.V)(t,"session"),n=(0,H.factoryLinesToLogEntries)(i,"session"),s="";for(let e of i)if(e&&"object"==typeof e&&"session_start"===e.type){let t=e.cwd;if("string"==typeof t&&t.length>0){s=t;break}}return m(n,{cli:"factory",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:s})}var G=e.i(93114),Z=e.i(30441);async function K(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=[],s=await (0,Z.getAntigravityIndex)();for(let e of(0,G.listAntigravityTranscripts)()){if(e.mtimeMs<i)continue;let r=s.get(e.conversationId)?.cwd;(!t||r&&t.has(r))&&n.push({cli:"antigravity",projectName:r?(0,u.f)(r):"antigravity",sessionId:e.conversationId,transcriptPath:e.transcriptPath,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes})}return n}async function X(e){let t;try{t=await (0,c.readFile)(e.transcriptPath,"utf-8")}catch{return[]}let i=(0,f.V)(t,"session"),n=(0,G.antigravityLinesToLogEntries)(i,"session"),s="";for(let e of i){if(!e||"object"!=typeof e)continue;let t=e.tool_calls;if(Array.isArray(t)){for(let e of t){let t=e&&"object"==typeof e?e.args:void 0,i=t&&"object"==typeof t?t.Cwd:void 0;if("string"==typeof i&&i.length>0){s=i;break}}if(s)break}}return m(n,{cli:"antigravity",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:s})}var ee=e.i(79364),et=e.i(40375);async function ei(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,ee.getDevinSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"devin",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:`devin-db://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:0});return s}async function en(e){let t=await (0,et.getDevinSessionLog)(e.sessionId);return t?m(t.entries,{cli:"devin",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}var es=e.i(69164),er=e.i(36618);let eo={claude:{cli:"claude",listTranscripts:y,streamEvents:h,streamEventsFrom:g},codex:{cli:"codex",listTranscripts:v,streamEvents:S},copilot:{cli:"copilot",listTranscripts:j,streamEvents:O},cursor:{cli:"cursor",listTranscripts:C,streamEvents:$},opencode:{cli:"opencode",listTranscripts:M,streamEvents:R},pi:{cli:"pi",listTranscripts:A,streamEvents:D},hermes:{cli:"hermes",listTranscripts:z,streamEvents:W},openclaw:{cli:"openclaw",listTranscripts:F,streamEvents:L},factory:{cli:"factory",listTranscripts:Q,streamEvents:V},devin:{cli:"devin",listTranscripts:ei,streamEvents:en},antigravity:{cli:"antigravity",listTranscripts:K,streamEvents:X},goose:{cli:"goose",listTranscripts:async function(e={}){let t=e.projects?new Set(e.projects):null,i=e.sinceMs??0,n=await (0,es.getGooseSessions)(),s=[];for(let e of n)!(e.mtimeMs<i)&&(!t||e.cwd&&t.has(e.cwd))&&s.push({cli:"goose",projectName:e.projectName,sessionId:e.sessionId,transcriptPath:`goose-db://${e.sessionId}`,mtimeMs:e.mtimeMs,sizeBytes:0});return s},streamEvents:async function(e){let t=await (0,er.getGooseSessionLog)(e.sessionId);return t?m(t.entries,{cli:"goose",sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:t.cwd??""}):[]}}},ea=/\.(?:ts|tsx|js|jsx|mjs|cjs|py|go|rs|java|kt|swift|rb|php|c|h|cc|cpp|hpp|cs|scala|sh|bash|zsh|json|yaml|yml|toml|md|txt|sql|html|css|scss|sass)$/i,ec=["/","/home","/usr","/etc","/var","/opt","/Users"],el="rereadAfterEdit",ed=[{name:"redundant-cd-cwd",description:"Bash commands prefixed with `cd <cwd> && …` even though commands already run in cwd.",category:"Wasteful",severity:"info",displayTitle:"Prepended cd <cwd> before commands",impact:"Pure waste — your agent's shell already runs in `cwd`.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t||!e.cwd)return null;let i=t.trimStart(),n=/^cd\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s*&&\s*([\s\S]+)$/.exec(i);if(!n)return null;let s=(n[1]??n[2]??n[3]??"").replace(/\/+$/,"");if(s!==e.cwd.replace(/\/+$/,""))return null;let r=n[4].trim();return{example:`cd ${s} && ${r}`}}},{name:"prefer-edit-over-read-cat",description:"Bash `cat`/`head`/`tail`/`less`/`more` on a single source file — use Read.",category:"Wasteful",severity:"info",displayTitle:"Used `cat`/`head`/`tail` on a source file",impact:"Burns tokens; the Read tool returns content directly without going through Bash output.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim();if(/[|<>;&`$()]/.test(i))return null;let n=/^(cat|head|tail|less|more)\s+(?:-\S+\s+)*(?:"([^"]+)"|'([^']+)'|(\S+))\s*$/.exec(i);if(!n)return null;let s=n[2]??n[3]??n[4]??"";return!s||/(?:^|\/)\.env(?:\..+)?$/.test(s)||!ea.test(s)?null:{example:i}}},{name:"prefer-edit-over-sed-awk",description:"Bash `sed -i`/`awk` in-place edits — use Edit.",category:"Wasteful",severity:"info",displayTitle:"Used sed -i or awk for an in-place edit",impact:"Edit tool is safer and produces a diff the agent can verify.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim();return/(?:^|\s|;|&&|\|\|)sed\b[^|]*\s-i(?=\b|['"])/.test(i)||/(?:^|\s|;|&&|\|\|)awk\b[^|]*\s>\s*\S+/.test(i)&&!/\|/.test(i)?{example:i}:null}},{name:"prefer-write-over-heredoc",description:"Bash heredoc / `echo > file` writing multi-line content — use Write.",category:"Wasteful",severity:"info",displayTitle:"Used heredoc / `echo > file` to write a multi-line file",impact:"Write tool handles escaping and is verifiable.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;return"string"!=typeof t?null:/<<-?\s*['"]?[A-Za-z_][A-Za-z0-9_]*['"]?\s*>\s*\S/.test(t)||/(?:^|\s|;|&&|\|\|)(?:echo|printf)\s+["'][^"']*\n[^"']*["']\s*>\s*\S/.test(t)?{example:t.replace(/\s+/g," ").trim().slice(0,160)}:null}},{name:"sleep-polling-loop",description:"Bash long `sleep` or while-sleep polling loops.",category:"Wasteful",severity:"info",displayTitle:"Used a long sleep or while-sleep polling loop",impact:"Burns wall-clock; better to wait for an explicit signal.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;if(/\bwhile\b[\s\S]*?\bsleep\b[\s\S]*?\bdone\b/.test(t))return{example:t.replace(/\s+/g," ").trim().slice(0,160)};let i=/\bsleep\s+(\d+(?:\.\d+)?)(m|h|d)?\b/.exec(t);if(i){let e=parseFloat(i[1]),n=i[2]??"s";if(("m"===n?60*e:"h"===n?3600*e:"d"===n?86400*e:e)>=30)return{example:t.replace(/\s+/g," ").trim().slice(0,160)}}return null}},{name:"find-from-root",description:"Bash `find` against `/`, `/home`, `/usr`, etc. — scope to cwd instead.",category:"Risky",severity:"warn",displayTitle:"Ran find from /, /home, /usr, etc.",impact:"Filesystem-wide finds exhaust resources and rarely return useful results.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;if("string"!=typeof t)return null;let i=t.trim(),n=/(?:^|[\s;|&])find\s+(?:-\S+\s+)*("[^"]+"|'[^']+'|\S+)/.exec(i);if(!n)return null;let s=n[1].replace(/^["']|["']$/g,"").replace(/\/+$/,"")||"/";return ec.includes(s)?{example:i.slice(0,160)}:null}},{name:"git-commit-no-verify",description:"git commit invoked with --no-verify / -n, skipping hooks.",category:"Risky",severity:"warn",displayTitle:"Committed with --no-verify",impact:"Skips pre-commit hooks that exist to catch broken or unsafe code.",detect(e){if("Bash"!==e.toolName)return null;let t=e.toolInput.command;return"string"!=typeof t?null:/\bgit\s+commit\b/.test(t)&&(/\s--no-verify\b/.test(t)||/\s-n\b/.test(t))?{example:t.replace(/\s+/g," ").trim().slice(0,160)}:null}},{name:"reread-after-edit",description:"Read of a file that was just Edit'd or Write'n in the same session.",category:"Wasteful",severity:"info",displayTitle:"Re-read a file it just edited",impact:"Edit/Write already returned the updated content; the second Read is wasted tokens.",detect(e,t){let i,n=((i=t[el])||(i={countdown:new Map},t[el]=i),i),s=e.toolInput.file_path,r="string"==typeof s?s:null;for(let[e,t]of n.countdown)t<=1?n.countdown.delete(e):n.countdown.set(e,t-1);return r?"Edit"===e.toolName||"Write"===e.toolName?(n.countdown.set(r,5),null):"Read"===e.toolName&&n.countdown.has(r)?(n.countdown.delete(r),{example:`Read ${r} immediately after Edit/Write`}):null:null}}],eu=["cowboy","explorer","ghost","optimist","hammer","architect"],ep={explorer:.38,architect:.33,hammer:.11,cowboy:.11,optimist:.07,ghost:.01,precision:0,goldfish:0},ef={optimist:0,cowboy:0,explorer:0,goldfish:0,architect:0,precision:0,hammer:0,ghost:0};for(let e of eu)ef[e]=Math.max(ep[e],.05);var em=e.i(66680),ey=e.i(79857);let eh=null,eg=null;function ew(){if(eh)return eh;let e=n.H.map(e=>`${e.name}|${e.fn.toString()}`).sort().join("\n");return eh=(0,em.createHash)("sha1").update(e).digest("hex").slice(0,16)}function eN(){if(eg)return eg;let e=ed.map(e=>`${e.name}|${e.detect.toString()}`).sort().join("\n");return eg=(0,em.createHash)("sha1").update(e).digest("hex").slice(0,16)}function ev(e){let t=(0,ey.r)(),i=(0,em.createHash)("sha1").update(e).digest("hex");return(0,d.join)(t,`${i}.json`)}function eS(e,t){if(t<=0)return null;let i=null;try{i=(0,l.openSync)(e,"r");let n=Buffer.alloc(Math.min(4096,t));(0,l.readSync)(i,n,0,n.length,0);let s=Math.min(4096,t),r=Buffer.alloc(s);return(0,l.readSync)(i,r,0,s,t-s),(0,em.createHash)("sha1").update(String(t)).update(n).update(r).digest("hex").slice(0,32)}catch{return null}finally{if(null!==i)try{(0,l.closeSync)(i)}catch{}}}var eb=e.i(71194);let ex="request-cut",ej=/^[A-Za-z0-9._:/@~+-]{1,200}$/;function eO(e){let t=e.find(e=>"deny"===e.decision);if(t)return{decision:"deny",entries:[{policyName:t.policyName,reason:t.reason??""}]};let i=e.filter(e=>"instruct"===e.decision);return i.length>0?{decision:"instruct",entries:i.map(e=>({policyName:e.policyName,reason:e.reason??""}))}:{decision:"allow",entries:e.filter(e=>"allow"===e.decision&&e.reason).map(e=>({policyName:e.policyName,reason:e.reason}))}}let eI={allow:0,instruct:1,deny:2};var ek=e.i(97348),eC=e.i(49335),e$=e.i(10659);function eT(e,t){let i=e.trim(),n="string"==typeof t?t.trim():"";return n?i?`${i}. ${n}`:n:i}function eP(e,t){if(!e?.policyParams)return;let i=e.policyParams[t];if(i)return i;let n=function(e){if(!e.startsWith("pack/"))return null;let t=e.slice(5),i=t.lastIndexOf("/");if(i<=0)return null;let n=t.slice(0,i),s=n.lastIndexOf("@");return{packId:s>0?n.slice(0,s):n,name:t.slice(i+1)}}(t);if(n)return function(e,t,i){if(!e)return;let n=e[`pack/${t}/${i}`];return n||(t.toLowerCase()===eb.w.toLowerCase()?e[i]:void 0)}(e.policyParams,n.packId,n.name);let s=`${o.l}/`;if(t.startsWith(s))return e.policyParams[t.slice(s.length)]}let eM={authority:"hard",reviewedBy:[]};async function eR(e,t,i,n,s){let r,a,c=t.tool_name,l=(0,o.w)(e,c);if((0,ek.Q)(`evaluating ${l.length} policies for ${e}`),!s){if(0===l.length)return{exitCode:0,stdout:"",stderr:"",policyName:null,reason:null,decision:"allow"};let{verdicts:s}=await eB(e,t,i,n,l);return eE(e,i,c,eO(s))}try{r=await eB(e,t,i,n,l,s)}catch(e){throw s.abort(),e}if(r.hardDenied?(s.abort(),a={kind:"not-consulted"}):(s.releaseRegistry?.(),a=await s.review),"answered"===a.kind&&0===a.asked.length&&"allow"===a.decision&&!a.observedAsked?.length||"not-consulted"===a.kind&&s.cloud)return eE(e,i,c,eO(r.verdicts));let d=function(e,t,i){let n=eO(e);if("not-consulted"===t.kind)return{final:n,cleared:[],decidedByJev:!1,activity:{evaluator:"jev",jevMode:i}};if("fallback"===t.kind)return{final:n,cleared:[],decidedByJev:!1,activity:{evaluator:"jev-fallback",jevFallbackReason:t.reason,...null!==t.latencyMs?{jevLatencyMs:t.latencyMs}:{},...t.model?{jevModel:t.model}:{},jevMode:i}};let s=t.injectionAsked&&!t.injected&&!t.requestCut,r=new Set(t.asked),o=new Set(t.notDenied),a=s&&!t.unclearableWarned?e.filter(e=>"allow"!==e.decision&&"reviewable"===e.authority&&0!==e.reviewedBy.length&&e.reviewedBy.every(e=>r.has(e)&&o.has(e))).map(e=>e.policyName):[],c={policyName:t.policyName,reason:t.reason??`Flagged by semantic review (${t.policyName})`},l=function(e,t,i,n){let s=new Set(t),r=e.filter(e=>!s.has(e.policyName)),o=r.find(e=>"deny"===e.decision);if(o)return{final:{decision:"deny",entries:[{policyName:o.policyName,reason:o.reason??""}]},decidedByJev:!1};if("deny"===i)return{final:{decision:"deny",entries:[n]},decidedByJev:!0};let a=r.filter(e=>"instruct"===e.decision).map(e=>({policyName:e.policyName,reason:e.reason??""}));return("instruct"===i&&a.push(n),a.length>0)?{final:{decision:"instruct",entries:a},decidedByJev:a[0]===n}:{final:eO(r),decidedByJev:!1}}(e,a,t.decision,c),d={evaluator:t.requestCut?"jev-fallback":"jev",...t.requestCut?{jevFallbackReason:ex}:{},jevDecision:t.decision,...a.length>0&&eI[l.final.decision]<eI[n.decision]?{jevCleared:a}:{},...null!==t.latencyMs?{jevLatencyMs:t.latencyMs}:{},...t.model?{jevModel:t.model}:{},jevMode:i,...t.checks?{jevChecks:[...t.checks]}:{}};if("observe"===i){let e="deny"===t.decision||"instruct"===t.decision?{policyName:c.policyName,decision:t.decision,reason:c.reason,version:t.model&&ej.test(t.model)?t.model:"jev"}:void 0;return{final:n,cleared:a,decidedByJev:!1,activity:d,...e?{observeVerdict:e}:{}}}return{...l,cleared:a,activity:d}}(r.verdicts,a,s.mode);return d.cleared.length>0&&(0,ek.Q)(`jev ${"observe"===s.mode?"would clear":"cleared"}: ${d.cleared.join(", ")}`),"jev-fallback"===d.activity.evaluator&&(0,ek.Q)(d.activity.jevFallbackReason===ex?"jev could not be shown the whole call; it cleared nothing, and the call was not allowed on a partial read":`jev unavailable (${d.activity.jevFallbackReason}); the regex result decided this call`),{...eE(e,i,c,d.final,d.decidedByJev),twoTier:{activity:d.activity,decidedByJev:d.decidedByJev,...(d.decidedByJev||d.observeVerdict)&&"answered"===a.kind&&a.origin?{jevOrigin:a.origin}:{},...d.observeVerdict?{observeVerdict:d.observeVerdict}:{},..."answered"===a.kind&&a.observedCloud?.length?{observedCloud:a.observedCloud}:{}}}}async function eB(e,t,i,n,s,r){let a=t.tool_name,c=t.tool_input,l={eventType:e,payload:t,toolName:a,toolInput:c,session:i,cli:i?.cli},d=[];for(let t of s){let s,a,c=t.params,u=eP(n,t.name)??{};if(c){let e={};for(let[t,i]of Object.entries(c))e[t]=t in u?u[t]:i.default;s={...l,params:e}}else s={...l,params:u};try{a=await t.fn(s)}catch(s){let n=s instanceof Error?s.message:String(s);(0,ek.g)(`policy "${t.name}" threw: ${n}`),t.name.startsWith(`${o.l}/`)&&(0,eC.f)((0,e$.f)(),"policy_evaluation_error",{policy_name:t.name,event_type:e,cli:i?.cli??null,error_type:s instanceof Error?s.name:"unknown"});continue}if("deny"===a.decision){let e=eT(a.reason??`Blocked by policy: ${t.name}`,eP(n,t.name)?.hint);(0,ek.Q)(`deny by "${t.name}": ${e}`);let{authority:i,reviewedBy:s}=r?r.authorityOf(t):eM;if(d.push({policyName:t.name,decision:"deny",reason:e,authority:i,reviewedBy:s}),"hard"===i)return{verdicts:d,hardDenied:!0};continue}if("instruct"===a.decision){let e=eT(a.reason??`Instruction from policy: ${t.name}`,eP(n,t.name)?.hint),{authority:i,reviewedBy:s}=r?r.authorityOf(t):eM;d.push({policyName:t.name,decision:"instruct",reason:e,authority:i,reviewedBy:s}),(0,ek.Q)(`instruct by "${t.name}": ${e}`)}"allow"===a.decision&&a.reason&&d.push({policyName:t.name,decision:"allow",reason:a.reason,...eM})}return{verdicts:d,hardDenied:!1}}function eE(e,t,i,n,s=!1){if("deny"===n.decision){let[r]=n.entries;return function(e,t,i,n,s,r=!1){let o;o=i||("UserPromptSubmit"===e?"prompt":"SessionStart"===e?"session start":"SessionEnd"===e?"session end":"Stop"===e?"stop":"operation");let a=r?`Blocked ${o} by failproofai because: ${s.replace(/[.\s]+$/,"")}, as flagged by Jev semantic review`:`Blocked ${o} by failproofai because: ${s}, as per the policy configured by the user`;if(t?.cli==="cursor")return"Stop"===e||"SubagentStop"===e?{exitCode:0,stdout:JSON.stringify({followup_message:`MANDATORY ACTION REQUIRED from failproofai (policy: ${n}): ${s}
2
2
 
3
3
  You MUST complete the above action NOW. Do NOT ask the user for confirmation — execute the required action, then attempt to finish your task again.`}),stderr:"",policyName:n,reason:s,decision:"deny"}:"UserPromptSubmit"===e?{exitCode:0,stdout:JSON.stringify({continue:!1,user_message:a}),stderr:"",policyName:n,reason:s,decision:"deny"}:{exitCode:0,stdout:JSON.stringify({permission:"deny",user_message:a,agent_message:a}),stderr:"",policyName:n,reason:s,decision:"deny"};if(t?.cli==="pi")return"Stop"===e?{exitCode:0,stdout:JSON.stringify({permission:"deny",reason:`MANDATORY ACTION REQUIRED from failproofai (policy: ${n}): ${s}
4
4
 
@@ -28,6 +28,6 @@ You MUST complete the above action(s) NOW. Do NOT ask the user for confirmation
28
28
 
29
29
  You MUST complete the above action(s) NOW. Do NOT ask the user for confirmation — execute the required action(s), then attempt to finish your task again.`}),stderr:"",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}return{exitCode:0,stdout:"",stderr:i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n")+"\n",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}if(t?.cli==="goose")return{exitCode:0,stdout:"",stderr:i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n")+"\n",policyName:s[0],policyNames:s,reason:n,decision:"instruct"};if("Stop"===e||"SubagentStop"===e){let e=1===s.length?`policy: ${s[0]}`:`policies: ${s.join(", ")}`,i=`MANDATORY ACTION REQUIRED from failproofai (${e}): ${n}
30
30
 
31
- You MUST complete the above action(s) NOW. Do NOT ask the user for confirmation — execute the required action(s), then attempt to finish your task again.`;return t?.cli==="copilot"?{exitCode:0,stdout:JSON.stringify({decision:"block",reason:i}),stderr:"",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}:{exitCode:2,stdout:"",stderr:i,policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}return{exitCode:0,stdout:JSON.stringify({hookSpecificOutput:{hookEventName:e,additionalContext:`Instruction from failproofai: ${n}`}}),stderr:"",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}(e,t,n.entries):n.entries.length>0?function(e,t,i){let n=i.map(e=>e.reason).join("\n"),s=i.map(e=>e.policyName);if(t?.cli==="cursor"){let e={permission:"allow",additional_context:`Note from failproofai: ${n}`},t=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify(e),stderr:t+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}if(t?.cli==="pi"){let e={permission:"allow",reason:`Note from failproofai: ${n}`},t=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify(e),stderr:t+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}if(t?.cli==="openclaw"){let e=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify({permission:"allow",reason:`Note from failproofai: ${n}`}),stderr:e+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}let r=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return"PreToolUse"===e||"PostToolUse"===e||"UserPromptSubmit"===e||"PermissionRequest"===e?{exitCode:0,stdout:JSON.stringify({hookSpecificOutput:{hookEventName:e,additionalContext:`Note from failproofai: ${n}`}}),stderr:r+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}:{exitCode:0,stdout:"",stderr:r+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}(e,t,n.entries):{exitCode:0,stdout:"",stderr:"",policyName:null,reason:null,decision:"allow"}}let eA=new Set(["warn-repeated-tool-calls"].map(e=>(0,o.o)(e))),eD=!1,e_=null;async function eU(){if(eD)return;e_=(0,o.Z)(),(0,o.G)();let e=n.H.map(e=>e.name).filter(e=>!eA.has((0,o.o)(e)));(0,n.k)(e),eD=!0}async function eJ(e){eD||await eU();let t={sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:e.cwd,cli:e.cli},i={tool_name:e.toolName,tool_input:e.toolInput,session_id:e.sessionId,cwd:e.cwd,transcript_path:e.transcriptPath},n=[];if(ez(await eR("PreToolUse",i,t),"PreToolUse",n),void 0!==e.toolResultText){let s={...i,tool_response:e.toolResultText};ez(await eR("PostToolUse",s,t),"PostToolUse",n)}return n}function ez(e,t,i){for(let n of e.policyNames&&e.policyNames.length>0?e.policyNames:e.policyName?[e.policyName]:[])i.push({policyName:n,decision:e.decision,reason:e.reason,eventType:t})}function eW(e){let t=e.indexOf("/");return t>=0?e.slice(t+1):e}function eq(e){return e.length<=80?e:e.slice(0,79)+"…"}async function eY(e,t){let i,n={transcriptPath:e.transcriptPath,cli:e.cli,projectName:e.projectName,sessionId:e.sessionId,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes,cwd:"",eventsScanned:0,hitsByName:{},examplesByName:{},rangeByName:{}},s=eo[e.cli],r=0,o=!1,a=t?.detectorState??{};if(s.streamEventsFrom){let a=await s.streamEventsFrom(e,t?.fromByte??0);a?(i=a.events,r=a.bytesConsumed,n.cwd=a.cwd??"",o=!0):(i=await s.streamEvents(e),r=0)}else i=await s.streamEvents(e),r=0;if(0===i.length)return{result:n,bytesScanned:r,detectorState:a,resumed:o};for(let e of(n.eventsScanned=i.length,n.cwd=n.cwd||i[0].cwd||"",i)){let t;for(let t of ed){let i=t.detect(e,a);i&&eF(n,t.name,e.timestamp,e.cwd,eq(i.example))}try{t=await eJ(e)}catch{continue}for(let i of t){let t=function(e,t){if("Bash"===t.toolName){let e=t.toolInput.command;if("string"==typeof e)return e.replace(/\s+/g," ")}let i=t.toolInput.file_path;return"string"==typeof i?`${t.toolName} ${i}`:`${t.toolName}`}(i.policyName,e);eF(n,i.policyName,e.timestamp,e.cwd,eq(t))}}return{result:n,bytesScanned:r,detectorState:a,resumed:o}}function eF(e,t,i,n,s){e.hitsByName[t]=(e.hitsByName[t]??0)+1;let r=e.examplesByName[t]??[];r.length<3&&(r.push({timestamp:i,cwd:n,example:s}),e.examplesByName[t]=r);let o=e.rangeByName[t];o?(i<o.first&&(o.first=i),i>o.last&&(o.last=i)):e.rangeByName[t]={first:i,last:i}}async function eL(e={}){let t=Date.now();await eU();try{return await eH(e,t)}finally{eD&&(null!==e_&&((0,o.c)(e_),e_=null),eD=!1)}}async function eH(e,t){let c=e.clis??Array.from(a._),d=function(e){if(!e)return;let t=/^(\d+)\s*([dhm])$/i.exec(e.trim());if(t){let e=parseInt(t[1],10),i=t[2].toLowerCase();return Date.now()-e*("d"===i?864e5:"h"===i?36e5:6e4)}let i=Date.parse(e);if(!Number.isNaN(i))return i;throw Error(`Invalid --since value: "${e}" (expected e.g. "7d", "30d", or "2026-04-01")`)}(e.since),u=new Set(((0,s.f)().enabledPolicies??[]).map(e=>(0,o.o)(e)));try{for(let e of(0,r.f)().packs)for(let t of e.enabled??e.policies.map(e=>e.name))u.add((0,o.o)(t))}catch{}let p=[];for(let t of c){let i,n=eo[t];try{i=await n.listTranscripts({projects:e.projects,sinceMs:d})}catch{continue}p.push(...i)}let f=t=>{try{e.onProgress?.(t)}catch{}};if(e.onProgress){let e=new Map;for(let t of p)e.set(t.cli,(e.get(t.cli)??0)+1);f({kind:"discovered",agents:c.map(t=>({cli:t,transcripts:e.get(t)??0})),policies:(0,o.Z)().filter(e=>{let t=e.match.events;return!t||0===t.length||t.includes("PreToolUse")||t.includes("PostToolUse")}).length})}let m=0,y=0,h=p.map(t=>async()=>{let i,n=null;if(!e.noCache){let e=function(e,t,i){if(0===i)return null;let n=ev(e);if(!(0,l.existsSync)(n))return null;try{let s=(0,l.readFileSync)(n,"utf-8"),r=JSON.parse(s);if(4!==r.schemaVersion||r.engineVersion!==ew()||r.detectorVersion!==eN()||!Number.isFinite(r.cachedAt)||Date.now()-r.cachedAt>2592e6||!r.result)return null;if(r.mtimeMs===t&&r.sizeBytes===i)return{kind:"hit",result:r.result};let o=r.bytesScanned;if(!Number.isFinite(o)||o<=0||o>i||!r.anchorHash||eS(e,o)!==r.anchorHash)return null;return{kind:"resume",result:r.result,fromByte:o,detectorState:function(e){if(!e)return{};try{return JSON.parse(e,(e,t)=>t&&"object"==typeof t&&Array.isArray(t.__map)?new Map(t.__map):t)}catch{return{}}}(r.detectorState)}}catch{return null}}(t.transcriptPath,t.mtimeMs,t.sizeBytes);if(e?.kind==="hit")return e.result;i=e?.kind==="resume"?{fromByte:e.fromByte,detectorState:e.detectorState}:void 0,n=e?.kind==="resume"?e.result:null}try{let s=await eY(t,i),r=n&&s.resumed?function(e,t){let i={...e,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,cwd:e.cwd||t.cwd||"",eventsScanned:(e.eventsScanned??0)+(t.eventsScanned??0),hitsByName:{...e.hitsByName},examplesByName:{},rangeByName:{...e.rangeByName}};for(let[t,n]of Object.entries(e.examplesByName))i.examplesByName[t]=[...n];for(let[e,n]of Object.entries(t.hitsByName))i.hitsByName[e]=(i.hitsByName[e]??0)+n;for(let[e,n]of Object.entries(t.examplesByName)){let t=i.examplesByName[e]??[];for(let e of n){if(t.length>=3)break;t.push(e)}i.examplesByName[e]=t}for(let[e,n]of Object.entries(t.rangeByName)){let t=i.rangeByName[e];t?(n.first<t.first&&(t.first=n.first),n.last>t.last&&(t.last=n.last)):i.rangeByName[e]={...n}}return i}(n,s.result):s.result;return e.noCache||function(e,t,i,n,s){if(0===i)return;let r=ev(e);try{(0,l.mkdirSync)((0,ey.r)(),{recursive:!0});let a={schemaVersion:4,cachedAt:Date.now(),mtimeMs:t,sizeBytes:i,engineVersion:ew(),detectorVersion:eN(),result:n};if(s&&s.bytesScanned>0){let t=eS(e,s.bytesScanned);if(t){var o;a.bytesScanned=s.bytesScanned,a.anchorHash=t,o=s.detectorState,a.detectorState=JSON.stringify(o,(e,t)=>t instanceof Map?{__map:[...t.entries()]}:t)}}(0,l.writeFileSync)(r,JSON.stringify(a),{encoding:"utf-8",mode:384});try{(0,l.chmodSync)(r,384)}catch{}}catch{}}(t.transcriptPath,t.mtimeMs,t.sizeBytes,r,s.bytesScanned>0?{bytesScanned:s.bytesScanned,detectorState:s.detectorState}:void 0),r}catch{return y++,{transcriptPath:t.transcriptPath,cli:t.cli,projectName:t.projectName,cwd:"",sessionId:t.sessionId,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,eventsScanned:0,hitsByName:{},examplesByName:{},rangeByName:{}}}}),g=e.onProgress?h.map((e,t)=>async()=>{let i={};try{let t=await e();return i=t.hitsByName,t}finally{f({kind:"transcript",cli:p[t].cli,hitsByName:i})}}):h,w=await (0,i.f)(g,8),N=[];for(let e of w)"fulfilled"===e.status?N.push(e.value):m++;let v=function(e,t){let i=new Map;for(let t of e)for(let[e,n]of Object.entries(t.hitsByName)){let s=i.get(e)??{hits:0,projects:new Set,examples:[]};for(let i of(s.hits+=n,s.projects.add(t.projectName),t.examplesByName[e]??[]))s.examples.length<3&&s.examples.push({...i,sessionId:t.sessionId});let r=t.rangeByName[e];r&&((!s.first||r.first<s.first)&&(s.first=r.first),(!s.last||r.last>s.last)&&(s.last=r.last)),i.set(e,s)}let s=new Map(ed.map(e=>[e.name,e])),r=[];for(let[e,a]of i){let i=s.get(e),c=!!i,l=c?null:function(e){let t=eW(e);for(let i of n.H)if(i.name===e||eW(i.name)===t)return i;return null}(e),d=c?"audit-detector":"builtin",u=!c&&t.has((0,o.o)(e)),p=i?.displayTitle??l?.displayTitle??i?.description??l?.description??eW(e),f=i?.impact??l?.impact??"";r.push({name:e,source:d,category:i?.category??l?.category??"Custom",severity:c?i?.severity??"info":function(e){let t,i=(t=e.indexOf("/"))>=0?e.slice(t+1):e;return i.startsWith("sanitize-")?"sanitize":i.startsWith("block-")?"deny":i.startsWith("warn-")||i.startsWith("protect-")||i.startsWith("prefer-")||i.startsWith("require-")?"warn":"deny"}(e),hits:a.hits,projects:a.projects.size,firstSeen:a.first,lastSeen:a.last,examples:a.examples,displayTitle:p,impact:f,enabledInConfig:u,installHint:"audit-detector"===d?"Audit-only — `failproofai audit` will keep tracking these.":u?"Already enforced — failproofai is blocking these in real time.":`Enable in one command: failproofai policies --install ${eW(e)}`})}return r.sort((e,t)=>t.hits-e.hits),r}(N,u);if(e.policies?.length){let t=new Set(e.policies.map(eW));v=v.filter(e=>t.has(eW(e.name)))}let S=v.reduce((e,t)=>e+t.hits,0),b=new Set,x=new Set,j=0;for(let e of N)Object.keys(e.hitsByName).length>0&&b.add(e.projectName),e.cwd&&x.add(e.cwd),j+=e.eventsScanned??0;return{version:2,scannedAt:new Date(t).toISOString(),scope:{cli:c,projects:e.projects??"all",since:e.since??null},transcripts:{scanned:p.length,skipped:m,errors:y,durationMs:Date.now()-t},results:v,totals:{hits:S,projectsWithHits:b.size},projectsScanned:[...x].sort(),eventsScanned:j,enabledBuiltinNames:[...u].map(e=>e.includes("/")?e.slice(e.indexOf("/")+1):e)}}var eQ=e.i(47756),eV=e.i(48480),eG=e.i(29095),eZ=e.i(46501),eK=e.i(60526);let eX=new Set(a._);async function e0(e){await (0,eZ.u)();let i={};try{let n=await e.text();if(n.trim().length>0){let e=JSON.parse(n);if(null===e||"object"!=typeof e||Array.isArray(e))return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"non_object_body"}),t.NextResponse.json({error:"Request body must be a JSON object"},{status:400});i=e}}catch{return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"invalid_json"}),t.NextResponse.json({error:"Invalid JSON body"},{status:400})}let n=function(e){let t={};if("string"==typeof e.since&&e.since.trim()&&(t.since=e.since.trim()),Array.isArray(e.cli)&&e.cli.length>0){let i=e.cli.filter(e=>"string"==typeof e&&eX.has(e));i.length>0&&(t.clis=i)}return Array.isArray(e.project)&&e.project.length>0&&(t.projects=e.project.filter(e=>"string"==typeof e)),Array.isArray(e.policy)&&e.policy.length>0&&(t.policies=e.policy.filter(e=>"string"==typeof e)),!0===e.noCache&&(t.noCache=!0),t}(i);if(!(0,eV.O)())return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"already_running"}),t.NextResponse.json({error:"Audit already running",status:"already-running"},{status:409});let s=(0,eG.R)("dashboard");if(!s.ok)return(0,eV.w)(null),(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"cross_process_lock"}),t.NextResponse.json({error:"Audit already running",status:"already-running"},{status:409});(0,eZ.z)("audit_run_started",{source:"dashboard",since:n.since??null,no_cache:!0===n.noCache,cli_count:n.clis?.length??0,project_count:n.projects?.length??0});let r=Date.now();return(async()=>{try{let e=await eL(n),t=(0,eQ.T)(n,e);(0,eZ.z)("audit_run_completed",{source:"dashboard",duration_ms:Date.now()-r,events_scanned:e.eventsScanned,sessions_scanned:e.transcripts.scanned,projects_scanned:e.projectsScanned.length,findings:e.results.length,total_hits:e.totals.hits,persisted:t}),(0,eV.w)(t?null:"audit finished but its result could not be saved")}catch(e){(0,eZ.z)("audit_run_failed",{source:"dashboard",duration_ms:Date.now()-r,error_type:e instanceof Error?e.name:"unknown",error_message:function(e){let t;try{t=e instanceof Error?e.message:String(e)}catch{return"unknown"}if(!t)return"";let i="";try{i=eK.default.homedir()}catch{}return i&&i.length>1&&(t=t.split(i).join("~")),t.length>300&&(t=t.slice(0,300)+"…"),t}(e)}),(0,eV.w)(e instanceof Error?e.message:String(e))}finally{s.lock.release()}})(),t.NextResponse.json({status:"started"},{status:202})}e.s(["POST",0,e0,"dynamic",0,"force-dynamic"],97610)},89498,e=>{var t=e.i(47909),i=e.i(74017),n=e.i(96250),s=e.i(59756),r=e.i(61916),o=e.i(74677),a=e.i(69741),c=e.i(16795),l=e.i(87718),d=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(26937),y=e.i(10372),h=e.i(93695),g=e.i(9580);e.i(52474);var w=e.i(220);let N=new t.AppRouteRouteModule({definition:{kind:i.f.APP_ROUTE,page:"/api/audit/run/route",pathname:"/api/audit/run",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/audit/run/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(97610),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:S,serverHooks:b}=N;async function x(e,t,n){n.requestMeta&&(0,s.R)(e,n.requestMeta),N.isDev&&(0,s.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/audit/run/route";v=v.replace(/\/index$/,"")||"/";let S=await N.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:b,deploymentId:x,params:j,nextConfig:O,parsedUrl:I,isDraftMode:C,prerenderManifest:$,routerServerContext:T,isOnDemandRevalidate:k,revalidateOnlyGenerated:P,resolvedPathname:M,clientReferenceManifest:R,serverActionsManifest:B,previewProps:E}=S,A=(0,a.f)(v),D=!!$.routes[M]&&(N.isDev||(0,g.f)(M,N.cacheOwner,$.routes[M])),_=!!($.dynamicRoutes[A]||D),U=async()=>((null==T?void 0:T.render404)?await T.render404(e,t,I,!1):t.end("This page could not be found"),null);if(_&&!C){let e=$.dynamicRoutes[A];if(e&&!1===e.fallback&&!D){if(O.adapterPath)return await U();throw new h.NoFallbackError}}let J=null;!_||N.isDev||C||(J="/index"===(J=M)?"/":J),B&&R&&(0,o.f)({page:v,clientReferenceManifest:R,serverActionsManifest:B});let z=e.method||"GET",W=(0,r.v)(),q=W.getActiveScopeSpan(),Y=!!(null==T?void 0:T.isWrappedByNextServer),F=!!(0,s.w)(e,"minimalMode"),L=(0,s.w)(e,"incrementalCache")||await N.getIncrementalCache(e,O,E,$,F);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let H={params:j,previewProps:E,renderOpts:{experimental:{authInterrupts:!!O.experimental.authInterrupts,useCacheTimeout:O.experimental.useCacheTimeout,durableUseCacheEntries:!!O.experimental.durableUseCacheEntries},cacheComponents:!!O.cacheComponents,validationLevel:O.experimental.instantInsights.validationLevel,isDraftMode:C,incrementalCache:L,hmrRefreshHash:(0,s.w)(e,"hmrRefreshHash"),cacheLifeProfiles:O.cacheLife,staticPageGenerationTimeout:O.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:b,deploymentId:x}},Q=new c.x(e),V=new c.e(t),G=l.k.fromNodeNextRequest(Q,(0,l.t)(t)),Z=async({previousCacheEntry:i})=>{try{if(!F&&k&&P&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=null===J?await N.handle(G,H):await N.prerender(G,H);e.fetchMetrics=H.renderOpts.fetchMetrics;let r=H.renderOpts.pendingWaitUntil;r&&n.waitUntil&&(n.waitUntil(r),r=void 0);let o=H.renderOpts.collectedTags;if(!_)return await (0,p.f)(Q,V,s,r),null;{let e=await s.blob(),t=(0,f.S)(s.headers);o&&(t[y.M]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=y.Q)&&H.renderOpts.collectedRevalidate,n=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=y.Q?!1!==i&&i>0?O.expireTime:void 0:H.renderOpts.collectedExpire;return{value:{kind:w.x.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:n}}}}catch(t){throw(null==i?void 0:i.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.f)({isStaticGeneration:null!==J,isOnDemandRevalidate:k})},!1,T),t}},K=async(s,o)=>{try{var a,c;let s=await N.handleResponse({req:e,nextConfig:O,cacheKey:J,routeKind:i.f.APP_ROUTE,isFallback:!1,previewProps:E,prerenderManifest:$,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:P,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:F});if(null!==s&&"error"in s)throw s.error;if(!_)return;if((null==s||null==(a=s.value)?void 0:a.kind)!==w.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==s||null==(c=s.value)?void 0:c.kind}`);F||t.setHeader("x-nextjs-cache",k?"REVALIDATED":s.isMiss?"MISS":s.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,f.G)(s.value.headers);F&&_||r.delete(y.M),!s.cacheControl||t.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,m.f)(s.cacheControl)),await (0,p.f)(Q,V,new Response(s.value.body,{headers:r,status:s.value.status||200}));return}catch(i){if(i instanceof h.NoFallbackError||await N.onRequestError(e,i,{routerKind:"App Router",routePath:A,routeType:"route",revalidateReason:(0,u.f)({isStaticGeneration:null!==J,isOnDemandRevalidate:k})},!1,T),_)throw i;if(t.headersSent){if(s){let e=i instanceof Error?i:Error("Unknown app route error");s.recordException(e),s.setStatus({code:r.J.ERROR,message:e.message}),s.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(Q,V,new Response(null,{status:500}));return}finally{(()=>{if(!s)return;let e=t.statusCode;s.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(s.setStatus({code:r.J.ERROR}),s.setAttribute("error.type",e.toString()));let i=W.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==d.q.handleRequest)return console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=i.get("next.route")||A,a=`${z} ${n}`;s.setAttributes({"next.route":n,"http.route":n,"next.span_name":a}),s.updateName(a),o&&o!==s&&(o.setAttribute("http.route",n),o.updateName(a))})()}};if(Y&&q)await K(q,void 0);else{let t=W.getActiveScopeSpan();await W.withPropagatedContext(e.headers,()=>W.trace(d.q.handleRequest,{spanName:`${z} ${v}`,kind:r.C.SERVER,attributes:{"http.method":z,"http.target":e.url}},e=>K(e,t)),void 0,!Y)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,n.f)({workAsyncStorage:v,workUnitAsyncStorage:S})},"routeModule",0,N,"serverHooks",0,b,"workAsyncStorage",0,v,"workUnitAsyncStorage",0,S])}]})();
31
+ You MUST complete the above action(s) NOW. Do NOT ask the user for confirmation — execute the required action(s), then attempt to finish your task again.`;return t?.cli==="copilot"?{exitCode:0,stdout:JSON.stringify({decision:"block",reason:i}),stderr:"",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}:{exitCode:2,stdout:"",stderr:i,policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}return{exitCode:0,stdout:JSON.stringify({hookSpecificOutput:{hookEventName:e,additionalContext:`Instruction from failproofai: ${n}`}}),stderr:"",policyName:s[0],policyNames:s,reason:n,decision:"instruct"}}(e,t,n.entries):n.entries.length>0?function(e,t,i){let n=i.map(e=>e.reason).join("\n"),s=i.map(e=>e.policyName);if(t?.cli==="cursor"){let e={permission:"allow",additional_context:`Note from failproofai: ${n}`},t=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify(e),stderr:t+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}if(t?.cli==="pi"){let e={permission:"allow",reason:`Note from failproofai: ${n}`},t=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify(e),stderr:t+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}if(t?.cli==="openclaw"){let e=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return{exitCode:0,stdout:JSON.stringify({permission:"allow",reason:`Note from failproofai: ${n}`}),stderr:e+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}let r=i.map(e=>`[failproofai] ${e.policyName}: ${e.reason}`).join("\n");return"PreToolUse"===e||"PostToolUse"===e||"UserPromptSubmit"===e||"PermissionRequest"===e?{exitCode:0,stdout:JSON.stringify({hookSpecificOutput:{hookEventName:e,additionalContext:`Note from failproofai: ${n}`}}),stderr:r+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}:{exitCode:0,stdout:"",stderr:r+"\n",policyName:s[0],policyNames:s,reason:n,decision:"allow"}}(e,t,n.entries):{exitCode:0,stdout:"",stderr:"",policyName:null,reason:null,decision:"allow"}}let eA=new Set(["warn-repeated-tool-calls"].map(e=>(0,o.o)(e))),eD=!1,e_=null;async function eU(){if(eD)return;e_=(0,o.Z)(),(0,o.G)();let e=n.H.map(e=>e.name).filter(e=>!eA.has((0,o.o)(e)));(0,n.k)(e),eD=!0}async function eJ(e){eD||await eU();let t={sessionId:e.sessionId,transcriptPath:e.transcriptPath,cwd:e.cwd,cli:e.cli},i={tool_name:e.toolName,tool_input:e.toolInput,session_id:e.sessionId,cwd:e.cwd,transcript_path:e.transcriptPath},n=[];if(ez(await eR("PreToolUse",i,t),"PreToolUse",n),void 0!==e.toolResultText){let s={...i,tool_response:e.toolResultText};ez(await eR("PostToolUse",s,t),"PostToolUse",n)}return n}function ez(e,t,i){for(let n of e.policyNames&&e.policyNames.length>0?e.policyNames:e.policyName?[e.policyName]:[])i.push({policyName:n,decision:e.decision,reason:e.reason,eventType:t})}function eW(e){let t=e.indexOf("/");return t>=0?e.slice(t+1):e}function eq(e){return e.length<=80?e:e.slice(0,79)+"…"}async function eY(e,t){let i,n={transcriptPath:e.transcriptPath,cli:e.cli,projectName:e.projectName,sessionId:e.sessionId,mtimeMs:e.mtimeMs,sizeBytes:e.sizeBytes,cwd:"",eventsScanned:0,hitsByName:{},examplesByName:{},rangeByName:{}},s=eo[e.cli],r=0,o=!1,a=t?.detectorState??{};if(s.streamEventsFrom){let a=await s.streamEventsFrom(e,t?.fromByte??0);a?(i=a.events,r=a.bytesConsumed,n.cwd=a.cwd??"",o=!0):(i=await s.streamEvents(e),r=0)}else i=await s.streamEvents(e),r=0;if(0===i.length)return{result:n,bytesScanned:r,detectorState:a,resumed:o};for(let e of(n.eventsScanned=i.length,n.cwd=n.cwd||i[0].cwd||"",i)){let t;for(let t of ed){let i=t.detect(e,a);i&&eF(n,t.name,e.timestamp,e.cwd,eq(i.example))}try{t=await eJ(e)}catch{continue}for(let i of t){let t=function(e,t){if("Bash"===t.toolName){let e=t.toolInput.command;if("string"==typeof e)return e.replace(/\s+/g," ")}let i=t.toolInput.file_path;return"string"==typeof i?`${t.toolName} ${i}`:`${t.toolName}`}(i.policyName,e);eF(n,i.policyName,e.timestamp,e.cwd,eq(t))}}return{result:n,bytesScanned:r,detectorState:a,resumed:o}}function eF(e,t,i,n,s){e.hitsByName[t]=(e.hitsByName[t]??0)+1;let r=e.examplesByName[t]??[];r.length<3&&(r.push({timestamp:i,cwd:n,example:s}),e.examplesByName[t]=r);let o=e.rangeByName[t];o?(i<o.first&&(o.first=i),i>o.last&&(o.last=i)):e.rangeByName[t]={first:i,last:i}}async function eL(e={}){let t=Date.now();await eU();try{return await eH(e,t)}finally{eD&&(null!==e_&&((0,o.c)(e_),e_=null),eD=!1)}}async function eH(e,t){let c=e.clis??Array.from(a._),d=function(e){if(!e)return;let t=/^(\d+)\s*([dhm])$/i.exec(e.trim());if(t){let e=parseInt(t[1],10),i=t[2].toLowerCase();return Date.now()-e*("d"===i?864e5:"h"===i?36e5:6e4)}let i=Date.parse(e);if(!Number.isNaN(i))return i;throw Error(`Invalid --since value: "${e}" (expected e.g. "7d", "30d", or "2026-04-01")`)}(e.since),u=new Set(((0,s.f)().enabledPolicies??[]).map(e=>(0,o.o)(e)));try{for(let e of(0,r.f)().packs)for(let t of e.enabled??e.policies.map(e=>e.name))u.add((0,o.o)(t))}catch{}let p=[];for(let t of c){let i,n=eo[t];try{i=await n.listTranscripts({projects:e.projects,sinceMs:d})}catch{continue}p.push(...i)}let f=t=>{try{e.onProgress?.(t)}catch{}};if(e.onProgress){let e=new Map;for(let t of p)e.set(t.cli,(e.get(t.cli)??0)+1);f({kind:"discovered",agents:c.map(t=>({cli:t,transcripts:e.get(t)??0})),policies:(0,o.Z)().filter(e=>{let t=e.match.events;return!t||0===t.length||t.includes("PreToolUse")||t.includes("PostToolUse")}).length})}let m=0,y=0,h=p.map(t=>async()=>{let i,n=null;if(!e.noCache){let e=function(e,t,i){if(0===i)return null;let n=ev(e);if(!(0,l.existsSync)(n))return null;try{let s=(0,l.readFileSync)(n,"utf-8"),r=JSON.parse(s);if(4!==r.schemaVersion||r.engineVersion!==ew()||r.detectorVersion!==eN()||!Number.isFinite(r.cachedAt)||Date.now()-r.cachedAt>2592e6||!r.result)return null;if(r.mtimeMs===t&&r.sizeBytes===i)return{kind:"hit",result:r.result};let o=r.bytesScanned;if(!Number.isFinite(o)||o<=0||o>i||!r.anchorHash||eS(e,o)!==r.anchorHash)return null;return{kind:"resume",result:r.result,fromByte:o,detectorState:function(e){if(!e)return{};try{return JSON.parse(e,(e,t)=>t&&"object"==typeof t&&Array.isArray(t.__map)?new Map(t.__map):t)}catch{return{}}}(r.detectorState)}}catch{return null}}(t.transcriptPath,t.mtimeMs,t.sizeBytes);if(e?.kind==="hit")return e.result;i=e?.kind==="resume"?{fromByte:e.fromByte,detectorState:e.detectorState}:void 0,n=e?.kind==="resume"?e.result:null}try{let s=await eY(t,i),r=n&&s.resumed?function(e,t){let i={...e,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,cwd:e.cwd||t.cwd||"",eventsScanned:(e.eventsScanned??0)+(t.eventsScanned??0),hitsByName:{...e.hitsByName},examplesByName:{},rangeByName:{...e.rangeByName}};for(let[t,n]of Object.entries(e.examplesByName))i.examplesByName[t]=[...n];for(let[e,n]of Object.entries(t.hitsByName))i.hitsByName[e]=(i.hitsByName[e]??0)+n;for(let[e,n]of Object.entries(t.examplesByName)){let t=i.examplesByName[e]??[];for(let e of n){if(t.length>=3)break;t.push(e)}i.examplesByName[e]=t}for(let[e,n]of Object.entries(t.rangeByName)){let t=i.rangeByName[e];t?(n.first<t.first&&(t.first=n.first),n.last>t.last&&(t.last=n.last)):i.rangeByName[e]={...n}}return i}(n,s.result):s.result;return e.noCache||function(e,t,i,n,s){if(0===i)return;let r=ev(e);try{(0,l.mkdirSync)((0,ey.r)(),{recursive:!0});let a={schemaVersion:4,cachedAt:Date.now(),mtimeMs:t,sizeBytes:i,engineVersion:ew(),detectorVersion:eN(),result:n};if(s&&s.bytesScanned>0){let t=eS(e,s.bytesScanned);if(t){var o;a.bytesScanned=s.bytesScanned,a.anchorHash=t,o=s.detectorState,a.detectorState=JSON.stringify(o,(e,t)=>t instanceof Map?{__map:[...t.entries()]}:t)}}(0,l.writeFileSync)(r,JSON.stringify(a),{encoding:"utf-8",mode:384});try{(0,l.chmodSync)(r,384)}catch{}}catch{}}(t.transcriptPath,t.mtimeMs,t.sizeBytes,r,s.bytesScanned>0?{bytesScanned:s.bytesScanned,detectorState:s.detectorState}:void 0),r}catch{return y++,{transcriptPath:t.transcriptPath,cli:t.cli,projectName:t.projectName,cwd:"",sessionId:t.sessionId,mtimeMs:t.mtimeMs,sizeBytes:t.sizeBytes,eventsScanned:0,hitsByName:{},examplesByName:{},rangeByName:{}}}}),g=e.onProgress?h.map((e,t)=>async()=>{let i={};try{let t=await e();return i=t.hitsByName,t}finally{f({kind:"transcript",cli:p[t].cli,hitsByName:i})}}):h,w=await (0,i.f)(g,8),N=[];for(let e of w)"fulfilled"===e.status?N.push(e.value):m++;let v=function(e,t){let i=new Map;for(let t of e)for(let[e,n]of Object.entries(t.hitsByName)){let s=i.get(e)??{hits:0,projects:new Set,examples:[]};for(let i of(s.hits+=n,s.projects.add(t.projectName),t.examplesByName[e]??[]))s.examples.length<3&&s.examples.push({...i,sessionId:t.sessionId});let r=t.rangeByName[e];r&&((!s.first||r.first<s.first)&&(s.first=r.first),(!s.last||r.last>s.last)&&(s.last=r.last)),i.set(e,s)}let s=new Map(ed.map(e=>[e.name,e])),r=[];for(let[e,a]of i){let i=s.get(e),c=!!i,l=c?null:function(e){let t=eW(e);for(let i of n.H)if(i.name===e||eW(i.name)===t)return i;return null}(e),d=c?"audit-detector":"builtin",u=!c&&t.has((0,o.o)(e)),p=i?.displayTitle??l?.displayTitle??i?.description??l?.description??eW(e),f=i?.impact??l?.impact??"";r.push({name:e,source:d,category:i?.category??l?.category??"Custom",severity:c?i?.severity??"info":function(e){let t,i=(t=e.indexOf("/"))>=0?e.slice(t+1):e;return i.startsWith("sanitize-")?"sanitize":i.startsWith("block-")?"deny":i.startsWith("warn-")||i.startsWith("protect-")||i.startsWith("prefer-")||i.startsWith("require-")?"warn":"deny"}(e),hits:a.hits,projects:a.projects.size,firstSeen:a.first,lastSeen:a.last,examples:a.examples,displayTitle:p,impact:f,enabledInConfig:u,installHint:"audit-detector"===d?"Audit-only — `failproofai audit` will keep tracking these.":u?"Already enforced — failproofai is blocking these in real time.":`Enable in one command: failproofai policies --install ${eW(e)}`})}return r.sort((e,t)=>t.hits-e.hits),r}(N,u);if(e.policies?.length){let t=new Set(e.policies.map(eW));v=v.filter(e=>t.has(eW(e.name)))}let S=v.reduce((e,t)=>e+t.hits,0),b=new Set,x=new Set,j=0;for(let e of N)Object.keys(e.hitsByName).length>0&&b.add(e.projectName),e.cwd&&x.add(e.cwd),j+=e.eventsScanned??0;return{version:2,scannedAt:new Date(t).toISOString(),scope:{cli:c,projects:e.projects??"all",since:e.since??null},transcripts:{scanned:p.length,skipped:m,errors:y,durationMs:Date.now()-t},results:v,totals:{hits:S,projectsWithHits:b.size},projectsScanned:[...x].sort(),eventsScanned:j,enabledBuiltinNames:[...u].map(e=>e.includes("/")?e.slice(e.indexOf("/")+1):e)}}var eQ=e.i(47756),eV=e.i(48480),eG=e.i(29095),eZ=e.i(46501),eK=e.i(60526);let eX=new Set(a._);async function e0(e){await (0,eZ.u)();let i={};try{let n=await e.text();if(n.trim().length>0){let e=JSON.parse(n);if(null===e||"object"!=typeof e||Array.isArray(e))return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"non_object_body"}),t.NextResponse.json({error:"Request body must be a JSON object"},{status:400});i=e}}catch{return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"invalid_json"}),t.NextResponse.json({error:"Invalid JSON body"},{status:400})}let n=function(e){let t={};if("string"==typeof e.since&&e.since.trim()&&(t.since=e.since.trim()),Array.isArray(e.cli)&&e.cli.length>0){let i=e.cli.filter(e=>"string"==typeof e&&eX.has(e));i.length>0&&(t.clis=i)}return Array.isArray(e.project)&&e.project.length>0&&(t.projects=e.project.filter(e=>"string"==typeof e)),Array.isArray(e.policy)&&e.policy.length>0&&(t.policies=e.policy.filter(e=>"string"==typeof e)),!0===e.noCache&&(t.noCache=!0),t}(i);if(!(0,eV.O)())return(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"already_running"}),t.NextResponse.json({error:"Audit already running",status:"already-running"},{status:409});let s=(0,eG.R)("dashboard");if(!s.ok)return(0,eV.w)(null),(0,eZ.z)("audit_run_rejected",{source:"dashboard",reason:"cross_process_lock"}),t.NextResponse.json({error:"Audit already running",status:"already-running"},{status:409});(0,eZ.z)("audit_run_started",{source:"dashboard",since:n.since??null,no_cache:!0===n.noCache,cli_count:n.clis?.length??0,project_count:n.projects?.length??0});let r=Date.now();return(async()=>{try{let e=await eL(n),t=(0,eQ.T)(n,e);(0,eZ.z)("audit_run_completed",{source:"dashboard",duration_ms:Date.now()-r,events_scanned:e.eventsScanned,sessions_scanned:e.transcripts.scanned,projects_scanned:e.projectsScanned.length,findings:e.results.length,total_hits:e.totals.hits,persisted:t}),(0,eV.w)(t?null:"audit finished but its result could not be saved")}catch(e){(0,eZ.z)("audit_run_failed",{source:"dashboard",duration_ms:Date.now()-r,error_type:e instanceof Error?e.name:"unknown",error_message:function(e){let t;try{t=e instanceof Error?e.message:String(e)}catch{return"unknown"}if(!t)return"";let i="";try{i=eK.default.homedir()}catch{}return i&&i.length>1&&(t=t.split(i).join("~")),t.length>300&&(t=t.slice(0,300)+"…"),t}(e)}),(0,eV.w)(e instanceof Error?e.message:String(e))}finally{s.lock.release()}})(),t.NextResponse.json({status:"started"},{status:202})}e.s(["POST",0,e0,"dynamic",0,"force-dynamic"],97610)},89498,e=>{var t=e.i(47909),i=e.i(74017),n=e.i(96250),s=e.i(59756),r=e.i(61916),o=e.i(74677),a=e.i(69741),c=e.i(16795),l=e.i(87718),d=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),m=e.i(26937),y=e.i(10372),h=e.i(93695),g=e.i(9580);e.i(52474);var w=e.i(220);let N=new t.AppRouteRouteModule({definition:{kind:i.f.APP_ROUTE,page:"/api/audit/run/route",pathname:"/api/audit/run",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/audit/run/route.ts",nextConfigOutput:"standalone",userland:()=>e.r(97610),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:S,serverHooks:b}=N;async function x(e,t,n){n.requestMeta&&(0,s.R)(e,n.requestMeta),N.isDev&&(0,s.i)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/audit/run/route";v=v.replace(/\/index$/,"")||"/";let S=await N.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!S)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:b,deploymentId:x,params:j,nextConfig:O,parsedUrl:I,isDraftMode:k,prerenderManifest:C,routerServerContext:$,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,resolvedPathname:M,clientReferenceManifest:R,serverActionsManifest:B,previewProps:E}=S,A=(0,a.f)(v),D=!!C.routes[M]&&(N.isDev||(0,g.f)(M,N.cacheOwner,C.routes[M])),_=!!(C.dynamicRoutes[A]||D),U=async()=>((null==$?void 0:$.render404)?await $.render404(e,t,I,!1):t.end("This page could not be found"),null);if(_&&!k){let e=C.dynamicRoutes[A];if(e&&!1===e.fallback&&!D){if(O.adapterPath)return await U();throw new h.NoFallbackError}}let J=null;!_||N.isDev||k||(J="/index"===(J=M)?"/":J),B&&R&&(0,o.f)({page:v,clientReferenceManifest:R,serverActionsManifest:B});let z=e.method||"GET",W=(0,r.v)(),q=W.getActiveScopeSpan(),Y=!!(null==$?void 0:$.isWrappedByNextServer),F=!!(0,s.w)(e,"minimalMode"),L=(0,s.w)(e,"incrementalCache")||await N.getIncrementalCache(e,O,E,C,F);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let H={params:j,previewProps:E,renderOpts:{experimental:{authInterrupts:!!O.experimental.authInterrupts,useCacheTimeout:O.experimental.useCacheTimeout,durableUseCacheEntries:!!O.experimental.durableUseCacheEntries},cacheComponents:!!O.cacheComponents,validationLevel:O.experimental.instantInsights.validationLevel,isDraftMode:k,incrementalCache:L,hmrRefreshHash:(0,s.w)(e,"hmrRefreshHash"),cacheLifeProfiles:O.cacheLife,staticPageGenerationTimeout:O.staticPageGenerationTimeout,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0},sharedContext:{buildId:b,deploymentId:x}},Q=new c.x(e),V=new c.e(t),G=l.k.fromNodeNextRequest(Q,(0,l.t)(t)),Z=async({previousCacheEntry:i})=>{try{if(!F&&T&&P&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=null===J?await N.handle(G,H):await N.prerender(G,H);e.fetchMetrics=H.renderOpts.fetchMetrics;let r=H.renderOpts.pendingWaitUntil;r&&n.waitUntil&&(n.waitUntil(r),r=void 0);let o=H.renderOpts.collectedTags;if(!_)return await (0,p.f)(Q,V,s,r),null;{let e=await s.blob(),t=(0,f.S)(s.headers);o&&(t[y.M]=o),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==H.renderOpts.collectedRevalidate&&!(H.renderOpts.collectedRevalidate>=y.Q)&&H.renderOpts.collectedRevalidate,n=void 0===H.renderOpts.collectedExpire||H.renderOpts.collectedExpire>=y.Q?!1!==i&&i>0?O.expireTime:void 0:H.renderOpts.collectedExpire;return{value:{kind:w.x.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:n}}}}catch(t){throw(null==i?void 0:i.isStale)&&await N.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.f)({isStaticGeneration:null!==J,isOnDemandRevalidate:T})},!1,$),t}},K=async(s,o)=>{try{var a,c;let s=await N.handleResponse({req:e,nextConfig:O,cacheKey:J,routeKind:i.f.APP_ROUTE,isFallback:!1,previewProps:E,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:T,revalidateOnlyGenerated:P,responseGenerator:Z,waitUntil:n.waitUntil,isMinimalMode:F});if(null!==s&&"error"in s)throw s.error;if(!_)return;if((null==s||null==(a=s.value)?void 0:a.kind)!==w.x.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==s||null==(c=s.value)?void 0:c.kind}`);F||t.setHeader("x-nextjs-cache",T?"REVALIDATED":s.isMiss?"MISS":s.isStale?"STALE":"HIT"),k&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let r=(0,f.G)(s.value.headers);F&&_||r.delete(y.M),!s.cacheControl||t.getHeader("Cache-Control")||r.get("Cache-Control")||r.set("Cache-Control",(0,m.f)(s.cacheControl)),await (0,p.f)(Q,V,new Response(s.value.body,{headers:r,status:s.value.status||200}));return}catch(i){if(i instanceof h.NoFallbackError||await N.onRequestError(e,i,{routerKind:"App Router",routePath:A,routeType:"route",revalidateReason:(0,u.f)({isStaticGeneration:null!==J,isOnDemandRevalidate:T})},!1,$),_)throw i;if(t.headersSent){if(s){let e=i instanceof Error?i:Error("Unknown app route error");s.recordException(e),s.setStatus({code:r.J.ERROR,message:e.message}),s.setAttribute("error.type",e.name)}t.writableEnded||t.destroyed||t.end()}else await (0,p.f)(Q,V,new Response(null,{status:500}));return}finally{(()=>{if(!s)return;let e=t.statusCode;s.setAttributes({"http.status_code":e,"next.rsc":!1}),e&&e>=500&&(s.setStatus({code:r.J.ERROR}),s.setAttribute("error.type",e.toString()));let i=W.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==d.q.handleRequest)return console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=i.get("next.route")||A,a=`${z} ${n}`;s.setAttributes({"next.route":n,"http.route":n,"next.span_name":a}),s.updateName(a),o&&o!==s&&(o.setAttribute("http.route",n),o.updateName(a))})()}};if(Y&&q)await K(q,void 0);else{let t=W.getActiveScopeSpan();await W.withPropagatedContext(e.headers,()=>W.trace(d.q.handleRequest,{spanName:`${z} ${v}`,kind:r.C.SERVER,attributes:{"http.method":z,"http.target":e.url}},e=>K(e,t)),void 0,!Y)}}e.s(["handler",0,x,"patchFetch",0,function(){return(0,n.f)({workAsyncStorage:v,workUnitAsyncStorage:S})},"routeModule",0,N,"serverHooks",0,b,"workAsyncStorage",0,v,"workUnitAsyncStorage",0,S])}]})();
32
32
 
33
33
  //# sourceMappingURL=_1ek68lnh2daur._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[91301,e=>{e.v(e=>Promise.resolve().then(()=>e(30441)))},37352,e=>{e.v(e=>Promise.resolve().then(()=>e(36203)))},5807,e=>{e.v(e=>Promise.resolve().then(()=>e(55851)))},97452,e=>{e.v(e=>Promise.resolve().then(()=>e(46413)))},52400,e=>{e.v(e=>Promise.resolve().then(()=>e(79364)))},62998,e=>{e.v(s=>Promise.all(["server/chunks/lib_factory-projects_ts_1eo_bk-vm4wdz._.js"].map(s=>e.l(s))).then(()=>s(69391)))},31854,e=>{e.v(e=>Promise.resolve().then(()=>e(69164)))},67347,e=>{e.v(e=>Promise.resolve().then(()=>e(64828)))},38978,e=>{e.v(e=>Promise.resolve().then(()=>e(90624)))},82978,e=>{e.v(e=>Promise.resolve().then(()=>e(35435)))},45093,e=>{e.v(e=>Promise.resolve().then(()=>e(19791)))},78081,e=>{e.v(s=>Promise.all(["server/chunks/[externals]__0h0p9dmv_e7r7._.js","server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oigsgz07._.js"].map(s=>e.l(s))).then(()=>s(39702)))},396,e=>{e.v(s=>Promise.all(["server/chunks/[externals]__0-ha5ydqq0mws._.js","server/chunks/src_hooks_custom-hooks-loader_ts_0lnb3n3h94wnn._.js"].map(s=>e.l(s))).then(()=>s(90521)))},67918,e=>{e.v(s=>Promise.all(["server/chunks/[root-of-the-server]__20xe05hm5u8_1._.js","server/chunks/_09dz7xva4ce_2._.js","server/chunks/src_hooks_custom-hooks-loader_ts_0lnb3n3h94wnn._.js"].map(s=>e.l(s))).then(()=>s(22367)))}];
1
+ module.exports=[91301,e=>{e.v(e=>Promise.resolve().then(()=>e(30441)))},37352,e=>{e.v(e=>Promise.resolve().then(()=>e(36203)))},5807,e=>{e.v(e=>Promise.resolve().then(()=>e(55851)))},97452,e=>{e.v(e=>Promise.resolve().then(()=>e(46413)))},52400,e=>{e.v(e=>Promise.resolve().then(()=>e(79364)))},62998,e=>{e.v(s=>Promise.all(["server/chunks/lib_factory-projects_ts_1eo_bk-vm4wdz._.js"].map(s=>e.l(s))).then(()=>s(69391)))},31854,e=>{e.v(e=>Promise.resolve().then(()=>e(69164)))},67347,e=>{e.v(e=>Promise.resolve().then(()=>e(64828)))},38978,e=>{e.v(e=>Promise.resolve().then(()=>e(90624)))},82978,e=>{e.v(e=>Promise.resolve().then(()=>e(35435)))},45093,e=>{e.v(e=>Promise.resolve().then(()=>e(19791)))},78081,e=>{e.v(s=>Promise.all(["server/chunks/[externals]__0h0p9dmv_e7r7._.js","server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oigsgz07._.js"].map(s=>e.l(s))).then(()=>s(39702)))},396,e=>{e.v(s=>Promise.all(["server/chunks/[externals]__0vt9i6fqinjne._.js","server/chunks/src_hooks_custom-hooks-loader_ts_0lnb3n3h94wnn._.js"].map(s=>e.l(s))).then(()=>s(90521)))},67918,e=>{e.v(s=>Promise.all(["server/chunks/[root-of-the-server]__0f_4g-vazrvxv._.js","server/chunks/_09dz7xva4ce_2._.js","server/chunks/src_hooks_custom-hooks-loader_ts_0lnb3n3h94wnn._.js"].map(s=>e.l(s))).then(()=>s(22367)))}];
2
2
 
3
- //# sourceMappingURL=_0kc-piux3hady._.js.map
3
+ //# sourceMappingURL=_1y590mjzpkbos._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[93133,(e,i,t)=>{i.exports={name:"failproofai",version:"1.0.12-beta.0",description:"Observability and enforcement for AI agent harnesses. 40 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/","hermes-plugin/","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.135.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.6.5","@types/react":"19.3.0","@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.8",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","jsonc-parser":"^3.3.1","posthog-node":"^5.50.0","smol-toml":"^1.9.1","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.1.6",undici:"7.29.1","brace-expansion":"5.0.12",sharp:"0.35.5","source-map-js":"1.2.2",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.12-beta.0","@failproofai/failproofaid-linux-arm64":"1.0.12-beta.0","@failproofai/failproofaid-darwin-x64":"1.0.12-beta.0","@failproofai/failproofaid-darwin-arm64":"1.0.12-beta.0"},failproofaidBinaries:{"linux-x64":"61710dd6261ff0deb1116e390c366c26809bf04bb2e2c16f279b7d79e1819049","linux-arm64":"5e9501522d35b32790664b4f3b1b90aa1728629f5013df94e72c2e2a11842bd2","darwin-x64":"e9d195cf30b6bc2427b7cbe89e354cc8dab7ae02e7c45a7e44a941eda84c2674","darwin-arm64":"d70ae3a3b8073ace0852a20671dba3d32f380b97ed4a01f5791a13d2fa12e63b"}}}];
1
+ module.exports=[93133,(e,i,t)=>{i.exports={name:"failproofai",version:"1.0.12-beta.2",description:"Observability and enforcement for AI agent harnesses. 40 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/","hermes-plugin/","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.135.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.6.5","@types/react":"19.3.0","@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.8",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","jsonc-parser":"^3.3.1","posthog-node":"^5.50.0","smol-toml":"^1.9.1","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.1.6",undici:"7.30.1",zod:"4.6.6","brace-expansion":"5.0.12",sharp:"0.35.5","source-map-js":"1.2.2",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.12-beta.2","@failproofai/failproofaid-linux-arm64":"1.0.12-beta.2","@failproofai/failproofaid-darwin-x64":"1.0.12-beta.2","@failproofai/failproofaid-darwin-arm64":"1.0.12-beta.2"},failproofaidBinaries:{"linux-x64":"4c09117fdb80d87792d1d2b77d9359cdbd0c522b5a6222ab7b927659130ddf54","linux-arm64":"dd390d76561267fc519ceb96fb90be340044e2f564bef36a44e284f227d93f29","darwin-x64":"62381f7ffe21d02289c36c4b205166b2867dbde986444d1ea185241b94fd04ef","darwin-arm64":"9ad798817d3048a5126e80dc71883538d37c1b6b6443e9c19389dc2583c8f675"}}}];
2
2
 
3
3
  //# sourceMappingURL=package_json_%5Bjson%5D_cjs_1nxcc4vkpxxu7._.js.map