failproofai 0.0.5 → 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.
- package/.next/standalone/.failproofai/policies/workflow-policies.mjs +2 -1
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0a~g15g._.js → [root-of-the-server]__0.~fd7s._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0qn95h3._.js → [root-of-the-server]__0a.nuas._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +2 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
- package/.next/standalone/.next/static/chunks/{09ikntpt2-o9b.js → 0.z51twd.0l5z.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0sme4lkv.tgn-.js → 0hctoh28rg838.js} +1 -1
- package/.next/standalone/.next/static/chunks/{13juklu.vksks.js → 0hplx-8c-4vpv.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0em7tspi4kylh.js → 0maq.q1t.ri85.js} +2 -2
- package/.next/standalone/.next/static/chunks/{17manv47o-~wp.js → 0teq8wdh3po1n.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0lgbwkfqmnsmc.js → 0uc0um_uz51m_.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0yumumfzx_f27.js → 0ul6fk-z.6k-0.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0_yayar~bpphd.js → 0w9lwqy0-v1dk.js} +1 -1
- package/.next/standalone/CHANGELOG.md +5 -0
- package/.next/standalone/dist/cli.mjs +19 -2
- package/.next/standalone/docs/ar/architecture.mdx +65 -64
- package/.next/standalone/docs/ar/configuration.mdx +42 -42
- package/.next/standalone/docs/ar/custom-policies.mdx +62 -64
- package/.next/standalone/docs/de/architecture.mdx +92 -92
- package/.next/standalone/docs/de/configuration.mdx +34 -34
- package/.next/standalone/docs/de/custom-policies.mdx +49 -50
- package/.next/standalone/docs/es/architecture.mdx +72 -72
- package/.next/standalone/docs/es/configuration.mdx +25 -25
- package/.next/standalone/docs/es/custom-policies.mdx +48 -49
- package/.next/standalone/docs/fr/architecture.mdx +53 -53
- package/.next/standalone/docs/fr/configuration.mdx +25 -25
- package/.next/standalone/docs/fr/custom-policies.mdx +42 -43
- package/.next/standalone/docs/he/architecture.mdx +66 -66
- package/.next/standalone/docs/he/configuration.mdx +53 -52
- package/.next/standalone/docs/he/custom-policies.mdx +72 -73
- package/.next/standalone/docs/hi/architecture.mdx +106 -106
- package/.next/standalone/docs/hi/configuration.mdx +39 -39
- package/.next/standalone/docs/hi/custom-policies.mdx +75 -76
- package/.next/standalone/docs/i18n/README.ar.md +66 -66
- package/.next/standalone/docs/i18n/README.de.md +38 -38
- package/.next/standalone/docs/i18n/README.es.md +38 -38
- package/.next/standalone/docs/i18n/README.fr.md +42 -42
- package/.next/standalone/docs/i18n/README.he.md +67 -67
- package/.next/standalone/docs/i18n/README.hi.md +70 -70
- package/.next/standalone/docs/i18n/README.it.md +62 -62
- package/.next/standalone/docs/i18n/README.ja.md +54 -54
- package/.next/standalone/docs/i18n/README.ko.md +58 -58
- package/.next/standalone/docs/i18n/README.pt-br.md +43 -43
- package/.next/standalone/docs/i18n/README.ru.md +69 -69
- package/.next/standalone/docs/i18n/README.tr.md +76 -76
- package/.next/standalone/docs/i18n/README.vi.md +70 -70
- package/.next/standalone/docs/i18n/README.zh.md +52 -52
- package/.next/standalone/docs/it/architecture.mdx +54 -53
- package/.next/standalone/docs/it/configuration.mdx +44 -45
- package/.next/standalone/docs/it/custom-policies.mdx +76 -78
- package/.next/standalone/docs/ja/architecture.mdx +93 -93
- package/.next/standalone/docs/ja/configuration.mdx +47 -47
- package/.next/standalone/docs/ja/custom-policies.mdx +62 -63
- package/.next/standalone/docs/ko/architecture.mdx +66 -66
- package/.next/standalone/docs/ko/configuration.mdx +35 -35
- package/.next/standalone/docs/ko/custom-policies.mdx +71 -72
- package/.next/standalone/docs/pt-br/architecture.mdx +55 -55
- package/.next/standalone/docs/pt-br/configuration.mdx +35 -35
- package/.next/standalone/docs/pt-br/custom-policies.mdx +60 -61
- package/.next/standalone/docs/ru/architecture.mdx +59 -60
- package/.next/standalone/docs/ru/configuration.mdx +52 -53
- package/.next/standalone/docs/ru/custom-policies.mdx +68 -69
- package/.next/standalone/docs/tr/architecture.mdx +124 -124
- package/.next/standalone/docs/tr/configuration.mdx +45 -46
- package/.next/standalone/docs/tr/custom-policies.mdx +75 -75
- package/.next/standalone/docs/vi/architecture.mdx +65 -64
- package/.next/standalone/docs/vi/configuration.mdx +41 -41
- package/.next/standalone/docs/vi/custom-policies.mdx +68 -69
- package/.next/standalone/docs/zh/architecture.mdx +67 -67
- package/.next/standalone/docs/zh/configuration.mdx +34 -34
- package/.next/standalone/docs/zh/custom-policies.mdx +53 -54
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/hooks/builtin-policies.ts +30 -0
- package/dist/cli.mjs +19 -2
- package/package.json +1 -1
- package/src/hooks/builtin-policies.ts +30 -0
- /package/.next/standalone/.next/static/{hYQM6iCWnF1W5XDpsIRhV → 8mygPGI5bzrtWK36ZYO59}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{hYQM6iCWnF1W5XDpsIRhV → 8mygPGI5bzrtWK36ZYO59}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{hYQM6iCWnF1W5XDpsIRhV → 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` द्वारा
|
|
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
|
-
एक संदेश जो
|
|
123
|
+
एक संदेश जो कारण में जोड़ा जाता है जब कोई नीति `deny` या `instruct` देता है। इसका उपयोग Claude को कार्रवाई योग्य मार्गदर्शन देने के लिए करें, बिना नीति को स्वयं संशोधित किए।
|
|
124
124
|
|
|
125
|
-
किसी भी नीति प्रकार के साथ काम करता है — बिल्ट-इन, कस्टम (`custom/`), प्रोजेक्ट
|
|
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`
|
|
144
|
+
जब `block-force-push` इनकार करता है, तो Claude देखता है: *"Force-pushing is blocked. Try creating a fresh branch instead."*
|
|
145
145
|
|
|
146
|
-
गैर-स्ट्रिंग
|
|
146
|
+
गैर-स्ट्रिंग मान और खाली स्ट्रिंग्स चुप्पी से अनदेखी की जाती हैं। यदि `hint` सेट नहीं है, तो व्यवहार अपरिवर्तित है (पिछड़े-संगत)।
|
|
147
147
|
|
|
148
148
|
### `customPoliciesPath`
|
|
149
149
|
|
|
150
|
-
प्रकार: `string` (
|
|
150
|
+
प्रकार: `string` (पूर्ण पथ)
|
|
151
151
|
|
|
152
|
-
कस्टम हुक नीतियों वाली JavaScript
|
|
152
|
+
कस्टम हुक नीतियों वाली JavaScript फाइल का पथ। यह `failproofai policies --install --custom <path>` द्वारा स्वचालित रूप से सेट किया जाता है (पथ को स्टोर करने से पहले निरपेक्ष में हल किया जाता है)।
|
|
153
153
|
|
|
154
|
-
|
|
154
|
+
फाइल हर हुक इवेंट पर ताज़ी लोड की जाती है - कोई कैशिंग नहीं है। लेखन विवरण के लिए [Custom Policies](/hi/custom-policies) देखें।
|
|
155
155
|
|
|
156
|
-
###
|
|
156
|
+
### सम्मेलन-आधारित नीतियां
|
|
157
157
|
|
|
158
|
-
स्पष्ट `customPoliciesPath` के
|
|
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
|
-
|
|
165
|
+
**फाइल मिलान:** केवल `*policies.{js,mjs,ts}` से मेल खाने वाली फाइलें लोड की जाती हैं (जैसे `security-policies.mjs`, `workflow-policies.js`)। निर्देशिका में अन्य फाइलें अनदेखी की जाती हैं।
|
|
166
166
|
|
|
167
|
-
**कोई
|
|
167
|
+
**कोई कॉन्फ़िगरेशन आवश्यक नहीं:** सम्मेलन नीतियों के लिए `policies-config.json` में कोई प्रविष्टियां आवश्यक नहीं हैं। बस निर्देशिका में फाइलें डालें और वे अगली हुक इवेंट पर उठाई जाएंगी।
|
|
168
168
|
|
|
169
|
-
|
|
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
|
-
|
|
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 को
|
|
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
|
-
कस्टम पॉलिसीज़ आपको किसी भी एजेंट व्यवहार के लिए नियम लिखने देती हैं: प्रोजेक्ट
|
|
7
|
+
कस्टम पॉलिसीज़ आपको किसी भी एजेंट व्यवहार के लिए नियम लिखने देती हैं: प्रोजेक्ट सम्मेलन लागू करें, विचलन रोकें, विनाशकारी ऑपरेशन को गेट करें, फंसे हुए एजेंटों का पता लगाएं, या Slack, स्वीकृति वर्कफ़्लो और बहुत कुछ के साथ एकीकृत करें। ये बिल्ट-इन पॉलिसीज़ के समान हुक इवेंट सिस्टम और `allow`, `deny`, `instruct` निर्णयों का उपयोग करते हैं।
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## त्वरित उदाहरण
|
|
12
12
|
|
|
13
13
|
```js
|
|
14
14
|
// my-policies.js
|
|
@@ -41,56 +41,56 @@ failproofai policies --install --custom ./my-policies.js
|
|
|
41
41
|
|
|
42
42
|
### विकल्प 1: कन्वेंशन-आधारित (अनुशंसित)
|
|
43
43
|
|
|
44
|
-
|
|
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
|
-
-
|
|
58
|
-
- केवल `*policies.{js,mjs,ts}` से मेल खाने वाली
|
|
59
|
-
- प्रत्येक
|
|
60
|
-
- स्पष्ट `--custom` और
|
|
56
|
+
- प्रोजेक्ट और उपयोगकर्ता दोनों निर्देशिकाएं स्कैन की जाती हैं (संघ — पहले-दायरा-जीत नहीं)
|
|
57
|
+
- फाइलें प्रत्येक निर्देशिका में वर्णमाला के अनुसार लोड की जाती हैं। क्रम नियंत्रित करने के लिए `01-`, `02-` से शुरू करें
|
|
58
|
+
- केवल `*policies.{js,mjs,ts}` से मेल खाने वाली फाइलें लोड की जाती हैं; अन्य फाइलें अनदेखी की जाती हैं
|
|
59
|
+
- प्रत्येक फाइल स्वतंत्र रूप से लोड की जाती है (फाइल प्रति फेल-ओपन)
|
|
60
|
+
- स्पष्ट `--custom` और बिल्ट-इन पॉलिसीज़ के साथ साथ काम करता है
|
|
61
61
|
|
|
62
62
|
<Tip>
|
|
63
|
-
कन्वेंशन पॉलिसीज़ एक टीम
|
|
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
|
-
|
|
79
|
+
हल किया गया पूर्ण पथ `policies-config.json` में `customPoliciesPath` के रूप में संग्रहीत है। फाइल हर हुक इवेंट पर ताज़ी लोड की जाती है - इवेंट्स के बीच कोई कैशिंग नहीं है।
|
|
80
80
|
|
|
81
81
|
### दोनों को एक साथ उपयोग करना
|
|
82
82
|
|
|
83
|
-
कन्वेंशन पॉलिसीज़ और स्पष्ट `--custom`
|
|
83
|
+
कन्वेंशन पॉलिसीज़ और स्पष्ट `--custom` फाइल एक साथ मौजूद हो सकती हैं। लोड क्रम:
|
|
84
84
|
|
|
85
|
-
1. स्पष्ट `customPoliciesPath`
|
|
86
|
-
2. प्रोजेक्ट कन्वेंशन
|
|
87
|
-
3.
|
|
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,46 +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:"`
|
|
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`
|
|
125
|
+
आप `policyParams` में `hint` फील्ड जोड़कर किसी भी `deny` या `instruct` संदेश में अतिरिक्त मार्गदर्शन जोड़ सकते हैं — कोई कोड परिवर्तन आवश्यक नहीं। यह कस्टम (`custom/`), प्रोजेक्ट कन्वेंशन (`.failproofai-project/`), और उपयोगकर्ता कन्वेंशन (`.failproofai-user/`) पॉलिसीज़ के लिए भी काम करता है। विवरण के लिए [कॉन्फ़िगरेशन → hint](/hi/configuration#hint-cross-cutting) देखें।
|
|
126
126
|
</Tip>
|
|
127
127
|
|
|
128
128
|
### सूचनात्मक allow संदेश
|
|
129
129
|
|
|
130
|
+
`allow(message)` ऑपरेशन की अनुमति देता है **और** Claude को एक सूचनात्मक संदेश भेजता है। संदेश हुक हैंडलर के stdout प्रतिक्रिया में `additionalContext` के रूप में वितरित किया जाता है — `instruct` द्वारा उपयोग किया जाने वाला समान तंत्र, लेकिन शब्दार्थ से अलग: यह एक चेतावनी नहीं, बल्कि एक स्थिति अपडेट है।
|
|
130
131
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
| फंक्शन | प्रभाव | कब उपयोग करें |
|
|
132
|
+
| फ़ंक्शन | प्रभाव | कब उपयोग करें |
|
|
134
133
|
|----------|--------|----------|
|
|
135
|
-
| `allow(message)` | अनुमति दें और Claude को संदर्भ भेजें | एक जांच पास होने की पुष्टि करें, या
|
|
134
|
+
| `allow(message)` | अनुमति दें और Claude को संदर्भ भेजें | एक जांच पास होने की पुष्टि करें, या एक जांच छोड़े जाने का कारण समझाएं |
|
|
136
135
|
|
|
137
136
|
उपयोग के मामले:
|
|
138
|
-
- **स्थिति
|
|
139
|
-
-
|
|
140
|
-
- **कई संदेश जमा होते हैं:** यदि कई पॉलिसीज़ प्रत्येक `allow(message)`
|
|
137
|
+
- **स्थिति पुष्टि:** `allow("All CI checks passed.")` — Claude को बताएं कि सब कुछ हरा है
|
|
138
|
+
- **फेल-ओपन व्याख्या:** `allow("GitHub CLI not installed, skipping CI check.")` — Claude को बताएं कि एक जांच क्यों छोड़ी गई थी ताकि उसके पास पूरा संदर्भ हो
|
|
139
|
+
- **कई संदेश जमा होते हैं:** यदि कई पॉलिसीज़ प्रत्येक `allow(message)` लौटाती हैं, तो सभी संदेश नई पंक्तियों के साथ जुड़े जाते हैं और एक साथ वितरित किए जाते हैं
|
|
141
140
|
|
|
142
141
|
```js
|
|
143
142
|
customPolicies.add({
|
|
@@ -162,8 +161,8 @@ customPolicies.add({
|
|
|
162
161
|
|-------|------|-------------|
|
|
163
162
|
| `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
|
|
164
163
|
| `toolName` | `string \| undefined` | कॉल किया जा रहा टूल (जैसे `"Bash"`, `"Write"`, `"Read"`) |
|
|
165
|
-
| `toolInput` | `Record<string, unknown> \| undefined` | टूल के इनपुट
|
|
166
|
-
| `payload` | `Record<string, unknown>` | Claude Code से
|
|
164
|
+
| `toolInput` | `Record<string, unknown> \| undefined` | टूल के इनपुट पैरामीटर |
|
|
165
|
+
| `payload` | `Record<string, unknown>` | Claude Code से संपूर्ण कच्चा इवेंट पेलोड |
|
|
167
166
|
| `session` | `SessionMetadata \| undefined` | सेशन संदर्भ (नीचे देखें) |
|
|
168
167
|
|
|
169
168
|
### `SessionMetadata` फील्ड्स
|
|
@@ -171,8 +170,8 @@ customPolicies.add({
|
|
|
171
170
|
| फील्ड | प्रकार | विवरण |
|
|
172
171
|
|-------|------|-------------|
|
|
173
172
|
| `sessionId` | `string` | Claude Code सेशन पहचानकर्ता |
|
|
174
|
-
| `cwd` | `string` | Claude Code सेशन की
|
|
175
|
-
| `transcriptPath` | `string` | सेशन की JSONL
|
|
173
|
+
| `cwd` | `string` | Claude Code सेशन की कार्य निर्देशिका |
|
|
174
|
+
| `transcriptPath` | `string` | सेशन की JSONL ट्रांसक्रिप्ट फाइल का पथ |
|
|
176
175
|
|
|
177
176
|
### इवेंट प्रकार
|
|
178
177
|
|
|
@@ -180,7 +179,7 @@ customPolicies.add({
|
|
|
180
179
|
|-------|--------------|----------------------|
|
|
181
180
|
| `PreToolUse` | Claude एक टूल चलाने से पहले | टूल का इनपुट (जैसे Bash के लिए `{ command: "..." }`) |
|
|
182
181
|
| `PostToolUse` | एक टूल पूरा होने के बाद | टूल का इनपुट + `tool_result` (आउटपुट) |
|
|
183
|
-
| `Notification` | जब Claude एक
|
|
182
|
+
| `Notification` | जब Claude एक सूचना भेजता है | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` - हुक्स को हमेशा `allow()` लौटाना चाहिए, वे सूचनाओं को ब्लॉक नहीं कर सकते |
|
|
184
183
|
| `Stop` | जब Claude सेशन समाप्त होता है | खाली |
|
|
185
184
|
|
|
186
185
|
---
|
|
@@ -189,20 +188,20 @@ customPolicies.add({
|
|
|
189
188
|
|
|
190
189
|
पॉलिसीज़ का मूल्यांकन इस क्रम में किया जाता है:
|
|
191
190
|
|
|
192
|
-
1.
|
|
191
|
+
1. बिल्ट-इन पॉलिसीज़ (परिभाषा क्रम में)
|
|
193
192
|
2. `customPoliciesPath` से स्पष्ट कस्टम पॉलिसीज़ (`.add()` क्रम में)
|
|
194
|
-
3. प्रोजेक्ट `.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (
|
|
195
|
-
4.
|
|
193
|
+
3. प्रोजेक्ट `.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (फाइलें वर्णमाला के अनुसार, `.add()` क्रम के भीतर)
|
|
194
|
+
4. उपयोगकर्ता `~/.failproofai/policies/` से कन्वेंशन पॉलिसीज़ (फाइलें वर्णमाला के अनुसार, `.add()` क्रम के भीतर)
|
|
196
195
|
|
|
197
196
|
<Note>
|
|
198
|
-
पहला `deny` सभी बाद की पॉलिसीज़ को शॉर्ट-सर्किट करता है। सभी `instruct` संदेश
|
|
197
|
+
पहला `deny` सभी बाद की पॉलिसीज़ को शॉर्ट-सर्किट करता है। सभी `instruct` संदेश जमा किए जाते हैं और एक साथ वितरित किए जाते हैं।
|
|
199
198
|
</Note>
|
|
200
199
|
|
|
201
200
|
---
|
|
202
201
|
|
|
203
|
-
##
|
|
202
|
+
## पारगमन आयात
|
|
204
203
|
|
|
205
|
-
कस्टम पॉलिसी
|
|
204
|
+
कस्टम पॉलिसी फाइलें सापेक्ष पथों का उपयोग करके स्थानीय मॉड्यूल को आयात कर सकती हैं:
|
|
206
205
|
|
|
207
206
|
```js
|
|
208
207
|
// my-policies.js
|
|
@@ -219,21 +218,21 @@ customPolicies.add({
|
|
|
219
218
|
});
|
|
220
219
|
```
|
|
221
220
|
|
|
222
|
-
एंट्री
|
|
221
|
+
एंट्री फाइल से सभी सापेक्ष आयात हल किए जाते हैं। यह `from "failproofai"` आयात को वास्तविक dist पथ में फिर से लिखकर और ESM संगतता सुनिश्चित करने के लिए अस्थायी `.mjs` फाइलें बनाकर लागू किया जाता है।
|
|
223
222
|
|
|
224
223
|
---
|
|
225
224
|
|
|
226
|
-
## इवेंट
|
|
225
|
+
## इवेंट प्रकार फ़िल्टरिंग
|
|
227
226
|
|
|
228
|
-
|
|
227
|
+
किसी पॉलिसी को फायर करने के समय को सीमित करने के लिए `match.events` का उपयोग करें:
|
|
229
228
|
|
|
230
229
|
```js
|
|
231
230
|
customPolicies.add({
|
|
232
231
|
name: "require-summary-on-stop",
|
|
233
232
|
match: { events: ["Stop"] },
|
|
234
233
|
fn: async (ctx) => {
|
|
235
|
-
// केवल
|
|
236
|
-
// ctx.session.transcriptPath में
|
|
234
|
+
// केवल तभी फायर होता है जब सेशन समाप्त होता है
|
|
235
|
+
// ctx.session.transcriptPath में संपूर्ण सेशन लॉग होता है
|
|
237
236
|
return allow();
|
|
238
237
|
},
|
|
239
238
|
});
|
|
@@ -243,22 +242,22 @@ customPolicies.add({
|
|
|
243
242
|
|
|
244
243
|
---
|
|
245
244
|
|
|
246
|
-
## त्रुटि हैंडलिंग और विफलता
|
|
245
|
+
## त्रुटि हैंडलिंग और विफलता के तरीके
|
|
247
246
|
|
|
248
|
-
कस्टम पॉलिसीज़
|
|
247
|
+
कस्टम पॉलिसीज़ **फेल-ओपन** हैं: त्रुटियां कभी भी बिल्ट-इन पॉलिसीज़ को ब्लॉक नहीं करती हैं या हुक हैंडलर को क्रैश नहीं करती हैं।
|
|
249
248
|
|
|
250
249
|
| विफलता | व्यवहार |
|
|
251
250
|
|---------|----------|
|
|
252
|
-
| `customPoliciesPath` सेट नहीं है | कोई स्पष्ट कस्टम पॉलिसीज़ नहीं
|
|
253
|
-
|
|
|
254
|
-
|
|
|
255
|
-
|
|
|
256
|
-
| `fn` रनटाइम पर
|
|
257
|
-
| `fn`
|
|
258
|
-
| कन्वेंशन
|
|
251
|
+
| `customPoliciesPath` सेट नहीं है | कोई स्पष्ट कस्टम पॉलिसीज़ चलाई नहीं जाती हैं; कन्वेंशन पॉलिसीज़ और बिल्ट-इन सामान्य रूप से जारी रहते हैं |
|
|
252
|
+
| फाइल नहीं मिली | `~/.failproofai/hook.log` में चेतावनी दर्ज की गई; बिल्ट-इन जारी रहते हैं |
|
|
253
|
+
| सिंटैक्स/आयात त्रुटि (स्पष्ट) | `~/.failproofai/hook.log` में त्रुटि दर्ज की गई; स्पष्ट कस्टम पॉलिसीज़ छोड़ी गई हैं |
|
|
254
|
+
| सिंटैक्स/आयात त्रुटि (कन्वेंशन) | दर्ज की गई त्रुटि; वह फाइल छोड़ी गई, अन्य कन्वेंशन फाइलें अभी भी लोड होती हैं |
|
|
255
|
+
| `fn` रनटाइम पर फेंकता है | दर्ज की गई त्रुटि; वह हुक `allow` के रूप में माना जाता है; अन्य हुक्स जारी रहते हैं |
|
|
256
|
+
| `fn` 10 सेकंड से अधिक समय लेता है | दर्ज किया गया टाइमआउट; `allow` के रूप में माना जाता है |
|
|
257
|
+
| कन्वेंशन निर्देशिका गायब | कोई कन्वेंशन पॉलिसीज़ चलाई नहीं जाती हैं; कोई त्रुटि नहीं |
|
|
259
258
|
|
|
260
259
|
<Tip>
|
|
261
|
-
कस्टम पॉलिसी त्रुटियों को
|
|
260
|
+
कस्टम पॉलिसी त्रुटियों को डीबग करने के लिए, लॉग फाइल देखें:
|
|
262
261
|
|
|
263
262
|
```bash
|
|
264
263
|
tail -f ~/.failproofai/hook.log
|
|
@@ -267,13 +266,13 @@ tail -f ~/.failproofai/hook.log
|
|
|
267
266
|
|
|
268
267
|
---
|
|
269
268
|
|
|
270
|
-
##
|
|
269
|
+
## पूर्ण उदाहरण: कई पॉलिसीज़
|
|
271
270
|
|
|
272
271
|
```js
|
|
273
272
|
// my-policies.js
|
|
274
273
|
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
275
274
|
|
|
276
|
-
// एजेंट को secrets/
|
|
275
|
+
// एजेंट को secrets/ निर्देशिका में लिखने से रोकें
|
|
277
276
|
customPolicies.add({
|
|
278
277
|
name: "block-secrets-dir",
|
|
279
278
|
description: "Prevent agent from writing to secrets/ directory",
|
|
@@ -286,7 +285,7 @@ customPolicies.add({
|
|
|
286
285
|
},
|
|
287
286
|
});
|
|
288
287
|
|
|
289
|
-
// एजेंट को ट्रैक पर रखें: कमिट करने से पहले
|
|
288
|
+
// एजेंट को ट्रैक पर रखें: कमिट करने से पहले टेस्ट सत्यापित करें
|
|
290
289
|
customPolicies.add({
|
|
291
290
|
name: "remind-test-before-commit",
|
|
292
291
|
description: "Keep the agent on track: verify tests pass before committing",
|
|
@@ -301,7 +300,7 @@ customPolicies.add({
|
|
|
301
300
|
},
|
|
302
301
|
});
|
|
303
302
|
|
|
304
|
-
//
|
|
303
|
+
// फ्रीज अवधि के दौरान अनियोजित निर्भरता परिवर्तनों को रोकें
|
|
305
304
|
customPolicies.add({
|
|
306
305
|
name: "dependency-freeze",
|
|
307
306
|
description: "Prevent unplanned dependency changes during freeze period",
|
|
@@ -324,31 +323,31 @@ export { customPolicies };
|
|
|
324
323
|
|
|
325
324
|
## उदाहरण
|
|
326
325
|
|
|
327
|
-
`examples/`
|
|
326
|
+
`examples/` निर्देशिका में चलने के लिए तैयार पॉलिसी फाइलें हैं:
|
|
328
327
|
|
|
329
|
-
|
|
|
328
|
+
| फाइल | सामग्री |
|
|
330
329
|
|------|----------|
|
|
331
|
-
| `examples/policies-basic.js` | पांच स्टार्टर पॉलिसीज़ जो सामान्य एजेंट विफलता
|
|
332
|
-
| `examples/policies-advanced/index.js` | उन्नत पैटर्न:
|
|
333
|
-
| `examples/convention-policies/security-policies.mjs` | कन्वेंशन-आधारित सुरक्षा पॉलिसीज़ (.env
|
|
334
|
-
| `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` | कन्वेंशन-आधारित वर्कफ़्लो पॉलिसीज़ (टेस्ट रिमाइंडर, ऑडिट फाइल लेखन) |
|
|
335
334
|
|
|
336
|
-
### स्पष्ट
|
|
335
|
+
### स्पष्ट फाइल उदाहरणों का उपयोग करना
|
|
337
336
|
|
|
338
337
|
```bash
|
|
339
338
|
failproofai policies --install --custom ./examples/policies-basic.js
|
|
340
339
|
```
|
|
341
340
|
|
|
342
|
-
### कन्वेंशन-आधारित
|
|
341
|
+
### कन्वेंशन-आधारित उदाहरणों का उपयोग करना
|
|
343
342
|
|
|
344
343
|
```bash
|
|
345
344
|
# प्रोजेक्ट स्तर पर कॉपी करें
|
|
346
345
|
mkdir -p .failproofai/policies
|
|
347
346
|
cp examples/convention-policies/*.mjs .failproofai/policies/
|
|
348
347
|
|
|
349
|
-
# या
|
|
348
|
+
# या उपयोगकर्ता स्तर पर कॉपी करें
|
|
350
349
|
mkdir -p ~/.failproofai/policies
|
|
351
350
|
cp examples/convention-policies/*.mjs ~/.failproofai/policies/
|
|
352
351
|
```
|
|
353
352
|
|
|
354
|
-
कोई इंस्टॉल कमांड की आवश्यकता नहीं
|
|
353
|
+
कोई इंस्टॉल कमांड की आवश्यकता नहीं — फाइलें अगली हुक इवेंट पर स्वचालित रूप से उठाई जाती हैं।
|