failproofai 0.0.6-beta.1 → 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.
Files changed (160) hide show
  1. package/.next/standalone/.failproofai/policies/review-policies.mjs +4 -3
  2. package/.next/standalone/.next/BUILD_ID +1 -1
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/required-server-files.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.html +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
  11. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  12. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
  18. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  20. package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
  21. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
  22. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  23. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
  24. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  25. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/index.html +1 -1
  28. package/.next/standalone/.next/server/app/index.rsc +15 -15
  29. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  30. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
  31. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
  32. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
  33. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  34. package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
  35. package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
  36. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
  38. package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
  39. package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
  41. package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
  42. package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
  44. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
  45. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
  46. package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
  48. package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  49. package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
  51. package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
  52. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0~kmh8w._.js → [root-of-the-server]__05akje6._.js} +2 -2
  53. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
  54. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
  55. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
  56. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
  57. package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0rh.18_._.js → [root-of-the-server]__0i5kvry._.js} +2 -2
  58. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
  59. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
  60. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
  61. package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
  62. package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
  63. package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
  64. package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
  65. package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
  66. package/.next/standalone/.next/server/pages/404.html +2 -2
  67. package/.next/standalone/.next/server/pages/500.html +1 -1
  68. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
  70. package/.next/standalone/.next/static/chunks/{08t08igdql9yt.js → 00j0rr7rh8ef8.js} +1 -1
  71. package/.next/standalone/.next/static/chunks/{12~yi9oj8av8p.js → 05j1px0r8yzh6.js} +2 -2
  72. package/.next/standalone/.next/static/chunks/{09_k80d~cq2wg.js → 0badv41uxa56..js} +1 -1
  73. package/.next/standalone/.next/static/chunks/{0wlyoif4_kj_t.js → 0ijk_kek9_wyx.js} +1 -1
  74. package/.next/standalone/.next/static/chunks/{0bvhsa6zva2o..js → 0ksdlt_1hucdm.js} +1 -1
  75. package/.next/standalone/.next/static/chunks/{03rz6ykw-a2xi.js → 0npb~873.wvg3.js} +1 -1
  76. package/.next/standalone/.next/static/chunks/{01b~z8f1ws0rk.js → 0xpl.oscrakvx.js} +1 -1
  77. package/.next/standalone/.next/static/chunks/{0gbf4cphy8ksq.js → 1052sguyd-.ka.js} +1 -1
  78. package/.next/standalone/.next/static/chunks/{0v.yd0kg_ld3r.js → 14cl9poem30dq.js} +1 -1
  79. package/.next/standalone/CHANGELOG.md +11 -0
  80. package/.next/standalone/dist/cli.mjs +3 -3
  81. package/.next/standalone/docs/ar/built-in-policies.mdx +124 -87
  82. package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
  83. package/.next/standalone/docs/ar/examples.mdx +86 -33
  84. package/.next/standalone/docs/ar/getting-started.mdx +82 -29
  85. package/.next/standalone/docs/built-in-policies.mdx +1 -1
  86. package/.next/standalone/docs/de/built-in-policies.mdx +93 -56
  87. package/.next/standalone/docs/de/custom-policies.mdx +56 -56
  88. package/.next/standalone/docs/de/examples.mdx +72 -18
  89. package/.next/standalone/docs/de/getting-started.mdx +72 -20
  90. package/.next/standalone/docs/es/built-in-policies.mdx +115 -78
  91. package/.next/standalone/docs/es/custom-policies.mdx +55 -55
  92. package/.next/standalone/docs/es/examples.mdx +73 -19
  93. package/.next/standalone/docs/es/getting-started.mdx +72 -20
  94. package/.next/standalone/docs/fr/built-in-policies.mdx +83 -46
  95. package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
  96. package/.next/standalone/docs/fr/examples.mdx +78 -24
  97. package/.next/standalone/docs/fr/getting-started.mdx +65 -13
  98. package/.next/standalone/docs/he/built-in-policies.mdx +156 -117
  99. package/.next/standalone/docs/he/custom-policies.mdx +75 -75
  100. package/.next/standalone/docs/he/examples.mdx +87 -33
  101. package/.next/standalone/docs/he/getting-started.mdx +84 -33
  102. package/.next/standalone/docs/hi/built-in-policies.mdx +101 -60
  103. package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
  104. package/.next/standalone/docs/hi/examples.mdx +90 -36
  105. package/.next/standalone/docs/hi/getting-started.mdx +80 -27
  106. package/.next/standalone/docs/i18n/README.ar.md +69 -69
  107. package/.next/standalone/docs/i18n/README.de.md +46 -46
  108. package/.next/standalone/docs/i18n/README.es.md +42 -42
  109. package/.next/standalone/docs/i18n/README.fr.md +39 -39
  110. package/.next/standalone/docs/i18n/README.he.md +83 -83
  111. package/.next/standalone/docs/i18n/README.hi.md +69 -69
  112. package/.next/standalone/docs/i18n/README.it.md +72 -72
  113. package/.next/standalone/docs/i18n/README.ja.md +71 -71
  114. package/.next/standalone/docs/i18n/README.ko.md +52 -52
  115. package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
  116. package/.next/standalone/docs/i18n/README.ru.md +66 -66
  117. package/.next/standalone/docs/i18n/README.tr.md +82 -83
  118. package/.next/standalone/docs/i18n/README.vi.md +70 -71
  119. package/.next/standalone/docs/i18n/README.zh.md +51 -51
  120. package/.next/standalone/docs/it/built-in-policies.mdx +118 -81
  121. package/.next/standalone/docs/it/custom-policies.mdx +69 -69
  122. package/.next/standalone/docs/it/examples.mdx +93 -39
  123. package/.next/standalone/docs/it/getting-started.mdx +73 -21
  124. package/.next/standalone/docs/ja/built-in-policies.mdx +98 -61
  125. package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
  126. package/.next/standalone/docs/ja/examples.mdx +76 -22
  127. package/.next/standalone/docs/ja/getting-started.mdx +65 -13
  128. package/.next/standalone/docs/ko/built-in-policies.mdx +137 -100
  129. package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
  130. package/.next/standalone/docs/ko/examples.mdx +87 -33
  131. package/.next/standalone/docs/ko/getting-started.mdx +61 -9
  132. package/.next/standalone/docs/pt-br/built-in-policies.mdx +94 -57
  133. package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
  134. package/.next/standalone/docs/pt-br/examples.mdx +78 -24
  135. package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
  136. package/.next/standalone/docs/ru/built-in-policies.mdx +142 -105
  137. package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
  138. package/.next/standalone/docs/ru/examples.mdx +77 -22
  139. package/.next/standalone/docs/ru/getting-started.mdx +74 -22
  140. package/.next/standalone/docs/tr/built-in-policies.mdx +104 -67
  141. package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
  142. package/.next/standalone/docs/tr/examples.mdx +97 -42
  143. package/.next/standalone/docs/tr/getting-started.mdx +75 -23
  144. package/.next/standalone/docs/vi/built-in-policies.mdx +110 -72
  145. package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
  146. package/.next/standalone/docs/vi/examples.mdx +93 -38
  147. package/.next/standalone/docs/vi/getting-started.mdx +74 -22
  148. package/.next/standalone/docs/zh/built-in-policies.mdx +132 -95
  149. package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
  150. package/.next/standalone/docs/zh/examples.mdx +90 -36
  151. package/.next/standalone/docs/zh/getting-started.mdx +73 -21
  152. package/.next/standalone/package.json +1 -1
  153. package/.next/standalone/server.js +1 -1
  154. package/.next/standalone/src/hooks/builtin-policies.ts +5 -1
  155. package/dist/cli.mjs +3 -3
  156. package/package.json +1 -1
  157. package/src/hooks/builtin-policies.ts +5 -1
  158. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → A9pNTZdoYJTVyPAYwQMx5}/_buildManifest.js +0 -0
  159. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → A9pNTZdoYJTVyPAYwQMx5}/_clientMiddlewareManifest.js +0 -0
  160. /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → 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 fiables, centrados en su tarea y funcionando de forma autónoma - para **Claude Code** y el **Agents SDK**.
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 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.
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: ningún dato sale de tu máquina.
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 - solo necesario para desarrollo / compilación desde el código fuente)
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 hooks en `~/.claude/settings.json`. A partir de ahora, Claude Code invocará failproofai antes y después de cada llamada a herramientas.
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. Lanzar el panel de control
64
+ ### 2. Iniciar el panel de control
65
65
 
66
66
  ```bash
67
67
  failproofai
68
68
  ```
69
69
 
70
- Abre `http://localhost:8020` - navega por sesiones, inspecciona registros y gestiona políticas.
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
- ### Ámbitos
82
+ ### Niveles
83
83
 
84
- | Ámbito | Comando | Dónde escribe |
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 ámbito específico:
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 reside en `~/.failproofai/policies-config.json` (global) o en `.failproofai/policies-config.json` dentro de tu proyecto (por proyecto).
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 á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.
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` | Evita que los agentes ejecuten comandos del sistema con privilegios elevados | `allowPatterns` |
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` | Evita que los agentes pasen scripts no confiables a la shell mediante tuberías | |
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` | 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 | |
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 Authorization de la salida | |
158
- | `block-env-files` | Evita que los agentes lean archivos .env | |
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` | Recuerda a los agentes antes de modificar commits | |
166
- | `warn-git-stash-drop` | Recuerda a los agentes antes de eliminar stashes | |
167
- | `warn-all-files-staged` | Detecta un `git add -A` accidental | |
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 | |
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 un `npm publish` accidental | |
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 centrados en su tarea:
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 siendo llamada (`"Bash"`, `"Write"`, `"Read"`, …) |
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 (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.
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 necesidad de la opción `--custom` ni cambios en la configuración. Funciona como los git hooks: coloca un archivo y listo.
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
- # A nivel de proyecto — incluido en git, compartido con el equipo
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
- # A nivel de usuario — personal, se aplica a todos los proyectos
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 (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.
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 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.
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) | Cómo escribir tus propias políticas |
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 |
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 los colaboradores de failproofai
285
+ ## Nota para colaboradores de failproofai
286
286
 
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.
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
- 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**.
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, 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 où les politiques ont été déclenchées.
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 en local — aucune donnée ne quitte votre machine.
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
- Inscrit les entrées de hook dans `~/.claude/settings.json`. Claude Code invoquera désormais failproofai avant et après chaque appel d'outil.
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 de portée
82
+ ### Niveaux
83
83
 
84
- | Portée | Commande | Fichier cible |
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 une portée spécifique :
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 rediriger des scripts non fiables vers le shell | |
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` | Expurge les blocs de clés privées PEM des sorties | |
157
- | `sanitize-bearer-tokens` | Expurge les jetons Authorization Bearer des sorties | |
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 l'écriture dans les fichiers de clés privées et de certificats | `additionalPatterns` |
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` | 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` |
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 bien d'autres | | |
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
- Écrivez vos propres politiques pour maintenir les agents fiables et concentrés sur leurs tâches :
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
- Installation avec :
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 affiché à Claude |
213
- | `instruct(message)` | Ajoute du contexte au prompt de Claude ; ne bloque pas |
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 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.
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 `--custom` ni modification de configuration n'est nécessaire. Fonctionne comme les hooks git : déposez un fichier, il s'active tout seul.
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 — versionné dans git, partagé avec l'équipe
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 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.
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, paramètre d'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, 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
- | [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 |
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
- | [Testing](docs/testing.mdx) | Exécuter les tests et en écrire de nouveaux |
268
+ | [Tests](docs/testing.mdx) | Exécuter les tests et en écrire de nouveaux |
269
269
 
270
- ### Lancer la documentation en local
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, l'exécution de `npx -y failproofai` à l'intérieur même du projet failproofai crée un conflit d'autoréférence.
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
- ## Contribuer
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
- 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).
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).