@cat-factory/app 0.176.0 → 0.178.0
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/environments/steps/EnvPickStep.vue +3 -0
- package/app/components/layout/IntegrationBackTitle.vue +11 -8
- package/app/components/layout/IntegrationsHub.vue +21 -55
- package/app/components/layout/ModelProvidersHub.vue +250 -0
- 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/ui/modals.ts +32 -6
- 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 -24
- package/i18n/locales/en.json +103 -24
- package/i18n/locales/es.json +103 -24
- package/i18n/locales/fr.json +103 -24
- package/i18n/locales/he.json +103 -24
- package/i18n/locales/it.json +103 -24
- package/i18n/locales/ja.json +103 -24
- package/i18n/locales/pl.json +103 -24
- package/i18n/locales/tr.json +103 -24
- package/i18n/locales/uk.json +103 -24
- package/package.json +2 -2
package/i18n/locales/de.json
CHANGED
|
@@ -658,6 +658,32 @@
|
|
|
658
658
|
"removeFailed": "Der gemeinsame Stack konnte nicht gelöscht werden"
|
|
659
659
|
}
|
|
660
660
|
},
|
|
661
|
+
"composeEnvSetup": {
|
|
662
|
+
"title": "Geführte Docker-Compose-Einrichtung für einen Service",
|
|
663
|
+
"lead": "Führt einen Service Schritt für Schritt durch das Erstellen des Docker-Compose-Rezepts, aus dem seine Testumgebungen aufgebaut werden, statt Compose-Pfad und Setup-Schritte von Hand zu schreiben.",
|
|
664
|
+
"how": {
|
|
665
|
+
"title": "So funktioniert es",
|
|
666
|
+
"scan": "Durchsucht das verknüpfte Repository des Service nach Compose-Dateien, Profilen, Env-Dateien und Seed-Dumps.",
|
|
667
|
+
"analyse": "Führt optional den Umgebungsanalysten aus, der Setup-Schritte und ein Health-Gate aus den Skripten des Repositorys entwirft.",
|
|
668
|
+
"preflight": "Führt die Preflight-Prüfungen des Rezepts auf der Maschine aus, die es bereitstellen wird.",
|
|
669
|
+
"save": "Speichert das Rezept am Service und registriert den Docker-Compose-Handler des Workspace.",
|
|
670
|
+
"outcome": "Danach stellt der Deployer genau diesen Stack bereit, sobald eine Pipeline eine laufende Umgebung braucht, und der Tester testet dagegen. Bis zum Speichern wird nichts übernommen."
|
|
671
|
+
},
|
|
672
|
+
"needed": {
|
|
673
|
+
"title": "Sie brauchen das, wenn",
|
|
674
|
+
"running": "Die Tests des Service die laufende Anwendung benötigen: API- oder UI-Tests, Migrationen, Seed-Daten.",
|
|
675
|
+
"compose": "Der Service über Docker Compose bereitgestellt wird und noch kein Rezept gespeichert hat.",
|
|
676
|
+
"setup": "Das Hochfahren des Stacks mehr als einen Befehl erfordert: Profile, Env-Dateien, Seed-Daten oder eine Bereitschaftsprüfung."
|
|
677
|
+
},
|
|
678
|
+
"notNeeded": {
|
|
679
|
+
"title": "Sie können es überspringen, wenn",
|
|
680
|
+
"inContainer": "Die Pipeline nur lintet, baut oder Unit-Tests ausführt. Das läuft als Pre-PR-Validierung im Agenten-Container, ohne dass eine Umgebung bereitgestellt wird.",
|
|
681
|
+
"otherBackend": "Der Service anders bereitgestellt wird (Kubernetes, eine Cloud-Vorschau oder gar keine Infrastruktur). Konfigurieren Sie das stattdessen oben.",
|
|
682
|
+
"noRepo": "Der Service kein verknüpftes Repository hat, es also nichts zu durchsuchen gibt."
|
|
683
|
+
},
|
|
684
|
+
"start": "Geführte Einrichtung starten",
|
|
685
|
+
"rerunHint": "Jederzeit erneut ausführbar, um ein gespeichertes Rezept zu ändern."
|
|
686
|
+
},
|
|
661
687
|
"localMode": {
|
|
662
688
|
"title": "Lokaler Modus",
|
|
663
689
|
"intro": "Feinabstimmung für den lokalen Container-Runner, gespeichert im Deployment dieser Maschine (er hat die Umgebungsvariablen {poolVars} / {harnessVars} ersetzt). Das Speichern passt den Warm-Pool live an, kein Neustart nötig; laufende Ausführungen behalten den Container, den sie bereits halten.",
|
|
@@ -1419,7 +1445,34 @@
|
|
|
1419
1445
|
"save": "Prüfungen speichern",
|
|
1420
1446
|
"savedToast": "Prüfungen gespeichert",
|
|
1421
1447
|
"saveFailed": "Prüfungen konnten nicht gespeichert werden",
|
|
1422
|
-
"clearFailed": "Prüfungen konnten nicht geleert werden"
|
|
1448
|
+
"clearFailed": "Prüfungen konnten nicht geleert werden",
|
|
1449
|
+
"detect": {
|
|
1450
|
+
"action": "Erkennen",
|
|
1451
|
+
"hint": "Prüfungen aus dem Repository dieses Dienstes vorschlagen",
|
|
1452
|
+
"added": "{count} Prüfung hinzugefügt | {count} Prüfungen hinzugefügt",
|
|
1453
|
+
"found": "Erkannt: {ecosystems}.",
|
|
1454
|
+
"capped": "Einige Vorschläge wurden ausgelassen — ein Dienst nimmt höchstens {max} Prüfungen auf.",
|
|
1455
|
+
"nothingNew": "Nichts hinzuzufügen",
|
|
1456
|
+
"alreadyPresent": "Alle erkannten Befehle stehen bereits in der Liste.",
|
|
1457
|
+
"unrecognised": "Im Wurzelverzeichnis des Repositorys wurde kein bekanntes Ökosystem erkannt. Bitte die Befehle von Hand eintragen.",
|
|
1458
|
+
"repo_unavailable": "Diesem Dienst ist kein Repository zugeordnet, es gibt also nichts zu untersuchen.",
|
|
1459
|
+
"failed": "Das Repository konnte nicht gelesen werden"
|
|
1460
|
+
},
|
|
1461
|
+
"ecosystem": {
|
|
1462
|
+
"node": "Node.js",
|
|
1463
|
+
"python": "Python",
|
|
1464
|
+
"go": "Go",
|
|
1465
|
+
"rust": "Rust",
|
|
1466
|
+
"maven": "Maven",
|
|
1467
|
+
"gradle": "Gradle",
|
|
1468
|
+
"dotnet": ".NET",
|
|
1469
|
+
"ruby": "Ruby",
|
|
1470
|
+
"php": "PHP",
|
|
1471
|
+
"elixir": "Elixir",
|
|
1472
|
+
"make": "Make",
|
|
1473
|
+
"just": "just",
|
|
1474
|
+
"task": "Task"
|
|
1475
|
+
}
|
|
1423
1476
|
}
|
|
1424
1477
|
},
|
|
1425
1478
|
"panels": {
|
|
@@ -1975,7 +2028,8 @@
|
|
|
1975
2028
|
},
|
|
1976
2029
|
"integrationBack": {
|
|
1977
2030
|
"backToMySetup": "Zurück zu Meine Einrichtung",
|
|
1978
|
-
"backToIntegrations": "Zurück zu Integrationen"
|
|
2031
|
+
"backToIntegrations": "Zurück zu Integrationen",
|
|
2032
|
+
"backToModelProviders": "Zurück zu Modellanbieter"
|
|
1979
2033
|
},
|
|
1980
2034
|
"commandBar": {
|
|
1981
2035
|
"searchPlaceholder": "Suchen oder einen Befehl ausführen…",
|
|
@@ -2043,23 +2097,21 @@
|
|
|
2043
2097
|
},
|
|
2044
2098
|
"integrationsHub": {
|
|
2045
2099
|
"title": "Integrationen",
|
|
2046
|
-
"intro": "Verbinden und verwalten Sie die externen Systeme, die dieser Workspace einbinden kann.",
|
|
2100
|
+
"intro": "Verbinden und verwalten Sie die optionalen externen Systeme, die dieser Workspace einbinden kann. Die Modelle, auf denen Ihre Agenten laufen, finden Sie unter Modellanbieter.",
|
|
2047
2101
|
"searchPlaceholder": "Integrationen durchsuchen…",
|
|
2048
2102
|
"noMatches": "Keine Integrationen passen zu \"{query}\".",
|
|
2049
2103
|
"getStarted": {
|
|
2050
2104
|
"title": "Erste Schritte",
|
|
2051
|
-
"body": "Verbinden Sie eine Code-Quelle
|
|
2105
|
+
"body": "Verbinden Sie eine Code-Quelle, damit Ihre Pipelines etwas zu bearbeiten haben."
|
|
2052
2106
|
},
|
|
2053
2107
|
"status": {
|
|
2054
2108
|
"connected": "Verbunden",
|
|
2055
|
-
"keyConnected": "Schlüssel verbunden",
|
|
2056
2109
|
"notConnected": "Nicht verbunden",
|
|
2057
2110
|
"needsAttention": "Benötigt Aufmerksamkeit",
|
|
2058
2111
|
"disabled": "Deaktiviert",
|
|
2059
2112
|
"recommended": "Empfohlen"
|
|
2060
2113
|
},
|
|
2061
2114
|
"groups": {
|
|
2062
|
-
"models": "Modelle und Anbieter",
|
|
2063
2115
|
"sourceControl": "Versionsverwaltung",
|
|
2064
2116
|
"communication": "Kommunikation",
|
|
2065
2117
|
"documents": "Dokumente",
|
|
@@ -2069,16 +2121,6 @@
|
|
|
2069
2121
|
"personal": "Persönlich (nur Sie)"
|
|
2070
2122
|
},
|
|
2071
2123
|
"items": {
|
|
2072
|
-
"openrouter": {
|
|
2073
|
-
"description": "Ein Gateway zu über 300 Modellen. Fügen Sie Ihren Schlüssel hinzu und aktivieren Sie Modelle an einem Ort."
|
|
2074
|
-
},
|
|
2075
|
-
"vendors": {
|
|
2076
|
-
"label": "Anbieter und Schlüssel",
|
|
2077
|
-
"description": "Workspace-LLM-Abonnements und Anbieter-API-Schlüssel."
|
|
2078
|
-
},
|
|
2079
|
-
"personalSubs": {
|
|
2080
|
-
"label": "Persönliche Abonnements (Claude, ChatGPT/Codex, GLM)"
|
|
2081
|
-
},
|
|
2082
2124
|
"github": {
|
|
2083
2125
|
"description": "Verbinden Sie die GitHub-App des Workspace, durchsuchen Sie Repos, PRs und Issues."
|
|
2084
2126
|
},
|
|
@@ -2118,10 +2160,6 @@
|
|
|
2118
2160
|
"label": "Mein GitHub-Token",
|
|
2119
2161
|
"description": "Ein Personal Access Token, der für von Ihnen gestartete Läufe verwendet wird (Pushes, PRs, CI, Merge)."
|
|
2120
2162
|
},
|
|
2121
|
-
"localRunners": {
|
|
2122
|
-
"label": "Meine lokalen Runner",
|
|
2123
|
-
"description": "Modell-Runner auf Ihrer eigenen Maschine (Ollama, LM Studio, vLLM…)."
|
|
2124
|
-
},
|
|
2125
2163
|
"documentTemplates": {
|
|
2126
2164
|
"label": "Vorlagen & Beispiele"
|
|
2127
2165
|
},
|
|
@@ -2131,6 +2169,45 @@
|
|
|
2131
2169
|
}
|
|
2132
2170
|
}
|
|
2133
2171
|
},
|
|
2172
|
+
"modelProvidersHub": {
|
|
2173
|
+
"title": "Modellanbieter",
|
|
2174
|
+
"intro": "Die Engines, auf denen Ihre Agenten laufen. Mindestens ein Anbieter muss verbunden sein, bevor ein Pipeline-Schritt ausgeführt werden kann.",
|
|
2175
|
+
"searchPlaceholder": "Anbieter suchen…",
|
|
2176
|
+
"noMatches": "Keine Anbieter entsprechen \"{query}\".",
|
|
2177
|
+
"getStarted": {
|
|
2178
|
+
"title": "Noch kein Anbieter verbunden",
|
|
2179
|
+
"body": "Agentenschritte können erst laufen, wenn ein Modell erreichbar ist. Ein OpenRouter-Schlüssel ist der schnellste Weg zu einem großen Katalog, aber Anbieterschlüssel, ein persönliches Abonnement oder Ihr eigener lokaler Runner funktionieren genauso gut."
|
|
2180
|
+
},
|
|
2181
|
+
"status": {
|
|
2182
|
+
"connected": "Verbunden",
|
|
2183
|
+
"keyConnected": "Schlüssel verbunden",
|
|
2184
|
+
"notConnected": "Nicht verbunden",
|
|
2185
|
+
"recommended": "Empfohlen",
|
|
2186
|
+
"connectedCount": "keine verbunden | {count} verbunden | {count} verbunden"
|
|
2187
|
+
},
|
|
2188
|
+
"groups": {
|
|
2189
|
+
"workspace": "Workspace-Anbieter",
|
|
2190
|
+
"personal": "Persönlich (nur Sie)",
|
|
2191
|
+
"personalNote": "Diese gehören zu Ihrem Konto und nicht zum Workspace und werden nur für Läufe verwendet, die Sie starten. Sie sind auch unter Meine Einrichtung aufgeführt."
|
|
2192
|
+
},
|
|
2193
|
+
"items": {
|
|
2194
|
+
"openrouter": {
|
|
2195
|
+
"description": "Ein Gateway zu über 300 Modellen. Fügen Sie Ihren Schlüssel hinzu und aktivieren Sie Modelle an einem Ort."
|
|
2196
|
+
},
|
|
2197
|
+
"vendors": {
|
|
2198
|
+
"label": "Anbieter und Schlüssel",
|
|
2199
|
+
"description": "Workspace-LLM-Abonnements und Anbieter-API-Schlüssel."
|
|
2200
|
+
},
|
|
2201
|
+
"personalSubs": {
|
|
2202
|
+
"label": "Meine Abonnements",
|
|
2203
|
+
"description": "Pläne zur individuellen Nutzung, die Sie mit einem persönlichen Passwort freischalten (Claude, GLM, Codex)."
|
|
2204
|
+
},
|
|
2205
|
+
"localRunners": {
|
|
2206
|
+
"label": "Meine lokalen Runner",
|
|
2207
|
+
"description": "Modell-Runner auf Ihrer eigenen Maschine (Ollama, LM Studio, vLLM)."
|
|
2208
|
+
}
|
|
2209
|
+
}
|
|
2210
|
+
},
|
|
2134
2211
|
"accountSkills": {
|
|
2135
2212
|
"intro": "Verknüpfe Repositorys, in denen dein Team Claude Skills erstellt (ein SKILL.md-Ordner plus Ressourcendateien). Synchronisierte Skills landen im Katalog dieses Kontos, der von allen Boards geteilt wird, und der Skill-Schritt einer Pipeline führt einen davon für eine Aufgabe aus."
|
|
2136
2213
|
},
|
|
@@ -4356,6 +4433,8 @@
|
|
|
4356
4433
|
"repositories": "Repositories",
|
|
4357
4434
|
"addFromRepo": "Aus vorhandenem Repo hinzufügen",
|
|
4358
4435
|
"bootstrapRepo": "Repo bootstrappen",
|
|
4436
|
+
"models": "Modelle",
|
|
4437
|
+
"modelProviders": "Modellanbieter",
|
|
4359
4438
|
"integrations": "Integrationen",
|
|
4360
4439
|
"infrastructure": "Infrastruktur",
|
|
4361
4440
|
"sandbox": "Sandbox",
|
|
@@ -4367,8 +4446,7 @@
|
|
|
4367
4446
|
"modelConfiguration": "Modellkonfiguration",
|
|
4368
4447
|
"accountSettings": "Kontoeinstellungen",
|
|
4369
4448
|
"operatorDashboard": "Plattform-Observability",
|
|
4370
|
-
"reports": "Berichte"
|
|
4371
|
-
"environmentSetup": "Umgebungseinrichtung"
|
|
4449
|
+
"reports": "Berichte"
|
|
4372
4450
|
},
|
|
4373
4451
|
"errors": {
|
|
4374
4452
|
"action": {
|
|
@@ -5263,8 +5341,8 @@
|
|
|
5263
5341
|
},
|
|
5264
5342
|
"environmentWizard": {
|
|
5265
5343
|
"progress": "Schritt {index} von {total}",
|
|
5266
|
-
"title": "
|
|
5267
|
-
"subtitle": "
|
|
5344
|
+
"title": "Docker-Compose-Umgebungseinrichtung",
|
|
5345
|
+
"subtitle": "Erstellen Sie das Docker-Compose-Rezept, aus dem die Testumgebungen eines Service aufgebaut werden: Repository durchsuchen, prüfen, Preflight, speichern.",
|
|
5268
5346
|
"recommended": "empfohlen",
|
|
5269
5347
|
"steps": {
|
|
5270
5348
|
"pick": "Service auswählen",
|
|
@@ -5274,6 +5352,7 @@
|
|
|
5274
5352
|
},
|
|
5275
5353
|
"pick": {
|
|
5276
5354
|
"intro": "Wähle den Service, für den eine Docker-Compose-Umgebung eingerichtet werden soll.",
|
|
5355
|
+
"scope": "Nur der ausgewählte Service wird geändert. Führen Sie dies später erneut aus, um sein Rezept zu bearbeiten.",
|
|
5277
5356
|
"empty": "Noch keine Services. Füge zuerst einen Service hinzu."
|
|
5278
5357
|
},
|
|
5279
5358
|
"review": {
|
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": {
|
|
@@ -2003,7 +2031,8 @@
|
|
|
2003
2031
|
},
|
|
2004
2032
|
"integrationBack": {
|
|
2005
2033
|
"backToMySetup": "Back to My setup",
|
|
2006
|
-
"backToIntegrations": "Back to Integrations"
|
|
2034
|
+
"backToIntegrations": "Back to Integrations",
|
|
2035
|
+
"backToModelProviders": "Back to Model providers"
|
|
2007
2036
|
},
|
|
2008
2037
|
"commandBar": {
|
|
2009
2038
|
"searchPlaceholder": "Search or run a command…",
|
|
@@ -2071,23 +2100,21 @@
|
|
|
2071
2100
|
},
|
|
2072
2101
|
"integrationsHub": {
|
|
2073
2102
|
"title": "Integrations",
|
|
2074
|
-
"intro": "Connect and manage the external systems this workspace can link in.",
|
|
2103
|
+
"intro": "Connect and manage the optional external systems this workspace can link in. The models your agents run on live under Model providers.",
|
|
2075
2104
|
"searchPlaceholder": "Search integrations…",
|
|
2076
2105
|
"noMatches": "No integrations match \"{query}\".",
|
|
2077
2106
|
"getStarted": {
|
|
2078
2107
|
"title": "Get started",
|
|
2079
|
-
"body": "Connect a code source
|
|
2108
|
+
"body": "Connect a code source so your pipelines have something to work on."
|
|
2080
2109
|
},
|
|
2081
2110
|
"status": {
|
|
2082
2111
|
"connected": "Connected",
|
|
2083
|
-
"keyConnected": "Key connected",
|
|
2084
2112
|
"notConnected": "Not connected",
|
|
2085
2113
|
"needsAttention": "Needs attention",
|
|
2086
2114
|
"disabled": "Disabled",
|
|
2087
2115
|
"recommended": "Recommended"
|
|
2088
2116
|
},
|
|
2089
2117
|
"groups": {
|
|
2090
|
-
"models": "Models and providers",
|
|
2091
2118
|
"sourceControl": "Source control",
|
|
2092
2119
|
"communication": "Communication",
|
|
2093
2120
|
"documents": "Documents",
|
|
@@ -2097,16 +2124,6 @@
|
|
|
2097
2124
|
"personal": "Personal (only you)"
|
|
2098
2125
|
},
|
|
2099
2126
|
"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
2127
|
"github": {
|
|
2111
2128
|
"description": "Connect the workspace's GitHub App, browse repos, PRs and issues."
|
|
2112
2129
|
},
|
|
@@ -2146,10 +2163,6 @@
|
|
|
2146
2163
|
"label": "My GitHub token",
|
|
2147
2164
|
"description": "A personal access token used for runs you start (pushes, PRs, CI, merge)."
|
|
2148
2165
|
},
|
|
2149
|
-
"localRunners": {
|
|
2150
|
-
"label": "My local runners",
|
|
2151
|
-
"description": "Your own-machine model runners (Ollama, LM Studio, vLLM…)."
|
|
2152
|
-
},
|
|
2153
2166
|
"documentTemplates": {
|
|
2154
2167
|
"label": "Templates & examples"
|
|
2155
2168
|
},
|
|
@@ -2159,6 +2172,45 @@
|
|
|
2159
2172
|
}
|
|
2160
2173
|
}
|
|
2161
2174
|
},
|
|
2175
|
+
"modelProvidersHub": {
|
|
2176
|
+
"title": "Model providers",
|
|
2177
|
+
"intro": "The engines your agents run on. At least one provider has to be connected before any pipeline step can run.",
|
|
2178
|
+
"searchPlaceholder": "Search providers…",
|
|
2179
|
+
"noMatches": "No providers match \"{query}\".",
|
|
2180
|
+
"getStarted": {
|
|
2181
|
+
"title": "No provider connected yet",
|
|
2182
|
+
"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."
|
|
2183
|
+
},
|
|
2184
|
+
"status": {
|
|
2185
|
+
"connected": "Connected",
|
|
2186
|
+
"keyConnected": "Key connected",
|
|
2187
|
+
"notConnected": "Not connected",
|
|
2188
|
+
"recommended": "Recommended",
|
|
2189
|
+
"connectedCount": "none connected | {count} connected | {count} connected"
|
|
2190
|
+
},
|
|
2191
|
+
"groups": {
|
|
2192
|
+
"workspace": "Workspace providers",
|
|
2193
|
+
"personal": "Personal (only you)",
|
|
2194
|
+
"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."
|
|
2195
|
+
},
|
|
2196
|
+
"items": {
|
|
2197
|
+
"openrouter": {
|
|
2198
|
+
"description": "One gateway to 300+ models. Add your key and enable models in one place."
|
|
2199
|
+
},
|
|
2200
|
+
"vendors": {
|
|
2201
|
+
"label": "Vendors and keys",
|
|
2202
|
+
"description": "Workspace LLM subscriptions and provider API keys."
|
|
2203
|
+
},
|
|
2204
|
+
"personalSubs": {
|
|
2205
|
+
"label": "My subscriptions",
|
|
2206
|
+
"description": "Individual-usage plans you unlock with a personal password (Claude, GLM, Codex)."
|
|
2207
|
+
},
|
|
2208
|
+
"localRunners": {
|
|
2209
|
+
"label": "My local runners",
|
|
2210
|
+
"description": "Your own-machine model runners (Ollama, LM Studio, vLLM)."
|
|
2211
|
+
}
|
|
2212
|
+
}
|
|
2213
|
+
},
|
|
2162
2214
|
"accountSkills": {
|
|
2163
2215
|
"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
2216
|
},
|
|
@@ -2870,6 +2922,32 @@
|
|
|
2870
2922
|
"removeFailed": "Could not delete the shared stack"
|
|
2871
2923
|
}
|
|
2872
2924
|
},
|
|
2925
|
+
"composeEnvSetup": {
|
|
2926
|
+
"title": "Guided Docker Compose setup for a service",
|
|
2927
|
+
"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.",
|
|
2928
|
+
"how": {
|
|
2929
|
+
"title": "How it works",
|
|
2930
|
+
"scan": "Scans the service's linked repository for compose files, profiles, env files and seed dumps.",
|
|
2931
|
+
"analyse": "Optionally runs the environment analyst agent to draft setup steps and a health gate from the repository's own scripts.",
|
|
2932
|
+
"preflight": "Runs the recipe's preflight checks on the machine that will provision it.",
|
|
2933
|
+
"save": "Saves the recipe onto the service and registers the workspace's Docker Compose handler.",
|
|
2934
|
+
"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."
|
|
2935
|
+
},
|
|
2936
|
+
"needed": {
|
|
2937
|
+
"title": "You need this when",
|
|
2938
|
+
"running": "The service's tests need the app actually running: API or UI tests, migrations, seeded data.",
|
|
2939
|
+
"compose": "The service is provisioned as Docker Compose and has no recipe saved yet.",
|
|
2940
|
+
"setup": "Standing the stack up takes more than one command: profiles, env files, seed data or a readiness check."
|
|
2941
|
+
},
|
|
2942
|
+
"notNeeded": {
|
|
2943
|
+
"title": "You can skip it when",
|
|
2944
|
+
"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.",
|
|
2945
|
+
"otherBackend": "The service is provisioned some other way (Kubernetes, a cloud preview, or no infrastructure at all). Configure that above instead.",
|
|
2946
|
+
"noRepo": "The service has no linked repository, so there is nothing to scan."
|
|
2947
|
+
},
|
|
2948
|
+
"start": "Start guided setup",
|
|
2949
|
+
"rerunHint": "Re-run it any time to change a saved recipe."
|
|
2950
|
+
},
|
|
2873
2951
|
"localMode": {
|
|
2874
2952
|
"title": "Local mode",
|
|
2875
2953
|
"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.",
|
|
@@ -5420,8 +5498,8 @@
|
|
|
5420
5498
|
},
|
|
5421
5499
|
"environmentWizard": {
|
|
5422
5500
|
"progress": "Step {index} of {total}",
|
|
5423
|
-
"title": "
|
|
5424
|
-
"subtitle": "
|
|
5501
|
+
"title": "Docker Compose environment setup",
|
|
5502
|
+
"subtitle": "Build the Docker Compose recipe one service's test environments are stood up from: scan the repository, review, preflight, save.",
|
|
5425
5503
|
"recommended": "recommended",
|
|
5426
5504
|
"steps": {
|
|
5427
5505
|
"pick": "Pick service",
|
|
@@ -5431,6 +5509,7 @@
|
|
|
5431
5509
|
},
|
|
5432
5510
|
"pick": {
|
|
5433
5511
|
"intro": "Choose the service to set up a Docker Compose environment for.",
|
|
5512
|
+
"scope": "Only the service you pick is changed. Run this again later to edit its recipe.",
|
|
5434
5513
|
"empty": "No services yet. Add a service first."
|
|
5435
5514
|
},
|
|
5436
5515
|
"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": {
|
|
@@ -1934,7 +1962,8 @@
|
|
|
1934
1962
|
},
|
|
1935
1963
|
"integrationBack": {
|
|
1936
1964
|
"backToMySetup": "Volver a Mi configuración",
|
|
1937
|
-
"backToIntegrations": "Volver a Integraciones"
|
|
1965
|
+
"backToIntegrations": "Volver a Integraciones",
|
|
1966
|
+
"backToModelProviders": "Volver a Proveedores de modelos"
|
|
1938
1967
|
},
|
|
1939
1968
|
"commandBar": {
|
|
1940
1969
|
"searchPlaceholder": "Busca o ejecuta un comando…",
|
|
@@ -1995,23 +2024,21 @@
|
|
|
1995
2024
|
},
|
|
1996
2025
|
"integrationsHub": {
|
|
1997
2026
|
"title": "Integraciones",
|
|
1998
|
-
"intro": "Conecta y gestiona los sistemas externos que este espacio de trabajo puede vincular.",
|
|
2027
|
+
"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
2028
|
"searchPlaceholder": "Buscar integraciones…",
|
|
2000
2029
|
"noMatches": "Ninguna integración coincide con \"{query}\".",
|
|
2001
2030
|
"getStarted": {
|
|
2002
2031
|
"title": "Primeros pasos",
|
|
2003
|
-
"body": "Conecta una fuente de código
|
|
2032
|
+
"body": "Conecta una fuente de código para que tus canalizaciones tengan algo sobre lo que trabajar."
|
|
2004
2033
|
},
|
|
2005
2034
|
"status": {
|
|
2006
2035
|
"connected": "Conectado",
|
|
2007
|
-
"keyConnected": "Clave conectada",
|
|
2008
2036
|
"notConnected": "Sin conectar",
|
|
2009
2037
|
"needsAttention": "Requiere atención",
|
|
2010
2038
|
"disabled": "Desactivado",
|
|
2011
2039
|
"recommended": "Recomendado"
|
|
2012
2040
|
},
|
|
2013
2041
|
"groups": {
|
|
2014
|
-
"models": "Modelos y proveedores",
|
|
2015
2042
|
"sourceControl": "Control de código fuente",
|
|
2016
2043
|
"communication": "Comunicación",
|
|
2017
2044
|
"documents": "Documentos",
|
|
@@ -2021,16 +2048,6 @@
|
|
|
2021
2048
|
"personal": "Personal (solo tú)"
|
|
2022
2049
|
},
|
|
2023
2050
|
"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
2051
|
"github": {
|
|
2035
2052
|
"description": "Conecta la GitHub App del espacio de trabajo y explora repositorios, PR e incidencias."
|
|
2036
2053
|
},
|
|
@@ -2070,10 +2087,6 @@
|
|
|
2070
2087
|
"label": "Mi token de GitHub",
|
|
2071
2088
|
"description": "Un token de acceso personal usado para las ejecuciones que inicias (pushes, PR, CI, fusión)."
|
|
2072
2089
|
},
|
|
2073
|
-
"localRunners": {
|
|
2074
|
-
"label": "Mis ejecutores locales",
|
|
2075
|
-
"description": "Tus ejecutores de modelos en tu propia máquina (Ollama, LM Studio, vLLM…)."
|
|
2076
|
-
},
|
|
2077
2090
|
"documentTemplates": {
|
|
2078
2091
|
"label": "Plantillas y ejemplos"
|
|
2079
2092
|
},
|
|
@@ -2083,6 +2096,45 @@
|
|
|
2083
2096
|
}
|
|
2084
2097
|
}
|
|
2085
2098
|
},
|
|
2099
|
+
"modelProvidersHub": {
|
|
2100
|
+
"title": "Proveedores de modelos",
|
|
2101
|
+
"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.",
|
|
2102
|
+
"searchPlaceholder": "Buscar proveedores…",
|
|
2103
|
+
"noMatches": "Ningún proveedor coincide con \"{query}\".",
|
|
2104
|
+
"getStarted": {
|
|
2105
|
+
"title": "Todavía no hay ningún proveedor conectado",
|
|
2106
|
+
"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."
|
|
2107
|
+
},
|
|
2108
|
+
"status": {
|
|
2109
|
+
"connected": "Conectado",
|
|
2110
|
+
"keyConnected": "Clave conectada",
|
|
2111
|
+
"notConnected": "Sin conectar",
|
|
2112
|
+
"recommended": "Recomendado",
|
|
2113
|
+
"connectedCount": "ninguno conectado | {count} conectado | {count} conectados"
|
|
2114
|
+
},
|
|
2115
|
+
"groups": {
|
|
2116
|
+
"workspace": "Proveedores del espacio de trabajo",
|
|
2117
|
+
"personal": "Personal (solo tú)",
|
|
2118
|
+
"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."
|
|
2119
|
+
},
|
|
2120
|
+
"items": {
|
|
2121
|
+
"openrouter": {
|
|
2122
|
+
"description": "Una sola puerta de enlace a más de 300 modelos. Añade tu clave y activa modelos en un único lugar."
|
|
2123
|
+
},
|
|
2124
|
+
"vendors": {
|
|
2125
|
+
"label": "Proveedores y claves",
|
|
2126
|
+
"description": "Suscripciones de LLM del espacio de trabajo y claves API de proveedores."
|
|
2127
|
+
},
|
|
2128
|
+
"personalSubs": {
|
|
2129
|
+
"label": "Mis suscripciones",
|
|
2130
|
+
"description": "Planes de uso individual que desbloqueas con una contraseña personal (Claude, GLM, Codex)."
|
|
2131
|
+
},
|
|
2132
|
+
"localRunners": {
|
|
2133
|
+
"label": "Mis ejecutores locales",
|
|
2134
|
+
"description": "Tus ejecutores de modelos en tu propia máquina (Ollama, LM Studio, vLLM)."
|
|
2135
|
+
}
|
|
2136
|
+
}
|
|
2137
|
+
},
|
|
2086
2138
|
"shortcuts": {
|
|
2087
2139
|
"title": "Atajos de teclado",
|
|
2088
2140
|
"commandBar": "Abrir la barra de comandos",
|
|
@@ -2651,6 +2703,32 @@
|
|
|
2651
2703
|
"removeFailed": "No se pudo eliminar el stack compartido"
|
|
2652
2704
|
}
|
|
2653
2705
|
},
|
|
2706
|
+
"composeEnvSetup": {
|
|
2707
|
+
"title": "Configuración guiada de Docker Compose para un servicio",
|
|
2708
|
+
"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.",
|
|
2709
|
+
"how": {
|
|
2710
|
+
"title": "Cómo funciona",
|
|
2711
|
+
"scan": "Analiza el repositorio vinculado del servicio en busca de archivos compose, perfiles, archivos de entorno y volcados de datos iniciales.",
|
|
2712
|
+
"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.",
|
|
2713
|
+
"preflight": "Ejecuta las comprobaciones previas de la receta en la máquina que la aprovisionará.",
|
|
2714
|
+
"save": "Guarda la receta en el servicio y registra el gestor de Docker Compose del espacio de trabajo.",
|
|
2715
|
+
"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."
|
|
2716
|
+
},
|
|
2717
|
+
"needed": {
|
|
2718
|
+
"title": "Lo necesitas cuando",
|
|
2719
|
+
"running": "Las pruebas del servicio necesitan la aplicación realmente en marcha: pruebas de API o de interfaz, migraciones, datos iniciales.",
|
|
2720
|
+
"compose": "El servicio se aprovisiona con Docker Compose y todavía no tiene ninguna receta guardada.",
|
|
2721
|
+
"setup": "Levantar la pila requiere más de un comando: perfiles, archivos de entorno, datos iniciales o una comprobación de disponibilidad."
|
|
2722
|
+
},
|
|
2723
|
+
"notNeeded": {
|
|
2724
|
+
"title": "Puedes omitirlo cuando",
|
|
2725
|
+
"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.",
|
|
2726
|
+
"otherBackend": "El servicio se aprovisiona de otra forma (Kubernetes, una vista previa en la nube o sin infraestructura). Configúralo arriba en su lugar.",
|
|
2727
|
+
"noRepo": "El servicio no tiene repositorio vinculado, así que no hay nada que analizar."
|
|
2728
|
+
},
|
|
2729
|
+
"start": "Iniciar configuración guiada",
|
|
2730
|
+
"rerunHint": "Vuelve a ejecutarlo cuando quieras para cambiar una receta guardada."
|
|
2731
|
+
},
|
|
2654
2732
|
"localMode": {
|
|
2655
2733
|
"title": "Modo local",
|
|
2656
2734
|
"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.",
|
|
@@ -5255,8 +5333,8 @@
|
|
|
5255
5333
|
},
|
|
5256
5334
|
"environmentWizard": {
|
|
5257
5335
|
"progress": "Paso {index} de {total}",
|
|
5258
|
-
"title": "
|
|
5259
|
-
"subtitle": "
|
|
5336
|
+
"title": "Configuración de entorno de Docker Compose",
|
|
5337
|
+
"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
5338
|
"recommended": "recomendado",
|
|
5261
5339
|
"steps": {
|
|
5262
5340
|
"pick": "Elegir servicio",
|
|
@@ -5266,6 +5344,7 @@
|
|
|
5266
5344
|
},
|
|
5267
5345
|
"pick": {
|
|
5268
5346
|
"intro": "Elige el servicio para el que configurar un entorno de Docker Compose.",
|
|
5347
|
+
"scope": "Solo cambia el servicio que elijas. Vuelve a ejecutar esto más adelante para editar su receta.",
|
|
5269
5348
|
"empty": "Aún no hay servicios. Añade uno primero."
|
|
5270
5349
|
},
|
|
5271
5350
|
"review": {
|