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
|
@@ -1,5 +1,113 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
## 0.0.4-beta.0 — 2026-04-16
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
- Graduate 4 workflow policies from beta to stable: `require-commit-before-stop`, `require-push-before-stop`, `require-pr-before-stop`, `require-ci-green-before-stop` (#105)
|
|
9
|
+
|
|
10
|
+
## 0.0.3 — 2026-04-15
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
- Use portable `npx -y failproofai` command for project-scope hooks, making `.claude/settings.json` committable to git (#96)
|
|
14
|
+
- Parallelize translation workflow across 14 languages with concurrent file translation for faster CI (#98)
|
|
15
|
+
- Add manual workflow dispatch for translations with `force` (ignore cache) and `languages` filter inputs (#98)
|
|
16
|
+
- Tier-based model selection for translations: Sonnet for Tier 1, Haiku for Tier 2/3; add prompt caching on system prompt (#98)
|
|
17
|
+
|
|
18
|
+
### Fixes
|
|
19
|
+
- Fix hooks not working in failproofai's own repo by using local binary instead of npx (#98)
|
|
20
|
+
- Fix translation workflow placing files at repo root instead of `docs/` by setting download artifact path (#100)
|
|
21
|
+
|
|
22
|
+
## 0.0.2-beta.8 — 2026-04-14
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
- Add `changelog-check`, `docs-check`, and `pr-description-check` convention policies
|
|
26
|
+
- Track `.claude/settings.json` in git
|
|
27
|
+
- Add multilingual documentation with 14 languages and automated translation tooling (#93)
|
|
28
|
+
- Add GitHub Actions workflow to auto-translate docs when English sources change (#95)
|
|
29
|
+
- Add Mintlify docs validation to CI (#95)
|
|
30
|
+
|
|
31
|
+
### Fixes
|
|
32
|
+
- Accumulate all `instruct` messages instead of only delivering the first one
|
|
33
|
+
- Rename convention policy prefix from `convention/` to `.failproofai-{scope}/` (e.g. `.failproofai-project/`, `.failproofai-user/`) and add `convention_scope` to telemetry
|
|
34
|
+
|
|
35
|
+
### Docs
|
|
36
|
+
- Document cross-cutting `hint` param in built-in policies reference and add `block-force-push` hint example
|
|
37
|
+
- Add `block-force-push` hint to project config suggesting fresh branch as alternative
|
|
38
|
+
|
|
39
|
+
## 0.0.2-beta.7 — 2026-04-14
|
|
40
|
+
|
|
41
|
+
### Features
|
|
42
|
+
- Check third-party bot statuses (CodeRabbit, SonarCloud, etc.) in `require-ci-green-before-stop` policy (#90)
|
|
43
|
+
- Convention-based policy auto-discovery: drop `*policies.{js,mjs,ts}` files into `.failproofai/policies/` at project or user level for automatic loading — no config changes needed (#91)
|
|
44
|
+
- Configurable `hint` field in `policyParams` — append custom guidance to deny/instruct messages without modifying policies (#91)
|
|
45
|
+
- Auto-bump version after release (#73)
|
|
46
|
+
|
|
47
|
+
### Fixes
|
|
48
|
+
- Write `policies-config.json` to scope-appropriate path (#57)
|
|
49
|
+
- Fix custom hooks loader cwd, ESM shim exports, and merged LLM config (#76)
|
|
50
|
+
|
|
51
|
+
### Docs
|
|
52
|
+
- Replace Discord links with Slack community invite (#87)
|
|
53
|
+
|
|
54
|
+
### Dependencies
|
|
55
|
+
- Bump `@types/node` 25.5.2 → 25.6.0 (#86)
|
|
56
|
+
- Bump `react-dom` 19.2.4 → 19.2.5 (#85)
|
|
57
|
+
- Bump `next` 16.2.2 → 16.2.3 (#84)
|
|
58
|
+
- Bump `posthog-node` 5.28.11 → 5.29.2 (#83)
|
|
59
|
+
- Bump `lucide-react` 1.7.0 → 1.8.0 (#82)
|
|
60
|
+
- Bump `eslint-config-next` 16.2.2 → 16.2.3 (#81)
|
|
61
|
+
- Bump `vitest` 4.1.2 → 4.1.4 (#80)
|
|
62
|
+
- Bump `react` 19.2.4 → 19.2.5 (#79)
|
|
63
|
+
- Bump `actions/checkout` 4 → 6 (#78)
|
|
64
|
+
|
|
65
|
+
## 0.0.2-beta.6 — 2026-04-09
|
|
66
|
+
|
|
67
|
+
### Fixes
|
|
68
|
+
- `require-push-before-stop` skips when no changes vs base branch (#71)
|
|
69
|
+
|
|
70
|
+
## 0.0.2-beta.5 — 2026-04-09
|
|
71
|
+
|
|
72
|
+
### Features
|
|
73
|
+
- Display package version in navbar (#66)
|
|
74
|
+
|
|
75
|
+
### Fixes
|
|
76
|
+
- `require-pr-before-stop` skips when no changes vs base branch (#67)
|
|
77
|
+
- Show plain Allow badge instead of blue Allow(note) (#68)
|
|
78
|
+
|
|
79
|
+
## 0.0.2-beta.4 — 2026-04-09
|
|
80
|
+
|
|
81
|
+
### Features
|
|
82
|
+
- Surface allow-with-message in terminal and dashboard (#65)
|
|
83
|
+
|
|
84
|
+
### Fixes
|
|
85
|
+
- Policy bypass gaps in `block-rm-rf`, `block-curl-pipe-sh`, `protect-env-vars` + Stop hook stderr bug (#64)
|
|
86
|
+
|
|
87
|
+
## 0.0.2-beta.3 — 2026-04-09
|
|
88
|
+
|
|
89
|
+
### Features
|
|
90
|
+
- 4 beta workflow policies + allow-with-message support (#63)
|
|
91
|
+
|
|
92
|
+
### Fixes
|
|
93
|
+
- Disable PostHog telemetry in all CI jobs and test configs (#62)
|
|
94
|
+
- README badge fixes — stable npm version, remove broken Discord (#53)
|
|
95
|
+
|
|
96
|
+
### Docs
|
|
97
|
+
- Rewrite README to focus on hooks management (#54)
|
|
98
|
+
- Rewrite docs for Mintlify, fix CLI parity, add agent skill page (#55)
|
|
99
|
+
- Rename custom-hooks to custom-policies, update Dockerfile for hot reload (#61)
|
|
100
|
+
|
|
101
|
+
## 0.0.2-beta.2 — 2026-04-08
|
|
102
|
+
|
|
103
|
+
### Features
|
|
104
|
+
- Add Mintlify documentation configuration (#43)
|
|
105
|
+
|
|
106
|
+
### Fixes
|
|
107
|
+
- Bundle CLI for Node.js compatibility, support `npm install -g` (#46)
|
|
108
|
+
- Correct CLI commands in README (#45)
|
|
109
|
+
- Clean CLI error handling, reject unknown args (#48)
|
|
110
|
+
|
|
3
111
|
## 0.0.1 — 2026-04-06
|
|
4
112
|
|
|
5
113
|
Initial open-source release of **Failproof AI** — formerly Claudeye.
|
|
@@ -8,6 +8,20 @@
|
|
|
8
8
|
- **Package manager:** bun (`bun install`, `bun run <script>`). Do not use npm/yarn to
|
|
9
9
|
install deps locally.
|
|
10
10
|
|
|
11
|
+
## Dev hooks (this repo only)
|
|
12
|
+
|
|
13
|
+
This repo's `.claude/settings.json` uses `bun ./bin/failproofai.mjs --hook <EventType>`
|
|
14
|
+
instead of the standard `npx -y failproofai` command. This is because `npx -y failproofai`
|
|
15
|
+
creates a self-referencing conflict when run inside the failproofai project itself.
|
|
16
|
+
|
|
17
|
+
For all other repos, the recommended approach is `npx -y failproofai`, installed via:
|
|
18
|
+
```bash
|
|
19
|
+
failproofai policies --install --scope project
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Do **not** run `failproofai policies --install --scope project` from this repo — it will
|
|
23
|
+
overwrite the local binary path back to `npx -y failproofai`.
|
|
24
|
+
|
|
11
25
|
## Workflow rules
|
|
12
26
|
|
|
13
27
|
### One PR per branch
|
|
@@ -130,6 +144,20 @@ __tests__/ Unit + e2e tests (vitest)
|
|
|
130
144
|
examples/ Sample custom policy files
|
|
131
145
|
```
|
|
132
146
|
|
|
147
|
+
## Changelog
|
|
148
|
+
|
|
149
|
+
Every PR **must** include an update to `CHANGELOG.md`. Add your entry under the
|
|
150
|
+
`## Unreleased` section at the top. Use the appropriate subsection:
|
|
151
|
+
|
|
152
|
+
- **Features** for new functionality
|
|
153
|
+
- **Fixes** for bug fixes
|
|
154
|
+
- **Docs** for documentation-only changes
|
|
155
|
+
- **Dependencies** for dependency bumps
|
|
156
|
+
|
|
157
|
+
Each entry should be a single line: a short description followed by the PR number
|
|
158
|
+
(e.g. `- Add foo support (#123)`). When a release is cut, the `Unreleased` section gets
|
|
159
|
+
renamed to the version and date, and a fresh `## Unreleased` heading is added.
|
|
160
|
+
|
|
133
161
|
## Version bumps
|
|
134
162
|
|
|
135
163
|
When bumping the version, update **only** `package.json` (root). The CI version-consistency
|
|
@@ -13,23 +13,25 @@
|
|
|
13
13
|
[](https://www.npmjs.com/package/failproofai)
|
|
14
14
|
[](LICENSE)
|
|
15
15
|
[](https://github.com/exospherehost/failproofai/actions)
|
|
16
|
-
[](https://join.slack.com/t/failproofai/shared_invite/zt-3v63b7k5e-O3NBHmj8X6n9gZSGDx6ggQ)
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
**Translations**: [简体中文](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)
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
- **Custom Policies** — Write your own policies in JavaScript. Same `allow`/`deny`/`instruct` API as built-in policies, with full async support.
|
|
22
|
-
- **Policy Parameters** — Tune built-in policies without writing code: configure allowlists, protected branches, thresholds, and custom patterns.
|
|
23
|
-
- **Session Viewer** — Browse Claude Code projects and sessions locally. Inspect tool calls, messages, and per-session hook activity side-by-side.
|
|
20
|
+
The easiest way to manage policies that keep your AI agents reliable, on-task, and running autonomously - for **Claude Code** & the **Agents SDK**.
|
|
24
21
|
|
|
25
|
-
|
|
22
|
+
- **30 Built-in Policies** - Catch common agent failure modes out of the box. Block destructive commands, prevent secret leakage, keep agents inside project boundaries, detect loops, and more.
|
|
23
|
+
- **Custom Policies** - Write your own reliability rules in JavaScript. Use the `allow`/`deny`/`instruct` API to enforce conventions, prevent drift, gate operations, or integrate with external systems.
|
|
24
|
+
- **Easy Configuration** - Tune any policy without writing code. Set allowlists, protected branches, thresholds per-project or globally. Three-scope config merges automatically.
|
|
25
|
+
- **Agent Monitor** - See what your agents did while you were away. Browse sessions, inspect every tool call, and review exactly where policies fired.
|
|
26
|
+
|
|
27
|
+
Everything runs locally - no data leaves your machine.
|
|
26
28
|
|
|
27
29
|
---
|
|
28
30
|
|
|
29
31
|
## Requirements
|
|
30
32
|
|
|
31
33
|
- Node.js >= 20.9.0
|
|
32
|
-
- Bun >= 1.3.0 (optional
|
|
34
|
+
- Bun >= 1.3.0 (optional - only needed for development / building from source)
|
|
33
35
|
|
|
34
36
|
---
|
|
35
37
|
|
|
@@ -59,7 +61,7 @@ Writes hook entries into `~/.claude/settings.json`. Claude Code will now invoke
|
|
|
59
61
|
failproofai
|
|
60
62
|
```
|
|
61
63
|
|
|
62
|
-
Opens `http://localhost:8020`
|
|
64
|
+
Opens `http://localhost:8020` - browse sessions, inspect logs, manage policies.
|
|
63
65
|
|
|
64
66
|
### 3. Check what's active
|
|
65
67
|
|
|
@@ -111,10 +113,12 @@ Policy configuration lives in `~/.failproofai/policies-config.json` (global) or
|
|
|
111
113
|
],
|
|
112
114
|
"policyParams": {
|
|
113
115
|
"block-sudo": {
|
|
114
|
-
"allowPatterns": ["sudo systemctl status", "sudo journalctl"]
|
|
116
|
+
"allowPatterns": ["sudo systemctl status", "sudo journalctl"],
|
|
117
|
+
"hint": "Use apt-get directly without sudo."
|
|
115
118
|
},
|
|
116
119
|
"block-push-master": {
|
|
117
|
-
"protectedBranches": ["main", "release", "prod"]
|
|
120
|
+
"protectedBranches": ["main", "release", "prod"],
|
|
121
|
+
"hint": "Try creating a fresh branch instead."
|
|
118
122
|
},
|
|
119
123
|
"sanitize-api-keys": {
|
|
120
124
|
"additionalPatterns": [
|
|
@@ -128,7 +132,7 @@ Policy configuration lives in `~/.failproofai/policies-config.json` (global) or
|
|
|
128
132
|
}
|
|
129
133
|
```
|
|
130
134
|
|
|
131
|
-
**Three config scopes** are merged automatically (project → local → global). See [docs/configuration.
|
|
135
|
+
**Three config scopes** are merged automatically (project → local → global). See [docs/configuration.mdx](docs/configuration.mdx) for full merge rules.
|
|
132
136
|
|
|
133
137
|
---
|
|
134
138
|
|
|
@@ -136,40 +140,40 @@ Policy configuration lives in `~/.failproofai/policies-config.json` (global) or
|
|
|
136
140
|
|
|
137
141
|
| Policy | Description | Configurable |
|
|
138
142
|
|--------|-------------|:---:|
|
|
139
|
-
| `block-sudo` |
|
|
140
|
-
| `block-rm-rf` |
|
|
141
|
-
| `block-curl-pipe-sh` |
|
|
143
|
+
| `block-sudo` | Prevent agents from running privileged system commands | `allowPatterns` |
|
|
144
|
+
| `block-rm-rf` | Prevent accidental recursive file deletion | `allowPaths` |
|
|
145
|
+
| `block-curl-pipe-sh` | Prevent agents from piping untrusted scripts to shell | |
|
|
142
146
|
| `block-failproofai-commands` | Prevent self-uninstallation | |
|
|
143
|
-
| `sanitize-jwt` |
|
|
144
|
-
| `sanitize-api-keys` |
|
|
145
|
-
| `sanitize-connection-strings` |
|
|
146
|
-
| `sanitize-private-key-content` | Redact PEM private key blocks | |
|
|
147
|
-
| `sanitize-bearer-tokens` | Redact Authorization Bearer tokens | |
|
|
148
|
-
| `block-env-files` |
|
|
149
|
-
| `protect-env-vars` |
|
|
150
|
-
| `block-read-outside-cwd` |
|
|
151
|
-
| `block-secrets-write` |
|
|
152
|
-
| `block-push-master` |
|
|
153
|
-
| `block-work-on-main` |
|
|
154
|
-
| `block-force-push` |
|
|
155
|
-
| `warn-git-amend` |
|
|
156
|
-
| `warn-git-stash-drop` |
|
|
157
|
-
| `warn-all-files-staged` |
|
|
158
|
-
| `warn-destructive-sql` |
|
|
159
|
-
| `warn-schema-alteration` |
|
|
160
|
-
| `warn-large-file-write` |
|
|
161
|
-
| `warn-package-publish` |
|
|
162
|
-
| `warn-background-process` |
|
|
163
|
-
| `warn-global-package-install` |
|
|
147
|
+
| `sanitize-jwt` | Stop JWT tokens from leaking into agent context | |
|
|
148
|
+
| `sanitize-api-keys` | Stop API keys from leaking into agent context | `additionalPatterns` |
|
|
149
|
+
| `sanitize-connection-strings` | Stop database credentials from leaking into agent context | |
|
|
150
|
+
| `sanitize-private-key-content` | Redact PEM private key blocks from output | |
|
|
151
|
+
| `sanitize-bearer-tokens` | Redact Authorization Bearer tokens from output | |
|
|
152
|
+
| `block-env-files` | Keep agents from reading .env files | |
|
|
153
|
+
| `protect-env-vars` | Prevent agents from printing environment variables | |
|
|
154
|
+
| `block-read-outside-cwd` | Keep agents inside project boundaries | `allowPaths` |
|
|
155
|
+
| `block-secrets-write` | Prevent writes to private key and certificate files | `additionalPatterns` |
|
|
156
|
+
| `block-push-master` | Prevent accidental pushes to main/master | `protectedBranches` |
|
|
157
|
+
| `block-work-on-main` | Keep agents off protected branches | `protectedBranches` |
|
|
158
|
+
| `block-force-push` | Prevent `git push --force` | |
|
|
159
|
+
| `warn-git-amend` | Remind agents before amending commits | |
|
|
160
|
+
| `warn-git-stash-drop` | Remind agents before dropping stashes | |
|
|
161
|
+
| `warn-all-files-staged` | Catch accidental `git add -A` | |
|
|
162
|
+
| `warn-destructive-sql` | Catch DROP/DELETE SQL before execution | |
|
|
163
|
+
| `warn-schema-alteration` | Catch ALTER TABLE before execution | |
|
|
164
|
+
| `warn-large-file-write` | Catch unexpectedly large file writes | `thresholdKb` |
|
|
165
|
+
| `warn-package-publish` | Catch accidental `npm publish` | |
|
|
166
|
+
| `warn-background-process` | Catch unintended background process launches | |
|
|
167
|
+
| `warn-global-package-install` | Catch unintended global package installs | |
|
|
164
168
|
| …and more | | |
|
|
165
169
|
|
|
166
|
-
Full policy details and parameter reference: [docs/built-in-policies.
|
|
170
|
+
Full policy details and parameter reference: [docs/built-in-policies.mdx](docs/built-in-policies.mdx)
|
|
167
171
|
|
|
168
172
|
---
|
|
169
173
|
|
|
170
174
|
## Custom policies
|
|
171
175
|
|
|
172
|
-
|
|
176
|
+
Write your own policies to keep agents reliable and on-task:
|
|
173
177
|
|
|
174
178
|
```js
|
|
175
179
|
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
@@ -197,8 +201,9 @@ failproofai policies --install --custom ./my-policies.js
|
|
|
197
201
|
|
|
198
202
|
| Function | Effect |
|
|
199
203
|
|----------|--------|
|
|
200
|
-
| `allow()` | Permit the
|
|
201
|
-
| `
|
|
204
|
+
| `allow()` | Permit the operation |
|
|
205
|
+
| `allow(message)` | Permit and send informational context to Claude *(beta)* |
|
|
206
|
+
| `deny(message)` | Block the operation; message shown to Claude |
|
|
202
207
|
| `instruct(message)` | Add context to Claude's prompt; does not block |
|
|
203
208
|
|
|
204
209
|
### Context object (`ctx`)
|
|
@@ -213,7 +218,22 @@ failproofai policies --install --custom ./my-policies.js
|
|
|
213
218
|
| `session.sessionId` | `string` | Session identifier |
|
|
214
219
|
| `session.transcriptPath` | `string` | Path to the session transcript file |
|
|
215
220
|
|
|
216
|
-
Custom hooks support transitive local imports, async/await, and access to `process.env`. Errors
|
|
221
|
+
Custom hooks support transitive local imports, async/await, and access to `process.env`. Errors are fail-open (logged to `~/.failproofai/hook.log`, built-in policies continue). See [docs/custom-hooks.mdx](docs/custom-hooks.mdx) for the full guide.
|
|
222
|
+
|
|
223
|
+
### Convention-based policies (v0.0.2-beta.7+)
|
|
224
|
+
|
|
225
|
+
Drop `*policies.{js,mjs,ts}` files into `.failproofai/policies/` and they're automatically loaded — no `--custom` flag or config changes needed. Works like git hooks: drop a file, it just works.
|
|
226
|
+
|
|
227
|
+
```text
|
|
228
|
+
# Project level — committed to git, shared with the team
|
|
229
|
+
.failproofai/policies/security-policies.mjs
|
|
230
|
+
.failproofai/policies/workflow-policies.mjs
|
|
231
|
+
|
|
232
|
+
# User level — personal, applies to all projects
|
|
233
|
+
~/.failproofai/policies/my-policies.mjs
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Both levels load (union). Files are loaded alphabetically within each directory. Prefix with `01-`, `02-`, etc. to control order. See [examples/convention-policies/](examples/convention-policies/) for ready-to-use examples.
|
|
217
237
|
|
|
218
238
|
---
|
|
219
239
|
|
|
@@ -233,17 +253,39 @@ FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
|
|
|
233
253
|
|
|
234
254
|
| Guide | Description |
|
|
235
255
|
|-------|-------------|
|
|
236
|
-
| [Getting Started](docs/getting-started.
|
|
237
|
-
| [
|
|
238
|
-
| [
|
|
239
|
-
| [
|
|
240
|
-
| [
|
|
241
|
-
| [
|
|
242
|
-
| [
|
|
243
|
-
|
|
256
|
+
| [Getting Started](docs/getting-started.mdx) | Installation and first steps |
|
|
257
|
+
| [Built-in Policies](docs/built-in-policies.mdx) | All 30 built-in policies with parameters |
|
|
258
|
+
| [Custom Policies](docs/custom-policies.mdx) | Write your own policies |
|
|
259
|
+
| [Configuration](docs/configuration.mdx) | Config file format and scope merging |
|
|
260
|
+
| [Dashboard](docs/dashboard.mdx) | Monitor sessions and review policy activity |
|
|
261
|
+
| [Architecture](docs/architecture.mdx) | How the hook system works |
|
|
262
|
+
| [Testing](docs/testing.mdx) | Running tests and writing new ones |
|
|
263
|
+
|
|
264
|
+
### Run docs locally
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
docker build -f Dockerfile.docs -t failproofai-docs .
|
|
268
|
+
docker run --rm -p 3000:3000 failproofai-docs
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Opens the Mintlify docs site at `http://localhost:3000`. The container watches for changes if you mount the docs directory:
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
|
|
275
|
+
```
|
|
244
276
|
|
|
245
277
|
---
|
|
246
278
|
|
|
279
|
+
## Note for failproofai contributors
|
|
280
|
+
|
|
281
|
+
This repo's `.claude/settings.json` uses `bun ./bin/failproofai.mjs --hook <EventType>` instead of the standard `npx -y failproofai` command. This is because running `npx -y failproofai` inside the failproofai project itself creates a self-referencing conflict.
|
|
282
|
+
|
|
283
|
+
For all other repos, the recommended approach is `npx -y failproofai`, installed via:
|
|
284
|
+
|
|
285
|
+
```bash
|
|
286
|
+
failproofai policies --install --scope project
|
|
287
|
+
```
|
|
288
|
+
|
|
247
289
|
## Contributing
|
|
248
290
|
|
|
249
291
|
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
@@ -253,3 +295,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
|
253
295
|
## License
|
|
254
296
|
|
|
255
297
|
See [LICENSE](LICENSE).
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
Built and Maintained by **ExosphereHost: Reliability Research Lab for Your Agents**. We help enterprises and startups improve the reliability of their AI agents through our own agents, software, and expertise. Learn more at [exosphere.host](https://exosphere.host).
|
|
@@ -161,6 +161,12 @@ function SessionHooksDetailPanel({
|
|
|
161
161
|
</span>
|
|
162
162
|
</div>
|
|
163
163
|
</div>
|
|
164
|
+
{item.policyNames && item.policyNames.length > 1 && (
|
|
165
|
+
<div>
|
|
166
|
+
<span className="text-muted-foreground">Policies: </span>
|
|
167
|
+
<span className="font-mono text-foreground">{item.policyNames.join(", ")}</span>
|
|
168
|
+
</div>
|
|
169
|
+
)}
|
|
164
170
|
{item.reason && (
|
|
165
171
|
<div>
|
|
166
172
|
<span className="text-muted-foreground">Full reason: </span>
|
|
@@ -346,7 +352,14 @@ export default function SessionHooksPanel({ sessionId, initialData }: SessionHoo
|
|
|
346
352
|
{item.toolName ?? "\u2014"}
|
|
347
353
|
</td>
|
|
348
354
|
<td className="px-3 py-2 font-mono text-foreground">
|
|
349
|
-
{item.
|
|
355
|
+
{item.policyNames && item.policyNames.length > 1 ? (
|
|
356
|
+
<span title={item.policyNames.join(", ")}>
|
|
357
|
+
{item.policyNames[0]}
|
|
358
|
+
<span className="text-muted-foreground text-[0.6rem]"> +{item.policyNames.length - 1}</span>
|
|
359
|
+
</span>
|
|
360
|
+
) : (
|
|
361
|
+
item.policyName ?? "\u2014"
|
|
362
|
+
)}
|
|
350
363
|
</td>
|
|
351
364
|
<td
|
|
352
365
|
className="px-3 py-2 text-muted-foreground truncate max-w-[240px]"
|
|
@@ -270,6 +270,12 @@ function DetailPanel({
|
|
|
270
270
|
</span>
|
|
271
271
|
</div>
|
|
272
272
|
</div>
|
|
273
|
+
{item.policyNames && item.policyNames.length > 1 && (
|
|
274
|
+
<div>
|
|
275
|
+
<span className="text-muted-foreground">Policies: </span>
|
|
276
|
+
<span className="font-mono text-foreground">{item.policyNames.join(", ")}</span>
|
|
277
|
+
</div>
|
|
278
|
+
)}
|
|
273
279
|
{item.reason && (
|
|
274
280
|
<div>
|
|
275
281
|
<span className="text-muted-foreground">Full reason: </span>
|
|
@@ -500,7 +506,14 @@ function ActivityTab({
|
|
|
500
506
|
{item.toolName ?? "\u2014"}
|
|
501
507
|
</td>
|
|
502
508
|
<td className="px-3 py-2 font-mono text-foreground">
|
|
503
|
-
{item.
|
|
509
|
+
{item.policyNames && item.policyNames.length > 1 ? (
|
|
510
|
+
<span title={item.policyNames.join(", ")}>
|
|
511
|
+
{item.policyNames[0]}
|
|
512
|
+
<span className="text-muted-foreground text-[0.6rem]"> +{item.policyNames.length - 1}</span>
|
|
513
|
+
</span>
|
|
514
|
+
) : (
|
|
515
|
+
item.policyName ?? "\u2014"
|
|
516
|
+
)}
|
|
504
517
|
</td>
|
|
505
518
|
<td
|
|
506
519
|
className="px-3 py-2 text-muted-foreground truncate max-w-[240px]"
|
|
@@ -97,6 +97,11 @@ COMMANDS
|
|
|
97
97
|
--version, -v Print version and exit
|
|
98
98
|
--help, -h Show this help message
|
|
99
99
|
|
|
100
|
+
CONVENTION POLICIES
|
|
101
|
+
Drop *policies.{js,mjs,ts} files into .failproofai/policies/ for auto-loading.
|
|
102
|
+
Works at project level (.failproofai/policies/) and user level (~/.failproofai/policies/).
|
|
103
|
+
No --custom flag or config changes needed — just drop files and they're picked up.
|
|
104
|
+
|
|
100
105
|
EXAMPLES
|
|
101
106
|
failproofai policies
|
|
102
107
|
failproofai policies --install
|