@cat-factory/app 0.261.0 → 0.261.2

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/app/components/foundational/FoundationalServiceManager.vue +1 -1
  2. package/app/components/fragments/FragmentLibraryManager.vue +1 -1
  3. package/app/components/layout/BoardTopOverlays.vue +6 -0
  4. package/app/components/layout/GitHubPatPermissionsBanner.vue +224 -0
  5. package/app/components/settings/ConnectionTestVerdict.vue +62 -0
  6. package/app/components/settings/InfraHandlersConfigurator.logic.spec.ts +64 -0
  7. package/app/components/settings/InfraHandlersConfigurator.logic.ts +41 -0
  8. package/app/components/settings/InfraHandlersConfigurator.vue +36 -9
  9. package/app/components/settings/KubernetesEngineForm.vue +24 -7
  10. package/app/components/settings/KubernetesEnvironmentForm.vue +20 -7
  11. package/app/components/settings/ProviderConnectionTab.vue +3 -7
  12. package/app/components/settings/ProviderManifestEditor.vue +3 -7
  13. package/app/components/skills/SkillLibraryManager.vue +1 -1
  14. package/app/composables/api/github.ts +7 -0
  15. package/app/composables/useServiceAccountTokenProblem.ts +52 -0
  16. package/app/stores/github/probe.ts +97 -0
  17. package/app/stores/github.spec.ts +109 -1
  18. package/app/stores/github.ts +26 -42
  19. package/app/stores/ui/k3sDeepLink.spec.ts +79 -0
  20. package/app/stores/ui/modals.ts +25 -2
  21. package/app/types/github.ts +4 -0
  22. package/app/types/providerConnections.ts +9 -0
  23. package/app/utils/connectionFailures.ts +32 -0
  24. package/app/utils/connectionWarnings.ts +1 -0
  25. package/app/utils/vcs.ts +28 -3
  26. package/i18n/locales/de.json +41 -1
  27. package/i18n/locales/en.json +59 -1
  28. package/i18n/locales/es.json +41 -1
  29. package/i18n/locales/fr.json +41 -1
  30. package/i18n/locales/he.json +41 -1
  31. package/i18n/locales/it.json +41 -1
  32. package/i18n/locales/ja.json +41 -1
  33. package/i18n/locales/pl.json +41 -1
  34. package/i18n/locales/tr.json +41 -1
  35. package/i18n/locales/uk.json +41 -1
  36. package/package.json +2 -2
@@ -278,6 +278,11 @@
278
278
  "blurb": "Dove vengono eseguiti gli agenti di coding quando non si usano i Cloudflare Containers. Scegli un pool di runner self-hosted (il tuo scheduler) o un cluster Kubernetes, poi configura il suo endpoint e le sue credenziali."
279
279
  }
280
280
  },
281
+ "serviceAccountToken": {
282
+ "whitespace": "Questo token contiene uno spazio o un'interruzione di riga, cosa che un token bearer non ha mai. Probabilmente è stato copiato a cavallo di una riga mandata a capo nel terminale. Ricopialo come un'unica riga ininterrotta.",
283
+ "base64Encoded": "Sembra il valore base64 del campo .data.token del Secret, non il token vero e proprio. Decodificalo prima, ad esempio con base64 -d.",
284
+ "notAJwt": "Non sembra un token di ServiceAccount, che è un JWT composto da tre parti separate da punti. Verifica di aver copiato il valore completo. Ignora questo avviso se il tuo cluster usa token bearer statici."
285
+ },
281
286
  "kubernetesEnv": {
282
287
  "label": "Nome",
283
288
  "labelPlaceholder": "Cluster di anteprima",
@@ -364,13 +369,27 @@
364
369
  "button": "Testa la connessione",
365
370
  "ok": "Connessione OK",
366
371
  "failed": "Connessione fallita",
372
+ "causes": {
373
+ "refused": "Nessuno è in ascolto a quell'indirizzo: la connessione è stata rifiutata.",
374
+ "dns": "Quel nome host non viene risolto da questa installazione.",
375
+ "timeout": "Nessuna risposta è arrivata prima della scadenza del test.",
376
+ "aborted": "La richiesta è stata annullata prima che arrivasse una risposta.",
377
+ "unreachable": "Non esiste una rotta di rete verso quell'indirizzo da questa installazione.",
378
+ "reset": "La connessione è stata chiusa prima che arrivasse una risposta.",
379
+ "tlsUntrusted": "Questa installazione non considera attendibile il certificato TLS.",
380
+ "tlsExpired": "Il certificato TLS è fuori dal suo periodo di validità.",
381
+ "tlsHostname": "Il certificato TLS non è stato emesso per quel nome host.",
382
+ "tlsProtocol": "L'handshake TLS è fallito.",
383
+ "invalidHeader": "Non è stato possibile costruire la richiesta: una credenziale contiene un carattere che un header HTTP non può trasportare."
384
+ },
367
385
  "warningsTitle": "Lacune in questa configurazione",
368
386
  "warnings": {
369
387
  "runner_manifest_no_release": "Nessun template di release: annullare un'esecuzione non può dire al pool di fermare il suo job, quindi un job orfano tiene occupato il suo runner finché il pool non lo recupera da solo.",
370
388
  "runner_manifest_no_status_path": "Nessun percorso di stato: ogni polling viene letto come ancora in corso, quindi un job può terminare solo esaurendo il budget di polling dell'esecuzione.",
371
389
  "github_pat_classic_account_wide": "È un token classico con l'ambito 'repo': raggiunge ogni repository su cui puoi fare push, compresi quelli in cui l'App GitHub di questo spazio di lavoro non è mai stata installata. Le esecuzioni che avvii lo usano di preferenza rispetto all'App. Un token granulare limitato ai repository di questa installazione è più ristretto.",
372
390
  "github_pat_scopes_beyond_need": "Questo token concede permessi che cat-factory non usa mai. Rimuoverli non costa nulla e restringe ciò che un'esecuzione compromessa potrebbe raggiungere.",
373
- "github_pat_scope_unreadable": "GitHub ha accettato questo token ma non ne ha segnalato gli ambiti, quindi la sua portata non può essere mostrata qui. Verifica cosa concede nelle impostazioni dei token di GitHub."
391
+ "github_pat_scope_unreadable": "GitHub ha accettato questo token ma non ne ha segnalato gli ambiti, quindi la sua portata non può essere mostrata qui. Verifica cosa concede nelle impostazioni dei token di GitHub.",
392
+ "github_pat_no_scopes": "GitHub non riporta alcun ambito per questo token classico, quindi può solo leggere dati pubblici. Le esecuzioni che clonano, inviano commit o aprono una pull request con esso falliranno. Generane uno nuovo con 'repo' e 'workflow' selezionati."
374
393
  }
375
394
  },
376
395
  "toast": {
@@ -2435,6 +2454,27 @@
2435
2454
  "createToken": "Crea un token GitHub (scope pre-selezionati)",
2436
2455
  "thenSet": "Poi imposta {envVar} e riavvia."
2437
2456
  },
2457
+ "githubPatPermissionsBanner": {
2458
+ "title": "Il token GitHub non può fare push né aprire pull request",
2459
+ "rejectedTitle": "GitHub ha rifiutato il token usato dalle tue esecuzioni",
2460
+ "body": "Le esecuzioni avviate qui si autenticano con un personal access token GitHub, e a questo mancano permessi necessari alla pipeline. Le fasi degli agenti che effettuano push di un branch, aprono una pull request o uniscono falliranno.",
2461
+ "rejectedBody": "Il personal access token GitHub con cui si autenticano le tue esecuzioni non è valido, è scaduto, è stato revocato o è bloccato da una policy dell'organizzazione. Ogni fase che clona, effettua push, apre una pull request o unisce fallirà finché non lo sostituisci.",
2462
+ "missing": "Manca:",
2463
+ "alsoMissing": "Manca anche, sebbene blocchi solo le modifiche ai file di workflow: {capabilities}.",
2464
+ "capability": {
2465
+ "push": "effettuare push dei commit",
2466
+ "pullRequests": "aprire e unire pull request",
2467
+ "workflows": "modificare i file di workflow"
2468
+ },
2469
+ "sourceDeployment": "Questo è il token con cui è configurato questo deployment, quindi sostituirlo significa aggiornare il deployment.",
2470
+ "sourceInitiator": "Questo è il tuo token memorizzato, che le tue esecuzioni usano al posto delle credenziali del deployment. Sostituiscilo nelle tue impostazioni personali.",
2471
+ "createClassic": "Crea un token sostitutivo (scope pre-selezionati)",
2472
+ "createFineGrained": "Crea un token sostitutivo fine-grained",
2473
+ "classicHint": "Il link apre il modulo del token classico con gli scope richiesti già selezionati.",
2474
+ "fineGrainedHint": "Il modulo fine-grained di GitHub non accetta pre-selezioni, quindi concedi tu stesso questi permessi di repository: {permissions}.",
2475
+ "sampled": "Verificato su {checked} repository in uso; altri {remaining} non sono stati verificati.",
2476
+ "deniedRepos": "Il token non raggiunge questi repository usati dai tuoi servizi: {repos}. Rigeneralo selezionando quei repository."
2477
+ },
2438
2478
  "providerConfigBanner": {
2439
2479
  "titleMany": "I provider necessitano di configurazione",
2440
2480
  "titleOne": {
@@ -2234,6 +2234,27 @@
2234
2234
  "createToken": "GitHub トークンを作成(スコープは事前選択済み)",
2235
2235
  "thenSet": "その後 {envVar} を設定して再起動してください。"
2236
2236
  },
2237
+ "githubPatPermissionsBanner": {
2238
+ "title": "GitHub トークンにプッシュやプルリクエスト作成の権限がありません",
2239
+ "rejectedTitle": "GitHub が実行で使うトークンを拒否しました",
2240
+ "body": "ここで開始した実行は GitHub の個人アクセストークンで認証しますが、このトークンにはパイプラインに必要な権限がありません。ブランチのプッシュ、プルリクエストの作成、マージを行うエージェントステップは失敗します。",
2241
+ "rejectedBody": "実行の認証に使う GitHub 個人アクセストークンが、無効・期限切れ・失効、または組織ポリシーによりブロックされています。置き換えるまで、クローン、プッシュ、プルリクエスト作成、マージを行うすべてのステップが失敗します。",
2242
+ "missing": "不足:",
2243
+ "alsoMissing": "ワークフローファイルの変更のみを妨げるものですが、次も不足しています: {capabilities}。",
2244
+ "capability": {
2245
+ "push": "コミットのプッシュ",
2246
+ "pullRequests": "プルリクエストの作成とマージ",
2247
+ "workflows": "ワークフローファイルの編集"
2248
+ },
2249
+ "sourceDeployment": "これはこのデプロイに設定されているトークンです。置き換えるにはデプロイの更新が必要です。",
2250
+ "sourceInitiator": "これはあなた自身の保存済みトークンで、実行はデプロイの資格情報よりこちらを優先します。個人設定で置き換えてください。",
2251
+ "createClassic": "置き換え用トークンを作成(スコープは事前選択済み)",
2252
+ "createFineGrained": "置き換え用のきめ細かいトークンを作成",
2253
+ "classicHint": "リンクを開くと、必要なスコープが選択済みのクラシックトークン作成フォームが表示されます。",
2254
+ "fineGrainedHint": "GitHub のきめ細かいトークンのフォームは事前選択に対応していないため、次のリポジトリ権限をご自身で付与してください: {permissions}。",
2255
+ "sampled": "使用中のリポジトリ {checked} 件を確認しました。残り {remaining} 件は未確認です。",
2256
+ "deniedRepos": "このトークンはサービスが使用する次のリポジトリにアクセスできません: {repos}。これらのリポジトリを選択して再発行してください。"
2257
+ },
2237
2258
  "providerConfigBanner": {
2238
2259
  "titleMany": "プロバイダーの設定が必要です",
2239
2260
  "titleOne": {
@@ -2854,6 +2875,11 @@
2854
2875
  "blurb": "Cloudflare Containers を使用しない場合にコーディングエージェントが実行される場所。セルフホストのランナープール (自前のスケジューラー) または Kubernetes クラスターを選択し、エンドポイントと認証情報を構成します。"
2855
2876
  }
2856
2877
  },
2878
+ "serviceAccountToken": {
2879
+ "whitespace": "このトークンにはスペースまたは改行が含まれています。ベアラートークンには本来含まれないもので、ターミナルで折り返された行をまたいでコピーした可能性が高いです。改行のない 1 行としてコピーし直してください。",
2880
+ "base64Encoded": "これはトークン自体ではなく、Secret の .data.token フィールドの Base64 値のように見えます。先に base64 -d などでデコードしてください。",
2881
+ "notAJwt": "これは ServiceAccount トークン (ピリオドで区切られた 3 つの部分から成る JWT) には見えません。値全体をコピーしたか確認してください。クラスターが静的なベアラートークンを使用している場合は無視して構いません。"
2882
+ },
2857
2883
  "kubernetesEnv": {
2858
2884
  "label": "名前",
2859
2885
  "labelPlaceholder": "プレビュークラスター",
@@ -2940,13 +2966,27 @@
2940
2966
  "button": "接続をテスト",
2941
2967
  "ok": "接続 OK",
2942
2968
  "failed": "接続に失敗しました",
2969
+ "causes": {
2970
+ "refused": "そのアドレスでは何も待ち受けていません。接続が拒否されました。",
2971
+ "dns": "そのホスト名はこのデプロイからは解決できません。",
2972
+ "timeout": "テストがタイムアウトするまでに応答がありませんでした。",
2973
+ "aborted": "応答が届く前にリクエストがキャンセルされました。",
2974
+ "unreachable": "このデプロイからそのアドレスへのネットワーク経路がありません。",
2975
+ "reset": "応答が届く前に接続が閉じられました。",
2976
+ "tlsUntrusted": "このデプロイは TLS 証明書を信頼していません。",
2977
+ "tlsExpired": "TLS 証明書は有効期間を外れています。",
2978
+ "tlsHostname": "TLS 証明書はそのホスト名向けに発行されていません。",
2979
+ "tlsProtocol": "TLS ハンドシェイクに失敗しました。",
2980
+ "invalidHeader": "リクエストを組み立てられませんでした。認証情報に HTTP ヘッダーが扱えない文字が含まれています。"
2981
+ },
2943
2982
  "warningsTitle": "この設定の不足点",
2944
2983
  "warnings": {
2945
2984
  "runner_manifest_no_release": "release テンプレートがありません。実行をキャンセルしてもプールにジョブの停止を伝えられないため、取り残されたジョブはプールが自分で回収するまでランナーを占有し続けます。",
2946
2985
  "runner_manifest_no_status_path": "ステータスパスがありません。ポーリングは常に実行中と解釈されるため、ジョブは実行のポーリング上限を使い切ることでしか終了できません。",
2947
2986
  "github_pat_classic_account_wide": "これは 'repo' スコープを持つクラシックトークンです。あなたがプッシュできるすべてのリポジトリ(このワークスペースの GitHub App が一度もインストールされていないものを含む)に到達します。あなたが開始する実行は App よりこれを優先して使います。このインストールのリポジトリに限定したファイングレインドトークンのほうが範囲は狭くなります。",
2948
2987
  "github_pat_scopes_beyond_need": "このトークンは cat-factory が使わない権限を含んでいます。外しても支障はなく、侵害された実行が到達できる範囲を狭められます。",
2949
- "github_pat_scope_unreadable": "GitHub はこのトークンを受け入れましたが、スコープを報告しなかったため、ここでは到達範囲を表示できません。GitHub のトークン設定で何が付与されているか確認してください。"
2988
+ "github_pat_scope_unreadable": "GitHub はこのトークンを受け入れましたが、スコープを報告しなかったため、ここでは到達範囲を表示できません。GitHub のトークン設定で何が付与されているか確認してください。",
2989
+ "github_pat_no_scopes": "GitHub はこのクラシックトークンのスコープを報告していないため、公開データの読み取りしかできません。これを使ってクローン、プッシュ、プルリクエストの作成を行う実行は失敗します。'repo' と 'workflow' を選択して新しいトークンを発行してください。"
2950
2990
  }
2951
2991
  },
2952
2992
  "toast": {
@@ -2234,6 +2234,27 @@
2234
2234
  "createToken": "Utwórz token GitHub (zakresy wstępnie wybrane)",
2235
2235
  "thenSet": "Następnie ustaw {envVar} i uruchom ponownie."
2236
2236
  },
2237
+ "githubPatPermissionsBanner": {
2238
+ "title": "Token GitHub nie może wypychać zmian ani otwierać pull requestów",
2239
+ "rejectedTitle": "GitHub odrzucił token używany przez Twoje uruchomienia",
2240
+ "body": "Uruchomienia rozpoczęte tutaj uwierzytelniają się osobistym tokenem dostępu GitHub, a temu brakuje uprawnień wymaganych przez potok. Kroki agenta, które wypychają gałąź, otwierają pull request lub scalają, zakończą się niepowodzeniem.",
2241
+ "rejectedBody": "Osobisty token dostępu GitHub, którym uwierzytelniają się Twoje uruchomienia, jest nieprawidłowy, wygasł, został unieważniony lub zablokowany przez zasady organizacji. Każdy krok, który klonuje, wypycha, otwiera pull request lub scala, będzie kończył się niepowodzeniem, dopóki go nie wymienisz.",
2242
+ "missing": "Brakuje:",
2243
+ "alsoMissing": "Brakuje również, choć blokuje to tylko zmiany w plikach przepływów pracy: {capabilities}.",
2244
+ "capability": {
2245
+ "push": "wypychanie commitów",
2246
+ "pullRequests": "otwieranie i scalanie pull requestów",
2247
+ "workflows": "edytowanie plików przepływów pracy"
2248
+ },
2249
+ "sourceDeployment": "To jest token skonfigurowany dla tego wdrożenia, więc jego wymiana oznacza aktualizację wdrożenia.",
2250
+ "sourceInitiator": "To Twój własny zapisany token, którego Twoje uruchomienia używają zamiast poświadczeń wdrożenia. Wymień go w swoich ustawieniach osobistych.",
2251
+ "createClassic": "Utwórz token zastępczy (zakresy wstępnie wybrane)",
2252
+ "createFineGrained": "Utwórz zastępczy token o precyzyjnych uprawnieniach",
2253
+ "classicHint": "Link otwiera formularz klasycznego tokenu z już zaznaczonymi wymaganymi zakresami.",
2254
+ "fineGrainedHint": "Formularz precyzyjnych uprawnień GitHub nie obsługuje wstępnego wyboru, więc nadaj te uprawnienia repozytorium samodzielnie: {permissions}.",
2255
+ "sampled": "Sprawdzono {checked} używanych repozytoriów; kolejnych {remaining} nie sprawdzono.",
2256
+ "deniedRepos": "Token nie ma dostępu do tych repozytoriów używanych przez Twoje usługi: {repos}. Wygeneruj go ponownie z zaznaczonymi tymi repozytoriami."
2257
+ },
2237
2258
  "providerConfigBanner": {
2238
2259
  "titleMany": "Dostawcy wymagają konfiguracji",
2239
2260
  "titleOne": {
@@ -2744,13 +2765,27 @@
2744
2765
  "button": "Przetestuj połączenie",
2745
2766
  "ok": "Połączenie poprawne",
2746
2767
  "failed": "Połączenie nieudane",
2768
+ "causes": {
2769
+ "refused": "Nic nie nasłuchuje pod tym adresem: połączenie zostało odrzucone.",
2770
+ "dns": "Ta nazwa hosta nie jest rozwiązywana z tego wdrożenia.",
2771
+ "timeout": "Nie nadeszła żadna odpowiedź przed upływem czasu testu.",
2772
+ "aborted": "Żądanie zostało anulowane, zanim nadeszła odpowiedź.",
2773
+ "unreachable": "Z tego wdrożenia nie ma trasy sieciowej do tego adresu.",
2774
+ "reset": "Połączenie zostało zamknięte, zanim nadeszła odpowiedź.",
2775
+ "tlsUntrusted": "To wdrożenie nie ufa certyfikatowi TLS.",
2776
+ "tlsExpired": "Certyfikat TLS jest poza okresem swojej ważności.",
2777
+ "tlsHostname": "Certyfikat TLS nie został wystawiony dla tej nazwy hosta.",
2778
+ "tlsProtocol": "Uzgadnianie TLS nie powiodło się.",
2779
+ "invalidHeader": "Nie udało się zbudować żądania: dane uwierzytelniające zawierają znak, którego nagłówek HTTP nie może przenieść."
2780
+ },
2747
2781
  "warningsTitle": "Braki w tej konfiguracji",
2748
2782
  "warnings": {
2749
2783
  "runner_manifest_no_release": "Brak szablonu release: anulowanie przebiegu nie może przekazać puli, że ma zatrzymać zadanie, więc osierocone zadanie zajmuje swojego runnera, dopóki pula sama go nie odzyska.",
2750
2784
  "runner_manifest_no_status_path": "Brak ścieżki statusu: każde odpytanie jest odczytywane jako wciąż trwające, więc zadanie może zakończyć się tylko po wyczerpaniu budżetu odpytań przebiegu.",
2751
2785
  "github_pat_classic_account_wide": "To klasyczny token z zakresem 'repo': sięga każdego repozytorium, do którego możesz wypychać zmiany, także tych, w których aplikacja GitHub tego obszaru roboczego nigdy nie została zainstalowana. Uruchomienia, które rozpoczynasz, używają go zamiast aplikacji. Token szczegółowy ograniczony do repozytoriów tej instalacji jest węższy.",
2752
2786
  "github_pat_scopes_beyond_need": "Ten token przyznaje uprawnienia, z których cat-factory nigdy nie korzysta. Ich usunięcie nic nie kosztuje i zawęża to, co mogłoby osiągnąć skompromitowane uruchomienie.",
2753
- "github_pat_scope_unreadable": "GitHub przyjął ten token, ale nie zgłosił jego zakresów, więc jego zasięgu nie da się tu pokazać. Sprawdź w ustawieniach tokenów GitHub, co przyznaje."
2787
+ "github_pat_scope_unreadable": "GitHub przyjął ten token, ale nie zgłosił jego zakresów, więc jego zasięgu nie da się tu pokazać. Sprawdź w ustawieniach tokenów GitHub, co przyznaje.",
2788
+ "github_pat_no_scopes": "GitHub nie zgłasza żadnych zakresów dla tego klasycznego tokena, więc może on tylko odczytywać dane publiczne. Uruchomienia, które klonują, wypychają zmiany lub otwierają pull requesta przy jego użyciu, zakończą się niepowodzeniem. Wygeneruj nowy z zaznaczonymi 'repo' i 'workflow'."
2754
2789
  }
2755
2790
  },
2756
2791
  "toast": {
@@ -2759,6 +2794,11 @@
2759
2794
  "removed": "Połączenie usunięte",
2760
2795
  "removeFailed": "Nie udało się usunąć połączenia"
2761
2796
  },
2797
+ "serviceAccountToken": {
2798
+ "whitespace": "Ten token zawiera spację lub znak nowego wiersza, czego token typu bearer nigdy nie ma. Najprawdopodobniej został skopiowany przez zawinięty wiersz w terminalu. Skopiuj go ponownie jako jeden nieprzerwany wiersz.",
2799
+ "base64Encoded": "To wygląda na wartość base64 z pola .data.token obiektu Secret, a nie na sam token. Najpierw ją zdekoduj, na przykład poleceniem base64 -d.",
2800
+ "notAJwt": "To nie wygląda na token ServiceAccount, który jest tokenem JWT złożonym z trzech części oddzielonych kropkami. Sprawdź, czy skopiowano całą wartość. Zignoruj to ostrzeżenie, jeśli Twój klaster używa statycznych tokenów bearer."
2801
+ },
2762
2802
  "kubernetesEnv": {
2763
2803
  "label": "Nazwa",
2764
2804
  "labelPlaceholder": "Klaster podglądu",
@@ -2234,6 +2234,27 @@
2234
2234
  "createToken": "GitHub belirteci oluştur (kapsamlar önceden seçili)",
2235
2235
  "thenSet": "Ardından {envVar} ayarlayın ve yeniden başlatın."
2236
2236
  },
2237
+ "githubPatPermissionsBanner": {
2238
+ "title": "GitHub belirteci push yapamıyor veya pull request açamıyor",
2239
+ "rejectedTitle": "GitHub, çalıştırmalarınızın kullandığı belirteci reddetti",
2240
+ "body": "Burada başlatılan çalıştırmalar bir GitHub kişisel erişim belirteciyle kimlik doğrular ve bu belirteçte iş hattının ihtiyaç duyduğu izinler yok. Dal push eden, pull request açan veya birleştiren ajan adımları başarısız olacak.",
2241
+ "rejectedBody": "Çalıştırmalarınızın kimlik doğruladığı GitHub kişisel erişim belirteci geçersiz, süresi dolmuş, iptal edilmiş ya da bir kuruluş politikası tarafından engellenmiş. Değiştirilene kadar klonlayan, push eden, pull request açan veya birleştiren her adım başarısız olacak.",
2242
+ "missing": "Eksik:",
2243
+ "alsoMissing": "Yalnızca iş akışı dosyalarındaki değişiklikleri engellese de şu da eksik: {capabilities}.",
2244
+ "capability": {
2245
+ "push": "commit push etme",
2246
+ "pullRequests": "pull request açma ve birleştirme",
2247
+ "workflows": "iş akışı dosyalarını düzenleme"
2248
+ },
2249
+ "sourceDeployment": "Bu, bu dağıtımın yapılandırıldığı belirteçtir; değiştirmek dağıtımı güncellemek anlamına gelir.",
2250
+ "sourceInitiator": "Bu, çalıştırmalarınızın dağıtım kimlik bilgisi yerine tercih ettiği kendi kayıtlı belirtecinizdir. Kişisel ayarlarınızdan değiştirin.",
2251
+ "createClassic": "Yerine belirteç oluştur (kapsamlar önceden seçili)",
2252
+ "createFineGrained": "Yerine ayrıntılı izinli belirteç oluştur",
2253
+ "classicHint": "Bağlantı, gerekli kapsamlar zaten seçili hâlde klasik belirteç formunu açar.",
2254
+ "fineGrainedHint": "GitHub'ın ayrıntılı izin formu ön seçim kabul etmez; bu depo izinlerini kendiniz verin: {permissions}.",
2255
+ "sampled": "Kullanılan {checked} depoya karşı denetlendi; {remaining} tanesi denetlenmedi.",
2256
+ "deniedRepos": "Belirteç, hizmetlerinizin kullandığı şu depolara erişemiyor: {repos}. Bu depoları seçerek yeniden oluşturun."
2257
+ },
2237
2258
  "providerConfigBanner": {
2238
2259
  "titleMany": "Sağlayıcıların yapılandırılması gerekiyor",
2239
2260
  "titleOne": {
@@ -2854,6 +2875,11 @@
2854
2875
  "blurb": "Cloudflare Containers kullanılmadığında kodlama ajanlarının çalıştığı yer. Bir self-hosted runner havuzu (kendi zamanlayıcınız) veya bir Kubernetes kümesi seçin, ardından uç noktasını ve kimlik bilgilerini yapılandırın."
2855
2876
  }
2856
2877
  },
2878
+ "serviceAccountToken": {
2879
+ "whitespace": "Bu belirteç bir boşluk ya da satır sonu içeriyor; taşıyıcı belirteçlerde bu asla bulunmaz. Büyük olasılıkla terminalde kaydırılmış bir satırın üzerinden kopyalanmış. Tek ve kesintisiz bir satır olarak yeniden kopyalayın.",
2880
+ "base64Encoded": "Bu, belirtecin kendisi değil, Secret nesnesinin .data.token alanındaki base64 değeri gibi görünüyor. Önce çözün, örneğin base64 -d ile.",
2881
+ "notAJwt": "Bu, noktayla ayrılmış üç bölümden oluşan bir JWT olan ServiceAccount belirtecine benzemiyor. Değerin tamamının kopyalandığını doğrulayın. Kümeniz statik taşıyıcı belirteç kullanıyorsa bu uyarıyı yoksayın."
2882
+ },
2857
2883
  "kubernetesEnv": {
2858
2884
  "label": "Ad",
2859
2885
  "labelPlaceholder": "Önizleme kümesi",
@@ -2940,13 +2966,27 @@
2940
2966
  "button": "Bağlantıyı test et",
2941
2967
  "ok": "Bağlantı tamam",
2942
2968
  "failed": "Bağlantı başarısız",
2969
+ "causes": {
2970
+ "refused": "Bu adreste dinleyen bir şey yok: bağlantı reddedildi.",
2971
+ "dns": "Bu ana bilgisayar adı bu kurulumdan çözümlenemiyor.",
2972
+ "timeout": "Test zaman aşımına uğrayana kadar yanıt gelmedi.",
2973
+ "aborted": "Yanıt gelmeden önce istek iptal edildi.",
2974
+ "unreachable": "Bu kurulumdan bu adrese ağ yolu yok.",
2975
+ "reset": "Yanıt gelmeden önce bağlantı kapatıldı.",
2976
+ "tlsUntrusted": "Bu kurulum TLS sertifikasına güvenmiyor.",
2977
+ "tlsExpired": "TLS sertifikası geçerlilik süresinin dışında.",
2978
+ "tlsHostname": "TLS sertifikası bu ana bilgisayar adı için verilmemiş.",
2979
+ "tlsProtocol": "TLS el sıkışması başarısız oldu.",
2980
+ "invalidHeader": "İstek oluşturulamadı: kimlik bilgisi, bir HTTP başlığının taşıyamayacağı bir karakter içeriyor."
2981
+ },
2943
2982
  "warningsTitle": "Bu yapılandırmadaki eksikler",
2944
2983
  "warnings": {
2945
2984
  "runner_manifest_no_release": "Release şablonu yok: bir çalıştırma iptal edildiğinde havuza işi durdurması söylenemez, bu yüzden sahipsiz kalan iş, havuz onu kendi kendine geri alana kadar runner'ını meşgul tutar.",
2946
2985
  "runner_manifest_no_status_path": "Durum yolu yok: her yoklama hâlâ çalışıyor olarak okunur, bu yüzden bir iş ancak çalıştırmanın yoklama bütçesi tükendiğinde sona erebilir.",
2947
2986
  "github_pat_classic_account_wide": "Bu, 'repo' kapsamına sahip klasik bir belirteç: gönderim yapabildiğiniz her depoya, bu çalışma alanının GitHub Uygulamasının hiç kurulmadığı depolar dahil, erişir. Başlattığınız çalıştırmalar bunu Uygulamaya tercih eder. Bu kurulumun depolarıyla sınırlı ince ayarlı bir belirteç daha dardır.",
2948
2987
  "github_pat_scopes_beyond_need": "Bu belirteç, cat-factory'nin hiç kullanmadığı izinler veriyor. Bunları kaldırmak hiçbir şeye mal olmaz ve ele geçirilmiş bir çalıştırmanın erişebileceği alanı daraltır.",
2949
- "github_pat_scope_unreadable": "GitHub bu belirteci kabul etti ancak kapsamlarını bildirmedi, bu yüzden erişimi burada gösterilemiyor. Neler verdiğini GitHub belirteç ayarlarınızdan kontrol edin."
2988
+ "github_pat_scope_unreadable": "GitHub bu belirteci kabul etti ancak kapsamlarını bildirmedi, bu yüzden erişimi burada gösterilemiyor. Neler verdiğini GitHub belirteç ayarlarınızdan kontrol edin.",
2989
+ "github_pat_no_scopes": "GitHub bu klasik belirteç için hiçbir kapsam bildirmiyor, dolayısıyla yalnızca herkese açık verileri okuyabilir. Onunla klonlayan, gönderim yapan veya pull request açan çalıştırmalar başarısız olur. 'repo' ve 'workflow' seçili yeni bir belirteç oluşturun."
2950
2990
  }
2951
2991
  },
2952
2992
  "toast": {
@@ -2234,6 +2234,27 @@
2234
2234
  "createToken": "Створити токен GitHub (області попередньо вибрані)",
2235
2235
  "thenSet": "Потім встановіть {envVar} і перезапустіть."
2236
2236
  },
2237
+ "githubPatPermissionsBanner": {
2238
+ "title": "Токен GitHub не може надсилати зміни або відкривати pull request-и",
2239
+ "rejectedTitle": "GitHub відхилив токен, який використовують ваші запуски",
2240
+ "body": "Запуски, розпочаті тут, автентифікуються особистим токеном доступу GitHub, і цьому бракує дозволів, потрібних конвеєру. Кроки агента, які надсилають гілку, відкривають pull request або зливають, завершаться невдало.",
2241
+ "rejectedBody": "Особистий токен доступу GitHub, яким автентифікуються ваші запуски, недійсний, прострочений, відкликаний або заблокований політикою організації. Кожен крок, який клонує, надсилає, відкриває pull request чи зливає, завершуватиметься невдало, доки ви його не заміните.",
2242
+ "missing": "Бракує:",
2243
+ "alsoMissing": "Також бракує, хоча це блокує лише зміни у файлах робочих процесів: {capabilities}.",
2244
+ "capability": {
2245
+ "push": "надсилання комітів",
2246
+ "pullRequests": "відкриття та злиття pull request-ів",
2247
+ "workflows": "редагування файлів робочих процесів"
2248
+ },
2249
+ "sourceDeployment": "Це токен, з яким налаштовано це розгортання, тож його заміна означає оновлення розгортання.",
2250
+ "sourceInitiator": "Це ваш власний збережений токен, який ваші запуски використовують замість облікових даних розгортання. Замініть його в особистих налаштуваннях.",
2251
+ "createClassic": "Створити токен на заміну (області попередньо вибрані)",
2252
+ "createFineGrained": "Створити токен на заміну з точними дозволами",
2253
+ "classicHint": "Посилання відкриває форму класичного токена з уже вибраними потрібними областями.",
2254
+ "fineGrainedHint": "Форма точних дозволів GitHub не підтримує попередній вибір, тож надайте ці дозволи репозиторію самостійно: {permissions}.",
2255
+ "sampled": "Перевірено {checked} використовуваних репозиторіїв; ще {remaining} не перевірено.",
2256
+ "deniedRepos": "Токен не має доступу до цих репозиторіїв, які використовують ваші сервіси: {repos}. Створіть його заново, обравши ці репозиторії."
2257
+ },
2237
2258
  "providerConfigBanner": {
2238
2259
  "titleMany": "Постачальники потребують налаштування",
2239
2260
  "titleOne": {
@@ -2744,13 +2765,27 @@
2744
2765
  "button": "Перевірити підключення",
2745
2766
  "ok": "Підключення в порядку",
2746
2767
  "failed": "Не вдалося підключитися",
2768
+ "causes": {
2769
+ "refused": "За цією адресою ніщо не слухає: з'єднання відхилено.",
2770
+ "dns": "Це ім'я хоста не розпізнається з цього розгортання.",
2771
+ "timeout": "Відповідь не надійшла до завершення часу перевірки.",
2772
+ "aborted": "Запит скасовано, перш ніж надійшла відповідь.",
2773
+ "unreachable": "З цього розгортання немає мережевого маршруту до цієї адреси.",
2774
+ "reset": "З'єднання закрито, перш ніж надійшла відповідь.",
2775
+ "tlsUntrusted": "Це розгортання не довіряє сертифікату TLS.",
2776
+ "tlsExpired": "Сертифікат TLS поза строком дії.",
2777
+ "tlsHostname": "Сертифікат TLS видано не для цього імені хоста.",
2778
+ "tlsProtocol": "Рукостискання TLS не вдалося.",
2779
+ "invalidHeader": "Не вдалося сформувати запит: дані для входу містять символ, який заголовок HTTP не може передати."
2780
+ },
2747
2781
  "warningsTitle": "Прогалини в цій конфігурації",
2748
2782
  "warnings": {
2749
2783
  "runner_manifest_no_release": "Немає шаблону release: скасування запуску не може повідомити пулу, що завдання треба зупинити, тож осиротіле завдання займає свій раннер, доки пул не забере його сам.",
2750
2784
  "runner_manifest_no_status_path": "Немає шляху до статусу: кожне опитування читається як таке, що ще триває, тож завдання може завершитися лише після вичерпання бюджету опитувань запуску.",
2751
2785
  "github_pat_classic_account_wide": "Це класичний токен з областю 'repo': він сягає кожного репозиторію, до якого ви можете надсилати зміни, зокрема тих, де застосунок GitHub цього робочого простору ніколи не встановлювався. Запуски, які ви розпочинаєте, використовують його замість застосунку. Деталізований токен, обмежений репозиторіями цього встановлення, вужчий.",
2752
2786
  "github_pat_scopes_beyond_need": "Цей токен надає дозволи, якими cat-factory ніколи не користується. Прибрати їх нічого не коштує, і це звужує те, чого міг би сягнути скомпрометований запуск.",
2753
- "github_pat_scope_unreadable": "GitHub прийняв цей токен, але не повідомив його областей, тож показати його обсяг доступу тут неможливо. Перевірте в налаштуваннях токенів GitHub, що саме він надає."
2787
+ "github_pat_scope_unreadable": "GitHub прийняв цей токен, але не повідомив його областей, тож показати його обсяг доступу тут неможливо. Перевірте в налаштуваннях токенів GitHub, що саме він надає.",
2788
+ "github_pat_no_scopes": "GitHub не повідомляє жодних областей дії для цього класичного токена, тож він може лише читати публічні дані. Запуски, які клонують, надсилають зміни або відкривають pull request із ним, завершаться помилкою. Створіть новий із вибраними 'repo' і 'workflow'."
2754
2789
  }
2755
2790
  },
2756
2791
  "toast": {
@@ -2759,6 +2794,11 @@
2759
2794
  "removed": "Підключення видалено",
2760
2795
  "removeFailed": "Не вдалося видалити підключення"
2761
2796
  },
2797
+ "serviceAccountToken": {
2798
+ "whitespace": "Цей токен містить пробіл або розрив рядка, чого в токені-носії ніколи не буває. Найімовірніше, його скопійовано через перенесений рядок у терміналі. Скопіюйте його ще раз одним суцільним рядком.",
2799
+ "base64Encoded": "Це схоже на значення в base64 з поля .data.token об'єкта Secret, а не на сам токен. Спершу розкодуйте його, наприклад за допомогою base64 -d.",
2800
+ "notAJwt": "Це не схоже на токен ServiceAccount, який є JWT із трьох частин, розділених крапками. Переконайтеся, що скопійовано все значення. Знехтуйте цим попередженням, якщо ваш кластер використовує статичні токени-носії."
2801
+ },
2762
2802
  "kubernetesEnv": {
2763
2803
  "label": "Назва",
2764
2804
  "labelPlaceholder": "Кластер попереднього перегляду",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/app",
3
- "version": "0.261.0",
3
+ "version": "0.261.2",
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",
@@ -40,7 +40,7 @@
40
40
  "valibot": "^1.4.2",
41
41
  "vue": "3.5.41",
42
42
  "wretch": "^3.0.9",
43
- "@cat-factory/contracts": "0.292.0"
43
+ "@cat-factory/contracts": "0.292.2"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@toad-contracts/testing": "0.3.2",