failproofai 0.0.6-beta.1 → 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/.failproofai/policies/review-policies.mjs +4 -3
- 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]__0~kmh8w._.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]__0rh.18_._.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/{0gbf4cphy8ksq.js → 0-dm_9a6nsc2l.js} +1 -1
- package/.next/standalone/.next/static/chunks/{12~yi9oj8av8p.js → 01pmw1-asbek~.js} +2 -2
- package/.next/standalone/.next/static/chunks/{0v.yd0kg_ld3r.js → 051m32nx~n5yr.js} +1 -1
- package/.next/standalone/.next/static/chunks/{09_k80d~cq2wg.js → 0a-yctdwn368y.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0bvhsa6zva2o..js → 0ksdlt_1hucdm.js} +1 -1
- package/.next/standalone/.next/static/chunks/{01b~z8f1ws0rk.js → 0l-mu4okl-cj1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{08t08igdql9yt.js → 0mazj-p-~2kc6.js} +1 -1
- package/.next/standalone/.next/static/chunks/0qakntsrpc~1j.js +6 -0
- package/.next/standalone/.next/static/chunks/{03rz6ykw-a2xi.js → 156zca6aewyr-.js} +1 -1
- package/.next/standalone/CHANGELOG.md +18 -0
- package/.next/standalone/bin/failproofai.mjs +91 -4
- package/.next/standalone/dist/cli.mjs +1156 -55
- package/.next/standalone/docs/ar/built-in-policies.mdx +140 -103
- package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
- package/.next/standalone/docs/ar/examples.mdx +86 -33
- package/.next/standalone/docs/ar/getting-started.mdx +82 -29
- package/.next/standalone/docs/built-in-policies.mdx +3 -3
- package/.next/standalone/docs/de/built-in-policies.mdx +97 -60
- package/.next/standalone/docs/de/custom-policies.mdx +56 -56
- package/.next/standalone/docs/de/examples.mdx +72 -18
- package/.next/standalone/docs/de/getting-started.mdx +72 -20
- package/.next/standalone/docs/es/built-in-policies.mdx +91 -54
- package/.next/standalone/docs/es/custom-policies.mdx +55 -55
- package/.next/standalone/docs/es/examples.mdx +73 -19
- package/.next/standalone/docs/es/getting-started.mdx +72 -20
- package/.next/standalone/docs/fr/built-in-policies.mdx +99 -62
- package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
- package/.next/standalone/docs/fr/examples.mdx +78 -24
- package/.next/standalone/docs/fr/getting-started.mdx +65 -13
- package/.next/standalone/docs/he/built-in-policies.mdx +139 -99
- package/.next/standalone/docs/he/custom-policies.mdx +75 -75
- package/.next/standalone/docs/he/examples.mdx +87 -33
- package/.next/standalone/docs/he/getting-started.mdx +84 -33
- package/.next/standalone/docs/hi/built-in-policies.mdx +203 -166
- package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
- package/.next/standalone/docs/hi/examples.mdx +90 -36
- package/.next/standalone/docs/hi/getting-started.mdx +80 -27
- package/.next/standalone/docs/i18n/README.ar.md +69 -69
- package/.next/standalone/docs/i18n/README.de.md +46 -46
- package/.next/standalone/docs/i18n/README.es.md +42 -42
- package/.next/standalone/docs/i18n/README.fr.md +39 -39
- package/.next/standalone/docs/i18n/README.he.md +83 -83
- package/.next/standalone/docs/i18n/README.hi.md +69 -69
- package/.next/standalone/docs/i18n/README.it.md +72 -72
- package/.next/standalone/docs/i18n/README.ja.md +71 -71
- package/.next/standalone/docs/i18n/README.ko.md +52 -52
- package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
- package/.next/standalone/docs/i18n/README.ru.md +66 -66
- package/.next/standalone/docs/i18n/README.tr.md +82 -83
- package/.next/standalone/docs/i18n/README.vi.md +70 -71
- package/.next/standalone/docs/i18n/README.zh.md +51 -51
- package/.next/standalone/docs/it/built-in-policies.mdx +115 -78
- package/.next/standalone/docs/it/custom-policies.mdx +69 -69
- package/.next/standalone/docs/it/examples.mdx +93 -39
- package/.next/standalone/docs/it/getting-started.mdx +73 -21
- package/.next/standalone/docs/ja/built-in-policies.mdx +155 -118
- package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
- package/.next/standalone/docs/ja/examples.mdx +76 -22
- package/.next/standalone/docs/ja/getting-started.mdx +65 -13
- package/.next/standalone/docs/ko/built-in-policies.mdx +103 -66
- package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
- package/.next/standalone/docs/ko/examples.mdx +87 -33
- package/.next/standalone/docs/ko/getting-started.mdx +61 -9
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +72 -35
- package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
- package/.next/standalone/docs/pt-br/examples.mdx +78 -24
- package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
- package/.next/standalone/docs/ru/built-in-policies.mdx +135 -98
- package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
- package/.next/standalone/docs/ru/examples.mdx +77 -22
- package/.next/standalone/docs/ru/getting-started.mdx +74 -22
- package/.next/standalone/docs/tr/built-in-policies.mdx +126 -89
- package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
- package/.next/standalone/docs/tr/examples.mdx +97 -42
- package/.next/standalone/docs/tr/getting-started.mdx +75 -23
- package/.next/standalone/docs/vi/built-in-policies.mdx +116 -81
- package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
- package/.next/standalone/docs/vi/examples.mdx +93 -38
- package/.next/standalone/docs/vi/getting-started.mdx +74 -22
- package/.next/standalone/docs/zh/built-in-policies.mdx +117 -82
- package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
- package/.next/standalone/docs/zh/examples.mdx +90 -36
- package/.next/standalone/docs/zh/getting-started.mdx +73 -21
- 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 +27 -21
- 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 +1156 -55
- 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 +27 -21
- 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/0wlyoif4_kj_t.js +0 -6
- /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_ssgManifest.js +0 -0
|
@@ -1,59 +1,60 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
3
|
-
description: "सभी 30
|
|
2
|
+
title: बिल्ट-इन पॉलिसीज़
|
|
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
|
|
|
11
|
-
##
|
|
11
|
+
## अवलोकन
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
पॉलिसीज़ को श्रेणियों में विभाजित किया गया है:
|
|
14
14
|
|
|
15
|
-
|
|
|
15
|
+
| श्रेणी | पॉलिसीज़ | हुक प्रकार |
|
|
16
16
|
|----------|----------|-----------|
|
|
17
|
-
| [
|
|
18
|
-
| [
|
|
19
|
-
| [
|
|
20
|
-
| [
|
|
17
|
+
| [खतरनाक कमांड](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
|
|
18
|
+
| [सीक्रेट्स (सैनिटाइज़र)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
|
|
19
|
+
| [पर्यावरण](#environment) | block-env-files, protect-env-vars | PreToolUse |
|
|
20
|
+
| [फाइल एक्सेस](#file-access) | 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
|
-
| [
|
|
22
|
+
| [डेटाबेस](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
|
|
23
|
+
| [चेतावनियां](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
|
|
24
|
+
| [पैकेज मैनेजर](#package-managers) | prefer-package-manager | PreToolUse |
|
|
25
|
+
| [वर्कफ़्लो](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
|
|
25
26
|
|
|
26
|
-
- **`block-`** —
|
|
27
|
-
- **`warn-`** —
|
|
28
|
-
- **`sanitize-`** —
|
|
29
|
-
- **`require-`** —
|
|
27
|
+
- **`block-`** — एजेंट को आगे बढ़ने से रोकें।
|
|
28
|
+
- **`warn-`** — एजेंट को अतिरिक्त संदर्भ दें ताकि यह स्वयं को सही कर सके।
|
|
29
|
+
- **`sanitize-`** — एजेंट को देखने से पहले टूल आउटपुट से संवेदनशील डेटा हटाएं।
|
|
30
|
+
- **`require-`** — शर्तें पूरी होने तक Stop इवेंट को ब्लॉक करें।
|
|
30
31
|
|
|
31
32
|
---
|
|
32
33
|
|
|
33
34
|
<Tip>
|
|
34
|
-
हर
|
|
35
|
+
हर पॉलिसी `policyParams` में एक वैकल्पिक `hint` फील्ड को सपोर्ट करती है। hint को deny या instruct संदेश में जोड़ा जाता है जो Claude देखता है, जिससे कार्यसंचालन मार्गदर्शन मिलता है बिना पॉलिसी कोड को संशोधित किए। बिल्ट-इन, कस्टम, और कन्वेंशन पॉलिसीज़ के साथ काम करता है। विवरण के लिए [Configuration → hint](/hi/configuration#hint-cross-cutting) देखें।
|
|
35
36
|
</Tip>
|
|
36
37
|
|
|
37
38
|
---
|
|
38
39
|
|
|
39
|
-
##
|
|
40
|
+
## खतरनाक कमांड
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
एजेंट्स को ऐसे ऑपरेशन चलाने से रोकें जो पूर्ववत करना मुश्किल हैं या होस्ट सिस्टम को नुकसान पहुंचा सकते हैं।
|
|
42
43
|
|
|
43
44
|
### `block-sudo`
|
|
44
45
|
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
**इवेंट:** PreToolUse (Bash)
|
|
47
|
+
**डिफ़ॉल्ट:** किसी भी `sudo` कमांड को अस्वीकार करता है।
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
ऐसे इनवोकेशन को ब्लॉक करता है जिनमें `sudo` कीवर्ड शामिल हो। पैटर्न मिलान कच्ची स्ट्रिंग के बजाय पार्स किए गए कमांड टोकन पर किया जाता है, shell ऑपरेटर इंजेक्शन के माध्यम से बाईपास को रोकने के लिए।
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
**पैरामीटर:**
|
|
51
52
|
|
|
52
|
-
|
|
|
53
|
+
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|
|
53
54
|
|-------|------|---------|-------------|
|
|
54
|
-
| `allowPatterns` | `string[]` | `[]` |
|
|
55
|
+
| `allowPatterns` | `string[]` | `[]` | सटीक कमांड प्रीफिक्स जो अनुमति हैं। प्रत्येक प्रविष्टि पार्स किए गए argv टोकन के विरुद्ध मिलाई जाती है। |
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
**उदाहरण:**
|
|
57
58
|
|
|
58
59
|
```json
|
|
59
60
|
{
|
|
@@ -65,26 +66,26 @@ Invocations को block करता है जिनमें `sudo` keyword
|
|
|
65
66
|
}
|
|
66
67
|
```
|
|
67
68
|
|
|
68
|
-
इस
|
|
69
|
+
इस कॉन्फ़िगरेशन के साथ, `sudo systemctl status nginx` अनुमति है, लेकिन `sudo rm /etc/hosts` अस्वीकृत है।
|
|
69
70
|
|
|
70
71
|
<Note>
|
|
71
|
-
|
|
72
|
+
पैटर्न कच्ची कमांड स्ट्रिंग के बजाय पार्स किए गए टोकन के विरुद्ध मिलाए जाते हैं। यह अपेंड किए गए shell ऑपरेटर के माध्यम से बाईपास को रोकता है (उदा. `sudo systemctl status x; rm -rf /` `sudo systemctl status *` से मेल नहीं खाता)।
|
|
72
73
|
</Note>
|
|
73
74
|
|
|
74
75
|
---
|
|
75
76
|
|
|
76
77
|
### `block-rm-rf`
|
|
77
78
|
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
**इवेंट:** PreToolUse (Bash)
|
|
80
|
+
**डिफ़ॉल्ट:** `rm -rf`, `rm -fr`, और समान पुनरावर्ती विलोपन फॉर्म को अस्वीकार करता है।
|
|
80
81
|
|
|
81
|
-
|
|
82
|
+
**पैरामीटर:**
|
|
82
83
|
|
|
83
|
-
|
|
|
84
|
+
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|
|
84
85
|
|-------|------|---------|-------------|
|
|
85
|
-
| `allowPaths` | `string[]` | `[]` |
|
|
86
|
+
| `allowPaths` | `string[]` | `[]` | पथ जो पुनरावर्ती रूप से हटाने के लिए सुरक्षित हैं (उदा. `/tmp`)। |
|
|
86
87
|
|
|
87
|
-
|
|
88
|
+
**उदाहरण:**
|
|
88
89
|
|
|
89
90
|
```json
|
|
90
91
|
{
|
|
@@ -100,47 +101,47 @@ Patterns को raw command string पर नहीं, parsed tokens के aga
|
|
|
100
101
|
|
|
101
102
|
### `block-curl-pipe-sh`
|
|
102
103
|
|
|
103
|
-
|
|
104
|
-
|
|
104
|
+
**इवेंट:** PreToolUse (Bash)
|
|
105
|
+
**डिफ़ॉल्ट:** `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash`, और समान पैटर्न को अस्वीकार करता है।
|
|
105
106
|
|
|
106
|
-
कोई
|
|
107
|
+
कोई पैरामीटर नहीं।
|
|
107
108
|
|
|
108
109
|
---
|
|
109
110
|
|
|
110
111
|
### `block-failproofai-commands`
|
|
111
112
|
|
|
112
|
-
|
|
113
|
-
|
|
113
|
+
**इवेंट:** PreToolUse (Bash)
|
|
114
|
+
**डिफ़ॉल्ट:** ऐसी कमांड को अस्वीकार करता है जो failproofai को अनइंस्टॉल या अक्षम करेंगी (उदा. `npm uninstall failproofai`, `failproofai policies --uninstall`)।
|
|
114
115
|
|
|
115
|
-
कोई
|
|
116
|
+
कोई पैरामीटर नहीं।
|
|
116
117
|
|
|
117
118
|
---
|
|
118
119
|
|
|
119
|
-
##
|
|
120
|
+
## सीक्रेट्स (सैनिटाइज़र)
|
|
120
121
|
|
|
121
|
-
|
|
122
|
+
एजेंट्स को अपने संदर्भ या आउटपुट में क्रेडेंशियल लीक करने से रोकें। सैनिटाइज़र पॉलिसीज़ **PostToolUse** इवेंट पर काम करती हैं। जब Claude एक Bash कमांड चलाता है, एक फाइल पढ़ता है, या कोई भी टूल कॉल करता है, ये पॉलिसीज़ आउटपुट को Claude को लौटाए जाने से पहले निरीक्षण करती हैं। यदि एक सीक्रेट पैटर्न पाया जाता है, पॉलिसी एक अस्वीकार निर्णय देती है जो आउटपुट को वापस पास किए जाने से रोकता है।
|
|
122
123
|
|
|
123
124
|
### `sanitize-jwt`
|
|
124
125
|
|
|
125
|
-
|
|
126
|
-
|
|
126
|
+
**इवेंट:** PostToolUse (सभी टूल्स)
|
|
127
|
+
**डिफ़ॉल्ट:** JWT टोकन को रिडैक्ट करता है (तीन base64url सेगमेंट `.` से अलग)।
|
|
127
128
|
|
|
128
|
-
कोई
|
|
129
|
+
कोई पैरामीटर नहीं।
|
|
129
130
|
|
|
130
131
|
---
|
|
131
132
|
|
|
132
133
|
### `sanitize-api-keys`
|
|
133
134
|
|
|
134
|
-
|
|
135
|
-
|
|
135
|
+
**इवेंट:** PostToolUse (सभी टूल्स)
|
|
136
|
+
**डिफ़ॉल्ट:** सामान्य API कुंजी फॉर्मेट को रिडैक्ट करता है: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), AWS एक्सेस कुंजियां (`AKIA`), Stripe कुंजियां (`sk_live_`, `sk_test_`), और Google API कुंजियां (`AIza`)।
|
|
136
137
|
|
|
137
|
-
|
|
138
|
+
**पैरामीटर:**
|
|
138
139
|
|
|
139
|
-
|
|
|
140
|
+
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|
|
140
141
|
|-------|------|---------|-------------|
|
|
141
|
-
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` |
|
|
142
|
+
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | सीक्रेट मानने के लिए अतिरिक्त regex पैटर्न। |
|
|
142
143
|
|
|
143
|
-
|
|
144
|
+
**उदाहरण:**
|
|
144
145
|
|
|
145
146
|
```json
|
|
146
147
|
{
|
|
@@ -159,71 +160,71 @@ Agents को अपने context या output में credentials leak क
|
|
|
159
160
|
|
|
160
161
|
### `sanitize-connection-strings`
|
|
161
162
|
|
|
162
|
-
|
|
163
|
-
|
|
163
|
+
**इवेंट:** PostToolUse (सभी टूल्स)
|
|
164
|
+
**डिफ़ॉल्ट:** डेटाबेस कनेक्शन स्ट्रिंग को रिडैक्ट करता है जिनमें एंबेडेड क्रेडेंशियल हैं (उदा. `postgresql://user:password@host/db`)।
|
|
164
165
|
|
|
165
|
-
कोई
|
|
166
|
+
कोई पैरामीटर नहीं।
|
|
166
167
|
|
|
167
168
|
---
|
|
168
169
|
|
|
169
170
|
### `sanitize-private-key-content`
|
|
170
171
|
|
|
171
|
-
|
|
172
|
-
|
|
172
|
+
**इवेंट:** PostToolUse (सभी टूल्स)
|
|
173
|
+
**डिफ़ॉल्ट:** PEM ब्लॉक को रिडैक्ट करता है (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, आदि)।
|
|
173
174
|
|
|
174
|
-
कोई
|
|
175
|
+
कोई पैरामीटर नहीं।
|
|
175
176
|
|
|
176
177
|
---
|
|
177
178
|
|
|
178
179
|
### `sanitize-bearer-tokens`
|
|
179
180
|
|
|
180
|
-
|
|
181
|
-
|
|
181
|
+
**इवेंट:** PostToolUse (सभी टूल्स)
|
|
182
|
+
**डिफ़ॉल्ट:** `Authorization: Bearer <token>` हेडर को रिडैक्ट करता है जहां टोकन 20 या अधिक वर्णों का है।
|
|
182
183
|
|
|
183
|
-
कोई
|
|
184
|
+
कोई पैरामीटर नहीं।
|
|
184
185
|
|
|
185
186
|
---
|
|
186
187
|
|
|
187
|
-
##
|
|
188
|
+
## पर्यावरण
|
|
188
189
|
|
|
189
|
-
|
|
190
|
+
एजेंट्स द्वारा संवेदनशील पर्यावरण कॉन्फ़िगरेशन को पढ़े या उजागर किए जाने से सुरक्षित रखें।
|
|
190
191
|
|
|
191
192
|
### `block-env-files`
|
|
192
193
|
|
|
193
|
-
|
|
194
|
-
|
|
194
|
+
**इवेंट:** PreToolUse (Bash, Read)
|
|
195
|
+
**डिफ़ॉल्ट:** `.env` फाइलों को `cat .env`, Read टूल कॉल के माध्यम से फाइल पथ के रूप में `.env` के साथ, आदि पढ़ने से अस्वीकार करता है।
|
|
195
196
|
|
|
196
|
-
`.envrc` या अन्य
|
|
197
|
+
`.envrc` या अन्य पर्यावरण-निकटवर्ती फाइलों को ब्लॉक नहीं करता है - केवल ठीक `.env` नामित फाइलें।
|
|
197
198
|
|
|
198
|
-
कोई
|
|
199
|
+
कोई पैरामीटर नहीं।
|
|
199
200
|
|
|
200
201
|
---
|
|
201
202
|
|
|
202
203
|
### `protect-env-vars`
|
|
203
204
|
|
|
204
|
-
|
|
205
|
-
|
|
205
|
+
**इवेंट:** PreToolUse (Bash)
|
|
206
|
+
**डिफ़ॉल्ट:** पर्यावरण वेरिएबल प्रिंट करने वाली कमांड को अस्वीकार करता है: `printenv`, `env`, `echo $VAR`।
|
|
206
207
|
|
|
207
|
-
कोई
|
|
208
|
+
कोई पैरामीटर नहीं।
|
|
208
209
|
|
|
209
210
|
---
|
|
210
211
|
|
|
211
|
-
##
|
|
212
|
+
## फाइल एक्सेस
|
|
212
213
|
|
|
213
|
-
|
|
214
|
+
एजेंट्स को प्रोजेक्ट सीमाओं के अंदर काम करने और संवेदनशील फाइलों से दूर रखें।
|
|
214
215
|
|
|
215
216
|
### `block-read-outside-cwd`
|
|
216
217
|
|
|
217
|
-
|
|
218
|
-
|
|
218
|
+
**इवेंट:** PreToolUse (Read, Bash)
|
|
219
|
+
**डिफ़ॉल्ट:** वर्तमान कार्य निर्देशिका (प्रोजेक्ट रूट) के बाहर फाइलों को पढ़ने से अस्वीकार करता है।
|
|
219
220
|
|
|
220
|
-
|
|
221
|
+
**पैरामीटर:**
|
|
221
222
|
|
|
222
|
-
|
|
|
223
|
+
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|
|
223
224
|
|-------|------|---------|-------------|
|
|
224
|
-
| `allowPaths` | `string[]` | `[]` |
|
|
225
|
+
| `allowPaths` | `string[]` | `[]` | निरपेक्ष पथ प्रीफिक्स जो अनुमति हैं यहां तक कि अगर cwd के बाहर। |
|
|
225
226
|
|
|
226
|
-
|
|
227
|
+
**उदाहरण:**
|
|
227
228
|
|
|
228
229
|
```json
|
|
229
230
|
{
|
|
@@ -239,16 +240,16 @@ Agents को project boundaries के अंदर काम करने औ
|
|
|
239
240
|
|
|
240
241
|
### `block-secrets-write`
|
|
241
242
|
|
|
242
|
-
|
|
243
|
-
|
|
243
|
+
**इवेंट:** PreToolUse (Write, Edit)
|
|
244
|
+
**डिफ़ॉल्ट:** निजी कुंजियों और प्रमाणपत्रों के लिए आमतौर पर उपयोग की जाने वाली फाइलों में लिखने से अस्वीकार करता है: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`।
|
|
244
245
|
|
|
245
|
-
|
|
246
|
+
**पैरामीटर:**
|
|
246
247
|
|
|
247
|
-
|
|
|
248
|
+
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|
|
248
249
|
|-------|------|---------|-------------|
|
|
249
|
-
| `additionalPatterns` | `string[]` | `[]` |
|
|
250
|
+
| `additionalPatterns` | `string[]` | `[]` | ब्लॉक करने के लिए अतिरिक्त फाइलनाम पैटर्न (glob-स्टाइल)। |
|
|
250
251
|
|
|
251
|
-
|
|
252
|
+
**उदाहरण:**
|
|
252
253
|
|
|
253
254
|
```json
|
|
254
255
|
{
|
|
@@ -264,20 +265,20 @@ Agents को project boundaries के अंदर काम करने औ
|
|
|
264
265
|
|
|
265
266
|
## Git
|
|
266
267
|
|
|
267
|
-
|
|
268
|
+
आकस्मिक पुश, force-पुश, और ब्रांच गलतियों को रोकें जो पूर्ववत करना मुश्किल हैं।
|
|
268
269
|
|
|
269
270
|
### `block-push-master`
|
|
270
271
|
|
|
271
|
-
|
|
272
|
-
|
|
272
|
+
**इवेंट:** PreToolUse (Bash)
|
|
273
|
+
**डिफ़ॉल्ट:** `git push origin main` और `git push origin master` को अस्वीकार करता है।
|
|
273
274
|
|
|
274
|
-
|
|
275
|
+
**पैरामीटर:**
|
|
275
276
|
|
|
276
|
-
|
|
|
277
|
+
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|
|
277
278
|
|-------|------|---------|-------------|
|
|
278
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` |
|
|
279
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | ब्रांच नाम जो सीधे नहीं धकेले जा सकते। |
|
|
279
280
|
|
|
280
|
-
|
|
281
|
+
**उदाहरण:**
|
|
281
282
|
|
|
282
283
|
```json
|
|
283
284
|
{
|
|
@@ -290,36 +291,36 @@ Accidental pushes, force-pushes, और branch mistakes को रोकें
|
|
|
290
291
|
```
|
|
291
292
|
|
|
292
293
|
<Tip>
|
|
293
|
-
सभी
|
|
294
|
+
सभी ब्रांचों में पुश करने की अनुमति देने के लिए (प्रभावी रूप से इस पॉलिसी को `enabledPolicies` से हटाए बिना अक्षम करने के लिए), `protectedBranches: []` सेट करें।
|
|
294
295
|
</Tip>
|
|
295
296
|
|
|
296
297
|
---
|
|
297
298
|
|
|
298
299
|
### `block-work-on-main`
|
|
299
300
|
|
|
300
|
-
|
|
301
|
-
|
|
301
|
+
**इवेंट:** PreToolUse (Bash)
|
|
302
|
+
**डिफ़ॉल्ट:** `main` या `master` ब्रांच को सीधे चेक आउट करने से अस्वीकार करता है।
|
|
302
303
|
|
|
303
|
-
|
|
304
|
+
**पैरामीटर:**
|
|
304
305
|
|
|
305
|
-
|
|
|
306
|
+
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|
|
306
307
|
|-------|------|---------|-------------|
|
|
307
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` |
|
|
308
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | ब्रांच नाम जो सीधे चेक आउट नहीं किए जा सकते। |
|
|
308
309
|
|
|
309
310
|
---
|
|
310
311
|
|
|
311
312
|
### `block-force-push`
|
|
312
313
|
|
|
313
|
-
|
|
314
|
-
|
|
314
|
+
**इवेंट:** PreToolUse (Bash)
|
|
315
|
+
**डिफ़ॉल्ट:** `git push --force` और `git push -f` को अस्वीकार करता है।
|
|
315
316
|
|
|
316
|
-
कोई
|
|
317
|
+
कोई नीति-विशिष्ट पैरामीटर नहीं। विकल्प सुझाने के लिए क्रॉस-कटिंग [`hint`](/hi/configuration#hint-cross-cutting) का उपयोग करें:
|
|
317
318
|
|
|
318
319
|
```json
|
|
319
320
|
{
|
|
320
321
|
"policyParams": {
|
|
321
322
|
"block-force-push": {
|
|
322
|
-
"hint": "अपने
|
|
323
|
+
"hint": "अपने वर्तमान HEAD से एक नई ब्रांच बनाएं (उदा. `git checkout -b <new-branch>`) और इसके बजाय उसे पुश करें।"
|
|
323
324
|
}
|
|
324
325
|
}
|
|
325
326
|
}
|
|
@@ -329,69 +330,69 @@ Accidental pushes, force-pushes, और branch mistakes को रोकें
|
|
|
329
330
|
|
|
330
331
|
### `warn-git-amend`
|
|
331
332
|
|
|
332
|
-
|
|
333
|
-
|
|
333
|
+
**इवेंट:** PreToolUse (Bash)
|
|
334
|
+
**डिफ़ॉल्ट:** Claude को `git commit --amend` चलाते समय सावधानी से आगे बढ़ने के लिए निर्देश देता है। कमांड को ब्लॉक नहीं करता है।
|
|
334
335
|
|
|
335
|
-
कोई
|
|
336
|
+
कोई पैरामीटर नहीं।
|
|
336
337
|
|
|
337
338
|
---
|
|
338
339
|
|
|
339
340
|
### `warn-git-stash-drop`
|
|
340
341
|
|
|
341
|
-
|
|
342
|
-
|
|
342
|
+
**इवेंट:** PreToolUse (Bash)
|
|
343
|
+
**डिफ़ॉल्ट:** Claude को `git stash drop` चलाने से पहले पुष्टि करने के लिए निर्देश देता है। कमांड को ब्लॉक नहीं करता है।
|
|
343
344
|
|
|
344
|
-
कोई
|
|
345
|
+
कोई पैरामीटर नहीं।
|
|
345
346
|
|
|
346
347
|
---
|
|
347
348
|
|
|
348
349
|
### `warn-all-files-staged`
|
|
349
350
|
|
|
350
|
-
|
|
351
|
-
|
|
351
|
+
**इवेंट:** PreToolUse (Bash)
|
|
352
|
+
**डिफ़ॉल्ट:** Claude को समीक्षा करने के लिए निर्देश देता है कि जब यह `git add -A` या `git add .` चलाता है तो क्या स्टेजिंग कर रहा है। कमांड को ब्लॉक नहीं करता है।
|
|
352
353
|
|
|
353
|
-
कोई
|
|
354
|
+
कोई पैरामीटर नहीं।
|
|
354
355
|
|
|
355
356
|
---
|
|
356
357
|
|
|
357
|
-
##
|
|
358
|
+
## डेटाबेस
|
|
358
359
|
|
|
359
|
-
|
|
360
|
+
विनाशकारी SQL ऑपरेशन को आपके डेटाबेस के विरुद्ध निष्पादित होने से पहले पकड़ें।
|
|
360
361
|
|
|
361
362
|
### `warn-destructive-sql`
|
|
362
363
|
|
|
363
|
-
|
|
364
|
-
|
|
364
|
+
**इवेंट:** PreToolUse (Bash)
|
|
365
|
+
**डिफ़ॉल्ट:** Claude को SQL युक्त `DROP TABLE`, `DROP DATABASE`, या `WHERE` क्लॉज़ के बिना `DELETE` चलाने से पहले पुष्टि करने के लिए निर्देश देता है।
|
|
365
366
|
|
|
366
|
-
कोई
|
|
367
|
+
कोई पैरामीटर नहीं।
|
|
367
368
|
|
|
368
369
|
---
|
|
369
370
|
|
|
370
371
|
### `warn-schema-alteration`
|
|
371
372
|
|
|
372
|
-
|
|
373
|
-
|
|
373
|
+
**इवेंट:** PreToolUse (Bash)
|
|
374
|
+
**डिफ़ॉल्ट:** Claude को `ALTER TABLE` स्टेटमेंट चलाने से पहले पुष्टि करने के लिए निर्देश देता है।
|
|
374
375
|
|
|
375
|
-
कोई
|
|
376
|
+
कोई पैरामीटर नहीं।
|
|
376
377
|
|
|
377
378
|
---
|
|
378
379
|
|
|
379
|
-
##
|
|
380
|
+
## चेतावनियां
|
|
380
381
|
|
|
381
|
-
|
|
382
|
+
एजेंट्स को संभावित रूप से जोखिम भरे लेकिन गैर-विनाशकारी ऑपरेशन से पहले अतिरिक्त संदर्भ दें।
|
|
382
383
|
|
|
383
384
|
### `warn-large-file-write`
|
|
384
385
|
|
|
385
|
-
|
|
386
|
-
|
|
386
|
+
**इवेंट:** PreToolUse (Write)
|
|
387
|
+
**डिफ़ॉल्ट:** Claude को 1024 KB से बड़ी फाइलें लिखने से पहले पुष्टि करने के लिए निर्देश देता है।
|
|
387
388
|
|
|
388
|
-
|
|
389
|
+
**पैरामीटर:**
|
|
389
390
|
|
|
390
|
-
|
|
|
391
|
+
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|
|
391
392
|
|-------|------|---------|-------------|
|
|
392
|
-
| `thresholdKb` | `number` | `1024` |
|
|
393
|
+
| `thresholdKb` | `number` | `1024` | फाइल आकार थ्रेसहोल्ड किलोबाइट में जिससे ऊपर चेतावनी जारी की जाती है। |
|
|
393
394
|
|
|
394
|
-
|
|
395
|
+
**उदाहरण:**
|
|
395
396
|
|
|
396
397
|
```json
|
|
397
398
|
{
|
|
@@ -404,78 +405,114 @@ Agents को potentially risky लेकिन non-destructive operations स
|
|
|
404
405
|
```
|
|
405
406
|
|
|
406
407
|
<Note>
|
|
407
|
-
|
|
408
|
+
हुक हैंडलर पेलोड पर 1 MB stdin सीमा लागू करता है। छोटी सामग्री के साथ इस पॉलिसी का परीक्षण करने के लिए, `thresholdKb` को 1024 से कहीं नीचे एक मान पर सेट करें।
|
|
408
409
|
</Note>
|
|
409
410
|
|
|
410
411
|
---
|
|
411
412
|
|
|
412
413
|
### `warn-package-publish`
|
|
413
414
|
|
|
414
|
-
|
|
415
|
-
|
|
415
|
+
**इवेंट:** PreToolUse (Bash)
|
|
416
|
+
**डिफ़ॉल्ट:** Claude को `npm publish` चलाने से पहले पुष्टि करने के लिए निर्देश देता है।
|
|
416
417
|
|
|
417
|
-
कोई
|
|
418
|
+
कोई पैरामीटर नहीं।
|
|
418
419
|
|
|
419
420
|
---
|
|
420
421
|
|
|
421
422
|
### `warn-background-process`
|
|
422
423
|
|
|
423
|
-
|
|
424
|
-
|
|
424
|
+
**इवेंट:** PreToolUse (Bash)
|
|
425
|
+
**डिफ़ॉल्ट:** Claude को `nohup`, `&`, `disown`, या `screen` के माध्यम से बैकग्राउंड प्रक्रियाएं लॉन्च करते समय सावधान रहने के लिए निर्देश देता है।
|
|
425
426
|
|
|
426
|
-
कोई
|
|
427
|
+
कोई पैरामीटर नहीं।
|
|
427
428
|
|
|
428
429
|
---
|
|
429
430
|
|
|
430
431
|
### `warn-global-package-install`
|
|
431
432
|
|
|
432
|
-
|
|
433
|
-
|
|
433
|
+
**इवेंट:** PreToolUse (Bash)
|
|
434
|
+
**डिफ़ॉल्ट:** Claude को `npm install -g`, `yarn global add`, या `pip install` को वर्चुअल वातावरण के बिना चलाने से पहले पुष्टि करने के लिए निर्देश देता है।
|
|
434
435
|
|
|
435
|
-
कोई
|
|
436
|
+
कोई पैरामीटर नहीं।
|
|
436
437
|
|
|
437
438
|
---
|
|
438
439
|
|
|
439
|
-
##
|
|
440
|
+
## पैकेज मैनेजर
|
|
440
441
|
|
|
441
|
-
|
|
442
|
+
यह लागू करें कि एजेंट किस पैकेज मैनेजर का उपयोग करने की अनुमति है।
|
|
443
|
+
|
|
444
|
+
### `prefer-package-manager`
|
|
445
|
+
|
|
446
|
+
**इवेंट:** PreToolUse (Bash)
|
|
447
|
+
**डिफ़ॉल्ट:** अक्षम। जब सक्षम किया जाता है, `allowed` सूची में न होने वाली किसी भी पैकेज मैनेजर कमांड को ब्लॉक करता है और Claude को अनुमत मैनेजर का उपयोग करके कमांड को फिर से लिखने के लिए कहता है।
|
|
448
|
+
|
|
449
|
+
पहचानता है: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo।
|
|
450
|
+
|
|
451
|
+
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|
|
452
|
+
|-----------|------|---------|-------------|
|
|
453
|
+
| `allowed` | string[] | `[]` | अनुमत पैकेज मैनेजर नाम। इस सूची में न होने वाला कोई भी पहचाना गया मैनेजर ब्लॉक किया जाता है। जब खाली हो, पॉलिसी एक नो-ऑप है। |
|
|
454
|
+
| `blocked` | string[] | `[]` | बिल्ट-इन सूची से परे अतिरिक्त मैनेजर नाम को ब्लॉक करने के लिए (उदा. `['pdm', 'pipx']`)। |
|
|
455
|
+
|
|
456
|
+
बिल्ट-इन ब्लॉक सूची शामिल है: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo। इस सूची में न होने वाले मैनेजर को जोड़ने के लिए `blocked` का उपयोग करें।
|
|
457
|
+
|
|
458
|
+
**उदाहरण कॉन्फ़िगरेशन:**
|
|
459
|
+
|
|
460
|
+
```json
|
|
461
|
+
{
|
|
462
|
+
"enabledPolicies": ["prefer-package-manager"],
|
|
463
|
+
"policyParams": {
|
|
464
|
+
"prefer-package-manager": {
|
|
465
|
+
"allowed": ["uv", "bun"],
|
|
466
|
+
"blocked": ["pdm", "pipx"]
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
इस कॉन्फ़िगरेशन के साथ, `pip install flask` और `pdm install flask` दोनों को Claude को `uv` या `bun` का उपयोग करने के लिए कहने वाले संदेश के साथ अस्वीकार किया जाता है। `uv pip install flask` जैसी कमांड अनुमत हैं क्योंकि `uv` allowlist में है और पहले चेक किया जाता है।
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
476
|
+
## AI व्यवहार
|
|
477
|
+
|
|
478
|
+
पहचानें कि जब एजेंट्स अटक जाते हैं या अप्रत्याशित व्यवहार करते हैं।
|
|
442
479
|
|
|
443
480
|
### `warn-repeated-tool-calls`
|
|
444
481
|
|
|
445
|
-
|
|
446
|
-
|
|
482
|
+
**इवेंट:** PreToolUse (सभी टूल्स)
|
|
483
|
+
**डिफ़ॉल्ट:** Claude को पुनर्विचार करने के लिए निर्देश देता है जब एक ही टूल को समान पैरामीटर के साथ 3 या अधिक बार कॉल किया जाता है - एक सामान्य संकेत कि एजेंट एक लूप में फंसा है।
|
|
447
484
|
|
|
448
|
-
कोई
|
|
485
|
+
कोई पैरामीटर नहीं।
|
|
449
486
|
|
|
450
487
|
---
|
|
451
488
|
|
|
452
|
-
##
|
|
489
|
+
## वर्कफ़्लो
|
|
453
490
|
|
|
454
|
-
एक
|
|
491
|
+
एक अनुशासित सत्र-के-अंत वर्कफ़्लो लागू करें। ये पॉलिसीज़ **Stop** इवेंट पर काम करती हैं और Claude को तब तक रोकते हैं जब तक प्रत्येक शर्त पूरी नहीं हो जाती। वे एक प्राकृतिक निर्भरता श्रृंखला का पालन करते हैं: commit → push → PR → CI। यदि एक पॉलिसी अस्वीकार करती है, बाद की पॉलिसीज़ श्रृंखला में छोड़ दी जाती हैं (deny शॉर्ट-सर्किट)।
|
|
455
492
|
|
|
456
|
-
सभी
|
|
493
|
+
सभी वर्कफ़्लो पॉलिसीज़ **fail-open** हैं: यदि आवश्यक टूल उपलब्ध नहीं है (उदा. `gh` इंस्टॉल नहीं है, कोई git remote नहीं), पॉलिसी एक सूचना संदेश के साथ अनुमति देती है जो समझाती है कि जांच क्यों छोड़ी गई थी।
|
|
457
494
|
|
|
458
495
|
### `require-commit-before-stop`
|
|
459
496
|
|
|
460
|
-
|
|
461
|
-
|
|
497
|
+
**इवेंट:** Stop
|
|
498
|
+
**डिफ़ॉल्ट:** जब अप्रतिबद्ध परिवर्तन होते हैं (संशोधित, स्टेजड, या अनट्रैक किए गए फाइलें) तो रोकने से अस्वीकार करता है। कार्य निर्देशिका स्वच्छ होने पर एक सूचना संदेश देता है।
|
|
462
499
|
|
|
463
|
-
कोई
|
|
500
|
+
कोई पैरामीटर नहीं।
|
|
464
501
|
|
|
465
502
|
---
|
|
466
503
|
|
|
467
504
|
### `require-push-before-stop`
|
|
468
505
|
|
|
469
|
-
|
|
470
|
-
|
|
506
|
+
**इवेंट:** Stop
|
|
507
|
+
**डिफ़ॉल्ट:** जब अपुष्ट कमिट होते हैं या जब वर्तमान ब्रांच के पास कोई remote tracking ब्रांच नहीं होती तो रोकने से अस्वीकार करता है। यदि आवश्यक हो तो ट्रैकिंग ब्रांच बनाने के लिए `git push -u` का सुझाव देता है। यदि कोई remote कॉन्फ़िगर नहीं है तो fail open करता है।
|
|
471
508
|
|
|
472
|
-
|
|
509
|
+
**पैरामीटर:**
|
|
473
510
|
|
|
474
|
-
|
|
|
511
|
+
| पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
|
|
475
512
|
|-------|------|---------|-------------|
|
|
476
|
-
| `remote` | `string` | `"origin"` | Remote
|
|
513
|
+
| `remote` | `string` | `"origin"` | Remote नाम जिसे पुश करना है। |
|
|
477
514
|
|
|
478
|
-
|
|
515
|
+
**उदाहरण:**
|
|
479
516
|
|
|
480
517
|
```json
|
|
481
518
|
{
|
|
@@ -491,37 +528,37 @@ Detect करें जब agents stuck हो जाएं या unexpectedly
|
|
|
491
528
|
|
|
492
529
|
### `require-pr-before-stop`
|
|
493
530
|
|
|
494
|
-
|
|
495
|
-
|
|
531
|
+
**इवेंट:** Stop
|
|
532
|
+
**डिफ़ॉल्ट:** जब वर्तमान ब्रांच के लिए कोई pull request मौजूद नहीं है, या जब मौजूदा PR बंद/merged है तो रोकने से अस्वीकार करता है। Claude को `gh pr create` के साथ एक PR बनाने के लिए निर्देश देता है।
|
|
496
533
|
|
|
497
|
-
कोई
|
|
534
|
+
कोई पैरामीटर नहीं।
|
|
498
535
|
|
|
499
536
|
<Note>
|
|
500
|
-
इस
|
|
501
|
-
|
|
537
|
+
इस पॉलिसी के लिए [GitHub CLI](https://cli.github.com/) (`gh`) को इंस्टॉल और प्रमाणित किया जाना आवश्यक है।
|
|
538
|
+
pull request के लिए read access के साथ `repo` scope वाले एक व्यक्तिगत एक्सेस टोकन के साथ `gh auth login` चलाएं। यदि `gh` इंस्टॉल या प्रमाणित नहीं है, पॉलिसी fail open करती है और कारण को Claude को रिपोर्ट करती है।
|
|
502
539
|
</Note>
|
|
503
540
|
|
|
504
541
|
---
|
|
505
542
|
|
|
506
543
|
### `require-ci-green-before-stop`
|
|
507
544
|
|
|
508
|
-
|
|
509
|
-
|
|
545
|
+
**इवेंट:** Stop
|
|
546
|
+
**डिफ़ॉल्ट:** जब CI चेक वर्तमान ब्रांच पर विफल हो रहे हैं या अभी भी चल रहे हैं तो रोकने से अस्वीकार करता है। GitHub Actions वर्कफ़्लो चलाता है और तीसरे पक्ष के बॉट चेक दोनों की जांच करता है (उदा. CodeRabbit, SonarCloud, Codecov)। `skipped` और `cancelled` निष्कर्षों को सफलता मानता है। सभी चेक पास होने पर एक सूचना संदेश देता है।
|
|
510
547
|
|
|
511
|
-
कोई
|
|
548
|
+
कोई पैरामीटर नहीं।
|
|
512
549
|
|
|
513
550
|
<Note>
|
|
514
|
-
इस
|
|
515
|
-
|
|
551
|
+
इस पॉलिसी के लिए [GitHub CLI](https://cli.github.com/) (`gh`) को इंस्टॉल और प्रमाणित किया जाना आवश्यक है।
|
|
552
|
+
Actions वर्कफ़्लो चलता है और Checks API के लिए read access के साथ `repo` scope वाले एक व्यक्तिगत एक्सेस टोकन के साथ `gh auth login` चलाएं। यदि `gh` इंस्टॉल या प्रमाणित नहीं है, पॉलिसी fail open करती है और कारण को Claude को रिपोर्ट करती है।
|
|
516
553
|
</Note>
|
|
517
554
|
|
|
518
555
|
---
|
|
519
556
|
|
|
520
557
|
---
|
|
521
558
|
|
|
522
|
-
##
|
|
559
|
+
## व्यक्तिगत पॉलिसीज़ को अक्षम करना
|
|
523
560
|
|
|
524
|
-
|
|
561
|
+
अपनी कॉन्फ़िगरेशन में `enabledPolicies` से एक विशिष्ट पॉलिसी को हटाएं, या डैशबोर्ड के Policies टैब में इसे बंद करें।
|
|
525
562
|
|
|
526
563
|
```json
|
|
527
564
|
{
|
|
@@ -532,4 +569,4 @@ Detect करें जब agents stuck हो जाएं या unexpectedly
|
|
|
532
569
|
}
|
|
533
570
|
```
|
|
534
571
|
|
|
535
|
-
|
|
572
|
+
`enabledPolicies` में सूचीबद्ध नहीं की गई पॉलिसीज़ चलती नहीं हैं, भले ही उनके लिए `policyParams` प्रविष्टियां मौजूद हों।
|