failproofai 0.0.2 → 0.0.4-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.claude/settings.json +316 -0
- package/.next/standalone/.failproofai/policies/workflow-policies.mjs +62 -0
- package/.next/standalone/.failproofai/policies-config.json +39 -0
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +3 -1
- package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/node_modules_posthog-node_dist_entrypoints_index_node_mjs_05pz9._._.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]__0qo8503._.js → [root-of-the-server]__0jqus-j._.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]__0w6l33k._.js +9 -9
- 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/{[root-of-the-server]__12kr5~_._.js → [root-of-the-server]__131id~1._.js} +2 -2
- 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/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a_7sdg.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ef3uwk.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0j79~gv.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0pbja1x.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0r6o0i2.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11y81~_.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_12or2kf.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/node_modules_posthog-node_dist_entrypoints_index_node_mjs_0mebn66._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +5 -5
- 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/{0y~0creqvl5wx.js → 045lpk_isd5np.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0cvffh-pbsv5u.js → 065qrrpfkts8s.js} +1 -1
- package/.next/standalone/.next/static/chunks/{031pa5~qfzt~_.js → 09e7drilkf1sn.js} +1 -1
- package/.next/standalone/.next/static/chunks/0gu_a.a80ritd.css +1 -0
- package/.next/standalone/.next/static/chunks/{15wf7x-e.8ia3.js → 0je_~y72wv~~2.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0x-625~1vx1lu.js → 0rqcttnl9u32c.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ov60i6md~37t.js → 0v2-.v07.zb9u.js} +2 -2
- package/.next/standalone/.next/static/chunks/{06og.7e9nkpjh.js → 0yye9-w._6rz~.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0_4y_t03jn2nq.js → 15proylk5ye2k.js} +1 -1
- package/.next/standalone/.next/static/chunks/174boqk9e~20i.js +6 -0
- package/.next/standalone/.next/static/chunks/{turbopack-0uc5y~g6h.n7-.js → turbopack-0r26pc8h0y_-e.js} +1 -1
- package/.next/standalone/CHANGELOG.md +108 -0
- package/.next/standalone/CLAUDE.md +28 -0
- package/.next/standalone/Dockerfile.docs +12 -0
- package/.next/standalone/README.md +95 -49
- package/.next/standalone/app/components/session-hooks-panel.tsx +14 -1
- package/.next/standalone/app/policies/hooks-client.tsx +14 -1
- package/.next/standalone/bin/failproofai.mjs +5 -0
- package/.next/standalone/bun.lock +76 -63
- package/.next/standalone/components/navbar.tsx +5 -0
- package/.next/standalone/dist/cli.mjs +535 -90
- package/.next/standalone/dist/index.js +2 -2
- package/.next/standalone/docs/ar/architecture.mdx +333 -0
- package/.next/standalone/docs/ar/built-in-policies.mdx +537 -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 +48 -0
- package/.next/standalone/docs/ar/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/ar/cli/remove-policies.mdx +43 -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/{architecture.md → architecture.mdx} +40 -23
- package/.next/standalone/docs/{built-in-policies.md → built-in-policies.mdx} +126 -15
- package/.next/standalone/docs/cli/dashboard.mdx +28 -0
- package/.next/standalone/docs/cli/environment-variables.mdx +34 -0
- package/.next/standalone/docs/cli/hook.mdx +30 -0
- package/.next/standalone/docs/cli/install-policies.mdx +47 -0
- package/.next/standalone/docs/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/cli/remove-policies.mdx +43 -0
- package/.next/standalone/docs/cli/version.mdx +12 -0
- package/.next/standalone/docs/{configuration.md → configuration.mdx} +62 -16
- package/.next/standalone/docs/custom-policies.mdx +357 -0
- package/.next/standalone/docs/{dashboard.md → dashboard.mdx} +26 -29
- package/.next/standalone/docs/de/architecture.mdx +332 -0
- package/.next/standalone/docs/de/built-in-policies.mdx +537 -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 +47 -0
- package/.next/standalone/docs/de/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/de/cli/remove-policies.mdx +43 -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 +943 -24
- package/.next/standalone/docs/es/architecture.mdx +332 -0
- package/.next/standalone/docs/es/built-in-policies.mdx +537 -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 +47 -0
- package/.next/standalone/docs/es/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/es/cli/remove-policies.mdx +43 -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/examples.mdx +253 -0
- package/.next/standalone/docs/for-agents.mdx +38 -0
- package/.next/standalone/docs/fr/architecture.mdx +332 -0
- package/.next/standalone/docs/fr/built-in-policies.mdx +537 -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 +47 -0
- package/.next/standalone/docs/fr/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/fr/cli/remove-policies.mdx +43 -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/getting-started.mdx +134 -0
- package/.next/standalone/docs/he/architecture.mdx +333 -0
- package/.next/standalone/docs/he/built-in-policies.mdx +535 -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 +47 -0
- package/.next/standalone/docs/he/cli/list-policies.mdx +32 -0
- package/.next/standalone/docs/he/cli/remove-policies.mdx +43 -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 +535 -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 +47 -0
- package/.next/standalone/docs/hi/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/hi/cli/remove-policies.mdx +43 -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/introduction.mdx +57 -0
- package/.next/standalone/docs/it/architecture.mdx +333 -0
- package/.next/standalone/docs/it/built-in-policies.mdx +537 -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 +47 -0
- package/.next/standalone/docs/it/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/it/cli/remove-policies.mdx +43 -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 +535 -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 +47 -0
- package/.next/standalone/docs/ja/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/ja/cli/remove-policies.mdx +43 -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 +535 -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 +47 -0
- package/.next/standalone/docs/ko/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/ko/cli/remove-policies.mdx +43 -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/logo/dark.svg +21 -0
- package/.next/standalone/docs/logo/light.svg +21 -0
- package/.next/standalone/docs/{package-aliases.md → package-aliases.mdx} +5 -5
- package/.next/standalone/docs/pt-br/architecture.mdx +332 -0
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +537 -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 +47 -0
- package/.next/standalone/docs/pt-br/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/pt-br/cli/remove-policies.mdx +43 -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 +537 -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 +43 -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/{testing.md → testing.mdx} +11 -11
- package/.next/standalone/docs/tr/architecture.mdx +333 -0
- package/.next/standalone/docs/tr/built-in-policies.mdx +537 -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 +47 -0
- package/.next/standalone/docs/tr/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/tr/cli/remove-policies.mdx +44 -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 +537 -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 +47 -0
- package/.next/standalone/docs/vi/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/vi/cli/remove-policies.mdx +43 -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 +535 -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 +47 -0
- package/.next/standalone/docs/zh/cli/list-policies.mdx +31 -0
- package/.next/standalone/docs/zh/cli/remove-policies.mdx +43 -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/examples/convention-policies/security-policies.mjs +40 -0
- package/.next/standalone/examples/convention-policies/workflow-policies.mjs +41 -0
- package/.next/standalone/next.config.ts +5 -3
- package/.next/standalone/node_modules/@next/env/package.json +1 -1
- package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/jsonwebtoken/index.js +2 -2
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +7 -2
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/render.js +20 -19
- package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/.next/standalone/node_modules/next/package.json +15 -15
- package/.next/standalone/node_modules/react/cjs/react.development.js +1 -1
- package/.next/standalone/node_modules/react/cjs/react.production.js +1 -1
- package/.next/standalone/node_modules/react/package.json +1 -1
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js +1 -1
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js +1 -1
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.browser.production.js +3 -3
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.edge.production.js +3 -3
- package/.next/standalone/node_modules/react-dom/cjs/react-dom-server.node.production.js +3 -3
- package/.next/standalone/node_modules/react-dom/cjs/react-dom.production.js +1 -1
- package/.next/standalone/node_modules/react-dom/package.json +2 -2
- package/.next/standalone/package.json +13 -10
- 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/skills-lock.json +10 -0
- package/.next/standalone/src/hooks/builtin-policies.ts +401 -25
- package/.next/standalone/src/hooks/custom-hooks-loader.ts +165 -21
- package/.next/standalone/src/hooks/handler.ts +33 -6
- package/.next/standalone/src/hooks/hook-activity-store.ts +6 -1
- package/.next/standalone/src/hooks/hooks-config.ts +47 -2
- package/.next/standalone/src/hooks/llm-client.ts +2 -2
- package/.next/standalone/src/hooks/loader-utils.ts +4 -4
- package/.next/standalone/src/hooks/manager.ts +67 -16
- package/.next/standalone/src/hooks/policy-evaluator.ts +58 -19
- package/.next/standalone/src/hooks/policy-helpers.ts +2 -2
- package/.next/standalone/vitest.config.e2e.mts +3 -0
- package/.next/standalone/vitest.config.mts +3 -0
- package/README.md +95 -49
- package/bin/failproofai.mjs +5 -0
- package/dist/cli.mjs +535 -90
- package/dist/index.js +2 -2
- package/package.json +13 -10
- 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/builtin-policies.ts +401 -25
- package/src/hooks/custom-hooks-loader.ts +165 -21
- package/src/hooks/handler.ts +33 -6
- package/src/hooks/hook-activity-store.ts +6 -1
- package/src/hooks/hooks-config.ts +47 -2
- package/src/hooks/llm-client.ts +2 -2
- package/src/hooks/loader-utils.ts +4 -4
- package/src/hooks/manager.ts +67 -16
- package/src/hooks/policy-evaluator.ts +58 -19
- package/src/hooks/policy-helpers.ts +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__02nt~6d._.js +0 -3
- package/.next/standalone/.next/static/chunks/0c_ljlxa._4lc.js +0 -6
- package/.next/standalone/.next/static/chunks/15jpradyu_531.css +0 -1
- package/.next/standalone/docs/cli-reference.md +0 -175
- package/.next/standalone/docs/custom-hooks.md +0 -261
- package/.next/standalone/docs/getting-started.md +0 -128
- package/.next/standalone/docs/introduction.md +0 -47
- /package/.next/standalone/.next/static/{WS-OQSqL1Lp1w_obXfjvl → WRbDp8A_ORPof197CezOZ}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{WS-OQSqL1Lp1w_obXfjvl → WRbDp8A_ORPof197CezOZ}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{WS-OQSqL1Lp1w_obXfjvl → WRbDp8A_ORPof197CezOZ}/_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](README.pt-br.md) | **🇩🇪 Deutsch** | [🇫🇷 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
|
+
**Übersetzungen**: [简体中文](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
|
+
Der einfachste Weg, Richtlinien zu verwalten, die Ihre KI-Agenten zuverlässig, fokussiert und autonom am Laufen halten – für **Claude Code** & das **Agents SDK**.
|
|
27
|
+
|
|
28
|
+
- **30 integrierte Richtlinien** – Häufige Fehlerquellen von Agenten werden sofort abgefangen. Destruktive Befehle blockieren, Secret-Leaks verhindern, Agenten innerhalb von Projektgrenzen halten, Schleifen erkennen und vieles mehr.
|
|
29
|
+
- **Benutzerdefinierte Richtlinien** – Schreiben Sie eigene Zuverlässigkeitsregeln in JavaScript. Nutzen Sie die `allow`/`deny`/`instruct`-API, um Konventionen durchzusetzen, Drift zu verhindern, Operationen zu steuern oder externe Systeme einzubinden.
|
|
30
|
+
- **Einfache Konfiguration** – Jede Richtlinie lässt sich ohne Code anpassen. Allowlists, geschützte Branches und Schwellenwerte lassen sich pro Projekt oder global festlegen. Drei Konfigurationsebenen werden automatisch zusammengeführt.
|
|
31
|
+
- **Agent Monitor** – Sehen Sie, was Ihre Agenten in Ihrer Abwesenheit getan haben. Sitzungen durchsuchen, jeden Tool-Aufruf inspizieren und genau nachvollziehen, wo Richtlinien ausgelöst wurden.
|
|
32
|
+
|
|
33
|
+
Alles läuft lokal – keine Daten verlassen Ihren Rechner.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Voraussetzungen
|
|
38
|
+
|
|
39
|
+
- Node.js >= 20.9.0
|
|
40
|
+
- Bun >= 1.3.0 (optional – nur für Entwicklung / Erstellen aus dem Quellcode erforderlich)
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Installation
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm install -g failproofai
|
|
48
|
+
# oder
|
|
49
|
+
bun add -g failproofai
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Schnellstart
|
|
55
|
+
|
|
56
|
+
### 1. Richtlinien global aktivieren
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
failproofai policies --install
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Schreibt Hook-Einträge in `~/.claude/settings.json`. Claude Code ruft failproofai nun vor und nach jedem Tool-Aufruf auf.
|
|
63
|
+
|
|
64
|
+
### 2. Dashboard starten
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
failproofai
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Öffnet `http://localhost:8020` – Sitzungen durchsuchen, Logs inspizieren, Richtlinien verwalten.
|
|
71
|
+
|
|
72
|
+
### 3. Aktive Richtlinien prüfen
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
failproofai policies
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Richtlinien-Installation
|
|
81
|
+
|
|
82
|
+
### Geltungsbereiche
|
|
83
|
+
|
|
84
|
+
| Bereich | Befehl | Schreibort |
|
|
85
|
+
|---------|--------|------------|
|
|
86
|
+
| Global (Standard) | `failproofai policies --install` | `~/.claude/settings.json` |
|
|
87
|
+
| Projekt | `failproofai policies --install --scope project` | `.claude/settings.json` |
|
|
88
|
+
| Lokal | `failproofai policies --install --scope local` | `.claude/settings.local.json` |
|
|
89
|
+
|
|
90
|
+
### Bestimmte Richtlinien installieren
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
failproofai policies --install block-sudo block-rm-rf sanitize-api-keys
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Richtlinien entfernen
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
failproofai policies --uninstall
|
|
100
|
+
# oder für einen bestimmten Bereich:
|
|
101
|
+
failproofai policies --uninstall --scope project
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Konfiguration
|
|
107
|
+
|
|
108
|
+
Die Richtlinienkonfiguration befindet sich in `~/.failproofai/policies-config.json` (global) oder `.failproofai/policies-config.json` in Ihrem Projekt (projektbezogen).
|
|
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
|
+
**Drei Konfigurationsebenen** werden automatisch zusammengeführt (Projekt → Lokal → Global). Vollständige Zusammenführungsregeln finden Sie in [docs/configuration.mdx](docs/configuration.mdx).
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Integrierte Richtlinien
|
|
146
|
+
|
|
147
|
+
| Richtlinie | Beschreibung | Konfigurierbar |
|
|
148
|
+
|------------|--------------|:--------------:|
|
|
149
|
+
| `block-sudo` | Verhindert, dass Agenten privilegierte Systembefehle ausführen | `allowPatterns` |
|
|
150
|
+
| `block-rm-rf` | Verhindert versehentliches rekursives Löschen von Dateien | `allowPaths` |
|
|
151
|
+
| `block-curl-pipe-sh` | Verhindert, dass Agenten nicht vertrauenswürdige Skripte an die Shell weiterleiten | |
|
|
152
|
+
| `block-failproofai-commands` | Verhindert die Selbst-Deinstallation | |
|
|
153
|
+
| `sanitize-jwt` | Verhindert, dass JWT-Tokens in den Agentenkontext gelangen | |
|
|
154
|
+
| `sanitize-api-keys` | Verhindert, dass API-Schlüssel in den Agentenkontext gelangen | `additionalPatterns` |
|
|
155
|
+
| `sanitize-connection-strings` | Verhindert, dass Datenbank-Anmeldedaten in den Agentenkontext gelangen | |
|
|
156
|
+
| `sanitize-private-key-content` | Schwärzt PEM-Private-Key-Blöcke aus der Ausgabe | |
|
|
157
|
+
| `sanitize-bearer-tokens` | Schwärzt Authorization-Bearer-Tokens aus der Ausgabe | |
|
|
158
|
+
| `block-env-files` | Verhindert, dass Agenten .env-Dateien lesen | |
|
|
159
|
+
| `protect-env-vars` | Verhindert, dass Agenten Umgebungsvariablen ausgeben | |
|
|
160
|
+
| `block-read-outside-cwd` | Hält Agenten innerhalb der Projektgrenzen | `allowPaths` |
|
|
161
|
+
| `block-secrets-write` | Verhindert das Schreiben in Private-Key- und Zertifikatsdateien | `additionalPatterns` |
|
|
162
|
+
| `block-push-master` | Verhindert versehentliche Pushes nach main/master | `protectedBranches` |
|
|
163
|
+
| `block-work-on-main` | Hält Agenten von geschützten Branches fern | `protectedBranches` |
|
|
164
|
+
| `block-force-push` | Verhindert `git push --force` | |
|
|
165
|
+
| `warn-git-amend` | Erinnert Agenten vor dem Ändern von Commits | |
|
|
166
|
+
| `warn-git-stash-drop` | Erinnert Agenten vor dem Verwerfen von Stashes | |
|
|
167
|
+
| `warn-all-files-staged` | Erkennt versehentliches `git add -A` | |
|
|
168
|
+
| `warn-destructive-sql` | Erkennt DROP/DELETE-SQL vor der Ausführung | |
|
|
169
|
+
| `warn-schema-alteration` | Erkennt ALTER TABLE vor der Ausführung | |
|
|
170
|
+
| `warn-large-file-write` | Erkennt unerwartet große Schreibvorgänge | `thresholdKb` |
|
|
171
|
+
| `warn-package-publish` | Erkennt versehentliches `npm publish` | |
|
|
172
|
+
| `warn-background-process` | Erkennt unbeabsichtigte Starts von Hintergrundprozessen | |
|
|
173
|
+
| `warn-global-package-install` | Erkennt unbeabsichtigte globale Paketinstallationen | |
|
|
174
|
+
| …und mehr | | |
|
|
175
|
+
|
|
176
|
+
Vollständige Richtliniendetails und Parameterreferenz: [docs/built-in-policies.mdx](docs/built-in-policies.mdx)
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Benutzerdefinierte Richtlinien
|
|
181
|
+
|
|
182
|
+
Schreiben Sie eigene Richtlinien, um Agenten zuverlässig und fokussiert zu halten:
|
|
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
|
+
Installieren mit:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
failproofai policies --install --custom ./my-policies.js
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Entscheidungs-Hilfsfunktionen
|
|
207
|
+
|
|
208
|
+
| Funktion | Wirkung |
|
|
209
|
+
|----------|---------|
|
|
210
|
+
| `allow()` | Erlaubt die Operation |
|
|
211
|
+
| `allow(message)` | Erlaubt und sendet informativen Kontext an Claude *(beta)* |
|
|
212
|
+
| `deny(message)` | Blockiert die Operation; Nachricht wird Claude angezeigt |
|
|
213
|
+
| `instruct(message)` | Fügt Claude's Prompt Kontext hinzu; blockiert nicht |
|
|
214
|
+
|
|
215
|
+
### Kontextobjekt (`ctx`)
|
|
216
|
+
|
|
217
|
+
| Feld | Typ | Beschreibung |
|
|
218
|
+
|------|-----|--------------|
|
|
219
|
+
| `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
|
|
220
|
+
| `toolName` | `string` | Aufgerufenes Tool (`"Bash"`, `"Write"`, `"Read"`, …) |
|
|
221
|
+
| `toolInput` | `object` | Eingabeparameter des Tools |
|
|
222
|
+
| `payload` | `object` | Vollständige rohe Event-Nutzdaten |
|
|
223
|
+
| `session.cwd` | `string` | Arbeitsverzeichnis der Claude Code-Sitzung |
|
|
224
|
+
| `session.sessionId` | `string` | Sitzungskennung |
|
|
225
|
+
| `session.transcriptPath` | `string` | Pfad zur Sitzungs-Transkriptdatei |
|
|
226
|
+
|
|
227
|
+
Benutzerdefinierte Hooks unterstützen transitive lokale Importe, async/await und Zugriff auf `process.env`. Fehler sind fail-open (werden in `~/.failproofai/hook.log` protokolliert, integrierte Richtlinien laufen weiter). Eine vollständige Anleitung finden Sie unter [docs/custom-hooks.mdx](docs/custom-hooks.mdx).
|
|
228
|
+
|
|
229
|
+
### Konventionsbasierte Richtlinien (v0.0.2-beta.7+)
|
|
230
|
+
|
|
231
|
+
Legen Sie `*policies.{js,mjs,ts}`-Dateien in `.failproofai/policies/` ab – sie werden automatisch geladen, ohne `--custom`-Flag oder Konfigurationsänderungen. Funktioniert wie Git-Hooks: Datei ablegen, fertig.
|
|
232
|
+
|
|
233
|
+
```text
|
|
234
|
+
# Projektebene — in Git eingecheckt, mit dem Team geteilt
|
|
235
|
+
.failproofai/policies/security-policies.mjs
|
|
236
|
+
.failproofai/policies/workflow-policies.mjs
|
|
237
|
+
|
|
238
|
+
# Benutzerebene — persönlich, gilt für alle Projekte
|
|
239
|
+
~/.failproofai/policies/my-policies.mjs
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Beide Ebenen werden geladen (Vereinigung). Dateien werden innerhalb jedes Verzeichnisses alphabetisch geladen. Verwenden Sie Präfixe wie `01-`, `02-` usw., um die Reihenfolge zu steuern. Fertige Beispiele finden Sie unter [examples/convention-policies/](examples/convention-policies/).
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Telemetrie
|
|
247
|
+
|
|
248
|
+
Failproof AI erfasst anonyme Nutzungstelemetrie über PostHog, um das Feature-Nutzungsverhalten zu verstehen. Es werden niemals Sitzungsinhalte, Dateinamen, Tool-Eingaben oder personenbezogene Daten übermittelt.
|
|
249
|
+
|
|
250
|
+
Deaktivieren:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Dokumentation
|
|
259
|
+
|
|
260
|
+
| Leitfaden | Beschreibung |
|
|
261
|
+
|-----------|--------------|
|
|
262
|
+
| [Erste Schritte](docs/getting-started.mdx) | Installation und erste Schritte |
|
|
263
|
+
| [Integrierte Richtlinien](docs/built-in-policies.mdx) | Alle 30 integrierten Richtlinien mit Parametern |
|
|
264
|
+
| [Benutzerdefinierte Richtlinien](docs/custom-policies.mdx) | Eigene Richtlinien schreiben |
|
|
265
|
+
| [Konfiguration](docs/configuration.mdx) | Konfigurationsdateiformat und Bereichsmerge |
|
|
266
|
+
| [Dashboard](docs/dashboard.mdx) | Sitzungen überwachen und Richtlinienaktivität prüfen |
|
|
267
|
+
| [Architektur](docs/architecture.mdx) | Funktionsweise des Hook-Systems |
|
|
268
|
+
| [Tests](docs/testing.mdx) | Tests ausführen und neue schreiben |
|
|
269
|
+
|
|
270
|
+
### Dokumentation lokal ausführen
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
docker build -f Dockerfile.docs -t failproofai-docs .
|
|
274
|
+
docker run --rm -p 3000:3000 failproofai-docs
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Öffnet die Mintlify-Dokumentationsseite unter `http://localhost:3000`. Der Container erkennt Änderungen, wenn Sie das Docs-Verzeichnis einbinden:
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Hinweis für failproofai-Mitwirkende
|
|
286
|
+
|
|
287
|
+
Die `.claude/settings.json` dieses Repos verwendet `bun ./bin/failproofai.mjs --hook <EventType>` anstelle des Standardbefehls `npx -y failproofai`. Der Grund: Das Ausführen von `npx -y failproofai` innerhalb des failproofai-Projekts selbst erzeugt einen selbstreferenzierenden Konflikt.
|
|
288
|
+
|
|
289
|
+
Für alle anderen Repos ist der empfohlene Ansatz `npx -y failproofai`, installiert über:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
failproofai policies --install --scope project
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Mitwirken
|
|
296
|
+
|
|
297
|
+
Siehe [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Lizenz
|
|
302
|
+
|
|
303
|
+
Siehe [LICENSE](LICENSE).
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
Entwickelt und gepflegt von **ExosphereHost: Reliability Research Lab for Your Agents**. Wir helfen Unternehmen und Startups dabei, die Zuverlässigkeit ihrer KI-Agenten durch eigene Agenten, Software und Expertise zu verbessern. Mehr erfahren unter [exosphere.host](https://exosphere.host).
|
|
@@ -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** | [🇧🇷 Português](README.pt-br.md) | [🇩🇪 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
|
+
**Traducciones**: [简体中文](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
|
+
La forma más sencilla de gestionar políticas que mantienen a tus agentes de IA fiables, enfocados y funcionando de forma autónoma — para **Claude Code** y el **Agents SDK**.
|
|
27
|
+
|
|
28
|
+
- **30 políticas integradas** — Detecta los modos de fallo más comunes de los agentes desde el primer momento. Bloquea comandos destructivos, evita la filtración de secretos, mantiene a los agentes dentro de los límites del proyecto, detecta bucles y más.
|
|
29
|
+
- **Políticas personalizadas** — Escribe tus propias reglas de fiabilidad en JavaScript. Usa la API `allow`/`deny`/`instruct` para aplicar convenciones, prevenir desvíos, controlar operaciones o integrarte con sistemas externos.
|
|
30
|
+
- **Configuración sencilla** — Ajusta cualquier política sin escribir código. Define listas de permitidos, ramas protegidas y umbrales por proyecto o de forma global. La configuración de tres niveles se fusiona automáticamente.
|
|
31
|
+
- **Monitor de agentes** — Consulta qué hicieron tus agentes mientras no estabas. Navega por las sesiones, inspecciona cada llamada a herramientas y revisa exactamente dónde se activaron las políticas.
|
|
32
|
+
|
|
33
|
+
Todo se ejecuta localmente — ningún dato sale de tu máquina.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Requisitos
|
|
38
|
+
|
|
39
|
+
- Node.js >= 20.9.0
|
|
40
|
+
- Bun >= 1.3.0 (opcional — solo necesario para desarrollo o compilación desde el código fuente)
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Instalación
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm install -g failproofai
|
|
48
|
+
# o
|
|
49
|
+
bun add -g failproofai
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Inicio rápido
|
|
55
|
+
|
|
56
|
+
### 1. Habilitar políticas globalmente
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
failproofai policies --install
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Escribe entradas de hooks en `~/.claude/settings.json`. A partir de ahora, Claude Code invocará failproofai antes y después de cada llamada a herramientas.
|
|
63
|
+
|
|
64
|
+
### 2. Iniciar el panel de control
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
failproofai
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Abre `http://localhost:8020` — navega por sesiones, inspecciona registros y gestiona políticas.
|
|
71
|
+
|
|
72
|
+
### 3. Comprobar qué está activo
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
failproofai policies
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Instalación de políticas
|
|
81
|
+
|
|
82
|
+
### Niveles
|
|
83
|
+
|
|
84
|
+
| Nivel | Comando | Dónde escribe |
|
|
85
|
+
|-------|---------|----------------|
|
|
86
|
+
| Global (por defecto) | `failproofai policies --install` | `~/.claude/settings.json` |
|
|
87
|
+
| Proyecto | `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
|
+
### Eliminar políticas
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
failproofai policies --uninstall
|
|
100
|
+
# o para un nivel específico:
|
|
101
|
+
failproofai policies --uninstall --scope project
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Configuración
|
|
107
|
+
|
|
108
|
+
La configuración de políticas se encuentra en `~/.failproofai/policies-config.json` (global) o en `.failproofai/policies-config.json` dentro de tu proyecto (por proyecto).
|
|
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
|
+
**Los tres niveles de configuración** se fusionan automáticamente (proyecto → local → global). Consulta [docs/configuration.mdx](docs/configuration.mdx) para conocer las reglas completas de fusión.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Políticas integradas
|
|
146
|
+
|
|
147
|
+
| Política | Descripción | Configurable |
|
|
148
|
+
|----------|-------------|:---:|
|
|
149
|
+
| `block-sudo` | Evita que los agentes ejecuten comandos del sistema con privilegios | `allowPatterns` |
|
|
150
|
+
| `block-rm-rf` | Previene la eliminación accidental recursiva de archivos | `allowPaths` |
|
|
151
|
+
| `block-curl-pipe-sh` | Evita que los agentes envíen scripts no confiables al shell por tubería | |
|
|
152
|
+
| `block-failproofai-commands` | Previene la autodesinstalación | |
|
|
153
|
+
| `sanitize-jwt` | Evita que los tokens JWT se filtren al contexto del agente | |
|
|
154
|
+
| `sanitize-api-keys` | Evita que las claves de API se filtren al contexto del agente | `additionalPatterns` |
|
|
155
|
+
| `sanitize-connection-strings` | Evita que las credenciales de base de datos se filtren al contexto del agente | |
|
|
156
|
+
| `sanitize-private-key-content` | Redacta bloques de clave privada PEM de la salida | |
|
|
157
|
+
| `sanitize-bearer-tokens` | Redacta tokens Bearer de Authorization de la salida | |
|
|
158
|
+
| `block-env-files` | Impide que los agentes lean archivos .env | |
|
|
159
|
+
| `protect-env-vars` | Evita que los agentes impriman variables de entorno | |
|
|
160
|
+
| `block-read-outside-cwd` | Mantiene a los agentes dentro de los límites del proyecto | `allowPaths` |
|
|
161
|
+
| `block-secrets-write` | Previene escrituras en archivos de clave privada y certificados | `additionalPatterns` |
|
|
162
|
+
| `block-push-master` | Previene envíos accidentales a main/master | `protectedBranches` |
|
|
163
|
+
| `block-work-on-main` | Mantiene a los agentes fuera de las ramas protegidas | `protectedBranches` |
|
|
164
|
+
| `block-force-push` | Previene `git push --force` | |
|
|
165
|
+
| `warn-git-amend` | Recuerda a los agentes antes de modificar commits | |
|
|
166
|
+
| `warn-git-stash-drop` | Recuerda a los agentes antes de eliminar stashes | |
|
|
167
|
+
| `warn-all-files-staged` | Detecta un `git add -A` accidental | |
|
|
168
|
+
| `warn-destructive-sql` | Detecta sentencias DROP/DELETE SQL antes de ejecutarlas | |
|
|
169
|
+
| `warn-schema-alteration` | Detecta ALTER TABLE antes de ejecutarlo | |
|
|
170
|
+
| `warn-large-file-write` | Detecta escrituras de archivos inesperadamente grandes | `thresholdKb` |
|
|
171
|
+
| `warn-package-publish` | Detecta un `npm publish` accidental | |
|
|
172
|
+
| `warn-background-process` | Detecta lanzamientos no intencionados de procesos en segundo plano | |
|
|
173
|
+
| `warn-global-package-install` | Detecta instalaciones globales de paquetes no intencionadas | |
|
|
174
|
+
| …y más | | |
|
|
175
|
+
|
|
176
|
+
Detalles completos de políticas y referencia de parámetros: [docs/built-in-policies.mdx](docs/built-in-policies.mdx)
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Políticas personalizadas
|
|
181
|
+
|
|
182
|
+
Escribe tus propias políticas para mantener a los agentes fiables y enfocados:
|
|
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
|
+
Instala con:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
failproofai policies --install --custom ./my-policies.js
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Funciones de decisión
|
|
207
|
+
|
|
208
|
+
| Función | Efecto |
|
|
209
|
+
|---------|--------|
|
|
210
|
+
| `allow()` | Permite la operación |
|
|
211
|
+
| `allow(message)` | Permite y envía contexto informativo a Claude *(beta)* |
|
|
212
|
+
| `deny(message)` | Bloquea la operación; el mensaje se muestra a Claude |
|
|
213
|
+
| `instruct(message)` | Añade contexto al prompt de Claude; no bloquea |
|
|
214
|
+
|
|
215
|
+
### Objeto de contexto (`ctx`)
|
|
216
|
+
|
|
217
|
+
| Campo | Tipo | Descripción |
|
|
218
|
+
|-------|------|-------------|
|
|
219
|
+
| `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
|
|
220
|
+
| `toolName` | `string` | Herramienta que se está llamando (`"Bash"`, `"Write"`, `"Read"`, …) |
|
|
221
|
+
| `toolInput` | `object` | Parámetros de entrada de la herramienta |
|
|
222
|
+
| `payload` | `object` | Payload completo del evento en bruto |
|
|
223
|
+
| `session.cwd` | `string` | Directorio de trabajo de la sesión de Claude Code |
|
|
224
|
+
| `session.sessionId` | `string` | Identificador de sesión |
|
|
225
|
+
| `session.transcriptPath` | `string` | Ruta al archivo de transcripción de la sesión |
|
|
226
|
+
|
|
227
|
+
Los hooks personalizados admiten importaciones locales transitivas, async/await y acceso a `process.env`. Los errores son fail-open (se registran en `~/.failproofai/hook.log`, las políticas integradas continúan). Consulta [docs/custom-hooks.mdx](docs/custom-hooks.mdx) para la guía completa.
|
|
228
|
+
|
|
229
|
+
### Políticas basadas en convenciones (v0.0.2-beta.7+)
|
|
230
|
+
|
|
231
|
+
Coloca archivos `*policies.{js,mjs,ts}` en `.failproofai/policies/` y se cargarán automáticamente — sin necesidad de usar la opción `--custom` ni modificar la configuración. Funciona como los git hooks: añade un archivo y listo.
|
|
232
|
+
|
|
233
|
+
```text
|
|
234
|
+
# Nivel de proyecto — guardado en git, compartido con el equipo
|
|
235
|
+
.failproofai/policies/security-policies.mjs
|
|
236
|
+
.failproofai/policies/workflow-policies.mjs
|
|
237
|
+
|
|
238
|
+
# Nivel de usuario — personal, se aplica a todos los proyectos
|
|
239
|
+
~/.failproofai/policies/my-policies.mjs
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Ambos niveles se cargan (unión). Los archivos se cargan en orden alfabético dentro de cada directorio. Usa el prefijo `01-`, `02-`, etc. para controlar el orden. Consulta [examples/convention-policies/](examples/convention-policies/) para ver ejemplos listos para usar.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Telemetría
|
|
247
|
+
|
|
248
|
+
Failproof AI recopila telemetría de uso anónima mediante PostHog para entender cómo se usan las funcionalidades. Nunca se envía el contenido de sesiones, nombres de archivos, entradas de herramientas ni información personal.
|
|
249
|
+
|
|
250
|
+
Para desactivarla:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Documentación
|
|
259
|
+
|
|
260
|
+
| Guía | Descripción |
|
|
261
|
+
|------|-------------|
|
|
262
|
+
| [Primeros pasos](docs/getting-started.mdx) | Instalación y pasos iniciales |
|
|
263
|
+
| [Políticas integradas](docs/built-in-policies.mdx) | Las 30 políticas integradas con sus parámetros |
|
|
264
|
+
| [Políticas personalizadas](docs/custom-policies.mdx) | Cómo escribir tus propias políticas |
|
|
265
|
+
| [Configuración](docs/configuration.mdx) | Formato del archivo de configuración y fusión de niveles |
|
|
266
|
+
| [Panel de control](docs/dashboard.mdx) | Monitoriza sesiones y revisa la actividad de las políticas |
|
|
267
|
+
| [Arquitectura](docs/architecture.mdx) | Cómo funciona el sistema de hooks |
|
|
268
|
+
| [Pruebas](docs/testing.mdx) | Ejecutar pruebas y escribir nuevas |
|
|
269
|
+
|
|
270
|
+
### Ejecutar la documentación 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 el sitio de documentación Mintlify en `http://localhost:3000`. El contenedor detecta cambios si montas el directorio de documentación:
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Nota para colaboradores de failproofai
|
|
286
|
+
|
|
287
|
+
El archivo `.claude/settings.json` de este repositorio utiliza `bun ./bin/failproofai.mjs --hook <EventType>` en lugar del comando estándar `npx -y failproofai`. Esto se debe a que ejecutar `npx -y failproofai` dentro del propio proyecto failproofai genera un conflicto de autoreferencia.
|
|
288
|
+
|
|
289
|
+
Para todos los demás repositorios, el enfoque recomendado es `npx -y failproofai`, instalado mediante:
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
failproofai policies --install --scope project
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Contribuir
|
|
296
|
+
|
|
297
|
+
Consulta [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Licencia
|
|
302
|
+
|
|
303
|
+
Consulta [LICENSE](LICENSE).
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
Desarrollado y mantenido por **ExosphereHost: Reliability Research Lab for Your Agents**. Ayudamos a empresas y startups a mejorar la fiabilidad de sus agentes de IA a través de nuestros propios agentes, software y experiencia. Más información en [exosphere.host](https://exosphere.host).
|