failproofai 0.0.5 → 0.0.6-beta.1

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 (179) hide show
  1. package/.next/standalone/.failproofai/policies/review-policies.mjs +112 -0
  2. package/.next/standalone/.failproofai/policies/workflow-policies.mjs +2 -1
  3. package/.next/standalone/.next/BUILD_ID +1 -1
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +3 -3
  6. package/.next/standalone/.next/required-server-files.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  8. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  9. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  13. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  14. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  15. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  16. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  17. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  19. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  20. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  21. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  23. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  24. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  25. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  26. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  27. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  28. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  29. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  30. package/.next/standalone/.next/server/app/index.html +1 -1
  31. package/.next/standalone/.next/server/app/index.rsc +15 -15
  32. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  33. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  34. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  35. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  36. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/page/build-manifest.json +2 -2
  38. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  39. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  40. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/policies/page/build-manifest.json +2 -2
  42. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  43. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/project/[name]/page/build-manifest.json +2 -2
  46. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  47. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  48. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/build-manifest.json +2 -2
  50. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  51. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  52. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  53. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  54. package/.next/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
  55. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  56. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  59. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  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]__0okos0k._.js +2 -2
  65. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0a~g15g._.js → [root-of-the-server]__0rh.18_._.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]__0qn95h3._.js → [root-of-the-server]__0~kmh8w._.js} +2 -2
  68. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  69. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  70. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  71. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  72. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  73. package/.next/standalone/.next/server/middleware-build-manifest.js +5 -5
  74. package/.next/standalone/.next/server/pages/404.html +2 -2
  75. package/.next/standalone/.next/server/pages/500.html +1 -1
  76. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  78. package/.next/standalone/.next/static/chunks/{0sme4lkv.tgn-.js → 01b~z8f1ws0rk.js} +1 -1
  79. package/.next/standalone/.next/static/chunks/{0lgbwkfqmnsmc.js → 03rz6ykw-a2xi.js} +1 -1
  80. package/.next/standalone/.next/static/chunks/{17manv47o-~wp.js → 08t08igdql9yt.js} +1 -1
  81. package/.next/standalone/.next/static/chunks/09_k80d~cq2wg.js +4 -0
  82. package/.next/standalone/.next/static/chunks/{0ksdlt_1hucdm.js → 0bvhsa6zva2o..js} +1 -1
  83. package/.next/standalone/.next/static/chunks/{09ikntpt2-o9b.js → 0gbf4cphy8ksq.js} +1 -1
  84. package/.next/standalone/.next/static/chunks/{0yumumfzx_f27.js → 0v.yd0kg_ld3r.js} +1 -1
  85. package/.next/standalone/.next/static/chunks/{13juklu.vksks.js → 0wlyoif4_kj_t.js} +1 -1
  86. package/.next/standalone/.next/static/chunks/{09e7drilkf1sn.js → 12simlrcfk3g2.js} +1 -1
  87. package/.next/standalone/.next/static/chunks/{0em7tspi4kylh.js → 12~yi9oj8av8p.js} +2 -2
  88. package/.next/standalone/.next/static/chunks/{turbopack-0r26pc8h0y_-e.js → turbopack-0o7k.hakttp4k.js} +1 -1
  89. package/.next/standalone/CHANGELOG.md +13 -0
  90. package/.next/standalone/README.md +2 -2
  91. package/.next/standalone/bun.lock +43 -85
  92. package/.next/standalone/dist/cli.mjs +107 -3
  93. package/.next/standalone/docs/ar/architecture.mdx +65 -64
  94. package/.next/standalone/docs/ar/configuration.mdx +42 -42
  95. package/.next/standalone/docs/ar/custom-policies.mdx +62 -64
  96. package/.next/standalone/docs/built-in-policies.mdx +37 -0
  97. package/.next/standalone/docs/custom-policies.mdx +1 -1
  98. package/.next/standalone/docs/de/architecture.mdx +92 -92
  99. package/.next/standalone/docs/de/configuration.mdx +34 -34
  100. package/.next/standalone/docs/de/custom-policies.mdx +49 -50
  101. package/.next/standalone/docs/es/architecture.mdx +72 -72
  102. package/.next/standalone/docs/es/configuration.mdx +25 -25
  103. package/.next/standalone/docs/es/custom-policies.mdx +48 -49
  104. package/.next/standalone/docs/examples.mdx +54 -0
  105. package/.next/standalone/docs/fr/architecture.mdx +53 -53
  106. package/.next/standalone/docs/fr/configuration.mdx +25 -25
  107. package/.next/standalone/docs/fr/custom-policies.mdx +42 -43
  108. package/.next/standalone/docs/getting-started.mdx +52 -0
  109. package/.next/standalone/docs/he/architecture.mdx +66 -66
  110. package/.next/standalone/docs/he/configuration.mdx +53 -52
  111. package/.next/standalone/docs/he/custom-policies.mdx +72 -73
  112. package/.next/standalone/docs/hi/architecture.mdx +106 -106
  113. package/.next/standalone/docs/hi/configuration.mdx +39 -39
  114. package/.next/standalone/docs/hi/custom-policies.mdx +75 -76
  115. package/.next/standalone/docs/i18n/README.ar.md +66 -66
  116. package/.next/standalone/docs/i18n/README.de.md +38 -38
  117. package/.next/standalone/docs/i18n/README.es.md +38 -38
  118. package/.next/standalone/docs/i18n/README.fr.md +42 -42
  119. package/.next/standalone/docs/i18n/README.he.md +67 -67
  120. package/.next/standalone/docs/i18n/README.hi.md +70 -70
  121. package/.next/standalone/docs/i18n/README.it.md +62 -62
  122. package/.next/standalone/docs/i18n/README.ja.md +54 -54
  123. package/.next/standalone/docs/i18n/README.ko.md +58 -58
  124. package/.next/standalone/docs/i18n/README.pt-br.md +43 -43
  125. package/.next/standalone/docs/i18n/README.ru.md +69 -69
  126. package/.next/standalone/docs/i18n/README.tr.md +76 -76
  127. package/.next/standalone/docs/i18n/README.vi.md +70 -70
  128. package/.next/standalone/docs/i18n/README.zh.md +52 -52
  129. package/.next/standalone/docs/it/architecture.mdx +54 -53
  130. package/.next/standalone/docs/it/configuration.mdx +44 -45
  131. package/.next/standalone/docs/it/custom-policies.mdx +76 -78
  132. package/.next/standalone/docs/ja/architecture.mdx +93 -93
  133. package/.next/standalone/docs/ja/configuration.mdx +47 -47
  134. package/.next/standalone/docs/ja/custom-policies.mdx +62 -63
  135. package/.next/standalone/docs/ko/architecture.mdx +66 -66
  136. package/.next/standalone/docs/ko/configuration.mdx +35 -35
  137. package/.next/standalone/docs/ko/custom-policies.mdx +71 -72
  138. package/.next/standalone/docs/pt-br/architecture.mdx +55 -55
  139. package/.next/standalone/docs/pt-br/configuration.mdx +35 -35
  140. package/.next/standalone/docs/pt-br/custom-policies.mdx +60 -61
  141. package/.next/standalone/docs/ru/architecture.mdx +59 -60
  142. package/.next/standalone/docs/ru/configuration.mdx +52 -53
  143. package/.next/standalone/docs/ru/custom-policies.mdx +68 -69
  144. package/.next/standalone/docs/tr/architecture.mdx +124 -124
  145. package/.next/standalone/docs/tr/configuration.mdx +45 -46
  146. package/.next/standalone/docs/tr/custom-policies.mdx +75 -75
  147. package/.next/standalone/docs/vi/architecture.mdx +65 -64
  148. package/.next/standalone/docs/vi/configuration.mdx +41 -41
  149. package/.next/standalone/docs/vi/custom-policies.mdx +68 -69
  150. package/.next/standalone/docs/zh/architecture.mdx +67 -67
  151. package/.next/standalone/docs/zh/configuration.mdx +34 -34
  152. package/.next/standalone/docs/zh/custom-policies.mdx +53 -54
  153. package/.next/standalone/node_modules/@next/env/package.json +1 -1
  154. package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
  155. package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
  156. package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
  157. package/.next/standalone/node_modules/next/dist/server/config-schema.js +10 -2
  158. package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
  159. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
  160. package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
  161. package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
  162. package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
  163. package/.next/standalone/node_modules/next/dist/server/render.js +27 -20
  164. package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
  165. package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
  166. package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
  167. package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
  168. package/.next/standalone/node_modules/next/package.json +15 -15
  169. package/.next/standalone/package.json +2 -2
  170. package/.next/standalone/server.js +1 -1
  171. package/.next/standalone/src/hooks/builtin-policies.ts +131 -0
  172. package/README.md +2 -2
  173. package/dist/cli.mjs +107 -3
  174. package/package.json +2 -2
  175. package/src/hooks/builtin-policies.ts +131 -0
  176. package/.next/standalone/.next/static/chunks/0_yayar~bpphd.js +0 -4
  177. /package/.next/standalone/.next/static/{hYQM6iCWnF1W5XDpsIRhV → CkmOT-ZvDN-sVULinGVKT}/_buildManifest.js +0 -0
  178. /package/.next/standalone/.next/static/{hYQM6iCWnF1W5XDpsIRhV → CkmOT-ZvDN-sVULinGVKT}/_clientMiddlewareManifest.js +0 -0
  179. /package/.next/standalone/.next/static/{hYQM6iCWnF1W5XDpsIRhV → CkmOT-ZvDN-sVULinGVKT}/_ssgManifest.js +0 -0
@@ -1,44 +1,45 @@
1
1
  ---
2
- title: תצורה
3
- description: "פורמט קובץ תצורה, מערכת תחומי תצורה תלת-שכבתית וכללי מיזוג"
2
+ ---
3
+ title: הגדרות
4
+ description: "פורמט קובץ הגדרות, מערכת שלוש-רמות, וכללי מיזוג"
4
5
  icon: gear
5
6
  ---
6
7
 
7
- failproofai משתמש בקובצי תצורה JSON כדי לשלוט אילו מדיניויות פעילות, כיצד הן מתנהגות ומאיפה נטענות מדיניויות מותאמות אישית. התצורה מעוצבת להיות קלה לשיתוף עם הצוות שלך - התחייב אותה ללאגר שלך וכל מפתח יקבל את אותה רשת הבטיחות של הסוכן.
8
+ failproofai משתמש בקובצי הגדרות JSON כדי לשלוט איזו מדיניויות פעילות, כיצד הן מתנהגות, ומאיפה מדיניויות מותאמות אישית נטענות. ההגדרות עוצבו כדי להיות קלות לשיתוף עם הצוות שלך - בצע commit לריפו שלך וכל מפתח יקבל את אותה רשת בטיחות לסוכנים.
8
9
 
9
10
  ---
10
11
 
11
- ## תחומי תצורה
12
+ ## יקפי הגדרות
12
13
 
13
- קיימים שלושה תחומי תצורה, מוערכים לפי סדר עדיפויות:
14
+ יש שלוש רמות הגדרות, המוערכות לפי סדר עדיפויות:
14
15
 
15
- | תחום | נתיב קובץ | מטרה |
16
+ | רמה | נתיב קובץ | מטרה |
16
17
  |-------|-----------|---------|
17
- | **פרויקט** | `.failproofai/policies-config.json` | הגדרות לפי מאגר, מחויבות לבקרת גרסה |
18
- | **מקומי** | `.failproofai/policies-config.local.json` | עדכונים אישיים למאגר, מוחרגים מ-gitignore |
18
+ | **פרויקט** | `.failproofai/policies-config.json` | הגדרות לפי-ריפו, בהתחייבות לשליטה בגרסיות |
19
+ | **מקומי** | `.failproofai/policies-config.local.json` | עדכונים אישיים לפי-ריפו, מפורסמים ל-gitignore |
19
20
  | **גלובלי** | `~/.failproofai/policies-config.json` | ברירות מחדל ברמת משתמש בכל הפרויקטים |
20
21
 
21
- כאשר failproofai מקבל אירוע hook, הוא טוען ומיזג את כל שלושת הקובצים הקיימים עבור ספריית העבודה הנוכחית.
22
+ כאשר failproofai מקבל אירוע hook, הוא טוען ומיזג את שלושת הקובצים הקיימים לספריית העבודה הנוכחית.
22
23
 
23
24
  ### כללי מיזוג
24
25
 
25
- **`enabledPolicies`** - איחוד של כל שלושת התחומים. מדיניות המופעלת בכל רמה פעילה.
26
+ **`enabledPolicies`** - האיחוד של כל שלוש הרמות. מדיניות המופעלת בכל רמה היא פעילה.
26
27
 
27
28
  ```text
28
29
  project: ["block-sudo"]
29
30
  local: ["block-rm-rf"]
30
31
  global: ["block-sudo", "sanitize-api-keys"]
31
32
 
32
- resolved: ["block-sudo", "block-rm-rf", "sanitize-api-keys"] ← איחוד ללא כפילויות
33
+ resolved: ["block-sudo", "block-rm-rf", "sanitize-api-keys"] ← deduplicated union
33
34
  ```
34
35
 
35
- **`policyParams`** - התחום הראשון המגדיר פרמטרים עבור מדיניות מסוימת מנצח לחלוטין. אין מיזוג עמוק של ערכים בתוך פרמטרים של מדיניות.
36
+ **`policyParams`** - הרמה הראשונה המגדירה params עבור מדיניות מסוימת זוכה לחלוטין. אין מיזוג עמוק של ערכים בתוך ה-params של מדיניות.
36
37
 
37
38
  ```text
38
39
  project: block-sudo → { allowPatterns: ["sudo apt-get update"] }
39
40
  global: block-sudo → { allowPatterns: ["sudo systemctl status"] }
40
41
 
41
- resolved: { allowPatterns: ["sudo apt-get update"] } ← הפרויקט מנצח, גלובלי מתעלם
42
+ resolved: { allowPatterns: ["sudo apt-get update"] } ← project wins, global ignored
42
43
  ```
43
44
 
44
45
  ```text
@@ -46,16 +47,16 @@ project: (no block-sudo entry)
46
47
  local: (no block-sudo entry)
47
48
  global: block-sudo → { allowPatterns: ["sudo systemctl status"] }
48
49
 
49
- resolved: { allowPatterns: ["sudo systemctl status"] } ← נופל דרך לגלובלי
50
+ resolved: { allowPatterns: ["sudo systemctl status"] } ← falls through to global
50
51
  ```
51
52
 
52
- **`customPoliciesPath`** - התחום הראשון המגדיר אותו מנצח.
53
+ **`customPoliciesPath`** - הרמה הראשונה המגדירה זאת זוכה.
53
54
 
54
- **`llm`** - התחום הראשון המגדיר אותו מנצח.
55
+ **`llm`** - הרמה הראשונה המגדירה זאת זוכה.
55
56
 
56
57
  ---
57
58
 
58
- ## פורמט קובץ התצורה
59
+ ## פורמט קובץ הגדרות
59
60
 
60
61
  ```json
61
62
  {
@@ -96,33 +97,33 @@ resolved: { allowPatterns: ["sudo systemctl status"] } ← נופל דרך לג
96
97
 
97
98
  ---
98
99
 
99
- ## ייחוס שדות
100
+ ## הפניית שדות
100
101
 
101
102
  ### `enabledPolicies`
102
103
 
103
- סוג: `string[]`
104
+ Type: `string[]`
104
105
 
105
- רשימת שמות מדיניויות להפעלה. שמות חייבים להתאים בדיוק לזהויות המדיניויות המוצגות על ידי `failproofai policies`. ראה [Built-in Policies](/he/built-in-policies) לרשימה המלאה.
106
+ רשימת שמות מדיניויות להפעלה. השמות חייבים להתאים בדיוק למזהי המדיניות המוצגים על ידי `failproofai policies`. ראה [Built-in Policies](/he/built-in-policies) לרשימה המלאה.
106
107
 
107
- מדיניויות שאינן ב-`enabledPolicies` אינן פעילות, גם אם יש להן רשומות ב-`policyParams`.
108
+ מדיניויות שאינן ב-`enabledPolicies` אינן פעילות, גם אם יש להן ערכים ב-`policyParams`.
108
109
 
109
110
  ### `policyParams`
110
111
 
111
- סוג: `Record<string, Record<string, unknown>>`
112
+ Type: `Record<string, Record<string, unknown>>`
112
113
 
113
- עדכוני פרמטרים לפי מדיניות. המפתח החיצוני הוא שם המדיניות; המפתחות הפנימיים הם ספציפיים למדיניות. כל מדיניות מתעדת את הפרמטרים הזמינים שלה ב-[Built-in Policies](/he/built-in-policies).
114
+ עדכונים בפרמטרים לפי-מדיניות. המפתח החיצוני הוא שם המדיניות; המפתחות הפנימיים הם ספציפיים למדיניות. כל מדיניות מתעדת את הפרמטרים הזמינים שלה ב-[Built-in Policies](/he/built-in-policies).
114
115
 
115
- אם למדיניות יש פרמטרים אך אתה לא מציין אותם, משתמשים בברירות המחדל המובנות של המדיניות. משתמשים שלא מגדירים את `policyParams` בכלל מקבלים התנהגות זהה לגרסאות קודמות.
116
+ אם למדיניות יש פרמטרים אך אתה לא מציין אותם, משתמשים בברירות המחדל המובנות של המדיניות. משתמשים שלא מגדירים `policyParams` בכלל מקבלים התנהגות זהה לגרסאות קודמות.
116
117
 
117
- מפתחות לא ידועים בתוך בלוק הפרמטרים של מדיניות מתעלמים בשתיקה בזמן hook, אך מסומנים כאזהרות כאשר אתה מריץ `failproofai policies`.
118
+ מפתחות לא ידועים בתוך בלוק params של מדיניות מתעלמים בשתיקה בזמן הפעלת hook אך מסומנים כאזהרות כאשר אתה מריץ `failproofai policies`.
118
119
 
119
- #### `hint` (חוצה תחומים)
120
+ #### `hint` (cross-cutting)
120
121
 
121
- סוג: `string` (אופציונלי)
122
+ Type: `string` (optional)
122
123
 
123
- הודעה המצורפת לסיבה כאשר מדיניות חוזרת `deny` או `instruct`. השתמש בה כדי לתן Claude הנחיה פעולה ללא שינוי המדיניות עצמה.
124
+ הודעה המוצמדת לסיבה כאשר מדיניות מחזירה `deny` או `instruct`. השתמש בה כדי לתת ל-Claude הנחיות פעולה ללא שינוי של המדיניות עצמה.
124
125
 
125
- עובד עם כל סוג מדיניות — מובנה, מותאמת אישית (`custom/`), קונוונציה של פרויקט (`.failproofai-project/`), או קונוונציה של משתמש (`.failproofai-user/`).
126
+ עובד עם כל סוג מדיניות — מובנה, מותאם אישית (`custom/`), כנסיון פרויקט (`.failproofai-project/`), או כנסיון משתמש (`.failproofai-user/`).
126
127
 
127
128
  ```json
128
129
  {
@@ -141,40 +142,40 @@ resolved: { allowPatterns: ["sudo systemctl status"] } ← נופל דרך לג
141
142
  }
142
143
  ```
143
144
 
144
- כאשר `block-force-push` דוחה, Claude רואה: *"Force-pushing is blocked. Try creating a fresh branch instead."*
145
+ כאשר `block-force-push` מסרב, Claude רואה: *"Force-pushing is blocked. Try creating a fresh branch instead."*
145
146
 
146
- ערכים שאינם מחרוזות ומחרוזות ריקות מתעלמים בשתיקה. אם `hint` לא מוגדר, ההתנהגות ללא שינוי (תאימות אחורית).
147
+ ערכים שאינם מחרוזת ומחרוזות ריקות מתעלמים בשתיקה. אם `hint` לא מוגדר, ההתנהגות נשארת ללא שינוי (תאימות לאחור).
147
148
 
148
149
  ### `customPoliciesPath`
149
150
 
150
- סוג: `string` (נתיב מוחלט)
151
+ Type: `string` (absolute path)
151
152
 
152
- נתיב לקובץ JavaScript המכיל מדיניויות hook מותאמות אישית. זה מוגדר אוטומטית על ידי `failproofai policies --install --custom <path>` (הנתיב נפתר לערך מוחלט לפני האחסון).
153
+ נתיב לקובץ JavaScript המכיל מדיניויות hook מותאמות אישית. זה מוגדר באופן אוטומטי על ידי `failproofai policies --install --custom <path>` (הנתיב מופך לנתיב מוחלט לפני שהוא מאוחסן).
153
154
 
154
- הקובץ נטען מחדש בכל אירוע hook - אין קשמן. ראה [Custom Policies](/he/custom-policies) לפרטי יצירה.
155
+ הקובץ נטען מחדש בכל אירוע hook - אין קישור לזיכרון מטמון. ראה [Custom Policies](/he/custom-policies) לפרטי כתיבה.
155
156
 
156
- ### מדיניויות המבוססות על קונוונציה
157
+ ### מדיניויות המבוססות על כנסיה
157
158
 
158
- בנוסף ל-`customPoliciesPath` המפורש, failproofai גילוי ותקבל מחדש קובצי מדיניויות מספריות `.failproofai/policies/`:
159
+ בנוסף ל-`customPoliciesPath` המפורש, failproofai גוזף ותוקף קובצי מדיניות מספריות `.failproofai/policies/`:
159
160
 
160
- | רמה | ספרייה | תחום |
161
+ | רמה | ספרייה | יקף |
161
162
  |-------|-----------|-------|
162
- | פרויקט | `.failproofai/policies/` | משותף עם צוות דרך בקרת גרסה |
163
+ | פרויקט | `.failproofai/policies/` | משותף עם צוות דרך שליטה בגרסיות |
163
164
  | משתמש | `~/.failproofai/policies/` | אישי, חל על כל הפרויקטים |
164
165
 
165
- **התאמת קובצים:** רק קובצים התואמים `*policies.{js,mjs,ts}` נטענים (למשל `security-policies.mjs`, `workflow-policies.js`). קובצים אחרים בספרייה מתעלמים.
166
+ **התאמת קובץ:** רק קובצים התואמים `*policies.{js,mjs,ts}` נטענים (לדוגמה `security-policies.mjs`, `workflow-policies.js`). קובצים אחרים בספרייה מתעלמים.
166
167
 
167
- **אין צורך בתצורה:** מדיניויות קונוונציה אינן דורשות רשומות ב-`policies-config.json`. פשוט זרוק קובצים לספרייה והם ייבחרו באירוע ה-hook הבא.
168
+ **אין צורך בהגדרה:** מדיניויות כנסיה אינן דורשות ערכים ב-`policies-config.json`. פשוט שחרר קובצים לספרייה והם יאספו באירוע hook הבא.
168
169
 
169
- **טעינת איחוד:** שתי ספריות קונוונציה של פרויקט ומשתמש סרוקות. כל הקובצים התואמים משתי הרמות נטענות (בניגוד ל-`customPoliciesPath` המשתמש בתחום-ראשון-מנצח).
170
+ **טעינת איחוד:** שתי ספריות הכנסיה של פרויקט ומשתמש נסרקות. כל הקובצים התואמים משתי הרמות נטענים (בניגוד ל-`customPoliciesPath` אשר משתמש ב-first-scope-wins).
170
171
 
171
- ראה [Custom Policies](/he/custom-policies) לפרטים נוספים ודוגמאות.
172
+ ראה [Custom Policies](/he/custom-policies) לפרטים ודוגמאות נוספות.
172
173
 
173
174
  ### `llm`
174
175
 
175
- סוג: `object` (אופציונלי)
176
+ Type: `object` (optional)
176
177
 
177
- תצורת לקוח LLM עבור מדיניויות המבצעות קריאות AI. לא נדרש עבור רוב ההתקנות.
178
+ הגדרות לקוח LLM עבור מדיניויות המבצעות קריאות AI. לא נדרש עבור רוב ההתקנות.
178
179
 
179
180
  ```json
180
181
  {
@@ -187,20 +188,20 @@ resolved: { allowPatterns: ["sudo systemctl status"] } ← נופל דרך לג
187
188
 
188
189
  ---
189
190
 
190
- ## ניהול תצורה מה-CLI
191
+ ## ניהול הגדרות מה-CLI
191
192
 
192
- הפקודות `policies --install` ו-`policies --uninstall` כותבות ל-`settings.json` של Claude Code (נקודות כניסה ה-hook), בעוד `policies-config.json` הוא הקובץ שאתה מנהל ישירות. שניים נפרדים:
193
+ הפקודות `policies --install` ו-`policies --uninstall` כותבות ל-`settings.json` של Claude Code (נקודות הכניסה של ה-hook), בעוד `policies-config.json` הוא הקובץ שאתה מנהל ישירות. השניים נפרדים:
193
194
 
194
- - **`settings.json`** - אומר ל-Claude Code להתקשר ל-`failproofai --hook <event>` בכל שימוש בכלי
195
- - **`policies-config.json`** - אומר ל-failproofai אילו מדיניויות להעריך ועם אילו פרמטרים
195
+ - **`settings.json`** - אומר ל-Claude Code לקרוא ל-`failproofai --hook <event>` בכל שימוש בכלי
196
+ - **`policies-config.json`** - אומר ל-failproofai איזו מדיניויות להעריך ועם אילו params
196
197
 
197
- אתה יכול לערוך את `policies-config.json` ישירות בכל זמן; שינויים יקבלו תוקף מיידי באירוע ה-hook הבא ללא צורך בהפעלה מחדש.
198
+ אתה יכול לערוך `policies-config.json` ישירות בכל זמן; שינויים נכנסים לתוקף מיידית באירוע hook הבא ללא צורך בהפעלה מחדש.
198
199
 
199
200
  ---
200
201
 
201
- ## דוגמה: תצורת רמת פרויקט עם ברירות מחדל של צוות
202
+ ## דוגמה: הגדרה ברמת פרויקט עם ברירות מחדל לצוות
202
203
 
203
- התחייב `.failproofai/policies-config.json` ללאגר שלך:
204
+ בצע commit `.failproofai/policies-config.json` לריפו שלך:
204
205
 
205
206
  ```json
206
207
  {
@@ -219,4 +220,4 @@ resolved: { allowPatterns: ["sudo systemctl status"] } ← נופל דרך לג
219
220
  }
220
221
  ```
221
222
 
222
- כל מפתח יכול אז ליצור `.failproofai/policies-config.local.json` (מוחרג מ-gitignore) לעדכונים אישיים ללא השפעה על חברי צוות.
223
+ כל מפתח יכול ליצור `.failproofai/policies-config.local.json` (מפורסם ל-gitignore) לעדכונים אישיים ללא השפעה על חברי הצוות.
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: מדיניויות מותאמות
3
- description: "כתוב את הכללים שלך ב-JavaScript - אכוף קונבנציות, עצור drift, גלה כשלים, התחבר למערכות חיצוניות"
2
+ title: מדיניות מותאמות אישית
3
+ description: "כתוב כללים משלך ב-JavaScript - אכוף קונבנציות, מנע סחיפה, גלה כשלים, היווצרות קשור עם מערכות חיצוניות"
4
4
  icon: code
5
5
  ---
6
6
 
7
- מדיניויות מותאמות מאפשרות לך לכתוב כללים לכל התנהגות agent: אכוף קונבנציות פרויקט, עצור drift, שער פעולות הורסות, גלה agents תקועות, או התחבר ל-Slack, תהליכי אישור, ועוד. הם משתמשים באותה מערכת hook event ובהחלטות `allow`, `deny`, `instruct` כמו מדיניויות מובנות.
7
+ מדיניות מותאמות אישית מאפשרת לך לכתוב כללים לכל התנהגות סוכן: אכוף קונבנציות פרויקט, מנע סחיפה, תגדור פעולות הרסניות, גלה סוכנים תקועים, או היווצרות קשור עם Slack, זרימות אישור, ועוד. הם משתמשים באותה מערכת אירוע hook ובהחלטות `allow`, `deny`, `instruct` כמו מדיניות מובנית.
8
8
 
9
9
  ---
10
10
 
@@ -29,7 +29,7 @@ customPolicies.add({
29
29
  });
30
30
  ```
31
31
 
32
- התקן אותה:
32
+ התקן אותו:
33
33
 
34
34
  ```bash
35
35
  failproofai policies --install --custom ./my-policies.js
@@ -37,11 +37,11 @@ failproofai policies --install --custom ./my-policies.js
37
37
 
38
38
  ---
39
39
 
40
- ## שתי דרכים לטעון מדיניויות מותאמות
40
+ ## שתי דרכים לטעון מדיניות מותאמת אישית
41
41
 
42
- ### אפשרות 1: מבוססת קונבנציה (מומלצת)
42
+ ### אפשרות 1: מבוססת קונבנציה (מומלץ)
43
43
 
44
- שים קבצים `*policies.{js,mjs,ts}` בתיקייה `.failproofai/policies/` והם יוטענו באופן אוטומטי — ללא דגלים או שינויי קונפיגורציה. זה עובד כמו git hooks: שים קובץ, זה פשוט עובד.
44
+ שים קבצים `*policies.{js,mjs,ts}` ב-`.failproofai/policies/` והם נטענים באופן אוטומטי — אין צורך בדגלים או שינויי תצורה. זה עובד כמו git hooks: שים קובץ, זה פשוט עובד.
45
45
 
46
46
  ```
47
47
  # Project level — committed to git, shared with the team
@@ -53,14 +53,14 @@ failproofai policies --install --custom ./my-policies.js
53
53
  ```
54
54
 
55
55
  **איך זה עובד:**
56
- - שתי התיקיות של פרויקט ומשתמש סורקות (union — לא first-scope-wins)
57
- - קבצים נטענים בסדר אלפביתי בתוך כל תיקייה. קידומת עם `01-`, `02-` לשליטה בסדר
58
- - רק קבצים התואמים `*policies.{js,mjs,ts}` נטענים; קבצים אחרים מתעלמים
59
- - כל קובץ טוען באופן עצמאי (fail-open לכל קובץ)
60
- - עובד לצד מדיניויות `--custom` מפורשות ומובנות
56
+ - שתי ספריות פרויקט ומשתמש סורקות (איחוד — לא ראשון-סקופ-ינצחון)
57
+ - קבצים נטענים בסדר אלפביתי בתוך כל ספרייה. הוספת קידומת עם `01-`, `02-` לשליטה בסדר
58
+ - רק קבצים המתאימים ל-`*policies.{js,mjs,ts}` נטענים; קבצים אחרים מתעלמים
59
+ - כל קובץ נטען באופן עצמאי (fail-open לכל קובץ)
60
+ - עובד לצד `--custom` מפורשים ומדיניות מובנית
61
61
 
62
62
  <Tip>
63
- מדיניויות קונבנציה הן הדרך הקלה ביותר לשתף מדיניויות על פני הצוות. התחייב `.failproofai/policies/` ל-git וכל חבר בצוות יקבל אותם באופן אוטומטי.
63
+ מדיניות קונבנציה היא הדרך הקלה ביותר לשתף מדיניות בכל הקבוצה. Commit `.failproofai/policies/` ל-git וכל חברי הקבוצה מקבלים אותם באופן אוטומטי.
64
64
  </Tip>
65
65
 
66
66
  ### אפשרות 2: נתיב קובץ מפורש
@@ -76,21 +76,21 @@ failproofai policies --install --custom ./new-policies.js
76
76
  failproofai policies --uninstall --custom
77
77
  ```
78
78
 
79
- הנתיב המוחלט שנפתר מאוחסן ב-`policies-config.json` בתור `customPoliciesPath`. הקובץ נטען מחדש בכל hook event - אין cache בין events.
79
+ הנתיב המוחלט שהוסדר מאוחסן ב-`policies-config.json` כ-`customPoliciesPath`. הקובץ נטען טרי בכל אירוע hook - אין שומרון בין אירועים.
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
- ### Import
93
+ ### ייבוא
94
94
 
95
95
  ```js
96
96
  import { customPolicies, allow, deny, instruct } from "failproofai";
@@ -98,7 +98,7 @@ 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({
@@ -111,33 +111,32 @@ customPolicies.add({
111
111
 
112
112
  ### עוזרי החלטה
113
113
 
114
- | פונקציה | השפעה | השתמש כאשר |
114
+ | פונקציה | אפקט | השתמש כאשר |
115
115
  |----------|--------|----------|
116
- | `allow()` | התר את הפעולה בשקט | הפעולה בטוחה, לא נדרשת הודעה |
117
- | `deny(message)` | חסום את הפעולה | ל-agent אין לבצע פעולה זו |
118
- | `instruct(message)` | הוסף הקשר ללא חסימה | תן ל-agent הקשר נוסף להישאר בעקבות |
116
+ | `allow()` | אפשר את הפעולה בשקט | הפעולה בטוחה, לא צריך הודעה |
117
+ | `deny(message)` | חסום את הפעולה | הסוכן לא צריך לבצע פעולה זו |
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
- אתה יכול להצמיד הנחיות נוספות לכל הודעת `deny` או `instruct` על ידי הוספת שדה `hint` ב-`policyParams` — ללא צורך בשינוי קוד. זה עובד גם על מדיניויות custom (`custom/`), קונבנציה של פרויקט (`.failproofai-project/`), וקונבנציה של משתמש (`.failproofai-user/`). ראה [Configuration → hint](/he/configuration#hint-cross-cutting) לפרטים.
125
+ אתה יכול להוסיף הדרכה נוספת לכל הודעת `deny` או `instruct` על ידי הוספת שדה `hint` ב-`policyParams` — אין צורך בשינוי קוד. זה עובד עבור מדיניות מותאמת אישית (`custom/`), מדיניות קונבנציה פרויקט (`.failproofai-project/`), ומדיניות קונבנציה משתמש (`.failproofai-user/`) גם כן. ראה [Configuration → hint](/he/configuration#hint-cross-cutting) לפרטים.
126
126
  </Tip>
127
127
 
128
128
  ### הודעות allow מידע
129
129
 
130
+ `allow(message)` מאפשר את הפעולה **וגם** שולח הודעת מידע חזרה ל-Claude. ההודעה מועברת כ-`additionalContext` בתגובת stdout של מטפל hook — אותו מנגנון המשמש ב-`instruct`, אך שונה מבחינה סמנטית: זו עדכון סטטוס, לא אזהרה.
130
131
 
131
- `allow(message)` מתיר את הפעולה **ו**שולח הודעה מידע בחזרה ל-Claude. ההודעה מועברת כ-`additionalContext` בתגובת stdout של hook handler — אותה מנגנון שבו משתמשים `instruct`, אך שונה מבחינה סמנטית: זה עדכון סטטוס, לא אזהרה.
132
-
133
- | פונקציה | השפעה | השתמש כאשר |
132
+ | פונקציה | אפקט | השתמש כאשר |
134
133
  |----------|--------|----------|
135
- | `allow(message)` | התר ושלח הקשר ל-Claude | אשר שצ'ק עבר, או הסבר למה צ'ק דולג |
134
+ | `allow(message)` | אפשר ושלח הקשר ל-Claude | אשר שצ'ק עבר, או הסבר למה צ'ק דולק |
136
135
 
137
136
  מקרי שימוש:
138
137
  - **אישורי סטטוס:** `allow("All CI checks passed.")` — אומר ל-Claude שהכל ירוק
139
- - **הסברי fail-open:** `allow("GitHub CLI not installed, skipping CI check.")` — אומר ל-Claude למה צ'ק דולג כך שיש לו הקשר מלא
140
- - **הודעות מרובות מצטברות:** אם מספר מדיניויות כל אחת מחזירה `allow(message)`, כל ההודעות מחוברות עם שורות חדשות ומועברות יחד
138
+ - **הסברי fail-open:** `allow("GitHub CLI not installed, skipping CI check.")` — אומר ל-Claude למה צ'ק דולק כדי שיהיה להם הקשר מלא
139
+ - **הודעות מרובות מצטברות:** אם מדיניות מרובות מחזירות כל אחת `allow(message)`, כל ההודעות משולבות עם שורות חדשות ומועברות ביחד
141
140
 
142
141
  ```js
143
142
  customPolicies.add({
@@ -161,48 +160,48 @@ customPolicies.add({
161
160
  | שדה | סוג | תיאור |
162
161
  |-------|------|-------------|
163
162
  | `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
164
- | `toolName` | `string \| undefined` | הכלי שנקרא (למשל `"Bash"`, `"Write"`, `"Read"`) |
163
+ | `toolName` | `string \| undefined` | הכלי הנקרא (למשל `"Bash"`, `"Write"`, `"Read"`) |
165
164
  | `toolInput` | `Record<string, unknown> \| undefined` | פרמטרי הקלט של הכלי |
166
- | `payload` | `Record<string, unknown>` | payload אירוע גולמי מלא מ-Claude Code |
167
- | `session` | `SessionMetadata \| undefined` | הקשר סשן (ראה למטה) |
165
+ | `payload` | `Record<string, unknown>` | חומלת עומס של אירוע גולמי מלא מ-Claude Code |
166
+ | `session` | `SessionMetadata \| undefined` | הקשר של הפעילות (ראה להלן) |
168
167
 
169
168
  ### שדות `SessionMetadata`
170
169
 
171
170
  | שדה | סוג | תיאור |
172
171
  |-------|------|-------------|
173
- | `sessionId` | `string` | מזהה סשן Claude Code |
174
- | `cwd` | `string` | ספריית עבודה של סשן Claude Code |
175
- | `transcriptPath` | `string` | נתיב לקובץ תמליל JSONL של הסשן |
172
+ | `sessionId` | `string` | Claude Code זהה הפעילות |
173
+ | `cwd` | `string` | ספרייה עובדת של הפעילות Claude Code |
174
+ | `transcriptPath` | `string` | נתיב לקובץ תמלול JSONL של הפעילות |
176
175
 
177
176
  ### סוגי אירוע
178
177
 
179
- | אירוע | מתי הוא משדר | תוכן `toolInput` |
178
+ | אירוע | מתי זה מתעורר | תוכן `toolInput` |
180
179
  |-------|--------------|----------------------|
181
- | `PreToolUse` | לפני ש-Claude מריץ כלי | קלט הכלי (למשל `{ command: "..." }` עבור Bash) |
182
- | `PostToolUse` | לאחר סיום כלי | קלט הכלי + `tool_result` (הפלט) |
183
- | `Notification` | כאשר Claude שולח הודעה | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` - hooks חייבים תמיד להחזיר `allow()`, הם לא יכולים לחסום הודעות |
184
- | `Stop` | כאשר סשן Claude מסתיים | ריק |
180
+ | `PreToolUse` | לפני Claude מפעיל כלי | קלט הכלי (למשל `{ command: "..." }` עבור Bash) |
181
+ | `PostToolUse` | לאחר השלמת כלי | קלט הכלי + `tool_result` (הפלט) |
182
+ | `Notification` | כאשר Claude שולח הודעה | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` - hooks חייבים להחזיר תמיד `allow()`, הם לא יכולים חסום הודעות |
183
+ | `Stop` | כאשר הפעילות Claude מסתיימת | ריק |
185
184
 
186
185
  ---
187
186
 
188
187
  ## סדר הערכה
189
188
 
190
- מדיניויות מוערכות בסדר זה:
189
+ מדיניות מוערכת בסדר זה:
191
190
 
192
- 1. מדיניויות מובנות (בסדר הגדרה)
193
- 2. מדיניויות custom מפורשות מ-`customPoliciesPath` (בסדר `.add()`)
194
- 3. מדיניויות קונבנציה מ-`.failproofai/policies/` של פרויקט (קבצים אלפביתיים, סדר `.add()` בתוך)
195
- 4. מדיניויות קונבנציה מ-`~/.failproofai/policies/` של משתמש (קבצים אלפביתיים, סדר `.add()` בתוך)
191
+ 1. מדיניות מובנית (בסדר הגדרה)
192
+ 2. מדיניות מותאמת אישית מפורשת מ-`customPoliciesPath` (בסדר `.add()`)
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,13 +218,13 @@ customPolicies.add({
219
218
  });
220
219
  ```
221
220
 
222
- כל הייבואים היחסיים שניתן להגיע אליהם מקובץ הכניסה מופתרים. זה מיושם על ידי כתיבה מחדש של ייבואים `from "failproofai"` לנתיב dist בפועל ויצירת קבצים זמניים `.mjs` כדי להבטיח תאימות ESM.
221
+ כל היבואות היחסיות הנגישות מקובץ הכניסה מוסדרות. זה מיושם על ידי כתיבה מחדש `from "failproofai"` ייבואים לנתיב dist בפועל ויצירת קבצים זמניים `.mjs` כדי להבטיח תאימות ESM.
223
222
 
224
223
  ---
225
224
 
226
225
  ## סינון סוג אירוע
227
226
 
228
- השתמש ב-`match.events` להגבלת מתי מדיניות משדרת:
227
+ השתמש `match.events` כדי להגביל מתי מדיניות מתעוררת:
229
228
 
230
229
  ```js
231
230
  customPolicies.add({
@@ -239,26 +238,26 @@ customPolicies.add({
239
238
  });
240
239
  ```
241
240
 
242
- השמט `match` לחלוטין לשדר בכל סוג אירוע.
241
+ השמט `match` לחלוטין כדי להתעורר על כל סוג אירוע.
243
242
 
244
243
  ---
245
244
 
246
245
  ## טיפול בשגיאות ומצבי כשל
247
246
 
248
- מדיניויות מותאמות הן **fail-open**: שגיאות לעולם לא חוסמות מדיניויות מובנות או מקרסות hook handler.
247
+ מדיניות מותאמת אישית היא **fail-open**: שגיאות לא חוסמות מדיניות מובנית וגם לא קורסות את מטפל ה-hook.
249
248
 
250
- | כשל | התנהגות |
249
+ | כישלון | התנהגות |
251
250
  |---------|----------|
252
- | `customPoliciesPath` לא מוגדר | אין מדיניויות custom מפורשות פועלות; מדיניויות קונבנציה ומובנות ממשיכות בדרך כלל |
253
- | קובץ לא נמצא | אזהרה מתועדת ל-`~/.failproofai/hook.log`; מובנים ממשיכים |
254
- | שגיאת Syntax/import (מפורשת) | שגיאה מתועדת ל-`~/.failproofai/hook.log`; מדיניויות custom מפורשות דולגות |
255
- | שגיאת Syntax/import (קונבנציה) | שגיאה מתועדת; קובץ זה דולג, קבצי קונבנציה אחרים עדיין נטענים |
256
- | `fn` זורק בזמן ריצה | שגיאה מתועדת; hook זה מטופל כ-`allow`; hooks אחרים ממשיכים |
257
- | `fn` לוקח יותר מ-10 שניות | timeout מתועדת; מטופל כ-`allow` |
258
- | ספריית קונבנציה חסרה | אין מדיניויות קונבנציה פועלות; לא שגיאה |
251
+ | `customPoliciesPath` לא מוגדר | אין מדיניות מותאמת אישית מפורשת מתוך; מדיניות קונבנציה ומובנית ממשיכות כרגיל |
252
+ | קובץ לא נמצא | אזהרה רשומה ל-`~/.failproofai/hook.log`; מובנה ממשיך |
253
+ | שגיאת תחביר/ייבוא (מפורש) | שגיאה רשומה ל-`~/.failproofai/hook.log`; מדיניות מותאמת אישית מפורשת דלק |
254
+ | שגיאת תחביר/ייבוא (קונבנציה) | שגיאה רשומה; קובץ זה דלק, קבצי קונבנציה אחרים עדיין נטענים |
255
+ | `fn` זורק בזמן ריצה | שגיאה רשומה; hook זה מטופל כ-`allow`; hook אחרים ממשיכים |
256
+ | `fn` לוקח יותר מ-10 שניות | timeout רשומה; מטופל כ-`allow` |
257
+ | ספרייה קונבנציה חסרה | אין מדיניות קונבנציה מתוך; אין שגיאה |
259
258
 
260
259
  <Tip>
261
- כדי לבדוק שגיאות של מדיניות מותאמת, צפה בקובץ היומן:
260
+ לדבוג שגיאות מדיניות מותאמת אישית, צפה בקובץ היומן:
262
261
 
263
262
  ```bash
264
263
  tail -f ~/.failproofai/hook.log
@@ -267,7 +266,7 @@ tail -f ~/.failproofai/hook.log
267
266
 
268
267
  ---
269
268
 
270
- ## דוגמה מלאה: מדיניויות מרובות
269
+ ## דוגמה מלאה: מדיניות מרובה
271
270
 
272
271
  ```js
273
272
  // my-policies.js
@@ -324,16 +323,16 @@ export { customPolicies };
324
323
 
325
324
  ## דוגמאות
326
325
 
327
- ספריית `examples/` מכילה קבצי מדיניות מוכנים להפעלה:
326
+ ספרייה `examples/` מכילה קבצי מדיניות מוכנים להפעלה:
328
327
 
329
328
  | קובץ | תוכן |
330
329
  |------|----------|
331
- | `examples/policies-basic.js` | חמש מדיניויות קלפי סטרטר המכסות מצבי כשל נפוצים של agent |
332
- | `examples/policies-advanced/index.js` | דפוסים מתקדמים: ייבואים טרנזיטיביים, קריאות async, ניקוי פלט, hooks של סוף סשן |
333
- | `examples/convention-policies/security-policies.mjs` | מדיניויות אבטחה מבוססות קונבנציה (חסום כתיבות .env, מנע כתיבה מחדש של היסטוריית git) |
334
- | `examples/convention-policies/workflow-policies.mjs` | מדיניויות זרימת עבודה מבוססות קונבנציה (תזכורות בדיקה, קובץ כתיבה ביקורת) |
330
+ | `examples/policies-basic.js` | חמש מדיניות התחלה המכסות מצבי כשל סוכן נפוצים |
331
+ | `examples/policies-advanced/index.js` | דפוסים מתקדמים: יבואות טרנזיטיביים, קריאות אסינכרוניות, ניקוי פלט, and וו-end-of-session |
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
@@ -351,4 +350,4 @@ mkdir -p ~/.failproofai/policies
351
350
  cp examples/convention-policies/*.mjs ~/.failproofai/policies/
352
351
  ```
353
352
 
354
- לא נדרש פקודת התקנה — הקבצים נקטפים באופן אוטומטי בהאירוע hook הבא.
353
+ אין צורך בפקודת התקנה — הקבצים נאספים באופן אוטומטי בעלון ה-hook הבא.