@cat-factory/app 0.176.0 → 0.178.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/README.md +28 -1
- package/app/components/documents/DocumentImportModal.vue +3 -17
- package/app/components/documents/DocumentTemplatesModal.vue +1 -1
- package/app/components/documents/SpawnPreviewModal.vue +9 -19
- package/app/components/environments/steps/EnvPickStep.vue +3 -0
- package/app/components/layout/CommandBar.vue +1 -1
- package/app/components/layout/IntegrationBackTitle.vue +11 -8
- package/app/components/layout/IntegrationsHub.vue +22 -56
- package/app/components/layout/ModelProvidersHub.vue +250 -0
- package/app/components/panels/InspectorPanel.vue +2 -19
- package/app/components/panels/inspector/ServiceValidationConfig.vue +99 -1
- package/app/components/settings/ComposeEnvironmentSetupSection.vue +102 -0
- package/app/components/settings/InfrastructureWindow.vue +11 -1
- package/app/composables/api/validationChecks.ts +8 -0
- package/app/composables/useIntegrationBack.ts +5 -2
- package/app/composables/useNavContributions.ts +1 -1
- package/app/modular/nav-contributions.spec.ts +11 -3
- package/app/modular/nav-contributions.ts +35 -16
- package/app/pages/index.vue +4 -0
- package/app/stores/documents.ts +9 -6
- package/app/stores/ui/modals.ts +43 -27
- package/app/stores/validationChecks.ts +17 -2
- package/app/types/validationChecks.ts +3 -0
- package/app/utils/validationDetection.spec.ts +51 -0
- package/app/utils/validationDetection.ts +67 -0
- package/i18n/locales/de.json +103 -27
- package/i18n/locales/en.json +103 -27
- package/i18n/locales/es.json +103 -27
- package/i18n/locales/fr.json +103 -27
- package/i18n/locales/he.json +103 -27
- package/i18n/locales/it.json +103 -27
- package/i18n/locales/ja.json +103 -27
- package/i18n/locales/pl.json +103 -27
- package/i18n/locales/tr.json +103 -27
- package/i18n/locales/uk.json +103 -27
- package/package.json +2 -2
package/i18n/locales/en.json
CHANGED
|
@@ -126,6 +126,8 @@
|
|
|
126
126
|
"repositories": "Repositories",
|
|
127
127
|
"addFromRepo": "Add from existing repo",
|
|
128
128
|
"bootstrapRepo": "Bootstrap repo",
|
|
129
|
+
"models": "Models",
|
|
130
|
+
"modelProviders": "Model providers",
|
|
129
131
|
"integrations": "Integrations",
|
|
130
132
|
"infrastructure": "Infrastructure",
|
|
131
133
|
"sandbox": "Sandbox",
|
|
@@ -143,8 +145,7 @@
|
|
|
143
145
|
"modelConfiguration": "Model configuration",
|
|
144
146
|
"accountSettings": "Account settings",
|
|
145
147
|
"operatorDashboard": "Platform observability",
|
|
146
|
-
"reports": "Reports"
|
|
147
|
-
"environmentSetup": "Environment setup"
|
|
148
|
+
"reports": "Reports"
|
|
148
149
|
},
|
|
149
150
|
"board": {
|
|
150
151
|
"toast": {
|
|
@@ -1166,7 +1167,34 @@
|
|
|
1166
1167
|
"save": "Save checks",
|
|
1167
1168
|
"savedToast": "Validation checks saved",
|
|
1168
1169
|
"saveFailed": "Could not save the validation checks",
|
|
1169
|
-
"clearFailed": "Could not clear the validation checks"
|
|
1170
|
+
"clearFailed": "Could not clear the validation checks",
|
|
1171
|
+
"detect": {
|
|
1172
|
+
"action": "Detect",
|
|
1173
|
+
"hint": "Suggest checks from this service's repository",
|
|
1174
|
+
"added": "Added {count} check | Added {count} checks",
|
|
1175
|
+
"found": "Recognised {ecosystems}.",
|
|
1176
|
+
"capped": "Some suggestions were left out — a service takes at most {max} checks.",
|
|
1177
|
+
"nothingNew": "Nothing to add",
|
|
1178
|
+
"alreadyPresent": "Every detected command is already listed.",
|
|
1179
|
+
"unrecognised": "No known ecosystem was recognised at the repository root. Add the commands by hand.",
|
|
1180
|
+
"repo_unavailable": "This service has no repository linked, so there is nothing to inspect.",
|
|
1181
|
+
"failed": "The repository could not be read"
|
|
1182
|
+
},
|
|
1183
|
+
"ecosystem": {
|
|
1184
|
+
"node": "Node.js",
|
|
1185
|
+
"python": "Python",
|
|
1186
|
+
"go": "Go",
|
|
1187
|
+
"rust": "Rust",
|
|
1188
|
+
"maven": "Maven",
|
|
1189
|
+
"gradle": "Gradle",
|
|
1190
|
+
"dotnet": ".NET",
|
|
1191
|
+
"ruby": "Ruby",
|
|
1192
|
+
"php": "PHP",
|
|
1193
|
+
"elixir": "Elixir",
|
|
1194
|
+
"make": "Make",
|
|
1195
|
+
"just": "just",
|
|
1196
|
+
"task": "Task"
|
|
1197
|
+
}
|
|
1170
1198
|
}
|
|
1171
1199
|
},
|
|
1172
1200
|
"panels": {
|
|
@@ -1405,7 +1433,6 @@
|
|
|
1405
1433
|
"lastIncorporatedRequirements": "Last incorporated requirements",
|
|
1406
1434
|
"priorDocHint": "From the previous review. Use it as a base: edit the description above and resubmit.",
|
|
1407
1435
|
"bootstrapping": "Bootstrapping…",
|
|
1408
|
-
"spawnFromDocument": "Spawn from document",
|
|
1409
1436
|
"viewRequirements": "View Requirements",
|
|
1410
1437
|
"reRun": "Re-run",
|
|
1411
1438
|
"run": "Run",
|
|
@@ -2003,7 +2030,8 @@
|
|
|
2003
2030
|
},
|
|
2004
2031
|
"integrationBack": {
|
|
2005
2032
|
"backToMySetup": "Back to My setup",
|
|
2006
|
-
"backToIntegrations": "Back to Integrations"
|
|
2033
|
+
"backToIntegrations": "Back to Integrations",
|
|
2034
|
+
"backToModelProviders": "Back to Model providers"
|
|
2007
2035
|
},
|
|
2008
2036
|
"commandBar": {
|
|
2009
2037
|
"searchPlaceholder": "Search or run a command…",
|
|
@@ -2071,23 +2099,21 @@
|
|
|
2071
2099
|
},
|
|
2072
2100
|
"integrationsHub": {
|
|
2073
2101
|
"title": "Integrations",
|
|
2074
|
-
"intro": "Connect and manage the external systems this workspace can link in.",
|
|
2102
|
+
"intro": "Connect and manage the optional external systems this workspace can link in. The models your agents run on live under Model providers.",
|
|
2075
2103
|
"searchPlaceholder": "Search integrations…",
|
|
2076
2104
|
"noMatches": "No integrations match \"{query}\".",
|
|
2077
2105
|
"getStarted": {
|
|
2078
2106
|
"title": "Get started",
|
|
2079
|
-
"body": "Connect a code source
|
|
2107
|
+
"body": "Connect a code source so your pipelines have something to work on."
|
|
2080
2108
|
},
|
|
2081
2109
|
"status": {
|
|
2082
2110
|
"connected": "Connected",
|
|
2083
|
-
"keyConnected": "Key connected",
|
|
2084
2111
|
"notConnected": "Not connected",
|
|
2085
2112
|
"needsAttention": "Needs attention",
|
|
2086
2113
|
"disabled": "Disabled",
|
|
2087
2114
|
"recommended": "Recommended"
|
|
2088
2115
|
},
|
|
2089
2116
|
"groups": {
|
|
2090
|
-
"models": "Models and providers",
|
|
2091
2117
|
"sourceControl": "Source control",
|
|
2092
2118
|
"communication": "Communication",
|
|
2093
2119
|
"documents": "Documents",
|
|
@@ -2097,16 +2123,6 @@
|
|
|
2097
2123
|
"personal": "Personal (only you)"
|
|
2098
2124
|
},
|
|
2099
2125
|
"items": {
|
|
2100
|
-
"openrouter": {
|
|
2101
|
-
"description": "One gateway to 300+ models. Add your key and enable models in one place."
|
|
2102
|
-
},
|
|
2103
|
-
"vendors": {
|
|
2104
|
-
"label": "Vendors and keys",
|
|
2105
|
-
"description": "Workspace LLM subscriptions and provider API keys."
|
|
2106
|
-
},
|
|
2107
|
-
"personalSubs": {
|
|
2108
|
-
"label": "Personal subscriptions (Claude, ChatGPT/Codex, GLM)"
|
|
2109
|
-
},
|
|
2110
2126
|
"github": {
|
|
2111
2127
|
"description": "Connect the workspace's GitHub App, browse repos, PRs and issues."
|
|
2112
2128
|
},
|
|
@@ -2146,10 +2162,6 @@
|
|
|
2146
2162
|
"label": "My GitHub token",
|
|
2147
2163
|
"description": "A personal access token used for runs you start (pushes, PRs, CI, merge)."
|
|
2148
2164
|
},
|
|
2149
|
-
"localRunners": {
|
|
2150
|
-
"label": "My local runners",
|
|
2151
|
-
"description": "Your own-machine model runners (Ollama, LM Studio, vLLM…)."
|
|
2152
|
-
},
|
|
2153
2165
|
"documentTemplates": {
|
|
2154
2166
|
"label": "Templates & examples"
|
|
2155
2167
|
},
|
|
@@ -2159,6 +2171,45 @@
|
|
|
2159
2171
|
}
|
|
2160
2172
|
}
|
|
2161
2173
|
},
|
|
2174
|
+
"modelProvidersHub": {
|
|
2175
|
+
"title": "Model providers",
|
|
2176
|
+
"intro": "The engines your agents run on. At least one provider has to be connected before any pipeline step can run.",
|
|
2177
|
+
"searchPlaceholder": "Search providers…",
|
|
2178
|
+
"noMatches": "No providers match \"{query}\".",
|
|
2179
|
+
"getStarted": {
|
|
2180
|
+
"title": "No provider connected yet",
|
|
2181
|
+
"body": "Agent steps cannot run until a model is reachable. An OpenRouter key is the quickest way to unlock a wide catalogue, but vendor keys, a personal plan or your own local runner work just as well."
|
|
2182
|
+
},
|
|
2183
|
+
"status": {
|
|
2184
|
+
"connected": "Connected",
|
|
2185
|
+
"keyConnected": "Key connected",
|
|
2186
|
+
"notConnected": "Not connected",
|
|
2187
|
+
"recommended": "Recommended",
|
|
2188
|
+
"connectedCount": "none connected | {count} connected | {count} connected"
|
|
2189
|
+
},
|
|
2190
|
+
"groups": {
|
|
2191
|
+
"workspace": "Workspace providers",
|
|
2192
|
+
"personal": "Personal (only you)",
|
|
2193
|
+
"personalNote": "These belong to your account rather than the workspace, and are used only for runs you start. They are also listed under My setup."
|
|
2194
|
+
},
|
|
2195
|
+
"items": {
|
|
2196
|
+
"openrouter": {
|
|
2197
|
+
"description": "One gateway to 300+ models. Add your key and enable models in one place."
|
|
2198
|
+
},
|
|
2199
|
+
"vendors": {
|
|
2200
|
+
"label": "Vendors and keys",
|
|
2201
|
+
"description": "Workspace LLM subscriptions and provider API keys."
|
|
2202
|
+
},
|
|
2203
|
+
"personalSubs": {
|
|
2204
|
+
"label": "My subscriptions",
|
|
2205
|
+
"description": "Individual-usage plans you unlock with a personal password (Claude, GLM, Codex)."
|
|
2206
|
+
},
|
|
2207
|
+
"localRunners": {
|
|
2208
|
+
"label": "My local runners",
|
|
2209
|
+
"description": "Your own-machine model runners (Ollama, LM Studio, vLLM)."
|
|
2210
|
+
}
|
|
2211
|
+
}
|
|
2212
|
+
},
|
|
2162
2213
|
"accountSkills": {
|
|
2163
2214
|
"intro": "Link repos where your team authors Claude Skills (a SKILL.md folder plus resource files). Synced skills join this account's catalog, shared by every board, and a pipeline's Skill step runs one against a task."
|
|
2164
2215
|
},
|
|
@@ -2870,6 +2921,32 @@
|
|
|
2870
2921
|
"removeFailed": "Could not delete the shared stack"
|
|
2871
2922
|
}
|
|
2872
2923
|
},
|
|
2924
|
+
"composeEnvSetup": {
|
|
2925
|
+
"title": "Guided Docker Compose setup for a service",
|
|
2926
|
+
"lead": "Walks one service through building the Docker Compose recipe its test environments are stood up from, instead of hand-writing the compose path and setup steps.",
|
|
2927
|
+
"how": {
|
|
2928
|
+
"title": "How it works",
|
|
2929
|
+
"scan": "Scans the service's linked repository for compose files, profiles, env files and seed dumps.",
|
|
2930
|
+
"analyse": "Optionally runs the environment analyst agent to draft setup steps and a health gate from the repository's own scripts.",
|
|
2931
|
+
"preflight": "Runs the recipe's preflight checks on the machine that will provision it.",
|
|
2932
|
+
"save": "Saves the recipe onto the service and registers the workspace's Docker Compose handler.",
|
|
2933
|
+
"outcome": "After that the Deployer stands up exactly that stack whenever a pipeline needs a live environment, and the Tester runs against it. Nothing is applied until you save."
|
|
2934
|
+
},
|
|
2935
|
+
"needed": {
|
|
2936
|
+
"title": "You need this when",
|
|
2937
|
+
"running": "The service's tests need the app actually running: API or UI tests, migrations, seeded data.",
|
|
2938
|
+
"compose": "The service is provisioned as Docker Compose and has no recipe saved yet.",
|
|
2939
|
+
"setup": "Standing the stack up takes more than one command: profiles, env files, seed data or a readiness check."
|
|
2940
|
+
},
|
|
2941
|
+
"notNeeded": {
|
|
2942
|
+
"title": "You can skip it when",
|
|
2943
|
+
"inContainer": "The pipeline only lints, builds or runs unit tests. Those run inside the agent container as pre-PR validation checks, with no environment provisioned.",
|
|
2944
|
+
"otherBackend": "The service is provisioned some other way (Kubernetes, a cloud preview, or no infrastructure at all). Configure that above instead.",
|
|
2945
|
+
"noRepo": "The service has no linked repository, so there is nothing to scan."
|
|
2946
|
+
},
|
|
2947
|
+
"start": "Start guided setup",
|
|
2948
|
+
"rerunHint": "Re-run it any time to change a saved recipe."
|
|
2949
|
+
},
|
|
2873
2950
|
"localMode": {
|
|
2874
2951
|
"title": "Local mode",
|
|
2875
2952
|
"intro": "Tuning for the local container runner, stored on this machine's deployment (it replaced the {poolVars} / {harnessVars} env vars). Saving resizes the warm pool live, no restart needed; in-flight runs keep the container they already hold.",
|
|
@@ -3628,7 +3705,6 @@
|
|
|
3628
3705
|
"title": "Import from a document source",
|
|
3629
3706
|
"connectFirst": "Connect a document source first.",
|
|
3630
3707
|
"connectSource": "Connect {source}",
|
|
3631
|
-
"spawningInto": "Spawning into {frame}",
|
|
3632
3708
|
"sourceLabel": "Source",
|
|
3633
3709
|
"refLabel": "Page URL or ID",
|
|
3634
3710
|
"importButton": "Import",
|
|
@@ -3653,7 +3729,6 @@
|
|
|
3653
3729
|
"title": "Preview structure",
|
|
3654
3730
|
"plannerLlm": "AI-generated",
|
|
3655
3731
|
"plannerHeadings": "From headings",
|
|
3656
|
-
"intoFrame": "into {frame}",
|
|
3657
3732
|
"asTopLevel": "as new top-level frames",
|
|
3658
3733
|
"buildingPlan": "Building plan…",
|
|
3659
3734
|
"spawnOntoBoard": "Spawn onto board",
|
|
@@ -5420,8 +5495,8 @@
|
|
|
5420
5495
|
},
|
|
5421
5496
|
"environmentWizard": {
|
|
5422
5497
|
"progress": "Step {index} of {total}",
|
|
5423
|
-
"title": "
|
|
5424
|
-
"subtitle": "
|
|
5498
|
+
"title": "Docker Compose environment setup",
|
|
5499
|
+
"subtitle": "Build the Docker Compose recipe one service's test environments are stood up from: scan the repository, review, preflight, save.",
|
|
5425
5500
|
"recommended": "recommended",
|
|
5426
5501
|
"steps": {
|
|
5427
5502
|
"pick": "Pick service",
|
|
@@ -5431,6 +5506,7 @@
|
|
|
5431
5506
|
},
|
|
5432
5507
|
"pick": {
|
|
5433
5508
|
"intro": "Choose the service to set up a Docker Compose environment for.",
|
|
5509
|
+
"scope": "Only the service you pick is changed. Run this again later to edit its recipe.",
|
|
5434
5510
|
"empty": "No services yet. Add a service first."
|
|
5435
5511
|
},
|
|
5436
5512
|
"review": {
|
package/i18n/locales/es.json
CHANGED
|
@@ -111,6 +111,8 @@
|
|
|
111
111
|
"repositories": "Repositorios",
|
|
112
112
|
"addFromRepo": "Añadir desde un repositorio existente",
|
|
113
113
|
"bootstrapRepo": "Inicializar repositorio",
|
|
114
|
+
"models": "Modelos",
|
|
115
|
+
"modelProviders": "Proveedores de modelos",
|
|
114
116
|
"integrations": "Integraciones",
|
|
115
117
|
"sandbox": "Entorno de pruebas",
|
|
116
118
|
"kaizen": "Kaizen",
|
|
@@ -122,8 +124,7 @@
|
|
|
122
124
|
"accountSettings": "Ajustes de la cuenta",
|
|
123
125
|
"operatorDashboard": "Observabilidad de la plataforma",
|
|
124
126
|
"reports": "Informes",
|
|
125
|
-
"infrastructure": "Infraestructura"
|
|
126
|
-
"environmentSetup": "Configuración de entorno"
|
|
127
|
+
"infrastructure": "Infraestructura"
|
|
127
128
|
},
|
|
128
129
|
"board": {
|
|
129
130
|
"toast": {
|
|
@@ -1103,7 +1104,34 @@
|
|
|
1103
1104
|
"save": "Guardar comprobaciones",
|
|
1104
1105
|
"savedToast": "Comprobaciones guardadas",
|
|
1105
1106
|
"saveFailed": "No se pudieron guardar las comprobaciones",
|
|
1106
|
-
"clearFailed": "No se pudieron vaciar las comprobaciones"
|
|
1107
|
+
"clearFailed": "No se pudieron vaciar las comprobaciones",
|
|
1108
|
+
"detect": {
|
|
1109
|
+
"action": "Detectar",
|
|
1110
|
+
"hint": "Sugerir comprobaciones a partir del repositorio de este servicio",
|
|
1111
|
+
"added": "Se añadió {count} comprobación | Se añadieron {count} comprobaciones",
|
|
1112
|
+
"found": "Se reconoció {ecosystems}.",
|
|
1113
|
+
"capped": "Se omitieron algunas sugerencias: un servicio admite como máximo {max} comprobaciones.",
|
|
1114
|
+
"nothingNew": "No hay nada que añadir",
|
|
1115
|
+
"alreadyPresent": "Todos los comandos detectados ya están en la lista.",
|
|
1116
|
+
"unrecognised": "No se reconoció ningún ecosistema conocido en la raíz del repositorio. Añade los comandos a mano.",
|
|
1117
|
+
"repo_unavailable": "Este servicio no tiene ningún repositorio vinculado, así que no hay nada que inspeccionar.",
|
|
1118
|
+
"failed": "No se pudo leer el repositorio"
|
|
1119
|
+
},
|
|
1120
|
+
"ecosystem": {
|
|
1121
|
+
"node": "Node.js",
|
|
1122
|
+
"python": "Python",
|
|
1123
|
+
"go": "Go",
|
|
1124
|
+
"rust": "Rust",
|
|
1125
|
+
"maven": "Maven",
|
|
1126
|
+
"gradle": "Gradle",
|
|
1127
|
+
"dotnet": ".NET",
|
|
1128
|
+
"ruby": "Ruby",
|
|
1129
|
+
"php": "PHP",
|
|
1130
|
+
"elixir": "Elixir",
|
|
1131
|
+
"make": "Make",
|
|
1132
|
+
"just": "just",
|
|
1133
|
+
"task": "Task"
|
|
1134
|
+
}
|
|
1107
1135
|
}
|
|
1108
1136
|
},
|
|
1109
1137
|
"panels": {
|
|
@@ -1319,7 +1347,6 @@
|
|
|
1319
1347
|
"lastIncorporatedRequirements": "Últimos requisitos incorporados",
|
|
1320
1348
|
"priorDocHint": "De la revisión anterior. Úsalo como base: edita la descripción de arriba y reenvíala.",
|
|
1321
1349
|
"bootstrapping": "Inicializando…",
|
|
1322
|
-
"spawnFromDocument": "Generar desde documento",
|
|
1323
1350
|
"viewRequirements": "Ver requisitos",
|
|
1324
1351
|
"reRun": "Reejecutar",
|
|
1325
1352
|
"run": "Ejecutar",
|
|
@@ -1934,7 +1961,8 @@
|
|
|
1934
1961
|
},
|
|
1935
1962
|
"integrationBack": {
|
|
1936
1963
|
"backToMySetup": "Volver a Mi configuración",
|
|
1937
|
-
"backToIntegrations": "Volver a Integraciones"
|
|
1964
|
+
"backToIntegrations": "Volver a Integraciones",
|
|
1965
|
+
"backToModelProviders": "Volver a Proveedores de modelos"
|
|
1938
1966
|
},
|
|
1939
1967
|
"commandBar": {
|
|
1940
1968
|
"searchPlaceholder": "Busca o ejecuta un comando…",
|
|
@@ -1995,23 +2023,21 @@
|
|
|
1995
2023
|
},
|
|
1996
2024
|
"integrationsHub": {
|
|
1997
2025
|
"title": "Integraciones",
|
|
1998
|
-
"intro": "Conecta y gestiona los sistemas externos que este espacio de trabajo puede vincular.",
|
|
2026
|
+
"intro": "Conecta y gestiona los sistemas externos opcionales que este espacio de trabajo puede vincular. Los modelos con los que se ejecutan tus agentes están en Proveedores de modelos.",
|
|
1999
2027
|
"searchPlaceholder": "Buscar integraciones…",
|
|
2000
2028
|
"noMatches": "Ninguna integración coincide con \"{query}\".",
|
|
2001
2029
|
"getStarted": {
|
|
2002
2030
|
"title": "Primeros pasos",
|
|
2003
|
-
"body": "Conecta una fuente de código
|
|
2031
|
+
"body": "Conecta una fuente de código para que tus canalizaciones tengan algo sobre lo que trabajar."
|
|
2004
2032
|
},
|
|
2005
2033
|
"status": {
|
|
2006
2034
|
"connected": "Conectado",
|
|
2007
|
-
"keyConnected": "Clave conectada",
|
|
2008
2035
|
"notConnected": "Sin conectar",
|
|
2009
2036
|
"needsAttention": "Requiere atención",
|
|
2010
2037
|
"disabled": "Desactivado",
|
|
2011
2038
|
"recommended": "Recomendado"
|
|
2012
2039
|
},
|
|
2013
2040
|
"groups": {
|
|
2014
|
-
"models": "Modelos y proveedores",
|
|
2015
2041
|
"sourceControl": "Control de código fuente",
|
|
2016
2042
|
"communication": "Comunicación",
|
|
2017
2043
|
"documents": "Documentos",
|
|
@@ -2021,16 +2047,6 @@
|
|
|
2021
2047
|
"personal": "Personal (solo tú)"
|
|
2022
2048
|
},
|
|
2023
2049
|
"items": {
|
|
2024
|
-
"openrouter": {
|
|
2025
|
-
"description": "Una sola puerta de enlace a más de 300 modelos. Añade tu clave y activa modelos en un único lugar."
|
|
2026
|
-
},
|
|
2027
|
-
"vendors": {
|
|
2028
|
-
"label": "Proveedores y claves",
|
|
2029
|
-
"description": "Suscripciones de LLM del espacio de trabajo y claves API de proveedores."
|
|
2030
|
-
},
|
|
2031
|
-
"personalSubs": {
|
|
2032
|
-
"label": "Suscripciones personales (Claude, ChatGPT/Codex, GLM)"
|
|
2033
|
-
},
|
|
2034
2050
|
"github": {
|
|
2035
2051
|
"description": "Conecta la GitHub App del espacio de trabajo y explora repositorios, PR e incidencias."
|
|
2036
2052
|
},
|
|
@@ -2070,10 +2086,6 @@
|
|
|
2070
2086
|
"label": "Mi token de GitHub",
|
|
2071
2087
|
"description": "Un token de acceso personal usado para las ejecuciones que inicias (pushes, PR, CI, fusión)."
|
|
2072
2088
|
},
|
|
2073
|
-
"localRunners": {
|
|
2074
|
-
"label": "Mis ejecutores locales",
|
|
2075
|
-
"description": "Tus ejecutores de modelos en tu propia máquina (Ollama, LM Studio, vLLM…)."
|
|
2076
|
-
},
|
|
2077
2089
|
"documentTemplates": {
|
|
2078
2090
|
"label": "Plantillas y ejemplos"
|
|
2079
2091
|
},
|
|
@@ -2083,6 +2095,45 @@
|
|
|
2083
2095
|
}
|
|
2084
2096
|
}
|
|
2085
2097
|
},
|
|
2098
|
+
"modelProvidersHub": {
|
|
2099
|
+
"title": "Proveedores de modelos",
|
|
2100
|
+
"intro": "Los motores con los que se ejecutan tus agentes. Debe haber al menos un proveedor conectado antes de que pueda ejecutarse cualquier paso de una canalización.",
|
|
2101
|
+
"searchPlaceholder": "Buscar proveedores…",
|
|
2102
|
+
"noMatches": "Ningún proveedor coincide con \"{query}\".",
|
|
2103
|
+
"getStarted": {
|
|
2104
|
+
"title": "Todavía no hay ningún proveedor conectado",
|
|
2105
|
+
"body": "Los pasos de agente no pueden ejecutarse hasta que haya un modelo accesible. Una clave de OpenRouter es la forma más rápida de desbloquear un catálogo amplio, pero las claves de proveedor, un plan personal o tu propio ejecutor local funcionan igual de bien."
|
|
2106
|
+
},
|
|
2107
|
+
"status": {
|
|
2108
|
+
"connected": "Conectado",
|
|
2109
|
+
"keyConnected": "Clave conectada",
|
|
2110
|
+
"notConnected": "Sin conectar",
|
|
2111
|
+
"recommended": "Recomendado",
|
|
2112
|
+
"connectedCount": "ninguno conectado | {count} conectado | {count} conectados"
|
|
2113
|
+
},
|
|
2114
|
+
"groups": {
|
|
2115
|
+
"workspace": "Proveedores del espacio de trabajo",
|
|
2116
|
+
"personal": "Personal (solo tú)",
|
|
2117
|
+
"personalNote": "Pertenecen a tu cuenta y no al espacio de trabajo, y solo se usan en las ejecuciones que inicias tú. También aparecen en Mi configuración."
|
|
2118
|
+
},
|
|
2119
|
+
"items": {
|
|
2120
|
+
"openrouter": {
|
|
2121
|
+
"description": "Una sola puerta de enlace a más de 300 modelos. Añade tu clave y activa modelos en un único lugar."
|
|
2122
|
+
},
|
|
2123
|
+
"vendors": {
|
|
2124
|
+
"label": "Proveedores y claves",
|
|
2125
|
+
"description": "Suscripciones de LLM del espacio de trabajo y claves API de proveedores."
|
|
2126
|
+
},
|
|
2127
|
+
"personalSubs": {
|
|
2128
|
+
"label": "Mis suscripciones",
|
|
2129
|
+
"description": "Planes de uso individual que desbloqueas con una contraseña personal (Claude, GLM, Codex)."
|
|
2130
|
+
},
|
|
2131
|
+
"localRunners": {
|
|
2132
|
+
"label": "Mis ejecutores locales",
|
|
2133
|
+
"description": "Tus ejecutores de modelos en tu propia máquina (Ollama, LM Studio, vLLM)."
|
|
2134
|
+
}
|
|
2135
|
+
}
|
|
2136
|
+
},
|
|
2086
2137
|
"shortcuts": {
|
|
2087
2138
|
"title": "Atajos de teclado",
|
|
2088
2139
|
"commandBar": "Abrir la barra de comandos",
|
|
@@ -2651,6 +2702,32 @@
|
|
|
2651
2702
|
"removeFailed": "No se pudo eliminar el stack compartido"
|
|
2652
2703
|
}
|
|
2653
2704
|
},
|
|
2705
|
+
"composeEnvSetup": {
|
|
2706
|
+
"title": "Configuración guiada de Docker Compose para un servicio",
|
|
2707
|
+
"lead": "Guía a un servicio en la creación de la receta de Docker Compose con la que se levantan sus entornos de prueba, en lugar de escribir a mano la ruta del compose y los pasos de preparación.",
|
|
2708
|
+
"how": {
|
|
2709
|
+
"title": "Cómo funciona",
|
|
2710
|
+
"scan": "Analiza el repositorio vinculado del servicio en busca de archivos compose, perfiles, archivos de entorno y volcados de datos iniciales.",
|
|
2711
|
+
"analyse": "Opcionalmente ejecuta el agente analista de entornos para redactar pasos de preparación y una comprobación de salud a partir de los propios scripts del repositorio.",
|
|
2712
|
+
"preflight": "Ejecuta las comprobaciones previas de la receta en la máquina que la aprovisionará.",
|
|
2713
|
+
"save": "Guarda la receta en el servicio y registra el gestor de Docker Compose del espacio de trabajo.",
|
|
2714
|
+
"outcome": "A partir de ahí el Deployer levanta exactamente esa pila siempre que una canalización necesita un entorno vivo, y el Tester se ejecuta contra ella. No se aplica nada hasta que guardas."
|
|
2715
|
+
},
|
|
2716
|
+
"needed": {
|
|
2717
|
+
"title": "Lo necesitas cuando",
|
|
2718
|
+
"running": "Las pruebas del servicio necesitan la aplicación realmente en marcha: pruebas de API o de interfaz, migraciones, datos iniciales.",
|
|
2719
|
+
"compose": "El servicio se aprovisiona con Docker Compose y todavía no tiene ninguna receta guardada.",
|
|
2720
|
+
"setup": "Levantar la pila requiere más de un comando: perfiles, archivos de entorno, datos iniciales o una comprobación de disponibilidad."
|
|
2721
|
+
},
|
|
2722
|
+
"notNeeded": {
|
|
2723
|
+
"title": "Puedes omitirlo cuando",
|
|
2724
|
+
"inContainer": "La canalización solo pasa el linter, compila o ejecuta pruebas unitarias. Eso se ejecuta dentro del contenedor del agente como comprobaciones previas a la PR, sin aprovisionar ningún entorno.",
|
|
2725
|
+
"otherBackend": "El servicio se aprovisiona de otra forma (Kubernetes, una vista previa en la nube o sin infraestructura). Configúralo arriba en su lugar.",
|
|
2726
|
+
"noRepo": "El servicio no tiene repositorio vinculado, así que no hay nada que analizar."
|
|
2727
|
+
},
|
|
2728
|
+
"start": "Iniciar configuración guiada",
|
|
2729
|
+
"rerunHint": "Vuelve a ejecutarlo cuando quieras para cambiar una receta guardada."
|
|
2730
|
+
},
|
|
2654
2731
|
"localMode": {
|
|
2655
2732
|
"title": "Modo local",
|
|
2656
2733
|
"intro": "Ajustes del ejecutor de contenedores local, almacenados en el despliegue de esta máquina (reemplazó las variables de entorno {poolVars} / {harnessVars}). Guardar redimensiona el grupo en caliente en vivo, sin necesidad de reiniciar; las ejecuciones en curso conservan el contenedor que ya tienen.",
|
|
@@ -3520,7 +3597,6 @@
|
|
|
3520
3597
|
"title": "Importar desde una fuente de documentos",
|
|
3521
3598
|
"connectFirst": "Conecta primero una fuente de documentos.",
|
|
3522
3599
|
"connectSource": "Conectar {source}",
|
|
3523
|
-
"spawningInto": "Generando dentro de {frame}",
|
|
3524
3600
|
"sourceLabel": "Fuente",
|
|
3525
3601
|
"refLabel": "URL o ID de la página",
|
|
3526
3602
|
"importButton": "Importar",
|
|
@@ -3545,7 +3621,6 @@
|
|
|
3545
3621
|
"title": "Previsualizar estructura",
|
|
3546
3622
|
"plannerLlm": "Generado por IA",
|
|
3547
3623
|
"plannerHeadings": "A partir de los encabezados",
|
|
3548
|
-
"intoFrame": "en {frame}",
|
|
3549
3624
|
"asTopLevel": "como nuevos marcos de nivel superior",
|
|
3550
3625
|
"buildingPlan": "Creando el plan…",
|
|
3551
3626
|
"spawnOntoBoard": "Generar en el tablero",
|
|
@@ -5255,8 +5330,8 @@
|
|
|
5255
5330
|
},
|
|
5256
5331
|
"environmentWizard": {
|
|
5257
5332
|
"progress": "Paso {index} de {total}",
|
|
5258
|
-
"title": "
|
|
5259
|
-
"subtitle": "
|
|
5333
|
+
"title": "Configuración de entorno de Docker Compose",
|
|
5334
|
+
"subtitle": "Crea la receta de Docker Compose con la que se levantan los entornos de prueba de un servicio: analiza el repositorio, revisa, comprueba y guarda.",
|
|
5260
5335
|
"recommended": "recomendado",
|
|
5261
5336
|
"steps": {
|
|
5262
5337
|
"pick": "Elegir servicio",
|
|
@@ -5266,6 +5341,7 @@
|
|
|
5266
5341
|
},
|
|
5267
5342
|
"pick": {
|
|
5268
5343
|
"intro": "Elige el servicio para el que configurar un entorno de Docker Compose.",
|
|
5344
|
+
"scope": "Solo cambia el servicio que elijas. Vuelve a ejecutar esto más adelante para editar su receta.",
|
|
5269
5345
|
"empty": "Aún no hay servicios. Añade uno primero."
|
|
5270
5346
|
},
|
|
5271
5347
|
"review": {
|