@cat-factory/app 0.46.11 → 0.46.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -710,5 +710,414 @@
710
710
  "userPrompt": "Prompt del usuario",
711
711
  "details": "Detalles"
712
712
  }
713
+ },
714
+ "auth": {
715
+ "gate": {
716
+ "loading": "Cargando…"
717
+ },
718
+ "login": {
719
+ "appTitle": "Architecture Board",
720
+ "subtitle": "Inicia sesión para continuar.",
721
+ "inviteSubtitle": "Acepta tu invitación para continuar.",
722
+ "forgotSubtitle": "Restablece tu contraseña.",
723
+ "continueWithGithub": "Continuar con GitHub",
724
+ "continueWithGoogle": "Continuar con Google",
725
+ "or": "o",
726
+ "namePlaceholder": "Nombre (opcional)",
727
+ "emailPlaceholder": "Correo electrónico",
728
+ "passwordPlaceholder": "Contraseña",
729
+ "createAccount": "Crear cuenta",
730
+ "signIn": "Iniciar sesión",
731
+ "signUp": "Registrarse",
732
+ "needAccount": "¿Necesitas una cuenta? {signUp}",
733
+ "haveAccount": "¿Ya tienes una cuenta? {signIn}",
734
+ "forgotPassword": "¿Olvidaste tu contraseña?",
735
+ "forgotSent": "Si existe una cuenta con ese correo, un enlace para restablecer la contraseña está en camino. Revisa tu bandeja de entrada.",
736
+ "sendResetLink": "Enviar enlace de restablecimiento",
737
+ "backToSignIn": "Volver al inicio de sesión",
738
+ "signInFailed": "Error al iniciar sesión. Revisa tus datos e inténtalo de nuevo.",
739
+ "genericError": "Algo salió mal. Inténtalo de nuevo."
740
+ },
741
+ "resetPassword": {
742
+ "title": "Restablecer contraseña",
743
+ "subtitle": "Elige una nueva contraseña para tu cuenta.",
744
+ "doneBody": "Tu contraseña se ha restablecido. Ya puedes iniciar sesión con tu nueva contraseña.",
745
+ "goToSignIn": "Ir al inicio de sesión",
746
+ "missingToken": "A este enlace de restablecimiento le falta el token. Solicita un nuevo enlace desde la pantalla de inicio de sesión.",
747
+ "backToSignIn": "Volver al inicio de sesión",
748
+ "newPasswordPlaceholder": "Nueva contraseña",
749
+ "confirmPasswordPlaceholder": "Confirmar nueva contraseña",
750
+ "submit": "Restablecer contraseña",
751
+ "errorTooShort": "La contraseña debe tener al menos 8 caracteres.",
752
+ "errorMismatch": "Las contraseñas no coinciden.",
753
+ "errorInvalidLink": "Este enlace para restablecer la contraseña no es válido o ha caducado."
754
+ },
755
+ "userMenu": {
756
+ "mySetup": "Mi configuración",
757
+ "signOut": "Cerrar sesión"
758
+ }
759
+ },
760
+ "layout": {
761
+ "accountDeployment": {
762
+ "title": "Integraciones del despliegue",
763
+ "intro": "Credenciales compartidas por todos los espacios de trabajo de esta cuenta, cifradas en reposo. Los valores nunca se muestran tras guardarlos; deja un campo en blanco para conservar el secreto almacenado.",
764
+ "configured": "Configurado",
765
+ "notSet": "Sin definir",
766
+ "clear": "Borrar",
767
+ "loadFailed": "No se pudo cargar la configuración del despliegue",
768
+ "slack": {
769
+ "title": "Aplicación de Slack (OAuth)",
770
+ "description": "Habilita el flujo OAuth \"Add to Slack\". Sin él, los espacios de trabajo aún pueden conectar Slack pegando un token de bot.",
771
+ "clientId": "ID de cliente",
772
+ "clientSecret": "Secreto de cliente",
773
+ "redirectUrl": "URL de redirección",
774
+ "validation": "Introduce el id de cliente, el secreto y la URL de redirección",
775
+ "saved": "OAuth de Slack guardado",
776
+ "saveFailed": "No se pudo guardar el OAuth de Slack",
777
+ "cleared": "OAuth de Slack borrado",
778
+ "clearFailed": "No se pudo borrar el OAuth de Slack"
779
+ },
780
+ "web": {
781
+ "title": "Búsqueda web del contenedor",
782
+ "description": "El proveedor de búsqueda al que los agentes del contenedor acceden a través del proxy del backend. Define una clave de Brave (recomendado) o una URL de SearXNG autoalojada (con una clave bearer opcional).",
783
+ "configured": "Configurado ({provider})",
784
+ "braveKey": "Clave de API de Brave",
785
+ "searxngUrl": "URL de SearXNG",
786
+ "searxngKey": "Clave de SearXNG (opcional)",
787
+ "validation": "Introduce una clave de Brave o una URL de SearXNG",
788
+ "saved": "Claves de búsqueda web guardadas",
789
+ "saveFailed": "No se pudieron guardar las claves de búsqueda web",
790
+ "cleared": "Claves de búsqueda web borradas",
791
+ "clearFailed": "No se pudieron borrar las claves de búsqueda web"
792
+ }
793
+ },
794
+ "accountFragments": {
795
+ "intro": "Directrices de buenas prácticas compartidas por todos los tableros de esta cuenta. Cada tablero las hereda y puede anularlas o añadir las suyas. Los agentes que conocen el código (coder, reviewer, architect, fixers) incorporan las relevantes en su prompt."
796
+ },
797
+ "accountTeam": {
798
+ "roles": {
799
+ "admin": "Administrador",
800
+ "developer": "Desarrollador",
801
+ "product": "Producto"
802
+ },
803
+ "org": {
804
+ "ctaTitle": "Invita a compañeros y gestiona roles",
805
+ "ctaBody": "Los miembros, roles e invitaciones viven en una organización. Crea una para invitar a compañeros y gestionar sus roles; tus tableros personales se mantienen igual.",
806
+ "namePlaceholder": "Acme Inc.",
807
+ "create": "Crear organización",
808
+ "created": "Organización creada"
809
+ },
810
+ "members": {
811
+ "title": "Miembros",
812
+ "empty": "Todavía no hay miembros."
813
+ },
814
+ "invite": {
815
+ "title": "Invitar a un compañero",
816
+ "submit": "Invitar",
817
+ "revoke": "Revocar invitación",
818
+ "created": "Invitación creada",
819
+ "createdEmailed": "Se envió un correo (o copia el enlace de la lista de abajo).",
820
+ "createdShareLink": "Comparte el enlace de aceptación con tu compañero.",
821
+ "status": {
822
+ "pending": "Pendiente",
823
+ "accepted": "Aceptada",
824
+ "revoked": "Revocada"
825
+ }
826
+ },
827
+ "email": {
828
+ "title": "Remitente de correo",
829
+ "notEnabled": "El envío de correo no está habilitado en este despliegue. Las invitaciones aún generan un enlace de aceptación que se puede compartir.",
830
+ "connectedAs": "Conectado mediante {provider} como {from}",
831
+ "disconnect": "Desconectar",
832
+ "connect": "Conectar remitente de correo",
833
+ "connected": "Remitente de correo conectado",
834
+ "fromPlaceholder": "Dirección de remitente",
835
+ "apiKeyPlaceholder": "Clave de API del proveedor",
836
+ "providers": {
837
+ "resend": "Resend",
838
+ "sendgrid": "SendGrid"
839
+ }
840
+ },
841
+ "apiKeys": {
842
+ "title": "Claves de API de la cuenta"
843
+ },
844
+ "errors": {
845
+ "updateRoles": "No se pudieron actualizar los roles",
846
+ "loadSettings": "No se pudo cargar la configuración del equipo",
847
+ "createOrg": "No se pudo crear la organización",
848
+ "sendInvite": "No se pudo enviar la invitación",
849
+ "revokeInvite": "No se pudo revocar la invitación",
850
+ "connectEmail": "No se pudo conectar el remitente de correo",
851
+ "disconnectEmail": "No se pudo desconectar el remitente de correo"
852
+ }
853
+ },
854
+ "boardSwitcher": {
855
+ "accountFallback": "Cuenta",
856
+ "boardFallback": "Tablero",
857
+ "providers": {
858
+ "docker": "Docker (local)",
859
+ "custom": "Personalizado"
860
+ },
861
+ "account": {
862
+ "newOrg": "Nueva organización…",
863
+ "settings": "Configuración de la cuenta…",
864
+ "defaultProvider": "Proveedor de nube predeterminado"
865
+ },
866
+ "board": {
867
+ "new": "Nuevo tablero…",
868
+ "rename": "Cambiar nombre del tablero…",
869
+ "delete": "Eliminar tablero"
870
+ },
871
+ "prompt": {
872
+ "create": "Crear",
873
+ "nameLabel": "Nombre",
874
+ "descriptionLabel": "Descripción",
875
+ "descriptionHint": "Opcional",
876
+ "descriptionPlaceholder": "¿Para qué sirve este tablero?",
877
+ "account": {
878
+ "title": "Nueva organización",
879
+ "placeholder": "Acme Inc."
880
+ },
881
+ "board": {
882
+ "title": "Nuevo tablero",
883
+ "placeholder": "Tablero sin título"
884
+ },
885
+ "rename": {
886
+ "title": "Configuración del tablero",
887
+ "placeholder": "Nombre del tablero"
888
+ }
889
+ },
890
+ "toast": {
891
+ "updateProviderFailed": "No se pudo actualizar el proveedor predeterminado",
892
+ "switchAccountFailed": "No se pudo cambiar de cuenta",
893
+ "openBoardFailed": "No se pudo abrir el tablero",
894
+ "boardDeleted": "Tablero eliminado",
895
+ "deleteBoardFailed": "No se pudo eliminar el tablero"
896
+ }
897
+ },
898
+ "notifications": {
899
+ "heading": "Requiere tu atención",
900
+ "overdue": "Vencida",
901
+ "openPr": "Abrir PR",
902
+ "dismiss": "Descartar",
903
+ "action": {
904
+ "merge_review": "Fusionar",
905
+ "pipeline_complete": "Confirmar y fusionar",
906
+ "ci_failed": "Reintentar ejecución",
907
+ "test_failed": "Reintentar ejecución",
908
+ "requirement_review": "Marcar como leída",
909
+ "clarity_review": "Marcar como leída",
910
+ "release_regression": "Confirmar recepción",
911
+ "decision_required": "Marcar como leída",
912
+ "human_test_ready": "Marcar como leída",
913
+ "visual_confirmation_ready": "Marcar como leída",
914
+ "human_review": "Marcar como leída",
915
+ "followup_pending": "Marcar como leída",
916
+ "markRead": "Marcar como leída"
917
+ }
918
+ },
919
+ "aiProvidersBanner": {
920
+ "setup": {
921
+ "title": "No hay ningún modelo de IA configurado",
922
+ "body": "Los agentes necesitan un modelo para ejecutarse. La IA funciona de forma inmediata solo en un despliegue de Cloudflare con Workers AI habilitado. De lo contrario, conecta una clave de proveedor, una suscripción, un proxy o un ejecutor local para continuar.",
923
+ "action": "Configurar IA"
924
+ },
925
+ "preset": {
926
+ "title": "El preajuste de modelo predeterminado usa modelos no disponibles",
927
+ "body": "Las tareas que usan el preajuste predeterminado fallarían. Edita el preajuste o configura el proveedor que falta.",
928
+ "action": "Revisar preajuste"
929
+ }
930
+ },
931
+ "githubPatBanner": {
932
+ "title": "PAT de GitHub no configurado",
933
+ "body": "El modo local accede a GitHub con un token de acceso personal. Sin uno, los pasos de los agentes que clonan, hacen push, abren PR, validan CI o fusionan fallarán.",
934
+ "createToken": "Crear un token de GitHub (ámbitos preseleccionados)",
935
+ "thenSet": "Luego define {envVar} y reinicia."
936
+ },
937
+ "providerConfigBanner": {
938
+ "titleMany": "Los proveedores necesitan configuración",
939
+ "titleOne": {
940
+ "environment": "El proveedor de entorno necesita configuración",
941
+ "runner-pool": "El grupo de ejecutores necesita configuración"
942
+ },
943
+ "body": "Hay un proveedor conectado para esta instancia, pero le faltan ajustes obligatorios, así que aún no puede ejecutarse. Añade los campos obligatorios para terminar de conectarlo.",
944
+ "action": {
945
+ "environment": "Configurar proveedor de entorno",
946
+ "runner-pool": "Configurar grupo de ejecutores"
947
+ }
948
+ },
949
+ "spendWarningBanner": {
950
+ "title": "Límite de gasto alcanzado, ejecución de agentes en pausa",
951
+ "body": "El gasto de tokens de este mes ha alcanzado el presupuesto configurado, por lo que las canalizaciones en curso se pausaron para evitar más costes. La ejecución se reanuda automáticamente cuando el presupuesto se renueva el mes que viene, o una vez que se aumente el límite.",
952
+ "spent": "Gastado",
953
+ "budget": "Presupuesto",
954
+ "tokens": "Tokens",
955
+ "resume": "Reanudar de todos modos",
956
+ "resumeHint": "Reanudar sigue generando gasto; se pausará de nuevo si sigue por encima del presupuesto."
957
+ },
958
+ "personalSetup": {
959
+ "title": "Mi configuración",
960
+ "intro": "Tus conexiones personales, usadas para las ejecuciones que inicias y visibles solo para ti.",
961
+ "connected": "Conectado",
962
+ "notConnected": "No conectado",
963
+ "connectedCount": "ninguno conectado | {count} conectado | {count} conectados",
964
+ "sourceControl": {
965
+ "title": "Control de versiones"
966
+ },
967
+ "githubToken": {
968
+ "label": "Mi token de GitHub",
969
+ "description": "Un token de acceso personal usado para las ejecuciones que inicias (pushes, PR, CI, fusión)."
970
+ },
971
+ "models": {
972
+ "title": "Modelos"
973
+ },
974
+ "localRunners": {
975
+ "label": "Mis ejecutores locales",
976
+ "description": "Tus ejecutores de modelos en tu propia máquina (Ollama, LM Studio, vLLM)."
977
+ },
978
+ "subscriptions": {
979
+ "label": "Mis suscripciones",
980
+ "description": "Planes de uso individual que desbloqueas con una contraseña personal (Claude, GLM, Codex)."
981
+ }
982
+ },
983
+ "integrationBack": {
984
+ "backToMySetup": "Volver a Mi configuración",
985
+ "backToIntegrations": "Volver a Integraciones"
986
+ },
987
+ "commandBar": {
988
+ "searchPlaceholder": "Busca o ejecuta un comando…",
989
+ "noMatches": "No hay comandos que coincidan.",
990
+ "groups": {
991
+ "create": "Crear",
992
+ "repositories": "Repositorios",
993
+ "integrations": "Integraciones",
994
+ "workspace": "Espacio de trabajo",
995
+ "account": "Cuenta"
996
+ },
997
+ "cmd": {
998
+ "newPipeline": "Crear una canalización",
999
+ "addFromRepo": "Añadir servicio desde un repositorio existente",
1000
+ "bootstrapRepo": "Iniciar un repositorio nuevo",
1001
+ "githubManage": "Gestionar la conexión de GitHub",
1002
+ "githubConnect": "Conectar GitHub",
1003
+ "slackManage": "Gestionar las notificaciones de Slack",
1004
+ "slackConnect": "Conectar Slack",
1005
+ "sourceManage": "Gestionar {source}",
1006
+ "sourceConnect": "Conectar {source}",
1007
+ "documentImport": "Importar y generar desde documentos",
1008
+ "taskImport": "Importar incidencias",
1009
+ "fragments": "Biblioteca de fragmentos de contexto",
1010
+ "mergeThresholds": "Umbrales de fusión",
1011
+ "workspaceSettings": "Ajustes del espacio de trabajo",
1012
+ "modelConfiguration": "Configuración de modelos",
1013
+ "serviceFragmentDefaults": "Buenas prácticas del servicio por defecto",
1014
+ "accountSettings": "Ajustes de la cuenta",
1015
+ "localModels": "Mis ejecutores locales",
1016
+ "sandbox": "Abrir el entorno de pruebas"
1017
+ },
1018
+ "keywords": {
1019
+ "newPipeline": "canalización agentes cadena pipeline",
1020
+ "addFromRepo": "github importar existente",
1021
+ "bootstrapRepo": "andamiaje crear arquitectura de referencia",
1022
+ "github": "git repositorios pull requests incidencias",
1023
+ "slack": "slack notificaciones canal menciones",
1024
+ "documentSource": "documento fuente prd rfc",
1025
+ "documentImport": "documento importar generar",
1026
+ "taskSource": "tarea fuente rastreador incidencias",
1027
+ "taskImport": "tarea importar incidencias",
1028
+ "fragments": "prompt fragmentos buenas prácticas directrices contexto",
1029
+ "mergeThresholds": "fusión política preajuste auto-fusión ci",
1030
+ "workspaceSettings": "límite tareas en ejecución por servicio espera escalado retraso notificación tiempo de espera",
1031
+ "modelConfiguration": "modelo llm enrutamiento tipo de agente preajuste por defecto configuración",
1032
+ "serviceFragmentDefaults": "fragmento buenas prácticas directriz servicio por defecto consciente del código",
1033
+ "accountSettings": "cuenta equipo miembros roles invitaciones correo claves api fragmento buenas prácticas biblioteca contexto organización personal",
1034
+ "localModels": "modelo local ejecutor ollama lm studio llamacpp vllm endpoint",
1035
+ "sandbox": "entorno de pruebas prompt modelo prueba experimento juez fixture benchmark evaluar"
1036
+ }
1037
+ },
1038
+ "integrationsHub": {
1039
+ "title": "Integraciones",
1040
+ "intro": "Conecta y gestiona los sistemas externos que este espacio de trabajo puede vincular.",
1041
+ "searchPlaceholder": "Buscar integraciones…",
1042
+ "noMatches": "Ninguna integración coincide con \"{query}\".",
1043
+ "getStarted": {
1044
+ "title": "Primeros pasos",
1045
+ "body": "Conecta una fuente de código y un proveedor de modelos para ejecutar tu primera canalización."
1046
+ },
1047
+ "status": {
1048
+ "connected": "Conectado",
1049
+ "keyConnected": "Clave conectada",
1050
+ "notConnected": "Sin conectar",
1051
+ "needsAttention": "Requiere atención",
1052
+ "disabled": "Desactivado",
1053
+ "recommended": "Recomendado"
1054
+ },
1055
+ "groups": {
1056
+ "models": "Modelos y proveedores",
1057
+ "sourceControl": "Control de código fuente",
1058
+ "communication": "Comunicación",
1059
+ "documents": "Documentos",
1060
+ "taskTrackers": "Rastreadores de tareas",
1061
+ "observability": "Observabilidad",
1062
+ "infrastructure": "Infraestructura",
1063
+ "personal": "Personal (solo tú)"
1064
+ },
1065
+ "items": {
1066
+ "openrouter": {
1067
+ "description": "Una sola puerta de enlace a más de 300 modelos. Añade tu clave y activa modelos en un único lugar."
1068
+ },
1069
+ "vendors": {
1070
+ "label": "Proveedores y claves",
1071
+ "description": "Suscripciones de LLM del espacio de trabajo y claves API de proveedores."
1072
+ },
1073
+ "github": {
1074
+ "description": "Conecta la GitHub App del espacio de trabajo y explora repositorios, PR e incidencias."
1075
+ },
1076
+ "slack": {
1077
+ "description": "Envía las notificaciones al espacio de Slack de tu equipo."
1078
+ },
1079
+ "documentSource": {
1080
+ "description": "Vincula {source} como fuente de documentos para el contexto de requisitos."
1081
+ },
1082
+ "documentImport": {
1083
+ "label": "Importar y generar",
1084
+ "description": "Importa documentos de una fuente conectada y genera estructura."
1085
+ },
1086
+ "taskSource": {
1087
+ "description": "Vincula {source} para importar y consultar incidencias del rastreador."
1088
+ },
1089
+ "taskImport": {
1090
+ "label": "Importar incidencias",
1091
+ "description": "Importa incidencias de un rastreador conectado al tablero."
1092
+ },
1093
+ "trackerSettings": {
1094
+ "label": "Ajustes del rastreador de incidencias"
1095
+ },
1096
+ "observability": {
1097
+ "label": "Salud posterior al lanzamiento",
1098
+ "description": "Vigila los monitores y SLO después de publicar una versión (Datadog)."
1099
+ },
1100
+ "environment": {
1101
+ "label": "Entornos efímeros",
1102
+ "description": "Donde el agente Tester se ejecuta contra un entorno de vista previa en vivo."
1103
+ },
1104
+ "runnerPool": {
1105
+ "label": "Grupo de ejecutores autoalojado",
1106
+ "description": "Donde se ejecutan los agentes de código cuando no se usan los Cloudflare Containers."
1107
+ },
1108
+ "localMode": {
1109
+ "label": "Modo local",
1110
+ "description": "Grupo de contenedores en caliente y reutilización de checkout por repositorio para el ejecutor local."
1111
+ },
1112
+ "githubPat": {
1113
+ "label": "Mi token de GitHub",
1114
+ "description": "Un token de acceso personal usado para las ejecuciones que inicias (pushes, PR, CI, fusión)."
1115
+ },
1116
+ "localRunners": {
1117
+ "label": "Mis ejecutores locales",
1118
+ "description": "Tus ejecutores de modelos en tu propia máquina (Ollama, LM Studio, vLLM…)."
1119
+ }
1120
+ }
1121
+ }
713
1122
  }
714
1123
  }