failproofai 0.0.6-beta.2 → 0.0.6-beta.3
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/.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]__092s1ta._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__05akje6._.js → [root-of-the-server]__096k.db._.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]__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]__0i5kvry._.js → [root-of-the-server]__0kyh86x._.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/{1052sguyd-.ka.js → 0-dm_9a6nsc2l.js} +1 -1
- package/.next/standalone/.next/static/chunks/{05j1px0r8yzh6.js → 01pmw1-asbek~.js} +2 -2
- package/.next/standalone/.next/static/chunks/{14cl9poem30dq.js → 051m32nx~n5yr.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0badv41uxa56..js → 0a-yctdwn368y.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0xpl.oscrakvx.js → 0l-mu4okl-cj1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{00j0rr7rh8ef8.js → 0mazj-p-~2kc6.js} +1 -1
- package/.next/standalone/.next/static/chunks/0qakntsrpc~1j.js +6 -0
- package/.next/standalone/.next/static/chunks/{0npb~873.wvg3.js → 156zca6aewyr-.js} +1 -1
- package/.next/standalone/CHANGELOG.md +7 -0
- package/.next/standalone/bin/failproofai.mjs +91 -4
- package/.next/standalone/dist/cli.mjs +1155 -54
- package/.next/standalone/docs/ar/built-in-policies.mdx +118 -118
- package/.next/standalone/docs/built-in-policies.mdx +2 -2
- package/.next/standalone/docs/de/built-in-policies.mdx +48 -48
- package/.next/standalone/docs/es/built-in-policies.mdx +82 -82
- package/.next/standalone/docs/fr/built-in-policies.mdx +72 -72
- package/.next/standalone/docs/he/built-in-policies.mdx +129 -128
- package/.next/standalone/docs/hi/built-in-policies.mdx +178 -182
- package/.next/standalone/docs/it/built-in-policies.mdx +64 -64
- package/.next/standalone/docs/ja/built-in-policies.mdx +128 -128
- package/.next/standalone/docs/ko/built-in-policies.mdx +111 -111
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +65 -65
- package/.next/standalone/docs/ru/built-in-policies.mdx +72 -72
- package/.next/standalone/docs/tr/built-in-policies.mdx +99 -99
- package/.next/standalone/docs/vi/built-in-policies.mdx +69 -72
- package/.next/standalone/docs/zh/built-in-policies.mdx +76 -78
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/auth/login.ts +104 -0
- package/.next/standalone/src/auth/logout.ts +50 -0
- package/.next/standalone/src/auth/token-store.ts +64 -0
- package/.next/standalone/src/hooks/builtin-policies.ts +22 -20
- package/.next/standalone/src/hooks/handler.ts +35 -15
- package/.next/standalone/src/relay/daemon.ts +362 -0
- package/.next/standalone/src/relay/pid.ts +76 -0
- package/.next/standalone/src/relay/queue.ts +225 -0
- package/bin/failproofai.mjs +91 -4
- package/dist/cli.mjs +1155 -54
- package/package.json +1 -1
- package/src/auth/login.ts +104 -0
- package/src/auth/logout.ts +50 -0
- package/src/auth/token-store.ts +64 -0
- package/src/hooks/builtin-policies.ts +22 -20
- package/src/hooks/handler.ts +35 -15
- package/src/relay/daemon.ts +362 -0
- package/src/relay/pid.ts +76 -0
- package/src/relay/queue.ts +225 -0
- package/.next/standalone/.next/static/chunks/0ijk_kek9_wyx.js +0 -6
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{A9pNTZdoYJTVyPAYwQMx5 → r-wX0MuAfCjbhJm3phQc8}/_ssgManifest.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: Politiche
|
|
3
|
-
description: "Tutte le 30 politiche integrate che
|
|
2
|
+
title: Politiche integrate
|
|
3
|
+
description: "Tutte le 30 politiche integrate che rilevano i comuni modi di fallimento degli agenti"
|
|
4
4
|
icon: shield
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
failproofai
|
|
7
|
+
failproofai include 30 politiche integrate che rilevano i comuni modi di fallimento degli agenti. Ogni politica si attiva su un tipo specifico di evento hook e nome dello strumento. Nove politiche accettano parametri che ti permettono di regolarne il comportamento senza scrivere codice. Quattro politiche di workflow applicano una pipeline commit → push → PR → CI prima che Claude si fermi.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -12,7 +12,7 @@ failproofai viene fornito con 30 politiche integrate che catturano le modalità
|
|
|
12
12
|
|
|
13
13
|
Le politiche sono raggruppate in categorie:
|
|
14
14
|
|
|
15
|
-
| Categoria | Politiche | Tipo di
|
|
15
|
+
| Categoria | Politiche | Tipo di hook |
|
|
16
16
|
|----------|----------|-----------|
|
|
17
17
|
| [Comandi pericolosi](#comandi-pericolosi) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
|
|
18
18
|
| [Segreti (sanitizzatori)](#segreti-sanitizzatori) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
|
|
@@ -22,17 +22,17 @@ Le politiche sono raggruppate in categorie:
|
|
|
22
22
|
| [Database](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
|
|
23
23
|
| [Avvisi](#avvisi) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
|
|
24
24
|
| [Gestori di pacchetti](#gestori-di-pacchetti) | prefer-package-manager | PreToolUse |
|
|
25
|
-
| [
|
|
25
|
+
| [Workflow](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
|
|
26
26
|
|
|
27
27
|
- **`block-`** — impedisce all'agente di procedere.
|
|
28
28
|
- **`warn-`** — fornisce all'agente contesto aggiuntivo in modo che possa autocorreggersi.
|
|
29
|
-
- **`sanitize-`** —
|
|
30
|
-
- **`require-`** — blocca l'evento Stop fino
|
|
29
|
+
- **`sanitize-`** — rimuove i dati sensibili dall'output dello strumento prima che l'agente li veda.
|
|
30
|
+
- **`require-`** — blocca l'evento Stop fino a quando le condizioni non sono soddisfatte.
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
34
|
<Tip>
|
|
35
|
-
Ogni politica supporta un campo `hint`
|
|
35
|
+
Ogni politica supporta un campo opzionale `hint` in `policyParams`. L'hint viene aggiunto al messaggio di negazione o istruzione che Claude vede, fornendo una guida pratica senza modificare il codice della politica. Funziona con politiche integrate, personalizzate e di convenzione. Vedi [Configurazione → hint](/it/configuration#hint-cross-cutting) per i dettagli.
|
|
36
36
|
</Tip>
|
|
37
37
|
|
|
38
38
|
---
|
|
@@ -46,13 +46,13 @@ Impedisci agli agenti di eseguire operazioni difficili da annullare o che potreb
|
|
|
46
46
|
**Evento:** PreToolUse (Bash)
|
|
47
47
|
**Predefinito:** Nega qualsiasi comando `sudo`.
|
|
48
48
|
|
|
49
|
-
Blocca gli
|
|
49
|
+
Blocca gli invocazioni che includono la parola chiave `sudo`. L'abbinamento dei modelli viene eseguito su token di comando analizzati, non sulla stringa grezza, per prevenire bypass tramite iniezione di operatori shell.
|
|
50
50
|
|
|
51
51
|
**Parametri:**
|
|
52
52
|
|
|
53
53
|
| Parametro | Tipo | Predefinito | Descrizione |
|
|
54
54
|
|-------|------|---------|-------------|
|
|
55
|
-
| `allowPatterns` | `string[]` | `[]` | Prefissi di comando esatti consentiti. Ogni voce viene
|
|
55
|
+
| `allowPatterns` | `string[]` | `[]` | Prefissi di comando esatti che sono consentiti. Ogni voce viene abbinata ai token argv analizzati. |
|
|
56
56
|
|
|
57
57
|
**Esempio:**
|
|
58
58
|
|
|
@@ -66,10 +66,10 @@ Blocca gli invocamenti che includono la parola chiave `sudo`. La corrispondenza
|
|
|
66
66
|
}
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
Con questa configurazione, `sudo systemctl status nginx` è consentito, ma `sudo rm /etc/hosts`
|
|
69
|
+
Con questa configurazione, `sudo systemctl status nginx` è consentito, ma `sudo rm /etc/hosts` è negato.
|
|
70
70
|
|
|
71
71
|
<Note>
|
|
72
|
-
I
|
|
72
|
+
I modelli vengono abbinati ai token analizzati, non alla stringa di comando grezza. Questo previene il bypass tramite operatori shell aggiunti (ad es. `sudo systemctl status x; rm -rf /` non corrisponde a `sudo systemctl status *`).
|
|
73
73
|
</Note>
|
|
74
74
|
|
|
75
75
|
---
|
|
@@ -83,7 +83,7 @@ I pattern vengono confrontati con i token analizzati, non con la stringa di coma
|
|
|
83
83
|
|
|
84
84
|
| Parametro | Tipo | Predefinito | Descrizione |
|
|
85
85
|
|-------|------|---------|-------------|
|
|
86
|
-
| `allowPaths` | `string[]` | `[]` | Percorsi che
|
|
86
|
+
| `allowPaths` | `string[]` | `[]` | Percorsi che sono sicuri da eliminare ricorsivamente (ad es. `/tmp`). |
|
|
87
87
|
|
|
88
88
|
**Esempio:**
|
|
89
89
|
|
|
@@ -102,7 +102,7 @@ I pattern vengono confrontati con i token analizzati, non con la stringa di coma
|
|
|
102
102
|
### `block-curl-pipe-sh`
|
|
103
103
|
|
|
104
104
|
**Evento:** PreToolUse (Bash)
|
|
105
|
-
**Predefinito:** Nega `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` e
|
|
105
|
+
**Predefinito:** Nega `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` e modelli simili.
|
|
106
106
|
|
|
107
107
|
Nessun parametro.
|
|
108
108
|
|
|
@@ -119,12 +119,12 @@ Nessun parametro.
|
|
|
119
119
|
|
|
120
120
|
## Segreti (sanitizzatori)
|
|
121
121
|
|
|
122
|
-
Impedisci agli agenti di
|
|
122
|
+
Impedisci agli agenti di far trapelare credenziali nel loro contesto o output. Le politiche di sanitizzazione si attivano su eventi **PostToolUse**. Quando Claude esegue un comando Bash, legge un file o chiama qualsiasi strumento, queste politiche ispezionano l'output prima che venga restituito a Claude. Se viene rilevato un modello di segreto, la politica restituisce una decisione di negazione che impedisce il passaggio dell'output.
|
|
123
123
|
|
|
124
124
|
### `sanitize-jwt`
|
|
125
125
|
|
|
126
126
|
**Evento:** PostToolUse (tutti gli strumenti)
|
|
127
|
-
**Predefinito:**
|
|
127
|
+
**Predefinito:** Offusca i token JWT (tre segmenti base64url separati da `.`).
|
|
128
128
|
|
|
129
129
|
Nessun parametro.
|
|
130
130
|
|
|
@@ -133,13 +133,13 @@ Nessun parametro.
|
|
|
133
133
|
### `sanitize-api-keys`
|
|
134
134
|
|
|
135
135
|
**Evento:** PostToolUse (tutti gli strumenti)
|
|
136
|
-
**Predefinito:**
|
|
136
|
+
**Predefinito:** Offusca i formati comuni di chiavi API: Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), chiavi di accesso AWS (`AKIA`), chiavi Stripe (`sk_live_`, `sk_test_`) e chiavi API Google (`AIza`).
|
|
137
137
|
|
|
138
138
|
**Parametri:**
|
|
139
139
|
|
|
140
140
|
| Parametro | Tipo | Predefinito | Descrizione |
|
|
141
141
|
|-------|------|---------|-------------|
|
|
142
|
-
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` |
|
|
142
|
+
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Modelli regex aggiuntivi da trattare come segreti. |
|
|
143
143
|
|
|
144
144
|
**Esempio:**
|
|
145
145
|
|
|
@@ -148,8 +148,8 @@ Nessun parametro.
|
|
|
148
148
|
"policyParams": {
|
|
149
149
|
"sanitize-api-keys": {
|
|
150
150
|
"additionalPatterns": [
|
|
151
|
-
{ "regex": "myco_[A-Za-z0-9]{32}", "label": "
|
|
152
|
-
{ "regex": "pat_[0-9a-f]{40}", "label": "
|
|
151
|
+
{ "regex": "myco_[A-Za-z0-9]{32}", "label": "Chiave API interna MyCo" },
|
|
152
|
+
{ "regex": "pat_[0-9a-f]{40}", "label": "PAT interno" }
|
|
153
153
|
]
|
|
154
154
|
}
|
|
155
155
|
}
|
|
@@ -161,7 +161,7 @@ Nessun parametro.
|
|
|
161
161
|
### `sanitize-connection-strings`
|
|
162
162
|
|
|
163
163
|
**Evento:** PostToolUse (tutti gli strumenti)
|
|
164
|
-
**Predefinito:**
|
|
164
|
+
**Predefinito:** Offusca le stringhe di connessione del database che contengono credenziali incorporate (ad es. `postgresql://user:password@host/db`).
|
|
165
165
|
|
|
166
166
|
Nessun parametro.
|
|
167
167
|
|
|
@@ -170,7 +170,7 @@ Nessun parametro.
|
|
|
170
170
|
### `sanitize-private-key-content`
|
|
171
171
|
|
|
172
172
|
**Evento:** PostToolUse (tutti gli strumenti)
|
|
173
|
-
**Predefinito:**
|
|
173
|
+
**Predefinito:** Offusca i blocchi PEM (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, ecc.).
|
|
174
174
|
|
|
175
175
|
Nessun parametro.
|
|
176
176
|
|
|
@@ -179,7 +179,7 @@ Nessun parametro.
|
|
|
179
179
|
### `sanitize-bearer-tokens`
|
|
180
180
|
|
|
181
181
|
**Evento:** PostToolUse (tutti gli strumenti)
|
|
182
|
-
**Predefinito:**
|
|
182
|
+
**Predefinito:** Offusca gli header `Authorization: Bearer <token>` dove il token è 20 o più caratteri.
|
|
183
183
|
|
|
184
184
|
Nessun parametro.
|
|
185
185
|
|
|
@@ -194,7 +194,7 @@ Proteggi la configurazione dell'ambiente sensibile dalla lettura o dall'esposizi
|
|
|
194
194
|
**Evento:** PreToolUse (Bash, Read)
|
|
195
195
|
**Predefinito:** Nega la lettura dei file `.env` tramite `cat .env`, chiamate dello strumento Read con `.env` come percorso del file, ecc.
|
|
196
196
|
|
|
197
|
-
Non blocca `.envrc` o altri file
|
|
197
|
+
Non blocca `.envrc` o altri file correlati all'ambiente - solo file denominati esattamente `.env`.
|
|
198
198
|
|
|
199
199
|
Nessun parametro.
|
|
200
200
|
|
|
@@ -203,7 +203,7 @@ Nessun parametro.
|
|
|
203
203
|
### `protect-env-vars`
|
|
204
204
|
|
|
205
205
|
**Evento:** PreToolUse (Bash)
|
|
206
|
-
**Predefinito:** Nega i comandi che stampano
|
|
206
|
+
**Predefinito:** Nega i comandi che stampano variabili di ambiente: `printenv`, `env`, `echo $VAR`.
|
|
207
207
|
|
|
208
208
|
Nessun parametro.
|
|
209
209
|
|
|
@@ -211,12 +211,12 @@ Nessun parametro.
|
|
|
211
211
|
|
|
212
212
|
## Accesso ai file
|
|
213
213
|
|
|
214
|
-
Mantieni gli agenti
|
|
214
|
+
Mantieni gli agenti dentro i confini del progetto e lontani dai file sensibili.
|
|
215
215
|
|
|
216
216
|
### `block-read-outside-cwd`
|
|
217
217
|
|
|
218
218
|
**Evento:** PreToolUse (Read, Bash)
|
|
219
|
-
**Predefinito:** Nega la lettura dei file al di fuori della directory di lavoro corrente (
|
|
219
|
+
**Predefinito:** Nega la lettura dei file al di fuori della directory di lavoro corrente (la root del progetto).
|
|
220
220
|
|
|
221
221
|
**Parametri:**
|
|
222
222
|
|
|
@@ -241,13 +241,13 @@ Mantieni gli agenti che lavorano all'interno dei confini del progetto e lontani
|
|
|
241
241
|
### `block-secrets-write`
|
|
242
242
|
|
|
243
243
|
**Evento:** PreToolUse (Write, Edit)
|
|
244
|
-
**Predefinito:** Nega le scritture
|
|
244
|
+
**Predefinito:** Nega le scritture su file comunemente usati per chiavi private e certificati: `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
|
|
245
245
|
|
|
246
246
|
**Parametri:**
|
|
247
247
|
|
|
248
248
|
| Parametro | Tipo | Predefinito | Descrizione |
|
|
249
249
|
|-------|------|---------|-------------|
|
|
250
|
-
| `additionalPatterns` | `string[]` | `[]` |
|
|
250
|
+
| `additionalPatterns` | `string[]` | `[]` | Modelli di nome file aggiuntivi (stile glob) da bloccare. |
|
|
251
251
|
|
|
252
252
|
**Esempio:**
|
|
253
253
|
|
|
@@ -265,7 +265,7 @@ Mantieni gli agenti che lavorano all'interno dei confini del progetto e lontani
|
|
|
265
265
|
|
|
266
266
|
## Git
|
|
267
267
|
|
|
268
|
-
Previeni push
|
|
268
|
+
Previeni accidentali push, force-push e errori di branch difficili da annullare.
|
|
269
269
|
|
|
270
270
|
### `block-push-master`
|
|
271
271
|
|
|
@@ -276,7 +276,7 @@ Previeni push accidentali, force-push e errori di branch difficili da annullare.
|
|
|
276
276
|
|
|
277
277
|
| Parametro | Tipo | Predefinito | Descrizione |
|
|
278
278
|
|-------|------|---------|-------------|
|
|
279
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomi
|
|
279
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomi di branch che non possono essere pushati direttamente. |
|
|
280
280
|
|
|
281
281
|
**Esempio:**
|
|
282
282
|
|
|
@@ -291,7 +291,7 @@ Previeni push accidentali, force-push e errori di branch difficili da annullare.
|
|
|
291
291
|
```
|
|
292
292
|
|
|
293
293
|
<Tip>
|
|
294
|
-
Per consentire il push
|
|
294
|
+
Per consentire il push a tutti i branch (disabilitando effettivamente questa politica senza rimuoverla da `enabledPolicies`), imposta `protectedBranches: []`.
|
|
295
295
|
</Tip>
|
|
296
296
|
|
|
297
297
|
---
|
|
@@ -299,13 +299,13 @@ Per consentire il push in tutti i branch (disabilitando effettivamente questa po
|
|
|
299
299
|
### `block-work-on-main`
|
|
300
300
|
|
|
301
301
|
**Evento:** PreToolUse (Bash)
|
|
302
|
-
**Predefinito:** Nega il checkout
|
|
302
|
+
**Predefinito:** Nega il checkout dei branch `main` o `master` direttamente.
|
|
303
303
|
|
|
304
304
|
**Parametri:**
|
|
305
305
|
|
|
306
306
|
| Parametro | Tipo | Predefinito | Descrizione |
|
|
307
307
|
|-------|------|---------|-------------|
|
|
308
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomi
|
|
308
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Nomi di branch che non possono essere controllati direttamente. |
|
|
309
309
|
|
|
310
310
|
---
|
|
311
311
|
|
|
@@ -314,13 +314,13 @@ Per consentire il push in tutti i branch (disabilitando effettivamente questa po
|
|
|
314
314
|
**Evento:** PreToolUse (Bash)
|
|
315
315
|
**Predefinito:** Nega `git push --force` e `git push -f`.
|
|
316
316
|
|
|
317
|
-
Nessun parametro specifico della politica. Usa il [`hint`](/it/configuration#hint-cross-cutting)
|
|
317
|
+
Nessun parametro specifico della politica. Usa il [`hint`](/it/configuration#hint-cross-cutting) trasversale per suggerire alternative:
|
|
318
318
|
|
|
319
319
|
```json
|
|
320
320
|
{
|
|
321
321
|
"policyParams": {
|
|
322
322
|
"block-force-push": {
|
|
323
|
-
"hint": "Crea un nuovo branch dal tuo HEAD attuale (ad es. `git checkout -b <new-branch>`) e
|
|
323
|
+
"hint": "Crea un nuovo branch dal tuo HEAD attuale (ad es. `git checkout -b <new-branch>`) e fai il push di quello invece."
|
|
324
324
|
}
|
|
325
325
|
}
|
|
326
326
|
}
|
|
@@ -349,7 +349,7 @@ Nessun parametro.
|
|
|
349
349
|
### `warn-all-files-staged`
|
|
350
350
|
|
|
351
351
|
**Evento:** PreToolUse (Bash)
|
|
352
|
-
**Predefinito:** Istruisce Claude a rivedere
|
|
352
|
+
**Predefinito:** Istruisce Claude a rivedere cosa sta preparando quando esegue `git add -A` o `git add .`. Non blocca il comando.
|
|
353
353
|
|
|
354
354
|
Nessun parametro.
|
|
355
355
|
|
|
@@ -357,12 +357,12 @@ Nessun parametro.
|
|
|
357
357
|
|
|
358
358
|
## Database
|
|
359
359
|
|
|
360
|
-
|
|
360
|
+
Rileva le operazioni SQL distruttive prima che vengano eseguite sul tuo database.
|
|
361
361
|
|
|
362
362
|
### `warn-destructive-sql`
|
|
363
363
|
|
|
364
364
|
**Evento:** PreToolUse (Bash)
|
|
365
|
-
**Predefinito:** Istruisce Claude a confermare prima di eseguire SQL contenente `DROP TABLE`, `DROP DATABASE
|
|
365
|
+
**Predefinito:** Istruisce Claude a confermare prima di eseguire SQL contenente `DROP TABLE`, `DROP DATABASE` o `DELETE` senza una clausola `WHERE`.
|
|
366
366
|
|
|
367
367
|
Nessun parametro.
|
|
368
368
|
|
|
@@ -371,7 +371,7 @@ Nessun parametro.
|
|
|
371
371
|
### `warn-schema-alteration`
|
|
372
372
|
|
|
373
373
|
**Evento:** PreToolUse (Bash)
|
|
374
|
-
**Predefinito:** Istruisce Claude a confermare prima di eseguire istruzioni `ALTER TABLE`.
|
|
374
|
+
**Predefinito:** Istruisce Claude a confermare prima di eseguire le istruzioni `ALTER TABLE`.
|
|
375
375
|
|
|
376
376
|
Nessun parametro.
|
|
377
377
|
|
|
@@ -405,7 +405,7 @@ Fornisci agli agenti contesto aggiuntivo prima di operazioni potenzialmente risc
|
|
|
405
405
|
```
|
|
406
406
|
|
|
407
407
|
<Note>
|
|
408
|
-
|
|
408
|
+
L'handler dell'hook applica un limite stdin di 1 MB sui payload. Per testare questa politica con contenuti piccoli, imposta `thresholdKb` a un valore ben al di sotto di 1024.
|
|
409
409
|
</Note>
|
|
410
410
|
|
|
411
411
|
---
|
|
@@ -422,7 +422,7 @@ Nessun parametro.
|
|
|
422
422
|
### `warn-background-process`
|
|
423
423
|
|
|
424
424
|
**Evento:** PreToolUse (Bash)
|
|
425
|
-
**Predefinito:** Istruisce Claude
|
|
425
|
+
**Predefinito:** Istruisce Claude a stare attento quando avvia processi in background tramite `nohup`, `&`, `disown` o `screen`.
|
|
426
426
|
|
|
427
427
|
Nessun parametro.
|
|
428
428
|
|
|
@@ -431,7 +431,7 @@ Nessun parametro.
|
|
|
431
431
|
### `warn-global-package-install`
|
|
432
432
|
|
|
433
433
|
**Evento:** PreToolUse (Bash)
|
|
434
|
-
**Predefinito:** Istruisce Claude a confermare prima di eseguire `npm install -g`, `yarn global add
|
|
434
|
+
**Predefinito:** Istruisce Claude a confermare prima di eseguire `npm install -g`, `yarn global add` o `pip install` senza un ambiente virtuale.
|
|
435
435
|
|
|
436
436
|
Nessun parametro.
|
|
437
437
|
|
|
@@ -439,21 +439,21 @@ Nessun parametro.
|
|
|
439
439
|
|
|
440
440
|
## Gestori di pacchetti
|
|
441
441
|
|
|
442
|
-
Applica
|
|
442
|
+
Applica quali gestori di pacchetti l'agente può usare.
|
|
443
443
|
|
|
444
444
|
### `prefer-package-manager`
|
|
445
445
|
|
|
446
446
|
**Evento:** PreToolUse (Bash)
|
|
447
|
-
**Predefinito:** Disabilitato. Quando abilitato, blocca qualsiasi comando del gestore di pacchetti non nell'elenco `allowed` e
|
|
447
|
+
**Predefinito:** Disabilitato. Quando abilitato, blocca qualsiasi comando del gestore di pacchetti non nell'elenco `allowed` e comunica a Claude di riscrivere il comando usando un gestore consentito.
|
|
448
448
|
|
|
449
449
|
Rileva: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
|
|
450
450
|
|
|
451
451
|
| Parametro | Tipo | Predefinito | Descrizione |
|
|
452
452
|
|-----------|------|---------|-------------|
|
|
453
|
-
| `allowed` | string[] | `[]` | Nomi dei gestori di pacchetti consentiti. Qualsiasi gestore rilevato non in questo elenco viene bloccato. Quando vuoto, la politica
|
|
453
|
+
| `allowed` | string[] | `[]` | Nomi dei gestori di pacchetti consentiti. Qualsiasi gestore rilevato non in questo elenco viene bloccato. Quando vuoto, la politica non esegue alcuna operazione. |
|
|
454
454
|
| `blocked` | string[] | `[]` | Nomi di gestori aggiuntivi da bloccare oltre all'elenco integrato (ad es. `['pdm', 'pipx']`). |
|
|
455
455
|
|
|
456
|
-
L'elenco di
|
|
456
|
+
L'elenco di blocco integrato include: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. Usa `blocked` per aggiungere gestori non in questo elenco.
|
|
457
457
|
|
|
458
458
|
**Configurazione di esempio:**
|
|
459
459
|
|
|
@@ -469,33 +469,33 @@ L'elenco di blocchi integrato copre: pip, pip3, npm, npx, yarn, pnpm, pnpx, bun,
|
|
|
469
469
|
}
|
|
470
470
|
```
|
|
471
471
|
|
|
472
|
-
Con questa configurazione, `pip install flask`
|
|
472
|
+
Con questa configurazione, sia `pip install flask` che `pdm install flask` vengono negati con un messaggio che comunica a Claude di usare `uv` o `bun` invece. Comandi come `uv pip install flask` sono consentiti perché `uv` è nella whitelist e viene verificato per primo.
|
|
473
473
|
|
|
474
474
|
---
|
|
475
475
|
|
|
476
476
|
## Comportamento dell'IA
|
|
477
477
|
|
|
478
|
-
Rileva quando gli agenti
|
|
478
|
+
Rileva quando gli agenti si bloccano o si comportano in modo inaspettato.
|
|
479
479
|
|
|
480
480
|
### `warn-repeated-tool-calls`
|
|
481
481
|
|
|
482
482
|
**Evento:** PreToolUse (tutti gli strumenti)
|
|
483
|
-
**Predefinito:** Istruisce Claude a riconsiderare quando lo stesso strumento viene chiamato 3 o più volte con parametri identici
|
|
483
|
+
**Predefinito:** Istruisce Claude a riconsiderare quando lo stesso strumento viene chiamato 3 o più volte con parametri identici - un segno comune che l'agente è bloccato in un ciclo.
|
|
484
484
|
|
|
485
485
|
Nessun parametro.
|
|
486
486
|
|
|
487
487
|
---
|
|
488
488
|
|
|
489
|
-
##
|
|
489
|
+
## Workflow
|
|
490
490
|
|
|
491
|
-
Applica un
|
|
491
|
+
Applica un disciplinato workflow di fine sessione. Queste politiche si attivano sull'evento **Stop** e negano a Claude di fermarsi fino a quando ogni condizione non è soddisfatta. Seguono una catena di dipendenze naturale: commit → push → PR → CI. Se una politica nega, le politiche successive nella catena vengono saltate (la negazione interrompe la catena).
|
|
492
492
|
|
|
493
|
-
Tutte le politiche di
|
|
493
|
+
Tutte le politiche di workflow sono **fail-open**: se lo strumento richiesto non è disponibile (ad es. `gh` non installato, nessun remote git), la politica consente con un messaggio informativo che spiega perché il controllo è stato saltato.
|
|
494
494
|
|
|
495
495
|
### `require-commit-before-stop`
|
|
496
496
|
|
|
497
497
|
**Evento:** Stop
|
|
498
|
-
**Predefinito:** Nega l'arresto quando ci sono modifiche non
|
|
498
|
+
**Predefinito:** Nega l'arresto quando ci sono modifiche non committate (file modificati, preparati o non tracciati). Restituisce un messaggio informativo quando la directory di lavoro è pulita.
|
|
499
499
|
|
|
500
500
|
Nessun parametro.
|
|
501
501
|
|
|
@@ -504,13 +504,13 @@ Nessun parametro.
|
|
|
504
504
|
### `require-push-before-stop`
|
|
505
505
|
|
|
506
506
|
**Evento:** Stop
|
|
507
|
-
**Predefinito:** Nega l'arresto quando ci sono commit non pushati o quando il branch attuale non ha un remote branch
|
|
507
|
+
**Predefinito:** Nega l'arresto quando ci sono commit non pushati o quando il branch attuale non ha un remote tracking branch. Suggerisce `git push -u` per creare un tracking branch se necessario. Fallisce open se nessun remote è configurato.
|
|
508
508
|
|
|
509
509
|
**Parametri:**
|
|
510
510
|
|
|
511
511
|
| Parametro | Tipo | Predefinito | Descrizione |
|
|
512
512
|
|-------|------|---------|-------------|
|
|
513
|
-
| `remote` | `string` | `"origin"` | Nome del remote
|
|
513
|
+
| `remote` | `string` | `"origin"` | Nome del remote su cui fare il push. |
|
|
514
514
|
|
|
515
515
|
**Esempio:**
|
|
516
516
|
|
|
@@ -529,14 +529,14 @@ Nessun parametro.
|
|
|
529
529
|
### `require-pr-before-stop`
|
|
530
530
|
|
|
531
531
|
**Evento:** Stop
|
|
532
|
-
**Predefinito:** Nega l'arresto quando nessuna pull request esiste per il branch attuale, o quando
|
|
532
|
+
**Predefinito:** Nega l'arresto quando nessuna pull request esiste per il branch attuale, o quando il PR esistente è chiuso/mergiato. Istruisce Claude a creare un PR con `gh pr create`.
|
|
533
533
|
|
|
534
534
|
Nessun parametro.
|
|
535
535
|
|
|
536
536
|
<Note>
|
|
537
537
|
Questa politica richiede che [GitHub CLI](https://cli.github.com/) (`gh`) sia installato e autenticato.
|
|
538
|
-
Esegui `gh auth login` con un personal access token che ha scope `repo` per l'accesso in lettura alle
|
|
539
|
-
pull request. Se `gh` non è installato o non autenticato, la politica fallisce
|
|
538
|
+
Esegui `gh auth login` con un personal access token che ha lo scope `repo` per l'accesso in lettura alle
|
|
539
|
+
pull request. Se `gh` non è installato o non autenticato, la politica fallisce open e segnala il motivo a Claude.
|
|
540
540
|
</Note>
|
|
541
541
|
|
|
542
542
|
---
|
|
@@ -544,23 +544,23 @@ pull request. Se `gh` non è installato o non autenticato, la politica fallisce
|
|
|
544
544
|
### `require-ci-green-before-stop`
|
|
545
545
|
|
|
546
546
|
**Evento:** Stop
|
|
547
|
-
**Predefinito:** Nega l'arresto quando i controlli CI
|
|
547
|
+
**Predefinito:** Nega l'arresto quando i controlli CI sono in fallimento o ancora in esecuzione nel branch attuale. Verifica sia i workflow GitHub Actions che i controlli bot di terze parti (ad es. CodeRabbit, SonarCloud, Codecov). Tratta le conclusioni `skipped` e `cancelled` come successo. Restituisce un messaggio informativo quando tutti i controlli passano.
|
|
548
548
|
|
|
549
549
|
Nessun parametro.
|
|
550
550
|
|
|
551
551
|
<Note>
|
|
552
552
|
Questa politica richiede che [GitHub CLI](https://cli.github.com/) (`gh`) sia installato e autenticato.
|
|
553
|
-
Esegui `gh auth login` con un personal access token che ha scope `repo` per l'accesso in lettura ai
|
|
554
|
-
|
|
553
|
+
Esegui `gh auth login` con un personal access token che ha lo scope `repo` per l'accesso in lettura ai
|
|
554
|
+
workflow Actions e all'API Checks. Se `gh` non è installato o non autenticato, la politica fallisce open e segnala il motivo a Claude.
|
|
555
555
|
</Note>
|
|
556
556
|
|
|
557
557
|
---
|
|
558
558
|
|
|
559
559
|
---
|
|
560
560
|
|
|
561
|
-
## Disabilitazione
|
|
561
|
+
## Disabilitazione di singole politiche
|
|
562
562
|
|
|
563
|
-
Rimuovi una politica specifica da `enabledPolicies` nella tua configurazione, o disattivala nella scheda
|
|
563
|
+
Rimuovi una politica specifica da `enabledPolicies` nella tua configurazione, o disattivala nella scheda Policies della dashboard.
|
|
564
564
|
|
|
565
565
|
```json
|
|
566
566
|
{
|