failproofai 0.0.6-beta.0 → 0.0.6-beta.2

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 (191) hide show
  1. package/.next/standalone/.failproofai/policies/review-policies.mjs +113 -0
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +5 -5
  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/build-manifest.json +2 -2
  7. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  12. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  13. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  14. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  16. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  18. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  19. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  22. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  23. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  24. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  25. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  26. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  27. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  28. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  29. package/.next/standalone/.next/server/app/index.html +1 -1
  30. package/.next/standalone/.next/server/app/index.rsc +15 -15
  31. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  32. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  33. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  34. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  35. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/page/build-manifest.json +2 -2
  37. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  38. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +2 -2
  41. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  42. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  43. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +2 -2
  45. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +2 -2
  49. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  50. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  51. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  52. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
  54. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  55. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  56. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  58. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  59. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0a.nuas._.js → [root-of-the-server]__05akje6._.js} +2 -2
  60. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  63. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  64. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0.~fd7s._.js → [root-of-the-server]__0i5kvry._.js} +2 -2
  65. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  66. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +6 -6
  67. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  68. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  69. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  70. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  71. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  72. package/.next/standalone/.next/server/middleware-build-manifest.js +5 -5
  73. package/.next/standalone/.next/server/pages/404.html +2 -2
  74. package/.next/standalone/.next/server/pages/500.html +1 -1
  75. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  77. package/.next/standalone/.next/static/chunks/{0teq8wdh3po1n.js → 00j0rr7rh8ef8.js} +1 -1
  78. package/.next/standalone/.next/static/chunks/{0maq.q1t.ri85.js → 05j1px0r8yzh6.js} +2 -2
  79. package/.next/standalone/.next/static/chunks/0badv41uxa56..js +4 -0
  80. package/.next/standalone/.next/static/chunks/{0hplx-8c-4vpv.js → 0ijk_kek9_wyx.js} +1 -1
  81. package/.next/standalone/.next/static/chunks/{0uc0um_uz51m_.js → 0npb~873.wvg3.js} +1 -1
  82. package/.next/standalone/.next/static/chunks/{0hctoh28rg838.js → 0xpl.oscrakvx.js} +1 -1
  83. package/.next/standalone/.next/static/chunks/{0.z51twd.0l5z.js → 1052sguyd-.ka.js} +1 -1
  84. package/.next/standalone/.next/static/chunks/{09e7drilkf1sn.js → 12simlrcfk3g2.js} +1 -1
  85. package/.next/standalone/.next/static/chunks/{0ul6fk-z.6k-0.js → 14cl9poem30dq.js} +1 -1
  86. package/.next/standalone/.next/static/chunks/{turbopack-0r26pc8h0y_-e.js → turbopack-0o7k.hakttp4k.js} +1 -1
  87. package/.next/standalone/CHANGELOG.md +19 -0
  88. package/.next/standalone/README.md +2 -2
  89. package/.next/standalone/bun.lock +43 -85
  90. package/.next/standalone/dist/cli.mjs +91 -4
  91. package/.next/standalone/docs/ar/built-in-policies.mdx +124 -87
  92. package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
  93. package/.next/standalone/docs/ar/examples.mdx +86 -33
  94. package/.next/standalone/docs/ar/getting-started.mdx +82 -29
  95. package/.next/standalone/docs/built-in-policies.mdx +38 -1
  96. package/.next/standalone/docs/custom-policies.mdx +1 -1
  97. package/.next/standalone/docs/de/built-in-policies.mdx +93 -56
  98. package/.next/standalone/docs/de/custom-policies.mdx +56 -56
  99. package/.next/standalone/docs/de/examples.mdx +72 -18
  100. package/.next/standalone/docs/de/getting-started.mdx +72 -20
  101. package/.next/standalone/docs/es/built-in-policies.mdx +115 -78
  102. package/.next/standalone/docs/es/custom-policies.mdx +55 -55
  103. package/.next/standalone/docs/es/examples.mdx +73 -19
  104. package/.next/standalone/docs/es/getting-started.mdx +72 -20
  105. package/.next/standalone/docs/examples.mdx +54 -0
  106. package/.next/standalone/docs/fr/built-in-policies.mdx +83 -46
  107. package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
  108. package/.next/standalone/docs/fr/examples.mdx +78 -24
  109. package/.next/standalone/docs/fr/getting-started.mdx +65 -13
  110. package/.next/standalone/docs/getting-started.mdx +52 -0
  111. package/.next/standalone/docs/he/built-in-policies.mdx +156 -117
  112. package/.next/standalone/docs/he/custom-policies.mdx +75 -75
  113. package/.next/standalone/docs/he/examples.mdx +87 -33
  114. package/.next/standalone/docs/he/getting-started.mdx +84 -33
  115. package/.next/standalone/docs/hi/built-in-policies.mdx +101 -60
  116. package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
  117. package/.next/standalone/docs/hi/examples.mdx +90 -36
  118. package/.next/standalone/docs/hi/getting-started.mdx +80 -27
  119. package/.next/standalone/docs/i18n/README.ar.md +69 -69
  120. package/.next/standalone/docs/i18n/README.de.md +46 -46
  121. package/.next/standalone/docs/i18n/README.es.md +42 -42
  122. package/.next/standalone/docs/i18n/README.fr.md +39 -39
  123. package/.next/standalone/docs/i18n/README.he.md +83 -83
  124. package/.next/standalone/docs/i18n/README.hi.md +69 -69
  125. package/.next/standalone/docs/i18n/README.it.md +72 -72
  126. package/.next/standalone/docs/i18n/README.ja.md +71 -71
  127. package/.next/standalone/docs/i18n/README.ko.md +52 -52
  128. package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
  129. package/.next/standalone/docs/i18n/README.ru.md +66 -66
  130. package/.next/standalone/docs/i18n/README.tr.md +82 -83
  131. package/.next/standalone/docs/i18n/README.vi.md +70 -71
  132. package/.next/standalone/docs/i18n/README.zh.md +51 -51
  133. package/.next/standalone/docs/it/built-in-policies.mdx +118 -81
  134. package/.next/standalone/docs/it/custom-policies.mdx +69 -69
  135. package/.next/standalone/docs/it/examples.mdx +93 -39
  136. package/.next/standalone/docs/it/getting-started.mdx +73 -21
  137. package/.next/standalone/docs/ja/built-in-policies.mdx +98 -61
  138. package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
  139. package/.next/standalone/docs/ja/examples.mdx +76 -22
  140. package/.next/standalone/docs/ja/getting-started.mdx +65 -13
  141. package/.next/standalone/docs/ko/built-in-policies.mdx +137 -100
  142. package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
  143. package/.next/standalone/docs/ko/examples.mdx +87 -33
  144. package/.next/standalone/docs/ko/getting-started.mdx +61 -9
  145. package/.next/standalone/docs/pt-br/built-in-policies.mdx +94 -57
  146. package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
  147. package/.next/standalone/docs/pt-br/examples.mdx +78 -24
  148. package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
  149. package/.next/standalone/docs/ru/built-in-policies.mdx +142 -105
  150. package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
  151. package/.next/standalone/docs/ru/examples.mdx +77 -22
  152. package/.next/standalone/docs/ru/getting-started.mdx +74 -22
  153. package/.next/standalone/docs/tr/built-in-policies.mdx +104 -67
  154. package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
  155. package/.next/standalone/docs/tr/examples.mdx +97 -42
  156. package/.next/standalone/docs/tr/getting-started.mdx +75 -23
  157. package/.next/standalone/docs/vi/built-in-policies.mdx +110 -72
  158. package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
  159. package/.next/standalone/docs/vi/examples.mdx +93 -38
  160. package/.next/standalone/docs/vi/getting-started.mdx +74 -22
  161. package/.next/standalone/docs/zh/built-in-policies.mdx +132 -95
  162. package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
  163. package/.next/standalone/docs/zh/examples.mdx +90 -36
  164. package/.next/standalone/docs/zh/getting-started.mdx +73 -21
  165. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  166. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  167. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
  168. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  169. package/.next/standalone/node_modules/next/dist/server/config-schema.js +10 -2
  170. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  171. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  172. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  173. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  174. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  175. package/.next/standalone/node_modules/next/dist/server/render.js +27 -20
  176. package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  177. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  178. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  179. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  180. package/.next/standalone/node_modules/next/package.json +15 -15
  181. package/.next/standalone/package.json +2 -2
  182. package/.next/standalone/server.js +1 -1
  183. package/.next/standalone/src/hooks/builtin-policies.ts +106 -1
  184. package/README.md +2 -2
  185. package/dist/cli.mjs +91 -4
  186. package/package.json +2 -2
  187. package/src/hooks/builtin-policies.ts +106 -1
  188. package/.next/standalone/.next/static/chunks/0w9lwqy0-v1dk.js +0 -4
  189. /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_buildManifest.js +0 -0
  190. /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_clientMiddlewareManifest.js +0 -0
  191. /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_ssgManifest.js +0 -0
@@ -1,10 +1,11 @@
1
1
  ---
2
+ ---
2
3
  title: कस्टम पॉलिसीज़
3
- description: "JavaScript में अपने स्वयं के पॉलिसीज़ लिखें - सम्मेलन लागू करें, विचलन रोकें, विफलताओं का पता लगाएं, बाहरी सिस्टम के साथ एकीकरण करें"
4
+ description: "JavaScript में अपने नियम लिखें - कन्वेंशन को लागू करें, ड्रिफ्ट को रोकें, विफलताओं का पता लगाएं, बाहरी सिस्टम्स के साथ एकीकृत करें"
4
5
  icon: code
5
6
  ---
6
7
 
7
- कस्टम पॉलिसीज़ आपको किसी भी एजेंट व्यवहार के लिए नियम लिखने देती हैं: प्रोजेक्ट सम्मेलन लागू करें, विचलन रोकें, विनाशकारी ऑपरेशन को गेट करें, फंसे हुए एजेंटों का पता लगाएं, या Slack, स्वीकृति वर्कफ़्लो और बहुत कुछ के साथ एकीकृत करें। ये बिल्ट-इन पॉलिसीज़ के समान हुक इवेंट सिस्टम और `allow`, `deny`, `instruct` निर्णयों का उपयोग करते हैं।
8
+ कस्टम पॉलिसीज़ आपको किसी भी एजेंट व्यवहार के लिए नियम लिखने देती हैं: प्रोजेक्ट कन्वेंशन को लागू करें, ड्रिफ्ट को रोकें, विनाशकारी ऑपरेशन्स को गेट करें, फंसे हुए एजेंट्स का पता लगाएं, या Slack, अनुमोदन वर्कफ्लो, और अन्य सिस्टम्स के साथ एकीकृत करें। ये वही हुक इवेंट सिस्टम और `allow`, `deny`, `instruct` निर्णय का उपयोग करते हैं जो बिल्ट-इन पॉलिसीज़ करती हैं।
8
9
 
9
10
  ---
10
11
 
@@ -37,14 +38,14 @@ failproofai policies --install --custom ./my-policies.js
37
38
 
38
39
  ---
39
40
 
40
- ## कस्टम पॉलिसीज़ लोड करने के दो तरीके
41
+ ## कस्टम पॉलिसीज़ को लोड करने के दो तरीके
41
42
 
42
43
  ### विकल्प 1: कन्वेंशन-आधारित (अनुशंसित)
43
44
 
44
- `*policies.{js,mjs,ts}` फाइलों को `.failproofai/policies/` में डालें और वे स्वचालित रूप से लोड हो जाती हैं — कोई फ्लैग या कॉन्फ़िगरेशन परिवर्तन की आवश्यकता नहीं। यह git हुक्स की तरह काम करता है: एक फाइल डालें, यह काम करता है।
45
+ `.failproofai/policies/` में `*policies.{js,mjs,ts}` फाइलें ड्रॉप करें और वे स्वचालित रूप से लोड हो जाती हैं — कोई फ्लैग या कॉन्फ़िग परिवर्तन की आवश्यकता नहीं। यह git हुक्स की तरह काम करता है: एक फाइल ड्रॉप करें, बस काम करता है।
45
46
 
46
47
  ```
47
- # प्रोजेक्ट स्तर — git में कमिट किया गया, टीम के साथ साझा किया गया
48
+ # प्रोजेक्ट स्तर — git के लिए प्रतिबद्ध, टीम के साथ साझा किया गया
48
49
  .failproofai/policies/security-policies.mjs
49
50
  .failproofai/policies/workflow-policies.mjs
50
51
 
@@ -53,44 +54,44 @@ failproofai policies --install --custom ./my-policies.js
53
54
  ```
54
55
 
55
56
  **यह कैसे काम करता है:**
56
- - प्रोजेक्ट और उपयोगकर्ता दोनों निर्देशिकाएं स्कैन की जाती हैं (संघपहले-दायरा-जीत नहीं)
57
- - फाइलें प्रत्येक निर्देशिका में वर्णमाला के अनुसार लोड की जाती हैं। क्रम नियंत्रित करने के लिए `01-`, `02-` से शुरू करें
58
- - केवल `*policies.{js,mjs,ts}` से मेल खाने वाली फाइलें लोड की जाती हैं; अन्य फाइलें अनदेखी की जाती हैं
59
- - प्रत्येक फाइल स्वतंत्र रूप से लोड की जाती है (फाइल प्रति फेल-ओपन)
60
- - स्पष्ट `--custom` और बिल्ट-इन पॉलिसीज़ के साथ साथ काम करता है
57
+ - प्रोजेक्ट और उपयोगकर्ता दोनों डायरेक्टरीज़ को स्कैन किया जाता है (यूनियनपहली स्कोप-जीत नहीं)
58
+ - फाइलें प्रत्येक डायरेक्टरी के भीतर वर्णानुक्रमिक रूप से लोड होती हैं। क्रम को नियंत्रित करने के लिए `01-`, `02-` से प्रीफ़िक्स करें
59
+ - केवल `*policies.{js,mjs,ts}` से मेल खाने वाली फाइलें लोड होती हैं; अन्य फाइलें नजरअंदाज की जाती हैं
60
+ - प्रत्येक फाइल स्वतंत्र रूप से लोड होती है (प्रति फाइल फेल-ओपन)
61
+ - स्पष्ट `--custom` और बिल्ट-इन पॉलिसीज़ के साथ काम करता है
61
62
 
62
63
  <Tip>
63
- कन्वेंशन पॉलिसीज़ एक टीम में पॉलिसीज़ साझा करने का सबसे आसान तरीका है। `.failproofai/policies/` को git में कमिट करें और प्रत्येक टीम सदस्य को वह स्वचालित रूप से मिल जाएगा।
64
+ कन्वेंशन पॉलिसीज़ आपके संगठन के लिए एक गुणवत्ता मानक बनाने का सबसे आसान तरीका हैं। `.failproofai/policies/` को git में प्रतिबद्ध करें और हर टीम सदस्य को स्वचालित रूप से वही नियम मिलते हैं — कोई प्रति-डेवलपर सेटअप की आवश्यकता नहीं। जैसे-जैसे आपकी टीम नई विफलता के तरीके खोजती है, एक पॉलिसी जोड़ें और पुश करें। समय के साथ ये एक जीवंत गुणवत्ता मानक बन जाते हैं जो हर योगदान के साथ सुधरते रहते हैं।
64
65
  </Tip>
65
66
 
66
- ### विकल्प 2: स्पष्ट फाइल पथ
67
+ ### विकल्प 2: स्पष्ट फाइल पाथ
67
68
 
68
69
  ```bash
69
70
  # कस्टम पॉलिसीज़ फाइल के साथ इंस्टॉल करें
70
71
  failproofai policies --install --custom ./my-policies.js
71
72
 
72
- # पॉलिसीज़ फाइल पथ बदलें
73
+ # पॉलिसीज़ फाइल पाथ को प्रतिस्थापित करें
73
74
  failproofai policies --install --custom ./new-policies.js
74
75
 
75
- # कॉन्फ़िग से कस्टम पॉलिसीज़ पथ हटाएं
76
+ # कॉन्फ़िग से कस्टम पॉलिसीज़ पाथ को हटाएं
76
77
  failproofai policies --uninstall --custom
77
78
  ```
78
79
 
79
- हल किया गया पूर्ण पथ `policies-config.json` में `customPoliciesPath` के रूप में संग्रहीत है। फाइल हर हुक इवेंट पर ताज़ी लोड की जाती है - इवेंट्स के बीच कोई कैशिंग नहीं है।
80
+ हल किया गया निरपेक्ष पाथ `policies-config.json` में `customPoliciesPath` के रूप में संग्रहीत होता है। फाइल हर हुक इवेंट पर ताज़ी लोड होती है - इवेंट्स के बीच कोई कैशिंग नहीं होती है।
80
81
 
81
82
  ### दोनों को एक साथ उपयोग करना
82
83
 
83
- कन्वेंशन पॉलिसीज़ और स्पष्ट `--custom` फाइल एक साथ मौजूद हो सकती हैं। लोड क्रम:
84
+ कन्वेंशन पॉलिसीज़ और स्पष्ट `--custom` फाइल एक साथ सह-अस्तित्व कर सकती हैं। लोड क्रम:
84
85
 
85
- 1. स्पष्ट `customPoliciesPath` फाइल (यदि कॉन्फ़िगर किया गया है)
86
- 2. प्रोजेक्ट कन्वेंशन फाइलें (`{cwd}/.failproofai/policies/`, वर्णमाला के अनुसार)
87
- 3. उपयोगकर्ता कन्वेंशन फाइलें (`~/.failproofai/policies/`, वर्णमाला के अनुसार)
86
+ 1. स्पष्ट `customPoliciesPath` फाइल (यदि कॉन्फ़िगर की गई है)
87
+ 2. प्रोजेक्ट कन्वेंशन फाइलें (`{cwd}/.failproofai/policies/`, वर्णानुक्रमिक)
88
+ 3. उपयोगकर्ता कन्वेंशन फाइलें (`~/.failproofai/policies/`, वर्णानुक्रमिक)
88
89
 
89
90
  ---
90
91
 
91
92
  ## API
92
93
 
93
- ### आयात
94
+ ### आयात करें
94
95
 
95
96
  ```js
96
97
  import { customPolicies, allow, deny, instruct } from "failproofai";
@@ -98,45 +99,45 @@ import { customPolicies, allow, deny, instruct } from "failproofai";
98
99
 
99
100
  ### `customPolicies.add(hook)`
100
101
 
101
- एक पॉलिसी को रजिस्टर करता है। एक ही फाइल में कई पॉलिसीज़ के लिए आवश्यकतानुसार कई बार कॉल करें।
102
+ एक पॉलिसी को पंजीकृत करता है। एक ही फाइल में कई पॉलिसीज़ के लिए आवश्यकतानुसार कई बार कॉल करें।
102
103
 
103
104
  ```ts
104
105
  customPolicies.add({
105
106
  name: string; // आवश्यक - अद्वितीय पहचानकर्ता
106
107
  description?: string; // `failproofai policies` आउटपुट में दिखाया गया
107
- match?: { events?: HookEventType[] }; // इवेंट प्रकार द्वारा फ़िल्टर करें; सभी से मेल खाने के लिए छोड़ें
108
+ match?: { events?: HookEventType[] }; // इवेंट प्रकार द्वारा फ़िल्टर करें; सभी से मेल खाने के लिए छोड़ दें
108
109
  fn: (ctx: PolicyContext) => PolicyResult | Promise<PolicyResult>;
109
110
  });
110
111
  ```
111
112
 
112
113
  ### निर्णय सहायक
113
114
 
114
- | फ़ंक्शन | प्रभाव | कब उपयोग करें |
115
+ | फंक्शन | प्रभाव | उपयोग करें जब |
115
116
  |----------|--------|----------|
116
- | `allow()` | ऑपरेशन को स्पष्ट रूप से अनुमति दें | कार्रवाई सुरक्षित है, कोई संदेश आवश्यक नहीं |
117
- | `deny(message)` | ऑपरेशन को ब्लॉक करें | एजेंट को यह कार्रवाई नहीं करनी चाहिए |
117
+ | `allow()` | ऑपरेशन को चुप से अनुमति दें | कार्य सुरक्षित है, कोई संदेश की आवश्यकता नहीं |
118
+ | `deny(message)` | ऑपरेशन को ब्लॉक करें | एजेंट को यह कार्य नहीं करना चाहिए |
118
119
  | `instruct(message)` | बिना ब्लॉक किए संदर्भ जोड़ें | एजेंट को ट्रैक पर रहने के लिए अतिरिक्त संदर्भ दें |
119
120
 
120
- `deny(message)` - संदेश Claude को `"Blocked by failproofai:"` से पहले दिखाई देता है। एक एकल `deny` सभी आगे के मूल्यांकन को शॉर्ट-सर्किट करता है।
121
+ `deny(message)` - संदेश Claude को `"Blocked by failproofai:"` प्रीफ़िक्स के साथ दिखाई देता है। एक ही `deny` सभी आगामी मूल्यांकन को शॉर्ट-सर्किट करता है।
121
122
 
122
- `instruct(message)` - संदेश वर्तमान टूल कॉल के लिए Claude के संदर्भ में जोड़ा जाता है। सभी `instruct` संदेश जमा किए जाते हैं और एक साथ वितरित किए जाते हैं।
123
+ `instruct(message)` - संदेश Claude के संदर्भ में वर्तमान टूल कॉल के लिए जोड़ा जाता है। सभी `instruct` संदेश एकत्र किए जाते हैं और एक साथ दिए जाते हैं।
123
124
 
124
125
  <Tip>
125
- आप `policyParams` में `hint` फील्ड जोड़कर किसी भी `deny` या `instruct` संदेश में अतिरिक्त मार्गदर्शन जोड़ सकते हैं — कोई कोड परिवर्तन आवश्यक नहीं। यह कस्टम (`custom/`), प्रोजेक्ट कन्वेंशन (`.failproofai-project/`), और उपयोगकर्ता कन्वेंशन (`.failproofai-user/`) पॉलिसीज़ के लिए भी काम करता है। विवरण के लिए [कॉन्फ़िगरेशन → hint](/hi/configuration#hint-cross-cutting) देखें।
126
+ आप `policyParams` में एक `hint` फील्ड जोड़कर किसी भी `deny` या `instruct` संदेश के लिए अतिरिक्त मार्गदर्शन जोड़ सकते हैं — कोई कोड परिवर्तन की आवश्यकता नहीं। यह कस्टम (`custom/`), प्रोजेक्ट कन्वेंशन (`.failproofai-project/`), और उपयोगकर्ता कन्वेंशन (`.failproofai-user/`) पॉलिसीज़ के लिए भी काम करता है। [कॉन्फ़िगरेशन → hint](/hi/configuration#hint-cross-cutting) विवरण के लिए देखें।
126
127
  </Tip>
127
128
 
128
129
  ### सूचनात्मक allow संदेश
129
130
 
130
- `allow(message)` ऑपरेशन की अनुमति देता है **और** Claude को एक सूचनात्मक संदेश भेजता है। संदेश हुक हैंडलर के stdout प्रतिक्रिया में `additionalContext` के रूप में वितरित किया जाता है — `instruct` द्वारा उपयोग किया जाने वाला समान तंत्र, लेकिन शब्दार्थ से अलग: यह एक चेतावनी नहीं, बल्कि एक स्थिति अपडेट है।
131
+ `allow(message)` ऑपरेशन को अनुमति देता है **और** Claude को वापस एक सूचनात्मक संदेश भेजता है। संदेश हुक हैंडलर के stdout प्रतिक्रिया में `additionalContext` के रूप में दिया जाता है — `instruct` द्वारा उपयोग की जाने वाली एक ही तंत्र, लेकिन शब्दार्थ अलग: यह एक चेतावनी नहीं बल्कि एक स्थिति अपडेट है।
131
132
 
132
- | फ़ंक्शन | प्रभाव | कब उपयोग करें |
133
+ | फंक्शन | प्रभाव | उपयोग करें जब |
133
134
  |----------|--------|----------|
134
- | `allow(message)` | अनुमति दें और Claude को संदर्भ भेजें | एक जांच पास होने की पुष्टि करें, या एक जांच छोड़े जाने का कारण समझाएं |
135
+ | `allow(message)` | अनुमति दें और Claude को संदर्भ भेजें | एक चेक पास हुई की पुष्टि करें, या समझाएं कि एक चेक क्यों छोड़ा गया |
135
136
 
136
137
  उपयोग के मामले:
137
- - **स्थिति पुष्टि:** `allow("All CI checks passed.")` — Claude को बताएं कि सब कुछ हरा है
138
- - **फेल-ओपन व्याख्या:** `allow("GitHub CLI not installed, skipping CI check.")` — Claude को बताएं कि एक जांच क्यों छोड़ी गई थी ताकि उसके पास पूरा संदर्भ हो
139
- - **कई संदेश जमा होते हैं:** यदि कई पॉलिसीज़ प्रत्येक `allow(message)` लौटाती हैं, तो सभी संदेश नई पंक्तियों के साथ जुड़े जाते हैं और एक साथ वितरित किए जाते हैं
138
+ - **स्थिति पुष्टियां:** `allow("All CI checks passed.")` — Claude को बताएं कि सब कुछ हरा है
139
+ - **फेल-ओपन स्पष्टीकरण:** `allow("GitHub CLI not installed, skipping CI check.")` — Claude को बताएं कि एक चेक क्यों छोड़ा गया ताकि उसके पास पूर्ण संदर्भ हो
140
+ - **कई संदेश जमा होते हैं:** यदि कई पॉलिसीज़ प्रत्येक `allow(message)` लौटाती हैं, सभी संदेश नई पंक्तियों के साथ जुड़ जाते हैं और एक साथ दिए जाते हैं
140
141
 
141
142
  ```js
142
143
  customPolicies.add({
@@ -146,7 +147,7 @@ customPolicies.add({
146
147
  const cwd = ctx.session?.cwd;
147
148
  if (!cwd) return allow("No working directory, skipping branch check.");
148
149
 
149
- // ... check branch status ...
150
+ // ... branch status चेक करें ...
150
151
  if (allPushed) {
151
152
  return allow("Branch is up to date with remote.");
152
153
  }
@@ -160,7 +161,7 @@ customPolicies.add({
160
161
  | फील्ड | प्रकार | विवरण |
161
162
  |-------|------|-------------|
162
163
  | `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
163
- | `toolName` | `string \| undefined` | कॉल किया जा रहा टूल (जैसे `"Bash"`, `"Write"`, `"Read"`) |
164
+ | `toolName` | `string \| undefined` | कॉल किया जा रहा टूल (उदाहरण के लिए `"Bash"`, `"Write"`, `"Read"`) |
164
165
  | `toolInput` | `Record<string, unknown> \| undefined` | टूल के इनपुट पैरामीटर |
165
166
  | `payload` | `Record<string, unknown>` | Claude Code से संपूर्ण कच्चा इवेंट पेलोड |
166
167
  | `session` | `SessionMetadata \| undefined` | सेशन संदर्भ (नीचे देखें) |
@@ -171,37 +172,37 @@ customPolicies.add({
171
172
  |-------|------|-------------|
172
173
  | `sessionId` | `string` | Claude Code सेशन पहचानकर्ता |
173
174
  | `cwd` | `string` | Claude Code सेशन की कार्य निर्देशिका |
174
- | `transcriptPath` | `string` | सेशन की JSONL ट्रांसक्रिप्ट फाइल का पथ |
175
+ | `transcriptPath` | `string` | सेशन की JSONL ट्रांसक्रिप्ट फाइल का पाथ |
175
176
 
176
177
  ### इवेंट प्रकार
177
178
 
178
179
  | इवेंट | कब फायर होता है | `toolInput` सामग्री |
179
180
  |-------|--------------|----------------------|
180
- | `PreToolUse` | Claude एक टूल चलाने से पहले | टूल का इनपुट (जैसे Bash के लिए `{ command: "..." }`) |
181
+ | `PreToolUse` | Claude एक टूल चलाने से पहले | टूल का इनपुट (उदाहरण के लिए Bash के लिए `{ command: "..." }`) |
181
182
  | `PostToolUse` | एक टूल पूरा होने के बाद | टूल का इनपुट + `tool_result` (आउटपुट) |
182
- | `Notification` | जब Claude एक सूचना भेजता है | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` - हुक्स को हमेशा `allow()` लौटाना चाहिए, वे सूचनाओं को ब्लॉक नहीं कर सकते |
183
+ | `Notification` | जब Claude एक सूचना भेजता है | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` - हुक्स को हमेशा `allow()` लौटना चाहिए, वे सूचनाओं को ब्लॉक नहीं कर सकते |
183
184
  | `Stop` | जब Claude सेशन समाप्त होता है | खाली |
184
185
 
185
186
  ---
186
187
 
187
188
  ## मूल्यांकन क्रम
188
189
 
189
- पॉलिसीज़ का मूल्यांकन इस क्रम में किया जाता है:
190
+ पॉलिसीज़ को इस क्रम में मूल्यांकन किया जाता है:
190
191
 
191
192
  1. बिल्ट-इन पॉलिसीज़ (परिभाषा क्रम में)
192
193
  2. `customPoliciesPath` से स्पष्ट कस्टम पॉलिसीज़ (`.add()` क्रम में)
193
- 3. प्रोजेक्ट `.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (फाइलें वर्णमाला के अनुसार, `.add()` क्रम के भीतर)
194
- 4. उपयोगकर्ता `~/.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (फाइलें वर्णमाला के अनुसार, `.add()` क्रम के भीतर)
194
+ 3. प्रोजेक्ट `.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (फाइलें वर्णानुक्रमिक, `.add()` क्रम के भीतर)
195
+ 4. उपयोगकर्ता `~/.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (फाइलें वर्णानुक्रमिक, `.add()` क्रम के भीतर)
195
196
 
196
197
  <Note>
197
- पहला `deny` सभी बाद की पॉलिसीज़ को शॉर्ट-सर्किट करता है। सभी `instruct` संदेश जमा किए जाते हैं और एक साथ वितरित किए जाते हैं।
198
+ पहला `deny` सभी बाद की पॉलिसीज़ को शॉर्ट-सर्किट करता है। सभी `instruct` संदेश एकत्र किए जाते हैं और एक साथ दिए जाते हैं।
198
199
  </Note>
199
200
 
200
201
  ---
201
202
 
202
- ## पारगमन आयात
203
+ ## संक्रमणकारी आयात
203
204
 
204
- कस्टम पॉलिसी फाइलें सापेक्ष पथों का उपयोग करके स्थानीय मॉड्यूल को आयात कर सकती हैं:
205
+ कस्टम पॉलिसी फाइलें सापेक्ष पाथ का उपयोग करके स्थानीय मॉड्यूल को आयात कर सकती हैं:
205
206
 
206
207
  ```js
207
208
  // my-policies.js
@@ -218,46 +219,46 @@ customPolicies.add({
218
219
  });
219
220
  ```
220
221
 
221
- एंट्री फाइल से सभी सापेक्ष आयात हल किए जाते हैं। यह `from "failproofai"` आयात को वास्तविक dist पथ में फिर से लिखकर और ESM संगतता सुनिश्चित करने के लिए अस्थायी `.mjs` फाइलें बनाकर लागू किया जाता है।
222
+ प्रवेश फाइल से पहुंचने योग्य सभी सापेक्ष आयात हल किए जाते हैं। यह `from "failproofai"` आयात को वास्तविक dist पाथ में फिर से लिखकर और ESM संगतता सुनिश्चित करने के लिए अस्थायी `.mjs` फाइलें बनाकर लागू किया जाता है।
222
223
 
223
224
  ---
224
225
 
225
226
  ## इवेंट प्रकार फ़िल्टरिंग
226
227
 
227
- किसी पॉलिसी को फायर करने के समय को सीमित करने के लिए `match.events` का उपयोग करें:
228
+ `match.events` का उपयोग करके सीमित करें कि कोई पॉलिसी कब फायर होती है:
228
229
 
229
230
  ```js
230
231
  customPolicies.add({
231
232
  name: "require-summary-on-stop",
232
233
  match: { events: ["Stop"] },
233
234
  fn: async (ctx) => {
234
- // केवल तभी फायर होता है जब सेशन समाप्त होता है
235
- // ctx.session.transcriptPath में संपूर्ण सेशन लॉग होता है
235
+ // केवल तब फायर होता है जब सेशन समाप्त होता है
236
+ // ctx.session.transcriptPath में पूर्ण सेशन लॉग होता है
236
237
  return allow();
237
238
  },
238
239
  });
239
240
  ```
240
241
 
241
- हर इवेंट प्रकार पर फायर करने के लिए `match` को पूरी तरह छोड़ दें।
242
+ सभी इवेंट प्रकारों पर फायर करने के लिए `match` को पूरी तरह छोड़ दें।
242
243
 
243
244
  ---
244
245
 
245
- ## त्रुटि हैंडलिंग और विफलता के तरीके
246
+ ## त्रुटि हैंडलिंग और विफलता मोड
246
247
 
247
- कस्टम पॉलिसीज़ **फेल-ओपन** हैं: त्रुटियां कभी भी बिल्ट-इन पॉलिसीज़ को ब्लॉक नहीं करती हैं या हुक हैंडलर को क्रैश नहीं करती हैं।
248
+ कस्टम पॉलिसीज़ **फेल-ओपन** हैं: त्रुटियां कभी बिल्ट-इन पॉलिसीज़ को ब्लॉक नहीं करती हैं या हुक हैंडलर को क्रैश नहीं करती हैं।
248
249
 
249
250
  | विफलता | व्यवहार |
250
251
  |---------|----------|
251
- | `customPoliciesPath` सेट नहीं है | कोई स्पष्ट कस्टम पॉलिसीज़ चलाई नहीं जाती हैं; कन्वेंशन पॉलिसीज़ और बिल्ट-इन सामान्य रूप से जारी रहते हैं |
252
- | फाइल नहीं मिली | `~/.failproofai/hook.log` में चेतावनी दर्ज की गई; बिल्ट-इन जारी रहते हैं |
253
- | सिंटैक्स/आयात त्रुटि (स्पष्ट) | `~/.failproofai/hook.log` में त्रुटि दर्ज की गई; स्पष्ट कस्टम पॉलिसीज़ छोड़ी गई हैं |
254
- | सिंटैक्स/आयात त्रुटि (कन्वेंशन) | दर्ज की गई त्रुटि; वह फाइल छोड़ी गई, अन्य कन्वेंशन फाइलें अभी भी लोड होती हैं |
255
- | `fn` रनटाइम पर फेंकता है | दर्ज की गई त्रुटि; वह हुक `allow` के रूप में माना जाता है; अन्य हुक्स जारी रहते हैं |
256
- | `fn` 10 सेकंड से अधिक समय लेता है | दर्ज किया गया टाइमआउट; `allow` के रूप में माना जाता है |
257
- | कन्वेंशन निर्देशिका गायब | कोई कन्वेंशन पॉलिसीज़ चलाई नहीं जाती हैं; कोई त्रुटि नहीं |
252
+ | `customPoliciesPath` सेट नहीं है | कोई स्पष्ट कस्टम पॉलिसीज़ नहीं चलती हैं; कन्वेंशन पॉलिसीज़ और बिल्ट-इन सामान्य रूप से जारी रहते हैं |
253
+ | फाइल नहीं मिली | `~/.failproofai/hook.log` में चेतावनी लॉग की गई; बिल्ट-इन जारी रहते हैं |
254
+ | सिंटैक्स/आयात त्रुटि (स्पष्ट) | `~/.failproofai/hook.log` में त्रुटि लॉग की गई; स्पष्ट कस्टम पॉलिसीज़ छोड़ी गई |
255
+ | सिंटैक्स/आयात त्रुटि (कन्वेंशन) | त्रुटि लॉग की गई; वह फाइल छोड़ी गई, अन्य कन्वेंशन फाइलें अभी भी लोड होती हैं |
256
+ | `fn` रन-टाइम पर फेंक देता है | त्रुटि लॉग की गई; वह हुक `allow` के रूप में मानी जाती है; अन्य हुक्स जारी रहते हैं |
257
+ | `fn` 10 सेकंड से अधिक समय लेता है | टाइमआउट लॉग किया जाता है; `allow` के रूप में मानी जाती है |
258
+ | कन्वेंशन डायरेक्टरी गायब है | कोई कन्वेंशन पॉलिसीज़ नहीं चलती हैं; कोई त्रुटि नहीं |
258
259
 
259
260
  <Tip>
260
- कस्टम पॉलिसी त्रुटियों को डीबग करने के लिए, लॉग फाइल देखें:
261
+ कस्टम पॉलिसी त्रुटियों को डिबग करने के लिए, लॉग फाइल देखें:
261
262
 
262
263
  ```bash
263
264
  tail -f ~/.failproofai/hook.log
@@ -272,7 +273,7 @@ tail -f ~/.failproofai/hook.log
272
273
  // my-policies.js
273
274
  import { customPolicies, allow, deny, instruct } from "failproofai";
274
275
 
275
- // एजेंट को secrets/ निर्देशिका में लिखने से रोकें
276
+ // एजेंट को secrets/ डायरेक्टरी में लिखने से रोकें
276
277
  customPolicies.add({
277
278
  name: "block-secrets-dir",
278
279
  description: "Prevent agent from writing to secrets/ directory",
@@ -300,7 +301,7 @@ customPolicies.add({
300
301
  },
301
302
  });
302
303
 
303
- // फ्रीज अवधि के दौरान अनियोजित निर्भरता परिवर्तनों को रोकें
304
+ // फ्रीज़ अवधि के दौरान अनियोजित निर्भरता परिवर्तन को रोकें
304
305
  customPolicies.add({
305
306
  name: "dependency-freeze",
306
307
  description: "Prevent unplanned dependency changes during freeze period",
@@ -323,22 +324,22 @@ export { customPolicies };
323
324
 
324
325
  ## उदाहरण
325
326
 
326
- `examples/` निर्देशिका में चलने के लिए तैयार पॉलिसी फाइलें हैं:
327
+ `examples/` डायरेक्टरी में तैयार-से-चलाने के लिए पॉलिसी फाइलें हैं:
327
328
 
328
329
  | फाइल | सामग्री |
329
330
  |------|----------|
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` | कन्वेंशन-आधारित वर्कफ़्लो पॉलिसीज़ (टेस्ट रिमाइंडर, ऑडिट फाइल लेखन) |
331
+ | `examples/policies-basic.js` | पांच स्टार्टर पॉलिसीज़ जो सामान्य एजेंट विफलता के तरीकों को कवर करती हैं |
332
+ | `examples/policies-advanced/index.js` | उन्नत पैटर्न: संक्रमणकारी आयात, async कॉल, आउटपुट स्क्रबिंग, और सेशन-एंड हुक्स |
333
+ | `examples/convention-policies/security-policies.mjs` | कन्वेंशन-आधारित सुरक्षा पॉलिसीज़ (.env लिखता है ब्लॉक करें, git हिस्ट्री पुनर्लेखन रोकें) |
334
+ | `examples/convention-policies/workflow-policies.mjs` | कन्वेंशन-आधारित वर्कफ्लो पॉलिसीज़ (टेस्ट रिमाइंडर, ऑडिट फाइल लिखता है) |
334
335
 
335
- ### स्पष्ट फाइल उदाहरणों का उपयोग करना
336
+ ### स्पष्ट फाइल उदाहरण का उपयोग करना
336
337
 
337
338
  ```bash
338
339
  failproofai policies --install --custom ./examples/policies-basic.js
339
340
  ```
340
341
 
341
- ### कन्वेंशन-आधारित उदाहरणों का उपयोग करना
342
+ ### कन्वेंशन-आधारित उदाहरण का उपयोग करना
342
343
 
343
344
  ```bash
344
345
  # प्रोजेक्ट स्तर पर कॉपी करें
@@ -350,4 +351,4 @@ mkdir -p ~/.failproofai/policies
350
351
  cp examples/convention-policies/*.mjs ~/.failproofai/policies/
351
352
  ```
352
353
 
353
- कोई इंस्टॉल कमांड की आवश्यकता नहीं — फाइलें अगली हुक इवेंट पर स्वचालित रूप से उठाई जाती हैं।
354
+ कोई इंस्टॉल कमांड की आवश्यकता नहीं — फाइलें अगले हुक इवेंट पर स्वचालित रूप से उठाई जाती हैं।