failproofai 1.0.6 → 1.0.7-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) 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 +4 -4
  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 +4 -4
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  11. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
  12. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  13. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page.js +4 -4
  16. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  20. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  21. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +14 -14
  22. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  24. package/.next/standalone/.next/server/app/api/audit/run/route.js +8 -7
  25. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/api/audit/status/route.js.nft.json +1 -1
  27. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  33. package/.next/standalone/.next/server/app/audit/page.js +7 -5
  34. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/index.html +1 -1
  37. package/.next/standalone/.next/server/app/index.rsc +15 -15
  38. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +14 -14
  39. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  40. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  41. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  42. package/.next/standalone/.next/server/app/page.js +6 -6
  43. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +14 -14
  46. package/.next/standalone/.next/server/app/policies/page.js +13 -11
  47. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  50. package/.next/standalone/.next/server/app/project/[name]/page.js +8 -7
  51. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  54. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  55. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +7 -7
  56. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  59. package/.next/standalone/.next/server/app/projects/page.js +7 -6
  60. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  61. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/settings/page/server-reference-manifest.json +41 -8
  63. package/.next/standalone/.next/server/app/settings/page.js +12 -9
  64. package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
  65. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/chunks/{[externals]__1msfs-h._.js → [externals]__19_pzeq._.js} +1 -1
  67. package/.next/standalone/.next/server/chunks/{[externals]__1_bftcl._.js → [externals]__1j-zsg5._.js} +1 -1
  68. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o07qi9._.js +1 -1
  69. package/.next/standalone/.next/server/chunks/{[root-of-the-server]__1_r2rbg._.js → [root-of-the-server]__1bf34x4._.js} +5 -7
  70. package/.next/standalone/.next/server/chunks/_09dz7xv._.js +21 -21
  71. package/.next/standalone/.next/server/chunks/_0tovk6q._.js +1 -1
  72. package/.next/standalone/.next/server/chunks/_0trp3yc._.js +1 -1
  73. package/.next/standalone/.next/server/chunks/_1ek68ln._.js +16 -16
  74. package/.next/standalone/.next/server/chunks/{_1c3k-8x._.js → _1q5i8mb._.js} +2 -2
  75. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +2 -2
  76. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +2 -2
  77. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  78. package/.next/standalone/.next/server/chunks/src_hooks_01frwmb._.js +5 -0
  79. package/.next/standalone/.next/server/chunks/src_hooks_18qtd42._.js +3 -0
  80. package/.next/standalone/.next/server/chunks/src_hooks_custom-hooks-loader_ts_0lnb3n3._.js +4 -2
  81. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01bmjsj._.js +3 -0
  82. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04usis8._.js +4 -0
  83. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__056wjo4._.js +4 -0
  84. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__059yza8._.js +3 -0
  85. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0eip4_k._.js +22 -0
  86. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0n0xg95._.js +4 -0
  87. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qcb0mg._.js +3 -0
  88. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qxnccm._.js +5 -0
  89. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0rwtwpm._.js +4 -0
  90. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s_yomn._.js +4 -0
  91. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0soxz2z._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0yrsbd_._.js +3 -0
  93. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11mayhe._.js +4 -0
  94. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__13d-wb6._.js +3 -0
  95. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1b2dbet._.js +1 -1
  96. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1dinjii._.js +3 -0
  97. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0cxe_2_._.js → [root-of-the-server]__1mf3zp6._.js} +3 -3
  98. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1svlq8e._.js → [root-of-the-server]__1p28m0u._.js} +2 -2
  99. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1pprgri._.js +4 -0
  100. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1q4p5b8._.js +4 -0
  101. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1qiz0e4._.js +3 -0
  102. package/.next/standalone/.next/server/chunks/ssr/_042cgl1._.js +3 -0
  103. package/.next/standalone/.next/server/chunks/ssr/_08x1r5t._.js +1 -1
  104. package/.next/standalone/.next/server/chunks/ssr/_0bqoto4._.js +3 -0
  105. package/.next/standalone/.next/server/chunks/ssr/{_17o744m._.js → _0cf1olg._.js} +2 -2
  106. package/.next/standalone/.next/server/chunks/ssr/_0uyu3jf._.js +3 -0
  107. package/.next/standalone/.next/server/chunks/ssr/{_0do6d26._.js → _135-c3y._.js} +1 -1
  108. package/.next/standalone/.next/server/chunks/ssr/_1feuvhb._.js +5 -0
  109. package/.next/standalone/.next/server/chunks/ssr/{_1es2j7i._.js → _1gb0ifp._.js} +5 -5
  110. package/.next/standalone/.next/server/chunks/ssr/{_1_qswah._.js → _1q46vxx._.js} +2 -2
  111. package/.next/standalone/.next/server/chunks/ssr/{_0h_douw._.js → _1w_5l7t._.js} +1 -1
  112. package/.next/standalone/.next/server/chunks/ssr/_1zopuov._.js +1 -1
  113. package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_policies_page_actions_1sp2-yo.js +2 -2
  114. package/.next/standalone/.next/server/chunks/ssr/app_actions_get-scheduled-audit_ts_0ei9sni._.js +3 -0
  115. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
  116. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +2 -2
  118. package/.next/standalone/.next/server/chunks/ssr/app_settings_02tf1h4._.js +3 -0
  119. package/.next/standalone/.next/server/chunks/ssr/lib_utils_ts_0az0sfq._.js +1 -1
  120. package/.next/standalone/.next/server/chunks/ssr/{node_modules_next_dist_0drixxt._.js → node_modules_next_dist_0w6mzq5._.js} +4 -4
  121. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_18_d8l1._.js +151 -0
  122. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +2 -2
  123. package/.next/standalone/.next/server/chunks/ssr/src_hooks_095a_79._.js +5 -0
  124. package/.next/standalone/.next/server/chunks/ssr/src_hooks_15t8kqj._.js +3 -0
  125. package/.next/standalone/.next/server/chunks/ssr/src_hooks_18k8rl0._.js +12 -0
  126. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1fm2w5z._.js +3 -0
  127. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1j0zy3v._.js +3 -0
  128. package/.next/standalone/.next/server/chunks/ssr/src_hooks_builtin-policies_ts_09j2ndl._.js +1 -1
  129. package/.next/standalone/.next/server/chunks/ssr/src_hooks_fp-home_ts_0je3xkv._.js +1 -1
  130. package/.next/standalone/.next/server/chunks/ssr/src_hooks_pack-cli_ts_0t7me65._.js +1 -1
  131. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  132. package/.next/standalone/.next/server/pages/404.html +1 -1
  133. package/.next/standalone/.next/server/pages/500.html +1 -1
  134. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  135. package/.next/standalone/.next/server/server-reference-manifest.json +56 -23
  136. package/.next/standalone/.next/static/chunks/{25m8mg7bosgip.js → 00i9thnpht4l1.js} +1 -1
  137. package/.next/standalone/.next/static/chunks/0289oapk24zql.js +1 -0
  138. package/.next/standalone/.next/static/chunks/{35pw7zxhh76n7.js → 0pyy9m5cm8zku.js} +1 -1
  139. package/.next/standalone/.next/static/chunks/15heikmy3yjzc.js +1 -0
  140. package/.next/standalone/.next/static/chunks/285spx855h_3r.css +2 -0
  141. package/.next/standalone/.next/static/chunks/{40-wncjnguy4e.js → 2plg9qae1yejv.js} +1 -1
  142. package/.next/standalone/.next/static/chunks/2qv4hshejedtx.css +1 -0
  143. package/.next/standalone/.next/static/chunks/2tqszh84mp_2l.js +1 -0
  144. package/.next/standalone/.next/static/chunks/34jpdb2xjm-x7.js +1 -0
  145. package/.next/standalone/.next/static/chunks/3cdkxrukvlvul.js +1 -0
  146. package/.next/standalone/.next/static/chunks/3dnd-_29uiaj3.js +6 -0
  147. package/.next/standalone/.next/static/chunks/3vp7c3knkh8mr.js +1 -0
  148. package/.next/standalone/.next/static/chunks/{2y4ycwcwfjv4k.js → 3vwnzfx9q80yl.js} +1 -1
  149. package/.next/standalone/app/actions/get-jev-config.ts +409 -0
  150. package/.next/standalone/app/actions/pack-actions.ts +12 -0
  151. package/.next/standalone/app/actions/update-jev-config.ts +420 -0
  152. package/.next/standalone/app/components/jev-notices.tsx +96 -0
  153. package/.next/standalone/app/policies/hooks-client.tsx +9 -0
  154. package/.next/standalone/app/settings/jev-panel.tsx +469 -0
  155. package/.next/standalone/app/settings/page.tsx +20 -1
  156. package/.next/standalone/app/settings/settings-client.tsx +27 -1
  157. package/.next/standalone/app/settings/settings.css +79 -0
  158. package/.next/standalone/fp-cloud-cli/CHANGELOG.md +51 -3
  159. package/.next/standalone/fp-cloud-cli/README.md +1 -1
  160. package/.next/standalone/fp-cloud-cli/fp_cli/_version.py +1 -1
  161. package/.next/standalone/fp-cloud-cli/fp_cli/client.py +44 -0
  162. package/.next/standalone/fp-cloud-cli/fp_cli/commands/incidents_cmds.py +226 -5
  163. package/.next/standalone/fp-cloud-cli/fp_cli/models.py +11 -0
  164. package/.next/standalone/fp-cloud-cli/fp_cli/output.py +68 -1
  165. package/.next/standalone/fp-cloud-cli/pyproject.toml +1 -1
  166. package/.next/standalone/fp-cloud-cli/skill/SKILL.md +17 -2
  167. package/.next/standalone/fp-cloud-cli/skill/references/commands.md +7 -4
  168. package/.next/standalone/fp-cloud-cli/tests/test_alerting.py +184 -0
  169. package/.next/standalone/fp-cloud-cli/uv.lock +3 -3
  170. package/.next/standalone/package.json +11 -11
  171. package/.next/standalone/sdk/python/CHANGELOG.md +7 -0
  172. package/.next/standalone/sdk/python/failproofai_sdk/_version.py +1 -1
  173. package/.next/standalone/sdk/python/failproofai_sdk/evaluator/__init__.py +2 -0
  174. package/.next/standalone/sdk/python/failproofai_sdk/evaluator/authoring.py +24 -1
  175. package/.next/standalone/sdk/python/failproofai_sdk/evaluator/runtime.py +41 -6
  176. package/.next/standalone/sdk/python/tests/test_evaluator_runtime.py +88 -0
  177. package/.next/standalone/sdk/python/uv.lock +15 -15
  178. package/.next/standalone/server.js +1 -1
  179. package/bin/failproofai.mjs +115 -2
  180. package/dist/cli.mjs +9283 -2149
  181. package/dist/index.js +19 -1
  182. package/dist/worker.mjs +13761 -7834
  183. package/package.json +11 -11
  184. package/pi-extension/index.ts +11 -0
  185. package/scripts/build-policy-pack.mjs +39 -2
  186. package/src/hooks/builtin-policies.ts +21 -3
  187. package/src/hooks/cloud-enrollment-cli.ts +1 -1
  188. package/src/hooks/cloud-managed-policies.ts +22 -0
  189. package/src/hooks/custom-hooks-loader.ts +45 -7
  190. package/src/hooks/custom-hooks-registry.ts +45 -1
  191. package/src/hooks/effective-reviewers.ts +79 -0
  192. package/src/hooks/first-run-gate.ts +5 -0
  193. package/src/hooks/fp-home.ts +23 -0
  194. package/src/hooks/handler.ts +265 -6
  195. package/src/hooks/hook-activity-store.ts +105 -1
  196. package/src/hooks/hook-telemetry.ts +41 -0
  197. package/src/hooks/jev-activity.ts +385 -0
  198. package/src/hooks/jev-cli.ts +1193 -0
  199. package/src/hooks/loader-utils.ts +6 -0
  200. package/src/hooks/pack-cli.ts +237 -11
  201. package/src/hooks/pack-manifest.ts +479 -7
  202. package/src/hooks/pack-store.ts +156 -10
  203. package/src/hooks/policy-authority.ts +333 -0
  204. package/src/hooks/policy-catalog.ts +65 -0
  205. package/src/hooks/policy-evaluator.ts +940 -796
  206. package/src/hooks/policy-registry.ts +25 -0
  207. package/src/hooks/policy-reviewability.ts +229 -0
  208. package/src/hooks/policy-types.ts +126 -0
  209. package/src/hooks/semantic/combine.ts +541 -0
  210. package/src/hooks/semantic/compile.ts +176 -0
  211. package/src/hooks/semantic/decide.ts +392 -0
  212. package/src/hooks/semantic/envelope.ts +1296 -0
  213. package/src/hooks/semantic/evaluator.ts +547 -0
  214. package/src/hooks/semantic/facts.ts +292 -0
  215. package/src/hooks/semantic/intent.ts +1190 -0
  216. package/src/hooks/semantic/jev-client.ts +643 -0
  217. package/src/hooks/semantic/jev-config.ts +594 -0
  218. package/src/hooks/semantic/jev-review.ts +374 -0
  219. package/src/hooks/semantic/jev-stats.ts +289 -0
  220. package/src/hooks/semantic/jev-throttle.ts +421 -0
  221. package/src/hooks/semantic/pack-policies.ts +251 -0
  222. package/src/hooks/semantic/policies.ts +596 -0
  223. package/src/hooks/semantic/precondition-names.ts +60 -0
  224. package/src/hooks/semantic/preconditions.ts +58 -0
  225. package/src/hooks/semantic/redact.ts +2910 -0
  226. package/src/hooks/semantic/types.ts +145 -0
  227. package/src/hooks/semver-precedence.ts +128 -0
  228. package/src/hooks/worker-server.ts +119 -26
  229. package/src/index.ts +6 -0
  230. package/.next/standalone/.next/server/chunks/src_hooks_0iu54mz._.js +0 -3
  231. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0-_ki57._.js +0 -4
  232. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__013jr2b._.js +0 -4
  233. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__01wy8d-._.js +0 -4
  234. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02npjtd._.js +0 -4
  235. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cg-bgc._.js +0 -5
  236. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0cpu_mj._.js +0 -3
  237. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0da85px._.js +0 -4
  238. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ftmoxc._.js +0 -4
  239. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p-5p8u._.js +0 -4
  240. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0u3w0ll._.js +0 -22
  241. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__17d_ffl._.js +0 -3
  242. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__19d9tgz._.js +0 -5
  243. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1ctpynv._.js +0 -3
  244. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1jiwfsj._.js +0 -3
  245. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1p2otjt._.js +0 -4
  246. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1phc187._.js +0 -3
  247. package/.next/standalone/.next/server/chunks/ssr/_06imw3p._.js +0 -5
  248. package/.next/standalone/.next/server/chunks/ssr/_1u8-lu2._.js +0 -3
  249. package/.next/standalone/.next/server/chunks/ssr/app_settings_settings-client_tsx_20lq-mq._.js +0 -3
  250. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1cv9_c4._.js +0 -10
  251. package/.next/standalone/.next/static/chunks/0bepqeawy72n6.js +0 -1
  252. package/.next/standalone/.next/static/chunks/0h-gz8e00478q.js +0 -1
  253. package/.next/standalone/.next/static/chunks/0qmsunv04x4na.css +0 -2
  254. package/.next/standalone/.next/static/chunks/2k9f4tyv04809.css +0 -1
  255. package/.next/standalone/.next/static/chunks/2lvr2pt70qn14.js +0 -1
  256. package/.next/standalone/.next/static/chunks/3-6zhytp6adkk.js +0 -1
  257. package/.next/standalone/.next/static/chunks/319c_91le7-h_.js +0 -1
  258. package/.next/standalone/.next/static/chunks/35m53kix7uaii.js +0 -6
  259. package/.next/standalone/.next/static/chunks/3xacd7qmuqlvs.js +0 -1
  260. /package/.next/standalone/.next/static/{LzR_etPlaZV9JZH09lEp3 → qbVI48kgBOf9CTOKcFIk2}/_buildManifest.js +0 -0
  261. /package/.next/standalone/.next/static/{LzR_etPlaZV9JZH09lEp3 → qbVI48kgBOf9CTOKcFIk2}/_clientMiddlewareManifest.js +0 -0
  262. /package/.next/standalone/.next/static/{LzR_etPlaZV9JZH09lEp3 → qbVI48kgBOf9CTOKcFIk2}/_ssgManifest.js +0 -0
@@ -1,5 +0,0 @@
1
- module.exports=[874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},24868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},60815,a=>{a.v(a=>Promise.resolve().then(()=>a(24868)))},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},1457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},57764,(a,b,c)=>{b.exports=a.x("node:url",()=>require("node:url"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},5365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},92509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},8674,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(66680);a.s(["writeJsonAtomically",0,function(a,e,f={}){let g=f.mode??384,h=f.dirMode??448,i=(0,c.dirname)(a);(0,b.existsSync)(i)||(0,b.mkdirSync)(i,{recursive:!0,mode:h});let j=`${a}.${process.pid}.${(0,d.randomBytes)(6).toString("hex")}.tmp`;try{(0,b.writeFileSync)(j,JSON.stringify(e,null,2),{mode:g});try{(63&(0,b.statSync)(j).mode)!=0&&(0,b.chmodSync)(j,g)}catch{}(0,b.renameSync)(j,a);try{(63&(0,b.statSync)(a).mode)!=0&&(0,b.chmodSync)(a,g)}catch{}}catch(a){try{(0,b.rmSync)(j,{force:!0})}catch{}throw a}}])},24282,a=>{"use strict";let b={claude:{id:"claude",label:"Claude Code",badgeClasses:"bg-orange-500/10 text-orange-400 border-orange-500/20"},codex:{id:"codex",label:"OpenAI Codex",badgeClasses:"bg-purple-500/10 text-purple-400 border-purple-500/20"},copilot:{id:"copilot",label:"GitHub Copilot",badgeClasses:"bg-blue-500/10 text-blue-400 border-blue-500/20"},cursor:{id:"cursor",label:"Cursor Agent",badgeClasses:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20"},opencode:{id:"opencode",label:"OpenCode",badgeClasses:"bg-amber-500/10 text-amber-400 border-amber-500/20"},pi:{id:"pi",label:"Pi",badgeClasses:"bg-pink-500/10 text-pink-400 border-pink-500/20"},hermes:{id:"hermes",label:"Hermes",badgeClasses:"bg-indigo-500/10 text-indigo-400 border-indigo-500/20"},openclaw:{id:"openclaw",label:"OpenClaw",badgeClasses:"bg-teal-500/10 text-teal-400 border-teal-500/20"},factory:{id:"factory",label:"Factory Droid",badgeClasses:"bg-rose-500/10 text-rose-400 border-rose-500/20"},devin:{id:"devin",label:"Devin CLI",badgeClasses:"bg-violet-500/10 text-violet-400 border-violet-500/20"},antigravity:{id:"antigravity",label:"Antigravity CLI",badgeClasses:"bg-cyan-500/10 text-cyan-400 border-cyan-500/20"},goose:{id:"goose",label:"Goose",badgeClasses:"bg-lime-500/10 text-lime-400 border-lime-500/20"}};a.s(["getCliBadgeClasses",0,function(a){return b[a]?.badgeClasses??b.claude.badgeClasses},"getCliLabel",0,function(a){return b[a]?.label??a}])},43600,a=>{"use strict";var b=a.i(2157),c=a.i(60526),d=a.i(50227);let e="profiles",f=".hermes",g=".hermes-",h="default";function i(){let a=(process.env.HERMES_HOME||"").trim();if(a){let b=(0,d.resolve)(a),c=(0,d.dirname)(b);(0,d.basename)(c)===e&&(b=(0,d.dirname)(c));let h=(0,d.basename)(b);return h===f||h.startsWith(g)?(0,d.join)((0,d.dirname)(b),f):b}return(0,d.join)((0,c.homedir)(),f)}function j(){let a=i(),c=[{name:h,home:a}],j=new Set([h]),k=[];try{k=(0,b.readdirSync)((0,d.join)(a,e),{withFileTypes:!0}).filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>a.name).sort()}catch{}for(let b of k)j.has(b)||(j.add(b),c.push({name:b,home:(0,d.join)(a,e,b)}));if((0,d.basename)(a)!==f)return c;let l=[],m=(0,d.dirname)(a);try{l=(0,b.readdirSync)(m,{withFileTypes:!0}).filter(a=>(a.isDirectory()||a.isSymbolicLink())&&a.name.startsWith(g)&&a.name.length>g.length&&(0,b.existsSync)((0,d.join)(m,a.name,"config.yaml"))).map(a=>({name:a.name.slice(g.length),home:(0,d.join)(m,a.name)})).sort((a,b)=>a.name.localeCompare(b.name))}catch{return c}for(let a of l){let b=function(a,b){if(!b.has(a))return a;let c=`${a}-home`;if(!b.has(c))return c;let d=2;for(;b.has(`${c}-${d}`);)d+=1;return`${c}-${d}`}(a.name,j);j.add(b),c.push({name:b,home:a.home})}return c}a.s(["HERMES_DEFAULT_PROFILE",0,h,"hermesProjectName",0,function(a,b){return`hermes-${a}-${b}`},"hermesProjectNameCandidates",0,function(a){if(!a.startsWith("hermes-"))return[];let b=a.slice(7);if(!b)return[];let c=[];for(let a of j().map(a=>a.name).sort((a,b)=>b.length-a.length)){let d=`${a}-`;b.startsWith(d)&&b.length>d.length&&c.push({profile:a,source:b.slice(d.length)})}return c.push({profile:h,source:b}),c},"hermesProjectPath",0,function(a,b){return`hermes:${a}:${b}`},"hermesRoot",0,i,"listHermesProfiles",0,j])},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0ilfh9m._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},6188,a=>{a.v(a=>Promise.resolve().then(()=>a(15638)))},84670,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__1v185mo._.js"].map(b=>a.l(b))).then(()=>b(32271)))},10695,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(75818);let e={info:0,warn:1,error:2},f=(0,d.logsDir)(),g=!1,h="warn",i=!1,j=f;function k(a){return!function(){if(g)return;g=!0;let a=(process.env.FAILPROOFAI_LOG_LEVEL??"").toLowerCase();("info"===a||"warn"===a||"error"===a)&&(h=a);let b=(process.env.FAILPROOFAI_HOOK_LOG_FILE??"").trim();b&&(i=!0,"1"!==b&&"true"!==b&&(j=b))}(),e[a]>=e[h]}function l(a,b){process.stderr.write(`[failproofai:hook] ${a} ${b}
2
- `)}function m(a,d){if(i)try{(0,b.existsSync)(j)||(0,b.mkdirSync)(j,{recursive:!0});let e=(0,c.join)(j,"hooks.log");try{if((0,b.statSync)(e).size>=524288){let a=`hooks-${Date.now()}.log`;(0,b.renameSync)(e,(0,c.join)(j,a))}}catch{}let f=new Date().toISOString(),g=`[${f}] ${a} ${d}
3
- `;(0,b.appendFileSync)(e,g,"utf-8")}catch{}}a.s(["hookLogError",0,function(a){k("error")&&(l("ERROR",a),m("ERROR",a))},"hookLogWarn",0,function(a){k("warn")&&(l("WARN",a),m("WARN",a))}])},49679,a=>{a.v(b=>Promise.all(["server/chunks/ssr/src_hooks_pack-cli_ts_0t7me65._.js"].map(b=>a.l(b))).then(()=>b(31934)))}];
4
-
5
- //# sourceMappingURL=%5Broot-of-the-server%5D__0cg-bgc._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},95450,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/policies/hooks-client.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/policies/hooks-client.tsx","default")},78862,a=>{"use strict";var b=a.i(95450);a.n(b)},3,a=>{"use strict";var b=a.i(7997),c=a.i(717);a.i(70396);var d=a.i(73727),e=a.i(78862);async function f({searchParams:a}){(process.env.FAILPROOFAI_DISABLE_PAGES??"").split(",").map(a=>a.trim()).filter(Boolean).includes("policies")&&(0,d.notFound)();let{tab:g}=await a;return(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(e.default,{initialTab:"policies"===g?"policies":"activity"})})}a.s(["default",0,f,"dynamic",0,"force-dynamic"])},70216,function(a){a.n(a.i(3))},63025,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(70864)),f=(0,b.instrumentModuleGetter)(()=>a.r(65897)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(94367)),k=["",{children:["policies",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(70216)),"[project]/app/policies/page.tsx"]},[]]},{metadata:{}},[]]},{layout:[e,"[project]/app/layout.tsx"],error:[f,"[project]/app/error.tsx"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/app/global-error.tsx"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/policies/page",pathname:"/policies",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],25575),a.i(25575);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],63025)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__0cpu_mj._.js.map
@@ -1,4 +0,0 @@
1
- module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},26035,a=>{"use strict";var b=a.i(36359);a.s([],19459),a.i(19459),a.s(["002a551863b51d42ffe781e9841b676b82fa895b9b",()=>b.getTelemetryConfig],26035)},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"002a551863b51d42ffe781e9841b676b82fa895b9b",null),a.s(["getTelemetryConfig",0,f])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";var b=a.i(69839),c=a.i(31920),d=a.i(12072),e=a.i(79779);e.POSTHOG_API_KEY,a.s(["trackEvent",0,function(a,f){if(!(0,c.isTelemetryEnabled)())return;let g=globalThis.__FAILPROOFAI_POSTHOG__;g&&g.capture({distinctId:(0,b.getInstanceId)(),event:a,properties:{...f,$lib:"failproofai",failproofai_version:d.version,product:e.POSTHOG_PRODUCT}})}])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.6",description:"Observability and enforcement for AI agent harnesses. 39 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","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.125.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.5.1","@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.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.0","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.6","@failproofai/failproofaid-linux-arm64":"1.0.6","@failproofai/failproofaid-darwin-x64":"1.0.6","@failproofai/failproofaid-darwin-arm64":"1.0.6"},failproofaidBinaries:{"linux-x64":"e075f24a3a0950b631979d9370b665da2c3e2920decfb917ff0831d1f17c9740","linux-arm64":"b90ce8c642f2685719f4915695615219860daf3155a9c07344cf1e10395028c3","darwin-x64":"51dd95e9b85226e4f1888c7edaa56ec4464e91eb645d39c5cb7cede16d2da2f1","darwin-arm64":"f6a1b9d63363e8805e0d72b4fa168fde661bdbbd4125b54047f7de8948ea0f39"}}},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__0da85px._.js.map
@@ -1,4 +0,0 @@
1
- module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"002a551863b51d42ffe781e9841b676b82fa895b9b",null),a.s(["getTelemetryConfig",0,f])},8674,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(66680);a.s(["writeJsonAtomically",0,function(a,e,f={}){let g=f.mode??384,h=f.dirMode??448,i=(0,c.dirname)(a);(0,b.existsSync)(i)||(0,b.mkdirSync)(i,{recursive:!0,mode:h});let j=`${a}.${process.pid}.${(0,d.randomBytes)(6).toString("hex")}.tmp`;try{(0,b.writeFileSync)(j,JSON.stringify(e,null,2),{mode:g});try{(63&(0,b.statSync)(j).mode)!=0&&(0,b.chmodSync)(j,g)}catch{}(0,b.renameSync)(j,a);try{(63&(0,b.statSync)(a).mode)!=0&&(0,b.chmodSync)(a,g)}catch{}}catch(a){try{(0,b.rmSync)(j,{force:!0})}catch{}throw a}}])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";var b=a.i(69839),c=a.i(31920),d=a.i(12072),e=a.i(79779);e.POSTHOG_API_KEY,a.s(["trackEvent",0,function(a,f){if(!(0,c.isTelemetryEnabled)())return;let g=globalThis.__FAILPROOFAI_POSTHOG__;g&&g.capture({distinctId:(0,b.getInstanceId)(),event:a,properties:{...f,$lib:"failproofai",failproofai_version:d.version,product:e.POSTHOG_PRODUCT}})}])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.6",description:"Observability and enforcement for AI agent harnesses. 39 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","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.125.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.5.1","@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.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.0","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.6","@failproofai/failproofaid-linux-arm64":"1.0.6","@failproofai/failproofaid-darwin-x64":"1.0.6","@failproofai/failproofaid-darwin-arm64":"1.0.6"},failproofaidBinaries:{"linux-x64":"e075f24a3a0950b631979d9370b665da2c3e2920decfb917ff0831d1f17c9740","linux-arm64":"b90ce8c642f2685719f4915695615219860daf3155a9c07344cf1e10395028c3","darwin-x64":"51dd95e9b85226e4f1888c7edaa56ec4464e91eb645d39c5cb7cede16d2da2f1","darwin-arm64":"f6a1b9d63363e8805e0d72b4fa168fde661bdbbd4125b54047f7de8948ea0f39"}}},15501,a=>{"use strict";var b=a.i(2157);a.i(8674);var c=a.i(75818);function d(){return(0,c.auditDashboardFile)()}a.s(["readDashboardCache",0,function(){let a=d();if(!(0,b.existsSync)(a))return null;try{let c=(0,b.readFileSync)(a,"utf-8"),d=JSON.parse(c);if(!d||"object"!=typeof d||"string"!=typeof d.cachedAt||!d.params||"object"!=typeof d.params||!d.result||"object"!=typeof d.result||2!==d.schemaVersion||function(a,b=30){let c=new Date(a).getTime();return!!Number.isNaN(c)||Date.now()-c>6e4*b}(d.cachedAt,10080))return null;return d}catch{return null}},"readDashboardCacheMeta",0,function(){let a=d();if(!(0,b.existsSync)(a))return null;try{let c=(0,b.readFileSync)(a,"utf-8"),d=JSON.parse(c);if(!d||2!==d.schemaVersion||"string"!=typeof d.cachedAt||Number.isNaN(new Date(d.cachedAt).getTime()))return null;let e=d.result,f=a=>"number"==typeof a&&Number.isFinite(a)?a:null;return{cachedAt:d.cachedAt,findings:f(e?.totals?.hits),sessionsScanned:f(e?.transcripts?.scanned),eventsScanned:f(e?.eventsScanned)}}catch{return null}}])},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__0ftmoxc._.js.map
@@ -1,4 +0,0 @@
1
- module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},24190,a=>{"use strict";var b=a.i(36359);a.s([],40488),a.i(40488),a.s(["002a551863b51d42ffe781e9841b676b82fa895b9b",()=>b.getTelemetryConfig],24190)},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"002a551863b51d42ffe781e9841b676b82fa895b9b",null),a.s(["getTelemetryConfig",0,f])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";var b=a.i(69839),c=a.i(31920),d=a.i(12072),e=a.i(79779);e.POSTHOG_API_KEY,a.s(["trackEvent",0,function(a,f){if(!(0,c.isTelemetryEnabled)())return;let g=globalThis.__FAILPROOFAI_POSTHOG__;g&&g.capture({distinctId:(0,b.getInstanceId)(),event:a,properties:{...f,$lib:"failproofai",failproofai_version:d.version,product:e.POSTHOG_PRODUCT}})}])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.6",description:"Observability and enforcement for AI agent harnesses. 39 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","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.125.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.5.1","@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.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.0","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.6","@failproofai/failproofaid-linux-arm64":"1.0.6","@failproofai/failproofaid-darwin-x64":"1.0.6","@failproofai/failproofaid-darwin-arm64":"1.0.6"},failproofaidBinaries:{"linux-x64":"e075f24a3a0950b631979d9370b665da2c3e2920decfb917ff0831d1f17c9740","linux-arm64":"b90ce8c642f2685719f4915695615219860daf3155a9c07344cf1e10395028c3","darwin-x64":"51dd95e9b85226e4f1888c7edaa56ec4464e91eb645d39c5cb7cede16d2da2f1","darwin-arm64":"f6a1b9d63363e8805e0d72b4fa168fde661bdbbd4125b54047f7de8948ea0f39"}}},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__0p-5p8u._.js.map
@@ -1,22 +0,0 @@
1
- module.exports=[22734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},46201,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/sessions-list.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/sessions-list.tsx","default")},13853,a=>{"use strict";var b=a.i(46201);a.n(b)},80776,a=>{"use strict";var b=a.i(7997),c=a.i(717),d=a.i(69191),e=a.i(1024),f=a.i(88890),g=a.i(93087),h=a.i(64458),i=a.i(2727),j=a.i(83884),k=a.i(96877),l=a.i(26732),m=a.i(15771),n=a.i(96795),o=a.i(81057),p=a.i(76668),q=a.i(90798);a.i(70396);var r=a.i(73727),s=a.i(22734),t=a.i(24868),u=a.i(95936),v=a.i(33432),w=a.i(13853);async function x({params:a}){let{name:y}=await a,z=null;try{z=(0,d.resolveProjectPath)(y)}catch{z=null}let A=(0,q.decodeFolderName)(y),B=!!z&&(0,s.existsSync)(z),C=[];B&&z&&(C=await (0,d.getCachedSessionFiles)(z));let[D,E,F,G,H,I,J,K,L,M,N]=await Promise.all([(0,e.getCachedCodexSessionsByEncodedName)(y),(0,f.getCachedCopilotSessionsByEncodedName)(y),(0,g.getCachedCursorSessionsByEncodedName)(y),(0,h.getCachedOpenCodeSessionsByEncodedName)(y),(0,i.getCachedPiSessionsByEncodedName)(y),(0,j.getCachedHermesSessionsByEncodedName)(y),(0,k.getCachedOpenClawSessionsByEncodedName)(y),(0,l.getCachedFactorySessionsByEncodedName)(y),(0,m.getCachedDevinSessionsByEncodedName)(y),(0,n.getCachedAntigravitySessionsByEncodedName)(y),(0,o.getCachedGooseSessionsByEncodedName)(y)]),O=D.sessions,P=E.sessions,Q=F.sessions,R=G.sessions,S=H.sessions,T=I.sessions,U=J.sessions,V=K.sessions,W=L.sessions,X=M.sessions,Y=N.sessions;B||0!==O.length||0!==P.length||0!==Q.length||0!==R.length||0!==S.length||0!==T.length||0!==U.length||0!==V.length||0!==W.length||0!==X.length||0!==Y.length||(0,r.notFound)();let Z=D.cwd??E.cwd??F.cwd??G.cwd??H.cwd??I.cwd??J.cwd??K.cwd??L.cwd??M.cwd??N.cwd??A,$=null,_=null;if(B&&z)try{let a=await (0,t.stat)(z);$=a.mtime,_=(0,v.formatDate)(a.mtime)}catch(a){(0,p.logWarn)(`Failed to get stats for project ${A}:`,a)}let aa=[O[0],P[0],Q[0],R[0],S[0],T[0],U[0],V[0],W[0],X[0],Y[0]].filter(a=>!!a).map(a=>a.lastModified).reduce((a,b)=>!a||b.getTime()>a.getTime()?b:a,null);aa&&(!$||aa.getTime()>$.getTime())&&($=aa,_=(0,v.formatDate)(aa));let ab=[...C,...O,...P,...Q,...R,...S,...T,...U,...V,...W,...X,...Y].sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),ac=B&&z?z:Z;return(0,b.jsx)("main",{className:"report",children:(0,b.jsxs)("section",{className:"section","data-screen-label":"project",children:[(0,b.jsxs)(u.default,{href:"/projects",className:"project-page-back","aria-label":"Back to projects",children:[(0,b.jsx)("span",{className:"arrow",children:"←"}),"back to projects"]}),(0,b.jsx)("h1",{className:"project-page-title",children:(0,q.isSyntheticProjectPath)(Z)?(0,q.projectDisplayName)(y,Z):Z}),(0,b.jsxs)("div",{className:"project-page-meta",children:[(0,b.jsx)("span",{className:"label",children:"path"}),(0,b.jsx)("span",{className:"path",children:ac}),_&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"sep",children:"·"}),(0,b.jsx)("span",{className:"label",children:"modified"}),_]}),(0,b.jsx)("span",{className:"sep",children:"·"}),(0,b.jsx)("span",{className:"label",children:"sessions"}),ab.length]}),0===ab.length?(0,b.jsxs)("div",{className:"project-page-empty",children:["no .jsonl files found in this project.",(0,b.jsx)("div",{className:"hint",children:"session files will appear here once they are created."})]}):(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(w.default,{files:ab,projectName:y})})]})})}a.s(["default",0,x,"dynamic",0,"force-dynamic"])},11363,function(a){a.n(a.i(80776))},96795,a=>{"use strict";var b=a.i(50227),c=a.i(94431),d=a.i(99910),e=a.i(34900),f=a.i(90798),g=a.i(33432),h=a.i(76668);function i(){return(0,b.join)((0,d.antigravityHome)(),"conversation_summaries.db")}async function j(){let a=new Map,b=await (0,c.openSqliteReadonly)(i());if(!b)return a;try{for(let c of b.query("SELECT conversation_id, title, step_count, workspace_uris, last_modified_time FROM conversation_summaries"))c.conversation_id&&a.set(c.conversation_id,{title:c.title??void 0,cwd:function(a){let b;if(!a)return;try{let c=JSON.parse(a);Array.isArray(c)&&"string"==typeof c[0]?b=c[0]:"string"==typeof c&&(b=c)}catch{b=a}if(!b)return;let c=b.replace(/^file:\/\//,"");return c.length>0?c:void 0}(c.workspace_uris),stepCount:"number"==typeof c.step_count?c.step_count:void 0,lastMs:function(a){if("number"==typeof a&&Number.isFinite(a))return a>1e12?a:a>1e9?1e3*a:void 0;if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return b}}(c.last_modified_time)})}catch{}finally{b.close()}return a}async function k(){let a;try{a=(0,d.listAntigravityTranscripts)()}catch(a){return(0,h.logWarn)("Failed to scan Antigravity brain dir:",a),[]}let b=await j(),c=[];for(let e of a){let a=b.get(e.conversationId),f=a?.cwd??null;if(!f)try{let a=await (0,d.getAntigravitySessionLog)(e.conversationId);f=a?.cwd??null}catch{f=null}c.push({conversationId:e.conversationId,cwd:f,title:a?.title,mtimeMs:a?.lastMs??e.mtimeMs})}return c}let l="antigravity";async function m(){let a=await k(),b=new Map;for(let c of a){let a=c.cwd?(0,f.encodeFolderName)(c.cwd):l,d=c.cwd??"antigravity",e=b.get(a);(!e||c.mtimeMs>e.latest)&&b.set(a,{latest:c.mtimeMs,path:d})}let c=[];for(let[a,{latest:d,path:e}]of b){let b=new Date(d);c.push({name:a,path:e,isDirectory:!0,lastModified:b,lastModifiedFormatted:(0,g.formatDate)(b),cli:["antigravity"]})}return c.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),c}async function n(a){let b=(await k()).filter(b=>(b.cwd?(0,f.encodeFolderName)(b.cwd):l)===a);if(0===b.length)return{cwd:null,sessions:[]};let c=[...b].sort((a,b)=>b.mtimeMs-a.mtimeMs);return{cwd:c.find(a=>a.cwd)?.cwd??(a===l?null:(0,f.decodeFolderName)(a)),sessions:c.map(a=>{let b=new Date(a.mtimeMs);return{name:a.title??a.conversationId,path:`antigravity://${a.conversationId}`,lastModified:b,lastModifiedFormatted:(0,g.formatDate)(b),sessionId:a.conversationId,cli:"antigravity"}})}}let o=(0,e.runtimeCache)(m,30),p=(0,e.runtimeCache)(a=>n(a),30,{maxSize:50});a.s(["antigravitySummariesDbPath",0,i,"getAntigravityIndex",0,j,"getAntigravityProjects",0,m,"getAntigravitySessionsByEncodedName",0,n,"getCachedAntigravityProjects",0,o,"getCachedAntigravitySessionsByEncodedName",0,p])},99910,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(34900),g=a.i(83397),h=a.i(92246);let i=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,j=new Set(["CONVERSATION_HISTORY","CHECKPOINT"]);function k(){return process.env.ANTIGRAVITY_HOME||(0,e.join)((0,d.homedir)(),".gemini","antigravity-cli")}function l(){return(0,e.join)(k(),"brain")}function m(){return(0,e.join)(".system_generated","logs","transcript_full.jsonl")}function n(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}async function o(a){let d,f=function(a){if(!i.test(a))return null;let b=(0,e.join)(l(),a,m());try{if((0,c.statSync)(b).isFile())return b}catch{}return null}(a);if(!f)return null;try{d=await (0,b.readFile)(f,"utf-8")}catch{return null}let k=(0,g.parseRawLines)(d,"session"),o=function(a,b="session"){let c=[],d=new Map,e=Date.now();for(let f=0;f<a.length;f++){let i=a[f];if(!n(i))continue;let k="string"==typeof i.type?i.type:"";if(!k||j.has(k))continue;let l=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(i.created_at,e+f),m=l.toISOString(),o="number"==typeof i.step_index?i.step_index:f,p={uuid:`antigravity-${o}`,parentUuid:null},q=(0,g.baseEntry)(p,m,l,b);if("USER_INPUT"===k){let a="string"==typeof i.content?i.content:"";c.push({type:"user",...q,message:{role:"user",content:a}});continue}if("PLANNER_RESPONSE"===k){let a=[];if("string"==typeof i.content&&i.content.length>0&&a.push({type:"text",text:i.content}),Array.isArray(i.tool_calls))for(let b=0;b<i.tool_calls.length;b++){let c=i.tool_calls[b];if(!n(c))continue;let e="string"==typeof c.name?c.name:"tool",f={type:"tool_use",id:`${e}-${o}-${b}`,name:e,input:n(c.args)?c.args:{}};a.push(f);let g=e.toUpperCase(),h=d.get(g)??[];h.push({block:f,startMs:l.getTime()}),d.set(g,h)}if(0===a.length)continue;c.push({type:"assistant",...q,message:{role:"assistant",content:a}});continue}let r=d.get(k);if(r&&r.length>0){let{block:a,startMs:b}=r.shift(),c=Math.max(0,l.getTime()-b);a.result={timestamp:m,timestampFormatted:(0,g.formatTimestamp)(l),content:"string"==typeof i.content?i.content:"",durationMs:c,durationFormatted:(0,h.formatDuration)(c)};continue}c.push({type:"system",...q,raw:p})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(k,"session"),p=function(a){for(let b of a)if(n(b)&&Array.isArray(b.tool_calls))for(let a of b.tool_calls){if(!n(a)||!n(a.args))continue;let b=a.args.Cwd??a.args.cwd;if("string"==typeof b&&b.length>0)return b}}(k);return{entries:o,rawLines:k,cwd:p,filePath:f}}let p=(0,f.runtimeCache)(a=>o(a),60,{maxSize:50});a.s(["antigravityHome",0,k,"getAntigravitySessionLog",0,o,"getCachedAntigravitySessionLog",0,p,"listAntigravityTranscripts",0,function(){let a,b=l(),d=m(),f=[];try{a=(0,c.readdirSync)(b,{withFileTypes:!0}).filter(a=>a.isDirectory())}catch{return f}for(let g of a){let a=g.name;if(!i.test(a))continue;let h=(0,e.join)(b,a,d);try{let b=(0,c.statSync)(h);if(!b.isFile())continue;f.push({conversationId:a,transcriptPath:h,mtimeMs:b.mtimeMs,sizeBytes:b.size})}catch{}}return f}])},1024,a=>{"use strict";var b=a.i(12714),c=a.i(60526),d=a.i(50227),e=a.i(90798),f=a.i(34900),g=a.i(26192),h=a.i(33432),i=a.i(76668);let j=(0,d.join)((0,c.homedir)(),".codex","sessions"),k=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;async function l(a){try{return await (0,b.readdir)(a,{withFileTypes:!0})}catch{return null}}async function m(a){let c=null;try{c=await (0,b.open)(a,"r");let d=Buffer.alloc(262144),{bytesRead:e}=await c.read(d,0,262144,0);if(0===e)return null;let f=d.subarray(0,e),g=f.indexOf(10),h=-1===g?e:g;return f.subarray(0,h).toString("utf-8")}catch{return null}finally{c&&await c.close().catch(()=>{})}}async function n(a){let b=await l(a);return b?b.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")).map(b=>(0,d.join)(a,b.name)):[]}async function o(){let a=await l(j);if(!a)return[];let c=[];for(let b of a){if(!b.isDirectory())continue;let a=await l((0,d.join)(j,b.name));if(a)for(let e of a){if(!e.isDirectory())continue;let a=await l((0,d.join)(j,b.name,e.name));if(a)for(let f of a){if(!f.isDirectory())continue;let a=(0,d.join)(j,b.name,e.name,f.name);c.push(...await n(a))}}}return 0===c.length?[]:(await (0,g.batchAll)(c.map(a=>async()=>{let c,d,e=(d=(a.split("/").pop()??"").match(k))?d[0]:null;if(!e)return null;let f=await m(a);if(!f)return null;let{cwd:g}=function(a){try{let b=JSON.parse(a);if("session_meta"!==b.type)return{};let c=b.payload?.cwd;if("string"!=typeof c||0===c.length)return{};return{cwd:c}}catch{return{}}}(f);if(!g)return null;try{let d=await (0,b.open)(a,"r");try{c=(await d.stat()).mtime}finally{await d.close().catch(()=>{})}}catch{c=new Date(0)}return{filePath:a,fileName:a.split("/").pop()??"",cwd:g,sessionId:e,fileMtime:c}}),16)).filter(a=>"fulfilled"===a.status).map(a=>a.value).filter(a=>null!==a)}let p=(0,f.runtimeCache)(o,30);async function q(){let a;try{a=await p()}catch(a){return(0,i.logWarn)("Failed to scan Codex sessions:",a),[]}let b=new Map;for(let c of a){let a=b.get(c.cwd);(!a||c.fileMtime.getTime()>a.latest.getTime())&&b.set(c.cwd,{latest:c.fileMtime,cwd:c.cwd})}let c=[];for(let{cwd:a,latest:d}of b.values())c.push({name:(0,e.encodeFolderName)(a),path:a,isDirectory:!0,lastModified:d,lastModifiedFormatted:(0,h.formatDate)(d),cli:["codex"]});return c.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),c}function r(a){let b=a.map(a=>({name:a.fileName.replace(/\.jsonl$/,""),path:a.filePath,lastModified:a.fileMtime,lastModifiedFormatted:(0,h.formatDate)(a.fileMtime),sessionId:a.sessionId,cli:"codex"}));return b.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),b}async function s(a){let b;try{b=await p()}catch(a){return(0,i.logWarn)("Failed to scan Codex sessions:",a),[]}return r(b.filter(b=>b.cwd===a))}async function t(a){let b;try{b=await p()}catch(a){return(0,i.logWarn)("Failed to scan Codex sessions:",a),{cwd:null,sessions:[]}}let c=b.filter(b=>(0,e.encodeFolderName)(b.cwd)===a);return{cwd:c[0]?.cwd??null,sessions:r(c)}}let u=(0,f.runtimeCache)(q,30),v=(0,f.runtimeCache)(a=>s(a),30,{maxSize:50}),w=(0,f.runtimeCache)(a=>t(a),30,{maxSize:50});a.s(["getCachedCodexProjects",0,u,"getCachedCodexSessionsByEncodedName",0,w,"getCachedCodexSessionsForCwd",0,v,"getCodexProjects",0,q,"getCodexSessionsByEncodedName",0,t,"getCodexSessionsForCwd",0,s])},88890,a=>{"use strict";var b=a.i(12714),c=a.i(60526),d=a.i(50227),e=a.i(90798),f=a.i(34900),g=a.i(26192),h=a.i(33432),i=a.i(76668);async function j(a){try{return await (0,b.readdir)(a,{withFileTypes:!0})}catch{return null}}async function k(a){try{return(await (0,b.stat)(a)).mtime}catch{return null}}async function l(){let a=(0,d.join)(process.env.COPILOT_HOME||(0,d.join)((0,c.homedir)(),".copilot"),"session-state"),e=await j(a);if(!e)return[];let f=e.filter(a=>a.isDirectory()).map(b=>({sessionId:b.name,workspacePath:(0,d.join)(a,b.name,"workspace.yaml"),eventsPath:(0,d.join)(a,b.name,"events.jsonl")}));return(await (0,g.batchAll)(f.map(a=>async()=>{let c;try{c=await (0,b.readFile)(a.workspacePath,"utf-8")}catch{return null}let d=function(a){let b=a.match(/^cwd\s*:\s*(.+?)\s*$/m);if(b)return b[1].replace(/^['"]|['"]$/g,"")}(c);if(!d)return null;let e=await k(a.eventsPath),f=await k(a.workspacePath),g=null!==e,h=e&&f?new Date(Math.max(e.getTime(),f.getTime())):e??f??new Date(0);return{workspacePath:a.workspacePath,eventsPath:a.eventsPath,sessionId:a.sessionId,cwd:d,fileMtime:h,hasTranscript:g}}),16)).filter(a=>"fulfilled"===a.status).map(a=>a.value).filter(a=>null!==a)}let m=(0,f.runtimeCache)(l,30);async function n(){let a;try{a=await m()}catch(a){return(0,i.logWarn)("Failed to scan Copilot sessions:",a),[]}let b=new Map;for(let c of a){if(!c.hasTranscript)continue;let a=b.get(c.cwd);(!a||c.fileMtime.getTime()>a.latest.getTime())&&b.set(c.cwd,{latest:c.fileMtime,cwd:c.cwd})}let c=[];for(let{cwd:a,latest:d}of b.values())c.push({name:(0,e.encodeFolderName)(a),path:a,isDirectory:!0,lastModified:d,lastModifiedFormatted:(0,h.formatDate)(d),cli:["copilot"]});return c.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),c}function o(a){let b=a.filter(a=>a.hasTranscript).map(a=>({name:a.sessionId,path:a.eventsPath,lastModified:a.fileMtime,lastModifiedFormatted:(0,h.formatDate)(a.fileMtime),sessionId:a.sessionId,cli:"copilot"}));return b.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),b}async function p(a){let b;try{b=await m()}catch(a){return(0,i.logWarn)("Failed to scan Copilot sessions:",a),[]}return o(b.filter(b=>b.cwd===a))}async function q(a){let b;try{b=await m()}catch(a){return(0,i.logWarn)("Failed to scan Copilot sessions:",a),{cwd:null,sessions:[]}}let c=b.filter(b=>b.hasTranscript&&(0,e.encodeFolderName)(b.cwd)===a);return{cwd:c[0]?.cwd??null,sessions:o(c)}}let r=(0,f.runtimeCache)(n,30),s=(0,f.runtimeCache)(a=>p(a),30,{maxSize:50}),t=(0,f.runtimeCache)(a=>q(a),30,{maxSize:50});a.s(["getCachedCopilotProjects",0,r,"getCachedCopilotSessionsByEncodedName",0,t,"getCachedCopilotSessionsForCwd",0,s,"getCopilotProjects",0,n,"getCopilotSessionsByEncodedName",0,q,"getCopilotSessionsForCwd",0,p])},93087,a=>{"use strict";var b=a.i(12714),c=a.i(60526),d=a.i(50227),e=a.i(90798),f=a.i(34900),g=a.i(26192),h=a.i(33432),i=a.i(76668);let j=["agent-sessions","conversations","sessions"],k=["meta.json","session.json","workspace.json","workspace.yaml"],l=["events.jsonl","transcript.jsonl","messages.jsonl"];async function m(a){try{return await (0,b.readdir)(a,{withFileTypes:!0})}catch{return null}}async function n(a){try{return(await (0,b.stat)(a)).mtime}catch{return null}}async function o(a,c){for(let e of c){let c,f=(0,d.join)(a,e);if(await n(f)===null)continue;try{c=await (0,b.readFile)(f,"utf-8")}catch{continue}let g=function(a){try{let b=JSON.parse(a);if("string"==typeof b.cwd&&b.cwd.length>0)return b.cwd}catch{}let b=a.match(/^\s*cwd\s*:\s*(.+?)\s*$/m);if(b){let a=b[1].replace(/^['"]|['"]$/g,"");if(a.length>0)return a}}(c);if(g)return{path:f,cwd:g}}return null}async function p(a,b){for(let c of b){let b=(0,d.join)(a,c);if(await n(b)!==null)return b}return null}async function q(){let a=process.env.CURSOR_HOME||(0,d.join)((0,c.homedir)(),".cursor"),b=[],f=[],h=(0,d.join)(a,"projects"),i=await m(h);if(i)for(let a of i){if(!a.isDirectory())continue;let c=(0,e.decodeFolderName)(a.name),f=c.startsWith("/")||/^[A-Za-z]:\//.test(c)?c:`/${c}`,g=(0,d.join)(h,a.name,"agent-transcripts"),i=await m(g);if(i)for(let a of i)a.isDirectory()&&b.push({sessionId:a.name,dir:(0,d.join)(g,a.name),cwd:f})}for(let b of j){let c=(0,d.join)(a,b),e=await m(c);if(e)for(let a of e)a.isDirectory()&&f.push({sessionId:a.name,dir:(0,d.join)(c,a.name)})}return 0===b.length&&0===f.length?[]:(await (0,g.batchAll)([...b.map(a=>async()=>{let b=(0,d.join)(a.dir,`${a.sessionId}.jsonl`),c=await n(b);return c?{metaPath:a.dir,transcriptPath:b,sessionId:a.sessionId,cwd:a.cwd,fileMtime:c,hasTranscript:!0}:null}),...f.map(a=>async()=>{let b=await o(a.dir,k);if(!b)return null;let c=await p(a.dir,l),d=c?await n(c):null,e=await n(b.path),f=d&&e?new Date(Math.max(d.getTime(),e.getTime())):d??e??new Date(0);return{metaPath:b.path,transcriptPath:c,sessionId:a.sessionId,cwd:b.cwd,fileMtime:f,hasTranscript:null!==c}})],16)).filter(a=>"fulfilled"===a.status).map(a=>a.value).filter(a=>null!==a)}let r=(0,f.runtimeCache)(q,30);async function s(){let a;try{a=await r()}catch(a){return(0,i.logWarn)("Failed to scan Cursor sessions:",a),[]}let b=new Map;for(let c of a){if(!c.hasTranscript)continue;let a=b.get(c.cwd);(!a||c.fileMtime.getTime()>a.latest.getTime())&&b.set(c.cwd,{latest:c.fileMtime,cwd:c.cwd})}let c=[];for(let{cwd:a,latest:d}of b.values())c.push({name:(0,e.encodeFolderName)(a),path:a,isDirectory:!0,lastModified:d,lastModifiedFormatted:(0,h.formatDate)(d),cli:["cursor"]});return c.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),c}function t(a){let b=a.filter(a=>a.hasTranscript&&a.transcriptPath).map(a=>({name:a.sessionId,path:a.transcriptPath,lastModified:a.fileMtime,lastModifiedFormatted:(0,h.formatDate)(a.fileMtime),sessionId:a.sessionId,cli:"cursor"}));return b.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),b}async function u(a){let b;try{b=await r()}catch(a){return(0,i.logWarn)("Failed to scan Cursor sessions:",a),[]}return t(b.filter(b=>b.cwd===a))}async function v(a){let b;try{b=await r()}catch(a){return(0,i.logWarn)("Failed to scan Cursor sessions:",a),{cwd:null,sessions:[]}}let c=b.filter(b=>b.hasTranscript&&(0,e.encodeFolderName)(b.cwd)===a);return{cwd:c[0]?.cwd??null,sessions:t(c)}}let w=(0,f.runtimeCache)(s,30),x=(0,f.runtimeCache)(a=>u(a),30,{maxSize:50}),y=(0,f.runtimeCache)(a=>v(a),30,{maxSize:50});a.s(["getCachedCursorProjects",0,w,"getCachedCursorSessionsByEncodedName",0,y,"getCachedCursorSessionsForCwd",0,x,"getCursorProjects",0,s,"getCursorSessionsByEncodedName",0,v,"getCursorSessionsForCwd",0,u])},15771,a=>{"use strict";var b=a.i(94431),c=a.i(33559),d=a.i(90798),e=a.i(34900),f=a.i(33432);async function g(){let a=await (0,b.openSqliteReadonly)((0,c.devinDbPath)());if(!a)return[];try{return a.query("SELECT id, working_directory, title, created_at, last_activity_at, hidden FROM sessions ORDER BY last_activity_at DESC").filter(a=>!a.hidden).map(a=>{let b=a.working_directory??void 0;return{sessionId:a.id,cwd:b,title:a.title??void 0,projectName:b?(0,d.encodeFolderName)(b):"devin",mtimeMs:(0,c.devinEpochToMs)(a.last_activity_at??a.created_at)}})}catch{return[]}finally{a.close()}}let h=(0,e.runtimeCache)(g,2);async function i(){let a=await g(),b=new Map;for(let c of a){if(!c.cwd)continue;let a=b.get(c.projectName);(!a||c.mtimeMs>a.latest)&&b.set(c.projectName,{latest:c.mtimeMs,cwd:c.cwd,name:c.projectName})}let c=[];for(let{name:a,cwd:d,latest:e}of b.values()){let b=new Date(e);c.push({name:a,path:d,isDirectory:!0,lastModified:b,lastModifiedFormatted:(0,f.formatDate)(b),cli:["devin"]})}return c.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),c}async function j(a){let b=(await g()).filter(b=>b.cwd&&b.projectName===a);if(0===b.length)return{cwd:null,sessions:[]};let c=[...b].sort((a,b)=>b.mtimeMs-a.mtimeMs);return{cwd:c[0].cwd??null,sessions:c.map(a=>{let b=new Date(a.mtimeMs);return{name:a.title??a.sessionId,path:`devin-db://${a.sessionId}`,lastModified:b,lastModifiedFormatted:(0,f.formatDate)(b),sessionId:a.sessionId,cli:"devin"}})}}let k=(0,e.runtimeCache)(i,2),l=(0,e.runtimeCache)(a=>j(a),2,{maxSize:50});a.s(["getCachedDevinProjects",0,k,"getCachedDevinSessions",0,h,"getCachedDevinSessionsByEncodedName",0,l,"getDevinProjects",0,i,"getDevinSessions",0,g,"getDevinSessionsByEncodedName",0,j])},33559,a=>{"use strict";var b=a.i(60526),c=a.i(50227),d=a.i(94431),e=a.i(34900),f=a.i(83397),g=a.i(92246);let h=/^[A-Za-z0-9_-]+$/;function i(){return process.env.DEVIN_DB_PATH||(0,c.join)(process.env.DEVIN_HOME||(0,c.join)((0,b.homedir)(),".local","share","devin"),"cli","sessions.db")}function j(a){if("string"==typeof a&&0!==a.length)try{return JSON.parse(a)}catch{return}}function k(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function l(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>k(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}function m(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}async function n(a){if(!a||!h.test(a))return null;let b=await (0,d.openSqliteReadonly)(i());if(!b)return null;try{let c=b.query("SELECT working_directory FROM sessions WHERE id = ?",[a]);if(0===c.length)return null;let d=c[0].working_directory,e=b.query("SELECT node_id, parent_node_id, chat_message, created_at FROM message_nodes WHERE session_id = ? ORDER BY node_id ASC",[a]),h=function(a){let b=[];for(let c of a){let a=j(c.chat_message);k(a)&&(null!=c.created_at&&null==a._created_at&&(a._created_at=c.created_at),b.push(a))}return b}(function(a){if(0===a.length)return a;let b=new Map;for(let c of a)"number"==typeof c.node_id&&b.set(c.node_id,c);let c=a.reduce((a,b)=>(a.node_id??-1)>(b.node_id??-1)?a:b),d=[],e=new Set;for(;c&&"number"==typeof c.node_id&&!e.has(c.node_id);)e.add(c.node_id),d.push(c),c=null!=c.parent_node_id?b.get(c.parent_node_id):void 0;return d.reverse()}(e)),i=function(a,b="session"){let c=[],d=new Map,e=new Map,h=Date.now();for(let i=0;i<a.length;i++){let n=a[i];if(!k(n))continue;let o="string"==typeof n.role?n.role:"system",p=function(a,b){let c=k(a.metadata)?a.metadata:void 0;return c&&null!=c.created_at?m(c.created_at,b):null!=a._created_at?m(a._created_at,b):new Date(b)}(n,h+i),q=p.toISOString(),r={uuid:null!=n.message_id?String(n.message_id):`devin-${i}`,parentUuid:null},s=(0,f.baseEntry)(r,q,p,b);if("user"===o){c.push({type:"user",...s,message:{role:"user",content:l(n.content)}});continue}if("assistant"===o){let a=[],b=l(n.content);for(let c of(b&&a.push({type:"text",text:b}),function(a){let b=Array.isArray(a)?a:j(a);if(!Array.isArray(b))return[];let c=[];for(let a of b){if(!k(a))continue;let b=k(a.function)?a.function:{},d="string"==typeof a.name?a.name:"string"==typeof b.name?b.name:"tool",e="string"==typeof a.id&&a.id||"string"==typeof a.call_id&&a.call_id||`${d}-${c.length}`,f=a.arguments??b.arguments,g=k(f)?f:j(f);c.push({id:e,name:d,input:k(g)?g:{}})}return c}(n.tool_calls))){let b={type:"tool_use",id:c.id,name:c.name,input:c.input};a.push(b),d.set(c.id,b),e.set(c.id,p.getTime())}if(0===a.length)continue;c.push({type:"assistant",...s,message:{role:"assistant",content:a,model:"string"==typeof n.model?n.model:void 0}});continue}if("tool"===o){let a="string"==typeof n.tool_call_id?n.tool_call_id:void 0,b=a?d.get(a):void 0;if(b){let c=a&&e.get(a)||p.getTime(),d=Math.max(0,p.getTime()-c);b.result={timestamp:q,timestampFormatted:(0,f.formatTimestamp)(p),content:l(n.content),durationMs:d,durationFormatted:(0,g.formatDuration)(d)};continue}}c.push({type:"system",...s,raw:r})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(h,"session"),n=d&&d.length>0?d:void 0;return{entries:i,rawLines:h,cwd:n,filePath:`devin-db://${a}`}}catch{return null}finally{b.close()}}let o=(0,e.runtimeCache)(a=>n(a),2,{maxSize:50});a.s(["devinDbPath",0,i,"devinEpochToMs",0,function(a){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return a;if(a>1e9)return 1e3*a}return Date.now()},"getCachedDevinSessionLog",0,o])},26732,a=>{"use strict";var b=a.i(90798),c=a.i(89901),d=a.i(34900),e=a.i(33432),f=a.i(76668);async function g(){let a;try{a=(0,c.listFactoryTranscripts)()}catch(a){return(0,f.logWarn)("Failed to scan Factory sessions:",a),[]}let b=new Map;for(let c of a){let a=b.get(c.projectName);(!a||c.mtimeMs>a.latest)&&b.set(c.projectName,{latest:c.mtimeMs,cwd:c.cwd,name:c.projectName})}let d=[];for(let{name:a,cwd:c,latest:f}of b.values()){let b=new Date(f);d.push({name:a,path:c,isDirectory:!0,lastModified:b,lastModifiedFormatted:(0,e.formatDate)(b),cli:["factory"]})}return d.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),d}async function h(a){let d;try{d=(0,c.listFactoryTranscripts)().filter(b=>b.projectName===a)}catch(a){return(0,f.logWarn)("Failed to scan Factory sessions:",a),{cwd:null,sessions:[]}}if(0===d.length)return{cwd:null,sessions:[]};let g=[...d].sort((a,b)=>b.mtimeMs-a.mtimeMs),h=null;try{let a=await (0,c.getFactorySessionLog)(g[0].sessionId);h=a?.cwd??null}catch{}return h||(h=(0,b.decodeFolderName)(a)),{cwd:h,sessions:g.map(a=>{let b=new Date(a.mtimeMs);return{name:a.sessionId,path:a.transcriptPath,lastModified:b,lastModifiedFormatted:(0,e.formatDate)(b),sessionId:a.sessionId,cli:"factory"}})}}let i=(0,d.runtimeCache)(g,30),j=(0,d.runtimeCache)(a=>h(a),30,{maxSize:50});a.s(["getCachedFactoryProjects",0,i,"getCachedFactorySessionsByEncodedName",0,j,"getFactoryProjects",0,g,"getFactorySessionsByEncodedName",0,h])},89901,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(90798),g=a.i(34900),h=a.i(83397),i=a.i(92246);let j=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;function k(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function l(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>k(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}function m(){let a,b=(0,e.join)(process.env.FACTORY_HOME||(0,e.join)((0,d.homedir)(),".factory"),"sessions"),g=[];try{a=(0,c.readdirSync)(b,{withFileTypes:!0}).filter(a=>a.isDirectory())}catch{return g}for(let d of a){let a,h=d.name,i=(0,f.decodeFolderName)(h),k=(0,e.join)(b,h);try{a=(0,c.readdirSync)(k)}catch{continue}for(let b of a){if(!b.endsWith(".jsonl"))continue;let a=b.slice(0,-6);if(!j.test(a))continue;let d=(0,e.join)(k,b);try{let b=(0,c.statSync)(d);g.push({projectName:h,cwd:i,sessionId:a,transcriptPath:d,mtimeMs:b.mtimeMs,sizeBytes:b.size})}catch{}}}return g}async function n(a){let c,d,e=function(a){if(!j.test(a))return null;for(let b of m())if(b.sessionId===a)return b.transcriptPath;return null}(a);if(!e)return null;try{c=await (0,b.readFile)(e,"utf-8")}catch{return null}let f=(0,h.parseRawLines)(c,"session"),g=function(a,b="session"){let c=[],d=new Map,e=new Map,f=Date.now();for(let g=0;g<a.length;g++){let j=a[g];if(!k(j)||"message"!==j.type)continue;let m=k(j.message)?j.message:void 0;if(!m)continue;let n="string"==typeof m.role?m.role:"system",o=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(j.timestamp??m.timestamp,f+g),p=o.toISOString(),q={uuid:null!=j.id?String(j.id):`factory-${g}`,parentUuid:null!=j.parentId?String(j.parentId):null},r=(0,h.baseEntry)(q,p,o,b),s=m.content;if("assistant"===n){let a=[];if(Array.isArray(s)){for(let b of s)if(k(b)){if("text"===b.type&&"string"==typeof b.text)a.push({type:"text",text:b.text});else if("tool_use"===b.type){let c="string"==typeof b.id?b.id:`${String(b.name??"tool")}-${a.length}`,f={type:"tool_use",id:c,name:"string"==typeof b.name?b.name:"tool",input:k(b.input)?b.input:{}};a.push(f),d.set(c,f),e.set(c,o.getTime())}}}else{let b=l(s);b&&a.push({type:"text",text:b})}if(0===a.length)continue;c.push({type:"assistant",...r,message:{role:"assistant",content:a,model:"string"==typeof m.model?m.model:void 0}});continue}if(Array.isArray(s)){let a=!1,b=[];for(let c of s)if(k(c)){if("tool_result"===c.type){let b="string"==typeof c.tool_use_id?c.tool_use_id:"string"==typeof c.toolUseId?c.toolUseId:void 0,f=b?d.get(b):void 0;if(f){let d=b&&e.get(b)||o.getTime(),g=Math.max(0,o.getTime()-d);f.result={timestamp:p,timestampFormatted:(0,h.formatTimestamp)(o),content:l(c.content),durationMs:g,durationFormatted:(0,i.formatDuration)(g)},a=!0;continue}}"text"===c.type&&"string"==typeof c.text&&b.push(c.text)}b.length>0?c.push({type:"user",...r,message:{role:"user",content:b.join("\n")}}):a||c.push({type:"system",...r,raw:q});continue}if("user"===n){c.push({type:"user",...r,message:{role:"user",content:l(s)}});continue}c.push({type:"system",...r,raw:q})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(f,"session");for(let a of f)if(k(a)&&"session_start"===a.type&&"string"==typeof a.cwd&&a.cwd.length>0){d=a.cwd;break}return{entries:g,rawLines:f,cwd:d,filePath:e}}let o=(0,g.runtimeCache)(a=>n(a),60,{maxSize:50});a.s(["getCachedFactorySessionLog",0,o,"getFactorySessionLog",0,n,"listFactoryTranscripts",0,m])},81057,a=>{"use strict";var b=a.i(94431),c=a.i(74615),d=a.i(90798),e=a.i(34900),f=a.i(33432);async function g(){let a=await (0,b.openSqliteReadonly)((0,c.gooseDbPath)());if(!a)return[];try{return a.query("SELECT id, working_dir, description, name, session_type, created_at, updated_at FROM sessions ORDER BY updated_at DESC").filter(a=>"hidden"!==a.session_type).map(a=>{let b=a.working_dir??void 0,e=(a.description&&a.description.length>0?a.description:a.name)??void 0;return{sessionId:a.id,cwd:b,title:e&&e.length>0?e:void 0,projectName:b?(0,d.encodeFolderName)(b):"goose",mtimeMs:(0,c.gooseTimestampToMs)(a.updated_at??a.created_at)}})}catch{return[]}finally{a.close()}}let h=(0,e.runtimeCache)(g,2);async function i(){let a=await g(),b=new Map;for(let c of a){if(!c.cwd)continue;let a=b.get(c.projectName);(!a||c.mtimeMs>a.latest)&&b.set(c.projectName,{latest:c.mtimeMs,cwd:c.cwd,name:c.projectName})}let c=[];for(let{name:a,cwd:d,latest:e}of b.values()){let b=new Date(e);c.push({name:a,path:d,isDirectory:!0,lastModified:b,lastModifiedFormatted:(0,f.formatDate)(b),cli:["goose"]})}return c.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),c}async function j(a){let b=(await g()).filter(b=>b.cwd&&b.projectName===a);if(0===b.length)return{cwd:null,sessions:[]};let c=[...b].sort((a,b)=>b.mtimeMs-a.mtimeMs);return{cwd:c[0].cwd??null,sessions:c.map(a=>{let b=new Date(a.mtimeMs);return{name:a.title??a.sessionId,path:`goose-db://${a.sessionId}`,lastModified:b,lastModifiedFormatted:(0,f.formatDate)(b),sessionId:a.sessionId,cli:"goose"}})}}let k=(0,e.runtimeCache)(i,2),l=(0,e.runtimeCache)(a=>j(a),2,{maxSize:50});a.s(["getCachedGooseProjects",0,k,"getCachedGooseSessions",0,h,"getCachedGooseSessionsByEncodedName",0,l,"getGooseProjects",0,i,"getGooseSessions",0,g,"getGooseSessionsByEncodedName",0,j])},74615,a=>{"use strict";var b=a.i(60526),c=a.i(50227),d=a.i(94431),e=a.i(34900),f=a.i(83397),g=a.i(92246);let h=/^\d{8}_\d+$/;function i(){return process.env.GOOSE_DB_PATH||(0,c.join)(function(){if(process.env.GOOSE_HOME)return process.env.GOOSE_HOME;let a=process.env.XDG_DATA_HOME;return(0,c.join)(a&&a.length>0?a:(0,c.join)((0,b.homedir)(),".local","share"),"goose")}(),"sessions","sessions.db")}function j(a){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return a;if(a>1e9)return 1e3*a}if("string"==typeof a&&a.length>0){let b=Date.parse(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(a)?a.replace(" ","T")+"Z":a);if(!Number.isNaN(b))return b}return Date.now()}function k(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function l(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>k(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}async function m(a){if(!a||!h.test(a))return null;let b=await (0,d.openSqliteReadonly)(i());if(!b)return null;try{let c=b.query("SELECT working_dir FROM sessions WHERE id = ?",[a]);if(0===c.length)return null;let d=c[0].working_dir,e=b.query("SELECT role, content_json, created_timestamp FROM messages WHERE session_id = ? ORDER BY id ASC",[a]),h=function(a,b="session"){let c=[],d=new Map,e=new Map,h=Date.now();for(let i=0;i<a.length;i++){let m=a[i],n=function(a){if("string"==typeof a&&0!==a.length)try{return JSON.parse(a)}catch{return}}(m.content_json);if(!Array.isArray(n))continue;let o="string"==typeof m.role?m.role:"system",p=function(a,b){let c="number"==typeof a||"string"==typeof a?j(a):NaN;return new Date(Number.isNaN(c)?b:c)}(m.created_timestamp,h+i),q=p.toISOString(),r={uuid:`goose-${i}`,parentUuid:null},s=(0,f.baseEntry)(r,q,p,b),t=[],u=[],v=[];for(let a of n)k(a)&&("text"===a.type&&"string"==typeof a.text?t.push(a.text):"toolRequest"===a.type?u.push(a):"toolResponse"===a.type&&v.push(a));for(let a of v){let b="string"==typeof a.id?a.id:void 0,c=b?d.get(b):void 0;if(!c)continue;let h=b&&e.get(b)||p.getTime(),i=Math.max(0,p.getTime()-h);c.result={timestamp:q,timestampFormatted:(0,f.formatTimestamp)(p),content:function(a){let b=(k(a.toolResult)?a.toolResult:{}).value;return k(b)&&Array.isArray(b.content)?l(b.content):"string"==typeof b?b:Array.isArray(b)?l(b):""}(a),durationMs:i,durationFormatted:(0,g.formatDuration)(i)}}let w=t.join("\n").trim();if(u.length>0||"assistant"===o&&w){let a=[];for(let b of(w&&a.push({type:"text",text:w}),u)){let{id:c,name:f,input:g}=function(a,b){let c="string"==typeof a.id&&a.id?a.id:`goose-tool-${b}`,d=k(a.toolCall)?a.toolCall:{},e=k(d.value)?d.value:{},f="string"==typeof e.name?e.name:"tool";return{id:c,name:f,input:k(e.arguments)?e.arguments:{}}}(b,a.length),h={type:"tool_use",id:c,name:f,input:g};a.push(h),d.set(c,h),e.set(c,p.getTime())}if(0===a.length)continue;c.push({type:"assistant",...s,message:{role:"assistant",content:a}});continue}if("user"===o&&w){c.push({type:"user",...s,message:{role:"user",content:w}});continue}w&&c.push({type:"system",...s,raw:r})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(e,"session"),i=d&&d.length>0?d:void 0;return{entries:h,rawLines:e,cwd:i,filePath:`goose-db://${a}`}}catch{return null}finally{b.close()}}let n=(0,e.runtimeCache)(a=>m(a),2,{maxSize:50});a.s(["getCachedGooseSessionLog",0,n,"gooseDbPath",0,i,"gooseTimestampToMs",0,j])},43600,a=>{"use strict";var b=a.i(2157),c=a.i(60526),d=a.i(50227);let e="profiles",f=".hermes",g=".hermes-",h="default";function i(){let a=(process.env.HERMES_HOME||"").trim();if(a){let b=(0,d.resolve)(a),c=(0,d.dirname)(b);(0,d.basename)(c)===e&&(b=(0,d.dirname)(c));let h=(0,d.basename)(b);return h===f||h.startsWith(g)?(0,d.join)((0,d.dirname)(b),f):b}return(0,d.join)((0,c.homedir)(),f)}function j(){let a=i(),c=[{name:h,home:a}],j=new Set([h]),k=[];try{k=(0,b.readdirSync)((0,d.join)(a,e),{withFileTypes:!0}).filter(a=>(a.isDirectory()||a.isSymbolicLink())&&!a.name.startsWith(".")).map(a=>a.name).sort()}catch{}for(let b of k)j.has(b)||(j.add(b),c.push({name:b,home:(0,d.join)(a,e,b)}));if((0,d.basename)(a)!==f)return c;let l=[],m=(0,d.dirname)(a);try{l=(0,b.readdirSync)(m,{withFileTypes:!0}).filter(a=>(a.isDirectory()||a.isSymbolicLink())&&a.name.startsWith(g)&&a.name.length>g.length&&(0,b.existsSync)((0,d.join)(m,a.name,"config.yaml"))).map(a=>({name:a.name.slice(g.length),home:(0,d.join)(m,a.name)})).sort((a,b)=>a.name.localeCompare(b.name))}catch{return c}for(let a of l){let b=function(a,b){if(!b.has(a))return a;let c=`${a}-home`;if(!b.has(c))return c;let d=2;for(;b.has(`${c}-${d}`);)d+=1;return`${c}-${d}`}(a.name,j);j.add(b),c.push({name:b,home:a.home})}return c}a.s(["HERMES_DEFAULT_PROFILE",0,h,"hermesProjectName",0,function(a,b){return`hermes-${a}-${b}`},"hermesProjectNameCandidates",0,function(a){if(!a.startsWith("hermes-"))return[];let b=a.slice(7);if(!b)return[];let c=[];for(let a of j().map(a=>a.name).sort((a,b)=>b.length-a.length)){let d=`${a}-`;b.startsWith(d)&&b.length>d.length&&c.push({profile:a,source:b.slice(d.length)})}return c.push({profile:h,source:b}),c},"hermesProjectPath",0,function(a,b){return`hermes:${a}:${b}`},"hermesRoot",0,i,"listHermesProfiles",0,j])},83884,a=>{"use strict";var b=a.i(94431),c=a.i(54563),d=a.i(43600),e=a.i(34900),f=a.i(33432);async function g(){let a=[];for(let{profile:b,dbPath:d}of(0,c.hermesDbPaths)())a.push(...await h(d,b));return a.sort((a,b)=>b.mtimeMs-a.mtimeMs),a}async function h(a,d){let e=await (0,b.openSqliteReadonly)(a);if(!e)return[];try{return e.query("SELECT s.id, s.source, s.cwd, s.title, s.user_id, s.chat_id, s.chat_type, s.started_at, s.ended_at, s.message_count, lm.last_activity FROM sessions s LEFT JOIN (SELECT session_id, MAX(timestamp) AS last_activity FROM messages GROUP BY session_id) lm ON lm.session_id = s.id ORDER BY lm.last_activity DESC").map(a=>({sessionId:a.id,profile:d,source:a.source??void 0,cwd:a.cwd??void 0,title:a.title??void 0,userId:a.user_id??void 0,chatId:a.chat_id??void 0,chatType:a.chat_type??void 0,mtimeMs:(0,c.epochToMs)(a.last_activity??a.ended_at??a.started_at),messageCount:"number"==typeof a.message_count?a.message_count:0,hasMessages:null!=a.last_activity}))}catch{return[]}finally{e.close()}}let i=(0,e.runtimeCache)(g,2);async function j(){let a=await g(),b=new Map;for(let c of a){if(c.messageCount<=0&&!c.hasMessages)continue;let a=c.profile||d.HERMES_DEFAULT_PROFILE,e=c.source??"unknown",f=JSON.stringify([a,e]),g=b.get(f);g?(g.latest=Math.max(g.latest,c.mtimeMs),g.count+=1):b.set(f,{profile:a,source:e,latest:c.mtimeMs,count:1})}let c=[];for(let{profile:a,source:e,latest:g,count:h}of b.values()){let b=new Date(g);c.push({name:(0,d.hermesProjectName)(a,e),path:(0,d.hermesProjectPath)(a,e),isDirectory:!0,lastModified:b,lastModifiedFormatted:(0,f.formatDate)(b),cli:["hermes"],sessionCount:h})}return c.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),c}async function k(a){let b=(0,d.hermesProjectNameCandidates)(a);if(0===b.length)return{cwd:null,sessions:[]};let c=await g(),e=a=>c.filter(b=>(b.messageCount>0||b.hasMessages)&&(b.profile||d.HERMES_DEFAULT_PROFILE)===a.profile&&(b.source??"unknown")===a.source),h=b[0],i=e(h);if(0===i.length)for(let a of b.slice(1)){let b=e(a);if(b.length>0){h=a,i=b;break}}let{profile:j,source:k}=h;return{cwd:(0,d.hermesProjectPath)(j,k),sessions:i.map(a=>{let b=new Date(a.mtimeMs);return{name:a.title??a.sessionId,path:`hermes://${a.sessionId}`,lastModified:b,lastModifiedFormatted:(0,f.formatDate)(b),sessionId:a.sessionId,cli:"hermes",userId:a.userId,channelId:a.chatId,channelType:a.chatType}})}}let l=(0,e.runtimeCache)(j,2),m=(0,e.runtimeCache)(a=>k(a),2,{maxSize:50});a.s(["getCachedHermesProjects",0,l,"getCachedHermesSessions",0,i,"getCachedHermesSessionsByEncodedName",0,m,"getHermesProjects",0,j,"getHermesSessions",0,g,"getHermesSessionsByEncodedName",0,k])},54563,a=>{"use strict";var b=a.i(50227),c=a.i(94431),d=a.i(43600),e=a.i(34900),f=a.i(83397),g=a.i(92246);function h(){let a=process.env.HERMES_DB_PATH;return a?[{profile:d.HERMES_DEFAULT_PROFILE,dbPath:a}]:(0,d.listHermesProfiles)().map(a=>({profile:a.name,dbPath:(0,b.join)(a.home,"state.db")}))}function i(a){if("string"==typeof a&&0!==a.length)try{return JSON.parse(a)}catch{return}}function j(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function k(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>j(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}async function l(a){if(!a||!/^[A-Za-z0-9_-]+$/.test(a))return null;for(let{profile:b,dbPath:c}of h()){let d=await m(c,b,a);if(d)return d}return null}async function m(a,b,e){let h=await (0,c.openSqliteReadonly)(a);if(!h)return null;try{let a=h.query("SELECT source, cwd FROM sessions WHERE id = ?",[e]);if(0===a.length)return null;let{source:c,cwd:l}=a[0],m=h.query("SELECT id, role, content, tool_call_id, tool_calls, tool_name, timestamp FROM messages WHERE session_id = ? ORDER BY timestamp ASC",[e]),n=function(a,b="session"){let c=[],d=new Map,e=new Map,h=Date.now();for(let l=0;l<a.length;l++){let m=a[l];if(!j(m))continue;let n="string"==typeof m.role?m.role:"system",o=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(m.timestamp??m.time_created,h+l),p=o.toISOString(),q={uuid:null!=m.id?String(m.id):`hermes-${l}`,parentUuid:null},r=(0,f.baseEntry)(q,p,o,b);if("user"===n){c.push({type:"user",...r,message:{role:"user",content:k(m.content)}});continue}if("assistant"===n){let a=[],b=k(m.content);for(let c of(b&&a.push({type:"text",text:b}),function(a){let b=Array.isArray(a)?a:i(a);if(!Array.isArray(b))return[];let c=[];for(let a of b){if(!j(a))continue;let b=j(a.function)?a.function:{},d="string"==typeof b.name?b.name:"string"==typeof a.name?a.name:"tool",e="string"==typeof a.id&&a.id||"string"==typeof a.call_id&&a.call_id||`${d}-${c.length}`,f=j(b.arguments)?b.arguments:i(b.arguments);c.push({id:e,name:d,input:j(f)?f:{}})}return c}(m.tool_calls))){let b={type:"tool_use",id:c.id,name:c.name,input:c.input};a.push(b),d.set(c.id,b),e.set(c.id,o.getTime())}if(0===a.length)continue;c.push({type:"assistant",...r,message:{role:"assistant",content:a}});continue}if("tool"===n){let a="string"==typeof m.tool_call_id?m.tool_call_id:void 0,b=a?d.get(a):void 0;if(b){let c=a&&e.get(a)||o.getTime(),d=Math.max(0,o.getTime()-c);b.result={timestamp:p,timestampFormatted:(0,f.formatTimestamp)(o),content:k(m.content),durationMs:d,durationFormatted:(0,g.formatDuration)(d)};continue}}c.push({type:"system",...r,raw:q})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}(m,"session"),o=l&&l.length>0?l:c?(0,d.hermesProjectPath)(b,c):void 0;return{entries:n,rawLines:m,cwd:o,filePath:`hermes://${e}`,profile:b}}catch{return null}finally{h.close()}}let n=(0,e.runtimeCache)(a=>l(a),2,{maxSize:50});a.s(["epochToMs",0,function(a){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return a;if(a>1e9)return 1e3*a}return Date.now()},"getCachedHermesSessionLog",0,n,"hermesDbPaths",0,h])},96877,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(34900),e=a.i(87488),f=a.i(33432),g=a.i(32460);function h(a){return"string"==typeof a&&a.length>0?a:void 0}async function i(){let a=(0,e.listOpenClawTranscripts)(),d=new Map,f=new Map;for(let g of a){let a=d.get(g.agentId);a||(a=function(a){let d,f=new Map,g=(0,c.join)((0,e.openclawHome)(),"agents",a,"sessions","sessions.json");try{d=JSON.parse((0,b.readFileSync)(g,"utf-8"))}catch{return f}if(!d||"object"!=typeof d)return f;for(let a of Object.values(d)){if(!a||"object"!=typeof a)continue;let b=h(a.sessionId);if(!b)continue;let c=a.origin&&"object"==typeof a.origin?a.origin:{},d="number"==typeof a.lastInteractionAt?a.lastInteractionAt:"number"==typeof a.updatedAt?a.updatedAt:void 0;f.set(b,{lastMs:d,channel:h(a.lastChannel)??h(c.provider)??h(c.surface),chatType:h(a.chatType)??h(c.chatType),label:h(c.label),chatId:h(a.lastTo)??h(c.from)})}return f}(g.agentId),d.set(g.agentId,a));let i=a.get(g.sessionId);f.set(`${g.agentId}\0${g.sessionId}`,{sessionId:g.sessionId,agentId:g.agentId,channel:i?.channel??"local",label:i?.label,chatType:i?.chatType,chatId:i?.chatId,transcriptPath:g.transcriptPath,mtimeMs:i?.lastMs??g.mtimeMs,sizeBytes:g.sizeBytes})}for(let a of(await (0,g.listOpenClawSqliteSessions)((0,e.openclawHome)(),(0,e.listOpenClawAgents)())))f.set(`${a.agentId}\0${a.sessionId}`,a);return[...f.values()].sort((a,b)=>b.mtimeMs-a.mtimeMs)}let j=(0,d.runtimeCache)(i,2);function k(a,b){return`openclaw-${a}-${b}`}function l(a,b){return`openclaw:${a}:${b}`}function m(a){if(!a.startsWith("openclaw-"))return[];let b=a.slice(9);if(!b)return[];let c=[];for(let a of(0,e.listOpenClawAgents)().sort((a,b)=>b.length-a.length)){let d=`${a}-`;b.startsWith(d)&&b.length>d.length&&c.push({agentId:a,channel:b.slice(d.length)})}return c.push({agentId:null,channel:b}),c}async function n(){let a=await i(),b=new Map;for(let c of a){let a=JSON.stringify([c.agentId,c.channel]),d=b.get(a);d?(d.latest=Math.max(d.latest,c.mtimeMs),d.count+=1):b.set(a,{agentId:c.agentId,channel:c.channel,latest:c.mtimeMs,count:1})}let c=[];for(let{agentId:a,channel:d,latest:e,count:g}of b.values()){let b=new Date(e);c.push({name:k(a,d),path:l(a,d),isDirectory:!0,lastModified:b,lastModifiedFormatted:(0,f.formatDate)(b),cli:["openclaw"],sessionCount:g})}return c.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),c}async function o(a){let b=m(a);if(0===b.length)return{cwd:null,sessions:[]};let c=await i(),d=a=>c.filter(b=>b.channel===a.channel&&(null===a.agentId||b.agentId===a.agentId)),e=b[0],g=d(e);if(0===g.length)for(let a of b.slice(1)){let b=d(a);if(b.length>0){e=a,g=b;break}}let{agentId:h,channel:j}=e;return{cwd:null===h?`openclaw:${j}`:l(h,j),sessions:g.map(a=>{let b=new Date(a.mtimeMs);return{name:a.label??a.chatId??a.sessionId,path:a.sessionId,lastModified:b,lastModifiedFormatted:(0,f.formatDate)(b),sessionId:a.sessionId,cli:"openclaw",channelId:a.chatId,channelType:a.chatType}})}}let p=(0,d.runtimeCache)(n,2),q=(0,d.runtimeCache)(a=>o(a),2,{maxSize:50});a.s(["getCachedOpenClawProjects",0,p,"getCachedOpenClawSessions",0,j,"getCachedOpenClawSessionsByEncodedName",0,q,"getOpenClawProjects",0,n,"getOpenClawSessions",0,i,"getOpenClawSessionsByEncodedName",0,o,"openClawProjectName",0,k,"openClawProjectNameCandidates",0,m,"openClawProjectPath",0,l,"parseOpenClawProjectName",0,function(a){return m(a)[0]??null}])},87488,32460,a=>{"use strict";var b=a.i(12714),c=a.i(2157),d=a.i(60526),e=a.i(50227),f=a.i(34900),g=a.i(83397),h=a.i(92246),i=a.i(94431);function j(a){return"string"==typeof a&&a.length>0?a:void 0}function k(a){try{let b=JSON.parse(a);return b&&"object"==typeof b&&!Array.isArray(b)?b:void 0}catch{return}}function l(a,b){return`openclaw-sqlite://${encodeURIComponent(a)}/${b}`}function m(a,b){let d=[];for(let f of b){let b=(0,e.join)(a,"agents",f,"agent","openclaw-agent.sqlite");(0,c.existsSync)(b)&&d.push({agentId:f,dbPath:b})}return d}async function n(a,b){let c=[];for(let{agentId:d,dbPath:e}of m(a,b)){let a=await (0,i.openSqliteReadonly)(e);if(a)try{let b;try{b=a.query(`SELECT w.session_id, w.session_key, w.updated_at,
2
- w.transcript_updated_at, w.ended_at, w.channel,
3
- w.chat_type, w.display_name,
4
- COALESCE((SELECT MAX(e.created_at)
5
- FROM transcript_events e
6
- WHERE e.session_id = w.session_id), 0) AS event_updated_at,
7
- COALESCE((SELECT SUM(length(e.event_json) + 1)
8
- FROM transcript_events e
9
- WHERE e.session_id = w.session_id), 0) AS size_bytes
10
- FROM session_windows w
11
- WHERE EXISTS (SELECT 1 FROM transcript_events e
12
- WHERE e.session_id = w.session_id)`)}catch{continue}let f=function(a){let b,c=new Map;try{b=a.query(`SELECT current_session_id, entry_json, label, display_name
13
- FROM session_nodes`)}catch{return c}for(let a of b){let b=k(a.entry_json)??{},d=b.origin&&"object"==typeof b.origin&&!Array.isArray(b.origin)?b.origin:{};c.set(a.current_session_id,{channel:j(b.lastChannel)??j(d.provider)??j(d.surface),label:j(a.label)??j(a.display_name)??j(b.displayName)??j(d.label),chatId:j(b.lastTo)??j(d.from),chatType:j(b.chatType)??j(d.chatType)})}return c}(a),g=function(a){let b,c=new Map;try{b=a.query(`SELECT sc.session_id, c.channel, c.kind, c.peer_id,
14
- c.delivery_target, c.label
15
- FROM session_conversations sc
16
- JOIN conversations c ON c.conversation_id = sc.conversation_id
17
- ORDER BY CASE sc.role WHEN 'primary' THEN 0 ELSE 1 END, sc.last_seen_at DESC`)}catch{return c}for(let a of b)c.has(a.session_id)||c.set(a.session_id,{channel:j(a.channel),label:j(a.label),chatId:j(a.delivery_target)??j(a.peer_id),chatType:j(a.kind)});return c}(a);for(let a of b){let b=f.get(a.session_id),h=g.get(a.session_id);c.push({sessionId:a.session_id,agentId:d,dbPath:e,transcriptPath:l(d,a.session_id),mtimeMs:Math.max(Number(a.updated_at)||0,Number(a.transcript_updated_at)||0,Number(a.ended_at)||0,Number(a.event_updated_at)||0),sizeBytes:Number(a.size_bytes)||0,channel:j(a.channel)??h?.channel??b?.channel??"local",label:j(a.display_name)??h?.label??b?.label,chatId:h?.chatId??b?.chatId,chatType:j(a.chat_type)??h?.chatType??b?.chatType})}}finally{a.close()}}return c}async function o(a,b,c){for(let{agentId:d,dbPath:e}of m(a,b)){let a=await (0,i.openSqliteReadonly)(e);if(a)try{let b;try{b=a.query(`SELECT event_json
18
- FROM transcript_events
19
- WHERE session_id = ?
20
- ORDER BY seq ASC`,[c])}catch{continue}if(0===b.length)continue;let f=b.map(a=>a.event_json),g=f.map(k).filter(a=>void 0!==a);return{agentId:d,dbPath:e,filePath:l(d,c),rawLines:g,eventJsonLines:f}}finally{a.close()}}return null}a.s(["listOpenClawSqliteSessions",0,n,"readOpenClawSqliteTranscript",0,o],32460);let p=/^[0-9a-fA-F-]{36}$/;function q(){return process.env.OPENCLAW_STATE_DIR||process.env.OPENCLAW_HOME||(0,e.join)((0,d.homedir)(),".openclaw")}function r(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function s(a){return"string"==typeof a?a:Array.isArray(a)?a.map(a=>r(a)&&"string"==typeof a.text?a.text:"").filter(Boolean).join("\n"):""}function t(a,b="session"){let c=[],d=new Map,e=new Map,f=Date.now();for(let i=0;i<a.length;i++){let j=a[i];if(!r(j)||"message"!==j.type)continue;let k=r(j.message)?j.message:void 0;if(!k)continue;let l="string"==typeof k.role?k.role:"system",m=function(a,b){if("number"==typeof a&&Number.isFinite(a)){if(a>1e12)return new Date(a);if(a>1e9)return new Date(1e3*a)}if("string"==typeof a){let b=Date.parse(a);if(!Number.isNaN(b))return new Date(b)}return new Date(b)}(j.timestamp??k.timestamp,f+i),n=m.toISOString(),o={uuid:null!=j.id?String(j.id):`openclaw-${i}`,parentUuid:null!=j.parentId?String(j.parentId):null},p=(0,g.baseEntry)(o,n,m,b);if("user"===l){c.push({type:"user",...p,message:{role:"user",content:s(k.content)}});continue}if("assistant"===l){let a=[],b=k.content;if(Array.isArray(b)){for(let c of b)if(r(c)){if("text"===c.type&&"string"==typeof c.text)a.push({type:"text",text:c.text});else if("toolCall"===c.type){let b="string"==typeof c.id?c.id:`${String(c.name??"tool")}-${a.length}`,f={type:"tool_use",id:b,name:"string"==typeof c.name?c.name:"tool",input:r(c.arguments)?c.arguments:{}};a.push(f),d.set(b,f),e.set(b,m.getTime())}}}else{let c=s(b);c&&a.push({type:"text",text:c})}if(0===a.length)continue;c.push({type:"assistant",...p,message:{role:"assistant",content:a,model:"string"==typeof k.model?k.model:void 0}});continue}if("toolResult"===l){let a="string"==typeof k.toolCallId?k.toolCallId:void 0,b=a?d.get(a):void 0;if(b){let c=r(k.details)?k.details:void 0,d=a&&e.get(a)||m.getTime(),f=c&&"number"==typeof c.durationMs?c.durationMs:Math.max(0,m.getTime()-d);b.result={timestamp:n,timestampFormatted:(0,g.formatTimestamp)(m),content:s(k.content),durationMs:f,durationFormatted:(0,h.formatDuration)(f)};continue}}c.push({type:"system",...p,raw:o})}return c.sort((a,b)=>a.timestampMs-b.timestampMs),c}function u(){try{return(0,c.readdirSync)((0,e.join)(q(),"agents"),{withFileTypes:!0}).filter(a=>a.isDirectory()&&!a.name.startsWith(".")).map(a=>a.name).sort()}catch{return[]}}function v(){let a,b=(0,e.join)(q(),"agents"),d=[];try{a=(0,c.readdirSync)(b,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>a.name)}catch{return d}for(let f of a){let a,g=(0,e.join)(b,f,"sessions");try{a=(0,c.readdirSync)(g)}catch{continue}for(let b of a){if(!b.endsWith(".jsonl")||b.endsWith(".trajectory.jsonl"))continue;let a=b.slice(0,-6);if(!p.test(a))continue;let h=(0,e.join)(g,b);try{let b=(0,c.statSync)(h);d.push({agentId:f,sessionId:a,transcriptPath:h,mtimeMs:b.mtimeMs,sizeBytes:b.size})}catch{}}}return d}async function w(a){let c,d;if(!p.test(a))return null;let e=await o(q(),u(),a);if(e){let a,b=t(e.rawLines,"session");for(let b of e.rawLines)if("session"===b.type&&"string"==typeof b.cwd&&b.cwd.length>0){a=b.cwd;break}return{entries:b,rawLines:e.rawLines,cwd:a,filePath:e.filePath}}let f=function(a){if(!p.test(a))return null;for(let b of v())if(b.sessionId===a)return b.transcriptPath;return null}(a);if(!f)return null;try{c=await (0,b.readFile)(f,"utf-8")}catch{return null}let h=(0,g.parseRawLines)(c,"session"),i=t(h,"session");for(let a of h)if(r(a)&&"session"===a.type&&"string"==typeof a.cwd&&a.cwd.length>0){d=a.cwd;break}return{entries:i,rawLines:h,cwd:d,filePath:f}}let x=(0,f.runtimeCache)(a=>w(a),2,{maxSize:50});a.s(["getCachedOpenClawSessionLog",0,x,"listOpenClawAgents",0,u,"listOpenClawTranscripts",0,v,"openclawHome",0,q],87488)},84794,a=>{"use strict";var b=a.i(60526),c=a.i(50227),d=a.i(94431);async function e(a){let e=await (0,d.openSqliteReadonly)(function(){if(process.env.OPENCODE_DB_PATH)return process.env.OPENCODE_DB_PATH;let a=process.env.OPENCODE_HOME??(0,c.join)((0,b.homedir)(),".local","share","opencode");return(0,c.join)(a,"opencode.db")}());if(!e)return null;try{return a(e)}catch{return null}finally{try{e.close()}catch{}}}async function f(a,b=[]){return e(c=>c.query(a,b))}a.s(["queryOpenCodeDb",0,f,"withOpenCodeDb",0,e])},64458,a=>{"use strict";var b=a.i(84794),c=a.i(90798),d=a.i(34900),e=a.i(33432),f=a.i(76668);async function g(){return(0,b.queryOpenCodeDb)("SELECT id, project_id, slug, directory, title, time_created, time_updated FROM session ORDER BY time_updated DESC LIMIT ?",[1e3])}async function h(){let a=await (0,b.withOpenCodeDb)(a=>({sessions:a.query("SELECT id, project_id, slug, directory, title, time_created, time_updated FROM session ORDER BY time_updated DESC LIMIT ?",[1e3]),projects:a.query("SELECT id, worktree, vcs, name, time_created, time_updated FROM project")}));return{sessions:a?.sessions??null,projects:a?.projects??null}}async function i(){let{sessions:a,projects:b}=await h();if(null===a&&null===b)return[];let d=new Map;for(let a of b??[])d.set(a.id,a);let f=new Map;for(let b of a??[]){if(!b.project_id)continue;let a=f.get(b.project_id);a||(a={rows:[],latest:0},f.set(b.project_id,a)),a.rows.push(b),b.time_updated>a.latest&&(a.latest=b.time_updated)}let g=new Set,i=[];for(let[a,b]of f){g.add(a);let f=d.get(a),h=f?.worktree??b.rows[0]?.directory??null,j=h?(0,c.encodeFolderName)(h):a,k=h??"",l=new Date(Math.max(b.latest,f?.time_updated??0));i.push({name:j,path:k,isDirectory:!0,lastModified:l,lastModifiedFormatted:(0,e.formatDate)(l),cli:["opencode"]})}for(let a of b??[]){if(g.has(a.id))continue;let b=a.worktree??"",d=b?(0,c.encodeFolderName)(b):a.id,f=new Date(a.time_updated);i.push({name:d,path:b,isDirectory:!0,lastModified:f,lastModifiedFormatted:(0,e.formatDate)(f),cli:["opencode"]})}return i.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),i}async function j(a){let b=await g();return b?b.filter(b=>b.directory===a).map(a=>{let b=new Date(a.time_updated);return{name:a.title??a.slug??a.id,path:`opencode://${a.id}`,lastModified:b,lastModifiedFormatted:(0,e.formatDate)(b),sessionId:a.id,cli:"opencode"}}):[]}async function k(a){let b,d;try{({projects:b,sessions:d}=await h())}catch(a){return(0,f.logWarn)("Failed to read OpenCode DB:",a),{cwd:null,sessions:[]}}if(!b||!d)return{cwd:null,sessions:[]};let g=b.find(b=>b.worktree&&(0,c.encodeFolderName)(b.worktree)===a);if(!g||!g.worktree)return{cwd:null,sessions:[]};let i=d.filter(a=>a.project_id===g.id);return{cwd:g.worktree,sessions:i.map(a=>{let b=new Date(a.time_updated);return{name:a.title??a.slug??a.id,path:`opencode://${a.id}`,lastModified:b,lastModifiedFormatted:(0,e.formatDate)(b),sessionId:a.id,cli:"opencode"}})}}let l=(0,d.runtimeCache)(i,30),m=(0,d.runtimeCache)(a=>j(a),30,{maxSize:50}),n=(0,d.runtimeCache)(a=>k(a),30,{maxSize:50});a.s(["getCachedOpenCodeProjects",0,l,"getCachedOpenCodeSessionsByEncodedName",0,n,"getCachedOpenCodeSessionsForCwd",0,m,"getOpenCodeProjects",0,i,"getOpenCodeSessionsByEncodedName",0,k,"getOpenCodeSessionsForCwd",0,j])},2727,a=>{"use strict";var b=a.i(12714),c=a.i(60526),d=a.i(50227),e=a.i(90798),f=a.i(34900),g=a.i(26192),h=a.i(33432),i=a.i(76668);let j=/^[\d-]+T[\d-]+Z_([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i;async function k(a){try{return await (0,b.readdir)(a,{withFileTypes:!0})}catch{return null}}async function l(a){try{return(await (0,b.stat)(a)).mtime}catch{return null}}async function m(a){let c;try{c=await (0,b.readFile)(a,"utf-8")}catch{return null}let d=c.indexOf("\n")>=0?c.slice(0,c.indexOf("\n")):c;if(!d)return null;try{let a=JSON.parse(d);if("session"!==a.type||"string"!=typeof a.cwd||0===a.cwd.length)return null;return a.cwd}catch{return null}}async function n(){let a=process.env.PI_SESSIONS_DIR||(0,d.join)((0,c.homedir)(),".pi","agent","sessions"),b=await k(a);if(!b)return[];let e=[];for(let c of b){if(!c.isDirectory())continue;let b=(0,d.join)(a,c.name),f=await k(b);if(f)for(let a of f){if(!a.isFile())continue;let c=j.exec(a.name);c&&e.push({sessionId:c[1],filePath:(0,d.join)(b,a.name)})}}return 0===e.length?[]:(await (0,g.batchAll)(e.map(a=>async()=>{let b=await m(a.filePath);if(!b)return null;let c=await l(a.filePath);return c?{filePath:a.filePath,sessionId:a.sessionId,cwd:b,fileMtime:c}:null}),16)).filter(a=>"fulfilled"===a.status).map(a=>a.value).filter(a=>null!==a)}let o=(0,f.runtimeCache)(n,30);async function p(){let a;try{a=await o()}catch(a){return(0,i.logWarn)("Failed to scan Pi sessions:",a),[]}let b=new Map;for(let c of a){let a=b.get(c.cwd);(!a||c.fileMtime.getTime()>a.latest.getTime())&&b.set(c.cwd,{latest:c.fileMtime,cwd:c.cwd})}let c=[];for(let{cwd:a,latest:d}of b.values())c.push({name:(0,e.encodeFolderName)(a),path:a,isDirectory:!0,lastModified:d,lastModifiedFormatted:(0,h.formatDate)(d),cli:["pi"]});return c.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),c}function q(a){let b=a.map(a=>({name:a.sessionId,path:a.filePath,lastModified:a.fileMtime,lastModifiedFormatted:(0,h.formatDate)(a.fileMtime),sessionId:a.sessionId,cli:"pi"}));return b.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),b}async function r(a){let b;try{b=await o()}catch(a){return(0,i.logWarn)("Failed to scan Pi sessions:",a),[]}return q(b.filter(b=>b.cwd===a))}async function s(a){let b;try{b=await o()}catch(a){return(0,i.logWarn)("Failed to scan Pi sessions:",a),{cwd:null,sessions:[]}}let c=b.filter(b=>(0,e.encodeFolderName)(b.cwd)===a),d=Array.from(new Set(c.map(a=>a.cwd)));return 1!==d.length?{cwd:null,sessions:[]}:{cwd:d[0],sessions:q(c)}}let t=(0,f.runtimeCache)(p,30),u=(0,f.runtimeCache)(a=>r(a),30,{maxSize:50}),v=(0,f.runtimeCache)(a=>s(a),30,{maxSize:50});a.s(["getCachedPiProjects",0,t,"getCachedPiSessionsByEncodedName",0,v,"getCachedPiSessionsForCwd",0,u,"getPiProjects",0,p,"getPiSessionsByEncodedName",0,s,"getPiSessionsForCwd",0,r])},64240,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},84707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(11857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},97647,a=>{"use strict";var b=a.i(84707);a.n(b)},95936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(64240),g=a.r(7997),h=f._(a.r(97647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)}];
21
-
22
- //# sourceMappingURL=%5Broot-of-the-server%5D__0u3w0ll._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[70406,(a,b,c)=>{b.exports=a.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},59043,(a,b,c)=>{b.exports=a.x("next/dist/server/runtime-reacts.external.js",()=>require("next/dist/server/runtime-reacts.external.js"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},27028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},14747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},14465,(a,b,c)=>{(()=>{"use strict";var a={86:a=>{a.exports=function(a,b){return"string"==typeof a?g(a):"number"==typeof a?f(a,b):null},a.exports.format=f,a.exports.parse=g;var b=/\B(?=(\d{3})+(?!\d))/g,c=/(?:\.0*|(\.[^0]+)0+)$/,d={b:1,kb:1024,mb:1048576,gb:0x40000000,tb:0x10000000000,pb:0x4000000000000},e=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function f(a,e){if(!Number.isFinite(a))return null;var f=Math.abs(a),g=e&&e.thousandsSeparator||"",h=e&&e.unitSeparator||"",i=e&&void 0!==e.decimalPlaces?e.decimalPlaces:2,j=!!(e&&e.fixedDecimals),k=e&&e.unit||"";k&&d[k.toLowerCase()]||(k=f>=d.pb?"PB":f>=d.tb?"TB":f>=d.gb?"GB":f>=d.mb?"MB":f>=d.kb?"KB":"B");var l=(a/d[k.toLowerCase()]).toFixed(i);return j||(l=l.replace(c,"$1")),g&&(l=l.split(".").map(function(a,c){return 0===c?a.replace(b,g):a}).join(".")),l+h+k}function g(a){if("number"==typeof a&&!isNaN(a))return a;if("string"!=typeof a)return null;var b,c=e.exec(a),f="b";return c?(b=parseFloat(c[1]),f=c[4].toLowerCase()):(b=parseInt(a,10),f="b"),Math.floor(d[f]*b)}}},c={};function d(b){var e=c[b];if(void 0!==e)return e.exports;var f=c[b]={exports:{}},g=!0;try{a[b](f,f.exports,d),g=!1}finally{g&&delete c[b]}return f.exports}d.ab="/ROOT/node_modules/next/dist/compiled/bytes/",b.exports=d(86)})()},24951,(a,b,c)=>{"use strict";b.exports=a.r(18622)},7997,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactJsxRuntime},11857,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].ReactServerDOMTurbopackServer},717,(a,b,c)=>{"use strict";b.exports=a.r(24951).vendored["react-rsc"].React}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__17d_ffl._.js.map
@@ -1,5 +0,0 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},97799,a=>{"use strict";a.s(["AuditDashboard",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call AuditDashboard() from the server but AuditDashboard is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/audit/_components/audit-dashboard.tsx","AuditDashboard")},16972,a=>{"use strict";var b=a.i(97799);a.n(b)},29938,a=>{"use strict";var b=a.i(7997),c=a.i(717);a.i(70396);var d=a.i(73727),e=a.i(15501),f=a.i(92956);let g=/\.(?: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,h=["/","/home","/usr","/etc","/var","/opt","/Users"],i="rereadAfterEdit",j=[{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(a){if("Bash"!==a.toolName)return null;let b=a.toolInput.command;if("string"!=typeof b||!a.cwd)return null;let c=b.trimStart(),d=/^cd\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s*&&\s*([\s\S]+)$/.exec(c);if(!d)return null;let e=(d[1]??d[2]??d[3]??"").replace(/\/+$/,"");if(e!==a.cwd.replace(/\/+$/,""))return null;let f=d[4].trim();return{example:`cd ${e} && ${f}`}}},{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(a){if("Bash"!==a.toolName)return null;let b=a.toolInput.command;if("string"!=typeof b)return null;let c=b.trim();if(/[|<>;&`$()]/.test(c))return null;let d=/^(cat|head|tail|less|more)\s+(?:-\S+\s+)*(?:"([^"]+)"|'([^']+)'|(\S+))\s*$/.exec(c);if(!d)return null;let e=d[2]??d[3]??d[4]??"";return!e||/(?:^|\/)\.env(?:\..+)?$/.test(e)||!g.test(e)?null:{example:c}}},{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(a){if("Bash"!==a.toolName)return null;let b=a.toolInput.command;if("string"!=typeof b)return null;let c=b.trim();return/(?:^|\s|;|&&|\|\|)sed\b[^|]*\s-i(?=\b|['"])/.test(c)||/(?:^|\s|;|&&|\|\|)awk\b[^|]*\s>\s*\S+/.test(c)&&!/\|/.test(c)?{example:c}: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(a){if("Bash"!==a.toolName)return null;let b=a.toolInput.command;return"string"!=typeof b?null:/<<-?\s*['"]?[A-Za-z_][A-Za-z0-9_]*['"]?\s*>\s*\S/.test(b)||/(?:^|\s|;|&&|\|\|)(?:echo|printf)\s+["'][^"']*\n[^"']*["']\s*>\s*\S/.test(b)?{example:b.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(a){if("Bash"!==a.toolName)return null;let b=a.toolInput.command;if("string"!=typeof b)return null;if(/\bwhile\b[\s\S]*?\bsleep\b[\s\S]*?\bdone\b/.test(b))return{example:b.replace(/\s+/g," ").trim().slice(0,160)};let c=/\bsleep\s+(\d+(?:\.\d+)?)(m|h|d)?\b/.exec(b);if(c){let a=parseFloat(c[1]),d=c[2]??"s";if(("m"===d?60*a:"h"===d?3600*a:"d"===d?86400*a:a)>=30)return{example:b.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(a){if("Bash"!==a.toolName)return null;let b=a.toolInput.command;if("string"!=typeof b)return null;let c=b.trim(),d=/(?:^|[\s;|&])find\s+(?:-\S+\s+)*("[^"]+"|'[^']+'|\S+)/.exec(c);if(!d)return null;let e=d[1].replace(/^["']|["']$/g,"").replace(/\/+$/,"")||"/";return h.includes(e)?{example:c.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(a){if("Bash"!==a.toolName)return null;let b=a.toolInput.command;return"string"!=typeof b?null:/\bgit\s+commit\b/.test(b)&&(/\s--no-verify\b/.test(b)||/\s-n\b/.test(b))?{example:b.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(a,b){let c,d=((c=b[i])||(c={countdown:new Map},b[i]=c),c),e=a.toolInput.file_path,f="string"==typeof e?e:null;for(let[a,b]of d.countdown)b<=1?d.countdown.delete(a):d.countdown.set(a,b-1);return f?"Edit"===a.toolName||"Write"===a.toolName?(d.countdown.set(f,5),null):"Read"===a.toolName&&d.countdown.has(f)?(d.countdown.delete(f),{example:`Read ${f} immediately after Edit/Write`}):null:null}}];var k=a.i(16972);let l=f.BUILTIN_POLICIES.length+j.length;async function m({searchParams:a}){let f;(process.env.FAILPROOFAI_DISABLE_PAGES??"").split(",").map(a=>a.trim()).filter(Boolean).includes("audit")&&(0,d.notFound)();let{p:g}=await a,h=(0,e.readDashboardCache)();if(h)f={status:"cached",cachedAt:h.cachedAt,params:h.params,result:h.result};else{let a=(0,e.readDashboardCacheMeta)();f={status:"empty",expired:null!==a,expiredAt:a?.cachedAt??null}}return(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(k.AuditDashboard,{initial:f,projectFromUrl:g,totalCatalogSize:l})})}a.s(["default",0,m,"dynamic",0,"force-dynamic"],29938)},37786,function(a){a.n(a.i(29938))},80127,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(70864)),f=(0,b.instrumentModuleGetter)(()=>a.r(65897)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(94367)),k=(0,b.instrumentModuleGetter)(()=>a.r(71623)),l=["",{children:["audit",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(37786)),"[project]/app/audit/page.tsx"]},[]]},{metadata:{},loading:[k,"[project]/app/audit/loading.tsx"]},[]]},{layout:[e,"[project]/app/layout.tsx"],error:[f,"[project]/app/error.tsx"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/app/global-error.tsx"]},[]],m=a.r.bind(a),n=a.l.bind(a),o=(0,c.createAppPageEntrypoint)({tree:l,page:"/audit/page",pathname:"/audit",require:m,loadChunk:n,interopDefault:d.interopDefault}),p=o.__next_app__,q=o.routeModule,r=o.handler;a.s(["__next_app__",0,p,"handler",0,r,"routeModule",0,q],9059),a.i(9059);var s=a.i(22922);a.s(["ClientPageRoot",()=>s.ClientPageRoot,"ClientSegmentRoot",()=>s.ClientSegmentRoot,"Fragment",()=>s.Fragment,"HTTPAccessFallbackBoundary",()=>s.HTTPAccessFallbackBoundary,"InstantValidation",()=>s.InstantValidation,"LayoutRouter",()=>s.LayoutRouter,"LoadingBoundaryProvider",()=>s.LoadingBoundaryProvider,"Postpone",()=>s.Postpone,"RenderFromTemplateContext",()=>s.RenderFromTemplateContext,"RootLayoutBoundary",()=>s.RootLayoutBoundary,"SegmentViewNode",()=>s.SegmentViewNode,"SegmentViewStateNode",()=>s.SegmentViewStateNode,"__next_app__",0,p,"captureOwnerStack",()=>s.captureOwnerStack,"collectPrefetchHints",()=>s.collectPrefetchHints,"collectSegmentData",()=>s.collectSegmentData,"createElement",()=>s.createElement,"createMetadataComponents",()=>s.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>s.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>s.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>s.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>s.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>s.createTemporaryReferenceSet,"decodeAction",()=>s.decodeAction,"decodeFormState",()=>s.decodeFormState,"decodeReply",()=>s.decodeReply,"handler",0,r,"isEmptyHTMLPrelude",()=>s.isEmptyHTMLPrelude,"patchFetch",()=>s.patchFetch,"preconnect",()=>s.preconnect,"preloadFont",()=>s.preloadFont,"preloadStyle",()=>s.preloadStyle,"prerender",()=>s.prerender,"prerenderToNodeStream",()=>s.prerenderToNodeStream,"renderToPipeableStream",()=>s.renderToPipeableStream,"renderToReadableStream",()=>s.renderToReadableStream,"routeModule",0,q,"serverHooks",()=>s.serverHooks,"taintObjectReference",()=>s.taintObjectReference],80127)},10695,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(75818);let e={info:0,warn:1,error:2},f=(0,d.logsDir)(),g=!1,h="warn",i=!1,j=f;function k(a){return!function(){if(g)return;g=!0;let a=(process.env.FAILPROOFAI_LOG_LEVEL??"").toLowerCase();("info"===a||"warn"===a||"error"===a)&&(h=a);let b=(process.env.FAILPROOFAI_HOOK_LOG_FILE??"").trim();b&&(i=!0,"1"!==b&&"true"!==b&&(j=b))}(),e[a]>=e[h]}function l(a,b){process.stderr.write(`[failproofai:hook] ${a} ${b}
2
- `)}function m(a,d){if(i)try{(0,b.existsSync)(j)||(0,b.mkdirSync)(j,{recursive:!0});let e=(0,c.join)(j,"hooks.log");try{if((0,b.statSync)(e).size>=524288){let a=`hooks-${Date.now()}.log`;(0,b.renameSync)(e,(0,c.join)(j,a))}}catch{}let f=new Date().toISOString(),g=`[${f}] ${a} ${d}
3
- `;(0,b.appendFileSync)(e,g,"utf-8")}catch{}}a.s(["hookLogError",0,function(a){k("error")&&(l("ERROR",a),m("ERROR",a))},"hookLogWarn",0,function(a){k("warn")&&(l("WARN",a),m("WARN",a))}])}];
4
-
5
- //# sourceMappingURL=%5Broot-of-the-server%5D__19d9tgz._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},12714,(a,b,c)=>{b.exports=a.x("node:fs/promises",()=>require("node:fs/promises"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},92887,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/components/project-list.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/components/project-list.tsx","default")},17048,a=>{"use strict";var b=a.i(92887);a.n(b)},61594,a=>{"use strict";var b=a.i(7997),c=a.i(717);a.i(70396);var d=a.i(73727),e=a.i(69191),f=a.i(17048);async function g(){(process.env.FAILPROOFAI_DISABLE_PAGES??"").split(",").map(a=>a.trim()).filter(Boolean).includes("projects")&&(0,d.notFound)();let a=await (0,e.getCachedProjectFolders)(),g=a.length;return(0,b.jsx)("main",{className:"report",children:(0,b.jsxs)("section",{className:"section","data-screen-label":"projects",children:[(0,b.jsx)("h2",{style:{fontFamily:"var(--font-mono)",fontSize:24,fontWeight:600,letterSpacing:"-0.01em",color:"var(--ink)",margin:"0 0 24px"},children:"Projects"}),0===g?(0,b.jsxs)("div",{className:"panel",style:{textAlign:"center",padding:"56px 32px"},children:[(0,b.jsx)("div",{"aria-hidden":"true",style:{marginBottom:20},children:(0,b.jsx)("div",{style:{display:"inline-grid",gridTemplateColumns:"repeat(6, 10px)",gridTemplateRows:"repeat(6, 10px)",gap:2,padding:12,border:"1px solid var(--line-2)",background:"var(--bg)"},children:Array.from({length:36}).map((a,c)=>{let d=[0,5,30,35,7,10,25,28].includes(c);return(0,b.jsx)("span",{style:{background:d?"var(--dim)":"transparent"}},c)})})}),(0,b.jsxs)("p",{style:{color:"var(--ink-2)",marginBottom:8},children:["No projects found in the ",(0,b.jsx)("code",{children:".claude/projects"})," directory."]}),(0,b.jsx)("p",{style:{color:"var(--dim)",fontSize:12,letterSpacing:"0.05em"},children:"Run an agent in any folder and it will show up here."})]}):(0,b.jsx)("div",{className:"panel",style:{padding:0},children:(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(f.default,{folders:a})})})]})})}a.s(["default",0,g,"dynamic",0,"force-dynamic"])},19057,function(a){a.n(a.i(61594))},39907,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__05r_17v._.js","server/chunks/ssr/_1_ozgif._.js"].map(b=>a.l(b))).then(()=>b(96795)))},93658,a=>{a.v(b=>Promise.all(["server/chunks/ssr/lib_codex-projects_ts_0pqlw37._.js"].map(b=>a.l(b))).then(()=>b(1024)))},26192,a=>{"use strict";async function b(a,b){let c=Array(a.length),d=0;async function e(){for(;d<a.length;){let b=d++;try{c[b]={status:"fulfilled",value:await a[b]()}}catch(a){c[b]={status:"rejected",reason:a}}}}let f=Array.from({length:Math.min(b,a.length)},()=>e());return await Promise.all(f),c}a.s(["batchAll",0,b])},60956,a=>{a.v(b=>Promise.all(["server/chunks/ssr/lib_copilot-projects_ts_19wl7tp._.js"].map(b=>a.l(b))).then(()=>b(88890)))},26244,a=>{a.v(b=>Promise.all(["server/chunks/ssr/lib_cursor-projects_ts_18-iwyk._.js"].map(b=>a.l(b))).then(()=>b(93087)))},11848,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0p84xee._.js","server/chunks/ssr/_1_ozgif._.js"].map(b=>a.l(b))).then(()=>b(15771)))},71273,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0e2l3c1._.js"].map(b=>a.l(b))).then(()=>b(26732)))},33432,a=>{"use strict";a.s(["formatDate",0,function(a){return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0}).format(a)}])},14028,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0hci7t3._.js","server/chunks/ssr/_1_ozgif._.js"].map(b=>a.l(b))).then(()=>b(81057)))},84789,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__1py795m._.js","server/chunks/ssr/_1_ozgif._.js"].map(b=>a.l(b))).then(()=>b(83884)))},76668,a=>{"use strict";let b=1;function c(a){return`[failproofai${new Date().toISOString()}] ${a}`}a.s(["logError",0,function(a,b){void 0!==b?console.error(c("ERROR"),a,b):console.error(c("ERROR"),a)},"logWarn",0,function(a,d){b>=b&&(void 0!==d?console.warn(c("WARN"),a,d):console.warn(c("WARN"),a))}])},74486,a=>{a.v(b=>Promise.all(["server/chunks/ssr/lib_openclaw-projects_ts_0qxq3bp._.js","server/chunks/ssr/_1_ozgif._.js","server/chunks/ssr/[root-of-the-server]__1kaotix._.js"].map(b=>a.l(b))).then(()=>b(96877)))},2164,a=>{a.v(b=>Promise.all(["server/chunks/ssr/lib_1cf5ya2._.js","server/chunks/ssr/_1_ozgif._.js"].map(b=>a.l(b))).then(()=>b(64458)))},90798,a=>{"use strict";var b=a.i(46786),c=a.i(14747);function d(a){return/^[A-Za-z]--/.test(a)?a[0]+":/"+a.slice(3).replace(/-/g,"/"):a.replace(/-/g,"/")}let e=/^[a-z]{2,}:/;function f(a){return!!a&&e.test(a)}a.s(["decodeFolderName",0,d,"encodeFolderName",0,function(a){let b=/^([A-Za-z]):[\\/](.*)$/.exec(a);return b?b[1]+"--"+b[2].replace(/[\\/]/g,"-"):a.replace(/[\\/]/g,"-")},"getClaudeProjectsPath",0,function(){let a=process.env.CLAUDE_PROJECTS_PATH;return a||(0,c.join)((0,b.homedir)(),".claude","projects")},"isSyntheticProjectPath",0,f,"projectDisplayName",0,function(a,b){return f(b)?b.replace(/:/g,"/"):d(a)}])},92351,a=>{a.v(b=>Promise.all(["server/chunks/ssr/lib_pi-projects_ts_1wikofb._.js"].map(b=>a.l(b))).then(()=>b(2727)))},69191,a=>{"use strict";var b=a.i(12714),c=a.i(50227),d=a.i(90798),e=a.i(34900),f=a.i(26192),g=a.i(76668),h=a.i(33432);async function i(a,c){try{return(await (0,b.stat)(a)).mtime}catch(a){return(0,g.logWarn)(`Failed to stat ${c}:`,a),new Date(0)}}async function j(a){try{if(!(await (0,b.stat)(a)).isDirectory())return null;return await (0,b.readdir)(a,{withFileTypes:!0})}catch{return null}}async function k(){try{let a=(0,d.getClaudeProjectsPath)(),b=await j(a);if(!b)return[];let e=(await (0,f.batchAll)(b.filter(a=>a.isDirectory()).map(b=>async()=>{let d=(0,c.join)(a,b.name),e=await i(d,b.name);return{name:b.name,path:d,isDirectory:!0,lastModified:e,lastModifiedFormatted:(0,h.formatDate)(e),cli:["claude"]}}),16)).filter(a=>"fulfilled"===a.status).map(a=>a.value);return e.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),e}catch(a){return(0,g.logError)("Error reading Claude project folders:",a),[]}}async function l(){let[{getCodexProjects:b},{getCopilotProjects:c},{getCursorProjects:d},{getOpenCodeProjects:e},{getPiProjects:f},{getHermesProjects:h},{getOpenClawProjects:i},{getFactoryProjects:j},{getDevinProjects:l},{getAntigravityProjects:m},{getGooseProjects:n}]=await Promise.all([a.A(93658),a.A(60956),a.A(26244),a.A(2164),a.A(92351),a.A(84789),a.A(74486),a.A(71273),a.A(11848),a.A(39907),a.A(14028)]),[o,p,q,r,s,t,u,v,w,x,y,z]=await Promise.all([k(),b().catch(a=>((0,g.logError)("Error reading Codex projects:",a),[])),c().catch(a=>((0,g.logError)("Error reading Copilot projects:",a),[])),d().catch(a=>((0,g.logError)("Error reading Cursor projects:",a),[])),e().catch(a=>((0,g.logError)("Error reading OpenCode projects:",a),[])),f().catch(a=>((0,g.logError)("Error reading Pi projects:",a),[])),h().catch(a=>((0,g.logError)("Error reading Hermes projects:",a),[])),i().catch(a=>((0,g.logError)("Error reading OpenClaw projects:",a),[])),j().catch(a=>((0,g.logError)("Error reading Factory projects:",a),[])),l().catch(a=>((0,g.logError)("Error reading Devin projects:",a),[])),m().catch(a=>((0,g.logError)("Error reading Antigravity projects:",a),[])),n().catch(a=>((0,g.logError)("Error reading Goose projects:",a),[]))]);return function(...a){let b=new Map;for(let c of a)for(let a of c){let c=b.get(a.name);if(!c){b.set(a.name,{...a,cli:[...a.cli]});continue}let d=[...c.cli];for(let b of a.cli)d.includes(b)||d.push(b);let e=a.lastModified.getTime()>c.lastModified.getTime()?a:c;b.set(a.name,{...c,cli:d,lastModified:e.lastModified,lastModifiedFormatted:e.lastModifiedFormatted,sessionCount:void 0===c.sessionCount&&void 0===a.sessionCount?void 0:(c.sessionCount??0)+(a.sessionCount??0)})}let c=Array.from(b.values());return c.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),c}(o,p,q,r,s,t,u,v,w,x,y,z)}function m(a){let b=a.match(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i);return b?b[0]:void 0}async function n(a){try{let b=await j(a);if(!b)return[];let d=b.filter(a=>a.isFile()&&a.name.endsWith(".jsonl")&&m(a.name)),e=(await (0,f.batchAll)(d.map(b=>async()=>{let d=(0,c.join)(a,b.name),e=await i(d,b.name);return{name:b.name,path:d,lastModified:e,lastModifiedFormatted:(0,h.formatDate)(e),sessionId:m(b.name),cli:"claude"}}),16)).filter(a=>"fulfilled"===a.status).map(a=>a.value);return e.sort((a,b)=>b.lastModified.getTime()-a.lastModified.getTime()),e}catch(a){return(0,g.logError)("Error reading session files:",a),[]}}let o=(0,e.runtimeCache)(l,30),p=(0,e.runtimeCache)(a=>n(a),30);a.s(["UUID_RE",0,/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/,"getCachedProjectFolders",0,o,"getCachedSessionFiles",0,p,"resolveProjectPath",0,function(a){if(!a)throw RangeError("Empty project name");if(/^[/\\]/.test(a))throw RangeError("Absolute project name");let b=(0,c.resolve)((0,d.getClaudeProjectsPath)()),e=(0,c.resolve)((0,c.join)(b,a));if(!e.startsWith(b+c.sep))throw RangeError("Project path escapes root");return e}])},34900,a=>{"use strict";a.s(["runtimeCache",0,function(a,b,c){let d=new Map,e=new Map,f=c?.maxSize;return async(...c)=>{let g=JSON.stringify(c),h=d.get(g);if(h&&Date.now()<h.expiry)return h.data;let i=e.get(g);if(i)return i;let j=a(...c).then(a=>{if(e.delete(g),f&&d.size>=f){let a=d.keys().next().value;d.delete(a)}return d.set(g,{data:a,expiry:Date.now()+1e3*b}),a},a=>{throw e.delete(g),a});return e.set(g,j),j}}])},99203,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(70864)),f=(0,b.instrumentModuleGetter)(()=>a.r(65897)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(94367)),k=(0,b.instrumentModuleGetter)(()=>a.r(43519)),l=["",{children:["projects",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(19057)),"[project]/app/projects/page.tsx"]},[]]},{metadata:{},loading:[k,"[project]/app/projects/loading.tsx"]},[]]},{layout:[e,"[project]/app/layout.tsx"],error:[f,"[project]/app/error.tsx"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/app/global-error.tsx"]},[]],m=a.r.bind(a),n=a.l.bind(a),o=(0,c.createAppPageEntrypoint)({tree:l,page:"/projects/page",pathname:"/projects",require:m,loadChunk:n,interopDefault:d.interopDefault}),p=o.__next_app__,q=o.routeModule,r=o.handler;a.s(["__next_app__",0,p,"handler",0,r,"routeModule",0,q],47153),a.i(47153);var s=a.i(22922);a.s(["ClientPageRoot",()=>s.ClientPageRoot,"ClientSegmentRoot",()=>s.ClientSegmentRoot,"Fragment",()=>s.Fragment,"HTTPAccessFallbackBoundary",()=>s.HTTPAccessFallbackBoundary,"InstantValidation",()=>s.InstantValidation,"LayoutRouter",()=>s.LayoutRouter,"LoadingBoundaryProvider",()=>s.LoadingBoundaryProvider,"Postpone",()=>s.Postpone,"RenderFromTemplateContext",()=>s.RenderFromTemplateContext,"RootLayoutBoundary",()=>s.RootLayoutBoundary,"SegmentViewNode",()=>s.SegmentViewNode,"SegmentViewStateNode",()=>s.SegmentViewStateNode,"__next_app__",0,p,"captureOwnerStack",()=>s.captureOwnerStack,"collectPrefetchHints",()=>s.collectPrefetchHints,"collectSegmentData",()=>s.collectSegmentData,"createElement",()=>s.createElement,"createMetadataComponents",()=>s.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>s.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>s.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>s.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>s.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>s.createTemporaryReferenceSet,"decodeAction",()=>s.decodeAction,"decodeFormState",()=>s.decodeFormState,"decodeReply",()=>s.decodeReply,"handler",0,r,"isEmptyHTMLPrelude",()=>s.isEmptyHTMLPrelude,"patchFetch",()=>s.patchFetch,"preconnect",()=>s.preconnect,"preloadFont",()=>s.preloadFont,"preloadStyle",()=>s.preloadStyle,"prerender",()=>s.prerender,"prerenderToNodeStream",()=>s.prerenderToNodeStream,"renderToPipeableStream",()=>s.renderToPipeableStream,"renderToReadableStream",()=>s.renderToReadableStream,"routeModule",0,q,"serverHooks",()=>s.serverHooks,"taintObjectReference",()=>s.taintObjectReference],99203)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__1ctpynv._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},30575,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/app/settings/settings-client.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/app/settings/settings-client.tsx","default")},28652,a=>{"use strict";var b=a.i(30575);a.n(b)},72017,a=>{"use strict";var b=a.i(7997);a.i(70396);var c=a.i(73727),d=a.i(36119),e=a.i(28652);async function f(){(process.env.FAILPROOFAI_DISABLE_PAGES??"").split(",").map(a=>a.trim()).filter(Boolean).includes("settings")&&(0,c.notFound)();let a=null;try{a=await (0,d.getScheduledAuditAction)()}catch{}return(0,b.jsx)(e.default,{initial:a})}a.s(["default",0,f,"dynamic",0,"force-dynamic","metadata",0,{title:"settings · failproof_ai",description:"Scheduled audits for this machine."}])},51425,function(a){a.n(a.i(72017))},17876,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(70864)),f=(0,b.instrumentModuleGetter)(()=>a.r(65897)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(94367)),k=["",{children:["settings",{children:["__PAGE__",{},{metadata:{},page:[(0,b.instrumentModuleGetter)(()=>a.r(51425)),"[project]/app/settings/page.tsx"]},[]]},{metadata:{}},[]]},{layout:[e,"[project]/app/layout.tsx"],error:[f,"[project]/app/error.tsx"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/app/global-error.tsx"]},[]],l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:k,page:"/settings/page",pathname:"/settings",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],68997),a.i(68997);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],17876)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__1jiwfsj._.js.map
@@ -1,4 +0,0 @@
1
- module.exports=[74533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},66680,(a,b,c)=>{b.exports=a.x("node:crypto",()=>require("node:crypto"))},2157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},60526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},50227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},39027,a=>{"use strict";var b=a.i(36359);a.s([],35268),a.i(35268),a.s(["002a551863b51d42ffe781e9841b676b82fa895b9b",()=>b.getTelemetryConfig],39027)},36359,a=>{"use strict";var b=a.i(37936),c=a.i(69839);a.i(93328);var d=a.i(31920),e=a.i(12072);async function f(){let a=(0,d.isTelemetryEnabled)();return{enabled:a,distinctId:a?(0,c.getInstanceId)():"",apiKey:process.env.FAILPROOFAI_POSTHOG_KEY??"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX",host:process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com",version:e.version}}(0,a.i(13095).ensureServerEntryExports)([f]),(0,b.registerServerReference)(f,"002a551863b51d42ffe781e9841b676b82fa895b9b",null),a.s(["getTelemetryConfig",0,f])},31920,a=>{"use strict";var b=a.i(21572);a.s(["isTelemetryEnabled",0,function(){if("1"===process.env.FAILPROOFAI_TELEMETRY_DISABLED)return!1;try{return(0,b.readConfig)().telemetry.enabled}catch{return!0}}])},69839,a=>{"use strict";let b;var c=a.i(2157),d=a.i(50227),e=a.i(60526),f=a.i(66680);a.i(74533);var g=a.i(75818);let h=d.default.join(e.default.homedir(),".failproofai"),i=d.default.join(h,"instance-id");function j(a){return f.default.createHmac("sha256","failproofai-telemetry-v1").update(a).digest("hex")}function k(a){let b;try{if(b=(0,g.telemetryIdFile)(),c.default.readFileSync(b,"utf-8").trim()===a)return}catch{try{b=(0,g.telemetryIdFile)()}catch{return}}try{c.default.mkdirSync(d.default.dirname(b),{recursive:!0});let e=`${b}.${process.pid}.tmp`;c.default.writeFileSync(e,a,{encoding:"utf-8",mode:384}),c.default.renameSync(e,b)}catch{}}a.s(["getInstanceId",0,function(){if(b)return b;let a=function(){try{for(let a of(e.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let b=c.default.readFileSync(a,"utf-8").trim();if(b)return b}catch{}}catch{}}();if(a)return k(b=j(a)),b;let d=[e.default.hostname(),e.default.homedir(),e.default.platform(),e.default.arch(),e.default.cpus()[0]?.model??""].join(":");return d?k(b=j(d)):k(b=function(){try{let a=c.default.readFileSync(i,"utf-8").trim();if(a)return a}catch{}let a=f.default.randomUUID();try{c.default.mkdirSync(h,{recursive:!0}),c.default.writeFileSync(i,a,"utf-8")}catch{}return a}()),b},"hashToId",0,j])},93328,a=>{"use strict";var b=a.i(69839),c=a.i(31920),d=a.i(12072),e=a.i(79779);e.POSTHOG_API_KEY,a.s(["trackEvent",0,function(a,f){if(!(0,c.isTelemetryEnabled)())return;let g=globalThis.__FAILPROOFAI_POSTHOG__;g&&g.capture({distinctId:(0,b.getInstanceId)(),event:a,properties:{...f,$lib:"failproofai",failproofai_version:d.version,product:e.POSTHOG_PRODUCT}})}])},13095,(a,b,c)=>{"use strict";function d(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Object.defineProperty(Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`),"__NEXT_ERROR_CODE",{value:"E352",enumerable:!1,configurable:!0})}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ensureServerEntryExports",{enumerable:!0,get:function(){return d}})},37936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"registerServerReference",{enumerable:!0,get:function(){return d.registerServerReference}});let d=a.r(11857)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))},12072,(a,b,c)=>{b.exports={name:"failproofai",version:"1.0.6",description:"Observability and enforcement for AI agent harnesses. 39 built-in policies hooked into 12 of them — Claude Code, Codex, Cursor, Hermes, OpenClaw and more — blocking the tool call before it runs. Local dashboard included, no account needed.",bin:{failproofai:"./dist/cli.mjs",failproofaid:"./bin/failproofaid-shim.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","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.125.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.5.1","@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.2",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^5.0.0"},dependencies:{"html-to-image":"^1.11.13","posthog-node":"^5.50.0","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{nanoid:"3.3.18",postcss:"8.5.26","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.29.0","brace-expansion":"5.0.9",sharp:"0.35.4",browserslist:"4.28.8"},optionalDependencies:{"@failproofai/failproofaid-linux-x64":"1.0.6","@failproofai/failproofaid-linux-arm64":"1.0.6","@failproofai/failproofaid-darwin-x64":"1.0.6","@failproofai/failproofaid-darwin-arm64":"1.0.6"},failproofaidBinaries:{"linux-x64":"e075f24a3a0950b631979d9370b665da2c3e2920decfb917ff0831d1f17c9740","linux-arm64":"b90ce8c642f2685719f4915695615219860daf3155a9c07344cf1e10395028c3","darwin-x64":"51dd95e9b85226e4f1888c7edaa56ec4464e91eb645d39c5cb7cede16d2da2f1","darwin-arm64":"f6a1b9d63363e8805e0d72b4fa168fde661bdbbd4125b54047f7de8948ea0f39"}}},79779,a=>{"use strict";a.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])}];
3
-
4
- //# sourceMappingURL=%5Broot-of-the-server%5D__1p2otjt._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[93695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},50708,a=>{"use strict";a.i(70396);var b=a.i(73727);a.s(["default",0,function(){(0,b.notFound)()}])},26030,function(a){a.n(a.i(50708))},37959,a=>{"use strict";var b=a.i(12948),c=a.i(67436),d=a.i(94331);a.i(70408);let e=(0,b.instrumentModuleGetter)(()=>a.r(70864)),f=(0,b.instrumentModuleGetter)(()=>a.r(65897)),g=(0,b.instrumentModuleGetter)(()=>a.r(43619)),h=(0,b.instrumentModuleGetter)(()=>a.r(13718)),i=(0,b.instrumentModuleGetter)(()=>a.r(18198)),j=(0,b.instrumentModuleGetter)(()=>a.r(94367)),k=(0,b.instrumentModuleGetter)(()=>a.r(26030)),l=a.r.bind(a),m=a.l.bind(a),n=(0,c.createAppPageEntrypoint)({tree:["",{children:["__PAGE__",{},{metadata:{},page:[k,"[project]/app/page.tsx"]},[]]},{layout:[e,"[project]/app/layout.tsx"],error:[f,"[project]/app/error.tsx"],"not-found":[g,"[project]/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[h,"[project]/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[i,"[project]/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[j,"[project]/app/global-error.tsx"]},[]],page:"/page",pathname:"/",require:l,loadChunk:m,interopDefault:d.interopDefault}),o=n.__next_app__,p=n.routeModule,q=n.handler;a.s(["__next_app__",0,o,"handler",0,q,"routeModule",0,p],2897),a.i(2897);var r=a.i(22922);a.s(["ClientPageRoot",()=>r.ClientPageRoot,"ClientSegmentRoot",()=>r.ClientSegmentRoot,"Fragment",()=>r.Fragment,"HTTPAccessFallbackBoundary",()=>r.HTTPAccessFallbackBoundary,"InstantValidation",()=>r.InstantValidation,"LayoutRouter",()=>r.LayoutRouter,"LoadingBoundaryProvider",()=>r.LoadingBoundaryProvider,"Postpone",()=>r.Postpone,"RenderFromTemplateContext",()=>r.RenderFromTemplateContext,"RootLayoutBoundary",()=>r.RootLayoutBoundary,"SegmentViewNode",()=>r.SegmentViewNode,"SegmentViewStateNode",()=>r.SegmentViewStateNode,"__next_app__",0,o,"captureOwnerStack",()=>r.captureOwnerStack,"collectPrefetchHints",()=>r.collectPrefetchHints,"collectSegmentData",()=>r.collectSegmentData,"createElement",()=>r.createElement,"createMetadataComponents",()=>r.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>r.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>r.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>r.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>r.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>r.createTemporaryReferenceSet,"decodeAction",()=>r.decodeAction,"decodeFormState",()=>r.decodeFormState,"decodeReply",()=>r.decodeReply,"handler",0,q,"isEmptyHTMLPrelude",()=>r.isEmptyHTMLPrelude,"patchFetch",()=>r.patchFetch,"preconnect",()=>r.preconnect,"preloadFont",()=>r.preloadFont,"preloadStyle",()=>r.preloadStyle,"prerender",()=>r.prerender,"prerenderToNodeStream",()=>r.prerenderToNodeStream,"renderToPipeableStream",()=>r.renderToPipeableStream,"renderToReadableStream",()=>r.renderToReadableStream,"routeModule",0,p,"serverHooks",()=>r.serverHooks,"taintObjectReference",()=>r.taintObjectReference],37959)}];
2
-
3
- //# sourceMappingURL=%5Broot-of-the-server%5D__1phc187._.js.map
@@ -1,5 +0,0 @@
1
- module.exports=[36119,81243,a=>{"use strict";var b=a.i(37936),c=a.i(21572),d=a.i(2157),e=a.i(75818),f=a.i(8284),g=a.i(15501),h=a.i(50227),i=a.i(8674),j=a.i(93328);function k(){return(process.env.FAILPROOF_API_URL??process.env.FAILPROOFAI_API_URL??"https://api.befailproof.ai").replace(/\/+$/,"")}class l extends Error{status;code;retryAfterSecs;constructor(a,b,c,d){super(c),this.status=a,this.code=b,this.retryAfterSecs=d,this.name="AuthApiError"}}async function m(a){let b={};try{b=await a.json()}catch{}let c=b.code??`http_${a.status}`,d=b.message??b.detail??a.statusText??"request failed",e=b.retry_after_secs;if(void 0===e){let b=a.headers.get("retry-after");if(b){let a=Number(b);Number.isFinite(a)&&(e=a)}}return void 0!==e&&(e=Math.max(0,Math.min(86400,e))),new l(a.status,c,d,e)}async function n(a,b){try{return await fetch(a,{...b,signal:function(a){let b=AbortSignal.timeout(1e4);if(!a)return b;let c=AbortSignal.any;if(c)return c([b,a]);let d=new AbortController;if(b.aborted)d.abort(b.reason);else b.addEventListener("abort",()=>d.abort(b.reason),{once:!0});if(a.aborted)d.abort(a.reason);else a.addEventListener("abort",()=>d.abort(a.reason),{once:!0});return d.signal}(b.signal??void 0)})}catch(d){let c=function(a){if(null===a||"object"!=typeof a)return!1;let b=a.name;return"AbortError"===b||"TimeoutError"===b}(d);if((0,j.trackEvent)("api_server_unreachable",{kind:c?"timeout":"network",path:function(a){try{return new URL(a).pathname}catch{return a}}(a),method:"string"==typeof b.method?b.method:"GET"}),c)throw new l(0,"timeout",`request to ${a} timed out after 10000ms`);throw d}}async function o(a,b,c){let d={"content-type":"application/json"};c?.accessToken&&(d.authorization=`Bearer ${c.accessToken}`);let e=await n(`${k()}${a}`,{method:"POST",headers:d,body:JSON.stringify(b)});if(204!==e.status){if(!e.ok)throw await m(e);return await e.json()}}async function p(a,b){let c=await n(`${k()}${a}`,{method:"GET",headers:{authorization:`Bearer ${b}`}});if(!c.ok)throw await m(c);return await c.json()}async function q(a){return o("/v0/auth/token/refresh",{refresh_token:a})}async function r(a){return p("/v0/auth/me",a)}function s(){let a=process.env.FAILPROOFAI_AUTH_DIR;return a?(0,h.join)(a,"session.json"):(0,e.auditSessionFile)()}function t(){let a=s();if(!(0,d.existsSync)(a))return null;try{let b=(0,d.readFileSync)(a,"utf-8"),c=JSON.parse(b);if("string"!=typeof c.access_token||"string"!=typeof c.refresh_token||"number"!=typeof c.access_expires_at||"object"!=typeof c.user||!c.user||"string"!=typeof c.user.id||"string"!=typeof c.user.email)return null;return{access_token:c.access_token,refresh_token:c.refresh_token,access_expires_at:c.access_expires_at,refresh_expires_at:"number"==typeof c.refresh_expires_at?c.refresh_expires_at:c.access_expires_at,user:{id:c.user.id,email:c.user.email}}}catch{return null}}function u(){let a=s();(0,d.existsSync)(a)&&(0,d.rmSync)(a,{force:!0});try{let a=(0,e.migrationsDir)();if(!(0,d.existsSync)(a))return;for(let b of(0,d.readdirSync)(a)){if(!b.startsWith("backup-layout"))continue;let c=(0,h.resolve)(a,b,"auth.json");(0,d.existsSync)(c)&&(0,d.rmSync)(c,{force:!0})}}catch{}}let v=new Map;async function w(a){let b=v.get(a.refresh_token);if(b)return b;let c=(async()=>{let b=function(a,b){let c=Math.floor(Date.now()/1e3),d=a.user??b;if(!d)throw Error("authFromTokenResponse: missing user identity");return{access_token:a.access_token,refresh_token:a.refresh_token,access_expires_at:c+a.access_expires_in,refresh_expires_at:c+a.refresh_expires_in,user:d}}(await q(a.refresh_token),a.user);return(0,i.writeJsonAtomically)(s(),b),b})();v.set(a.refresh_token,c);try{return await c}finally{v.delete(a.refresh_token)}}async function x(){let a=t();if(!a)return null;let b=Math.floor(Date.now()/1e3);if(a.access_expires_at-b>60)return a;try{return await w(a)}catch(a){return a instanceof l&&401===a.status&&u(),null}}async function y(){let a=await x();if(!a)return null;try{return{me:await r(a.access_token),auth:a}}catch(a){if(a instanceof l&&401===a.status){let a=t();if(!a)return null;try{let b=await w(a);return{me:await r(b.access_token),auth:b}}catch(a){a instanceof l&&401===a.status&&u()}}return null}}async function z(){let a=(0,c.readConfig)(),b=function(){let a,b;try{a=(0,d.readFileSync)((0,e.auditScheduleFile)(void 0),"utf8")}catch{return null}try{b=JSON.parse(a)}catch{return null}if(!b||"object"!=typeof b||Array.isArray(b))return null;let c=b,f=a=>"number"==typeof a&&Number.isFinite(a)?a:null,g=f(c.schema);return{schema:g,nextDueAtMs:f(c.next_due_at_ms),lastAttemptAtMs:f(c.last_attempt_at_ms),lastRunAtMs:f(c.last_run_at_ms),lastExitCode:f(c.last_exit_code),schemaAhead:null!==g&&g>1}}(),h=(0,g.readDashboardCacheMeta)(),i=t(),j=(0,f.daemonServiceStatus)();return{auto:a.audit.auto,intervalDays:a.audit.intervalDays,signedInAs:i?{id:i.user.id,email:i.user.email}:null,daemon:j,schedule:b?{nextDueAtMs:b.nextDueAtMs,lastAttemptAtMs:b.lastAttemptAtMs,lastRunAtMs:b.lastRunAtMs,lastExitCode:b.lastExitCode,schemaAhead:b.schemaAhead}:null,lastResultAt:h?.cachedAt??null,lastScan:h?{finishedAt:h.cachedAt,findings:h.findings,sessionsScanned:h.sessionsScanned,eventsScanned:h.eventsScanned}:null,daemonStartedAtMs:"running"===j?(0,f.daemonStartedAtMs)():null}}a.s(["readAuth",0,t,"whoAmI",0,y],81243),(0,a.i(13095).ensureServerEntryExports)([z]),(0,b.registerServerReference)(z,"00307e102c6f6e4cfdd9201975d1f4ef94ea86924c",null),a.s(["getScheduledAuditAction",0,z],36119)},8674,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(66680);a.s(["writeJsonAtomically",0,function(a,e,f={}){let g=f.mode??384,h=f.dirMode??448,i=(0,c.dirname)(a);(0,b.existsSync)(i)||(0,b.mkdirSync)(i,{recursive:!0,mode:h});let j=`${a}.${process.pid}.${(0,d.randomBytes)(6).toString("hex")}.tmp`;try{(0,b.writeFileSync)(j,JSON.stringify(e,null,2),{mode:g});try{(63&(0,b.statSync)(j).mode)!=0&&(0,b.chmodSync)(j,g)}catch{}(0,b.renameSync)(j,a);try{(63&(0,b.statSync)(a).mode)!=0&&(0,b.chmodSync)(a,g)}catch{}}catch(a){try{(0,b.rmSync)(j,{force:!0})}catch{}throw a}}])},15501,a=>{"use strict";var b=a.i(2157);a.i(8674);var c=a.i(75818);function d(){return(0,c.auditDashboardFile)()}a.s(["readDashboardCache",0,function(){let a=d();if(!(0,b.existsSync)(a))return null;try{let c=(0,b.readFileSync)(a,"utf-8"),d=JSON.parse(c);if(!d||"object"!=typeof d||"string"!=typeof d.cachedAt||!d.params||"object"!=typeof d.params||!d.result||"object"!=typeof d.result||2!==d.schemaVersion||function(a,b=30){let c=new Date(a).getTime();return!!Number.isNaN(c)||Date.now()-c>6e4*b}(d.cachedAt,10080))return null;return d}catch{return null}},"readDashboardCacheMeta",0,function(){let a=d();if(!(0,b.existsSync)(a))return null;try{let c=(0,b.readFileSync)(a,"utf-8"),d=JSON.parse(c);if(!d||2!==d.schemaVersion||"string"!=typeof d.cachedAt||Number.isNaN(new Date(d.cachedAt).getTime()))return null;let e=d.result,f=a=>"number"==typeof a&&Number.isFinite(a)?a:null;return{cachedAt:d.cachedAt,findings:f(e?.totals?.hits),sessionsScanned:f(e?.transcripts?.scanned),eventsScanned:f(e?.eventsScanned)}}catch{return null}}])},10695,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(75818);let e={info:0,warn:1,error:2},f=(0,d.logsDir)(),g=!1,h="warn",i=!1,j=f;function k(a){return!function(){if(g)return;g=!0;let a=(process.env.FAILPROOFAI_LOG_LEVEL??"").toLowerCase();("info"===a||"warn"===a||"error"===a)&&(h=a);let b=(process.env.FAILPROOFAI_HOOK_LOG_FILE??"").trim();b&&(i=!0,"1"!==b&&"true"!==b&&(j=b))}(),e[a]>=e[h]}function l(a,b){process.stderr.write(`[failproofai:hook] ${a} ${b}
2
- `)}function m(a,d){if(i)try{(0,b.existsSync)(j)||(0,b.mkdirSync)(j,{recursive:!0});let e=(0,c.join)(j,"hooks.log");try{if((0,b.statSync)(e).size>=524288){let a=`hooks-${Date.now()}.log`;(0,b.renameSync)(e,(0,c.join)(j,a))}}catch{}let f=new Date().toISOString(),g=`[${f}] ${a} ${d}
3
- `;(0,b.appendFileSync)(e,g,"utf-8")}catch{}}a.s(["hookLogError",0,function(a){k("error")&&(l("ERROR",a),m("ERROR",a))},"hookLogWarn",0,function(a){k("warn")&&(l("WARN",a),m("WARN",a))}])}];
4
-
5
- //# sourceMappingURL=_06imw3p._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[21776,a=>{"use strict";var b=a.i(36359),c=a.i(7292);a.s([],84740),a.i(84740),a.s(["002a551863b51d42ffe781e9841b676b82fa895b9b",()=>b.getTelemetryConfig,"607d04cf3dfa7aa40bb77f7c023c14a6ef615e1ad5",()=>c.searchHookActivityAction],21776)},2726,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]__0vmspq5._.js","server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js"].map(b=>a.l(b))).then(()=>b(74493)))}];
2
-
3
- //# sourceMappingURL=_1u8-lu2._.js.map
@@ -1,3 +0,0 @@
1
- module.exports=[41857,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("00307e102c6f6e4cfdd9201975d1f4ef94ea86924c",d.callServer,void 0,d.findSourceMapURL,"getScheduledAuditAction"),f=(0,d.createServerReference)("40a46a4bfb367205e6de934f38e1e919c3b69ed937",d.callServer,void 0,d.findSourceMapURL,"setAutoAuditAction"),g=(0,d.createServerReference)("40168692117f80ed35533b6f510d0a483a609cbf47",d.callServer,void 0,d.findSourceMapURL,"setAuditIntervalAction");var h=a.i(89564),i=a.i(4543),j=a.i(18952),k=a.i(80977);function l(a){return new Date(a).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function m(a,b){let c=a-b;if(c<=0)return"now";let d=Math.floor(c/864e5),e=Math.floor(c%864e5/36e5);return d>0?e>0?`${d}d ${e}h`:`${d}d`:e>0?`${e}h`:`${Math.max(1,Math.floor(c/6e4))}m`}function n(a){return a.toLocaleString("en-US")}function o({label:a,value:c,sub:d,tone:e}){return(0,b.jsxs)("div",{className:"set-stat",children:[(0,b.jsx)("div",{className:"set-stat-label",children:a}),(0,b.jsx)("div",{className:`set-stat-value${e?` ${e}`:""}`,children:c}),(0,b.jsx)("div",{className:"set-stat-sub",children:d??" "})]})}function p({lastRunAtMs:a,nextDueAtMs:c,now:d}){if(null==a||null==c||c<=a)return null;let e=Math.min(100,Math.max(0,(d-a)/(c-a)*100));return(0,b.jsxs)("div",{className:"tape","aria-hidden":"true",children:[(0,b.jsxs)("div",{className:"tape-rail",children:[(0,b.jsx)("div",{className:"tape-fill",style:{width:`${e}%`}}),(0,b.jsx)("div",{className:"tape-now",style:{left:`${e}%`}})]}),(0,b.jsxs)("div",{className:"tape-ends",children:[(0,b.jsxs)("span",{children:["last scan · ",l(a)]}),(0,b.jsxs)("span",{className:"tape-next",children:["next · ",m(c,d)]})]})]})}function q({enabled:a,onChange:c,disabled:d,label:e}){return(0,b.jsx)("button",{type:"button",role:"switch","aria-checked":a,"aria-label":e,disabled:d,onClick:c,className:"sw","data-on":a?"true":"false",children:(0,b.jsx)("span",{className:"sw-knob"})})}let r=[{label:"reads",body:"every session transcript on disk — your prompts, the files your agents read and wrote, and command output."},{label:"runs",body:"entirely on this machine. the transcripts never leave it."},{label:"sends",body:"counts, redacted examples, and this machine's name — and only when a scan finds something harmful."}];a.s(["default",0,function({initial:a}){let[d,s]=(0,c.useState)(a),[t,u]=(0,c.useState)(a?.auto??!1),[v,w]=(0,c.useState)(a?.intervalDays??7),[x,y]=(0,c.useState)(!1),[z,A]=(0,c.useState)(!1),[B,C]=(0,c.useState)(!1),[D,E]=(0,c.useState)(null===a),[F,G]=(0,c.useState)(0),H=(0,c.useRef)(!0),I=(0,c.useRef)(null!==a),J=(0,c.useCallback)(async()=>{try{let a=await e();if(!H.current)return;s(a),I.current=!0,u(a.auto),w(a.intervalDays),G(Date.now()),E(!1)}catch{H.current&&!I.current&&E(!0)}},[]);(0,c.useEffect)(()=>(H.current=!0,J(),()=>{H.current=!1}),[J]),(0,c.useEffect)(()=>{let a=()=>void J();return window.addEventListener("focus",a),document.addEventListener("visibilitychange",a),()=>{window.removeEventListener("focus",a),document.removeEventListener("visibilitychange",a)}},[J]);let K=d?.signedInAs??null,L=d?.daemon==="running",M=d?.daemon==="unsupported-platform",N=d?.schedule??null,O=d?.lastScan??null,P=N?.lastExitCode!=null&&0!==N.lastExitCode&&75!==N.lastExitCode,Q=(0,c.useCallback)(async()=>{y(!0);try{let a=await f(!0);if(!a.ok){if(u(!1),"unreachable"===a.reason)return void(0,j.toast)("could not reach the server. check your connection and try again.");await J(),C(!0),(0,j.toast)("that sign-in expired. one more code and it's on.");return}u(a.auto),(0,j.toast)("scheduled audits on."),await J()}catch{u(!1),(0,j.toast)("could not turn that on.")}finally{y(!1)}},[J]),R=(0,c.useCallback)(async()=>{if(t){y(!0);try{let a=await f(!1);a.ok&&u(a.auto),(0,j.toast)("scheduled audits off."),await J()}catch{(0,j.toast)("could not turn that off.")}finally{y(!1)}return}K?await Q():C(!0)},[t,Q,J,K]),S=(0,c.useCallback)(async a=>{y(!0);try{let b=await g(a);w(b.intervalDays),s(a=>a?{...a,intervalDays:b.intervalDays}:a),(0,j.toast)(`scanning every ${b.intervalDays} day${1===b.intervalDays?"":"s"}.`)}catch{w(d?.intervalDays??7),(0,j.toast)("could not save that.")}finally{y(!1)}},[d?.intervalDays]),T=(0,c.useCallback)(async()=>{y(!0);try{await fetch("/api/auth/logout",{method:"POST"}),(0,j.toast)("signed out. scans continue; digests pause."),await J()}catch{(0,j.toast)("could not sign out.")}finally{y(!1)}},[J]),U=(0,c.useCallback)(async()=>{if(!z){A(!0);try{await (0,h.triggerRun)({cli:[],since:"all",noCache:!1}),(0,j.toast)("scan complete."),await J()}catch(a){(0,j.toast)(a instanceof h.RerunError&&"timeout"===a.kind?"the scan is taking a while — it will finish in the background.":"the scan could not be completed.")}finally{A(!1)}}},[J,z]),V=(0,c.useCallback)(async a=>{C(!1),await J(),await Q()},[Q,J]),W=d?L?{value:"running",sub:null!=d.daemonStartedAtMs&&F>0?`up ${function(a){let b=Math.floor(a/864e5);if(b>0)return`${b}d`;let c=Math.floor(a/36e5);return c>0?`${c}h`:`${Math.max(1,Math.floor(a/6e4))}m`}(Math.max(0,F-d.daemonStartedAtMs))}`:"",tone:"ok"}:M?{value:"unavailable",sub:"not on this platform"}:"not-installed"===d.daemon?{value:"not installed",sub:"run failproofai config",tone:"warn"}:"unknown"===d.daemon?{value:"unknown",sub:"could not read it"}:{value:"stopped",sub:"run failproofai config",tone:"warn"}:{value:"…",sub:"reading"},X=t?N?.nextDueAtMs==null?{value:"pending",sub:"after the next scan"}:{value:F>0?m(N.nextDueAtMs,F):"—",sub:l(N.nextDueAtMs)}:{value:"off",sub:"nothing scheduled"},Y=O?{value:(0,k.formatRelativeTime)(Date.parse(O.finishedAt)),sub:null!=O.sessionsScanned?`${n(O.sessionsScanned)} sessions`:"scanned"}:{value:"none yet",sub:"run one below"},Z=O?null==O.findings?{value:"—",sub:"unreadable"}:{value:n(O.findings),sub:"this scan",...O.findings>0?{tone:"warn"}:{}}:{value:"—",sub:"no scan yet"};return(0,b.jsxs)("main",{className:"report",children:[(0,b.jsxs)("section",{className:"section set-sec",children:[(0,b.jsxs)("div",{className:"set-mast",children:[(0,b.jsx)("h1",{className:"set-title",children:"settings"}),(0,b.jsx)("p",{className:"set-lede",children:"keeping watch, so you don't have to."})]}),D?(0,b.jsx)("div",{className:"set-console",children:(0,b.jsx)("div",{className:"set-cell",children:(0,b.jsxs)("p",{className:"set-warn",children:["could not read this machine's settings. check that the dashboard can reach ",(0,b.jsx)("code",{children:"~/.failproofai/config.json"}),"."]})})}):(0,b.jsxs)("div",{className:"set-console",children:[(0,b.jsxs)("div",{className:"set-stats",children:[(0,b.jsx)(o,{label:"daemon",...W}),(0,b.jsx)(o,{label:"next scan",...X}),(0,b.jsx)(o,{label:"last scan",...Y}),(0,b.jsx)(o,{label:"findings",...Z})]}),(0,b.jsxs)("div",{className:"set-cols",children:[(0,b.jsxs)("div",{className:"set-cell set-config",children:[(0,b.jsx)("h2",{className:"set-cell-title",children:"scheduled audit"}),(0,b.jsxs)("div",{className:"set-row set-row-main",children:[(0,b.jsx)(q,{enabled:t,disabled:x||null===d,onChange:()=>void R(),label:t?"turn off scheduled audits":"turn on scheduled audits"}),(0,b.jsxs)("div",{className:"set-row-copy",children:[(0,b.jsx)("span",{className:"set-strong",children:t?"scanning on a schedule.":"scan on a schedule."}),(0,b.jsx)("span",{className:"set-dim",children:t?"you'll get an email only when a scan finds something.":"off. nothing runs and nothing is sent."})]})]}),(0,b.jsxs)("div",{className:"set-row set-row-interval",children:[(0,b.jsx)("span",{className:"set-dim",children:"scan every"}),(0,b.jsx)("input",{type:"number",className:"set-num",min:1,max:90,value:v,disabled:x||null===d,"aria-label":"days between scheduled scans",onChange:a=>w(Number(a.target.value)),onBlur:a=>{let b=Number(a.target.value);Number.isFinite(b)?b!==d?.intervalDays&&S(b):w(d?.intervalDays??7)}}),(0,b.jsx)("span",{className:"set-dim",children:"days"}),(0,b.jsxs)("span",{className:"set-hint",children:[1,"–",90]})]}),(0,b.jsx)("div",{className:"set-rule"}),(0,b.jsx)("div",{className:"set-row set-row-identity",children:K?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"set-dim",children:"reports go to"}),(0,b.jsx)("span",{className:"set-email",children:K.email}),(0,b.jsx)("button",{type:"button",className:"set-link",disabled:x,onClick:()=>void T(),children:"sign out"})]}):t?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"set-warn",children:"signed out — scans continue, digests are paused."}),(0,b.jsx)("button",{type:"button",className:"set-link",disabled:x,onClick:()=>C(!0),children:"sign in to resume"})]}):(0,b.jsx)("span",{className:"set-dim",children:"turning this on asks for an email, so there is somewhere to send the report."})}),t&&d&&!L&&(0,b.jsx)("p",{className:"set-warn",children:M?"the background service isn't available on this platform, so scheduled scans can't run here. you can still run one now.":"not-installed"===d.daemon?"the background service isn't installed, so nothing will run on the timer. install it with `failproofai config`.":"the background service is stopped, so nothing will run until it starts. repair it with `failproofai config`."}),P&&(0,b.jsxs)("p",{className:"set-warn",children:["the last scheduled scan exited ",N?.lastExitCode,". the next one will still run."]}),(0,b.jsx)("div",{className:"set-actions",children:(0,b.jsx)("button",{type:"button",className:"btn btn-press",disabled:z,onClick:()=>void U(),children:z?"[ scanning… ]":"[ run a scan now ]"})})]}),(0,b.jsxs)("div",{className:"set-cell set-how",children:[(0,b.jsx)("h2",{className:"set-cell-title",children:"how it works"}),(0,b.jsx)("dl",{className:"set-how-list",children:r.map(a=>(0,b.jsxs)("div",{className:"set-how-row",children:[(0,b.jsx)("dt",{className:"set-how-label",children:a.label}),(0,b.jsx)("dd",{className:"set-how-body",children:a.body})]},a.label))})]})]})]}),t&&F>0&&(0,b.jsx)(p,{lastRunAtMs:N?.lastRunAtMs??null,nextDueAtMs:N?.nextDueAtMs??null,now:F})]}),(0,b.jsx)(i.AuthDialog,{open:B,source:"settings_scheduled_audit",headline:"where should the report go?",subhead:"we'll send a one-time code to confirm.",onClose:()=>C(!1),onAuthed:a=>void V(a)})]})}],41857)}];
2
-
3
- //# sourceMappingURL=app_settings_settings-client_tsx_20lq-mq._.js.map
@@ -1,10 +0,0 @@
1
- module.exports=[15638,a=>{"use strict";var b=a.i(50227),c=a.i(54799),d=a.i(2157),e=a.i(12714),f=a.i(57764),g=a.i(66680),h=a.i(10695),i=a.i(32352),j=a.i(84948);a.i(28120);var k=a.i(98378),l=a.i(69839);a.i(75818);let m="__FAILPROOFAI_LOADING_HOOKS__",n=/policies\.(js|mjs|ts)$/,o=0,p=new Map;async function q(a){let b,c,d=Number.isFinite(c=Number(process.env.FAILPROOFAI_POLICY_LOAD_TIMEOUT_MS))&&c>0?c:1e4;try{await Promise.race([import(a),new Promise((a,c)=>{b=setTimeout(()=>c(Error(`timed out loading module after ${d}ms`)),d),b.unref?.()})])}finally{b&&clearTimeout(b)}}async function r(a,d){let e=globalThis;e[m]=!0;let g=[];try{let b=await (0,j.findDistIndex)(),e=b?(0,f.pathToFileURL)(b).href:null,h=++o,k=`${j.TMP_SUFFIX}.${process.pid}.${h}.${(0,c.randomUUID)()}.mjs`;g=await (0,j.rewriteFileTree)(a,e,b,k,d?.verifyEntrySha);let l=await s(g,k),m=p.get(a);if(m?.fingerprint===l){for(let a of m.hooks)i.customPolicies.add({...a});return null}let n=a+k,r=(0,f.pathToFileURL)(n).href,t=(0,i.getCustomHooks)().length;return await q(r),p.size>=500&&p.clear(),p.set(a,{fingerprint:l,hooks:(0,i.getCustomHooks)().slice(t).map(a=>({...a}))}),null}catch(f){let c=f instanceof Error?f.message:String(f),e=/Cannot find module|MODULE_NOT_FOUND|ENOENT/i.test(c)?"module_not_found":/SyntaxError|Unexpected token/i.test(c)?"syntax_error":/timed out loading module/i.test(c)?"load_timeout":"runtime_error";if((0,k.trackHookEvent)((0,l.getInstanceId)(),"custom_hooks_load_error",{error_type:e,is_convention:!!d?.conventionScope,convention_scope:d?.conventionScope??null,file_basename:(0,b.basename)(a)}),d?.strict)throw Error(`Failed to load custom hooks from ${a}: ${c}`);return(0,h.hookLogError)(`failed to load custom hooks from ${a}: ${c}`),{type:e,reason:c}}finally{e[m]=!1,await (0,j.cleanupTmpFiles)(g)}}async function s(a,b){let c=(0,g.createHash)("sha256");for(let d of[...a].sort()){c.update(d.replaceAll(b,j.TMP_SUFFIX));let a=await (0,e.readFile)(d,"utf8");c.update(a.replaceAll(b,j.TMP_SUFFIX))}return c.digest("hex")}async function t(a,c){if(!a)return[];let e=(0,b.isAbsolute)(a)?a:(0,b.resolve)(c?.sessionCwd??process.cwd(),a);if(!(0,d.existsSync)(e)){if(c?.strict)throw Error(`Custom hooks file not found: ${e}`);return(0,h.hookLogWarn)(`customPoliciesPath not found: ${e}`),[]}return(0,i.clearCustomHooks)(),await r(e,c),(0,i.getCustomHooks)()}a.s(["conventionPolicyId",0,function(a,b,c){return`convention:${a}:${b}:${c}`},"customPolicyId",0,function(a,b){return`custom:${a}:${b}`},"discoverPolicyFiles",0,function(a){if(!(0,d.existsSync)(a))return[];try{return(0,d.readdirSync)(a,{withFileTypes:!0}).filter(a=>a.isFile()&&n.test(a.name)).sort((a,b)=>a.name.localeCompare(b.name)).map(c=>(0,b.resolve)(a,c.name))}catch{return[]}},"loadCustomHooks",0,t])},32352,84948,a=>{"use strict";let b="__failproofai_custom_hooks__";function c(){let a=globalThis;return Array.isArray(a[b])||(a[b]=[]),a[b]}a.s(["clearCustomHooks",0,function(){globalThis[b]=[]},"customPolicies",0,{add(a){c().push(a)}},"getCustomHooks",0,function(){return c()}],32352);var d=a.i(24868),e=a.i(46786),f=a.i(14747),g=a.i(92509),h=a.i(54799),i=a.i(75818),j=a.i(10695);let k=".__failproofai_tmp__.mjs",l=/(?:import\s+(?:[\s\S]*?\s+from\s+)?|export\s+(?:[\s\S]*?\s+from\s+))(['"])(\.\.?\/[^'"]+)\1/g,m=/require\s*\(\s*(['"])(\.\.?\/[^'"]+)\1\s*\)/g;async function n(a){try{return await (0,d.access)(a),!0}catch{return!1}}async function o(){let a=process.env.FAILPROOFAI_DIST_PATH;if(a){let b=(0,f.resolve)(a,"index.js");if(await n(b))return b}for(let a of[(0,f.resolve)((0,f.dirname)(process.execPath),"..","assets","dist","index.js"),(0,f.resolve)(process.cwd(),"dist","index.js"),(0,f.resolve)(process.cwd(),"node_modules","failproofai","dist","index.js")])if(await n(a))return a;return null}async function p(a,b){let c=(0,f.resolve)(a,b);for(let a of[c,`${c}.js`,`${c}.mjs`,`${c}.ts`,(0,f.resolve)(c,"index.js")])if(await n(a))return a;return null}async function q(a,b,c,e){let g=(0,f.join)(a,b);return await (0,d.writeFile)(g,c,{encoding:"utf-8",mode:384,...e?{flag:"wx"}:{}}),g}async function r(a,b,c=k){let f=`import _cjs from '${b}';
2
- export const customPolicies = _cjs.customPolicies;
3
- export const getCustomHooks = _cjs.getCustomHooks;
4
- export const clearCustomHooks = _cjs.clearCustomHooks;
5
- export const allow = _cjs.allow;
6
- export const deny = _cjs.deny;
7
- export const instruct = _cjs.instruct;
8
- export default _cjs;`,h=`failproofai-dist${c}.shim.mjs`;try{let a=(0,i.shimsDir)();await (0,d.mkdir)(a,{recursive:!0,mode:448});let b=await (0,d.lstat)(a),c="function"==typeof process.getuid?process.getuid():null;if(!b.isDirectory()||b.isSymbolicLink()||null!==c&&b.uid!==c||63&b.mode)throw Error(`${a} is not a private directory owned by this user`);let e=await q(a,h,f,!1);return{shimPath:e,shimUrl:(0,g.pathToFileURL)(e).href}}catch(a){(0,j.hookLogWarn)(`policy shim directory unusable (${a instanceof Error?a.message:String(a)}); falling back to ${(0,e.tmpdir)()}`)}let l=await q((0,e.tmpdir)(),h,f,!0);return{shimPath:l,shimUrl:(0,g.pathToFileURL)(l).href}}async function s(a,b,c,e=k,g){let i=[a],j=new Set,n=[],o=null;if(c&&b){let a=await r(c,b,e);n.push(a.shimPath),o=a.shimUrl}for(;i.length>0;){let b,k=i.shift();if(j.has(k))continue;if(j.add(k),g&&k===a){let a=await (0,d.readFile)(k),c=(0,h.createHash)("sha256").update(a).digest("hex");if(c!==g)throw Error(`cloud-managed policy failed integrity re-verification at load: expected ${g}, got ${c}`);b=a.toString("utf-8")}else b=await (0,d.readFile)(k,"utf-8");o&&(b=b.replace(/from\s+(['"])(?:claudeye|failproofai)\1/g,`from '${o}'`)),c&&(b=b.replace(/require\s*\(\s*(['"])(?:claudeye|failproofai)\1\s*\)/g,`require('${c.replace(/\\/g,"\\\\")}')`));let q=(0,f.dirname)(k),r=new Map;for(let a of[l,m]){let c,d=new RegExp(a.source,a.flags);for(;null!==(c=d.exec(b));){let a=c[2];if(r.has(a))continue;let b=await p(q,a);if(!b)continue;j.has(b)||i.includes(b)||i.push(b);let d=(0,f.relative)(q,b+e).split("\\").join("/");d.startsWith(".")||(d="./"+d),r.set(a,d)}}for(let a of[...r.keys()].sort((a,b)=>b.length-a.length)){let c=r.get(a),d=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");b=(b=b.replace(RegExp(`'${d}'`,"g"),`'${c}'`)).replace(RegExp(`"${d}"`,"g"),`"${c}"`)}let s=k+e;await (0,d.writeFile)(s,b,"utf-8"),n.push(s)}return n}async function t(a){for(let b of a)try{await (0,d.unlink)(b)}catch{}}a.s(["TMP_SUFFIX",0,k,"cleanupTmpFiles",0,t,"findDistIndex",0,o,"rewriteFileTree",0,s],84948)},98378,a=>{"use strict";var b=a.i(12072),c=a.i(79779),d=a.i(31920);let e=c.POSTHOG_API_KEY,f=new Set;async function g(a,d,f){let g=JSON.stringify({api_key:process.env.FAILPROOFAI_POSTHOG_KEY??e,event:d,distinct_id:a,properties:{...f,$lib:"failproofai-hooks",failproofai_version:b.version,product:c.POSTHOG_PRODUCT}});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:g,signal:AbortSignal.timeout(5e3)})}catch{}}async function h(a,b,c){if(!(0,d.isTelemetryEnabled)())return;let e=g(a,b,c);f.add(e),e.finally(()=>f.delete(e)),await e}a.s(["trackHookEvent",0,h])},28120,a=>{"use strict";var b=a.i(2157),c=a.i(50227),d=a.i(60526),e=a.i(10695),f=a.i(75818);function g(a){if(!(0,b.existsSync)(a))return{};try{let c=(0,b.readFileSync)(a,"utf8");return JSON.parse(c)}catch(b){return(0,e.hookLogWarn)(`failed to parse config at ${a}: ${b instanceof Error?b.message:String(b)}`),{}}}function h(a){let e=(0,d.homedir)(),f=(0,c.resolve)(a);for(;f!==e;){let a=(0,c.resolve)(f,".failproofai");try{if((0,b.statSync)(a).isDirectory())return f}catch{}let d=(0,c.dirname)(f);if(d===f)break;f=d}return(0,c.resolve)(a)}function i(){return(0,f.globalPolicyConfigFile)()}function j(a,b){switch(a){case"user":return(0,f.globalPolicyConfigFile)();case"project":return(0,c.resolve)(h(b??process.cwd()),".failproofai","policies-config.json");case"local":return(0,c.resolve)(h(b??process.cwd()),".failproofai","policies-config.local.json")}}a.s(["configuredCustomPolicyPaths",0,function(a){return a.customPoliciesPaths??(a.customPoliciesPath?[a.customPoliciesPath]:[])},"findProjectConfigDir",0,h,"readHooksConfig",0,function(){let a=i();if(!(0,b.existsSync)(a))return{enabledPolicies:[]};try{let c=(0,b.readFileSync)(a,"utf8");return JSON.parse(c)}catch(b){return(0,e.hookLogWarn)(`failed to parse config at ${a}: ${b instanceof Error?b.message:String(b)}`),{enabledPolicies:[]}}},"readMergedHooksConfig",0,function(a){let b=h(a??process.cwd()),d=(0,c.resolve)(b,".failproofai","policies-config.json"),e=(0,c.resolve)(b,".failproofai","policies-config.local.json"),i=(0,f.globalPolicyConfigFile)(),j=g(d),k=g(e),l=g(i),m=new Set([...j.enabledPolicies??[],...k.enabledPolicies??[],...l.enabledPolicies??[]]),n={};for(let a of[j,k,l])if(a.policyParams)for(let[b,c]of Object.entries(a.policyParams))b in n||(n[b]=c);let o=[j,k,l].map(a=>void 0!==a.customPoliciesPaths?a.customPoliciesPaths:void 0!==a.customPoliciesPath?[a.customPoliciesPath]:void 0).find(a=>void 0!==a),p=new Set([...j.disabledCustomPolicies??[],...k.disabledCustomPolicies??[],...l.disabledCustomPolicies??[]]),q=j.customPoliciesEnabled??k.customPoliciesEnabled??l.customPoliciesEnabled,r=j.llm??k.llm??l.llm;return{enabledPolicies:[...m],...Object.keys(n).length>0?{policyParams:n}:{},...void 0!==o?{customPoliciesPaths:o}:{},...p.size?{disabledCustomPolicies:[...p]}:{},...void 0!==q?{customPoliciesEnabled:q}:{},...void 0!==r?{llm:r}:{}}},"readScopedHooksConfig",0,function(a,c){let d=j(a,c);if(!(0,b.existsSync)(d))return{enabledPolicies:[]};try{let a=(0,b.readFileSync)(d,"utf8");return JSON.parse(a)}catch(a){return(0,e.hookLogWarn)(`failed to parse config at ${d}: ${a instanceof Error?a.message:String(a)}`),{enabledPolicies:[]}}},"writeHooksConfig",0,function(a){let d=i(),e=(0,c.dirname)(d);(0,b.existsSync)(e)||(0,b.mkdirSync)(e,{recursive:!0}),(0,b.writeFileSync)(d,JSON.stringify(a,null,2)+"\n","utf8")},"writeScopedHooksConfig",0,function(a,d,e){let f=j(d,e),g=(0,c.dirname)(f);(0,b.existsSync)(g)||(0,b.mkdirSync)(g,{recursive:!0}),(0,b.writeFileSync)(f,JSON.stringify(a,null,2)+"\n","utf8")}])}];
9
-
10
- //# sourceMappingURL=src_hooks_1cv9_c4._.js.map