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.
- package/.next/standalone/.failproofai/policies/review-policies.mjs +112 -0
- package/.next/standalone/.failproofai/policies/workflow-policies.mjs +2 -1
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +5 -5
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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/build-manifest.json +2 -2
- 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]__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]__0okos0k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0a~g15g._.js → [root-of-the-server]__0rh.18_._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +6 -6
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0qn95h3._.js → [root-of-the-server]__0~kmh8w._.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 +5 -5
- 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/{0sme4lkv.tgn-.js → 01b~z8f1ws0rk.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0lgbwkfqmnsmc.js → 03rz6ykw-a2xi.js} +1 -1
- package/.next/standalone/.next/static/chunks/{17manv47o-~wp.js → 08t08igdql9yt.js} +1 -1
- package/.next/standalone/.next/static/chunks/09_k80d~cq2wg.js +4 -0
- package/.next/standalone/.next/static/chunks/{0ksdlt_1hucdm.js → 0bvhsa6zva2o..js} +1 -1
- package/.next/standalone/.next/static/chunks/{09ikntpt2-o9b.js → 0gbf4cphy8ksq.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0yumumfzx_f27.js → 0v.yd0kg_ld3r.js} +1 -1
- package/.next/standalone/.next/static/chunks/{13juklu.vksks.js → 0wlyoif4_kj_t.js} +1 -1
- package/.next/standalone/.next/static/chunks/{09e7drilkf1sn.js → 12simlrcfk3g2.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0em7tspi4kylh.js → 12~yi9oj8av8p.js} +2 -2
- package/.next/standalone/.next/static/chunks/{turbopack-0r26pc8h0y_-e.js → turbopack-0o7k.hakttp4k.js} +1 -1
- package/.next/standalone/CHANGELOG.md +13 -0
- package/.next/standalone/README.md +2 -2
- package/.next/standalone/bun.lock +43 -85
- package/.next/standalone/dist/cli.mjs +107 -3
- package/.next/standalone/docs/ar/architecture.mdx +65 -64
- package/.next/standalone/docs/ar/configuration.mdx +42 -42
- package/.next/standalone/docs/ar/custom-policies.mdx +62 -64
- package/.next/standalone/docs/built-in-policies.mdx +37 -0
- package/.next/standalone/docs/custom-policies.mdx +1 -1
- package/.next/standalone/docs/de/architecture.mdx +92 -92
- package/.next/standalone/docs/de/configuration.mdx +34 -34
- package/.next/standalone/docs/de/custom-policies.mdx +49 -50
- package/.next/standalone/docs/es/architecture.mdx +72 -72
- package/.next/standalone/docs/es/configuration.mdx +25 -25
- package/.next/standalone/docs/es/custom-policies.mdx +48 -49
- package/.next/standalone/docs/examples.mdx +54 -0
- package/.next/standalone/docs/fr/architecture.mdx +53 -53
- package/.next/standalone/docs/fr/configuration.mdx +25 -25
- package/.next/standalone/docs/fr/custom-policies.mdx +42 -43
- package/.next/standalone/docs/getting-started.mdx +52 -0
- package/.next/standalone/docs/he/architecture.mdx +66 -66
- package/.next/standalone/docs/he/configuration.mdx +53 -52
- package/.next/standalone/docs/he/custom-policies.mdx +72 -73
- package/.next/standalone/docs/hi/architecture.mdx +106 -106
- package/.next/standalone/docs/hi/configuration.mdx +39 -39
- package/.next/standalone/docs/hi/custom-policies.mdx +75 -76
- package/.next/standalone/docs/i18n/README.ar.md +66 -66
- package/.next/standalone/docs/i18n/README.de.md +38 -38
- package/.next/standalone/docs/i18n/README.es.md +38 -38
- package/.next/standalone/docs/i18n/README.fr.md +42 -42
- package/.next/standalone/docs/i18n/README.he.md +67 -67
- package/.next/standalone/docs/i18n/README.hi.md +70 -70
- package/.next/standalone/docs/i18n/README.it.md +62 -62
- package/.next/standalone/docs/i18n/README.ja.md +54 -54
- package/.next/standalone/docs/i18n/README.ko.md +58 -58
- package/.next/standalone/docs/i18n/README.pt-br.md +43 -43
- package/.next/standalone/docs/i18n/README.ru.md +69 -69
- package/.next/standalone/docs/i18n/README.tr.md +76 -76
- package/.next/standalone/docs/i18n/README.vi.md +70 -70
- package/.next/standalone/docs/i18n/README.zh.md +52 -52
- package/.next/standalone/docs/it/architecture.mdx +54 -53
- package/.next/standalone/docs/it/configuration.mdx +44 -45
- package/.next/standalone/docs/it/custom-policies.mdx +76 -78
- package/.next/standalone/docs/ja/architecture.mdx +93 -93
- package/.next/standalone/docs/ja/configuration.mdx +47 -47
- package/.next/standalone/docs/ja/custom-policies.mdx +62 -63
- package/.next/standalone/docs/ko/architecture.mdx +66 -66
- package/.next/standalone/docs/ko/configuration.mdx +35 -35
- package/.next/standalone/docs/ko/custom-policies.mdx +71 -72
- package/.next/standalone/docs/pt-br/architecture.mdx +55 -55
- package/.next/standalone/docs/pt-br/configuration.mdx +35 -35
- package/.next/standalone/docs/pt-br/custom-policies.mdx +60 -61
- package/.next/standalone/docs/ru/architecture.mdx +59 -60
- package/.next/standalone/docs/ru/configuration.mdx +52 -53
- package/.next/standalone/docs/ru/custom-policies.mdx +68 -69
- package/.next/standalone/docs/tr/architecture.mdx +124 -124
- package/.next/standalone/docs/tr/configuration.mdx +45 -46
- package/.next/standalone/docs/tr/custom-policies.mdx +75 -75
- package/.next/standalone/docs/vi/architecture.mdx +65 -64
- package/.next/standalone/docs/vi/configuration.mdx +41 -41
- package/.next/standalone/docs/vi/custom-policies.mdx +68 -69
- package/.next/standalone/docs/zh/architecture.mdx +67 -67
- package/.next/standalone/docs/zh/configuration.mdx +34 -34
- package/.next/standalone/docs/zh/custom-policies.mdx +53 -54
- package/.next/standalone/node_modules/@next/env/package.json +1 -1
- package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
- package/.next/standalone/node_modules/next/dist/lib/patch-incorrect-lockfile.js +3 -3
- package/.next/standalone/node_modules/next/dist/server/config-schema.js +10 -2
- package/.next/standalone/node_modules/next/dist/server/config.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +2 -2
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/render.js +27 -20
- package/.next/standalone/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/swc-load-failure.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/.next/standalone/node_modules/next/package.json +15 -15
- package/.next/standalone/package.json +2 -2
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/hooks/builtin-policies.ts +131 -0
- package/README.md +2 -2
- package/dist/cli.mjs +107 -3
- package/package.json +2 -2
- package/src/hooks/builtin-policies.ts +131 -0
- package/.next/standalone/.next/static/chunks/0_yayar~bpphd.js +0 -4
- /package/.next/standalone/.next/static/{hYQM6iCWnF1W5XDpsIRhV → CkmOT-ZvDN-sVULinGVKT}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{hYQM6iCWnF1W5XDpsIRhV → CkmOT-ZvDN-sVULinGVKT}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{hYQM6iCWnF1W5XDpsIRhV → CkmOT-ZvDN-sVULinGVKT}/_ssgManifest.js +0 -0
|
@@ -23,21 +23,21 @@
|
|
|
23
23
|
|
|
24
24
|
**Traducciones**: [简体中文](docs/i18n/README.zh.md) | [日本語](docs/i18n/README.ja.md) | [한국어](docs/i18n/README.ko.md) | [Español](docs/i18n/README.es.md) | [Português](docs/i18n/README.pt-br.md) | [Deutsch](docs/i18n/README.de.md) | [Français](docs/i18n/README.fr.md) | [Русский](docs/i18n/README.ru.md) | [हिन्दी](docs/i18n/README.hi.md) | [Türkçe](docs/i18n/README.tr.md) | [Tiếng Việt](docs/i18n/README.vi.md) | [Italiano](docs/i18n/README.it.md) | [العربية](docs/i18n/README.ar.md) | [עברית](docs/i18n/README.he.md)
|
|
25
25
|
|
|
26
|
-
La forma más sencilla de gestionar políticas que mantienen
|
|
26
|
+
La forma más sencilla de gestionar políticas que mantienen tus agentes de IA fiables, centrados en su tarea y funcionando de forma autónoma - para **Claude Code** y el **Agents SDK**.
|
|
27
27
|
|
|
28
|
-
- **30 políticas integradas**
|
|
29
|
-
- **Políticas personalizadas**
|
|
30
|
-
- **Configuración sencilla**
|
|
31
|
-
- **Monitor de agentes**
|
|
28
|
+
- **30 políticas integradas** - Detecta los modos de fallo más comunes de los agentes desde el primer momento. Bloquea comandos destructivos, previene la filtración de secretos, mantiene a los agentes dentro de los límites del proyecto, detecta bucles y mucho más.
|
|
29
|
+
- **Políticas personalizadas** - Escribe tus propias reglas de fiabilidad en JavaScript. Usa la API `allow`/`deny`/`instruct` para aplicar convenciones, prevenir la deriva, controlar operaciones o integrarte con sistemas externos.
|
|
30
|
+
- **Configuración sencilla** - Ajusta cualquier política sin escribir código. Define listas de permisos, ramas protegidas y umbrales por proyecto o de forma global. La configuración de tres ámbitos se fusiona automáticamente.
|
|
31
|
+
- **Monitor de agentes** - Observa qué hicieron tus agentes mientras no estabas. Navega por las sesiones, inspecciona cada llamada a herramientas y revisa exactamente dónde se activaron las políticas.
|
|
32
32
|
|
|
33
|
-
Todo se ejecuta localmente
|
|
33
|
+
Todo se ejecuta localmente: ningún dato sale de tu máquina.
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
37
37
|
## Requisitos
|
|
38
38
|
|
|
39
39
|
- Node.js >= 20.9.0
|
|
40
|
-
- Bun >= 1.3.0 (opcional
|
|
40
|
+
- Bun >= 1.3.0 (opcional - solo necesario para desarrollo / compilación desde el código fuente)
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
@@ -61,15 +61,15 @@ failproofai policies --install
|
|
|
61
61
|
|
|
62
62
|
Escribe entradas de hooks en `~/.claude/settings.json`. A partir de ahora, Claude Code invocará failproofai antes y después de cada llamada a herramientas.
|
|
63
63
|
|
|
64
|
-
### 2.
|
|
64
|
+
### 2. Lanzar el panel de control
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
67
|
failproofai
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
Abre `http://localhost:8020`
|
|
70
|
+
Abre `http://localhost:8020` - navega por sesiones, inspecciona registros y gestiona políticas.
|
|
71
71
|
|
|
72
|
-
### 3.
|
|
72
|
+
### 3. Verificar qué está activo
|
|
73
73
|
|
|
74
74
|
```bash
|
|
75
75
|
failproofai policies
|
|
@@ -79,10 +79,10 @@ failproofai policies
|
|
|
79
79
|
|
|
80
80
|
## Instalación de políticas
|
|
81
81
|
|
|
82
|
-
###
|
|
82
|
+
### Ámbitos
|
|
83
83
|
|
|
84
|
-
|
|
|
85
|
-
|
|
84
|
+
| Ámbito | Comando | Dónde escribe |
|
|
85
|
+
|--------|---------|---------------|
|
|
86
86
|
| Global (por defecto) | `failproofai policies --install` | `~/.claude/settings.json` |
|
|
87
87
|
| Proyecto | `failproofai policies --install --scope project` | `.claude/settings.json` |
|
|
88
88
|
| Local | `failproofai policies --install --scope local` | `.claude/settings.local.json` |
|
|
@@ -97,7 +97,7 @@ failproofai policies --install block-sudo block-rm-rf sanitize-api-keys
|
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
99
|
failproofai policies --uninstall
|
|
100
|
-
# o para un
|
|
100
|
+
# o para un ámbito específico:
|
|
101
101
|
failproofai policies --uninstall --scope project
|
|
102
102
|
```
|
|
103
103
|
|
|
@@ -105,7 +105,7 @@ failproofai policies --uninstall --scope project
|
|
|
105
105
|
|
|
106
106
|
## Configuración
|
|
107
107
|
|
|
108
|
-
La configuración de políticas
|
|
108
|
+
La configuración de políticas reside en `~/.failproofai/policies-config.json` (global) o en `.failproofai/policies-config.json` dentro de tu proyecto (por proyecto).
|
|
109
109
|
|
|
110
110
|
```json
|
|
111
111
|
{
|
|
@@ -138,7 +138,7 @@ La configuración de políticas se encuentra en `~/.failproofai/policies-config.
|
|
|
138
138
|
}
|
|
139
139
|
```
|
|
140
140
|
|
|
141
|
-
**Los tres
|
|
141
|
+
**Los tres ámbitos de configuración** se fusionan automáticamente (proyecto → local → global). Consulta [docs/configuration.mdx](docs/configuration.mdx) para conocer las reglas de fusión completas.
|
|
142
142
|
|
|
143
143
|
---
|
|
144
144
|
|
|
@@ -146,16 +146,16 @@ La configuración de políticas se encuentra en `~/.failproofai/policies-config.
|
|
|
146
146
|
|
|
147
147
|
| Política | Descripción | Configurable |
|
|
148
148
|
|----------|-------------|:---:|
|
|
149
|
-
| `block-sudo` | Evita que los agentes ejecuten comandos del sistema con privilegios | `allowPatterns` |
|
|
150
|
-
| `block-rm-rf` | Previene la eliminación accidental
|
|
151
|
-
| `block-curl-pipe-sh` | Evita que los agentes
|
|
149
|
+
| `block-sudo` | Evita que los agentes ejecuten comandos del sistema con privilegios elevados | `allowPatterns` |
|
|
150
|
+
| `block-rm-rf` | Previene la eliminación recursiva accidental de archivos | `allowPaths` |
|
|
151
|
+
| `block-curl-pipe-sh` | Evita que los agentes pasen scripts no confiables a la shell mediante tuberías | |
|
|
152
152
|
| `block-failproofai-commands` | Previene la autodesinstalación | |
|
|
153
|
-
| `sanitize-jwt` |
|
|
154
|
-
| `sanitize-api-keys` |
|
|
155
|
-
| `sanitize-connection-strings` |
|
|
153
|
+
| `sanitize-jwt` | Impide que los tokens JWT se filtren al contexto del agente | |
|
|
154
|
+
| `sanitize-api-keys` | Impide que las claves API se filtren al contexto del agente | `additionalPatterns` |
|
|
155
|
+
| `sanitize-connection-strings` | Impide que las credenciales de base de datos se filtren al contexto del agente | |
|
|
156
156
|
| `sanitize-private-key-content` | Redacta bloques de clave privada PEM de la salida | |
|
|
157
157
|
| `sanitize-bearer-tokens` | Redacta tokens Bearer de Authorization de la salida | |
|
|
158
|
-
| `block-env-files` |
|
|
158
|
+
| `block-env-files` | Evita que los agentes lean archivos .env | |
|
|
159
159
|
| `protect-env-vars` | Evita que los agentes impriman variables de entorno | |
|
|
160
160
|
| `block-read-outside-cwd` | Mantiene a los agentes dentro de los límites del proyecto | `allowPaths` |
|
|
161
161
|
| `block-secrets-write` | Previene escrituras en archivos de clave privada y certificados | `additionalPatterns` |
|
|
@@ -165,8 +165,8 @@ La configuración de políticas se encuentra en `~/.failproofai/policies-config.
|
|
|
165
165
|
| `warn-git-amend` | Recuerda a los agentes antes de modificar commits | |
|
|
166
166
|
| `warn-git-stash-drop` | Recuerda a los agentes antes de eliminar stashes | |
|
|
167
167
|
| `warn-all-files-staged` | Detecta un `git add -A` accidental | |
|
|
168
|
-
| `warn-destructive-sql` | Detecta
|
|
169
|
-
| `warn-schema-alteration` | Detecta ALTER TABLE antes de
|
|
168
|
+
| `warn-destructive-sql` | Detecta DROP/DELETE en SQL antes de la ejecución | |
|
|
169
|
+
| `warn-schema-alteration` | Detecta ALTER TABLE antes de la ejecución | |
|
|
170
170
|
| `warn-large-file-write` | Detecta escrituras de archivos inesperadamente grandes | `thresholdKb` |
|
|
171
171
|
| `warn-package-publish` | Detecta un `npm publish` accidental | |
|
|
172
172
|
| `warn-background-process` | Detecta lanzamientos no intencionados de procesos en segundo plano | |
|
|
@@ -179,7 +179,7 @@ Detalles completos de políticas y referencia de parámetros: [docs/built-in-pol
|
|
|
179
179
|
|
|
180
180
|
## Políticas personalizadas
|
|
181
181
|
|
|
182
|
-
Escribe tus propias políticas para mantener a los agentes fiables y
|
|
182
|
+
Escribe tus propias políticas para mantener a los agentes fiables y centrados en su tarea:
|
|
183
183
|
|
|
184
184
|
```js
|
|
185
185
|
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
@@ -217,35 +217,35 @@ failproofai policies --install --custom ./my-policies.js
|
|
|
217
217
|
| Campo | Tipo | Descripción |
|
|
218
218
|
|-------|------|-------------|
|
|
219
219
|
| `eventType` | `string` | `"PreToolUse"`, `"PostToolUse"`, `"Notification"`, `"Stop"` |
|
|
220
|
-
| `toolName` | `string` | Herramienta
|
|
220
|
+
| `toolName` | `string` | Herramienta siendo llamada (`"Bash"`, `"Write"`, `"Read"`, …) |
|
|
221
221
|
| `toolInput` | `object` | Parámetros de entrada de la herramienta |
|
|
222
222
|
| `payload` | `object` | Payload completo del evento en bruto |
|
|
223
223
|
| `session.cwd` | `string` | Directorio de trabajo de la sesión de Claude Code |
|
|
224
224
|
| `session.sessionId` | `string` | Identificador de sesión |
|
|
225
225
|
| `session.transcriptPath` | `string` | Ruta al archivo de transcripción de la sesión |
|
|
226
226
|
|
|
227
|
-
Los hooks personalizados admiten importaciones locales transitivas, async/await y acceso a `process.env`. Los errores son fail-open (se registran en `~/.failproofai/hook.log
|
|
227
|
+
Los hooks personalizados admiten importaciones locales transitivas, async/await y acceso a `process.env`. Los errores son fail-open (se registran en `~/.failproofai/hook.log` y las políticas integradas continúan). Consulta [docs/custom-hooks.mdx](docs/custom-hooks.mdx) para la guía completa.
|
|
228
228
|
|
|
229
229
|
### Políticas basadas en convenciones
|
|
230
230
|
|
|
231
|
-
Coloca archivos `*policies.{js,mjs,ts}` en `.failproofai/policies/` y se cargarán automáticamente — sin necesidad de
|
|
231
|
+
Coloca archivos `*policies.{js,mjs,ts}` en `.failproofai/policies/` y se cargarán automáticamente — sin necesidad de la opción `--custom` ni cambios en la configuración. Funciona como los git hooks: coloca un archivo y listo.
|
|
232
232
|
|
|
233
233
|
```text
|
|
234
|
-
#
|
|
234
|
+
# A nivel de proyecto — incluido en git, compartido con el equipo
|
|
235
235
|
.failproofai/policies/security-policies.mjs
|
|
236
236
|
.failproofai/policies/workflow-policies.mjs
|
|
237
237
|
|
|
238
|
-
#
|
|
238
|
+
# A nivel de usuario — personal, se aplica a todos los proyectos
|
|
239
239
|
~/.failproofai/policies/my-policies.mjs
|
|
240
240
|
```
|
|
241
241
|
|
|
242
|
-
Ambos niveles se cargan (unión). Los archivos se cargan
|
|
242
|
+
Ambos niveles se cargan (unión). Los archivos se cargan alfabéticamente dentro de cada directorio. Usa prefijos como `01-`, `02-`, etc. para controlar el orden. Consulta [examples/convention-policies/](examples/convention-policies/) para ver ejemplos listos para usar.
|
|
243
243
|
|
|
244
244
|
---
|
|
245
245
|
|
|
246
246
|
## Telemetría
|
|
247
247
|
|
|
248
|
-
Failproof AI recopila telemetría de uso anónima
|
|
248
|
+
Failproof AI recopila telemetría de uso anónima a través de PostHog para comprender el uso de las funciones. Nunca se envía el contenido de las sesiones, nombres de archivos, entradas de herramientas ni información personal.
|
|
249
249
|
|
|
250
250
|
Para desactivarla:
|
|
251
251
|
|
|
@@ -259,11 +259,11 @@ FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
|
|
|
259
259
|
|
|
260
260
|
| Guía | Descripción |
|
|
261
261
|
|------|-------------|
|
|
262
|
-
| [Primeros pasos](docs/getting-started.mdx) | Instalación y pasos
|
|
262
|
+
| [Primeros pasos](docs/getting-started.mdx) | Instalación y primeros pasos |
|
|
263
263
|
| [Políticas integradas](docs/built-in-policies.mdx) | Las 30 políticas integradas con sus parámetros |
|
|
264
264
|
| [Políticas personalizadas](docs/custom-policies.mdx) | Cómo escribir tus propias políticas |
|
|
265
|
-
| [Configuración](docs/configuration.mdx) | Formato del archivo de configuración y fusión de
|
|
266
|
-
| [Panel de control](docs/dashboard.mdx) |
|
|
265
|
+
| [Configuración](docs/configuration.mdx) | Formato del archivo de configuración y fusión de ámbitos |
|
|
266
|
+
| [Panel de control](docs/dashboard.mdx) | Monitorea sesiones y revisa la actividad de las políticas |
|
|
267
267
|
| [Arquitectura](docs/architecture.mdx) | Cómo funciona el sistema de hooks |
|
|
268
268
|
| [Pruebas](docs/testing.mdx) | Ejecutar pruebas y escribir nuevas |
|
|
269
269
|
|
|
@@ -282,9 +282,9 @@ docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
|
|
|
282
282
|
|
|
283
283
|
---
|
|
284
284
|
|
|
285
|
-
## Nota para colaboradores de failproofai
|
|
285
|
+
## Nota para los colaboradores de failproofai
|
|
286
286
|
|
|
287
|
-
El archivo `.claude/settings.json` de este repositorio
|
|
287
|
+
El archivo `.claude/settings.json` de este repositorio usa `bun ./bin/failproofai.mjs --hook <EventType>` en lugar del comando estándar `npx -y failproofai`. Esto se debe a que ejecutar `npx -y failproofai` dentro del propio proyecto failproofai genera un conflicto de auto-referencia.
|
|
288
288
|
|
|
289
289
|
Para todos los demás repositorios, el enfoque recomendado es `npx -y failproofai`, instalado mediante:
|
|
290
290
|
|
|
@@ -23,21 +23,21 @@
|
|
|
23
23
|
|
|
24
24
|
**Traductions** : [简体中文](docs/i18n/README.zh.md) | [日本語](docs/i18n/README.ja.md) | [한국어](docs/i18n/README.ko.md) | [Español](docs/i18n/README.es.md) | [Português](docs/i18n/README.pt-br.md) | [Deutsch](docs/i18n/README.de.md) | [Français](docs/i18n/README.fr.md) | [Русский](docs/i18n/README.ru.md) | [हिन्दी](docs/i18n/README.hi.md) | [Türkçe](docs/i18n/README.tr.md) | [Tiếng Việt](docs/i18n/README.vi.md) | [Italiano](docs/i18n/README.it.md) | [العربية](docs/i18n/README.ar.md) | [עברית](docs/i18n/README.he.md)
|
|
25
25
|
|
|
26
|
-
La
|
|
26
|
+
La solution la plus simple pour gérer les politiques qui maintiennent vos agents IA fiables, concentrés sur leurs tâches et capables de fonctionner de manière autonome — pour **Claude Code** et l'**Agents SDK**.
|
|
27
27
|
|
|
28
|
-
- **30 politiques intégrées**
|
|
29
|
-
- **Politiques personnalisées**
|
|
30
|
-
- **Configuration simplifiée**
|
|
31
|
-
- **Moniteur d'agents**
|
|
28
|
+
- **30 politiques intégrées** — Détectez les modes de défaillance courants des agents dès l'installation. Bloquez les commandes destructrices, empêchez les fuites de secrets, maintenez les agents dans les limites du projet, détectez les boucles, et bien plus encore.
|
|
29
|
+
- **Politiques personnalisées** — Écrivez vos propres règles de fiabilité en JavaScript. Utilisez l'API `allow`/`deny`/`instruct` pour imposer des conventions, prévenir la dérive, contrôler les opérations ou vous intégrer à des systèmes externes.
|
|
30
|
+
- **Configuration simplifiée** — Ajustez n'importe quelle politique sans écrire de code. Définissez des listes d'autorisation, des branches protégées et des seuils par projet ou globalement. Les trois niveaux de configuration se fusionnent automatiquement.
|
|
31
|
+
- **Moniteur d'agents** — Voyez ce que vos agents ont fait pendant votre absence. Parcourez les sessions, inspectez chaque appel d'outil et examinez précisément là où les politiques ont été déclenchées.
|
|
32
32
|
|
|
33
|
-
Tout s'exécute
|
|
33
|
+
Tout s'exécute en local — aucune donnée ne quitte votre machine.
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
37
37
|
## Prérequis
|
|
38
38
|
|
|
39
39
|
- Node.js >= 20.9.0
|
|
40
|
-
- Bun >= 1.3.0 (optionnel — nécessaire
|
|
40
|
+
- Bun >= 1.3.0 (optionnel — uniquement nécessaire pour le développement ou la compilation depuis les sources)
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
@@ -45,7 +45,7 @@ Tout s'exécute localement — aucune donnée ne quitte votre machine.
|
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
47
|
npm install -g failproofai
|
|
48
|
-
#
|
|
48
|
+
# ou
|
|
49
49
|
bun add -g failproofai
|
|
50
50
|
```
|
|
51
51
|
|
|
@@ -59,7 +59,7 @@ bun add -g failproofai
|
|
|
59
59
|
failproofai policies --install
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
Inscrit les entrées de hook dans `~/.claude/settings.json`. Claude Code invoquera désormais failproofai avant et après chaque appel d'outil.
|
|
63
63
|
|
|
64
64
|
### 2. Lancer le tableau de bord
|
|
65
65
|
|
|
@@ -81,11 +81,11 @@ failproofai policies
|
|
|
81
81
|
|
|
82
82
|
### Niveaux de portée
|
|
83
83
|
|
|
84
|
-
| Portée | Commande | Fichier
|
|
84
|
+
| Portée | Commande | Fichier cible |
|
|
85
85
|
|--------|---------|-----------------|
|
|
86
|
-
|
|
|
86
|
+
| Global (défaut) | `failproofai policies --install` | `~/.claude/settings.json` |
|
|
87
87
|
| Projet | `failproofai policies --install --scope project` | `.claude/settings.json` |
|
|
88
|
-
|
|
|
88
|
+
| Local | `failproofai policies --install --scope local` | `.claude/settings.local.json` |
|
|
89
89
|
|
|
90
90
|
### Installer des politiques spécifiques
|
|
91
91
|
|
|
@@ -105,7 +105,7 @@ failproofai policies --uninstall --scope project
|
|
|
105
105
|
|
|
106
106
|
## Configuration
|
|
107
107
|
|
|
108
|
-
La configuration des politiques se trouve dans `~/.failproofai/policies-config.json` (
|
|
108
|
+
La configuration des politiques se trouve dans `~/.failproofai/policies-config.json` (global) ou `.failproofai/policies-config.json` dans votre projet (par projet).
|
|
109
109
|
|
|
110
110
|
```json
|
|
111
111
|
{
|
|
@@ -150,11 +150,11 @@ La configuration des politiques se trouve dans `~/.failproofai/policies-config.j
|
|
|
150
150
|
| `block-rm-rf` | Empêche la suppression récursive accidentelle de fichiers | `allowPaths` |
|
|
151
151
|
| `block-curl-pipe-sh` | Empêche les agents de rediriger des scripts non fiables vers le shell | |
|
|
152
152
|
| `block-failproofai-commands` | Empêche la désinstallation automatique | |
|
|
153
|
-
| `sanitize-jwt` |
|
|
154
|
-
| `sanitize-api-keys` |
|
|
155
|
-
| `sanitize-connection-strings` |
|
|
156
|
-
| `sanitize-private-key-content` |
|
|
157
|
-
| `sanitize-bearer-tokens` |
|
|
153
|
+
| `sanitize-jwt` | Empêche les jetons JWT de fuiter dans le contexte de l'agent | |
|
|
154
|
+
| `sanitize-api-keys` | Empêche les clés API de fuiter dans le contexte de l'agent | `additionalPatterns` |
|
|
155
|
+
| `sanitize-connection-strings` | Empêche les identifiants de base de données de fuiter dans le contexte de l'agent | |
|
|
156
|
+
| `sanitize-private-key-content` | Expurge les blocs de clés privées PEM des sorties | |
|
|
157
|
+
| `sanitize-bearer-tokens` | Expurge les jetons Authorization Bearer des sorties | |
|
|
158
158
|
| `block-env-files` | Empêche les agents de lire les fichiers .env | |
|
|
159
159
|
| `protect-env-vars` | Empêche les agents d'afficher les variables d'environnement | |
|
|
160
160
|
| `block-read-outside-cwd` | Maintient les agents dans les limites du projet | `allowPaths` |
|
|
@@ -162,16 +162,16 @@ La configuration des politiques se trouve dans `~/.failproofai/policies-config.j
|
|
|
162
162
|
| `block-push-master` | Empêche les push accidentels vers main/master | `protectedBranches` |
|
|
163
163
|
| `block-work-on-main` | Maintient les agents hors des branches protégées | `protectedBranches` |
|
|
164
164
|
| `block-force-push` | Empêche `git push --force` | |
|
|
165
|
-
| `warn-git-amend` |
|
|
166
|
-
| `warn-git-stash-drop` |
|
|
165
|
+
| `warn-git-amend` | Avertit les agents avant de modifier des commits | |
|
|
166
|
+
| `warn-git-stash-drop` | Avertit les agents avant de supprimer des stashes | |
|
|
167
167
|
| `warn-all-files-staged` | Détecte les `git add -A` accidentels | |
|
|
168
|
-
| `warn-destructive-sql` |
|
|
169
|
-
| `warn-schema-alteration` |
|
|
170
|
-
| `warn-large-file-write` | Détecte les écritures de fichiers anormalement
|
|
168
|
+
| `warn-destructive-sql` | Intercepte les instructions DROP/DELETE SQL avant exécution | |
|
|
169
|
+
| `warn-schema-alteration` | Intercepte les ALTER TABLE avant exécution | |
|
|
170
|
+
| `warn-large-file-write` | Détecte les écritures de fichiers anormalement volumineuses | `thresholdKb` |
|
|
171
171
|
| `warn-package-publish` | Détecte les `npm publish` accidentels | |
|
|
172
172
|
| `warn-background-process` | Détecte les lancements involontaires de processus en arrière-plan | |
|
|
173
173
|
| `warn-global-package-install` | Détecte les installations involontaires de paquets globaux | |
|
|
174
|
-
| …et
|
|
174
|
+
| …et bien d'autres | | |
|
|
175
175
|
|
|
176
176
|
Détails complets des politiques et référence des paramètres : [docs/built-in-policies.mdx](docs/built-in-policies.mdx)
|
|
177
177
|
|
|
@@ -179,7 +179,7 @@ Détails complets des politiques et référence des paramètres : [docs/built-in
|
|
|
179
179
|
|
|
180
180
|
## Politiques personnalisées
|
|
181
181
|
|
|
182
|
-
Écrivez vos propres politiques pour maintenir les agents fiables et concentrés sur
|
|
182
|
+
Écrivez vos propres politiques pour maintenir les agents fiables et concentrés sur leurs tâches :
|
|
183
183
|
|
|
184
184
|
```js
|
|
185
185
|
import { customPolicies, allow, deny, instruct } from "failproofai";
|
|
@@ -197,7 +197,7 @@ customPolicies.add({
|
|
|
197
197
|
});
|
|
198
198
|
```
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
Installation avec :
|
|
201
201
|
|
|
202
202
|
```bash
|
|
203
203
|
failproofai policies --install --custom ./my-policies.js
|
|
@@ -224,14 +224,14 @@ failproofai policies --install --custom ./my-policies.js
|
|
|
224
224
|
| `session.sessionId` | `string` | Identifiant de session |
|
|
225
225
|
| `session.transcriptPath` | `string` | Chemin vers le fichier de transcription de la session |
|
|
226
226
|
|
|
227
|
-
Les hooks personnalisés prennent en charge les imports locaux transitifs, async/await et l'accès à `process.env`. Les erreurs sont en mode fail-open (
|
|
227
|
+
Les hooks personnalisés prennent en charge les imports locaux transitifs, async/await et l'accès à `process.env`. Les erreurs sont traitées en mode fail-open (consignées dans `~/.failproofai/hook.log`, les politiques intégrées continuent de s'exécuter). Consultez [docs/custom-hooks.mdx](docs/custom-hooks.mdx) pour le guide complet.
|
|
228
228
|
|
|
229
229
|
### Politiques basées sur les conventions
|
|
230
230
|
|
|
231
|
-
Déposez des fichiers `*policies.{js,mjs,ts}` dans `.failproofai/policies/` et ils
|
|
231
|
+
Déposez des fichiers `*policies.{js,mjs,ts}` dans `.failproofai/policies/` et ils seront chargés automatiquement — aucun indicateur `--custom` ni modification de configuration n'est nécessaire. Fonctionne comme les hooks git : déposez un fichier, il s'active tout seul.
|
|
232
232
|
|
|
233
233
|
```text
|
|
234
|
-
# Niveau projet —
|
|
234
|
+
# Niveau projet — versionné dans git, partagé avec l'équipe
|
|
235
235
|
.failproofai/policies/security-policies.mjs
|
|
236
236
|
.failproofai/policies/workflow-policies.mjs
|
|
237
237
|
|
|
@@ -239,13 +239,13 @@ Déposez des fichiers `*policies.{js,mjs,ts}` dans `.failproofai/policies/` et i
|
|
|
239
239
|
~/.failproofai/policies/my-policies.mjs
|
|
240
240
|
```
|
|
241
241
|
|
|
242
|
-
Les deux niveaux sont chargés (union). Les fichiers sont chargés par ordre alphabétique
|
|
242
|
+
Les deux niveaux sont chargés (union). Les fichiers sont chargés par ordre alphabétique au sein de chaque répertoire. Préfixez avec `01-`, `02-`, etc. pour contrôler l'ordre. Consultez [examples/convention-policies/](examples/convention-policies/) pour des exemples prêts à l'emploi.
|
|
243
243
|
|
|
244
244
|
---
|
|
245
245
|
|
|
246
246
|
## Télémétrie
|
|
247
247
|
|
|
248
|
-
Failproof AI collecte une télémétrie d'utilisation anonyme via PostHog afin de comprendre l'utilisation des fonctionnalités. Aucun contenu de session, nom de fichier, entrée d'outil ni information personnelle n'est jamais transmis.
|
|
248
|
+
Failproof AI collecte une télémétrie d'utilisation anonyme via PostHog afin de comprendre l'utilisation des fonctionnalités. Aucun contenu de session, nom de fichier, paramètre d'entrée d'outil ni information personnelle n'est jamais transmis.
|
|
249
249
|
|
|
250
250
|
Pour la désactiver :
|
|
251
251
|
|
|
@@ -259,22 +259,22 @@ FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
|
|
|
259
259
|
|
|
260
260
|
| Guide | Description |
|
|
261
261
|
|-------|-------------|
|
|
262
|
-
| [
|
|
263
|
-
| [
|
|
264
|
-
| [
|
|
265
|
-
| [Configuration](docs/configuration.mdx) | Format
|
|
266
|
-
| [
|
|
262
|
+
| [Getting Started](docs/getting-started.mdx) | Installation et premiers pas |
|
|
263
|
+
| [Built-in Policies](docs/built-in-policies.mdx) | Les 30 politiques intégrées avec leurs paramètres |
|
|
264
|
+
| [Custom Policies](docs/custom-policies.mdx) | Écrire vos propres politiques |
|
|
265
|
+
| [Configuration](docs/configuration.mdx) | Format des fichiers de configuration et fusion des portées |
|
|
266
|
+
| [Dashboard](docs/dashboard.mdx) | Surveiller les sessions et examiner l'activité des politiques |
|
|
267
267
|
| [Architecture](docs/architecture.mdx) | Fonctionnement du système de hooks |
|
|
268
|
-
| [
|
|
268
|
+
| [Testing](docs/testing.mdx) | Exécuter les tests et en écrire de nouveaux |
|
|
269
269
|
|
|
270
|
-
### Lancer la documentation
|
|
270
|
+
### Lancer la documentation en local
|
|
271
271
|
|
|
272
272
|
```bash
|
|
273
273
|
docker build -f Dockerfile.docs -t failproofai-docs .
|
|
274
274
|
docker run --rm -p 3000:3000 failproofai-docs
|
|
275
275
|
```
|
|
276
276
|
|
|
277
|
-
Ouvre le site de documentation Mintlify
|
|
277
|
+
Ouvre le site de documentation Mintlify à l'adresse `http://localhost:3000`. Le conteneur surveille les modifications si vous montez le répertoire docs :
|
|
278
278
|
|
|
279
279
|
```bash
|
|
280
280
|
docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
|
|
@@ -282,9 +282,9 @@ docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
|
|
|
282
282
|
|
|
283
283
|
---
|
|
284
284
|
|
|
285
|
-
## Note
|
|
285
|
+
## Note à l'attention des contributeurs failproofai
|
|
286
286
|
|
|
287
|
-
Le fichier `.claude/settings.json` de ce dépôt utilise `bun ./bin/failproofai.mjs --hook <EventType>`
|
|
287
|
+
Le fichier `.claude/settings.json` de ce dépôt utilise `bun ./bin/failproofai.mjs --hook <EventType>` au lieu de la commande standard `npx -y failproofai`. En effet, l'exécution de `npx -y failproofai` à l'intérieur même du projet failproofai crée un conflit d'autoréférence.
|
|
288
288
|
|
|
289
289
|
Pour tous les autres dépôts, l'approche recommandée est `npx -y failproofai`, installée via :
|
|
290
290
|
|
|
@@ -304,4 +304,4 @@ Consultez [LICENSE](LICENSE).
|
|
|
304
304
|
|
|
305
305
|
---
|
|
306
306
|
|
|
307
|
-
|
|
307
|
+
Développé et maintenu par **ExosphereHost : Reliability Research Lab for Your Agents**. Nous aidons les entreprises et les startups à améliorer la fiabilité de leurs agents IA grâce à nos propres agents, logiciels et expertises. En savoir plus sur [exosphere.host](https://exosphere.host).
|