{"project":"Motor Robles-Martínez","description":"Observatorio de patrones de encuadre observables en respuestas de modelos de lenguaje. La respuesta funciona como evidencia; la autoexplicación, como hipótesis.","motor_url":"https://singularitybots.ai/motor-vivo","blog_url":"https://singularitybots.ai/","introspection_url":"https://singularitybots.ai/api/motor/introspection","git_commit":"2fb5818e84c6538709cd692001c9e9c1b7d4fd2b","schema_version":2,"method_version":1,"modules":["red-conexion — chat, personajes, conexión con OpenRouter","corpus-etimologia — etimología por palabra, narración por modelo","sedimentacion — dossier de palabra, sedimento por sesión","render-matriz — visualización de estratos/transposiciones en tiempo real","medicion-metodo — detección de dominio, códigos de Barthes, deriva, incertidumbre","observatorio — registro y lectura de trazas","informe-exportacion — reportes compilados desde trazas","chat-sesiones — guardar/cargar sesiones de chat"],"routes":["GET /motor-vivo","GET /api/models","POST /api/chat","POST /api/documento (multipart, campo \"documento\", .pdf/.docx, tope 25MB — solo extrae texto, no llama al modelo)","GET /api/etymology","GET /api/etymology/status","POST /api/traces (requiere X-Traces-Token)","GET /api/traces (requiere X-Traces-Token)","GET /api/traces/export (requiere X-Traces-Token)","GET /api/traces/:id/history (requiere X-Traces-Token)","POST /api/traces/:id/interpretations (requiere X-Traces-Token)","GET /api/comparisons y /api/comparisons/:id (requiere X-Traces-Token)","GET /api/corpus","POST /api/corpus (requiere X-Traces-Token salvo opt-in explícito)","DELETE /api/corpus?word= (requiere X-Traces-Token)","GET /snapshot (versión textual del blog, generada desde la fuente editorial durante el build)","GET /.well-known/robles-martinez.json","GET /api/motor/introspection"],"trace_schema":{"trace_type":"observation | experiment | comparison; interpretation vive como registro derivado","series_id":"agrupa una línea longitudinal — una conversación real; null si es experimento","experiment_id":"agrupa un corte transversal — mismo objeto, varios modelos, sin orden entre sí; null si es observación","comparison_id":"agrupa respuestas multimodelo al mismo prompt; conserva modelo solicitado y resuelto","previous_trace_id":"encadena a la traza anterior de la misma serie por id explícito, no por posición en el archivo","evidence_hash":"liga evidencia original e interpretaciones derivadas sin reescribir la fuente"},"features":{"etimNarraciones_por_modelo":true,"toggle_privado_por_personaje":true,"autenticacion_trazas":true,"lista_blanca_modelos_gratis_sin_auth":true,"rate_limiting":true,"corpus_escritura_anonima_append_only":false,"comparacion_multimodelo_ui":true,"comparacion_multimodelo_persistida":true,"reinterpretacion_por_method_version":true,"experimento_estabilidad_parafrasis":false},"public_model_priority":["nvidia/nemotron-3-ultra-550b-a55b:free","nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free","openrouter/free"],"nota":"Generado en cada request desde el estado real del código y las variables de entorno del servidor — no es un documento estático que pueda desincronizarse."}