failproofai 0.0.5-beta.0 → 0.0.6-beta.0

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 (149) hide show
  1. package/.next/standalone/.failproofai/policies/workflow-policies.mjs +2 -1
  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]__0r6vvp5._.js → [root-of-the-server]__0.~fd7s._.js} +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.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]__0z5dd-f._.js → [root-of-the-server]__0a.nuas._.js} +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.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/{0j_ivegn3i5wt.js → 0.z51twd.0l5z.js} +1 -1
  71. package/.next/standalone/.next/static/chunks/{04fpsjft~cje..js → 0hctoh28rg838.js} +1 -1
  72. package/.next/standalone/.next/static/chunks/{0.io32u7gjgsb.js → 0hplx-8c-4vpv.js} +1 -1
  73. package/.next/standalone/.next/static/chunks/{0yf_mmdukq6up.js → 0maq.q1t.ri85.js} +2 -2
  74. package/.next/standalone/.next/static/chunks/{0x8vagatq36_7.js → 0teq8wdh3po1n.js} +1 -1
  75. package/.next/standalone/.next/static/chunks/{04mtv9jnqknn3.js → 0uc0um_uz51m_.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{0h4qcn40dunn7.js → 0ul6fk-z.6k-0.js} +1 -1
  77. package/.next/standalone/.next/static/chunks/{0kvldut6ndzyz.js → 0w9lwqy0-v1dk.js} +1 -1
  78. package/.next/standalone/CHANGELOG.md +9 -1
  79. package/.next/standalone/README.md +2 -2
  80. package/.next/standalone/dist/cli.mjs +19 -2
  81. package/.next/standalone/docs/ar/architecture.mdx +66 -65
  82. package/.next/standalone/docs/ar/configuration.mdx +42 -42
  83. package/.next/standalone/docs/ar/custom-policies.mdx +63 -68
  84. package/.next/standalone/docs/architecture.mdx +2 -2
  85. package/.next/standalone/docs/configuration.mdx +1 -1
  86. package/.next/standalone/docs/custom-policies.mdx +2 -6
  87. package/.next/standalone/docs/de/architecture.mdx +92 -92
  88. package/.next/standalone/docs/de/configuration.mdx +35 -35
  89. package/.next/standalone/docs/de/custom-policies.mdx +50 -54
  90. package/.next/standalone/docs/es/architecture.mdx +73 -73
  91. package/.next/standalone/docs/es/configuration.mdx +25 -25
  92. package/.next/standalone/docs/es/custom-policies.mdx +49 -53
  93. package/.next/standalone/docs/fr/architecture.mdx +55 -55
  94. package/.next/standalone/docs/fr/configuration.mdx +26 -26
  95. package/.next/standalone/docs/fr/custom-policies.mdx +42 -46
  96. package/.next/standalone/docs/he/architecture.mdx +67 -67
  97. package/.next/standalone/docs/he/configuration.mdx +53 -52
  98. package/.next/standalone/docs/he/custom-policies.mdx +73 -77
  99. package/.next/standalone/docs/hi/architecture.mdx +107 -107
  100. package/.next/standalone/docs/hi/configuration.mdx +39 -39
  101. package/.next/standalone/docs/hi/custom-policies.mdx +77 -81
  102. package/.next/standalone/docs/i18n/README.ar.md +66 -66
  103. package/.next/standalone/docs/i18n/README.de.md +40 -40
  104. package/.next/standalone/docs/i18n/README.es.md +40 -40
  105. package/.next/standalone/docs/i18n/README.fr.md +44 -44
  106. package/.next/standalone/docs/i18n/README.he.md +67 -67
  107. package/.next/standalone/docs/i18n/README.hi.md +71 -71
  108. package/.next/standalone/docs/i18n/README.it.md +63 -63
  109. package/.next/standalone/docs/i18n/README.ja.md +55 -55
  110. package/.next/standalone/docs/i18n/README.ko.md +59 -59
  111. package/.next/standalone/docs/i18n/README.pt-br.md +45 -45
  112. package/.next/standalone/docs/i18n/README.ru.md +71 -71
  113. package/.next/standalone/docs/i18n/README.tr.md +76 -76
  114. package/.next/standalone/docs/i18n/README.vi.md +71 -71
  115. package/.next/standalone/docs/i18n/README.zh.md +53 -53
  116. package/.next/standalone/docs/it/architecture.mdx +55 -54
  117. package/.next/standalone/docs/it/configuration.mdx +45 -46
  118. package/.next/standalone/docs/it/custom-policies.mdx +77 -82
  119. package/.next/standalone/docs/ja/architecture.mdx +93 -93
  120. package/.next/standalone/docs/ja/configuration.mdx +48 -48
  121. package/.next/standalone/docs/ja/custom-policies.mdx +63 -67
  122. package/.next/standalone/docs/ko/architecture.mdx +66 -66
  123. package/.next/standalone/docs/ko/configuration.mdx +36 -36
  124. package/.next/standalone/docs/ko/custom-policies.mdx +73 -77
  125. package/.next/standalone/docs/pt-br/architecture.mdx +55 -55
  126. package/.next/standalone/docs/pt-br/configuration.mdx +36 -36
  127. package/.next/standalone/docs/pt-br/custom-policies.mdx +62 -66
  128. package/.next/standalone/docs/ru/architecture.mdx +59 -60
  129. package/.next/standalone/docs/ru/configuration.mdx +52 -53
  130. package/.next/standalone/docs/ru/custom-policies.mdx +70 -74
  131. package/.next/standalone/docs/tr/architecture.mdx +124 -124
  132. package/.next/standalone/docs/tr/configuration.mdx +46 -47
  133. package/.next/standalone/docs/tr/custom-policies.mdx +75 -78
  134. package/.next/standalone/docs/vi/architecture.mdx +65 -64
  135. package/.next/standalone/docs/vi/configuration.mdx +42 -42
  136. package/.next/standalone/docs/vi/custom-policies.mdx +68 -72
  137. package/.next/standalone/docs/zh/architecture.mdx +67 -67
  138. package/.next/standalone/docs/zh/configuration.mdx +35 -35
  139. package/.next/standalone/docs/zh/custom-policies.mdx +54 -58
  140. package/.next/standalone/package.json +1 -1
  141. package/.next/standalone/server.js +1 -1
  142. package/.next/standalone/src/hooks/builtin-policies.ts +30 -0
  143. package/README.md +2 -2
  144. package/dist/cli.mjs +19 -2
  145. package/package.json +1 -1
  146. package/src/hooks/builtin-policies.ts +30 -0
  147. /package/.next/standalone/.next/static/{ICeMHZ-8ZR7HY5GLm7oSJ → 8mygPGI5bzrtWK36ZYO59}/_buildManifest.js +0 -0
  148. /package/.next/standalone/.next/static/{ICeMHZ-8ZR7HY5GLm7oSJ → 8mygPGI5bzrtWK36ZYO59}/_clientMiddlewareManifest.js +0 -0
  149. /package/.next/standalone/.next/static/{ICeMHZ-8ZR7HY5GLm7oSJ → 8mygPGI5bzrtWK36ZYO59}/_ssgManifest.js +0 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  title: कॉन्फ़िगरेशन
3
- description: "कॉन्फ़िग फ़ाइल प्रारूप, तीन-स्कोप सिस्टम, और विलय नियम"
3
+ description: "कॉन्फ़िग फाइल प्रारूप, तीन-स्कोप सिस्टम, और मर्ज नियम"
4
4
  icon: gear
5
5
  ---
6
6
 
7
- failproofai JSON कॉन्फ़िगरेशन फ़ाइलों का उपयोग करके यह नियंत्रित करता है कि कौन सी नीतियां सक्रिय हैं, वे कैसे व्यवहार करती हैं, और कस्टम नीतियां कहां से लोड की जाती हैं। कॉन्फ़िगरेशन को आपकी टीम के साथ साझा करना आसान बनाया गया है - इसे अपने रिपॉजिटरी में कमिट करें और हर डेवलपर को एक ही एजेंट सुरक्षा नेट मिलेगा।
7
+ failproofai JSON कॉन्फ़िगरेशन फाइलों का उपयोग करता है यह नियंत्रित करने के लिए कि कौन सी नीतियां सक्रिय हैं, वे कैसे व्यवहार करती हैं, और कस्टम नीतियां कहां से लोड की जाती हैं। कॉन्फ़िगरेशन आपकी टीम के साथ साझा करना आसान बनाने के लिए डिज़ाइन किया गया है - इसे आपके रिपॉजिटरी में कमिट करें और हर डेवलपर को एक ही एजेंट सेफ्टी नेट मिलता है।
8
8
 
9
9
  ---
10
10
 
@@ -12,17 +12,17 @@ failproofai JSON कॉन्फ़िगरेशन फ़ाइलों क
12
12
 
13
13
  तीन कॉन्फ़िगरेशन स्कोप हैं, प्राथमिकता क्रम में मूल्यांकन किए गए:
14
14
 
15
- | स्कोप | फ़ाइल पथ | उद्देश्य |
15
+ | स्कोप | फाइल पथ | उद्देश्य |
16
16
  |-------|-----------|---------|
17
- | **project** | `.failproofai/policies-config.json` | प्रति-रिपॉजिटरी सेटिंग्स, संस्करण नियंत्रण में कमिट की गई |
17
+ | **project** | `.failproofai/policies-config.json` | प्रति-रिपॉजिटरी सेटिंग्स, संस्करण नियंत्रण के लिए कमिट की गई |
18
18
  | **local** | `.failproofai/policies-config.local.json` | व्यक्तिगत प्रति-रिपॉजिटरी ओवरराइड, gitignored |
19
- | **global** | `~/.failproofai/policies-config.json` | सभी परियोजनाओं में उपयोगकर्ता-स्तर की डिफ़ॉल्ट सेटिंग्स |
19
+ | **global** | `~/.failproofai/policies-config.json` | सभी प्रोजेक्ट्स में उपयोगकर्ता-स्तर की डिफ़ॉल्ट सेटिंग्स |
20
20
 
21
- जब failproofai को एक हुक इवेंट प्राप्त होता है, तो यह वर्तमान कार्यशील निर्देशिका के लिए सभी तीन फ़ाइलों को लोड और विलय करता है।
21
+ जब failproofai को एक हुक इवेंट प्राप्त होता है, तो यह वर्तमान कार्य निर्देशिका के लिए सभी तीन फाइलों को लोड और मर्ज करता है।
22
22
 
23
- ### विलय नियम
23
+ ### मर्ज नियम
24
24
 
25
- **`enabledPolicies`** - सभी तीन स्कोप का संघ। किसी भी स्तर पर सक्षम की गई नीति सक्रिय है।
25
+ **`enabledPolicies`** - सभी तीन स्कोप का संघ। कोई भी नीति जो किसी भी स्तर पर सक्षम है, सक्रिय है।
26
26
 
27
27
  ```text
28
28
  project: ["block-sudo"]
@@ -32,7 +32,7 @@ global: ["block-sudo", "sanitize-api-keys"]
32
32
  resolved: ["block-sudo", "block-rm-rf", "sanitize-api-keys"] ← deduplicated union
33
33
  ```
34
34
 
35
- **`policyParams`** - किसी दिए गए नीति के लिए पैरामीटर को परिभाषित करने वाला पहला स्कोप पूरी तरह जीत जाता है। किसी नीति के पैरामीटर के भीतर मानों का कोई गहरा विलय नहीं है।
35
+ **`policyParams`** - पहला स्कोप जो किसी दी गई नीति के लिए पैरामीटर परिभाषित करता है, पूरी तरह से जीत जाता है। नीति के पैरामीटर के भीतर कोई गहरा मर्जिंग नहीं होता है।
36
36
 
37
37
  ```text
38
38
  project: block-sudo → { allowPatterns: ["sudo apt-get update"] }
@@ -49,13 +49,13 @@ global: block-sudo → { allowPatterns: ["sudo systemctl status"] }
49
49
  resolved: { allowPatterns: ["sudo systemctl status"] } ← falls through to global
50
50
  ```
51
51
 
52
- **`customPoliciesPath`** - इसे परिभाषित करने वाला पहला स्कोप जीतता है।
52
+ **`customPoliciesPath`** - पहला स्कोप जो इसे परिभाषित करता है, जीत जाता है।
53
53
 
54
- **`llm`** - इसे परिभाषित करने वाला पहला स्कोप जीतता है।
54
+ **`llm`** - पहला स्कोप जो इसे परिभाषित करता है, जीत जाता है।
55
55
 
56
56
  ---
57
57
 
58
- ## कॉन्फ़िग फ़ाइल प्रारूप
58
+ ## कॉन्फ़िग फाइल प्रारूप
59
59
 
60
60
  ```json
61
61
  {
@@ -96,33 +96,33 @@ resolved: { allowPatterns: ["sudo systemctl status"] } ← falls through to glo
96
96
 
97
97
  ---
98
98
 
99
- ## फ़ील्ड संदर्भ
99
+ ## फील्ड संदर्भ
100
100
 
101
101
  ### `enabledPolicies`
102
102
 
103
103
  प्रकार: `string[]`
104
104
 
105
- सक्षम करने के लिए नीति नामों की सूची। नाम `failproofai policies` द्वारा दिखाए गए नीति पहचानकर्ताओं से बिल्कुल मेल खाने चाहिए। पूरी सूची के लिए [Built-in Policies](/hi/built-in-policies) देखें।
105
+ सक्षम करने के लिए नीति के नामों की सूची। नाम `failproofai policies` द्वारा दिखाई गई नीति पहचानकर्ता से बिल्कुल मेल खाना चाहिए। पूरी सूची के लिए [Built-in Policies](/hi/built-in-policies) देखें।
106
106
 
107
- `enabledPolicies` में न होने वाली नीतियां निष्क्रिय हैं, भले ही `policyParams` में उनके प्रविष्टियां हों।
107
+ `enabledPolicies` में न होने वाली नीतियां निष्क्रिय हैं, भले ही उनके पास `policyParams` में प्रविष्टियां हों।
108
108
 
109
109
  ### `policyParams`
110
110
 
111
111
  प्रकार: `Record<string, Record<string, unknown>>`
112
112
 
113
- प्रति-नीति पैरामीटर ओवरराइड। बाहरी कुंजी नीति का नाम है; आंतरिक कुंजियां नीति-विशिष्ट हैं। प्रत्येक नीति [Built-in Policies](/hi/built-in-policies) में अपने उपलब्ध पैरामीटर को दस्तावेज़ित करती है।
113
+ प्रति-नीति पैरामीटर ओवरराइड। बाहरी कुंजी नीति का नाम है; आंतरिक कुंजियां नीति-विशिष्ट हैं। प्रत्येक नीति [Built-in Policies](/hi/built-in-policies) में अपने उपलब्ध पैरामीटर का दस्तावेज़ देती है।
114
114
 
115
- यदि किसी नीति के पैरामीटर हैं लेकिन आप उन्हें निर्दिष्ट नहीं करते हैं, तो नीति की बिल्ट-इन डिफ़ॉल्ट का उपयोग किया जाता है। जो उपयोगकर्ता `policyParams` को बिल्कुल कॉन्फ़िगर नहीं करते हैं उन्हें पिछले संस्करणों के समान व्यवहार मिलता है।
115
+ यदि किसी नीति के पास पैरामीटर हैं लेकिन आप उन्हें निर्दिष्ट नहीं करते हैं, तो नीति की बिल्ट-इन डिफ़ॉल्ट का उपयोग किया जाता है। जो उपयोगकर्ता `policyParams` को बिल्कुल भी कॉन्फ़िगर नहीं करते हैं, वे पिछले संस्करणों के समान व्यवहार प्राप्त करते हैं।
116
116
 
117
- नीति के पैरामीटर ब्लॉक के अंदर अज्ञात कुंजियां हुक-फायर समय पर चुप्पी से अनदेखी की जाती हैं लेकिन जब आप `failproofai policies` चलाते हैं तो चेतावनी के रूप में फ्लैग की जाती हैं।
117
+ नीति के पैरामीटर ब्लॉक के अंदर अज्ञात कुंजियां हुक-फायर समय पर चुप्पी से अनदेखी की जाती हैं लेकिन जब आप `failproofai policies` चलाते हैं तो चेतावनी के रूप में फ़्लैग की जाती हैं।
118
118
 
119
119
  #### `hint` (cross-cutting)
120
120
 
121
121
  प्रकार: `string` (वैकल्पिक)
122
122
 
123
- एक संदेश जो तब जोड़ा जाता है जब कोई नीति `deny` या `instruct` लौटाती है। इसे Claude को कार्रवाई योग्य मार्गदर्शन देने के लिए उपयोग करें बिना नीति को संशोधित किए।
123
+ एक संदेश जो कारण में जोड़ा जाता है जब कोई नीति `deny` या `instruct` देता है। इसका उपयोग Claude को कार्रवाई योग्य मार्गदर्शन देने के लिए करें, बिना नीति को स्वयं संशोधित किए।
124
124
 
125
- किसी भी नीति प्रकार के साथ काम करता है — बिल्ट-इन, कस्टम (`custom/`), प्रोजेक्ट कन्वेंशन (`.failproofai-project/`), या उपयोगकर्ता कन्वेंशन (`.failproofai-user/`)।
125
+ किसी भी नीति प्रकार के साथ काम करता है — बिल्ट-इन, कस्टम (`custom/`), प्रोजेक्ट सम्मेलन (`.failproofai-project/`), या उपयोगकर्ता सम्मेलन (`.failproofai-user/`)।
126
126
 
127
127
  ```json
128
128
  {
@@ -141,32 +141,32 @@ resolved: { allowPatterns: ["sudo systemctl status"] } ← falls through to glo
141
141
  }
142
142
  ```
143
143
 
144
- जब `block-force-push` अस्वीकार करता है, Claude को यह दिखता है: *"Force-pushing is blocked. Try creating a fresh branch instead."*
144
+ जब `block-force-push` इनकार करता है, तो Claude देखता है: *"Force-pushing is blocked. Try creating a fresh branch instead."*
145
145
 
146
- गैर-स्ट्रिंग मानों और खाली स्ट्रिंग को चुप्पी से अनदेखा किया जाता है। यदि `hint` सेट नहीं है, तो व्यवहार अपरिवर्तित है (पिछड़े-संगत)।
146
+ गैर-स्ट्रिंग मान और खाली स्ट्रिंग्स चुप्पी से अनदेखी की जाती हैं। यदि `hint` सेट नहीं है, तो व्यवहार अपरिवर्तित है (पिछड़े-संगत)।
147
147
 
148
148
  ### `customPoliciesPath`
149
149
 
150
- प्रकार: `string` (निरपेक्ष पथ)
150
+ प्रकार: `string` (पूर्ण पथ)
151
151
 
152
- कस्टम हुक नीतियों वाली JavaScript फ़ाइल का पथ। यह `failproofai policies --install --custom <path>` द्वारा स्वचालित रूप से सेट किया जाता है (पथ को संग्रहीत करने से पहले निरपेक्ष में हल किया जाता है)।
152
+ कस्टम हुक नीतियों वाली JavaScript फाइल का पथ। यह `failproofai policies --install --custom <path>` द्वारा स्वचालित रूप से सेट किया जाता है (पथ को स्टोर करने से पहले निरपेक्ष में हल किया जाता है)।
153
153
 
154
- फ़ाइल प्रत्येक हुक इवेंट पर ताजी लोड की जाती है - कोई कैशिंग नहीं है। लेखन विवरण के लिए [Custom Policies](/hi/custom-policies) देखें।
154
+ फाइल हर हुक इवेंट पर ताज़ी लोड की जाती है - कोई कैशिंग नहीं है। लेखन विवरण के लिए [Custom Policies](/hi/custom-policies) देखें।
155
155
 
156
- ### कन्वेंशन-आधारित नीतियां (v0.0.2-beta.7+)
156
+ ### सम्मेलन-आधारित नीतियां
157
157
 
158
- स्पष्ट `customPoliciesPath` के अतिरिक्त, failproofai `.failproofai/policies/` निर्देशिकाओं से नीति फ़ाइलों को स्वचालित रूप से खोज निकालता है:
158
+ स्पष्ट `customPoliciesPath` के अलावा, failproofai `.failproofai/policies/` निर्देशिकाओं से नीति फाइलें स्वचालित रूप से खोजता और लोड करता है:
159
159
 
160
160
  | स्तर | निर्देशिका | स्कोप |
161
161
  |-------|-----------|-------|
162
- | Project | `.failproofai/policies/` | टीम के साथ संस्करण नियंत्रण के माध्यम से साझा |
163
- | User | `~/.failproofai/policies/` | व्यक्तिगत, सभी परियोजनाओं पर लागू |
162
+ | Project | `.failproofai/policies/` | संस्करण नियंत्रण के माध्यम से टीम के साथ साझा किया गया |
163
+ | User | `~/.failproofai/policies/` | व्यक्तिगत, सभी प्रोजेक्ट्स पर लागू होता है |
164
164
 
165
- **फ़ाइल मिलान:** केवल `*policies.{js,mjs,ts}` से मेल खाने वाली फ़ाइलें लोड की जाती हैं (जैसे `security-policies.mjs`, `workflow-policies.js`)। निर्देशिका में अन्य फ़ाइलें अनदेखी की जाती हैं।
165
+ **फाइल मिलान:** केवल `*policies.{js,mjs,ts}` से मेल खाने वाली फाइलें लोड की जाती हैं (जैसे `security-policies.mjs`, `workflow-policies.js`)। निर्देशिका में अन्य फाइलें अनदेखी की जाती हैं।
166
166
 
167
- **कोई कॉन्फ़िग आवश्यक नहीं:** कन्वेंशन नीतियों को `policies-config.json` में कोई प्रविष्टि की आवश्यकता नहीं है। केवल निर्देशिका में फ़ाइलें रखें और वे अगले हुक इवेंट पर चुन ली जाएंगी।
167
+ **कोई कॉन्फ़िगरेशन आवश्यक नहीं:** सम्मेलन नीतियों के लिए `policies-config.json` में कोई प्रविष्टियां आवश्यक नहीं हैं। बस निर्देशिका में फाइलें डालें और वे अगली हुक इवेंट पर उठाई जाएंगी।
168
168
 
169
- **यूनियन लोडिंग:** प्रोजेक्ट और उपयोगकर्ता दोनों कन्वेंशन निर्देशिकाओं को स्कैन किया जाता है। दोनों स्तरों से सभी मेल खाने वाली फ़ाइलें लोड की जाती हैं (`customPoliciesPath` के विपरीत जो पहले-स्कोप-जीतता-है का उपयोग करता है)।
169
+ **संघ लोडिंग:** प्रोजेक्ट और उपयोगकर्ता दोनों सम्मेलन निर्देशिकाओं को स्कैन किया जाता है। दोनों स्तरों से सभी मेल खाने वाली फाइलें लोड की जाती हैं (`customPoliciesPath` के विपरीत जो पहली-स्कोप-जीत का उपयोग करता है)।
170
170
 
171
171
  अधिक विवरण और उदाहरणों के लिए [Custom Policies](/hi/custom-policies) देखें।
172
172
 
@@ -174,7 +174,7 @@ resolved: { allowPatterns: ["sudo systemctl status"] } ← falls through to glo
174
174
 
175
175
  प्रकार: `object` (वैकल्पिक)
176
176
 
177
- ऐसी नीतियों के लिए LLM क्लाइंट कॉन्फ़िगरेशन जो AI कॉल करती हैं। अधिकांश सेटअप के लिए आवश्यक नहीं है।
177
+ AI कॉल करने वाली नीतियों के लिए LLM क्लाइंट कॉन्फ़िगरेशन। अधिकांश सेटअप के लिए आवश्यक नहीं है।
178
178
 
179
179
  ```json
180
180
  {
@@ -189,16 +189,16 @@ resolved: { allowPatterns: ["sudo systemctl status"] } ← falls through to glo
189
189
 
190
190
  ## CLI से कॉन्फ़िगरेशन प्रबंधित करना
191
191
 
192
- `policies --install` और `policies --uninstall` कमांड Claude Code के `settings.json` (हुक प्रविष्टि बिंदु) में लिखते हैं, जबकि `policies-config.json` वह फ़ाइल है जिसे आप सीधे प्रबंधित करते हैं। ये दोनों अलग हैं:
192
+ `policies --install` और `policies --uninstall` कमांड Claude Code के `settings.json` (हुक प्रविष्टि बिंदु) में लिखते हैं, जबकि `policies-config.json` वह फाइल है जिसे आप सीधे प्रबंधित करते हैं। दोनों अलग हैं:
193
193
 
194
- - **`settings.json`** - Claude Code को प्रत्येक टूल उपयोग पर `failproofai --hook <event>` को कॉल करने के लिए बताता है
195
- - **`policies-config.json`** - failproofai को बताता है कि कौन सी नीतियों का मूल्यांकन करें और किन पैरामीटर के साथ
194
+ - **`settings.json`** - Claude Code को हर टूल यूज पर `failproofai --hook <event>` को कॉल करने के लिए बताता है
195
+ - **`policies-config.json`** - failproofai को बताता है कि कौन सी नीतियों का मूल्यांकन करना है और किन पैरामीटर के साथ
196
196
 
197
- आप किसी भी समय `policies-config.json` को सीधे संपादित कर सकते हैं; परिवर्तन तुरंत अगले हुक इवेंट पर प्रभावी होते हैं, कोई पुनरारंभ की आवश्यकता नहीं है।
197
+ आप किसी भी समय `policies-config.json` को सीधे संपादित कर सकते हैं; परिवर्तन पुनः आरंभ की आवश्यकता के बिना अगली हुक इवेंट पर तुरंत प्रभावी होते हैं।
198
198
 
199
199
  ---
200
200
 
201
- ## उदाहरण: टीम डिफ़ॉल्ट के साथ प्रोजेक्ट-स्तर कॉन्फ़िगरेशन
201
+ ## उदाहरण: टीम डिफ़ॉल्ट्स के साथ प्रोजेक्ट-स्तर का कॉन्फ़िगरेशन
202
202
 
203
203
  `.failproofai/policies-config.json` को अपने रिपॉजिटरी में कमिट करें:
204
204
 
@@ -219,4 +219,4 @@ resolved: { allowPatterns: ["sudo systemctl status"] } ← falls through to glo
219
219
  }
220
220
  ```
221
221
 
222
- प्रत्येक डेवलपर फिर `.failproofai/policies-config.local.json` (gitignored) बना सकता है व्यक्तिगत ओवरराइड के लिए बिना सहकर्मियों को प्रभावित किए।
222
+ प्रत्येक डेवलपर फिर व्यक्तिगत ओवरराइड के लिए `.failproofai/policies-config.local.json` (gitignored) बना सकता है, बिना टीममेट्स को प्रभावित किए।
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  title: कस्टम पॉलिसीज़
3
- description: "JavaScript में अपने नियम लिखें - कन्वेंशन्स को लागू करें, ड्रिफ़्ट को रोकें, विफलताओं का पता लगाएं, बाहरी सिस्टम्स के साथ इंटीग्रेट करें"
3
+ description: "JavaScript में अपने स्वयं के पॉलिसीज़ लिखें - सम्मेलन लागू करें, विचलन रोकें, विफलताओं का पता लगाएं, बाहरी सिस्टम के साथ एकीकरण करें"
4
4
  icon: code
5
5
  ---
6
6
 
7
- कस्टम पॉलिसीज़ आपको किसी भी एजेंट व्यवहार के लिए नियम लिखने देती हैं: प्रोजेक्ट कन्वेंशन्स को लागू करें, ड्रिफ़्ट को रोकें, विनाशकारी ऑपरेशन्स को गेट करें, स्टक एजेंट्स का पता लगाएं, या Slack, अनुमोदन वर्कफ़्लो और बहुत कुछ के साथ इंटीग्रेट करें। वे built-in पॉलिसीज़ के समान हुक इवेंट सिस्टम और `allow`, `deny`, `instruct` डिसीजन्स का उपयोग करते हैं।
7
+ कस्टम पॉलिसीज़ आपको किसी भी एजेंट व्यवहार के लिए नियम लिखने देती हैं: प्रोजेक्ट सम्मेलन लागू करें, विचलन रोकें, विनाशकारी ऑपरेशन को गेट करें, फंसे हुए एजेंटों का पता लगाएं, या Slack, स्वीकृति वर्कफ़्लो और बहुत कुछ के साथ एकीकृत करें। ये बिल्ट-इन पॉलिसीज़ के समान हुक इवेंट सिस्टम और `allow`, `deny`, `instruct` निर्णयों का उपयोग करते हैं।
8
8
 
9
9
  ---
10
10
 
11
- ## क्विक उदाहरण
11
+ ## त्वरित उदाहरण
12
12
 
13
13
  ```js
14
14
  // my-policies.js
@@ -39,58 +39,58 @@ failproofai policies --install --custom ./my-policies.js
39
39
 
40
40
  ## कस्टम पॉलिसीज़ लोड करने के दो तरीके
41
41
 
42
- ### विकल्प 1: कन्वेंशन-आधारित (अनुशंसित, v0.0.2-beta.7+)
42
+ ### विकल्प 1: कन्वेंशन-आधारित (अनुशंसित)
43
43
 
44
- `.failproofai/policies/` में `*policies.{js,mjs,ts}` फ़ाइलें ड्रॉप करें और वे स्वचालित रूप से लोड हो जाती हैं — कोई फ़्लैग या कॉन्फ़िग परिवर्तन की आवश्यकता नहीं है। यह git hooks की तरह काम करता है: एक फ़ाइल ड्रॉप करें, यह बस काम करता है।
44
+ `*policies.{js,mjs,ts}` फाइलों को `.failproofai/policies/` में डालें और वे स्वचालित रूप से लोड हो जाती हैं — कोई फ्लैग या कॉन्फ़िगरेशन परिवर्तन की आवश्यकता नहीं। यह git हुक्स की तरह काम करता है: एक फाइल डालें, यह काम करता है।
45
45
 
46
46
  ```
47
47
  # प्रोजेक्ट स्तर — git में कमिट किया गया, टीम के साथ साझा किया गया
48
48
  .failproofai/policies/security-policies.mjs
49
49
  .failproofai/policies/workflow-policies.mjs
50
50
 
51
- # यूजर स्तर — व्यक्तिगत, सभी प्रोजेक्ट्स पर लागू
51
+ # उपयोगकर्ता स्तर — व्यक्तिगत, सभी प्रोजेक्ट्स पर लागू होता है
52
52
  ~/.failproofai/policies/my-policies.mjs
53
53
  ```
54
54
 
55
55
  **यह कैसे काम करता है:**
56
- - प्रोजेक्ट और यूजर दोनों डायरेक्टरीज़ को स्कैन किया जाता है (यूनियनपहला स्कोप-जीत नहीं)
57
- - फ़ाइलें प्रत्येक डायरेक्टरी के भीतर वर्णक्रम के अनुसार लोड की जाती हैं। क्रम को नियंत्रित करने के लिए `01-`, `02-` के साथ प्रीफ़िक्स करें
58
- - केवल `*policies.{js,mjs,ts}` से मेल खाने वाली फ़ाइलें लोड की जाती हैं; अन्य फ़ाइलों को अनदेखा किया जाता है
59
- - प्रत्येक फ़ाइल स्वतंत्र रूप से लोड की जाती है (प्रति फ़ाइल fail-open)
60
- - स्पष्ट `--custom` और built-in पॉलिसीज़ के साथ काम करता है
56
+ - प्रोजेक्ट और उपयोगकर्ता दोनों निर्देशिकाएं स्कैन की जाती हैं (संघपहले-दायरा-जीत नहीं)
57
+ - फाइलें प्रत्येक निर्देशिका में वर्णमाला के अनुसार लोड की जाती हैं। क्रम नियंत्रित करने के लिए `01-`, `02-` से शुरू करें
58
+ - केवल `*policies.{js,mjs,ts}` से मेल खाने वाली फाइलें लोड की जाती हैं; अन्य फाइलें अनदेखी की जाती हैं
59
+ - प्रत्येक फाइल स्वतंत्र रूप से लोड की जाती है (फाइल प्रति फेल-ओपन)
60
+ - स्पष्ट `--custom` और बिल्ट-इन पॉलिसीज़ के साथ साथ काम करता है
61
61
 
62
62
  <Tip>
63
- कन्वेंशन पॉलिसीज़ एक टीम के साथ पॉलिसीज़ साझा करने का सबसे आसान तरीका हैं। `.failproofai/policies/` को git में कमिट करें और हर टीम मेंबर को वे स्वचालित रूप से मिलते हैं।
63
+ कन्वेंशन पॉलिसीज़ एक टीम में पॉलिसीज़ साझा करने का सबसे आसान तरीका है। `.failproofai/policies/` को git में कमिट करें और प्रत्येक टीम सदस्य को वह स्वचालित रूप से मिल जाएगा।
64
64
  </Tip>
65
65
 
66
- ### विकल्प 2: स्पष्ट फ़ाइल पाथ
66
+ ### विकल्प 2: स्पष्ट फाइल पथ
67
67
 
68
68
  ```bash
69
- # कस्टम पॉलिसीज़ फ़ाइल के साथ इंस्टॉल करें
69
+ # कस्टम पॉलिसीज़ फाइल के साथ इंस्टॉल करें
70
70
  failproofai policies --install --custom ./my-policies.js
71
71
 
72
- # पॉलिसीज़ फ़ाइल पाथ को बदलें
72
+ # पॉलिसीज़ फाइल पथ बदलें
73
73
  failproofai policies --install --custom ./new-policies.js
74
74
 
75
- # कॉन्फ़िग से कस्टम पॉलिसीज़ पाथ को हटाएं
75
+ # कॉन्फ़िग से कस्टम पॉलिसीज़ पथ हटाएं
76
76
  failproofai policies --uninstall --custom
77
77
  ```
78
78
 
79
- रिज़ॉल्व किया गया निरपेक्ष पाथ `policies-config.json` में `customPoliciesPath` के रूप में संग्रहीत होता है। फ़ाइल हर हुक इवेंट पर ताज़ा लोड की जाती है - इवेंट्स के बीच कोई कैशिंग नहीं होती है।
79
+ हल किया गया पूर्ण पथ `policies-config.json` में `customPoliciesPath` के रूप में संग्रहीत है। फाइल हर हुक इवेंट पर ताज़ी लोड की जाती है - इवेंट्स के बीच कोई कैशिंग नहीं है।
80
80
 
81
81
  ### दोनों को एक साथ उपयोग करना
82
82
 
83
- कन्वेंशन पॉलिसीज़ और स्पष्ट `--custom` फ़ाइल एक साथ मौजूद हो सकते हैं। लोड ऑर्डर:
83
+ कन्वेंशन पॉलिसीज़ और स्पष्ट `--custom` फाइल एक साथ मौजूद हो सकती हैं। लोड क्रम:
84
84
 
85
- 1. स्पष्ट `customPoliciesPath` फ़ाइल (यदि कॉन्फ़िगर किया गया हो)
86
- 2. प्रोजेक्ट कन्वेंशन फ़ाइलें (`{cwd}/.failproofai/policies/`, वर्णक्रम)
87
- 3. यूजर कन्वेंशन फ़ाइलें (`~/.failproofai/policies/`, वर्णक्रम)
85
+ 1. स्पष्ट `customPoliciesPath` फाइल (यदि कॉन्फ़िगर किया गया है)
86
+ 2. प्रोजेक्ट कन्वेंशन फाइलें (`{cwd}/.failproofai/policies/`, वर्णमाला के अनुसार)
87
+ 3. उपयोगकर्ता कन्वेंशन फाइलें (`~/.failproofai/policies/`, वर्णमाला के अनुसार)
88
88
 
89
89
  ---
90
90
 
91
91
  ## API
92
92
 
93
- ### इंपोर्ट
93
+ ### आयात
94
94
 
95
95
  ```js
96
96
  import { customPolicies, allow, deny, instruct } from "failproofai";
@@ -98,49 +98,45 @@ import { customPolicies, allow, deny, instruct } from "failproofai";
98
98
 
99
99
  ### `customPolicies.add(hook)`
100
100
 
101
- एक पॉलिसी को रजिस्टर करता है। एक ही फ़ाइल में कई पॉलिसीज़ के लिए आवश्यकतानुसार इसे कॉल करें।
101
+ एक पॉलिसी को रजिस्टर करता है। एक ही फाइल में कई पॉलिसीज़ के लिए आवश्यकतानुसार कई बार कॉल करें।
102
102
 
103
103
  ```ts
104
104
  customPolicies.add({
105
105
  name: string; // आवश्यक - अद्वितीय पहचानकर्ता
106
106
  description?: string; // `failproofai policies` आउटपुट में दिखाया गया
107
- match?: { events?: HookEventType[] }; // इवेंट प्रकार द्वारा फ़िल्टर करें; सभी से मेल खाने के लिए छोड़ दें
107
+ match?: { events?: HookEventType[] }; // इवेंट प्रकार द्वारा फ़िल्टर करें; सभी से मेल खाने के लिए छोड़ें
108
108
  fn: (ctx: PolicyContext) => PolicyResult | Promise<PolicyResult>;
109
109
  });
110
110
  ```
111
111
 
112
- ### डिसीजन हेल्पर्स
112
+ ### निर्णय सहायक
113
113
 
114
- | फंक्शन | प्रभाव | कब उपयोग करें |
114
+ | फ़ंक्शन | प्रभाव | कब उपयोग करें |
115
115
  |----------|--------|----------|
116
- | `allow()` | ऑपरेशन को चुप से अनुमति दें | कार्रवाई सुरक्षित है, कोई संदेश की आवश्यकता नहीं |
116
+ | `allow()` | ऑपरेशन को स्पष्ट रूप से अनुमति दें | कार्रवाई सुरक्षित है, कोई संदेश आवश्यक नहीं |
117
117
  | `deny(message)` | ऑपरेशन को ब्लॉक करें | एजेंट को यह कार्रवाई नहीं करनी चाहिए |
118
118
  | `instruct(message)` | बिना ब्लॉक किए संदर्भ जोड़ें | एजेंट को ट्रैक पर रहने के लिए अतिरिक्त संदर्भ दें |
119
119
 
120
- `deny(message)` - संदेश Claude को `"Blocked by failproofai:"` के साथ प्रीफ़िक्स किया गया दिखाई देता है। एक एकल `deny` सभी आगे के मूल्यांकन को शॉर्ट-सर्किट करता है।
120
+ `deny(message)` - संदेश Claude को `"Blocked by failproofai:"` से पहले दिखाई देता है। एक एकल `deny` सभी आगे के मूल्यांकन को शॉर्ट-सर्किट करता है।
121
121
 
122
- `instruct(message)` - संदेश वर्तमान टूल कॉल के लिए Claude के संदर्भ में जोड़ा जाता है। सभी `instruct` संदेश एकत्रित किए जाते हैं और एक साथ डिलीवर किए जाते हैं।
122
+ `instruct(message)` - संदेश वर्तमान टूल कॉल के लिए Claude के संदर्भ में जोड़ा जाता है। सभी `instruct` संदेश जमा किए जाते हैं और एक साथ वितरित किए जाते हैं।
123
123
 
124
124
  <Tip>
125
- `policyParams` में `hint` फ़ील्ड जोड़कर किसी भी `deny` या `instruct` संदेश के लिए अतिरिक्त निर्देश जोड़ सकते हैं — कोई कोड परिवर्तन की आवश्यकता नहीं है। यह कस्टम (`custom/`), प्रोजेक्ट कन्वेंशन (`.failproofai-project/`), और यूजर कन्वेंशन (`.failproofai-user/`) पॉलिसीज़ के लिए भी काम करता है। विवरण के लिए [कॉन्फ़िगरेशन → hint](/hi/configuration#hint-cross-cutting) देखें।
125
+ आप `policyParams` में `hint` फील्ड जोड़कर किसी भी `deny` या `instruct` संदेश में अतिरिक्त मार्गदर्शन जोड़ सकते हैं — कोई कोड परिवर्तन आवश्यक नहीं। यह कस्टम (`custom/`), प्रोजेक्ट कन्वेंशन (`.failproofai-project/`), और उपयोगकर्ता कन्वेंशन (`.failproofai-user/`) पॉलिसीज़ के लिए भी काम करता है। विवरण के लिए [कॉन्फ़िगरेशन → hint](/hi/configuration#hint-cross-cutting) देखें।
126
126
  </Tip>
127
127
 
128
- ### सूचनात्मक allow संदेश (बीटा)
128
+ ### सूचनात्मक allow संदेश
129
129
 
130
- <Note>
131
- `allow(message)` एक बीटा फीचर है जो v0.0.2-beta.3 के बाद से उपलब्ध है। API भविष्य की रिलीज़ में बदल सकता है। पहली संस्करणें केवल बिना तर्क के `allow()` का समर्थन करती हैं।
132
- </Note>
133
-
134
- `allow(message)` ऑपरेशन को अनुमति देता है **और** Claude को एक सूचनात्मक संदेश भेजता है। संदेश हुक हैंडलर के stdout प्रतिक्रिया में `additionalContext` के रूप में डिलीवर किया जाता है — `instruct` द्वारा उपयोग किया जाने वाला समान तंत्र, लेकिन शब्दार्थ रूप से अलग: यह एक सतर्कता नहीं, एक स्थिति अपडेट है।
130
+ `allow(message)` ऑपरेशन की अनुमति देता है **और** Claude को एक सूचनात्मक संदेश भेजता है। संदेश हुक हैंडलर के stdout प्रतिक्रिया में `additionalContext` के रूप में वितरित किया जाता है — `instruct` द्वारा उपयोग किया जाने वाला समान तंत्र, लेकिन शब्दार्थ से अलग: यह एक चेतावनी नहीं, बल्कि एक स्थिति अपडेट है।
135
131
 
136
- | फंक्शन | प्रभाव | कब उपयोग करें |
132
+ | फ़ंक्शन | प्रभाव | कब उपयोग करें |
137
133
  |----------|--------|----------|
138
- | `allow(message)` | अनुमति दें और Claude को संदर्भ भेजें | एक जांच पास होने की पुष्टि करें, या बताएं कि जांच को क्यों छोड़ा गया |
134
+ | `allow(message)` | अनुमति दें और Claude को संदर्भ भेजें | एक जांच पास होने की पुष्टि करें, या एक जांच छोड़े जाने का कारण समझाएं |
139
135
 
140
136
  उपयोग के मामले:
141
- - **स्थिति पुष्टिकरण:** `allow("All CI checks passed.")` — Claude को बताता है कि सब कुछ हरा है
142
- - **Fail-open व्याख्याएं:** `allow("GitHub CLI not installed, skipping CI check.")` — Claude को बताता है कि जांच को क्यों छोड़ा गया ताकि इसके पास पूरा संदर्भ हो
143
- - **कई संदेश जमा होते हैं:** यदि कई पॉलिसीज़ प्रत्येक `allow(message)` रिटर्न करते हैं, तो सभी संदेश नई लाइनों के साथ जुड़ते हैं और एक साथ डिलीवर होते हैं
137
+ - **स्थिति पुष्टि:** `allow("All CI checks passed.")` — Claude को बताएं कि सब कुछ हरा है
138
+ - **फेल-ओपन व्याख्या:** `allow("GitHub CLI not installed, skipping CI check.")` — Claude को बताएं कि एक जांच क्यों छोड़ी गई थी ताकि उसके पास पूरा संदर्भ हो
139
+ - **कई संदेश जमा होते हैं:** यदि कई पॉलिसीज़ प्रत्येक `allow(message)` लौटाती हैं, तो सभी संदेश नई पंक्तियों के साथ जुड़े जाते हैं और एक साथ वितरित किए जाते हैं
144
140
 
145
141
  ```js
146
142
  customPolicies.add({
@@ -165,8 +161,8 @@ customPolicies.add({
165
161
  |-------|------|-------------|
166
162
  | `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
167
163
  | `toolName` | `string \| undefined` | कॉल किया जा रहा टूल (जैसे `"Bash"`, `"Write"`, `"Read"`) |
168
- | `toolInput` | `Record<string, unknown> \| undefined` | टूल के इनपुट पैरामीटर्स |
169
- | `payload` | `Record<string, unknown>` | Claude Code से पूर्ण raw इवेंट पेलोड |
164
+ | `toolInput` | `Record<string, unknown> \| undefined` | टूल के इनपुट पैरामीटर |
165
+ | `payload` | `Record<string, unknown>` | Claude Code से संपूर्ण कच्चा इवेंट पेलोड |
170
166
  | `session` | `SessionMetadata \| undefined` | सेशन संदर्भ (नीचे देखें) |
171
167
 
172
168
  ### `SessionMetadata` फील्ड्स
@@ -174,8 +170,8 @@ customPolicies.add({
174
170
  | फील्ड | प्रकार | विवरण |
175
171
  |-------|------|-------------|
176
172
  | `sessionId` | `string` | Claude Code सेशन पहचानकर्ता |
177
- | `cwd` | `string` | Claude Code सेशन की वर्किंग डायरेक्टरी |
178
- | `transcriptPath` | `string` | सेशन की JSONL ट्रांस्क्रिप्ट फ़ाइल का पाथ |
173
+ | `cwd` | `string` | Claude Code सेशन की कार्य निर्देशिका |
174
+ | `transcriptPath` | `string` | सेशन की JSONL ट्रांसक्रिप्ट फाइल का पथ |
179
175
 
180
176
  ### इवेंट प्रकार
181
177
 
@@ -183,7 +179,7 @@ customPolicies.add({
183
179
  |-------|--------------|----------------------|
184
180
  | `PreToolUse` | Claude एक टूल चलाने से पहले | टूल का इनपुट (जैसे Bash के लिए `{ command: "..." }`) |
185
181
  | `PostToolUse` | एक टूल पूरा होने के बाद | टूल का इनपुट + `tool_result` (आउटपुट) |
186
- | `Notification` | जब Claude एक नोटिफिकेशन भेजता है | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` - हुक्स को हमेशा `allow()` रिटर्न करना चाहिए, वे नोटिफिकेशन्स को ब्लॉक नहीं कर सकते |
182
+ | `Notification` | जब Claude एक सूचना भेजता है | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` - हुक्स को हमेशा `allow()` लौटाना चाहिए, वे सूचनाओं को ब्लॉक नहीं कर सकते |
187
183
  | `Stop` | जब Claude सेशन समाप्त होता है | खाली |
188
184
 
189
185
  ---
@@ -192,20 +188,20 @@ customPolicies.add({
192
188
 
193
189
  पॉलिसीज़ का मूल्यांकन इस क्रम में किया जाता है:
194
190
 
195
- 1. Built-in पॉलिसीज़ (परिभाषा क्रम में)
191
+ 1. बिल्ट-इन पॉलिसीज़ (परिभाषा क्रम में)
196
192
  2. `customPoliciesPath` से स्पष्ट कस्टम पॉलिसीज़ (`.add()` क्रम में)
197
- 3. प्रोजेक्ट `.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (फ़ाइलें वर्णक्रम, प्रत्येक के भीतर `.add()` क्रम)
198
- 4. यूजर `~/.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (फ़ाइलें वर्णक्रम, प्रत्येक के भीतर `.add()` क्रम)
193
+ 3. प्रोजेक्ट `.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (फाइलें वर्णमाला के अनुसार, `.add()` क्रम के भीतर)
194
+ 4. उपयोगकर्ता `~/.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (फाइलें वर्णमाला के अनुसार, `.add()` क्रम के भीतर)
199
195
 
200
196
  <Note>
201
- पहला `deny` सभी बाद की पॉलिसीज़ को शॉर्ट-सर्किट करता है। सभी `instruct` संदेश एकत्रित किए जाते हैं और एक साथ डिलीवर किए जाते हैं।
197
+ पहला `deny` सभी बाद की पॉलिसीज़ को शॉर्ट-सर्किट करता है। सभी `instruct` संदेश जमा किए जाते हैं और एक साथ वितरित किए जाते हैं।
202
198
  </Note>
203
199
 
204
200
  ---
205
201
 
206
- ## ट्रांसिटिव इंपोर्ट्स
202
+ ## पारगमन आयात
207
203
 
208
- कस्टम पॉलिसी फ़ाइलें रिलेटिव पाथ्स का उपयोग करके स्थानीय मॉड्यूल्स को इंपोर्ट कर सकती हैं:
204
+ कस्टम पॉलिसी फाइलें सापेक्ष पथों का उपयोग करके स्थानीय मॉड्यूल को आयात कर सकती हैं:
209
205
 
210
206
  ```js
211
207
  // my-policies.js
@@ -222,21 +218,21 @@ customPolicies.add({
222
218
  });
223
219
  ```
224
220
 
225
- एंट्री फ़ाइल से पहुंचने योग्य सभी रिलेटिव इंपोर्ट्स को रिज़ॉल्व किया जाता है। यह `from "failproofai"` इंपोर्ट्स को वास्तविक dist पाथ में फिर से लिखकर और ESM संगतता सुनिश्चित करने के लिए अस्थायी `.mjs` फ़ाइलें बनाकर लागू किया जाता है।
221
+ एंट्री फाइल से सभी सापेक्ष आयात हल किए जाते हैं। यह `from "failproofai"` आयात को वास्तविक dist पथ में फिर से लिखकर और ESM संगतता सुनिश्चित करने के लिए अस्थायी `.mjs` फाइलें बनाकर लागू किया जाता है।
226
222
 
227
223
  ---
228
224
 
229
- ## इवेंट टाइप फ़िल्टरिंग
225
+ ## इवेंट प्रकार फ़िल्टरिंग
230
226
 
231
- `match.events` का उपयोग करके यह सीमित करें कि कब एक पॉलिसी फायर होती है:
227
+ किसी पॉलिसी को फायर करने के समय को सीमित करने के लिए `match.events` का उपयोग करें:
232
228
 
233
229
  ```js
234
230
  customPolicies.add({
235
231
  name: "require-summary-on-stop",
236
232
  match: { events: ["Stop"] },
237
233
  fn: async (ctx) => {
238
- // केवल तब फायर होता है जब सेशन समाप्त होता है
239
- // ctx.session.transcriptPath में पूरा सेशन लॉग होता है
234
+ // केवल तभी फायर होता है जब सेशन समाप्त होता है
235
+ // ctx.session.transcriptPath में संपूर्ण सेशन लॉग होता है
240
236
  return allow();
241
237
  },
242
238
  });
@@ -246,22 +242,22 @@ customPolicies.add({
246
242
 
247
243
  ---
248
244
 
249
- ## त्रुटि हैंडलिंग और विफलता मोड्स
245
+ ## त्रुटि हैंडलिंग और विफलता के तरीके
250
246
 
251
- कस्टम पॉलिसीज़ **fail-open** हैं: त्रुटियां कभी built-in पॉलिसीज़ को ब्लॉक नहीं करती हैं या हुक हैंडलर को क्रैश नहीं करती हैं।
247
+ कस्टम पॉलिसीज़ **फेल-ओपन** हैं: त्रुटियां कभी भी बिल्ट-इन पॉलिसीज़ को ब्लॉक नहीं करती हैं या हुक हैंडलर को क्रैश नहीं करती हैं।
252
248
 
253
249
  | विफलता | व्यवहार |
254
250
  |---------|----------|
255
- | `customPoliciesPath` सेट नहीं है | कोई स्पष्ट कस्टम पॉलिसीज़ नहीं चलती हैं; कन्वेंशन पॉलिसीज़ और built-ins सामान्य रूप से जारी रहते हैं |
256
- | फ़ाइल नहीं मिली | `~/.failproofai/hook.log` में चेतावनी लॉग की जाती है; built-ins जारी रहते हैं |
257
- | सिंटैक्स/इंपोर्ट त्रुटि (स्पष्ट) | `~/.failproofai/hook.log` में त्रुटि लॉग की जाती है; स्पष्ट कस्टम पॉलिसीज़ छोड़ दी जाती हैं |
258
- | सिंटैक्स/इंपोर्ट त्रुटि (कन्वेंशन) | त्रुटि लॉग की जाती है; वह फ़ाइल छोड़ दी जाती है, अन्य कन्वेंशन फ़ाइलें अभी भी लोड होती हैं |
259
- | `fn` रनटाइम पर throw करता है | त्रुटि लॉग की जाती है; वह हुक `allow` के रूप में माना जाता है; अन्य हुक्स जारी रहते हैं |
260
- | `fn` 10s से अधिक समय लेता है | टाइमआउट लॉग किया जाता है; `allow` के रूप में माना जाता है |
261
- | कन्वेंशन डायरेक्टरी नहीं मिली | कोई कन्वेंशन पॉलिसीज़ नहीं चलती हैं; कोई त्रुटि नहीं |
251
+ | `customPoliciesPath` सेट नहीं है | कोई स्पष्ट कस्टम पॉलिसीज़ चलाई नहीं जाती हैं; कन्वेंशन पॉलिसीज़ और बिल्ट-इन सामान्य रूप से जारी रहते हैं |
252
+ | फाइल नहीं मिली | `~/.failproofai/hook.log` में चेतावनी दर्ज की गई; बिल्ट-इन जारी रहते हैं |
253
+ | सिंटैक्स/आयात त्रुटि (स्पष्ट) | `~/.failproofai/hook.log` में त्रुटि दर्ज की गई; स्पष्ट कस्टम पॉलिसीज़ छोड़ी गई हैं |
254
+ | सिंटैक्स/आयात त्रुटि (कन्वेंशन) | दर्ज की गई त्रुटि; वह फाइल छोड़ी गई, अन्य कन्वेंशन फाइलें अभी भी लोड होती हैं |
255
+ | `fn` रनटाइम पर फेंकता है | दर्ज की गई त्रुटि; वह हुक `allow` के रूप में माना जाता है; अन्य हुक्स जारी रहते हैं |
256
+ | `fn` 10 सेकंड से अधिक समय लेता है | दर्ज किया गया टाइमआउट; `allow` के रूप में माना जाता है |
257
+ | कन्वेंशन निर्देशिका गायब | कोई कन्वेंशन पॉलिसीज़ चलाई नहीं जाती हैं; कोई त्रुटि नहीं |
262
258
 
263
259
  <Tip>
264
- कस्टम पॉलिसी त्रुटियों को डिबग करने के लिए, लॉग फ़ाइल को देखें:
260
+ कस्टम पॉलिसी त्रुटियों को डीबग करने के लिए, लॉग फाइल देखें:
265
261
 
266
262
  ```bash
267
263
  tail -f ~/.failproofai/hook.log
@@ -270,13 +266,13 @@ tail -f ~/.failproofai/hook.log
270
266
 
271
267
  ---
272
268
 
273
- ## पूरा उदाहरण: कई पॉलिसीज़
269
+ ## पूर्ण उदाहरण: कई पॉलिसीज़
274
270
 
275
271
  ```js
276
272
  // my-policies.js
277
273
  import { customPolicies, allow, deny, instruct } from "failproofai";
278
274
 
279
- // एजेंट को secrets/ डायरेक्टरी में लिखने से रोकें
275
+ // एजेंट को secrets/ निर्देशिका में लिखने से रोकें
280
276
  customPolicies.add({
281
277
  name: "block-secrets-dir",
282
278
  description: "Prevent agent from writing to secrets/ directory",
@@ -289,7 +285,7 @@ customPolicies.add({
289
285
  },
290
286
  });
291
287
 
292
- // एजेंट को ट्रैक पर रखें: कमिट करने से पहले टेस्ट्स सत्यापित करें
288
+ // एजेंट को ट्रैक पर रखें: कमिट करने से पहले टेस्ट सत्यापित करें
293
289
  customPolicies.add({
294
290
  name: "remind-test-before-commit",
295
291
  description: "Keep the agent on track: verify tests pass before committing",
@@ -304,7 +300,7 @@ customPolicies.add({
304
300
  },
305
301
  });
306
302
 
307
- // फ्रीज़ अवधि के दौरान अनियोजित निर्भरता परिवर्तन को रोकें
303
+ // फ्रीज अवधि के दौरान अनियोजित निर्भरता परिवर्तनों को रोकें
308
304
  customPolicies.add({
309
305
  name: "dependency-freeze",
310
306
  description: "Prevent unplanned dependency changes during freeze period",
@@ -327,31 +323,31 @@ export { customPolicies };
327
323
 
328
324
  ## उदाहरण
329
325
 
330
- `examples/` डायरेक्टरी में तैयार-से-चलाने योग्य पॉलिसी फ़ाइलें होती हैं:
326
+ `examples/` निर्देशिका में चलने के लिए तैयार पॉलिसी फाइलें हैं:
331
327
 
332
- | फ़ाइल | सामग्री |
328
+ | फाइल | सामग्री |
333
329
  |------|----------|
334
- | `examples/policies-basic.js` | पांच स्टार्टर पॉलिसीज़ जो सामान्य एजेंट विफलता मोड को कवर करती हैं |
335
- | `examples/policies-advanced/index.js` | उन्नत पैटर्न: ट्रांसिटिव इंपोर्ट्स, async कॉल्स, आउटपुट स्क्रबिंग, और सेशन-एंड हुक्स |
336
- | `examples/convention-policies/security-policies.mjs` | कन्वेंशन-आधारित सुरक्षा पॉलिसीज़ (.env राइट्स को ब्लॉक करें, git इतिहास को फिर से लिखने से रोकें) |
337
- | `examples/convention-policies/workflow-policies.mjs` | कन्वेंशन-आधारित वर्कफ़्लो पॉलिसीज़ (टेस्ट रिमाइंडर्स, ऑडिट फ़ाइल राइट्स) |
330
+ | `examples/policies-basic.js` | पांच स्टार्टर पॉलिसीज़ जो सामान्य एजेंट विफलता तरीकों को कवर करती हैं |
331
+ | `examples/policies-advanced/index.js` | उन्नत पैटर्न: पारगमन आयात, async कॉल, आउटपुट स्क्रबिंग, और सेशन-अंत हुक्स |
332
+ | `examples/convention-policies/security-policies.mjs` | कन्वेंशन-आधारित सुरक्षा पॉलिसीज़ (.env लेखन ब्लॉक करें, git इतिहास फिर से लिखने को रोकें) |
333
+ | `examples/convention-policies/workflow-policies.mjs` | कन्वेंशन-आधारित वर्कफ़्लो पॉलिसीज़ (टेस्ट रिमाइंडर, ऑडिट फाइल लेखन) |
338
334
 
339
- ### स्पष्ट फ़ाइल उदाहरण्स का उपयोग करना
335
+ ### स्पष्ट फाइल उदाहरणों का उपयोग करना
340
336
 
341
337
  ```bash
342
338
  failproofai policies --install --custom ./examples/policies-basic.js
343
339
  ```
344
340
 
345
- ### कन्वेंशन-आधारित उदाहरण्स का उपयोग करना
341
+ ### कन्वेंशन-आधारित उदाहरणों का उपयोग करना
346
342
 
347
343
  ```bash
348
344
  # प्रोजेक्ट स्तर पर कॉपी करें
349
345
  mkdir -p .failproofai/policies
350
346
  cp examples/convention-policies/*.mjs .failproofai/policies/
351
347
 
352
- # या यूजर स्तर पर कॉपी करें
348
+ # या उपयोगकर्ता स्तर पर कॉपी करें
353
349
  mkdir -p ~/.failproofai/policies
354
350
  cp examples/convention-policies/*.mjs ~/.failproofai/policies/
355
351
  ```
356
352
 
357
- कोई इंस्टॉल कमांड की आवश्यकता नहीं है फ़ाइलें अगली हुक इवेंट पर स्वचालित रूप से लोड हो जाती हैं।
353
+ कोई इंस्टॉल कमांड की आवश्यकता नहीं — फाइलें अगली हुक इवेंट पर स्वचालित रूप से उठाई जाती हैं।