failproofai 0.0.6-beta.2 → 0.0.6-beta.4
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/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +7 -1
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +17 -17
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +17 -17
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +16 -16
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +16 -16
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +11 -11
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0i5kvry._.js → [root-of-the-server]__0om-5pe._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__05akje6._.js → [root-of-the-server]__111.vxi._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_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_posthog-node_dist_entrypoints_index_node_mjs_0mebn66._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +2 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
- package/.next/standalone/.next/static/chunks/{05j1px0r8yzh6.js → 02dqjyv6_9mhq.js} +2 -2
- package/.next/standalone/.next/static/chunks/{14cl9poem30dq.js → 070orfsl6.xal.js} +1 -1
- package/.next/standalone/.next/static/chunks/0mir9jdxn35~s.css +1 -0
- package/.next/standalone/.next/static/chunks/{00j0rr7rh8ef8.js → 0o547jv-k_k35.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ijk_kek9_wyx.js → 0pk2h2.mjxy.m.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0xpl.oscrakvx.js → 0rcwkbh24w38b.js} +1 -1
- package/.next/standalone/.next/static/chunks/{1052sguyd-.ka.js → 140xx_tfr~lm_.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0npb~873.wvg3.js → 169_e4dq~1~b6.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0badv41uxa56..js → 17ne4p.1sw1jy.js} +1 -1
- package/.next/standalone/next.config.ts +6 -0
- package/.next/standalone/package.json +2 -2
- package/.next/standalone/server.js +1 -1
- package/bin/failproofai.mjs +91 -4
- package/dist/cli.mjs +1155 -54
- package/package.json +2 -2
- package/scripts/prune-standalone.mjs +128 -0
- package/src/auth/login.ts +104 -0
- package/src/auth/logout.ts +50 -0
- package/src/auth/token-store.ts +64 -0
- package/src/hooks/builtin-policies.ts +22 -20
- package/src/hooks/handler.ts +35 -15
- package/src/relay/daemon.ts +362 -0
- package/src/relay/pid.ts +76 -0
- package/src/relay/queue.ts +225 -0
- package/.next/standalone/.claude/settings.json +0 -316
- package/.next/standalone/.failproofai/policies/review-policies.mjs +0 -113
- package/.next/standalone/.failproofai/policies/workflow-policies.mjs +0 -63
- package/.next/standalone/.failproofai/policies-config.json +0 -39
- package/.next/standalone/.next/static/chunks/0gu_a.a80ritd.css +0 -1
- package/.next/standalone/AGENTS.md +0 -80
- package/.next/standalone/CHANGELOG.md +0 -151
- package/.next/standalone/CLAUDE.md +0 -165
- package/.next/standalone/CONTRIBUTING.md +0 -76
- package/.next/standalone/Dockerfile.docs +0 -12
- package/.next/standalone/LICENSE +0 -42
- package/.next/standalone/README.md +0 -301
- package/.next/standalone/bin/failproofai.mjs +0 -352
- package/.next/standalone/bun.lock +0 -1119
- package/.next/standalone/components.json +0 -23
- package/.next/standalone/dist/cli.mjs +0 -3595
- package/.next/standalone/dist/index.js +0 -80
- package/.next/standalone/docs/ar/architecture.mdx +0 -334
- package/.next/standalone/docs/ar/built-in-policies.mdx +0 -574
- package/.next/standalone/docs/ar/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/ar/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/ar/cli/hook.mdx +0 -31
- package/.next/standalone/docs/ar/cli/install-policies.mdx +0 -48
- package/.next/standalone/docs/ar/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/ar/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/ar/cli/version.mdx +0 -13
- package/.next/standalone/docs/ar/configuration.mdx +0 -223
- package/.next/standalone/docs/ar/custom-policies.mdx +0 -354
- package/.next/standalone/docs/ar/dashboard.mdx +0 -142
- package/.next/standalone/docs/ar/examples.mdx +0 -307
- package/.next/standalone/docs/ar/for-agents.mdx +0 -39
- package/.next/standalone/docs/ar/getting-started.mdx +0 -187
- package/.next/standalone/docs/ar/introduction.mdx +0 -58
- package/.next/standalone/docs/ar/package-aliases.mdx +0 -82
- package/.next/standalone/docs/ar/testing.mdx +0 -261
- package/.next/standalone/docs/architecture.mdx +0 -332
- package/.next/standalone/docs/built-in-policies.mdx +0 -574
- package/.next/standalone/docs/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/cli/hook.mdx +0 -30
- package/.next/standalone/docs/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/cli/version.mdx +0 -12
- package/.next/standalone/docs/configuration.mdx +0 -222
- package/.next/standalone/docs/custom-policies.mdx +0 -353
- package/.next/standalone/docs/dashboard.mdx +0 -142
- package/.next/standalone/docs/de/architecture.mdx +0 -332
- package/.next/standalone/docs/de/built-in-policies.mdx +0 -574
- package/.next/standalone/docs/de/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/de/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/de/cli/hook.mdx +0 -30
- package/.next/standalone/docs/de/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/de/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/de/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/de/cli/version.mdx +0 -12
- package/.next/standalone/docs/de/configuration.mdx +0 -222
- package/.next/standalone/docs/de/custom-policies.mdx +0 -353
- package/.next/standalone/docs/de/dashboard.mdx +0 -142
- package/.next/standalone/docs/de/examples.mdx +0 -307
- package/.next/standalone/docs/de/for-agents.mdx +0 -38
- package/.next/standalone/docs/de/getting-started.mdx +0 -186
- package/.next/standalone/docs/de/introduction.mdx +0 -57
- package/.next/standalone/docs/de/package-aliases.mdx +0 -82
- package/.next/standalone/docs/de/testing.mdx +0 -260
- package/.next/standalone/docs/docs.json +0 -1002
- package/.next/standalone/docs/es/architecture.mdx +0 -332
- package/.next/standalone/docs/es/built-in-policies.mdx +0 -574
- package/.next/standalone/docs/es/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/es/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/es/cli/hook.mdx +0 -30
- package/.next/standalone/docs/es/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/es/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/es/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/es/cli/version.mdx +0 -12
- package/.next/standalone/docs/es/configuration.mdx +0 -222
- package/.next/standalone/docs/es/custom-policies.mdx +0 -353
- package/.next/standalone/docs/es/dashboard.mdx +0 -142
- package/.next/standalone/docs/es/examples.mdx +0 -307
- package/.next/standalone/docs/es/for-agents.mdx +0 -38
- package/.next/standalone/docs/es/getting-started.mdx +0 -186
- package/.next/standalone/docs/es/introduction.mdx +0 -57
- package/.next/standalone/docs/es/package-aliases.mdx +0 -82
- package/.next/standalone/docs/es/testing.mdx +0 -260
- package/.next/standalone/docs/examples.mdx +0 -307
- package/.next/standalone/docs/favicon.ico +0 -0
- package/.next/standalone/docs/for-agents.mdx +0 -38
- package/.next/standalone/docs/fr/architecture.mdx +0 -332
- package/.next/standalone/docs/fr/built-in-policies.mdx +0 -574
- package/.next/standalone/docs/fr/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/fr/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/fr/cli/hook.mdx +0 -30
- package/.next/standalone/docs/fr/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/fr/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/fr/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/fr/cli/version.mdx +0 -12
- package/.next/standalone/docs/fr/configuration.mdx +0 -222
- package/.next/standalone/docs/fr/custom-policies.mdx +0 -353
- package/.next/standalone/docs/fr/dashboard.mdx +0 -142
- package/.next/standalone/docs/fr/examples.mdx +0 -307
- package/.next/standalone/docs/fr/for-agents.mdx +0 -38
- package/.next/standalone/docs/fr/getting-started.mdx +0 -186
- package/.next/standalone/docs/fr/introduction.mdx +0 -57
- package/.next/standalone/docs/fr/package-aliases.mdx +0 -82
- package/.next/standalone/docs/fr/testing.mdx +0 -260
- package/.next/standalone/docs/getting-started.mdx +0 -186
- package/.next/standalone/docs/he/architecture.mdx +0 -333
- package/.next/standalone/docs/he/built-in-policies.mdx +0 -574
- package/.next/standalone/docs/he/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/he/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/he/cli/hook.mdx +0 -30
- package/.next/standalone/docs/he/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/he/cli/list-policies.mdx +0 -32
- package/.next/standalone/docs/he/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/he/cli/version.mdx +0 -12
- package/.next/standalone/docs/he/configuration.mdx +0 -223
- package/.next/standalone/docs/he/custom-policies.mdx +0 -353
- package/.next/standalone/docs/he/dashboard.mdx +0 -142
- package/.next/standalone/docs/he/examples.mdx +0 -307
- package/.next/standalone/docs/he/for-agents.mdx +0 -38
- package/.next/standalone/docs/he/getting-started.mdx +0 -186
- package/.next/standalone/docs/he/introduction.mdx +0 -57
- package/.next/standalone/docs/he/package-aliases.mdx +0 -82
- package/.next/standalone/docs/he/testing.mdx +0 -260
- package/.next/standalone/docs/hi/architecture.mdx +0 -334
- package/.next/standalone/docs/hi/built-in-policies.mdx +0 -576
- package/.next/standalone/docs/hi/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/hi/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/hi/cli/hook.mdx +0 -30
- package/.next/standalone/docs/hi/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/hi/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/hi/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/hi/cli/version.mdx +0 -12
- package/.next/standalone/docs/hi/configuration.mdx +0 -222
- package/.next/standalone/docs/hi/custom-policies.mdx +0 -354
- package/.next/standalone/docs/hi/dashboard.mdx +0 -142
- package/.next/standalone/docs/hi/examples.mdx +0 -309
- package/.next/standalone/docs/hi/for-agents.mdx +0 -38
- package/.next/standalone/docs/hi/getting-started.mdx +0 -187
- package/.next/standalone/docs/hi/introduction.mdx +0 -57
- package/.next/standalone/docs/hi/package-aliases.mdx +0 -82
- package/.next/standalone/docs/hi/testing.mdx +0 -260
- package/.next/standalone/docs/i18n/README.ar.md +0 -312
- package/.next/standalone/docs/i18n/README.de.md +0 -307
- package/.next/standalone/docs/i18n/README.es.md +0 -307
- package/.next/standalone/docs/i18n/README.fr.md +0 -307
- package/.next/standalone/docs/i18n/README.he.md +0 -312
- package/.next/standalone/docs/i18n/README.hi.md +0 -307
- package/.next/standalone/docs/i18n/README.it.md +0 -307
- package/.next/standalone/docs/i18n/README.ja.md +0 -307
- package/.next/standalone/docs/i18n/README.ko.md +0 -307
- package/.next/standalone/docs/i18n/README.pt-br.md +0 -307
- package/.next/standalone/docs/i18n/README.ru.md +0 -308
- package/.next/standalone/docs/i18n/README.tr.md +0 -307
- package/.next/standalone/docs/i18n/README.vi.md +0 -307
- package/.next/standalone/docs/i18n/README.zh.md +0 -307
- package/.next/standalone/docs/introduction.mdx +0 -57
- package/.next/standalone/docs/it/architecture.mdx +0 -334
- package/.next/standalone/docs/it/built-in-policies.mdx +0 -574
- package/.next/standalone/docs/it/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/it/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/it/cli/hook.mdx +0 -30
- package/.next/standalone/docs/it/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/it/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/it/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/it/cli/version.mdx +0 -12
- package/.next/standalone/docs/it/configuration.mdx +0 -222
- package/.next/standalone/docs/it/custom-policies.mdx +0 -353
- package/.next/standalone/docs/it/dashboard.mdx +0 -142
- package/.next/standalone/docs/it/examples.mdx +0 -307
- package/.next/standalone/docs/it/for-agents.mdx +0 -38
- package/.next/standalone/docs/it/getting-started.mdx +0 -186
- package/.next/standalone/docs/it/introduction.mdx +0 -57
- package/.next/standalone/docs/it/package-aliases.mdx +0 -82
- package/.next/standalone/docs/it/testing.mdx +0 -260
- package/.next/standalone/docs/ja/architecture.mdx +0 -332
- package/.next/standalone/docs/ja/built-in-policies.mdx +0 -572
- package/.next/standalone/docs/ja/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/ja/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/ja/cli/hook.mdx +0 -30
- package/.next/standalone/docs/ja/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/ja/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/ja/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/ja/cli/version.mdx +0 -12
- package/.next/standalone/docs/ja/configuration.mdx +0 -222
- package/.next/standalone/docs/ja/custom-policies.mdx +0 -353
- package/.next/standalone/docs/ja/dashboard.mdx +0 -142
- package/.next/standalone/docs/ja/examples.mdx +0 -307
- package/.next/standalone/docs/ja/for-agents.mdx +0 -38
- package/.next/standalone/docs/ja/getting-started.mdx +0 -186
- package/.next/standalone/docs/ja/introduction.mdx +0 -57
- package/.next/standalone/docs/ja/package-aliases.mdx +0 -82
- package/.next/standalone/docs/ja/testing.mdx +0 -260
- package/.next/standalone/docs/ko/architecture.mdx +0 -332
- package/.next/standalone/docs/ko/built-in-policies.mdx +0 -572
- package/.next/standalone/docs/ko/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/ko/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/ko/cli/hook.mdx +0 -30
- package/.next/standalone/docs/ko/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/ko/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/ko/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/ko/cli/version.mdx +0 -12
- package/.next/standalone/docs/ko/configuration.mdx +0 -222
- package/.next/standalone/docs/ko/custom-policies.mdx +0 -353
- package/.next/standalone/docs/ko/dashboard.mdx +0 -142
- package/.next/standalone/docs/ko/examples.mdx +0 -307
- package/.next/standalone/docs/ko/for-agents.mdx +0 -38
- package/.next/standalone/docs/ko/getting-started.mdx +0 -186
- package/.next/standalone/docs/ko/introduction.mdx +0 -57
- package/.next/standalone/docs/ko/package-aliases.mdx +0 -82
- package/.next/standalone/docs/ko/testing.mdx +0 -260
- package/.next/standalone/docs/logo/dark.svg +0 -21
- package/.next/standalone/docs/logo/exosphere-dark.png +0 -0
- package/.next/standalone/docs/logo/exosphere-light.png +0 -0
- package/.next/standalone/docs/logo/light.svg +0 -21
- package/.next/standalone/docs/package-aliases.mdx +0 -82
- package/.next/standalone/docs/pt-br/architecture.mdx +0 -332
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +0 -574
- package/.next/standalone/docs/pt-br/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/pt-br/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/pt-br/cli/hook.mdx +0 -30
- package/.next/standalone/docs/pt-br/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/pt-br/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/pt-br/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/pt-br/cli/version.mdx +0 -12
- package/.next/standalone/docs/pt-br/configuration.mdx +0 -222
- package/.next/standalone/docs/pt-br/custom-policies.mdx +0 -353
- package/.next/standalone/docs/pt-br/dashboard.mdx +0 -142
- package/.next/standalone/docs/pt-br/examples.mdx +0 -307
- package/.next/standalone/docs/pt-br/for-agents.mdx +0 -38
- package/.next/standalone/docs/pt-br/getting-started.mdx +0 -186
- package/.next/standalone/docs/pt-br/introduction.mdx +0 -57
- package/.next/standalone/docs/pt-br/package-aliases.mdx +0 -82
- package/.next/standalone/docs/pt-br/testing.mdx +0 -260
- package/.next/standalone/docs/ru/architecture.mdx +0 -333
- package/.next/standalone/docs/ru/built-in-policies.mdx +0 -574
- package/.next/standalone/docs/ru/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/ru/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/ru/cli/hook.mdx +0 -30
- package/.next/standalone/docs/ru/cli/install-policies.mdx +0 -48
- package/.next/standalone/docs/ru/cli/list-policies.mdx +0 -32
- package/.next/standalone/docs/ru/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/ru/cli/version.mdx +0 -12
- package/.next/standalone/docs/ru/configuration.mdx +0 -222
- package/.next/standalone/docs/ru/custom-policies.mdx +0 -354
- package/.next/standalone/docs/ru/dashboard.mdx +0 -142
- package/.next/standalone/docs/ru/examples.mdx +0 -309
- package/.next/standalone/docs/ru/for-agents.mdx +0 -38
- package/.next/standalone/docs/ru/getting-started.mdx +0 -186
- package/.next/standalone/docs/ru/introduction.mdx +0 -57
- package/.next/standalone/docs/ru/package-aliases.mdx +0 -82
- package/.next/standalone/docs/ru/testing.mdx +0 -260
- package/.next/standalone/docs/testing.mdx +0 -260
- package/.next/standalone/docs/tr/architecture.mdx +0 -333
- package/.next/standalone/docs/tr/built-in-policies.mdx +0 -574
- package/.next/standalone/docs/tr/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/tr/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/tr/cli/hook.mdx +0 -30
- package/.next/standalone/docs/tr/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/tr/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/tr/cli/remove-policies.mdx +0 -44
- package/.next/standalone/docs/tr/cli/version.mdx +0 -12
- package/.next/standalone/docs/tr/configuration.mdx +0 -222
- package/.next/standalone/docs/tr/custom-policies.mdx +0 -353
- package/.next/standalone/docs/tr/dashboard.mdx +0 -142
- package/.next/standalone/docs/tr/examples.mdx +0 -308
- package/.next/standalone/docs/tr/for-agents.mdx +0 -38
- package/.next/standalone/docs/tr/getting-started.mdx +0 -186
- package/.next/standalone/docs/tr/introduction.mdx +0 -57
- package/.next/standalone/docs/tr/package-aliases.mdx +0 -82
- package/.next/standalone/docs/tr/testing.mdx +0 -260
- package/.next/standalone/docs/vi/architecture.mdx +0 -334
- package/.next/standalone/docs/vi/built-in-policies.mdx +0 -575
- package/.next/standalone/docs/vi/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/vi/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/vi/cli/hook.mdx +0 -30
- package/.next/standalone/docs/vi/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/vi/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/vi/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/vi/cli/version.mdx +0 -13
- package/.next/standalone/docs/vi/configuration.mdx +0 -222
- package/.next/standalone/docs/vi/custom-policies.mdx +0 -353
- package/.next/standalone/docs/vi/dashboard.mdx +0 -142
- package/.next/standalone/docs/vi/examples.mdx +0 -308
- package/.next/standalone/docs/vi/for-agents.mdx +0 -38
- package/.next/standalone/docs/vi/getting-started.mdx +0 -186
- package/.next/standalone/docs/vi/introduction.mdx +0 -57
- package/.next/standalone/docs/vi/package-aliases.mdx +0 -82
- package/.next/standalone/docs/vi/testing.mdx +0 -260
- package/.next/standalone/docs/zh/architecture.mdx +0 -332
- package/.next/standalone/docs/zh/built-in-policies.mdx +0 -572
- package/.next/standalone/docs/zh/cli/dashboard.mdx +0 -28
- package/.next/standalone/docs/zh/cli/environment-variables.mdx +0 -34
- package/.next/standalone/docs/zh/cli/hook.mdx +0 -30
- package/.next/standalone/docs/zh/cli/install-policies.mdx +0 -47
- package/.next/standalone/docs/zh/cli/list-policies.mdx +0 -31
- package/.next/standalone/docs/zh/cli/remove-policies.mdx +0 -43
- package/.next/standalone/docs/zh/cli/version.mdx +0 -12
- package/.next/standalone/docs/zh/configuration.mdx +0 -222
- package/.next/standalone/docs/zh/custom-policies.mdx +0 -353
- package/.next/standalone/docs/zh/dashboard.mdx +0 -142
- package/.next/standalone/docs/zh/examples.mdx +0 -307
- package/.next/standalone/docs/zh/for-agents.mdx +0 -38
- package/.next/standalone/docs/zh/getting-started.mdx +0 -186
- package/.next/standalone/docs/zh/introduction.mdx +0 -57
- package/.next/standalone/docs/zh/package-aliases.mdx +0 -82
- package/.next/standalone/docs/zh/testing.mdx +0 -260
- package/.next/standalone/eslint.config.mjs +0 -15
- package/.next/standalone/examples/convention-policies/security-policies.mjs +0 -40
- package/.next/standalone/examples/convention-policies/workflow-policies.mjs +0 -41
- package/.next/standalone/examples/policies-advanced/index.js +0 -103
- package/.next/standalone/examples/policies-advanced/utils.js +0 -35
- package/.next/standalone/examples/policies-basic.js +0 -77
- package/.next/standalone/examples/policies-notification.js +0 -104
- package/.next/standalone/node_modules/@img/colour/color.cjs +0 -1594
- package/.next/standalone/node_modules/@img/colour/index.cjs +0 -1
- package/.next/standalone/node_modules/@img/colour/package.json +0 -45
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/README.md +0 -46
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/glib-2.0/include/glibconfig.h +0 -221
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/index.js +0 -1
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/package.json +0 -42
- package/.next/standalone/node_modules/@img/sharp-libvips-linux-x64/versions.json +0 -30
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
- package/.next/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
- package/.next/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
- package/.next/standalone/node_modules/@img/sharp-linux-x64/package.json +0 -46
- package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
- package/.next/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
- package/.next/standalone/node_modules/detect-libc/lib/detect-libc.js +0 -313
- package/.next/standalone/node_modules/detect-libc/lib/elf.js +0 -39
- package/.next/standalone/node_modules/detect-libc/lib/filesystem.js +0 -51
- package/.next/standalone/node_modules/detect-libc/lib/process.js +0 -24
- package/.next/standalone/node_modules/detect-libc/package.json +0 -44
- package/.next/standalone/node_modules/sharp/lib/channel.js +0 -177
- package/.next/standalone/node_modules/sharp/lib/colour.js +0 -195
- package/.next/standalone/node_modules/sharp/lib/composite.js +0 -212
- package/.next/standalone/node_modules/sharp/lib/constructor.js +0 -499
- package/.next/standalone/node_modules/sharp/lib/index.js +0 -16
- package/.next/standalone/node_modules/sharp/lib/input.js +0 -809
- package/.next/standalone/node_modules/sharp/lib/is.js +0 -143
- package/.next/standalone/node_modules/sharp/lib/libvips.js +0 -207
- package/.next/standalone/node_modules/sharp/lib/operation.js +0 -1016
- package/.next/standalone/node_modules/sharp/lib/output.js +0 -1666
- package/.next/standalone/node_modules/sharp/lib/resize.js +0 -595
- package/.next/standalone/node_modules/sharp/lib/sharp.js +0 -121
- package/.next/standalone/node_modules/sharp/lib/utility.js +0 -291
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/comparator.js +0 -143
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/range.js +0 -557
- package/.next/standalone/node_modules/sharp/node_modules/semver/classes/semver.js +0 -333
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/cmp.js +0 -54
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/coerce.js +0 -62
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/compare.js +0 -7
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/eq.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gt.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/gte.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lt.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/lte.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/neq.js +0 -5
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/parse.js +0 -18
- package/.next/standalone/node_modules/sharp/node_modules/semver/functions/satisfies.js +0 -12
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/constants.js +0 -37
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/debug.js +0 -11
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/identifiers.js +0 -29
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/lrucache.js +0 -42
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/parse-options.js +0 -17
- package/.next/standalone/node_modules/sharp/node_modules/semver/internal/re.js +0 -223
- package/.next/standalone/node_modules/sharp/node_modules/semver/package.json +0 -78
- package/.next/standalone/node_modules/sharp/package.json +0 -202
- package/.next/standalone/scripts/alias-proxy.js +0 -18
- package/.next/standalone/scripts/dev.ts +0 -3
- package/.next/standalone/scripts/install-telemetry.mjs +0 -108
- package/.next/standalone/scripts/launch.ts +0 -83
- package/.next/standalone/scripts/parse-script-args.ts +0 -87
- package/.next/standalone/scripts/postinstall.mjs +0 -121
- package/.next/standalone/scripts/preuninstall.mjs +0 -131
- package/.next/standalone/scripts/publish-aliases.mjs +0 -87
- package/.next/standalone/scripts/start.ts +0 -3
- package/.next/standalone/scripts/sync-hook-events-prompt.md +0 -60
- package/.next/standalone/scripts/translate-docs/cache.ts +0 -62
- package/.next/standalone/scripts/translate-docs/cli.ts +0 -357
- package/.next/standalone/scripts/translate-docs/config.ts +0 -248
- package/.next/standalone/scripts/translate-docs/mdx-translator.ts +0 -153
- package/.next/standalone/scripts/translate-docs/mintlify-nav.ts +0 -107
- package/.next/standalone/scripts/translate-docs/readme-translator.ts +0 -154
- package/.next/standalone/scripts/translate-docs/translator.ts +0 -68
- package/.next/standalone/scripts/translate-docs/types.ts +0 -43
- package/.next/standalone/src/cli-error.ts +0 -18
- package/.next/standalone/src/hooks/builtin-policies.ts +0 -1613
- package/.next/standalone/src/hooks/custom-hooks-loader.ts +0 -205
- package/.next/standalone/src/hooks/custom-hooks-registry.ts +0 -30
- package/.next/standalone/src/hooks/handler.ts +0 -202
- package/.next/standalone/src/hooks/hook-activity-store.ts +0 -349
- package/.next/standalone/src/hooks/hook-logger.ts +0 -133
- package/.next/standalone/src/hooks/hook-telemetry.ts +0 -43
- package/.next/standalone/src/hooks/hooks-config.ts +0 -166
- package/.next/standalone/src/hooks/install-prompt.ts +0 -357
- package/.next/standalone/src/hooks/llm-client.ts +0 -90
- package/.next/standalone/src/hooks/loader-utils.ts +0 -178
- package/.next/standalone/src/hooks/manager.ts +0 -692
- package/.next/standalone/src/hooks/policy-evaluator.ts +0 -224
- package/.next/standalone/src/hooks/policy-helpers.ts +0 -16
- package/.next/standalone/src/hooks/policy-registry.ts +0 -90
- package/.next/standalone/src/hooks/policy-types.ts +0 -77
- package/.next/standalone/src/hooks/types.ts +0 -63
- package/.next/standalone/src/index.ts +0 -19
- package/.next/standalone/src/posthog-key.ts +0 -5
- package/.next/standalone/tailwind.config.ts +0 -11
- package/.next/standalone/tsconfig.json +0 -42
- package/.next/standalone/vitest.config.e2e.mts +0 -24
- package/.next/standalone/vitest.config.mts +0 -23
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → wOkJXoch1UmRAmyIuKZWc}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → wOkJXoch1UmRAmyIuKZWc}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → wOkJXoch1UmRAmyIuKZWc}/_ssgManifest.js +0 -0
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
title: Примеры
|
|
5
|
-
description: "Как настроить hooks для Claude Code и Agents SDK"
|
|
6
|
-
icon: book-open
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
Готовые примеры для распространённых сценариев. Каждый показывает, как установить и что ожидать.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Настройка hooks для Claude Code
|
|
14
|
-
|
|
15
|
-
Failproof AI интегрируется с Claude Code через его [систему hooks](https://docs.anthropic.com/en/docs/claude-code/hooks). Когда вы запускаете `failproofai policies --install`, он регистрирует hook-команды в `settings.json` Claude Code, которые срабатывают при каждом вызове инструмента.
|
|
16
|
-
|
|
17
|
-
<Steps>
|
|
18
|
-
<Step title="Установите failproofai">
|
|
19
|
-
```bash
|
|
20
|
-
npm install -g failproofai
|
|
21
|
-
```
|
|
22
|
-
</Step>
|
|
23
|
-
<Step title="Включите все встроенные политики">
|
|
24
|
-
```bash
|
|
25
|
-
failproofai policies --install
|
|
26
|
-
```
|
|
27
|
-
</Step>
|
|
28
|
-
<Step title="Проверьте, что hooks зарегистрированы">
|
|
29
|
-
```bash
|
|
30
|
-
cat ~/.claude/settings.json | grep failproofai
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Вы должны увидеть записи hook для событий `PreToolUse`, `PostToolUse`, `Notification` и `Stop`.
|
|
34
|
-
</Step>
|
|
35
|
-
<Step title="Запустите Claude Code">
|
|
36
|
-
```bash
|
|
37
|
-
claude
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Политики теперь выполняются автоматически при каждом вызове инструмента. Попробуйте попросить Claude запустить `sudo rm -rf /` — это будет заблокировано.
|
|
41
|
-
</Step>
|
|
42
|
-
</Steps>
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Настройка hooks для Agents SDK
|
|
47
|
-
|
|
48
|
-
Если вы разрабатываете с использованием [Agents SDK](https://docs.anthropic.com/en/docs/agents-sdk), вы можете использовать ту же систему hooks программно.
|
|
49
|
-
|
|
50
|
-
<Steps>
|
|
51
|
-
<Step title="Установите failproofai в ваш проект">
|
|
52
|
-
```bash
|
|
53
|
-
npm install failproofai
|
|
54
|
-
```
|
|
55
|
-
</Step>
|
|
56
|
-
<Step title="Настройте hooks в вашем агенте">
|
|
57
|
-
Передайте hook-команды при создании процесса агента. Hooks срабатывают так же, как в Claude Code — через stdin/stdout JSON:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
failproofai --hook PreToolUse # вызывается перед каждым инструментом
|
|
61
|
-
failproofai --hook PostToolUse # вызывается после каждого инструмента
|
|
62
|
-
```
|
|
63
|
-
</Step>
|
|
64
|
-
<Step title="Напишите пользовательскую политику для вашего агента">
|
|
65
|
-
```javascript
|
|
66
|
-
import { customPolicies, allow, deny } from "failproofai";
|
|
67
|
-
|
|
68
|
-
customPolicies.add({
|
|
69
|
-
name: "limit-to-project-dir",
|
|
70
|
-
description: "Keep the agent inside the project directory",
|
|
71
|
-
match: { events: ["PreToolUse"] },
|
|
72
|
-
fn: async (ctx) => {
|
|
73
|
-
const path = String(ctx.toolInput?.file_path ?? "");
|
|
74
|
-
if (path.startsWith("/") && !path.startsWith(ctx.session?.cwd ?? "")) {
|
|
75
|
-
return deny("Agent is restricted to the project directory");
|
|
76
|
-
}
|
|
77
|
-
return allow();
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
```
|
|
81
|
-
</Step>
|
|
82
|
-
<Step title="Установите пользовательскую политику">
|
|
83
|
-
```bash
|
|
84
|
-
failproofai policies --install --custom ./my-agent-policies.js
|
|
85
|
-
```
|
|
86
|
-
</Step>
|
|
87
|
-
</Steps>
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Блокировка деструктивных команд
|
|
92
|
-
|
|
93
|
-
Наиболее распространённая настройка — предотвратить необратимый ущерб от действий агентов.
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
failproofai policies --install block-sudo block-rm-rf block-force-push block-curl-pipe-sh
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
Что это делает:
|
|
100
|
-
- `block-sudo` — блокирует все команды `sudo`
|
|
101
|
-
- `block-rm-rf` — блокирует рекурсивное удаление файлов
|
|
102
|
-
- `block-force-push` — блокирует `git push --force`
|
|
103
|
-
- `block-curl-pipe-sh` — блокирует передачу удалённых скриптов в shell
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Предотвращение утечки секретов
|
|
108
|
-
|
|
109
|
-
Помешайте агентам видеть или утекать учётные данные в выводе инструментов.
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
failproofai policies --install sanitize-api-keys sanitize-jwt sanitize-connection-strings sanitize-bearer-tokens
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Они срабатывают на `PostToolUse` — после запуска инструмента, они скрывают вывод, прежде чем агент его увидит.
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## Получайте оповещения Slack, когда агентам требуется внимание
|
|
120
|
-
|
|
121
|
-
Используйте notification hook для отправки оповещений об ожидании в Slack.
|
|
122
|
-
|
|
123
|
-
```javascript
|
|
124
|
-
import { customPolicies, allow, instruct } from "failproofai";
|
|
125
|
-
|
|
126
|
-
customPolicies.add({
|
|
127
|
-
name: "slack-on-idle",
|
|
128
|
-
description: "Alert Slack when the agent is waiting for input",
|
|
129
|
-
match: { events: ["Notification"] },
|
|
130
|
-
fn: async (ctx) => {
|
|
131
|
-
const webhookUrl = process.env.SLACK_WEBHOOK_URL;
|
|
132
|
-
if (!webhookUrl) return allow();
|
|
133
|
-
|
|
134
|
-
const message = String(ctx.payload?.message ?? "Agent is waiting");
|
|
135
|
-
const project = ctx.session?.cwd ?? "unknown";
|
|
136
|
-
|
|
137
|
-
try {
|
|
138
|
-
await fetch(webhookUrl, {
|
|
139
|
-
method: "POST",
|
|
140
|
-
headers: { "Content-Type": "application/json" },
|
|
141
|
-
body: JSON.stringify({
|
|
142
|
-
text: `*${message}*\nProject: \`${project}\``,
|
|
143
|
-
}),
|
|
144
|
-
signal: AbortSignal.timeout(5000),
|
|
145
|
-
});
|
|
146
|
-
} catch {
|
|
147
|
-
// never block the agent if Slack is unreachable
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
return allow();
|
|
151
|
-
},
|
|
152
|
-
});
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
Установите это:
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
SLACK_WEBHOOK_URL=https://hooks.slack.com/... failproofai policies --install --custom ./slack-alerts.js
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## Держите агентов на одной ветке
|
|
164
|
-
|
|
165
|
-
Предотвратите переключение веток и отправку на защищённые ветки.
|
|
166
|
-
|
|
167
|
-
```javascript
|
|
168
|
-
import { customPolicies, allow, deny } from "failproofai";
|
|
169
|
-
|
|
170
|
-
customPolicies.add({
|
|
171
|
-
name: "stay-on-branch",
|
|
172
|
-
description: "Prevent the agent from checking out other branches",
|
|
173
|
-
match: { events: ["PreToolUse"] },
|
|
174
|
-
fn: async (ctx) => {
|
|
175
|
-
if (ctx.toolName !== "Bash") return allow();
|
|
176
|
-
const cmd = String(ctx.toolInput?.command ?? "");
|
|
177
|
-
if (/git\s+checkout\s+(?!-b)/.test(cmd)) {
|
|
178
|
-
return deny("Stay on the current branch. Create a new branch with -b if needed.");
|
|
179
|
-
}
|
|
180
|
-
return allow();
|
|
181
|
-
},
|
|
182
|
-
});
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## Требуйте тесты перед коммитами
|
|
188
|
-
|
|
189
|
-
Напомните агентам запустить тесты перед коммитом.
|
|
190
|
-
|
|
191
|
-
```javascript
|
|
192
|
-
import { customPolicies, allow, instruct } from "failproofai";
|
|
193
|
-
|
|
194
|
-
customPolicies.add({
|
|
195
|
-
name: "test-before-commit",
|
|
196
|
-
description: "Remind the agent to run tests before committing",
|
|
197
|
-
match: { events: ["PreToolUse"] },
|
|
198
|
-
fn: async (ctx) => {
|
|
199
|
-
if (ctx.toolName !== "Bash") return allow();
|
|
200
|
-
const cmd = String(ctx.toolInput?.command ?? "");
|
|
201
|
-
if (/git\s+commit/.test(cmd)) {
|
|
202
|
-
return instruct("Run tests before committing. Use `npm test` or `bun test` first.");
|
|
203
|
-
}
|
|
204
|
-
return allow();
|
|
205
|
-
},
|
|
206
|
-
});
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## Заблокируйте production репозиторий
|
|
212
|
-
|
|
213
|
-
Заколмитьте конфигурацию на уровне проекта, чтобы все разработчики в вашей команде получили одинаковые политики.
|
|
214
|
-
|
|
215
|
-
Создайте `.failproofai/policies-config.json` в вашем репозитории:
|
|
216
|
-
|
|
217
|
-
```json
|
|
218
|
-
{
|
|
219
|
-
"enabledPolicies": [
|
|
220
|
-
"block-sudo",
|
|
221
|
-
"block-rm-rf",
|
|
222
|
-
"block-force-push",
|
|
223
|
-
"block-push-master",
|
|
224
|
-
"block-env-files",
|
|
225
|
-
"sanitize-api-keys",
|
|
226
|
-
"sanitize-jwt"
|
|
227
|
-
],
|
|
228
|
-
"policyParams": {
|
|
229
|
-
"block-push-master": {
|
|
230
|
-
"protectedBranches": ["main", "release", "production"]
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
Затем заколмитьте это:
|
|
237
|
-
|
|
238
|
-
```bash
|
|
239
|
-
git add .failproofai/policies-config.json
|
|
240
|
-
git commit -m "Add failproofai team policies"
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
Каждый член команды, у которого установлен failproofai, автоматически получит эти правила.
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
## Постройте стандарт качества на уровне организации с политиками соглашения
|
|
248
|
-
|
|
249
|
-
Наиболее эффективная настройка: заколмитьте `.failproofai/policies/` в ваш репозиторий с политиками, подобранными для вашего проекта. Каждый член команды получит их автоматически — без команд установки, без изменения конфигурации.
|
|
250
|
-
|
|
251
|
-
<Steps>
|
|
252
|
-
<Step title="Создайте директорию и добавьте политики">
|
|
253
|
-
```bash
|
|
254
|
-
mkdir -p .failproofai/policies
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
```js
|
|
258
|
-
// .failproofai/policies/team-policies.mjs
|
|
259
|
-
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
260
|
-
|
|
261
|
-
// Enforce your team's preferred package manager
|
|
262
|
-
// (or enable the built-in prefer-package-manager policy instead)
|
|
263
|
-
customPolicies.add({
|
|
264
|
-
name: "enforce-bun",
|
|
265
|
-
match: { events: ["PreToolUse"] },
|
|
266
|
-
fn: async (ctx) => {
|
|
267
|
-
if (ctx.toolName !== "Bash") return allow();
|
|
268
|
-
const cmd = String(ctx.toolInput?.command ?? "");
|
|
269
|
-
if (/\bnpm\b/.test(cmd)) return deny("Use bun instead of npm.");
|
|
270
|
-
return allow();
|
|
271
|
-
},
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
// Remind the agent to run tests before committing
|
|
275
|
-
customPolicies.add({
|
|
276
|
-
name: "test-before-commit",
|
|
277
|
-
match: { events: ["PreToolUse"] },
|
|
278
|
-
fn: async (ctx) => {
|
|
279
|
-
if (ctx.toolName !== "Bash") return allow();
|
|
280
|
-
if (/git\s+commit/.test(ctx.toolInput?.command ?? "")) {
|
|
281
|
-
return instruct("Run tests before committing.");
|
|
282
|
-
}
|
|
283
|
-
return allow();
|
|
284
|
-
},
|
|
285
|
-
});
|
|
286
|
-
```
|
|
287
|
-
</Step>
|
|
288
|
-
<Step title="Заколмитьте в git">
|
|
289
|
-
```bash
|
|
290
|
-
git add .failproofai/policies/
|
|
291
|
-
git commit -m "Add team quality policies"
|
|
292
|
-
```
|
|
293
|
-
</Step>
|
|
294
|
-
<Step title="Продолжайте совершенствоваться">
|
|
295
|
-
Когда ваша команда сталкивается с новыми сбоями, добавьте политики и отправьте. Все получат обновление при следующем `git pull`. Эти политики становятся живым стандартом качества, который растёт вместе с вашей командой.
|
|
296
|
-
</Step>
|
|
297
|
-
</Steps>
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
## Другие примеры
|
|
302
|
-
|
|
303
|
-
Директория [`examples/`](https://github.com/exospherehost/failproofai/tree/main/examples) в репозитории содержит:
|
|
304
|
-
|
|
305
|
-
| Файл | Что он показывает |
|
|
306
|
-
|------|---------------|
|
|
307
|
-
| `policies-basic.js` | Начальные политики — блокировка записей в production, force-push, передача скриптов |
|
|
308
|
-
| `policies-notification.js` | Оповещения Slack для уведомлений об ожидании и завершения сессии |
|
|
309
|
-
| `policies-advanced/index.js` | Транзитивный импорт, асинхронные hooks, скрубинг вывода PostToolUse, обработка события Stop |
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Для агентов"
|
|
3
|
-
description: "Добавьте справку Failproof AI вашему кодирующему агенту одной командой. Работает с Claude Code, Cursor, Windsurf и другими."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Добавьте полную справку 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
|
-
| Policies | Встроенные имена политик, типы событий, параметры, включение/отключение |
|
|
19
|
-
| Custom policies | `customPolicies.add()`, фильтры совпадений, API `allow`/`deny`/`instruct` |
|
|
20
|
-
| Context object | `ctx.eventType`, `ctx.toolName`, `ctx.toolInput`, `ctx.session` |
|
|
21
|
-
| Configuration | Структура `policies-config.json`, слияние scope, `policyParams` |
|
|
22
|
-
| CLI | `failproofai policies --install`, `--uninstall`, `--custom`, scope |
|
|
23
|
-
| Dashboard | Просмотр сессий, активность политик, переменные окружения |
|
|
24
|
-
| Architecture | Поток обработчика hook, коды выхода, контракт 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 custom policies
|
|
34
|
-
npx skills add https://docs.befailproof.ai/custom-policies
|
|
35
|
-
|
|
36
|
-
# Только встроенные политики
|
|
37
|
-
npx skills add https://docs.befailproof.ai/built-in-policies
|
|
38
|
-
```
|
|
@@ -1,186 +0,0 @@
|
|
|
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
|
-
Это добавляет записи hook в файл `settings.json` Claude Code. Вы также можете установить политики для отдельного проекта или выбрать конкретные:
|
|
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 → читает JSON из stdin
|
|
74
|
-
оценивает политики
|
|
75
|
-
записывает решение в stdout
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Каждая политика возвращает одно из трёх решений:
|
|
79
|
-
|
|
80
|
-
- **allow** — агент продолжает работу обычно
|
|
81
|
-
- **deny** — действие блокируется, агенту объясняется причина
|
|
82
|
-
- **instruct** — дополнительный контекст добавляется в подсказку агента
|
|
83
|
-
|
|
84
|
-
<Note>
|
|
85
|
-
Политики выполняются в вашем локальном процессе. Ничего не отправляется на удалённый сервис.
|
|
86
|
-
</Note>
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Установка командных политик с использованием соглашения о структуре каталогов
|
|
91
|
-
|
|
92
|
-
Самый быстрый способ установить стандарты качества в вашей команде — использовать соглашение `.failproofai/policies/`. Поместите файлы политик в этот каталог, и они будут загружены автоматически — без флагов, изменений конфигурации или команд установки.
|
|
93
|
-
|
|
94
|
-
<Steps>
|
|
95
|
-
<Step title="Создайте каталог политик">
|
|
96
|
-
```bash
|
|
97
|
-
mkdir -p .failproofai/policies
|
|
98
|
-
```
|
|
99
|
-
</Step>
|
|
100
|
-
<Step title="Добавьте файлы политик">
|
|
101
|
-
Скопируйте примеры для начинающих или напишите свои:
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
cp node_modules/failproofai/examples/convention-policies/*.mjs .failproofai/policies/
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Или создайте новый:
|
|
108
|
-
|
|
109
|
-
```js
|
|
110
|
-
// .failproofai/policies/team-policies.mjs
|
|
111
|
-
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
112
|
-
|
|
113
|
-
customPolicies.add({
|
|
114
|
-
name: "test-before-commit",
|
|
115
|
-
match: { events: ["PreToolUse"] },
|
|
116
|
-
fn: async (ctx) => {
|
|
117
|
-
if (ctx.toolName !== "Bash") return allow();
|
|
118
|
-
if (/git\s+commit/.test(ctx.toolInput?.command ?? "")) {
|
|
119
|
-
return instruct("Run tests before committing.");
|
|
120
|
-
}
|
|
121
|
-
return allow();
|
|
122
|
-
},
|
|
123
|
-
});
|
|
124
|
-
```
|
|
125
|
-
</Step>
|
|
126
|
-
<Step title="Добавьте в git">
|
|
127
|
-
```bash
|
|
128
|
-
git add .failproofai/policies/
|
|
129
|
-
git commit -m "Add team quality policies"
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Каждый член команды с установленным failproofai автоматически получит эти политики. Никаких индивидуальных настроек не требуется.
|
|
133
|
-
</Step>
|
|
134
|
-
</Steps>
|
|
135
|
-
|
|
136
|
-
<Tip>
|
|
137
|
-
Добавьте `.failproofai/policies/` в ваш репозиторий, чтобы вся команда придерживалась одинаковых стандартов. По мере того как ваша команда обнаруживает новые сбои, добавляйте политики и отправляйте их — каждый получит обновление при следующем `git pull`. Со временем эти политики становятся живым стандартом качества, который постоянно улучшается.
|
|
138
|
-
</Tip>
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## Хранение данных
|
|
143
|
-
|
|
144
|
-
Все конфигурации и логи остаются на вашем компьютере:
|
|
145
|
-
|
|
146
|
-
| Путь | Что хранится |
|
|
147
|
-
|------|--------------|
|
|
148
|
-
| `~/.failproofai/policies-config.json` | Глобальная конфигурация политик |
|
|
149
|
-
| `~/.failproofai/hook-activity.jsonl` | История выполнения hook-ов |
|
|
150
|
-
| `~/.failproofai/hook.log` | Лог отладки для ошибок пользовательских hook-ов |
|
|
151
|
-
| `.failproofai/policies-config.json` | Конфигурация для проекта (добавляется в репозиторий) |
|
|
152
|
-
| `.failproofai/policies-config.local.json` | Личные переопределения (исключено из git) |
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## Удаление
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
failproofai policies --uninstall
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Удаляет записи hook из `~/.claude/settings.json`. Файлы конфигурации в `~/.failproofai/` сохраняются.
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
## Следующие шаги
|
|
167
|
-
|
|
168
|
-
<CardGroup cols={2}>
|
|
169
|
-
|
|
170
|
-
<Card title="Конфигурация" icon="gear" href="/ru/configuration">
|
|
171
|
-
Области и формат файла конфигурации
|
|
172
|
-
</Card>
|
|
173
|
-
|
|
174
|
-
<Card title="Встроенные политики" icon="shield" href="/ru/built-in-policies">
|
|
175
|
-
Все 26 политик с параметрами
|
|
176
|
-
</Card>
|
|
177
|
-
|
|
178
|
-
<Card title="Пользовательские политики" icon="code" href="/ru/custom-policies">
|
|
179
|
-
Напишите свои политики на JavaScript
|
|
180
|
-
</Card>
|
|
181
|
-
|
|
182
|
-
<Card title="Монитор агента" icon="chart-line" href="/ru/dashboard">
|
|
183
|
-
Мониторьте сессии и просматривайте активность политик
|
|
184
|
-
</Card>
|
|
185
|
-
|
|
186
|
-
</CardGroup>
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Failproof AI
|
|
3
|
-
description: "Управляйте хуками и политиками, которые делают ваших AI агентов надежными и позволяют им работать автономно"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
[](https://www.npmjs.com/package/failproofai)
|
|
7
|
-
|
|
8
|
-
Хуки и политики, которые делают ваших AI агентов надежными и позволяют им работать автономно — для **Claude Code** и **Agents SDK**.
|
|
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="/ru/built-in-policies">
|
|
21
|
-
Блокируйте деструктивные команды, предотвращайте утечки секретов, удерживайте агентов внутри границ проекта и многое другое — прямо из коробки.
|
|
22
|
-
</Card>
|
|
23
|
-
|
|
24
|
-
<Card title="Пользовательские политики" icon="code" href="/ru/custom-policies">
|
|
25
|
-
Напишите свои собственные правила на JavaScript с простым API allow / deny / instruct.
|
|
26
|
-
</Card>
|
|
27
|
-
|
|
28
|
-
<Card title="Монитор агентов" icon="chart-line" href="/ru/dashboard">
|
|
29
|
-
Смотрите, что делали ваши агенты, пока вас не было. Просматривайте сессии, проверяйте вызовы инструментов, смотрите, где срабатывали политики.
|
|
30
|
-
</Card>
|
|
31
|
-
|
|
32
|
-
<Card title="Простая конфигурация" icon="gear" href="/ru/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
|
-
Подробное руководство см. в [Getting started](/ru/getting-started).
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Альтернативные имена пакетов
|
|
3
|
-
description: "Зарегистрированные альтернативные имена для защиты от опечаток и их работа"
|
|
4
|
-
icon: copy
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Официальный пакет
|
|
8
|
-
|
|
9
|
-
Основной npm-пакет — **`failproofai`**:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install -g failproofai
|
|
13
|
-
# или
|
|
14
|
-
bun add -g failproofai
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Почему мы владеем альтернативными именами
|
|
20
|
-
|
|
21
|
-
Typosquatting — это распространённая атака на цепочку поставок, при которой злоумышленник регистрирует имя пакета, отличающееся на один символ от популярного пакета. Невнимательные пользователи, допустившие опечатку в команде установки, в итоге запускают код, контролируемый злоумышленником, с полным доступом к системе — это именно тот вид угрозы, против которого разработана Failproof AI.
|
|
22
|
-
|
|
23
|
-
Чтобы исключить эту уязвимость, **мы заранее регистрируем все распространённые опечатки и варианты написания** `failproofai` на npm. Ни одно из этих имён не может быть зарегистрировано третьей стороной. Каждое из них — это тонкий прокси, который устанавливает и делегирует работу основному пакету `failproofai`.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Зарегистрированные альтернативные имена
|
|
28
|
-
|
|
29
|
-
**Варианты написания** — разные способы написания "failproof ai":
|
|
30
|
-
|
|
31
|
-
| Пакет | Статус |
|
|
32
|
-
|---------|--------|
|
|
33
|
-
| `failproof` | ✅ Опубликован |
|
|
34
|
-
| `failproof-ai` | ⏳ Ожидает поддержки npm |
|
|
35
|
-
| `fail-proof-ai` | ⏳ Ожидает поддержки npm |
|
|
36
|
-
| `failproof_ai` | ⏳ Ожидает поддержки npm |
|
|
37
|
-
| `fail_proof_ai` | ⏳ Ожидает поддержки npm |
|
|
38
|
-
| `fail-proofai` | ⏳ Ожидает поддержки npm |
|
|
39
|
-
|
|
40
|
-
**Опечатки `failprof*`** — пропущена одна буква `o` в слове "proof":
|
|
41
|
-
|
|
42
|
-
| Пакет | Статус |
|
|
43
|
-
|---------|--------|
|
|
44
|
-
| `failprof` | ✅ Опубликован |
|
|
45
|
-
| `failprof-ai` | ✅ Опубликован |
|
|
46
|
-
| `failprofai` | ⏳ Ожидает поддержки npm |
|
|
47
|
-
| `fail-prof-ai` | ⏳ Ожидает поддержки npm |
|
|
48
|
-
| `failprof_ai` | ⏳ Ожидает поддержки npm |
|
|
49
|
-
|
|
50
|
-
**Опечатки `faliproof*`** — переставлены буквы `a` и `i`:
|
|
51
|
-
|
|
52
|
-
| Пакет | Статус |
|
|
53
|
-
|---------|--------|
|
|
54
|
-
| `faliproof` | ✅ Опубликован |
|
|
55
|
-
| `faliproof-ai` | ✅ Опубликован |
|
|
56
|
-
| `faliproofai` | ⏳ Ожидает поддержки npm |
|
|
57
|
-
|
|
58
|
-
> **Почему в статусе "ожидает"?** Политика npm по защите от спама блокирует имена, которые нормализуются в одну строку с существующим пакетом после удаления пунктуации и проверки сходства. Мы связались с поддержкой npm, чтобы зарезервировать эти имена в целях защиты от typosquatting. Они будут активированы после одобрения.
|
|
59
|
-
|
|
60
|
-
Вы можете проверить, что любое опубликованное альтернативное имя принадлежит нам:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
npm info failproof
|
|
64
|
-
# Ищите: "ExosphereHost Inc." в поле maintainers
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Как работают альтернативные имена
|
|
70
|
-
|
|
71
|
-
Каждый пакет-альтернатива:
|
|
72
|
-
|
|
73
|
-
1. Указывает `failproofai` как зависимость — поэтому при установке запускается основной пакет (включая его hook `postinstall`)
|
|
74
|
-
2. Экспортирует бинарный файл с собственным именем (например `failprof-ai`), который пробрасывает все аргументы на бинарный файл `failproofai`
|
|
75
|
-
|
|
76
|
-
Прокси — это двухстрочный скрипт Node.js; в нём нет никакой логики, сетевых запросов и сбора данных, кроме того, что делает сам `failproofai`.
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Если мы пропустили какое-то имя
|
|
81
|
-
|
|
82
|
-
Откройте задачу на [exospherehost/failproofai](https://github.com/exospherehost/failproofai/issues) и мы его зарегистрируем.
|