@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.
Files changed (36) hide show
  1. package/README.md +28 -1
  2. package/app/components/documents/DocumentImportModal.vue +3 -17
  3. package/app/components/documents/DocumentTemplatesModal.vue +1 -1
  4. package/app/components/documents/SpawnPreviewModal.vue +9 -19
  5. package/app/components/environments/steps/EnvPickStep.vue +3 -0
  6. package/app/components/layout/CommandBar.vue +1 -1
  7. package/app/components/layout/IntegrationBackTitle.vue +11 -8
  8. package/app/components/layout/IntegrationsHub.vue +22 -56
  9. package/app/components/layout/ModelProvidersHub.vue +250 -0
  10. package/app/components/panels/InspectorPanel.vue +2 -19
  11. package/app/components/panels/inspector/ServiceValidationConfig.vue +99 -1
  12. package/app/components/settings/ComposeEnvironmentSetupSection.vue +102 -0
  13. package/app/components/settings/InfrastructureWindow.vue +11 -1
  14. package/app/composables/api/validationChecks.ts +8 -0
  15. package/app/composables/useIntegrationBack.ts +5 -2
  16. package/app/composables/useNavContributions.ts +1 -1
  17. package/app/modular/nav-contributions.spec.ts +11 -3
  18. package/app/modular/nav-contributions.ts +35 -16
  19. package/app/pages/index.vue +4 -0
  20. package/app/stores/documents.ts +9 -6
  21. package/app/stores/ui/modals.ts +43 -27
  22. package/app/stores/validationChecks.ts +17 -2
  23. package/app/types/validationChecks.ts +3 -0
  24. package/app/utils/validationDetection.spec.ts +51 -0
  25. package/app/utils/validationDetection.ts +67 -0
  26. package/i18n/locales/de.json +103 -27
  27. package/i18n/locales/en.json +103 -27
  28. package/i18n/locales/es.json +103 -27
  29. package/i18n/locales/fr.json +103 -27
  30. package/i18n/locales/he.json +103 -27
  31. package/i18n/locales/it.json +103 -27
  32. package/i18n/locales/ja.json +103 -27
  33. package/i18n/locales/pl.json +103 -27
  34. package/i18n/locales/tr.json +103 -27
  35. package/i18n/locales/uk.json +103 -27
  36. package/package.json +2 -2
@@ -111,6 +111,8 @@
111
111
  "repositories": "Repozytoria",
112
112
  "addFromRepo": "Dodaj z istniejącego repozytorium",
113
113
  "bootstrapRepo": "Zainicjuj repozytorium",
114
+ "models": "Modele",
115
+ "modelProviders": "Dostawcy modeli",
114
116
  "integrations": "Integracje",
115
117
  "sandbox": "Piaskownica",
116
118
  "kaizen": "Kaizen",
@@ -122,8 +124,7 @@
122
124
  "accountSettings": "Ustawienia konta",
123
125
  "operatorDashboard": "Obserwowalność platformy",
124
126
  "reports": "Raporty",
125
- "infrastructure": "Infrastruktura",
126
- "environmentSetup": "Konfiguracja środowiska"
127
+ "infrastructure": "Infrastruktura"
127
128
  },
128
129
  "board": {
129
130
  "toast": {
@@ -1103,7 +1104,34 @@
1103
1104
  "save": "Zapisz sprawdzenia",
1104
1105
  "savedToast": "Sprawdzenia zapisane",
1105
1106
  "saveFailed": "Nie udało się zapisać sprawdzeń",
1106
- "clearFailed": "Nie udało się wyczyścić sprawdzeń"
1107
+ "clearFailed": "Nie udało się wyczyścić sprawdzeń",
1108
+ "detect": {
1109
+ "action": "Wykryj",
1110
+ "hint": "Zaproponuj testy na podstawie repozytorium tej usługi",
1111
+ "added": "Dodano {count} test | Dodano {count} testy | Dodano {count} testów",
1112
+ "found": "Rozpoznano: {ecosystems}.",
1113
+ "capped": "Część propozycji pominięto — usługa przyjmuje najwyżej {max} testów.",
1114
+ "nothingNew": "Nie ma czego dodać",
1115
+ "alreadyPresent": "Wszystkie wykryte polecenia są już na liście.",
1116
+ "unrecognised": "W katalogu głównym repozytorium nie rozpoznano znanego ekosystemu. Dodaj polecenia ręcznie.",
1117
+ "repo_unavailable": "Do tej usługi nie podpięto repozytorium, więc nie ma czego sprawdzać.",
1118
+ "failed": "Nie udało się odczytać repozytorium"
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": "Ostatnie włączone wymagania",
1320
1348
  "priorDocHint": "Z poprzedniej recenzji. Użyj go jako bazy: edytuj opis powyżej i prześlij ponownie.",
1321
1349
  "bootstrapping": "Inicjowanie…",
1322
- "spawnFromDocument": "Utwórz z dokumentu",
1323
1350
  "viewRequirements": "Wyświetl wymagania",
1324
1351
  "reRun": "Uruchom ponownie",
1325
1352
  "run": "Uruchom",
@@ -1934,7 +1961,8 @@
1934
1961
  },
1935
1962
  "integrationBack": {
1936
1963
  "backToMySetup": "Powrót do Moja konfiguracja",
1937
- "backToIntegrations": "Powrót do Integracje"
1964
+ "backToIntegrations": "Powrót do Integracje",
1965
+ "backToModelProviders": "Powrót do Dostawcy modeli"
1938
1966
  },
1939
1967
  "commandBar": {
1940
1968
  "searchPlaceholder": "Wyszukaj lub uruchom polecenie…",
@@ -1995,23 +2023,21 @@
1995
2023
  },
1996
2024
  "integrationsHub": {
1997
2025
  "title": "Integracje",
1998
- "intro": "Połącz i zarządzaj zewnętrznymi systemami, które ten obszar roboczy może powiązać.",
2026
+ "intro": "Połącz opcjonalne systemy zewnętrzne, które ten obszar roboczy może powiązać, i zarządzaj nimi. Modele, na których działają Twoi agenci, znajdziesz w sekcji Dostawcy modeli.",
1999
2027
  "searchPlaceholder": "Szukaj integracji…",
2000
2028
  "noMatches": "Żadna integracja nie pasuje do \"{query}\".",
2001
2029
  "getStarted": {
2002
2030
  "title": "Wprowadzenie",
2003
- "body": "Połącz źródło kodu i dostawcę modeli, aby uruchomić swój pierwszy potok."
2031
+ "body": "Połącz źródło kodu, aby Twoje potoki miały nad czym pracować."
2004
2032
  },
2005
2033
  "status": {
2006
2034
  "connected": "Połączono",
2007
- "keyConnected": "Klucz połączony",
2008
2035
  "notConnected": "Niepołączono",
2009
2036
  "needsAttention": "Wymaga uwagi",
2010
2037
  "disabled": "Wyłączono",
2011
2038
  "recommended": "Zalecane"
2012
2039
  },
2013
2040
  "groups": {
2014
- "models": "Modele i dostawcy",
2015
2041
  "sourceControl": "Kontrola wersji",
2016
2042
  "communication": "Komunikacja",
2017
2043
  "documents": "Dokumenty",
@@ -2021,16 +2047,6 @@
2021
2047
  "personal": "Osobiste (tylko Ty)"
2022
2048
  },
2023
2049
  "items": {
2024
- "openrouter": {
2025
- "description": "Jedna brama do ponad 300 modeli. Dodaj swój klucz i włącz modele w jednym miejscu."
2026
- },
2027
- "vendors": {
2028
- "label": "Dostawcy i klucze",
2029
- "description": "Subskrypcje LLM obszaru roboczego i klucze API dostawców."
2030
- },
2031
- "personalSubs": {
2032
- "label": "Subskrypcje osobiste (Claude, ChatGPT/Codex, GLM)"
2033
- },
2034
2050
  "github": {
2035
2051
  "description": "Połącz aplikację GitHub App obszaru roboczego, przeglądaj repozytoria, PR-y i zgłoszenia."
2036
2052
  },
@@ -2070,10 +2086,6 @@
2070
2086
  "label": "Mój token GitHub",
2071
2087
  "description": "Osobisty token dostępu używany do uruchomień, które rozpoczynasz (pushe, PR-y, CI, scalanie)."
2072
2088
  },
2073
- "localRunners": {
2074
- "label": "Moje lokalne silniki",
2075
- "description": "Twoje silniki modeli na własnej maszynie (Ollama, LM Studio, vLLM…)."
2076
- },
2077
2089
  "documentTemplates": {
2078
2090
  "label": "Szablony i przykłady"
2079
2091
  },
@@ -2083,6 +2095,45 @@
2083
2095
  }
2084
2096
  }
2085
2097
  },
2098
+ "modelProvidersHub": {
2099
+ "title": "Dostawcy modeli",
2100
+ "intro": "Silniki, na których działają Twoi agenci. Zanim jakikolwiek krok potoku będzie mógł się wykonać, musi być połączony co najmniej jeden dostawca.",
2101
+ "searchPlaceholder": "Szukaj dostawców…",
2102
+ "noMatches": "Żaden dostawca nie pasuje do \"{query}\".",
2103
+ "getStarted": {
2104
+ "title": "Nie połączono jeszcze żadnego dostawcy",
2105
+ "body": "Kroki agenta nie mogą się wykonać, dopóki model nie będzie osiągalny. Klucz OpenRouter to najszybszy sposób na odblokowanie szerokiego katalogu, ale klucze dostawców, plan osobisty lub własny lokalny silnik sprawdzą się tak samo dobrze."
2106
+ },
2107
+ "status": {
2108
+ "connected": "Połączono",
2109
+ "keyConnected": "Klucz połączony",
2110
+ "notConnected": "Niepołączono",
2111
+ "recommended": "Zalecane",
2112
+ "connectedCount": "{count} połączony | {count} połączone | {count} połączonych"
2113
+ },
2114
+ "groups": {
2115
+ "workspace": "Dostawcy obszaru roboczego",
2116
+ "personal": "Osobiste (tylko Ty)",
2117
+ "personalNote": "Należą do Twojego konta, a nie do obszaru roboczego, i są używane tylko w uruchomieniach, które sam rozpoczynasz. Są też wymienione w sekcji Moja konfiguracja."
2118
+ },
2119
+ "items": {
2120
+ "openrouter": {
2121
+ "description": "Jedna brama do ponad 300 modeli. Dodaj swój klucz i włącz modele w jednym miejscu."
2122
+ },
2123
+ "vendors": {
2124
+ "label": "Dostawcy i klucze",
2125
+ "description": "Subskrypcje LLM obszaru roboczego i klucze API dostawców."
2126
+ },
2127
+ "personalSubs": {
2128
+ "label": "Moje subskrypcje",
2129
+ "description": "Plany do użytku indywidualnego, które odblokowujesz osobistym hasłem (Claude, GLM, Codex)."
2130
+ },
2131
+ "localRunners": {
2132
+ "label": "Moje lokalne silniki",
2133
+ "description": "Silniki modeli na Twojej własnej maszynie (Ollama, LM Studio, vLLM)."
2134
+ }
2135
+ }
2136
+ },
2086
2137
  "shortcuts": {
2087
2138
  "title": "Skróty klawiszowe",
2088
2139
  "commandBar": "Otwórz pasek poleceń",
@@ -2651,6 +2702,32 @@
2651
2702
  "removeFailed": "Nie udało się usunąć współdzielonego stosu"
2652
2703
  }
2653
2704
  },
2705
+ "composeEnvSetup": {
2706
+ "title": "Kreator konfiguracji Docker Compose dla usługi",
2707
+ "lead": "Prowadzi jedną usługę przez tworzenie receptury Docker Compose, z której stawiane są jej środowiska testowe, zamiast ręcznego wpisywania ścieżki compose i kroków przygotowania.",
2708
+ "how": {
2709
+ "title": "Jak to działa",
2710
+ "scan": "Skanuje powiązane repozytorium usługi w poszukiwaniu plików compose, profili, plików env i zrzutów danych początkowych.",
2711
+ "analyse": "Opcjonalnie uruchamia agenta analizującego środowisko, aby na podstawie skryptów repozytorium naszkicować kroki przygotowania i bramkę kondycji.",
2712
+ "preflight": "Uruchamia kontrole wstępne receptury na maszynie, która będzie ją stawiać.",
2713
+ "save": "Zapisuje recepturę na usłudze i rejestruje obsługę Docker Compose w obszarze roboczym.",
2714
+ "outcome": "Od tej pory Deployer stawia dokładnie ten stos, ilekroć potok potrzebuje żywego środowiska, a Tester działa przeciwko niemu. Nic nie zostaje zastosowane, dopóki nie zapiszesz."
2715
+ },
2716
+ "needed": {
2717
+ "title": "Potrzebujesz tego, gdy",
2718
+ "running": "Testy usługi wymagają faktycznie działającej aplikacji: testy API lub interfejsu, migracje, dane początkowe.",
2719
+ "compose": "Usługa jest stawiana przez Docker Compose i nie ma jeszcze zapisanej receptury.",
2720
+ "setup": "Postawienie stosu wymaga więcej niż jednego polecenia: profili, plików env, danych początkowych lub kontroli gotowości."
2721
+ },
2722
+ "notNeeded": {
2723
+ "title": "Możesz to pominąć, gdy",
2724
+ "inContainer": "Potok tylko sprawdza lintem, buduje lub uruchamia testy jednostkowe. Dzieje się to w kontenerze agenta jako kontrole przed PR, bez stawiania żadnego środowiska.",
2725
+ "otherBackend": "Usługa jest stawiana w inny sposób (Kubernetes, podgląd w chmurze albo bez infrastruktury). Skonfiguruj to powyżej.",
2726
+ "noRepo": "Usługa nie ma powiązanego repozytorium, więc nie ma czego skanować."
2727
+ },
2728
+ "start": "Rozpocznij konfigurację",
2729
+ "rerunHint": "Uruchom ponownie w dowolnym momencie, aby zmienić zapisaną recepturę."
2730
+ },
2654
2731
  "localMode": {
2655
2732
  "title": "Tryb lokalny",
2656
2733
  "intro": "Strojenie lokalnego uruchamiacza kontenerów, przechowywane we wdrożeniu tej maszyny (zastąpiło zmienne środowiskowe {poolVars} / {harnessVars}). Zapisanie zmienia rozmiar ciepłej puli na żywo, bez potrzeby restartu; trwające uruchomienia zachowują kontener, który już mają.",
@@ -3520,7 +3597,6 @@
3520
3597
  "title": "Importuj ze źródła dokumentów",
3521
3598
  "connectFirst": "Najpierw połącz źródło dokumentów.",
3522
3599
  "connectSource": "Połącz {source}",
3523
- "spawningInto": "Tworzenie w {frame}",
3524
3600
  "sourceLabel": "Źródło",
3525
3601
  "refLabel": "Adres URL lub identyfikator strony",
3526
3602
  "importButton": "Importuj",
@@ -3545,7 +3621,6 @@
3545
3621
  "title": "Podgląd struktury",
3546
3622
  "plannerLlm": "Wygenerowane przez SI",
3547
3623
  "plannerHeadings": "Na podstawie nagłówków",
3548
- "intoFrame": "do {frame}",
3549
3624
  "asTopLevel": "jako nowe ramki najwyższego poziomu",
3550
3625
  "buildingPlan": "Tworzenie planu…",
3551
3626
  "spawnOntoBoard": "Utwórz na tablicy",
@@ -5255,8 +5330,8 @@
5255
5330
  },
5256
5331
  "environmentWizard": {
5257
5332
  "progress": "Krok {index} z {total}",
5258
- "title": "Skonfiguruj środowisko testowe",
5259
- "subtitle": "Wykryj, przejrzyj i zapisz przepis Docker Compose, aby Deployer go udostępnił.",
5333
+ "title": "Konfiguracja środowiska Docker Compose",
5334
+ "subtitle": "Zbuduj recepturę Docker Compose, z której stawiane środowiska testowe usługi: skanowanie repozytorium, przegląd, kontrole wstępne, zapis.",
5260
5335
  "recommended": "zalecane",
5261
5336
  "steps": {
5262
5337
  "pick": "Wybierz usługę",
@@ -5266,6 +5341,7 @@
5266
5341
  },
5267
5342
  "pick": {
5268
5343
  "intro": "Wybierz usługę, dla której skonfigurować środowisko Docker Compose.",
5344
+ "scope": "Zmienia się tylko wybrana usługa. Uruchom to ponownie później, aby edytować jej recepturę.",
5269
5345
  "empty": "Brak usług. Najpierw dodaj usługę."
5270
5346
  },
5271
5347
  "review": {
@@ -111,6 +111,8 @@
111
111
  "repositories": "Depolar",
112
112
  "addFromRepo": "Mevcut depodan ekle",
113
113
  "bootstrapRepo": "Depo başlat",
114
+ "models": "Modeller",
115
+ "modelProviders": "Model sağlayıcıları",
114
116
  "integrations": "Entegrasyonlar",
115
117
  "infrastructure": "Altyapı",
116
118
  "sandbox": "Deneme alanı",
@@ -122,8 +124,7 @@
122
124
  "modelConfiguration": "Model yapılandırması",
123
125
  "accountSettings": "Hesap ayarları",
124
126
  "operatorDashboard": "Platform gözlemlenebilirliği",
125
- "reports": "Raporlar",
126
- "environmentSetup": "Ortam kurulumu"
127
+ "reports": "Raporlar"
127
128
  },
128
129
  "board": {
129
130
  "toast": {
@@ -1103,7 +1104,34 @@
1103
1104
  "save": "Denetimleri kaydet",
1104
1105
  "savedToast": "Denetimler kaydedildi",
1105
1106
  "saveFailed": "Denetimler kaydedilemedi",
1106
- "clearFailed": "Denetimler temizlenemedi"
1107
+ "clearFailed": "Denetimler temizlenemedi",
1108
+ "detect": {
1109
+ "action": "Algıla",
1110
+ "hint": "Bu hizmetin deposundan denetimler öner",
1111
+ "added": "{count} denetim eklendi | {count} denetim eklendi",
1112
+ "found": "{ecosystems} algılandı.",
1113
+ "capped": "Bazı öneriler dışarıda bırakıldı — bir hizmet en fazla {max} denetim alır.",
1114
+ "nothingNew": "Eklenecek bir şey yok",
1115
+ "alreadyPresent": "Algılanan tüm komutlar zaten listede.",
1116
+ "unrecognised": "Depo kökünde bilinen bir ekosistem algılanmadı. Komutları elle ekleyin.",
1117
+ "repo_unavailable": "Bu hizmete bağlı bir depo yok, bu yüzden incelenecek bir şey yok.",
1118
+ "failed": "Depo okunamadı"
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": "Son dahil edilen gereksinimler",
1320
1348
  "priorDocHint": "Önceki incelemeden. Bir temel olarak kullanın: yukarıdaki açıklamayı düzenleyip yeniden gönderin.",
1321
1349
  "bootstrapping": "Önyükleniyor…",
1322
- "spawnFromDocument": "Belgeden oluştur",
1323
1350
  "viewRequirements": "Gereksinimleri Görüntüle",
1324
1351
  "reRun": "Yeniden çalıştır",
1325
1352
  "run": "Çalıştır",
@@ -1934,7 +1961,8 @@
1934
1961
  },
1935
1962
  "integrationBack": {
1936
1963
  "backToMySetup": "Kurulumuma geri dön",
1937
- "backToIntegrations": "Entegrasyonlara geri dön"
1964
+ "backToIntegrations": "Entegrasyonlara geri dön",
1965
+ "backToModelProviders": "Model sağlayıcılarına geri dön"
1938
1966
  },
1939
1967
  "commandBar": {
1940
1968
  "searchPlaceholder": "Ara veya bir komut çalıştır…",
@@ -1995,23 +2023,21 @@
1995
2023
  },
1996
2024
  "integrationsHub": {
1997
2025
  "title": "Entegrasyonlar",
1998
- "intro": "Bu çalışma alanının bağlayabileceği harici sistemleri bağlayın ve yönetin.",
2026
+ "intro": "Bu çalışma alanının bağlayabileceği isteğe bağlı harici sistemleri bağlayın ve yönetin. Ajanlarınızı çalıştıran modeller Model sağlayıcıları altındadır.",
1999
2027
  "searchPlaceholder": "Entegrasyonlarda ara…",
2000
2028
  "noMatches": "\"{query}\" ile eşleşen entegrasyon yok.",
2001
2029
  "getStarted": {
2002
2030
  "title": "Başlayın",
2003
- "body": "İlk boru hattınızı çalıştırmak için bir kod kaynağı ve bir model sağlayıcısı bağlayın."
2031
+ "body": "Boru hatlarınızın üzerinde çalışacağı bir şey olması için bir kod kaynağı bağlayın."
2004
2032
  },
2005
2033
  "status": {
2006
2034
  "connected": "Bağlandı",
2007
- "keyConnected": "Anahtar bağlandı",
2008
2035
  "notConnected": "Bağlı değil",
2009
2036
  "needsAttention": "Dikkat gerekiyor",
2010
2037
  "disabled": "Devre dışı",
2011
2038
  "recommended": "Önerilen"
2012
2039
  },
2013
2040
  "groups": {
2014
- "models": "Modeller ve sağlayıcılar",
2015
2041
  "sourceControl": "Kaynak kontrolü",
2016
2042
  "communication": "İletişim",
2017
2043
  "documents": "Belgeler",
@@ -2021,16 +2047,6 @@
2021
2047
  "personal": "Kişisel (yalnızca siz)"
2022
2048
  },
2023
2049
  "items": {
2024
- "openrouter": {
2025
- "description": "300+ modele tek bir ağ geçidi. Anahtarınızı ekleyin ve modelleri tek yerde etkinleştirin."
2026
- },
2027
- "vendors": {
2028
- "label": "Sağlayıcılar ve anahtarlar",
2029
- "description": "Çalışma alanı LLM abonelikleri ve sağlayıcı API anahtarları."
2030
- },
2031
- "personalSubs": {
2032
- "label": "Kişisel abonelikler (Claude, ChatGPT/Codex, GLM)"
2033
- },
2034
2050
  "github": {
2035
2051
  "description": "Çalışma alanının GitHub App'ini bağlayın, depoları, PR'ları ve sorunları gözatın."
2036
2052
  },
@@ -2070,10 +2086,6 @@
2070
2086
  "label": "GitHub token'ım",
2071
2087
  "description": "Başlattığınız çalıştırmalar için kullanılan kişisel erişim token'ı (push'lar, PR'lar, CI, birleştirme)."
2072
2088
  },
2073
- "localRunners": {
2074
- "label": "Yerel runner'larım",
2075
- "description": "Kendi makinenizdeki model runner'ları (Ollama, LM Studio, vLLM…)."
2076
- },
2077
2089
  "documentTemplates": {
2078
2090
  "label": "Şablonlar ve örnekler"
2079
2091
  },
@@ -2083,6 +2095,45 @@
2083
2095
  }
2084
2096
  }
2085
2097
  },
2098
+ "modelProvidersHub": {
2099
+ "title": "Model sağlayıcıları",
2100
+ "intro": "Ajanlarınızı çalıştıran motorlar. Herhangi bir boru hattı adımı çalışabilmeden önce en az bir sağlayıcının bağlı olması gerekir.",
2101
+ "searchPlaceholder": "Sağlayıcı ara…",
2102
+ "noMatches": "\"{query}\" ile eşleşen sağlayıcı yok.",
2103
+ "getStarted": {
2104
+ "title": "Henüz bağlı sağlayıcı yok",
2105
+ "body": "Bir modele erişilemeden ajan adımları çalışamaz. Geniş bir katalogu açmanın en hızlı yolu bir OpenRouter anahtarıdır; ancak sağlayıcı anahtarları, kişisel bir plan veya kendi yerel çalıştırıcınız da aynı işi görür."
2106
+ },
2107
+ "status": {
2108
+ "connected": "Bağlandı",
2109
+ "keyConnected": "Anahtar bağlandı",
2110
+ "notConnected": "Bağlı değil",
2111
+ "recommended": "Önerilen",
2112
+ "connectedCount": "bağlı yok | {count} bağlı | {count} bağlı"
2113
+ },
2114
+ "groups": {
2115
+ "workspace": "Çalışma alanı sağlayıcıları",
2116
+ "personal": "Kişisel (yalnızca siz)",
2117
+ "personalNote": "Bunlar çalışma alanına değil hesabınıza aittir ve yalnızca sizin başlattığınız çalışmalarda kullanılır. Kurulumum bölümünde de listelenir."
2118
+ },
2119
+ "items": {
2120
+ "openrouter": {
2121
+ "description": "300+ modele tek bir ağ geçidi. Anahtarınızı ekleyin ve modelleri tek yerde etkinleştirin."
2122
+ },
2123
+ "vendors": {
2124
+ "label": "Sağlayıcılar ve anahtarlar",
2125
+ "description": "Çalışma alanı LLM abonelikleri ve sağlayıcı API anahtarları."
2126
+ },
2127
+ "personalSubs": {
2128
+ "label": "Aboneliklerim",
2129
+ "description": "Kişisel bir parolayla açtığınız bireysel kullanım planları (Claude, GLM, Codex)."
2130
+ },
2131
+ "localRunners": {
2132
+ "label": "Yerel çalıştırıcılarım",
2133
+ "description": "Kendi makinenizdeki model çalıştırıcılarınız (Ollama, LM Studio, vLLM)."
2134
+ }
2135
+ }
2136
+ },
2086
2137
  "shortcuts": {
2087
2138
  "title": "Klavye kısayolları",
2088
2139
  "commandBar": "Komut çubuğunu aç",
@@ -2792,6 +2843,32 @@
2792
2843
  "removeFailed": "Paylaşılan yığın silinemedi"
2793
2844
  }
2794
2845
  },
2846
+ "composeEnvSetup": {
2847
+ "title": "Bir servis için rehberli Docker Compose kurulumu",
2848
+ "lead": "Compose yolunu ve kurulum adımlarını elle yazmak yerine, bir servisin test ortamlarının ayağa kaldırıldığı Docker Compose tarifini adım adım oluşturur.",
2849
+ "how": {
2850
+ "title": "Nasıl çalışır",
2851
+ "scan": "Servisin bağlı deposunu compose dosyaları, profiller, env dosyaları ve tohum verisi dökümleri için tarar.",
2852
+ "analyse": "İsteğe bağlı olarak ortam analisti ajanını çalıştırarak deponun kendi betiklerinden kurulum adımları ve bir sağlık kontrolü taslağı çıkarır.",
2853
+ "preflight": "Tarifin ön kontrollerini, onu ayağa kaldıracak makinede çalıştırır.",
2854
+ "save": "Tarifi servise kaydeder ve çalışma alanının Docker Compose işleyicisini kaydeder.",
2855
+ "outcome": "Bundan sonra bir boru hattı canlı bir ortama ihtiyaç duyduğunda Deployer tam olarak o yığını ayağa kaldırır ve Tester ona karşı çalışır. Siz kaydedene kadar hiçbir şey uygulanmaz."
2856
+ },
2857
+ "needed": {
2858
+ "title": "Şu durumlarda gerekir",
2859
+ "running": "Servisin testleri uygulamanın gerçekten çalışmasını gerektiriyorsa: API veya arayüz testleri, göçler, tohum verisi.",
2860
+ "compose": "Servis Docker Compose ile ayağa kaldırılıyorsa ve henüz kayıtlı bir tarifi yoksa.",
2861
+ "setup": "Yığını ayağa kaldırmak tek komuttan fazlasını gerektiriyorsa: profiller, env dosyaları, tohum verisi veya hazır olma kontrolü."
2862
+ },
2863
+ "notNeeded": {
2864
+ "title": "Şu durumlarda atlayabilirsiniz",
2865
+ "inContainer": "Boru hattı yalnızca lint, derleme veya birim testi çalıştırıyorsa. Bunlar PR öncesi doğrulama kontrolleri olarak ajan konteynerinde çalışır, hiçbir ortam ayağa kaldırılmaz.",
2866
+ "otherBackend": "Servis başka bir şekilde ayağa kaldırılıyorsa (Kubernetes, bulut önizlemesi veya hiç altyapı yok). Bunun yerine yukarıdan yapılandırın.",
2867
+ "noRepo": "Servisin bağlı bir deposu yoksa, taranacak bir şey de yoktur."
2868
+ },
2869
+ "start": "Rehberli kurulumu başlat",
2870
+ "rerunHint": "Kayıtlı bir tarifi değiştirmek için istediğiniz zaman yeniden çalıştırın."
2871
+ },
2795
2872
  "localMode": {
2796
2873
  "title": "Yerel mod",
2797
2874
  "intro": "Yerel konteyner çalıştırıcısı için ayarlar, bu makinenin dağıtımında saklanır ({poolVars} / {harnessVars} ortam değişkenlerinin yerini aldı). Kaydetmek sıcak havuzu anında yeniden boyutlandırır, yeniden başlatma gerekmez; devam eden çalıştırmalar zaten tuttukları konteyneri korur.",
@@ -3532,7 +3609,6 @@
3532
3609
  "title": "Bir belge kaynağından içe aktar",
3533
3610
  "connectFirst": "Önce bir belge kaynağı bağla.",
3534
3611
  "connectSource": "{source} bağla",
3535
- "spawningInto": "{frame} içine oluşturuluyor",
3536
3612
  "sourceLabel": "Kaynak",
3537
3613
  "refLabel": "Sayfa URL'si veya ID'si",
3538
3614
  "importButton": "İçe aktar",
@@ -3557,7 +3633,6 @@
3557
3633
  "title": "Yapıyı önizle",
3558
3634
  "plannerLlm": "Yapay zeka tarafından oluşturuldu",
3559
3635
  "plannerHeadings": "Başlıklardan",
3560
- "intoFrame": "{frame} içine",
3561
3636
  "asTopLevel": "yeni üst düzey çerçeveler olarak",
3562
3637
  "buildingPlan": "Plan oluşturuluyor…",
3563
3638
  "spawnOntoBoard": "Panoya oluştur",
@@ -5267,8 +5342,8 @@
5267
5342
  },
5268
5343
  "environmentWizard": {
5269
5344
  "progress": "Adım {index} / {total}",
5270
- "title": "Bir test ortamı kur",
5271
- "subtitle": "Deployer sağlasın diye bir Docker Compose tarifini algıla, gözden geçir ve kaydet.",
5345
+ "title": "Docker Compose ortam kurulumu",
5346
+ "subtitle": "Bir servisin test ortamlarının ayağa kaldırıldığı Docker Compose tarifini oluşturun: depoyu tarayın, gözden geçirin, ön kontrol yapın, kaydedin.",
5272
5347
  "recommended": "önerilen",
5273
5348
  "steps": {
5274
5349
  "pick": "Servis seç",
@@ -5278,6 +5353,7 @@
5278
5353
  },
5279
5354
  "pick": {
5280
5355
  "intro": "Docker Compose ortamı kuracağın servisi seç.",
5356
+ "scope": "Yalnızca seçtiğiniz servis değişir. Tarifini düzenlemek için bunu daha sonra yeniden çalıştırın.",
5281
5357
  "empty": "Henüz servis yok. Önce bir servis ekle."
5282
5358
  },
5283
5359
  "review": {