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.
Files changed (177) hide show
  1. package/.next/standalone/.failproofai/policies/review-policies.mjs +4 -3
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  11. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  12. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  20. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  21. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  22. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  23. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/index.html +1 -1
  28. package/.next/standalone/.next/server/app/index.rsc +15 -15
  29. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  30. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  31. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  32. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  33. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  34. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  35. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  38. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  41. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  44. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  45. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  48. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  51. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  52. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0~kmh8w._.js → [root-of-the-server]__096k.db._.js} +2 -2
  54. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  55. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0rh.18_._.js → [root-of-the-server]__0kyh86x._.js} +2 -2
  58. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  59. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
  60. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  63. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  64. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  65. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  66. package/.next/standalone/.next/server/pages/404.html +2 -2
  67. package/.next/standalone/.next/server/pages/500.html +1 -1
  68. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  70. package/.next/standalone/.next/static/chunks/{0gbf4cphy8ksq.js → 0-dm_9a6nsc2l.js} +1 -1
  71. package/.next/standalone/.next/static/chunks/{12~yi9oj8av8p.js → 01pmw1-asbek~.js} +2 -2
  72. package/.next/standalone/.next/static/chunks/{0v.yd0kg_ld3r.js → 051m32nx~n5yr.js} +1 -1
  73. package/.next/standalone/.next/static/chunks/{09_k80d~cq2wg.js → 0a-yctdwn368y.js} +1 -1
  74. package/.next/standalone/.next/static/chunks/{0bvhsa6zva2o..js → 0ksdlt_1hucdm.js} +1 -1
  75. package/.next/standalone/.next/static/chunks/{01b~z8f1ws0rk.js → 0l-mu4okl-cj1.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{08t08igdql9yt.js → 0mazj-p-~2kc6.js} +1 -1
  77. package/.next/standalone/.next/static/chunks/0qakntsrpc~1j.js +6 -0
  78. package/.next/standalone/.next/static/chunks/{03rz6ykw-a2xi.js → 156zca6aewyr-.js} +1 -1
  79. package/.next/standalone/CHANGELOG.md +18 -0
  80. package/.next/standalone/bin/failproofai.mjs +91 -4
  81. package/.next/standalone/dist/cli.mjs +1156 -55
  82. package/.next/standalone/docs/ar/built-in-policies.mdx +140 -103
  83. package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
  84. package/.next/standalone/docs/ar/examples.mdx +86 -33
  85. package/.next/standalone/docs/ar/getting-started.mdx +82 -29
  86. package/.next/standalone/docs/built-in-policies.mdx +3 -3
  87. package/.next/standalone/docs/de/built-in-policies.mdx +97 -60
  88. package/.next/standalone/docs/de/custom-policies.mdx +56 -56
  89. package/.next/standalone/docs/de/examples.mdx +72 -18
  90. package/.next/standalone/docs/de/getting-started.mdx +72 -20
  91. package/.next/standalone/docs/es/built-in-policies.mdx +91 -54
  92. package/.next/standalone/docs/es/custom-policies.mdx +55 -55
  93. package/.next/standalone/docs/es/examples.mdx +73 -19
  94. package/.next/standalone/docs/es/getting-started.mdx +72 -20
  95. package/.next/standalone/docs/fr/built-in-policies.mdx +99 -62
  96. package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
  97. package/.next/standalone/docs/fr/examples.mdx +78 -24
  98. package/.next/standalone/docs/fr/getting-started.mdx +65 -13
  99. package/.next/standalone/docs/he/built-in-policies.mdx +139 -99
  100. package/.next/standalone/docs/he/custom-policies.mdx +75 -75
  101. package/.next/standalone/docs/he/examples.mdx +87 -33
  102. package/.next/standalone/docs/he/getting-started.mdx +84 -33
  103. package/.next/standalone/docs/hi/built-in-policies.mdx +203 -166
  104. package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
  105. package/.next/standalone/docs/hi/examples.mdx +90 -36
  106. package/.next/standalone/docs/hi/getting-started.mdx +80 -27
  107. package/.next/standalone/docs/i18n/README.ar.md +69 -69
  108. package/.next/standalone/docs/i18n/README.de.md +46 -46
  109. package/.next/standalone/docs/i18n/README.es.md +42 -42
  110. package/.next/standalone/docs/i18n/README.fr.md +39 -39
  111. package/.next/standalone/docs/i18n/README.he.md +83 -83
  112. package/.next/standalone/docs/i18n/README.hi.md +69 -69
  113. package/.next/standalone/docs/i18n/README.it.md +72 -72
  114. package/.next/standalone/docs/i18n/README.ja.md +71 -71
  115. package/.next/standalone/docs/i18n/README.ko.md +52 -52
  116. package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
  117. package/.next/standalone/docs/i18n/README.ru.md +66 -66
  118. package/.next/standalone/docs/i18n/README.tr.md +82 -83
  119. package/.next/standalone/docs/i18n/README.vi.md +70 -71
  120. package/.next/standalone/docs/i18n/README.zh.md +51 -51
  121. package/.next/standalone/docs/it/built-in-policies.mdx +115 -78
  122. package/.next/standalone/docs/it/custom-policies.mdx +69 -69
  123. package/.next/standalone/docs/it/examples.mdx +93 -39
  124. package/.next/standalone/docs/it/getting-started.mdx +73 -21
  125. package/.next/standalone/docs/ja/built-in-policies.mdx +155 -118
  126. package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
  127. package/.next/standalone/docs/ja/examples.mdx +76 -22
  128. package/.next/standalone/docs/ja/getting-started.mdx +65 -13
  129. package/.next/standalone/docs/ko/built-in-policies.mdx +103 -66
  130. package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
  131. package/.next/standalone/docs/ko/examples.mdx +87 -33
  132. package/.next/standalone/docs/ko/getting-started.mdx +61 -9
  133. package/.next/standalone/docs/pt-br/built-in-policies.mdx +72 -35
  134. package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
  135. package/.next/standalone/docs/pt-br/examples.mdx +78 -24
  136. package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
  137. package/.next/standalone/docs/ru/built-in-policies.mdx +135 -98
  138. package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
  139. package/.next/standalone/docs/ru/examples.mdx +77 -22
  140. package/.next/standalone/docs/ru/getting-started.mdx +74 -22
  141. package/.next/standalone/docs/tr/built-in-policies.mdx +126 -89
  142. package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
  143. package/.next/standalone/docs/tr/examples.mdx +97 -42
  144. package/.next/standalone/docs/tr/getting-started.mdx +75 -23
  145. package/.next/standalone/docs/vi/built-in-policies.mdx +116 -81
  146. package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
  147. package/.next/standalone/docs/vi/examples.mdx +93 -38
  148. package/.next/standalone/docs/vi/getting-started.mdx +74 -22
  149. package/.next/standalone/docs/zh/built-in-policies.mdx +117 -82
  150. package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
  151. package/.next/standalone/docs/zh/examples.mdx +90 -36
  152. package/.next/standalone/docs/zh/getting-started.mdx +73 -21
  153. package/.next/standalone/package.json +1 -1
  154. package/.next/standalone/server.js +1 -1
  155. package/.next/standalone/src/auth/login.ts +104 -0
  156. package/.next/standalone/src/auth/logout.ts +50 -0
  157. package/.next/standalone/src/auth/token-store.ts +64 -0
  158. package/.next/standalone/src/hooks/builtin-policies.ts +27 -21
  159. package/.next/standalone/src/hooks/handler.ts +35 -15
  160. package/.next/standalone/src/relay/daemon.ts +362 -0
  161. package/.next/standalone/src/relay/pid.ts +76 -0
  162. package/.next/standalone/src/relay/queue.ts +225 -0
  163. package/bin/failproofai.mjs +91 -4
  164. package/dist/cli.mjs +1156 -55
  165. package/package.json +1 -1
  166. package/src/auth/login.ts +104 -0
  167. package/src/auth/logout.ts +50 -0
  168. package/src/auth/token-store.ts +64 -0
  169. package/src/hooks/builtin-policies.ts +27 -21
  170. package/src/hooks/handler.ts +35 -15
  171. package/src/relay/daemon.ts +362 -0
  172. package/src/relay/pid.ts +76 -0
  173. package/src/relay/queue.ts +225 -0
  174. package/.next/standalone/.next/static/chunks/0wlyoif4_kj_t.js +0 -6
  175. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_buildManifest.js +0 -0
  176. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_clientMiddlewareManifest.js +0 -0
  177. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_ssgManifest.js +0 -0
@@ -1,59 +1,60 @@
1
1
  ---
2
- title: Built-in Policies
3
- description: "सभी 30 built-in policies जो agent failure modes को catch करते हैं"
2
+ title: बिल्ट-इन पॉलिसीज़
3
+ description: "सभी 30 बिल्ट-इन पॉलिसीज़ जो एजेंट की सामान्य विफलता को रोकती हैं"
4
4
  icon: shield
5
5
  ---
6
6
 
7
- failproofai 30 built-in policies के साथ आता है जो common agent failure modes को catch करते हैं। प्रत्येक policy एक specific hook event type और tool name पर fire होती है। नौ policies parameters स्वीकार करती हैं जो आपको code लिखे बिना उनके behavior को tune करने देती हैं। चार workflow policies एक commit → push → PR → CI pipeline को enforce करती हैं जिसे Claude को stop करने से पहले पूरा करना होता है।
7
+ failproofai 30 बिल्ट-इन पॉलिसीज़ के साथ आता है जो एजेंट की सामान्य विफलता मोड को रोकती हैं। प्रत्येक पॉलिसी एक विशिष्ट हुक इवेंट प्रकार और टूल नाम पर काम करती है। नौ पॉलिसीज़ पैरामीटर स्वीकार करती हैं जो आपको कोड लिखे बिना उनके व्यवहार को ट्यून करने देते हैं। चार वर्कफ़्लो पॉलिसीज़ एक commit → push → PR → CI पाइपलाइन लागू करती हैं इससे पहले कि Claude रुके।
8
8
 
9
9
  ---
10
10
 
11
- ## Overview
11
+ ## अवलोकन
12
12
 
13
- Policies को categories में grouped किया गया है:
13
+ पॉलिसीज़ को श्रेणियों में विभाजित किया गया है:
14
14
 
15
- | Category | Policies | Hook type |
15
+ | श्रेणी | पॉलिसीज़ | हुक प्रकार |
16
16
  |----------|----------|-----------|
17
- | [Dangerous commands](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
18
- | [Secrets (sanitizers)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
19
- | [Environment](#environment) | block-env-files, protect-env-vars | PreToolUse |
20
- | [File access](#file-access) | block-read-outside-cwd, block-secrets-write | PreToolUse |
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
- | [Database](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
23
- | [Warnings](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
24
- | [Workflow](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
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-`** — agent को proceed करने से रोकता है।
27
- - **`warn-`** — agent को additional context देता है ताकि वह self-correct कर सके।
28
- - **`sanitize-`** — tool output से sensitive data को scrub करता है इससे पहले कि agent को दिया जाए।
29
- - **`require-`** — Stop event को block करता है जब तक conditions पूरी हो जाएं।
27
+ - **`block-`** — एजेंट को आगे बढ़ने से रोकें।
28
+ - **`warn-`** — एजेंट को अतिरिक्त संदर्भ दें ताकि यह स्वयं को सही कर सके।
29
+ - **`sanitize-`** — एजेंट को देखने से पहले टूल आउटपुट से संवेदनशील डेटा हटाएं।
30
+ - **`require-`** — शर्तें पूरी होने तक Stop इवेंट को ब्लॉक करें।
30
31
 
31
32
  ---
32
33
 
33
34
  <Tip>
34
- हर policy `policyParams` में एक optional `hint` field को support करती है। Hint को deny या instruct message में append किया जाता है जो Claude देखता है, actionable guidance देते हुए बिना policy code को modify किए। Built-in, custom, और convention policies के साथ काम करता है। विस्तार के लिए [Configuration → hint](/hi/configuration#hint-cross-cutting) देखें।
35
+ हर पॉलिसी `policyParams` में एक वैकल्पिक `hint` फील्ड को सपोर्ट करती है। hint को deny या instruct संदेश में जोड़ा जाता है जो Claude देखता है, जिससे कार्यसंचालन मार्गदर्शन मिलता है बिना पॉलिसी कोड को संशोधित किए। बिल्ट-इन, कस्टम, और कन्वेंशन पॉलिसीज़ के साथ काम करता है। विवरण के लिए [Configuration → hint](/hi/configuration#hint-cross-cutting) देखें।
35
36
  </Tip>
36
37
 
37
38
  ---
38
39
 
39
- ## Dangerous commands
40
+ ## खतरनाक कमांड
40
41
 
41
- Agents को उन operations से रोकें जो undo करने में मुश्किल हैं या host system को damage कर सकते हैं।
42
+ एजेंट्स को ऐसे ऑपरेशन चलाने से रोकें जो पूर्ववत करना मुश्किल हैं या होस्ट सिस्टम को नुकसान पहुंचा सकते हैं।
42
43
 
43
44
  ### `block-sudo`
44
45
 
45
- **Event:** PreToolUse (Bash)
46
- **Default:** किसी भी `sudo` command को deny करता है।
46
+ **इवेंट:** PreToolUse (Bash)
47
+ **डिफ़ॉल्ट:** किसी भी `sudo` कमांड को अस्वीकार करता है।
47
48
 
48
- Invocations को block करता है जिनमें `sudo` keyword शामिल होता है। Pattern matching को shell operator injection के through bypass को रोकने के लिए raw string पर नहीं, parsed command tokens पर किया जाता है।
49
+ ऐसे इनवोकेशन को ब्लॉक करता है जिनमें `sudo` कीवर्ड शामिल हो। पैटर्न मिलान कच्ची स्ट्रिंग के बजाय पार्स किए गए कमांड टोकन पर किया जाता है, shell ऑपरेटर इंजेक्शन के माध्यम से बाईपास को रोकने के लिए।
49
50
 
50
- **Parameters:**
51
+ **पैरामीटर:**
51
52
 
52
- | Param | Type | Default | Description |
53
+ | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
53
54
  |-------|------|---------|-------------|
54
- | `allowPatterns` | `string[]` | `[]` | Exact command prefixes जो permitted हैं। प्रत्येक entry को parsed argv tokens के against match किया जाता है। |
55
+ | `allowPatterns` | `string[]` | `[]` | सटीक कमांड प्रीफिक्स जो अनुमति हैं। प्रत्येक प्रविष्टि पार्स किए गए argv टोकन के विरुद्ध मिलाई जाती है। |
55
56
 
56
- **Example:**
57
+ **उदाहरण:**
57
58
 
58
59
  ```json
59
60
  {
@@ -65,26 +66,26 @@ Invocations को block करता है जिनमें `sudo` keyword
65
66
  }
66
67
  ```
67
68
 
68
- इस config के साथ, `sudo systemctl status nginx` को allow किया जाता है, लेकिन `sudo rm /etc/hosts` को deny किया जाता है।
69
+ इस कॉन्फ़िगरेशन के साथ, `sudo systemctl status nginx` अनुमति है, लेकिन `sudo rm /etc/hosts` अस्वीकृत है।
69
70
 
70
71
  <Note>
71
- Patterns को raw command string पर नहीं, parsed tokens के against match किया जाता है। यह appended shell operators के through bypass को रोकता है (उदाहरण के लिए `sudo systemctl status x; rm -rf /` को `sudo systemctl status *` से match नहीं किया जाता)।
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
- **Event:** PreToolUse (Bash)
79
- **Default:** `rm -rf`, `rm -fr`, और similar recursive deletion forms को deny करता है।
79
+ **इवेंट:** PreToolUse (Bash)
80
+ **डिफ़ॉल्ट:** `rm -rf`, `rm -fr`, और समान पुनरावर्ती विलोपन फॉर्म को अस्वीकार करता है।
80
81
 
81
- **Parameters:**
82
+ **पैरामीटर:**
82
83
 
83
- | Param | Type | Default | Description |
84
+ | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
84
85
  |-------|------|---------|-------------|
85
- | `allowPaths` | `string[]` | `[]` | Paths जो recursively delete करने के लिए safe हैं (जैसे `/tmp`)। |
86
+ | `allowPaths` | `string[]` | `[]` | पथ जो पुनरावर्ती रूप से हटाने के लिए सुरक्षित हैं (उदा. `/tmp`)। |
86
87
 
87
- **Example:**
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
- **Event:** PreToolUse (Bash)
104
- **Default:** `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash`, और similar patterns को deny करता है।
104
+ **इवेंट:** PreToolUse (Bash)
105
+ **डिफ़ॉल्ट:** `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash`, और समान पैटर्न को अस्वीकार करता है।
105
106
 
106
- कोई parameters नहीं।
107
+ कोई पैरामीटर नहीं।
107
108
 
108
109
  ---
109
110
 
110
111
  ### `block-failproofai-commands`
111
112
 
112
- **Event:** PreToolUse (Bash)
113
- **Default:** उन commands को deny करता है जो failproofai को uninstall या disable करेंगे (जैसे `npm uninstall failproofai`, `failproofai policies --uninstall`)।
113
+ **इवेंट:** PreToolUse (Bash)
114
+ **डिफ़ॉल्ट:** ऐसी कमांड को अस्वीकार करता है जो failproofai को अनइंस्टॉल या अक्षम करेंगी (उदा. `npm uninstall failproofai`, `failproofai policies --uninstall`)।
114
115
 
115
- कोई parameters नहीं।
116
+ कोई पैरामीटर नहीं।
116
117
 
117
118
  ---
118
119
 
119
- ## Secrets (sanitizers)
120
+ ## सीक्रेट्स (सैनिटाइज़र)
120
121
 
121
- Agents को अपने context या output में credentials leak करने से रोकें। Sanitizer policies **PostToolUse** events पर fire होती हैं। जब Claude एक Bash command run करता है, एक file read करता है, या कोई भी tool call करता है, ये policies output को inspect करती हैं इससे पहले कि वह Claude को return किया जाए। अगर secret pattern detect होता है, तो policy एक deny decision return करती है जो output को pass back होने से रोकता है।
122
+ एजेंट्स को अपने संदर्भ या आउटपुट में क्रेडेंशियल लीक करने से रोकें। सैनिटाइज़र पॉलिसीज़ **PostToolUse** इवेंट पर काम करती हैं। जब Claude एक Bash कमांड चलाता है, एक फाइल पढ़ता है, या कोई भी टूल कॉल करता है, ये पॉलिसीज़ आउटपुट को Claude को लौटाए जाने से पहले निरीक्षण करती हैं। यदि एक सीक्रेट पैटर्न पाया जाता है, पॉलिसी एक अस्वीकार निर्णय देती है जो आउटपुट को वापस पास किए जाने से रोकता है।
122
123
 
123
124
  ### `sanitize-jwt`
124
125
 
125
- **Event:** PostToolUse (सभी tools)
126
- **Default:** JWT tokens को redact करता है (तीन base64url segments को `.` से separated)।
126
+ **इवेंट:** PostToolUse (सभी टूल्स)
127
+ **डिफ़ॉल्ट:** JWT टोकन को रिडैक्ट करता है (तीन base64url सेगमेंट `.` से अलग)।
127
128
 
128
- कोई parameters नहीं।
129
+ कोई पैरामीटर नहीं।
129
130
 
130
131
  ---
131
132
 
132
133
  ### `sanitize-api-keys`
133
134
 
134
- **Event:** PostToolUse (सभी tools)
135
- **Default:** Common API key formats को redact करता है: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), AWS access keys (`AKIA`), Stripe keys (`sk_live_`, `sk_test_`), और Google API keys (`AIza`)।
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
- **Parameters:**
138
+ **पैरामीटर:**
138
139
 
139
- | Param | Type | Default | Description |
140
+ | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
140
141
  |-------|------|---------|-------------|
141
- | `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Additional regex patterns को secrets मानने के लिए। |
142
+ | `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | सीक्रेट मानने के लिए अतिरिक्त regex पैटर्न। |
142
143
 
143
- **Example:**
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
- **Event:** PostToolUse (सभी tools)
163
- **Default:** Database connection strings को redact करता है जिनमें embedded credentials होते हैं (जैसे `postgresql://user:password@host/db`)।
163
+ **इवेंट:** PostToolUse (सभी टूल्स)
164
+ **डिफ़ॉल्ट:** डेटाबेस कनेक्शन स्ट्रिंग को रिडैक्ट करता है जिनमें एंबेडेड क्रेडेंशियल हैं (उदा. `postgresql://user:password@host/db`)।
164
165
 
165
- कोई parameters नहीं।
166
+ कोई पैरामीटर नहीं।
166
167
 
167
168
  ---
168
169
 
169
170
  ### `sanitize-private-key-content`
170
171
 
171
- **Event:** PostToolUse (सभी tools)
172
- **Default:** PEM blocks को redact करता है (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, आदि)।
172
+ **इवेंट:** PostToolUse (सभी टूल्स)
173
+ **डिफ़ॉल्ट:** PEM ब्लॉक को रिडैक्ट करता है (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, आदि)।
173
174
 
174
- कोई parameters नहीं।
175
+ कोई पैरामीटर नहीं।
175
176
 
176
177
  ---
177
178
 
178
179
  ### `sanitize-bearer-tokens`
179
180
 
180
- **Event:** PostToolUse (सभी tools)
181
- **Default:** `Authorization: Bearer <token>` headers को redact करता है जहां token 20 या उससे ज्यादा characters है।
181
+ **इवेंट:** PostToolUse (सभी टूल्स)
182
+ **डिफ़ॉल्ट:** `Authorization: Bearer <token>` हेडर को रिडैक्ट करता है जहां टोकन 20 या अधिक वर्णों का है।
182
183
 
183
- कोई parameters नहीं।
184
+ कोई पैरामीटर नहीं।
184
185
 
185
186
  ---
186
187
 
187
- ## Environment
188
+ ## पर्यावरण
188
189
 
189
- Agents द्वारा sensitive environment configuration को read या expose किए जाने से बचाएं।
190
+ एजेंट्स द्वारा संवेदनशील पर्यावरण कॉन्फ़िगरेशन को पढ़े या उजागर किए जाने से सुरक्षित रखें।
190
191
 
191
192
  ### `block-env-files`
192
193
 
193
- **Event:** PreToolUse (Bash, Read)
194
- **Default:** `.env` files को read करने को deny करता है जैसे `cat .env`, `.env` को file path के रूप में `Read` tool calls, आदि।
194
+ **इवेंट:** PreToolUse (Bash, Read)
195
+ **डिफ़ॉल्ट:** `.env` फाइलों को `cat .env`, Read टूल कॉल के माध्यम से फाइल पथ के रूप में `.env` के साथ, आदि पढ़ने से अस्वीकार करता है।
195
196
 
196
- `.envrc` या अन्य environment-adjacent files को block नहीं करता केवल exactly `.env` नाम की files।
197
+ `.envrc` या अन्य पर्यावरण-निकटवर्ती फाइलों को ब्लॉक नहीं करता है - केवल ठीक `.env` नामित फाइलें।
197
198
 
198
- कोई parameters नहीं।
199
+ कोई पैरामीटर नहीं।
199
200
 
200
201
  ---
201
202
 
202
203
  ### `protect-env-vars`
203
204
 
204
- **Event:** PreToolUse (Bash)
205
- **Default:** उन commands को deny करता है जो environment variables को print करते हैं: `printenv`, `env`, `echo $VAR`।
205
+ **इवेंट:** PreToolUse (Bash)
206
+ **डिफ़ॉल्ट:** पर्यावरण वेरिएबल प्रिंट करने वाली कमांड को अस्वीकार करता है: `printenv`, `env`, `echo $VAR`।
206
207
 
207
- कोई parameters नहीं।
208
+ कोई पैरामीटर नहीं।
208
209
 
209
210
  ---
210
211
 
211
- ## File access
212
+ ## फाइल एक्सेस
212
213
 
213
- Agents को project boundaries के अंदर काम करने और sensitive files से दूर रहने के लिए रखें।
214
+ एजेंट्स को प्रोजेक्ट सीमाओं के अंदर काम करने और संवेदनशील फाइलों से दूर रखें।
214
215
 
215
216
  ### `block-read-outside-cwd`
216
217
 
217
- **Event:** PreToolUse (Read, Bash)
218
- **Default:** Current working directory (project root) के बाहर files को read करने को deny करता है।
218
+ **इवेंट:** PreToolUse (Read, Bash)
219
+ **डिफ़ॉल्ट:** वर्तमान कार्य निर्देशिका (प्रोजेक्ट रूट) के बाहर फाइलों को पढ़ने से अस्वीकार करता है।
219
220
 
220
- **Parameters:**
221
+ **पैरामीटर:**
221
222
 
222
- | Param | Type | Default | Description |
223
+ | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
223
224
  |-------|------|---------|-------------|
224
- | `allowPaths` | `string[]` | `[]` | Absolute path prefixes जो permitted हैं भले ही cwd के बाहर हों। |
225
+ | `allowPaths` | `string[]` | `[]` | निरपेक्ष पथ प्रीफिक्स जो अनुमति हैं यहां तक कि अगर cwd के बाहर। |
225
226
 
226
- **Example:**
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
- **Event:** PreToolUse (Write, Edit)
243
- **Default:** Private keys और certificates के लिए commonly used files में writes को deny करता है: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`।
243
+ **इवेंट:** PreToolUse (Write, Edit)
244
+ **डिफ़ॉल्ट:** निजी कुंजियों और प्रमाणपत्रों के लिए आमतौर पर उपयोग की जाने वाली फाइलों में लिखने से अस्वीकार करता है: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`।
244
245
 
245
- **Parameters:**
246
+ **पैरामीटर:**
246
247
 
247
- | Param | Type | Default | Description |
248
+ | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
248
249
  |-------|------|---------|-------------|
249
- | `additionalPatterns` | `string[]` | `[]` | Additional filename patterns (glob-style) को block करने के लिए। |
250
+ | `additionalPatterns` | `string[]` | `[]` | ब्लॉक करने के लिए अतिरिक्त फाइलनाम पैटर्न (glob-स्टाइल)। |
250
251
 
251
- **Example:**
252
+ **उदाहरण:**
252
253
 
253
254
  ```json
254
255
  {
@@ -264,20 +265,20 @@ Agents को project boundaries के अंदर काम करने औ
264
265
 
265
266
  ## Git
266
267
 
267
- Accidental pushes, force-pushes, और branch mistakes को रोकें जो undo करने में मुश्किल हैं।
268
+ आकस्मिक पुश, force-पुश, और ब्रांच गलतियों को रोकें जो पूर्ववत करना मुश्किल हैं।
268
269
 
269
270
  ### `block-push-master`
270
271
 
271
- **Event:** PreToolUse (Bash)
272
- **Default:** `git push origin main` और `git push origin master` को deny करता है।
272
+ **इवेंट:** PreToolUse (Bash)
273
+ **डिफ़ॉल्ट:** `git push origin main` और `git push origin master` को अस्वीकार करता है।
273
274
 
274
- **Parameters:**
275
+ **पैरामीटर:**
275
276
 
276
- | Param | Type | Default | Description |
277
+ | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
277
278
  |-------|------|---------|-------------|
278
- | `protectedBranches` | `string[]` | `["main", "master"]` | Branch names जिन्हें directly push नहीं किया जा सकता। |
279
+ | `protectedBranches` | `string[]` | `["main", "master"]` | ब्रांच नाम जो सीधे नहीं धकेले जा सकते। |
279
280
 
280
- **Example:**
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
- सभी branches में push करने की allow करने के लिए (effectively इस policy को `enabledPolicies` से remove किए बिना disable करने के लिए), `protectedBranches: []` set करें।
294
+ सभी ब्रांचों में पुश करने की अनुमति देने के लिए (प्रभावी रूप से इस पॉलिसी को `enabledPolicies` से हटाए बिना अक्षम करने के लिए), `protectedBranches: []` सेट करें।
294
295
  </Tip>
295
296
 
296
297
  ---
297
298
 
298
299
  ### `block-work-on-main`
299
300
 
300
- **Event:** PreToolUse (Bash)
301
- **Default:** `main` या `master` branches को directly checkout करने को deny करता है।
301
+ **इवेंट:** PreToolUse (Bash)
302
+ **डिफ़ॉल्ट:** `main` या `master` ब्रांच को सीधे चेक आउट करने से अस्वीकार करता है।
302
303
 
303
- **Parameters:**
304
+ **पैरामीटर:**
304
305
 
305
- | Param | Type | Default | Description |
306
+ | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
306
307
  |-------|------|---------|-------------|
307
- | `protectedBranches` | `string[]` | `["main", "master"]` | Branch names जिन्हें directly checkout नहीं किया जा सकता। |
308
+ | `protectedBranches` | `string[]` | `["main", "master"]` | ब्रांच नाम जो सीधे चेक आउट नहीं किए जा सकते। |
308
309
 
309
310
  ---
310
311
 
311
312
  ### `block-force-push`
312
313
 
313
- **Event:** PreToolUse (Bash)
314
- **Default:** `git push --force` और `git push -f` को deny करता है।
314
+ **इवेंट:** PreToolUse (Bash)
315
+ **डिफ़ॉल्ट:** `git push --force` और `git push -f` को अस्वीकार करता है।
315
316
 
316
- कोई policy-specific parameters नहीं। Cross-cutting [`hint`](/hi/configuration#hint-cross-cutting) का उपयोग करके alternatives suggest करें:
317
+ कोई नीति-विशिष्ट पैरामीटर नहीं। विकल्प सुझाने के लिए क्रॉस-कटिंग [`hint`](/hi/configuration#hint-cross-cutting) का उपयोग करें:
317
318
 
318
319
  ```json
319
320
  {
320
321
  "policyParams": {
321
322
  "block-force-push": {
322
- "hint": "अपने current HEAD से एक नई branch बनाएं (जैसे `git checkout -b <new-branch>`) और इसके बजाय उसे push करें।"
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
- **Event:** PreToolUse (Bash)
333
- **Default:** Claude को carefully proceed करने के लिए instruct करता है जब `git commit --amend` run करता है। Command को block नहीं करता।
333
+ **इवेंट:** PreToolUse (Bash)
334
+ **डिफ़ॉल्ट:** Claude को `git commit --amend` चलाते समय सावधानी से आगे बढ़ने के लिए निर्देश देता है। कमांड को ब्लॉक नहीं करता है।
334
335
 
335
- कोई parameters नहीं।
336
+ कोई पैरामीटर नहीं।
336
337
 
337
338
  ---
338
339
 
339
340
  ### `warn-git-stash-drop`
340
341
 
341
- **Event:** PreToolUse (Bash)
342
- **Default:** Claude को confirm करने के लिए instruct करता है `git stash drop` run करने से पहले। Command को block नहीं करता।
342
+ **इवेंट:** PreToolUse (Bash)
343
+ **डिफ़ॉल्ट:** Claude को `git stash drop` चलाने से पहले पुष्टि करने के लिए निर्देश देता है। कमांड को ब्लॉक नहीं करता है।
343
344
 
344
- कोई parameters नहीं।
345
+ कोई पैरामीटर नहीं।
345
346
 
346
347
  ---
347
348
 
348
349
  ### `warn-all-files-staged`
349
350
 
350
- **Event:** PreToolUse (Bash)
351
- **Default:** Claude को review करने के लिए instruct करता है कि वह क्या stage कर रहा है जब `git add -A` या `git add .` run करता है। Command को block नहीं करता।
351
+ **इवेंट:** PreToolUse (Bash)
352
+ **डिफ़ॉल्ट:** Claude को समीक्षा करने के लिए निर्देश देता है कि जब यह `git add -A` या `git add .` चलाता है तो क्या स्टेजिंग कर रहा है। कमांड को ब्लॉक नहीं करता है।
352
353
 
353
- कोई parameters नहीं।
354
+ कोई पैरामीटर नहीं।
354
355
 
355
356
  ---
356
357
 
357
- ## Database
358
+ ## डेटाबेस
358
359
 
359
- Destructive SQL operations को execute होने से पहले catch करें आपके database के against।
360
+ विनाशकारी SQL ऑपरेशन को आपके डेटाबेस के विरुद्ध निष्पादित होने से पहले पकड़ें।
360
361
 
361
362
  ### `warn-destructive-sql`
362
363
 
363
- **Event:** PreToolUse (Bash)
364
- **Default:** Claude को confirm करने के लिए instruct करता है `DROP TABLE`, `DROP DATABASE`, या `DELETE` (बिना `WHERE` clause के) containing SQL run करने से पहले।
364
+ **इवेंट:** PreToolUse (Bash)
365
+ **डिफ़ॉल्ट:** Claude को SQL युक्त `DROP TABLE`, `DROP DATABASE`, या `WHERE` क्लॉज़ के बिना `DELETE` चलाने से पहले पुष्टि करने के लिए निर्देश देता है।
365
366
 
366
- कोई parameters नहीं।
367
+ कोई पैरामीटर नहीं।
367
368
 
368
369
  ---
369
370
 
370
371
  ### `warn-schema-alteration`
371
372
 
372
- **Event:** PreToolUse (Bash)
373
- **Default:** Claude को confirm करने के लिए instruct करता है `ALTER TABLE` statements run करने से पहले।
373
+ **इवेंट:** PreToolUse (Bash)
374
+ **डिफ़ॉल्ट:** Claude को `ALTER TABLE` स्टेटमेंट चलाने से पहले पुष्टि करने के लिए निर्देश देता है।
374
375
 
375
- कोई parameters नहीं।
376
+ कोई पैरामीटर नहीं।
376
377
 
377
378
  ---
378
379
 
379
- ## Warnings
380
+ ## चेतावनियां
380
381
 
381
- Agents को potentially risky लेकिन non-destructive operations से पहले extra context दें।
382
+ एजेंट्स को संभावित रूप से जोखिम भरे लेकिन गैर-विनाशकारी ऑपरेशन से पहले अतिरिक्त संदर्भ दें।
382
383
 
383
384
  ### `warn-large-file-write`
384
385
 
385
- **Event:** PreToolUse (Write)
386
- **Default:** Claude को confirm करने के लिए instruct करता है 1024 KB से बड़ी files write करने से पहले।
386
+ **इवेंट:** PreToolUse (Write)
387
+ **डिफ़ॉल्ट:** Claude को 1024 KB से बड़ी फाइलें लिखने से पहले पुष्टि करने के लिए निर्देश देता है।
387
388
 
388
- **Parameters:**
389
+ **पैरामीटर:**
389
390
 
390
- | Param | Type | Default | Description |
391
+ | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
391
392
  |-------|------|---------|-------------|
392
- | `thresholdKb` | `number` | `1024` | File size threshold kilobytes में जिसके ऊपर warning issue की जाती है। |
393
+ | `thresholdKb` | `number` | `1024` | फाइल आकार थ्रेसहोल्ड किलोबाइट में जिससे ऊपर चेतावनी जारी की जाती है। |
393
394
 
394
- **Example:**
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
- Hook handler payloads पर 1 MB stdin limit को enforce करता है। इस policy को small content के साथ test करने के लिए, `thresholdKb` को 1024 से well below value पर set करें।
408
+ हुक हैंडलर पेलोड पर 1 MB stdin सीमा लागू करता है। छोटी सामग्री के साथ इस पॉलिसी का परीक्षण करने के लिए, `thresholdKb` को 1024 से कहीं नीचे एक मान पर सेट करें।
408
409
  </Note>
409
410
 
410
411
  ---
411
412
 
412
413
  ### `warn-package-publish`
413
414
 
414
- **Event:** PreToolUse (Bash)
415
- **Default:** Claude को confirm करने के लिए instruct करता है `npm publish` run करने से पहले।
415
+ **इवेंट:** PreToolUse (Bash)
416
+ **डिफ़ॉल्ट:** Claude को `npm publish` चलाने से पहले पुष्टि करने के लिए निर्देश देता है।
416
417
 
417
- कोई parameters नहीं।
418
+ कोई पैरामीटर नहीं।
418
419
 
419
420
  ---
420
421
 
421
422
  ### `warn-background-process`
422
423
 
423
- **Event:** PreToolUse (Bash)
424
- **Default:** Claude को careful रहने के लिए instruct करता है जब `nohup`, `&`, `disown`, या `screen` के through background processes launch करते हैं।
424
+ **इवेंट:** PreToolUse (Bash)
425
+ **डिफ़ॉल्ट:** Claude को `nohup`, `&`, `disown`, या `screen` के माध्यम से बैकग्राउंड प्रक्रियाएं लॉन्च करते समय सावधान रहने के लिए निर्देश देता है।
425
426
 
426
- कोई parameters नहीं।
427
+ कोई पैरामीटर नहीं।
427
428
 
428
429
  ---
429
430
 
430
431
  ### `warn-global-package-install`
431
432
 
432
- **Event:** PreToolUse (Bash)
433
- **Default:** Claude को confirm करने के लिए instruct करता है `npm install -g`, `yarn global add`, या `pip install` (virtual environment के बिना) run करने से पहले।
433
+ **इवेंट:** PreToolUse (Bash)
434
+ **डिफ़ॉल्ट:** Claude को `npm install -g`, `yarn global add`, या `pip install` को वर्चुअल वातावरण के बिना चलाने से पहले पुष्टि करने के लिए निर्देश देता है।
434
435
 
435
- कोई parameters नहीं।
436
+ कोई पैरामीटर नहीं।
436
437
 
437
438
  ---
438
439
 
439
- ## AI behavior
440
+ ## पैकेज मैनेजर
440
441
 
441
- Detect करें जब agents stuck हो जाएं या unexpectedly behave करें।
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
- **Event:** PreToolUse (सभी tools)
446
- **Default:** Claude को reconsider करने के लिए instruct करता है जब same tool को 3+ times identical parameters के साथ call किया जाता है एक common sign कि agent loop में stuck है।
482
+ **इवेंट:** PreToolUse (सभी टूल्स)
483
+ **डिफ़ॉल्ट:** Claude को पुनर्विचार करने के लिए निर्देश देता है जब एक ही टूल को समान पैरामीटर के साथ 3 या अधिक बार कॉल किया जाता है - एक सामान्य संकेत कि एजेंट एक लूप में फंसा है।
447
484
 
448
- कोई parameters नहीं।
485
+ कोई पैरामीटर नहीं।
449
486
 
450
487
  ---
451
488
 
452
- ## Workflow
489
+ ## वर्कफ़्लो
453
490
 
454
- एक disciplined end-of-session workflow को enforce करें। ये policies **Stop** event पर fire होती हैं और Claude को stop करने को deny करती हैं जब तक कि प्रत्येक condition पूरी हो जाए। वे एक natural dependency chain follow करते हैं: commit → push → PR → CI। अगर एक policy deny करती है, तो chain में later policies को skip किया जाता है (deny short-circuits)।
491
+ एक अनुशासित सत्र-के-अंत वर्कफ़्लो लागू करें। ये पॉलिसीज़ **Stop** इवेंट पर काम करती हैं और Claude को तब तक रोकते हैं जब तक प्रत्येक शर्त पूरी नहीं हो जाती। वे एक प्राकृतिक निर्भरता श्रृंखला का पालन करते हैं: commit → push → PR → CI। यदि एक पॉलिसी अस्वीकार करती है, बाद की पॉलिसीज़ श्रृंखला में छोड़ दी जाती हैं (deny शॉर्ट-सर्किट)।
455
492
 
456
- सभी workflow policies **fail-open** हैं: अगर required tool available नहीं है (जैसे `gh` installed नहीं, no git remote), policy एक informational message के साथ allow करती है जो explain करता है कि check को क्यों skip किया गया।
493
+ सभी वर्कफ़्लो पॉलिसीज़ **fail-open** हैं: यदि आवश्यक टूल उपलब्ध नहीं है (उदा. `gh` इंस्टॉल नहीं है, कोई git remote नहीं), पॉलिसी एक सूचना संदेश के साथ अनुमति देती है जो समझाती है कि जांच क्यों छोड़ी गई थी।
457
494
 
458
495
  ### `require-commit-before-stop`
459
496
 
460
- **Event:** Stop
461
- **Default:** Uncommitted changes (modified, staged, या untracked files) होने पर stopping को deny करता है। Working directory clean होने पर informational message return करता है।
497
+ **इवेंट:** Stop
498
+ **डिफ़ॉल्ट:** जब अप्रतिबद्ध परिवर्तन होते हैं (संशोधित, स्टेजड, या अनट्रैक किए गए फाइलें) तो रोकने से अस्वीकार करता है। कार्य निर्देशिका स्वच्छ होने पर एक सूचना संदेश देता है।
462
499
 
463
- कोई parameters नहीं।
500
+ कोई पैरामीटर नहीं।
464
501
 
465
502
  ---
466
503
 
467
504
  ### `require-push-before-stop`
468
505
 
469
- **Event:** Stop
470
- **Default:** Unpushed commits होने पर या जब current branch के पास no remote tracking branch हो तो stopping को deny करता है। अगर जरूरत पड़े तो tracking branch बनाने के लिए `git push -u` suggest करता है। अगर no remote configured है तो fail open होता है।
506
+ **इवेंट:** Stop
507
+ **डिफ़ॉल्ट:** जब अपुष्ट कमिट होते हैं या जब वर्तमान ब्रांच के पास कोई remote tracking ब्रांच नहीं होती तो रोकने से अस्वीकार करता है। यदि आवश्यक हो तो ट्रैकिंग ब्रांच बनाने के लिए `git push -u` का सुझाव देता है। यदि कोई remote कॉन्फ़िगर नहीं है तो fail open करता है।
471
508
 
472
- **Parameters:**
509
+ **पैरामीटर:**
473
510
 
474
- | Param | Type | Default | Description |
511
+ | पैरामीटर | प्रकार | डिफ़ॉल्ट | विवरण |
475
512
  |-------|------|---------|-------------|
476
- | `remote` | `string` | `"origin"` | Remote name जिसे push करना है। |
513
+ | `remote` | `string` | `"origin"` | Remote नाम जिसे पुश करना है। |
477
514
 
478
- **Example:**
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
- **Event:** Stop
495
- **Default:** जब current branch के लिए कोई pull request exist हो, या जब existing PR closed/merged हो तो stopping को deny करता है। Claude को `gh pr create` के साथ PR बनाने के लिए instruct करता है।
531
+ **इवेंट:** Stop
532
+ **डिफ़ॉल्ट:** जब वर्तमान ब्रांच के लिए कोई pull request मौजूद नहीं है, या जब मौजूदा PR बंद/merged है तो रोकने से अस्वीकार करता है। Claude को `gh pr create` के साथ एक PR बनाने के लिए निर्देश देता है।
496
533
 
497
- कोई parameters नहीं।
534
+ कोई पैरामीटर नहीं।
498
535
 
499
536
  <Note>
500
- इस policy को [GitHub CLI](https://cli.github.com/) (`gh`) को installed और authenticated होना आवश्यक है।
501
- `gh auth login` को एक personal access token के साथ run करें जिसके पास `repo` scope हो pull requests के लिए read access के लिए। अगर `gh` installed नहीं है या authenticated नहीं है, तो policy fail open होती है और reason को Claude को report करती है।
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
- **Event:** Stop
509
- **Default:** जब CI checks current branch पर failing या still running हों तो stopping को deny करता है। GitHub Actions workflow runs और third-party bot checks (जैसे CodeRabbit, SonarCloud, Codecov) दोनों को check करता है। `skipped` conclusions को success मानता है। सभी checks pass होने पर informational message return करता है।
545
+ **इवेंट:** Stop
546
+ **डिफ़ॉल्ट:** जब CI चेक वर्तमान ब्रांच पर विफल हो रहे हैं या अभी भी चल रहे हैं तो रोकने से अस्वीकार करता है। GitHub Actions वर्कफ़्लो चलाता है और तीसरे पक्ष के बॉट चेक दोनों की जांच करता है (उदा. CodeRabbit, SonarCloud, Codecov) `skipped` और `cancelled` निष्कर्षों को सफलता मानता है। सभी चेक पास होने पर एक सूचना संदेश देता है।
510
547
 
511
- कोई parameters नहीं।
548
+ कोई पैरामीटर नहीं।
512
549
 
513
550
  <Note>
514
- इस policy को [GitHub CLI](https://cli.github.com/) (`gh`) को installed और authenticated होना आवश्यक है।
515
- `gh auth login` को एक personal access token के साथ run करें जिसके पास `repo` scope हो Actions workflow runs और Checks API के लिए read access के लिए। अगर `gh` installed नहीं है या authenticated नहीं है, तो policy fail open होती है और reason को Claude को report करती है।
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
- ## Individual policies को disable करना
559
+ ## व्यक्तिगत पॉलिसीज़ को अक्षम करना
523
560
 
524
- अपने config में `enabledPolicies` से एक specific policy को remove करें, या dashboard के Policies tab में इसे toggle off करें।
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
- Policies जो `enabledPolicies` में listed नहीं हैं, run नहीं होती हैं, भले ही उनके लिए `policyParams` entries exist करें।
572
+ `enabledPolicies` में सूचीबद्ध नहीं की गई पॉलिसीज़ चलती नहीं हैं, भले ही उनके लिए `policyParams` प्रविष्टियां मौजूद हों।