failproofai 1.0.12-beta.0 → 1.0.12-beta.1

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 (195) 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 +1 -1
  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]__0588st-tpiuia._.js +3 -0
  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]__0vcyntk4snf0f._.js → [root-of-the-server]__0b78b0j8iyv6l._.js} +1 -1
  77. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bigvy9xmv2ka._.js +1 -1
  78. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h86bl2qf0k_o._.js +1 -1
  79. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1_xbg2kx30wp-._.js → [root-of-the-server]__0naevg4bcoh54._.js} +1 -1
  80. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0pia5h3p8re4c._.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/_0eoura3_9gjb-._.js +1 -1
  87. package/.next/standalone/.next/server/chunks/ssr/_0pedwblqdoh58._.js +1 -1
  88. package/.next/standalone/.next/server/chunks/ssr/_128ebxr83nk6g._.js +3 -0
  89. package/.next/standalone/.next/server/chunks/ssr/{_1gb0ifpkowwub._.js → _1a3tubds7s7ow._.js} +10 -9
  90. package/.next/standalone/.next/server/chunks/ssr/_1djqs9i27e4kg._.js +1 -1
  91. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo5_vm5f.js +2 -2
  92. package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9snixb5fd-._.js +1 -1
  93. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47q0xq5w._.js +1 -1
  94. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x33jqb6._.js +1 -1
  95. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpcz0uxur._.js +1 -1
  96. package/.next/standalone/.next/server/chunks/ssr/app_settings_02tf1h47jmhhd._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_00jxj8foxqz5t.js → node_modules_html-to-image_es_index_1i8oid1gc7s1f.js} +1 -1
  98. package/.next/standalone/.next/server/chunks/ssr/package_json_[json]_cjs_013tntikdft59._.js +1 -1
  99. package/.next/standalone/.next/server/chunks/ssr/src_hooks_06kzv9ddabn3_._.js +1 -1
  100. package/.next/standalone/.next/server/chunks/ssr/src_hooks_0agdmptetetdt._.js +5 -0
  101. package/.next/standalone/.next/server/chunks/ssr/src_hooks_0mdwgjisv4fub._.js +5 -0
  102. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1cv9_c4l1tzrm._.js +1 -1
  103. package/.next/standalone/.next/server/chunks/ssr/src_hooks_daemon-client_ts_0k41_i7jg6ndv._.js +1 -1
  104. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  105. package/.next/standalone/.next/server/pages/404.html +1 -1
  106. package/.next/standalone/.next/server/pages/500.html +1 -1
  107. package/.next/standalone/.next/server/preview-props.json +3 -3
  108. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  109. package/.next/standalone/.next/server/server-reference-manifest.json +23 -23
  110. package/.next/standalone/.next/static/chunks/{3tn1bzk094e8e.js → 0_zfad4co-t2z.js} +1 -1
  111. package/.next/standalone/.next/static/chunks/0jutamwqz8pg5.js +1 -0
  112. package/.next/standalone/.next/static/chunks/{2meqb9kygrncb.js → 114hbolvrv94e.js} +1 -1
  113. package/.next/standalone/.next/static/chunks/{2znt1784j9gd9.js → 18433qz-8njv3.js} +1 -1
  114. package/.next/standalone/.next/static/chunks/1b32-afqacaen.js +1 -0
  115. package/.next/standalone/.next/static/chunks/{13jv-xvabeb62.js → 1p-hsi58i-6h0.js} +1 -1
  116. package/.next/standalone/.next/static/chunks/{0pjxnp927y7_j.js → 2-tf6_7u623kd.js} +1 -1
  117. package/.next/standalone/.next/static/chunks/{2qz5piiir-qqm.js → 24w3x2da9sk49.js} +1 -1
  118. package/.next/standalone/.next/static/chunks/{0a-ccsp3xmypz.js → 3-pku9qwv1yfu.js} +1 -1
  119. package/.next/standalone/.next/static/chunks/42e8zab314654.js +1 -0
  120. package/.next/standalone/fp-cloud-cli/CHANGELOG.md +41 -0
  121. package/.next/standalone/fp-cloud-cli/README.md +42 -1
  122. package/.next/standalone/fp-cloud-cli/fp_cli/client.py +117 -12
  123. package/.next/standalone/fp-cloud-cli/fp_cli/commands/fleet_cmds.py +285 -19
  124. package/.next/standalone/fp-cloud-cli/fp_cli/commands/policies_cmds.py +84 -18
  125. package/.next/standalone/fp-cloud-cli/fp_cli/enforcement.py +170 -6
  126. package/.next/standalone/fp-cloud-cli/fp_cli/models.py +89 -6
  127. package/.next/standalone/fp-cloud-cli/fp_cli/output.py +259 -21
  128. package/.next/standalone/fp-cloud-cli/fp_cli/policy_check.py +8 -5
  129. package/.next/standalone/fp-cloud-cli/skill/SKILL.md +2 -2
  130. package/.next/standalone/fp-cloud-cli/skill/references/commands.md +17 -9
  131. package/.next/standalone/fp-cloud-cli/tests/test_cloud_jev.py +692 -0
  132. package/.next/standalone/fp-cloud-cli/tests/test_enforcement_logic.py +46 -0
  133. package/.next/standalone/fp-cloud-cli/tests/test_output.py +23 -0
  134. package/.next/standalone/hermes-plugin/README.md +6 -4
  135. package/.next/standalone/hermes-plugin/__init__.py +16 -0
  136. package/.next/standalone/hermes-plugin/client.py +5 -1
  137. package/.next/standalone/hermes-plugin/plugin.yaml +1 -1
  138. package/.next/standalone/package.json +9 -9
  139. package/.next/standalone/server.js +1 -1
  140. package/bin/failproofai.mjs +17 -1
  141. package/dist/cli.mjs +2930 -1747
  142. package/dist/worker.mjs +1450 -145
  143. package/hermes-plugin/README.md +6 -4
  144. package/hermes-plugin/__init__.py +16 -0
  145. package/hermes-plugin/client.py +5 -1
  146. package/hermes-plugin/plugin.yaml +1 -1
  147. package/package.json +9 -9
  148. package/src/audit/open-browser.ts +1 -19
  149. package/src/hooks/agent-roster.ts +172 -0
  150. package/src/hooks/agent-targets.ts +60 -0
  151. package/src/hooks/cloud-connection.ts +97 -27
  152. package/src/hooks/cloud-enrollment-cli.ts +7 -4
  153. package/src/hooks/cloud-introspect.ts +2 -5
  154. package/src/hooks/cloud-managed-policies.ts +380 -20
  155. package/src/hooks/cloud-policy-errors.ts +481 -0
  156. package/src/hooks/config-status.ts +1 -1
  157. package/src/hooks/configure-wizard.ts +15 -311
  158. package/src/hooks/custom-hooks-loader.ts +26 -3
  159. package/src/hooks/daemon-client.ts +9 -4
  160. package/src/hooks/daemon-service.ts +2 -1
  161. package/src/hooks/effective-reviewers.ts +22 -1
  162. package/src/hooks/fp-home.ts +6 -0
  163. package/src/hooks/handler.ts +235 -18
  164. package/src/hooks/health-probe.ts +15 -0
  165. package/src/hooks/integrations.ts +18 -11
  166. package/src/hooks/jev-cli.ts +197 -0
  167. package/src/hooks/jev-cloud-connection.ts +92 -0
  168. package/src/hooks/manager.ts +122 -16
  169. package/src/hooks/pack-failclosed.ts +2 -0
  170. package/src/hooks/pack-manifest.ts +8 -1
  171. package/src/hooks/policy-evaluator.ts +5 -1
  172. package/src/hooks/policy-registry.ts +3 -2
  173. package/src/hooks/policy-reviewability.ts +21 -5
  174. package/src/hooks/semantic/cloud-jev-health.ts +227 -0
  175. package/src/hooks/semantic/cloud-jev.ts +677 -0
  176. package/src/hooks/semantic/jev-client.ts +18 -1
  177. package/src/hooks/semantic/jev-config.ts +173 -3
  178. package/src/hooks/semantic/jev-review.ts +129 -10
  179. package/src/hooks/semantic/pack-policies.ts +2 -1
  180. package/src/hooks/semantic/types.ts +8 -0
  181. package/src/hooks/session-pause-cli.ts +1 -1
  182. package/src/hooks/tui.ts +0 -271
  183. package/src/hooks/worker-server.ts +5 -1
  184. package/.next/standalone/.next/server/chunks/src_hooks_1aveq0uhs2t1b._.js +0 -5
  185. package/.next/standalone/.next/server/chunks/src_hooks_1eem5a7cyqlb2._.js +0 -3
  186. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ts0fg5yih1c1._.js +0 -3
  187. package/.next/standalone/.next/server/chunks/ssr/_1ve8y151ua7qx._.js +0 -3
  188. package/.next/standalone/.next/server/chunks/ssr/src_hooks_effective-reviewers_ts_1h4wtvo55j16x._.js +0 -5
  189. package/.next/standalone/.next/static/chunks/2ank2u3apy8m6.js +0 -1
  190. package/.next/standalone/.next/static/chunks/2ohktp_-lkv3x.js +0 -1
  191. package/.next/standalone/.next/static/chunks/2py0eldhwz8ay.js +0 -1
  192. package/src/hooks/cloud-login.ts +0 -245
  193. /package/.next/standalone/.next/static/{SNr7o_-G4kNBQTR-iLZMM → xq8UgF5yFxty1VWxY2hyn}/_buildManifest.js +0 -0
  194. /package/.next/standalone/.next/static/{SNr7o_-G4kNBQTR-iLZMM → xq8UgF5yFxty1VWxY2hyn}/_clientMiddlewareManifest.js +0 -0
  195. /package/.next/standalone/.next/static/{SNr7o_-G4kNBQTR-iLZMM → xq8UgF5yFxty1VWxY2hyn}/_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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.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/0jutamwqz8pg5.js","/_next/static/chunks/42e8zab314654.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/0jutamwqz8pg5.js","/_next/static/chunks/24w3x2da9sk49.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/0jutamwqz8pg5.js","/_next/static/chunks/24w3x2da9sk49.js"],"async":false}},"ssrModuleMapping":{"39756":{"*":{"id":2420,"name":"*","chunks":["server/chunks/ssr/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/_128ebxr83nk6g._.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/0jutamwqz8pg5.js"],"[project]/app/error":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/0jutamwqz8pg5.js","static/chunks/32s3y34p0t2pe.js"],"[project]/app/global-error":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/0jutamwqz8pg5.js","static/chunks/42e8zab314654.js"],"[project]/app/settings/page":["static/chunks/2_sj5ssr_m_wm.js","static/chunks/2j5zpvs3pd7mw.js","static/chunks/0jutamwqz8pg5.js","static/chunks/24w3x2da9sk49.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.1",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.1","@failproofai/failproofaid-linux-arm64":"1.0.12-beta.1","@failproofai/failproofaid-darwin-x64":"1.0.12-beta.1","@failproofai/failproofaid-darwin-arm64":"1.0.12-beta.1"},failproofaidBinaries:{"linux-x64":"df15e65b60066248038c8ac6d423bffcb0e38637e8a42fa22250afa111fd46ac","linux-arm64":"59d7ae758c8981c5e0a89eb64be18ebd278213525dd4447891a51be6bb018ed9","darwin-x64":"b0d3d39abaa02ed0a14dddc68277975a7a23e200830b7edbffdedde3af81ce73","darwin-arm64":"a6d343b5926e84c0eb437af307f85b69b3128f94c6e34acbf9d0b13a7c7e9d63"}}}];
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.1",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.1","@failproofai/failproofaid-linux-arm64":"1.0.12-beta.1","@failproofai/failproofaid-darwin-x64":"1.0.12-beta.1","@failproofai/failproofaid-darwin-arm64":"1.0.12-beta.1"},failproofaidBinaries:{"linux-x64":"df15e65b60066248038c8ac6d423bffcb0e38637e8a42fa22250afa111fd46ac","linux-arm64":"59d7ae758c8981c5e0a89eb64be18ebd278213525dd4447891a51be6bb018ed9","darwin-x64":"b0d3d39abaa02ed0a14dddc68277975a7a23e200830b7edbffdedde3af81ce73","darwin-arm64":"a6d343b5926e84c0eb437af307f85b69b3128f94c6e34acbf9d0b13a7c7e9d63"}}}];
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),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||d.observeVerdict)&&"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}
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
 
@@ -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.1",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.1","@failproofai/failproofaid-linux-arm64":"1.0.12-beta.1","@failproofai/failproofaid-darwin-x64":"1.0.12-beta.1","@failproofai/failproofaid-darwin-arm64":"1.0.12-beta.1"},failproofaidBinaries:{"linux-x64":"df15e65b60066248038c8ac6d423bffcb0e38637e8a42fa22250afa111fd46ac","linux-arm64":"59d7ae758c8981c5e0a89eb64be18ebd278213525dd4447891a51be6bb018ed9","darwin-x64":"b0d3d39abaa02ed0a14dddc68277975a7a23e200830b7edbffdedde3af81ce73","darwin-arm64":"a6d343b5926e84c0eb437af307f85b69b3128f94c6e34acbf9d0b13a7c7e9d63"}}}];
2
2
 
3
3
  //# sourceMappingURL=package_json_%5Bjson%5D_cjs_1nxcc4vkpxxu7._.js.map
@@ -0,0 +1,5 @@
1
+ (()=>{"use strict";module.exports=[16560,38441,e=>{let t=["claude","codex","copilot","cursor","opencode","pi","hermes","openclaw","factory","devin","antigravity","goose"],r=["SessionStart","SessionEnd","UserPromptSubmit","PreToolUse","PermissionRequest","PermissionDenied","PostToolUse","PostToolUseFailure","Notification","SubagentStart","SubagentStop","TaskCreated","TaskCompleted","Stop","StopFailure","TeammateIdle","InstructionsLoaded","ConfigChange","CwdChanged","FileChanged","WorktreeCreate","WorktreeRemove","PreCompact","PostCompact","Elicitation","ElicitationResult","UserPromptExpansion","PostToolBatch","Setup"].filter(e=>"WorktreeCreate"!==e);e.s(["X",0,["PreToolUse","PostToolUse","PreInvocation","Stop"],"m",0,["user","project"],"H",0,{Bash:{CommandLine:"command",Cwd:"cwd"},Write:{TargetFile:"file_path",CodeContent:"content"},Edit:{TargetFile:"file_path"},Read:{TargetFile:"file_path",AbsolutePath:"file_path",File:"file_path"}},"I",0,{run_command:"Bash",write_to_file:"Write",read_file:"Read",view_file:"Read",edit_file:"Edit",replace_file_content:"Edit",list_dir:"LS",find_by_name:"Glob",grep_search:"Grep",read_url_content:"WebFetch",search_web:"WebSearch"},"J",0,r,"p",0,{session_start:"SessionStart",pre_tool_use:"PreToolUse",permission_request:"PermissionRequest",post_tool_use:"PostToolUse",user_prompt_submit:"UserPromptSubmit",stop:"Stop",subagent_start:"SubagentStart",pre_compact:"PreCompact",post_compact:"PostCompact",subagent_stop:"SubagentStop"},"W",0,["session_start","pre_tool_use","permission_request","post_tool_use","user_prompt_submit","stop","subagent_start","pre_compact","post_compact","subagent_stop"],"L",0,["user","project"],"j",0,{apply_patch:"Edit",write_stdin:"Bash"},"d",0,["SessionStart","SessionEnd","UserPromptSubmit","PreToolUse","PostToolUse","Stop","SubagentStop","PostToolUseFailure","ErrorOccurred","PreCompact","PermissionRequest","Notification"],"w",0,["user","project"],"U",0,{Read:{path:"file_path"},Write:{path:"file_path",file_text:"content"},Edit:{path:"file_path",old_str:"old_string",new_str:"new_string"}},"s",0,{bash:"Bash",powershell:"Bash",list_bash:"Bash",read_bash:"Bash",stop_bash:"Bash",write_bash:"Bash",list_powershell:"Bash",read_powershell:"Bash",stop_powershell:"Bash",write_powershell:"Bash",read:"Read",view:"Read",show_file:"Read",write:"Write",create:"Write",edit:"Edit",apply_patch:"Edit",str_replace_editor:"Edit",glob:"Glob",grep:"Grep",rg:"Grep",ls:"LS",web_fetch:"WebFetch"},"t",0,["sessionStart","sessionEnd","beforeSubmitPrompt","preToolUse","postToolUse","stop","subagentStop"],"Y",0,["user","project"],"D",0,{Shell:"Bash"},"E",0,["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","PermissionRequest","Stop","SessionEnd"],"c",0,["user","project"],"u",0,{exec:"Bash"},"n",0,["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","Notification","Stop","SubagentStop","PreCompact","SessionEnd"],"B",0,["user","project"],"r",0,{Execute:"Bash",Read:"Read",Edit:"Edit",Create:"Write",Grep:"Grep",Glob:"Glob",LS:"LS",FetchUrl:"WebFetch",WebSearch:"WebSearch",TodoWrite:"TodoWrite",Task:"Task"},"Z",0,"__failproofai_hook__","i",0,["SessionStart","UserPromptSubmit","PreToolUse","PostToolUse","SessionEnd"],"x",0,["user","project"],"M",0,{Read:{path:"file_path",source:"file_path"},Write:{path:"file_path"},Edit:{path:"file_path"},LS:{path:"file_path"}},"K",0,{shell:"Bash",write:"Write",edit:"Edit",view:"Read",read_image:"Read",glob:"Glob",grep:"Grep",tree:"LS",delegate:"Task",todo__todo_write:"TodoWrite"},"y",0,["pre_tool_call","post_tool_call","on_session_start","on_session_end","subagent_stop"],"N",0,["user"],"z",0,{Read:{path:"file_path"},Write:{path:"file_path"},Edit:{path:"file_path"}},"C",0,{terminal:"Bash",bash:"Bash",read_file:"Read",write_file:"Write",patch:"Edit",web_search:"WebSearch",web_extract:"WebFetch",search_files:"Grep",todo:"TodoWrite",todo_list:"TodoWrite",process_manage:"process",cronjob_manage:"cronjob"},"F",0,["user","project","local"],"_",0,t,"P",0,["before_tool_call","after_tool_call","before_agent_run","before_agent_finalize","session_start","session_end","subagent_ended","before_compaction"],"G",0,["user"],"v",0,{Read:{path:"file_path"},Write:{path:"file_path"},Edit:{path:"file_path"}},"e",0,{exec:"Bash",read:"Read",write:"Write",edit:"Edit",grep:"Grep",glob:"Glob",web_search:"WebSearch",web_fetch:"WebFetch"},"f",0,["tool.execute.before","tool.execute.after","session.created","session.deleted","session.idle","message.updated","permission.ask"],"O",0,["user","project"],"k",0,{Read:{filePath:"file_path"},Write:{filePath:"file_path"},Edit:{filePath:"file_path",oldString:"old_string",newString:"new_string",replaceAll:"replace_all"}},"A",0,{bash:"Bash",read:"Read",write:"Write",edit:"Edit",apply_patch:"Edit",glob:"Glob",grep:"Grep",list:"LS",webfetch:"WebFetch",websearch:"WebSearch",todowrite:"TodoWrite",todoread:"TodoRead"},"Q",0,["session_start","session_shutdown","input","tool_call","user_bash","tool_result","agent_end"],"R",0,["user","project"],"V",0,{Read:{path:"file_path"},Write:{path:"file_path"},Edit:{path:"file_path"}},"S",0,{bash:"Bash",read:"Read",write:"Write",edit:"Edit",glob:"Glob",grep:"Grep"}],38441);let i=/^agt_[0-9a-f]{16,32}$/,o=new Set(t);e.s(["i",0,function(e,t){return void 0===e||!!(!(!t||"object"!=typeof t||Array.isArray(t))&&Object.keys(t).every(e=>"integration"===e||"instanceId"===e)&&"string"==typeof t.integration&&o.has(t.integration)&&"string"==typeof t.instanceId&&i.test(t.instanceId))&&e.some(e=>e.integration===t.integration&&(void 0===e.instanceId||e.instanceId===t.instanceId))},"P",0,function(e,t){if(null==e)return;if(t<3||!Array.isArray(e)||e.length<1||e.length>32)throw Error("invalid agentTargets in cloud-managed active manifest");let r=new Set;return e.map(e=>{if(!e||"object"!=typeof e||Array.isArray(e)||Object.keys(e).some(e=>"integration"!==e&&"instanceId"!==e)||"string"!=typeof e.integration||!o.has(e.integration)||void 0!==e.instanceId&&("string"!=typeof e.instanceId||!i.test(e.instanceId)))throw Error("invalid agentTargets in cloud-managed active manifest");let t=`${e.integration}\0${e.instanceId??""}`;if(r.has(t))throw Error("duplicate agentTargets in cloud-managed active manifest");return r.add(t),{integration:e.integration,...void 0!==e.instanceId?{instanceId:e.instanceId}:{}}})}],16560)},16774,99891,98901,52306,e=>{let t;var r=e.i(66680),i=e.i(2157),o=e.i(50227),a=e.i(24214),n=e.i(79857),s=e.i(16560);e.i(97348);let l=new Set(["destructive-deletion","production-infra-change","git-history-rewrite","push-to-protected-branch","commit-on-protected-branch","secret-exposure","credential-exfiltration","remote-code-execution","privilege-escalation","database-destruction","read-outside-workspace","agent-config-tampering","system-modification","env-secrets-dump","external-destructive-action","external-data-egress"]),c=new Set,d=e=>"string"==typeof e&&e.length>0;function f(e){let t={};("hard"===e.authority||"reviewable"===e.authority)&&(t.authority=e.authority);let r=e.reviewedBy;return Array.isArray(r)&&r.length>0&&r.every(d)&&(t.reviewedBy=[...r]),t}e.s(["_",0,c,"g",0,l,"i",0,f,"d",0,function(e,t=c,r){let i=e?.authority==="reviewable";if(!e||"hard"==(!0!==e.alwaysOn&&"reviewable"===e.authority&&Array.isArray(e.reviewedBy)&&e.reviewedBy.filter(e=>"string"==typeof e&&e.length>0).length>0?"reviewable":"hard")){var o;return i?{authority:"hard",downgraded:!0===(o=e).alwaysOn?"it is alwaysOn, and the self-protection guard is never reviewable":Array.isArray(o.reviewedBy)&&0!==o.reviewedBy.length?"reviewedBy is not a list of semantic policy names":"reviewedBy does not name any semantic policy"}:{authority:"hard"}}let a=e.reviewedBy;if(!a.every(d))return{authority:"hard",downgraded:"reviewedBy is not a list of semantic policy names"};let n=a.filter(e=>!t.has(e));return 0!==t.size||n.some(e=>r?.has(e))?n.length>0?{authority:"hard",downgraded:`reviewedBy names ${n.map(e=>(function(e,t,r){let i=JSON.stringify(e),o=r?.get(e);if(o)return`${i}, which packs ${o.join(" and ")} declare differently, so it is asked for neither`;if(t===l)return`${i}, which is not a semantic policy in this build`;let a=[...t].sort(),n=a.length>6?`${a.slice(0,6).join(", ")} and ${a.length-6} more`:a.join(", ");return`${i}, which is not among the Jev checks it is judged against (${n})`})(e,t,r)).join("; ")}`}:{authority:"reviewable",reviewedBy:[...new Set(a)]}:{authority:"hard"}}],99891);let p=[1,2,3],h=null;function u(){if(function(){try{let e=JSON.parse((0,i.readFileSync)((0,n.y)(),"utf8"));if(!e||"object"!=typeof e||Array.isArray(e))return!1;let t=e.mode;return!!t&&"object"==typeof t&&!Array.isArray(t)&&"oss"===t.kind}catch{return!1}}()){h=null;return}let e=(0,o.resolve)(process.env.FAILPROOFAI_CLOUD_POLICY_DIR??(0,n.I)(),"active.json"),t=function(e){try{let t=(0,i.statSync)(e,{bigint:!0});return`${t.dev}:${t.ino}:${t.mode}:${t.size}:${t.mtimeNs}:${t.ctimeNs}`}catch(t){let e=t.code;if("ENOENT"===e||"ENOTDIR"===e)return null;throw t}}(e);if(null===t){h=null;return}if(h&&h.path===e&&h.version===t)return h.value;let r=JSON.parse((0,i.readFileSync)(e,"utf8"));return h={path:e,version:t,value:r},r}let m=/^cloud:[^/]+\/./,y=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/,g=/^(?:0|[1-9]\d*)$/;function b(e){if("string"!=typeof e)return null;let t=y.exec(e);return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3]),prerelease:void 0===t[4]?[]:t[4].split(".").map(e=>g.test(e)?Number(e):e)}:null}let w=(e,t)=>e<t?-1:+(e>t),_=["always","protected_branch","in_git_repo","has_paths","paths_outside_project","system_or_root_paths"];function v(e){return"string"==typeof e&&_.includes(e)}e.s(["B",0,_,"M",0,v],98901);let $=[1],S=/^[a-f0-9]{64}$/,E=/^[A-Za-z0-9._-]{1,64}\/[A-Za-z0-9._-]{1,64}$/,A=/^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$/,O=/^[0-9a-f]{7,40}$/,P=/^[A-Za-z0-9._-]{1,128}$/,j=/^[a-z][a-z0-9_]{0,31}$/,k=new Set(["exempt","user_asked"]),T=new Set(["shell","write","read","network","other"]),I=new Set(["string","number","boolean","string[]","pattern[]"]);function R(e,t,r,i){if("string"!=typeof r||0===r.length)throw Error(`${e} is missing ${t}`);if(r.length>i)throw Error(`${e} has a ${t} of ${r.length} characters, over the ${i}-character cap`);return r}function F(e,t,r){let i;if(!t||"object"!=typeof t||Array.isArray(t))throw Error(`${e} is not an object`);if(null!==r)i=r;else{if("string"!=typeof t.id||!j.test(t.id))throw Error(`${e} has an unsafe id ${JSON.stringify(t.id)}`);if(k.has(t.id))throw Error(`${e} uses the reserved probe id ${JSON.stringify(t.id)}`);i=t.id}let o=R(e,"instructions",t.instructions,600);if(void 0===t.criteria)return{id:i,instructions:o};if(!t.criteria||"object"!=typeof t.criteria||Array.isArray(t.criteria))throw Error(`${e} has criteria that is not an object`);let a=t.criteria;return{id:i,instructions:o,criteria:{true:R(e,"criteria.true",a.true,300),false:R(e,"criteria.false",a.false,300)}}}function W(){let e,t=process.env.FAILPROOFAI_PACK_DIR?(0,o.resolve)(process.env.FAILPROOFAI_PACK_DIR,"installed.json"):(0,n.v)();if(!(0,i.existsSync)(t))return{packs:[],errors:[]};try{e=JSON.parse((0,i.readFileSync)(t,"utf8"))}catch(e){return{packs:[],errors:[{id:null,reason:`unreadable pack manifest: ${C(e)}`}]}}if(!e||"object"!=typeof e)return{packs:[],errors:[{id:null,reason:"pack manifest is not an object"}]};let s=e;if(!$.includes(s.schemaVersion))return{packs:[],errors:[{id:null,reason:`unsupported pack manifest schema ${String(s.schemaVersion)} (supported: ${$.join(", ")})`}]};if(!Array.isArray(s.packs))return{packs:[],errors:[{id:null,reason:"pack manifest packs is not an array"}]};let l=process.env.FAILPROOFAI_PACK_DIR??(0,n.n)(),c=[],d=[],p=[],h=new Set;for(let e of s.packs){let t=e&&"object"==typeof e&&"string"==typeof e.id?e.id:null,n=[];try{let t=function(e,t,n){if(!t||"object"!=typeof t)throw Error("pack entry is not an object");let s=function(e){if("string"!=typeof e.id||!E.test(e.id))throw Error(`unsafe pack id ${JSON.stringify(e.id)}`);if("string"!=typeof e.version||!A.test(e.version))throw Error(`invalid version for pack ${e.id}`);if(void 0!==e.effect&&"enforce"!==e.effect&&"observe"!==e.effect)throw Error(`unknown effect ${JSON.stringify(e.effect)} for pack ${e.id}`);let t="string"==typeof e.commit&&O.test(e.commit.trim().toLowerCase())?e.commit.trim().toLowerCase():void 0;return{id:e.id,version:e.version,effect:e.effect??"enforce",...t?{commit:t}:{}}}(t);if("string"!=typeof t.source||0===t.source.length)throw Error(`pack ${t.id} has no source`);if("string"!=typeof t.sha256||!S.test(t.sha256))throw Error(`invalid SHA-256 for pack ${t.id}`);let l=s.effect,c=function(e,t,r=a.version){if(void 0===t)return{kind:"satisfied"};let i=function(e,t){let r=b(e),i=b(t);return r&&i?w(r.major,i.major)||w(r.minor,i.minor)||w(r.patch,i.patch)||function(e,t){if(0===e.length&&0===t.length)return 0;if(0===e.length)return 1;if(0===t.length)return -1;for(let r=0;r<Math.min(e.length,t.length);r++){let i=e[r],o=t[r];if(i===o)continue;let a="number"==typeof i,n="number"==typeof o;if(a!==n)return a?-1:1;if(a&&n)return w(i,o);return i<o?-1:1}return w(e.length,t.length)}(r.prerelease,i.prerelease):null}(r,t);return null===i?{kind:"unreadable",reason:`pack ${e} declares minCliVersion ${JSON.stringify(t)}, which is not a version this CLI can compare against its own (${r}) — the requirement was ignored`}:i<0?{kind:"too-old",reason:`pack ${e} needs failproofai ${String(t)} or newer and this is ${r} — run \`npm i -g "failproofai@>=${String(t)}" && failproofai update\``}:{kind:"satisfied",declared:t}}(s.id,t.minCliVersion);if("too-old"===c.kind)throw Error(c.reason);"unreadable"===c.kind&&n.push(c.reason);let d=function(e,t){if(!t||(0,o.isAbsolute)(t))throw Error(`unsafe managed policy path ${JSON.stringify(t)}`);let r=(0,o.resolve)(e,t),a=(0,o.relative)(e,r);if(a.startsWith("..")||(0,o.isAbsolute)(a))throw Error(`managed policy path escapes its root: ${JSON.stringify(t)}`);let n=(0,i.realpathSync)(e),s=(0,i.realpathSync)(r),l=(0,o.relative)(n,s);if(l.startsWith("..")||(0,o.isAbsolute)(l))throw Error(`managed policy symlink escapes its root: ${JSON.stringify(t)}`);return s}(e,t.entry),p=(0,r.createHash)("sha256").update((0,i.readFileSync)(d)).digest("hex");if(p!==t.sha256)throw Error(`pack ${t.id} failed integrity verification: expected ${t.sha256}, got ${p}`);if(!Array.isArray(t.policies))throw Error(`pack ${t.id} policies is not an array`);let h=t.policies.map((e,r)=>(function(e,t,r,i){let o=`${e} policy #${r}`;if(!t||"object"!=typeof t)throw Error(`${o} is not an object`);let a=t.name;if("string"!=typeof a||!P.test(a))throw Error(`${o} has an unsafe name ${JSON.stringify(a)}`);if("alwaysOn"in t)throw Error(`${o} declares alwaysOn, which packs may not set`);if("string"!=typeof t.description||0===t.description.length)throw Error(`${o} is missing a description`);if("string"!=typeof t.category||0===t.category.length)throw Error(`${o} is missing a category`);if("boolean"!=typeof t.defaultEnabled)throw Error(`${o} is missing defaultEnabled`);if(!t.match||"object"!=typeof t.match)throw Error(`${o} is missing a match`);let n=t.match;for(let e of["events","toolNames"]){let t=n[e];if(void 0!==t&&(!Array.isArray(t)||t.some(e=>"string"!=typeof e||0===e.length)))throw Error(`${o} has a match.${e} that is not a list of names`)}let s=f(t),l=["authority","reviewedBy"].filter(e=>e in t&&!(e in s));if("params"in t){let e=function(e){if(!e||"object"!=typeof e||Array.isArray(e))return"params is not an object";for(let[t,r]of Object.entries(e)){if(0===t.length)return"params has an empty parameter name";if(!r||"object"!=typeof r||Array.isArray(r))return`params.${t} is not an object`;if("string"!=typeof r.type||!I.has(r.type))return`params.${t} has type ${JSON.stringify(r.type)}, which is not one of ${[...I].join(", ")}`;if("string"!=typeof r.description||0===r.description.length)return`params.${t} is missing a description`;if(!("default"in r))return`params.${t} is missing a default`}}(t.params);e&&(i?.push(`${o} declares a params schema that was dropped: ${e}`),l.push("params"))}return l.length>0?Object.fromEntries(Object.entries(t).filter(([e])=>!l.includes(e))):t})(t.id,e,r,n)),u=new Set;for(let e of h){if(u.has(e.name))throw Error(`pack ${t.id} declares ${e.name} twice`);u.add(e.name)}let m=null;if(void 0!==t.enabled){if(!Array.isArray(t.enabled)||t.enabled.some(e=>"string"!=typeof e))throw Error(`pack ${t.id} enabled is not an array of names`);m=t.enabled.filter(e=>u.has(e))}let y=null;if(void 0!==t.clis){if(!Array.isArray(t.clis)||t.clis.some(e=>"string"!=typeof e))throw Error(`pack ${t.id} clis is not an array of agent names`);y=t.clis}return{clis:y,id:s.id,version:s.version,source:t.source,path:d,sha256:t.sha256,effect:l,policies:h,semantic:function(e,t,r){if(void 0===t)return[];if(!Array.isArray(t))return r.push(`pack ${e} semantic is not an array, so none of it was loaded`),[];let i=[],o=new Set;for(let[a,n]of t.entries()){if(i.length>=24){r.push(`pack ${e} declares more than 24 semantic policies; the ${t.length-24} past that cap were dropped`);break}try{let t=function(e,t,r){let i=`${e} semantic policy #${r}`;if(!t||"object"!=typeof t||Array.isArray(t))throw Error(`${i} is not an object`);let o=t.name;if("string"!=typeof o||!P.test(o))throw Error(`${i} has an unsafe name ${JSON.stringify(o)}`);if("alwaysOn"in t)throw Error(`${i} declares alwaysOn, which packs may not set`);let a=R(`${e} semantic policy ${o}`,"title",t.title,120),n=`${e} semantic policy ${o}`;if(!Array.isArray(t.appliesTo)||0===t.appliesTo.length)throw Error(`${n} has no appliesTo tool classes`);let s=t.appliesTo.find(e=>"string"!=typeof e||!T.has(e));if(void 0!==s)throw Error(`${n} applies to ${JSON.stringify(s)}, which is not a tool class (${[...T].join(", ")})`);if("deny"!==t.mode&&"instruct"!==t.mode)throw Error(`${n} has mode ${JSON.stringify(t.mode)}, which must be "deny" or "instruct"`);if("boolean"!=typeof t.userCanOverride)throw Error(`${n} is missing userCanOverride, which has no default`);if(!Array.isArray(t.probes)||0===t.probes.length)throw Error(`${n} declares no probes`);if(t.probes.length>6)throw Error(`${n} declares ${t.probes.length} probes, over the cap of 6`);let l=t.probes.map((e,t)=>F(`${n} probe #${t}`,e,null)),c=new Set;for(let e of l){if(c.has(e.id))throw Error(`${n} declares probe ${e.id} twice`);c.add(e.id)}let d=void 0===t.exempt?void 0:F(`${n} exempt`,t.exempt,"exempt");if(void 0!==t.precondition&&!v(t.precondition))throw Error(`${n} names precondition ${JSON.stringify(t.precondition)}, which this build does not have (${_.join(", ")})`);let f=R(n,"guidance",t.guidance,600);return{name:o,title:a,appliesTo:t.appliesTo,mode:t.mode,userCanOverride:t.userCanOverride,probes:l,...d?{exempt:d}:{},...void 0!==t.precondition?{precondition:t.precondition}:{},guidance:f}}(e,n,a);if(o.has(t.name))throw Error(`pack ${e} declares semantic policy ${t.name} twice`);o.add(t.name),i.push(t)}catch(e){r.push(C(e))}}return i}(s.id,t.semantic,n),..."satisfied"===c.kind&&c.declared?{minCliVersion:c.declared}:{},enabled:m}}(l,e,n);if(h.has(t.id))throw Error(`duplicate pack id ${t.id}`);h.add(t.id),c.push(t),p.push(...n)}catch(i){let r=e&&("observe"===e.effect||"enforce"===e.effect)?e.effect:"enforce";d.push({id:t,reason:C(i),effect:r,...Array.isArray(e?.policies)?{declared:function(e){let t=[];for(let r of e)r&&"object"==typeof r&&"string"==typeof r.name&&r.match&&"object"==typeof r.match&&t.push(r);return t}(e.policies)}:{},...Array.isArray(e?.policies)&&0===e.policies.length?{semanticOnly:!0}:{},...Array.isArray(e?.clis)&&e.clis.every(e=>"string"==typeof e)?{clis:e.clis}:{}})}}return{packs:c,errors:d,...p.length>0?{warnings:p}:{}}}function C(e){return e instanceof Error?e.message:String(e)}e.s(["f",0,W],52306);let B=null,N=null;function L(e){let t=new Map,r=new Map;for(let i of e)for(let e of i.semantic??[]){if(U(i,e.name))continue;let o=function e(t){if(Array.isArray(t))return`[${t.map(e).join(",")}]`;if(null!==t&&"object"==typeof t){let r=Object.entries(t).filter(([,e])=>void 0!==e).sort(([e],[t])=>e<t?-1:+(e>t));return`{${r.map(([t,r])=>`${JSON.stringify(t)}:${e(r)}`).join(",")}}`}return JSON.stringify(t)??"null"}(e),a=t.get(e.name);if(void 0===a){t.set(e.name,{form:o,ids:[i.id]});continue}a.ids.push(i.id),a.form!==o&&r.set(e.name,a.ids)}return r}function U(e,t){return l.has(t)&&!/^github:FailproofAI\//i.test(e.source??"")}e.s(["j",0,function(){if(B)return B;let e=c;try{var r,i,o;let a,n,s=(r=W().packs,i=t,r.filter(e=>"observe"!==e.effect&&!(i&&Array.isArray(e.clis)&&e.clis.length>0&&!e.clis.includes(i))));o=s,a=L(o),n=o.flatMap(e=>(e.semantic??[]).filter(t=>!U(e,t.name)).map(e=>e.name)).filter(e=>!a.has(e)),e=0===n.length?c:new Set(n),L(s)}catch{}try{let t=function(e,t){let r=[];for(let i of e){let e=function(e,t){return"reviewable"!==e.authority?e.authority?{authority:e.authority}:{}:"observe"===e.effect||"observe"!==t&&"enforce"!==t?{authority:"hard"}:{authority:"reviewable",reviewedBy:(e.reviewedBy??[]).map(t=>{var r;return m.test(t)?t:(r=e.id,`cloud:${r}/${t}`)})}}(i,t);"reviewable"===e.authority&&r.push(...e.reviewedBy??[])}return r}(function(e=null){try{let t=u();if(void 0===t)return[];let r=function(e){if(!e||"object"!=typeof e)throw Error("active manifest is not an object");if(!p.includes(e.schemaVersion))throw Error(`unsupported active manifest schema ${String(e.schemaVersion)} (supported: ${p.join(", ")})`);let t=e.deployment??e.generation;if(!Number.isSafeInteger(t)||(t??-1)<0)throw Error("active manifest deployment is invalid");if(!Array.isArray(e.policies))throw Error("active manifest policies is not an array");let r=e.policies.map(e=>({...e,version:e.version??e.revision}));return{schemaVersion:e.schemaVersion,deployment:t,policies:r}}(t);return r.policies.flatMap(t=>{if("string"!=typeof t.id)return[];let i=(0,s.P)(t.agentTargets,r.schemaVersion);return(0,s.i)(i,e)?[{id:t.id,effect:"observe"===t.effect?"observe":"enforce",...i?{agentTargets:i}:{},...f(t)}]:[]})}catch{return[]}}(N),function(){try{var e;return e=function(){let e=u();if(void 0===e)return null;if(!e||"object"!=typeof e||Array.isArray(e))throw Error("active manifest is not an object");if(!p.includes(e.schemaVersion))throw Error(`unsupported active manifest schema ${String(e.schemaVersion)}`);return e}()?.jevMode,"off"===e||"observe"===e||"enforce"===e?e:null}catch{return null}}());t.length>0&&(e=new Set([...e,...t]))}catch{}return B=e,e},"Z",0,function(e,r=null){B=null,t=e,N=r}],16774)},97348,e=>{var t=e.i(2157),r=e.i(50227),i=e.i(79857);let o={info:0,warn:1,error:2},a=(0,i.A)(),n=!1,s="warn",l=!1,c=a;function d(e){return!function(){if(n)return;n=!0;let e=(process.env.FAILPROOFAI_LOG_LEVEL??"").toLowerCase();("info"===e||"warn"===e||"error"===e)&&(s=e);let t=(process.env.FAILPROOFAI_HOOK_LOG_FILE??"").trim();t&&(l=!0,"1"!==t&&"true"!==t&&(c=t))}(),o[e]>=o[s]}function f(e,t){process.stderr.write(`[failproofai:hook] ${e} ${t}
2
+ `)}function p(e,i){if(l)try{(0,t.existsSync)(c)||(0,t.mkdirSync)(c,{recursive:!0});let o=(0,r.join)(c,"hooks.log");try{if((0,t.statSync)(o).size>=524288){let e=`hooks-${Date.now()}.log`;(0,t.renameSync)(o,(0,r.join)(c,e))}}catch{}let a=new Date().toISOString(),n=`[${a}] ${e} ${i}
3
+ `;(0,t.appendFileSync)(o,n,"utf-8")}catch{}}e.s(["F",0,function(e){d("error")&&(f("ERROR",e),p("ERROR",e))},"Q",0,function(e){d("info")&&(f("INFO",e),p("INFO",e))},"g",0,function(e){d("warn")&&(f("WARN",e),p("WARN",e))}])},73136,49335,e=>{var t=e.i(2157),r=e.i(50227),i=e.i(60526),o=e.i(97348),a=e.i(79857);function n(e){if(!(0,t.existsSync)(e))return{};try{let r=(0,t.readFileSync)(e,"utf8");return JSON.parse(r)}catch(t){return(0,o.g)(`failed to parse config at ${e}: ${t instanceof Error?t.message:String(t)}`),{}}}e.s(["f",0,function(e){let o=function(e){let o=(0,i.homedir)(),a=(0,r.resolve)(e);for(;a!==o;){let e=(0,r.resolve)(a,".failproofai");try{if((0,t.statSync)(e).isDirectory())return a}catch{}let i=(0,r.dirname)(a);if(i===a)break;a=i}return(0,r.resolve)(e)}(e??process.cwd()),s=(0,r.resolve)(o,".failproofai","policies-config.json"),l=(0,r.resolve)(o,".failproofai","policies-config.local.json"),c=(0,a.O)(),d=n(s),f=n(l),p=n(c),h=new Set([...d.enabledPolicies??[],...f.enabledPolicies??[],...p.enabledPolicies??[]]),u={};for(let e of[d,f,p])if(e.policyParams)for(let[t,r]of Object.entries(e.policyParams))t in u||(u[t]=r);let m=[d,f,p].map(e=>void 0!==e.customPoliciesPaths?e.customPoliciesPaths:void 0!==e.customPoliciesPath?[e.customPoliciesPath]:void 0).find(e=>void 0!==e),y=new Set([...d.disabledCustomPolicies??[],...f.disabledCustomPolicies??[],...p.disabledCustomPolicies??[]]),g=d.customPoliciesEnabled??f.customPoliciesEnabled??p.customPoliciesEnabled,b=d.llm??f.llm??p.llm;return{enabledPolicies:[...h],...Object.keys(u).length>0?{policyParams:u}:{},...void 0!==m?{customPoliciesPaths:m}:{},...y.size?{disabledCustomPolicies:[...y]}:{},...void 0!==g?{customPoliciesEnabled:g}:{},...void 0!==b?{llm:b}:{}}}],73136);var s=e.i(24214),l=e.i(28067),c=e.i(17694);let d=l._,f=new Set;async function p(e,t,r){let i=JSON.stringify({api_key:process.env.FAILPROOFAI_POSTHOG_KEY??d,event:t,distinct_id:e,properties:{...r,$lib:"failproofai-hooks",failproofai_version:s.version,product:l.W}});try{await fetch(process.env.FAILPROOFAI_POSTHOG_HOST?`${process.env.FAILPROOFAI_POSTHOG_HOST}/capture/`:"https://us.i.posthog.com/capture/",{method:"POST",headers:{"Content-Type":"application/json"},body:i,signal:AbortSignal.timeout(5e3)})}catch{}}async function h(e,t,r){if(!(0,c.f)())return;let i=p(e,t,r);f.add(i),i.finally(()=>f.delete(i)),await i}e.s(["f",0,h],49335)}]})();
4
+
5
+ //# sourceMappingURL=src_hooks_0_em82s16zfym._.js.map