Ir al contenido

Live-ingest — el productor de observación en proceso

Live-ingest (modules/liveingest) es uno de los 30 módulos conectados — un productor en proceso más que una ranura de capacidad. No forma parte del mapa histórico numerado I–XXIII. Existe por una razón arquitectónica: un SourceConnector fuera de proceso solo puede transmitir la suma de observación sellada (edge / cost / finding) sobre su contrato gRPC, que no tiene RPC de eventos ni campo de texto — así que no puede publicar un evento detective. Solo un módulo en proceso posee la capacidad de publicar en el bus, así que live-ingest es la mitad “live-tap” que emite esos eventos para los módulos que ya los consumen.

El connector de telemetría de Claude del control plane se ejecuta fuera de proceso como un plugin embebido; su stream Gather porta únicamente el oneof congelado de Observation. Ese contrato de cable está congelado deliberadamente (con comprobación de cambios rompedores; véase la política de estabilidad de la API) y no porta ningún extracto ni superficie de texto. Live-ingest es el productor en proceso que suministra los dos eventos que el connector estructuralmente no puede: guardrail.observed para el módulo IX y voice.telemetry.observed para el módulo XVI. No posee entidades ni superficie REST; es un publicador hacia el bus de eventos.

Este es el productor que faltaba para la cadena de detectores de seguridad que ya consume guardrail.observed. Es deny-closed y de adhesión explícita:

  • Por defecto (inspección apagada). El módulo no se suscribe a nada, no publica nada y registra su mitad vacía de forma visible — nunca un no-op silencioso.
  • Con la adhesión explícita del operador activada. Se suscribe a edge.observed y, para una arista cuyo recurso es una referencia de herramienta resuelta, deriva un extracto tool_args acotado y ya expurgado y lo publica como un ObservedText que porta únicamente campos de referencia no sensibles. El extracto es el identificador de recurso que el connector ya expurgó en origen (una ruta saneada, un host+ruta sin query ni credenciales, un nombre de programa Bash con sus argumentos descartados, una referencia de herramienta MCP). Live-ingest lo acota y la cadena de seguridad lo recorta de nuevo — triple defensa. El contenido del argumento se descarta en el connector y nunca llega al bus.

La cadena de detectores emite entonces un finding por detección de forma automática, sobre tráfico real.

Un productor en proceso cableado únicamente para metadatos de turno de voz/tiempo real incluidos en allow-list — nunca audio y nunca texto de transcripción. El payload es un valor tipado que por diseño no puede portar audio, transcripción ni PII, y el consumidor rechaza cualquier muestra con una clave fuera de la allow-list o con una referencia de sesión/agente ausente. Sin ningún backend de voz en tiempo real en este build, nada lo llama: la mitad de observación está honestamente dormida y no fabrica telemetría hasta que un backend la alimenta.