failproofai 0.0.2 → 0.0.3

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 (483) hide show
  1. package/.next/standalone/.claude/settings.json +316 -0
  2. package/.next/standalone/.failproofai/policies/workflow-policies.mjs +62 -0
  3. package/.next/standalone/.failproofai/policies-config.json +39 -0
  4. package/.next/standalone/.next/BUILD_ID +1 -1
  5. package/.next/standalone/.next/build-manifest.json +5 -5
  6. package/.next/standalone/.next/prerender-manifest.json +3 -3
  7. package/.next/standalone/.next/required-server-files.json +3 -1
  8. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  9. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  10. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  14. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  15. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  16. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  17. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  18. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  20. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  21. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  22. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  24. package/.next/standalone/.next/server/app/_not-found.rsc +17 -17
  25. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +17 -17
  26. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  27. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  28. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  29. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  30. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  31. package/.next/standalone/.next/server/app/index.html +1 -1
  32. package/.next/standalone/.next/server/app/index.rsc +16 -16
  33. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  34. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +16 -16
  35. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  36. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +11 -11
  37. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  38. package/.next/standalone/.next/server/app/page/build-manifest.json +2 -2
  39. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  40. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +2 -2
  43. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  44. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  45. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +2 -2
  47. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  48. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +2 -2
  51. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  52. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  53. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  54. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
  56. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  57. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  58. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +3 -0
  60. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kjo7d_._.js +1 -1
  61. package/.next/standalone/.next/server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_05pz9._._.js +1 -1
  62. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  63. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__12kr5~_._.js → [root-of-the-server]__03kiqd5._.js} +2 -2
  64. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  65. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  66. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0qo8503._.js → [root-of-the-server]__0bo8s~-._.js} +2 -2
  67. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  68. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  69. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  70. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +9 -9
  71. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  72. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  73. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  74. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  75. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  76. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a_7sdg.js +2 -2
  77. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ef3uwk.js +2 -2
  78. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j79~gv.js +2 -2
  79. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pbja1x.js +2 -2
  80. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0r6o0i2.js +2 -2
  81. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11y81~_.js +2 -2
  82. package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12or2kf.js +2 -2
  83. package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0mebn66._.js +1 -1
  84. package/.next/standalone/.next/server/middleware-build-manifest.js +5 -5
  85. package/.next/standalone/.next/server/pages/404.html +2 -2
  86. package/.next/standalone/.next/server/pages/500.html +1 -1
  87. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  89. package/.next/standalone/.next/static/chunks/{0x-625~1vx1lu.js → 02t9.s735hqyq.js} +1 -1
  90. package/.next/standalone/.next/static/chunks/{0ov60i6md~37t.js → 03oepxbqx6o8~.js} +2 -2
  91. package/.next/standalone/.next/static/chunks/{031pa5~qfzt~_.js → 09e7drilkf1sn.js} +1 -1
  92. package/.next/standalone/.next/static/chunks/{0y~0creqvl5wx.js → 0cwft44dh9bww.js} +1 -1
  93. package/.next/standalone/.next/static/chunks/{06og.7e9nkpjh.js → 0e2uz2g026ckb.js} +1 -1
  94. package/.next/standalone/.next/static/chunks/0gu_a.a80ritd.css +1 -0
  95. package/.next/standalone/.next/static/chunks/{15wf7x-e.8ia3.js → 0h5kbvg~.xf.v.js} +1 -1
  96. package/.next/standalone/.next/static/chunks/{0_4y_t03jn2nq.js → 0od..umlku4bb.js} +1 -1
  97. package/.next/standalone/.next/static/chunks/{0cvffh-pbsv5u.js → 0xbwzy4dl87-0.js} +1 -1
  98. package/.next/standalone/.next/static/chunks/{0c_ljlxa._4lc.js → 18cl6wups7ouq.js} +2 -2
  99. package/.next/standalone/.next/static/chunks/{turbopack-0uc5y~g6h.n7-.js → turbopack-0r26pc8h0y_-e.js} +1 -1
  100. package/.next/standalone/CHANGELOG.md +103 -0
  101. package/.next/standalone/CLAUDE.md +28 -0
  102. package/.next/standalone/Dockerfile.docs +12 -0
  103. package/.next/standalone/README.md +95 -49
  104. package/.next/standalone/app/components/session-hooks-panel.tsx +14 -1
  105. package/.next/standalone/app/policies/hooks-client.tsx +14 -1
  106. package/.next/standalone/bin/failproofai.mjs +5 -0
  107. package/.next/standalone/bun.lock +76 -63
  108. package/.next/standalone/components/navbar.tsx +5 -0
  109. package/.next/standalone/dist/cli.mjs +539 -90
  110. package/.next/standalone/dist/index.js +2 -2
  111. package/.next/standalone/docs/ar/architecture.mdx +333 -0
  112. package/.next/standalone/docs/ar/built-in-policies.mdx +566 -0
  113. package/.next/standalone/docs/ar/cli/dashboard.mdx +28 -0
  114. package/.next/standalone/docs/ar/cli/environment-variables.mdx +34 -0
  115. package/.next/standalone/docs/ar/cli/hook.mdx +31 -0
  116. package/.next/standalone/docs/ar/cli/install-policies.mdx +49 -0
  117. package/.next/standalone/docs/ar/cli/list-policies.mdx +31 -0
  118. package/.next/standalone/docs/ar/cli/remove-policies.mdx +45 -0
  119. package/.next/standalone/docs/ar/cli/version.mdx +13 -0
  120. package/.next/standalone/docs/ar/configuration.mdx +223 -0
  121. package/.next/standalone/docs/ar/custom-policies.mdx +359 -0
  122. package/.next/standalone/docs/ar/dashboard.mdx +142 -0
  123. package/.next/standalone/docs/ar/examples.mdx +254 -0
  124. package/.next/standalone/docs/ar/for-agents.mdx +39 -0
  125. package/.next/standalone/docs/ar/getting-started.mdx +134 -0
  126. package/.next/standalone/docs/ar/introduction.mdx +58 -0
  127. package/.next/standalone/docs/ar/package-aliases.mdx +82 -0
  128. package/.next/standalone/docs/ar/testing.mdx +261 -0
  129. package/.next/standalone/docs/{architecture.md → architecture.mdx} +40 -23
  130. package/.next/standalone/docs/{built-in-policies.md → built-in-policies.mdx} +151 -13
  131. package/.next/standalone/docs/cli/dashboard.mdx +28 -0
  132. package/.next/standalone/docs/cli/environment-variables.mdx +34 -0
  133. package/.next/standalone/docs/cli/hook.mdx +30 -0
  134. package/.next/standalone/docs/cli/install-policies.mdx +48 -0
  135. package/.next/standalone/docs/cli/list-policies.mdx +31 -0
  136. package/.next/standalone/docs/cli/remove-policies.mdx +44 -0
  137. package/.next/standalone/docs/cli/version.mdx +12 -0
  138. package/.next/standalone/docs/{configuration.md → configuration.mdx} +62 -16
  139. package/.next/standalone/docs/custom-policies.mdx +357 -0
  140. package/.next/standalone/docs/{dashboard.md → dashboard.mdx} +26 -29
  141. package/.next/standalone/docs/de/architecture.mdx +332 -0
  142. package/.next/standalone/docs/de/built-in-policies.mdx +564 -0
  143. package/.next/standalone/docs/de/cli/dashboard.mdx +28 -0
  144. package/.next/standalone/docs/de/cli/environment-variables.mdx +34 -0
  145. package/.next/standalone/docs/de/cli/hook.mdx +30 -0
  146. package/.next/standalone/docs/de/cli/install-policies.mdx +48 -0
  147. package/.next/standalone/docs/de/cli/list-policies.mdx +31 -0
  148. package/.next/standalone/docs/de/cli/remove-policies.mdx +44 -0
  149. package/.next/standalone/docs/de/cli/version.mdx +12 -0
  150. package/.next/standalone/docs/de/configuration.mdx +222 -0
  151. package/.next/standalone/docs/de/custom-policies.mdx +357 -0
  152. package/.next/standalone/docs/de/dashboard.mdx +142 -0
  153. package/.next/standalone/docs/de/examples.mdx +253 -0
  154. package/.next/standalone/docs/de/for-agents.mdx +38 -0
  155. package/.next/standalone/docs/de/getting-started.mdx +134 -0
  156. package/.next/standalone/docs/de/introduction.mdx +57 -0
  157. package/.next/standalone/docs/de/package-aliases.mdx +82 -0
  158. package/.next/standalone/docs/de/testing.mdx +260 -0
  159. package/.next/standalone/docs/docs.json +938 -24
  160. package/.next/standalone/docs/es/architecture.mdx +332 -0
  161. package/.next/standalone/docs/es/built-in-policies.mdx +564 -0
  162. package/.next/standalone/docs/es/cli/dashboard.mdx +28 -0
  163. package/.next/standalone/docs/es/cli/environment-variables.mdx +34 -0
  164. package/.next/standalone/docs/es/cli/hook.mdx +30 -0
  165. package/.next/standalone/docs/es/cli/install-policies.mdx +48 -0
  166. package/.next/standalone/docs/es/cli/list-policies.mdx +31 -0
  167. package/.next/standalone/docs/es/cli/remove-policies.mdx +44 -0
  168. package/.next/standalone/docs/es/cli/version.mdx +12 -0
  169. package/.next/standalone/docs/es/configuration.mdx +222 -0
  170. package/.next/standalone/docs/es/custom-policies.mdx +357 -0
  171. package/.next/standalone/docs/es/dashboard.mdx +142 -0
  172. package/.next/standalone/docs/es/examples.mdx +253 -0
  173. package/.next/standalone/docs/es/for-agents.mdx +38 -0
  174. package/.next/standalone/docs/es/getting-started.mdx +134 -0
  175. package/.next/standalone/docs/es/introduction.mdx +57 -0
  176. package/.next/standalone/docs/es/package-aliases.mdx +82 -0
  177. package/.next/standalone/docs/es/testing.mdx +260 -0
  178. package/.next/standalone/docs/examples.mdx +253 -0
  179. package/.next/standalone/docs/for-agents.mdx +38 -0
  180. package/.next/standalone/docs/fr/architecture.mdx +332 -0
  181. package/.next/standalone/docs/fr/built-in-policies.mdx +564 -0
  182. package/.next/standalone/docs/fr/cli/dashboard.mdx +28 -0
  183. package/.next/standalone/docs/fr/cli/environment-variables.mdx +34 -0
  184. package/.next/standalone/docs/fr/cli/hook.mdx +30 -0
  185. package/.next/standalone/docs/fr/cli/install-policies.mdx +48 -0
  186. package/.next/standalone/docs/fr/cli/list-policies.mdx +31 -0
  187. package/.next/standalone/docs/fr/cli/remove-policies.mdx +44 -0
  188. package/.next/standalone/docs/fr/cli/version.mdx +12 -0
  189. package/.next/standalone/docs/fr/configuration.mdx +222 -0
  190. package/.next/standalone/docs/fr/custom-policies.mdx +357 -0
  191. package/.next/standalone/docs/fr/dashboard.mdx +142 -0
  192. package/.next/standalone/docs/fr/examples.mdx +253 -0
  193. package/.next/standalone/docs/fr/for-agents.mdx +38 -0
  194. package/.next/standalone/docs/fr/getting-started.mdx +134 -0
  195. package/.next/standalone/docs/fr/introduction.mdx +57 -0
  196. package/.next/standalone/docs/fr/package-aliases.mdx +82 -0
  197. package/.next/standalone/docs/fr/testing.mdx +260 -0
  198. package/.next/standalone/docs/getting-started.mdx +134 -0
  199. package/.next/standalone/docs/he/architecture.mdx +333 -0
  200. package/.next/standalone/docs/he/built-in-policies.mdx +564 -0
  201. package/.next/standalone/docs/he/cli/dashboard.mdx +28 -0
  202. package/.next/standalone/docs/he/cli/environment-variables.mdx +34 -0
  203. package/.next/standalone/docs/he/cli/hook.mdx +30 -0
  204. package/.next/standalone/docs/he/cli/install-policies.mdx +48 -0
  205. package/.next/standalone/docs/he/cli/list-policies.mdx +32 -0
  206. package/.next/standalone/docs/he/cli/remove-policies.mdx +44 -0
  207. package/.next/standalone/docs/he/cli/version.mdx +12 -0
  208. package/.next/standalone/docs/he/configuration.mdx +222 -0
  209. package/.next/standalone/docs/he/custom-policies.mdx +357 -0
  210. package/.next/standalone/docs/he/dashboard.mdx +142 -0
  211. package/.next/standalone/docs/he/examples.mdx +253 -0
  212. package/.next/standalone/docs/he/for-agents.mdx +38 -0
  213. package/.next/standalone/docs/he/getting-started.mdx +135 -0
  214. package/.next/standalone/docs/he/introduction.mdx +57 -0
  215. package/.next/standalone/docs/he/package-aliases.mdx +82 -0
  216. package/.next/standalone/docs/he/testing.mdx +260 -0
  217. package/.next/standalone/docs/hi/architecture.mdx +334 -0
  218. package/.next/standalone/docs/hi/built-in-policies.mdx +564 -0
  219. package/.next/standalone/docs/hi/cli/dashboard.mdx +28 -0
  220. package/.next/standalone/docs/hi/cli/environment-variables.mdx +34 -0
  221. package/.next/standalone/docs/hi/cli/hook.mdx +30 -0
  222. package/.next/standalone/docs/hi/cli/install-policies.mdx +48 -0
  223. package/.next/standalone/docs/hi/cli/list-policies.mdx +31 -0
  224. package/.next/standalone/docs/hi/cli/remove-policies.mdx +44 -0
  225. package/.next/standalone/docs/hi/cli/version.mdx +12 -0
  226. package/.next/standalone/docs/hi/configuration.mdx +222 -0
  227. package/.next/standalone/docs/hi/custom-policies.mdx +357 -0
  228. package/.next/standalone/docs/hi/dashboard.mdx +142 -0
  229. package/.next/standalone/docs/hi/examples.mdx +255 -0
  230. package/.next/standalone/docs/hi/for-agents.mdx +38 -0
  231. package/.next/standalone/docs/hi/getting-started.mdx +134 -0
  232. package/.next/standalone/docs/hi/introduction.mdx +57 -0
  233. package/.next/standalone/docs/hi/package-aliases.mdx +82 -0
  234. package/.next/standalone/docs/hi/testing.mdx +260 -0
  235. package/.next/standalone/docs/i18n/README.ar.md +312 -0
  236. package/.next/standalone/docs/i18n/README.de.md +307 -0
  237. package/.next/standalone/docs/i18n/README.es.md +307 -0
  238. package/.next/standalone/docs/i18n/README.fr.md +307 -0
  239. package/.next/standalone/docs/i18n/README.he.md +312 -0
  240. package/.next/standalone/docs/i18n/README.hi.md +307 -0
  241. package/.next/standalone/docs/i18n/README.it.md +307 -0
  242. package/.next/standalone/docs/i18n/README.ja.md +307 -0
  243. package/.next/standalone/docs/i18n/README.ko.md +307 -0
  244. package/.next/standalone/docs/i18n/README.pt-br.md +307 -0
  245. package/.next/standalone/docs/i18n/README.ru.md +308 -0
  246. package/.next/standalone/docs/i18n/README.tr.md +308 -0
  247. package/.next/standalone/docs/i18n/README.vi.md +308 -0
  248. package/.next/standalone/docs/i18n/README.zh.md +307 -0
  249. package/.next/standalone/docs/introduction.mdx +57 -0
  250. package/.next/standalone/docs/it/architecture.mdx +333 -0
  251. package/.next/standalone/docs/it/built-in-policies.mdx +564 -0
  252. package/.next/standalone/docs/it/cli/dashboard.mdx +28 -0
  253. package/.next/standalone/docs/it/cli/environment-variables.mdx +34 -0
  254. package/.next/standalone/docs/it/cli/hook.mdx +30 -0
  255. package/.next/standalone/docs/it/cli/install-policies.mdx +48 -0
  256. package/.next/standalone/docs/it/cli/list-policies.mdx +31 -0
  257. package/.next/standalone/docs/it/cli/remove-policies.mdx +44 -0
  258. package/.next/standalone/docs/it/cli/version.mdx +12 -0
  259. package/.next/standalone/docs/it/configuration.mdx +223 -0
  260. package/.next/standalone/docs/it/custom-policies.mdx +358 -0
  261. package/.next/standalone/docs/it/dashboard.mdx +142 -0
  262. package/.next/standalone/docs/it/examples.mdx +253 -0
  263. package/.next/standalone/docs/it/for-agents.mdx +38 -0
  264. package/.next/standalone/docs/it/getting-started.mdx +134 -0
  265. package/.next/standalone/docs/it/introduction.mdx +57 -0
  266. package/.next/standalone/docs/it/package-aliases.mdx +82 -0
  267. package/.next/standalone/docs/it/testing.mdx +260 -0
  268. package/.next/standalone/docs/ja/architecture.mdx +332 -0
  269. package/.next/standalone/docs/ja/built-in-policies.mdx +562 -0
  270. package/.next/standalone/docs/ja/cli/dashboard.mdx +28 -0
  271. package/.next/standalone/docs/ja/cli/environment-variables.mdx +34 -0
  272. package/.next/standalone/docs/ja/cli/hook.mdx +30 -0
  273. package/.next/standalone/docs/ja/cli/install-policies.mdx +48 -0
  274. package/.next/standalone/docs/ja/cli/list-policies.mdx +31 -0
  275. package/.next/standalone/docs/ja/cli/remove-policies.mdx +44 -0
  276. package/.next/standalone/docs/ja/cli/version.mdx +12 -0
  277. package/.next/standalone/docs/ja/configuration.mdx +222 -0
  278. package/.next/standalone/docs/ja/custom-policies.mdx +357 -0
  279. package/.next/standalone/docs/ja/dashboard.mdx +142 -0
  280. package/.next/standalone/docs/ja/examples.mdx +253 -0
  281. package/.next/standalone/docs/ja/for-agents.mdx +38 -0
  282. package/.next/standalone/docs/ja/getting-started.mdx +134 -0
  283. package/.next/standalone/docs/ja/introduction.mdx +57 -0
  284. package/.next/standalone/docs/ja/package-aliases.mdx +82 -0
  285. package/.next/standalone/docs/ja/testing.mdx +260 -0
  286. package/.next/standalone/docs/ko/architecture.mdx +332 -0
  287. package/.next/standalone/docs/ko/built-in-policies.mdx +562 -0
  288. package/.next/standalone/docs/ko/cli/dashboard.mdx +28 -0
  289. package/.next/standalone/docs/ko/cli/environment-variables.mdx +34 -0
  290. package/.next/standalone/docs/ko/cli/hook.mdx +30 -0
  291. package/.next/standalone/docs/ko/cli/install-policies.mdx +48 -0
  292. package/.next/standalone/docs/ko/cli/list-policies.mdx +31 -0
  293. package/.next/standalone/docs/ko/cli/remove-policies.mdx +44 -0
  294. package/.next/standalone/docs/ko/cli/version.mdx +12 -0
  295. package/.next/standalone/docs/ko/configuration.mdx +222 -0
  296. package/.next/standalone/docs/ko/custom-policies.mdx +357 -0
  297. package/.next/standalone/docs/ko/dashboard.mdx +142 -0
  298. package/.next/standalone/docs/ko/examples.mdx +253 -0
  299. package/.next/standalone/docs/ko/for-agents.mdx +38 -0
  300. package/.next/standalone/docs/ko/getting-started.mdx +134 -0
  301. package/.next/standalone/docs/ko/introduction.mdx +57 -0
  302. package/.next/standalone/docs/ko/package-aliases.mdx +82 -0
  303. package/.next/standalone/docs/ko/testing.mdx +260 -0
  304. package/.next/standalone/docs/logo/dark.svg +21 -0
  305. package/.next/standalone/docs/logo/light.svg +21 -0
  306. package/.next/standalone/docs/{package-aliases.md → package-aliases.mdx} +5 -5
  307. package/.next/standalone/docs/pt-br/architecture.mdx +332 -0
  308. package/.next/standalone/docs/pt-br/built-in-policies.mdx +564 -0
  309. package/.next/standalone/docs/pt-br/cli/dashboard.mdx +28 -0
  310. package/.next/standalone/docs/pt-br/cli/environment-variables.mdx +34 -0
  311. package/.next/standalone/docs/pt-br/cli/hook.mdx +30 -0
  312. package/.next/standalone/docs/pt-br/cli/install-policies.mdx +48 -0
  313. package/.next/standalone/docs/pt-br/cli/list-policies.mdx +31 -0
  314. package/.next/standalone/docs/pt-br/cli/remove-policies.mdx +44 -0
  315. package/.next/standalone/docs/pt-br/cli/version.mdx +12 -0
  316. package/.next/standalone/docs/pt-br/configuration.mdx +222 -0
  317. package/.next/standalone/docs/pt-br/custom-policies.mdx +357 -0
  318. package/.next/standalone/docs/pt-br/dashboard.mdx +142 -0
  319. package/.next/standalone/docs/pt-br/examples.mdx +253 -0
  320. package/.next/standalone/docs/pt-br/for-agents.mdx +38 -0
  321. package/.next/standalone/docs/pt-br/getting-started.mdx +134 -0
  322. package/.next/standalone/docs/pt-br/introduction.mdx +57 -0
  323. package/.next/standalone/docs/pt-br/package-aliases.mdx +82 -0
  324. package/.next/standalone/docs/pt-br/testing.mdx +260 -0
  325. package/.next/standalone/docs/ru/architecture.mdx +334 -0
  326. package/.next/standalone/docs/ru/built-in-policies.mdx +562 -0
  327. package/.next/standalone/docs/ru/cli/dashboard.mdx +28 -0
  328. package/.next/standalone/docs/ru/cli/environment-variables.mdx +34 -0
  329. package/.next/standalone/docs/ru/cli/hook.mdx +30 -0
  330. package/.next/standalone/docs/ru/cli/install-policies.mdx +48 -0
  331. package/.next/standalone/docs/ru/cli/list-policies.mdx +32 -0
  332. package/.next/standalone/docs/ru/cli/remove-policies.mdx +44 -0
  333. package/.next/standalone/docs/ru/cli/version.mdx +12 -0
  334. package/.next/standalone/docs/ru/configuration.mdx +223 -0
  335. package/.next/standalone/docs/ru/custom-policies.mdx +357 -0
  336. package/.next/standalone/docs/ru/dashboard.mdx +142 -0
  337. package/.next/standalone/docs/ru/examples.mdx +254 -0
  338. package/.next/standalone/docs/ru/for-agents.mdx +38 -0
  339. package/.next/standalone/docs/ru/getting-started.mdx +134 -0
  340. package/.next/standalone/docs/ru/introduction.mdx +57 -0
  341. package/.next/standalone/docs/ru/package-aliases.mdx +82 -0
  342. package/.next/standalone/docs/ru/testing.mdx +260 -0
  343. package/.next/standalone/docs/{testing.md → testing.mdx} +11 -11
  344. package/.next/standalone/docs/tr/architecture.mdx +333 -0
  345. package/.next/standalone/docs/tr/built-in-policies.mdx +562 -0
  346. package/.next/standalone/docs/tr/cli/dashboard.mdx +28 -0
  347. package/.next/standalone/docs/tr/cli/environment-variables.mdx +34 -0
  348. package/.next/standalone/docs/tr/cli/hook.mdx +30 -0
  349. package/.next/standalone/docs/tr/cli/install-policies.mdx +48 -0
  350. package/.next/standalone/docs/tr/cli/list-policies.mdx +31 -0
  351. package/.next/standalone/docs/tr/cli/remove-policies.mdx +45 -0
  352. package/.next/standalone/docs/tr/cli/version.mdx +12 -0
  353. package/.next/standalone/docs/tr/configuration.mdx +223 -0
  354. package/.next/standalone/docs/tr/custom-policies.mdx +357 -0
  355. package/.next/standalone/docs/tr/dashboard.mdx +142 -0
  356. package/.next/standalone/docs/tr/examples.mdx +253 -0
  357. package/.next/standalone/docs/tr/for-agents.mdx +38 -0
  358. package/.next/standalone/docs/tr/getting-started.mdx +134 -0
  359. package/.next/standalone/docs/tr/introduction.mdx +57 -0
  360. package/.next/standalone/docs/tr/package-aliases.mdx +82 -0
  361. package/.next/standalone/docs/tr/testing.mdx +260 -0
  362. package/.next/standalone/docs/vi/architecture.mdx +333 -0
  363. package/.next/standalone/docs/vi/built-in-policies.mdx +564 -0
  364. package/.next/standalone/docs/vi/cli/dashboard.mdx +28 -0
  365. package/.next/standalone/docs/vi/cli/environment-variables.mdx +34 -0
  366. package/.next/standalone/docs/vi/cli/hook.mdx +30 -0
  367. package/.next/standalone/docs/vi/cli/install-policies.mdx +48 -0
  368. package/.next/standalone/docs/vi/cli/list-policies.mdx +31 -0
  369. package/.next/standalone/docs/vi/cli/remove-policies.mdx +44 -0
  370. package/.next/standalone/docs/vi/cli/version.mdx +13 -0
  371. package/.next/standalone/docs/vi/configuration.mdx +222 -0
  372. package/.next/standalone/docs/vi/custom-policies.mdx +357 -0
  373. package/.next/standalone/docs/vi/dashboard.mdx +142 -0
  374. package/.next/standalone/docs/vi/examples.mdx +253 -0
  375. package/.next/standalone/docs/vi/for-agents.mdx +38 -0
  376. package/.next/standalone/docs/vi/getting-started.mdx +134 -0
  377. package/.next/standalone/docs/vi/introduction.mdx +57 -0
  378. package/.next/standalone/docs/vi/package-aliases.mdx +82 -0
  379. package/.next/standalone/docs/vi/testing.mdx +260 -0
  380. package/.next/standalone/docs/zh/architecture.mdx +332 -0
  381. package/.next/standalone/docs/zh/built-in-policies.mdx +562 -0
  382. package/.next/standalone/docs/zh/cli/dashboard.mdx +28 -0
  383. package/.next/standalone/docs/zh/cli/environment-variables.mdx +34 -0
  384. package/.next/standalone/docs/zh/cli/hook.mdx +30 -0
  385. package/.next/standalone/docs/zh/cli/install-policies.mdx +48 -0
  386. package/.next/standalone/docs/zh/cli/list-policies.mdx +31 -0
  387. package/.next/standalone/docs/zh/cli/remove-policies.mdx +44 -0
  388. package/.next/standalone/docs/zh/cli/version.mdx +12 -0
  389. package/.next/standalone/docs/zh/configuration.mdx +222 -0
  390. package/.next/standalone/docs/zh/custom-policies.mdx +357 -0
  391. package/.next/standalone/docs/zh/dashboard.mdx +142 -0
  392. package/.next/standalone/docs/zh/examples.mdx +253 -0
  393. package/.next/standalone/docs/zh/for-agents.mdx +38 -0
  394. package/.next/standalone/docs/zh/getting-started.mdx +134 -0
  395. package/.next/standalone/docs/zh/introduction.mdx +57 -0
  396. package/.next/standalone/docs/zh/package-aliases.mdx +82 -0
  397. package/.next/standalone/docs/zh/testing.mdx +260 -0
  398. package/.next/standalone/examples/convention-policies/security-policies.mjs +40 -0
  399. package/.next/standalone/examples/convention-policies/workflow-policies.mjs +41 -0
  400. package/.next/standalone/next.config.ts +5 -3
  401. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  402. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  403. package/.next/standalone/node_modules/next/dist/compiled/jsonwebtoken/index.js +2 -2
  404. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
  405. package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +1 -1
  406. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
  407. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  408. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  409. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +7 -2
  410. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  411. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  412. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  413. package/.next/standalone/node_modules/next/dist/server/render.js +20 -19
  414. package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  415. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  416. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  417. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  418. package/.next/standalone/node_modules/next/package.json +15 -15
  419. package/.next/standalone/node_modules/react/cjs/react.development.js +1 -1
  420. package/.next/standalone/node_modules/react/cjs/react.production.js +1 -1
  421. package/.next/standalone/node_modules/react/package.json +1 -1
  422. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
  423. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
  424. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
  425. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
  426. package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
  427. package/.next/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
  428. package/.next/standalone/node_modules/react-dom/package.json +2 -2
  429. package/.next/standalone/package.json +13 -10
  430. package/.next/standalone/scripts/translate-docs/cache.ts +62 -0
  431. package/.next/standalone/scripts/translate-docs/cli.ts +357 -0
  432. package/.next/standalone/scripts/translate-docs/config.ts +248 -0
  433. package/.next/standalone/scripts/translate-docs/mdx-translator.ts +153 -0
  434. package/.next/standalone/scripts/translate-docs/mintlify-nav.ts +107 -0
  435. package/.next/standalone/scripts/translate-docs/readme-translator.ts +154 -0
  436. package/.next/standalone/scripts/translate-docs/translator.ts +68 -0
  437. package/.next/standalone/scripts/translate-docs/types.ts +43 -0
  438. package/.next/standalone/server.js +1 -1
  439. package/.next/standalone/skills-lock.json +10 -0
  440. package/.next/standalone/src/hooks/builtin-policies.ts +405 -25
  441. package/.next/standalone/src/hooks/custom-hooks-loader.ts +165 -21
  442. package/.next/standalone/src/hooks/handler.ts +33 -6
  443. package/.next/standalone/src/hooks/hook-activity-store.ts +6 -1
  444. package/.next/standalone/src/hooks/hooks-config.ts +47 -2
  445. package/.next/standalone/src/hooks/llm-client.ts +2 -2
  446. package/.next/standalone/src/hooks/loader-utils.ts +4 -4
  447. package/.next/standalone/src/hooks/manager.ts +67 -16
  448. package/.next/standalone/src/hooks/policy-evaluator.ts +58 -19
  449. package/.next/standalone/src/hooks/policy-helpers.ts +2 -2
  450. package/.next/standalone/vitest.config.e2e.mts +3 -0
  451. package/.next/standalone/vitest.config.mts +3 -0
  452. package/README.md +95 -49
  453. package/bin/failproofai.mjs +5 -0
  454. package/dist/cli.mjs +539 -90
  455. package/dist/index.js +2 -2
  456. package/package.json +13 -10
  457. package/scripts/translate-docs/cache.ts +62 -0
  458. package/scripts/translate-docs/cli.ts +357 -0
  459. package/scripts/translate-docs/config.ts +248 -0
  460. package/scripts/translate-docs/mdx-translator.ts +153 -0
  461. package/scripts/translate-docs/mintlify-nav.ts +107 -0
  462. package/scripts/translate-docs/readme-translator.ts +154 -0
  463. package/scripts/translate-docs/translator.ts +68 -0
  464. package/scripts/translate-docs/types.ts +43 -0
  465. package/src/hooks/builtin-policies.ts +405 -25
  466. package/src/hooks/custom-hooks-loader.ts +165 -21
  467. package/src/hooks/handler.ts +33 -6
  468. package/src/hooks/hook-activity-store.ts +6 -1
  469. package/src/hooks/hooks-config.ts +47 -2
  470. package/src/hooks/llm-client.ts +2 -2
  471. package/src/hooks/loader-utils.ts +4 -4
  472. package/src/hooks/manager.ts +67 -16
  473. package/src/hooks/policy-evaluator.ts +58 -19
  474. package/src/hooks/policy-helpers.ts +2 -2
  475. package/.next/standalone/.next/server/chunks/[root-of-the-server]__02nt~6d._.js +0 -3
  476. package/.next/standalone/.next/static/chunks/15jpradyu_531.css +0 -1
  477. package/.next/standalone/docs/cli-reference.md +0 -175
  478. package/.next/standalone/docs/custom-hooks.md +0 -261
  479. package/.next/standalone/docs/getting-started.md +0 -128
  480. package/.next/standalone/docs/introduction.md +0 -47
  481. /package/.next/standalone/.next/static/{WS-OQSqL1Lp1w_obXfjvl → En9eEShUkUjgeYbY9v6Gy}/_buildManifest.js +0 -0
  482. /package/.next/standalone/.next/static/{WS-OQSqL1Lp1w_obXfjvl → En9eEShUkUjgeYbY9v6Gy}/_clientMiddlewareManifest.js +0 -0
  483. /package/.next/standalone/.next/static/{WS-OQSqL1Lp1w_obXfjvl → En9eEShUkUjgeYbY9v6Gy}/_ssgManifest.js +0 -0
@@ -0,0 +1,254 @@
1
+ ---
2
+ ---
3
+ title: Примеры
4
+ description: "Как настроить hooks для Claude Code и Agents SDK"
5
+ icon: book-open
6
+ ---
7
+
8
+ Готовые к использованию примеры для типичных сценариев. Каждый показывает, как установить и чего ожидать.
9
+
10
+ ---
11
+
12
+ ## Настройка hooks для Claude Code
13
+
14
+ Failproof AI интегрируется с Claude Code через его [систему hooks](https://docs.anthropic.com/en/docs/claude-code/hooks). Когда вы запускаете `failproofai policies --install`, он регистрирует команды hooks в `settings.json` Claude Code, которые срабатывают при каждом вызове инструмента.
15
+
16
+ <Steps>
17
+ <Step title="Установите failproofai">
18
+ ```bash
19
+ npm install -g failproofai
20
+ ```
21
+ </Step>
22
+ <Step title="Включите все встроенные политики">
23
+ ```bash
24
+ failproofai policies --install
25
+ ```
26
+ </Step>
27
+ <Step title="Проверьте, что hooks зарегистрированы">
28
+ ```bash
29
+ cat ~/.claude/settings.json | grep failproofai
30
+ ```
31
+
32
+ Вы должны увидеть записи hooks для событий `PreToolUse`, `PostToolUse`, `Notification` и `Stop`.
33
+ </Step>
34
+ <Step title="Запустите Claude Code">
35
+ ```bash
36
+ claude
37
+ ```
38
+
39
+ Политики теперь выполняются автоматически при каждом вызове инструмента. Попробуйте попросить Claude выполнить `sudo rm -rf /` — это будет заблокировано.
40
+ </Step>
41
+ </Steps>
42
+
43
+ ---
44
+
45
+ ## Настройка hooks для Agents SDK
46
+
47
+ Если вы разрабатываете с помощью [Agents SDK](https://docs.anthropic.com/en/docs/agents-sdk), вы можете использовать ту же систему hooks программно.
48
+
49
+ <Steps>
50
+ <Step title="Установите failproofai в ваш проект">
51
+ ```bash
52
+ npm install failproofai
53
+ ```
54
+ </Step>
55
+ <Step title="Настройте hooks в вашем агенте">
56
+ Передайте команды hooks при создании процесса агента. Hooks срабатывают точно так же, как в Claude Code — через stdin/stdout JSON:
57
+
58
+ ```bash
59
+ failproofai --hook PreToolUse # вызывается перед каждым инструментом
60
+ failproofai --hook PostToolUse # вызывается после каждого инструмента
61
+ ```
62
+ </Step>
63
+ <Step title="Напишите пользовательскую политику для вашего агента">
64
+ ```javascript
65
+ import { customPolicies, allow, deny } from "failproofai";
66
+
67
+ customPolicies.add({
68
+ name: "limit-to-project-dir",
69
+ description: "Keep the agent inside the project directory",
70
+ match: { events: ["PreToolUse"] },
71
+ fn: async (ctx) => {
72
+ const path = String(ctx.toolInput?.file_path ?? "");
73
+ if (path.startsWith("/") && !path.startsWith(ctx.session?.cwd ?? "")) {
74
+ return deny("Agent is restricted to the project directory");
75
+ }
76
+ return allow();
77
+ },
78
+ });
79
+ ```
80
+ </Step>
81
+ <Step title="Установите пользовательскую политику">
82
+ ```bash
83
+ failproofai policies --install --custom ./my-agent-policies.js
84
+ ```
85
+ </Step>
86
+ </Steps>
87
+
88
+ ---
89
+
90
+ ## Блокировка деструктивных команд
91
+
92
+ Самая распространённая настройка — предотвращение необратимого ущерба от действий агентов.
93
+
94
+ ```bash
95
+ failproofai policies --install block-sudo block-rm-rf block-force-push block-curl-pipe-sh
96
+ ```
97
+
98
+ Что это делает:
99
+ - `block-sudo` — блокирует все команды `sudo`
100
+ - `block-rm-rf` — блокирует рекурсивное удаление файлов
101
+ - `block-force-push` — блокирует `git push --force`
102
+ - `block-curl-pipe-sh` — блокирует передачу удалённых скриптов в оболочку
103
+
104
+ ---
105
+
106
+ ## Предотвращение утечки секретов
107
+
108
+ Остановите агентов от просмотра или утечки учётных данных в выводе инструментов.
109
+
110
+ ```bash
111
+ failproofai policies --install sanitize-api-keys sanitize-jwt sanitize-connection-strings sanitize-bearer-tokens
112
+ ```
113
+
114
+ Эти политики срабатывают на `PostToolUse` — после выполнения инструмента они очищают вывод перед тем, как агент его увидит.
115
+
116
+ ---
117
+
118
+ ## Получайте оповещения в Slack, когда агентам требуется внимание
119
+
120
+ Используйте hook уведомлений для отправки оповещений о неактивности в Slack.
121
+
122
+ ```javascript
123
+ import { customPolicies, allow, instruct } from "failproofai";
124
+
125
+ customPolicies.add({
126
+ name: "slack-on-idle",
127
+ description: "Alert Slack when the agent is waiting for input",
128
+ match: { events: ["Notification"] },
129
+ fn: async (ctx) => {
130
+ const webhookUrl = process.env.SLACK_WEBHOOK_URL;
131
+ if (!webhookUrl) return allow();
132
+
133
+ const message = String(ctx.payload?.message ?? "Agent is waiting");
134
+ const project = ctx.session?.cwd ?? "unknown";
135
+
136
+ try {
137
+ await fetch(webhookUrl, {
138
+ method: "POST",
139
+ headers: { "Content-Type": "application/json" },
140
+ body: JSON.stringify({
141
+ text: `*${message}*\nProject: \`${project}\``,
142
+ }),
143
+ signal: AbortSignal.timeout(5000),
144
+ });
145
+ } catch {
146
+ // never block the agent if Slack is unreachable
147
+ }
148
+
149
+ return allow();
150
+ },
151
+ });
152
+ ```
153
+
154
+ Установите её:
155
+
156
+ ```bash
157
+ SLACK_WEBHOOK_URL=https://hooks.slack.com/... failproofai policies --install --custom ./slack-alerts.js
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Держите агентов на одной ветке
163
+
164
+ Предотвратите переключение ветвей или отправку на защищённые ветви.
165
+
166
+ ```javascript
167
+ import { customPolicies, allow, deny } from "failproofai";
168
+
169
+ customPolicies.add({
170
+ name: "stay-on-branch",
171
+ description: "Prevent the agent from checking out other branches",
172
+ match: { events: ["PreToolUse"] },
173
+ fn: async (ctx) => {
174
+ if (ctx.toolName !== "Bash") return allow();
175
+ const cmd = String(ctx.toolInput?.command ?? "");
176
+ if (/git\s+checkout\s+(?!-b)/.test(cmd)) {
177
+ return deny("Stay on the current branch. Create a new branch with -b if needed.");
178
+ }
179
+ return allow();
180
+ },
181
+ });
182
+ ```
183
+
184
+ ---
185
+
186
+ ## Требуйте тесты перед коммитом
187
+
188
+ Напоминайте агентам запускать тесты перед коммитом.
189
+
190
+ ```javascript
191
+ import { customPolicies, allow, instruct } from "failproofai";
192
+
193
+ customPolicies.add({
194
+ name: "test-before-commit",
195
+ description: "Remind the agent to run tests before committing",
196
+ match: { events: ["PreToolUse"] },
197
+ fn: async (ctx) => {
198
+ if (ctx.toolName !== "Bash") return allow();
199
+ const cmd = String(ctx.toolInput?.command ?? "");
200
+ if (/git\s+commit/.test(cmd)) {
201
+ return instruct("Run tests before committing. Use `npm test` or `bun test` first.");
202
+ }
203
+ return allow();
204
+ },
205
+ });
206
+ ```
207
+
208
+ ---
209
+
210
+ ## Заблокируйте production репозиторий
211
+
212
+ Добавьте конфигурацию на уровне проекта, чтобы все разработчики вашей команды получили одинаковые политики.
213
+
214
+ Создайте `.failproofai/policies-config.json` в вашем репозитории:
215
+
216
+ ```json
217
+ {
218
+ "enabledPolicies": [
219
+ "block-sudo",
220
+ "block-rm-rf",
221
+ "block-force-push",
222
+ "block-push-master",
223
+ "block-env-files",
224
+ "sanitize-api-keys",
225
+ "sanitize-jwt"
226
+ ],
227
+ "policyParams": {
228
+ "block-push-master": {
229
+ "protectedBranches": ["main", "release", "production"]
230
+ }
231
+ }
232
+ }
233
+ ```
234
+
235
+ Затем добавьте её:
236
+
237
+ ```bash
238
+ git add .failproofai/policies-config.json
239
+ git commit -m "Add failproofai team policies"
240
+ ```
241
+
242
+ Каждый член команды, у которого установлен failproofai, автоматически получит эти правила.
243
+
244
+ ---
245
+
246
+ ## Больше примеров
247
+
248
+ Директория [`examples/`](https://github.com/exospherehost/failproofai/tree/main/examples) в репозитории содержит:
249
+
250
+ | Файл | Что он показывает |
251
+ |------|---------------|
252
+ | `policies-basic.js` | Базовые политики — блокировка записей в production, force-push, передачи скриптов |
253
+ | `policies-notification.js` | Оповещения Slack для уведомлений о неактивности и завершении сессии |
254
+ | `policies-advanced/index.js` | Переходные импорты, асинхронные hooks, очистка вывода PostToolUse, обработка события Stop |
@@ -0,0 +1,38 @@
1
+ ---
2
+ title: "Для агентов"
3
+ description: "Добавьте справку Failproof AI вашему кодирующему агенту одной командой. Работает с Claude Code, Cursor, Windsurf и другими."
4
+ ---
5
+
6
+ Добавьте полную справку Failproof AI вашему кодирующему агенту одной командой. Работает с Claude Code, Cursor, Windsurf и любым другим агентом, поддерживающим навыки.
7
+
8
+ ```bash
9
+ npx skills add https://docs.befailproof.ai
10
+ ```
11
+
12
+ `npx skills` определяет, какие агенты у вас установлены, и автоматически добавляет навык в правильном формате для каждого.
13
+
14
+ ## Что включает навык
15
+
16
+ | Область | Содержание |
17
+ |------|----------------|
18
+ | Policies | Встроенные имена политик, типы событий, параметры, включение/отключение |
19
+ | Custom policies | `customPolicies.add()`, фильтры совпадений, API `allow`/`deny`/`instruct` |
20
+ | Context object | `ctx.eventType`, `ctx.toolName`, `ctx.toolInput`, `ctx.session` |
21
+ | Configuration | Структура `policies-config.json`, слияние scope, `policyParams` |
22
+ | CLI | `failproofai policies --install`, `--uninstall`, `--custom`, scope |
23
+ | Dashboard | Просмотр сессий, активность политик, переменные окружения |
24
+ | Architecture | Поток обработчика hook, коды выхода, контракт stdin/stdout |
25
+
26
+ ## Полон ли навык?
27
+
28
+ Mintlify генерирует `llms.txt` из всех страниц в навигации. Документация Failproof AI охватывает полный API - каждая политика, опция и пример включены. Если вы обнаружите что-то отсутствующее, источник находится по адресу `https://docs.befailproof.ai/llms-full.txt`.
29
+
30
+ Для целевого контекста создавайте ссылку непосредственно на конкретную страницу:
31
+
32
+ ```bash
33
+ # Только API custom policies
34
+ npx skills add https://docs.befailproof.ai/custom-policies
35
+
36
+ # Только встроенные политики
37
+ npx skills add https://docs.befailproof.ai/built-in-policies
38
+ ```
@@ -0,0 +1,134 @@
1
+ ---
2
+ title: Начало работы
3
+ description: "Установите failproofai, активируйте политики и позвольте вашим агентам работать надежно"
4
+ icon: rocket
5
+ ---
6
+
7
+ ## Требования
8
+
9
+ - **Node.js** >= 20.9.0
10
+ - **Bun** >= 1.3.0 (опционально - требуется только для сборки из исходного кода)
11
+
12
+ ---
13
+
14
+ ## Установка
15
+
16
+ <CodeGroup>
17
+
18
+ ```bash npm
19
+ npm install -g failproofai
20
+ ```
21
+
22
+ ```bash bun
23
+ bun add -g failproofai
24
+ ```
25
+
26
+ </CodeGroup>
27
+
28
+ ---
29
+
30
+ ## Быстрый старт
31
+
32
+ <Steps>
33
+ <Step title="Активируйте политики">
34
+ Политики — это правила, которые выполняются до и после каждого вызова инструмента агента. Они перехватывают деструктивные команды, утечки секретов и другие режимы отказа до того, как они нанесут ущерб.
35
+
36
+ ```bash
37
+ failproofai policies --install
38
+ ```
39
+
40
+ Это записывает записи хуков в `settings.json` Claude Code. Вы также можете установить для одного проекта или выбрать определенные политики:
41
+
42
+ ```bash
43
+ failproofai policies --install --scope project
44
+ failproofai policies --install block-sudo block-rm-rf sanitize-api-keys
45
+ ```
46
+ </Step>
47
+ <Step title="Проверка">
48
+ ```bash
49
+ failproofai policies
50
+ ```
51
+
52
+ Показывает каждую политику, включена ли она и все настроенные параметры.
53
+ </Step>
54
+ <Step title="Запустите панель мониторинга">
55
+ ```bash
56
+ failproofai
57
+ ```
58
+
59
+ Открывает локальную панель мониторинга на `http://localhost:8020`, где вы можете просматривать сеансы, проверять вызовы инструментов и управлять политиками.
60
+ </Step>
61
+ <Step title="Запустите ваш агент">
62
+ Запустите Claude Code обычным образом. Если агент попытается что-то рискованное, failproofai автоматически его перехватит. Оставьте его работать без присмотра и проверьте то, что произошло, на панели мониторинга.
63
+ </Step>
64
+ </Steps>
65
+
66
+ ---
67
+
68
+ ## Как работают политики
69
+
70
+ Каждый раз, когда агент запускает инструмент, Claude Code вызывает failproofai как подпроцесс:
71
+
72
+ ```text
73
+ Claude Code → failproofai --hook PreToolUse → читает JSON из stdin
74
+ оценивает политики
75
+ записывает решение в stdout
76
+ ```
77
+
78
+ Каждая политика возвращает одно из трех решений:
79
+
80
+ - **allow** — агент продолжает работу нормально
81
+ - **deny** — действие блокируется, агенту объясняется причина
82
+ - **instruct** — дополнительный контекст добавляется в подсказку агента
83
+
84
+ <Note>
85
+ Политики выполняются в вашем локальном процессе. Ничего не отправляется на удаленный сервис.
86
+ </Note>
87
+
88
+ ---
89
+
90
+ ## Хранение данных
91
+
92
+ Все конфигурации и логи остаются на вашем компьютере:
93
+
94
+ | Путь | Что здесь хранится |
95
+ |------|----------------|
96
+ | `~/.failproofai/policies-config.json` | Глобальная конфигурация политик |
97
+ | `~/.failproofai/hook-activity.jsonl` | История выполнения хуков |
98
+ | `~/.failproofai/hook.log` | Лог отладки для ошибок пользовательских хуков |
99
+ | `.failproofai/policies-config.json` | Конфигурация для каждого проекта (committed) |
100
+ | `.failproofai/policies-config.local.json` | Личные переопределения (gitignored) |
101
+
102
+ ---
103
+
104
+ ## Удаление
105
+
106
+ ```bash
107
+ failproofai policies --uninstall
108
+ ```
109
+
110
+ Удаляет записи хуков из `~/.claude/settings.json`. Файлы конфигурации в `~/.failproofai/` сохраняются.
111
+
112
+ ---
113
+
114
+ ## Следующие шаги
115
+
116
+ <CardGroup cols={2}>
117
+
118
+ <Card title="Конфигурация" icon="gear" href="/ru/configuration">
119
+ Области действия и формат файла конфигурации
120
+ </Card>
121
+
122
+ <Card title="Встроенные политики" icon="shield" href="/ru/built-in-policies">
123
+ Все 26 политик с параметрами
124
+ </Card>
125
+
126
+ <Card title="Пользовательские политики" icon="code" href="/ru/custom-policies">
127
+ Напишите свои собственные политики на JavaScript
128
+ </Card>
129
+
130
+ <Card title="Монитор агента" icon="chart-line" href="/ru/dashboard">
131
+ Мониторьте сеансы и проверяйте активность политик
132
+ </Card>
133
+
134
+ </CardGroup>
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: Failproof AI
3
+ description: "Управляйте хуками и политиками, которые делают ваших AI агентов надежными и позволяют им работать автономно"
4
+ ---
5
+
6
+ [![npm weekly downloads](https://img.shields.io/npm/dw/failproofai?style=flat-square&color=2ea44f)](https://www.npmjs.com/package/failproofai)
7
+
8
+ Хуки и политики, которые делают ваших AI агентов надежными и позволяют им работать автономно — для **Claude Code** и **Agents SDK**.
9
+
10
+ AI агенты отказывают предсказуемым образом. Они запускают деструктивные команды, утекают секреты, отклоняются от задачи, застревают в циклах или пушат напрямую в main. Без присмотра небольшие сбои каскадируют.
11
+
12
+ Failproof AI решает эту проблему с помощью **политик** — правил, которые интегрируются в каждый вызов инструмента агента и могут **обнаруживать сбои**, **смягчать их** (блокировать, инструктировать, санитизировать) и **оповещать вас**, когда требуется внимание. Локальная панель мониторинга позволяет просмотреть всё впоследствии.
13
+
14
+ Всё работает локально. Никакие данные не покидают вашу машину.
15
+
16
+ ## Начните работу
17
+
18
+ <CardGroup cols={2}>
19
+
20
+ <Card title="26 встроенных политик" icon="shield" href="/ru/built-in-policies">
21
+ Блокируйте деструктивные команды, предотвращайте утечки секретов, удерживайте агентов внутри границ проекта и многое другое — прямо из коробки.
22
+ </Card>
23
+
24
+ <Card title="Пользовательские политики" icon="code" href="/ru/custom-policies">
25
+ Напишите свои собственные правила на JavaScript с простым API allow / deny / instruct.
26
+ </Card>
27
+
28
+ <Card title="Монитор агентов" icon="chart-line" href="/ru/dashboard">
29
+ Смотрите, что делали ваши агенты, пока вас не было. Просматривайте сессии, проверяйте вызовы инструментов, смотрите, где срабатывали политики.
30
+ </Card>
31
+
32
+ <Card title="Простая конфигурация" icon="gear" href="/ru/configuration">
33
+ Настраивайте любую политику без кода. Устанавливайте списки разрешений, защищённые ветки или пороги по проектам или глобально.
34
+ </Card>
35
+
36
+ </CardGroup>
37
+
38
+ ## Быстрый старт
39
+
40
+ <CodeGroup>
41
+
42
+ ```bash npm
43
+ npm install -g failproofai
44
+ ```
45
+
46
+ ```bash bun
47
+ bun add -g failproofai
48
+ ```
49
+
50
+ </CodeGroup>
51
+
52
+ ```bash
53
+ failproofai policies --install # enable policies
54
+ failproofai # launch the dashboard
55
+ ```
56
+
57
+ Подробное руководство см. в [Getting started](/ru/getting-started).
@@ -0,0 +1,82 @@
1
+ ---
2
+ title: Альтернативные имена пакетов
3
+ description: "Зарегистрированные альтернативные имена для защиты от опечаток и их работа"
4
+ icon: copy
5
+ ---
6
+
7
+ ## Официальный пакет
8
+
9
+ Основной npm-пакет — **`failproofai`**:
10
+
11
+ ```bash
12
+ npm install -g failproofai
13
+ # или
14
+ bun add -g failproofai
15
+ ```
16
+
17
+ ---
18
+
19
+ ## Почему мы владеем альтернативными именами
20
+
21
+ Typosquatting — это распространённая атака на цепочку поставок, при которой злоумышленник регистрирует имя пакета, отличающееся на один символ от популярного пакета. Невнимательные пользователи, допустившие опечатку в команде установки, в итоге запускают код, контролируемый злоумышленником, с полным доступом к системе — это именно тот вид угрозы, против которого разработана Failproof AI.
22
+
23
+ Чтобы исключить эту уязвимость, **мы заранее регистрируем все распространённые опечатки и варианты написания** `failproofai` на npm. Ни одно из этих имён не может быть зарегистрировано третьей стороной. Каждое из них — это тонкий прокси, который устанавливает и делегирует работу основному пакету `failproofai`.
24
+
25
+ ---
26
+
27
+ ## Зарегистрированные альтернативные имена
28
+
29
+ **Варианты написания** — разные способы написания "failproof ai":
30
+
31
+ | Пакет | Статус |
32
+ |---------|--------|
33
+ | `failproof` | ✅ Опубликован |
34
+ | `failproof-ai` | ⏳ Ожидает поддержки npm |
35
+ | `fail-proof-ai` | ⏳ Ожидает поддержки npm |
36
+ | `failproof_ai` | ⏳ Ожидает поддержки npm |
37
+ | `fail_proof_ai` | ⏳ Ожидает поддержки npm |
38
+ | `fail-proofai` | ⏳ Ожидает поддержки npm |
39
+
40
+ **Опечатки `failprof*`** — пропущена одна буква `o` в слове "proof":
41
+
42
+ | Пакет | Статус |
43
+ |---------|--------|
44
+ | `failprof` | ✅ Опубликован |
45
+ | `failprof-ai` | ✅ Опубликован |
46
+ | `failprofai` | ⏳ Ожидает поддержки npm |
47
+ | `fail-prof-ai` | ⏳ Ожидает поддержки npm |
48
+ | `failprof_ai` | ⏳ Ожидает поддержки npm |
49
+
50
+ **Опечатки `faliproof*`** — переставлены буквы `a` и `i`:
51
+
52
+ | Пакет | Статус |
53
+ |---------|--------|
54
+ | `faliproof` | ✅ Опубликован |
55
+ | `faliproof-ai` | ✅ Опубликован |
56
+ | `faliproofai` | ⏳ Ожидает поддержки npm |
57
+
58
+ > **Почему в статусе "ожидает"?** Политика npm по защите от спама блокирует имена, которые нормализуются в одну строку с существующим пакетом после удаления пунктуации и проверки сходства. Мы связались с поддержкой npm, чтобы зарезервировать эти имена в целях защиты от typosquatting. Они будут активированы после одобрения.
59
+
60
+ Вы можете проверить, что любое опубликованное альтернативное имя принадлежит нам:
61
+
62
+ ```bash
63
+ npm info failproof
64
+ # Ищите: "ExosphereHost Inc." в поле maintainers
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Как работают альтернативные имена
70
+
71
+ Каждый пакет-альтернатива:
72
+
73
+ 1. Указывает `failproofai` как зависимость — поэтому при установке запускается основной пакет (включая его hook `postinstall`)
74
+ 2. Экспортирует бинарный файл с собственным именем (например `failprof-ai`), который пробрасывает все аргументы на бинарный файл `failproofai`
75
+
76
+ Прокси — это двухстрочный скрипт Node.js; в нём нет никакой логики, сетевых запросов и сбора данных, кроме того, что делает сам `failproofai`.
77
+
78
+ ---
79
+
80
+ ## Если мы пропустили какое-то имя
81
+
82
+ Откройте задачу на [exospherehost/failproofai](https://github.com/exospherehost/failproofai/issues) и мы его зарегистрируем.