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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/.next/standalone/.failproofai/policies/workflow-policies.mjs +2 -1
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  11. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  12. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  20. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  21. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  22. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  23. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/index.html +1 -1
  28. package/.next/standalone/.next/server/app/index.rsc +15 -15
  29. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  30. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  31. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  32. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  33. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  34. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  35. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  38. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  41. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  44. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  45. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  48. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  51. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  52. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0r6vvp5._.js → [root-of-the-server]__0.~fd7s._.js} +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  54. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  55. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0z5dd-f._.js → [root-of-the-server]__0a.nuas._.js} +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  58. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  59. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
  60. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  63. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  64. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  65. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  66. package/.next/standalone/.next/server/pages/404.html +2 -2
  67. package/.next/standalone/.next/server/pages/500.html +1 -1
  68. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  70. package/.next/standalone/.next/static/chunks/{0j_ivegn3i5wt.js → 0.z51twd.0l5z.js} +1 -1
  71. package/.next/standalone/.next/static/chunks/{04fpsjft~cje..js → 0hctoh28rg838.js} +1 -1
  72. package/.next/standalone/.next/static/chunks/{0.io32u7gjgsb.js → 0hplx-8c-4vpv.js} +1 -1
  73. package/.next/standalone/.next/static/chunks/{0yf_mmdukq6up.js → 0maq.q1t.ri85.js} +2 -2
  74. package/.next/standalone/.next/static/chunks/{0x8vagatq36_7.js → 0teq8wdh3po1n.js} +1 -1
  75. package/.next/standalone/.next/static/chunks/{04mtv9jnqknn3.js → 0uc0um_uz51m_.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{0h4qcn40dunn7.js → 0ul6fk-z.6k-0.js} +1 -1
  77. package/.next/standalone/.next/static/chunks/{0kvldut6ndzyz.js → 0w9lwqy0-v1dk.js} +1 -1
  78. package/.next/standalone/CHANGELOG.md +9 -1
  79. package/.next/standalone/README.md +2 -2
  80. package/.next/standalone/dist/cli.mjs +19 -2
  81. package/.next/standalone/docs/ar/architecture.mdx +66 -65
  82. package/.next/standalone/docs/ar/configuration.mdx +42 -42
  83. package/.next/standalone/docs/ar/custom-policies.mdx +63 -68
  84. package/.next/standalone/docs/architecture.mdx +2 -2
  85. package/.next/standalone/docs/configuration.mdx +1 -1
  86. package/.next/standalone/docs/custom-policies.mdx +2 -6
  87. package/.next/standalone/docs/de/architecture.mdx +92 -92
  88. package/.next/standalone/docs/de/configuration.mdx +35 -35
  89. package/.next/standalone/docs/de/custom-policies.mdx +50 -54
  90. package/.next/standalone/docs/es/architecture.mdx +73 -73
  91. package/.next/standalone/docs/es/configuration.mdx +25 -25
  92. package/.next/standalone/docs/es/custom-policies.mdx +49 -53
  93. package/.next/standalone/docs/fr/architecture.mdx +55 -55
  94. package/.next/standalone/docs/fr/configuration.mdx +26 -26
  95. package/.next/standalone/docs/fr/custom-policies.mdx +42 -46
  96. package/.next/standalone/docs/he/architecture.mdx +67 -67
  97. package/.next/standalone/docs/he/configuration.mdx +53 -52
  98. package/.next/standalone/docs/he/custom-policies.mdx +73 -77
  99. package/.next/standalone/docs/hi/architecture.mdx +107 -107
  100. package/.next/standalone/docs/hi/configuration.mdx +39 -39
  101. package/.next/standalone/docs/hi/custom-policies.mdx +77 -81
  102. package/.next/standalone/docs/i18n/README.ar.md +66 -66
  103. package/.next/standalone/docs/i18n/README.de.md +40 -40
  104. package/.next/standalone/docs/i18n/README.es.md +40 -40
  105. package/.next/standalone/docs/i18n/README.fr.md +44 -44
  106. package/.next/standalone/docs/i18n/README.he.md +67 -67
  107. package/.next/standalone/docs/i18n/README.hi.md +71 -71
  108. package/.next/standalone/docs/i18n/README.it.md +63 -63
  109. package/.next/standalone/docs/i18n/README.ja.md +55 -55
  110. package/.next/standalone/docs/i18n/README.ko.md +59 -59
  111. package/.next/standalone/docs/i18n/README.pt-br.md +45 -45
  112. package/.next/standalone/docs/i18n/README.ru.md +71 -71
  113. package/.next/standalone/docs/i18n/README.tr.md +76 -76
  114. package/.next/standalone/docs/i18n/README.vi.md +71 -71
  115. package/.next/standalone/docs/i18n/README.zh.md +53 -53
  116. package/.next/standalone/docs/it/architecture.mdx +55 -54
  117. package/.next/standalone/docs/it/configuration.mdx +45 -46
  118. package/.next/standalone/docs/it/custom-policies.mdx +77 -82
  119. package/.next/standalone/docs/ja/architecture.mdx +93 -93
  120. package/.next/standalone/docs/ja/configuration.mdx +48 -48
  121. package/.next/standalone/docs/ja/custom-policies.mdx +63 -67
  122. package/.next/standalone/docs/ko/architecture.mdx +66 -66
  123. package/.next/standalone/docs/ko/configuration.mdx +36 -36
  124. package/.next/standalone/docs/ko/custom-policies.mdx +73 -77
  125. package/.next/standalone/docs/pt-br/architecture.mdx +55 -55
  126. package/.next/standalone/docs/pt-br/configuration.mdx +36 -36
  127. package/.next/standalone/docs/pt-br/custom-policies.mdx +62 -66
  128. package/.next/standalone/docs/ru/architecture.mdx +59 -60
  129. package/.next/standalone/docs/ru/configuration.mdx +52 -53
  130. package/.next/standalone/docs/ru/custom-policies.mdx +70 -74
  131. package/.next/standalone/docs/tr/architecture.mdx +124 -124
  132. package/.next/standalone/docs/tr/configuration.mdx +46 -47
  133. package/.next/standalone/docs/tr/custom-policies.mdx +75 -78
  134. package/.next/standalone/docs/vi/architecture.mdx +65 -64
  135. package/.next/standalone/docs/vi/configuration.mdx +42 -42
  136. package/.next/standalone/docs/vi/custom-policies.mdx +68 -72
  137. package/.next/standalone/docs/zh/architecture.mdx +67 -67
  138. package/.next/standalone/docs/zh/configuration.mdx +35 -35
  139. package/.next/standalone/docs/zh/custom-policies.mdx +54 -58
  140. package/.next/standalone/package.json +1 -1
  141. package/.next/standalone/server.js +1 -1
  142. package/.next/standalone/src/hooks/builtin-policies.ts +30 -0
  143. package/README.md +2 -2
  144. package/dist/cli.mjs +19 -2
  145. package/package.json +1 -1
  146. package/src/hooks/builtin-policies.ts +30 -0
  147. /package/.next/standalone/.next/static/{ICeMHZ-8ZR7HY5GLm7oSJ → 8mygPGI5bzrtWK36ZYO59}/_buildManifest.js +0 -0
  148. /package/.next/standalone/.next/static/{ICeMHZ-8ZR7HY5GLm7oSJ → 8mygPGI5bzrtWK36ZYO59}/_clientMiddlewareManifest.js +0 -0
  149. /package/.next/standalone/.next/static/{ICeMHZ-8ZR7HY5GLm7oSJ → 8mygPGI5bzrtWK36ZYO59}/_ssgManifest.js +0 -0
@@ -1,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
- ### מדיניויות המבוססות על קונוונציה (v0.0.2-beta.7+)
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: מבוססת קונבנציה (מומלצת, v0.0.2-beta.7+)
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,36 +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
- ### הודעות allow מידע (beta)
128
+ ### הודעות allow מידע
129
129
 
130
- <Note>
131
- `allow(message)` היא תכונת beta זמינה מ-v0.0.2-beta.3. ה-API עשוי להשתנות בגרסאות עתידיות. גרסאות קודמות תומכות רק ב-`allow()` ללא טיעונים.
132
- </Note>
133
-
134
- `allow(message)` מתיר את הפעולה **ו**שולח הודעה מידע בחזרה ל-Claude. ההודעה מועברת כ-`additionalContext` בתגובת stdout של hook handler — אותה מנגנון שבו משתמשים `instruct`, אך שונה מבחינה סמנטית: זה עדכון סטטוס, לא אזהרה.
130
+ `allow(message)` מאפשר את הפעולה **וגם** שולח הודעת מידע חזרה ל-Claude. ההודעה מועברת כ-`additionalContext` בתגובת stdout של מטפל hook — אותו מנגנון המשמש ב-`instruct`, אך שונה מבחינה סמנטית: זו עדכון סטטוס, לא אזהרה.
135
131
 
136
- | פונקציה | השפעה | השתמש כאשר |
132
+ | פונקציה | אפקט | השתמש כאשר |
137
133
  |----------|--------|----------|
138
- | `allow(message)` | התר ושלח הקשר ל-Claude | אשר שצ'ק עבר, או הסבר למה צ'ק דולג |
134
+ | `allow(message)` | אפשר ושלח הקשר ל-Claude | אשר שצ'ק עבר, או הסבר למה צ'ק דולק |
139
135
 
140
136
  מקרי שימוש:
141
137
  - **אישורי סטטוס:** `allow("All CI checks passed.")` — אומר ל-Claude שהכל ירוק
142
- - **הסברי fail-open:** `allow("GitHub CLI not installed, skipping CI check.")` — אומר ל-Claude למה צ'ק דולג כך שיש לו הקשר מלא
143
- - **הודעות מרובות מצטברות:** אם מספר מדיניויות כל אחת מחזירה `allow(message)`, כל ההודעות מחוברות עם שורות חדשות ומועברות יחד
138
+ - **הסברי fail-open:** `allow("GitHub CLI not installed, skipping CI check.")` — אומר ל-Claude למה צ'ק דולק כדי שיהיה להם הקשר מלא
139
+ - **הודעות מרובות מצטברות:** אם מדיניות מרובות מחזירות כל אחת `allow(message)`, כל ההודעות משולבות עם שורות חדשות ומועברות ביחד
144
140
 
145
141
  ```js
146
142
  customPolicies.add({
@@ -164,48 +160,48 @@ customPolicies.add({
164
160
  | שדה | סוג | תיאור |
165
161
  |-------|------|-------------|
166
162
  | `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
167
- | `toolName` | `string \| undefined` | הכלי שנקרא (למשל `"Bash"`, `"Write"`, `"Read"`) |
163
+ | `toolName` | `string \| undefined` | הכלי הנקרא (למשל `"Bash"`, `"Write"`, `"Read"`) |
168
164
  | `toolInput` | `Record<string, unknown> \| undefined` | פרמטרי הקלט של הכלי |
169
- | `payload` | `Record<string, unknown>` | payload אירוע גולמי מלא מ-Claude Code |
170
- | `session` | `SessionMetadata \| undefined` | הקשר סשן (ראה למטה) |
165
+ | `payload` | `Record<string, unknown>` | חומלת עומס של אירוע גולמי מלא מ-Claude Code |
166
+ | `session` | `SessionMetadata \| undefined` | הקשר של הפעילות (ראה להלן) |
171
167
 
172
168
  ### שדות `SessionMetadata`
173
169
 
174
170
  | שדה | סוג | תיאור |
175
171
  |-------|------|-------------|
176
- | `sessionId` | `string` | מזהה סשן Claude Code |
177
- | `cwd` | `string` | ספריית עבודה של סשן Claude Code |
178
- | `transcriptPath` | `string` | נתיב לקובץ תמליל JSONL של הסשן |
172
+ | `sessionId` | `string` | Claude Code זהה הפעילות |
173
+ | `cwd` | `string` | ספרייה עובדת של הפעילות Claude Code |
174
+ | `transcriptPath` | `string` | נתיב לקובץ תמלול JSONL של הפעילות |
179
175
 
180
176
  ### סוגי אירוע
181
177
 
182
- | אירוע | מתי הוא משדר | תוכן `toolInput` |
178
+ | אירוע | מתי זה מתעורר | תוכן `toolInput` |
183
179
  |-------|--------------|----------------------|
184
- | `PreToolUse` | לפני ש-Claude מריץ כלי | קלט הכלי (למשל `{ command: "..." }` עבור Bash) |
185
- | `PostToolUse` | לאחר סיום כלי | קלט הכלי + `tool_result` (הפלט) |
186
- | `Notification` | כאשר Claude שולח הודעה | `{ message: "...", notification_type: "idle" \| "permission_prompt" \| ... }` - hooks חייבים תמיד להחזיר `allow()`, הם לא יכולים לחסום הודעות |
187
- | `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 מסתיימת | ריק |
188
184
 
189
185
  ---
190
186
 
191
187
  ## סדר הערכה
192
188
 
193
- מדיניויות מוערכות בסדר זה:
189
+ מדיניות מוערכת בסדר זה:
194
190
 
195
- 1. מדיניויות מובנות (בסדר הגדרה)
196
- 2. מדיניויות custom מפורשות מ-`customPoliciesPath` (בסדר `.add()`)
197
- 3. מדיניויות קונבנציה מ-`.failproofai/policies/` של פרויקט (קבצים אלפביתיים, סדר `.add()` בתוך)
198
- 4. מדיניויות קונבנציה מ-`~/.failproofai/policies/` של משתמש (קבצים אלפביתיים, סדר `.add()` בתוך)
191
+ 1. מדיניות מובנית (בסדר הגדרה)
192
+ 2. מדיניות מותאמת אישית מפורשת מ-`customPoliciesPath` (בסדר `.add()`)
193
+ 3. מדיניות קונבנציה מפרויקט `.failproofai/policies/` (קבצים אלפביתיים, סדר `.add()` בתוך)
194
+ 4. מדיניות קונבנציה מ-`~/.failproofai/policies/` משתמש (קבצים אלפביתיים, סדר `.add()` בתוך)
199
195
 
200
196
  <Note>
201
- `deny` הראשון מקצר את כל המדיניויות הבאות. כל הודעות `instruct` מצטברות ומועברות יחד.
197
+ `deny` הראשון מקצר את כל המדיניות הבאות. כל הודעות `instruct` מצטברות ומועברות ביחד.
202
198
  </Note>
203
199
 
204
200
  ---
205
201
 
206
- ## ייבואים טרנזיטיביים
202
+ ## יבואות טרנזיטיביים
207
203
 
208
- קבצי מדיניות מותאמות יכולים לייבא מודולים מקומיים באמצעות נתיבים יחסיים:
204
+ קבצי מדיניות מותאמת אישית יכולים לייבא מודולים מקומיים באמצעות נתיבים יחסיים:
209
205
 
210
206
  ```js
211
207
  // my-policies.js
@@ -222,13 +218,13 @@ customPolicies.add({
222
218
  });
223
219
  ```
224
220
 
225
- כל הייבואים היחסיים שניתן להגיע אליהם מקובץ הכניסה מופתרים. זה מיושם על ידי כתיבה מחדש של ייבואים `from "failproofai"` לנתיב dist בפועל ויצירת קבצים זמניים `.mjs` כדי להבטיח תאימות ESM.
221
+ כל היבואות היחסיות הנגישות מקובץ הכניסה מוסדרות. זה מיושם על ידי כתיבה מחדש `from "failproofai"` ייבואים לנתיב dist בפועל ויצירת קבצים זמניים `.mjs` כדי להבטיח תאימות ESM.
226
222
 
227
223
  ---
228
224
 
229
225
  ## סינון סוג אירוע
230
226
 
231
- השתמש ב-`match.events` להגבלת מתי מדיניות משדרת:
227
+ השתמש `match.events` כדי להגביל מתי מדיניות מתעוררת:
232
228
 
233
229
  ```js
234
230
  customPolicies.add({
@@ -242,26 +238,26 @@ customPolicies.add({
242
238
  });
243
239
  ```
244
240
 
245
- השמט `match` לחלוטין לשדר בכל סוג אירוע.
241
+ השמט `match` לחלוטין כדי להתעורר על כל סוג אירוע.
246
242
 
247
243
  ---
248
244
 
249
245
  ## טיפול בשגיאות ומצבי כשל
250
246
 
251
- מדיניויות מותאמות הן **fail-open**: שגיאות לעולם לא חוסמות מדיניויות מובנות או מקרסות hook handler.
247
+ מדיניות מותאמת אישית היא **fail-open**: שגיאות לא חוסמות מדיניות מובנית וגם לא קורסות את מטפל ה-hook.
252
248
 
253
- | כשל | התנהגות |
249
+ | כישלון | התנהגות |
254
250
  |---------|----------|
255
- | `customPoliciesPath` לא מוגדר | אין מדיניויות custom מפורשות פועלות; מדיניויות קונבנציה ומובנות ממשיכות בדרך כלל |
256
- | קובץ לא נמצא | אזהרה מתועדת ל-`~/.failproofai/hook.log`; מובנים ממשיכים |
257
- | שגיאת Syntax/import (מפורשת) | שגיאה מתועדת ל-`~/.failproofai/hook.log`; מדיניויות custom מפורשות דולגות |
258
- | שגיאת Syntax/import (קונבנציה) | שגיאה מתועדת; קובץ זה דולג, קבצי קונבנציה אחרים עדיין נטענים |
259
- | `fn` זורק בזמן ריצה | שגיאה מתועדת; hook זה מטופל כ-`allow`; hooks אחרים ממשיכים |
260
- | `fn` לוקח יותר מ-10 שניות | timeout מתועדת; מטופל כ-`allow` |
261
- | ספריית קונבנציה חסרה | אין מדיניויות קונבנציה פועלות; לא שגיאה |
251
+ | `customPoliciesPath` לא מוגדר | אין מדיניות מותאמת אישית מפורשת מתוך; מדיניות קונבנציה ומובנית ממשיכות כרגיל |
252
+ | קובץ לא נמצא | אזהרה רשומה ל-`~/.failproofai/hook.log`; מובנה ממשיך |
253
+ | שגיאת תחביר/ייבוא (מפורש) | שגיאה רשומה ל-`~/.failproofai/hook.log`; מדיניות מותאמת אישית מפורשת דלק |
254
+ | שגיאת תחביר/ייבוא (קונבנציה) | שגיאה רשומה; קובץ זה דלק, קבצי קונבנציה אחרים עדיין נטענים |
255
+ | `fn` זורק בזמן ריצה | שגיאה רשומה; hook זה מטופל כ-`allow`; hook אחרים ממשיכים |
256
+ | `fn` לוקח יותר מ-10 שניות | timeout רשומה; מטופל כ-`allow` |
257
+ | ספרייה קונבנציה חסרה | אין מדיניות קונבנציה מתוך; אין שגיאה |
262
258
 
263
259
  <Tip>
264
- כדי לבדוק שגיאות של מדיניות מותאמת, צפה בקובץ היומן:
260
+ לדבוג שגיאות מדיניות מותאמת אישית, צפה בקובץ היומן:
265
261
 
266
262
  ```bash
267
263
  tail -f ~/.failproofai/hook.log
@@ -270,7 +266,7 @@ tail -f ~/.failproofai/hook.log
270
266
 
271
267
  ---
272
268
 
273
- ## דוגמה מלאה: מדיניויות מרובות
269
+ ## דוגמה מלאה: מדיניות מרובה
274
270
 
275
271
  ```js
276
272
  // my-policies.js
@@ -327,16 +323,16 @@ export { customPolicies };
327
323
 
328
324
  ## דוגמאות
329
325
 
330
- ספריית `examples/` מכילה קבצי מדיניות מוכנים להפעלה:
326
+ ספרייה `examples/` מכילה קבצי מדיניות מוכנים להפעלה:
331
327
 
332
328
  | קובץ | תוכן |
333
329
  |------|----------|
334
- | `examples/policies-basic.js` | חמש מדיניויות קלפי סטרטר המכסות מצבי כשל נפוצים של agent |
335
- | `examples/policies-advanced/index.js` | דפוסים מתקדמים: ייבואים טרנזיטיביים, קריאות async, ניקוי פלט, hooks של סוף סשן |
336
- | `examples/convention-policies/security-policies.mjs` | מדיניויות אבטחה מבוססות קונבנציה (חסום כתיבות .env, מנע כתיבה מחדש של היסטוריית git) |
337
- | `examples/convention-policies/workflow-policies.mjs` | מדיניויות זרימת עבודה מבוססות קונבנציה (תזכורות בדיקה, קובץ כתיבה ביקורת) |
330
+ | `examples/policies-basic.js` | חמש מדיניות התחלה המכסות מצבי כשל סוכן נפוצים |
331
+ | `examples/policies-advanced/index.js` | דפוסים מתקדמים: יבואות טרנזיטיביים, קריאות אסינכרוניות, ניקוי פלט, and וו-end-of-session |
332
+ | `examples/convention-policies/security-policies.mjs` | מדיניות אבטחה מבוססת קונבנציה (חסום .env כתיבות, מנע כתיבה מחדש של היסטוריה של git) |
333
+ | `examples/convention-policies/workflow-policies.mjs` | מדיניות זרימת עבודה מבוססת קונבנציה (תזכורות בדיקה, כתיבות קובץ ביקורת) |
338
334
 
339
- ### שימוש בדוגמאות קובץ מפורש
335
+ ### שימוש בדוגמאות קובץ מפורשות
340
336
 
341
337
  ```bash
342
338
  failproofai policies --install --custom ./examples/policies-basic.js
@@ -354,4 +350,4 @@ mkdir -p ~/.failproofai/policies
354
350
  cp examples/convention-policies/*.mjs ~/.failproofai/policies/
355
351
  ```
356
352
 
357
- לא נדרש פקודת התקנה — הקבצים נקטפים באופן אוטומטי בהאירוע hook הבא.
353
+ אין צורך בפקודת התקנה — הקבצים נאספים באופן אוטומטי בעלון ה-hook הבא.