failproofai 0.0.6-beta.0 → 0.0.6-beta.2
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 +113 -0
- 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]__0a.nuas._.js → [root-of-the-server]__05akje6._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__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]__0.~fd7s._.js → [root-of-the-server]__0i5kvry._.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 +6 -6
- 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/{0teq8wdh3po1n.js → 00j0rr7rh8ef8.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0maq.q1t.ri85.js → 05j1px0r8yzh6.js} +2 -2
- package/.next/standalone/.next/static/chunks/0badv41uxa56..js +4 -0
- package/.next/standalone/.next/static/chunks/{0hplx-8c-4vpv.js → 0ijk_kek9_wyx.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0uc0um_uz51m_.js → 0npb~873.wvg3.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0hctoh28rg838.js → 0xpl.oscrakvx.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0.z51twd.0l5z.js → 1052sguyd-.ka.js} +1 -1
- package/.next/standalone/.next/static/chunks/{09e7drilkf1sn.js → 12simlrcfk3g2.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0ul6fk-z.6k-0.js → 14cl9poem30dq.js} +1 -1
- package/.next/standalone/.next/static/chunks/{turbopack-0r26pc8h0y_-e.js → turbopack-0o7k.hakttp4k.js} +1 -1
- package/.next/standalone/CHANGELOG.md +19 -0
- package/.next/standalone/README.md +2 -2
- package/.next/standalone/bun.lock +43 -85
- package/.next/standalone/dist/cli.mjs +91 -4
- package/.next/standalone/docs/ar/built-in-policies.mdx +124 -87
- package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
- package/.next/standalone/docs/ar/examples.mdx +86 -33
- package/.next/standalone/docs/ar/getting-started.mdx +82 -29
- package/.next/standalone/docs/built-in-policies.mdx +38 -1
- package/.next/standalone/docs/custom-policies.mdx +1 -1
- package/.next/standalone/docs/de/built-in-policies.mdx +93 -56
- package/.next/standalone/docs/de/custom-policies.mdx +56 -56
- package/.next/standalone/docs/de/examples.mdx +72 -18
- package/.next/standalone/docs/de/getting-started.mdx +72 -20
- package/.next/standalone/docs/es/built-in-policies.mdx +115 -78
- package/.next/standalone/docs/es/custom-policies.mdx +55 -55
- package/.next/standalone/docs/es/examples.mdx +73 -19
- package/.next/standalone/docs/es/getting-started.mdx +72 -20
- package/.next/standalone/docs/examples.mdx +54 -0
- package/.next/standalone/docs/fr/built-in-policies.mdx +83 -46
- package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
- package/.next/standalone/docs/fr/examples.mdx +78 -24
- package/.next/standalone/docs/fr/getting-started.mdx +65 -13
- package/.next/standalone/docs/getting-started.mdx +52 -0
- package/.next/standalone/docs/he/built-in-policies.mdx +156 -117
- package/.next/standalone/docs/he/custom-policies.mdx +75 -75
- package/.next/standalone/docs/he/examples.mdx +87 -33
- package/.next/standalone/docs/he/getting-started.mdx +84 -33
- package/.next/standalone/docs/hi/built-in-policies.mdx +101 -60
- package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
- package/.next/standalone/docs/hi/examples.mdx +90 -36
- package/.next/standalone/docs/hi/getting-started.mdx +80 -27
- package/.next/standalone/docs/i18n/README.ar.md +69 -69
- package/.next/standalone/docs/i18n/README.de.md +46 -46
- package/.next/standalone/docs/i18n/README.es.md +42 -42
- package/.next/standalone/docs/i18n/README.fr.md +39 -39
- package/.next/standalone/docs/i18n/README.he.md +83 -83
- package/.next/standalone/docs/i18n/README.hi.md +69 -69
- package/.next/standalone/docs/i18n/README.it.md +72 -72
- package/.next/standalone/docs/i18n/README.ja.md +71 -71
- package/.next/standalone/docs/i18n/README.ko.md +52 -52
- package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
- package/.next/standalone/docs/i18n/README.ru.md +66 -66
- package/.next/standalone/docs/i18n/README.tr.md +82 -83
- package/.next/standalone/docs/i18n/README.vi.md +70 -71
- package/.next/standalone/docs/i18n/README.zh.md +51 -51
- package/.next/standalone/docs/it/built-in-policies.mdx +118 -81
- package/.next/standalone/docs/it/custom-policies.mdx +69 -69
- package/.next/standalone/docs/it/examples.mdx +93 -39
- package/.next/standalone/docs/it/getting-started.mdx +73 -21
- package/.next/standalone/docs/ja/built-in-policies.mdx +98 -61
- package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
- package/.next/standalone/docs/ja/examples.mdx +76 -22
- package/.next/standalone/docs/ja/getting-started.mdx +65 -13
- package/.next/standalone/docs/ko/built-in-policies.mdx +137 -100
- package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
- package/.next/standalone/docs/ko/examples.mdx +87 -33
- package/.next/standalone/docs/ko/getting-started.mdx +61 -9
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +94 -57
- package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
- package/.next/standalone/docs/pt-br/examples.mdx +78 -24
- package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
- package/.next/standalone/docs/ru/built-in-policies.mdx +142 -105
- package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
- package/.next/standalone/docs/ru/examples.mdx +77 -22
- package/.next/standalone/docs/ru/getting-started.mdx +74 -22
- package/.next/standalone/docs/tr/built-in-policies.mdx +104 -67
- package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
- package/.next/standalone/docs/tr/examples.mdx +97 -42
- package/.next/standalone/docs/tr/getting-started.mdx +75 -23
- package/.next/standalone/docs/vi/built-in-policies.mdx +110 -72
- package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
- package/.next/standalone/docs/vi/examples.mdx +93 -38
- package/.next/standalone/docs/vi/getting-started.mdx +74 -22
- package/.next/standalone/docs/zh/built-in-policies.mdx +132 -95
- package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
- package/.next/standalone/docs/zh/examples.mdx +90 -36
- package/.next/standalone/docs/zh/getting-started.mdx +73 -21
- 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 +106 -1
- package/README.md +2 -2
- package/dist/cli.mjs +91 -4
- package/package.json +2 -2
- package/src/hooks/builtin-policies.ts +106 -1
- package/.next/standalone/.next/static/chunks/0w9lwqy0-v1dk.js +0 -4
- /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{8mygPGI5bzrtWK36ZYO59 → A9pNTZdoYJTVyPAYwQMx5}/_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 tus agentes de IA
|
|
26
|
+
La forma más sencilla de gestionar políticas que mantienen a tus agentes de IA confiables, enfocados y funcionando de manera autónoma - para **Claude Code** y el **Agents SDK**.
|
|
27
27
|
|
|
28
|
-
- **30
|
|
29
|
-
- **Políticas personalizadas** - Escribe tus propias reglas de fiabilidad en JavaScript. Usa la API `allow`/`deny`/`instruct` para aplicar convenciones, prevenir
|
|
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
|
|
31
|
-
- **Monitor de agentes** -
|
|
28
|
+
- **30 Políticas integradas** - Detecta los fallos más comunes de los agentes desde el primer momento. Bloquea comandos destructivos, evita la fuga 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 desvíos, 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 en tres niveles se combina automáticamente.
|
|
31
|
+
- **Monitor de agentes** - Descubre qué hicieron tus agentes mientras estabas ausente. 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 o compilación desde el código fuente)
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
@@ -59,15 +59,15 @@ bun add -g failproofai
|
|
|
59
59
|
failproofai policies --install
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
Escribe entradas de
|
|
62
|
+
Escribe las entradas de hook 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. Iniciar 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 las sesiones, inspecciona los registros y gestiona las políticas.
|
|
71
71
|
|
|
72
72
|
### 3. Verificar qué está activo
|
|
73
73
|
|
|
@@ -79,10 +79,10 @@ failproofai policies
|
|
|
79
79
|
|
|
80
80
|
## Instalación de políticas
|
|
81
81
|
|
|
82
|
-
###
|
|
82
|
+
### Niveles
|
|
83
83
|
|
|
84
|
-
|
|
|
85
|
-
|
|
84
|
+
| Nivel | 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 nivel 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 se almacena 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 reside en `~/.failproofai/policies-config.json`
|
|
|
138
138
|
}
|
|
139
139
|
```
|
|
140
140
|
|
|
141
|
-
**Los tres
|
|
141
|
+
**Los tres niveles de configuración** se combinan automáticamente (proyecto → local → global). Consulta [docs/configuration.mdx](docs/configuration.mdx) para conocer las reglas completas de combinación.
|
|
142
142
|
|
|
143
143
|
---
|
|
144
144
|
|
|
@@ -146,29 +146,29 @@ La configuración de políticas reside en `~/.failproofai/policies-config.json`
|
|
|
146
146
|
|
|
147
147
|
| Política | Descripción | Configurable |
|
|
148
148
|
|----------|-------------|:---:|
|
|
149
|
-
| `block-sudo` |
|
|
149
|
+
| `block-sudo` | Impide que los agentes ejecuten comandos de sistema con privilegios | `allowPatterns` |
|
|
150
150
|
| `block-rm-rf` | Previene la eliminación recursiva accidental de archivos | `allowPaths` |
|
|
151
|
-
| `block-curl-pipe-sh` |
|
|
151
|
+
| `block-curl-pipe-sh` | Impide que los agentes canalicen scripts no confiables hacia la shell | |
|
|
152
152
|
| `block-failproofai-commands` | Previene la autodesinstalación | |
|
|
153
|
-
| `sanitize-jwt` |
|
|
154
|
-
| `sanitize-api-keys` |
|
|
155
|
-
| `sanitize-connection-strings` |
|
|
153
|
+
| `sanitize-jwt` | Evita que tokens JWT se filtren al contexto del agente | |
|
|
154
|
+
| `sanitize-api-keys` | Evita que claves API se filtren al contexto del agente | `additionalPatterns` |
|
|
155
|
+
| `sanitize-connection-strings` | Evita que 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
|
-
| `sanitize-bearer-tokens` | Redacta tokens Bearer de
|
|
158
|
-
| `block-env-files` |
|
|
157
|
+
| `sanitize-bearer-tokens` | Redacta tokens Authorization Bearer de la salida | |
|
|
158
|
+
| `block-env-files` | Impide 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` |
|
|
162
162
|
| `block-push-master` | Previene envíos accidentales a main/master | `protectedBranches` |
|
|
163
163
|
| `block-work-on-main` | Mantiene a los agentes fuera de las ramas protegidas | `protectedBranches` |
|
|
164
164
|
| `block-force-push` | Previene `git push --force` | |
|
|
165
|
-
| `warn-git-amend` |
|
|
166
|
-
| `warn-git-stash-drop` |
|
|
167
|
-
| `warn-all-files-staged` | Detecta
|
|
168
|
-
| `warn-destructive-sql` | Detecta DROP/DELETE
|
|
169
|
-
| `warn-schema-alteration` | Detecta ALTER TABLE antes de
|
|
165
|
+
| `warn-git-amend` | Avisa a los agentes antes de modificar commits | |
|
|
166
|
+
| `warn-git-stash-drop` | Avisa a los agentes antes de eliminar stashes | |
|
|
167
|
+
| `warn-all-files-staged` | Detecta `git add -A` accidentales | |
|
|
168
|
+
| `warn-destructive-sql` | Detecta sentencias DROP/DELETE SQL antes de ejecutarlas | |
|
|
169
|
+
| `warn-schema-alteration` | Detecta ALTER TABLE antes de ejecutarlos | |
|
|
170
170
|
| `warn-large-file-write` | Detecta escrituras de archivos inesperadamente grandes | `thresholdKb` |
|
|
171
|
-
| `warn-package-publish` | Detecta
|
|
171
|
+
| `warn-package-publish` | Detecta `npm publish` accidentales | |
|
|
172
172
|
| `warn-background-process` | Detecta lanzamientos no intencionados de procesos en segundo plano | |
|
|
173
173
|
| `warn-global-package-install` | Detecta instalaciones globales de paquetes no intencionadas | |
|
|
174
174
|
| …y más | | |
|
|
@@ -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 enfocados:
|
|
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 que se está invocando (`"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 (
|
|
227
|
+
Los hooks personalizados admiten importaciones locales transitivas, async/await y acceso a `process.env`. Los errores son fail-open (registrados en `~/.failproofai/hook.log`; 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
|
|
231
|
+
Coloca archivos `*policies.{js,mjs,ts}` en `.failproofai/policies/` y se cargarán automáticamente — sin indicadores ni cambios de configuración adicionales. Confirma el directorio en git y todos los miembros del equipo obtendrán los mismos estándares de calidad de forma automática.
|
|
232
232
|
|
|
233
233
|
```text
|
|
234
|
-
#
|
|
234
|
+
# Nivel de proyecto — confirmado en git, compartido con el equipo
|
|
235
235
|
.failproofai/policies/security-policies.mjs
|
|
236
236
|
.failproofai/policies/workflow-policies.mjs
|
|
237
237
|
|
|
238
|
-
#
|
|
238
|
+
# 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
|
|
242
|
+
Ambos niveles se cargan conjuntamente. Los archivos se cargan en orden alfabético dentro de cada directorio. Usa los prefijos `01-`, `02-`, etc. para controlar el orden. A medida que tu equipo descubra nuevos modos de fallo, añade una política y envíala — todos recibirán la actualización en su próximo pull. 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 a través de PostHog para
|
|
248
|
+
Failproof AI recopila telemetría de uso anónima a través de PostHog para entender 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
|
|
|
@@ -261,9 +261,9 @@ FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
|
|
|
261
261
|
|------|-------------|
|
|
262
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
|
-
| [Políticas personalizadas](docs/custom-policies.mdx) |
|
|
265
|
-
| [Configuración](docs/configuration.mdx) | Formato del archivo de configuración y
|
|
266
|
-
| [Panel de control](docs/dashboard.mdx) |
|
|
264
|
+
| [Políticas personalizadas](docs/custom-policies.mdx) | Escribe tus propias políticas |
|
|
265
|
+
| [Configuración](docs/configuration.mdx) | Formato del archivo de configuración y combinación de niveles |
|
|
266
|
+
| [Panel de control](docs/dashboard.mdx) | Monitoriza 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
|
|
285
|
+
## Nota para colaboradores de failproofai
|
|
286
286
|
|
|
287
|
-
El archivo `.claude/settings.json` de este repositorio
|
|
287
|
+
El archivo `.claude/settings.json` de este repositorio utiliza `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 autorreferencia.
|
|
288
288
|
|
|
289
289
|
Para todos los demás repositorios, el enfoque recomendado es `npx -y failproofai`, instalado mediante:
|
|
290
290
|
|
|
@@ -23,14 +23,14 @@
|
|
|
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
|
-
|
|
26
|
+
Le moyen le plus simple de gérer des politiques qui maintiennent vos agents IA fiables, concentrés sur leurs tâches et opérationnels en autonomie — pour **Claude Code** et le **Agents SDK**.
|
|
27
27
|
|
|
28
|
-
- **30 politiques intégrées** — Détectez les modes de défaillance courants des agents dès l'installation. Bloquez les commandes destructrices,
|
|
29
|
-
- **Politiques personnalisées** —
|
|
30
|
-
- **Configuration
|
|
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, prévenez les fuites de secrets, maintenez les agents dans les limites du projet, détectez les boucles, et bien plus encore.
|
|
29
|
+
- **Politiques personnalisées** — Rédigez vos propres règles de fiabilité en JavaScript. Utilisez l'API `allow`/`deny`/`instruct` pour appliquer des conventions, éviter la dérive, contrôler les opérations ou vous intégrer à des systèmes externes.
|
|
30
|
+
- **Configuration simple** — 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. La fusion de trois niveaux de configuration s'effectue automatiquement.
|
|
31
|
+
- **Moniteur d'agents** — Visualisez ce que vos agents ont fait en votre absence. Parcourez les sessions, inspectez chaque appel d'outil et examinez précisément où les politiques ont été déclenchées.
|
|
32
32
|
|
|
33
|
-
Tout s'exécute
|
|
33
|
+
Tout s'exécute localement — aucune donnée ne quitte votre machine.
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
@@ -59,7 +59,7 @@ bun add -g failproofai
|
|
|
59
59
|
failproofai policies --install
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
Écrit 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
|
|
|
@@ -79,11 +79,11 @@ failproofai policies
|
|
|
79
79
|
|
|
80
80
|
## Installation des politiques
|
|
81
81
|
|
|
82
|
-
### Niveaux
|
|
82
|
+
### Niveaux
|
|
83
83
|
|
|
84
|
-
|
|
|
84
|
+
| Niveau | Commande | Fichier de destination |
|
|
85
85
|
|--------|---------|-----------------|
|
|
86
|
-
| Global (défaut) | `failproofai policies --install` | `~/.claude/settings.json` |
|
|
86
|
+
| Global (par 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
|
|
|
@@ -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
|
-
# ou pour
|
|
100
|
+
# ou pour un niveau spécifique :
|
|
101
101
|
failproofai policies --uninstall --scope project
|
|
102
102
|
```
|
|
103
103
|
|
|
@@ -148,30 +148,30 @@ La configuration des politiques se trouve dans `~/.failproofai/policies-config.j
|
|
|
148
148
|
|--------|-------------|:---:|
|
|
149
149
|
| `block-sudo` | Empêche les agents d'exécuter des commandes système privilégiées | `allowPatterns` |
|
|
150
150
|
| `block-rm-rf` | Empêche la suppression récursive accidentelle de fichiers | `allowPaths` |
|
|
151
|
-
| `block-curl-pipe-sh` | Empêche les agents de
|
|
151
|
+
| `block-curl-pipe-sh` | Empêche les agents de diriger des scripts non fiables vers le shell | |
|
|
152
152
|
| `block-failproofai-commands` | Empêche la désinstallation automatique | |
|
|
153
153
|
| `sanitize-jwt` | Empêche les jetons JWT de fuiter dans le contexte de l'agent | |
|
|
154
154
|
| `sanitize-api-keys` | Empêche les clés API de fuiter dans le contexte de l'agent | `additionalPatterns` |
|
|
155
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` |
|
|
157
|
-
| `sanitize-bearer-tokens` |
|
|
156
|
+
| `sanitize-private-key-content` | Masque les blocs de clés privées PEM dans la sortie | |
|
|
157
|
+
| `sanitize-bearer-tokens` | Masque les jetons Authorization Bearer dans la sortie | |
|
|
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` |
|
|
161
|
-
| `block-secrets-write` | Empêche
|
|
161
|
+
| `block-secrets-write` | Empêche les écritures vers des fichiers de clés privées et de certificats | `additionalPatterns` |
|
|
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
165
|
| `warn-git-amend` | Avertit les agents avant de modifier des commits | |
|
|
166
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
|
|
168
|
+
| `warn-destructive-sql` | Détecte les instructions SQL DROP/DELETE avant exécution | |
|
|
169
|
+
| `warn-schema-alteration` | Détecte les ALTER TABLE avant exécution | |
|
|
170
|
+
| `warn-large-file-write` | Détecte les écritures de fichiers inopinément volumineux | `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 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
|
-
|
|
182
|
+
Rédigez 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
|
+
À installer avec :
|
|
201
201
|
|
|
202
202
|
```bash
|
|
203
203
|
failproofai policies --install --custom ./my-policies.js
|
|
@@ -209,10 +209,10 @@ failproofai policies --install --custom ./my-policies.js
|
|
|
209
209
|
|----------|--------|
|
|
210
210
|
| `allow()` | Autorise l'opération |
|
|
211
211
|
| `allow(message)` | Autorise et envoie un contexte informatif à Claude |
|
|
212
|
-
| `deny(message)` | Bloque l'opération ; le message est
|
|
213
|
-
| `instruct(message)` | Ajoute du contexte
|
|
212
|
+
| `deny(message)` | Bloque l'opération ; le message est transmis à Claude |
|
|
213
|
+
| `instruct(message)` | Ajoute du contexte à l'invite de Claude ; ne bloque pas |
|
|
214
214
|
|
|
215
|
-
### Objet contexte (`ctx`)
|
|
215
|
+
### Objet de contexte (`ctx`)
|
|
216
216
|
|
|
217
217
|
| Champ | Type | Description |
|
|
218
218
|
|-------|------|-------------|
|
|
@@ -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
|
|
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 (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 seront chargés automatiquement — aucun indicateur
|
|
231
|
+
Déposez des fichiers `*policies.{js,mjs,ts}` dans `.failproofai/policies/` et ils seront chargés automatiquement — aucun indicateur ni modification de configuration n'est nécessaire. Commitez le répertoire dans git et chaque membre de l'équipe bénéficie automatiquement des mêmes standards de qualité.
|
|
232
232
|
|
|
233
233
|
```text
|
|
234
|
-
# Niveau projet —
|
|
234
|
+
# Niveau projet — commité 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 dans chaque répertoire. Préfixez avec `01-`, `02-`, etc. pour contrôler l'ordre. Au fur et à mesure que votre équipe découvre de nouveaux modes de défaillance, ajoutez une politique et poussez — tout le monde reçoit la mise à jour lors de leur prochain pull. 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,
|
|
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.
|
|
249
249
|
|
|
250
250
|
Pour la désactiver :
|
|
251
251
|
|
|
@@ -259,15 +259,15 @@ FAILPROOFAI_TELEMETRY_DISABLED=1 failproofai
|
|
|
259
259
|
|
|
260
260
|
| Guide | Description |
|
|
261
261
|
|-------|-------------|
|
|
262
|
-
| [
|
|
263
|
-
| [
|
|
264
|
-
| [
|
|
265
|
-
| [Configuration](docs/configuration.mdx) | Format
|
|
266
|
-
| [
|
|
262
|
+
| [Démarrage](docs/getting-started.mdx) | Installation et premiers pas |
|
|
263
|
+
| [Politiques intégrées](docs/built-in-policies.mdx) | Les 30 politiques intégrées avec leurs paramètres |
|
|
264
|
+
| [Politiques personnalisées](docs/custom-policies.mdx) | Rédigez vos propres politiques |
|
|
265
|
+
| [Configuration](docs/configuration.mdx) | Format du fichier de configuration et fusion des niveaux |
|
|
266
|
+
| [Tableau de bord](docs/dashboard.mdx) | Surveillez les sessions et examinez l'activité des politiques |
|
|
267
267
|
| [Architecture](docs/architecture.mdx) | Fonctionnement du système de hooks |
|
|
268
|
-
| [
|
|
268
|
+
| [Tests](docs/testing.mdx) | Exécuter les tests et en écrire de nouveaux |
|
|
269
269
|
|
|
270
|
-
### Lancer la documentation
|
|
270
|
+
### Lancer la documentation localement
|
|
271
271
|
|
|
272
272
|
```bash
|
|
273
273
|
docker build -f Dockerfile.docs -t failproofai-docs .
|
|
@@ -284,7 +284,7 @@ docker run --rm -p 3000:3000 -v $(pwd)/docs:/app/docs failproofai-docs
|
|
|
284
284
|
|
|
285
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>` au lieu de la commande standard `npx -y failproofai`. En effet,
|
|
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, exécuter `npx -y failproofai` à l'intérieur du projet failproofai lui-même crée un conflit d'auto-référencement.
|
|
288
288
|
|
|
289
289
|
Pour tous les autres dépôts, l'approche recommandée est `npx -y failproofai`, installée via :
|
|
290
290
|
|
|
@@ -292,7 +292,7 @@ Pour tous les autres dépôts, l'approche recommandée est `npx -y failproofai`,
|
|
|
292
292
|
failproofai policies --install --scope project
|
|
293
293
|
```
|
|
294
294
|
|
|
295
|
-
##
|
|
295
|
+
## Contribution
|
|
296
296
|
|
|
297
297
|
Consultez [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
298
298
|
|
|
@@ -304,4 +304,4 @@ Consultez [LICENSE](LICENSE).
|
|
|
304
304
|
|
|
305
305
|
---
|
|
306
306
|
|
|
307
|
-
|
|
307
|
+
Conçu 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).
|