failproofai 0.0.13-beta.2 → 0.0.14-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 (285) hide show
  1. package/.next/standalone/.factory/hooks.json +112 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js.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 +2 -2
  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/_head.segment.rsc +3 -3
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  21. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  22. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  23. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  27. package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
  28. package/.next/standalone/.next/server/app/api/audit/run/route.js +3 -3
  29. package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
  30. package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
  31. package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  33. package/.next/standalone/.next/server/app/api/auth/reminder/route.js.nft.json +1 -1
  34. package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js +2 -1
  36. package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
  38. package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/index.html +1 -1
  41. package/.next/standalone/.next/server/app/index.rsc +15 -15
  42. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  43. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  44. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  45. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  46. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  47. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  48. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  51. package/.next/standalone/.next/server/app/policies/page.js +1 -1
  52. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  55. package/.next/standalone/.next/server/app/project/[name]/page.js +3 -2
  56. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  59. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  60. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js +5 -3
  61. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  62. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  64. package/.next/standalone/.next/server/app/projects/page.js +1 -1
  65. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0--lkk6._.js +3 -0
  68. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-219ec._.js +3 -0
  69. package/.next/standalone/.next/server/chunks/[root-of-the-server]__04_h-a5._.js +3 -0
  70. package/.next/standalone/.next/server/chunks/[root-of-the-server]__06cuf1y._.js +3 -0
  71. package/.next/standalone/.next/server/chunks/[root-of-the-server]__08w4wmd._.js +3 -0
  72. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g6bbuw._.js +3 -0
  73. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jllheg._.js +3 -0
  74. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0jnjf2t._.js +3 -0
  75. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q-v9z2._.js +1 -1
  76. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q0qzx1._.js +3 -0
  77. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0q2nbsl._.js +3 -0
  78. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0rv7m0k._.js +1 -1
  79. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xuaoik._.js +3 -3
  80. package/.next/standalone/.next/server/chunks/[root-of-the-server]__16le-kd._.js +3 -0
  81. package/.next/standalone/.next/server/chunks/[root-of-the-server]__17g9wh7._.js +1 -1
  82. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1d9qen3._.js +3 -0
  83. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ffkmds._.js +3 -0
  84. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1fwl2mz._.js +1 -1
  85. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1legmza._.js +1 -1
  86. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1mrihkj._.js +1 -1
  87. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1myjm-d._.js +1 -1
  88. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1qb590j._.js +3 -0
  89. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1qxztj-._.js +1 -1
  90. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1shcqgr._.js +3 -0
  91. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1xuedea._.js +3 -0
  92. package/.next/standalone/.next/server/chunks/{_1z062h5._.js → _1vslkoe._.js} +2 -2
  93. package/.next/standalone/.next/server/chunks/lib_factory-projects_ts_1eo_bk-._.js +3 -0
  94. package/.next/standalone/.next/server/chunks/lib_openclaw-projects_ts_0gc-p24._.js +3 -0
  95. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_17k9e3w.js +24 -12
  96. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js +1 -1
  97. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_09z9-p7._.js +1 -1
  98. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
  99. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00cz9as._.js +3 -0
  100. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__015_i4t._.js +2 -2
  101. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__030k0c6._.js +3 -0
  102. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__03lv-pe._.js +2 -2
  103. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__042d3cd._.js +3 -0
  104. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__05r_17v._.js +3 -0
  105. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1rlmypf._.js → [root-of-the-server]__07qfsfa._.js} +2 -2
  106. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09q1168._.js +3 -0
  107. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e2l3c1._.js +3 -0
  108. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__09u1pcy._.js → [root-of-the-server]__0ge8e7w._.js} +2 -2
  109. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h12me5._.js +1 -1
  110. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0hci7t3._.js +3 -0
  111. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0hdsupo._.js +2 -2
  112. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0p84xee._.js +3 -0
  113. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qeuy9c._.js +2 -2
  114. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0s89hoe._.js +2 -2
  115. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0ynf7tx._.js +2 -2
  116. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11rtg6s._.js +1 -1
  117. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__14dd6h8._.js +1 -1
  118. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__170799-._.js +12 -9
  119. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__17ai7sy._.js +4 -0
  120. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1d8omgc._.js +1 -1
  121. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js +1 -1
  122. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1nq7ivq._.js +3 -0
  123. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1tkjqka._.js +2 -2
  124. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__212nf49._.js +1 -1
  125. package/.next/standalone/.next/server/chunks/ssr/_05whahf._.js +1 -1
  126. package/.next/standalone/.next/server/chunks/ssr/_0_9_ytf._.js +3 -0
  127. package/.next/standalone/.next/server/chunks/ssr/_11_p9y8._.js +1 -1
  128. package/.next/standalone/.next/server/chunks/ssr/{_0ul5rf_._.js → _1_ozgif._.js} +2 -2
  129. package/.next/standalone/.next/server/chunks/ssr/_1p0-leb._.js +1 -1
  130. package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +2 -2
  131. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
  132. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
  133. package/.next/standalone/.next/server/chunks/ssr/lib_0xkhw_v._.js +3 -0
  134. package/.next/standalone/.next/server/chunks/ssr/lib_antigravity-projects_ts_0_6zf11._.js +3 -0
  135. package/.next/standalone/.next/server/chunks/ssr/lib_devin-projects_ts_0a64qdy._.js +3 -0
  136. package/.next/standalone/.next/server/chunks/ssr/lib_factory-projects_ts_1uyaahq._.js +3 -0
  137. package/.next/standalone/.next/server/chunks/ssr/lib_goose-projects_ts_0zkscri._.js +3 -0
  138. package/.next/standalone/.next/server/chunks/ssr/lib_openclaw-projects_ts_0qxq3bp._.js +3 -0
  139. package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_09fe3kb.js → node_modules_html-to-image_es_index_0g5r64e.js} +1 -1
  140. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0-uvagv.js +1 -1
  141. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_03c7gi5.js +1 -1
  142. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09p-8om.js +1 -1
  143. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0v-kfiu.js +1 -1
  144. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0xrgzyz.js +1 -1
  145. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1806lsc.js +1 -1
  146. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1j6dd-e.js +1 -1
  147. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1sa65r-.js +1 -1
  148. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_11bnuzn._.js +1 -1
  149. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1ezd2jf._.js +1 -1
  150. package/.next/standalone/.next/server/chunks/ssr/src_hooks_1tnuifj._.js +1 -1
  151. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  152. package/.next/standalone/.next/server/pages/404.html +1 -1
  153. package/.next/standalone/.next/server/pages/500.html +1 -1
  154. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/server-reference-manifest.json +10 -10
  156. package/.next/standalone/.next/static/chunks/003uz088wbmz7.js +1 -0
  157. package/.next/standalone/.next/static/chunks/{0l2n5ftar65ox.js → 0405htbxay9vd.js} +1 -1
  158. package/.next/standalone/.next/static/chunks/0iinhn4417nk1.js +1 -0
  159. package/.next/standalone/.next/static/chunks/1374x9bv_s_vg.js +6 -0
  160. package/.next/standalone/.next/static/chunks/{06cw8nbn5c4_r.js → 17sdztgbcc0fi.js} +1 -1
  161. package/.next/standalone/.next/static/chunks/{0i0joc040j999.js → 2m_tbl39fcedn.js} +1 -1
  162. package/.next/standalone/.next/static/chunks/{25qvspmcbb_5y.js → 2o3ql0n5owqsw.js} +1 -1
  163. package/.next/standalone/.next/static/chunks/{2a-k91nsa1lgf.js → 2ufuwhv03yvtb.js} +1 -1
  164. package/.next/standalone/.next/static/chunks/35-90m9py64d4.js +1 -0
  165. package/.next/standalone/.next/static/chunks/3r--yyjkp9_7b.css +2 -0
  166. package/.next/standalone/.next/static/chunks/{23t-i9s-q--nu.js → 43weu8f59tlix.js} +1 -1
  167. package/.next/standalone/.next/static/chunks/{2oz8ok8fzxaj3.js → 454dyizqik6t9.js} +2 -2
  168. package/.next/standalone/app/api/audit/run/route.ts +2 -0
  169. package/.next/standalone/app/audit/_components/empty-state.tsx +1 -1
  170. package/.next/standalone/app/globals.css +25 -1
  171. package/.next/standalone/app/policies/hooks-client.tsx +2 -4
  172. package/.next/standalone/app/project/[name]/page.tsx +30 -10
  173. package/.next/standalone/app/project/[name]/session/[sessionId]/page.tsx +71 -21
  174. package/.next/standalone/assets/logos/antigravity.svg +1 -0
  175. package/.next/standalone/assets/logos/devin.svg +1 -0
  176. package/.next/standalone/assets/logos/factory-dark.png +0 -0
  177. package/.next/standalone/assets/logos/factory-light.png +0 -0
  178. package/.next/standalone/assets/logos/goose-dark.svg +1 -0
  179. package/.next/standalone/assets/logos/goose-light.svg +1 -0
  180. package/.next/standalone/assets/logos/openclaw.svg +22 -0
  181. package/.next/standalone/components/navbar.tsx +5 -11
  182. package/.next/standalone/components/reach-developers.tsx +1 -1
  183. package/.next/standalone/lib/antigravity-projects.ts +224 -0
  184. package/.next/standalone/lib/antigravity-sessions.ts +283 -0
  185. package/.next/standalone/lib/cli-registry.ts +26 -6
  186. package/.next/standalone/lib/devin-projects.ts +141 -0
  187. package/.next/standalone/lib/devin-sessions.ts +343 -0
  188. package/.next/standalone/lib/download-session.ts +56 -5
  189. package/.next/standalone/lib/factory-projects.ts +109 -0
  190. package/.next/standalone/lib/factory-sessions.ts +312 -0
  191. package/.next/standalone/lib/goose-projects.ts +148 -0
  192. package/.next/standalone/lib/goose-sessions.ts +296 -0
  193. package/.next/standalone/lib/openclaw-projects.ts +182 -0
  194. package/.next/standalone/lib/openclaw-sessions.ts +284 -0
  195. package/.next/standalone/lib/projects.ts +33 -9
  196. package/.next/standalone/lib/telemetry-sanitize.ts +43 -0
  197. package/.next/standalone/openclaw-plugin/index.js +223 -0
  198. package/.next/standalone/openclaw-plugin/openclaw.plugin.json +6 -0
  199. package/.next/standalone/openclaw-plugin/package.json +12 -0
  200. package/.next/standalone/package.json +4 -3
  201. package/.next/standalone/server.js +1 -1
  202. package/README.md +105 -57
  203. package/bin/failproofai.mjs +87 -29
  204. package/dist/cli.mjs +12803 -9809
  205. package/lib/antigravity-projects.ts +224 -0
  206. package/lib/antigravity-sessions.ts +283 -0
  207. package/lib/cli-registry.ts +26 -6
  208. package/lib/devin-projects.ts +141 -0
  209. package/lib/devin-sessions.ts +343 -0
  210. package/lib/download-session.ts +56 -5
  211. package/lib/factory-projects.ts +109 -0
  212. package/lib/factory-sessions.ts +312 -0
  213. package/lib/goose-projects.ts +148 -0
  214. package/lib/goose-sessions.ts +296 -0
  215. package/lib/openclaw-projects.ts +182 -0
  216. package/lib/openclaw-sessions.ts +284 -0
  217. package/lib/projects.ts +33 -9
  218. package/lib/telemetry-sanitize.ts +43 -0
  219. package/openclaw-plugin/index.js +223 -0
  220. package/openclaw-plugin/openclaw.plugin.json +6 -0
  221. package/openclaw-plugin/package.json +12 -0
  222. package/package.json +4 -3
  223. package/scripts/launch.ts +4 -8
  224. package/scripts/postinstall.mjs +3 -4
  225. package/scripts/sync-agent-cli-harnesses-prompt.md +7 -10
  226. package/scripts/translate-docs/cli.ts +73 -52
  227. package/scripts/translate-docs/config.ts +57 -13
  228. package/scripts/translate-docs/mdx-translator.ts +51 -31
  229. package/scripts/translate-docs/mintlify-nav.ts +91 -10
  230. package/scripts/translate-docs/types.ts +3 -0
  231. package/src/audit/cli-adapters/antigravity.ts +87 -0
  232. package/src/audit/cli-adapters/devin.ts +53 -0
  233. package/src/audit/cli-adapters/factory.ts +75 -0
  234. package/src/audit/cli-adapters/goose.ts +53 -0
  235. package/src/audit/cli-adapters/index.ts +30 -6
  236. package/src/audit/cli-adapters/openclaw.ts +56 -0
  237. package/src/audit/cli.ts +44 -1
  238. package/src/audit/report.ts +1 -1
  239. package/src/audit/types.ts +1 -1
  240. package/src/hooks/builtin-policies.ts +5 -5
  241. package/src/hooks/configure-wizard.ts +356 -0
  242. package/src/hooks/handler.ts +283 -218
  243. package/src/hooks/hook-telemetry.ts +43 -3
  244. package/src/hooks/install-prompt.ts +92 -173
  245. package/src/hooks/integrations.ts +739 -138
  246. package/src/hooks/manager.ts +46 -2
  247. package/src/hooks/policy-evaluator.ts +301 -121
  248. package/src/hooks/policy-presets.ts +71 -0
  249. package/src/hooks/resolve-cwd.ts +1 -1
  250. package/src/hooks/resolve-permission-mode.ts +1 -5
  251. package/src/hooks/resolve-transcript-path.ts +25 -7
  252. package/src/hooks/tool-name-canonicalize.ts +36 -3
  253. package/src/hooks/tui.ts +578 -0
  254. package/src/hooks/types.ts +447 -109
  255. package/.next/standalone/.gemini/settings.json +0 -147
  256. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cag8qd._.js +0 -3
  257. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cefjd9._.js +0 -3
  258. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ekj92q._.js +0 -3
  259. package/.next/standalone/.next/server/chunks/[root-of-the-server]__12v-lma._.js +0 -3
  260. package/.next/standalone/.next/server/chunks/[root-of-the-server]__136y39g._.js +0 -3
  261. package/.next/standalone/.next/server/chunks/[root-of-the-server]__13h8pzr._.js +0 -3
  262. package/.next/standalone/.next/server/chunks/[root-of-the-server]__1hgv_75._.js +0 -3
  263. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__04bqvos._.js +0 -3
  264. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0dqgs96._.js +0 -3
  265. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0q5rfxg._.js +0 -3
  266. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qukut7._.js +0 -4
  267. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1ql-mch._.js +0 -3
  268. package/.next/standalone/.next/server/chunks/ssr/_11v0g3z._.js +0 -3
  269. package/.next/standalone/.next/server/chunks/ssr/lib_gemini-projects_ts_1c7bgx-._.js +0 -3
  270. package/.next/standalone/.next/static/chunks/0fa7j157kg9_d.js +0 -1
  271. package/.next/standalone/.next/static/chunks/1c8i78p7t1i-5.js +0 -1
  272. package/.next/standalone/.next/static/chunks/1sg8kx5szx42y.js +0 -6
  273. package/.next/standalone/.next/static/chunks/25s52un3k_wht.css +0 -2
  274. package/.next/standalone/.next/static/chunks/2rkvn4znvuy4o.js +0 -1
  275. package/.next/standalone/assets/logos/gemini-dark.svg +0 -13
  276. package/.next/standalone/assets/logos/gemini-light.svg +0 -13
  277. package/.next/standalone/lib/gemini-projects.ts +0 -243
  278. package/.next/standalone/lib/gemini-sessions.ts +0 -365
  279. package/lib/gemini-projects.ts +0 -243
  280. package/lib/gemini-sessions.ts +0 -365
  281. package/src/audit/cli-adapters/gemini.ts +0 -51
  282. package/src/hooks/first-run-nudge.ts +0 -146
  283. /package/.next/standalone/.next/static/{HgG0mizCfOM3XyN1EW-sL → MNJWFb2jLRrxRKGFNK6Hy}/_buildManifest.js +0 -0
  284. /package/.next/standalone/.next/static/{HgG0mizCfOM3XyN1EW-sL → MNJWFb2jLRrxRKGFNK6Hy}/_clientMiddlewareManifest.js +0 -0
  285. /package/.next/standalone/.next/static/{HgG0mizCfOM3XyN1EW-sL → MNJWFb2jLRrxRKGFNK6Hy}/_ssgManifest.js +0 -0
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Curated policy bundles for the `failproofai config` wizard.
3
+ *
4
+ * Presets are resolved against BUILTIN_POLICIES by category (+ optional extras)
5
+ * so that adding a new builtin to an existing category automatically flows into
6
+ * the matching preset — the wizard stays in sync with the policy catalog with no
7
+ * manual list maintenance. Order here is the order shown in the wizard (before
8
+ * the "Everything" and "Custom…" entries).
9
+ */
10
+ import { BUILTIN_POLICIES } from "./builtin-policies";
11
+
12
+ export interface PolicyPreset {
13
+ id: string;
14
+ label: string;
15
+ description: string;
16
+ /** Categories whose (non-beta) policies are included in this preset. */
17
+ categories: string[];
18
+ /** Extra policy names to include beyond the category members. */
19
+ extra?: string[];
20
+ }
21
+
22
+ export const POLICY_PRESETS: PolicyPreset[] = [
23
+ {
24
+ id: "secrets",
25
+ label: "Secrets & data",
26
+ description:
27
+ "Redact secrets in tool output, block .env & secret-file writes, keep reads inside the repo",
28
+ categories: ["Sanitize", "Environment"],
29
+ extra: ["block-secrets-write"],
30
+ },
31
+ {
32
+ id: "git",
33
+ label: "Git safety",
34
+ description: "Block force-push & pushes to main, warn on history-rewriting git ops",
35
+ categories: ["Git"],
36
+ },
37
+ {
38
+ id: "ship",
39
+ label: "Ship discipline",
40
+ description:
41
+ "Don't let the agent finish until changes are committed, pushed, PR'd and CI is green",
42
+ categories: ["Workflow"],
43
+ },
44
+ {
45
+ id: "infra",
46
+ label: "Cloud & infra",
47
+ description: "Block kubectl / terraform / aws / gcloud / az / helm / gh pipeline commands",
48
+ categories: ["Infra Commands"],
49
+ },
50
+ ];
51
+
52
+ /** Resolve a preset id to the concrete list of non-beta builtin policy names it
53
+ * enables. (Beta policies are wizard-excluded by design; reintroduce an
54
+ * includeBeta flag here if a `--beta` wizard path ever lands.) */
55
+ export function resolvePreset(id: string): string[] {
56
+ const preset = POLICY_PRESETS.find((p) => p.id === id);
57
+ if (!preset) return [];
58
+ const cats = new Set(preset.categories);
59
+ const fromCategories = BUILTIN_POLICIES.filter(
60
+ (p) => !p.beta && cats.has(p.category),
61
+ ).map((p) => p.name);
62
+ const extras = (preset.extra ?? []).filter((name) =>
63
+ BUILTIN_POLICIES.some((p) => p.name === name && !p.beta),
64
+ );
65
+ return [...new Set([...fromCategories, ...extras])];
66
+ }
67
+
68
+ /** Every non-beta builtin policy (the "Everything" option). */
69
+ export function resolveEverything(): string[] {
70
+ return BUILTIN_POLICIES.filter((p) => !p.beta).map((p) => p.name);
71
+ }
@@ -13,7 +13,7 @@
13
13
  * the dashboard renders an em-dash, and `readMergedHooksConfig(cwd)` /
14
14
  * `loadAllCustomHooks({ sessionCwd })` skip project-scope discovery.
15
15
  *
16
- * • Claude / Codex / Copilot / Gemini / Pi / OpenCode: stdin's top-level
16
+ * • Claude / Codex / Copilot / Pi / OpenCode: stdin's top-level
17
17
  * `cwd` is reliable for every event; passthrough.
18
18
  *
19
19
  * Mirrors the dispatch pattern of `resolve-permission-mode.ts` and
@@ -32,10 +32,6 @@
32
32
  * `tool_call` handlers always run with the same authority. Falls back to
33
33
  * "default" via the same final branch as Copilot/Cursor.
34
34
  *
35
- * • Gemini CLI: hook payload doesn't carry a permission-mode field today.
36
- * Falls back to "default" via the same final branch as Copilot/Cursor/
37
- * OpenCode/Pi. Revisit when Gemini's hook protocol exposes a per-session
38
- * authority signal (the docs as of 2026-04-13 do not).
39
35
  */
40
36
  import { readFileSync } from "node:fs";
41
37
  import { findCodexTranscript } from "../../lib/codex-sessions";
@@ -54,7 +50,7 @@ export function resolvePermissionMode(
54
50
  return resolveCodexMode(sessionId) ?? "default";
55
51
  }
56
52
 
57
- // copilot, cursor, opencode, pi, gemini, unknown integrations, or codex without a sessionId
53
+ // copilot, cursor, opencode, pi, unknown integrations, or codex without a sessionId
58
54
  return "default";
59
55
  }
60
56
 
@@ -22,10 +22,6 @@
22
22
  * • Pi: shim doesn't forward transcript_path. Discover at
23
23
  * ~/.pi/agent/sessions/<encodedCwd>/<isoTimestamp>_<sessionId>.jsonl.
24
24
  *
25
- * • Gemini: docs say stdin carries transcript_path, but coverage is uneven
26
- * across versions. Trust stdin first; fall back to discovery under
27
- * ~/.gemini/tmp/<projectHash>/chats/<sessionId>.json.
28
- *
29
25
  * Mirrors the dispatch pattern of `resolve-permission-mode.ts`. Each
30
26
  * `find*Transcript` helper performs its own existsSync + path-traversal
31
27
  * containment check, so passing in a malformed sessionId is safe (returns
@@ -35,7 +31,8 @@ import { findCodexTranscript } from "../../lib/codex-sessions";
35
31
  import { findCopilotTranscript } from "../../lib/copilot-sessions";
36
32
  import { findCursorTranscript } from "../../lib/cursor-sessions";
37
33
  import { findPiTranscript } from "../../lib/pi-sessions";
38
- import { findGeminiTranscript } from "../../lib/gemini-sessions";
34
+ import { findFactoryTranscript } from "../../lib/factory-sessions";
35
+ import { findAntigravityTranscript } from "../../lib/antigravity-sessions";
39
36
  import type { IntegrationType } from "./types";
40
37
 
41
38
  export function resolveTranscriptPath(
@@ -59,14 +56,35 @@ export function resolveTranscriptPath(
59
56
  return findCursorTranscript(sessionId) ?? undefined;
60
57
  case "pi":
61
58
  return findPiTranscript(sessionId) ?? undefined;
62
- case "gemini":
63
- return findGeminiTranscript(sessionId) ?? undefined;
59
+ case "factory":
60
+ // Factory writes real JSONL at
61
+ // ~/.factory/sessions/<encoded-cwd>/<sessionId>.jsonl (Claude-style).
62
+ return findFactoryTranscript(sessionId) ?? undefined;
63
+ case "antigravity":
64
+ // Antigravity writes real JSONL at ~/.gemini/antigravity-cli/brain/
65
+ // <conversationId>/.system_generated/logs/transcript_full.jsonl.
66
+ return findAntigravityTranscript(sessionId) ?? undefined;
67
+ case "devin":
68
+ // Devin keeps sessions in SQLite (~/.local/share/devin/cli/sessions.db);
69
+ // there is no on-disk transcript file, so hand back a virtual path (like
70
+ // opencode) — audit/download read the DB directly.
71
+ return `devin-db://${sessionId}`;
72
+ case "goose":
73
+ // Goose keeps sessions in SQLite (~/.local/share/goose/sessions/sessions.db);
74
+ // its live-hook payload carries no transcript file, so hand back a virtual
75
+ // path (like devin) — audit/download read the DB directly.
76
+ return `goose-db://${sessionId}`;
64
77
  case "opencode":
65
78
  return `opencode-db://${sessionId}`;
66
79
  case "hermes":
67
80
  // Hermes live-hook payloads carry no transcript file; the audit path
68
81
  // reads sessions straight from ~/.hermes/state.db (see hermes-sessions.ts).
69
82
  return undefined;
83
+ case "openclaw":
84
+ // OpenClaw's plugin shim forwards transcript_path in stdin (handled by the
85
+ // early return above); its audit path reads the real JSONL sessions
86
+ // directly via lib/openclaw-sessions.ts, so no discovery is needed here.
87
+ return undefined;
70
88
  default:
71
89
  return undefined;
72
90
  }
@@ -9,14 +9,22 @@ import type { IntegrationType } from "./types";
9
9
  import {
10
10
  CODEX_TOOL_MAP,
11
11
  COPILOT_TOOL_MAP,
12
+ COPILOT_TOOL_INPUT_MAP,
12
13
  CURSOR_TOOL_MAP,
13
14
  OPENCODE_TOOL_MAP,
14
15
  OPENCODE_TOOL_INPUT_MAP,
15
16
  PI_TOOL_MAP,
16
17
  PI_TOOL_INPUT_MAP,
17
- GEMINI_TOOL_MAP,
18
18
  HERMES_TOOL_MAP,
19
19
  HERMES_TOOL_INPUT_MAP,
20
+ OPENCLAW_TOOL_MAP,
21
+ OPENCLAW_TOOL_INPUT_MAP,
22
+ FACTORY_TOOL_MAP,
23
+ DEVIN_TOOL_MAP,
24
+ ANTIGRAVITY_TOOL_MAP,
25
+ ANTIGRAVITY_TOOL_INPUT_MAP,
26
+ GOOSE_TOOL_MAP,
27
+ GOOSE_TOOL_INPUT_MAP,
20
28
  } from "./types";
21
29
 
22
30
  /**
@@ -32,10 +40,22 @@ export function canonicalizeToolName(
32
40
  if (cli === "copilot") return COPILOT_TOOL_MAP[raw] ?? raw;
33
41
  if (cli === "cursor") return CURSOR_TOOL_MAP[raw] ?? raw;
34
42
  if (cli === "codex") return CODEX_TOOL_MAP[raw] ?? raw;
35
- if (cli === "gemini") return GEMINI_TOOL_MAP[raw] ?? raw;
36
43
  if (cli === "opencode") return OPENCODE_TOOL_MAP[raw] ?? raw;
37
44
  if (cli === "pi") return PI_TOOL_MAP[raw] ?? raw;
38
45
  if (cli === "hermes") return HERMES_TOOL_MAP[raw] ?? raw;
46
+ if (cli === "openclaw") return OPENCLAW_TOOL_MAP[raw] ?? raw;
47
+ // Factory droid: Execute→Bash, Create→Write, FetchUrl→WebFetch, … (verified
48
+ // live against droid v0.171.0). tool_input keys are already canonical.
49
+ if (cli === "factory") return FACTORY_TOOL_MAP[raw] ?? raw;
50
+ // Devin CLI: exec→Bash (verified live against devin v3000.1.27).
51
+ // tool_input.command is already canonical.
52
+ if (cli === "devin") return DEVIN_TOOL_MAP[raw] ?? raw;
53
+ // Antigravity CLI: run_command→Bash (verified agy v1.1.2), view_file→Read, …
54
+ // (best-effort). tool_input keys are PascalCase → ANTIGRAVITY_TOOL_INPUT_MAP.
55
+ if (cli === "antigravity") return ANTIGRAVITY_TOOL_MAP[raw] ?? raw;
56
+ // Goose: shell→Bash, write/edit/view→file ops, todo__todo_write→TodoWrite, …
57
+ // (verified live against goose v1.43.0). Handles bare + `<ext>__<tool>` names.
58
+ if (cli === "goose") return GOOSE_TOOL_MAP[raw] ?? raw;
39
59
  return raw;
40
60
  }
41
61
 
@@ -57,11 +77,24 @@ export function canonicalizeToolInput(
57
77
  return rawInput;
58
78
  }
59
79
  let perToolMap: Record<string, string> | undefined;
60
- if (cli === "opencode") perToolMap = OPENCODE_TOOL_INPUT_MAP[toolName];
80
+ // Copilot file tools deliver `path` (+ Write's `file_text`, Edit's
81
+ // `old_str`/`new_str`); map to canonical keys so path/content builtins fire
82
+ // (verified live against Copilot CLI 1.0.71).
83
+ if (cli === "copilot") perToolMap = COPILOT_TOOL_INPUT_MAP[toolName];
84
+ else if (cli === "opencode") perToolMap = OPENCODE_TOOL_INPUT_MAP[toolName];
61
85
  else if (cli === "pi") perToolMap = PI_TOOL_INPUT_MAP[toolName];
62
86
  // Hermes read_file/write_file/patch deliver the file path as `path`; map it to
63
87
  // `file_path` so path/content builtins fire (verified against a live state.db).
64
88
  else if (cli === "hermes") perToolMap = HERMES_TOOL_INPUT_MAP[toolName];
89
+ // OpenClaw file tools (read/write/edit) deliver the path as `path`; exec
90
+ // already delivers `command`. Map path → file_path so path builtins fire.
91
+ else if (cli === "openclaw") perToolMap = OPENCLAW_TOOL_INPUT_MAP[toolName];
92
+ // Antigravity's run_command args are PascalCase (`CommandLine`, `Cwd`); map
93
+ // to `command`/`cwd` so Bash builtins fire (verified agy v1.1.2).
94
+ else if (cli === "antigravity") perToolMap = ANTIGRAVITY_TOOL_INPUT_MAP[toolName];
95
+ // Goose file tools (write/edit/view) deliver the path as `path`, read_image as
96
+ // `source`; map to `file_path` so path builtins fire (verified goose v1.43.0).
97
+ else if (cli === "goose") perToolMap = GOOSE_TOOL_INPUT_MAP[toolName];
65
98
  if (!perToolMap) return rawInput;
66
99
  const out: Record<string, unknown> = {};
67
100
  for (const [k, v] of Object.entries(rawInput as Record<string, unknown>)) {