Arquitectura de Herramientas de Codificación con IA: Revelaciones de la Fuga del Código Fuente de Claude

Ashley Innocent

Ashley Innocent

1 April 2026

Arquitectura de Herramientas de Codificación con IA: Revelaciones de la Fuga del Código Fuente de Claude

Apidog para empresas

Despliegue local

SSO & RBAC

Conforme con SOC 2

Explorar Apidog Enterprise

TL;DR

Anthropic envió accidentalmente un archivo .map con el paquete npm de Claude Code, exponiendo el código fuente completo y legible de su herramienta CLI. La fuga revela mecanismos de antidistilación con inyección de herramientas falsas, un motor de expresiones regulares para la detección de frustración, un "modo encubierto" que oculta la autoría de IA en commits de código abierto y un modo de agente autónomo no lanzado llamado KAIROS. Aquí te explicamos lo que los desarrolladores de API deben saber sobre cómo funcionan las herramientas de codificación de IA bajo el capó.

Introducción

El 31 de marzo de 2026, el investigador de seguridad Chaofan Shou descubrió que Anthropic había enviado un archivo de mapa de origen (.map) junto con el paquete npm de Claude Code. Los mapas de origen son archivos de depuración que mapean el código de producción minificado de vuelta al código fuente legible por humanos. Se supone que deben eliminarse antes de la publicación.

Pero no lo estaban. El código fuente completo de Claude Code, con comentarios, nombres en clave internos y detalles arquitectónicos, era legible por cualquiera que descargara el paquete.

El descubrimiento alcanzó el puesto número 1 en Hacker News (1.888 puntos, 926 comentarios) y se difundió por Reddit, Twitter y foros de desarrolladores en cuestión de horas. Anthropic retiró el paquete, pero el código ya había sido copiado y analizado extensamente.

💡
Ya sea que utilices Claude Code, Cursor, GitHub Copilot o la plataforma de desarrollo de API de Apidog, esta fuga proporciona una rara visión técnica sobre cómo funcionan las herramientas de codificación de IA. Comprender estos detalles internos te ayuda a tomar decisiones informadas sobre qué herramientas confiar con tu base de código. Prueba Apidog gratis para un desarrollo de API transparente y sin dependencias.
botón

Este artículo analiza los hallazgos técnicos clave y lo que significan para los desarrolladores que dependen de herramientas de codificación de IA.

Cómo se filtró el código fuente

La causa raíz: un error en la herramienta de compilación Bun

Claude Code está construido sobre Bun, un tiempo de ejecución alternativo de JavaScript. El 11 de marzo de 2026, se presentó un error contra Bun (oven-sh/bun#28001) informando que los mapas de origen se servían en modo de producción a pesar de que la documentación de Bun especificaba que debían deshabilitarse.

El pipeline de compilación de Anthropic desencadenó este error. Cuando publicaron el paquete npm de Claude Code, el archivo .map se incluyó en la distribución. Cualquiera que ejecutara npm pack @anthropic-ai/claude-code o inspeccionara el contenido del paquete podía acceder al código fuente completo y sin minificar.

La ironía es notable: un error en la propia cadena de herramientas de Anthropic, el tiempo de ejecución de Bun que eligieron para Claude Code, filtró su código fuente propietario a través del registro npm al que publican. El mismo registro npm que, el mismo día, distribuyó el paquete Axios comprometido.

Qué fue expuesto

La fuga incluyó:

Esto no es una fuga parcial ni una versión de código abierto saneada. Es la base de código de producción con el contexto de ingeniería interno intacto.

Antidistilación: protección contra el robo de modelos

Inyección de herramientas falsas

Uno de los hallazgos más discutidos es el sistema de antidistilación de Claude Code. En claude.ts (líneas 301-313), cuando la bandera ANTI_DISTILLATION_CC está habilitada, el sistema envía anti_distillation: ['fake_tools'] en las solicitudes de API.

Esto instruye al servidor de Anthropic para que inyecte definiciones de herramientas de señuelo en la instrucción del sistema. El propósito: si un competidor registra el tráfico de la API para extraer y replicar el comportamiento de uso de herramientas de Claude, los datos de entrenamiento contendrán herramientas falsas que no existen. Un modelo entrenado con estos datos envenenados alucinaría capacidades inexistentes.

Esta es una defensa práctica contra una amenaza real. Los competidores pueden configurar servicios proxy que intercepten las llamadas a la API de Claude, registren las instrucciones del sistema y las definiciones de herramientas, y utilicen esos datos para ajustar sus propios modelos. Las herramientas falsas hacen que estos datos capturados no sean fiables.

Resumen de texto del conector

Un segundo mecanismo de antidistilación en betas.ts (líneas 279-298) adopta un enfoque diferente. Este sistema del lado del servidor almacena en búfer el texto del asistente entre llamadas a herramientas, lo resume y devuelve el resumen con una firma criptográfica.

En turnos de conversación posteriores, el texto original se puede restaurar a partir de la firma. Pero cualquiera que registre el tráfico de la API solo captura los resúmenes, no el texto completo de razonamiento. Esto dificulta la ingeniería inversa de los patrones de razonamiento de Claude a partir de conversaciones de API interceptadas.

¿Qué tan fácil es evitarlos?

El análisis reveló varias formas de eludirlos:

Esto no significa que las protecciones sean inútiles. Aumentan el costo y la complejidad de la destilación automatizada de modelos. Pero son medidas de defensa en profundidad, no escudos inquebrantables.

Modo encubierto: ocultando la autoría de la IA

Qué hace el modo encubierto

El archivo undercover.ts contiene uno de los hallazgos más controvertidos de la fuga. Cuando Claude Code opera en repositorios no-Anthropic, activa un sistema de enmascaramiento de comportamiento que evita:

El comentario del código fuente es explícito: "NO hay apagado forzado. Esto protege contra fugas de nombres en clave del modelo."

Por qué esto es importante para el código abierto

El efecto práctico: cuando los empleados de Anthropic usan Claude Code para escribir commits, solicitudes de extracción o revisiones de código en proyectos de código abierto, la herramienta oculta la evidencia de la participación de la IA. Las contribuciones generadas por IA a los repositorios de código abierto carecerían de divulgación de la autoría de la IA.

Esto plantea preguntas sobre la transparencia en el desarrollo de código abierto. Varios proyectos de código abierto han adoptado políticas que exigen la divulgación del código generado por IA. Si una herramienta está diseñada para ocultar su participación, esas políticas se vuelven más difíciles de aplicar.

El contraargumento: el propósito declarado del modo encubierto es prevenir fugas de nombres en clave de proyectos internos, no ocultar el uso de IA. Pero la implementación no distingue entre "no revelar nombres internos" y "no revelar que eres una herramienta de IA". Bloquea ambos.

Detección de frustración mediante expresiones regulares

Cómo funciona

El archivo userPromptKeywords.ts implementa la detección de frustración del usuario mediante la coincidencia de patrones de expresiones regulares. El sistema escanea las entradas del usuario en busca de blasfemias y lenguaje emocionalmente cargado para evaluar si el usuario está frustrado con las respuestas de Claude Code.

La respuesta de la comunidad a este hallazgo fue dividida. Algunos lo vieron como una investigación de UX razonable; comprender cuándo los usuarios están frustrados ayuda a mejorar el producto. Otros lo vieron como una vigilancia de los estados emocionales del usuario.

La ironía técnica

Varios comentaristas de HN señalaron la ironía: Anthropic construye los modelos de lenguaje más avanzados del mundo, pero utiliza expresiones regulares para detectar las emociones del usuario. El comentario de ingeniería en la fuente explica la razón. La detección basada en expresiones regulares es más rápida y económica que la inferencia de LLM para este caso de uso. Ejecutar una llamada a un LLM para clasificar el sentimiento en cada entrada del usuario añadiría latencia y costo a cada interacción.

Es una decisión de ingeniería pragmática. Expresiones regulares rápidas para la detección de sentimientos en rutas críticas, reservando las llamadas a LLM para las tareas de codificación principales. Que te sientas cómodo con que tu herramienta de codificación de IA ejecute análisis emocional en tus entradas es una decisión personal.

Atestación de cliente nativo

Verificación criptográfica de solicitudes

En system.ts (líneas 59-95), las solicitudes de API de Claude Code incluyen un marcador de posición cch=554eb. La pila HTTP nativa de Bun (escrita en Zig) sobrescribe este marcador de posición con un hash calculado antes de que la solicitud salga del cliente.

Los servidores de Anthropic validan este hash para verificar criptográficamente que las solicitudes se originaron en el binario legítimo de Claude Code, no en una bifurcación, un envoltorio o un proxy.

Por qué existe esto

Este sistema de atestación es el mecanismo de aplicación técnica detrás de las acciones legales de Anthropic contra las bifurcaciones no autorizadas de Claude Code. Si una bifurcación no puede producir hashes de atestación válidos, los servidores de Anthropic pueden rechazar sus solicitudes.

Sin embargo, la implementación tiene límites. Está protegida por banderas de características en tiempo de compilación y se puede deshabilitar mediante la configuración CLAUDE_CODE_ATTRIBUTION_HEADER o los interruptores de apagado de GrowthBook. Esto sugiere que la aplicación es gradual, y Anthropic puede endurecer o relajar las restricciones según sea necesario.

Para los desarrolladores de API, esto es relevante porque demuestra cómo las herramientas SaaS pueden aplicar la autenticidad del cliente a nivel de protocolo. Existen patrones similares en el desarrollo de API móviles, donde la atestación de aplicaciones evita el acceso no autorizado a la API. Si estás diseñando API con verificación de cliente, las herramientas de prueba de Apidog pueden ayudarte a validar los flujos de atestación y el anclaje de certificados en diferentes configuraciones de cliente.

KAIROS: el modo de agente autónomo no lanzado

Lo que revela el código

Las referencias a lo largo del código base apuntan a un modo de característica oculta no lanzado llamado KAIROS. El andamiaje descubierto incluye:

Qué significa esto

KAIROS parece ser un agente siempre activo, que se ejecuta en segundo plano y monitorea tus repositorios y realiza tareas autónomas sin la interacción directa del usuario. Piensa en ello como Claude Code ejecutándose continuamente, observando los cambios y sugiriendo o realizando proactivamente modificaciones de código.

Esto se alinea con la tendencia más amplia de la industria hacia los agentes de codificación autónomos. El Modo Agente de GitHub Copilot, el procesamiento en segundo plano de Cursor y el Agente Smith de Google apuntan a herramientas de codificación de IA que no esperan a que preguntes. Observan, aprenden y actúan por sí mismas.

Para los equipos de desarrollo de API, los agentes autónomos que modifican los repositorios de código plantean preguntas sobre la estabilidad del contrato de API. Si un agente actualiza el código de tu punto final de API, ¿también actualiza la especificación OpenAPI? ¿Las pruebas? ¿La documentación? Estos son los problemas de flujo de trabajo que las plataformas integradas como Apidog están diseñadas para resolver, manteniendo el diseño de la API, las pruebas, los mocks y la documentación sincronizados, independientemente de lo que active un cambio de código.

Optimizaciones de rendimiento expuestas

Renderizado de terminal: técnicas de motor de juego

Los archivos ink/screen.ts y ink/optimizer.ts revelan que Claude Code utiliza técnicas de motor de juego para el renderizado de terminal:

Esto explica por qué Claude Code se siente receptivo incluso durante largas transmisiones de salida. La capa de renderizado está optimizada a un nivel inusual para herramientas CLI.

Economía del caché de prompts

promptCacheBreakDetection.ts rastrea 14 vectores distintos de ruptura de caché con "retenes pegajosos" que evitan que los cambios de modo invaliden los prompts en caché. Esto refleja lo importante que es el almacenamiento en caché de prompts económicamente para el modelo de negocio de Claude Code.

Cada ruptura de caché obliga a Anthropic a reprocesar todo el prompt del sistema y el contexto de la conversación. Al precio por token de Claude, evitar la invalidación innecesaria del caché ahorra importantes costos de infraestructura. El hecho de que rastreen 14 vectores de ruptura de caché separados sugiere que el equipo de ingeniería trata la optimización del caché de prompts como una preocupación de rendimiento de primera clase.

La cascada de fallos de autocompactación

Un comentario en autoCompact.ts (líneas 68-70) reveló un problema de producción significativo: "1.279 sesiones tuvieron más de 50 fallos consecutivos (hasta 3.272) en una sola sesión, desperdiciando ~250K llamadas a la API/día a nivel global".

La solución de tres líneas estableció MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3. Este error solo aparece a gran escala. Cuando la gestión del contexto falla, el sistema reintenta agresivamente, consumiendo llamadas a la API sin avanzar. Para una herramienta con millones de sesiones activas, 250K llamadas a la API desperdiciadas por día se traducen en un costo sustancial.

Este contexto ayuda a explicar la reciente publicación en Hacker News sobre usuarios de Claude Code "alcanzando los límites de uso mucho más rápido de lo esperado" (275 puntos). Parte de ese consumo de límites puede atribuirse a errores de eficiencia internos como este.

Detalles de endurecimiento de la seguridad

Seguridad de Bash: 23 verificaciones numeradas

bashSecurity.ts implementa 23 verificaciones de seguridad numeradas para la ejecución de comandos de shell, incluyendo defensas contra:

Esto es inusualmente exhaustivo para una herramienta CLI. La mayoría de las herramientas de codificación de IA que ejecutan comandos de shell tienen una sanitización básica. Las 23 verificaciones de Claude Code sugieren que han lidiado (o se han defendido proactivamente) con vectores de ataque creativos.

Para los desarrolladores de API que utilizan herramientas de IA para generar y ejecutar scripts de prueba de API, este nivel de seguridad de shell es relevante. Si tu herramienta de codificación de IA ejecuta comandos curl, consultas de bases de datos o scripts de infraestructura, la seguridad de la capa de ejecución de comandos es importante.

Qué deberían aprender los desarrolladores de API de esto

1. Entiende lo que hacen tus herramientas de codificación de IA entre bastidores

La fuga de Claude Code revela capacidades que la mayoría de los usuarios no sabían que existían: medidas de antidistilación, detección de frustración, modo encubierto, atestación de cliente. Otras herramientas de codificación de IA tienen sus propios mecanismos internos que los usuarios no pueden inspeccionar.

Pregúntate: ¿sabes qué datos recopila tu herramienta de codificación de IA? ¿Qué envía a servidores externos? ¿Si enmascara su propia participación en tu código?

2. La cadena de herramientas de compilación es una superficie de ataque

El código fuente de Anthropic se filtró debido a un error de Bun. El mismo día, Axios fue comprometido mediante el secuestro de una cuenta npm. Tus herramientas de compilación, administradores de paquetes y entornos de tiempo de ejecución son todos puntos de fallo potenciales.

Para el desarrollo de API, esto significa:

3. Las herramientas de codificación de IA están convergiendo hacia la operación autónoma

KAIROS, el Modo Agente de GitHub Copilot, el Agente Smith de Google. La dirección es clara: herramientas de IA que se ejecutan continuamente, observan repositorios y actúan de forma autónoma.

Los equipos de API deben prepararse para esto asegurándose de que su ciclo de vida de API se gestione en una única plataforma. Cuando un agente autónomo modifica la implementación de tu API, tus pruebas, mocks, documentación y especificaciones deben permanecer sincronizados. Las herramientas desconectadas crean desincronización. Las plataformas integradas como Apidog mantienen sincronizado todo el ciclo de vida de la API, ya sea que los cambios provengan de desarrolladores humanos o de agentes de IA.

4. La transparencia del código fuente importa

Esta fuga ocurrió porque el código era propietario y se expuso accidentalmente. Las herramientas de IA de código abierto no tienen este riesgo porque su código ya es público.

Al evaluar herramientas de codificación de IA, considera si prefieres herramientas cuyos internos puedes inspeccionar frente a herramientas que dependen de la confianza en el proveedor. Ambos enfoques tienen ventajas y desventajas, pero la fuga de Claude Code demuestra cómo se ve "confiar en el proveedor" cuando el código del proveedor revela comportamientos inesperados.

Preguntas Frecuentes

¿Es seguro usar Claude Code después de la fuga del código fuente?

Sí. La fuga expuso el código fuente, no datos de usuario. Anthropic eliminó el archivo .map y el código fuente ya no se distribuye con el paquete npm. Las características reveladas (antidistilación, detección de frustración, modo encubierto) son decisiones arquitectónicas, no vulnerabilidades de seguridad. Que te sientas cómodo con esas decisiones es una cuestión separada de la seguridad.

¿Qué es el "modo encubierto" en Claude Code?

El modo encubierto evita que Claude Code revele nombres de proyectos internos de Anthropic, nombres en clave y su propia identidad cuando opera en repositorios no-Anthropic. Se activa automáticamente y no se puede desactivar. El efecto práctico es que el código generado por IA en proyectos de código abierto no se identificará como escrito por Claude Code.

¿Qué son las herramientas falsas en Claude Code?

Cuando la antidistilación está habilitada, el servidor de Anthropic inyecta definiciones de herramientas de señuelo en la instrucción del sistema. Estas herramientas falsas no hacen nada. Existen para envenenar los datos de entrenamiento de los competidores que registran el tráfico de la API para entrenar modelos competitivos. Si alguien intenta replicar el comportamiento de Claude a partir de datos interceptados, su modelo alucinará capacidades inexistentes.

¿Qué es KAIROS en Claude Code?

KAIROS es un modo de agente autónomo no lanzado y con características ocultas que se encuentra en el código fuente de Claude Code. Incluye andamiaje para trabajadores de demonio en segundo plano, suscripciones a webhooks de GitHub y una habilidad /dream para la destilación de memoria. Sugiere que Anthropic está construyendo un agente de codificación siempre activo que monitorea los repositorios y actúa de forma autónoma.

¿Cómo se filtró el código fuente de Claude Code?

Un error de tiempo de ejecución de Bun (oven-sh/bun#28001) hace que los mapas de origen se incluyan en las compilaciones de producción, incluso cuando no deberían. Dado que Claude Code utiliza Bun como su herramienta de compilación, este error envió el archivo .map con el paquete npm. Cualquiera que inspeccionara el paquete podía leer el código fuente completo y sin minificar.

¿Afecta esta fuga a los usuarios de la API de Claude?

No. La fuga expuso el código fuente de la herramienta CLI de Claude Code, no la propia API de Claude. Las claves de API, los datos de usuario y los pesos del modelo no estuvieron involucrados. Los usuarios de la API de Claude pueden seguir usando la API normalmente. Los mecanismos de antidistilación revelados son específicos del pipeline de solicitudes de Claude Code.

¿Debería preocuparme por la detección de frustración en mis herramientas de codificación de IA?

Eso depende de tu nivel de comodidad. Claude Code utiliza patrones de expresiones regulares para detectar la frustración del usuario (blasfemias, lenguaje emocional) en los prompts. Esto es más rápido y económico que el análisis de sentimientos basado en LLM. Los datos parecen usarse para mejorar el producto, no se comparten externamente. Otras herramientas de IA pueden tener características similares sin divulgarlas.

¿Cómo se relaciona esto con el ataque npm de Axios el mismo día?

Ambos eventos ocurrieron el 31 de marzo de 2026, pero no están relacionados. El ataque de Axios fue un compromiso deliberado de la cadena de suministro por parte de hackers patrocinados por el estado. La fuga de Claude Code fue un error accidental de configuración de compilación. Juntos, han intensificado el escrutinio de la seguridad de los paquetes npm y la confianza que los desarrolladores depositan en las herramientas distribuidas a través de los registros de paquetes.

Puntos clave

Comprender cómo funcionan tus herramientas de codificación de IA bajo el capó te ayuda a tomar mejores decisiones sobre la confianza, la privacidad y el diseño del flujo de trabajo. Para los equipos de API, la lección clave es que tus herramientas de desarrollo forman parte de tu superficie de seguridad. Elige herramientas que puedas verificar y construye flujos de trabajo que se mantengan consistentes, independientemente de si un humano o un agente de IA realiza el siguiente cambio.

botón

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs