Files
vectorize-io__hindsight/hindsight-control-plane/src/messages/es.json
T
Nicolò Boschi e1310d34f9 feat(api,control-plane): recall results carry the attachments behind each fact (#4277)
* feat(api,control-plane): recall results carry the attachments behind each fact

A recall result reported no attachments, so an agent that recalled a fact
derived from a screenshot had no way to show it. The only handle available was
`include.chunks`, and going through the chunk is wrong: a chunk lists every
attachment its text references, so a fact drawn from the prose beside a
screenshot would be shown that screenshot as its evidence.

Recall now returns `attachments[]` on each result, resolved from the per-fact
edge the extractor recorded at retain time — the same edge the memory read
endpoints already return. It is unconditional rather than another `include`
flag: the ids live on `memory_units.attachment_ids`, so a bank that has retained
no attachments pays one indexed read that resolves nothing.

The Recall Analyzer renders them beneath each result, and drops the score
breakdown row in favour of entity and tag chips (the shared facet chips) plus
the occurred/mentioned timestamps — the per-signal scores are a retrieval
debugging concern and are already in the Trace tab. Scores render at four
significant digits with the exact value on hover; fixed decimals would collapse
0.001125 and 0.001004 to the same "0.001", which is why they were unrounded
before. Entities are included by default because that flag gates the entity
names on each result, not just the observations block.

* chore: regenerate the docs-skill OpenAPI reference
2026-09-09 18:37:52 +02:00

2014 lines
108 KiB
JSON

{
"common": {
"save": "Guardar",
"cancel": "Cancelar",
"delete": "Eliminar",
"close": "Cerrar",
"loading": "Cargando...",
"error": "Algo salió mal",
"confirm": "Confirmar",
"back": "Atrás",
"next": "Siguiente",
"submit": "Enviar",
"create": "Crear",
"edit": "Editar",
"copy": "Copiar",
"copied": "¡Copiado!",
"search": "Buscar",
"noResults": "No se encontraron resultados",
"required": "Obligatorio",
"optional": "Opcional",
"enabled": "Activado",
"disabled": "Desactivado",
"email": "Correo electrónico",
"password": "Contraseña",
"emailPlaceholder": "tu@ejemplo.com",
"termsOfService": "Términos de servicio",
"privacyPolicy": "Política de privacidad",
"changeLanguage": "Cambiar idioma",
"saving": "Guardando...",
"actions": "Acciones",
"harness": "Harness",
"copiedToClipboard": "Copiado al portapapeles",
"tryAgain": "Intentar de nuevo",
"you": "Tú",
"remove": "Eliminar",
"days": "días",
"filterByTagPlaceholder": "Filtrar por etiqueta…",
"filterByTag": "Filtrar por etiqueta",
"removeTag": "Eliminar etiqueta {tag}",
"clear": "Limpiar",
"matchAny": "cualquiera",
"matchAll": "todas",
"matchAnyTooltip": "Coincidir con cualquier etiqueta seleccionada",
"matchAllTooltip": "Coincidir con todas las etiquetas seleccionadas"
},
"nav": {
"home": "Ir al inicio",
"darkMode": "Cambiar a modo oscuro",
"lightMode": "Cambiar a modo claro",
"bank": {
"select": "Selecciona un banco de memoria...",
"allBanks": "Todos los bancos de memoria",
"search": "Buscar bancos de memoria...",
"empty": "Aún no hay bancos de memoria.",
"noSearchResults": "Ningún banco coincide con tu búsqueda.",
"create": "Crear nuevo banco",
"switchTitle": "Cambiar banco de memoria",
"returnTo": "Volver a {bank}",
"copyName": "Copiar nombre",
"copied": "Copiado al portapapeles"
},
"viewOnGitHub": "Ver en GitHub"
},
"bank": {
"bankConfiguration": "Configuración del banco",
"bankConfigurationDescription": "Administra los ajustes, el perfil y las operaciones del banco.",
"actions": "Acciones",
"health": "Estado",
"exportTemplate": "Exportar plantilla",
"consolidating": "Consolidando...",
"runConsolidation": "Ejecutar consolidación",
"recovering": "Recuperando...",
"recoverConsolidation": "Recuperar consolidación",
"clearObservations": "Limpiar observaciones",
"resetConfiguration": "Restablecer configuración",
"deleteBank": "Eliminar banco",
"general": "General",
"configuration": "Configuración",
"webhooks": "Webhooks",
"auditLogs": "Registros de auditoría",
"webhooksDescription": "Administra los endpoints de webhook para recibir notificaciones de eventos de este banco de memoria.",
"auditLogsDescription": "Visualiza el registro de auditoría de todas las operaciones realizadas en este banco de memoria.",
"llmRequests": "Solicitudes LLM",
"llmRequestsDescription": "Rastrea cada llamada a LLM realizada para este banco de memoria, incluidos los fallos.",
"recallAnalyzer": "Analizador de Recall",
"recallAnalyzerDescription": "Analiza el recall de memoria con información de rastreo detallada y métodos de recuperación.",
"reflect": "Reflect",
"reflectDescription": "Ejecuta un bucle agéntico que recopila evidencia de forma autónoma y razona desde la perspectiva del banco para generar respuestas contextuales.",
"memories": "Memorias",
"memoriesDescription": "Visualiza y explora los diferentes tipos de memorias almacenadas en este banco de memoria.",
"worldFacts": "Hechos del mundo",
"experience": "Experiencia",
"observations": "Observaciones",
"mentalModels": "Modelos mentales",
"worldFactsDescription": "Hechos objetivos sobre el mundo recibidos de fuentes externas.",
"experienceDescription": "Las propias acciones, interacciones y experiencias en primera persona del banco.",
"observationsDescription": "Conocimiento consolidado sintetizado a partir de hechos: patrones, preferencias y aprendizajes que emergen de la evidencia acumulada.",
"mentalModelsDescription": "Resúmenes seleccionados a partir de consultas: instantáneas de conocimiento reutilizables que evolucionan con las memorias.",
"documents": "Documentos",
"documentsDescription": "Administra documentos y extrae nuevas memorias.",
"entities": "Entidades",
"entitiesDescription": "Explora entidades (personas, organizaciones, lugares) mencionadas en las memorias.",
"deleteMemoryBank": "Eliminar banco de memoria",
"deleteConfirmMessage": "¿Estás absolutamente seguro de que quieres eliminar {bankName}?",
"deleteWillPermanently": "Esta acción eliminará permanentemente:",
"allMemories": "Todas las memorias",
"allLinksAndConnections": "Todos los vínculos y conexiones",
"allDocuments": "Todos los documentos",
"bankProfileAndConfig": "El perfil y la configuración del banco",
"cannotBeUndone": "Esta acción no se puede deshacer.",
"typeToConfirm": "Escribe {bankName} para confirmar:",
"bankNamePlaceholder": "Nombre del banco",
"deleting": "Eliminando...",
"resetConfigTitle": "Restablecer configuración",
"resetConfigConfirm": "¿Estás seguro de que quieres restablecer todas las configuraciones personalizadas de {bankName}?",
"resetConfigWarning": "Todos los ajustes por banco (retain, observations, reflect) volverán a los valores predeterminados de la organización o del servidor. Esto no afecta las memorias, entidades ni el perfil del banco.",
"resetting": "Restableciendo...",
"clearObservationsTitle": "Limpiar observaciones",
"clearObservationsConfirm": "¿Estás seguro de que quieres limpiar todas las observaciones de {bankName}?",
"clearObservationsWarning": "Esto eliminará todo el conocimiento consolidado. Las observaciones se regenerarán la próxima vez que se ejecute la consolidación.",
"clearing": "Limpiando...",
"bankDeleted": "Banco de memoria eliminado",
"bankDeletedDescription": "El banco '{bankName}' ha sido eliminado permanentemente.",
"failedToDeleteBank": "Error al eliminar el banco",
"observationsCleared": "Observaciones limpiadas",
"observationsClearedDefault": "Observaciones limpiadas exitosamente",
"failedToClearObservations": "Error al limpiar las observaciones",
"consolidationAlreadyInProgress": "Consolidación ya en progreso",
"consolidationStarted": "Consolidación iniciada",
"failedToTriggerConsolidation": "Error al iniciar la consolidación",
"templateCopied": "Plantilla copiada al portapapeles",
"failedToExportTemplate": "Error al exportar la plantilla",
"recoveredMemories": "Se recuperaron {count} {count, plural, one {memoria fallida} other {memorias fallidas}} para re-consolidación",
"failedToRecoverConsolidation": "Error al recuperar la consolidación",
"configResetToDefaults": "Configuración restablecida a los valores predeterminados",
"failedToResetConfig": "Error al restablecer la configuración",
"sidebar": {
"memories": "Memorias",
"recall": "Recall",
"reflect": "Reflect",
"documents": "Documentos",
"entities": "Entidades",
"memoryBank": "Banco de memoria",
"expandSidebar": "Expandir barra lateral",
"collapseSidebar": "Contraer barra lateral",
"collapse": "Contraer",
"knowledge": "Base de conocimiento",
"home": "Home"
},
"overviewAndOperations": "Estadísticas generales y operaciones en segundo plano de este banco de memoria.",
"operations": "Operaciones",
"deleteBankPrompt": "¿Seguro que quieres eliminar el banco de memoria <bankName></bankName>?",
"deleteBankWarning": "Esta acción no se puede deshacer. Todos los recuerdos, entidades, documentos y el perfil del banco se eliminarán permanentemente.",
"resetConfigPrompt": "¿Seguro que quieres restablecer la configuración de <bankName></bankName>?",
"resetConfigDetailedWarning": "Todas las anulaciones de configuración de retención, observación y reflexión se borrarán. Esta acción no se puede deshacer.",
"clearObservationsPrompt": "¿Seguro que quieres borrar todas las observaciones de <bankName></bankName>?",
"clearObservationsDetailedWarning": "Todas las memorias de observación se eliminarán permanentemente. Esta acción no se puede deshacer.",
"observationsNotEnabled": "Observaciones no habilitadas",
"observationsDisabledMessage": "La consolidación de observaciones está deshabilitada en este servidor. Establece <envVar></envVar> para habilitarla.",
"auditLogsNotEnabled": "Registros de auditoría no habilitados",
"auditLogsDisabledMessage": "El registro de auditoría está deshabilitado en este servidor. Establece <envVar></envVar> para habilitarlo.",
"llmRequestsNotEnabled": "Solicitudes LLM no habilitadas",
"llmRequestsDisabledMessage": "El rastreo de solicitudes LLM está deshabilitado en este servidor. Establece <envVar></envVar> para habilitarlo.",
"deleteWillDeleteDetails": "Esto eliminará {memories, plural, one {# memoria} other {# memorias}}, {documents, plural, one {# documento} other {# documentos}} y {links, plural, one {# enlace} other {# enlaces}}.",
"deleteWillDeleteObservations": "Esto eliminará {count, plural, one {# observación} other {# observaciones}}.",
"memoryDefense": "Defensa de memoria",
"knowledge": "Conocimiento",
"knowledgeDescription": "Páginas y modelos mentales sintetizados a partir de los recuerdos de este banco.",
"pages": "Páginas"
},
"bankProfile": {
"noBankSelected": "Ningún banco seleccionado",
"noBankSelectedDescription": "Selecciona un banco de memoria en el menú desplegable para ver su perfil.",
"loadingProfile": "Cargando perfil...",
"dispositionProfileTitle": "Perfil de disposición",
"dispositionProfileDescription": "Rasgos que configuran cómo se forman las opiniones mediante Reflect",
"missionTitle": "Misión",
"missionDescription": "Quién es el agente y qué intenta lograr. Se usa para los modelos mentales y reflect.",
"noMissionSet": "No hay misión configurada. Establece una misión para derivar modelos mentales estructurales y personalizar las respuestas de reflect.",
"directivesTitle": "Directivas",
"directivesDescription": "Reglas estrictas que deben seguirse durante reflect",
"addDirective": "Agregar",
"noDirectivesMessage": "Aún no hay directivas. Las directivas son reglas estrictas que deben seguirse durante reflect.",
"deleteDirectiveTitle": "Eliminar directiva",
"deleteDirectiveConfirm": "¿Estás seguro de que deseas eliminar {name}?",
"deleteDirectiveWarning": "Esta acción no se puede deshacer.",
"directiveDeletedSuccess": "Directiva eliminada",
"directiveDeleteFailed": "Error al eliminar la directiva",
"errorLoadingProfile": "Error al cargar el perfil del banco",
"dispositionUpdatedSuccess": "Disposición actualizada",
"dispositionSaveFailed": "Error al guardar la disposición",
"editDispositionTitle": "Editar rasgos de disposición",
"editDispositionDescription": "Rasgos que configuran el razonamiento y la perspectiva",
"missionUpdatedSuccess": "Misión actualizada",
"missionSaveFailed": "Error al guardar la misión",
"editMissionTitle": "Editar misión",
"editMissionDescription": "Afecta cómo se crean las observaciones, reflect y los modelos mentales",
"missionPlaceholder": "Ej.: Soy PM del equipo de ingeniería. Ayudo a coordinar sprints y hacer seguimiento del progreso del proyecto...",
"directiveFormCreateTitle": "Crear directiva",
"directiveFormEditTitle": "Editar directiva",
"directiveFormDescription": "Las directivas son reglas estrictas que deben seguirse durante reflect.",
"directiveNameLabel": "Nombre *",
"directiveNamePlaceholder": "Ej.: Política de competidores",
"directiveRuleLabel": "Regla *",
"directiveRulePlaceholder": "Ej.: Nunca mencionar productos de la competencia directamente.",
"directiveTagsLabel": "Etiquetas",
"directiveTagsOptional": "(opcional)",
"directiveTagsPlaceholder": "Ej.: proyecto-x, equipo-alpha (separadas por comas)",
"directiveCreatedSuccess": "Directiva creada",
"directiveCreateFailed": "Error al crear la directiva",
"directiveUpdatedSuccess": "Directiva actualizada",
"directiveUpdateFailed": "Error al actualizar la directiva",
"directiveDetailRuleLabel": "Regla",
"directiveDetailTagsLabel": "Etiquetas",
"directiveDetailIdLabel": "ID",
"directiveDetailBadge": "directiva",
"skepticismLabel": "Escepticismo",
"skepticismDescription": "Qué tan escéptico o confiado al formar opiniones",
"skepticismLow": "Confiado",
"skepticismHigh": "Escéptico",
"literalismLabel": "Literalismo",
"literalismDescription": "Qué tan literalmente interpretar la información al formar opiniones",
"literalismLow": "Flexible",
"literalismHigh": "Literal",
"empathyLabel": "Empatía",
"empathyDescription": "Cuánto considerar el contexto emocional al formar opiniones",
"empathyLow": "Distante",
"empathyHigh": "Empático",
"saveChanges": "Guardar cambios",
"saving": "Guardando...",
"cancel": "Cancelar",
"delete": "Eliminar",
"edit": "Editar",
"create": "Crear",
"save": "Guardar"
},
"bankStats": {
"memoryStore": "Almacén de memoria",
"memories": "Memorias",
"documents": "Documentos",
"links": "Vínculos",
"memoryComposition": "Composición de memoria",
"world": "Mundo",
"experience": "Experiencia",
"observations": "Observaciones",
"noMemoriesYet": "Aún no hay memorias",
"linkTypes": "Tipos de vínculo",
"temporal": "Temporal",
"semantic": "Semántico",
"entity": "Entidad",
"noLinksYet": "Aún no hay vínculos",
"consolidation": "Consolidación",
"testLlm": "Probar conexión del LLM",
"testingLlm": "Probando…",
"llmConnected": "Conectado",
"llmNotConfigured": "Sin LLM configurado",
"llmAuthFailed": "Clave de API no válida",
"llmUnreachable": "Inaccesible",
"llmTimeout": "Tiempo agotado",
"llmTestHint": "Comprueba los LLM que usa este banco (retención, consolidación, reflexión).",
"llmHealthTitle": "Conectividad del LLM",
"llmRetest": "Volver a probar",
"opRetain": "Retención",
"opReflect": "Reflexión",
"done": "Completado",
"pending": "Pendiente",
"failed": "Fallido",
"last": "Último",
"viewFailedMemory": "Ver {count} memoria fallida",
"viewFailedMemories": "Ver {count} memorias fallidas",
"viewFailedMemoriesLabel": "Ver memorias fallidas",
"mentalModels": "Modelos mentales",
"noMentalModels": "No hay modelos mentales",
"total": "Total",
"activity": "Actividad",
"memoriesIngested": "Memorias ingestadas",
"period": "Período",
"noMemoriesIngestedInPeriod": "No se ingestaron memorias en este período",
"totalSuffix": "total",
"operations": "Operaciones",
"noOperationsYet": "Aún no hay operaciones",
"opsCompleted": "completadas",
"opsProcessing": "en proceso",
"opsPending": "pendientes",
"opsFailed": "fallidas",
"opsCancelled": "canceladas",
"chartValueLabel": "Valor",
"relativeTimeNever": "Nunca",
"relativeTimeJustNow": "justo ahora",
"relativeTimeMinutes": "hace {mins}m",
"relativeTimeHours": "hace {hours}h",
"relativeTimeDays": "hace {days}d",
"memoriesByTimeChartTitle": "Memorias por tiempo de {field}",
"timeFieldIngestedShort": "Ingerido",
"timeFieldIngestedLong": "Cuando los registros fueron ingeridos",
"timeFieldMentionedShort": "Mencionado",
"timeFieldMentionedLong": "Cuando se mencionaron los hechos (hora del evento)",
"timeFieldOccurredShort": "Ocurrido",
"timeFieldOccurredLong": "Cuando comenzó el evento subyacente"
},
"bankConfig": {
"noBankSelected": "Ningún banco seleccionado",
"apiDisabledTitle": "La API de configuración del banco no está habilitada",
"apiDisabledDescription": "Establece <code>HINDSIGHT_API_ENABLE_BANK_CONFIG_API=true</code> en el servidor para habilitar la configuración por banco.",
"resetToInherited": "Restablecer al valor heredado",
"failedToReset": "Error al restablecer",
"overrideBadge": "Anulación del banco",
"resetToInheritedTitle": "Restablecer al valor heredado",
"inherited": "Heredado",
"saveChanges": "Guardar cambios",
"saving": "Guardando...",
"enabled": "Activado",
"disabled": "Desactivado",
"custom": "Personalizado",
"default": "Predeterminado",
"deselectAll": "Deseleccionar todo",
"selectAll": "Seleccionar todo",
"deselect": "Deseleccionar",
"toolsEnabled": "{selected} de {total} herramientas habilitadas",
"noToolsWarning": "Advertencia: no hay herramientas seleccionadas — los agentes no podrán realizar ninguna llamada MCP para este banco.",
"retainTitle": "Retain",
"retainDescription": "Controla qué se extrae y almacena del contenido",
"retainFailedToSave": "Error al guardar la configuración de Retain",
"chunkSizeLabel": "Tamaño de fragmento",
"chunkSizeDescription": "Tamaño de los fragmentos de texto para el procesamiento (caracteres)",
"structuredChunkSizeLabel": "Tamaño de chunk estructurado",
"structuredChunkSizeDescription": "Máximo de caracteres de una línea JSONL o turno de conversación que se conserva completo. Déjalo en blanco para usar el tamaño de fragmento.",
"missionLabel": "Misión",
"retainMissionDescription": "En qué debe prestar atención este banco durante la extracción. Orienta el LLM sin reemplazar las reglas de extracción — funciona junto con cualquier modo de extracción.",
"retainMissionPlaceholder": "Ej.: Incluir siempre decisiones técnicas, opciones de diseño de API y compromisos arquitectónicos. Ignorar la logística de reuniones, saludos e intercambios sociales.",
"extractionTesterAction": "Probar la extracción de retain",
"extractionTesterTitle": "Probador de extracción",
"extractionTesterDescription": "Los mensajes exactos que retain enviaría para este banco, en el orden en que los recibe el modelo. Cambia un ajuste aquí y los bloques se actualizan; pruébalo con texto de ejemplo a la derecha.",
"promptPreviewAction": "Vista previa del prompt",
"promptPreviewTitle": "Vista previa del prompt",
"promptPreviewDescription": "Los mensajes exactos que enviaría esta operación, en el orden en que los recibe el modelo. Cambia un ajuste aquí y los bloques se actualizan.",
"promptPreviewSystemLabel": "Mensaje de sistema",
"promptPreviewUserLabel": "Mensaje de usuario",
"promptPreviewMessageCount": "{count} mensajes",
"promptPreviewChars": "{count} caracteres",
"promptPreviewSameSetting": "mismo ajuste",
"promptPreviewUnset": "sin definir",
"promptPreviewEdit": "Editar",
"promptPreviewAddNamed": "Añadir {name}",
"promptPreviewSave": "Guardar",
"promptPreviewCancel": "Cancelar",
"promptPreviewServerLevel": "Ajuste a nivel de servidor.",
"promptPreviewSaved": "{name} guardado",
"testerSampleLabel": "Datos sin procesar",
"testerRunSettingsLabel": "Otros ajustes",
"testerSamplePlaceholder": "Pega algo que este banco guardaría…",
"testerSampleDefault": "Sarah se mudó a Berlín en marzo de 2024 para dirigir el equipo de pagos. Prefiere las actualizaciones asíncronas a las reuniones.",
"testerRunAction": "Ejecutar",
"testerRunNote": "Simula un retain real, incluido el LLM si hay uno configurado. No se guarda nada.",
"testerNoFacts": "No se extrajo ningún hecho de este texto.",
"testerOccurredStart": "Ocurrió desde",
"testerOccurredEnd": "Ocurrió hasta",
"testerFactCount": "{count, plural, =1 {1 hecho} other {# hechos}}",
"testerChunkCount": "{count, plural, =1 {1 fragmento} other {# fragmentos}}",
"testerChunkLabel": "Fragmento {index}",
"testerElapsed": "{ms} ms",
"testerDefaultStrategy": "Estrategia predeterminada",
"testerStrategyLabel": "Estrategia",
"testerNoStrategies": "Sin estrategias definidas",
"testerDefaultStrategyNamed": "Predeterminada ({name})",
"promptPreviewShowRaw": "Ver texto plano",
"promptPreviewShowBlocks": "Ver bloques",
"extractionModeLabel": "Modo de extracción",
"extractionModeDescription": "Cómo se extraen los hechos durante el retain: conciso (predeterminado, selectivo), detallado (capturar todo), literal (conservar la redacción original), fragmentos (omitir el LLM por completo y guardar cada fragmento tal cual), personalizado (escribir tus propias reglas de extracción)",
"customExtractionPromptLabel": "Indicación de extracción personalizada",
"customExtractionPromptDescription": "Reemplaza completamente las reglas de extracción integradas. Solo activo cuando el modo de extracción está configurado como personalizado.",
"entitiesTitle": "Entidades",
"entitiesDescription": "Controla la extracción de entidades y define un vocabulario controlado de etiquetas de clasificación clave:valor (ej.: pedagogía:andamiaje, interés:activo)",
"entityLabelsFailedToSave": "Error al guardar la configuración de etiquetas de entidades",
"freeFormEntitiesLabel": "Entidades de forma libre",
"freeFormEntitiesDescription": "Extrae entidades nombradas regulares (personas, lugares, conceptos) junto con grupos de etiquetas. Desactiva para restringir la extracción solo a grupos de etiquetas.",
"observationsTitle": "Observaciones",
"observationsDescription": "Controla cómo los hechos se sintetizan en observaciones duraderas",
"observationsFailedToSave": "Error al guardar la configuración de observaciones",
"enableObservationsLabel": "Habilitar observaciones",
"enableObservationsDescription": "Habilitar la consolidación automática de hechos en observaciones",
"observationsMissionDescription": "Lo que este banco debe sintetizar en observaciones duraderas. Reemplaza las reglas de consolidación integradas — déjalo en blanco para usar el valor predeterminado del servidor.",
"observationsMissionPlaceholder": "Ej.: Las observaciones son hechos estables sobre personas y proyectos. Incluir siempre preferencias, habilidades y patrones recurrentes. Ignorar eventos puntuales y estados efímeros.",
"reflectTitle": "Reflect",
"reflectDescription": "Configura cómo el banco razona y responde en las operaciones de Reflect",
"reflectFailedToSave": "Error al guardar la configuración de Reflect",
"reflectMissionDescription": "Identidad y propósito del agente. Se usa como contexto de encuadre en Reflect.",
"reflectMissionPlaceholder": "Ej.: Eres un asistente sénior de ingeniería. Basa siempre las respuestas en decisiones documentadas y fundamentos. Ignora la especulación. Sé directo y preciso.",
"skepticismLabel": "Escepticismo",
"skepticismDescription": "Qué tan escéptico o confiado al evaluar afirmaciones",
"skepticismLowLabel": "Confiado",
"skepticismHighLabel": "Escéptico",
"literalismLabel": "Literalismo",
"literalismDescription": "Qué tan literalmente interpretar la información",
"literalismLowLabel": "Flexible",
"literalismHighLabel": "Literal",
"empathyLabel": "Empatía",
"empathyDescription": "Cuánto peso dar al contexto emocional",
"empathyLowLabel": "Distante",
"empathyHighLabel": "Empático",
"mcpToolsTitle": "Herramientas MCP",
"mcpToolsDescription": "Restringe qué herramientas MCP expone este banco a los agentes",
"mcpFailedToSave": "Error al guardar la configuración de MCP",
"auditEnabledLabel": "Activar registro de auditoría",
"auditEnabledDescription": "Registrar las operaciones de retain, recall y reflect de este banco. Anula el valor predeterminado del servidor solo para este banco.",
"auditServerDefault": "Valor predeterminado del servidor ({state})",
"docStorageEnabledLabel": "Store Document Text",
"docStorageEnabledDescription": "Persist the raw source text (document originals and chunks). Disable to keep only derived facts. Overrides the server default for this bank only.",
"docStorageServerDefault": "Server Default ({state})",
"securityPrivacyTitle": "Security & Privacy",
"securityPrivacyDescription": "Audit logging and raw source-text storage for this bank",
"securityPrivacyFailedToSave": "Failed to save security & privacy settings",
"restrictToolsLabel": "Restringir herramientas",
"restrictToolsDescription": "Cuando está desactivado, todas las herramientas están disponibles. Cuando está activado, solo las herramientas seleccionadas pueden invocarse para este banco.",
"modelsTitle": "Modelos",
"modelsDescription": "Configuración de modelos específica del proveedor",
"geminiFailedToSave": "Error al guardar la configuración de Gemini",
"geminiSubsectionTitle": "Gemini / Vertex AI",
"safetySettingsLabel": "Configuración de seguridad",
"safetySettingsDescriptionPart1": "Cuando está desactivado, se usan los umbrales de seguridad predeterminados de Gemini. Cuando está activado, configura los umbrales por categoría de daño.",
"safetySettingsLearnMore": "Más información",
"geminiSafetyEditorDescriptionPart1": "Establece el umbral de bloqueo para cada categoría de daño. «Desactivado» deshabilita el filtro completamente (predeterminado para Gemini 2.5+). Umbrales más bajos bloquean más contenido.",
"geminiSafetyEditorLearnMore": "Más información",
"geminiCategoryHarassment": "Acoso",
"geminiCategoryHateSpeech": "Discurso de odio",
"geminiCategorySexuallyExplicit": "Contenido sexualmente explícito",
"geminiCategoryDangerousContent": "Contenido peligroso",
"geminiThresholdUnspecified": "Sin especificar (usar predeterminado de Gemini)",
"geminiThresholdOff": "Desactivado (filtro inhabilitado)",
"geminiThresholdBlockNone": "No bloquear ninguno",
"geminiThresholdBlockLowAndAbove": "Bloquear bajo y superior",
"geminiThresholdBlockMediumAndAbove": "Bloquear medio y superior",
"geminiThresholdBlockOnlyHigh": "Bloquear solo alto",
"mcpGroupCore": "Principal",
"mcpGroupBankManagement": "Gestión del banco",
"mcpGroupMentalModels": "Modelos mentales",
"mcpGroupDirectives": "Directivas",
"mcpGroupMemories": "Memorias",
"mcpGroupDocuments": "Documentos",
"mcpGroupOperations": "Operaciones",
"mcpGroupTags": "Etiquetas",
"mcpGroupKnowledgeBase": "Base de conocimiento",
"retainSectionDescription": "Configuración de extracción predeterminada y estrategias con nombre. Pasa un nombre de estrategia en las solicitudes de retención para anular los valores predeterminados por elemento.",
"defaultStrategyLabel": "Estrategia predeterminada",
"defaultStrategyDescription": "Se aplica automáticamente cuando no se especifica una estrategia en una solicitud.",
"llmBatchSizeLabel": "Tamaño del lote LLM",
"llmBatchSizeDescription": "Número de hechos enviados al LLM en una sola llamada de consolidación. Valores más altos reducen las llamadas al LLM a costa de prompts más grandes. Deja en blanco para usar el valor predeterminado del servidor.",
"sourceFactsMaxTokensLabel": "Máx. tokens de hechos de origen",
"sourceFactsMaxTokensDescription": "Máximo de tokens de hechos de origen pasados al prompt de consolidación. Valores más altos incluyen más contexto pero cuestan más por llamada. Deja en blanco para usar el valor predeterminado del servidor.",
"sourceFactsMaxTokensPerObservationLabel": "Máx. tokens de hechos de origen por observación",
"sourceFactsMaxTokensPerObservationDescription": "Máximo de tokens de hechos de origen considerados al generar una sola observación. Deja en blanco para usar el valor predeterminado del servidor.",
"maxObservationsPerScopeLabel": "Máx. observaciones por ámbito",
"maxObservationsPerScopeDescription": "Límite del número de observaciones almacenadas por ámbito tras la consolidación. Deja en blanco para usar el valor predeterminado del servidor.",
"mentalModelMinRefreshIntervalLabel": "Intervalo mínimo de actualización de modelos mentales",
"mentalModelMinRefreshIntervalDescription": "Segundos mínimos entre dos actualizaciones automáticas del mismo modelo mental en este banco. Una actualización disparada antes se encola y espera a que cierre la ventana, y los disparos siguientes se fusionan con ella: una ráfaga de retains cuesta una sola actualización en vez de una por retain. Las actualizaciones manuales siempre se ejecutan de inmediato. Déjalo vacío para usar el valor predeterminado del servidor; 0 significa sin límite. Un modelo concreto puede anularlo en sus propios ajustes de actualización.",
"mentalModelsTitle": "Modelos mentales y páginas de conocimiento",
"mentalModelsDescription": "Cómo se mantienen actualizados los modelos mentales y las páginas de este banco.",
"mentalModelsFailedToSave": "No se pudieron guardar los ajustes de modelos mentales",
"serverDefault": "Predeterminado del servidor",
"addStrategy": "Añadir estrategia",
"nameLabel": "Nombre",
"strategyNamePlaceholder": "nombre de la estrategia (p. ej. rápido)",
"nameIsRequired": "El nombre es obligatorio",
"unnamed": "sin nombre",
"deleteStrategyTitle": "¿Eliminar la estrategia \"{name}\"?",
"deleteStrategyDescription": "Esto eliminará la estrategia y todas sus anulaciones. Esta acción no se puede deshacer.",
"fieldTypeText": "Texto",
"fieldTypeMultiText": "Múltiples textos",
"fieldTypeValue": "Valor único",
"fieldTypeMultiValues": "Múltiples valores",
"fieldTypeMap": "Mapa",
"noFieldsYet": "Aún no hay campos.",
"fieldNamePlaceholder": "nombre del campo",
"extractorHintWhatPlaceholder": "pista del extractor: qué extraer",
"extractorHintWhichPlaceholder": "pista del extractor: cuándo elegir este valor",
"addField": "campo",
"addValueShort": "valor",
"noValuesYet": "Aún no hay valores.",
"memoryDefenseTitle": "Defensa de memoria",
"memoryDefenseDescription": "Inspeccione el contenido durante la retención y decida qué hacer con secretos y otras preocupaciones de seguridad antes de que lleguen a la memoria.",
"memoryDefenseFailedToSave": "Error al guardar la configuración de Defensa de memoria",
"memoryDefenseSavedToast": "Defensa de memoria guardada",
"memoryDefenseActionLabel": "Acción",
"memoryDefenseAction_allow": "Permitir",
"memoryDefenseAction_redact": "Redactar",
"memoryDefenseAction_block": "Bloquear",
"memoryDefenseSecretLeakTitle": "Prevención de fugas de secretos",
"memoryDefenseSecretLeakDescription": "Analiza el contenido retenido en busca de secretos. 45 patrones que cubren claves comunes de proveedores, AWS e información personal.",
"memoryDefenseEnterpriseTitle": "Memory Defense Enterprise",
"memoryDefenseEnterpriseSubtitle": "Detecta más, redacta más inteligentemente y audita todo: disponible en Hindsight Cloud.",
"memoryDefenseEnterpriseFeatureDetectSecrets": "Detección avanzada de secretos: más de 200 patrones que cubren claves de proveedores, AWS, GitHub y tokens de CI",
"memoryDefenseEnterpriseFeatureBase64": "Decodificación Base64: detecta secretos ocultos en cargas útiles codificadas",
"memoryDefenseEnterpriseFeatureLlm": "Análisis con LLM: detecta patrones de exfiltración novedosos que las regex no pueden",
"memoryDefenseEnterpriseFeaturePromptInjection": "Detección de inyección de prompts: bloquea intentos de anular el comportamiento del agente",
"memoryDefenseEnterpriseFeatureSizeAnomaly": "Anomalía de tamaño: rechaza cargas útiles sospechosamente grandes",
"memoryDefenseEnterpriseFeatureProtectedKeys": "Espacios de nombres de etiquetas protegidos: aplica etiquetas de identidad inmutables",
"memoryDefenseEnterpriseCta": "Solicitar una demo",
"recallTitle": "Canalización de recuperación",
"recallDescription": "Qué etapas de recuperación se ejecutan durante el recall en este banco",
"recallServerDefault": "Valor predeterminado del servidor",
"recallFailedToSave": "No se pudo guardar la configuración de la canalización de recuperación",
"recallTextSearchLabel": "Búsqueda de texto",
"recallTextSearchDescription": "Ejecutar la rama de recuperación por palabras clave (BM25) durante el recall. Al desactivarla queda solo búsqueda vectorial: la rama se omite por completo de la consulta, así que no se paga ninguno de sus costes.",
"recallTemporalRetrievalLabel": "Recuperación temporal",
"recallTemporalRetrievalDescription": "Ejecutar el análisis de consultas basado en fechas. Al desactivarlo también se omite la rama de recuperación temporal. Útil cuando el contenido de este banco no contiene fechas relevantes.",
"recallGraphRetrievalLabel": "Recuperación por grafo",
"recallGraphRetrievalDescription": "Recorrer relaciones de entidades y enlaces durante el recall. Desactivarlo cambia la recuperación relacional por menor latencia.",
"recallRerankingLabel": "Reordenación",
"recallRerankingDescription": "Reordenar los candidatos fusionados con el cross-encoder. Al desactivarlo se devuelve directamente el orden RRF: más rápido, pero menos preciso.",
"extractionModeConcise": "Conciso",
"extractionModeVerbose": "Detallado",
"extractionModeVerbatim": "Literal",
"extractionModeChunks": "Fragmentos (sin LLM)",
"extractionModeCustom": "Personalizado",
"promptBlock": {
"instructions": "Instrucciones",
"field": {
"entities_allow_free_form": "Entidades de forma libre",
"entity_labels": "Etiquetas de entidad",
"llm_output_language": "Regla de idioma",
"observations_mission": "Misión",
"reflect_mission": "Misión",
"retain_chunk_size": "Tamaño de fragmento",
"retain_custom_instructions": "Instrucciones de extracción personalizadas",
"retain_extract_causal_links": "Relaciones causales",
"retain_extraction_mode": "Reglas de extracción",
"retain_mission": "Misión",
"retain_structured_chunk_size": "Tamaño de fragmento estructurado"
},
"section": {
"bank_identity": "Identidad del banco",
"disposition": "Disposición",
"directives": "Directivas"
},
"off": {
"bank_identity": "El nombre de este banco — renómbralo en la pestaña General.",
"directives": "Reglas estrictas que el agente debe seguir — añádelas en la lista de Directivas del banco.",
"disposition": "Los rasgos de escepticismo, literalidad y empatía del banco — ajústalos en la sección Reflect.",
"entities_allow_free_form": "Permitiría al modelo seguir extrayendo entidades con nombre además de los grupos de etiquetas.",
"entity_labels": "Restringiría las entidades a un vocabulario controlado de etiquetas key:value.",
"llm_output_language": "Forzaría toda la salida a un solo idioma.",
"observations_mission": "Reemplazaría la misión predeterminada integrada.",
"reflect_mission": "Sería el rol del agente, reemplazando el predeterminado de arriba.",
"retain_custom_instructions": "Sin definir, así que el modo custom recurre a las reglas integradas de arriba. Escribe instrucciones para reemplazarlas.",
"retain_extract_causal_links": "Pediría al modelo enlazar hechos que se causaron entre sí, y ampliaría el esquema de respuesta.",
"retain_extraction_mode": "Modo chunks: cada fragmento se guarda literalmente, así que no se envía ningún prompt. Elige otro modo para ver uno.",
"retain_mission": "Se antepondría aquí, con prioridad sobre las reglas generales de extracción."
}
}
},
"bankOperations": {
"title": "Operaciones en segundo plano",
"refreshOperations": "Actualizar operaciones",
"allTypes": "Todos los tipos",
"operationDetails": "Detalles de la operación",
"totalItems": "Elementos totales",
"subBatchesCount": "Sublotes ({count})",
"rawPayload": "Carga útil sin procesar",
"loadRaw": "Cargar sin procesar",
"rawPayloadHelp": "Muestra los parámetros completos con los que se envió la operación (puede ser grande).",
"operationCount": "{count} operaciones",
"unknown": "Desconocido",
"notAvailable": "N/D",
"operationDetailsLoadError": "No se pudieron cargar los detalles de la operación",
"deferredUntilTitle": "Aplazada hasta {time}",
"status": {
"all": "Todos",
"pending": "Pendiente",
"processing": "En proceso",
"completed": "Completada",
"failed": "Fallida",
"cancelled": "Cancelada",
"deferred": "Aplazada"
},
"operationType": {
"all": "Todos los tipos",
"retain": "Retener",
"consolidation": "Consolidación",
"refreshMentalModel": "Actualización del modelo mental",
"fileConvertRetain": "Convertir archivo",
"webhookDelivery": "Entrega de webhook",
"graphMaintenance": "Mantenimiento del grafo",
"vectorIndexMaintenance": "Mantenimiento del índice vectorial",
"exportDocuments": "Exportar documentos",
"importDocuments": "Importar documentos"
},
"table": {
"id": "ID de operación",
"type": "Tipo",
"created": "Creada",
"status": "Estado",
"index": "Índice",
"items": "Elementos",
"actions": "Acciones"
},
"action": {
"cancel": "Cancelar",
"retry": "Reintentar",
"delete": "Eliminar",
"download": "Descargar"
},
"pagination": "Mostrando {start}-{end} de {total}",
"paginationPrevious": "Anterior",
"paginationNext": "Siguiente",
"emptyState": "No hay operaciones",
"emptyStateWithStatus": "No hay operaciones con estado {status}",
"field": {
"status": "Estado",
"type": "Tipo",
"created": "Creada",
"updated": "Actualizada",
"completed": "Completada",
"progress": "Progreso",
"lastHeartbeat": "Último latido"
},
"outcomeDetails": "Detalles del resultado",
"metadata": "Metadatos",
"error": "Error",
"rawPayloadParentHelp": "Esta es una operación principal: la carga útil sin procesar se almacena en cada sublote. Abre una operación secundaria para inspeccionar su carga útil.",
"rawPayloadEmpty": "No hay carga útil sin procesar almacenada para esta operación.",
"heartbeat": {
"justNow": "ahora mismo",
"secondsAgo": "hace {secs}s",
"minutesAgo": "hace {mins}min",
"hoursAgo": "hace {hours}h"
},
"progressEstimateNote": "El total se estima al iniciar la consolidación y puede aumentar si llegan nuevas memorias mientras se ejecuta — es lo esperado.",
"viewDocument": "Ver documento"
},
"dataView": {
"loadingMemories": "Cargando memorias...",
"noMemoriesYet": "Aún no hay memorias",
"noMemoriesDescription": "Agrega un documento para comenzar a construir este banco de memoria.",
"noDataAvailable": "No hay datos disponibles",
"filterByTextPlaceholder": "Filtrar por texto o contexto (presiona Intro)...",
"filterByTagPlaceholder": "Filtrar por etiqueta…",
"filterByTagAriaLabel": "Filtrar por etiqueta",
"refreshMemories": "Actualizar memorias",
"removeTag": "Eliminar etiqueta {tag}",
"matchingMemories": "{count} memorias coincidentes",
"showingMemories": "Mostrando {shown} de {total} memorias en total",
"totalMemories": "{count} memorias en total",
"loadMore": "Cargar más",
"inSync": "Sincronizado",
"pendingCount": "{count} pendientes",
"allConsolidated": "Todas las memorias consolidadas",
"allConsolidatedWithDate": "Todas las memorias consolidadas (última: {date})",
"pendingConsolidation": "{count} memorias pendientes de consolidación",
"constellation": "Constelación",
"table": "Tabla",
"timeline": "Línea de tiempo",
"hidePanel": "Ocultar panel",
"showPanel": "Mostrar panel",
"constellationViewTitle": "Vista de constelación",
"constellationViewDescription": "Mapa de memoria renderizado en lienzo con desconflicto espacial de etiquetas. Desplázate para hacer zoom, arrastra para desplazarte, pasa el cursor para explorar conexiones entre entidades. Haz clic en una memoria para ver detalles.",
"colorBy": "Colorear por",
"mentioned": "Mencionado",
"occurredStart": "Ocurrido (inicio)",
"occurredEnd": "Ocurrido (fin)",
"linkTypes": "Tipos de vínculo",
"nodes": "Nodos",
"links": "Vínculos",
"columnObservation": "Observación",
"columnMemory": "Memoria",
"columnSources": "Fuentes",
"columnTags": "Etiquetas",
"columnCreated": "Creado",
"columnMentioned": "Mencionado",
"columnEntities": "Entidades",
"columnOccurred": "Ocurrido",
"copyId": "Copiar ID",
"noMemoriesMatchFilter": "Ninguna memoria coincide con tu filtro",
"noMemoriesFound": "No se encontraron memorias",
"noTimelineData": "Sin datos de línea de tiempo",
"noTimelineDataDescription": "Ninguna memoria tiene fechas occurred_at.",
"memoriesWithoutDatesInTable": "{count} memorias sin fechas en la vista de tabla.",
"timelineMemoriesCount": "{count} memorias",
"timelineWithoutDates": "· {count} sin fechas",
"zoomOut": "Alejar",
"zoomIn": "Acercar",
"first": "Primero",
"previous": "Anterior",
"next": "Siguiente",
"last": "Último",
"timelineItem": "elemento",
"timelineItems": "elementos",
"granularityYear": "Año",
"granularityMonth": "Mes",
"granularityWeek": "Semana",
"granularityDay": "Día",
"recencyLabel": "recencia · {basis}",
"recencyBasisMentioned": "mencionado",
"recencyBasisOccurredStart": "ocurrido (inicio)",
"recencyBasisOccurredEnd": "ocurrido (fin)",
"sourceFactsLabel": "hechos fuente",
"errorLoadingData": "Error al cargar datos de {factType}",
"all": "Todos",
"memoryComposition": "Composición de memorias",
"scopeLabel": "Ámbito",
"scopeAll": "Todos los ámbitos",
"scopeGlobal": "Global (sin etiquetas)",
"groupByScope": "Agrupar por ámbito",
"scopeSearch": "Buscar ámbitos…",
"scopeNoResults": "No se encontraron ámbitos",
"filterActive": "Activas",
"filterInvalidated": "Invalidadas",
"invalidatedHint": "Las memorias invalidadas se archivan: se ocultan de recall y reflect, pero se conservan para auditoría."
},
"documentsView": {
"loadingDocuments": "Cargando documentos...",
"totalDocuments": "{total} documentos en total",
"searchPlaceholder": "Filtrar por ID de documento…",
"clearSearch": "Limpiar búsqueda",
"refreshDocuments": "Actualizar documentos",
"noDocumentsMatchSearch": "Ningún documento coincide con tu búsqueda",
"clearFilters": "Borrar filtros",
"matchingDocuments": "{total} documentos coincidentes",
"filterByThisTag": "Filtrar por esta etiqueta",
"noDocumentsFound": "No se encontraron documentos",
"pendingUploadMetadata": "Archivo aceptado; conversión pendiente",
"pendingUploadProcessingStatus": "Procesando",
"pendingUploadFailedStatus": "Error",
"pendingUploadFailed": "Error al convertir el archivo",
"colDocument": "Documento",
"colUpdated": "Actualizado",
"seeAllInDocument": "Abre el documento para ver todas las etiquetas y metadatos",
"colSize": "Tamaño",
"colMemoryUnits": "Unidades de memoria",
"showingRange": "Mostrando {from}-{to} de {total}",
"previousPage": "Anterior",
"nextPage": "Siguiente",
"detailTitle": "Detalles del documento",
"detailSubtitle": "Texto original del documento y metadatos",
"closeButton": "Cerrar",
"loadingDocument": "Cargando documento...",
"labelDocumentId": "ID del documento",
"labelCreated": "Creado",
"labelUpdated": "Actualizado",
"labelMemoryUnits": "Unidades de memoria",
"labelTextLength": "Longitud del texto",
"textLengthValue": "{count} caracteres",
"labelRetainParams": "Parámetros de Retain",
"retainParamsContext": "Contexto:",
"retainParamsEventDate": "Fecha del evento:",
"retainParamsMetadata": "Metadatos:",
"labelTags": "Etiquetas",
"labelMetadata": "Metadatos",
"deleteDocumentButton": "Eliminar documento",
"labelOriginalText": "Texto original",
"editButton": "Editar",
"saveHint": "Guardar volverá a ingestar este documento mediante Retain (upsert). Las unidades de memoria existentes para este documento serán reemplazadas.",
"saveButton": "Guardar",
"cancelButton": "Cancelar",
"documentOperationsTitle": "Operaciones del documento",
"deleteDialogTitle": "Eliminar documento",
"deleteDialogDescription": "¿Estás seguro de que deseas eliminar el documento",
"deleteDialogWillDelete": "Esto también eliminará",
"deleteDialogMemoryUnits": "{count} unidades de memoria",
"deleteDialogAllMemoryUnits": "todas las unidades de memoria",
"deleteDialogExtracted": "extraídas de este documento.",
"deleteDialogCannotUndo": "Esta acción no se puede deshacer.",
"deleteResultSuccessTitle": "Documento eliminado",
"deleteResultErrorTitle": "Error",
"deleteButton": "Eliminar",
"okButton": "Aceptar",
"toastErrorLoadingDocument": "Error al cargar el documento",
"toastDocumentUpdated": "Documento actualizado",
"toastDocumentUpdatedDescription": "Las unidades de memoria de este documento han sido re-extraídas.",
"toastFailedToUpdateDocument": "Error al actualizar el documento",
"toastDeletedDocumentAndUnits": "Documento y {count} unidades de memoria eliminados.",
"toastErrorDeletingDocument": "Error al eliminar el documento: ",
"clickLoadDocumentsToView": "Haz clic en \"Cargar documentos\" para ver los datos",
"storedContent": "Contenido almacenado",
"tagsInputPlaceholder": "tag1, tag2, tag3",
"labelEventDate": "Fecha del evento",
"memoryCompositionTitle": "Composición de memorias",
"retainTracesTitle": "Trazas de retención",
"retainTracesSummary": "{calls, plural, one {# llamada} other {# llamadas}} · {tokens} tokens",
"loadingChunks": "Cargando fragmentos...",
"noChunksFound": "No se encontraron fragmentos para este documento",
"clickChunksTabToLoad": "Haz clic en la pestaña Fragmentos para cargar los fragmentos",
"exportButton": "Exportar",
"importButton": "Importar desde zip",
"exporting": "Exportando…",
"importing": "Importando…",
"exportSuccess": "Documentos exportados",
"importSuccess": "Se importaron {imported} documento(s), {facts} hecho(s); {skipped} omitido(s)",
"importFailed": "La importación falló",
"importTimeout": "La importación está tardando más de lo esperado; vuelve a comprobar en breve",
"exportDialogTitle": "Exportar documentos",
"exportDialogDescription": "Descarga los documentos de este banco y sus hechos extraídos como un archivo .zip. No incluye embeddings: al importar se regeneran con el modelo del banco de destino.",
"exportIncludeObservationsLabel": "Incluir observaciones consolidadas",
"exportIncludeObservationsHint": "Exportar también las observaciones sintetizadas. Si se desactiva, el banco de destino las regenera durante la consolidación.",
"exportIncludeKnowledgeBaseLabel": "Incluir base de conocimiento",
"exportIncludeKnowledgeBaseHint": "Exportar también los Modelos mentales y las Páginas de conocimiento. Esta opción se aplica a las exportaciones de todo el banco.",
"importDialogTitle": "Importar documentos",
"importDialogDescription": "Sube un archivo .zip exportado previamente de un banco. No es una carga de documentos normal: los hechos se vuelven a incrustar y enlazar en este banco. La importación se ejecuta en segundo plano.",
"importFileHint": "El .zip debe ser uno generado por Exportar, de este banco o de otro. Para añadir archivos PDF, Word o de texto, usa «Agregar documento → Subir archivos».",
"actionsButton": "Acciones",
"importConflictLabel": "Si un documento ya existe",
"importConflictSkip": "Omitir — conservar el documento existente",
"importConflictReplace": "Reemplazar — sobrescribir con el importado",
"importConflictNewId": "Conservar ambos — importar con un nuevo id",
"textNotStoredWarning": "El texto original no se almacena en este servidor: solo se conservan las memorias extraídas.",
"labelObservationScopes": "Ámbitos de observación",
"invalidatedFactsTitle": "Hechos invalidados",
"documentUpdating": "Actualizando",
"lastRefreshed": "Actualizado {time}",
"attachmentEditHint": "This document has {count} attachment(s). They appear above as ⟦hs-att:…⟧ tokens — keep a token to keep its attachment; deleting one removes it from the document."
},
"entitiesView": {
"viewRelations": "Relaciones",
"viewList": "Lista",
"loadingEntityGraph": "Cargando grafo de entidades...",
"noCooccurrences": "Aún no hay co-ocurrencias de entidades",
"noCooccurrencesDescription": "Dos entidades co-ocurren cuando aparecen en la misma memoria.",
"heatLegendLabel": "recencia · última co-ocurrencia",
"sizeLegendLabel": "co-ocurrencias",
"loadingEntities": "Cargando entidades...",
"refreshEntities": "Actualizar entidades",
"colName": "Nombre",
"colMentions": "Menciones",
"colFirstSeen": "Primera vez visto",
"colLastSeen": "Última vez visto",
"noEntitiesFound": "No se encontraron entidades",
"noEntitiesDescription": "Las entidades se extraen de los hechos cuando se agregan memorias.",
"entityDetails": "Detalles de la entidad",
"mentionsLabel": "Menciones",
"firstSeenLabel": "Primera vez visto",
"entityIdLabel": "ID de entidad",
"errorLoadingEntities": "Error al cargar las entidades",
"errorLoadingEntityDetail": "Error al cargar el detalle de la entidad",
"errorLoadingEntityGraph": "Error al cargar el grafo de entidades",
"na": "N/D",
"entityCount": "{count, plural, one {# entidad} other {# entidades}}",
"linkedMemoriesLabel": "Timeline",
"loadingLinkedMemories": "Loading timeline...",
"noLinkedMemories": "No dated memories are linked to this entity yet."
},
"mentalModels": {
"selectBankPrompt": "Selecciona un banco de memoria para ver los modelos mentales.",
"loading": "Cargando...",
"filterPlaceholder": "Filtrar modelos mentales por nombre, consulta o contenido...",
"countFiltered": "{filtered} de {total} modelos mentales",
"addMentalModel": "Agregar modelo mental",
"viewDashboard": "Panel",
"viewTable": "Tabla",
"badgeAutoRefresh": "Actualización automática",
"badgeScheduled": "Programado",
"nextRefreshLabel": "Próxima actualización",
"freshnessRefreshed": "actualizado {time}",
"freshnessReadTo": "leído hasta {time}",
"freshnessNext": "próxima:",
"scopeFactTypesTitle": "Qué tipos de hechos lee este modelo.",
"refreshedLabel": "Actualizado",
"nextRefreshAuto": "con nuevas memorias",
"nextRefreshManual": "a demanda",
"nextRefreshInvalid": "programación no válida",
"badgeManual": "Manual",
"emptyFilterMatch": "Ningún modelo mental coincide con tu filtro",
"emptyNoModels": "Aún no hay modelos mentales. Crea uno para generar y guardar un resumen de tus memorias.",
"colId": "ID",
"colName": "Nombre",
"colSourceQuery": "Consulta de origen",
"colLastRefreshed": "Última actualización",
"actionsAriaLabel": "Acciones",
"actionEdit": "Editar",
"actionRefresh": "Actualizar",
"actionDelete": "Eliminar",
"deleteDialogTitle": "Eliminar modelo mental",
"deleteDialogDescription": "¿Estás seguro de que deseas eliminar «{name}»?",
"deleteDialogWarning": "Esta acción no se puede deshacer.",
"deleteDialogCancel": "Cancelar",
"deleteDialogConfirm": "Eliminar",
"toastRefreshed": "Modelo mental actualizado",
"toastRefreshTimeout": "Tiempo de actualización agotado",
"createDialogTitle": "Crear modelo mental",
"createDialogDescription": "Crea un modelo mental ejecutando una consulta. El contenido se generará automáticamente y podrá actualizarse más adelante.",
"updateDialogTitle": "Actualizar modelo mental",
"updateDialogDescription": "Actualiza la configuración del modelo mental. Los cambios tendrán efecto de inmediato.",
"tabGeneral": "General",
"tabOptions": "Opciones",
"fieldId": "ID",
"fieldIdPlaceholder": "Ej.: comunicacion-equipo",
"fieldName": "Nombre *",
"fieldNamePlaceholder": "Ej.: Preferencias de comunicación del equipo",
"fieldSourceQuery": "Consulta de origen *",
"fieldSourceQueryPlaceholder": "Ej.: ¿Cómo prefiere comunicarse el equipo?",
"fieldMaxTokens": "Tokens máximos",
"fieldMaxTokensPlaceholder": "2048",
"cancelButton": "Cancelar",
"createButton": "Crear",
"creatingButton": "Generando...",
"updateButton": "Actualizar",
"updatingButton": "Actualizando...",
"toastCreated": "Modelo mental creado",
"toastCreatedDescription": "El contenido se está generando en segundo plano",
"toastUpdated": "Modelo mental actualizado",
"invalidTagGroupsJson": "JSON inválido en el campo Grupos de etiquetas",
"optionsSectionRefresh": "Actualización",
"optionsRefreshTriggerLabel": "Activador de actualización",
"optionsRefreshTriggerManual": "Solo manual",
"optionsRefreshTriggerAuto": "Con nuevas memorias",
"optionsRefreshTriggerScheduled": "Según programación (cron)",
"optionsRefreshTriggerManualDesc": "Solo se actualiza cuando lo activas manualmente o mediante la API.",
"optionsRefreshTriggerAutoDesc": "Se actualiza automáticamente cuando nuevas memorias cambian el ámbito de este modelo.",
"optionsRefreshTriggerScheduledDesc": "Se actualiza según una programación cron fija (UTC) cuando el modelo está desactualizado.",
"optionsRefreshTriggerDescription": "Cómo se mantiene actualizado el contenido de este modelo mental.",
"optionsRefreshModeLabel": "Modo de actualización",
"optionsRefreshModeFull": "Completo — regenerar desde cero en cada actualización",
"optionsRefreshModeDelta": "Delta — ediciones quirúrgicas, conserva el contenido sin cambios",
"optionsRefreshModeDeltaDescription": "El modo delta aplica cambios mínimos al contenido existente. Vuelve a una reescritura completa en la primera actualización y cada vez que cambia la consulta de origen.",
"optionsRefreshCronLabel": "Actualización programada (cron)",
"optionsRefreshCronPlaceholder": "min hora día mes díaSem · ej. 0 3 * * * (diario 03:00 UTC)",
"optionsRefreshCronDescription": "Actualiza según una programación cron fija en UTC. Mutuamente excluyente con la actualización con nuevas memorias. Una actualización programada solo se ejecuta cuando nuevas memorias cambian el ámbito de este modelo. Déjalo vacío para desactivarlo.",
"optionsMinRefreshIntervalLabel": "Intervalo mínimo de actualización (segundos)",
"optionsMinRefreshIntervalPlaceholder": "Predeterminado (heredar)",
"optionsMinRefreshIntervalDescription": "Límite inferior de la frecuencia de las actualizaciones automáticas. Un disparador que llega antes se encola y queda en espera hasta que cierra la ventana, y los siguientes se fusionan con él: una ráfaga de retains cuesta una sola actualización. Las actualizaciones manuales siempre se ejecutan de inmediato. 0 o vacío = sin límite.",
"optionsSectionTags": "Etiquetas",
"optionsTagsLabel": "Etiquetas",
"optionsTagsPlaceholder": "Ej.: proyecto-x, equipo-alpha (separadas por comas)",
"optionsTagsDescription": "Las etiquetas delimitan el modelo durante Reflect y filtran las memorias fuente durante la actualización (predeterminado all_strict: solo se leen las memorias que llevan todas las etiquetas indicadas). Si aún ninguna memoria tiene estas etiquetas, la actualización producirá contenido vacío — añade etiquetas a las memorias o ajusta Coincidencia de etiquetas / Grupos de etiquetas a continuación.",
"optionsTagsMatchLabel": "Coincidencia de etiquetas",
"optionsTagsMatchDefaultPlaceholder": "Predeterminado (all_strict cuando hay etiquetas)",
"optionsTagsMatchDefault": "Predeterminado (all_strict cuando hay etiquetas)",
"optionsTagsMatchAny": "any — coincidencia OR, incluye sin etiqueta",
"optionsTagsMatchAll": "all — coincidencia AND, incluye sin etiqueta",
"optionsTagsMatchAnyStrict": "any_strict — coincidencia OR, excluye sin etiqueta",
"optionsTagsMatchAllStrict": "all_strict — coincidencia AND, excluye sin etiqueta",
"optionsTagsMatchExact": "exact — igualdad de conjuntos, excluye sin etiqueta",
"optionsTagsMatchDescription": "Controla cómo las etiquetas del modelo filtran las memorias durante la actualización.",
"optionsTagGroupsLabel": "Grupos de etiquetas (JSON)",
"optionsTagGroupsDescription": "Expresiones booleanas compuestas de etiquetas para filtrar durante la actualización. Anula las etiquetas planas cuando está configurado.",
"optionsSectionRecall": "Recall",
"optionsRecallDescription": "Anula el comportamiento del Recall interno cuando este modelo se actualiza. Déjalo en blanco para heredar el valor predeterminado del banco/global.",
"optionsFactTypesLabel": "Tipos de hecho",
"optionsFactTypesEmpty": "Dejar vacío para incluir todos los tipos.",
"optionsIncludeChunksLabel": "Incluir fragmentos",
"optionsIncludeChunksDefault": "Predeterminado (heredar)",
"optionsIncludeChunksYes": "Sí — incluir texto de fragmento sin procesar",
"optionsIncludeChunksNo": "No — omitir fragmentos (indicación más pequeña)",
"optionsRecallMaxTokensLabel": "Tokens máximos de Recall",
"optionsRecallMaxTokensPlaceholder": "Predeterminado (heredar)",
"optionsRecallMaxTokensDescription": "Presupuesto de tokens para los hechos devueltos por Recall.",
"optionsRecallChunksMaxTokensLabel": "Tokens máximos de fragmentos de Recall",
"optionsRecallChunksMaxTokensPlaceholder": "Predeterminado (heredar)",
"optionsRecallChunksMaxTokensDescription": "Presupuesto de tokens para el texto de fragmentos sin procesar devuelto por Recall.",
"optionsSectionOtherModels": "Otros modelos mentales",
"optionsExcludeAllLabel": "Excluir todos los modelos mentales",
"optionsExcludeIdsLabel": "Excluir IDs de modelos mentales",
"optionsExcludeIdsPlaceholder": "Ej.: modelo-a, modelo-b (separados por comas)",
"count": "{count, plural, one {# modelo mental} other {# modelos mentales}}",
"viewList": "Lista",
"clearDialogTitle": "Borrar contenido del modelo mental",
"clearDialogDescription": "¿Borrar el contenido de <bold>\"{name}\"</bold>?",
"clearDialogReSynth": "La próxima actualización re-sintetizará el contenido desde cero.",
"clearDialogConfirm": "Borrar",
"actionClearContent": "Borrar contenido",
"emptyContent": "Aún no hay contenido. Actualiza este modelo mental para generar contenido.",
"selectModelPrompt": "Selecciona un modelo mental para ver su contenido.",
"optionsSectionTroubleshooting": "Diagnóstico",
"optionsKeepTraceLabel": "Conservar trazas de actualización",
"optionsKeepTraceDescription": "Registra cómo llegó cada actualización a su resultado: modo, alcance, ventana temporal, hechos recuperados frente a usados y operaciones delta. Es la única forma de diagnosticar las actualizaciones programadas después de ejecutarse.",
"toastContentCleared": "Contenido del modelo mental borrado",
"actionOpenDetail": "Abrir"
},
"cronPreview": {
"invalid": "Expresión cron no válida",
"nextRun": "Próxima ejecución",
"upcoming": "Próximas ejecuciones",
"utc": "UTC",
"local": "local"
},
"thinkView": {
"noBankSelected": "Ningún banco seleccionado",
"noBankSelectedDescription": "Selecciona un banco de memoria para comenzar a reflexionar.",
"queryPlaceholder": "¿Sobre qué te gustaría reflexionar?",
"reflecting": "Reflexionando...",
"reflect": "Reflect",
"budgetLabel": "Presupuesto:",
"budgetLow": "Bajo",
"budgetMid": "Medio",
"budgetHigh": "Alto",
"tokensLabel": "Tokens:",
"includeSource": "Incluir fuente",
"includeTools": "Incluir herramientas",
"tagsPlaceholder": "Filtrar por etiquetas (separadas por comas)",
"tagsMatchAny": "Cualquiera (incl. sin etiqueta)",
"tagsMatchAll": "Todas (incl. sin etiqueta)",
"tagsMatchAnyStrict": "Cualquiera (estricto)",
"tagsMatchAllStrict": "Todas (estricto)",
"tagsMatchExact": "Exacto (conjunto)",
"excludeMentalModels": "Excluir modelos mentales",
"excludeIdsLabel": "Excluir IDs:",
"excludeIdsPlaceholder": "modelo-a, modelo-b",
"reflectingOnMemories": "Reflexionando sobre las memorias...",
"inputTokensLabel": "Tokens de entrada:",
"outputTokensLabel": "Tokens de salida:",
"toolCallsLabel": "Llamadas a herramientas:",
"llmCallsLabel": "Llamadas LLM:",
"viewAnswer": "Respuesta",
"viewTrace": "Traza",
"viewJson": "JSON",
"answerTitle": "Respuesta",
"newOpinionsTitle": "Nuevas opiniones formadas",
"newOpinionsDescription": "Nuevas creencias generadas a partir de esta interacción",
"opinionConfidence": "Confianza: {value}",
"addDirectiveTitle": "Agregar directiva",
"addDirectiveDescription": "Reglas estrictas inyectadas en los indicadores que el agente debe seguir",
"directiveSaved": "Directiva guardada en {name}",
"directivePlaceholder": "Ej.: Responder siempre en inglés formal...",
"savingDirective": "Guardando...",
"saveDirective": "Guardar",
"errorSubmittingFeedback": "Error al enviar comentarios",
"errorRunningReflect": "Error al ejecutar Reflect",
"observationsCreatedTitle": "Observaciones creadas ({count})",
"observationsCreatedDescription": "Nuevas observaciones aprendidas durante esta reflexión",
"executionTraceTitle": "Traza de ejecución",
"executionTraceDescription": "{iterations} iteración{iterationsPlural} • {totalMs}ms en total",
"notIncluded": "No incluido",
"enableIncludeTools": "Activa «Incluir herramientas» para ver la traza.",
"noOperations": "Sin operaciones",
"noOperationsDescription": "No se realizaron llamadas LLM ni a herramientas durante esta reflexión.",
"responseGenerated": "Respuesta generada",
"agentDecided": "El agente decidió",
"finalAnswer": "Respuesta final",
"calledToolsBelow": "Llamó a las herramientas a continuación",
"executingTools": "Ejecutando {count} herramienta",
"executingToolsPlural": "Ejecutando {count} herramientas",
"toolInputLabel": "Entrada:",
"toolOutputLabel": "Salida:",
"basedOnTitle": "Basado en",
"basedOnDescription": "{count} elementos utilizados",
"notIncludedBasedOn": "No incluido",
"enableIncludeSource": "Activa «Incluir fuente» para ver las memorias.",
"noFactsFound": "No se encontraron hechos",
"noFactsFoundDescription": "No se utilizaron memorias para generar esta respuesta.",
"tabDirectives": "Directivas",
"tabMentalModels": "Modelos mentales",
"tabObservations": "Observaciones",
"tabWorld": "Mundo",
"tabExperience": "Experiencia",
"noTabItems": "Sin elementos en {tab}",
"rawResponseTitle": "Respuesta sin procesar",
"readyToReflect": "Listo para Reflect",
"readyToReflectDescription": "Ingresa una pregunta arriba para consultar el banco de memoria y generar una respuesta ajustada a la disposición.",
"observationPanelTitle": "Observación",
"observationTextField": "Texto",
"observationTagsField": "Etiquetas",
"observationSourceMemoriesField": "Memorias fuente ({count})",
"observationIdField": "ID",
"structuredOutputTitle": "Salida estructurada"
},
"searchDebug": {
"noBankSelected": "Ningún banco seleccionado",
"noBankSelectedDescription": "Selecciona un banco de memoria para comenzar a recordar.",
"queryPlaceholder": "¿Qué te gustaría recordar?",
"searching": "Buscando...",
"recall": "Recall",
"typesLabel": "Tipos:",
"tokensLabel": "Tokens:",
"queryDatePlaceholder": "Fecha de consulta",
"chunks": "Fragmentos",
"entities": "Entidades",
"entitiesHint": "Devuelve los nombres de entidad que se muestran en cada resultado, además del bloque de observaciones de entidades.",
"tagsPlaceholder": "Filtrar por etiquetas (separadas por comas)",
"tagsMatchAny": "Cualquiera (incl. sin etiqueta)",
"tagsMatchAll": "Todas (incl. sin etiqueta)",
"tagsMatchAnyStrict": "Cualquiera (estricto)",
"tagsMatchAllStrict": "Todas (estricto)",
"tagsMatchExact": "Exacto (conjunto)",
"budgetLow": "Bajo",
"budgetMid": "Medio",
"budgetHigh": "Alto",
"searchingMemories": "Buscando en memorias...",
"resultsLabel": "Resultados:",
"durationLabel": "Duración:",
"nodesVisitedLabel": "Nodos visitados:",
"viewResults": "Resultados",
"viewTrace": "Traza",
"viewJson": "JSON",
"mentalModels": "Modelos mentales",
"mentalModelBadge": "Modelo mental",
"proofCount": "Cantidad de pruebas: {count}",
"relevance": "Relevancia: {value}",
"noMemoriesFound": "No se encontraron memorias para esta consulta.",
"scoreLabel": "puntuación",
"occurredLabel": "ocurrió",
"mentionedLabel": "mencionado",
"factAttachments": "Adjuntos de los que procede este hecho",
"parallelRetrieval": "RECUPERACIÓN PARALELA",
"methodsCount": "{count} métodos",
"showLess": "Mostrar menos",
"viewAllResults": "Ver los {count} resultados",
"rrfFusion": "Fusión RRF",
"rrfMerge": "combinar",
"rrfDescription": "Fusión de rango recíproco de todos los resultados de recuperación",
"rrfScore": "Puntuación RRF:",
"combinedScoring": "Puntuación combinada",
"rerank": "reordenar",
"finalResults": "Resultados finales",
"output": "salida",
"finalResultsDescription": "Mejores resultados tras todos los pasos de procesamiento",
"rawResponse": "Respuesta sin procesar",
"readyToRecall": "Listo para Recall",
"readyToRecallDescription": "Ingresa una consulta arriba para buscar en tus memorias. Usa los filtros para acotar por tipo de hecho, presupuesto y más.",
"errorSelectBank": "Primero selecciona un banco de memoria",
"errorSelectFactType": "Selecciona al menos un tipo de hecho",
"errorRunningSearch": "Error al ejecutar la búsqueda",
"tooltipCrossEncoder": "Puntuación del cross-encoder (señal de relevancia principal)",
"tooltipTemporal": "Refuerzo de proximidad temporal (±10% — solo activo para consultas temporales)",
"tooltipRecency": "Refuerzo de actualidad (±10% — basado en la antigüedad de la memoria)",
"temporalWindowLabel": "Intervalo de tiempo",
"temporalWindowStart": "Inicio del intervalo",
"temporalWindowEnd": "Fin del intervalo",
"temporalWindowTo": "a",
"temporalWindowClear": "Limpiar",
"temporalWindowHint": "Omite la extracción de fechas de la consulta y prioriza los recuerdos fechados en este intervalo. No oculta los que quedan fuera. Las horas se leen como UTC; define ambos extremos para aplicarlo.",
"temporalWindowReversed": "El fin del intervalo es anterior a su inicio."
},
"webhooksView": {
"title": "Webhooks",
"refreshAriaLabel": "Actualizar webhooks",
"refreshTitle": "Actualizar webhooks",
"addWebhook": "Agregar webhook",
"emptyStateCanManage": "No hay webhooks configurados. Agrega uno para recibir notificaciones de eventos.",
"emptyStateMember": "No hay webhooks configurados. Pide a un administrador que agregue uno.",
"tableHeaderUrl": "URL",
"tableHeaderMethod": "Método",
"tableHeaderEventTypes": "Tipos de evento",
"tableHeaderStatus": "Estado",
"tableHeaderCreatedAt": "Creado el",
"allEvents": "Todos los eventos",
"statusEnabled": "Activado",
"statusDisabled": "Desactivado",
"deliveriesButton": "Entregas",
"viewDeliveriesTitle": "Ver entregas",
"editWebhookTitle": "Editar webhook",
"editWebhookAriaLabel": "Editar webhook",
"deleteWebhookTitle": "Eliminar webhook",
"deleteWebhookAriaLabel": "Eliminar webhook",
"createDialogTitle": "Agregar webhook",
"createDialogDescription": "Configura un endpoint de webhook para recibir notificaciones de eventos.",
"cancel": "Cancelar",
"creating": "Creando...",
"createWebhook": "Crear webhook",
"editDialogTitle": "Editar webhook",
"editDialogDescription": "Actualiza la configuración del webhook.",
"saving": "Guardando...",
"saveChanges": "Guardar cambios",
"deleteDialogTitle": "Eliminar webhook",
"deleteDialogDescription": "¿Estás seguro de que deseas eliminar este webhook? Esta acción no se puede deshacer y todas las entregas pendientes serán canceladas.",
"deleting": "Eliminando...",
"deleteWebhookConfirm": "Eliminar webhook",
"deliveriesDialogTitle": "Entregas de webhook",
"noDeliveries": "Aún no hay entregas para este webhook.",
"loadMore": "Cargar más",
"deliveriesTableHeaderStatus": "Estado",
"deliveriesTableHeaderHttp": "HTTP",
"deliveriesTableHeaderAttempts": "Intentos",
"deliveriesTableHeaderEvent": "Evento",
"deliveriesTableHeaderCreatedAt": "Creado el",
"deliveryStatusDelivered": "entregado",
"deliveryStatusPending": "pendiente",
"deliveryStatusFailed": "fallido",
"expandedError": "Error",
"expandedResponseBody": "Cuerpo de respuesta",
"formTypeLabel": "Tipo",
"formUrlLabel": "URL",
"formUrlPlaceholder": "https://ejemplo.com/webhook",
"formMethodLabel": "Método",
"formTimeoutLabel": "Tiempo de espera (segundos)",
"formSecretLabel": "Secreto",
"formSecretOptional": "(opcional)",
"formSecretPlaceholderOptional": "Secreto de firma",
"formSecretPlaceholderEdit": "Dejar en blanco para conservar el existente",
"formHideSecret": "Ocultar secreto",
"formShowSecret": "Mostrar secreto",
"formClearSecret": "Borrar secreto existente",
"formCustomHeaders": "Encabezados personalizados",
"formQueryParams": "Parámetros de consulta",
"formEventTypes": "Tipos de evento",
"formEnabled": "Activado",
"kvAdd": "Agregar",
"kvRemovePair": "Eliminar par",
"kvKeyPlaceholder": "Clave",
"kvValuePlaceholder": "Valor",
"formatDateNA": "N/D",
"toastLoadFailed": "Error al cargar los webhooks",
"toastCreated": "Webhook creado",
"toastCreateFailed": "Error al crear el webhook",
"toastDeleted": "Webhook eliminado",
"toastDeleteFailed": "Error al eliminar el webhook",
"toastUpdated": "Webhook actualizado",
"toastUpdateFailed": "Error al actualizar el webhook",
"toastDeliveriesFailed": "Error al cargar las entregas",
"toastMoreDeliveriesFailed": "Error al cargar más entregas",
"webhookCount": "{count, plural, one {# webhook} other {# webhooks}}"
},
"auditLogsView": {
"requestVolume": "Volumen de solicitudes",
"chartLoading": "Cargando...",
"chartNoData": "Sin datos para este período",
"actionAll": "Todas las acciones",
"actionRetain": "Retain",
"actionRecall": "Recall",
"actionReflect": "Reflect",
"actionCreateBank": "Crear banco",
"actionUpdateBank": "Actualizar banco",
"actionDeleteBank": "Eliminar banco",
"actionClearMemories": "Borrar memorias",
"actionConsolidation": "Consolidación",
"actionBatchRetain": "Retain por lotes",
"actionCreateMentalModel": "Crear modelo mental",
"actionRefreshMentalModel": "Actualizar modelo mental",
"actionDeleteMentalModel": "Eliminar modelo mental",
"actionCreateDirective": "Crear directiva",
"actionDeleteDirective": "Eliminar directiva",
"actionFileConvertRetain": "Convertir archivo",
"actionWebhookDelivery": "Entrega de webhook",
"actionMemoryDefense": "Defensa de memoria",
"transportAll": "Todos los transportes",
"transportHttp": "HTTP",
"transportMcp": "MCP",
"transportSystem": "Sistema",
"periodToday": "Hoy",
"periodLast7Days": "Últimos 7 días",
"periodLast30Days": "Últimos 30 días",
"dateRangeAll": "Todo el tiempo",
"dateRangeLastHour": "Última hora",
"dateRangeLast24Hours": "Últimas 24 horas",
"dateRangeLast7Days": "Últimos 7 días",
"dateRangeLast30Days": "Últimos 30 días",
"refresh": "Actualizar",
"tableHeaderTime": "Hora",
"tableHeaderAction": "Acción",
"tableHeaderTransport": "Transporte",
"tableHeaderDuration": "Duración",
"tableLoading": "Cargando...",
"tableNoLogs": "No se encontraron registros de auditoría",
"paginationPage": "Página {current} de {total}",
"previous": "Anterior",
"next": "Siguiente",
"detailDialogTitle": "Registro de auditoría: {action}",
"detailAction": "Acción:",
"detailTransport": "Transporte:",
"detailStarted": "Iniciado:",
"detailDuration": "Duración:",
"detailRequest": "Solicitud",
"detailResponse": "Respuesta",
"detailMetadata": "Metadatos",
"entryCount": "{count, plural, one {# entrada} other {# entradas}}"
},
"llmRequestsView": {
"callVolume": "Volumen de llamadas",
"tokenVolume": "Volumen de tokens",
"metricCalls": "Llamadas",
"metricTokens": "Tokens",
"tokenModeTotal": "Total",
"tokenModeBreakdown": "Desglose",
"cumulative": "Acumulado",
"tokensInput": "Entrada",
"tokensOutput": "Salida",
"tokensCached": "En caché",
"tokensTotal": "Total",
"tableHeaderTokens": "Tokens",
"chartLoading": "Cargando...",
"chartNoData": "Sin datos para este período",
"statusAll": "Todos los estados",
"statusSuccess": "Éxito",
"statusError": "Error",
"operationAll": "Todas las operaciones",
"operationRetain": "Retain",
"operationReflect": "Reflect",
"operationConsolidation": "Consolidación",
"operationRefreshMentalModel": "Actualización de modelo mental",
"periodToday": "Hoy",
"periodLast7Days": "Últimos 7 días",
"periodLast30Days": "Últimos 30 días",
"dateRangeAll": "Todo el tiempo",
"dateRangeLastHour": "Última hora",
"dateRangeLast24Hours": "Últimas 24 horas",
"dateRangeLast7Days": "Últimos 7 días",
"dateRangeLast30Days": "Últimos 30 días",
"refresh": "Actualizar",
"tableHeaderTime": "Hora",
"tableHeaderOperation": "Operación",
"tableHeaderScope": "Ámbito",
"tableHeaderStatus": "Estado",
"tableHeaderDuration": "Duración",
"tableLoading": "Cargando...",
"tableNoRequests": "No se encontraron solicitudes LLM",
"paginationPage": "Página {current} de {total}",
"previous": "Anterior",
"next": "Siguiente",
"detailDialogTitle": "Solicitud LLM: {operation}",
"detailOperation": "Operación:",
"detailScope": "Ámbito:",
"detailProvider": "Proveedor:",
"detailModel": "Modelo:",
"detailStatus": "Estado:",
"detailStarted": "Iniciado:",
"detailDuration": "Duración:",
"detailInput": "Entrada",
"detailOutput": "Salida",
"detailError": "Error",
"detailLlmInfo": "Información de LLM",
"detailMetadata": "Metadatos",
"detailTrace": "Trace:",
"detailSpan": "Span:",
"detailParentSpan": "Span padre:",
"detailViewRun": "Ver todas las llamadas de esta ejecución",
"traceFilterActive": "Ejecución de operación:",
"traceFilterClear": "Limpiar",
"groupByRun": "Agrupar",
"groupByRunHint": "Agrupar las llamadas al LLM por ejecución de operación",
"entryCount": "{count, plural, one {# entrada} other {# entradas}}",
"memoriesCreated": "Memorias creadas ({count}):",
"memoriesSource": "Memorias de origen ({count}):"
},
"observationHistory": {
"unchanged": "sin cambios",
"new": "nuevo",
"memoryNoLongerAvailable": "(memoria ya no disponible)",
"changeOf": "Cambio {current} de {total}",
"sectionText": "Texto",
"sectionTags": "Etiquetas",
"sectionDates": "Fechas",
"occurredStart": "Inicio de ocurrencia",
"occurredEnd": "Fin de ocurrencia",
"mentionedAt": "Mencionado el",
"sourceFacts": "Hechos fuente ({count})"
},
"entityLabelsEditor": {
"labelGroups": "Grupos de etiquetas",
"labelGroupsDescription": "Etiquetas de clasificación extraídas al momento de retener. Dejar vacío para deshabilitar.",
"groupCount": "{count, plural, one {# grupo} other {# grupos}}",
"noLabelGroups": "No hay grupos de etiquetas definidos.",
"keyPlaceholder": "clave (p. ej. pedagogía)",
"descriptionPlaceholder": "descripción",
"descriptionExamplesPlaceholder": "descripción / ejemplos",
"typeSingleValue": "Valor único",
"typeMultiValues": "Múltiples valores",
"typeFreeText": "Texto libre",
"tag": "etiqueta",
"noValuesYet": "Aún no hay valores.",
"valuePlaceholder": "valor",
"addValue": "Agregar valor",
"addAttribute": "Agregar atributo",
"entityLabelsTitle": "Etiquetas de entidad",
"entityLabelsDescription": "Extraídas por memoria en el momento de retener. Todos los campos son opcionales — solo se rellenan cuando son claramente aplicables.",
"labelCount": "{count, plural, one {# etiqueta} other {# etiquetas}}",
"noEntityLabelsDefined": "No hay etiquetas de entidad definidas.",
"addLabel": "Añadir etiqueta",
"alsoStoreAsTagTooltip": "Almacenar también los valores extraídos como etiquetas en la memoria (no solo como entidades)",
"plusTag": "+ etiqueta"
},
"factTypeFilter": {
"defaultLabel": "Tipos de hecho:",
"world": "Mundo",
"experience": "Experiencia",
"observation": "Observación"
},
"failedConsolidations": {
"title": "Consolidaciones fallidas",
"description": "Memorias fuente cuya consolidación falló de forma permanente. La recuperación restablece el indicador de fallo y pone en cola una nueva ejecución de consolidación para que el proceso las reintente.",
"loading": "Cargando…",
"totalFailed": "{total} fallidas",
"recoverAll": "Recuperar todas",
"colFailedAt": "Falló el",
"colType": "Tipo",
"colText": "Texto",
"noFailedConsolidations": "No hay consolidaciones fallidas.",
"loadError": "Error al cargar las memorias fallidas",
"recoverSuccess": "Se pusieron en cola {count, plural, one {# memoria} other {# memorias}} para reconsolidación",
"recoverError": "Error al recuperar la consolidación",
"timeUnknown": "Desconocido",
"timeJustNow": "justo ahora",
"timeMinutesAgo": "hace {mins}m",
"timeHoursAgo": "hace {hours}h",
"timeDaysAgo": "hace {days}d"
},
"consolidationProgress": {
"inProgress": "Consolidación en progreso",
"lastCommit": "última confirmación {time}",
"titleLastCommit": "Última confirmación {time}",
"titleLiveBacklog": "Trabajo pendiente de consolidación en tiempo real para todo el banco",
"pendingLeft": "{count} restantes",
"memoriesRemaining": "memorias pendientes",
"measuringRate": "midiendo velocidad…"
},
"memoryDetailModal": {
"defaultTitle": "Detalles de la memoria",
"typeObservation": "Observación",
"typeWorldFact": "Hecho del mundo",
"typeExperience": "Experiencia",
"errorPrefix": "Error: {message}",
"tabObservation": "Observación",
"tabHistory": "Historial",
"tabHistoryWithCount": "Historial ({count})",
"tabWorldFact": "Hecho del mundo",
"tabExperience": "Experiencia",
"tabChunk": "Fragmento",
"tabDocument": "Documento",
"sectionText": "Texto",
"sectionOccurred": "Ocurrido",
"sectionMentioned": "Mencionado",
"sectionEntities": "Entidades",
"sectionTags": "Etiquetas",
"sectionMetadata": "Metadatos",
"sectionObservationScopes": "Alcances de observación",
"sectionSourceMemories": "Memorias fuente ({count})",
"sectionMemoryId": "ID de memoria",
"sourceMemoryViewButton": "Ver",
"sourceContextPrefix": "Contexto: {context}",
"sourceOccurred": "Ocurrido",
"sourceMentioned": "Mencionado",
"noHistoryYet": "Aún no hay historial registrado.",
"sectionMemoryText": "Texto de la memoria",
"sectionType": "Tipo",
"sectionContext": "Contexto",
"sectionMentionedAt": "Mencionado el",
"sectionChunkIndex": "Índice de fragmento",
"sectionTextLength": "Longitud del texto",
"textLengthValue": "{count} caracteres",
"sectionChunkText": "Texto del fragmento",
"sectionChunkId": "ID del fragmento",
"noChunkData": "No hay datos de fragmento disponibles",
"sectionCreated": "Creado",
"sectionMemoryUnits": "Unidades de memoria",
"sectionOriginalText": "Texto original",
"sectionDocumentId": "ID del documento",
"noDocumentData": "No hay datos del documento disponibles"
},
"memoryDetailPanel": {
"title": "Detalles de la memoria",
"subtitle": "Contenido completo de la memoria y metadatos",
"loadingDetails": "Cargando detalles de la memoria...",
"loading": "Cargando...",
"sectionFullText": "Texto completo",
"sectionContext": "Contexto",
"sectionOccurred": "Ocurrido",
"sectionMentioned": "Mencionado",
"sectionEntities": "Entidades",
"sectionTags": "Etiquetas",
"sectionSourceMemories": "Memorias fuente ({count})",
"sectionMemoryId": "ID de memoria",
"notAvailable": "N/D",
"sourceViewButton": "Ver",
"sourceContextPrefix": "Contexto: {context}",
"sourceOccurred": "Ocurrido",
"sourceMentioned": "Mencionado",
"viewDocumentButton": "Ver documento",
"viewChunkButton": "Ver fragmento",
"viewHistory": "Ver historial",
"tracedByTitle": "Creado por",
"tracedBySummary": "{calls} llamadas · {tokens} tokens",
"consolidatedByTitle": "Consolidado por",
"editFieldEntities": "Entities",
"editEntityPlaceholder": "Add entity…",
"editEntityRemove": "Remove {entity}",
"editedBadge": "Edited",
"curationInvalidateTitle": "Invalidar memoria",
"curationInvalidateExplain": "Esto mueve la memoria al archivo de elementos invalidados. Ya no aparecerá en Recall ni Reflect, pero se conserva para auditoría y puede restaurarse más tarde.",
"curationReasonPlaceholder": "Motivo (opcional)",
"curationCancel": "Cancelar",
"curationInvalidate": "Invalidar",
"curationActions": "Curación",
"curationEdit": "Editar",
"curationReasonLabel": "Motivo",
"curationRevert": "Restaurar",
"curationSave": "Guardar",
"curationStateInvalidated": "Invalidada",
"editFieldContext": "Contexto",
"editFieldOccurredEnd": "Fecha de fin",
"editFieldOccurredStart": "Fecha de inicio",
"editFieldType": "Tipo"
},
"documentChunkModal": {
"documentTitle": "Detalles del documento",
"chunkTitle": "Detalles del fragmento",
"documentDescription": "Ver el texto original del documento y los metadatos",
"chunkDescription": "Ver el texto del fragmento y los metadatos",
"loadingType": "Cargando {type}...",
"errorPrefix": "Error: {message}",
"noBankSelected": "No hay banco seleccionado",
"sectionDocumentId": "ID del documento",
"sectionCreated": "Creado",
"sectionMemoryUnits": "Unidades de memoria",
"sectionTextLength": "Longitud del texto",
"textLengthChars": "{count} caracteres",
"sectionTags": "Etiquetas",
"sectionOriginalText": "Texto original",
"sectionChunkId": "ID del fragmento",
"sectionChunkDocumentId": "ID del documento",
"sectionChunkIndex": "Índice de fragmento",
"sectionChunkText": "Texto del fragmento"
},
"directiveDetailModal": {
"title": "Detalles de la directiva",
"inactive": "Inactiva",
"created": "Creada",
"priority": "Prioridad",
"content": "Contenido",
"tags": "Etiquetas",
"errorPrefix": "Error: {error}"
},
"mentalModelDetailModal": {
"noBasedOnData": "Sin datos de base.",
"viewArrow": "Ver →",
"unchanged": "sin cambios",
"diffBefore": "Antes",
"diffAfter": "Después",
"keptCount": "{count} conservados",
"versionCurrent": " (actual)",
"changedAt": "cambiado {date}",
"contentDiff": "Diferencia de contenido",
"previousContentNotAvailable": "Contenido anterior no disponible",
"basedOnDiff": "Comparación de hechos base",
"basedOnNotCaptured": "No capturado para esta versión (registrado antes del seguimiento de instantáneas de Reflect).",
"mentalModelFallback": "Modelo mental",
"autoRefresh": "Actualización automática",
"reloadData": "Recargar datos",
"errorPrefix": "Error: {error}",
"tabContent": "Contenido",
"tabConfiguration": "Configuración",
"tabHistory": "Historial",
"actionsAriaLabel": "Acciones",
"actionEdit": "Editar",
"actionRefreshManually": "Actualizar manualmente",
"actionDelete": "Eliminar",
"storedContent": "Contenido almacenado",
"charsCount": "{count} caracteres",
"lastRefreshed": "Última actualización {time}",
"basedOn": "Basado en",
"basedOnWithCount": "Basado en ({count})",
"noSourceData": "Sin datos de origen. Haga clic en \"Actualizar\" para regenerar con seguimiento de fuentes.",
"noHistory": "Aún no hay historial registrado.",
"identityTitle": "Identidad",
"labelId": "ID",
"labelName": "Nombre",
"labelSourceQuery": "Consulta de origen",
"labelTags": "Etiquetas",
"noTags": "ninguna",
"timingTitle": "Temporización",
"labelCreated": "Creado",
"labelLastRefreshed": "Última actualización",
"labelNextRefresh": "Próxima actualización",
"labelMaxTokens": "Tokens máximos",
"refreshTriggerTitle": "Disparador de actualización",
"labelRefreshMode": "Modo de actualización",
"pillDelta": "Delta",
"pillFull": "Completo",
"labelAutoRefreshAfterConsolidation": "Actualización automática con nuevas memorias",
"labelRefreshCron": "Actualización programada (cron)",
"pillEnabled": "Habilitado",
"pillDisabled": "Deshabilitado",
"labelFactTypes": "Tipos de hecho",
"factTypesAll": "todos",
"labelExcludeMentalModels": "Excluir modelos mentales",
"valueYes": "Sí",
"valueNo": "No",
"labelExcludedIds": "IDs excluidos",
"recallParamsTitle": "Parámetros de Recall",
"labelIncludeChunks": "Incluir fragmentos",
"includeChunksDefault": "predeterminado",
"labelRecallMaxTokens": "Tokens máximos de Recall",
"recallMaxTokensDefault": "predeterminado",
"labelRecallChunksMaxTokens": "Tokens máximos de fragmentos de Recall",
"recallChunksMaxTokensDefault": "predeterminado",
"labelTagsMatch": "Coincidencia de etiquetas",
"tagsMatchDefault": "predeterminado",
"tagGroupsTitle": "Grupos de etiquetas",
"refreshTimeoutTitle": "Tiempo de espera de actualización",
"refreshTimeoutDescription": "La actualización está tardando más de lo esperado. Consulte la lista de operaciones para ver el estado.",
"factTypeDirective": "directiva",
"factTypeMentalModel": "modelo mental",
"factTypeWorld": "mundo",
"factTypeExperience": "experiencia",
"factTypeObservation": "observación",
"actionClearContent": "Borrar contenido",
"structuredOutput": "Salida estructurada",
"responseSchemaTitle": "Esquema de salida estructurada",
"refreshTrace": "Traza de la actualización",
"traceNotCaptured": "No se registró ninguna traza para esta actualización. Activa «Conservar trazas de actualización» en los ajustes del modelo.",
"actionDryRun": "Ejecutar simulación",
"actionDryRunRunning": "Ejecutando simulación…",
"failureReasonUnknown": "Actualización fallida",
"failureReasonRetrievalFailed": "Fallo en la recuperación",
"failureReasonNoAnswer": "No se produjo respuesta",
"failureReasonEmptyCandidate": "Se generó contenido vacío",
"failureReasonDocUnreadable": "Documento almacenado ilegible",
"failureReasonDeltaOpsFailed": "Fallaron las operaciones delta",
"failureReasonDeltaOpsAllSkipped": "Se rechazaron todas las operaciones delta",
"failureReasonDeltaNotApplied": "Delta no aplicado",
"failureReasonStructuredOutput": "Falló la extracción de salida estructurada",
"failureAttempts": "· {count} intentos",
"tabErrors": "Errores",
"noErrors": "No hay actualizaciones fallidas.",
"errorsIntro": "Actualizaciones que se negaron a escribir, de la más reciente a la más antigua. Ninguna modificó el contenido almacenado. Una actualización fallida se reintenta automáticamente unas cuantas veces; después el modelo conserva su última versión válida hasta que algo vuelva a activarlo.",
"errorsPresent": "Este modelo mental tiene actualizaciones fallidas",
"failureReasonUnexpected": "Error inesperado"
},
"constellation": {
"instructions": "Desplaza para hacer zoom · Arrastra para mover · Pasa el cursor para explorar · Haz clic para seleccionar",
"hudStats": "{memories} memorias · {visible} visibles · {labels} etiquetas · {links} enlaces · zoom {zoom}x",
"exitFullscreenTitle": "Salir de pantalla completa (Esc)",
"enterFullscreenTitle": "Entrar en pantalla completa",
"exitFullscreenLabel": "Salir",
"enterFullscreenLabel": "Pantalla completa",
"legendLinks": "ENLACES",
"legendFew": "pocos",
"legendMany": "muchos",
"linkTypeSemantic": "semántico",
"linkTypeTemporal": "temporal",
"linkTypeEntity": "entidad",
"linkTypeCausal": "causal",
"exportSvgTitle": "Descargar como SVG para compartir",
"exportSvgLabel": "Compartir"
},
"metadata": {
"title": "Hindsight Cloud",
"description": "Plano de control multi-inquilino para la memoria semántica de Hindsight"
},
"addDocument": {
"addDocumentButton": "Agregar documento",
"dialogTitle": "Agregar nuevo documento",
"dialogSubtitle": "Agregar un nuevo documento al banco de memoria: ",
"tabText": "Texto",
"tabUploadFiles": "Subir archivos",
"contentLabel": "Contenido *",
"contentPlaceholder": "Ingresa el contenido del documento...",
"dropzoneInstruction": "Haz clic o arrastra archivos aquí para subirlos",
"dropzoneSupportedTypes": "PDF, Word, PowerPoint, Excel, imágenes y archivos de texto",
"selectedFilesLabel": "Archivos seleccionados ({count})",
"extractionMethodLabel": "Método de extracción",
"parserStandardLabel": "Estándar",
"parserStandardDescription": "Gratuito — bueno para documentos basados en texto; el OCR de imágenes depende de la configuración del servidor",
"parserEnhancedLabel": "Mejorado (Iris)",
"parserEnhancedDescription": "Cargo adicional — mejor calidad para diseños complejos, documentos escaneados e imágenes",
"contextLabel": "Contexto",
"contextPlaceholder": "Contexto opcional sobre este documento...",
"eventDateLabel": "Fecha del evento",
"documentIdLabel": "ID del documento",
"documentIdPlaceholder": "Identificador opcional del documento...",
"tagsLabel": "Etiquetas",
"tagsPlaceholder": "usuario_alice, sesion_123, proyecto_x",
"tagsHelpText": "Etiquetas separadas por comas para filtrar durante recall/reflect.",
"asyncLabel": "Procesar en segundo plano (asíncrono)",
"cancel": "Cancelar",
"addDocumentSubmit": "Agregar documento",
"addingDocument": "Agregando...",
"uploading": "Subiendo...",
"toastDocumentAdded": "Documento agregado",
"toastDocumentAddedDescription": "El documento ha sido agregado y se están extrayendo las memorias.",
"toastFilesSkipped": "Algunos archivos fueron omitidos",
"toastFilesSkippedDescription": "Solo se permiten tipos de archivo compatibles (PDF, Word, PowerPoint, Excel, imágenes y archivos de texto).",
"toastImagesRequireIris": "Las imágenes requieren extracción Mejorada (Iris)",
"toastImagesRequireIrisDescription": "Cambia a extracción Mejorada para subir: {names}",
"toastUploadingSingle": "Subiendo {name}...",
"toastUploadingMultiple": "Subiendo {count} archivos...",
"toastFileUploaded": "Archivo subido",
"toastFilesUploaded": "{count} archivos subidos",
"toastFilesUploadedDescription": "Archivos subidos — procesando en segundo plano.",
"errorFailedToCreate": "Error al crear el documento",
"errorFailedToUpload": "Error al subir los archivos",
"uploadFiles": "{count, plural, one {Subir # archivo} other {Subir # archivos}}",
"strategyLabel": "Estrategia",
"strategyDefault": "Predeterminado",
"strategyPlaceholder": "Nombre de estrategia (opcional)…",
"fileIdPlaceholder": "ID opcional…",
"fileContextPlaceholder": "Contexto opcional…",
"fileTagsPlaceholder": "tag1, tag2…",
"observationScopesLabel": "Ámbitos de observación",
"moreScopes": "+{count} ámbitos más",
"createBankTitle": "Crear nuevo banco de memoria",
"createBankIdPlaceholder": "Introducir ID del banco…",
"importFromTemplateLabel": "Importar desde plantilla",
"browseTemplates": "Explorar plantillas →",
"fileUploadDisabled": "API de carga de archivos deshabilitada",
"clickToSelectFiles": "Haz clic para seleccionar archivos o arrástralos aquí",
"editFileMetadata": "Editar metadatos de este archivo",
"creating": "Creando…",
"failedToCreateBank": "Error al crear el banco",
"failedToImportTemplate": "Error al importar la plantilla",
"addDocumentToCurrentBank": "Añadir documento al banco actual",
"templateManifestHelp": "Pega un manifiesto de plantilla JSON para preconfigurar el banco con ajustes, modelos mentales y directivas.",
"fileUploadDisabledMessage": "La carga de archivos no está habilitada en este servidor.",
"fileUploadEnableHint": "Para habilitar, establece <code>HINDSIGHT_API_ENABLE_FILE_UPLOAD_API=true</code>",
"fileTagsHelp": "Separadas por comas — usadas para filtrar memorias durante recall/reflect",
"strategyHelpText": "Anula la estrategia de extracción predeterminada del banco para este documento.",
"observationScopePerTag": "Por etiqueta",
"observationScopeAllCombinations": "Todas las combinaciones",
"observationScopeShared": "Compartido",
"observationScopeSharedHelp": "Todas las observaciones se almacenan en un ámbito compartido y sin etiquetas (las etiquetas se ignoran).",
"observationScopeCustom": "Personalizado",
"observationScopesEmpty": "Añade etiquetas arriba para previsualizar los ámbitos de observación",
"metadataHelpText": "Un <code>key: value</code> por línea",
"entitiesHelpText": "Sugerencias separadas por comas que se combinan con las entidades extraídas automáticamente",
"textNotStoredWarning": "El texto original del documento no se almacenará en este servidor: solo se conservan las memorias extraídas.",
"composeText": "Text",
"composeBlocks": "Blocks",
"composeBlocksHint": "Arrange text and attachments in the order they appear in the source. Needs a vision-capable model.",
"blockAddText": "Text",
"blockAddAttachment": "Attachment",
"blockRemove": "Remove block",
"blockMoveUp": "Move block up",
"blockMoveDown": "Move block down",
"blockAdd": "Add"
},
"banksOverview": {
"title": "Bancos de memoria",
"subtitle": "Cada banco de memoria es un cerebro aparte: un almacén aislado de todo lo que recuerda un usuario, agente o proyecto. Nada se comparte entre bancos.",
"welcomeTitle": "Bienvenido a Hindsight",
"welcomeBody": "Un banco de memoria es un cerebro aparte: un almacén aislado de todo lo que recuerda un usuario, agente o proyecto. Cree el primero para empezar.",
"search": "Buscar bancos...",
"noSearchResults": "Ningún banco coincide con su búsqueda.",
"columnBank": "Banco",
"columnMemories": "Memorias",
"columnLastActivity": "Última actividad",
"columnCreated": "Creado",
"never": "Nunca",
"emptyBank": "vacío",
"selectAll": "Seleccionar todos los bancos cargados",
"selectBank": "Seleccionar {bank}",
"selectedCount": "{count} seleccionados",
"clearSelection": "Limpiar",
"deleteSelected": "Eliminar seleccionados",
"bulkDeleteTitle": "¿Eliminar {count} bancos de memoria?",
"bulkDeletePrompt": "Estos bancos y todo su contenido se eliminarán permanentemente:",
"bulkDeleteMore": "y {count} más",
"bulkDeleteWarning": "Esta acción no se puede deshacer. Todas las memorias, entidades, documentos y perfiles de banco se eliminarán permanentemente.",
"bulkDeleteSequentialNote": "Los bancos se eliminan de uno en uno, así que puede tardar. Mantenga este diálogo abierto hasta que termine.",
"bulkDeleteConfirmLabel": "Escriba {word} para confirmar",
"bulkDeleteConfirmWord": "delete",
"bulkDeleteProgress": "Eliminando {done} de {total}...",
"bulkDeleteDone": "{count} bancos eliminados",
"bulkDeletePartial": "{deleted} eliminados, {failed} fallidos",
"bulkDeleteFailures": "No se pudieron eliminar estos bancos:"
},
"login": {
"title": "Plano de Control de Hindsight",
"description": "Introduce tu clave de acceso para continuar",
"accessKey": "Clave de acceso",
"accessKeyPlaceholder": "Introduce la clave de acceso",
"signIn": "Iniciar sesión",
"signingIn": "Iniciando sesión...",
"invalidKey": "Clave de acceso inválida",
"connectFailed": "No se pudo conectar al servidor"
},
"api": {
"errors": {
"auth": {
"accessKeyNotConfigured": "La clave de acceso no está configurada",
"invalidRequestBody": "El cuerpo de la solicitud no es válido",
"invalidAccessKey": "La clave de acceso no es válida",
"unauthorized": "No autorizado"
},
"validation": {
"bankIdRequired": "bank_id es obligatorio",
"bankAndDirectiveIdRequired": "bank_id y directive_id son obligatorios",
"bankAndMentalModelIdRequired": "bank_id y mental_model_id son obligatorios",
"bankAndModelIdRequired": "bank_id y model_id son obligatorios",
"operationIdRequired": "operation_id es obligatorio",
"missingRequestData": "Faltan datos de la solicitud",
"missingBankId": "Falta bank_id",
"fileRequired": "Se requiere un archivo"
},
"generic": {
"failed": "Error",
"unsupportedIndividualMemoryDelete": "La eliminación de unidades de memoria individuales aún no es compatible. Use la opción para borrar todas las memorias."
},
"banks": {
"fetch": "No se pudieron obtener los bancos de memoria",
"fetchFromApi": "No se pudieron obtener los bancos de memoria desde la API",
"create": "No se pudo crear el banco de memoria",
"update": "No se pudo actualizar el banco de memoria",
"delete": "No se pudo eliminar el banco de memoria",
"exportTemplate": "No se pudo exportar la plantilla del banco de memoria",
"importTemplate": "No se pudo importar la plantilla del banco de memoria"
},
"bankConfig": {
"fetch": "No se pudo obtener la configuración del banco",
"update": "No se pudo actualizar la configuración del banco",
"reset": "No se pudo restablecer la configuración del banco"
},
"memories": {
"list": "No se pudieron listar las unidades de memoria",
"fetch": "No se pudo obtener la memoria",
"notFound": "Memoria no encontrada",
"retain": "No se pudo ejecutar Retain por lotes",
"retainAsync": "No se pudo ejecutar Retain por lotes de forma asíncrona",
"history": "No se pudo obtener el historial de observaciones",
"update": "No se pudo actualizar la memoria"
},
"documents": {
"fetchList": "No se pudieron obtener los documentos",
"fetch": "No se pudo obtener el documento",
"updateTags": "No se pudieron actualizar las etiquetas del documento",
"delete": "No se pudo eliminar el documento",
"chunks": "No se pudieron obtener los fragmentos del documento",
"reprocess": "No se pudo reprocesar el documento",
"export": "No se pudieron exportar los documentos",
"import": "No se pudieron importar los documentos"
},
"files": {
"upload": "No se pudieron subir los archivos"
},
"chunks": {
"fetch": "No se pudo obtener el fragmento"
},
"entities": {
"list": "No se pudieron listar las entidades",
"fetch": "No se pudo obtener la entidad",
"graph": "No se pudo obtener el grafo de entidades",
"regenerateObservations": "No se pudieron regenerar las observaciones de la entidad"
},
"graph": {
"fetch": "No se pudieron obtener los datos del grafo"
},
"mentalModels": {
"list": "No se pudieron listar los modelos mentales",
"fetch": "No se pudo obtener el modelo mental",
"create": "No se pudo crear el modelo mental",
"update": "No se pudo actualizar el modelo mental",
"delete": "No se pudo eliminar el modelo mental",
"refresh": "No se pudo actualizar el modelo mental",
"history": "No se pudo obtener el historial del modelo mental",
"notFound": "Modelo mental no encontrado",
"clear": "No se pudo borrar el modelo mental",
"dryRunRefresh": "No se pudo simular la actualización del modelo mental"
},
"observations": {
"list": "No se pudieron listar las observaciones",
"clear": "No se pudieron borrar las observaciones",
"fetch": "No se pudo obtener la observación"
},
"directives": {
"list": "No se pudieron listar las directivas",
"fetch": "No se pudo obtener la directiva",
"create": "No se pudo crear la directiva",
"update": "No se pudo actualizar la directiva",
"delete": "No se pudo eliminar la directiva"
},
"operations": {
"fetch": "No se pudieron obtener las operaciones",
"cancel": "No se pudo cancelar la operación",
"status": "No se pudo obtener el estado de la operación",
"retry": "No se pudo reintentar la operación",
"delete": "Error al eliminar la operación"
},
"auditLogs": {
"list": "No se pudieron listar los registros de auditoría",
"stats": "No se pudieron obtener las estadísticas de registros de auditoría"
},
"llmRequests": {
"list": "No se pudieron listar las solicitudes LLM",
"stats": "No se pudieron obtener las estadísticas de solicitudes LLM"
},
"tags": {
"list": "No se pudieron listar las etiquetas"
},
"consolidation": {
"trigger": "No se pudo iniciar la consolidación",
"recover": "No se pudo recuperar la consolidación"
},
"recall": {
"failed": "No se pudo ejecutar Recall"
},
"reflect": {
"failed": "No se pudo ejecutar Reflect"
},
"stats": {
"fetch": "No se pudieron obtener las estadísticas",
"memoriesTimeseries": "No se pudo obtener la serie temporal de memorias"
},
"version": {
"fetch": "No se pudo obtener la versión"
},
"webhooks": {
"list": "No se pudieron listar los webhooks",
"create": "No se pudo crear el webhook",
"update": "No se pudo actualizar el webhook",
"delete": "No se pudo eliminar el webhook",
"deliveries": "No se pudieron obtener las entregas del webhook"
},
"knowledgeBase": {
"tree": "Error al obtener el árbol de conocimiento",
"graph": "Error al obtener el grafo de conocimiento",
"export": "Error al exportar la base de conocimiento",
"createFolder": "Error al crear la carpeta",
"createPage": "Error al crear la página",
"fetchPage": "Error al obtener la página de conocimiento",
"updateNode": "Error al actualizar el nodo",
"deleteNode": "Error al eliminar el nodo",
"search": "Error al buscar en la base de conocimiento"
}
}
},
"knowledgeBase": {
"title": "Base de conocimiento",
"description": "Organiza tu conocimiento en carpetas y páginas.",
"loading": "Cargando base de conocimiento…",
"loadingPage": "Cargando página…",
"empty": "Aún no hay carpetas ni páginas.",
"emptyHint": "Crea una carpeta o una página para comenzar.",
"newFolder": "Nueva carpeta",
"newPage": "Nueva página",
"exportButton": "Exportar paquete",
"count": "{folders} carpetas · {pages} páginas",
"graphCount": "{pages} páginas · {links} enlaces de etiquetas",
"sizeLegendLabel": "enlaces de etiquetas compartidas",
"updatedLabel": "Actualizado",
"close": "Cerrar",
"noBody": "Esta página aún no tiene contenido.",
"deleteConfirm": "¿Eliminar \"{name}\" y todo su contenido?",
"deleteButton": "Eliminar",
"cancel": "Cancelar",
"create": "Crear",
"creating": "Creando…",
"fieldName": "Nombre",
"fieldSourceQuery": "Consulta de origen (la pregunta que reconstruye esta página)",
"fieldParent": "Carpeta superior",
"rootFolder": "Raíz",
"selectPagePrompt": "Seleccione una página para leerla.",
"createFolderTitle": "Nueva carpeta",
"createPageTitle": "Nueva página",
"autoBadge": "auto",
"generating": "Generando…",
"howDerived": "Cómo se genera esta página",
"backedBy": "Respaldado por {count} recuerdos",
"mentalModelOptions": "Opciones del modelo mental",
"searchPlaceholder": "Buscar páginas…",
"clearSearch": "Limpiar búsqueda",
"searchEmpty": "No hay páginas coincidentes.",
"editButton": "Editar",
"editPageTitle": "Editar página",
"editPageDescription": "Actualice el nombre de la página y la pregunta que la reconstruye.",
"editSourceQueryHint": "Cambiar esto reconstruye el contenido de la página a partir de tus recuerdos.",
"saveChanges": "Guardar cambios"
},
"home": {
"title": "Home",
"subtitle": "Overview of",
"statMemories": "Memories",
"statObservations": "Observations",
"statPages": "Knowledge pages",
"statDocuments": "Documents",
"constellationTitle": "Memory constellation",
"constellationEmpty": "No memories yet",
"pagesTitle": "Páginas de conocimiento",
"viewAll": "View all",
"pagesEmpty": "Aún no hay páginas de conocimiento",
"pagesEmptyCta": "Crear su primera página",
"recentDocsTitle": "Recent documents",
"recentDocsEmpty": "No documents yet"
},
"schemaBuilder": {
"title": "Esquema de salida estructurada",
"subtitle": "Agrega campos de forma visual o edita el JSON directamente. El modelo devuelve un objeto con esta forma.",
"visualTab": "Visual",
"codeTab": "Código",
"addField": "Agregar campo",
"namePlaceholder": "nombre del campo",
"descriptionPlaceholder": "descripción (opcional)",
"required": "Obligatorio",
"removeField": "Eliminar campo",
"emptyState": "Agrega al menos un campo para definir la salida.",
"duplicateNames": "Los nombres de los campos deben ser únicos.",
"visualUnavailable": "Este esquema es demasiado avanzado para el editor visual; edítalo como código.",
"invalidJson": "Sintaxis JSON no válida.",
"cancel": "Cancelar",
"apply": "Aplicar",
"openBuilder": "Crear esquema",
"edit": "Editar",
"clear": "Quitar esquema",
"fieldsSummary": "{count, plural, one {# campo} other {# campos}}",
"invalidSchema": "Esquema no válido: abre el generador para corregirlo.",
"fieldDescription": "Si se define, la respuesta también se devuelve como structured_output según este esquema.",
"itemsLabel": "cada elemento"
},
"mentalModelDiagnostics": {
"fallbackNoBaseline": "No hay contenido existente que editar",
"fallbackQueryChanged": "La consulta de origen cambió",
"fallbackDocUnreadable": "No se pudo leer el documento almacenado",
"fallbackOpsFailed": "La llamada de operaciones delta falló",
"fallbackOpsAllSkipped": "Se rechazaron todas las operaciones delta",
"outcomeWritten": "Contenido nuevo escrito",
"outcomePreserved": "Sin hechos nuevos, contenido conservado",
"outcomeFailed": "Resultado vacío, la actualización falla",
"outcomeDeltaNotApplied": "Delta no aplicado, la actualización falla",
"warningsTitle": "Advertencias",
"traceResults": "{count} resultados",
"executionTraceTitle": "Traza de ejecución",
"noOperations": "Sin operaciones",
"responseGenerated": "Respuesta generada",
"agentDecided": "El agente decidió",
"toolInputLabel": "Entrada:",
"executionTraceDescription": "{iterations} llamadas al LLM • {totalMs}ms en total",
"executingTools": "Herramientas llamadas: {count}",
"resultTitle": "Simulación: {name}",
"toolOutputLabel": "Salida:",
"toolWindowBound": "ventana: solo memorias actualizadas después de {time}",
"toolWindowUnbounded": "ventana: ninguna — esta herramienta no está acotada en el tiempo"
},
"staleness": {
"stale": "Desactualizado",
"inSync": "Al día",
"staleAutoTitle": "Nuevos recuerdos en el ámbito de este modelo (se actualizará automáticamente)",
"staleManualTitle": "Nuevos recuerdos en el ámbito de este modelo (actualice manualmente para sincronizar)",
"inSyncTitle": "No hay nuevos recuerdos en el ámbito de este modelo"
}
}