failproofai 0.0.2-beta.8 → 0.0.2-beta.9
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.
- package/.next/standalone/.claude/settings.json +26 -26
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +17 -17
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +17 -17
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +16 -16
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +11 -11
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0kjo7d_._.js +1 -1
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0.t2266._.js → [root-of-the-server]__0vn1ciw._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0pjorff._.js → [root-of-the-server]__0z-n~~r._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_0x..fj-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +2 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
- package/.next/standalone/.next/static/chunks/{0qi0ubup__3pj.js → 04wavch6dsfes.js} +1 -1
- package/.next/standalone/.next/static/chunks/{121a-0zn-knuy.js → 0drr--vxs_m-c.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0jf9lx3rkmqx_.css → 0gu_a.a80ritd.css} +1 -1
- package/.next/standalone/.next/static/chunks/{07g0rbtaux_1t.js → 0i1ilz5554nv9.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0j752uotyfvjh.js → 0keqg6-cjs8aa.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0xyvis4r_y.8o.js → 0myzx7y.rqqi3.js} +2 -2
- package/.next/standalone/.next/static/chunks/{0a_xh94bt.y0j.js → 0zfrusm~j404v.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0zfyfi1suoteq.js → 10xhknzfyigcu.js} +1 -1
- package/.next/standalone/.next/static/chunks/{04xfyqyhdxbxz.js → 16yg3xhkmdb9v.js} +1 -1
- package/.next/standalone/CHANGELOG.md +13 -0
- package/.next/standalone/CLAUDE.md +14 -0
- package/.next/standalone/README.md +16 -0
- package/.next/standalone/bun.lock +45 -0
- package/.next/standalone/dist/cli.mjs +12 -5
- package/.next/standalone/docs/ar/architecture.mdx +333 -0
- package/.next/standalone/docs/ar/built-in-policies.mdx +566 -0
- package/.next/standalone/docs/ar/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/ar/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/ar/cli/hook.mdx +31 -0
- package/.next/standalone/docs/ar/cli/install-policies.mdx +49 -0
- package/.next/standalone/docs/ar/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/ar/cli/remove-policies.mdx +45 -0
- package/.next/standalone/docs/ar/cli/version.mdx +13 -0
- package/.next/standalone/docs/ar/configuration.mdx +223 -0
- package/.next/standalone/docs/ar/custom-policies.mdx +359 -0
- package/.next/standalone/docs/ar/dashboard.mdx +142 -0
- package/.next/standalone/docs/ar/examples.mdx +254 -0
- package/.next/standalone/docs/ar/for-agents.mdx +39 -0
- package/.next/standalone/docs/ar/getting-started.mdx +134 -0
- package/.next/standalone/docs/ar/introduction.mdx +58 -0
- package/.next/standalone/docs/ar/package-aliases.mdx +82 -0
- package/.next/standalone/docs/ar/testing.mdx +261 -0
- package/.next/standalone/docs/de/architecture.mdx +332 -0
- package/.next/standalone/docs/de/built-in-policies.mdx +564 -0
- package/.next/standalone/docs/de/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/de/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/de/cli/hook.mdx +30 -0
- package/.next/standalone/docs/de/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/de/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/de/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/de/cli/version.mdx +12 -0
- package/.next/standalone/docs/de/configuration.mdx +222 -0
- package/.next/standalone/docs/de/custom-policies.mdx +357 -0
- package/.next/standalone/docs/de/dashboard.mdx +142 -0
- package/.next/standalone/docs/de/examples.mdx +253 -0
- package/.next/standalone/docs/de/for-agents.mdx +38 -0
- package/.next/standalone/docs/de/getting-started.mdx +134 -0
- package/.next/standalone/docs/de/introduction.mdx +57 -0
- package/.next/standalone/docs/de/package-aliases.mdx +82 -0
- package/.next/standalone/docs/de/testing.mdx +260 -0
- package/.next/standalone/docs/docs.json +922 -35
- package/.next/standalone/docs/es/architecture.mdx +332 -0
- package/.next/standalone/docs/es/built-in-policies.mdx +564 -0
- package/.next/standalone/docs/es/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/es/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/es/cli/hook.mdx +30 -0
- package/.next/standalone/docs/es/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/es/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/es/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/es/cli/version.mdx +12 -0
- package/.next/standalone/docs/es/configuration.mdx +222 -0
- package/.next/standalone/docs/es/custom-policies.mdx +357 -0
- package/.next/standalone/docs/es/dashboard.mdx +142 -0
- package/.next/standalone/docs/es/examples.mdx +253 -0
- package/.next/standalone/docs/es/for-agents.mdx +38 -0
- package/.next/standalone/docs/es/getting-started.mdx +134 -0
- package/.next/standalone/docs/es/introduction.mdx +57 -0
- package/.next/standalone/docs/es/package-aliases.mdx +82 -0
- package/.next/standalone/docs/es/testing.mdx +260 -0
- package/.next/standalone/docs/fr/architecture.mdx +332 -0
- package/.next/standalone/docs/fr/built-in-policies.mdx +564 -0
- package/.next/standalone/docs/fr/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/fr/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/fr/cli/hook.mdx +30 -0
- package/.next/standalone/docs/fr/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/fr/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/fr/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/fr/cli/version.mdx +12 -0
- package/.next/standalone/docs/fr/configuration.mdx +222 -0
- package/.next/standalone/docs/fr/custom-policies.mdx +357 -0
- package/.next/standalone/docs/fr/dashboard.mdx +142 -0
- package/.next/standalone/docs/fr/examples.mdx +253 -0
- package/.next/standalone/docs/fr/for-agents.mdx +38 -0
- package/.next/standalone/docs/fr/getting-started.mdx +134 -0
- package/.next/standalone/docs/fr/introduction.mdx +57 -0
- package/.next/standalone/docs/fr/package-aliases.mdx +82 -0
- package/.next/standalone/docs/fr/testing.mdx +260 -0
- package/.next/standalone/docs/he/architecture.mdx +333 -0
- package/.next/standalone/docs/he/built-in-policies.mdx +564 -0
- package/.next/standalone/docs/he/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/he/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/he/cli/hook.mdx +30 -0
- package/.next/standalone/docs/he/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/he/cli/list-policies.mdx +32 -0
- package/.next/standalone/docs/he/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/he/cli/version.mdx +12 -0
- package/.next/standalone/docs/he/configuration.mdx +222 -0
- package/.next/standalone/docs/he/custom-policies.mdx +357 -0
- package/.next/standalone/docs/he/dashboard.mdx +142 -0
- package/.next/standalone/docs/he/examples.mdx +253 -0
- package/.next/standalone/docs/he/for-agents.mdx +38 -0
- package/.next/standalone/docs/he/getting-started.mdx +135 -0
- package/.next/standalone/docs/he/introduction.mdx +57 -0
- package/.next/standalone/docs/he/package-aliases.mdx +82 -0
- package/.next/standalone/docs/he/testing.mdx +260 -0
- package/.next/standalone/docs/hi/architecture.mdx +334 -0
- package/.next/standalone/docs/hi/built-in-policies.mdx +564 -0
- package/.next/standalone/docs/hi/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/hi/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/hi/cli/hook.mdx +30 -0
- package/.next/standalone/docs/hi/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/hi/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/hi/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/hi/cli/version.mdx +12 -0
- package/.next/standalone/docs/hi/configuration.mdx +222 -0
- package/.next/standalone/docs/hi/custom-policies.mdx +357 -0
- package/.next/standalone/docs/hi/dashboard.mdx +142 -0
- package/.next/standalone/docs/hi/examples.mdx +255 -0
- package/.next/standalone/docs/hi/for-agents.mdx +38 -0
- package/.next/standalone/docs/hi/getting-started.mdx +134 -0
- package/.next/standalone/docs/hi/introduction.mdx +57 -0
- package/.next/standalone/docs/hi/package-aliases.mdx +82 -0
- package/.next/standalone/docs/hi/testing.mdx +260 -0
- package/.next/standalone/docs/i18n/README.ar.md +312 -0
- package/.next/standalone/docs/i18n/README.de.md +307 -0
- package/.next/standalone/docs/i18n/README.es.md +307 -0
- package/.next/standalone/docs/i18n/README.fr.md +307 -0
- package/.next/standalone/docs/i18n/README.he.md +312 -0
- package/.next/standalone/docs/i18n/README.hi.md +307 -0
- package/.next/standalone/docs/i18n/README.it.md +307 -0
- package/.next/standalone/docs/i18n/README.ja.md +307 -0
- package/.next/standalone/docs/i18n/README.ko.md +307 -0
- package/.next/standalone/docs/i18n/README.pt-br.md +307 -0
- package/.next/standalone/docs/i18n/README.ru.md +308 -0
- package/.next/standalone/docs/i18n/README.tr.md +308 -0
- package/.next/standalone/docs/i18n/README.vi.md +308 -0
- package/.next/standalone/docs/i18n/README.zh.md +307 -0
- package/.next/standalone/docs/it/architecture.mdx +333 -0
- package/.next/standalone/docs/it/built-in-policies.mdx +564 -0
- package/.next/standalone/docs/it/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/it/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/it/cli/hook.mdx +30 -0
- package/.next/standalone/docs/it/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/it/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/it/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/it/cli/version.mdx +12 -0
- package/.next/standalone/docs/it/configuration.mdx +223 -0
- package/.next/standalone/docs/it/custom-policies.mdx +358 -0
- package/.next/standalone/docs/it/dashboard.mdx +142 -0
- package/.next/standalone/docs/it/examples.mdx +253 -0
- package/.next/standalone/docs/it/for-agents.mdx +38 -0
- package/.next/standalone/docs/it/getting-started.mdx +134 -0
- package/.next/standalone/docs/it/introduction.mdx +57 -0
- package/.next/standalone/docs/it/package-aliases.mdx +82 -0
- package/.next/standalone/docs/it/testing.mdx +260 -0
- package/.next/standalone/docs/ja/architecture.mdx +332 -0
- package/.next/standalone/docs/ja/built-in-policies.mdx +562 -0
- package/.next/standalone/docs/ja/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/ja/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/ja/cli/hook.mdx +30 -0
- package/.next/standalone/docs/ja/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/ja/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/ja/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/ja/cli/version.mdx +12 -0
- package/.next/standalone/docs/ja/configuration.mdx +222 -0
- package/.next/standalone/docs/ja/custom-policies.mdx +357 -0
- package/.next/standalone/docs/ja/dashboard.mdx +142 -0
- package/.next/standalone/docs/ja/examples.mdx +253 -0
- package/.next/standalone/docs/ja/for-agents.mdx +38 -0
- package/.next/standalone/docs/ja/getting-started.mdx +134 -0
- package/.next/standalone/docs/ja/introduction.mdx +57 -0
- package/.next/standalone/docs/ja/package-aliases.mdx +82 -0
- package/.next/standalone/docs/ja/testing.mdx +260 -0
- package/.next/standalone/docs/ko/architecture.mdx +332 -0
- package/.next/standalone/docs/ko/built-in-policies.mdx +562 -0
- package/.next/standalone/docs/ko/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/ko/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/ko/cli/hook.mdx +30 -0
- package/.next/standalone/docs/ko/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/ko/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/ko/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/ko/cli/version.mdx +12 -0
- package/.next/standalone/docs/ko/configuration.mdx +222 -0
- package/.next/standalone/docs/ko/custom-policies.mdx +357 -0
- package/.next/standalone/docs/ko/dashboard.mdx +142 -0
- package/.next/standalone/docs/ko/examples.mdx +253 -0
- package/.next/standalone/docs/ko/for-agents.mdx +38 -0
- package/.next/standalone/docs/ko/getting-started.mdx +134 -0
- package/.next/standalone/docs/ko/introduction.mdx +57 -0
- package/.next/standalone/docs/ko/package-aliases.mdx +82 -0
- package/.next/standalone/docs/ko/testing.mdx +260 -0
- package/.next/standalone/docs/pt-br/architecture.mdx +332 -0
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +564 -0
- package/.next/standalone/docs/pt-br/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/pt-br/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/pt-br/cli/hook.mdx +30 -0
- package/.next/standalone/docs/pt-br/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/pt-br/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/pt-br/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/pt-br/cli/version.mdx +12 -0
- package/.next/standalone/docs/pt-br/configuration.mdx +222 -0
- package/.next/standalone/docs/pt-br/custom-policies.mdx +357 -0
- package/.next/standalone/docs/pt-br/dashboard.mdx +142 -0
- package/.next/standalone/docs/pt-br/examples.mdx +253 -0
- package/.next/standalone/docs/pt-br/for-agents.mdx +38 -0
- package/.next/standalone/docs/pt-br/getting-started.mdx +134 -0
- package/.next/standalone/docs/pt-br/introduction.mdx +57 -0
- package/.next/standalone/docs/pt-br/package-aliases.mdx +82 -0
- package/.next/standalone/docs/pt-br/testing.mdx +260 -0
- package/.next/standalone/docs/ru/architecture.mdx +334 -0
- package/.next/standalone/docs/ru/built-in-policies.mdx +562 -0
- package/.next/standalone/docs/ru/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/ru/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/ru/cli/hook.mdx +30 -0
- package/.next/standalone/docs/ru/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/ru/cli/list-policies.mdx +32 -0
- package/.next/standalone/docs/ru/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/ru/cli/version.mdx +12 -0
- package/.next/standalone/docs/ru/configuration.mdx +223 -0
- package/.next/standalone/docs/ru/custom-policies.mdx +357 -0
- package/.next/standalone/docs/ru/dashboard.mdx +142 -0
- package/.next/standalone/docs/ru/examples.mdx +254 -0
- package/.next/standalone/docs/ru/for-agents.mdx +38 -0
- package/.next/standalone/docs/ru/getting-started.mdx +134 -0
- package/.next/standalone/docs/ru/introduction.mdx +57 -0
- package/.next/standalone/docs/ru/package-aliases.mdx +82 -0
- package/.next/standalone/docs/ru/testing.mdx +260 -0
- package/.next/standalone/docs/tr/architecture.mdx +333 -0
- package/.next/standalone/docs/tr/built-in-policies.mdx +562 -0
- package/.next/standalone/docs/tr/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/tr/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/tr/cli/hook.mdx +30 -0
- package/.next/standalone/docs/tr/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/tr/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/tr/cli/remove-policies.mdx +45 -0
- package/.next/standalone/docs/tr/cli/version.mdx +12 -0
- package/.next/standalone/docs/tr/configuration.mdx +223 -0
- package/.next/standalone/docs/tr/custom-policies.mdx +357 -0
- package/.next/standalone/docs/tr/dashboard.mdx +142 -0
- package/.next/standalone/docs/tr/examples.mdx +253 -0
- package/.next/standalone/docs/tr/for-agents.mdx +38 -0
- package/.next/standalone/docs/tr/getting-started.mdx +134 -0
- package/.next/standalone/docs/tr/introduction.mdx +57 -0
- package/.next/standalone/docs/tr/package-aliases.mdx +82 -0
- package/.next/standalone/docs/tr/testing.mdx +260 -0
- package/.next/standalone/docs/vi/architecture.mdx +333 -0
- package/.next/standalone/docs/vi/built-in-policies.mdx +564 -0
- package/.next/standalone/docs/vi/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/vi/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/vi/cli/hook.mdx +30 -0
- package/.next/standalone/docs/vi/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/vi/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/vi/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/vi/cli/version.mdx +13 -0
- package/.next/standalone/docs/vi/configuration.mdx +222 -0
- package/.next/standalone/docs/vi/custom-policies.mdx +357 -0
- package/.next/standalone/docs/vi/dashboard.mdx +142 -0
- package/.next/standalone/docs/vi/examples.mdx +253 -0
- package/.next/standalone/docs/vi/for-agents.mdx +38 -0
- package/.next/standalone/docs/vi/getting-started.mdx +134 -0
- package/.next/standalone/docs/vi/introduction.mdx +57 -0
- package/.next/standalone/docs/vi/package-aliases.mdx +82 -0
- package/.next/standalone/docs/vi/testing.mdx +260 -0
- package/.next/standalone/docs/zh/architecture.mdx +332 -0
- package/.next/standalone/docs/zh/built-in-policies.mdx +562 -0
- package/.next/standalone/docs/zh/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/zh/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/zh/cli/hook.mdx +30 -0
- package/.next/standalone/docs/zh/cli/install-policies.mdx +48 -0
- package/.next/standalone/docs/zh/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/zh/cli/remove-policies.mdx +44 -0
- package/.next/standalone/docs/zh/cli/version.mdx +12 -0
- package/.next/standalone/docs/zh/configuration.mdx +222 -0
- package/.next/standalone/docs/zh/custom-policies.mdx +357 -0
- package/.next/standalone/docs/zh/dashboard.mdx +142 -0
- package/.next/standalone/docs/zh/examples.mdx +253 -0
- package/.next/standalone/docs/zh/for-agents.mdx +38 -0
- package/.next/standalone/docs/zh/getting-started.mdx +134 -0
- package/.next/standalone/docs/zh/introduction.mdx +57 -0
- package/.next/standalone/docs/zh/package-aliases.mdx +82 -0
- package/.next/standalone/docs/zh/testing.mdx +260 -0
- package/.next/standalone/package.json +8 -2
- package/.next/standalone/scripts/translate-docs/cache.ts +62 -0
- package/.next/standalone/scripts/translate-docs/cli.ts +357 -0
- package/.next/standalone/scripts/translate-docs/config.ts +248 -0
- package/.next/standalone/scripts/translate-docs/mdx-translator.ts +153 -0
- package/.next/standalone/scripts/translate-docs/mintlify-nav.ts +107 -0
- package/.next/standalone/scripts/translate-docs/readme-translator.ts +154 -0
- package/.next/standalone/scripts/translate-docs/translator.ts +68 -0
- package/.next/standalone/scripts/translate-docs/types.ts +43 -0
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/hooks/manager.ts +10 -2
- package/README.md +16 -0
- package/dist/cli.mjs +12 -5
- package/package.json +8 -2
- package/scripts/translate-docs/cache.ts +62 -0
- package/scripts/translate-docs/cli.ts +357 -0
- package/scripts/translate-docs/config.ts +248 -0
- package/scripts/translate-docs/mdx-translator.ts +153 -0
- package/scripts/translate-docs/mintlify-nav.ts +107 -0
- package/scripts/translate-docs/readme-translator.ts +154 -0
- package/scripts/translate-docs/translator.ts +68 -0
- package/scripts/translate-docs/types.ts +43 -0
- package/src/hooks/manager.ts +10 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02nt~6d._.js +0 -3
- /package/.next/standalone/.next/static/{itedhTSyIDln6TUf41j5X → XqGmAwGDuJ6fEQgD-8y60}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{itedhTSyIDln6TUf41j5X → XqGmAwGDuJ6fEQgD-8y60}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{itedhTSyIDln6TUf41j5X → XqGmAwGDuJ6fEQgD-8y60}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
> **⚠️** This is an auto-generated translation. For the latest version, see the [English README](../../README.md). Community corrections welcome!
|
|
2
|
+
|
|
3
|
+
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇪🇸 Español](README.es.md) | **🇧🇷 Português** | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇷🇺 Русский](README.ru.md) | [🇮🇳 हिन्दी](README.hi.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇹 Italiano](README.it.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇱 עברית](README.he.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
______ _ __ ____ ___ ____
|
|
9
|
+
/ ____/___ _(_) /___ _________ ____ / __/ / | / _/
|
|
10
|
+
/ /_ / __ `/ / / __ \/ ___/ __ \/ __ \/ /_ / /| | / /
|
|
11
|
+
/ __/ / /_/ / / / /_/ / / / /_/ / /_/ / __/ / ___ |_/ /
|
|
12
|
+
/_/ \__,_/_/_/ .___/_/ \____/\____/_/ /_/ |_/___/
|
|
13
|
+
/_/
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
# Failproof AI
|
|
17
|
+
|
|
18
|
+
[](https://befailproof.ai)
|
|
19
|
+
[](https://www.npmjs.com/package/failproofai)
|
|
20
|
+
[](LICENSE)
|
|
21
|
+
[](https://github.com/exospherehost/failproofai/actions)
|
|
22
|
+
[](https://join.slack.com/t/failproofai/shared_invite/zt-3v63b7k5e-O3NBHmj8X6n9gZSGDx6ggQ)
|
|
23
|
+
|
|
24
|
+
**Traduções**: [简体中文](docs/i18n/README.zh.md) | [日本語](docs/i18n/README.ja.md) | [한국어](docs/i18n/README.ko.md) | [Español](docs/i18n/README.es.md) | [Português](docs/i18n/README.pt-br.md) | [Deutsch](docs/i18n/README.de.md) | [Français](docs/i18n/README.fr.md) | [Русский](docs/i18n/README.ru.md) | [हिन्दी](docs/i18n/README.hi.md) | [Türkçe](docs/i18n/README.tr.md) | [Tiếng Việt](docs/i18n/README.vi.md) | [Italiano](docs/i18n/README.it.md) | [العربية](docs/i18n/README.ar.md) | [עברית](docs/i18n/README.he.md)
|
|
25
|
+
|
|
26
|
+
A maneira mais simples de gerenciar políticas que mantêm seus agentes de IA confiáveis, focados na tarefa e rodando de forma autônoma — para o **Claude Code** e o **Agents SDK**.
|
|
27
|
+
|
|
28
|
+
- **30 Políticas Integradas** - Detecte os modos de falha mais comuns dos agentes logo de cara. Bloqueie comandos destrutivos, evite vazamento de segredos, mantenha os agentes dentro dos limites do projeto, detecte loops e muito mais.
|
|
29
|
+
- **Políticas Personalizadas** - Escreva suas próprias regras de confiabilidade em JavaScript. Use a API `allow`/`deny`/`instruct` para impor convenções, evitar desvios, controlar operações ou integrar com sistemas externos.
|
|
30
|
+
- **Configuração Simples** - Ajuste qualquer política sem escrever código. Defina listas de permissão, branches protegidas e limites por projeto ou globalmente. Três escopos de configuração são mesclados automaticamente.
|
|
31
|
+
- **Monitor de Agentes** - Veja o que seus agentes fizeram enquanto você estava ausente. Navegue pelas sessões, inspecione cada chamada de ferramenta e revise exatamente onde as políticas foram acionadas.
|
|
32
|
+
|
|
33
|
+
Tudo roda localmente — nenhum dado sai da sua máquina.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Requisitos
|
|
38
|
+
|
|
39
|
+
- Node.js >= 20.9.0
|
|
40
|
+
- Bun >= 1.3.0 (opcional — necessário apenas para desenvolvimento / compilação a partir do código-fonte)
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Instalação
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm install -g failproofai
|
|
48
|
+
# ou
|
|
49
|
+
bun add -g failproofai
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Início rápido
|
|
55
|
+
|
|
56
|
+
### 1. Ative as políticas globalmente
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
failproofai policies --install
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Grava entradas de hook em `~/.claude/settings.json`. O Claude Code passará a invocar o failproofai antes e depois de cada chamada de ferramenta.
|
|
63
|
+
|
|
64
|
+
### 2. Abra o painel
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
failproofai
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Abre `http://localhost:8020` — navegue pelas sessões, inspecione logs e gerencie políticas.
|
|
71
|
+
|
|
72
|
+
### 3. Verifique o que está ativo
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
failproofai policies
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Instalação de políticas
|
|
81
|
+
|
|
82
|
+
### Escopos
|
|
83
|
+
|
|
84
|
+
| Escopo | Comando | Onde grava |
|
|
85
|
+
|--------|---------|------------|
|
|
86
|
+
| Global (padrão) | `failproofai policies --install` | `~/.claude/settings.json` |
|
|
87
|
+
| Projeto | `failproofai policies --install --scope project` | `.claude/settings.json` |
|
|
88
|
+
| Local | `failproofai policies --install --scope local` | `.claude/settings.local.json` |
|
|
89
|
+
|
|
90
|
+
### Instalar políticas específicas
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
failproofai policies --install block-sudo block-rm-rf sanitize-api-keys
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Remover políticas
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
failproofai policies --uninstall
|
|
100
|
+
# ou para um escopo específico:
|
|
101
|
+
failproofai policies --uninstall --scope project
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Configuração
|
|
107
|
+
|
|
108
|
+
A configuração das políticas fica em `~/.failproofai/policies-config.json` (global) ou `.failproofai/policies-config.json` no seu projeto (por projeto).
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"enabledPolicies": [
|
|
113
|
+
"block-sudo",
|
|
114
|
+
"block-rm-rf",
|
|
115
|
+
"sanitize-api-keys",
|
|
116
|
+
"block-push-master",
|
|
117
|
+
"block-env-files",
|
|
118
|
+
"block-read-outside-cwd"
|
|
119
|
+
],
|
|
120
|
+
"policyParams": {
|
|
121
|
+
"block-sudo": {
|
|
122
|
+
"allowPatterns": ["sudo systemctl status", "sudo journalctl"],
|
|
123
|
+
"hint": "Use apt-get directly without sudo."
|
|
124
|
+
},
|
|
125
|
+
"block-push-master": {
|
|
126
|
+
"protectedBranches": ["main", "release", "prod"],
|
|
127
|
+
"hint": "Try creating a fresh branch instead."
|
|
128
|
+
},
|
|
129
|
+
"sanitize-api-keys": {
|
|
130
|
+
"additionalPatterns": [
|
|
131
|
+
{ "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo API key" }
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
"warn-large-file-write": {
|
|
135
|
+
"thresholdKb": 512
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Três escopos de configuração** são mesclados automaticamente (projeto → local → global). Consulte [docs/configuration.mdx](docs/configuration.mdx) para as regras completas de mesclagem.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Políticas integradas
|
|
146
|
+
|
|
147
|
+
| Política | Descrição | Configurável |
|
|
148
|
+
|----------|-----------|:---:|
|
|
149
|
+
| `block-sudo` | Impede que agentes executem comandos privilegiados do sistema | `allowPatterns` |
|
|
150
|
+
| `block-rm-rf` | Previne exclusão recursiva acidental de arquivos | `allowPaths` |
|
|
151
|
+
| `block-curl-pipe-sh` | Impede que agentes direcionem scripts não confiáveis para o shell | |
|
|
152
|
+
| `block-failproofai-commands` | Previne a desinstalação do próprio failproofai | |
|
|
153
|
+
| `sanitize-jwt` | Impede que tokens JWT vazem para o contexto do agente | |
|
|
154
|
+
| `sanitize-api-keys` | Impede que chaves de API vazem para o contexto do agente | `additionalPatterns` |
|
|
155
|
+
| `sanitize-connection-strings` | Impede que credenciais de banco de dados vazem para o contexto do agente | |
|
|
156
|
+
| `sanitize-private-key-content` | Remove blocos de chave privada PEM da saída | |
|
|
157
|
+
| `sanitize-bearer-tokens` | Remove tokens Bearer de Authorization da saída | |
|
|
158
|
+
| `block-env-files` | Impede que agentes leiam arquivos .env | |
|
|
159
|
+
| `protect-env-vars` | Impede que agentes imprimam variáveis de ambiente | |
|
|
160
|
+
| `block-read-outside-cwd` | Mantém os agentes dentro dos limites do projeto | `allowPaths` |
|
|
161
|
+
| `block-secrets-write` | Impede gravações em arquivos de chave privada e certificados | `additionalPatterns` |
|
|
162
|
+
| `block-push-master` | Previne pushes acidentais para main/master | `protectedBranches` |
|
|
163
|
+
| `block-work-on-main` | Mantém agentes fora de branches protegidas | `protectedBranches` |
|
|
164
|
+
| `block-force-push` | Previne `git push --force` | |
|
|
165
|
+
| `warn-git-amend` | Lembra os agentes antes de fazer amend em commits | |
|
|
166
|
+
| `warn-git-stash-drop` | Lembra os agentes antes de descartar stashes | |
|
|
167
|
+
| `warn-all-files-staged` | Detecta `git add -A` acidental | |
|
|
168
|
+
| `warn-destructive-sql` | Detecta DROP/DELETE SQL antes da execução | |
|
|
169
|
+
| `warn-schema-alteration` | Detecta ALTER TABLE antes da execução | |
|
|
170
|
+
| `warn-large-file-write` | Detecta gravações de arquivos inesperadamente grandes | `thresholdKb` |
|
|
171
|
+
| `warn-package-publish` | Detecta `npm publish` acidental | |
|
|
172
|
+
| `warn-background-process` | Detecta inicializações não intencionais de processos em background | |
|
|
173
|
+
| `warn-global-package-install` | Detecta instalações não intencionais de pacotes globais | |
|
|
174
|
+
| …e mais | | |
|
|
175
|
+
|
|
176
|
+
Detalhes completos das políticas e referência de parâmetros: [docs/built-in-policies.mdx](docs/built-in-policies.mdx)
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Políticas personalizadas
|
|
181
|
+
|
|
182
|
+
Escreva suas próprias políticas para manter os agentes confiáveis e focados na tarefa:
|
|
183
|
+
|
|
184
|
+
```js
|
|
185
|
+
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
186
|
+
|
|
187
|
+
customPolicies.add({
|
|
188
|
+
name: "no-production-writes",
|
|
189
|
+
description: "Block writes to paths containing 'production'",
|
|
190
|
+
match: { events: ["PreToolUse"] },
|
|
191
|
+
fn: async (ctx) => {
|
|
192
|
+
if (!["Write", "Edit"].includes(ctx.toolName ?? "")) return allow();
|
|
193
|
+
const path = ctx.toolInput?.file_path ?? "";
|
|
194
|
+
if (path.includes("production")) return deny("Writes to production paths are blocked");
|
|
195
|
+
return allow();
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Instale com:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
failproofai policies --install --custom ./my-policies.js
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Funções de decisão
|
|
207
|
+
|
|
208
|
+
| Função | Efeito |
|
|
209
|
+
|--------|--------|
|
|
210
|
+
| `allow()` | Permite a operação |
|
|
211
|
+
| `allow(message)` | Permite e envia contexto informativo para o Claude *(beta)* |
|
|
212
|
+
| `deny(message)` | Bloqueia a operação; a mensagem é exibida para o Claude |
|
|
213
|
+
| `instruct(message)` | Adiciona contexto ao prompt do Claude; não bloqueia |
|
|
214
|
+
|
|
215
|
+
### Objeto de contexto (`ctx`)
|
|
216
|
+
|
|
217
|
+
| Campo | Tipo | Descrição |
|
|
218
|
+
|-------|------|-----------|
|
|
219
|
+
| `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
|
|
220
|
+
| `toolName` | `string` | Ferramenta sendo chamada (`"Bash"`, `"Write"`, `"Read"`, …) |
|
|
221
|
+
| `toolInput` | `object` | Parâmetros de entrada da ferramenta |
|
|
222
|
+
| `payload` | `object` | Payload completo do evento bruto |
|
|
223
|
+
| `session.cwd` | `string` | Diretório de trabalho da sessão do Claude Code |
|
|
224
|
+
| `session.sessionId` | `string` | Identificador da sessão |
|
|
225
|
+
| `session.transcriptPath` | `string` | Caminho para o arquivo de transcrição da sessão |
|
|
226
|
+
|
|
227
|
+
Hooks personalizados suportam importações locais transitivas, async/await e acesso a `process.env`. Erros são fail-open (registrados em `~/.failproofai/hook.log`, as políticas integradas continuam funcionando). Consulte [docs/custom-hooks.mdx](docs/custom-hooks.mdx) para o guia completo.
|
|
228
|
+
|
|
229
|
+
### Políticas baseadas em convenção (v0.0.2-beta.7+)
|
|
230
|
+
|
|
231
|
+
Coloque arquivos `*policies.{js,mjs,ts}` na pasta `.failproofai/policies/` e eles serão carregados automaticamente — sem necessidade de flag `--custom` ou alterações de configuração. Funciona como git hooks: basta adicionar o arquivo e pronto.
|
|
232
|
+
|
|
233
|
+
```text
|
|
234
|
+
# Nível de projeto — commitado no git, compartilhado com o time
|
|
235
|
+
.failproofai/policies/security-policies.mjs
|
|
236
|
+
.failproofai/policies/workflow-policies.mjs
|
|
237
|
+
|
|
238
|
+
# Nível de usuário — pessoal, aplicado a todos os projetos
|
|
239
|
+
~/.failproofai/policies/my-policies.mjs
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Ambos os níveis são carregados (união). Os arquivos são carregados em ordem alfabética dentro de cada diretório. Use prefixos `01-`, `02-`, etc. para controlar a ordem. Veja [examples/convention-policies/](examples/convention-policies/) para exemplos prontos para uso.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Telemetria
|
|
247
|
+
|
|
248
|
+
O Failproof AI coleta telemetria de uso anônima via PostHog para entender o uso das funcionalidades. Nenhum conteúdo de sessão, nome de arquivo, entrada de ferramenta ou informação pessoal é enviado.
|
|
249
|
+
|
|
250
|
+
Para desativar:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Documentação
|
|
259
|
+
|
|
260
|
+
| Guia | Descrição |
|
|
261
|
+
|------|-----------|
|
|
262
|
+
| [Primeiros Passos](docs/getting-started.mdx) | Instalação e primeiros passos |
|
|
263
|
+
| [Políticas Integradas](docs/built-in-policies.mdx) | Todas as 30 políticas integradas com parâmetros |
|
|
264
|
+
| [Políticas Personalizadas](docs/custom-policies.mdx) | Escreva suas próprias políticas |
|
|
265
|
+
| [Configuração](docs/configuration.mdx) | Formato do arquivo de configuração e mesclagem de escopos |
|
|
266
|
+
| [Painel](docs/dashboard.mdx) | Monitore sessões e revise a atividade das políticas |
|
|
267
|
+
| [Arquitetura](docs/architecture.mdx) | Como o sistema de hooks funciona |
|
|
268
|
+
| [Testes](docs/testing.mdx) | Executando testes e escrevendo novos |
|
|
269
|
+
|
|
270
|
+
### Execute a documentação localmente
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
docker build -f Dockerfile.docs -t failproofai-docs .
|
|
274
|
+
docker run --rm -p 3000:3000 failproofai-docs
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Abre o site de documentação Mintlify em `http://localhost:3000`. O container detecta alterações se você montar o diretório de docs:
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Nota para contribuidores do failproofai
|
|
286
|
+
|
|
287
|
+
O `.claude/settings.json` deste repositório usa `bun ./bin/failproofai.mjs --hook <EventType>` em vez do comando padrão `npx -y failproofai`. Isso ocorre porque executar `npx -y failproofai` dentro do próprio projeto failproofai gera um conflito de auto-referência.
|
|
288
|
+
|
|
289
|
+
Para todos os outros repositórios, a abordagem recomendada é `npx -y failproofai`, instalado via:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
failproofai policies --install --scope project
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Contribuindo
|
|
296
|
+
|
|
297
|
+
Consulte [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Licença
|
|
302
|
+
|
|
303
|
+
Consulte [LICENSE](LICENSE).
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
Criado e mantido pela **ExosphereHost: Reliability Research Lab for Your Agents**. Ajudamos empresas e startups a melhorar a confiabilidade de seus agentes de IA por meio de nossos próprios agentes, software e expertise. Saiba mais em [exosphere.host](https://exosphere.host).
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
> **⚠️** This is an auto-generated translation. For the latest version, see the [English README](../../README.md). Community corrections welcome!
|
|
2
|
+
|
|
3
|
+
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt-br.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | **🇷🇺 Русский** | [🇮🇳 हिन्दी](README.hi.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇹 Italiano](README.it.md) | [🇸🇦 العربية](README.ar.md) | [🇮🇱 עברית](README.he.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
______ _ __ ____ ___ ____
|
|
9
|
+
/ ____/___ _(_) /___ _________ ____ / __/ / | / _/
|
|
10
|
+
/ /_ / __ `/ / / __ \/ ___/ __ \/ __ \/ /_ / /| | / /
|
|
11
|
+
/ __/ / /_/ / / / /_/ / / / /_/ / /_/ / __/ / ___ |_/ /
|
|
12
|
+
/_/ \__,_/_/_/ .___/_/ \____/\____/_/ /_/ |_/___/
|
|
13
|
+
/_/
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
# Failproof AI
|
|
17
|
+
|
|
18
|
+
[](https://befailproof.ai)
|
|
19
|
+
[](https://www.npmjs.com/package/failproofai)
|
|
20
|
+
[](LICENSE)
|
|
21
|
+
[](https://github.com/exospherehost/failproofai/actions)
|
|
22
|
+
[](https://join.slack.com/t/failproofai/shared_invite/zt-3v63b7k5e-O3NBHmj8X6n9gZSGDx6ggQ)
|
|
23
|
+
|
|
24
|
+
**Переводы**: [简体中文](docs/i18n/README.zh.md) | [日本語](docs/i18n/README.ja.md) | [한국어](docs/i18n/README.ko.md) | [Español](docs/i18n/README.es.md) | [Português](docs/i18n/README.pt-br.md) | [Deutsch](docs/i18n/README.de.md) | [Français](docs/i18n/README.fr.md) | [Русский](docs/i18n/README.ru.md) | [हिन्दी](docs/i18n/README.hi.md) | [Türkçe](docs/i18n/README.tr.md) | [Tiếng Việt](docs/i18n/README.vi.md) | [Italiano](docs/i18n/README.it.md) | [العربية](docs/i18n/README.ar.md) | [עברית](docs/i18n/README.he.md)
|
|
25
|
+
|
|
26
|
+
Самый простой способ управлять политиками, которые делают ваших AI-агентов надежными, сосредоточенными и способными работать автономно — для **Claude Code** и **Agents SDK**.
|
|
27
|
+
|
|
28
|
+
- **30 встроенных политик** - Предотвращайте типичные сбои агентов уже из коробки. Блокируйте деструктивные команды, предотвращайте утечку секретов, держите агентов в границах проекта, обнаруживайте циклы и многое другое.
|
|
29
|
+
- **Пользовательские политики** - Напишите собственные правила надежности на JavaScript. Используйте API `allow`/`deny`/`instruct` для обеспечения соглашений, предотвращения отклонений, управления операциями или интеграции с внешними системами.
|
|
30
|
+
- **Простая конфигурация** - Настраивайте любую политику без написания кода. Устанавливайте списки разрешений, защищенные ветви, пороги для каждого проекта или глобально. Конфигурация трех уровней автоматически объединяется.
|
|
31
|
+
- **Монитор агентов** - Узнайте, что делали ваши агенты, пока вас не было. Просматривайте сеансы, проверяйте каждый вызов инструмента и смотрите, где именно сработали политики.
|
|
32
|
+
|
|
33
|
+
Всё работает локально — никакие данные не покидают вашу машину.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Требования
|
|
38
|
+
|
|
39
|
+
- Node.js >= 20.9.0
|
|
40
|
+
- Bun >= 1.3.0 (необязательно — требуется только для разработки / сборки из исходного кода)
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Установка
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm install -g failproofai
|
|
48
|
+
# или
|
|
49
|
+
bun add -g failproofai
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Быстрый старт
|
|
55
|
+
|
|
56
|
+
### 1. Включите политики глобально
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
failproofai policies --install
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Добавляет записи перехватчиков в `~/.claude/settings.json`. Теперь Claude Code будет вызывать failproofai до и после каждого вызова инструмента.
|
|
63
|
+
|
|
64
|
+
### 2. Запустите панель управления
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
failproofai
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Открывает `http://localhost:8020` — просматривайте сеансы, проверяйте логи, управляйте политиками.
|
|
71
|
+
|
|
72
|
+
### 3. Проверьте, что активно
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
failproofai policies
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Установка политик
|
|
81
|
+
|
|
82
|
+
### Уровни
|
|
83
|
+
|
|
84
|
+
| Уровень | Команда | Где записывает |
|
|
85
|
+
|---------|---------|----------------|
|
|
86
|
+
| Глобальный (по умолчанию) | `failproofai policies --install` | `~/.claude/settings.json` |
|
|
87
|
+
| Проект | `failproofai policies --install --scope project` | `.claude/settings.json` |
|
|
88
|
+
| Локальный | `failproofai policies --install --scope local` | `.claude/settings.local.json` |
|
|
89
|
+
|
|
90
|
+
### Установите конкретные политики
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
failproofai policies --install block-sudo block-rm-rf sanitize-api-keys
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Удаление политик
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
failproofai policies --uninstall
|
|
100
|
+
# или для конкретного уровня:
|
|
101
|
+
failproofai policies --uninstall --scope project
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Конфигурация
|
|
107
|
+
|
|
108
|
+
Конфигурация политик находится в `~/.failproofai/policies-config.json` (глобально) или `.failproofai/policies-config.json` в вашем проекте (для каждого проекта).
|
|
109
|
+
|
|
110
|
+
```json
|
|
111
|
+
{
|
|
112
|
+
"enabledPolicies": [
|
|
113
|
+
"block-sudo",
|
|
114
|
+
"block-rm-rf",
|
|
115
|
+
"sanitize-api-keys",
|
|
116
|
+
"block-push-master",
|
|
117
|
+
"block-env-files",
|
|
118
|
+
"block-read-outside-cwd"
|
|
119
|
+
],
|
|
120
|
+
"policyParams": {
|
|
121
|
+
"block-sudo": {
|
|
122
|
+
"allowPatterns": ["sudo systemctl status", "sudo journalctl"],
|
|
123
|
+
"hint": "Use apt-get directly without sudo."
|
|
124
|
+
},
|
|
125
|
+
"block-push-master": {
|
|
126
|
+
"protectedBranches": ["main", "release", "prod"],
|
|
127
|
+
"hint": "Try creating a fresh branch instead."
|
|
128
|
+
},
|
|
129
|
+
"sanitize-api-keys": {
|
|
130
|
+
"additionalPatterns": [
|
|
131
|
+
{ "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo API key" }
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
"warn-large-file-write": {
|
|
135
|
+
"thresholdKb": 512
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Три уровня конфигурации** автоматически объединяются (проект → локальный → глобальный). Полные правила объединения см. в [docs/configuration.mdx](docs/configuration.mdx).
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Встроенные политики
|
|
146
|
+
|
|
147
|
+
| Политика | Описание | Настраиваемо |
|
|
148
|
+
|----------|---------|:---:|
|
|
149
|
+
| `block-sudo` | Предотвратите запуск привилегированных системных команд агентами | `allowPatterns` |
|
|
150
|
+
| `block-rm-rf` | Предотвратите случайное рекурсивное удаление файлов | `allowPaths` |
|
|
151
|
+
| `block-curl-pipe-sh` | Предотвратите передачу ненадежных скриптов агентами в оболочку | |
|
|
152
|
+
| `block-failproofai-commands` | Предотвратите самоудаление | |
|
|
153
|
+
| `sanitize-jwt` | Остановите утечку JWT-токенов в контекст агента | |
|
|
154
|
+
| `sanitize-api-keys` | Остановите утечку API-ключей в контекст агента | `additionalPatterns` |
|
|
155
|
+
| `sanitize-connection-strings` | Остановите утечку учетных данных базы данных в контекст агента | |
|
|
156
|
+
| `sanitize-private-key-content` | Скройте блоки PEM-ключей из выходных данных | |
|
|
157
|
+
| `sanitize-bearer-tokens` | Скройте токены Authorization Bearer из выходных данных | |
|
|
158
|
+
| `block-env-files` | Не позволяйте агентам читать файлы .env | |
|
|
159
|
+
| `protect-env-vars` | Предотвратите вывод переменных окружения агентами | |
|
|
160
|
+
| `block-read-outside-cwd` | Держите агентов внутри границ проекта | `allowPaths` |
|
|
161
|
+
| `block-secrets-write` | Предотвратите запись в файлы приватных ключей и сертификатов | `additionalPatterns` |
|
|
162
|
+
| `block-push-master` | Предотвратите случайные отправки на main/master | `protectedBranches` |
|
|
163
|
+
| `block-work-on-main` | Держите агентов от защищенных ветвей | `protectedBranches` |
|
|
164
|
+
| `block-force-push` | Предотвратите `git push --force` | |
|
|
165
|
+
| `warn-git-amend` | Напомните агентам перед изменением коммитов | |
|
|
166
|
+
| `warn-git-stash-drop` | Напомните агентам перед удалением сохранений | |
|
|
167
|
+
| `warn-all-files-staged` | Поймайте случайный `git add -A` | |
|
|
168
|
+
| `warn-destructive-sql` | Поймайте DROP/DELETE SQL перед выполнением | |
|
|
169
|
+
| `warn-schema-alteration` | Поймайте ALTER TABLE перед выполнением | |
|
|
170
|
+
| `warn-large-file-write` | Поймайте неожиданно большие записи файлов | `thresholdKb` |
|
|
171
|
+
| `warn-package-publish` | Поймайте случайный `npm publish` | |
|
|
172
|
+
| `warn-background-process` | Поймайте непреднамеренные фоновые процессы | |
|
|
173
|
+
| `warn-global-package-install` | Поймайте непреднамеренные глобальные установки пакетов | |
|
|
174
|
+
| …и еще | | |
|
|
175
|
+
|
|
176
|
+
Полная информация о политиках и справочник параметров: [docs/built-in-policies.mdx](docs/built-in-policies.mdx)
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Пользовательские политики
|
|
181
|
+
|
|
182
|
+
Напишите собственные политики, чтобы ваши агенты были надежными и сосредоточенными:
|
|
183
|
+
|
|
184
|
+
```js
|
|
185
|
+
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
186
|
+
|
|
187
|
+
customPolicies.add({
|
|
188
|
+
name: "no-production-writes",
|
|
189
|
+
description: "Block writes to paths containing 'production'",
|
|
190
|
+
match: { events: ["PreToolUse"] },
|
|
191
|
+
fn: async (ctx) => {
|
|
192
|
+
if (!["Write", "Edit"].includes(ctx.toolName ?? "")) return allow();
|
|
193
|
+
const path = ctx.toolInput?.file_path ?? "";
|
|
194
|
+
if (path.includes("production")) return deny("Writes to production paths are blocked");
|
|
195
|
+
return allow();
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Установите с помощью:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
failproofai policies --install --custom ./my-policies.js
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Вспомогательные функции для решений
|
|
207
|
+
|
|
208
|
+
| Функция | Эффект |
|
|
209
|
+
|---------|--------|
|
|
210
|
+
| `allow()` | Разрешить операцию |
|
|
211
|
+
| `allow(message)` | Разрешить и отправить информационный контекст Claude *(бета)* |
|
|
212
|
+
| `deny(message)` | Заблокировать операцию; сообщение показано Claude |
|
|
213
|
+
| `instruct(message)` | Добавить контекст в подсказку Claude; не блокирует |
|
|
214
|
+
|
|
215
|
+
### Объект контекста (`ctx`)
|
|
216
|
+
|
|
217
|
+
| Поле | Тип | Описание |
|
|
218
|
+
|------|-----|---------|
|
|
219
|
+
| `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
|
|
220
|
+
| `toolName` | `string` | Вызываемый инструмент (`"Bash"`, `"Write"`, `"Read"`, …) |
|
|
221
|
+
| `toolInput` | `object` | Входные параметры инструмента |
|
|
222
|
+
| `payload` | `object` | Полный необработанный payload события |
|
|
223
|
+
| `session.cwd` | `string` | Рабочая директория сеанса Claude Code |
|
|
224
|
+
| `session.sessionId` | `string` | Идентификатор сеанса |
|
|
225
|
+
| `session.transcriptPath` | `string` | Путь к файлу стенограммы сеанса |
|
|
226
|
+
|
|
227
|
+
Пользовательские перехватчики поддерживают переходные локальные импорты, async/await и доступ к `process.env`. Ошибки безопасны (логируются в `~/.failproofai/hook.log`, встроенные политики продолжают работу). Полное руководство см. в [docs/custom-hooks.mdx](docs/custom-hooks.mdx).
|
|
228
|
+
|
|
229
|
+
### Политики на основе соглашений (v0.0.2-beta.7+)
|
|
230
|
+
|
|
231
|
+
Поместите файлы `*policies.{js,mjs,ts}` в `.failproofai/policies/` — они будут автоматически загружены без флага `--custom` или изменения конфигурации. Работает как git-хуки: поместите файл, и всё работает.
|
|
232
|
+
|
|
233
|
+
```text
|
|
234
|
+
# Уровень проекта — коммитится в git, общее с командой
|
|
235
|
+
.failproofai/policies/security-policies.mjs
|
|
236
|
+
.failproofai/policies/workflow-policies.mjs
|
|
237
|
+
|
|
238
|
+
# Уровень пользователя — личное, применяется ко всем проектам
|
|
239
|
+
~/.failproofai/policies/my-policies.mjs
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Загружаются оба уровня (объединение). Файлы загружаются в алфавитном порядке внутри каждой директории. Используйте префиксы `01-`, `02-`, и т.д., чтобы контролировать порядок. Готовые примеры см. в [examples/convention-policies/](examples/convention-policies/).
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Телеметрия
|
|
247
|
+
|
|
248
|
+
Failproof AI собирает анонимную телеметрию использования через PostHog для понимания использования функций. Содержимое сеанса, имена файлов, входные данные инструментов или личная информация никогда не отправляются.
|
|
249
|
+
|
|
250
|
+
Отключите это:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Документация
|
|
259
|
+
|
|
260
|
+
| Руководство | Описание |
|
|
261
|
+
|-----------|---------|
|
|
262
|
+
| [Начало работы](docs/getting-started.mdx) | Установка и первые шаги |
|
|
263
|
+
| [Встроенные политики](docs/built-in-policies.mdx) | Все 30 встроенных политик с параметрами |
|
|
264
|
+
| [Пользовательские политики](docs/custom-policies.mdx) | Напишите собственные политики |
|
|
265
|
+
| [Конфигурация](docs/configuration.mdx) | Формат файла конфигурации и объединение уровней |
|
|
266
|
+
| [Панель управления](docs/dashboard.mdx) | Мониторинг сеансов и проверка активности политик |
|
|
267
|
+
| [Архитектура](docs/architecture.mdx) | Как работает система перехватчиков |
|
|
268
|
+
| [Тестирование](docs/testing.mdx) | Запуск тестов и написание новых |
|
|
269
|
+
|
|
270
|
+
### Запустите документацию локально
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
docker build -f Dockerfile.docs -t failproofai-docs .
|
|
274
|
+
docker run --rm -p 3000:3000 failproofai-docs
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Откроет сайт документации Mintlify на `http://localhost:3000`. Контейнер отслеживает изменения, если вы монтируете директорию документов:
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Примечание для участников failproofai
|
|
286
|
+
|
|
287
|
+
`.claude/settings.json` этого репозитория использует `bun ./bin/failproofai.mjs --hook <EventType>` вместо стандартной команды `npx -y failproofai`. Это потому, что запуск `npx -y failproofai` внутри самого проекта failproofai создает конфликт самоссылающихся ссылок.
|
|
288
|
+
|
|
289
|
+
Для всех остальных репозиториев рекомендуемый подход — `npx -y failproofai`, установленный с помощью:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
failproofai policies --install --scope project
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Участие в разработке
|
|
296
|
+
|
|
297
|
+
См. [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Лицензия
|
|
302
|
+
|
|
303
|
+
См. [LICENSE](LICENSE).
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
Создано и поддерживается компанией **ExosphereHost: Reliability Research Lab for Your Agents**. Мы помогаем предприятиям и стартапам повысить надежность своих AI-агентов через собственные агенты, программное обеспечение и экспертизу. Узнайте больше на [exosphere.host](https://exosphere.host).
|
|
308
|
+
```
|