failproofai 0.0.6-beta.3 → 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]__0kyh86x._.js → [root-of-the-server]__0om-5pe._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__096k.db._.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/{01pmw1-asbek~.js → 02dqjyv6_9mhq.js} +2 -2
- package/.next/standalone/.next/static/chunks/{051m32nx~n5yr.js → 070orfsl6.xal.js} +1 -1
- package/.next/standalone/.next/static/chunks/0mir9jdxn35~s.css +1 -0
- package/.next/standalone/.next/static/chunks/{0mazj-p-~2kc6.js → 0o547jv-k_k35.js} +1 -1
- package/.next/standalone/.next/static/chunks/0pk2h2.mjxy.m.js +6 -0
- package/.next/standalone/.next/static/chunks/{0l-mu4okl-cj1.js → 0rcwkbh24w38b.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0-dm_9a6nsc2l.js → 140xx_tfr~lm_.js} +1 -1
- package/.next/standalone/.next/static/chunks/{156zca6aewyr-.js → 169_e4dq~1~b6.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0a-yctdwn368y.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/dist/cli.mjs +2 -2
- package/package.json +2 -2
- package/scripts/prune-standalone.mjs +128 -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/.next/static/chunks/0qakntsrpc~1j.js +0 -6
- package/.next/standalone/AGENTS.md +0 -80
- package/.next/standalone/CHANGELOG.md +0 -158
- 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 -439
- package/.next/standalone/bun.lock +0 -1119
- package/.next/standalone/components.json +0 -23
- package/.next/standalone/dist/cli.mjs +0 -4696
- 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 -575
- 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 -572
- 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 -572
- 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 -570
- 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/auth/login.ts +0 -104
- package/.next/standalone/src/auth/logout.ts +0 -50
- package/.next/standalone/src/auth/token-store.ts +0 -64
- package/.next/standalone/src/cli-error.ts +0 -18
- package/.next/standalone/src/hooks/builtin-policies.ts +0 -1615
- 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 -222
- 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/src/relay/daemon.ts +0 -362
- package/.next/standalone/src/relay/pid.ts +0 -76
- package/.next/standalone/src/relay/queue.ts +0 -225
- 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/{r-wX0MuAfCjbhJm3phQc8 → wOkJXoch1UmRAmyIuKZWc}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{r-wX0MuAfCjbhJm3phQc8 → wOkJXoch1UmRAmyIuKZWc}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{r-wX0MuAfCjbhJm3phQc8 → wOkJXoch1UmRAmyIuKZWc}/_ssgManifest.js +0 -0
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: पैकेज एलियास
|
|
3
|
-
description: "पंजीकृत typosquat-prevention एलियास और वे कैसे काम करते हैं"
|
|
4
|
-
icon: copy
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## आधिकारिक पैकेज
|
|
8
|
-
|
|
9
|
-
canonical npm पैकेज **`failproofai`** है:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install -g failproofai
|
|
13
|
-
# या
|
|
14
|
-
bun add -g failproofai
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## हम एलियास नामों को क्यों मालिकाना करते हैं
|
|
20
|
-
|
|
21
|
-
Typosquatting एक सामान्य supply-chain हमला है जहां एक दुर्भावनापूर्ण अभिनेता एक पैकेज नाम पंजीकृत करता है जो एक लोकप्रिय पैकेज से केवल एक कीस्ट्रोक दूर है। जो उपयोगकर्ता install कमांड को गलत तरीके से टाइप करते हैं, वे आक्रमणकारी-नियंत्रित कोड चलाते हुए समाप्त होते हैं जिसमें पूर्ण सिस्टम एक्सेस होता है - यह बिल्कुल वही खतरा है जिसके खिलाफ Failproof AI की रक्षा करने के लिए डिज़ाइन किया गया है।
|
|
22
|
-
|
|
23
|
-
इस सतह को समाप्त करने के लिए, **हम `failproofai` के सभी सामान्य गलतियों और फॉर्मेटिंग वेरिएंट को npm पर proactively मालिकाना करते हैं**। इनमें से कोई भी नाम एक तीसरे पक्ष द्वारा पंजीकृत नहीं किया जा सकता। प्रत्येक एक पतला proxy है जो real `failproofai` पैकेज को install करता है और delegate करता है।
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## पंजीकृत एलियास
|
|
28
|
-
|
|
29
|
-
**फॉर्मेटिंग वेरिएंट** - "failproof ai" लिखने के विभिन्न तरीके:
|
|
30
|
-
|
|
31
|
-
| पैकेज | स्थिति |
|
|
32
|
-
|---------|--------|
|
|
33
|
-
| `failproof` | ✅ Published |
|
|
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*` typos** - "proof" से एक `o` छूट गया:
|
|
41
|
-
|
|
42
|
-
| पैकेज | स्थिति |
|
|
43
|
-
|---------|--------|
|
|
44
|
-
| `failprof` | ✅ Published |
|
|
45
|
-
| `failprof-ai` | ✅ Published |
|
|
46
|
-
| `failprofai` | ⏳ npm समर्थन की प्रतीक्षा |
|
|
47
|
-
| `fail-prof-ai` | ⏳ npm समर्थन की प्रतीक्षा |
|
|
48
|
-
| `failprof_ai` | ⏳ npm समर्थन की प्रतीक्षा |
|
|
49
|
-
|
|
50
|
-
**`faliproof*` typos** - `a` और `i` को स्थानांतरित किया गया:
|
|
51
|
-
|
|
52
|
-
| पैकेज | स्थिति |
|
|
53
|
-
|---------|--------|
|
|
54
|
-
| `faliproof` | ✅ Published |
|
|
55
|
-
| `faliproof-ai` | ✅ Published |
|
|
56
|
-
| `faliproofai` | ⏳ npm समर्थन की प्रतीक्षा |
|
|
57
|
-
|
|
58
|
-
> **क्यों pending है?** npm की spam-prevention नीति उन नामों को ब्लॉक करती है जो punctuation को हटाने और similarity checks चलाने के बाद किसी existing पैकेज के समान normalize होते हैं। हमने इन नामों को anti-squatting उद्देश्यों के लिए आरक्षित करने के लिए npm समर्थन से संपर्क किया है। वे approval के बाद सक्रिय किए जाएंगे।
|
|
59
|
-
|
|
60
|
-
आप किसी भी प्रकाशित alias को सत्यापित कर सकते हैं कि यह हमारे द्वारा मालिकाना है:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
npm info failproof
|
|
64
|
-
# देखें: maintainers फील्ड में "ExosphereHost Inc."
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## एलियास कैसे काम करते हैं
|
|
70
|
-
|
|
71
|
-
प्रत्येक alias पैकेज:
|
|
72
|
-
|
|
73
|
-
1. `failproofai` को एक dependency के रूप में सूचीबद्ध करता है - इसलिए real पैकेज (इसके `postinstall` hook setup सहित) install पर चलता है
|
|
74
|
-
2. अपने स्वयं के नाम से मेल खाने वाला एक binary expose करता है (उदाहरण के लिए `failprof-ai`) जो सभी arguments को `failproofai` binary में proxy करता है
|
|
75
|
-
|
|
76
|
-
proxy एक दो-पंक्ति Node स्क्रिप्ट है; कोई logic नहीं है, कोई network calls नहीं है, और `failproofai` स्वयं जो करता है उससे परे कोई data collection नहीं है।
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## यदि आपको कोई नाम मिल जाता है जिसे हमने मिस किया है
|
|
81
|
-
|
|
82
|
-
[exospherehost/failproofai](https://github.com/exospherehost/failproofai/issues) पर एक issue खोलें और हम इसे पंजीकृत करेंगे।
|
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: परीक्षण
|
|
3
|
-
description: "यूनिट टेस्ट, E2E टेस्ट, और टेस्ट हेल्पर्स"
|
|
4
|
-
icon: flask-vial
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
failproofai के दो टेस्ट सूट हैं: **यूनिट टेस्ट** (तेज़, मॉक किए गए) और **एंड-टू-एंड टेस्ट** (वास्तविक सबप्रोसेस आमंत्रण)।
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## टेस्ट चलाना
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
# सभी यूनिट टेस्ट एक बार चलाएं
|
|
15
|
-
bun run test:run
|
|
16
|
-
|
|
17
|
-
# यूनिट टेस्ट को वॉच मोड में चलाएं
|
|
18
|
-
bun run test
|
|
19
|
-
|
|
20
|
-
# E2E टेस्ट चलाएं (सेटअप की आवश्यकता है - नीचे देखें)
|
|
21
|
-
bun run test:e2e
|
|
22
|
-
|
|
23
|
-
# बिल्ड किए बिना टाइप-चेक करें
|
|
24
|
-
bunx tsc --noEmit
|
|
25
|
-
|
|
26
|
-
# लिंट करें
|
|
27
|
-
bun run lint
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## यूनिट टेस्ट
|
|
33
|
-
|
|
34
|
-
यूनिट टेस्ट `__tests__/` में रहते हैं और [Vitest](https://vitest.dev) के साथ `happy-dom` का उपयोग करते हैं।
|
|
35
|
-
|
|
36
|
-
```text
|
|
37
|
-
__tests__/
|
|
38
|
-
hooks/
|
|
39
|
-
builtin-policies.test.ts # प्रत्येक बिल्टइन के लिए पॉलिसी लॉजिक
|
|
40
|
-
hooks-config.test.ts # कॉन्फ़िग लोडिंग और स्कोप मर्जिंग
|
|
41
|
-
policy-evaluator.test.ts # पैरम इंजेक्शन और मूल्यांकन क्रम
|
|
42
|
-
custom-hooks-registry.test.ts # globalThis रजिस्ट्री add/get/clear
|
|
43
|
-
custom-hooks-loader.test.ts # ESM लोडर, ट्रांजिटिव इम्पोर्ट, त्रुटि प्रबंधन
|
|
44
|
-
manager.test.ts # install/remove/list ऑपरेशन
|
|
45
|
-
components/
|
|
46
|
-
sessions-list.test.tsx # सेशन लिस्ट कंपोनेंट
|
|
47
|
-
project-list.test.tsx # प्रोजेक्ट लिस्ट कंपोनेंट
|
|
48
|
-
...
|
|
49
|
-
lib/
|
|
50
|
-
logger.test.ts
|
|
51
|
-
paths.test.ts
|
|
52
|
-
date-filters.test.ts
|
|
53
|
-
telemetry.test.ts
|
|
54
|
-
...
|
|
55
|
-
actions/
|
|
56
|
-
get-hooks-config.test.ts
|
|
57
|
-
get-hook-activity.test.ts
|
|
58
|
-
...
|
|
59
|
-
contexts/
|
|
60
|
-
ThemeContext.test.tsx
|
|
61
|
-
AutoRefreshContext.test.tsx
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### पॉलिसी यूनिट टेस्ट लिखना
|
|
65
|
-
|
|
66
|
-
```typescript
|
|
67
|
-
import { describe, it, expect, beforeEach } from "vitest";
|
|
68
|
-
import { getBuiltinPolicies } from "../../src/hooks/builtin-policies";
|
|
69
|
-
import { allow, deny } from "../../src/hooks/policy-types";
|
|
70
|
-
|
|
71
|
-
describe("block-sudo", () => {
|
|
72
|
-
const policy = getBuiltinPolicies().find((p) => p.name === "block-sudo")!;
|
|
73
|
-
|
|
74
|
-
it("denies sudo commands", () => {
|
|
75
|
-
const ctx = {
|
|
76
|
-
eventType: "PreToolUse" as const,
|
|
77
|
-
payload: {},
|
|
78
|
-
toolName: "Bash",
|
|
79
|
-
toolInput: { command: "sudo apt install nodejs" },
|
|
80
|
-
params: { allowPatterns: [] },
|
|
81
|
-
};
|
|
82
|
-
expect(policy.fn(ctx)).toEqual(deny("sudo command blocked by failproofai"));
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
it("allows non-sudo commands", () => {
|
|
86
|
-
const ctx = {
|
|
87
|
-
eventType: "PreToolUse" as const,
|
|
88
|
-
payload: {},
|
|
89
|
-
toolName: "Bash",
|
|
90
|
-
toolInput: { command: "ls -la" },
|
|
91
|
-
params: { allowPatterns: [] },
|
|
92
|
-
};
|
|
93
|
-
expect(policy.fn(ctx)).toEqual(allow());
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it("allows patterns in allowPatterns", () => {
|
|
97
|
-
const ctx = {
|
|
98
|
-
eventType: "PreToolUse" as const,
|
|
99
|
-
payload: {},
|
|
100
|
-
toolName: "Bash",
|
|
101
|
-
toolInput: { command: "sudo systemctl status nginx" },
|
|
102
|
-
params: { allowPatterns: ["sudo systemctl status"] },
|
|
103
|
-
};
|
|
104
|
-
expect(policy.fn(ctx)).toEqual(allow());
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## एंड-टू-एंड टेस्ट
|
|
112
|
-
|
|
113
|
-
E2E टेस्ट वास्तविक `failproofai` बाइनरी को सबप्रोसेस के रूप में आमंत्रित करते हैं, stdin को JSON पेलोड पाइप करते हैं, और stdout आउटपुट और एक्जिट कोड पर दावे लगाते हैं। यह पूर्ण इंटीग्रेशन पथ का परीक्षण करता है जो Claude Code उपयोग करता है।
|
|
114
|
-
|
|
115
|
-
### सेटअप
|
|
116
|
-
|
|
117
|
-
E2E टेस्ट बाइनरी को रेपो सोर्स से सीधे चलाते हैं। पहली बार चलाने से पहले, CJS बंडल बनाएं जो कस्टम हुक फाइलें `'failproofai'` से इम्पोर्ट करते समय उपयोग करती हैं:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
bun build src/index.ts --outdir dist --target node --format cjs
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
फिर टेस्ट चलाएं:
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
bun run test:e2e
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
जब भी आप सार्वजनिक हुक API (`src/hooks/custom-hooks-registry.ts`, `src/hooks/policy-helpers.ts`, या `src/hooks/policy-types.ts`) में बदलाव करें तो `dist/` को फिर से बनाएं।
|
|
130
|
-
|
|
131
|
-
### E2E टेस्ट संरचना
|
|
132
|
-
|
|
133
|
-
```text
|
|
134
|
-
__tests__/e2e/
|
|
135
|
-
helpers/
|
|
136
|
-
hook-runner.ts # बाइनरी स्पॉन करें, पेलोड JSON पाइप करें, एक्जिट कोड + stdout + stderr कैप्चर करें
|
|
137
|
-
fixture-env.ts # कॉन्फ़िग फाइलों के साथ प्रति-टेस्ट अलग-थलग अस्थायी निर्देशिकाएं
|
|
138
|
-
payloads.ts # प्रत्येक इवेंट टाइप के लिए Claude-सटीक पेलोड फैक्ट्रीज़
|
|
139
|
-
hooks/
|
|
140
|
-
builtin-policies.e2e.test.ts # वास्तविक सबप्रोसेस के साथ प्रत्येक बिल्टइन पॉलिसी
|
|
141
|
-
custom-hooks.e2e.test.ts # कस्टम हुक लोडिंग और मूल्यांकन
|
|
142
|
-
config-scopes.e2e.test.ts # प्रोजेक्ट/स्थानीय/वैश्विक में कॉन्फ़िग मर्जिंग
|
|
143
|
-
policy-params.e2e.test.ts # प्रत्येक पैरामीटराइज्ड पॉलिसी के लिए पैरामीटर इंजेक्शन
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### E2E हेल्पर्स का उपयोग करना
|
|
147
|
-
|
|
148
|
-
**`FixtureEnv`** - प्रति-टेस्ट अलग-थलग वातावरण:
|
|
149
|
-
|
|
150
|
-
```typescript
|
|
151
|
-
import { createFixtureEnv } from "../helpers/fixture-env";
|
|
152
|
-
|
|
153
|
-
const env = createFixtureEnv();
|
|
154
|
-
// env.cwd - अस्थायी निर्देशिका; .failproofai/policies-config.json पिक अप करने के लिए payload.cwd के रूप में पास करें
|
|
155
|
-
// env.home - अलग-थलग होम निर्देशिका; कोई वास्तविक ~/.failproofai लीक नहीं
|
|
156
|
-
|
|
157
|
-
env.writeConfig({
|
|
158
|
-
enabledPolicies: ["block-sudo"],
|
|
159
|
-
policyParams: {
|
|
160
|
-
"block-sudo": { allowPatterns: ["sudo systemctl status"] },
|
|
161
|
-
},
|
|
162
|
-
});
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
`createFixtureEnv()` स्वचालित रूप से `afterEach` क्लीनअप पंजीकृत करता है।
|
|
166
|
-
|
|
167
|
-
**`runHook`** - बाइनरी को आमंत्रित करें:
|
|
168
|
-
|
|
169
|
-
```typescript
|
|
170
|
-
import { runHook } from "../helpers/hook-runner";
|
|
171
|
-
import { Payloads } from "../helpers/payloads";
|
|
172
|
-
|
|
173
|
-
const result = await runHook(
|
|
174
|
-
"PreToolUse",
|
|
175
|
-
Payloads.preToolUse.bash("sudo apt install nodejs", env.cwd),
|
|
176
|
-
{ homeDir: env.home }
|
|
177
|
-
);
|
|
178
|
-
|
|
179
|
-
expect(result.exitCode).toBe(0);
|
|
180
|
-
expect(result.parsed?.hookSpecificOutput?.permissionDecision).toBe("deny");
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
**`Payloads`** - तैयार पेलोड फैक्ट्रीज़:
|
|
184
|
-
|
|
185
|
-
```typescript
|
|
186
|
-
Payloads.preToolUse.bash(command, cwd)
|
|
187
|
-
Payloads.preToolUse.write(filePath, content, cwd)
|
|
188
|
-
Payloads.preToolUse.read(filePath, cwd)
|
|
189
|
-
Payloads.postToolUse.bash(command, output, cwd)
|
|
190
|
-
Payloads.postToolUse.read(filePath, content, cwd)
|
|
191
|
-
Payloads.notification(message, cwd)
|
|
192
|
-
Payloads.stop(cwd)
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
### E2E टेस्ट लिखना
|
|
196
|
-
|
|
197
|
-
```typescript
|
|
198
|
-
import { describe, it, expect } from "vitest";
|
|
199
|
-
import { createFixtureEnv } from "../helpers/fixture-env";
|
|
200
|
-
import { runHook } from "../helpers/hook-runner";
|
|
201
|
-
import { Payloads } from "../helpers/payloads";
|
|
202
|
-
|
|
203
|
-
describe("block-rm-rf (E2E)", () => {
|
|
204
|
-
it("denies rm -rf", async () => {
|
|
205
|
-
const env = createFixtureEnv();
|
|
206
|
-
env.writeConfig({ enabledPolicies: ["block-rm-rf"] });
|
|
207
|
-
|
|
208
|
-
const result = await runHook(
|
|
209
|
-
"PreToolUse",
|
|
210
|
-
Payloads.preToolUse.bash("rm -rf /", env.cwd),
|
|
211
|
-
{ homeDir: env.home }
|
|
212
|
-
);
|
|
213
|
-
|
|
214
|
-
expect(result.exitCode).toBe(0);
|
|
215
|
-
expect(result.parsed?.hookSpecificOutput?.permissionDecision).toBe("deny");
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
it("allows non-recursive rm", async () => {
|
|
219
|
-
const env = createFixtureEnv();
|
|
220
|
-
env.writeConfig({ enabledPolicies: ["block-rm-rf"] });
|
|
221
|
-
|
|
222
|
-
const result = await runHook(
|
|
223
|
-
"PreToolUse",
|
|
224
|
-
Payloads.preToolUse.bash("rm /tmp/file.txt", env.cwd),
|
|
225
|
-
{ homeDir: env.home }
|
|
226
|
-
);
|
|
227
|
-
|
|
228
|
-
expect(result.exitCode).toBe(0);
|
|
229
|
-
expect(result.stdout).toBe(""); // allow → empty stdout
|
|
230
|
-
});
|
|
231
|
-
});
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
### E2E प्रतिक्रिया आकार
|
|
235
|
-
|
|
236
|
-
| निर्णय | एक्जिट कोड | stdout |
|
|
237
|
-
|----------|-----------|--------|
|
|
238
|
-
| `PreToolUse` deny | `0` | `{"hookSpecificOutput":{"permissionDecision":"deny","permissionDecisionReason":"..."}}` |
|
|
239
|
-
| `PostToolUse` deny | `0` | `{"hookSpecificOutput":{"additionalContext":"Blocked ... because: ..."}}` |
|
|
240
|
-
| Instruct (गैर-Stop) | `0` | `{"hookSpecificOutput":{"additionalContext":"Instruction from failproofai: ..."}}` |
|
|
241
|
-
| Stop instruct | `2` | खाली stdout; stderr में कारण |
|
|
242
|
-
| Allow | `0` | खाली स्ट्रिंग |
|
|
243
|
-
|
|
244
|
-
### Vitest कॉन्फ़िग
|
|
245
|
-
|
|
246
|
-
E2E टेस्ट `vitest.config.e2e.mts` का उपयोग करते हैं:
|
|
247
|
-
|
|
248
|
-
- `environment: "node"` - कोई ब्राउजर ग्लोबल्स की आवश्यकता नहीं
|
|
249
|
-
- `pool: "forks"` - सच्चा प्रोसेस इसोलेशन (टेस्ट सबप्रोसेस स्पॉन करते हैं)
|
|
250
|
-
- `testTimeout: 20_000` - प्रति टेस्ट 20 सेकंड (बाइनरी स्टार्टअप + हुक eval)
|
|
251
|
-
|
|
252
|
-
`forks` पूल महत्वपूर्ण है: थ्रेड-आधारित वर्कर्स `globalThis` साझा करते हैं, जो सबप्रोसेस-स्पॉनिंग टेस्ट में हस्तक्षेप कर सकता है। प्रोसेस-आधारित फोर्क इससे बचते हैं।
|
|
253
|
-
|
|
254
|
-
---
|
|
255
|
-
|
|
256
|
-
## CI
|
|
257
|
-
|
|
258
|
-
पूर्ण CI रन (`bun run lint && bunx tsc --noEmit && bun run test:run && bun run build`) मर्ज करने से पहले पास होना आवश्यक है। E2E सूट समानांतर में एक अलग CI जॉब के रूप में चलता है।
|
|
259
|
-
|
|
260
|
-
पूर्ण प्री-मर्ज चेकलिस्ट के लिए [Contributing](../CONTRIBUTING.md) देखें।
|
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
> **⚠️** هذه ترجمة آلية. للاطلاع على أحدث إصدار، راجع [English README](../../README.md).
|
|
2
|
-
|
|
3
|
-
[🇺🇸 English](../../README.md) | [🇨🇳 简体中文](README.zh.md) | [🇯🇵 日本語](README.ja.md) | [🇰🇷 한국어](README.ko.md) | [🇪🇸 Español](README.es.md) | [🇧🇷 Português](README.pt-br.md) | [🇩🇪 Deutsch](README.de.md) | [🇫🇷 Français](README.fr.md) | [🇷🇺 Русский](README.ru.md) | [🇮🇳 हिन्दी](README.hi.md) | [🇹🇷 Türkçe](README.tr.md) | [🇻🇳 Tiếng Việt](README.vi.md) | [🇮🇹 Italiano](README.it.md) | **🇸🇦 العربية** | [🇮🇱 עברית](README.he.md)
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
<div dir="rtl">
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
______ _ __ ____ ___ ____
|
|
11
|
-
/ ____/___ _(_) /___ _________ ____ / __/ / | / _/
|
|
12
|
-
/ /_ / __ `/ / / __ \/ ___/ __ \/ __ \/ /_ / /| | / /
|
|
13
|
-
/ __/ / /_/ / / / /_/ / / / /_/ / /_/ / __/ / ___ |_/ /
|
|
14
|
-
/_/ \__,_/_/_/ .___/_/ \____/\____/_/ /_/ |_/___/
|
|
15
|
-
/_/
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
# Failproof AI
|
|
19
|
-
|
|
20
|
-
[](https://befailproof.ai)
|
|
21
|
-
[](https://www.npmjs.com/package/failproofai)
|
|
22
|
-
[](LICENSE)
|
|
23
|
-
[](https://github.com/exospherehost/failproofai/actions)
|
|
24
|
-
[](https://join.slack.com/t/failproofai/shared_invite/zt-3v63b7k5e-O3NBHmj8X6n9gZSGDx6ggQ)
|
|
25
|
-
|
|
26
|
-
**الترجمات**: [简体中文](docs/i18n/README.zh.md) | [日本語](docs/i18n/README.ja.md) | [한국어](docs/i18n/README.ko.md) | [Español](docs/i18n/README.es.md) | [Português](docs/i18n/README.pt-br.md) | [Deutsch](docs/i18n/README.de.md) | [Français](docs/i18n/README.fr.md) | [Русский](docs/i18n/README.ru.md) | [हिन्दी](docs/i18n/README.hi.md) | [Türkçe](docs/i18n/README.tr.md) | [Tiếng Việt](docs/i18n/README.vi.md) | [Italiano](docs/i18n/README.it.md) | [العربية](docs/i18n/README.ar.md) | [עברית](docs/i18n/README.he.md)
|
|
27
|
-
|
|
28
|
-
الطريقة الأسهل لإدارة السياسات التي تحافظ على موثوقية عملاء الذكاء الاصطناعي الخاصة بك وتركيز مهامهم وتشغيلهم بشكل مستقل - لـ **Claude Code** و **Agents SDK**.
|
|
29
|
-
|
|
30
|
-
- **30 سياسة مدمجة** - التقط أنماط فشل الوكيل الشائعة فوراً. حجب الأوامر المدمرة، ومنع تسرب الأسرار، والحفاظ على الوكلاء داخل حدود المشروع، والكشف عن الحلقات، والمزيد.
|
|
31
|
-
- **السياسات المخصصة** - اكتب قواعد موثوقية خاصة بك في JavaScript. استخدم واجهة برمجية التطبيقات `allow`/`deny`/`instruct` لفرض الاتفاقيات ومنع الانجراف وقفل العمليات أو التكامل مع الأنظمة الخارجية.
|
|
32
|
-
- **إعدادات سهلة** - اضبط أي سياسة بدون كتابة أكواد. قم بتعيين قوائم السماح والفروع المحمية والحدود لكل مشروع أو عمومياً. يتم دمج تكوين ثلاثة نطاقات تلقائياً.
|
|
33
|
-
- **مراقب الوكيل** - شاهد ما فعله وكلاؤك أثناء غيابك. تصفح الجلسات وافحص كل استدعاء أداة وراجع بالضبط مكان تفعيل السياسات.
|
|
34
|
-
|
|
35
|
-
كل شيء يعمل محلياً - لا تترك أي بيانات جهازك.
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## المتطلبات
|
|
40
|
-
|
|
41
|
-
- Node.js >= 20.9.0
|
|
42
|
-
- Bun >= 1.3.0 (اختياري - مطلوب فقط للتطوير / البناء من المصدر)
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## التثبيت
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npm install -g failproofai
|
|
50
|
-
# أو
|
|
51
|
-
bun add -g failproofai
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## البدء السريع
|
|
57
|
-
|
|
58
|
-
### 1. تفعيل السياسات عمومياً
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
failproofai policies --install
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
يكتب إدخالات hook في `~/.claude/settings.json`. الآن سيستدعي Claude Code failproofai قبل وبعد كل استدعاء أداة.
|
|
65
|
-
|
|
66
|
-
### 2. تشغيل لوحة المعلومات
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
failproofai
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
يفتح `http://localhost:8020` - تصفح الجلسات وافحص السجلات وأدر السياسات.
|
|
73
|
-
|
|
74
|
-
### 3. تحقق مما هو نشط
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
failproofai policies
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
## تثبيت السياسة
|
|
83
|
-
|
|
84
|
-
### النطاقات
|
|
85
|
-
|
|
86
|
-
| النطاق | الأمر | حيث يكتب |
|
|
87
|
-
|-------|---------|-----------------|
|
|
88
|
-
| عمومي (الافتراضي) | `failproofai policies --install` | `~/.claude/settings.json` |
|
|
89
|
-
| المشروع | `failproofai policies --install --scope project` | `.claude/settings.json` |
|
|
90
|
-
| محلي | `failproofai policies --install --scope local` | `.claude/settings.local.json` |
|
|
91
|
-
|
|
92
|
-
### تثبيت سياسات محددة
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
failproofai policies --install block-sudo block-rm-rf sanitize-api-keys
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### إزالة السياسات
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
failproofai policies --uninstall
|
|
102
|
-
# أو لنطاق محدد:
|
|
103
|
-
failproofai policies --uninstall --scope project
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## التكوين
|
|
109
|
-
|
|
110
|
-
يوجد تكوين السياسة في `~/.failproofai/policies-config.json` (عمومي) أو `.failproofai/policies-config.json` في مشروعك (حسب المشروع).
|
|
111
|
-
|
|
112
|
-
```json
|
|
113
|
-
{
|
|
114
|
-
"enabledPolicies": [
|
|
115
|
-
"block-sudo",
|
|
116
|
-
"block-rm-rf",
|
|
117
|
-
"sanitize-api-keys",
|
|
118
|
-
"block-push-master",
|
|
119
|
-
"block-env-files",
|
|
120
|
-
"block-read-outside-cwd"
|
|
121
|
-
],
|
|
122
|
-
"policyParams": {
|
|
123
|
-
"block-sudo": {
|
|
124
|
-
"allowPatterns": ["sudo systemctl status", "sudo journalctl"],
|
|
125
|
-
"hint": "Use apt-get directly without sudo."
|
|
126
|
-
},
|
|
127
|
-
"block-push-master": {
|
|
128
|
-
"protectedBranches": ["main", "release", "prod"],
|
|
129
|
-
"hint": "Try creating a fresh branch instead."
|
|
130
|
-
},
|
|
131
|
-
"sanitize-api-keys": {
|
|
132
|
-
"additionalPatterns": [
|
|
133
|
-
{ "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo API key" }
|
|
134
|
-
]
|
|
135
|
-
},
|
|
136
|
-
"warn-large-file-write": {
|
|
137
|
-
"thresholdKb": 512
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
**يتم دمج ثلاثة نطاقات تكوين** تلقائياً (المشروع → المحلي → العمومي). راجع [docs/configuration.mdx](docs/configuration.mdx) للحصول على قواعد الدمج الكاملة.
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## السياسات المدمجة
|
|
148
|
-
|
|
149
|
-
| السياسة | الوصف | قابلة للتكوين |
|
|
150
|
-
|--------|-------------|:---:|
|
|
151
|
-
| `block-sudo` | منع الوكلاء من تشغيل أوامر النظام الممتازة | `allowPatterns` |
|
|
152
|
-
| `block-rm-rf` | منع حذف الملفات العودية العرضية | `allowPaths` |
|
|
153
|
-
| `block-curl-pipe-sh` | منع الوكلاء من إرسال البرامج غير الموثوقة إلى shell | |
|
|
154
|
-
| `block-failproofai-commands` | منع إلغاء التثبيت الذاتي | |
|
|
155
|
-
| `sanitize-jwt` | منع رموز JWT من التسرب إلى سياق الوكيل | |
|
|
156
|
-
| `sanitize-api-keys` | منع مفاتيح API من التسرب إلى سياق الوكيل | `additionalPatterns` |
|
|
157
|
-
| `sanitize-connection-strings` | منع بيانات اعتماد قاعدة البيانات من التسرب إلى سياق الوكيل | |
|
|
158
|
-
| `sanitize-private-key-content` | تحرير كتل مفاتيح PEM الخاصة من الإخراج | |
|
|
159
|
-
| `sanitize-bearer-tokens` | تحرير رموز Authorization Bearer من الإخراج | |
|
|
160
|
-
| `block-env-files` | منع الوكلاء من قراءة ملفات .env | |
|
|
161
|
-
| `protect-env-vars` | منع الوكلاء من طباعة متغيرات البيئة | |
|
|
162
|
-
| `block-read-outside-cwd` | الحفاظ على الوكلاء داخل حدود المشروع | `allowPaths` |
|
|
163
|
-
| `block-secrets-write` | منع الكتابة إلى ملفات المفاتيح والشهادات الخاصة | `additionalPatterns` |
|
|
164
|
-
| `block-push-master` | منع الدفع العرضي إلى main/master | `protectedBranches` |
|
|
165
|
-
| `block-work-on-main` | إبقاء الوكلاء بعيداً عن الفروع المحمية | `protectedBranches` |
|
|
166
|
-
| `block-force-push` | منع `git push --force` | |
|
|
167
|
-
| `warn-git-amend` | تذكير الوكلاء قبل تعديل الالتزامات | |
|
|
168
|
-
| `warn-git-stash-drop` | تذكير الوكلاء قبل حذف النسخ الاحتياطية | |
|
|
169
|
-
| `warn-all-files-staged` | التقط `git add -A` العرضية | |
|
|
170
|
-
| `warn-destructive-sql` | التقط DROP/DELETE SQL قبل التنفيذ | |
|
|
171
|
-
| `warn-schema-alteration` | التقط ALTER TABLE قبل التنفيذ | |
|
|
172
|
-
| `warn-large-file-write` | التقط عمليات الكتابة إلى ملفات كبيرة بشكل غير متوقع | `thresholdKb` |
|
|
173
|
-
| `warn-package-publish` | التقط `npm publish` العرضية | |
|
|
174
|
-
| `warn-background-process` | التقط إطلاقات العمليات الخلفية غير المقصودة | |
|
|
175
|
-
| `warn-global-package-install` | التقط التثبيتات العامة للحزم غير المقصودة | |
|
|
176
|
-
| …والمزيد | | |
|
|
177
|
-
|
|
178
|
-
تفاصيل السياسة الكاملة ومرجع المعاملات: [docs/built-in-policies.mdx](docs/built-in-policies.mdx)
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
## السياسات المخصصة
|
|
183
|
-
|
|
184
|
-
اكتب سياساتك الخاصة للحفاظ على موثوقية الوكلاء وتركيزهم على المهام:
|
|
185
|
-
|
|
186
|
-
```js
|
|
187
|
-
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
188
|
-
|
|
189
|
-
customPolicies.add({
|
|
190
|
-
name: "no-production-writes",
|
|
191
|
-
description: "Block writes to paths containing 'production'",
|
|
192
|
-
match: { events: ["PreToolUse"] },
|
|
193
|
-
fn: async (ctx) => {
|
|
194
|
-
if (!["Write", "Edit"].includes(ctx.toolName ?? "")) return allow();
|
|
195
|
-
const path = ctx.toolInput?.file_path ?? "";
|
|
196
|
-
if (path.includes("production")) return deny("Writes to production paths are blocked");
|
|
197
|
-
return allow();
|
|
198
|
-
},
|
|
199
|
-
});
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
ثبّت مع:
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
failproofai policies --install --custom ./my-policies.js
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
### مساعدات القرار
|
|
209
|
-
|
|
210
|
-
| الدالة | التأثير |
|
|
211
|
-
|----------|--------|
|
|
212
|
-
| `allow()` | السماح بالعملية |
|
|
213
|
-
| `allow(message)` | السماح وإرسال السياق المعلوماتي إلى Claude |
|
|
214
|
-
| `deny(message)` | حجب العملية؛ الرسالة مُعروضة على Claude |
|
|
215
|
-
| `instruct(message)` | إضافة السياق إلى موجه Claude؛ لا تحجب |
|
|
216
|
-
|
|
217
|
-
### كائن السياق (`ctx`)
|
|
218
|
-
|
|
219
|
-
| الحقل | النوع | الوصف |
|
|
220
|
-
|-------|------|-------------|
|
|
221
|
-
| `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
|
|
222
|
-
| `toolName` | `string` | الأداة التي يتم استدعاؤها (`"Bash"`, `"Write"`, `"Read"`, …) |
|
|
223
|
-
| `toolInput` | `object` | معاملات إدخال الأداة |
|
|
224
|
-
| `payload` | `object` | حمل الحدث الخام الكامل |
|
|
225
|
-
| `session.cwd` | `string` | دليل العمل لجلسة Claude Code |
|
|
226
|
-
| `session.sessionId` | `string` | معرّف الجلسة |
|
|
227
|
-
| `session.transcriptPath` | `string` | المسار إلى ملف نسخة الجلسة |
|
|
228
|
-
|
|
229
|
-
تدعم الخطافات المخصصة الاستيراد المحلي العابر والانتظار غير المتزامن والوصول إلى `process.env`. الأخطاء فشل مفتوح (تسجل في `~/.failproofai/hook.log`، السياسات المدمجة تستمر). راجع [docs/custom-hooks.mdx](docs/custom-hooks.mdx) للحصول على الدليل الكامل.
|
|
230
|
-
|
|
231
|
-
### السياسات المستندة إلى الاتفاقية
|
|
232
|
-
|
|
233
|
-
أسقط ملفات `*policies.{js,mjs,ts}` في `.failproofai/policies/` وسيتم تحميلها تلقائياً - لا توجد أعلام أو تغييرات تكوين مطلوبة. التزم بالدليل إلى git وكل عضو في الفريق يحصل على نفس معايير الجودة تلقائياً.
|
|
234
|
-
|
|
235
|
-
```text
|
|
236
|
-
# مستوى المشروع — ملتزم بـ git، مشاركة مع الفريق
|
|
237
|
-
.failproofai/policies/security-policies.mjs
|
|
238
|
-
.failproofai/policies/workflow-policies.mjs
|
|
239
|
-
|
|
240
|
-
# مستوى المستخدم — شخصي، ينطبق على جميع المشاريع
|
|
241
|
-
~/.failproofai/policies/my-policies.mjs
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
يتم تحميل كلا المستويين (اتحاد). يتم تحميل الملفات أبجدياً داخل كل دليل. بادئة مع `01-`, `02-`, إلخ. للتحكم في الترتيب. عندما يكتشف فريقك أنماط فشل جديدة، أضف سياسة واضغط - يحصل الجميع على التحديث عند الاستخراج التالي. راجع [examples/convention-policies/](examples/convention-policies/) للحصول على أمثلة جاهزة للاستخدام.
|
|
245
|
-
|
|
246
|
-
---
|
|
247
|
-
|
|
248
|
-
## القياس
|
|
249
|
-
|
|
250
|
-
يجمع Failproof AI بيانات القياس المجهولة عبر PostHog لفهم استخدام الميزات. لا يتم أبداً إرسال محتوى الجلسة أو أسماء الملفات أو مدخلات الأدوات أو المعلومات الشخصية.
|
|
251
|
-
|
|
252
|
-
عطّلها:
|
|
253
|
-
|
|
254
|
-
```bash
|
|
255
|
-
FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
---
|
|
259
|
-
|
|
260
|
-
## التوثيق
|
|
261
|
-
|
|
262
|
-
| الدليل | الوصف |
|
|
263
|
-
|-------|-------------|
|
|
264
|
-
| [Getting Started](docs/getting-started.mdx) | التثبيت والخطوات الأولى |
|
|
265
|
-
| [Built-in Policies](docs/built-in-policies.mdx) | جميع 30 سياسة مدمجة مع معاملات |
|
|
266
|
-
| [Custom Policies](docs/custom-policies.mdx) | اكتب سياساتك الخاصة |
|
|
267
|
-
| [Configuration](docs/configuration.mdx) | تنسيق ملف التكوين ودمج النطاق |
|
|
268
|
-
| [Dashboard](docs/dashboard.mdx) | راقب الجلسات وراجع نشاط السياسة |
|
|
269
|
-
| [Architecture](docs/architecture.mdx) | كيفية عمل نظام الخطاف |
|
|
270
|
-
| [Testing](docs/testing.mdx) | تشغيل الاختبارات وكتابة اختبارات جديدة |
|
|
271
|
-
|
|
272
|
-
### قم بتشغيل التوثيق محلياً
|
|
273
|
-
|
|
274
|
-
```bash
|
|
275
|
-
docker build -f Dockerfile.docs -t failproofai-docs .
|
|
276
|
-
docker run --rm -p 3000:3000 failproofai-docs
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
يفتح موقع Mintlify docs في `http://localhost:3000`. يراقب الحاوية التغييرات إذا قمت بتحميل دليل docs:
|
|
280
|
-
|
|
281
|
-
```bash
|
|
282
|
-
docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
## ملاحظة لمساهمي failproofai
|
|
288
|
-
|
|
289
|
-
يستخدم `.claude/settings.json` في هذا المستودع `bun ./bin/failproofai.mjs --hook <EventType>` بدلاً من أمر `npx -y failproofai` القياسي. هذا لأن تشغيل `npx -y failproofai` داخل مشروع failproofai نفسه ينشئ تضارباً مرجعياً ذاتياً.
|
|
290
|
-
|
|
291
|
-
بالنسبة لجميع المستودعات الأخرى، الطريقة الموصى بها هي `npx -y failproofai`، المثبتة عبر:
|
|
292
|
-
|
|
293
|
-
```bash
|
|
294
|
-
failproofai policies --install --scope project
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
## المساهمة
|
|
298
|
-
|
|
299
|
-
راجع [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
300
|
-
|
|
301
|
-
---
|
|
302
|
-
|
|
303
|
-
## الترخيص
|
|
304
|
-
|
|
305
|
-
راجع [LICENSE](LICENSE).
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
تم البناء والصيانة بواسطة **ExosphereHost: مختبر أبحاث الموثوقية لوكلائك**. نساعد الشركات والشركات الناشئة على تحسين موثوقية عملائهم من الذكاء الاصطناعي من خلال وكلائنا وبرامجنا وخبرتنا. تعرف على المزيد في [exosphere.host](https://exosphere.host).
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
</div>
|