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,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: ダッシュボード
|
|
3
|
+
description: "エージェントセッションの監視、ツール呼び出しの確認、ポリシーの管理"
|
|
4
|
+
icon: chart-line
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
failproofai ダッシュボードは、AIエージェントセッションの監視とポリシー管理のためのローカルWebアプリケーションです。あなたが離れている間にエージェントが何をしたかを確認できます。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## ダッシュボードの起動
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
failproofai
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
`http://localhost:8020` で開きます。
|
|
18
|
+
|
|
19
|
+
ダッシュボードはファイルシステムから直接読み取ります。Claude Code のプロジェクトフォルダと failproofai の設定ファイルを参照しており、リモートサービスへの書き込みは行いません。
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## ページ
|
|
24
|
+
|
|
25
|
+
### プロジェクト
|
|
26
|
+
|
|
27
|
+
マシン上で見つかったすべての Claude Code プロジェクトを一覧表示します。プロジェクトは `~/.claude/projects/`(または `CLAUDE_PROJECTS_PATH` で設定されたパス)から検出されます。
|
|
28
|
+
|
|
29
|
+
各プロジェクトには以下が表示されます:
|
|
30
|
+
- プロジェクト名(フォルダパスから生成)
|
|
31
|
+
- セッション数
|
|
32
|
+
- 最新のセッションアクティビティの日時
|
|
33
|
+
|
|
34
|
+
プロジェクトをクリックすると、そのセッション一覧が表示されます。
|
|
35
|
+
|
|
36
|
+
### セッション
|
|
37
|
+
|
|
38
|
+
プロジェクト内のすべてのセッションを一覧表示します。各セッションには以下が表示されます:
|
|
39
|
+
- セッションID
|
|
40
|
+
- 開始・終了タイムスタンプ
|
|
41
|
+
- ツール呼び出し数
|
|
42
|
+
- フックアクティビティ数(発動したポリシーの数)
|
|
43
|
+
|
|
44
|
+
日付範囲フィルターとセッションID検索で絞り込みができます。セッションはページネーション表示されます。
|
|
45
|
+
|
|
46
|
+
セッションをクリックすると、セッションビューアーが開きます。
|
|
47
|
+
|
|
48
|
+
### セッションビューアー
|
|
49
|
+
|
|
50
|
+
セッションビューアーは、自律型エージェントにおける核心的な問いに答えます。「エージェントは何をしたのか、そして正しく動作していたのか?」セッション内で起きたすべての出来事をタイムライン形式で表示します:
|
|
51
|
+
|
|
52
|
+
- **メッセージ** - Claude のテキスト応答とユーザープロンプト
|
|
53
|
+
- **ツール呼び出し** - Claude が呼び出したすべてのツールと、その入力・出力
|
|
54
|
+
- **ポリシーアクティビティ** - 各ツール呼び出しに対して、どのポリシーが発動し、どの判断を返したか
|
|
55
|
+
|
|
56
|
+
上部のステータスバーには、セッション時間、ツール呼び出しの合計数、フック判断の概要(allow / deny / instruct の件数)が表示されます。
|
|
57
|
+
|
|
58
|
+
ダウンロードボタンを使って、セッションをZIPまたはJSONLファイルとしてエクスポートできます。
|
|
59
|
+
|
|
60
|
+
### ポリシー
|
|
61
|
+
|
|
62
|
+
ポリシーの管理とアクティビティ確認のための2タブページです。
|
|
63
|
+
|
|
64
|
+
<Tabs>
|
|
65
|
+
<Tab title="Policies tab">
|
|
66
|
+
- ワンクリックで個別のポリシーのオン・オフを切り替え(`~/.failproofai/policies-config.json` に書き込まれます)
|
|
67
|
+
- ポリシーを展開してパラメーターを設定(`policyParams` に対応したポリシーの場合)
|
|
68
|
+
- 指定したスコープのフックをインストールまたは削除
|
|
69
|
+
- カスタムポリシーファイルのパスを設定
|
|
70
|
+
</Tab>
|
|
71
|
+
<Tab title="Activity tab">
|
|
72
|
+
- すべてのセッションにわたって発動したフックイベントの完全なページネーション履歴
|
|
73
|
+
- ポリシー名、セッションID、ツール名、判断内容で検索
|
|
74
|
+
- 各行には、タイムスタンプ、ポリシー名、判断内容、ツール名、セッションID、およびdeny/instructの理由が表示されます
|
|
75
|
+
</Tab>
|
|
76
|
+
</Tabs>
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 自動更新
|
|
81
|
+
|
|
82
|
+
ダッシュボードの上部ナビゲーションには自動更新のトグルがあります。有効にすると、現在のページが定期的に更新され、新しいセッションやポリシーアクティビティがリアルタイムで表示されます。長時間稼働する自律型エージェントセッションの監視に欠かせない機能です。
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## ページの無効化
|
|
87
|
+
|
|
88
|
+
ダッシュボードの一部のみ必要な場合は、`FAILPROOFAI_DISABLE_PAGES` にカンマ区切りのページ名を設定します:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
FAILPROOFAI_DISABLE_PAGES=policies failproofai
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
有効な値:`policies`、`projects`
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## テーマ
|
|
99
|
+
|
|
100
|
+
ダッシュボードはライトモードとダークモードに対応しています。ナビゲーションバーのボタンで切り替えられます。設定はブラウザのローカルストレージに保存されます。
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## プロジェクトパスの設定
|
|
105
|
+
|
|
106
|
+
デフォルトでは、ダッシュボードは標準の Claude Code プロジェクトディレクトリを読み取ります。カスタム構成の場合は上書きできます:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## localhost 以外のホストからのアクセス
|
|
115
|
+
|
|
116
|
+
**devモード**(`npm run dev`)でダッシュボードを起動し、`localhost` 以外のホスト名(カスタムドメイン、リモートIPアドレス、トンネリングURLなど)からアクセスすると、以下のような警告が表示されることがあります:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com".
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
これは、Next.js がHMR(ホットモジュールリロード)WebSocketへのクロスオリジンアクセスをブロックしているためです。これはdev専用の機能です。対象のホストを許可するには、`--allowed-origins` フラグを使用します:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npm run dev -- --allowed-origins dashboard.example.com
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
複数のホストやIPアドレスを許可する場合は、カンマ区切りで指定します:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
代わりに `FAILPROOFAI_ALLOWED_DEV_ORIGINS` 環境変数を設定することもできます:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
<Note>
|
|
141
|
+
これはdevモードにのみ適用されます。`failproofai`(本番モード)を実行している場合、HMR WebSocketは存在しないため、クロスオリジンのdev用リソースの問題は発生しません。
|
|
142
|
+
</Note>
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 使用例
|
|
3
|
+
description: "Claude Code と Agents SDK 向けフックの設定方法"
|
|
4
|
+
icon: book-open
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
よくあるシナリオですぐに使える例を紹介します。各例では、インストール方法と期待される動作を説明します。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Claude Code 向けフックの設定
|
|
12
|
+
|
|
13
|
+
Failproof AI は Claude Code の[フックシステム](https://docs.anthropic.com/en/docs/claude-code/hooks)を通じて統合されます。`failproofai policies --install` を実行すると、Claude Code の `settings.json` にフックコマンドが登録され、すべてのツール呼び出し時に実行されます。
|
|
14
|
+
|
|
15
|
+
<Steps>
|
|
16
|
+
<Step title="failproofai をインストールする">
|
|
17
|
+
```bash
|
|
18
|
+
npm install -g failproofai
|
|
19
|
+
```
|
|
20
|
+
</Step>
|
|
21
|
+
<Step title="組み込みポリシーをすべて有効にする">
|
|
22
|
+
```bash
|
|
23
|
+
failproofai policies --install
|
|
24
|
+
```
|
|
25
|
+
</Step>
|
|
26
|
+
<Step title="フックが登録されていることを確認する">
|
|
27
|
+
```bash
|
|
28
|
+
cat ~/.claude/settings.json | grep failproofai
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
`PreToolUse`、`PostToolUse`、`Notification`、`Stop` イベントのフックエントリが表示されるはずです。
|
|
32
|
+
</Step>
|
|
33
|
+
<Step title="Claude Code を起動する">
|
|
34
|
+
```bash
|
|
35
|
+
claude
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
これで、すべてのツール呼び出しに対してポリシーが自動的に実行されます。試しに Claude に `sudo rm -rf /` を実行するよう指示してみてください — ブロックされます。
|
|
39
|
+
</Step>
|
|
40
|
+
</Steps>
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Agents SDK 向けフックの設定
|
|
45
|
+
|
|
46
|
+
[Agents SDK](https://docs.anthropic.com/en/docs/agents-sdk) を使って開発している場合、同じフックシステムをプログラムから利用できます。
|
|
47
|
+
|
|
48
|
+
<Steps>
|
|
49
|
+
<Step title="プロジェクトに failproofai をインストールする">
|
|
50
|
+
```bash
|
|
51
|
+
npm install failproofai
|
|
52
|
+
```
|
|
53
|
+
</Step>
|
|
54
|
+
<Step title="エージェントにフックを設定する">
|
|
55
|
+
エージェントプロセスの作成時にフックコマンドを渡します。フックは Claude Code と同じように、stdin/stdout の JSON を介して起動されます。
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
failproofai --hook PreToolUse # 各ツールの実行前に呼び出される
|
|
59
|
+
failproofai --hook PostToolUse # 各ツールの実行後に呼び出される
|
|
60
|
+
```
|
|
61
|
+
</Step>
|
|
62
|
+
<Step title="エージェント用のカスタムポリシーを作成する">
|
|
63
|
+
```javascript
|
|
64
|
+
import { customPolicies, allow, deny } from "failproofai";
|
|
65
|
+
|
|
66
|
+
customPolicies.add({
|
|
67
|
+
name: "limit-to-project-dir",
|
|
68
|
+
description: "Keep the agent inside the project directory",
|
|
69
|
+
match: { events: ["PreToolUse"] },
|
|
70
|
+
fn: async (ctx) => {
|
|
71
|
+
const path = String(ctx.toolInput?.file_path ?? "");
|
|
72
|
+
if (path.startsWith("/") && !path.startsWith(ctx.session?.cwd ?? "")) {
|
|
73
|
+
return deny("Agent is restricted to the project directory");
|
|
74
|
+
}
|
|
75
|
+
return allow();
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
```
|
|
79
|
+
</Step>
|
|
80
|
+
<Step title="カスタムポリシーをインストールする">
|
|
81
|
+
```bash
|
|
82
|
+
failproofai policies --install --custom ./my-agent-policies.js
|
|
83
|
+
```
|
|
84
|
+
</Step>
|
|
85
|
+
</Steps>
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 破壊的なコマンドをブロックする
|
|
90
|
+
|
|
91
|
+
最もよく使われる設定 — エージェントが取り消し不可能な操作を行うのを防ぎます。
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
failproofai policies --install block-sudo block-rm-rf block-force-push block-curl-pipe-sh
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
この設定の効果:
|
|
98
|
+
- `block-sudo` — すべての `sudo` コマンドをブロック
|
|
99
|
+
- `block-rm-rf` — 再帰的なファイル削除をブロック
|
|
100
|
+
- `block-force-push` — `git push --force` をブロック
|
|
101
|
+
- `block-curl-pipe-sh` — リモートスクリプトのシェルへのパイプをブロック
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## シークレットの漏洩を防ぐ
|
|
106
|
+
|
|
107
|
+
ツールの出力に含まれる認証情報をエージェントが参照・漏洩するのを防ぎます。
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
failproofai policies --install sanitize-api-keys sanitize-jwt sanitize-connection-strings sanitize-bearer-tokens
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
これらは `PostToolUse` で実行されます。ツールの実行後、エージェントが出力を受け取る前にスクラブ処理が行われます。
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## エージェントの待機時に Slack へアラートを送信する
|
|
118
|
+
|
|
119
|
+
通知フックを使って、アイドル状態のアラートを Slack に転送します。
|
|
120
|
+
|
|
121
|
+
```javascript
|
|
122
|
+
import { customPolicies, allow, instruct } from "failproofai";
|
|
123
|
+
|
|
124
|
+
customPolicies.add({
|
|
125
|
+
name: "slack-on-idle",
|
|
126
|
+
description: "Alert Slack when the agent is waiting for input",
|
|
127
|
+
match: { events: ["Notification"] },
|
|
128
|
+
fn: async (ctx) => {
|
|
129
|
+
const webhookUrl = process.env.SLACK_WEBHOOK_URL;
|
|
130
|
+
if (!webhookUrl) return allow();
|
|
131
|
+
|
|
132
|
+
const message = String(ctx.payload?.message ?? "Agent is waiting");
|
|
133
|
+
const project = ctx.session?.cwd ?? "unknown";
|
|
134
|
+
|
|
135
|
+
try {
|
|
136
|
+
await fetch(webhookUrl, {
|
|
137
|
+
method: "POST",
|
|
138
|
+
headers: { "Content-Type": "application/json" },
|
|
139
|
+
body: JSON.stringify({
|
|
140
|
+
text: `*${message}*\nProject: \`${project}\``,
|
|
141
|
+
}),
|
|
142
|
+
signal: AbortSignal.timeout(5000),
|
|
143
|
+
});
|
|
144
|
+
} catch {
|
|
145
|
+
// Slack に接続できない場合でもエージェントをブロックしない
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return allow();
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
インストール:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
SLACK_WEBHOOK_URL=https://hooks.slack.com/... failproofai policies --install --custom ./slack-alerts.js
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## エージェントをブランチに固定する
|
|
162
|
+
|
|
163
|
+
エージェントが他のブランチに切り替えたり、保護されたブランチにプッシュしたりするのを防ぎます。
|
|
164
|
+
|
|
165
|
+
```javascript
|
|
166
|
+
import { customPolicies, allow, deny } from "failproofai";
|
|
167
|
+
|
|
168
|
+
customPolicies.add({
|
|
169
|
+
name: "stay-on-branch",
|
|
170
|
+
description: "Prevent the agent from checking out other branches",
|
|
171
|
+
match: { events: ["PreToolUse"] },
|
|
172
|
+
fn: async (ctx) => {
|
|
173
|
+
if (ctx.toolName !== "Bash") return allow();
|
|
174
|
+
const cmd = String(ctx.toolInput?.command ?? "");
|
|
175
|
+
if (/git\s+checkout\s+(?!-b)/.test(cmd)) {
|
|
176
|
+
return deny("Stay on the current branch. Create a new branch with -b if needed.");
|
|
177
|
+
}
|
|
178
|
+
return allow();
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## コミット前にテストを要求する
|
|
186
|
+
|
|
187
|
+
コミット前にテストを実行するようエージェントに促します。
|
|
188
|
+
|
|
189
|
+
```javascript
|
|
190
|
+
import { customPolicies, allow, instruct } from "failproofai";
|
|
191
|
+
|
|
192
|
+
customPolicies.add({
|
|
193
|
+
name: "test-before-commit",
|
|
194
|
+
description: "Remind the agent to run tests before committing",
|
|
195
|
+
match: { events: ["PreToolUse"] },
|
|
196
|
+
fn: async (ctx) => {
|
|
197
|
+
if (ctx.toolName !== "Bash") return allow();
|
|
198
|
+
const cmd = String(ctx.toolInput?.command ?? "");
|
|
199
|
+
if (/git\s+commit/.test(cmd)) {
|
|
200
|
+
return instruct("Run tests before committing. Use `npm test` or `bun test` first.");
|
|
201
|
+
}
|
|
202
|
+
return allow();
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## 本番リポジトリをロックダウンする
|
|
210
|
+
|
|
211
|
+
プロジェクトレベルの設定をコミットして、チーム全員が同じポリシーを適用できるようにします。
|
|
212
|
+
|
|
213
|
+
リポジトリに `.failproofai/policies-config.json` を作成します:
|
|
214
|
+
|
|
215
|
+
```json
|
|
216
|
+
{
|
|
217
|
+
"enabledPolicies": [
|
|
218
|
+
"block-sudo",
|
|
219
|
+
"block-rm-rf",
|
|
220
|
+
"block-force-push",
|
|
221
|
+
"block-push-master",
|
|
222
|
+
"block-env-files",
|
|
223
|
+
"sanitize-api-keys",
|
|
224
|
+
"sanitize-jwt"
|
|
225
|
+
],
|
|
226
|
+
"policyParams": {
|
|
227
|
+
"block-push-master": {
|
|
228
|
+
"protectedBranches": ["main", "release", "production"]
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
コミットします:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
git add .failproofai/policies-config.json
|
|
238
|
+
git commit -m "Add failproofai team policies"
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
failproofai をインストール済みのすべてのチームメンバーに、これらのルールが自動的に適用されます。
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## その他の使用例
|
|
246
|
+
|
|
247
|
+
リポジトリの [`examples/`](https://github.com/exospherehost/failproofai/tree/main/examples) ディレクトリには以下が含まれています:
|
|
248
|
+
|
|
249
|
+
| ファイル | 内容 |
|
|
250
|
+
|------|---------------|
|
|
251
|
+
| `policies-basic.js` | 基本ポリシー — 本番環境への書き込み、force-push、パイプスクリプトのブロック |
|
|
252
|
+
| `policies-notification.js` | アイドル通知とセッション終了時の Slack アラート |
|
|
253
|
+
| `policies-advanced/index.js` | トランジティブインポート、非同期フック、PostToolUse の出力スクラブ、Stop イベントの処理 |
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "エージェント向け"
|
|
3
|
+
description: "1つのコマンドでFailproof AIの知識をコーディングエージェントに追加できます。Claude Code、Cursor、Windsurfなどに対応しています。"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
1つのコマンドで、Failproof AIのリファレンス全体をコーディングエージェントに追加できます。Claude Code、Cursor、Windsurf、その他スキルに対応しているエージェントであればどれでも利用可能です。
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npx skills add https://docs.befailproof.ai
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
`npx skills` はインストール済みのエージェントを自動検出し、それぞれに適したフォーマットでスキルを追加します。
|
|
13
|
+
|
|
14
|
+
## スキルがカバーする内容
|
|
15
|
+
|
|
16
|
+
| エリア | 含まれる内容 |
|
|
17
|
+
|------|----------------|
|
|
18
|
+
| ポリシー | 組み込みポリシー名、イベントタイプ、パラメータ、有効化/無効化 |
|
|
19
|
+
| カスタムポリシー | `customPolicies.add()`、マッチフィルター、`allow`/`deny`/`instruct` API |
|
|
20
|
+
| コンテキストオブジェクト | `ctx.eventType`、`ctx.toolName`、`ctx.toolInput`、`ctx.session` |
|
|
21
|
+
| 設定 | `policies-config.json` の構造、スコープのマージ、`policyParams` |
|
|
22
|
+
| CLI | `failproofai policies --install`、`--uninstall`、`--custom`、スコープ |
|
|
23
|
+
| ダッシュボード | セッションビューワー、ポリシーアクティビティ、環境変数 |
|
|
24
|
+
| アーキテクチャ | フックハンドラーのフロー、終了コード、stdin/stdout コントラクト |
|
|
25
|
+
|
|
26
|
+
## スキルの内容は完全ですか?
|
|
27
|
+
|
|
28
|
+
Mintlify はナビゲーション内のすべてのページから `llms.txt` を生成します。Failproof AI のドキュメントは API 全体をカバーしており、すべてのポリシー、オプション、サンプルが含まれています。不足している内容が見つかった場合は、`https://docs.befailproof.ai/llms-full.txt` でソースを確認してください。
|
|
29
|
+
|
|
30
|
+
特定のコンテキストに絞り込みたい場合は、対象ページに直接リンクしてください:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# カスタムポリシー API のみ
|
|
34
|
+
npx skills add https://docs.befailproof.ai/custom-policies
|
|
35
|
+
|
|
36
|
+
# 組み込みポリシーのみ
|
|
37
|
+
npx skills add https://docs.befailproof.ai/built-in-policies
|
|
38
|
+
```
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: はじめに
|
|
3
|
+
description: "failproofai をインストールし、ポリシーを有効化して、エージェントを安定稼働させましょう"
|
|
4
|
+
icon: rocket
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 必要環境
|
|
8
|
+
|
|
9
|
+
- **Node.js** >= 20.9.0
|
|
10
|
+
- **Bun** >= 1.3.0(オプション — ソースからビルドする場合のみ必要)
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## インストール
|
|
15
|
+
|
|
16
|
+
<CodeGroup>
|
|
17
|
+
|
|
18
|
+
```bash npm
|
|
19
|
+
npm install -g failproofai
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```bash bun
|
|
23
|
+
bun add -g failproofai
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
</CodeGroup>
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## クイックスタート
|
|
31
|
+
|
|
32
|
+
<Steps>
|
|
33
|
+
<Step title="ポリシーを有効化する">
|
|
34
|
+
ポリシーとは、エージェントのツール呼び出しの前後に実行されるルールです。破壊的なコマンドの実行、シークレットの漏洩、その他の障害パターンを、実害が生じる前に検出します。
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
failproofai policies --install
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
このコマンドは Claude Code の `settings.json` にフックエントリを書き込みます。単一プロジェクト向けにインストールしたり、特定のポリシーだけを選択することも可能です。
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
failproofai policies --install --scope project
|
|
44
|
+
failproofai policies --install block-sudo block-rm-rf sanitize-api-keys
|
|
45
|
+
```
|
|
46
|
+
</Step>
|
|
47
|
+
<Step title="確認する">
|
|
48
|
+
```bash
|
|
49
|
+
failproofai policies
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
すべてのポリシー、その有効・無効の状態、および設定済みのパラメータを表示します。
|
|
53
|
+
</Step>
|
|
54
|
+
<Step title="ダッシュボードを起動する">
|
|
55
|
+
```bash
|
|
56
|
+
failproofai
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
`http://localhost:8020` にローカルダッシュボードを開きます。セッションの閲覧、ツール呼び出しの検査、ポリシーの管理が行えます。
|
|
60
|
+
</Step>
|
|
61
|
+
<Step title="エージェントを実行する">
|
|
62
|
+
通常通り Claude Code を起動してください。エージェントが危険な操作を試みた場合、failproofai が自動的に介入します。エージェントを無人で稼働させておき、何が起きたかをダッシュボードで後から確認できます。
|
|
63
|
+
</Step>
|
|
64
|
+
</Steps>
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## ポリシーの仕組み
|
|
69
|
+
|
|
70
|
+
エージェントがツールを実行するたびに、Claude Code はサブプロセスとして failproofai を呼び出します。
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
Claude Code → failproofai --hook PreToolUse → reads stdin JSON
|
|
74
|
+
evaluates policies
|
|
75
|
+
writes decision to stdout
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
各ポリシーは次の3つのいずれかの判定を返します。
|
|
79
|
+
|
|
80
|
+
- **allow** — エージェントは通常通り処理を続行する
|
|
81
|
+
- **deny** — アクションがブロックされ、エージェントにその理由が通知される
|
|
82
|
+
- **instruct** — エージェントのプロンプトに追加のコンテキストが付加される
|
|
83
|
+
|
|
84
|
+
<Note>
|
|
85
|
+
ポリシーはローカルプロセス上で実行されます。リモートサービスへのデータ送信は一切行われません。
|
|
86
|
+
</Note>
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## データの保存場所
|
|
91
|
+
|
|
92
|
+
すべての設定とログはお使いのマシン上に保存されます。
|
|
93
|
+
|
|
94
|
+
| パス | 保存内容 |
|
|
95
|
+
|------|----------------|
|
|
96
|
+
| `~/.failproofai/policies-config.json` | グローバルポリシー設定 |
|
|
97
|
+
| `~/.failproofai/hook-activity.jsonl` | フック実行履歴 |
|
|
98
|
+
| `~/.failproofai/hook.log` | カスタムフックエラーのデバッグログ |
|
|
99
|
+
| `.failproofai/policies-config.json` | プロジェクト別設定(コミット対象) |
|
|
100
|
+
| `.failproofai/policies-config.local.json` | 個人用オーバーライド(gitignore 対象) |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## アンインストール
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
failproofai policies --uninstall
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
`~/.claude/settings.json` からフックエントリを削除します。`~/.failproofai/` 内の設定ファイルは保持されます。
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 次のステップ
|
|
115
|
+
|
|
116
|
+
<CardGroup cols={2}>
|
|
117
|
+
|
|
118
|
+
<Card title="設定" icon="gear" href="/ja/configuration">
|
|
119
|
+
スコープと設定ファイルのフォーマット
|
|
120
|
+
</Card>
|
|
121
|
+
|
|
122
|
+
<Card title="組み込みポリシー" icon="shield" href="/ja/built-in-policies">
|
|
123
|
+
パラメータ付き全 26 ポリシーの一覧
|
|
124
|
+
</Card>
|
|
125
|
+
|
|
126
|
+
<Card title="カスタムポリシー" icon="code" href="/ja/custom-policies">
|
|
127
|
+
JavaScript で独自のポリシーを作成する
|
|
128
|
+
</Card>
|
|
129
|
+
|
|
130
|
+
<Card title="エージェントモニター" icon="chart-line" href="/ja/dashboard">
|
|
131
|
+
セッションの監視とポリシーアクティビティの確認
|
|
132
|
+
</Card>
|
|
133
|
+
|
|
134
|
+
</CardGroup>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Failproof AI
|
|
3
|
+
description: "AIエージェントの信頼性を保ち、自律的な動作を維持するフックとポリシーを管理する"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
[](https://www.npmjs.com/package/failproofai)
|
|
7
|
+
|
|
8
|
+
**Claude Code** および **Agents SDK** 向けの、AIエージェントの信頼性を保ち自律的な動作を維持するフックとポリシー。
|
|
9
|
+
|
|
10
|
+
AIエージェントは予測可能な形で失敗します。破壊的なコマンドを実行したり、シークレットを漏洩させたり、タスクから逸脱したり、ループにはまったり、mainブランチに直接プッシュしたりします。放置すれば、小さな失敗が連鎖して大きな問題へと発展します。
|
|
11
|
+
|
|
12
|
+
Failproof AI はこの問題を **ポリシー** によって解決します。ポリシーとは、エージェントのすべてのツール呼び出しにフックするルールであり、**障害の検出**、**軽減処置**(ブロック・指示・サニタイズ)、そして注意が必要な場合の **アラート通知** を行います。ローカルダッシュボードで後から内容を確認することもできます。
|
|
13
|
+
|
|
14
|
+
すべてはローカルで動作します。データが外部に送信されることはありません。
|
|
15
|
+
|
|
16
|
+
## はじめに
|
|
17
|
+
|
|
18
|
+
<CardGroup cols={2}>
|
|
19
|
+
|
|
20
|
+
<Card title="26個の組み込みポリシー" icon="shield" href="/ja/built-in-policies">
|
|
21
|
+
破壊的なコマンドのブロック、シークレットの漏洩防止、エージェントをプロジェクト境界内に制限するなど、すぐに使える機能が揃っています。
|
|
22
|
+
</Card>
|
|
23
|
+
|
|
24
|
+
<Card title="カスタムポリシー" icon="code" href="/ja/custom-policies">
|
|
25
|
+
シンプルな allow / deny / instruct APIを使って、JavaScriptで独自のルールを記述できます。
|
|
26
|
+
</Card>
|
|
27
|
+
|
|
28
|
+
<Card title="エージェントモニター" icon="chart-line" href="/ja/dashboard">
|
|
29
|
+
離席中にエージェントが何をしたか確認できます。セッションの閲覧、ツール呼び出しの検査、ポリシーが発動した箇所のレビューが可能です。
|
|
30
|
+
</Card>
|
|
31
|
+
|
|
32
|
+
<Card title="簡単な設定" icon="gear" href="/ja/configuration">
|
|
33
|
+
コードを書かずにポリシーを調整できます。許可リスト、保護ブランチ、しきい値をプロジェクト単位またはグローバルに設定できます。
|
|
34
|
+
</Card>
|
|
35
|
+
|
|
36
|
+
</CardGroup>
|
|
37
|
+
|
|
38
|
+
## クイックスタート
|
|
39
|
+
|
|
40
|
+
<CodeGroup>
|
|
41
|
+
|
|
42
|
+
```bash npm
|
|
43
|
+
npm install -g failproofai
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```bash bun
|
|
47
|
+
bun add -g failproofai
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
</CodeGroup>
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
failproofai policies --install # enable policies
|
|
54
|
+
failproofai # launch the dashboard
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
詳しい手順については、[入門ガイド](/ja/getting-started)をご覧ください。
|