@cat-factory/app 0.53.0 → 0.54.1
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.
- package/app/components/bootstrap/BootstrapModal.vue +81 -69
- package/app/components/environments/EnvironmentStatusPanel.vue +37 -14
- package/app/components/fragments/FragmentLibraryManager.vue +104 -69
- package/app/components/fragments/FragmentLibraryPanel.vue +2 -1
- package/app/components/kaizen/KaizenPanel.vue +36 -25
- package/app/components/kaizen/KaizenStepStatus.vue +13 -10
- package/app/components/media/ArtifactLightbox.vue +20 -14
- package/app/components/media/ImageCompare.vue +35 -22
- package/app/components/provisioning/ProvisioningLogsDrawer.vue +27 -14
- package/app/components/recurring/RecurrenceEditor.vue +22 -15
- package/app/components/sandbox/SandboxPanel.vue +126 -59
- package/app/components/settings/InfrastructureBackendPicker.vue +304 -0
- package/app/components/settings/InfrastructureWindow.vue +6 -10
- package/app/components/settings/KubernetesRunnerForm.vue +30 -0
- package/app/components/settings/ProviderConnectionTab.vue +46 -85
- package/app/components/settings/ProviderManifestEditor.vue +19 -3
- package/i18n/locales/en.json +425 -13
- package/i18n/locales/es.json +403 -11
- package/i18n/locales/fr.json +403 -11
- package/i18n/locales/pl.json +403 -11
- package/i18n/locales/uk.json +403 -11
- package/package.json +2 -2
- package/app/components/settings/ExecutionBackendSelector.vue +0 -171
package/i18n/locales/es.json
CHANGED
|
@@ -1256,6 +1256,7 @@
|
|
|
1256
1256
|
"schemaError": "Problema con el manifiesto — {message}",
|
|
1257
1257
|
"secretsLabel": "Secretos",
|
|
1258
1258
|
"noSecrets": "Este manifiesto no hace referencia a ningún secreto.",
|
|
1259
|
+
"stored": "Almacenados actualmente: {keys}",
|
|
1259
1260
|
"reenterSecrets": "Vuelve a introducir cada secreto para guardar: los secretos almacenados son de solo escritura y no se muestran.",
|
|
1260
1261
|
"starterHint": "Este es un ejemplo inicial. Edítalo para que coincida con la API de tu proveedor."
|
|
1261
1262
|
},
|
|
@@ -1283,13 +1284,6 @@
|
|
|
1283
1284
|
"removed": "Conexión eliminada",
|
|
1284
1285
|
"removeFailed": "No se pudo eliminar la conexión"
|
|
1285
1286
|
},
|
|
1286
|
-
"backend": {
|
|
1287
|
-
"selectorLabel": "Backend de ejecución",
|
|
1288
|
-
"manifest": "Pool autohospedado (manifiesto)",
|
|
1289
|
-
"kubernetes": "Kubernetes",
|
|
1290
|
-
"environmentSelectorLabel": "Backend de entorno",
|
|
1291
|
-
"environmentManifest": "API HTTP personalizada (manifiesto)"
|
|
1292
|
-
},
|
|
1293
1287
|
"kubernetesEnv": {
|
|
1294
1288
|
"label": "Nombre",
|
|
1295
1289
|
"labelPlaceholder": "Clúster de vista previa",
|
|
@@ -1340,11 +1334,9 @@
|
|
|
1340
1334
|
"apiTokenHelp": "Un token bearer con permisos RBAC para crear, obtener y eliminar pods y pods/proxy en el namespace. Se almacena cifrado; no se vuelve a mostrar.",
|
|
1341
1335
|
"caCertPem": "Certificado CA del clúster (PEM)",
|
|
1342
1336
|
"caCertPemHelp": "Pega el bundle CA del clúster para que el certificado TLS del apiserver se verifique. Omítelo solo para una CA de confianza pública.",
|
|
1337
|
+
"insecureSkipTlsVerify": "Omitir verificación TLS",
|
|
1338
|
+
"insecureSkipTlsVerifyHelp": "Muy desaconsejado. Desactiva la verificación TLS del apiserver; úsalo solo para clústeres locales k3s/kind/dev.",
|
|
1343
1339
|
"harnessPort": "Puerto del harness"
|
|
1344
|
-
},
|
|
1345
|
-
"advancedManifest": {
|
|
1346
|
-
"summary": "Avanzado: planificador personalizado basado en API",
|
|
1347
|
-
"intro": "Solo es necesario para integrar un planificador personalizado basado en API. Los backends habituales (Docker local, Cloudflare Containers y Kubernetes) no lo necesitan; describe aquí la API HTTP de tu propio planificador solo si usas uno."
|
|
1348
1340
|
}
|
|
1349
1341
|
},
|
|
1350
1342
|
"serviceFragmentDefaults": {
|
|
@@ -2978,5 +2970,405 @@
|
|
|
2978
2970
|
"overallProgress": "Progreso general",
|
|
2979
2971
|
"dependencies": "Dependencias",
|
|
2980
2972
|
"noDependencies": "Ninguna"
|
|
2973
|
+
},
|
|
2974
|
+
"environments": {
|
|
2975
|
+
"title": "Entorno efímero",
|
|
2976
|
+
"status": {
|
|
2977
|
+
"provisioning": "Arrancando…",
|
|
2978
|
+
"ready": "En ejecución",
|
|
2979
|
+
"failed": "Con errores",
|
|
2980
|
+
"expired": "Caducado",
|
|
2981
|
+
"tearing_down": "Apagando…",
|
|
2982
|
+
"torn_down": "Apagado"
|
|
2983
|
+
},
|
|
2984
|
+
"expires": "Caduca el {date}",
|
|
2985
|
+
"empty": "No hay entorno efímero para esta ejecución."
|
|
2986
|
+
},
|
|
2987
|
+
"provisioning": {
|
|
2988
|
+
"title": "Registros de aprovisionamiento",
|
|
2989
|
+
"refresh": "Actualizar",
|
|
2990
|
+
"empty": "Aún no se han registrado intentos de aprovisionamiento.",
|
|
2991
|
+
"operation": {
|
|
2992
|
+
"provision": "Arrancar",
|
|
2993
|
+
"teardown": "Desmontar",
|
|
2994
|
+
"status": "Comprobación de estado",
|
|
2995
|
+
"dispatch": "Arrancar",
|
|
2996
|
+
"release": "Desmontar",
|
|
2997
|
+
"poll-failure": "Comprobación de salud"
|
|
2998
|
+
},
|
|
2999
|
+
"outcome": {
|
|
3000
|
+
"success": "correcto",
|
|
3001
|
+
"failure": "fallido"
|
|
3002
|
+
}
|
|
3003
|
+
},
|
|
3004
|
+
"kaizen": {
|
|
3005
|
+
"title": "Kaizen",
|
|
3006
|
+
"subtitle": "Calificación de mejora continua de las ejecuciones de agentes",
|
|
3007
|
+
"refresh": "Actualizar",
|
|
3008
|
+
"notConfigured": "Kaizen no está configurado en este despliegue.",
|
|
3009
|
+
"grading": {
|
|
3010
|
+
"title": "Calificación Kaizen"
|
|
3011
|
+
},
|
|
3012
|
+
"status": {
|
|
3013
|
+
"scheduled": "Programada",
|
|
3014
|
+
"grading": "Calificando…",
|
|
3015
|
+
"failed": "Fallida",
|
|
3016
|
+
"graded": "Calificada"
|
|
3017
|
+
},
|
|
3018
|
+
"gradeValue": "{grade}/5",
|
|
3019
|
+
"scheduledHint": "Hay una calificación Kaizen en cola para este paso. Se ejecuta en segundo plano tras la ejecución.",
|
|
3020
|
+
"recommendations": "Recomendaciones",
|
|
3021
|
+
"noImprovements": "Interacción fluida, nada que mejorar.",
|
|
3022
|
+
"gradedBy": "Calificada por {model}",
|
|
3023
|
+
"failedFallback": "No se pudo completar la calificación.",
|
|
3024
|
+
"promptVersion": "v{version}",
|
|
3025
|
+
"verifiedCombos": {
|
|
3026
|
+
"title": "Combinaciones verificadas",
|
|
3027
|
+
"count": "({count})",
|
|
3028
|
+
"hint": "Una combinación de prompt + agente + modelo que obtuvo 4 o 5 sin recomendaciones cinco veces seguidas. Estas ya no se califican.",
|
|
3029
|
+
"empty": "Aún no hay combinaciones.",
|
|
3030
|
+
"progress": "{count}/5",
|
|
3031
|
+
"modelPrompt": "{model} · prompt v{version}"
|
|
3032
|
+
},
|
|
3033
|
+
"history": {
|
|
3034
|
+
"title": "Historial de calificaciones",
|
|
3035
|
+
"col": {
|
|
3036
|
+
"when": "Cuándo",
|
|
3037
|
+
"agent": "Agente",
|
|
3038
|
+
"model": "Modelo",
|
|
3039
|
+
"grade": "Nota",
|
|
3040
|
+
"recommendations": "Recomendaciones"
|
|
3041
|
+
},
|
|
3042
|
+
"empty": "Aún no hay calificaciones."
|
|
3043
|
+
}
|
|
3044
|
+
},
|
|
3045
|
+
"recurring": {
|
|
3046
|
+
"runEvery": "Ejecutar cada",
|
|
3047
|
+
"hours": "horas",
|
|
3048
|
+
"allowedDays": "Días permitidos",
|
|
3049
|
+
"allowedDaysHelp": "Déjalos todos sin marcar para ejecutar cualquier día.",
|
|
3050
|
+
"weekday": {
|
|
3051
|
+
"sun": "Dom",
|
|
3052
|
+
"mon": "Lun",
|
|
3053
|
+
"tue": "Mar",
|
|
3054
|
+
"wed": "Mié",
|
|
3055
|
+
"thu": "Jue",
|
|
3056
|
+
"fri": "Vie",
|
|
3057
|
+
"sat": "Sáb"
|
|
3058
|
+
},
|
|
3059
|
+
"windowToggle": "Solo dentro de una franja horaria del día (p. ej., horario laboral)",
|
|
3060
|
+
"to": "a",
|
|
3061
|
+
"timezone": "Zona horaria"
|
|
3062
|
+
},
|
|
3063
|
+
"media": {
|
|
3064
|
+
"compare": {
|
|
3065
|
+
"mode": {
|
|
3066
|
+
"sideBySide": "Lado a lado",
|
|
3067
|
+
"overlay": "Superposición",
|
|
3068
|
+
"swipe": "Deslizar",
|
|
3069
|
+
"diff": "Diferencia"
|
|
3070
|
+
},
|
|
3071
|
+
"actual": "Real",
|
|
3072
|
+
"reference": "Referencia",
|
|
3073
|
+
"actualAlt": "{view} (real)",
|
|
3074
|
+
"referenceAlt": "{view} (referencia)",
|
|
3075
|
+
"replace": "Reemplazar",
|
|
3076
|
+
"failedToLoad": "No se pudo cargar",
|
|
3077
|
+
"loading": "Cargando…",
|
|
3078
|
+
"notCaptured": "No capturado",
|
|
3079
|
+
"dropHint": "Arrastra o haz clic para añadir una referencia",
|
|
3080
|
+
"diffHint": "Los píxeles idénticos aparecen en negro; las diferencias brillan."
|
|
3081
|
+
},
|
|
3082
|
+
"lightbox": {
|
|
3083
|
+
"ariaLabel": "Captura: {label}",
|
|
3084
|
+
"ariaLabelFallback": "Visor de capturas",
|
|
3085
|
+
"fallbackTitle": "Captura",
|
|
3086
|
+
"counter": "{current} / {total}",
|
|
3087
|
+
"zoomOut": "Alejar (-)",
|
|
3088
|
+
"zoomIn": "Acercar (+)",
|
|
3089
|
+
"reset": "Restablecer (0)",
|
|
3090
|
+
"close": "Cerrar (Esc)",
|
|
3091
|
+
"prev": "Anterior (←)",
|
|
3092
|
+
"next": "Siguiente (→)",
|
|
3093
|
+
"failed": "No se pudo cargar la imagen.",
|
|
3094
|
+
"loading": "Cargando…"
|
|
3095
|
+
}
|
|
3096
|
+
},
|
|
3097
|
+
"fragments": {
|
|
3098
|
+
"panel": {
|
|
3099
|
+
"title": "Biblioteca de fragmentos de prompt"
|
|
3100
|
+
},
|
|
3101
|
+
"intro": {
|
|
3102
|
+
"workspace": "Organiza las pautas de buenas prácticas que los agentes siguen en este tablero. Los fragmentos se combinan desde el catálogo integrado, tu cuenta y este tablero (las capas posteriores prevalecen sobre las anteriores), y luego se seleccionan los relevantes para cada ejecución de agente.",
|
|
3103
|
+
"account": "Organiza las pautas de buenas prácticas compartidas por todos los tableros de esta cuenta. Los fragmentos de la cuenta se combinan por encima del catálogo integrado, y un tablero puede sobrescribirlos o añadir los suyos propios encima. Los relevantes se seleccionan para cada ejecución de agente."
|
|
3104
|
+
},
|
|
3105
|
+
"owner": {
|
|
3106
|
+
"workspace": "Este tablero",
|
|
3107
|
+
"account": "Esta cuenta"
|
|
3108
|
+
},
|
|
3109
|
+
"tier": {
|
|
3110
|
+
"builtin": "Integrado",
|
|
3111
|
+
"account": "Cuenta",
|
|
3112
|
+
"workspace": "Este tablero"
|
|
3113
|
+
},
|
|
3114
|
+
"tab": {
|
|
3115
|
+
"catalog": "Catálogo resuelto",
|
|
3116
|
+
"documents": "Documentos",
|
|
3117
|
+
"sources": "Repositorios de origen"
|
|
3118
|
+
},
|
|
3119
|
+
"catalog": {
|
|
3120
|
+
"summary": "{count} fragmento resuelto · {builtin} integrados. | {count} fragmentos resueltos · {builtin} integrados.",
|
|
3121
|
+
"live": "En vivo · {source}"
|
|
3122
|
+
},
|
|
3123
|
+
"authored": {
|
|
3124
|
+
"fromRepo": "desde repositorio",
|
|
3125
|
+
"empty": {
|
|
3126
|
+
"workspace": "Aún no hay fragmentos propios de este tablero. Añade uno abajo o sobrescribe uno integrado usando su id.",
|
|
3127
|
+
"account": "Aún no hay fragmentos propios de esta cuenta. Añade uno abajo o sobrescribe uno integrado usando su id."
|
|
3128
|
+
},
|
|
3129
|
+
"addTitle": "Añadir un fragmento",
|
|
3130
|
+
"titlePlaceholder": "Título",
|
|
3131
|
+
"summaryPlaceholder": "Resumen de una línea (usado por el selector)",
|
|
3132
|
+
"bodyPlaceholder": "Cuerpo de la guía (inyectado en el prompt)",
|
|
3133
|
+
"tagsPlaceholder": "Etiquetas, separadas por comas (p. ej., backend, db)",
|
|
3134
|
+
"add": "Añadir fragmento"
|
|
3135
|
+
},
|
|
3136
|
+
"documents": {
|
|
3137
|
+
"intro": "Vincula una página de Confluence/Notion o un archivo de GitHub como fragmento de buenas prácticas. Su guía se vuelve a resolver desde la fuente en tiempo de ejecución: edita el documento y la siguiente ejecución del agente sigue la nueva versión (sin reimportar).",
|
|
3138
|
+
"lastResolved": "última resolución {date}",
|
|
3139
|
+
"refreshTitle": "Volver a resolver desde la fuente ahora",
|
|
3140
|
+
"empty": "Aún no hay fragmentos respaldados por documentos. Vincula uno abajo.",
|
|
3141
|
+
"linkTitle": "Vincular un documento",
|
|
3142
|
+
"disabledHint": "Crea primero un tablero con una fuente de documentos conectada; los fragmentos de documento a nivel de cuenta se obtienen a través de uno de los tableros de esta cuenta.",
|
|
3143
|
+
"connectFirst": "Conecta primero una fuente de documentos (Confluence, Notion o GitHub) en Integraciones.",
|
|
3144
|
+
"refPlaceholder": "Id o URL de página (p. ej., una página de Confluence/Notion o la URL de un archivo de GitHub)",
|
|
3145
|
+
"tagsPlaceholder": "Etiquetas, separadas por comas (opcional)",
|
|
3146
|
+
"link": "Vincular como fragmento vivo"
|
|
3147
|
+
},
|
|
3148
|
+
"sources": {
|
|
3149
|
+
"metaSynced": "sincronizado · ref {ref}",
|
|
3150
|
+
"metaNever": "nunca sincronizado · ref {ref}",
|
|
3151
|
+
"changes": "{count} cambio | {count} cambios",
|
|
3152
|
+
"empty": "No hay repositorios de pautas vinculados. Vincula uno abajo para importar sus archivos Markdown como fragmentos.",
|
|
3153
|
+
"linkTitle": "Vincular un repositorio de pautas",
|
|
3154
|
+
"ownerPlaceholder": "propietario",
|
|
3155
|
+
"repoPlaceholder": "repositorio",
|
|
3156
|
+
"dirPlaceholder": "ruta del directorio (p. ej., guidelines)",
|
|
3157
|
+
"refPlaceholder": "ref (HEAD por defecto)",
|
|
3158
|
+
"link": "Vincular y sincronizar"
|
|
3159
|
+
},
|
|
3160
|
+
"toast": {
|
|
3161
|
+
"added": "Fragmento añadido",
|
|
3162
|
+
"addFailed": "No se pudo añadir el fragmento",
|
|
3163
|
+
"removed": "Fragmento eliminado",
|
|
3164
|
+
"removeFailed": "No se pudo eliminar el fragmento",
|
|
3165
|
+
"documentLinked": "Documento vinculado como fragmento vivo",
|
|
3166
|
+
"linkDocumentFailed": "No se pudo vincular el documento",
|
|
3167
|
+
"refreshed": "Fragmento vuelto a resolver desde la fuente",
|
|
3168
|
+
"refreshFailed": "No se pudo actualizar el fragmento",
|
|
3169
|
+
"sourceLinked": "Origen vinculado y sincronizado",
|
|
3170
|
+
"linkSourceFailed": "No se pudo vincular el origen",
|
|
3171
|
+
"synced": "Sincronizado: {updated} actualizados, {removed} eliminados",
|
|
3172
|
+
"syncFailed": "No se pudo sincronizar el origen",
|
|
3173
|
+
"changesAvailable": "{count} cambio disponible | {count} cambios disponibles",
|
|
3174
|
+
"upToDate": "Al día",
|
|
3175
|
+
"checkSourceFailed": "No se pudo comprobar el origen",
|
|
3176
|
+
"sourceUnlinked": "Origen desvinculado",
|
|
3177
|
+
"unlinkSourceFailed": "No se pudo desvincular el origen"
|
|
3178
|
+
}
|
|
3179
|
+
},
|
|
3180
|
+
"sandbox": {
|
|
3181
|
+
"title": "Sandbox: pruebas de prompts y modelos",
|
|
3182
|
+
"description": "Prueba versiones de prompts y modelos contra fixtures calificados, evaluados por un modelo juez.",
|
|
3183
|
+
"unavailable": {
|
|
3184
|
+
"title": "El Sandbox no está habilitado en este despliegue.",
|
|
3185
|
+
"body": "Necesita su propia base de datos (una {db} dedicada en Cloudflare, o el esquema de Postgres {schema} en Node). Aprovisiónala y vuelve a cargar."
|
|
3186
|
+
},
|
|
3187
|
+
"error": {
|
|
3188
|
+
"title": "No se pudo cargar el Sandbox."
|
|
3189
|
+
},
|
|
3190
|
+
"deploymentDefault": "Valor por defecto del despliegue",
|
|
3191
|
+
"defaultRunName": "ejecución de sandbox de {kind}",
|
|
3192
|
+
"baseline": "base",
|
|
3193
|
+
"versionLabel": "v{version}",
|
|
3194
|
+
"tab": {
|
|
3195
|
+
"experiments": "Experimentos",
|
|
3196
|
+
"prompts": "Prompts",
|
|
3197
|
+
"fixtures": "Fixtures"
|
|
3198
|
+
},
|
|
3199
|
+
"builder": {
|
|
3200
|
+
"title": "Nuevo experimento",
|
|
3201
|
+
"agent": "Agente",
|
|
3202
|
+
"promptVersions": "Versiones de prompt",
|
|
3203
|
+
"models": "Modelos",
|
|
3204
|
+
"noModels": "No hay modelos seleccionables. Configura una clave de proveedor o habilita Cloudflare AI.",
|
|
3205
|
+
"fixtures": "Fixtures",
|
|
3206
|
+
"noFixtures": "No hay fixtures para este agente.",
|
|
3207
|
+
"judgeModel": "Modelo juez",
|
|
3208
|
+
"judgeModelHint": "califica cada celda",
|
|
3209
|
+
"nameLabel": "Nombre (opcional)",
|
|
3210
|
+
"cellCount": "{count} celda | {count} celdas",
|
|
3211
|
+
"maxCells": "(máx. {max})",
|
|
3212
|
+
"run": "Ejecutar"
|
|
3213
|
+
},
|
|
3214
|
+
"experimentStatus": {
|
|
3215
|
+
"draft": "borrador",
|
|
3216
|
+
"running": "en ejecución",
|
|
3217
|
+
"done": "completado",
|
|
3218
|
+
"failed": "fallido"
|
|
3219
|
+
},
|
|
3220
|
+
"results": {
|
|
3221
|
+
"col": {
|
|
3222
|
+
"prompt": "Prompt",
|
|
3223
|
+
"model": "Modelo",
|
|
3224
|
+
"fixture": "Fixture",
|
|
3225
|
+
"score": "Puntuación",
|
|
3226
|
+
"objective": "Objetivo"
|
|
3227
|
+
},
|
|
3228
|
+
"failed": "fallido",
|
|
3229
|
+
"past": "Experimentos anteriores",
|
|
3230
|
+
"empty": "Aún no hay experimentos."
|
|
3231
|
+
},
|
|
3232
|
+
"prompts": {
|
|
3233
|
+
"forkTitle": "Bifurcar en un candidato",
|
|
3234
|
+
"editTitle": "Editar / versionar",
|
|
3235
|
+
"forkOf": "Bifurcación · {name}",
|
|
3236
|
+
"newVersionOf": "Nueva versión de · {name}",
|
|
3237
|
+
"saveVersion": "Guardar nueva versión",
|
|
3238
|
+
"hint": "Elige un prompt para bifurcar una base publicada o versionar un candidato. Cada guardado añade una versión inmutable que puedes poner a prueba."
|
|
3239
|
+
},
|
|
3240
|
+
"fixtureKind": {
|
|
3241
|
+
"requirements": "requisitos",
|
|
3242
|
+
"clarity": "claridad",
|
|
3243
|
+
"architecture": "arquitectura",
|
|
3244
|
+
"code-review": "revisión de código",
|
|
3245
|
+
"repo-feature": "función de repositorio",
|
|
3246
|
+
"repo-bug": "error de repositorio"
|
|
3247
|
+
},
|
|
3248
|
+
"fixtureOrigin": {
|
|
3249
|
+
"builtin": "integrado",
|
|
3250
|
+
"custom": "personalizado"
|
|
3251
|
+
},
|
|
3252
|
+
"fixtures": {
|
|
3253
|
+
"expectations": "{count} expectativa calificada | {count} expectativas calificadas",
|
|
3254
|
+
"empty": "No hay fixtures."
|
|
3255
|
+
},
|
|
3256
|
+
"toast": {
|
|
3257
|
+
"running": "Ejecutando experimento…",
|
|
3258
|
+
"complete": "Experimento completado",
|
|
3259
|
+
"runFailed": "No se pudo ejecutar el experimento",
|
|
3260
|
+
"versionSaved": "Se guardó una nueva versión",
|
|
3261
|
+
"saveFailed": "No se pudo guardar la versión",
|
|
3262
|
+
"archiveFailed": "No se pudo archivar"
|
|
3263
|
+
}
|
|
3264
|
+
},
|
|
3265
|
+
"bootstrap": {
|
|
3266
|
+
"title": "Inicializar un repositorio",
|
|
3267
|
+
"repoName": {
|
|
3268
|
+
"error": {
|
|
3269
|
+
"hasSlash": "Introduce solo el nombre del repositorio, sin el prefijo 'owner/'.",
|
|
3270
|
+
"invalidChars": "Solo se permiten letras, dígitos, '.', '_' y '-'.",
|
|
3271
|
+
"tooLong": "Debe tener 100 caracteres o menos."
|
|
3272
|
+
}
|
|
3273
|
+
},
|
|
3274
|
+
"intro": {
|
|
3275
|
+
"canCreate": "Crea un repositorio de GitHub vacío y deja que un agente inicializador lo poble en un contenedor de pruebas, ya sea adaptando una de tus arquitecturas de referencia o desde cero siguiendo un prompt libre. cat-factory envía el commit inicial a ese repositorio; en esta cuenta también puede crear el repositorio por ti.",
|
|
3276
|
+
"manual": "Crea un repositorio de GitHub vacío y deja que un agente inicializador lo poble en un contenedor de pruebas, ya sea adaptando una de tus arquitecturas de referencia o desde cero siguiendo un prompt libre. cat-factory envía el commit inicial a ese repositorio; tú creas el repositorio (con un clic más abajo), por lo que no necesita permiso para crear repositorios."
|
|
3277
|
+
},
|
|
3278
|
+
"github": {
|
|
3279
|
+
"prompt": "Conecta este espacio de trabajo a GitHub antes de inicializar; una ejecución hace push a un repositorio. Vincula una instalación en la que la App ya esté, o instálala."
|
|
3280
|
+
},
|
|
3281
|
+
"section": {
|
|
3282
|
+
"newRepo": "Nuevo repositorio"
|
|
3283
|
+
},
|
|
3284
|
+
"mode": {
|
|
3285
|
+
"label": "¿Cómo empezamos?",
|
|
3286
|
+
"reference": {
|
|
3287
|
+
"label": "Desde una arquitectura de referencia",
|
|
3288
|
+
"description": "Clona un repositorio base gestionado y adáptalo al nuevo servicio."
|
|
3289
|
+
},
|
|
3290
|
+
"scratch": {
|
|
3291
|
+
"label": "Desde cero",
|
|
3292
|
+
"description": "Genera un repositorio nuevo desde un prompt libre, sin necesidad de base."
|
|
3293
|
+
}
|
|
3294
|
+
},
|
|
3295
|
+
"reference": {
|
|
3296
|
+
"label": "Arquitectura de referencia",
|
|
3297
|
+
"description": "El repositorio base gestionado que se clona y adapta.",
|
|
3298
|
+
"empty": "Aún no hay arquitecturas de referencia. Añade una abajo o cambia a 'Desde cero'.",
|
|
3299
|
+
"placeholder": "Elige una arquitectura de referencia"
|
|
3300
|
+
},
|
|
3301
|
+
"targetRepo": {
|
|
3302
|
+
"label": "Nombre del repositorio de destino",
|
|
3303
|
+
"descWithOwner": "Crea un repositorio nuevo con este nombre bajo {owner} y luego la inicialización hace push a él. Un README, .gitignore o licencia ya creados están bien.",
|
|
3304
|
+
"descNoOwner": "Crea un repositorio nuevo con este nombre y luego la inicialización hace push a él. Un README, .gitignore o licencia ya creados están bien."
|
|
3305
|
+
},
|
|
3306
|
+
"createRepo": {
|
|
3307
|
+
"now": "Crear repositorio",
|
|
3308
|
+
"onGitHub": "Crear en GitHub",
|
|
3309
|
+
"titleNow": "Crear el repositorio ahora",
|
|
3310
|
+
"titleGitHub": "Abrir la página de nuevo repositorio de GitHub, rellenada"
|
|
3311
|
+
},
|
|
3312
|
+
"grantAccess": {
|
|
3313
|
+
"label": "Conceder a la App acceso a este repositorio",
|
|
3314
|
+
"title": "Abrir los ajustes de instalación de la App para concederle acceso al nuevo repositorio"
|
|
3315
|
+
},
|
|
3316
|
+
"description": {
|
|
3317
|
+
"label": "Descripción",
|
|
3318
|
+
"help": "Resumen opcional de una línea para el repositorio."
|
|
3319
|
+
},
|
|
3320
|
+
"instructions": {
|
|
3321
|
+
"labelReference": "Instrucciones adicionales para el inicializador",
|
|
3322
|
+
"labelScratch": "¿Qué debe construir el inicializador?",
|
|
3323
|
+
"descReference": "Opcional, se añade a las instrucciones por defecto de la arquitectura de referencia.",
|
|
3324
|
+
"descScratch": "Describe el nuevo servicio: pila, estructura y qué debe hacer."
|
|
3325
|
+
},
|
|
3326
|
+
"visibility": {
|
|
3327
|
+
"label": "Visibilidad",
|
|
3328
|
+
"private": "Repositorio privado"
|
|
3329
|
+
},
|
|
3330
|
+
"launch": "Inicializar repositorio",
|
|
3331
|
+
"recent": {
|
|
3332
|
+
"title": "Ejecuciones recientes",
|
|
3333
|
+
"fromArch": "desde {name}",
|
|
3334
|
+
"fromScratch": "desde cero",
|
|
3335
|
+
"open": "Abrir"
|
|
3336
|
+
},
|
|
3337
|
+
"status": {
|
|
3338
|
+
"pending": "pendiente",
|
|
3339
|
+
"running": "en ejecución",
|
|
3340
|
+
"succeeded": "completado",
|
|
3341
|
+
"failed": "fallido"
|
|
3342
|
+
},
|
|
3343
|
+
"arch": {
|
|
3344
|
+
"title": "Arquitecturas de referencia",
|
|
3345
|
+
"add": "Añadir",
|
|
3346
|
+
"pickRepo": {
|
|
3347
|
+
"label": "Elige un repositorio de GitHub existente",
|
|
3348
|
+
"description": "Elige un repositorio al que tengas acceso para rellenar su propietario y nombre, o introdúcelos manualmente abajo."
|
|
3349
|
+
},
|
|
3350
|
+
"name": {
|
|
3351
|
+
"label": "Nombre",
|
|
3352
|
+
"description": "Una etiqueta descriptiva para esta base."
|
|
3353
|
+
},
|
|
3354
|
+
"repoOwner": "Propietario del repositorio",
|
|
3355
|
+
"repoName": "Nombre del repositorio",
|
|
3356
|
+
"descriptionPlaceholder": "Resumen opcional de esta base",
|
|
3357
|
+
"defaultInstructions": {
|
|
3358
|
+
"label": "Instrucciones por defecto del inicializador",
|
|
3359
|
+
"description": "Se anteponen a las instrucciones de cada ejecución siempre que se use esta base."
|
|
3360
|
+
}
|
|
3361
|
+
},
|
|
3362
|
+
"toast": {
|
|
3363
|
+
"repoCreated": "Repositorio creado",
|
|
3364
|
+
"repoCreateFailed": "No se pudo crear el repositorio",
|
|
3365
|
+
"failed": "Falló la inicialización",
|
|
3366
|
+
"failedFallback": "El inicializador informó de un fallo.",
|
|
3367
|
+
"started": "Inicialización iniciada",
|
|
3368
|
+
"startedDesc": "Un contenedor está inicializando {repo}; sigue su progreso en el tablero.",
|
|
3369
|
+
"bootstrapFailed": "No se pudo inicializar",
|
|
3370
|
+
"saveArchFailed": "No se pudo guardar la arquitectura de referencia",
|
|
3371
|
+
"deleteFailed": "No se pudo eliminar"
|
|
3372
|
+
}
|
|
2981
3373
|
}
|
|
2982
3374
|
}
|