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: Dashboard
|
|
3
|
+
description: "Giám sát các phiên làm việc của agent, xem xét các lệnh gọi công cụ và quản lý chính sách"
|
|
4
|
+
icon: chart-line
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Dashboard failproofai là một ứng dụng web cục bộ để giám sát các phiên làm việc của agent AI và quản lý chính sách. Xem những gì các agent của bạn đã làm khi bạn vắng mặt.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Khởi động dashboard
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
failproofai
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Mở tại `http://localhost:8020`.
|
|
18
|
+
|
|
19
|
+
Dashboard đọc trực tiếp từ hệ thống tập tin - các thư mục dự án Claude Code của bạn và các tệp cấu hình failproofai. Không có dữ liệu nào được ghi vào dịch vụ từ xa.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Các trang
|
|
24
|
+
|
|
25
|
+
### Projects
|
|
26
|
+
|
|
27
|
+
Liệt kê tất cả các dự án Claude Code được tìm thấy trên máy của bạn. Các dự án được phát hiện từ `~/.claude/projects/` (hoặc đường dẫn được đặt bởi `CLAUDE_PROJECTS_PATH`).
|
|
28
|
+
|
|
29
|
+
Mỗi dự án hiển thị:
|
|
30
|
+
- Tên dự án (được lấy từ đường dẫn thư mục)
|
|
31
|
+
- Số lượng phiên làm việc
|
|
32
|
+
- Ngày hoạt động phiên làm việc gần nhất
|
|
33
|
+
|
|
34
|
+
Nhấp vào một dự án để xem các phiên làm việc của nó.
|
|
35
|
+
|
|
36
|
+
### Sessions
|
|
37
|
+
|
|
38
|
+
Liệt kê tất cả các phiên làm việc trong một dự án. Mỗi phiên làm việc hiển thị:
|
|
39
|
+
- ID phiên làm việc
|
|
40
|
+
- Dấu thời gian bắt đầu và kết thúc
|
|
41
|
+
- Số lượng lệnh gọi công cụ
|
|
42
|
+
- Số lượng hoạt động hook (các chính sách đã được kích hoạt)
|
|
43
|
+
|
|
44
|
+
Sử dụng bộ lọc phạm vi ngày và tìm kiếm ID phiên làm việc để thu hẹp danh sách. Các phiên làm việc được chia thành các trang.
|
|
45
|
+
|
|
46
|
+
Nhấp vào một phiên làm việc để mở trình xem phiên làm việc.
|
|
47
|
+
|
|
48
|
+
### Session viewer
|
|
49
|
+
|
|
50
|
+
Trình xem phiên làm việc trả lời câu hỏi chính cho các agent tự động hóa: agent đã làm gì và có ở đúng hướng không? Nó hiển thị một dòng thời gian của mọi thứ đã xảy ra trong một phiên làm việc:
|
|
51
|
+
|
|
52
|
+
- **Messages** - Các phản hồi văn bản của Claude và các lời nhắc từ người dùng
|
|
53
|
+
- **Tool calls** - Mọi công cụ mà Claude đã gọi, kèm theo đầu vào và đầu ra của nó
|
|
54
|
+
- **Policy activity** - Đối với mỗi lệnh gọi công cụ, các chính sách nào đã được kích hoạt và quyết định nào mà chúng trả về
|
|
55
|
+
|
|
56
|
+
Thanh thống kê ở phía trên cùng hiển thị thời lượng phiên làm việc, tổng số lệnh gọi công cụ và tóm tắt quyết định hook (số lượng allow / deny / instruct).
|
|
57
|
+
|
|
58
|
+
Bạn có thể xuất phiên làm việc dưới dạng tệp ZIP hoặc JSONL bằng nút tải xuống.
|
|
59
|
+
|
|
60
|
+
### Policies
|
|
61
|
+
|
|
62
|
+
Một trang có hai tab để quản lý chính sách và xem xét hoạt động.
|
|
63
|
+
|
|
64
|
+
<Tabs>
|
|
65
|
+
<Tab title="Policies tab">
|
|
66
|
+
- Bật hoặc tắt các chính sách riêng lẻ bằng một cú nhấp chuột (ghi vào `~/.failproofai/policies-config.json`)
|
|
67
|
+
- Mở rộng một chính sách để cấu hình các tham số của nó (đối với các chính sách hỗ trợ `policyParams`)
|
|
68
|
+
- Cài đặt hoặc xóa hook cho một phạm vi nhất định
|
|
69
|
+
- Đặt đường dẫn tệp chính sách tùy chỉnh
|
|
70
|
+
</Tab>
|
|
71
|
+
<Tab title="Activity tab">
|
|
72
|
+
- Lịch sử đầy đủ được chia trang của mọi sự kiện hook đã được kích hoạt trên tất cả các phiên làm việc
|
|
73
|
+
- Tìm kiếm theo tên chính sách, ID phiên làm việc, tên công cụ hoặc quyết định
|
|
74
|
+
- Mỗi hàng hiển thị: dấu thời gian, tên chính sách, quyết định, tên công cụ, ID phiên làm việc và lý do cho các quyết định deny/instruct
|
|
75
|
+
</Tab>
|
|
76
|
+
</Tabs>
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Tự động làm mới
|
|
81
|
+
|
|
82
|
+
Dashboard có một công tắc tự động làm mới trong thanh điều hướng trên cùng. Khi được bật, trang hiện tại được làm mới định kỳ để hiển thị các phiên làm việc và hoạt động chính sách mới khi chúng xuất hiện. Thiết yếu để giám sát các phiên làm việc của agent tự động hóa chạy lâu dài.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Vô hiệu hóa các trang
|
|
87
|
+
|
|
88
|
+
Nếu bạn chỉ cần một số phần của dashboard, hãy đặt `FAILPROOFAI_DISABLE_PAGES` thành một danh sách tên trang được phân tách bằng dấu phẩy:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
FAILPROOFAI_DISABLE_PAGES=policies failproofai
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Các giá trị hợp lệ: `policies`, `projects`.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Chủ đề
|
|
99
|
+
|
|
100
|
+
Dashboard hỗ trợ chế độ sáng và chế độ tối. Chuyển đổi qua nút trong thanh điều hướng. Tùy chọn được lưu trữ trong bộ nhớ cục bộ của trình duyệt của bạn.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Cấu hình đường dẫn dự án
|
|
105
|
+
|
|
106
|
+
Theo mặc định, dashboard đọc từ thư mục dự án Claude Code tiêu chuẩn. Ghi đè nó cho các thiết lập tùy chỉnh:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
CLAUDE_PROJECTS_PATH=/custom/path/to/projects failproofai
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Truy cập từ máy chủ không phải localhost
|
|
115
|
+
|
|
116
|
+
Khi chạy dashboard ở **chế độ phát triển** (`npm run dev`) và truy cập nó từ tên máy chủ khác ngoài `localhost` - ví dụ như một miền tùy chỉnh, IP từ xa hoặc URL được đường hầm - bạn có thể thấy cảnh báo như:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
⚠ Blocked cross-origin request to Next.js dev resource /_next/webpack-hmr from "dashboard.example.com".
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Đây là Next.js chặn quyền truy cập cross-origin vào websocket HMR (hot module reload) của nó, đây là một tính năng chỉ cho phát triển. Để cho phép máy chủ của bạn, hãy sử dụng cờ `--allowed-origins`:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npm run dev -- --allowed-origins dashboard.example.com
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Để có nhiều máy chủ hoặc IP, hãy chuyển một danh sách được phân tách bằng dấu phẩy:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npm run dev -- --allowed-origins dashboard.example.com,192.168.1.5
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Bạn cũng có thể đặt biến môi trường `FAILPROOFAI_ALLOWED_DEV_ORIGINS`:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
FAILPROOFAI_ALLOWED_DEV_ORIGINS=dashboard.example.com npm run dev
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
<Note>
|
|
141
|
+
Điều này chỉ áp dụng cho chế độ phát triển. Khi chạy `failproofai` (chế độ production), không có websocket HMR và không có vấn đề tài nguyên phát triển cross-origin.
|
|
142
|
+
</Note>
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Ví dụ
|
|
3
|
+
description: "Cách thiết lập hooks cho Claude Code và Agents SDK"
|
|
4
|
+
icon: book-open
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Các ví dụ sẵn sàng sử dụng cho các tình huống phổ biến. Mỗi ví dụ cho thấy cách cài đặt và những gì bạn có thể mong đợi.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Thiết lập hooks cho Claude Code
|
|
12
|
+
|
|
13
|
+
Failproof AI tích hợp với Claude Code thông qua [hệ thống hooks](https://docs.anthropic.com/en/docs/claude-code/hooks) của nó. Khi bạn chạy `failproofai policies --install`, nó sẽ đăng ký các lệnh hook trong `settings.json` của Claude Code để kích hoạt trên mỗi lệnh gọi công cụ.
|
|
14
|
+
|
|
15
|
+
<Steps>
|
|
16
|
+
<Step title="Cài đặt failproofai">
|
|
17
|
+
```bash
|
|
18
|
+
npm install -g failproofai
|
|
19
|
+
```
|
|
20
|
+
</Step>
|
|
21
|
+
<Step title="Bật tất cả các chính sách tích hợp">
|
|
22
|
+
```bash
|
|
23
|
+
failproofai policies --install
|
|
24
|
+
```
|
|
25
|
+
</Step>
|
|
26
|
+
<Step title="Xác minh rằng hooks đã được đăng ký">
|
|
27
|
+
```bash
|
|
28
|
+
cat ~/.claude/settings.json | grep failproofai
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Bạn sẽ thấy các mục hook cho các sự kiện `PreToolUse`, `PostToolUse`, `Notification` và `Stop`.
|
|
32
|
+
</Step>
|
|
33
|
+
<Step title="Chạy Claude Code">
|
|
34
|
+
```bash
|
|
35
|
+
claude
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Các chính sách giờ đây chạy tự động trên mỗi lệnh gọi công cụ. Hãy thử yêu cầu Claude chạy `sudo rm -rf /` - nó sẽ bị chặn.
|
|
39
|
+
</Step>
|
|
40
|
+
</Steps>
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Thiết lập hooks cho Agents SDK
|
|
45
|
+
|
|
46
|
+
Nếu bạn đang xây dựng bằng [Agents SDK](https://docs.anthropic.com/en/docs/agents-sdk), bạn có thể sử dụng hệ thống hook tương tự theo cách lập trình.
|
|
47
|
+
|
|
48
|
+
<Steps>
|
|
49
|
+
<Step title="Cài đặt failproofai trong dự án của bạn">
|
|
50
|
+
```bash
|
|
51
|
+
npm install failproofai
|
|
52
|
+
```
|
|
53
|
+
</Step>
|
|
54
|
+
<Step title="Cấu hình hooks trong agent của bạn">
|
|
55
|
+
Truyền các lệnh hook khi tạo quy trình agent của bạn. Các hooks kích hoạt giống như trong Claude Code - thông qua JSON stdin/stdout:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
failproofai --hook PreToolUse # được gọi trước mỗi công cụ
|
|
59
|
+
failproofai --hook PostToolUse # được gọi sau mỗi công cụ
|
|
60
|
+
```
|
|
61
|
+
</Step>
|
|
62
|
+
<Step title="Viết một chính sách tùy chỉnh cho agent của bạn">
|
|
63
|
+
```javascript
|
|
64
|
+
import { customPolicies, allow, deny } from "failproofai";
|
|
65
|
+
|
|
66
|
+
customPolicies.add({
|
|
67
|
+
name: "limit-to-project-dir",
|
|
68
|
+
description: "Giữ agent trong thư mục dự án",
|
|
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 bị hạn chế trong thư mục dự án");
|
|
74
|
+
}
|
|
75
|
+
return allow();
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
```
|
|
79
|
+
</Step>
|
|
80
|
+
<Step title="Cài đặt chính sách tùy chỉnh">
|
|
81
|
+
```bash
|
|
82
|
+
failproofai policies --install --custom ./my-agent-policies.js
|
|
83
|
+
```
|
|
84
|
+
</Step>
|
|
85
|
+
</Steps>
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Chặn các lệnh có tính chất phá hủy
|
|
90
|
+
|
|
91
|
+
Cấu hình phổ biến nhất - ngăn chặn agents thực hiện các thiệt hại không thể đảo ngược.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
failproofai policies --install block-sudo block-rm-rf block-force-push block-curl-pipe-sh
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Điều này làm gì:
|
|
98
|
+
- `block-sudo` - chặn tất cả các lệnh `sudo`
|
|
99
|
+
- `block-rm-rf` - chặn xóa tệp đệ quy
|
|
100
|
+
- `block-force-push` - chặn `git push --force`
|
|
101
|
+
- `block-curl-pipe-sh` - chặn ống dẫn các tập lệnh từ xa đến shell
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Ngăn chặn rò rỉ bí mật
|
|
106
|
+
|
|
107
|
+
Dừng agents nhìn thấy hoặc rò rỉ thông tin xác thực trong kết quả đầu ra công cụ.
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
failproofai policies --install sanitize-api-keys sanitize-jwt sanitize-connection-strings sanitize-bearer-tokens
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Những cái này kích hoạt trên `PostToolUse` - sau khi một công cụ chạy, chúng sẽ làm sạch kết quả đầu ra trước khi agent nhìn thấy.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Nhận cảnh báo Slack khi agents cần chú ý
|
|
118
|
+
|
|
119
|
+
Sử dụng hook thông báo để chuyển tiếp cảnh báo nhàn rỗi đến Slack.
|
|
120
|
+
|
|
121
|
+
```javascript
|
|
122
|
+
import { customPolicies, allow, instruct } from "failproofai";
|
|
123
|
+
|
|
124
|
+
customPolicies.add({
|
|
125
|
+
name: "slack-on-idle",
|
|
126
|
+
description: "Cảnh báo Slack khi agent đang chờ đầu vào",
|
|
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 đang chờ");
|
|
133
|
+
const project = ctx.session?.cwd ?? "không xác định";
|
|
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
|
+
// không bao giờ chặn agent nếu Slack không thể truy cập
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
return allow();
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Cài đặt nó:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
SLACK_WEBHOOK_URL=https://hooks.slack.com/... failproofai policies --install --custom ./slack-alerts.js
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Giữ agents trên một nhánh
|
|
162
|
+
|
|
163
|
+
Ngăn chặn agents từ việc chuyển đổi nhánh hoặc đẩy đến các nhánh được bảo vệ.
|
|
164
|
+
|
|
165
|
+
```javascript
|
|
166
|
+
import { customPolicies, allow, deny } from "failproofai";
|
|
167
|
+
|
|
168
|
+
customPolicies.add({
|
|
169
|
+
name: "stay-on-branch",
|
|
170
|
+
description: "Ngăn chặn agent kiểm tra các nhánh khác",
|
|
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("Giữ trên nhánh hiện tại. Tạo một nhánh mới bằng -b nếu cần.");
|
|
177
|
+
}
|
|
178
|
+
return allow();
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Yêu cầu kiểm tra trước khi commit
|
|
186
|
+
|
|
187
|
+
Nhắc nhở agents chạy các kiểm tra trước khi commit.
|
|
188
|
+
|
|
189
|
+
```javascript
|
|
190
|
+
import { customPolicies, allow, instruct } from "failproofai";
|
|
191
|
+
|
|
192
|
+
customPolicies.add({
|
|
193
|
+
name: "test-before-commit",
|
|
194
|
+
description: "Nhắc nhở agent chạy các kiểm tra trước khi commit",
|
|
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("Chạy các kiểm tra trước khi commit. Sử dụng `npm test` hoặc `bun test` trước tiên.");
|
|
201
|
+
}
|
|
202
|
+
return allow();
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Khóa kho lưu trữ sản xuất
|
|
210
|
+
|
|
211
|
+
Commit một cấu hình ở cấp độ dự án để mỗi nhà phát triển trong đội của bạn nhận được các chính sách tương tự.
|
|
212
|
+
|
|
213
|
+
Tạo `.failproofai/policies-config.json` trong kho lưu trữ của bạn:
|
|
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
|
+
Sau đó commit nó:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
git add .failproofai/policies-config.json
|
|
238
|
+
git commit -m "Add failproofai team policies"
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Mỗi thành viên trong đội có failproofai được cài đặt sẽ tự động áp dụng các quy tắc này.
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Thêm ví dụ
|
|
246
|
+
|
|
247
|
+
Thư mục [`examples/`](https://github.com/exospherehost/failproofai/tree/main/examples) trong kho lưu trữ chứa:
|
|
248
|
+
|
|
249
|
+
| Tệp | Những gì nó cho thấy |
|
|
250
|
+
|------|---------------|
|
|
251
|
+
| `policies-basic.js` | Các chính sách khởi động - chặn ghi sản xuất, force-push, tập lệnh ống dẫn |
|
|
252
|
+
| `policies-notification.js` | Cảnh báo Slack cho thông báo nhàn rỗi và kết thúc phiên |
|
|
253
|
+
| `policies-advanced/index.js` | Nhập cũng từ các tệp khác, hooks không đồng bộ, làm sạch kết quả đầu ra PostToolUse, xử lý sự kiện Stop |
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Cho các agent"
|
|
3
|
+
description: "Thêm kiến thức Failproof AI vào coding agent của bạn chỉ trong một lệnh. Hoạt động với Claude Code, Cursor, Windsurf và nhiều hơn nữa."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Thêm tham chiếu đầy đủ Failproof AI vào coding agent của bạn chỉ trong một lệnh. Hoạt động với Claude Code, Cursor, Windsurf và bất kỳ agent nào khác hỗ trợ skills.
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npx skills add https://docs.befailproof.ai
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
`npx skills` phát hiện các agent bạn đã cài đặt và tự động thêm skill ở định dạng phù hợp cho từng agent.
|
|
13
|
+
|
|
14
|
+
## Skill bao gồm những gì
|
|
15
|
+
|
|
16
|
+
| Lĩnh vực | Nội dung bao gồm |
|
|
17
|
+
|------|----------------|
|
|
18
|
+
| Policies | Tên policy có sẵn, các loại sự kiện, tham số, bật/tắt |
|
|
19
|
+
| Custom policies | `customPolicies.add()`, match filters, API `allow`/`deny`/`instruct` |
|
|
20
|
+
| Context object | `ctx.eventType`, `ctx.toolName`, `ctx.toolInput`, `ctx.session` |
|
|
21
|
+
| Configuration | Cấu trúc `policies-config.json`, scope merging, `policyParams` |
|
|
22
|
+
| CLI | `failproofai policies --install`, `--uninstall`, `--custom`, scopes |
|
|
23
|
+
| Dashboard | Session viewer, policy activity, environment variables |
|
|
24
|
+
| Architecture | Hook handler flow, exit codes, stdin/stdout contract |
|
|
25
|
+
|
|
26
|
+
## Skill có đầy đủ không?
|
|
27
|
+
|
|
28
|
+
Mintlify tạo `llms.txt` từ tất cả các trang trong navigation. Tài liệu Failproof AI bao gồm toàn bộ API - mọi policy, option và ví dụ đều có. Nếu bạn phát hiện điều gì bị thiếu, nguồn gốc nằm ở `https://docs.befailproof.ai/llms-full.txt`.
|
|
29
|
+
|
|
30
|
+
Để có ngữ cảnh cụ thể, liên kết trực tiếp đến một trang cụ thể:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Chỉ custom policies API
|
|
34
|
+
npx skills add https://docs.befailproof.ai/custom-policies
|
|
35
|
+
|
|
36
|
+
# Chỉ built-in policies
|
|
37
|
+
npx skills add https://docs.befailproof.ai/built-in-policies
|
|
38
|
+
```
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Bắt đầu
|
|
3
|
+
description: "Cài đặt failproofai, bật các chính sách và cho phép các agent của bạn chạy một cách đáng tin cậy"
|
|
4
|
+
icon: rocket
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Yêu cầu
|
|
8
|
+
|
|
9
|
+
- **Node.js** >= 20.9.0
|
|
10
|
+
- **Bun** >= 1.3.0 (tùy chọn - chỉ cần thiết khi xây dựng từ nguồn)
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Cài đặt
|
|
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
|
+
## Bắt đầu nhanh
|
|
31
|
+
|
|
32
|
+
<Steps>
|
|
33
|
+
<Step title="Bật các chính sách">
|
|
34
|
+
Các chính sách là những quy tắc chạy trước và sau mỗi lời gọi công cụ của agent. Chúng bắt các lệnh có tính phá hủy, rò rỉ thông tin bí mật và các kiểu lỗi khác trước khi gây hại.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
failproofai policies --install
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Điều này ghi các mục hook vào `settings.json` của Claude Code. Bạn cũng có thể cài đặt cho một dự án duy nhất hoặc chọn các chính sách cụ thể:
|
|
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="Xác minh">
|
|
48
|
+
```bash
|
|
49
|
+
failproofai policies
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Hiển thị mọi chính sách, liệu nó có được bật hay không và bất kỳ tham số nào được cấu hình.
|
|
53
|
+
</Step>
|
|
54
|
+
<Step title="Khởi chạy bảng điều khiển">
|
|
55
|
+
```bash
|
|
56
|
+
failproofai
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Mở bảng điều khiển cục bộ tại `http://localhost:8020` nơi bạn có thể duyệt phiên, kiểm tra các lời gọi công cụ và quản lý các chính sách.
|
|
60
|
+
</Step>
|
|
61
|
+
<Step title="Chạy agent của bạn">
|
|
62
|
+
Khởi động Claude Code như bình thường. Nếu agent cố gắng làm điều gì đó rủi ro, failproofai sẽ chặn nó tự động. Hãy để nó chạy không giám sát và xem xét những gì đã xảy ra trong bảng điều khiển.
|
|
63
|
+
</Step>
|
|
64
|
+
</Steps>
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Cách các chính sách hoạt động
|
|
69
|
+
|
|
70
|
+
Mỗi khi một agent chạy một công cụ, Claude Code gọi failproofai như một tiến trình con:
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
Claude Code → failproofai --hook PreToolUse → đọc JSON từ stdin
|
|
74
|
+
đánh giá các chính sách
|
|
75
|
+
ghi quyết định vào stdout
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Mỗi chính sách trả về một trong ba quyết định:
|
|
79
|
+
|
|
80
|
+
- **allow** - agent tiếp tục bình thường
|
|
81
|
+
- **deny** - hành động bị chặn, agent được thông báo lý do
|
|
82
|
+
- **instruct** - bối cảnh bổ sung được thêm vào lời nhắc của agent
|
|
83
|
+
|
|
84
|
+
<Note>
|
|
85
|
+
Các chính sách chạy trong quy trình cục bộ của bạn. Không có gì được gửi đến một dịch vụ từ xa.
|
|
86
|
+
</Note>
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Lưu trữ dữ liệu
|
|
91
|
+
|
|
92
|
+
Tất cả cấu hình và nhật ký nằm trên máy của bạn:
|
|
93
|
+
|
|
94
|
+
| Đường dẫn | Những gì nó lưu trữ |
|
|
95
|
+
|------|----------------|
|
|
96
|
+
| `~/.failproofai/policies-config.json` | Cấu hình chính sách toàn cục |
|
|
97
|
+
| `~/.failproofai/hook-activity.jsonl` | Lịch sử thực thi hook |
|
|
98
|
+
| `~/.failproofai/hook.log` | Nhật ký gỡ lỗi cho các lỗi hook tùy chỉnh |
|
|
99
|
+
| `.failproofai/policies-config.json` | Cấu hình cho từng dự án (được cam kết) |
|
|
100
|
+
| `.failproofai/policies-config.local.json` | Ghi đè cá nhân (gitignored) |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Gỡ cài đặt
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
failproofai policies --uninstall
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Xóa các mục hook khỏi `~/.claude/settings.json`. Các tệp cấu hình trong `~/.failproofai/` được giữ lại.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Các bước tiếp theo
|
|
115
|
+
|
|
116
|
+
<CardGroup cols={2}>
|
|
117
|
+
|
|
118
|
+
<Card title="Cấu hình" icon="gear" href="/vi/configuration">
|
|
119
|
+
Phạm vi và định dạng tệp cấu hình
|
|
120
|
+
</Card>
|
|
121
|
+
|
|
122
|
+
<Card title="Chính sách tích hợp" icon="shield" href="/vi/built-in-policies">
|
|
123
|
+
Tất cả 26 chính sách với tham số
|
|
124
|
+
</Card>
|
|
125
|
+
|
|
126
|
+
<Card title="Chính sách tùy chỉnh" icon="code" href="/vi/custom-policies">
|
|
127
|
+
Viết các chính sách của riêng bạn bằng JavaScript
|
|
128
|
+
</Card>
|
|
129
|
+
|
|
130
|
+
<Card title="Trình giám sát agent" icon="chart-line" href="/vi/dashboard">
|
|
131
|
+
Giám sát phiên và xem xét hoạt động của chính sách
|
|
132
|
+
</Card>
|
|
133
|
+
|
|
134
|
+
</CardGroup>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Failproof AI
|
|
3
|
+
description: "Quản lý hooks và policies giúp các AI agents của bạn hoạt động tin cậy và tự động"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
[](https://www.npmjs.com/package/failproofai)
|
|
7
|
+
|
|
8
|
+
Hooks và policies giúp các AI agents của bạn hoạt động tin cậy và tự động - cho **Claude Code** và **Agents SDK**.
|
|
9
|
+
|
|
10
|
+
AI agents thất bại theo những cách có thể dự đoán được. Chúng chạy các lệnh phá hủy, rò rỉ bí mật, lệch khỏi nhiệm vụ, bị mắc kẹt trong vòng lặp, hoặc đẩy trực tiếp sang nhánh main. Nếu không được giám sát, những lỗi nhỏ sẽ phát triển thành vấn đề lớn.
|
|
11
|
+
|
|
12
|
+
Failproof AI giải quyết vấn đề này bằng **policies** - các quy tắc được kích hoạt ở mỗi lệnh gọi công cụ của agent và có thể **phát hiện lỗi**, **giảm nhẹ chúng** (chặn, hướng dẫn, làm sạch), và **cảnh báo bạn** khi có vấn đề cần được chú ý. Bảng điều khiển cục bộ cho phép bạn xem xét mọi thứ sau đó.
|
|
13
|
+
|
|
14
|
+
Mọi thứ chạy cục bộ. Không có dữ liệu nào rời khỏi máy của bạn.
|
|
15
|
+
|
|
16
|
+
## Bắt đầu
|
|
17
|
+
|
|
18
|
+
<CardGroup cols={2}>
|
|
19
|
+
|
|
20
|
+
<Card title="26 policies tích hợp sẵn" icon="shield" href="/vi/built-in-policies">
|
|
21
|
+
Chặn các lệnh phá hủy, ngăn chặn rò rỉ bí mật, giữ agents trong phạm vi dự án, và nhiều hơn nữa - sẵn sàng sử dụng.
|
|
22
|
+
</Card>
|
|
23
|
+
|
|
24
|
+
<Card title="Custom policies" icon="code" href="/vi/custom-policies">
|
|
25
|
+
Viết các quy tắc của riêng bạn bằng JavaScript với API allow / deny / instruct đơn giản.
|
|
26
|
+
</Card>
|
|
27
|
+
|
|
28
|
+
<Card title="Agent monitor" icon="chart-line" href="/vi/dashboard">
|
|
29
|
+
Xem những gì các agents của bạn đã làm khi bạn vắng mặt. Duyệt các phiên, kiểm tra các lệnh gọi công cụ, xem xét nơi policies được kích hoạt.
|
|
30
|
+
</Card>
|
|
31
|
+
|
|
32
|
+
<Card title="Cấu hình dễ dàng" icon="gear" href="/vi/configuration">
|
|
33
|
+
Điều chỉnh bất kỳ policy nào mà không cần mã. Đặt danh sách cho phép, nhánh được bảo vệ, hoặc ngưỡng cho từng dự án hoặc toàn cục.
|
|
34
|
+
</Card>
|
|
35
|
+
|
|
36
|
+
</CardGroup>
|
|
37
|
+
|
|
38
|
+
## Khởi động nhanh
|
|
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
|
+
Xem hướng dẫn [Getting started](/vi/getting-started) để có hướng dẫn chi tiết đầy đủ.
|