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: أمثلة
|
|
3
|
-
description: "كيفية إعداد الخطافات لـ Claude Code و Agents SDK"
|
|
4
|
-
icon: book-open
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
أمثلة جاهزة للاستخدام لسيناريوهات شائعة. يوضح كل منها كيفية التثبيت وما يمكن توقعه.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## إعداد الخطافات لـ Claude Code
|
|
12
|
-
|
|
13
|
-
يتكامل Failproof AI مع Claude Code عبر [نظام الخطافات الخاص به](https://docs.anthropic.com/en/docs/claude-code/hooks). عند تشغيل `failproofai policies --install`، يسجل أوامر الخطافات في `settings.json` الخاص بـ Claude Code والتي تعمل عند كل استدعاء أداة.
|
|
14
|
-
|
|
15
|
-
<Steps>
|
|
16
|
-
<Step title="تثبيت failproofai">
|
|
17
|
-
```bash
|
|
18
|
-
npm install -g failproofai
|
|
19
|
-
```
|
|
20
|
-
</Step>
|
|
21
|
-
<Step title="تفعيل جميع السياسات المدمجة">
|
|
22
|
-
```bash
|
|
23
|
-
failproofai policies --install
|
|
24
|
-
```
|
|
25
|
-
</Step>
|
|
26
|
-
<Step title="التحقق من تسجيل الخطافات">
|
|
27
|
-
```bash
|
|
28
|
-
cat ~/.claude/settings.json | grep failproofai
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
يجب أن تشاهد إدخالات خطافات لأحداث `PreToolUse` و `PostToolUse` و `Notification` و `Stop`.
|
|
32
|
-
</Step>
|
|
33
|
-
<Step title="تشغيل Claude Code">
|
|
34
|
-
```bash
|
|
35
|
-
claude
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
تعمل السياسات الآن تلقائياً عند كل استدعاء أداة. جرب طلب Claude لتشغيل `sudo rm -rf /` - سيتم حظره.
|
|
39
|
-
</Step>
|
|
40
|
-
</Steps>
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## إعداد الخطافات لـ Agents SDK
|
|
45
|
-
|
|
46
|
-
إذا كنت تبني باستخدام [Agents SDK](https://docs.anthropic.com/en/docs/agents-sdk)، يمكنك استخدام نفس نظام الخطافات برمجياً.
|
|
47
|
-
|
|
48
|
-
<Steps>
|
|
49
|
-
<Step title="تثبيت failproofai في مشروعك">
|
|
50
|
-
```bash
|
|
51
|
-
npm install failproofai
|
|
52
|
-
```
|
|
53
|
-
</Step>
|
|
54
|
-
<Step title="تكوين الخطافات في الوكيل الخاص بك">
|
|
55
|
-
مرر أوامر الخطافات عند إنشاء عملية الوكيل الخاص بك. تعمل الخطافات بنفس الطريقة كما في Claude Code - عبر JSON في stdin/stdout:
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
failproofai --hook PreToolUse # يُستدعى قبل كل أداة
|
|
59
|
-
failproofai --hook PostToolUse # يُستدعى بعد كل أداة
|
|
60
|
-
```
|
|
61
|
-
</Step>
|
|
62
|
-
<Step title="كتابة سياسة مخصصة للوكيل الخاص بك">
|
|
63
|
-
```javascript
|
|
64
|
-
import { customPolicies, allow, deny } from "failproofai";
|
|
65
|
-
|
|
66
|
-
customPolicies.add({
|
|
67
|
-
name: "limit-to-project-dir",
|
|
68
|
-
description: "Keep the agent inside the project directory",
|
|
69
|
-
match: { events: ["PreToolUse"] },
|
|
70
|
-
fn: async (ctx) => {
|
|
71
|
-
const path = String(ctx.toolInput?.file_path ?? "");
|
|
72
|
-
if (path.startsWith("/") && !path.startsWith(ctx.session?.cwd ?? "")) {
|
|
73
|
-
return deny("Agent is restricted to the project directory");
|
|
74
|
-
}
|
|
75
|
-
return allow();
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
```
|
|
79
|
-
</Step>
|
|
80
|
-
<Step title="تثبيت السياسة المخصصة">
|
|
81
|
-
```bash
|
|
82
|
-
failproofai policies --install --custom ./my-agent-policies.js
|
|
83
|
-
```
|
|
84
|
-
</Step>
|
|
85
|
-
</Steps>
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## حظر الأوامر المدمرة
|
|
90
|
-
|
|
91
|
-
الإعداد الأكثر شيوعاً - منع الوكلاء من إلحاق ضرر لا يمكن التراجع عنه.
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
failproofai policies --install block-sudo block-rm-rf block-force-push block-curl-pipe-sh
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
ما يفعله:
|
|
98
|
-
- `block-sudo` - يحظر جميع أوامر `sudo`
|
|
99
|
-
- `block-rm-rf` - يحظر حذف الملفات بشكل متكرر
|
|
100
|
-
- `block-force-push` - يحظر `git push --force`
|
|
101
|
-
- `block-curl-pipe-sh` - يحظر أنابيب البرامج النصية البعيدة إلى shell
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## منع تسرب الأسرار
|
|
106
|
-
|
|
107
|
-
منع الوكلاء من رؤية أو تسريب بيانات الاعتماد في مخرجات الأداة.
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
failproofai policies --install sanitize-api-keys sanitize-jwt sanitize-connection-strings sanitize-bearer-tokens
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
تعمل هذه السياسات على `PostToolUse` - بعد تشغيل أداة، تقوم بتنظيف المخرجات قبل أن يراها الوكيل.
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## الحصول على تنبيهات Slack عندما يحتاج الوكلاء إلى الاهتمام
|
|
118
|
-
|
|
119
|
-
استخدم خطاف الإشعار لإعادة توجيه تنبيهات الخمول إلى Slack.
|
|
120
|
-
|
|
121
|
-
```javascript
|
|
122
|
-
import { customPolicies, allow, instruct } from "failproofai";
|
|
123
|
-
|
|
124
|
-
customPolicies.add({
|
|
125
|
-
name: "slack-on-idle",
|
|
126
|
-
description: "Alert Slack when the agent is waiting for input",
|
|
127
|
-
match: { events: ["Notification"] },
|
|
128
|
-
fn: async (ctx) => {
|
|
129
|
-
const webhookUrl = process.env.SLACK_WEBHOOK_URL;
|
|
130
|
-
if (!webhookUrl) return allow();
|
|
131
|
-
|
|
132
|
-
const message = String(ctx.payload?.message ?? "Agent is waiting");
|
|
133
|
-
const project = ctx.session?.cwd ?? "unknown";
|
|
134
|
-
|
|
135
|
-
try {
|
|
136
|
-
await fetch(webhookUrl, {
|
|
137
|
-
method: "POST",
|
|
138
|
-
headers: { "Content-Type": "application/json" },
|
|
139
|
-
body: JSON.stringify({
|
|
140
|
-
text: `*${message}*\nProject: \`${project}\``,
|
|
141
|
-
}),
|
|
142
|
-
signal: AbortSignal.timeout(5000),
|
|
143
|
-
});
|
|
144
|
-
} catch {
|
|
145
|
-
// never block the agent if Slack is unreachable
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return allow();
|
|
149
|
-
},
|
|
150
|
-
});
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
تثبيتها:
|
|
154
|
-
|
|
155
|
-
```bash
|
|
156
|
-
SLACK_WEBHOOK_URL=https://hooks.slack.com/... failproofai policies --install --custom ./slack-alerts.js
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## إبقاء الوكلاء على فرع معين
|
|
162
|
-
|
|
163
|
-
منع الوكلاء من تبديل الفروع أو الدفع إلى الفروع المحمية.
|
|
164
|
-
|
|
165
|
-
```javascript
|
|
166
|
-
import { customPolicies, allow, deny } from "failproofai";
|
|
167
|
-
|
|
168
|
-
customPolicies.add({
|
|
169
|
-
name: "stay-on-branch",
|
|
170
|
-
description: "Prevent the agent from checking out other branches",
|
|
171
|
-
match: { events: ["PreToolUse"] },
|
|
172
|
-
fn: async (ctx) => {
|
|
173
|
-
if (ctx.toolName !== "Bash") return allow();
|
|
174
|
-
const cmd = String(ctx.toolInput?.command ?? "");
|
|
175
|
-
if (/git\s+checkout\s+(?!-b)/.test(cmd)) {
|
|
176
|
-
return deny("Stay on the current branch. Create a new branch with -b if needed.");
|
|
177
|
-
}
|
|
178
|
-
return allow();
|
|
179
|
-
},
|
|
180
|
-
});
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## اشتراط الاختبارات قبل الالتزام
|
|
186
|
-
|
|
187
|
-
تذكير الوكلاء بتشغيل الاختبارات قبل الالتزام.
|
|
188
|
-
|
|
189
|
-
```javascript
|
|
190
|
-
import { customPolicies, allow, instruct } from "failproofai";
|
|
191
|
-
|
|
192
|
-
customPolicies.add({
|
|
193
|
-
name: "test-before-commit",
|
|
194
|
-
description: "Remind the agent to run tests before committing",
|
|
195
|
-
match: { events: ["PreToolUse"] },
|
|
196
|
-
fn: async (ctx) => {
|
|
197
|
-
if (ctx.toolName !== "Bash") return allow();
|
|
198
|
-
const cmd = String(ctx.toolInput?.command ?? "");
|
|
199
|
-
if (/git\s+commit/.test(cmd)) {
|
|
200
|
-
return instruct("Run tests before committing. Use `npm test` or `bun test` first.");
|
|
201
|
-
}
|
|
202
|
-
return allow();
|
|
203
|
-
},
|
|
204
|
-
});
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
## تأمين مستودع الإنتاج
|
|
210
|
-
|
|
211
|
-
التزم بإعداد على مستوى المشروع حتى يحصل كل مطور في فريقك على نفس السياسات.
|
|
212
|
-
|
|
213
|
-
أنشئ `.failproofai/policies-config.json` في مستودعك:
|
|
214
|
-
|
|
215
|
-
```json
|
|
216
|
-
{
|
|
217
|
-
"enabledPolicies": [
|
|
218
|
-
"block-sudo",
|
|
219
|
-
"block-rm-rf",
|
|
220
|
-
"block-force-push",
|
|
221
|
-
"block-push-master",
|
|
222
|
-
"block-env-files",
|
|
223
|
-
"sanitize-api-keys",
|
|
224
|
-
"sanitize-jwt"
|
|
225
|
-
],
|
|
226
|
-
"policyParams": {
|
|
227
|
-
"block-push-master": {
|
|
228
|
-
"protectedBranches": ["main", "release", "production"]
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
ثم التزم به:
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
git add .failproofai/policies-config.json
|
|
238
|
-
git commit -m "Add failproofai team policies"
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
سيحصل كل عضو في الفريق الذي لديه failproofai مثبت تلقائياً على هذه القواعد.
|
|
242
|
-
|
|
243
|
-
---
|
|
244
|
-
|
|
245
|
-
## بناء معيار جودة على مستوى المنظمة باستخدام سياسات الاتفاقية
|
|
246
|
-
|
|
247
|
-
الإعداد الأكثر تأثيراً: التزم بـ `.failproofai/policies/` في مستودعك مع سياسات مخصصة لمشروعك. يحصل كل عضو في الفريق عليها تلقائياً - بدون أوامر تثبيت، بدون تغييرات إعدادات.
|
|
248
|
-
|
|
249
|
-
<Steps>
|
|
250
|
-
<Step title="إنشاء المجلد وإضافة السياسات">
|
|
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
|
-
// Enforce your team's preferred package manager
|
|
260
|
-
// (or enable the built-in prefer-package-manager policy instead)
|
|
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("Use bun instead of npm.");
|
|
268
|
-
return allow();
|
|
269
|
-
},
|
|
270
|
-
});
|
|
271
|
-
|
|
272
|
-
// Remind the agent to run tests before committing
|
|
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("Run tests before committing.");
|
|
280
|
-
}
|
|
281
|
-
return allow();
|
|
282
|
-
},
|
|
283
|
-
});
|
|
284
|
-
```
|
|
285
|
-
</Step>
|
|
286
|
-
<Step title="الالتزام بـ git">
|
|
287
|
-
```bash
|
|
288
|
-
git add .failproofai/policies/
|
|
289
|
-
git commit -m "Add team quality policies"
|
|
290
|
-
```
|
|
291
|
-
</Step>
|
|
292
|
-
<Step title="الاستمرار في التحسين">
|
|
293
|
-
عندما يواجه فريقك أنماط فشل جديدة، أضف سياسات وادفع. يحصل الجميع على التحديث عند `git pull` التالي. تصبح هذه السياسات معيار جودة حي ينمو مع فريقك.
|
|
294
|
-
</Step>
|
|
295
|
-
</Steps>
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
## أمثلة إضافية
|
|
300
|
-
|
|
301
|
-
يحتوي المجلد [`examples/`](https://github.com/exospherehost/failproofai/tree/main/examples) في المستودع على:
|
|
302
|
-
|
|
303
|
-
| الملف | ما يوضحه |
|
|
304
|
-
|------|----------|
|
|
305
|
-
| `policies-basic.js` | سياسات للمبتدئين - حظر كتابات الإنتاج وفرض الدفع والبرامج النصية المأنوبة |
|
|
306
|
-
| `policies-notification.js` | تنبيهات Slack لإشعارات الخمول ونهاية الجلسة |
|
|
307
|
-
| `policies-advanced/index.js` | الاستيرادات الانتقالية والخطافات غير المتزامنة وتنظيف مخرجات PostToolUse ومعالجة حدث Stop |
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
---
|
|
3
|
-
title: "للوكلاء"
|
|
4
|
-
description: "أضف معرفة Failproof AI إلى وكيلك البرمجي بأمر واحد. يعمل مع Claude Code و Cursor و Windsurf وغيرها."
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
أضف مرجع Failproof AI الكامل إلى وكيلك البرمجي بأمر واحد. يعمل مع Claude Code و Cursor و Windsurf وأي وكيل آخر يدعم المهارات.
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
npx skills add https://docs.befailproof.ai
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
يكتشف `npx skills` الوكلاء المثبتة لديك ويضيف المهارة بالصيغة الصحيحة لكل واحد منها تلقائياً.
|
|
14
|
-
|
|
15
|
-
## ما تغطيه المهارة
|
|
16
|
-
|
|
17
|
-
| المجال | ما يشمل |
|
|
18
|
-
|------|----------------|
|
|
19
|
-
| السياسات | أسماء السياسات المدمجة وأنواع الأحداث والمعاملات والتفعيل/التعطيل |
|
|
20
|
-
| السياسات المخصصة | `customPolicies.add()`وفلاتر المطابقة و API `allow`/`deny`/`instruct` |
|
|
21
|
-
| كائن السياق | `ctx.eventType` و `ctx.toolName` و `ctx.toolInput` و `ctx.session` |
|
|
22
|
-
| الإعدادات | بنية `policies-config.json` ودمج النطاق و `policyParams` |
|
|
23
|
-
| واجهة سطر الأوامر | `failproofai policies --install` و `--uninstall` و `--custom` والنطاقات |
|
|
24
|
-
| لوحة التحكم | عارض الجلسات ونشاط السياسة والمتغيرات البيئية |
|
|
25
|
-
| البنية المعمارية | تدفق معالج الخطاف وأكواد الخروج و عقد stdin/stdout |
|
|
26
|
-
|
|
27
|
-
## هل المهارة كاملة؟
|
|
28
|
-
|
|
29
|
-
يولد Mintlify `llms.txt` من جميع الصفحات في التنقل. توثيقات Failproof AI تغطي الواجهة البرمجية الكاملة - كل سياسة وخيار ومثال مضمن. إذا وجدت شيء مفقود، فالمصدر موجود في `https://docs.befailproof.ai/llms-full.txt`.
|
|
30
|
-
|
|
31
|
-
للحصول على سياق موجه، قم بالربط مباشرة إلى صفحة محددة:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
# فقط API السياسات المخصصة
|
|
35
|
-
npx skills add https://docs.befailproof.ai/custom-policies
|
|
36
|
-
|
|
37
|
-
# فقط السياسات المدمجة
|
|
38
|
-
npx skills add https://docs.befailproof.ai/built-in-policies
|
|
39
|
-
```
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
---
|
|
3
|
-
title: البدء السريع
|
|
4
|
-
description: "ثبّت failproofai، فعّل السياسات، واترك وكلاءك يعملون بموثوقية"
|
|
5
|
-
icon: rocket
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## المتطلبات
|
|
9
|
-
|
|
10
|
-
- **Node.js** >= 20.9.0
|
|
11
|
-
- **Bun** >= 1.3.0 (اختياري - مطلوب فقط للبناء من المصدر)
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## التثبيت
|
|
16
|
-
|
|
17
|
-
<CodeGroup>
|
|
18
|
-
|
|
19
|
-
```bash npm
|
|
20
|
-
npm install -g failproofai
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
```bash bun
|
|
24
|
-
bun add -g failproofai
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
</CodeGroup>
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## البدء السريع
|
|
32
|
-
|
|
33
|
-
<Steps>
|
|
34
|
-
<Step title="فعّل السياسات">
|
|
35
|
-
السياسات هي قواعد تعمل قبل وبعد كل استدعاء أداة للوكيل. تحتفظ بالأوامر التدميرية، تسرب الأسرار، ومشاكل الأعطال الأخرى قبل أن تسبب ضررًا.
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
failproofai policies --install
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
هذا يكتب إدخالات hook في `settings.json` الخاص بـ Claude Code. يمكنك أيضًا التثبيت لمشروع واحد أو اختيار سياسات محددة:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
failproofai policies --install --scope project
|
|
45
|
-
failproofai policies --install block-sudo block-rm-rf sanitize-api-keys
|
|
46
|
-
```
|
|
47
|
-
</Step>
|
|
48
|
-
<Step title="تحقق">
|
|
49
|
-
```bash
|
|
50
|
-
failproofai policies
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
يعرض كل سياسة، وما إذا كانت مفعلة، وأي معاملات مكونة.
|
|
54
|
-
</Step>
|
|
55
|
-
<Step title="شغّل لوحة المعلومات">
|
|
56
|
-
```bash
|
|
57
|
-
failproofai
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
يفتح لوحة معلومات محلية في `http://localhost:8020` حيث يمكنك استعراض الجلسات، فحص استدعاءات الأدوات، وإدارة السياسات.
|
|
61
|
-
</Step>
|
|
62
|
-
<Step title="شغّل وكيلك">
|
|
63
|
-
ابدأ Claude Code كالمعتاد. إذا حاول الوكيل فعل شيء محفوف بالمخاطر، يقطعه failproofai تلقائيًا. اتركه يعمل بلا مراقبة واستعرض ما حدث في لوحة المعلومات.
|
|
64
|
-
</Step>
|
|
65
|
-
</Steps>
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## كيف تعمل السياسات
|
|
70
|
-
|
|
71
|
-
في كل مرة يشغل الوكيل أداة، يستدعي Claude Code failproofai كعملية فرعية:
|
|
72
|
-
|
|
73
|
-
```text
|
|
74
|
-
Claude Code → failproofai --hook PreToolUse → يقرأ JSON من stdin
|
|
75
|
-
يقيّم السياسات
|
|
76
|
-
يكتب القرار إلى stdout
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
تُرجع كل سياسة أحد ثلاثة قرارات:
|
|
80
|
-
|
|
81
|
-
- **allow** - يمضي الوكيل قدمًا بشكل طبيعي
|
|
82
|
-
- **deny** - تُحجب الإجراء، يُخبر الوكيل لماذا
|
|
83
|
-
- **instruct** - يُضاف سياق إضافي إلى موجه الوكيل
|
|
84
|
-
|
|
85
|
-
<Note>
|
|
86
|
-
السياسات تعمل في عمليتك المحلية. لا يُرسل شيء إلى خدمة بعيدة.
|
|
87
|
-
</Note>
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## أعد إعداد سياسات الفريق باستخدام السياسات المستندة إلى الاتفاقية
|
|
92
|
-
|
|
93
|
-
أسرع طريقة لتأسيس معايير الجودة عبر فريقك هي اتفاقية `.failproofai/policies/`. ضع ملفات السياسات في هذا الدليل وسيتم تحميلها تلقائيًا — بلا أعلام، بلا تغييرات في الإعدادات، بلا أوامر تثبيت.
|
|
94
|
-
|
|
95
|
-
<Steps>
|
|
96
|
-
<Step title="أنشئ دليل السياسات">
|
|
97
|
-
```bash
|
|
98
|
-
mkdir -p .failproofai/policies
|
|
99
|
-
```
|
|
100
|
-
</Step>
|
|
101
|
-
<Step title="أضف ملفات السياسات">
|
|
102
|
-
انسخ الأمثلة الأولية أو اكتب ملفك الخاص:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
cp node_modules/failproofai/examples/convention-policies/*.mjs .failproofai/policies/
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
أو أنشئ واحدة جديدة:
|
|
109
|
-
|
|
110
|
-
```js
|
|
111
|
-
// .failproofai/policies/team-policies.mjs
|
|
112
|
-
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
113
|
-
|
|
114
|
-
customPolicies.add({
|
|
115
|
-
name: "test-before-commit",
|
|
116
|
-
match: { events: ["PreToolUse"] },
|
|
117
|
-
fn: async (ctx) => {
|
|
118
|
-
if (ctx.toolName !== "Bash") return allow();
|
|
119
|
-
if (/git\s+commit/.test(ctx.toolInput?.command ?? "")) {
|
|
120
|
-
return instruct("Run tests before committing.");
|
|
121
|
-
}
|
|
122
|
-
return allow();
|
|
123
|
-
},
|
|
124
|
-
});
|
|
125
|
-
```
|
|
126
|
-
</Step>
|
|
127
|
-
<Step title="أسقط في git">
|
|
128
|
-
```bash
|
|
129
|
-
git add .failproofai/policies/
|
|
130
|
-
git commit -m "Add team quality policies"
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
كل عضو في الفريق لديه failproofai مثبت يلتقط هذه السياسات تلقائيًا. لا حاجة إلى إعداد لكل مطور.
|
|
134
|
-
</Step>
|
|
135
|
-
</Steps>
|
|
136
|
-
|
|
137
|
-
<Tip>
|
|
138
|
-
أسقط `.failproofai/policies/` في مستودع ملفك بحيث يشاركها الفريق بأكمله بنفس المعايير. مع اكتشاف فريقك لأنماط فشل جديدة، أضف السياسات وادفع — يحصل الجميع على التحديث في `git pull` التالي لهم. بمرور الوقت، تصبح هذه السياسات معيار جودة حي يستمر في التحسن.
|
|
139
|
-
</Tip>
|
|
140
|
-
|
|
141
|
-
---
|
|
142
|
-
|
|
143
|
-
## تخزين البيانات
|
|
144
|
-
|
|
145
|
-
جميع الإعدادات والسجلات تبقى على جهازك:
|
|
146
|
-
|
|
147
|
-
| المسار | ما يتم تخزينه |
|
|
148
|
-
|------|----------------|
|
|
149
|
-
| `~/.failproofai/policies-config.json` | إعدادات السياسة العام |
|
|
150
|
-
| `~/.failproofai/hook-activity.jsonl` | سجل تنفيذ Hook |
|
|
151
|
-
| `~/.failproofai/hook.log` | سجل التصحيح لأخطاء Hook المخصصة |
|
|
152
|
-
| `.failproofai/policies-config.json` | إعدادات لكل مشروع (مسجل) |
|
|
153
|
-
| `.failproofai/policies-config.local.json` | تجاوزات شخصية (مُتجاهل) |
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## الإلغاء
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
failproofai policies --uninstall
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
يزيل إدخالات hook من `~/.claude/settings.json`. ملفات الإعدادات في `~/.failproofai/` تُحفظ.
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## الخطوات التالية
|
|
168
|
-
|
|
169
|
-
<CardGroup cols={2}>
|
|
170
|
-
|
|
171
|
-
<Card title="الإعدادات" icon="gear" href="/ar/configuration">
|
|
172
|
-
النطاقات وتنسيق ملف الإعدادات
|
|
173
|
-
</Card>
|
|
174
|
-
|
|
175
|
-
<Card title="السياسات المدمجة" icon="shield" href="/ar/built-in-policies">
|
|
176
|
-
جميع السياسات الـ 26 مع المعاملات
|
|
177
|
-
</Card>
|
|
178
|
-
|
|
179
|
-
<Card title="السياسات المخصصة" icon="code" href="/ar/custom-policies">
|
|
180
|
-
اكتب سياساتك الخاصة في JavaScript
|
|
181
|
-
</Card>
|
|
182
|
-
|
|
183
|
-
<Card title="مراقب الوكيل" icon="chart-line" href="/ar/dashboard">
|
|
184
|
-
راقب الجلسات واستعرض نشاط السياسات
|
|
185
|
-
</Card>
|
|
186
|
-
|
|
187
|
-
</CardGroup>
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
---
|
|
3
|
-
title: Failproof AI
|
|
4
|
-
description: "إدارة الخطافات والسياسات التي تحافظ على موثوقية وكالاتك الذكية وتشغيلها بشكل مستقل"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
[](https://www.npmjs.com/package/failproofai)
|
|
8
|
-
|
|
9
|
-
خطافات وسياسات تحافظ على موثوقية وكلاءك الذكيين وتشغيلهم بشكل مستقل - لـ **Claude Code** و **Agents SDK**.
|
|
10
|
-
|
|
11
|
-
تفشل الوكلاء الذكيون بطرق متوقعة. فهم يقومون بتشغيل أوامر مدمرة، ويسربون الأسرار، ويبتعدون عن المهمة المطلوبة، ويعلقون في حلقات، أو يدفعون مباشرة إلى الفرع الرئيسي. إذا تركت دون مراقبة، فإن الأخطاء الصغيرة تتراكم وتسبب مشاكل كبيرة.
|
|
12
|
-
|
|
13
|
-
يحل Failproof AI هذه المشكلة باستخدام **السياسات** - قواعد تتكامل مع كل استدعاء أداة للوكيل ويمكنها **اكتشاف الأخطاء** و**تخفيفها** (الحجب والتعليمات والتنظيف) و**تنبيهك** عندما تحتاج شيء ما إلى الانتباه. لوحة معلومات محلية تتيح لك مراجعة كل شيء بعد الانتهاء.
|
|
14
|
-
|
|
15
|
-
كل شيء يعمل محليًا. لا تغادر البيانات جهازك.
|
|
16
|
-
|
|
17
|
-
## ابدأ الآن
|
|
18
|
-
|
|
19
|
-
<CardGroup cols={2}>
|
|
20
|
-
|
|
21
|
-
<Card title="26 سياسة مدمجة" icon="shield" href="/ar/built-in-policies">
|
|
22
|
-
احجب الأوامر المدمرة، ومنع تسرب الأسرار، وأبقِ الوكلاء داخل حدود المشروع، والمزيد - خارج الصندوق.
|
|
23
|
-
</Card>
|
|
24
|
-
|
|
25
|
-
<Card title="سياسات مخصصة" icon="code" href="/ar/custom-policies">
|
|
26
|
-
اكتب قواعدك الخاصة في JavaScript باستخدام واجهة برمجية بسيطة للسماح أو الرفض أو التعليمات.
|
|
27
|
-
</Card>
|
|
28
|
-
|
|
29
|
-
<Card title="مراقب الوكيل" icon="chart-line" href="/ar/dashboard">
|
|
30
|
-
انظر إلى ما فعله وكلاؤك أثناء غيابك. استعرض الجلسات، وفحص استدعاءات الأدوات، وراجع مكان تفعيل السياسات.
|
|
31
|
-
</Card>
|
|
32
|
-
|
|
33
|
-
<Card title="تكوين سهل" icon="gear" href="/ar/configuration">
|
|
34
|
-
ضبط أي سياسة بدون كود. قم بتعيين قوائم السماح والفروع المحمية أو الحدود لكل مشروع أو عام.
|
|
35
|
-
</Card>
|
|
36
|
-
|
|
37
|
-
</CardGroup>
|
|
38
|
-
|
|
39
|
-
## البدء السريع
|
|
40
|
-
|
|
41
|
-
<CodeGroup>
|
|
42
|
-
|
|
43
|
-
```bash npm
|
|
44
|
-
npm install -g failproofai
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
```bash bun
|
|
48
|
-
bun add -g failproofai
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
</CodeGroup>
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
failproofai policies --install # enable policies
|
|
55
|
-
failproofai # launch the dashboard
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
انظر إلى دليل [البدء السريع](/ar/getting-started) للحصول على الشرح الكامل.
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: اسماء الحزم البديلة
|
|
3
|
-
description: "الأسماء البديلة المسجلة لمنع الأخطاء الإملائية وكيفية عملها"
|
|
4
|
-
icon: copy
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## الحزمة الرسمية
|
|
8
|
-
|
|
9
|
-
حزمة npm الأساسية هي **`failproofai`**:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install -g failproofai
|
|
13
|
-
# أو
|
|
14
|
-
bun add -g failproofai
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## لماذا نملك أسماء البدائل
|
|
20
|
-
|
|
21
|
-
تسجيل النطاقات المشابهة (Typosquatting) هو هجوم شائع على سلسلة التوريد حيث يقوم عامل خبيث بتسجيل اسم حزمة يختلف بضغطة زر واحدة عن حزمة شهيرة. المستخدمون الذين يخطئون في كتابة أمر التثبيت ينتهي بهم الحال لتشغيل كود يتحكم به المهاجم مع وصول كامل للنظام - وهذا هو النوع من التهديدات التي تم تصميم Failproof AI للدفاع ضده.
|
|
22
|
-
|
|
23
|
-
لإزالة هذا السطح الهجومي، **نملك مسبقاً جميع الأخطاء الإملائية الشائعة والمتغيرات الصيغية** لـ `failproofai` على npm. لا يمكن لأي طرف ثالث تسجيل أي من هذه الأسماء. كل واحد منها هو وكيل بسيط يثبت الحزمة الحقيقية ويفوّض إليها.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## الأسماء البديلة المسجلة
|
|
28
|
-
|
|
29
|
-
**متغيرات الصيغة** - طرق مختلفة لكتابة "failproof ai":
|
|
30
|
-
|
|
31
|
-
| الحزمة | الحالة |
|
|
32
|
-
|---------|--------|
|
|
33
|
-
| `failproof` | ✅ منشورة |
|
|
34
|
-
| `failproof-ai` | ⏳ قيد انتظار دعم npm |
|
|
35
|
-
| `fail-proof-ai` | ⏳ قيد انتظار دعم npm |
|
|
36
|
-
| `failproof_ai` | ⏳ قيد انتظار دعم npm |
|
|
37
|
-
| `fail_proof_ai` | ⏳ قيد انتظار دعم npm |
|
|
38
|
-
| `fail-proofai` | ⏳ قيد انتظار دعم npm |
|
|
39
|
-
|
|
40
|
-
**أخطاء `failprof*`** - حرف `o` ناقص من "proof":
|
|
41
|
-
|
|
42
|
-
| الحزمة | الحالة |
|
|
43
|
-
|---------|--------|
|
|
44
|
-
| `failprof` | ✅ منشورة |
|
|
45
|
-
| `failprof-ai` | ✅ منشورة |
|
|
46
|
-
| `failprofai` | ⏳ قيد انتظار دعم npm |
|
|
47
|
-
| `fail-prof-ai` | ⏳ قيد انتظار دعم npm |
|
|
48
|
-
| `failprof_ai` | ⏳ قيد انتظار دعم npm |
|
|
49
|
-
|
|
50
|
-
**أخطاء `faliproof*`** - الأحرف `a` و `i` معكوسة:
|
|
51
|
-
|
|
52
|
-
| الحزمة | الحالة |
|
|
53
|
-
|---------|--------|
|
|
54
|
-
| `faliproof` | ✅ منشورة |
|
|
55
|
-
| `faliproof-ai` | ✅ منشورة |
|
|
56
|
-
| `faliproofai` | ⏳ قيد انتظار دعم npm |
|
|
57
|
-
|
|
58
|
-
> **لماذا قيد الانتظار؟** سياسة منع البريد العشوائي في npm تحظر الأسماء التي تتطابق مع حزمة موجودة بعد إزالة الترقيم وإجراء فحوصات التشابه. لقد تواصلنا مع فريق دعم npm لحجز هذه الأسماء لأغراض منع التسجيل غير المشروع. سيتم تفعيلها بمجرد الموافقة عليها.
|
|
59
|
-
|
|
60
|
-
يمكنك التحقق من أن أي اسم بديل منشور مملوك لنا:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
npm info failproof
|
|
64
|
-
# ابحث عن: "ExosphereHost Inc." في حقل المشرفين
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## كيفية عمل الأسماء البديلة
|
|
70
|
-
|
|
71
|
-
كل حزمة بديلة:
|
|
72
|
-
|
|
73
|
-
1. تضع `failproofai` كتبعية - بحيث تعمل الحزمة الحقيقية (بما في ذلك خطاف `postinstall` الخاص بها) عند التثبيت
|
|
74
|
-
2. تعرض ملف تنفيذي يطابق اسمها الخاص (مثل `failprof-ai`) يفوّض جميع المعاملات إلى ملف `failproofai` التنفيذي
|
|
75
|
-
|
|
76
|
-
الوكيل هو نص Node بسيط من سطرين؛ لا توجد منطقية، لا استدعاءات شبكية، ولا جمع بيانات بخلاف ما تقوم به `failproofai` بنفسها.
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## إذا وجدت اسماً فاتنا
|
|
81
|
-
|
|
82
|
-
افتح مشكلة على [exospherehost/failproofai](https://github.com/exospherehost/failproofai/issues) وسنقوم بتسجيلها.
|