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,307 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Esempi
|
|
3
|
-
description: "Come configurare i hook per Claude Code e l'Agents SDK"
|
|
4
|
-
icon: book-open
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Esempi pronti all'uso per scenari comuni. Ognuno mostra come installare e cosa aspettarsi.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Configurazione dei hook per Claude Code
|
|
12
|
-
|
|
13
|
-
Failproof AI si integra con Claude Code tramite il suo [sistema di hook](https://docs.anthropic.com/en/docs/claude-code/hooks). Quando esegui `failproofai policies --install`, registra i comandi dei hook in `settings.json` di Claude Code che si attivano ad ogni chiamata di strumento.
|
|
14
|
-
|
|
15
|
-
<Steps>
|
|
16
|
-
<Step title="Installa failproofai">
|
|
17
|
-
```bash
|
|
18
|
-
npm install -g failproofai
|
|
19
|
-
```
|
|
20
|
-
</Step>
|
|
21
|
-
<Step title="Abilita tutte le politiche integrate">
|
|
22
|
-
```bash
|
|
23
|
-
failproofai policies --install
|
|
24
|
-
```
|
|
25
|
-
</Step>
|
|
26
|
-
<Step title="Verifica che i hook siano registrati">
|
|
27
|
-
```bash
|
|
28
|
-
cat ~/.claude/settings.json | grep failproofai
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Dovresti vedere le voci dei hook per gli eventi `PreToolUse`, `PostToolUse`, `Notification` e `Stop`.
|
|
32
|
-
</Step>
|
|
33
|
-
<Step title="Esegui Claude Code">
|
|
34
|
-
```bash
|
|
35
|
-
claude
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Le politiche ora vengono eseguite automaticamente ad ogni chiamata di strumento. Prova a chiedere a Claude di eseguire `sudo rm -rf /` - verrà bloccato.
|
|
39
|
-
</Step>
|
|
40
|
-
</Steps>
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## Configurazione dei hook per l'Agents SDK
|
|
45
|
-
|
|
46
|
-
Se stai costruendo con l'[Agents SDK](https://docs.anthropic.com/en/docs/agents-sdk), puoi usare lo stesso sistema di hook a livello programmatico.
|
|
47
|
-
|
|
48
|
-
<Steps>
|
|
49
|
-
<Step title="Installa failproofai nel tuo progetto">
|
|
50
|
-
```bash
|
|
51
|
-
npm install failproofai
|
|
52
|
-
```
|
|
53
|
-
</Step>
|
|
54
|
-
<Step title="Configura i hook nel tuo agent">
|
|
55
|
-
Passa i comandi dei hook quando crei il tuo processo di agent. I hook si attivano allo stesso modo di Claude Code - tramite JSON su stdin/stdout:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
failproofai --hook PreToolUse # chiamato prima di ogni strumento
|
|
59
|
-
failproofai --hook PostToolUse # chiamato dopo ogni strumento
|
|
60
|
-
```
|
|
61
|
-
</Step>
|
|
62
|
-
<Step title="Scrivi una politica personalizzata per il tuo agent">
|
|
63
|
-
```javascript
|
|
64
|
-
import { customPolicies, allow, deny } from "failproofai";
|
|
65
|
-
|
|
66
|
-
customPolicies.add({
|
|
67
|
-
name: "limit-to-project-dir",
|
|
68
|
-
description: "Mantieni l'agent all'interno della directory del progetto",
|
|
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("L'agent è limitato alla directory del progetto");
|
|
74
|
-
}
|
|
75
|
-
return allow();
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
```
|
|
79
|
-
</Step>
|
|
80
|
-
<Step title="Installa la politica personalizzata">
|
|
81
|
-
```bash
|
|
82
|
-
failproofai policies --install --custom ./my-agent-policies.js
|
|
83
|
-
```
|
|
84
|
-
</Step>
|
|
85
|
-
</Steps>
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## Blocca i comandi distruttivi
|
|
90
|
-
|
|
91
|
-
La configurazione più comune - previeni agli agent di causare danni irreversibili.
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
failproofai policies --install block-sudo block-rm-rf block-force-push block-curl-pipe-sh
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Cosa fa:
|
|
98
|
-
- `block-sudo` - blocca tutti i comandi `sudo`
|
|
99
|
-
- `block-rm-rf` - blocca l'eliminazione ricorsiva di file
|
|
100
|
-
- `block-force-push` - blocca `git push --force`
|
|
101
|
-
- `block-curl-pipe-sh` - blocca il piping di script remoti a shell
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## Previeni la perdita di segreti
|
|
106
|
-
|
|
107
|
-
Impedisci agli agent di visualizzare o perdere credenziali nell'output dello strumento.
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
failproofai policies --install sanitize-api-keys sanitize-jwt sanitize-connection-strings sanitize-bearer-tokens
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Questi si attivano su `PostToolUse` - dopo che uno strumento è stato eseguito, ripuliscono l'output prima che l'agent lo veda.
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## Ricevi avvisi Slack quando gli agent hanno bisogno di attenzione
|
|
118
|
-
|
|
119
|
-
Usa l'hook di notifica per inoltrare gli avvisi di inattività a Slack.
|
|
120
|
-
|
|
121
|
-
```javascript
|
|
122
|
-
import { customPolicies, allow, instruct } from "failproofai";
|
|
123
|
-
|
|
124
|
-
customPolicies.add({
|
|
125
|
-
name: "slack-on-idle",
|
|
126
|
-
description: "Avvisa Slack quando l'agent è in attesa di input",
|
|
127
|
-
match: { events: ["Notification"] },
|
|
128
|
-
fn: async (ctx) => {
|
|
129
|
-
const webhookUrl = process.env.SLACK_WEBHOOK_URL;
|
|
130
|
-
if (!webhookUrl) return allow();
|
|
131
|
-
|
|
132
|
-
const message = String(ctx.payload?.message ?? "L'agent è in attesa");
|
|
133
|
-
const project = ctx.session?.cwd ?? "sconosciuto";
|
|
134
|
-
|
|
135
|
-
try {
|
|
136
|
-
await fetch(webhookUrl, {
|
|
137
|
-
method: "POST",
|
|
138
|
-
headers: { "Content-Type": "application/json" },
|
|
139
|
-
body: JSON.stringify({
|
|
140
|
-
text: `*${message}*\nProgetto: \`${project}\``,
|
|
141
|
-
}),
|
|
142
|
-
signal: AbortSignal.timeout(5000),
|
|
143
|
-
});
|
|
144
|
-
} catch {
|
|
145
|
-
// non bloccare mai l'agent se Slack non è raggiungibile
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return allow();
|
|
149
|
-
},
|
|
150
|
-
});
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
Installalo:
|
|
154
|
-
|
|
155
|
-
```bash
|
|
156
|
-
SLACK_WEBHOOK_URL=https://hooks.slack.com/... failproofai policies --install --custom ./slack-alerts.js
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## Mantieni gli agent su un branch
|
|
162
|
-
|
|
163
|
-
Previeni agli agent di cambiare branch o fare push a quelli protetti.
|
|
164
|
-
|
|
165
|
-
```javascript
|
|
166
|
-
import { customPolicies, allow, deny } from "failproofai";
|
|
167
|
-
|
|
168
|
-
customPolicies.add({
|
|
169
|
-
name: "stay-on-branch",
|
|
170
|
-
description: "Impedisci all'agent di fare checkout di altri branch",
|
|
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("Rimani sul branch corrente. Crea un nuovo branch con -b se necessario.");
|
|
177
|
-
}
|
|
178
|
-
return allow();
|
|
179
|
-
},
|
|
180
|
-
});
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Richiedi i test prima dei commit
|
|
186
|
-
|
|
187
|
-
Ricorda agli agent di eseguire i test prima di fare commit.
|
|
188
|
-
|
|
189
|
-
```javascript
|
|
190
|
-
import { customPolicies, allow, instruct } from "failproofai";
|
|
191
|
-
|
|
192
|
-
customPolicies.add({
|
|
193
|
-
name: "test-before-commit",
|
|
194
|
-
description: "Ricorda all'agent di eseguire i test prima di fare 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("Esegui i test prima di fare commit. Usa prima `npm test` o `bun test`.");
|
|
201
|
-
}
|
|
202
|
-
return allow();
|
|
203
|
-
},
|
|
204
|
-
});
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
## Blocca un repository di produzione
|
|
210
|
-
|
|
211
|
-
Commit una configurazione a livello di progetto in modo che ogni sviluppatore del tuo team ottenga le stesse politiche.
|
|
212
|
-
|
|
213
|
-
Crea `.failproofai/policies-config.json` nel tuo repository:
|
|
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
|
-
Poi fai il commit:
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
git add .failproofai/policies-config.json
|
|
238
|
-
git commit -m "Aggiungi politiche failproofai del team"
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
Ogni membro del team che ha failproofai installato raccoglierà automaticamente queste regole.
|
|
242
|
-
|
|
243
|
-
---
|
|
244
|
-
|
|
245
|
-
## Costruisci uno standard di qualità a livello di organizzazione con politiche di convenzione
|
|
246
|
-
|
|
247
|
-
La configurazione più impattante: commit `.failproofai/policies/` nel tuo repository con politiche personalizzate per il tuo progetto. Ogni membro del team le ottiene automaticamente — nessun comando di installazione, nessun cambiamento di configurazione.
|
|
248
|
-
|
|
249
|
-
<Steps>
|
|
250
|
-
<Step title="Crea la directory e aggiungi le politiche">
|
|
251
|
-
```bash
|
|
252
|
-
mkdir -p .failproofai/policies
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
```js
|
|
256
|
-
// .failproofai/policies/team-policies.mjs
|
|
257
|
-
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
258
|
-
|
|
259
|
-
// Applica il package manager preferito del tuo team
|
|
260
|
-
// (o abilita invece la politica integrata prefer-package-manager)
|
|
261
|
-
customPolicies.add({
|
|
262
|
-
name: "enforce-bun",
|
|
263
|
-
match: { events: ["PreToolUse"] },
|
|
264
|
-
fn: async (ctx) => {
|
|
265
|
-
if (ctx.toolName !== "Bash") return allow();
|
|
266
|
-
const cmd = String(ctx.toolInput?.command ?? "");
|
|
267
|
-
if (/\bnpm\b/.test(cmd)) return deny("Usa bun invece di npm.");
|
|
268
|
-
return allow();
|
|
269
|
-
},
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
// Ricorda all'agent di eseguire i test prima di fare commit
|
|
273
|
-
customPolicies.add({
|
|
274
|
-
name: "test-before-commit",
|
|
275
|
-
match: { events: ["PreToolUse"] },
|
|
276
|
-
fn: async (ctx) => {
|
|
277
|
-
if (ctx.toolName !== "Bash") return allow();
|
|
278
|
-
if (/git\s+commit/.test(ctx.toolInput?.command ?? "")) {
|
|
279
|
-
return instruct("Esegui i test prima di fare commit.");
|
|
280
|
-
}
|
|
281
|
-
return allow();
|
|
282
|
-
},
|
|
283
|
-
});
|
|
284
|
-
```
|
|
285
|
-
</Step>
|
|
286
|
-
<Step title="Commit su git">
|
|
287
|
-
```bash
|
|
288
|
-
git add .failproofai/policies/
|
|
289
|
-
git commit -m "Aggiungi politiche di qualità del team"
|
|
290
|
-
```
|
|
291
|
-
</Step>
|
|
292
|
-
<Step title="Continua a migliorare">
|
|
293
|
-
Mentre il tuo team incontra nuove modalità di fallimento, aggiungi politiche e fai push. Tutti ricevono l'aggiornamento al loro prossimo `git pull`. Queste politiche diventano uno standard di qualità vivo che cresce con il tuo team.
|
|
294
|
-
</Step>
|
|
295
|
-
</Steps>
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
## Altri esempi
|
|
300
|
-
|
|
301
|
-
La directory [`examples/`](https://github.com/exospherehost/failproofai/tree/main/examples) nel repository contiene:
|
|
302
|
-
|
|
303
|
-
| File | Cosa mostra |
|
|
304
|
-
|------|---------------|
|
|
305
|
-
| `policies-basic.js` | Politiche di avvio - blocca le scritture di produzione, force-push, script in pipe |
|
|
306
|
-
| `policies-notification.js` | Avvisi Slack per notifiche di inattività e fine della sessione |
|
|
307
|
-
| `policies-advanced/index.js` | Import transitivi, hook asincroni, scrubbing dell'output PostToolUse, gestione dell'evento Stop |
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Per gli agenti"
|
|
3
|
-
description: "Aggiungi la conoscenza di Failproof AI al tuo agente di codifica in un comando. Funziona con Claude Code, Cursor, Windsurf e altri."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Aggiungi il riferimento completo di Failproof AI al tuo agente di codifica in un comando. Funziona con Claude Code, Cursor, Windsurf e qualsiasi altro agente che supporti le skill.
|
|
7
|
-
|
|
8
|
-
```bash
|
|
9
|
-
npx skills add https://docs.befailproof.ai
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
`npx skills` rileva quali agenti hai installato e aggiunge la skill nel formato corretto per ognuno automaticamente.
|
|
13
|
-
|
|
14
|
-
## Cosa copre la skill
|
|
15
|
-
|
|
16
|
-
| Area | Cosa include |
|
|
17
|
-
|------|---|
|
|
18
|
-
| Policies | Nomi delle policy built-in, tipi di evento, parametri, abilita/disabilita |
|
|
19
|
-
| Custom policies | `customPolicies.add()`, match filter, API `allow`/`deny`/`instruct` |
|
|
20
|
-
| Context object | `ctx.eventType`, `ctx.toolName`, `ctx.toolInput`, `ctx.session` |
|
|
21
|
-
| Configuration | Struttura di `policies-config.json`, scope merging, `policyParams` |
|
|
22
|
-
| CLI | `failproofai policies --install`, `--uninstall`, `--custom`, scope |
|
|
23
|
-
| Dashboard | Session viewer, policy activity, variabili di ambiente |
|
|
24
|
-
| Architecture | Hook handler flow, exit code, contratto stdin/stdout |
|
|
25
|
-
|
|
26
|
-
## La skill è completa?
|
|
27
|
-
|
|
28
|
-
Mintlify genera `llms.txt` da tutte le pagine nella navigazione. La documentazione di Failproof AI copre l'API completa - ogni policy, opzione ed esempio è incluso. Se trovi qualcosa di mancante, la fonte è disponibile a `https://docs.befailproof.ai/llms-full.txt`.
|
|
29
|
-
|
|
30
|
-
Per un contesto più mirato, collega direttamente a una pagina specifica:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
# Solo l'API delle custom policies
|
|
34
|
-
npx skills add https://docs.befailproof.ai/custom-policies
|
|
35
|
-
|
|
36
|
-
# Solo le built-in policies
|
|
37
|
-
npx skills add https://docs.befailproof.ai/built-in-policies
|
|
38
|
-
```
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Iniziare
|
|
3
|
-
description: "Installa failproofai, abilita le policy e lascia che i tuoi agenti funzionino in modo affidabile"
|
|
4
|
-
icon: rocket
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Requisiti
|
|
8
|
-
|
|
9
|
-
- **Node.js** >= 20.9.0
|
|
10
|
-
- **Bun** >= 1.3.0 (opzionale - necessario solo per compilare dal codice sorgente)
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Installazione
|
|
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
|
-
## Avvio rapido
|
|
31
|
-
|
|
32
|
-
<Steps>
|
|
33
|
-
<Step title="Abilita le policy">
|
|
34
|
-
Le policy sono regole che vengono eseguite prima e dopo ogni chiamata a uno strumento dell'agente. Catturano i comandi distruttivi, le perdite di segreti e altre modalità di guasto prima che causino danni.
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
failproofai policies --install
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Questo scrive le entry di hook nel file `settings.json` di Claude Code. Puoi anche installare per un singolo progetto o selezionare policy specifiche:
|
|
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="Verifica">
|
|
48
|
-
```bash
|
|
49
|
-
failproofai policies
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Mostra ogni policy, se è abilitata e i parametri configurati.
|
|
53
|
-
</Step>
|
|
54
|
-
<Step title="Avvia la dashboard">
|
|
55
|
-
```bash
|
|
56
|
-
failproofai
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
Apre una dashboard locale su `http://localhost:8020` dove puoi sfogliare le sessioni, ispezionare le chiamate agli strumenti e gestire le policy.
|
|
60
|
-
</Step>
|
|
61
|
-
<Step title="Esegui il tuo agente">
|
|
62
|
-
Avvia Claude Code come al solito. Se l'agente tenta qualcosa di rischioso, failproofai lo intercetta automaticamente. Lascialo in esecuzione senza supervisione e rivedi quello che è accaduto nella dashboard.
|
|
63
|
-
</Step>
|
|
64
|
-
</Steps>
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## Come funzionano le policy
|
|
69
|
-
|
|
70
|
-
Ogni volta che un agente esegue uno strumento, Claude Code chiama failproofai come sottoprocesso:
|
|
71
|
-
|
|
72
|
-
```text
|
|
73
|
-
Claude Code → failproofai --hook PreToolUse → legge JSON da stdin
|
|
74
|
-
valuta le policy
|
|
75
|
-
scrive la decisione in stdout
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Ogni policy restituisce una di tre decisioni:
|
|
79
|
-
|
|
80
|
-
- **allow** - l'agente procede normalmente
|
|
81
|
-
- **deny** - l'azione è bloccata, all'agente viene spiegato il motivo
|
|
82
|
-
- **instruct** - contesto aggiuntivo viene aggiunto al prompt dell'agente
|
|
83
|
-
|
|
84
|
-
<Note>
|
|
85
|
-
Le policy vengono eseguite nel tuo processo locale. Nulla viene inviato a un servizio remoto.
|
|
86
|
-
</Note>
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## Configura policy di team con policy basate su convenzione
|
|
91
|
-
|
|
92
|
-
Il modo più veloce per stabilire standard di qualità in tutto il team è la convenzione `.failproofai/policies/`. Inserisci i file di policy in questa directory e vengono caricati automaticamente — nessun flag, nessuna modifica della configurazione, nessun comando di installazione.
|
|
93
|
-
|
|
94
|
-
<Steps>
|
|
95
|
-
<Step title="Crea la directory delle policy">
|
|
96
|
-
```bash
|
|
97
|
-
mkdir -p .failproofai/policies
|
|
98
|
-
```
|
|
99
|
-
</Step>
|
|
100
|
-
<Step title="Aggiungi file di policy">
|
|
101
|
-
Copia gli esempi iniziali o scrivi i tuoi:
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
cp node_modules/failproofai/examples/convention-policies/*.mjs .failproofai/policies/
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
Oppure creane uno nuovo:
|
|
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("Esegui i test prima di eseguire il commit.");
|
|
120
|
-
}
|
|
121
|
-
return allow();
|
|
122
|
-
},
|
|
123
|
-
});
|
|
124
|
-
```
|
|
125
|
-
</Step>
|
|
126
|
-
<Step title="Esegui il commit su git">
|
|
127
|
-
```bash
|
|
128
|
-
git add .failproofai/policies/
|
|
129
|
-
git commit -m "Add team quality policies"
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
Ogni membro del team che ha failproofai installato raccoglie automaticamente queste policy. Non è necessaria alcuna configurazione per sviluppatore.
|
|
133
|
-
</Step>
|
|
134
|
-
</Steps>
|
|
135
|
-
|
|
136
|
-
<Tip>
|
|
137
|
-
Esegui il commit di `.failproofai/policies/` nel tuo repository in modo che l'intero team condivida gli stessi standard. Man mano che il tuo team scopre nuove modalità di guasto, aggiungi policy e esegui il push — tutti ricevono l'aggiornamento al prossimo `git pull`. Nel tempo queste policy diventano uno standard di qualità vivo che continua a migliorare.
|
|
138
|
-
</Tip>
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## Archiviazione dei dati
|
|
143
|
-
|
|
144
|
-
Tutta la configurazione e i log rimangono sul tuo computer:
|
|
145
|
-
|
|
146
|
-
| Percorso | Cosa conserva |
|
|
147
|
-
|------|----------------|
|
|
148
|
-
| `~/.failproofai/policies-config.json` | Configurazione globale delle policy |
|
|
149
|
-
| `~/.failproofai/hook-activity.jsonl` | Cronologia dell'esecuzione dei hook |
|
|
150
|
-
| `~/.failproofai/hook.log` | Log di debug per gli errori dei hook personalizzati |
|
|
151
|
-
| `.failproofai/policies-config.json` | Configurazione per progetto (sottoposta a commit) |
|
|
152
|
-
| `.failproofai/policies-config.local.json` | Override personali (gitignored) |
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## Disinstallazione
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
failproofai policies --uninstall
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
Rimuove le entry di hook da `~/.claude/settings.json`. I file di configurazione in `~/.failproofai/` vengono mantenuti.
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
## Passaggi successivi
|
|
167
|
-
|
|
168
|
-
<CardGroup cols={2}>
|
|
169
|
-
|
|
170
|
-
<Card title="Configurazione" icon="gear" href="/it/configuration">
|
|
171
|
-
Ambiti e formato del file di configurazione
|
|
172
|
-
</Card>
|
|
173
|
-
|
|
174
|
-
<Card title="Policy integrate" icon="shield" href="/it/built-in-policies">
|
|
175
|
-
Tutte le 26 policy con parametri
|
|
176
|
-
</Card>
|
|
177
|
-
|
|
178
|
-
<Card title="Policy personalizzate" icon="code" href="/it/custom-policies">
|
|
179
|
-
Scrivi le tue policy in JavaScript
|
|
180
|
-
</Card>
|
|
181
|
-
|
|
182
|
-
<Card title="Monitore agente" icon="chart-line" href="/it/dashboard">
|
|
183
|
-
Monitora le sessioni e rivedi l'attività delle policy
|
|
184
|
-
</Card>
|
|
185
|
-
|
|
186
|
-
</CardGroup>
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Failproof AI
|
|
3
|
-
description: "Gestisci hook e policy che mantengono i tuoi agenti AI affidabili e in esecuzione autonoma"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
[](https://www.npmjs.com/package/failproofai)
|
|
7
|
-
|
|
8
|
-
Hook e policy che mantengono i tuoi agenti AI affidabili e in esecuzione autonoma - per **Claude Code** e **Agents SDK**.
|
|
9
|
-
|
|
10
|
-
Gli agenti AI falliscono in modi prevedibili. Eseguono comandi distruttivi, perdono segreti, si allontanano dal compito assegnato, si bloccano in loop infiniti o spingono direttamente al ramo principale. Se lasciati incustoditi, i piccoli errori si moltiplicano a cascata.
|
|
11
|
-
|
|
12
|
-
Failproof AI risolve questo problema con le **policy** - regole che si collegano ad ogni chiamata di strumento dell'agente e possono **rilevare i fallimenti**, **attenuarli** (bloccare, istruire, sanitizzare) e **avvisarti** quando qualcosa richiede attenzione. Una dashboard locale ti permette di controllare tutto in seguito.
|
|
13
|
-
|
|
14
|
-
Tutto viene eseguito localmente. Nessun dato lascia la tua macchina.
|
|
15
|
-
|
|
16
|
-
## Inizia
|
|
17
|
-
|
|
18
|
-
<CardGroup cols={2}>
|
|
19
|
-
|
|
20
|
-
<Card title="26 policy predefinite" icon="shield" href="/it/built-in-policies">
|
|
21
|
-
Blocca comandi distruttivi, previeni la perdita di segreti, mantieni gli agenti all'interno dei confini del progetto, e molto altro - pronto all'uso.
|
|
22
|
-
</Card>
|
|
23
|
-
|
|
24
|
-
<Card title="Policy personalizzate" icon="code" href="/it/custom-policies">
|
|
25
|
-
Scrivi le tue regole in JavaScript con una semplice API allow / deny / instruct.
|
|
26
|
-
</Card>
|
|
27
|
-
|
|
28
|
-
<Card title="Monitor agente" icon="chart-line" href="/it/dashboard">
|
|
29
|
-
Vedi cosa hanno fatto i tuoi agenti mentre eri via. Sfoglia le sessioni, ispeziona le chiamate ai tool, esamina dove le policy sono state applicate.
|
|
30
|
-
</Card>
|
|
31
|
-
|
|
32
|
-
<Card title="Configurazione semplice" icon="gear" href="/it/configuration">
|
|
33
|
-
Regola qualsiasi policy senza scrivere codice. Imposta liste consentite, rami protetti o soglie per progetto o globalmente.
|
|
34
|
-
</Card>
|
|
35
|
-
|
|
36
|
-
</CardGroup>
|
|
37
|
-
|
|
38
|
-
## Avvio rapido
|
|
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 # abilita le policy
|
|
54
|
-
failproofai # avvia la dashboard
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Consulta la guida [Inizia](/it/getting-started) per la procedura dettagliata completa.
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Alias dei Pacchetti
|
|
3
|
-
description: "Alias registrati per la prevenzione del typosquatting e come funzionano"
|
|
4
|
-
icon: copy
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Pacchetto ufficiale
|
|
8
|
-
|
|
9
|
-
Il pacchetto npm canonico è **`failproofai`**:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install -g failproofai
|
|
13
|
-
# or
|
|
14
|
-
bun add -g failproofai
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Perché possediamo i nomi degli alias
|
|
20
|
-
|
|
21
|
-
Il typosquatting è un attacco comune alla supply chain in cui un malintenzionato registra un nome di pacchetto che è a una pressione di tasto di distanza da un pacchetto popolare. Gli utenti ignari che digitano male il comando di installazione finiscono per eseguire codice controllato dall'attaccante con accesso completo al sistema - esattamente il tipo di minaccia che Failproof AI è progettato per difendere.
|
|
22
|
-
|
|
23
|
-
Per eliminare questa superficie di attacco, **possediamo preventivamente tutte le comuni varianti di ortografia e formattazione** di `failproofai` su npm. Nessuno di questi nomi può essere registrato da terzi. Ognuno di essi è un proxy sottile che installa e delega al vero pacchetto `failproofai`.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Alias registrati
|
|
28
|
-
|
|
29
|
-
**Varianti di formattazione** - diversi modi di scrivere "failproof ai":
|
|
30
|
-
|
|
31
|
-
| Pacchetto | Stato |
|
|
32
|
-
|---------|--------|
|
|
33
|
-
| `failproof` | ✅ Pubblicato |
|
|
34
|
-
| `failproof-ai` | ⏳ In attesa di supporto npm |
|
|
35
|
-
| `fail-proof-ai` | ⏳ In attesa di supporto npm |
|
|
36
|
-
| `failproof_ai` | ⏳ In attesa di supporto npm |
|
|
37
|
-
| `fail_proof_ai` | ⏳ In attesa di supporto npm |
|
|
38
|
-
| `fail-proofai` | ⏳ In attesa di supporto npm |
|
|
39
|
-
|
|
40
|
-
**Errori di digitazione `failprof*`** - manca una `o` da "proof":
|
|
41
|
-
|
|
42
|
-
| Pacchetto | Stato |
|
|
43
|
-
|---------|--------|
|
|
44
|
-
| `failprof` | ✅ Pubblicato |
|
|
45
|
-
| `failprof-ai` | ✅ Pubblicato |
|
|
46
|
-
| `failprofai` | ⏳ In attesa di supporto npm |
|
|
47
|
-
| `fail-prof-ai` | ⏳ In attesa di supporto npm |
|
|
48
|
-
| `failprof_ai` | ⏳ In attesa di supporto npm |
|
|
49
|
-
|
|
50
|
-
**Errori di digitazione `faliproof*`** - `a` e `i` invertite:
|
|
51
|
-
|
|
52
|
-
| Pacchetto | Stato |
|
|
53
|
-
|---------|--------|
|
|
54
|
-
| `faliproof` | ✅ Pubblicato |
|
|
55
|
-
| `faliproof-ai` | ✅ Pubblicato |
|
|
56
|
-
| `faliproofai` | ⏳ In attesa di supporto npm |
|
|
57
|
-
|
|
58
|
-
> **Perché in sospeso?** La politica anti-spam di npm blocca i nomi che si normalizzano alla stessa stringa di un pacchetto esistente dopo aver rimosso la punteggiatura e eseguito controlli di somiglianza. Abbiamo contattato il supporto npm per riservare questi nomi a scopo di prevenzione del typosquatting. Saranno attivati una volta approvati.
|
|
59
|
-
|
|
60
|
-
Puoi verificare che qualsiasi alias pubblicato sia di nostra proprietà:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
npm info failproof
|
|
64
|
-
# Cercare: "ExosphereHost Inc." nel campo maintainers
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Come funzionano gli alias
|
|
70
|
-
|
|
71
|
-
Ogni pacchetto alias:
|
|
72
|
-
|
|
73
|
-
1. Elenca `failproofai` come dipendenza - in modo che il vero pacchetto (inclusa la configurazione del suo hook `postinstall`) venga eseguito all'installazione
|
|
74
|
-
2. Espone un binario che corrisponde al suo nome (ad es. `failprof-ai`) che inoltra tutti gli argomenti al binario `failproofai`
|
|
75
|
-
|
|
76
|
-
Il proxy è uno script Node a due righe; non c'è logica, nessuna chiamata di rete e nessuna raccolta dati oltre a quella che fa `failproofai` stesso.
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Se trovi un nome che ci è sfuggito
|
|
81
|
-
|
|
82
|
-
Apri un issue su [exospherehost/failproofai](https://github.com/exospherehost/failproofai/issues) e lo registreremo.
|