failproofai 0.0.6-beta.2 → 0.0.6-beta.3
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 +1 -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 +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
- 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 +10 -10
- 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 +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- 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]__05akje6._.js → [root-of-the-server]__096k.db._.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]__0i5kvry._.js → [root-of-the-server]__0kyh86x._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +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/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/{1052sguyd-.ka.js → 0-dm_9a6nsc2l.js} +1 -1
- package/.next/standalone/.next/static/chunks/{05j1px0r8yzh6.js → 01pmw1-asbek~.js} +2 -2
- package/.next/standalone/.next/static/chunks/{14cl9poem30dq.js → 051m32nx~n5yr.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0badv41uxa56..js → 0a-yctdwn368y.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0xpl.oscrakvx.js → 0l-mu4okl-cj1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{00j0rr7rh8ef8.js → 0mazj-p-~2kc6.js} +1 -1
- package/.next/standalone/.next/static/chunks/0qakntsrpc~1j.js +6 -0
- package/.next/standalone/.next/static/chunks/{0npb~873.wvg3.js → 156zca6aewyr-.js} +1 -1
- package/.next/standalone/CHANGELOG.md +7 -0
- package/.next/standalone/bin/failproofai.mjs +91 -4
- package/.next/standalone/dist/cli.mjs +1155 -54
- package/.next/standalone/docs/ar/built-in-policies.mdx +118 -118
- package/.next/standalone/docs/built-in-policies.mdx +2 -2
- package/.next/standalone/docs/de/built-in-policies.mdx +48 -48
- package/.next/standalone/docs/es/built-in-policies.mdx +82 -82
- package/.next/standalone/docs/fr/built-in-policies.mdx +72 -72
- package/.next/standalone/docs/he/built-in-policies.mdx +129 -128
- package/.next/standalone/docs/hi/built-in-policies.mdx +178 -182
- package/.next/standalone/docs/it/built-in-policies.mdx +64 -64
- package/.next/standalone/docs/ja/built-in-policies.mdx +128 -128
- package/.next/standalone/docs/ko/built-in-policies.mdx +111 -111
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +65 -65
- package/.next/standalone/docs/ru/built-in-policies.mdx +72 -72
- package/.next/standalone/docs/tr/built-in-policies.mdx +99 -99
- package/.next/standalone/docs/vi/built-in-policies.mdx +69 -72
- package/.next/standalone/docs/zh/built-in-policies.mdx +76 -78
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/auth/login.ts +104 -0
- package/.next/standalone/src/auth/logout.ts +50 -0
- package/.next/standalone/src/auth/token-store.ts +64 -0
- package/.next/standalone/src/hooks/builtin-policies.ts +22 -20
- package/.next/standalone/src/hooks/handler.ts +35 -15
- package/.next/standalone/src/relay/daemon.ts +362 -0
- package/.next/standalone/src/relay/pid.ts +76 -0
- package/.next/standalone/src/relay/queue.ts +225 -0
- package/bin/failproofai.mjs +91 -4
- package/dist/cli.mjs +1155 -54
- package/package.json +1 -1
- 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/.next/static/chunks/0ijk_kek9_wyx.js +0 -6
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_ssgManifest.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: السياسات المدمجة
|
|
3
|
-
description: "جميع
|
|
3
|
+
description: "جميع 30 سياسة مدمجة تلتقط أنماط فشل الوكيل الشائعة"
|
|
4
4
|
icon: shield
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
يأتي failproofai مع 30 سياسة مدمجة
|
|
7
|
+
يأتي failproofai مع 30 سياسة مدمجة تلتقط أنماط فشل الوكيل الشائعة. تعمل كل سياسة على حدث خطاف معين واسم أداة محدد. تقبل تسع سياسات معاملات تسمح لك بضبط سلوكها دون كتابة أي كود. تفرض أربع سياسات سير عمل خط أنابيب commit → push → PR → CI قبل أن يتوقف Claude.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -12,47 +12,47 @@ icon: shield
|
|
|
12
12
|
|
|
13
13
|
يتم تجميع السياسات في فئات:
|
|
14
14
|
|
|
15
|
-
| الفئة | السياسات | نوع
|
|
16
|
-
|
|
17
|
-
| [الأوامر
|
|
18
|
-
| [الأسرار (
|
|
19
|
-
| [البيئة](
|
|
20
|
-
| [الوصول
|
|
15
|
+
| الفئة | السياسات | نوع الخطاف |
|
|
16
|
+
|-------|----------|-----------|
|
|
17
|
+
| [الأوامر الخطرة](#الأوامر-الخطرة) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
|
|
18
|
+
| [الأسرار (مُنظفات)](#الأسرار-مُنظفات) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
|
|
19
|
+
| [البيئة](#البيئة) | block-env-files, protect-env-vars | PreToolUse |
|
|
20
|
+
| [الوصول إلى الملفات](#الوصول-إلى-الملفات) | block-read-outside-cwd, block-secrets-write | PreToolUse |
|
|
21
21
|
| [Git](#git) | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
|
|
22
|
-
| [قاعدة البيانات](
|
|
23
|
-
| [
|
|
24
|
-
| [مديرو الحزم](
|
|
25
|
-
| [سير العمل](
|
|
22
|
+
| [قاعدة البيانات](#قاعدة-البيانات) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
|
|
23
|
+
| [تحذيرات](#تحذيرات) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
|
|
24
|
+
| [مديرو الحزم](#مديرو-الحزم) | prefer-package-manager | PreToolUse |
|
|
25
|
+
| [سير العمل](#سير-العمل) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
|
|
26
26
|
|
|
27
27
|
- **`block-`** — إيقاف الوكيل عن المتابعة.
|
|
28
28
|
- **`warn-`** — إعطاء الوكيل سياق إضافي حتى يتمكن من تصحيح نفسه.
|
|
29
|
-
- **`sanitize-`** — حذف البيانات الحساسة من
|
|
29
|
+
- **`sanitize-`** — حذف البيانات الحساسة من إخراج الأداة قبل أن يراها الوكيل.
|
|
30
30
|
- **`require-`** — حظر حدث Stop حتى يتم استيفاء الشروط.
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
34
|
<Tip>
|
|
35
|
-
كل سياسة
|
|
35
|
+
تدعم كل سياسة حقل اختياري `hint` في `policyParams`. يتم إلحاق التلميح برسالة deny أو instruct التي يراها Claude، مما يوفر إرشادات قابلة للتنفيذ دون تعديل كود السياسة. يعمل مع السياسات المدمجة والمخصصة وسياسات الاتفاقية. انظر [التكوين → hint](/ar/configuration#hint-cross-cutting) للتفاصيل.
|
|
36
36
|
</Tip>
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
40
|
-
## الأوامر
|
|
40
|
+
## الأوامر الخطرة
|
|
41
41
|
|
|
42
|
-
منع الوكلاء من تشغيل العمليات التي يصعب التراجع عنها أو التي قد
|
|
42
|
+
منع الوكلاء من تشغيل العمليات التي يصعب التراجع عنها أو التي قد تضر بنظام الاستضافة.
|
|
43
43
|
|
|
44
44
|
### `block-sudo`
|
|
45
45
|
|
|
46
46
|
**الحدث:** PreToolUse (Bash)
|
|
47
|
-
|
|
47
|
+
**الافتراضي:** ينكر أي أمر `sudo`.
|
|
48
48
|
|
|
49
|
-
يحظر الاستدعاءات التي تتضمن كلمة `sudo`. يتم مطابقة النمط على رموز الأوامر
|
|
49
|
+
يحظر الاستدعاءات التي تتضمن كلمة `sudo`. يتم مطابقة النمط على رموز الأوامر التي تم تحليلها، وليس السلسلة الخام، لمنع الالتفاف عن طريق حقن عامل قشرة.
|
|
50
50
|
|
|
51
51
|
**المعاملات:**
|
|
52
52
|
|
|
53
53
|
| المعامل | النوع | الافتراضي | الوصف |
|
|
54
|
-
|
|
55
|
-
| `allowPatterns` | `string[]` | `[]` | بادئات الأوامر الدقيقة المسموح بها. يتم مطابقة كل إدخال مقابل رموز argv
|
|
54
|
+
|--------|-------|----------|-------|
|
|
55
|
+
| `allowPatterns` | `string[]` | `[]` | بادئات الأوامر الدقيقة المسموح بها. يتم مطابقة كل إدخال مقابل رموز argv التي تم تحليلها. |
|
|
56
56
|
|
|
57
57
|
**مثال:**
|
|
58
58
|
|
|
@@ -66,10 +66,10 @@ icon: shield
|
|
|
66
66
|
}
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
مع هذا
|
|
69
|
+
مع هذا التكوين، يُسمح بـ `sudo systemctl status nginx`، لكن `sudo rm /etc/hosts` مرفوض.
|
|
70
70
|
|
|
71
71
|
<Note>
|
|
72
|
-
يتم مطابقة الأنماط مقابل الرموز
|
|
72
|
+
يتم مطابقة الأنماط مقابل الرموز التي تم تحليلها، وليس سلسلة الأوامر الخام. هذا يمنع الالتفاف عن طريق عوامل قشرة ملحقة (على سبيل المثال، `sudo systemctl status x; rm -rf /` لا يطابق `sudo systemctl status *`).
|
|
73
73
|
</Note>
|
|
74
74
|
|
|
75
75
|
---
|
|
@@ -77,13 +77,13 @@ icon: shield
|
|
|
77
77
|
### `block-rm-rf`
|
|
78
78
|
|
|
79
79
|
**الحدث:** PreToolUse (Bash)
|
|
80
|
-
|
|
80
|
+
**الافتراضي:** ينكر `rm -rf`، `rm -fr`، وأشكال الحذف العودية المماثلة.
|
|
81
81
|
|
|
82
82
|
**المعاملات:**
|
|
83
83
|
|
|
84
84
|
| المعامل | النوع | الافتراضي | الوصف |
|
|
85
|
-
|
|
86
|
-
| `allowPaths` | `string[]` | `[]` | المسارات الآمنة للحذف
|
|
85
|
+
|--------|-------|----------|-------|
|
|
86
|
+
| `allowPaths` | `string[]` | `[]` | المسارات الآمنة للحذف العودي (على سبيل المثال، `/tmp`). |
|
|
87
87
|
|
|
88
88
|
**مثال:**
|
|
89
89
|
|
|
@@ -102,43 +102,43 @@ icon: shield
|
|
|
102
102
|
### `block-curl-pipe-sh`
|
|
103
103
|
|
|
104
104
|
**الحدث:** PreToolUse (Bash)
|
|
105
|
-
|
|
105
|
+
**الافتراضي:** ينكر `curl <url> | bash`، `curl <url> | sh`، `wget <url> | bash`، وأنماط مماثلة.
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
لا توجد معاملات.
|
|
108
108
|
|
|
109
109
|
---
|
|
110
110
|
|
|
111
111
|
### `block-failproofai-commands`
|
|
112
112
|
|
|
113
113
|
**الحدث:** PreToolUse (Bash)
|
|
114
|
-
|
|
114
|
+
**الافتراضي:** ينكر الأوامر التي ستلغي أو تعطل failproofai نفسه (على سبيل المثال، `npm uninstall failproofai`، `failproofai policies --uninstall`).
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
لا توجد معاملات.
|
|
117
117
|
|
|
118
118
|
---
|
|
119
119
|
|
|
120
|
-
## الأسرار (
|
|
120
|
+
## الأسرار (مُنظفات)
|
|
121
121
|
|
|
122
|
-
منع الوكلاء من
|
|
122
|
+
منع الوكلاء من تسرب بيانات الاعتماد إلى السياق أو الإخراج. تعمل سياسات المُنظف على أحداث **PostToolUse**. عندما يقوم Claude بتشغيل أمر Bash أو قراءة ملف أو استدعاء أي أداة، تفحص هذه السياسات الإخراج قبل إرجاعه إلى Claude. إذا تم اكتشاف نمط سري، ترجع السياسة قرار إنكار يمنع تمرير الإخراج.
|
|
123
123
|
|
|
124
124
|
### `sanitize-jwt`
|
|
125
125
|
|
|
126
126
|
**الحدث:** PostToolUse (جميع الأدوات)
|
|
127
|
-
|
|
127
|
+
**الافتراضي:** تحرير رموز JWT (ثلاث مقاطع base64url مفصولة بـ `.`).
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
لا توجد معاملات.
|
|
130
130
|
|
|
131
131
|
---
|
|
132
132
|
|
|
133
133
|
### `sanitize-api-keys`
|
|
134
134
|
|
|
135
135
|
**الحدث:** PostToolUse (جميع الأدوات)
|
|
136
|
-
|
|
136
|
+
**الافتراضي:** تحرير صيغ مفاتيح API الشائعة: Anthropic (`sk-ant-`)، OpenAI (`sk-`)، GitHub PATs (`ghp_`)، مفاتيح الوصول AWS (`AKIA`)، مفاتيح Stripe (`sk_live_`، `sk_test_`)، ومفاتيح Google API (`AIza`).
|
|
137
137
|
|
|
138
138
|
**المعاملات:**
|
|
139
139
|
|
|
140
140
|
| المعامل | النوع | الافتراضي | الوصف |
|
|
141
|
-
|
|
141
|
+
|--------|-------|----------|-------|
|
|
142
142
|
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | أنماط regex إضافية يتم التعامل معها كأسرار. |
|
|
143
143
|
|
|
144
144
|
**مثال:**
|
|
@@ -161,67 +161,67 @@ icon: shield
|
|
|
161
161
|
### `sanitize-connection-strings`
|
|
162
162
|
|
|
163
163
|
**الحدث:** PostToolUse (جميع الأدوات)
|
|
164
|
-
|
|
164
|
+
**الافتراضي:** تحرير سلاسل اتصال قاعدة البيانات التي تحتوي على بيانات اعتماد مضمنة (على سبيل المثال، `postgresql://user:password@host/db`).
|
|
165
165
|
|
|
166
|
-
|
|
166
|
+
لا توجد معاملات.
|
|
167
167
|
|
|
168
168
|
---
|
|
169
169
|
|
|
170
170
|
### `sanitize-private-key-content`
|
|
171
171
|
|
|
172
172
|
**الحدث:** PostToolUse (جميع الأدوات)
|
|
173
|
-
|
|
173
|
+
**الافتراضي:** تحرير كتل PEM (`-----BEGIN PRIVATE KEY-----`، `-----BEGIN RSA PRIVATE KEY-----`، إلخ).
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
لا توجد معاملات.
|
|
176
176
|
|
|
177
177
|
---
|
|
178
178
|
|
|
179
179
|
### `sanitize-bearer-tokens`
|
|
180
180
|
|
|
181
181
|
**الحدث:** PostToolUse (جميع الأدوات)
|
|
182
|
-
|
|
182
|
+
**الافتراضي:** تحرير رؤوس `Authorization: Bearer <token>` حيث يكون الرمز 20 حرفًا أو أكثر.
|
|
183
183
|
|
|
184
|
-
|
|
184
|
+
لا توجد معاملات.
|
|
185
185
|
|
|
186
186
|
---
|
|
187
187
|
|
|
188
188
|
## البيئة
|
|
189
189
|
|
|
190
|
-
حماية
|
|
190
|
+
حماية تكوين البيئة الحساسة من أن يتم قراءتها أو كشفها من قبل الوكلاء.
|
|
191
191
|
|
|
192
192
|
### `block-env-files`
|
|
193
193
|
|
|
194
|
-
**الحدث:** PreToolUse (Bash
|
|
195
|
-
|
|
194
|
+
**الحدث:** PreToolUse (Bash, Read)
|
|
195
|
+
**الافتراضي:** ينكر قراءة ملفات `.env` عبر `cat .env` أو استدعاءات `Read` الأداة مع `.env` كمسار الملف، إلخ.
|
|
196
196
|
|
|
197
|
-
لا يحظر `.envrc` أو ملفات أخرى
|
|
197
|
+
لا يحظر `.envrc` أو ملفات أخرى مرتبطة بالبيئة - فقط الملفات المسماة بـ `.env` بالضبط.
|
|
198
198
|
|
|
199
|
-
|
|
199
|
+
لا توجد معاملات.
|
|
200
200
|
|
|
201
201
|
---
|
|
202
202
|
|
|
203
203
|
### `protect-env-vars`
|
|
204
204
|
|
|
205
205
|
**الحدث:** PreToolUse (Bash)
|
|
206
|
-
|
|
206
|
+
**الافتراضي:** ينكر الأوامر التي تطبع متغيرات البيئة: `printenv`، `env`، `echo $VAR`.
|
|
207
207
|
|
|
208
|
-
|
|
208
|
+
لا توجد معاملات.
|
|
209
209
|
|
|
210
210
|
---
|
|
211
211
|
|
|
212
|
-
## الوصول
|
|
212
|
+
## الوصول إلى الملفات
|
|
213
213
|
|
|
214
|
-
الحفاظ على عمل الوكلاء داخل حدود المشروع
|
|
214
|
+
الحفاظ على عمل الوكلاء داخل حدود المشروع بعيدًا عن الملفات الحساسة.
|
|
215
215
|
|
|
216
216
|
### `block-read-outside-cwd`
|
|
217
217
|
|
|
218
|
-
**الحدث:** PreToolUse (Read
|
|
219
|
-
|
|
218
|
+
**الحدث:** PreToolUse (Read, Bash)
|
|
219
|
+
**الافتراضي:** ينكر قراءة الملفات خارج دليل العمل الحالي (جذر المشروع).
|
|
220
220
|
|
|
221
221
|
**المعاملات:**
|
|
222
222
|
|
|
223
223
|
| المعامل | النوع | الافتراضي | الوصف |
|
|
224
|
-
|
|
224
|
+
|--------|-------|----------|-------|
|
|
225
225
|
| `allowPaths` | `string[]` | `[]` | بادئات المسار المطلق المسموح بها حتى لو كانت خارج cwd. |
|
|
226
226
|
|
|
227
227
|
**مثال:**
|
|
@@ -240,14 +240,14 @@ icon: shield
|
|
|
240
240
|
|
|
241
241
|
### `block-secrets-write`
|
|
242
242
|
|
|
243
|
-
**الحدث:** PreToolUse (Write
|
|
244
|
-
|
|
243
|
+
**الحدث:** PreToolUse (Write, Edit)
|
|
244
|
+
**الافتراضي:** ينكر الكتابة إلى الملفات المستخدمة بشكل شائع للمفاتيح الخاصة والشهادات: `id_rsa`، `id_ed25519`، `*.key`، `*.pem`، `*.p12`، `*.pfx`.
|
|
245
245
|
|
|
246
246
|
**المعاملات:**
|
|
247
247
|
|
|
248
248
|
| المعامل | النوع | الافتراضي | الوصف |
|
|
249
|
-
|
|
250
|
-
| `additionalPatterns` | `string[]` | `[]` | أنماط
|
|
249
|
+
|--------|-------|----------|-------|
|
|
250
|
+
| `additionalPatterns` | `string[]` | `[]` | أنماط اسم ملف إضافية (على غرار glob) للحظر. |
|
|
251
251
|
|
|
252
252
|
**مثال:**
|
|
253
253
|
|
|
@@ -265,17 +265,17 @@ icon: shield
|
|
|
265
265
|
|
|
266
266
|
## Git
|
|
267
267
|
|
|
268
|
-
منع الدفع العرضي والدفع القسري
|
|
268
|
+
منع الدفع العرضي والدفع القسري والأخطاء في الفروع التي يصعب التراجع عنها.
|
|
269
269
|
|
|
270
270
|
### `block-push-master`
|
|
271
271
|
|
|
272
272
|
**الحدث:** PreToolUse (Bash)
|
|
273
|
-
|
|
273
|
+
**الافتراضي:** ينكر `git push origin main` و `git push origin master`.
|
|
274
274
|
|
|
275
275
|
**المعاملات:**
|
|
276
276
|
|
|
277
277
|
| المعامل | النوع | الافتراضي | الوصف |
|
|
278
|
-
|
|
278
|
+
|--------|-------|----------|-------|
|
|
279
279
|
| `protectedBranches` | `string[]` | `["main", "master"]` | أسماء الفروع التي لا يمكن الدفع إليها مباشرة. |
|
|
280
280
|
|
|
281
281
|
**مثال:**
|
|
@@ -291,7 +291,7 @@ icon: shield
|
|
|
291
291
|
```
|
|
292
292
|
|
|
293
293
|
<Tip>
|
|
294
|
-
للسماح بالدفع إلى جميع الفروع (تعطيل هذه السياسة
|
|
294
|
+
للسماح بالدفع إلى جميع الفروع (بفعالية تعطيل هذه السياسة دون إزالتها من `enabledPolicies`)، اضبط `protectedBranches: []`.
|
|
295
295
|
</Tip>
|
|
296
296
|
|
|
297
297
|
---
|
|
@@ -299,22 +299,22 @@ icon: shield
|
|
|
299
299
|
### `block-work-on-main`
|
|
300
300
|
|
|
301
301
|
**الحدث:** PreToolUse (Bash)
|
|
302
|
-
|
|
302
|
+
**الافتراضي:** ينكر الخروج من فروع `main` أو `master` مباشرة.
|
|
303
303
|
|
|
304
304
|
**المعاملات:**
|
|
305
305
|
|
|
306
306
|
| المعامل | النوع | الافتراضي | الوصف |
|
|
307
|
-
|
|
308
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | أسماء الفروع التي لا يمكن
|
|
307
|
+
|--------|-------|----------|-------|
|
|
308
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | أسماء الفروع التي لا يمكن الخروج منها مباشرة. |
|
|
309
309
|
|
|
310
310
|
---
|
|
311
311
|
|
|
312
312
|
### `block-force-push`
|
|
313
313
|
|
|
314
314
|
**الحدث:** PreToolUse (Bash)
|
|
315
|
-
|
|
315
|
+
**الافتراضي:** ينكر `git push --force` و `git push -f`.
|
|
316
316
|
|
|
317
|
-
|
|
317
|
+
لا توجد معاملات خاصة بالسياسة. استخدم [hint](/ar/configuration#hint-cross-cutting) المتقاطع لاقتراح بدائل:
|
|
318
318
|
|
|
319
319
|
```json
|
|
320
320
|
{
|
|
@@ -331,66 +331,66 @@ icon: shield
|
|
|
331
331
|
### `warn-git-amend`
|
|
332
332
|
|
|
333
333
|
**الحدث:** PreToolUse (Bash)
|
|
334
|
-
|
|
334
|
+
**الافتراضي:** يرشد Claude للمتابعة بحذر عند تشغيل `git commit --amend`. لا يحظر الأمر.
|
|
335
335
|
|
|
336
|
-
|
|
336
|
+
لا توجد معاملات.
|
|
337
337
|
|
|
338
338
|
---
|
|
339
339
|
|
|
340
340
|
### `warn-git-stash-drop`
|
|
341
341
|
|
|
342
342
|
**الحدث:** PreToolUse (Bash)
|
|
343
|
-
|
|
343
|
+
**الافتراضي:** يرشد Claude للتأكيد قبل تشغيل `git stash drop`. لا يحظر الأمر.
|
|
344
344
|
|
|
345
|
-
|
|
345
|
+
لا توجد معاملات.
|
|
346
346
|
|
|
347
347
|
---
|
|
348
348
|
|
|
349
349
|
### `warn-all-files-staged`
|
|
350
350
|
|
|
351
351
|
**الحدث:** PreToolUse (Bash)
|
|
352
|
-
|
|
352
|
+
**الافتراضي:** يرشد Claude لمراجعة ما يقوم بتخزينه عند تشغيل `git add -A` أو `git add .`. لا يحظر الأمر.
|
|
353
353
|
|
|
354
|
-
|
|
354
|
+
لا توجد معاملات.
|
|
355
355
|
|
|
356
356
|
---
|
|
357
357
|
|
|
358
358
|
## قاعدة البيانات
|
|
359
359
|
|
|
360
|
-
اكتشف العمليات
|
|
360
|
+
اكتشف العمليات SQL المدمرة قبل تنفيذها ضد قاعدة البيانات الخاصة بك.
|
|
361
361
|
|
|
362
362
|
### `warn-destructive-sql`
|
|
363
363
|
|
|
364
364
|
**الحدث:** PreToolUse (Bash)
|
|
365
|
-
|
|
365
|
+
**الافتراضي:** يرشد Claude للتأكيد قبل تشغيل SQL يحتوي على `DROP TABLE` أو `DROP DATABASE` أو `DELETE` بدون جملة `WHERE`.
|
|
366
366
|
|
|
367
|
-
|
|
367
|
+
لا توجد معاملات.
|
|
368
368
|
|
|
369
369
|
---
|
|
370
370
|
|
|
371
371
|
### `warn-schema-alteration`
|
|
372
372
|
|
|
373
373
|
**الحدث:** PreToolUse (Bash)
|
|
374
|
-
|
|
374
|
+
**الافتراضي:** يرشد Claude للتأكيد قبل تشغيل عبارات `ALTER TABLE`.
|
|
375
375
|
|
|
376
|
-
|
|
376
|
+
لا توجد معاملات.
|
|
377
377
|
|
|
378
378
|
---
|
|
379
379
|
|
|
380
|
-
##
|
|
380
|
+
## تحذيرات
|
|
381
381
|
|
|
382
|
-
إعطاء الوكلاء سياق إضافي قبل العمليات المحتملة ولكن غير المدمرة.
|
|
382
|
+
إعطاء الوكلاء سياق إضافي قبل العمليات المحتملة الخطورة ولكن غير المدمرة.
|
|
383
383
|
|
|
384
384
|
### `warn-large-file-write`
|
|
385
385
|
|
|
386
386
|
**الحدث:** PreToolUse (Write)
|
|
387
|
-
|
|
387
|
+
**الافتراضي:** يرشد Claude للتأكيد قبل كتابة ملفات أكبر من 1024 KB.
|
|
388
388
|
|
|
389
389
|
**المعاملات:**
|
|
390
390
|
|
|
391
391
|
| المعامل | النوع | الافتراضي | الوصف |
|
|
392
|
-
|
|
393
|
-
| `thresholdKb` | `number` | `1024` | عتبة حجم الملف بالكيلوبايت التي يتم
|
|
392
|
+
|--------|-------|----------|-------|
|
|
393
|
+
| `thresholdKb` | `number` | `1024` | عتبة حجم الملف بالكيلوبايت التي يتم إصدار تحذير فوقها. |
|
|
394
394
|
|
|
395
395
|
**مثال:**
|
|
396
396
|
|
|
@@ -405,7 +405,7 @@ icon: shield
|
|
|
405
405
|
```
|
|
406
406
|
|
|
407
407
|
<Note>
|
|
408
|
-
يفرض معالج
|
|
408
|
+
يفرض معالج الخطاف حد stdin بحجم 1 ميجابايت على الحمولات. لاختبار هذه السياسة بمحتوى صغير، اضبط `thresholdKb` على قيمة أقل بكثير من 1024.
|
|
409
409
|
</Note>
|
|
410
410
|
|
|
411
411
|
---
|
|
@@ -413,49 +413,49 @@ icon: shield
|
|
|
413
413
|
### `warn-package-publish`
|
|
414
414
|
|
|
415
415
|
**الحدث:** PreToolUse (Bash)
|
|
416
|
-
|
|
416
|
+
**الافتراضي:** يرشد Claude للتأكيد قبل تشغيل `npm publish`.
|
|
417
417
|
|
|
418
|
-
|
|
418
|
+
لا توجد معاملات.
|
|
419
419
|
|
|
420
420
|
---
|
|
421
421
|
|
|
422
422
|
### `warn-background-process`
|
|
423
423
|
|
|
424
424
|
**الحدث:** PreToolUse (Bash)
|
|
425
|
-
|
|
425
|
+
**الافتراضي:** يرشد Claude ليكون حذرًا عند إطلاق العمليات الخلفية عبر `nohup` أو `&` أو `disown` أو `screen`.
|
|
426
426
|
|
|
427
|
-
|
|
427
|
+
لا توجد معاملات.
|
|
428
428
|
|
|
429
429
|
---
|
|
430
430
|
|
|
431
431
|
### `warn-global-package-install`
|
|
432
432
|
|
|
433
433
|
**الحدث:** PreToolUse (Bash)
|
|
434
|
-
|
|
434
|
+
**الافتراضي:** يرشد Claude للتأكيد قبل تشغيل `npm install -g` أو `yarn global add` أو `pip install` بدون بيئة افتراضية.
|
|
435
435
|
|
|
436
|
-
|
|
436
|
+
لا توجد معاملات.
|
|
437
437
|
|
|
438
438
|
---
|
|
439
439
|
|
|
440
440
|
## مديرو الحزم
|
|
441
441
|
|
|
442
|
-
فرض مديري
|
|
442
|
+
فرض أي مديري حزم يُسمح للوكيل باستخدامهم.
|
|
443
443
|
|
|
444
444
|
### `prefer-package-manager`
|
|
445
445
|
|
|
446
446
|
**الحدث:** PreToolUse (Bash)
|
|
447
|
-
|
|
447
|
+
**الافتراضي:** معطل. عند التفعيل، يحظر أي أمر مدير حزم ليس في قائمة `allowed` ويخبر Claude بإعادة كتابة الأمر باستخدام مدير مسموح به.
|
|
448
448
|
|
|
449
449
|
يكتشف: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
|
|
450
450
|
|
|
451
451
|
| المعامل | النوع | الافتراضي | الوصف |
|
|
452
|
-
|
|
453
|
-
| `allowed` | string[] | `[]` | أسماء مديري الحزم المسموح بها. يتم حظر أي مدير مكتشف
|
|
454
|
-
| `blocked` | string[] | `[]` | أسماء مديري إضافية للحظر بما يتجاوز
|
|
452
|
+
|--------|-------|----------|-------|
|
|
453
|
+
| `allowed` | string[] | `[]` | أسماء مديري الحزم المسموح بها. يتم حظر أي مدير مكتشف ليس في هذه القائمة. عند ترك القائمة فارغة، السياسة بدون تأثير. |
|
|
454
|
+
| `blocked` | string[] | `[]` | أسماء مديري حزم إضافية للحظر بما يتجاوز قائمة الحظر المدمجة (على سبيل المثال، `['pdm', 'pipx']`). |
|
|
455
455
|
|
|
456
|
-
تغطي قائمة الحظر المدمجة: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. استخدم `blocked` لإضافة مديري
|
|
456
|
+
تغطي قائمة الحظر المدمجة: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. استخدم `blocked` لإضافة مديري حزم ليسوا في هذه القائمة.
|
|
457
457
|
|
|
458
|
-
|
|
458
|
+
**تكوين مثال:**
|
|
459
459
|
|
|
460
460
|
```json
|
|
461
461
|
{
|
|
@@ -469,47 +469,47 @@ icon: shield
|
|
|
469
469
|
}
|
|
470
470
|
```
|
|
471
471
|
|
|
472
|
-
مع هذا
|
|
472
|
+
مع هذا التكوين، يتم رفض كل من `pip install flask` و `pdm install flask` برسالة تخبر Claude باستخدام `uv` أو `bun` بدلاً من ذلك. الأوامر مثل `uv pip install flask` مسموح بها لأن `uv` موجود في قائمة السماح ويتم التحقق منها أولاً.
|
|
473
473
|
|
|
474
474
|
---
|
|
475
475
|
|
|
476
476
|
## سلوك الذكاء الاصطناعي
|
|
477
477
|
|
|
478
|
-
|
|
478
|
+
اكتشف عندما يعلق الوكلاء أو يتصرفون بشكل غير متوقع.
|
|
479
479
|
|
|
480
480
|
### `warn-repeated-tool-calls`
|
|
481
481
|
|
|
482
482
|
**الحدث:** PreToolUse (جميع الأدوات)
|
|
483
|
-
|
|
483
|
+
**الافتراضي:** يرشد Claude للتفكير مرة أخرى عندما يتم استدعاء نفس الأداة 3 مرات أو أكثر بمعاملات متطابقة - علامة شائعة على أن الوكيل عالق في حلقة.
|
|
484
484
|
|
|
485
|
-
|
|
485
|
+
لا توجد معاملات.
|
|
486
486
|
|
|
487
487
|
---
|
|
488
488
|
|
|
489
489
|
## سير العمل
|
|
490
490
|
|
|
491
|
-
فرض سير عمل منضبط لنهاية الجلسة.
|
|
491
|
+
فرض سير عمل منضبط لنهاية الجلسة. تعمل هذه السياسات على حدث **Stop** وتنكر على Claude التوقف حتى يتم استيفاء كل شرط. تتبع سلسلة اعتماد طبيعية: commit → push → PR → CI. إذا رفضت سياسة، يتم تخطي السياسات اللاحقة في السلسلة (الإنكار يختصر).
|
|
492
492
|
|
|
493
|
-
جميع سياسات سير العمل **fail-open**: إذا لم تكن الأداة المطلوبة متاحة (
|
|
493
|
+
جميع سياسات سير العمل هي **fail-open**: إذا لم تكن الأداة المطلوبة متاحة (على سبيل المثال، `gh` غير مثبتة، لا يوجد remote git)، السياسة تسمح برسالة إعلامية توضح سبب تجاهل الفحص.
|
|
494
494
|
|
|
495
495
|
### `require-commit-before-stop`
|
|
496
496
|
|
|
497
497
|
**الحدث:** Stop
|
|
498
|
-
|
|
498
|
+
**الافتراضي:** ينكر التوقف عند وجود تغييرات غير مؤكدة (ملفات معدلة أو مرحلة أو غير مرقبة). يرجع رسالة إعلامية عند نظافة دليل العمل.
|
|
499
499
|
|
|
500
|
-
|
|
500
|
+
لا توجد معاملات.
|
|
501
501
|
|
|
502
502
|
---
|
|
503
503
|
|
|
504
504
|
### `require-push-before-stop`
|
|
505
505
|
|
|
506
506
|
**الحدث:** Stop
|
|
507
|
-
|
|
507
|
+
**الافتراضي:** ينكر التوقف عند وجود commits غير مدفوعة أو عند عدم وجود فرع تتبع remote للفرع الحالي. يقترح `git push -u` لإنشاء فرع تتبع إذا لزم الأمر. يفشل open إذا لم يتم تكوين أي remote.
|
|
508
508
|
|
|
509
509
|
**المعاملات:**
|
|
510
510
|
|
|
511
511
|
| المعامل | النوع | الافتراضي | الوصف |
|
|
512
|
-
|
|
512
|
+
|--------|-------|----------|-------|
|
|
513
513
|
| `remote` | `string` | `"origin"` | اسم remote للدفع إليه. |
|
|
514
514
|
|
|
515
515
|
**مثال:**
|
|
@@ -529,14 +529,14 @@ icon: shield
|
|
|
529
529
|
### `require-pr-before-stop`
|
|
530
530
|
|
|
531
531
|
**الحدث:** Stop
|
|
532
|
-
|
|
532
|
+
**الافتراضي:** ينكر التوقف عند عدم وجود طلب سحب للفرع الحالي، أو عند إغلاق أو دمج طلب السحب الموجود. يرشد Claude لإنشاء PR باستخدام `gh pr create`.
|
|
533
533
|
|
|
534
|
-
|
|
534
|
+
لا توجد معاملات.
|
|
535
535
|
|
|
536
536
|
<Note>
|
|
537
|
-
تتطلب هذه السياسة
|
|
538
|
-
قم بتشغيل `gh auth login`
|
|
539
|
-
|
|
537
|
+
تتطلب هذه السياسة [GitHub CLI](https://cli.github.com/) (`gh`) أن تكون مثبتة ومصرح بها.
|
|
538
|
+
قم بتشغيل `gh auth login` برمز وصول شخصي يتمتع بنطاق `repo` لقراءة طلبات السحب.
|
|
539
|
+
إذا لم تكن `gh` مثبتة أو غير مصرح بها، تفشل السياسة open وتبلغ السبب إلى Claude.
|
|
540
540
|
</Note>
|
|
541
541
|
|
|
542
542
|
---
|
|
@@ -544,14 +544,14 @@ icon: shield
|
|
|
544
544
|
### `require-ci-green-before-stop`
|
|
545
545
|
|
|
546
546
|
**الحدث:** Stop
|
|
547
|
-
|
|
547
|
+
**الافتراضي:** ينكر التوقف عند فشل فحوصات CI أو استمرار تشغيلها على الفرع الحالي. يتحقق من كل من تشغيل مسار GitHub Actions والفحوصات من طرف ثالث (على سبيل المثال، CodeRabbit, SonarCloud, Codecov). يعامل `skipped` و `cancelled` على أنها نجاح. يرجع رسالة إعلامية عند نجاح جميع الفحوصات.
|
|
548
548
|
|
|
549
|
-
|
|
549
|
+
لا توجد معاملات.
|
|
550
550
|
|
|
551
551
|
<Note>
|
|
552
|
-
تتطلب هذه السياسة
|
|
553
|
-
قم بتشغيل `gh auth login`
|
|
554
|
-
|
|
552
|
+
تتطلب هذه السياسة [GitHub CLI](https://cli.github.com/) (`gh`) أن تكون مثبتة ومصرح بها.
|
|
553
|
+
قم بتشغيل `gh auth login` برمز وصول شخصي يتمتع بنطاق `repo` لقراءة تشغيل مسارات Actions و Checks API.
|
|
554
|
+
إذا لم تكن `gh` مثبتة أو غير مصرح بها، تفشل السياسة open وتبلغ السبب إلى Claude.
|
|
555
555
|
</Note>
|
|
556
556
|
|
|
557
557
|
---
|
|
@@ -560,7 +560,7 @@ icon: shield
|
|
|
560
560
|
|
|
561
561
|
## تعطيل السياسات الفردية
|
|
562
562
|
|
|
563
|
-
أزل سياسة محددة من `enabledPolicies` في
|
|
563
|
+
أزل سياسة محددة من `enabledPolicies` في تكوينك، أو قم بتبديلها في علامة التبويب Policies بلوحة المعلومات.
|
|
564
564
|
|
|
565
565
|
```json
|
|
566
566
|
{
|
|
@@ -571,4 +571,4 @@ icon: shield
|
|
|
571
571
|
}
|
|
572
572
|
```
|
|
573
573
|
|
|
574
|
-
السياسات غير المدرجة في `enabledPolicies` لا تعمل، حتى إذا كانت
|
|
574
|
+
السياسات غير المدرجة في `enabledPolicies` لا تعمل، حتى إذا كانت إدخالات `policyParams` موجودة لها.
|
|
@@ -216,13 +216,13 @@ Keep agents working inside project boundaries and away from sensitive files.
|
|
|
216
216
|
### `block-read-outside-cwd`
|
|
217
217
|
|
|
218
218
|
**Event:** PreToolUse (Read, Bash)
|
|
219
|
-
**Default:** Denies reading files outside the current working directory
|
|
219
|
+
**Default:** Denies reading files outside the project root. The boundary is `CLAUDE_PROJECT_DIR` (set once per session by Claude Code), with a fallback to the session's current working directory when that variable is unset. Using the project root rather than the live `cwd` means the boundary stays stable even after Claude `cd`s into a subdirectory.
|
|
220
220
|
|
|
221
221
|
**Parameters:**
|
|
222
222
|
|
|
223
223
|
| Param | Type | Default | Description |
|
|
224
224
|
|-------|------|---------|-------------|
|
|
225
|
-
| `allowPaths` | `string[]` | `[]` | Absolute path prefixes that are permitted even if outside
|
|
225
|
+
| `allowPaths` | `string[]` | `[]` | Absolute path prefixes that are permitted even if outside the project root. |
|
|
226
226
|
|
|
227
227
|
**Example:**
|
|
228
228
|
|