failproofai 0.0.6-beta.2 → 0.0.6-beta.4

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 (511) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/build-manifest.json +3 -3
  3. package/.next/standalone/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/.next/required-server-files.json +7 -1
  5. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  10. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  11. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  13. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  14. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  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 +2 -2
  19. package/.next/standalone/.next/server/app/_not-found.rsc +17 -17
  20. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +17 -17
  21. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  22. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  23. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  25. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  26. package/.next/standalone/.next/server/app/index.html +1 -1
  27. package/.next/standalone/.next/server/app/index.rsc +16 -16
  28. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  29. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +16 -16
  30. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  31. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +11 -11
  32. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  33. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  34. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  37. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  40. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  43. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  44. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  47. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  50. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  51. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  52. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  54. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  55. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0i5kvry._.js → [root-of-the-server]__0om-5pe._.js} +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
  58. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__05akje6._.js → [root-of-the-server]__111.vxi._.js} +2 -2
  59. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  60. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  63. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  64. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0mebn66._.js +1 -1
  65. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  66. package/.next/standalone/.next/server/pages/404.html +2 -2
  67. package/.next/standalone/.next/server/pages/500.html +1 -1
  68. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  70. package/.next/standalone/.next/static/chunks/{05j1px0r8yzh6.js → 02dqjyv6_9mhq.js} +2 -2
  71. package/.next/standalone/.next/static/chunks/{14cl9poem30dq.js → 070orfsl6.xal.js} +1 -1
  72. package/.next/standalone/.next/static/chunks/0mir9jdxn35~s.css +1 -0
  73. package/.next/standalone/.next/static/chunks/{00j0rr7rh8ef8.js → 0o547jv-k_k35.js} +1 -1
  74. package/.next/standalone/.next/static/chunks/{0ijk_kek9_wyx.js → 0pk2h2.mjxy.m.js} +1 -1
  75. package/.next/standalone/.next/static/chunks/{0xpl.oscrakvx.js → 0rcwkbh24w38b.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{1052sguyd-.ka.js → 140xx_tfr~lm_.js} +1 -1
  77. package/.next/standalone/.next/static/chunks/{0npb~873.wvg3.js → 169_e4dq~1~b6.js} +1 -1
  78. package/.next/standalone/.next/static/chunks/{0badv41uxa56..js → 17ne4p.1sw1jy.js} +1 -1
  79. package/.next/standalone/next.config.ts +6 -0
  80. package/.next/standalone/package.json +2 -2
  81. package/.next/standalone/server.js +1 -1
  82. package/bin/failproofai.mjs +91 -4
  83. package/dist/cli.mjs +1155 -54
  84. package/package.json +2 -2
  85. package/scripts/prune-standalone.mjs +128 -0
  86. package/src/auth/login.ts +104 -0
  87. package/src/auth/logout.ts +50 -0
  88. package/src/auth/token-store.ts +64 -0
  89. package/src/hooks/builtin-policies.ts +22 -20
  90. package/src/hooks/handler.ts +35 -15
  91. package/src/relay/daemon.ts +362 -0
  92. package/src/relay/pid.ts +76 -0
  93. package/src/relay/queue.ts +225 -0
  94. package/.next/standalone/.claude/settings.json +0 -316
  95. package/.next/standalone/.failproofai/policies/review-policies.mjs +0 -113
  96. package/.next/standalone/.failproofai/policies/workflow-policies.mjs +0 -63
  97. package/.next/standalone/.failproofai/policies-config.json +0 -39
  98. package/.next/standalone/.next/static/chunks/0gu_a.a80ritd.css +0 -1
  99. package/.next/standalone/AGENTS.md +0 -80
  100. package/.next/standalone/CHANGELOG.md +0 -151
  101. package/.next/standalone/CLAUDE.md +0 -165
  102. package/.next/standalone/CONTRIBUTING.md +0 -76
  103. package/.next/standalone/Dockerfile.docs +0 -12
  104. package/.next/standalone/LICENSE +0 -42
  105. package/.next/standalone/README.md +0 -301
  106. package/.next/standalone/bin/failproofai.mjs +0 -352
  107. package/.next/standalone/bun.lock +0 -1119
  108. package/.next/standalone/components.json +0 -23
  109. package/.next/standalone/dist/cli.mjs +0 -3595
  110. package/.next/standalone/dist/index.js +0 -80
  111. package/.next/standalone/docs/ar/architecture.mdx +0 -334
  112. package/.next/standalone/docs/ar/built-in-policies.mdx +0 -574
  113. package/.next/standalone/docs/ar/cli/dashboard.mdx +0 -28
  114. package/.next/standalone/docs/ar/cli/environment-variables.mdx +0 -34
  115. package/.next/standalone/docs/ar/cli/hook.mdx +0 -31
  116. package/.next/standalone/docs/ar/cli/install-policies.mdx +0 -48
  117. package/.next/standalone/docs/ar/cli/list-policies.mdx +0 -31
  118. package/.next/standalone/docs/ar/cli/remove-policies.mdx +0 -43
  119. package/.next/standalone/docs/ar/cli/version.mdx +0 -13
  120. package/.next/standalone/docs/ar/configuration.mdx +0 -223
  121. package/.next/standalone/docs/ar/custom-policies.mdx +0 -354
  122. package/.next/standalone/docs/ar/dashboard.mdx +0 -142
  123. package/.next/standalone/docs/ar/examples.mdx +0 -307
  124. package/.next/standalone/docs/ar/for-agents.mdx +0 -39
  125. package/.next/standalone/docs/ar/getting-started.mdx +0 -187
  126. package/.next/standalone/docs/ar/introduction.mdx +0 -58
  127. package/.next/standalone/docs/ar/package-aliases.mdx +0 -82
  128. package/.next/standalone/docs/ar/testing.mdx +0 -261
  129. package/.next/standalone/docs/architecture.mdx +0 -332
  130. package/.next/standalone/docs/built-in-policies.mdx +0 -574
  131. package/.next/standalone/docs/cli/dashboard.mdx +0 -28
  132. package/.next/standalone/docs/cli/environment-variables.mdx +0 -34
  133. package/.next/standalone/docs/cli/hook.mdx +0 -30
  134. package/.next/standalone/docs/cli/install-policies.mdx +0 -47
  135. package/.next/standalone/docs/cli/list-policies.mdx +0 -31
  136. package/.next/standalone/docs/cli/remove-policies.mdx +0 -43
  137. package/.next/standalone/docs/cli/version.mdx +0 -12
  138. package/.next/standalone/docs/configuration.mdx +0 -222
  139. package/.next/standalone/docs/custom-policies.mdx +0 -353
  140. package/.next/standalone/docs/dashboard.mdx +0 -142
  141. package/.next/standalone/docs/de/architecture.mdx +0 -332
  142. package/.next/standalone/docs/de/built-in-policies.mdx +0 -574
  143. package/.next/standalone/docs/de/cli/dashboard.mdx +0 -28
  144. package/.next/standalone/docs/de/cli/environment-variables.mdx +0 -34
  145. package/.next/standalone/docs/de/cli/hook.mdx +0 -30
  146. package/.next/standalone/docs/de/cli/install-policies.mdx +0 -47
  147. package/.next/standalone/docs/de/cli/list-policies.mdx +0 -31
  148. package/.next/standalone/docs/de/cli/remove-policies.mdx +0 -43
  149. package/.next/standalone/docs/de/cli/version.mdx +0 -12
  150. package/.next/standalone/docs/de/configuration.mdx +0 -222
  151. package/.next/standalone/docs/de/custom-policies.mdx +0 -353
  152. package/.next/standalone/docs/de/dashboard.mdx +0 -142
  153. package/.next/standalone/docs/de/examples.mdx +0 -307
  154. package/.next/standalone/docs/de/for-agents.mdx +0 -38
  155. package/.next/standalone/docs/de/getting-started.mdx +0 -186
  156. package/.next/standalone/docs/de/introduction.mdx +0 -57
  157. package/.next/standalone/docs/de/package-aliases.mdx +0 -82
  158. package/.next/standalone/docs/de/testing.mdx +0 -260
  159. package/.next/standalone/docs/docs.json +0 -1002
  160. package/.next/standalone/docs/es/architecture.mdx +0 -332
  161. package/.next/standalone/docs/es/built-in-policies.mdx +0 -574
  162. package/.next/standalone/docs/es/cli/dashboard.mdx +0 -28
  163. package/.next/standalone/docs/es/cli/environment-variables.mdx +0 -34
  164. package/.next/standalone/docs/es/cli/hook.mdx +0 -30
  165. package/.next/standalone/docs/es/cli/install-policies.mdx +0 -47
  166. package/.next/standalone/docs/es/cli/list-policies.mdx +0 -31
  167. package/.next/standalone/docs/es/cli/remove-policies.mdx +0 -43
  168. package/.next/standalone/docs/es/cli/version.mdx +0 -12
  169. package/.next/standalone/docs/es/configuration.mdx +0 -222
  170. package/.next/standalone/docs/es/custom-policies.mdx +0 -353
  171. package/.next/standalone/docs/es/dashboard.mdx +0 -142
  172. package/.next/standalone/docs/es/examples.mdx +0 -307
  173. package/.next/standalone/docs/es/for-agents.mdx +0 -38
  174. package/.next/standalone/docs/es/getting-started.mdx +0 -186
  175. package/.next/standalone/docs/es/introduction.mdx +0 -57
  176. package/.next/standalone/docs/es/package-aliases.mdx +0 -82
  177. package/.next/standalone/docs/es/testing.mdx +0 -260
  178. package/.next/standalone/docs/examples.mdx +0 -307
  179. package/.next/standalone/docs/favicon.ico +0 -0
  180. package/.next/standalone/docs/for-agents.mdx +0 -38
  181. package/.next/standalone/docs/fr/architecture.mdx +0 -332
  182. package/.next/standalone/docs/fr/built-in-policies.mdx +0 -574
  183. package/.next/standalone/docs/fr/cli/dashboard.mdx +0 -28
  184. package/.next/standalone/docs/fr/cli/environment-variables.mdx +0 -34
  185. package/.next/standalone/docs/fr/cli/hook.mdx +0 -30
  186. package/.next/standalone/docs/fr/cli/install-policies.mdx +0 -47
  187. package/.next/standalone/docs/fr/cli/list-policies.mdx +0 -31
  188. package/.next/standalone/docs/fr/cli/remove-policies.mdx +0 -43
  189. package/.next/standalone/docs/fr/cli/version.mdx +0 -12
  190. package/.next/standalone/docs/fr/configuration.mdx +0 -222
  191. package/.next/standalone/docs/fr/custom-policies.mdx +0 -353
  192. package/.next/standalone/docs/fr/dashboard.mdx +0 -142
  193. package/.next/standalone/docs/fr/examples.mdx +0 -307
  194. package/.next/standalone/docs/fr/for-agents.mdx +0 -38
  195. package/.next/standalone/docs/fr/getting-started.mdx +0 -186
  196. package/.next/standalone/docs/fr/introduction.mdx +0 -57
  197. package/.next/standalone/docs/fr/package-aliases.mdx +0 -82
  198. package/.next/standalone/docs/fr/testing.mdx +0 -260
  199. package/.next/standalone/docs/getting-started.mdx +0 -186
  200. package/.next/standalone/docs/he/architecture.mdx +0 -333
  201. package/.next/standalone/docs/he/built-in-policies.mdx +0 -574
  202. package/.next/standalone/docs/he/cli/dashboard.mdx +0 -28
  203. package/.next/standalone/docs/he/cli/environment-variables.mdx +0 -34
  204. package/.next/standalone/docs/he/cli/hook.mdx +0 -30
  205. package/.next/standalone/docs/he/cli/install-policies.mdx +0 -47
  206. package/.next/standalone/docs/he/cli/list-policies.mdx +0 -32
  207. package/.next/standalone/docs/he/cli/remove-policies.mdx +0 -43
  208. package/.next/standalone/docs/he/cli/version.mdx +0 -12
  209. package/.next/standalone/docs/he/configuration.mdx +0 -223
  210. package/.next/standalone/docs/he/custom-policies.mdx +0 -353
  211. package/.next/standalone/docs/he/dashboard.mdx +0 -142
  212. package/.next/standalone/docs/he/examples.mdx +0 -307
  213. package/.next/standalone/docs/he/for-agents.mdx +0 -38
  214. package/.next/standalone/docs/he/getting-started.mdx +0 -186
  215. package/.next/standalone/docs/he/introduction.mdx +0 -57
  216. package/.next/standalone/docs/he/package-aliases.mdx +0 -82
  217. package/.next/standalone/docs/he/testing.mdx +0 -260
  218. package/.next/standalone/docs/hi/architecture.mdx +0 -334
  219. package/.next/standalone/docs/hi/built-in-policies.mdx +0 -576
  220. package/.next/standalone/docs/hi/cli/dashboard.mdx +0 -28
  221. package/.next/standalone/docs/hi/cli/environment-variables.mdx +0 -34
  222. package/.next/standalone/docs/hi/cli/hook.mdx +0 -30
  223. package/.next/standalone/docs/hi/cli/install-policies.mdx +0 -47
  224. package/.next/standalone/docs/hi/cli/list-policies.mdx +0 -31
  225. package/.next/standalone/docs/hi/cli/remove-policies.mdx +0 -43
  226. package/.next/standalone/docs/hi/cli/version.mdx +0 -12
  227. package/.next/standalone/docs/hi/configuration.mdx +0 -222
  228. package/.next/standalone/docs/hi/custom-policies.mdx +0 -354
  229. package/.next/standalone/docs/hi/dashboard.mdx +0 -142
  230. package/.next/standalone/docs/hi/examples.mdx +0 -309
  231. package/.next/standalone/docs/hi/for-agents.mdx +0 -38
  232. package/.next/standalone/docs/hi/getting-started.mdx +0 -187
  233. package/.next/standalone/docs/hi/introduction.mdx +0 -57
  234. package/.next/standalone/docs/hi/package-aliases.mdx +0 -82
  235. package/.next/standalone/docs/hi/testing.mdx +0 -260
  236. package/.next/standalone/docs/i18n/README.ar.md +0 -312
  237. package/.next/standalone/docs/i18n/README.de.md +0 -307
  238. package/.next/standalone/docs/i18n/README.es.md +0 -307
  239. package/.next/standalone/docs/i18n/README.fr.md +0 -307
  240. package/.next/standalone/docs/i18n/README.he.md +0 -312
  241. package/.next/standalone/docs/i18n/README.hi.md +0 -307
  242. package/.next/standalone/docs/i18n/README.it.md +0 -307
  243. package/.next/standalone/docs/i18n/README.ja.md +0 -307
  244. package/.next/standalone/docs/i18n/README.ko.md +0 -307
  245. package/.next/standalone/docs/i18n/README.pt-br.md +0 -307
  246. package/.next/standalone/docs/i18n/README.ru.md +0 -308
  247. package/.next/standalone/docs/i18n/README.tr.md +0 -307
  248. package/.next/standalone/docs/i18n/README.vi.md +0 -307
  249. package/.next/standalone/docs/i18n/README.zh.md +0 -307
  250. package/.next/standalone/docs/introduction.mdx +0 -57
  251. package/.next/standalone/docs/it/architecture.mdx +0 -334
  252. package/.next/standalone/docs/it/built-in-policies.mdx +0 -574
  253. package/.next/standalone/docs/it/cli/dashboard.mdx +0 -28
  254. package/.next/standalone/docs/it/cli/environment-variables.mdx +0 -34
  255. package/.next/standalone/docs/it/cli/hook.mdx +0 -30
  256. package/.next/standalone/docs/it/cli/install-policies.mdx +0 -47
  257. package/.next/standalone/docs/it/cli/list-policies.mdx +0 -31
  258. package/.next/standalone/docs/it/cli/remove-policies.mdx +0 -43
  259. package/.next/standalone/docs/it/cli/version.mdx +0 -12
  260. package/.next/standalone/docs/it/configuration.mdx +0 -222
  261. package/.next/standalone/docs/it/custom-policies.mdx +0 -353
  262. package/.next/standalone/docs/it/dashboard.mdx +0 -142
  263. package/.next/standalone/docs/it/examples.mdx +0 -307
  264. package/.next/standalone/docs/it/for-agents.mdx +0 -38
  265. package/.next/standalone/docs/it/getting-started.mdx +0 -186
  266. package/.next/standalone/docs/it/introduction.mdx +0 -57
  267. package/.next/standalone/docs/it/package-aliases.mdx +0 -82
  268. package/.next/standalone/docs/it/testing.mdx +0 -260
  269. package/.next/standalone/docs/ja/architecture.mdx +0 -332
  270. package/.next/standalone/docs/ja/built-in-policies.mdx +0 -572
  271. package/.next/standalone/docs/ja/cli/dashboard.mdx +0 -28
  272. package/.next/standalone/docs/ja/cli/environment-variables.mdx +0 -34
  273. package/.next/standalone/docs/ja/cli/hook.mdx +0 -30
  274. package/.next/standalone/docs/ja/cli/install-policies.mdx +0 -47
  275. package/.next/standalone/docs/ja/cli/list-policies.mdx +0 -31
  276. package/.next/standalone/docs/ja/cli/remove-policies.mdx +0 -43
  277. package/.next/standalone/docs/ja/cli/version.mdx +0 -12
  278. package/.next/standalone/docs/ja/configuration.mdx +0 -222
  279. package/.next/standalone/docs/ja/custom-policies.mdx +0 -353
  280. package/.next/standalone/docs/ja/dashboard.mdx +0 -142
  281. package/.next/standalone/docs/ja/examples.mdx +0 -307
  282. package/.next/standalone/docs/ja/for-agents.mdx +0 -38
  283. package/.next/standalone/docs/ja/getting-started.mdx +0 -186
  284. package/.next/standalone/docs/ja/introduction.mdx +0 -57
  285. package/.next/standalone/docs/ja/package-aliases.mdx +0 -82
  286. package/.next/standalone/docs/ja/testing.mdx +0 -260
  287. package/.next/standalone/docs/ko/architecture.mdx +0 -332
  288. package/.next/standalone/docs/ko/built-in-policies.mdx +0 -572
  289. package/.next/standalone/docs/ko/cli/dashboard.mdx +0 -28
  290. package/.next/standalone/docs/ko/cli/environment-variables.mdx +0 -34
  291. package/.next/standalone/docs/ko/cli/hook.mdx +0 -30
  292. package/.next/standalone/docs/ko/cli/install-policies.mdx +0 -47
  293. package/.next/standalone/docs/ko/cli/list-policies.mdx +0 -31
  294. package/.next/standalone/docs/ko/cli/remove-policies.mdx +0 -43
  295. package/.next/standalone/docs/ko/cli/version.mdx +0 -12
  296. package/.next/standalone/docs/ko/configuration.mdx +0 -222
  297. package/.next/standalone/docs/ko/custom-policies.mdx +0 -353
  298. package/.next/standalone/docs/ko/dashboard.mdx +0 -142
  299. package/.next/standalone/docs/ko/examples.mdx +0 -307
  300. package/.next/standalone/docs/ko/for-agents.mdx +0 -38
  301. package/.next/standalone/docs/ko/getting-started.mdx +0 -186
  302. package/.next/standalone/docs/ko/introduction.mdx +0 -57
  303. package/.next/standalone/docs/ko/package-aliases.mdx +0 -82
  304. package/.next/standalone/docs/ko/testing.mdx +0 -260
  305. package/.next/standalone/docs/logo/dark.svg +0 -21
  306. package/.next/standalone/docs/logo/exosphere-dark.png +0 -0
  307. package/.next/standalone/docs/logo/exosphere-light.png +0 -0
  308. package/.next/standalone/docs/logo/light.svg +0 -21
  309. package/.next/standalone/docs/package-aliases.mdx +0 -82
  310. package/.next/standalone/docs/pt-br/architecture.mdx +0 -332
  311. package/.next/standalone/docs/pt-br/built-in-policies.mdx +0 -574
  312. package/.next/standalone/docs/pt-br/cli/dashboard.mdx +0 -28
  313. package/.next/standalone/docs/pt-br/cli/environment-variables.mdx +0 -34
  314. package/.next/standalone/docs/pt-br/cli/hook.mdx +0 -30
  315. package/.next/standalone/docs/pt-br/cli/install-policies.mdx +0 -47
  316. package/.next/standalone/docs/pt-br/cli/list-policies.mdx +0 -31
  317. package/.next/standalone/docs/pt-br/cli/remove-policies.mdx +0 -43
  318. package/.next/standalone/docs/pt-br/cli/version.mdx +0 -12
  319. package/.next/standalone/docs/pt-br/configuration.mdx +0 -222
  320. package/.next/standalone/docs/pt-br/custom-policies.mdx +0 -353
  321. package/.next/standalone/docs/pt-br/dashboard.mdx +0 -142
  322. package/.next/standalone/docs/pt-br/examples.mdx +0 -307
  323. package/.next/standalone/docs/pt-br/for-agents.mdx +0 -38
  324. package/.next/standalone/docs/pt-br/getting-started.mdx +0 -186
  325. package/.next/standalone/docs/pt-br/introduction.mdx +0 -57
  326. package/.next/standalone/docs/pt-br/package-aliases.mdx +0 -82
  327. package/.next/standalone/docs/pt-br/testing.mdx +0 -260
  328. package/.next/standalone/docs/ru/architecture.mdx +0 -333
  329. package/.next/standalone/docs/ru/built-in-policies.mdx +0 -574
  330. package/.next/standalone/docs/ru/cli/dashboard.mdx +0 -28
  331. package/.next/standalone/docs/ru/cli/environment-variables.mdx +0 -34
  332. package/.next/standalone/docs/ru/cli/hook.mdx +0 -30
  333. package/.next/standalone/docs/ru/cli/install-policies.mdx +0 -48
  334. package/.next/standalone/docs/ru/cli/list-policies.mdx +0 -32
  335. package/.next/standalone/docs/ru/cli/remove-policies.mdx +0 -43
  336. package/.next/standalone/docs/ru/cli/version.mdx +0 -12
  337. package/.next/standalone/docs/ru/configuration.mdx +0 -222
  338. package/.next/standalone/docs/ru/custom-policies.mdx +0 -354
  339. package/.next/standalone/docs/ru/dashboard.mdx +0 -142
  340. package/.next/standalone/docs/ru/examples.mdx +0 -309
  341. package/.next/standalone/docs/ru/for-agents.mdx +0 -38
  342. package/.next/standalone/docs/ru/getting-started.mdx +0 -186
  343. package/.next/standalone/docs/ru/introduction.mdx +0 -57
  344. package/.next/standalone/docs/ru/package-aliases.mdx +0 -82
  345. package/.next/standalone/docs/ru/testing.mdx +0 -260
  346. package/.next/standalone/docs/testing.mdx +0 -260
  347. package/.next/standalone/docs/tr/architecture.mdx +0 -333
  348. package/.next/standalone/docs/tr/built-in-policies.mdx +0 -574
  349. package/.next/standalone/docs/tr/cli/dashboard.mdx +0 -28
  350. package/.next/standalone/docs/tr/cli/environment-variables.mdx +0 -34
  351. package/.next/standalone/docs/tr/cli/hook.mdx +0 -30
  352. package/.next/standalone/docs/tr/cli/install-policies.mdx +0 -47
  353. package/.next/standalone/docs/tr/cli/list-policies.mdx +0 -31
  354. package/.next/standalone/docs/tr/cli/remove-policies.mdx +0 -44
  355. package/.next/standalone/docs/tr/cli/version.mdx +0 -12
  356. package/.next/standalone/docs/tr/configuration.mdx +0 -222
  357. package/.next/standalone/docs/tr/custom-policies.mdx +0 -353
  358. package/.next/standalone/docs/tr/dashboard.mdx +0 -142
  359. package/.next/standalone/docs/tr/examples.mdx +0 -308
  360. package/.next/standalone/docs/tr/for-agents.mdx +0 -38
  361. package/.next/standalone/docs/tr/getting-started.mdx +0 -186
  362. package/.next/standalone/docs/tr/introduction.mdx +0 -57
  363. package/.next/standalone/docs/tr/package-aliases.mdx +0 -82
  364. package/.next/standalone/docs/tr/testing.mdx +0 -260
  365. package/.next/standalone/docs/vi/architecture.mdx +0 -334
  366. package/.next/standalone/docs/vi/built-in-policies.mdx +0 -575
  367. package/.next/standalone/docs/vi/cli/dashboard.mdx +0 -28
  368. package/.next/standalone/docs/vi/cli/environment-variables.mdx +0 -34
  369. package/.next/standalone/docs/vi/cli/hook.mdx +0 -30
  370. package/.next/standalone/docs/vi/cli/install-policies.mdx +0 -47
  371. package/.next/standalone/docs/vi/cli/list-policies.mdx +0 -31
  372. package/.next/standalone/docs/vi/cli/remove-policies.mdx +0 -43
  373. package/.next/standalone/docs/vi/cli/version.mdx +0 -13
  374. package/.next/standalone/docs/vi/configuration.mdx +0 -222
  375. package/.next/standalone/docs/vi/custom-policies.mdx +0 -353
  376. package/.next/standalone/docs/vi/dashboard.mdx +0 -142
  377. package/.next/standalone/docs/vi/examples.mdx +0 -308
  378. package/.next/standalone/docs/vi/for-agents.mdx +0 -38
  379. package/.next/standalone/docs/vi/getting-started.mdx +0 -186
  380. package/.next/standalone/docs/vi/introduction.mdx +0 -57
  381. package/.next/standalone/docs/vi/package-aliases.mdx +0 -82
  382. package/.next/standalone/docs/vi/testing.mdx +0 -260
  383. package/.next/standalone/docs/zh/architecture.mdx +0 -332
  384. package/.next/standalone/docs/zh/built-in-policies.mdx +0 -572
  385. package/.next/standalone/docs/zh/cli/dashboard.mdx +0 -28
  386. package/.next/standalone/docs/zh/cli/environment-variables.mdx +0 -34
  387. package/.next/standalone/docs/zh/cli/hook.mdx +0 -30
  388. package/.next/standalone/docs/zh/cli/install-policies.mdx +0 -47
  389. package/.next/standalone/docs/zh/cli/list-policies.mdx +0 -31
  390. package/.next/standalone/docs/zh/cli/remove-policies.mdx +0 -43
  391. package/.next/standalone/docs/zh/cli/version.mdx +0 -12
  392. package/.next/standalone/docs/zh/configuration.mdx +0 -222
  393. package/.next/standalone/docs/zh/custom-policies.mdx +0 -353
  394. package/.next/standalone/docs/zh/dashboard.mdx +0 -142
  395. package/.next/standalone/docs/zh/examples.mdx +0 -307
  396. package/.next/standalone/docs/zh/for-agents.mdx +0 -38
  397. package/.next/standalone/docs/zh/getting-started.mdx +0 -186
  398. package/.next/standalone/docs/zh/introduction.mdx +0 -57
  399. package/.next/standalone/docs/zh/package-aliases.mdx +0 -82
  400. package/.next/standalone/docs/zh/testing.mdx +0 -260
  401. package/.next/standalone/eslint.config.mjs +0 -15
  402. package/.next/standalone/examples/convention-policies/security-policies.mjs +0 -40
  403. package/.next/standalone/examples/convention-policies/workflow-policies.mjs +0 -41
  404. package/.next/standalone/examples/policies-advanced/index.js +0 -103
  405. package/.next/standalone/examples/policies-advanced/utils.js +0 -35
  406. package/.next/standalone/examples/policies-basic.js +0 -77
  407. package/.next/standalone/examples/policies-notification.js +0 -104
  408. package/.next/standalone/node_modules/@img/colour/color.cjs +0 -1594
  409. package/.next/standalone/node_modules/@img/colour/index.cjs +0 -1
  410. package/.next/standalone/node_modules/@img/colour/package.json +0 -45
  411. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/README.md +0 -46
  412. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  413. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +0 -1
  414. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  415. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +0 -42
  416. package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/versions.json +0 -30
  417. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
  418. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  419. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  420. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  421. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  422. package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  423. package/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  424. package/.next/standalone/node_modules/@img/sharp-linux-x64/package.json +0 -46
  425. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  426. package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  427. package/.next/standalone/node_modules/detect-libc/lib/detect-libc.js +0 -313
  428. package/.next/standalone/node_modules/detect-libc/lib/elf.js +0 -39
  429. package/.next/standalone/node_modules/detect-libc/lib/filesystem.js +0 -51
  430. package/.next/standalone/node_modules/detect-libc/lib/process.js +0 -24
  431. package/.next/standalone/node_modules/detect-libc/package.json +0 -44
  432. package/.next/standalone/node_modules/sharp/lib/channel.js +0 -177
  433. package/.next/standalone/node_modules/sharp/lib/colour.js +0 -195
  434. package/.next/standalone/node_modules/sharp/lib/composite.js +0 -212
  435. package/.next/standalone/node_modules/sharp/lib/constructor.js +0 -499
  436. package/.next/standalone/node_modules/sharp/lib/index.js +0 -16
  437. package/.next/standalone/node_modules/sharp/lib/input.js +0 -809
  438. package/.next/standalone/node_modules/sharp/lib/is.js +0 -143
  439. package/.next/standalone/node_modules/sharp/lib/libvips.js +0 -207
  440. package/.next/standalone/node_modules/sharp/lib/operation.js +0 -1016
  441. package/.next/standalone/node_modules/sharp/lib/output.js +0 -1666
  442. package/.next/standalone/node_modules/sharp/lib/resize.js +0 -595
  443. package/.next/standalone/node_modules/sharp/lib/sharp.js +0 -121
  444. package/.next/standalone/node_modules/sharp/lib/utility.js +0 -291
  445. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/comparator.js +0 -143
  446. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/range.js +0 -557
  447. package/.next/standalone/node_modules/sharp/node_modules/semver/classes/semver.js +0 -333
  448. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/cmp.js +0 -54
  449. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/coerce.js +0 -62
  450. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/compare.js +0 -7
  451. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/eq.js +0 -5
  452. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gt.js +0 -5
  453. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gte.js +0 -5
  454. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lt.js +0 -5
  455. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lte.js +0 -5
  456. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/neq.js +0 -5
  457. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/parse.js +0 -18
  458. package/.next/standalone/node_modules/sharp/node_modules/semver/functions/satisfies.js +0 -12
  459. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/constants.js +0 -37
  460. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/debug.js +0 -11
  461. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/identifiers.js +0 -29
  462. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/lrucache.js +0 -42
  463. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/parse-options.js +0 -17
  464. package/.next/standalone/node_modules/sharp/node_modules/semver/internal/re.js +0 -223
  465. package/.next/standalone/node_modules/sharp/node_modules/semver/package.json +0 -78
  466. package/.next/standalone/node_modules/sharp/package.json +0 -202
  467. package/.next/standalone/scripts/alias-proxy.js +0 -18
  468. package/.next/standalone/scripts/dev.ts +0 -3
  469. package/.next/standalone/scripts/install-telemetry.mjs +0 -108
  470. package/.next/standalone/scripts/launch.ts +0 -83
  471. package/.next/standalone/scripts/parse-script-args.ts +0 -87
  472. package/.next/standalone/scripts/postinstall.mjs +0 -121
  473. package/.next/standalone/scripts/preuninstall.mjs +0 -131
  474. package/.next/standalone/scripts/publish-aliases.mjs +0 -87
  475. package/.next/standalone/scripts/start.ts +0 -3
  476. package/.next/standalone/scripts/sync-hook-events-prompt.md +0 -60
  477. package/.next/standalone/scripts/translate-docs/cache.ts +0 -62
  478. package/.next/standalone/scripts/translate-docs/cli.ts +0 -357
  479. package/.next/standalone/scripts/translate-docs/config.ts +0 -248
  480. package/.next/standalone/scripts/translate-docs/mdx-translator.ts +0 -153
  481. package/.next/standalone/scripts/translate-docs/mintlify-nav.ts +0 -107
  482. package/.next/standalone/scripts/translate-docs/readme-translator.ts +0 -154
  483. package/.next/standalone/scripts/translate-docs/translator.ts +0 -68
  484. package/.next/standalone/scripts/translate-docs/types.ts +0 -43
  485. package/.next/standalone/src/cli-error.ts +0 -18
  486. package/.next/standalone/src/hooks/builtin-policies.ts +0 -1613
  487. package/.next/standalone/src/hooks/custom-hooks-loader.ts +0 -205
  488. package/.next/standalone/src/hooks/custom-hooks-registry.ts +0 -30
  489. package/.next/standalone/src/hooks/handler.ts +0 -202
  490. package/.next/standalone/src/hooks/hook-activity-store.ts +0 -349
  491. package/.next/standalone/src/hooks/hook-logger.ts +0 -133
  492. package/.next/standalone/src/hooks/hook-telemetry.ts +0 -43
  493. package/.next/standalone/src/hooks/hooks-config.ts +0 -166
  494. package/.next/standalone/src/hooks/install-prompt.ts +0 -357
  495. package/.next/standalone/src/hooks/llm-client.ts +0 -90
  496. package/.next/standalone/src/hooks/loader-utils.ts +0 -178
  497. package/.next/standalone/src/hooks/manager.ts +0 -692
  498. package/.next/standalone/src/hooks/policy-evaluator.ts +0 -224
  499. package/.next/standalone/src/hooks/policy-helpers.ts +0 -16
  500. package/.next/standalone/src/hooks/policy-registry.ts +0 -90
  501. package/.next/standalone/src/hooks/policy-types.ts +0 -77
  502. package/.next/standalone/src/hooks/types.ts +0 -63
  503. package/.next/standalone/src/index.ts +0 -19
  504. package/.next/standalone/src/posthog-key.ts +0 -5
  505. package/.next/standalone/tailwind.config.ts +0 -11
  506. package/.next/standalone/tsconfig.json +0 -42
  507. package/.next/standalone/vitest.config.e2e.mts +0 -24
  508. package/.next/standalone/vitest.config.mts +0 -23
  509. /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → wOkJXoch1UmRAmyIuKZWc}/_buildManifest.js +0 -0
  510. /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → wOkJXoch1UmRAmyIuKZWc}/_clientMiddlewareManifest.js +0 -0
  511. /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → wOkJXoch1UmRAmyIuKZWc}/_ssgManifest.js +0 -0
@@ -1,572 +0,0 @@
1
- ---
2
- title: 内置策略
3
- description: "涵盖常见 Agent 故障模式的 30 条内置策略"
4
- icon: shield
5
- ---
6
-
7
- failproofai 内置了 30 条策略,用于捕获常见的 Agent 故障模式。每条策略针对特定的钩子事件类型和工具名称触发。九条策略接受参数,让你无需编写代码即可调整其行为。四条工作流策略在 Claude 停止前强制执行 提交 → 推送 → PR → CI 的流水线。
8
-
9
- ---
10
-
11
- ## 概览
12
-
13
- 策略按类别分组:
14
-
15
- | 类别 | 策略 | 钩子类型 |
16
- |----------|----------|-----------|
17
- | [危险命令](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
18
- | [密钥(清理器)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
19
- | [环境](#environment) | block-env-files, protect-env-vars | PreToolUse |
20
- | [文件访问](#file-access) | block-read-outside-cwd, block-secrets-write | PreToolUse |
21
- | [Git](#git) | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
22
- | [数据库](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
23
- | [警告](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
24
- | [包管理器](#package-managers) | prefer-package-manager | PreToolUse |
25
- | [工作流](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
26
-
27
- - **`block-`** — 阻止 Agent 继续执行。
28
- - **`warn-`** — 为 Agent 提供额外上下文,使其能够自我纠正。
29
- - **`sanitize-`** — 在 Agent 看到工具输出之前清除其中的敏感数据。
30
- - **`require-`** — 在条件满足之前阻止 Stop 事件触发。
31
-
32
- ---
33
-
34
- <Tip>
35
- 每条策略在 `policyParams` 中都支持可选的 `hint` 字段。该提示会附加到 Claude 所看到的 deny 或 instruct 消息中,提供可操作的指导,而无需修改策略代码。适用于内置策略、自定义策略和约定策略。详见 [配置 → hint](/zh/configuration#hint-cross-cutting)。
36
- </Tip>
37
-
38
- ---
39
-
40
- ## 危险命令 {#dangerous-commands}
41
-
42
- 防止 Agent 执行难以撤销或可能损坏宿主系统的操作。
43
-
44
- ### `block-sudo`
45
-
46
- **事件:** PreToolUse (Bash)
47
- **默认行为:** 拒绝任何包含 `sudo` 的命令。
48
-
49
- 阻止包含 `sudo` 关键字的调用。模式匹配基于解析后的命令词元(token),而非原始字符串,以防止通过 shell 运算符注入绕过检测。
50
-
51
- **参数:**
52
-
53
- | 参数 | 类型 | 默认值 | 描述 |
54
- |-------|------|---------|-------------|
55
- | `allowPatterns` | `string[]` | `[]` | 允许执行的精确命令前缀。每个条目与解析后的 argv 词元进行匹配。 |
56
-
57
- **示例:**
58
-
59
- ```json
60
- {
61
- "policyParams": {
62
- "block-sudo": {
63
- "allowPatterns": ["sudo systemctl status", "sudo journalctl"]
64
- }
65
- }
66
- }
67
- ```
68
-
69
- 使用此配置,`sudo systemctl status nginx` 会被允许,但 `sudo rm /etc/hosts` 会被拒绝。
70
-
71
- <Note>
72
- 模式匹配基于解析后的词元,而非原始命令字符串。这可以防止通过追加 shell 运算符绕过(例如 `sudo systemctl status x; rm -rf /` 不会匹配 `sudo systemctl status *`)。
73
- </Note>
74
-
75
- ---
76
-
77
- ### `block-rm-rf`
78
-
79
- **事件:** PreToolUse (Bash)
80
- **默认行为:** 拒绝 `rm -rf`、`rm -fr` 及类似的递归删除形式。
81
-
82
- **参数:**
83
-
84
- | 参数 | 类型 | 默认值 | 描述 |
85
- |-------|------|---------|-------------|
86
- | `allowPaths` | `string[]` | `[]` | 允许递归删除的安全路径(例如 `/tmp`)。 |
87
-
88
- **示例:**
89
-
90
- ```json
91
- {
92
- "policyParams": {
93
- "block-rm-rf": {
94
- "allowPaths": ["/tmp", "/var/cache"]
95
- }
96
- }
97
- }
98
- ```
99
-
100
- ---
101
-
102
- ### `block-curl-pipe-sh`
103
-
104
- **事件:** PreToolUse (Bash)
105
- **默认行为:** 拒绝 `curl <url> | bash`、`curl <url> | sh`、`wget <url> | bash` 及类似模式。
106
-
107
- 无参数。
108
-
109
- ---
110
-
111
- ### `block-failproofai-commands`
112
-
113
- **事件:** PreToolUse (Bash)
114
- **默认行为:** 拒绝可能卸载或禁用 failproofai 自身的命令(例如 `npm uninstall failproofai`、`failproofai policies --uninstall`)。
115
-
116
- 无参数。
117
-
118
- ---
119
-
120
- ## 密钥(清理器) {#secrets-sanitizers}
121
-
122
- 防止 Agent 将凭据泄露到其上下文或输出中。清理器策略在 **PostToolUse** 事件上触发。当 Claude 运行 Bash 命令、读取文件或调用任何工具时,这些策略会在输出返回给 Claude 之前对其进行检查。如果检测到密钥模式,策略会返回 deny 决策,阻止输出被传回。
123
-
124
- ### `sanitize-jwt`
125
-
126
- **事件:** PostToolUse(所有工具)
127
- **默认行为:** 脱敏 JWT 令牌(三段由 `.` 分隔的 base64url 片段)。
128
-
129
- 无参数。
130
-
131
- ---
132
-
133
- ### `sanitize-api-keys`
134
-
135
- **事件:** PostToolUse(所有工具)
136
- **默认行为:** 脱敏常见 API 密钥格式:Anthropic(`sk-ant-`)、OpenAI(`sk-`)、GitHub PAT(`ghp_`)、AWS 访问密钥(`AKIA`)、Stripe 密钥(`sk_live_`、`sk_test_`)以及 Google API 密钥(`AIza`)。
137
-
138
- **参数:**
139
-
140
- | 参数 | 类型 | 默认值 | 描述 |
141
- |-------|------|---------|-------------|
142
- | `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | 需要视为密钥的额外正则表达式模式。 |
143
-
144
- **示例:**
145
-
146
- ```json
147
- {
148
- "policyParams": {
149
- "sanitize-api-keys": {
150
- "additionalPatterns": [
151
- { "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo internal API key" },
152
- { "regex": "pat_[0-9a-f]{40}", "label": "Internal PAT" }
153
- ]
154
- }
155
- }
156
- }
157
- ```
158
-
159
- ---
160
-
161
- ### `sanitize-connection-strings`
162
-
163
- **事件:** PostToolUse(所有工具)
164
- **默认行为:** 脱敏包含嵌入式凭据的数据库连接字符串(例如 `postgresql://user:password@host/db`)。
165
-
166
- 无参数。
167
-
168
- ---
169
-
170
- ### `sanitize-private-key-content`
171
-
172
- **事件:** PostToolUse(所有工具)
173
- **默认行为:** 脱敏 PEM 块(`-----BEGIN PRIVATE KEY-----`、`-----BEGIN RSA PRIVATE KEY-----` 等)。
174
-
175
- 无参数。
176
-
177
- ---
178
-
179
- ### `sanitize-bearer-tokens`
180
-
181
- **事件:** PostToolUse(所有工具)
182
- **默认行为:** 脱敏 `Authorization: Bearer <token>` 请求头中长度不少于 20 个字符的令牌。
183
-
184
- 无参数。
185
-
186
- ---
187
-
188
- ## 环境 {#environment}
189
-
190
- 防止 Agent 读取或暴露敏感的环境配置。
191
-
192
- ### `block-env-files`
193
-
194
- **事件:** PreToolUse (Bash, Read)
195
- **默认行为:** 拒绝通过 `cat .env`、以 `.env` 为文件路径的 `Read` 工具调用等方式读取 `.env` 文件。
196
-
197
- 不会阻止 `.envrc` 或其他与环境相关的文件,仅阻止名称恰好为 `.env` 的文件。
198
-
199
- 无参数。
200
-
201
- ---
202
-
203
- ### `protect-env-vars`
204
-
205
- **事件:** PreToolUse (Bash)
206
- **默认行为:** 拒绝打印环境变量的命令:`printenv`、`env`、`echo $VAR`。
207
-
208
- 无参数。
209
-
210
- ---
211
-
212
- ## 文件访问 {#file-access}
213
-
214
- 让 Agent 保持在项目边界内工作,远离敏感文件。
215
-
216
- ### `block-read-outside-cwd`
217
-
218
- **事件:** PreToolUse (Read, Bash)
219
- **默认行为:** 拒绝读取当前工作目录(项目根目录)之外的文件。
220
-
221
- **参数:**
222
-
223
- | 参数 | 类型 | 默认值 | 描述 |
224
- |-------|------|---------|-------------|
225
- | `allowPaths` | `string[]` | `[]` | 即使在当前工作目录之外也允许访问的绝对路径前缀。 |
226
-
227
- **示例:**
228
-
229
- ```json
230
- {
231
- "policyParams": {
232
- "block-read-outside-cwd": {
233
- "allowPaths": ["/shared/data", "/opt/company/config"]
234
- }
235
- }
236
- }
237
- ```
238
-
239
- ---
240
-
241
- ### `block-secrets-write`
242
-
243
- **事件:** PreToolUse (Write, Edit)
244
- **默认行为:** 拒绝写入常用于私钥和证书的文件:`id_rsa`、`id_ed25519`、`*.key`、`*.pem`、`*.p12`、`*.pfx`。
245
-
246
- **参数:**
247
-
248
- | 参数 | 类型 | 默认值 | 描述 |
249
- |-------|------|---------|-------------|
250
- | `additionalPatterns` | `string[]` | `[]` | 需要阻止的额外文件名模式(glob 风格)。 |
251
-
252
- **示例:**
253
-
254
- ```json
255
- {
256
- "policyParams": {
257
- "block-secrets-write": {
258
- "additionalPatterns": [".token", ".secret"]
259
- }
260
- }
261
- }
262
- ```
263
-
264
- ---
265
-
266
- ## Git {#git}
267
-
268
- 防止意外推送、强制推送以及难以撤销的分支误操作。
269
-
270
- ### `block-push-master`
271
-
272
- **事件:** PreToolUse (Bash)
273
- **默认行为:** 拒绝 `git push origin main` 和 `git push origin master`。
274
-
275
- **参数:**
276
-
277
- | 参数 | 类型 | 默认值 | 描述 |
278
- |-------|------|---------|-------------|
279
- | `protectedBranches` | `string[]` | `["main", "master"]` | 不允许直接推送的分支名称。 |
280
-
281
- **示例:**
282
-
283
- ```json
284
- {
285
- "policyParams": {
286
- "block-push-master": {
287
- "protectedBranches": ["main", "master", "release", "prod"]
288
- }
289
- }
290
- }
291
- ```
292
-
293
- <Tip>
294
- 若要允许推送到所有分支(即在不从 `enabledPolicies` 中移除该策略的情况下将其禁用),请将 `protectedBranches` 设置为 `[]`。
295
- </Tip>
296
-
297
- ---
298
-
299
- ### `block-work-on-main`
300
-
301
- **事件:** PreToolUse (Bash)
302
- **默认行为:** 拒绝直接切换到 `main` 或 `master` 分支。
303
-
304
- **参数:**
305
-
306
- | 参数 | 类型 | 默认值 | 描述 |
307
- |-------|------|---------|-------------|
308
- | `protectedBranches` | `string[]` | `["main", "master"]` | 不允许直接切换的分支名称。 |
309
-
310
- ---
311
-
312
- ### `block-force-push`
313
-
314
- **事件:** PreToolUse (Bash)
315
- **默认行为:** 拒绝 `git push --force` 和 `git push -f`。
316
-
317
- 无策略专属参数。使用通用 [`hint`](/zh/configuration#hint-cross-cutting) 来建议替代方案:
318
-
319
- ```json
320
- {
321
- "policyParams": {
322
- "block-force-push": {
323
- "hint": "Create a new branch from your current HEAD (e.g. `git checkout -b <new-branch>`) and push that instead."
324
- }
325
- }
326
- }
327
- ```
328
-
329
- ---
330
-
331
- ### `warn-git-amend`
332
-
333
- **事件:** PreToolUse (Bash)
334
- **默认行为:** 当运行 `git commit --amend` 时,指示 Claude 谨慎操作。不会阻止该命令执行。
335
-
336
- 无参数。
337
-
338
- ---
339
-
340
- ### `warn-git-stash-drop`
341
-
342
- **事件:** PreToolUse (Bash)
343
- **默认行为:** 在运行 `git stash drop` 之前,指示 Claude 进行确认。不会阻止该命令执行。
344
-
345
- 无参数。
346
-
347
- ---
348
-
349
- ### `warn-all-files-staged`
350
-
351
- **事件:** PreToolUse (Bash)
352
- **默认行为:** 当运行 `git add -A` 或 `git add .` 时,指示 Claude 审查所暂存的内容。不会阻止该命令执行。
353
-
354
- 无参数。
355
-
356
- ---
357
-
358
- ## 数据库 {#database}
359
-
360
- 在破坏性 SQL 操作执行之前将其拦截。
361
-
362
- ### `warn-destructive-sql`
363
-
364
- **事件:** PreToolUse (Bash)
365
- **默认行为:** 在运行包含 `DROP TABLE`、`DROP DATABASE` 或不带 `WHERE` 子句的 `DELETE` 的 SQL 之前,指示 Claude 进行确认。
366
-
367
- 无参数。
368
-
369
- ---
370
-
371
- ### `warn-schema-alteration`
372
-
373
- **事件:** PreToolUse (Bash)
374
- **默认行为:** 在运行 `ALTER TABLE` 语句之前,指示 Claude 进行确认。
375
-
376
- 无参数。
377
-
378
- ---
379
-
380
- ## 警告 {#warnings}
381
-
382
- 在执行可能存在风险但非破坏性的操作之前,为 Agent 提供额外上下文。
383
-
384
- ### `warn-large-file-write`
385
-
386
- **事件:** PreToolUse (Write)
387
- **默认行为:** 在写入大于 1024 KB 的文件之前,指示 Claude 进行确认。
388
-
389
- **参数:**
390
-
391
- | 参数 | 类型 | 默认值 | 描述 |
392
- |-------|------|---------|-------------|
393
- | `thresholdKb` | `number` | `1024` | 触发警告的文件大小阈值(单位:KB)。 |
394
-
395
- **示例:**
396
-
397
- ```json
398
- {
399
- "policyParams": {
400
- "warn-large-file-write": {
401
- "thresholdKb": 256
402
- }
403
- }
404
- }
405
- ```
406
-
407
- <Note>
408
- 钩子处理器对 stdin 的有效负载强制限制为 1 MB。若要使用较小内容测试此策略,请将 `thresholdKb` 设置为远低于 1024 的值。
409
- </Note>
410
-
411
- ---
412
-
413
- ### `warn-package-publish`
414
-
415
- **事件:** PreToolUse (Bash)
416
- **默认行为:** 在运行 `npm publish` 之前,指示 Claude 进行确认。
417
-
418
- 无参数。
419
-
420
- ---
421
-
422
- ### `warn-background-process`
423
-
424
- **事件:** PreToolUse (Bash)
425
- **默认行为:** 当通过 `nohup`、`&`、`disown` 或 `screen` 启动后台进程时,指示 Claude 保持谨慎。
426
-
427
- 无参数。
428
-
429
- ---
430
-
431
- ### `warn-global-package-install`
432
-
433
- **事件:** PreToolUse (Bash)
434
- **默认行为:** 在运行 `npm install -g`、`yarn global add` 或不在虚拟环境中执行 `pip install` 之前,指示 Claude 进行确认。
435
-
436
- 无参数。
437
-
438
- ---
439
-
440
- ## 包管理器 {#package-managers}
441
-
442
- 强制规定 Agent 可以使用的包管理器。
443
-
444
- ### `prefer-package-manager`
445
-
446
- **事件:** PreToolUse (Bash)
447
- **默认行为:** 默认禁用。启用后,会阻止所有不在 `allowed` 列表中的包管理器命令,并告知 Claude 使用允许的包管理器重写该命令。
448
-
449
- 可检测的包管理器:pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo。
450
-
451
- | 参数 | 类型 | 默认值 | 描述 |
452
- |-----------|------|---------|-------------|
453
- | `allowed` | string[] | `[]` | 允许使用的包管理器名称。检测到的管理器若不在此列表中则会被阻止。为空时,该策略不生效。 |
454
- | `blocked` | string[] | `[]` | 在内置列表之外额外需要阻止的管理器名称(例如 `['pdm', 'pipx']`)。 |
455
-
456
- 内置阻止列表涵盖:pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo。使用 `blocked` 追加不在此列表中的管理器。
457
-
458
- **配置示例:**
459
-
460
- ```json
461
- {
462
- "enabledPolicies": ["prefer-package-manager"],
463
- "policyParams": {
464
- "prefer-package-manager": {
465
- "allowed": ["uv", "bun"],
466
- "blocked": ["pdm", "pipx"]
467
- }
468
- }
469
- }
470
- ```
471
-
472
- 使用此配置,`pip install flask` 和 `pdm install flask` 都会被拒绝,并告知 Claude 改用 `uv` 或 `bun`。`uv pip install flask` 等命令会被允许,因为 `uv` 在允许列表中且优先被检查。
473
-
474
- ---
475
-
476
- ## AI 行为
477
-
478
- 检测 Agent 卡住或行为异常的情况。
479
-
480
- ### `warn-repeated-tool-calls`
481
-
482
- **事件:** PreToolUse(所有工具)
483
- **默认行为:** 当同一工具以完全相同的参数被调用 3 次及以上时,指示 Claude 重新考虑——这通常是 Agent 陷入循环的常见信号。
484
-
485
- 无参数。
486
-
487
- ---
488
-
489
- ## 工作流 {#workflow}
490
-
491
- 强制执行规范的会话结束工作流。这些策略在 **Stop** 事件上触发,在每个条件满足之前拒绝 Claude 停止。它们遵循自然的依赖链:提交 → 推送 → PR → CI。如果某条策略返回 deny,则链中后续策略会被跳过(deny 短路)。
492
-
493
- 所有工作流策略都是**失败开放**的:如果所需工具不可用(例如未安装 `gh`、没有 git 远程仓库),策略会放行并附带一条说明性消息,解释为何跳过该检查。
494
-
495
- ### `require-commit-before-stop`
496
-
497
- **事件:** Stop
498
- **默认行为:** 当存在未提交的更改(已修改、已暂存或未追踪的文件)时,拒绝停止。工作目录干净时返回说明性消息。
499
-
500
- 无参数。
501
-
502
- ---
503
-
504
- ### `require-push-before-stop`
505
-
506
- **事件:** Stop
507
- **默认行为:** 当存在未推送的提交,或当前分支没有远程追踪分支时,拒绝停止。如需创建追踪分支,建议使用 `git push -u`。若未配置远程仓库,则失败开放。
508
-
509
- **参数:**
510
-
511
- | 参数 | 类型 | 默认值 | 描述 |
512
- |-------|------|---------|-------------|
513
- | `remote` | `string` | `"origin"` | 推送目标的远程仓库名称。 |
514
-
515
- **示例:**
516
-
517
- ```json
518
- {
519
- "policyParams": {
520
- "require-push-before-stop": {
521
- "remote": "upstream"
522
- }
523
- }
524
- }
525
- ```
526
-
527
- ---
528
-
529
- ### `require-pr-before-stop`
530
-
531
- **事件:** Stop
532
- **默认行为:** 当当前分支不存在 Pull Request,或现有 PR 已关闭/已合并时,拒绝停止。指示 Claude 使用 `gh pr create` 创建 PR。
533
-
534
- 无参数。
535
-
536
- <Note>
537
- 此策略需要安装并完成身份验证的 [GitHub CLI](https://cli.github.com/)(`gh`)。
538
- 运行 `gh auth login` 时,请使用具有 `repo` 权限(用于读取 Pull Request)的个人访问令牌。若 `gh` 未安装或未通过身份验证,该策略会失败开放并向 Claude 报告原因。
539
- </Note>
540
-
541
- ---
542
-
543
- ### `require-ci-green-before-stop`
544
-
545
- **事件:** Stop
546
- **默认行为:** 当当前分支的 CI 检查失败或仍在运行时,拒绝停止。同时检查 GitHub Actions 工作流运行和第三方机器人检查(例如 CodeRabbit、SonarCloud、Codecov)。将 `skipped` 结论视为成功。所有检查通过时返回说明性消息。
547
-
548
- 无参数。
549
-
550
- <Note>
551
- 此策略需要安装并完成身份验证的 [GitHub CLI](https://cli.github.com/)(`gh`)。
552
- 运行 `gh auth login` 时,请使用具有 `repo` 权限(用于读取 Actions 工作流运行和 Checks API)的个人访问令牌。若 `gh` 未安装或未通过身份验证,该策略会失败开放并向 Claude 报告原因。
553
- </Note>
554
-
555
- ---
556
-
557
- ---
558
-
559
- ## 禁用单条策略
560
-
561
- 从配置文件的 `enabledPolicies` 中移除特定策略,或在控制台的"策略"标签页中将其关闭。
562
-
563
- ```json
564
- {
565
- "enabledPolicies": [
566
- "block-rm-rf",
567
- "sanitize-api-keys"
568
- ]
569
- }
570
- ```
571
-
572
- 未列在 `enabledPolicies` 中的策略不会运行,即使在 `policyParams` 中存在对应的条目也不例外。
@@ -1,28 +0,0 @@
1
- ---
2
- title: 查看会话
3
- description: "启动仪表板以浏览 Agent 会话并管理策略"
4
- ---
5
-
6
- ```bash
7
- failproofai
8
- ```
9
-
10
- 在 `http://localhost:8020` 启动 Web 仪表板。
11
-
12
- ## 选项
13
-
14
- | 标志 | 描述 |
15
- |------|------|
16
- | `--port <number>` | 监听端口(默认:`8020`) |
17
- | `--projects-path <path>` | 覆盖 Claude Code 项目文件夹的查找路径 |
18
- | `--allowed-origins <origins>` | 允许访问开发资源的主机/IP,以逗号分隔 |
19
-
20
- ## 示例
21
-
22
- ```bash
23
- # 在其他端口启动
24
- failproofai --port 9000
25
-
26
- # 使用自定义项目路径
27
- failproofai --projects-path ~/my-claude-projects
28
- ```
@@ -1,34 +0,0 @@
1
- ---
2
- title: 环境变量
3
- description: "通过环境变量配置 failproofai 的行为"
4
- ---
5
-
6
- ## 控制台
7
-
8
- | 变量 | 描述 |
9
- |----------|-------------|
10
- | `PORT` | 控制台端口(默认:`8020`) |
11
- | `CLAUDE_PROJECTS_PATH` | 覆盖 Claude Code 项目文件夹的查找路径 |
12
- | `FAILPROOFAI_DISABLE_PAGES=policies,projects` | 以逗号分隔的控制台页面列表,用于隐藏指定页面 |
13
- | `FAILPROOFAI_ALLOWED_DEV_ORIGINS` | 允许访问开发资源的主机/IP,与 `--allowed-origins` 相同 |
14
-
15
- ## 日志
16
-
17
- | 变量 | 描述 |
18
- |----------|-------------|
19
- | `FAILPROOFAI_LOG_LEVEL=info\|warn\|error` | 服务器日志级别(默认:`warn`) |
20
- | `FAILPROOFAI_HOOK_LOG_FILE` | 自定义 Hook 日志文件路径,或设为 `true` 使用默认路径(`~/.failproofai/logs/hooks.log`) |
21
-
22
- ## 遥测
23
-
24
- | 变量 | 描述 |
25
- |----------|-------------|
26
- | `FAILPROOFAI_TELEMETRY_DISABLED=1` | 禁用匿名使用遥测 |
27
-
28
- ## LLM(用于策略评估)
29
-
30
- | 变量 | 描述 |
31
- |----------|-------------|
32
- | `FAILPROOFAI_LLM_BASE_URL` | LLM API 端点(默认:`https://api.openai.com/v1`) |
33
- | `FAILPROOFAI_LLM_API_KEY` | LLM 驱动策略所需的 API 密钥 |
34
- | `FAILPROOFAI_LLM_MODEL` | 模型名称(默认:`gpt-4o-mini`) |
@@ -1,30 +0,0 @@
1
- ---
2
- title: Hook 处理程序(内部)
3
- description: "Claude Code 在每次工具事件时调用的子进程"
4
- ---
5
-
6
- ```bash
7
- failproofai --hook <EventType>
8
- ```
9
-
10
- 这是由 `failproofai policies --install` 注册到 Claude Code 的 `settings.json` 中的命令。通常情况下,你不需要直接调用它。
11
-
12
- 该命令从 stdin 读取 JSON 载荷,评估所有已启用的策略,并以退出码的形式返回决策结果:
13
-
14
- | 退出码 | 决策 | 效果 |
15
- |--------|------|------|
16
- | `0` | `allow` | 允许该操作 |
17
- | `1` | `deny` | 阻止该操作——Claude 将看到拒绝原因 |
18
- | `2` | `instruct` | 向 Claude 的上下文中注入指导信息 |
19
-
20
- ### 支持的事件类型
21
-
22
- | 分类 | 事件 |
23
- |------|------|
24
- | **工具执行** | `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` |
25
- | **会话生命周期** | `SessionStart`、`SessionEnd`、`Stop`、`StopFailure` |
26
- | **用户交互** | `UserPromptSubmit`、`Notification`、`Elicitation`、`ElicitationResult` |
27
- | **子智能体与任务** | `SubagentStart`、`SubagentStop`、`TaskCreated`、`TaskCompleted`、`TeammateIdle` |
28
- | **配置** | `InstructionsLoaded`、`ConfigChange`、`CwdChanged` |
29
- | **文件系统** | `FileChanged`、`WorktreeCreate`、`WorktreeRemove` |
30
- | **上下文** | `PreCompact`、`PostCompact` |
@@ -1,47 +0,0 @@
1
- ---
2
- title: 安装策略
3
- description: "启用策略,使其在每次代理工具调用时运行"
4
- ---
5
-
6
- ```bash
7
- failproofai policies --install [policy-names...] [options]
8
- ```
9
-
10
- 将钩子条目写入 Claude Code 的 `settings.json`,使 failproofai 能够拦截工具调用。
11
-
12
- 别名:`failproofai p -i`
13
-
14
- ## 选项
15
-
16
- | 标志 | 描述 |
17
- |------|------|
18
- | `--scope user` | 安装到 `~/.claude/settings.json`(默认 - 适用于所有会话) |
19
- | `--scope project` | 安装到当前目录的 `.claude/settings.json` |
20
- | `--scope local` | 安装到当前目录的 `.claude/settings.local.json` |
21
- | `--custom <path>` / `-c` | 包含自定义钩子策略的 JS 文件路径 |
22
-
23
- ## 行为
24
-
25
- - **不指定策略名称** - 打开交互式提示以选择策略
26
- - **指定具体名称** - 启用对应策略(追加到已启用的策略之上)
27
- - **`all`** - 启用所有可用策略
28
-
29
- 安装操作为追加模式:再次运行 `--install` 只会添加新策略,不会移除已有策略。
30
-
31
- ## 示例
32
-
33
- ```bash
34
- # 全局安装所有默认策略(交互式)
35
- failproofai policies --install
36
-
37
- # 为当前项目安装指定策略
38
- failproofai policies --install block-sudo sanitize-api-keys --scope project
39
-
40
- # 一次性启用所有策略
41
- failproofai policies --install all
42
-
43
- # 使用自定义策略文件进行安装
44
- failproofai policies --install --custom ./my-policies.js
45
- ```
46
-
47
- 提供 `--custom <path>` 时,文件将立即被验证 - 它必须至少调用一次 `customPolicies.add()`。解析后的路径将以 `customPoliciesPath` 的形式保存到 `policies-config.json` 中。