@cat-factory/app 0.288.2 → 0.290.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.
Files changed (34) hide show
  1. package/app/components/environments/EnvironmentStatusPanel.logic.spec.ts +70 -0
  2. package/app/components/environments/EnvironmentStatusPanel.logic.ts +48 -0
  3. package/app/components/environments/EnvironmentStatusPanel.vue +21 -4
  4. package/app/components/foundational/FoundationalServiceCatalogList.vue +3 -0
  5. package/app/components/foundational/FoundationalServiceManager.vue +9 -1
  6. package/app/components/foundational/FoundationalServiceRegistry.vue +3 -0
  7. package/app/components/foundational/ServiceCatalogConnection.vue +392 -0
  8. package/app/components/outcome/OutcomeSummaryWindow.logic.spec.ts +1 -0
  9. package/app/components/outcome/OutcomeSummaryWindow.vue +10 -1
  10. package/app/components/panels/ObservabilityPanel.vue +19 -0
  11. package/app/components/providers/ApiKeysSection.vue +24 -14
  12. package/app/components/provisioning/ProvisioningLogsDrawer.vue +1 -0
  13. package/app/components/settings/OpenRouterCatalogPanel.vue +8 -0
  14. package/app/composables/api/foundationalServices.ts +24 -0
  15. package/app/composables/usePipelineErrorToast.ts +5 -0
  16. package/app/stores/foundationalServices.ts +22 -0
  17. package/app/stores/observability.ts +6 -0
  18. package/app/stores/serviceCatalogConnection.spec.ts +116 -0
  19. package/app/stores/serviceCatalogConnection.ts +131 -0
  20. package/app/types/foundationalServices.ts +14 -0
  21. package/app/utils/runOutcome.ts +1 -0
  22. package/app/utils/serviceCatalog.spec.ts +51 -0
  23. package/app/utils/serviceCatalog.ts +68 -0
  24. package/i18n/locales/de.json +90 -3
  25. package/i18n/locales/en.json +90 -3
  26. package/i18n/locales/es.json +90 -3
  27. package/i18n/locales/fr.json +90 -3
  28. package/i18n/locales/he.json +90 -3
  29. package/i18n/locales/it.json +90 -3
  30. package/i18n/locales/ja.json +90 -3
  31. package/i18n/locales/pl.json +90 -3
  32. package/i18n/locales/tr.json +90 -3
  33. package/i18n/locales/uk.json +90 -3
  34. package/package.json +2 -2
@@ -617,7 +617,11 @@
617
617
  "binary_generators_unreachable": "Nie udało się teraz odczytać integracji generatywnych tego wdrożenia, więc uruchomienie nie wystartowało. Nic nie jest źle skonfigurowane i nie trzeba nic zmieniać: spróbuj ponownie, gdy połączenie wróci.",
618
618
  "foundational_builtins_unreachable": "Nie udało się teraz odczytać wbudowanych usług podstawowych tego wdrożenia. Nic nie jest źle skonfigurowane i nie trzeba nic zmieniać: spróbuj ponownie, gdy połączenie wróci.",
619
619
  "connection_credentials_unreadable": "Nie udało się odczytać zapisanych poświadczeń tego połączenia. Jeśli to wdrożenie ma dostęp do usługi przechowującej jego klucz, połącz źródło ponownie, aby je zastąpić; w przeciwnym razie spróbuj ponownie, gdy to połączenie wróci.",
620
- "vcs_capability_unsupported": "Dostawca kontroli źródeł połączony z tą przestrzenią roboczą nie obsługuje tej operacji. Nic nie jest źle skonfigurowane i zmiana ustawień nie pomoże: dla tego dostawcy ta operacja jest niedostępna."
620
+ "vcs_capability_unsupported": "Dostawca kontroli źródeł połączony z tą przestrzenią roboczą nie obsługuje tej operacji. Nic nie jest źle skonfigurowane i zmiana ustawień nie pomoże: dla tego dostawcy ta operacja jest niedostępna.",
621
+ "service_catalog_unreachable": "Portal deweloperski tej tablicy nie odpowiedział albo odpowiedział czymś, czego ta platforma nie umie odczytać. Nic tutaj nie jest źle skonfigurowane i żadna zmiana nie pomoże: spróbuj ponownie, gdy portal będzie dostępny.",
622
+ "service_catalog_unauthorized": "Portal deweloperski odrzucił zapisane dane uwierzytelniające. Najprawdopodobniej zostały wymienione lub unieważnione: otwórz ustawienia katalogu usług i wprowadź aktualne.",
623
+ "service_catalog_filter_missing": "Nie udało się odczytać filtra encji tego połączenia, więc nie ma czego importować. Zapisz połączenie katalogu usług ponownie, aby go przywrócić.",
624
+ "service_catalog_response_too_large": "Portal deweloperski zwrócił więcej danych, niż ta platforma przyjmuje w jednej odpowiedzi. Otwórz ustawienia katalogu usług i obniż limit usług albo wyłącz importowanie definicji interfejsów, a następnie zaimportuj ponownie."
621
625
  }
622
626
  },
623
627
  "action": {
@@ -1790,6 +1794,8 @@
1790
1794
  "cacheRead": "{tokens} odczytane z pamięci podręcznej",
1791
1795
  "cacheWrite": "{tokens} zapisane do pamięci podręcznej",
1792
1796
  "total": "łącznie {duration}",
1797
+ "viaUpstream": "przez {upstream}",
1798
+ "reportedCost": "naliczono {cost}",
1793
1799
  "prompt": "Prompt",
1794
1800
  "promptPrefixOmitted": "(tylko nowe wiadomości: {count} wcześniejszych pominięto)",
1795
1801
  "response": "Odpowiedź",
@@ -3612,6 +3618,7 @@
3612
3618
  "context": "{value} ctx",
3613
3619
  "contextThousands": "{value}K ctx",
3614
3620
  "price": "{input}/{output} za Mtok",
3621
+ "retiresOn": "Wycofanie {date}",
3615
3622
  "toast": {
3616
3623
  "connected": "Klucz OpenRouter połączony",
3617
3624
  "connectFailed": "Nie udało się połączyć klucza",
@@ -6286,6 +6293,7 @@
6286
6293
  "empty": "Brak środowiska efemerycznego dla tego uruchomienia.",
6287
6294
  "provisionTypeLabel": "Typ provisioningu:",
6288
6295
  "engineLabel": "Silnik:",
6296
+ "statusNote": "Uwaga dostawcy: {note}",
6289
6297
  "provisionType": {
6290
6298
  "kubernetes": "Kubernetes",
6291
6299
  "docker-compose": "Docker Compose",
@@ -6311,6 +6319,7 @@
6311
6319
  "teardown": "Zatrzymaj",
6312
6320
  "teardown-verify": "Sprawdzenie zatrzymania",
6313
6321
  "status": "Sprawdzenie stanu",
6322
+ "remediate": "Naprawa na miejscu",
6314
6323
  "dispatch": "Uruchom",
6315
6324
  "release": "Zatrzymaj",
6316
6325
  "poll-failure": "Kontrola kondycji"
@@ -6541,7 +6550,8 @@
6541
6550
  },
6542
6551
  "tab": {
6543
6552
  "catalog": "Katalog",
6544
- "sources": "Powiązane repozytoria"
6553
+ "sources": "Powiązane repozytoria",
6554
+ "portal": "Portal deweloperski"
6545
6555
  },
6546
6556
  "panel": {
6547
6557
  "title": "Usługi fundamentalne",
@@ -6555,7 +6565,10 @@
6555
6565
  "format": {
6556
6566
  "openapi": "OpenAPI",
6557
6567
  "toadContract": "toad-contracts",
6558
- "lokaliseApiContract": "lokalise/api-contract"
6568
+ "lokaliseApiContract": "lokalise/api-contract",
6569
+ "asyncapi": "AsyncAPI",
6570
+ "graphql": "GraphQL",
6571
+ "grpc": "gRPC"
6559
6572
  },
6560
6573
  "contracts": {
6561
6574
  "omitted": "+{count} więcej, niewymienionych",
@@ -8098,5 +8111,79 @@
8098
8111
  "title": "Nie ma czego porównywać"
8099
8112
  },
8100
8113
  "loadFailed": "Nie udało się wczytać wygenerowanych kandydatów."
8114
+ },
8115
+ "serviceCatalog": {
8116
+ "unavailable": "Import katalogu usług nie jest skonfigurowany w tym wdrożeniu.",
8117
+ "intro": "Wskaż platformie portal deweloperski, który Twoja organizacja już prowadzi: jego usługi zostaną zaimportowane do katalogu powyżej, wraz z tożsamością, właścicielem i definicjami API, które każda z nich publikuje. Agenci klasyfikujący lub badający zgłoszenia czytają je, aby ustalić, do której usługi należy dana praca.",
8118
+ "summary": "Filtr: {filter} · najwyżej {max} usług",
8119
+ "form": {
8120
+ "connect": "Połącz portal",
8121
+ "replace": "Zastąp to połączenie"
8122
+ },
8123
+ "field": {
8124
+ "baseUrl": "Adres portalu",
8125
+ "authMode": "Uwierzytelnianie",
8126
+ "token": "Token usługowy",
8127
+ "sharedSecret": "Wspólny sekret",
8128
+ "tokenUrl": "Punkt końcowy tokenu",
8129
+ "clientId": "Identyfikator klienta",
8130
+ "clientSecret": "Sekret klienta",
8131
+ "scope": "Scope (opcjonalnie)",
8132
+ "audience": "Audience (opcjonalnie)",
8133
+ "username": "Nazwa użytkownika",
8134
+ "password": "Hasło",
8135
+ "headerName": "Nazwa nagłówka",
8136
+ "headerValue": "Wartość nagłówka",
8137
+ "secondHeaderName": "Drugi nagłówek (opcjonalnie)",
8138
+ "secondHeaderValue": "Wartość drugiego nagłówka",
8139
+ "entityFilter": "Filtr encji",
8140
+ "maxServices": "Maksymalna liczba usług",
8141
+ "includeApis": "Importuj definicje API publikowane przez każdą usługę"
8142
+ },
8143
+ "help": {
8144
+ "baseUrl": "Adres bazowy Twojej instancji Backstage. Host prywatny lub wewnętrzny jest dopuszczony tylko wtedy, gdy wdrożenie na to pozwala.",
8145
+ "token": "Token usługa-do-usługi z konfiguracji dostępu zewnętrznego w Backstage.",
8146
+ "sharedSecret": "Sekret w base64 z `backend.auth.keys`. Platforma podpisuje nim krótkotrwały token przy każdym żądaniu.",
8147
+ "headers": "Dla bramy uwierzytelniającej własnymi nagłówkami, na przykład tokenu usługowego Cloudflare Access.",
8148
+ "entityFilter": "Jeden warunek `key=value` w wierszu; wszystkie muszą być spełnione. Domyślnie `kind=component`. Zawęź go do usług, które chcesz udostępniać jako wspólne możliwości.",
8149
+ "maxServices": "Import, który osiągnie ten limit, jest raportowany jako wycinek portalu, a nie jego całość."
8150
+ },
8151
+ "auth": {
8152
+ "none": "Brak",
8153
+ "staticToken": "Statyczny token usługowy",
8154
+ "legacySharedSecret": "Wspólny sekret (token starszego typu)",
8155
+ "oauth2": "Dane klienta OAuth2",
8156
+ "basic": "HTTP Basic",
8157
+ "headers": "Własne nagłówki"
8158
+ },
8159
+ "status": {
8160
+ "ok": "Zaimportowano",
8161
+ "partial": "Zaimportowano częściowo",
8162
+ "failed": "Import nie udał się",
8163
+ "never": "Nigdy nie importowano"
8164
+ },
8165
+ "action": {
8166
+ "connect": "Połącz",
8167
+ "replace": "Zastąp",
8168
+ "probe": "Sprawdź połączenie",
8169
+ "import": "Importuj teraz",
8170
+ "disconnect": "Rozłącz"
8171
+ },
8172
+ "disconnect": {
8173
+ "title": "Rozłączyć katalog usług?",
8174
+ "body": "Usługi zaimportowane z tego portalu zostaną wycofane z katalogu. Nic, co zarejestrowałeś lub wgrałeś ręcznie, nie zostanie zmienione.",
8175
+ "confirm": "Rozłącz"
8176
+ },
8177
+ "toast": {
8178
+ "connected": "Katalog usług połączony",
8179
+ "connectFailed": "Nie udało się połączyć katalogu usług",
8180
+ "probeOk": "Portal odpowiedział",
8181
+ "probeFailed": "Nie udało się połączyć z portalem",
8182
+ "imported": "Katalog usług zaimportowany",
8183
+ "importedDetail": "{upserted} zaktualizowanych, {unchanged} bez zmian, {tombstoned} wycofanych",
8184
+ "importFailed": "Nie udało się zaimportować katalogu usług",
8185
+ "disconnected": "Katalog usług rozłączony",
8186
+ "disconnectFailed": "Nie udało się rozłączyć katalogu usług"
8187
+ }
8101
8188
  }
8102
8189
  }
@@ -617,7 +617,11 @@
617
617
  "binary_generators_unreachable": "Bu dağıtımın üretken entegrasyonları şu anda okunamadı, bu yüzden çalıştırma başlatılmadı. Yanlış yapılandırılmış bir şey yok ve bir değişiklik gerekmiyor: bağlantı düzeldiğinde yeniden deneyin.",
618
618
  "foundational_builtins_unreachable": "Bu dağıtımın yerleşik temel hizmetleri şu anda okunamadı. Yanlış yapılandırılmış bir şey yok ve bir değişiklik gerekmiyor: bağlantı düzeldiğinde yeniden deneyin.",
619
619
  "connection_credentials_unreadable": "Bu bağlantı için saklanan kimlik bilgileri okunamadı. Bu dağıtım, anahtarını tutan hizmete ulaşabiliyorsa kaynağı yeniden bağlayarak bilgileri değiştirin; ulaşamıyorsa o bağlantı düzeldiğinde yeniden deneyin.",
620
- "vcs_capability_unsupported": "Bu çalışma alanına bağlı kaynak kontrol sağlayıcısı bu işlemi sunmuyor. Yanlış yapılandırılmış bir şey yok ve ayar değiştirmek işe yaramaz: bu işlem bu sağlayıcıda kullanılamıyor."
620
+ "vcs_capability_unsupported": "Bu çalışma alanına bağlı kaynak kontrol sağlayıcısı bu işlemi sunmuyor. Yanlış yapılandırılmış bir şey yok ve ayar değiştirmek işe yaramaz: bu işlem bu sağlayıcıda kullanılamıyor.",
621
+ "service_catalog_unreachable": "Bu çalışma alanının geliştirici portalı yanıt vermedi ya da bu platformun okuyamadığı bir yanıt döndü. Burada yapılandırma hatası yok ve hiçbir değişiklik yardımcı olmaz: portal erişilebilir olduğunda yeniden deneyin.",
622
+ "service_catalog_unauthorized": "Geliştirici portalı kayıtlı kimlik bilgisini reddetti. Büyük olasılıkla yenilenmiş ya da iptal edilmiş: servis kataloğu ayarlarını açıp güncel bir tane girin.",
623
+ "service_catalog_filter_missing": "Bu bağlantının varlık filtresi okunamadı, dolayısıyla aktarılacak bir şey yok. Geri getirmek için servis kataloğu bağlantısını yeniden kaydedin.",
624
+ "service_catalog_response_too_large": "Geliştirici portalı, bu platformun tek bir yanıtta tutacağından daha fazla veri döndürdü. Servis kataloğu ayarlarını açıp servis sınırını düşürün ya da arayüz tanımlarının aktarımını kapatın, sonra yeniden aktarın."
621
625
  }
622
626
  },
623
627
  "action": {
@@ -1790,6 +1794,8 @@
1790
1794
  "cacheRead": "{tokens} önbellekten okundu",
1791
1795
  "cacheWrite": "{tokens} önbelleğe yazıldı",
1792
1796
  "total": "toplam {duration}",
1797
+ "viaUpstream": "{upstream} üzerinden",
1798
+ "reportedCost": "faturalanan {cost}",
1793
1799
  "prompt": "İstem",
1794
1800
  "promptPrefixOmitted": "(yalnızca yeni mesajlar: {count} öncekisi atlandı)",
1795
1801
  "response": "Yanıt",
@@ -3754,6 +3760,7 @@
3754
3760
  "context": "{value} bağlam",
3755
3761
  "contextThousands": "{value}K bağlam",
3756
3762
  "price": "Mtok başına {input}/{output}",
3763
+ "retiresOn": "{date} tarihinde kaldırılıyor",
3757
3764
  "toast": {
3758
3765
  "connected": "OpenRouter anahtarı bağlandı",
3759
3766
  "connectFailed": "Anahtar bağlanamadı",
@@ -6286,6 +6293,7 @@
6286
6293
  "empty": "Bu çalışma için geçici ortam yok.",
6287
6294
  "provisionTypeLabel": "Sağlama türü:",
6288
6295
  "engineLabel": "Motor:",
6296
+ "statusNote": "Sağlayıcı notu: {note}",
6289
6297
  "provisionType": {
6290
6298
  "kubernetes": "Kubernetes",
6291
6299
  "docker-compose": "Docker Compose",
@@ -6311,6 +6319,7 @@
6311
6319
  "teardown": "Kapat",
6312
6320
  "teardown-verify": "Kapatma kontrolü",
6313
6321
  "status": "Durum kontrolü",
6322
+ "remediate": "Yerinde onarım",
6314
6323
  "dispatch": "Başlat",
6315
6324
  "release": "Kapat",
6316
6325
  "poll-failure": "Sağlık kontrolü"
@@ -6541,7 +6550,8 @@
6541
6550
  },
6542
6551
  "tab": {
6543
6552
  "catalog": "Katalog",
6544
- "sources": "Bağlı depolar"
6553
+ "sources": "Bağlı depolar",
6554
+ "portal": "Geliştirici portalı"
6545
6555
  },
6546
6556
  "panel": {
6547
6557
  "title": "Temel hizmetler",
@@ -6555,7 +6565,10 @@
6555
6565
  "format": {
6556
6566
  "openapi": "OpenAPI",
6557
6567
  "toadContract": "toad-contracts",
6558
- "lokaliseApiContract": "lokalise/api-contract"
6568
+ "lokaliseApiContract": "lokalise/api-contract",
6569
+ "asyncapi": "AsyncAPI",
6570
+ "graphql": "GraphQL",
6571
+ "grpc": "gRPC"
6559
6572
  },
6560
6573
  "contracts": {
6561
6574
  "omitted": "+{count} tanesi listelenmedi",
@@ -8098,5 +8111,79 @@
8098
8111
  "title": "Karşılaştırılacak bir şey yok"
8099
8112
  },
8100
8113
  "loadFailed": "Üretilen adaylar yüklenemedi."
8114
+ },
8115
+ "serviceCatalog": {
8116
+ "unavailable": "Bu kurulumda servis kataloğu içe aktarımı yapılandırılmamış.",
8117
+ "intro": "Platformu kuruluşunuzun hâlihazırda işlettiği geliştirici portalına yönlendirin: portaldaki servisler kimlikleri, sahipleri ve her birinin yayımladığı API tanımlarıyla yukarıdaki kataloğa aktarılır. Hata ayıklayan ya da inceleme yapan ajanlar bir işin hangi servise ait olduğunu bunlardan çıkarır.",
8118
+ "summary": "Filtre: {filter} · en fazla {max} servis",
8119
+ "form": {
8120
+ "connect": "Bir portal bağla",
8121
+ "replace": "Bu bağlantıyı değiştir"
8122
+ },
8123
+ "field": {
8124
+ "baseUrl": "Portal adresi",
8125
+ "authMode": "Kimlik doğrulama",
8126
+ "token": "Servis belirteci",
8127
+ "sharedSecret": "Paylaşılan sır",
8128
+ "tokenUrl": "Belirteç uç noktası",
8129
+ "clientId": "İstemci kimliği",
8130
+ "clientSecret": "İstemci sırrı",
8131
+ "scope": "Scope (isteğe bağlı)",
8132
+ "audience": "Audience (isteğe bağlı)",
8133
+ "username": "Kullanıcı adı",
8134
+ "password": "Şifre",
8135
+ "headerName": "Başlık adı",
8136
+ "headerValue": "Başlık değeri",
8137
+ "secondHeaderName": "İkinci başlık (isteğe bağlı)",
8138
+ "secondHeaderValue": "İkinci başlığın değeri",
8139
+ "entityFilter": "Varlık filtresi",
8140
+ "maxServices": "En fazla servis sayısı",
8141
+ "includeApis": "Her servisin yayımladığı API tanımlarını da aktar"
8142
+ },
8143
+ "help": {
8144
+ "baseUrl": "Backstage örneğinizin temel adresi. Özel ya da iç ağdaki bir konak yalnızca kurulum izin veriyorsa kabul edilir.",
8145
+ "token": "Backstage'in dış erişim yapılandırmasından alınan servisler arası belirteç.",
8146
+ "sharedSecret": "`backend.auth.keys` içindeki base64 bir sır. Platform her istekte bununla kısa ömürlü bir belirteç imzalar.",
8147
+ "headers": "Kendi başlıklarıyla kimlik doğrulayan bir ağ geçidi için, örneğin Cloudflare Access servis belirteci.",
8148
+ "entityFilter": "Satır başına bir `key=value` koşulu; hepsinin sağlanması gerekir. Varsayılan `kind=component`. Paylaşılan yetenek olarak sunmak istediğiniz servislere daraltın.",
8149
+ "maxServices": "Bu sınıra ulaşan bir aktarım, portalın tamamı değil bir kesiti olarak bildirilir."
8150
+ },
8151
+ "auth": {
8152
+ "none": "Yok",
8153
+ "staticToken": "Sabit servis belirteci",
8154
+ "legacySharedSecret": "Paylaşılan sır (eski belirteç)",
8155
+ "oauth2": "OAuth2 istemci kimlik bilgileri",
8156
+ "basic": "HTTP Basic",
8157
+ "headers": "Özel başlıklar"
8158
+ },
8159
+ "status": {
8160
+ "ok": "Aktarıldı",
8161
+ "partial": "Kısmen aktarıldı",
8162
+ "failed": "Aktarım başarısız",
8163
+ "never": "Hiç aktarılmadı"
8164
+ },
8165
+ "action": {
8166
+ "connect": "Bağla",
8167
+ "replace": "Değiştir",
8168
+ "probe": "Bağlantıyı sına",
8169
+ "import": "Şimdi aktar",
8170
+ "disconnect": "Bağlantıyı kes"
8171
+ },
8172
+ "disconnect": {
8173
+ "title": "Servis kataloğu bağlantısı kesilsin mi?",
8174
+ "body": "Bu portaldan aktarılan servisler katalogdan geri çekilir. Elle kaydettiğiniz veya yüklediğiniz hiçbir şey etkilenmez.",
8175
+ "confirm": "Bağlantıyı kes"
8176
+ },
8177
+ "toast": {
8178
+ "connected": "Servis kataloğu bağlandı",
8179
+ "connectFailed": "Servis kataloğu bağlanamadı",
8180
+ "probeOk": "Portal yanıt verdi",
8181
+ "probeFailed": "Portala ulaşılamadı",
8182
+ "imported": "Servis kataloğu aktarıldı",
8183
+ "importedDetail": "{upserted} güncellendi, {unchanged} değişmedi, {tombstoned} geri çekildi",
8184
+ "importFailed": "Servis kataloğu aktarılamadı",
8185
+ "disconnected": "Servis kataloğu bağlantısı kesildi",
8186
+ "disconnectFailed": "Servis kataloğu bağlantısı kesilemedi"
8187
+ }
8101
8188
  }
8102
8189
  }
@@ -617,7 +617,11 @@
617
617
  "binary_generators_unreachable": "Наразі не вдалося прочитати генеративні інтеграції цього розгортання, тому запуск не почався. Нічого не налаштовано неправильно і жодних змін не потрібно: спробуйте ще раз, коли з'єднання відновиться.",
618
618
  "foundational_builtins_unreachable": "Наразі не вдалося прочитати вбудовані базові служби цього розгортання. Нічого не налаштовано неправильно і жодних змін не потрібно: спробуйте ще раз, коли з'єднання відновиться.",
619
619
  "connection_credentials_unreadable": "Не вдалося прочитати збережені облікові дані цього з'єднання. Якщо це розгортання має доступ до служби, яка зберігає його ключ, під'єднайте джерело заново, щоб замінити їх; інакше спробуйте ще раз, коли те з'єднання відновиться.",
620
- "vcs_capability_unsupported": "Постачальник систем контролю версій, під'єднаний до цього робочого простору, не підтримує цю операцію. Нічого не налаштовано неправильно і зміна налаштувань не допоможе: для цього постачальника операція недоступна."
620
+ "vcs_capability_unsupported": "Постачальник систем контролю версій, під'єднаний до цього робочого простору, не підтримує цю операцію. Нічого не налаштовано неправильно і зміна налаштувань не допоможе: для цього постачальника операція недоступна.",
621
+ "service_catalog_unreachable": "Портал розробників цього робочого простору не відповів або відповів тим, що ця платформа не може прочитати. Тут немає помилок налаштування і жодна зміна не допоможе: спробуйте знову, коли портал стане доступним.",
622
+ "service_catalog_unauthorized": "Портал розробників відхилив збережені дані доступу. Найімовірніше їх було змінено або відкликано: відкрийте налаштування каталогу сервісів і введіть актуальні.",
623
+ "service_catalog_filter_missing": "Не вдалося прочитати фільтр сутностей цього підключення, тож імпортувати нічого. Збережіть підключення каталогу сервісів повторно, щоб відновити його.",
624
+ "service_catalog_response_too_large": "Портал розробника повернув більше даних, ніж ця платформа приймає в одній відповіді. Відкрийте налаштування каталогу сервісів і знизьте ліміт сервісів або вимкніть імпорт визначень інтерфейсів, а тоді імпортуйте ще раз."
621
625
  }
622
626
  },
623
627
  "action": {
@@ -1790,6 +1794,8 @@
1790
1794
  "cacheRead": "{tokens} прочитано з кешу",
1791
1795
  "cacheWrite": "{tokens} записано в кеш",
1792
1796
  "total": "усього {duration}",
1797
+ "viaUpstream": "через {upstream}",
1798
+ "reportedCost": "нараховано {cost}",
1793
1799
  "prompt": "Запит",
1794
1800
  "promptPrefixOmitted": "(лише нові повідомлення: {count} раніших пропущено)",
1795
1801
  "response": "Відповідь",
@@ -3612,6 +3618,7 @@
3612
3618
  "context": "{value} ctx",
3613
3619
  "contextThousands": "{value}K ctx",
3614
3620
  "price": "{input}/{output} за Mtok",
3621
+ "retiresOn": "Вилучається {date}",
3615
3622
  "toast": {
3616
3623
  "connected": "Ключ OpenRouter підключено",
3617
3624
  "connectFailed": "Не вдалося підключити ключ",
@@ -6286,6 +6293,7 @@
6286
6293
  "empty": "Для цього запуску немає ефемерного середовища.",
6287
6294
  "provisionTypeLabel": "Тип провіженінгу:",
6288
6295
  "engineLabel": "Рушій:",
6296
+ "statusNote": "Примітка провайдера: {note}",
6289
6297
  "provisionType": {
6290
6298
  "kubernetes": "Kubernetes",
6291
6299
  "docker-compose": "Docker Compose",
@@ -6311,6 +6319,7 @@
6311
6319
  "teardown": "Згорнути",
6312
6320
  "teardown-verify": "Перевірка згортання",
6313
6321
  "status": "Перевірка стану",
6322
+ "remediate": "Ремонт на місці",
6314
6323
  "dispatch": "Запустити",
6315
6324
  "release": "Згорнути",
6316
6325
  "poll-failure": "Перевірка справності"
@@ -6541,7 +6550,8 @@
6541
6550
  },
6542
6551
  "tab": {
6543
6552
  "catalog": "Каталог",
6544
- "sources": "Приєднані репозиторії"
6553
+ "sources": "Приєднані репозиторії",
6554
+ "portal": "Портал розробників"
6545
6555
  },
6546
6556
  "panel": {
6547
6557
  "title": "Базові сервіси",
@@ -6555,7 +6565,10 @@
6555
6565
  "format": {
6556
6566
  "openapi": "OpenAPI",
6557
6567
  "toadContract": "toad-contracts",
6558
- "lokaliseApiContract": "lokalise/api-contract"
6568
+ "lokaliseApiContract": "lokalise/api-contract",
6569
+ "asyncapi": "AsyncAPI",
6570
+ "graphql": "GraphQL",
6571
+ "grpc": "gRPC"
6559
6572
  },
6560
6573
  "contracts": {
6561
6574
  "omitted": "+{count} інших не наведено",
@@ -8098,5 +8111,79 @@
8098
8111
  "title": "Нема чого порівнювати"
8099
8112
  },
8100
8113
  "loadFailed": "Не вдалося завантажити згенеровані кандидати."
8114
+ },
8115
+ "serviceCatalog": {
8116
+ "unavailable": "Імпорт каталогу сервісів не налаштований для цього розгортання.",
8117
+ "intro": "Укажіть платформі портал для розробників, який ваша організація вже використовує: його сервіси буде імпортовано до каталогу вище разом з їхньою ідентичністю, власником і визначеннями API, які кожен з них публікує. Агенти, що сортують або досліджують проблеми, читають їх, щоб зрозуміти, до якого сервісу належить робота.",
8118
+ "summary": "Фільтр: {filter} · не більше {max} сервісів",
8119
+ "form": {
8120
+ "connect": "Підключити портал",
8121
+ "replace": "Замінити це підключення"
8122
+ },
8123
+ "field": {
8124
+ "baseUrl": "Адреса порталу",
8125
+ "authMode": "Аутентифікація",
8126
+ "token": "Службовий токен",
8127
+ "sharedSecret": "Спільний секрет",
8128
+ "tokenUrl": "Точка видачі токена",
8129
+ "clientId": "Ідентифікатор клієнта",
8130
+ "clientSecret": "Секрет клієнта",
8131
+ "scope": "Scope (необовʼязково)",
8132
+ "audience": "Audience (необовʼязково)",
8133
+ "username": "Імʼя користувача",
8134
+ "password": "Пароль",
8135
+ "headerName": "Назва заголовка",
8136
+ "headerValue": "Значення заголовка",
8137
+ "secondHeaderName": "Другий заголовок (необовʼязково)",
8138
+ "secondHeaderValue": "Значення другого заголовка",
8139
+ "entityFilter": "Фільтр сутностей",
8140
+ "maxServices": "Максимум сервісів",
8141
+ "includeApis": "Імпортувати визначення API, які публікує кожен сервіс"
8142
+ },
8143
+ "help": {
8144
+ "baseUrl": "Базова адреса вашого екземпляра Backstage. Приватний або внутрішній вузол допускається лише якщо розгортання це дозволяє.",
8145
+ "token": "Службовий токен із налаштувань зовнішнього доступу Backstage.",
8146
+ "sharedSecret": "Секрет у base64 з `backend.auth.keys`. Платформа підписує ним короткочасний токен на кожен запит.",
8147
+ "headers": "Для шлюзу, що аутентифікує власними заголовками, наприклад службового токена Cloudflare Access.",
8148
+ "entityFilter": "Один вираз `key=value` на рядок; усі мають виконуватися. Типове значення `kind=component`. Звузьте його до сервісів, які хочете пропонувати як спільні можливості.",
8149
+ "maxServices": "Імпорт, що досягає цієї межі, повідомляється як частина порталу, а не як увесь портал."
8150
+ },
8151
+ "auth": {
8152
+ "none": "Немає",
8153
+ "staticToken": "Статичний службовий токен",
8154
+ "legacySharedSecret": "Спільний секрет (успадкований токен)",
8155
+ "oauth2": "Клієнтські дані OAuth2",
8156
+ "basic": "HTTP Basic",
8157
+ "headers": "Власні заголовки"
8158
+ },
8159
+ "status": {
8160
+ "ok": "Імпортовано",
8161
+ "partial": "Імпортовано частково",
8162
+ "failed": "Імпорт не вдався",
8163
+ "never": "Ніколи не імпортувалося"
8164
+ },
8165
+ "action": {
8166
+ "connect": "Підключити",
8167
+ "replace": "Замінити",
8168
+ "probe": "Перевірити підключення",
8169
+ "import": "Імпортувати зараз",
8170
+ "disconnect": "Відʼєднати"
8171
+ },
8172
+ "disconnect": {
8173
+ "title": "Відʼєднати каталог сервісів?",
8174
+ "body": "Сервіси, імпортовані з цього порталу, буде вилучено з каталогу. Усе, що ви зареєстрували або завантажили вручну, залишиться незмінним.",
8175
+ "confirm": "Відʼєднати"
8176
+ },
8177
+ "toast": {
8178
+ "connected": "Каталог сервісів підключено",
8179
+ "connectFailed": "Не вдалося підключити каталог сервісів",
8180
+ "probeOk": "Портал відповів",
8181
+ "probeFailed": "Не вдалося звʼязатися з порталом",
8182
+ "imported": "Каталог сервісів імпортовано",
8183
+ "importedDetail": "{upserted} оновлено, {unchanged} без змін, {tombstoned} вилучено",
8184
+ "importFailed": "Не вдалося імпортувати каталог сервісів",
8185
+ "disconnected": "Каталог сервісів відʼєднано",
8186
+ "disconnectFailed": "Не вдалося відʼєднати каталог сервісів"
8187
+ }
8101
8188
  }
8102
8189
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.288.2",
3
+ "version": "0.290.0",
4
4
  "description": "Reusable Nuxt layer for the Agent Architecture Board SPA (components, stores, composables, pages). Consume it from a thin deployment app via `extends: ['@cat-factory/app']` and point it at your backend with NUXT_PUBLIC_API_BASE. See deploy/frontend for an example.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,7 +18,7 @@
18
18
  "access": "public"
19
19
  },
20
20
  "dependencies": {
21
- "@cat-factory/contracts": "0.334.0",
21
+ "@cat-factory/contracts": "0.336.0",
22
22
  "@modular-frontend/core": "0.6.0",
23
23
  "@modular-vue/core": "^1.5.0",
24
24
  "@modular-vue/journeys": "^1.4.0",