@cat-factory/app 0.69.1 → 0.70.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 (44) hide show
  1. package/app/components/board/AgentFailureCard.vue +3 -0
  2. package/app/components/board/TaskDependencyEdges.vue +66 -0
  3. package/app/components/board/nodes/BlockNode.vue +10 -2
  4. package/app/components/board/nodes/TaskCard.vue +12 -1
  5. package/app/components/common/ConfirmDialog.vue +59 -0
  6. package/app/components/common/EmptyState.vue +35 -0
  7. package/app/components/common/KeyboardShortcutsHelp.vue +48 -0
  8. package/app/components/documents/ContextDocumentPicker.vue +8 -4
  9. package/app/components/fragments/FragmentLibraryManager.vue +10 -0
  10. package/app/components/github/GitHubPanel.vue +9 -0
  11. package/app/components/layout/BoardSwitcher.vue +11 -0
  12. package/app/components/layout/CommandBar.vue +8 -0
  13. package/app/components/layout/NotificationsInbox.vue +11 -0
  14. package/app/components/panels/InspectorPanel.vue +9 -13
  15. package/app/components/panels/StepContainerStatus.vue +37 -0
  16. package/app/components/panels/inspector/FrontendConfig.vue +349 -0
  17. package/app/components/panels/inspector/TaskDependencies.vue +18 -4
  18. package/app/components/panels/inspector/TaskExecution.vue +24 -0
  19. package/app/components/pipeline/PipelineBuilder.vue +13 -1
  20. package/app/components/providers/PersonalSubscriptionSection.vue +9 -0
  21. package/app/components/providers/VendorCredentialsModal.vue +12 -3
  22. package/app/components/settings/LocalModelEndpointsPanel.vue +11 -0
  23. package/app/components/settings/MergeThresholdsPanel.vue +9 -0
  24. package/app/components/settings/ModelConfigurationPanel.vue +9 -0
  25. package/app/components/settings/UserSecretsSection.vue +11 -0
  26. package/app/components/slack/SlackPanel.vue +9 -0
  27. package/app/components/tasks/ContextIssuePicker.vue +8 -4
  28. package/app/composables/useBlockDeletion.ts +63 -0
  29. package/app/composables/useConfirm.ts +63 -0
  30. package/app/composables/useKeyboardShortcuts.ts +76 -0
  31. package/app/pages/index.vue +8 -0
  32. package/app/stores/agentRuns.spec.ts +56 -0
  33. package/app/stores/agentRuns.ts +22 -4
  34. package/app/stores/ui.ts +16 -0
  35. package/app/types/domain.ts +7 -0
  36. package/i18n/locales/en.json +131 -5
  37. package/i18n/locales/es.json +135 -9
  38. package/i18n/locales/fr.json +135 -9
  39. package/i18n/locales/he.json +135 -9
  40. package/i18n/locales/ja.json +135 -9
  41. package/i18n/locales/pl.json +135 -9
  42. package/i18n/locales/tr.json +135 -9
  43. package/i18n/locales/uk.json +135 -9
  44. package/package.json +2 -2
@@ -15,7 +15,16 @@
15
15
  "copy": "コピー",
16
16
  "block": "ブロック",
17
17
  "actionFailed": "操作に失敗しました",
18
- "close": "閉じる"
18
+ "close": "閉じる",
19
+ "delete": "削除",
20
+ "remove": "削除",
21
+ "confirm": {
22
+ "defaultTitle": "よろしいですか?",
23
+ "confirm": "確認"
24
+ },
25
+ "copied": "クリップボードにコピーしました",
26
+ "disconnect": "切断",
27
+ "copyFailed": "クリップボードにコピーできませんでした"
19
28
  },
20
29
  "nav": {
21
30
  "menu": "ナビゲーションメニュー",
@@ -235,7 +244,11 @@
235
244
  "module": "モジュール: {name}",
236
245
  "buildSteps": "ビルドステップ",
237
246
  "reviewAndApprove": "レビューして承認",
238
- "clickToViewStep": "クリックしてステップの詳細と出力を表示"
247
+ "clickToViewStep": "クリックしてステップの詳細と出力を表示",
248
+ "startedToast": {
249
+ "title": "実行を開始しました",
250
+ "body": "「{name}」を実行中です。"
251
+ }
239
252
  },
240
253
  "epic": {
241
254
  "label": "エピック",
@@ -322,6 +335,10 @@
322
335
  "step2": "Codex が書き込んだ認証情報ファイル ~/.codex/auth.json (Windows では %USERPROFILE%\\.codex\\auth.json) を開きます。",
323
336
  "step3": "auth.json の内容全体をコピーして下に貼り付け、保護用の個人パスワードを設定してください。"
324
337
  }
338
+ },
339
+ "confirmDisconnect": {
340
+ "title": "このサブスクリプションを切断しますか?",
341
+ "body": "「{vendor}」のサブスクリプションが切断されます。 この操作は取り消せません。"
325
342
  }
326
343
  },
327
344
  "inspector": {
@@ -378,6 +395,34 @@
378
395
  "manageBoard": "このボードのフラグメントライブラリを管理…",
379
396
  "manageAccount": "アカウントのフラグメントを管理…"
380
397
  },
398
+ "frontendConfig": {
399
+ "title": "フロントエンド",
400
+ "hint": "自己完結型の UI テストのために、このフロントエンドをビルド、配信、モックする方法。下のバインディングは、呼び出すバックエンドサービスとフロントエンドをつなぎます。",
401
+ "packageManager": "パッケージマネージャー",
402
+ "installCommand": "インストールコマンド",
403
+ "buildScript": "ビルドスクリプト",
404
+ "outputDir": "出力ディレクトリ",
405
+ "serveMode": "配信モード",
406
+ "serveStatic": "静的",
407
+ "serveCommand": "コマンド",
408
+ "serveModeHint": "静的はビルド出力ディレクトリを配信します。コマンドは package.json のスクリプト(例: preview)を実行します。",
409
+ "serveScript": "配信スクリプト",
410
+ "servePort": "配信ポート",
411
+ "mockMappingsPath": "モックマッピングのパス",
412
+ "envInjection": "環境変数の注入",
413
+ "envBuild": "ビルド時",
414
+ "envRuntime": "ランタイム",
415
+ "envInjectionHint": "ビルド時はバックエンドの URL をビルド環境変数として注入します。ランタイムは window.env シムに書き込みます。",
416
+ "previewEnabled": "閲覧可能なプレビューを有効にする",
417
+ "previewHint": "クリック可能な URL 付きの配信プレビューを実行し続けます。Local および Node ランタイムのみ。",
418
+ "bindings": {
419
+ "title": "バックエンドバインディング",
420
+ "hint": "フロントエンドがアップストリーム URL のために読み取る各環境変数と、その解決先: バインドされたサービスの一時環境、または WireMock スタブ。",
421
+ "mock": "モック(WireMock)",
422
+ "remove": "バインディングを削除",
423
+ "empty": "バックエンドバインディングがありません。追加して、環境変数をサービスまたはモックに向けてください。"
424
+ }
425
+ },
381
426
  "releaseHealth": {
382
427
  "title": "リリース後の健全性",
383
428
  "clear": "クリア",
@@ -486,7 +531,11 @@
486
531
  "merged": "マージ済み",
487
532
  "notMerged": "未マージ",
488
533
  "empty": "依存関係はありません。いつでも実行できます。",
489
- "blocked": "依存関係がマージされるまでブロックされます。"
534
+ "blocked": "依存関係がマージされるまでブロックされます。",
535
+ "confirmRemove": {
536
+ "title": "この依存関係を削除しますか?",
537
+ "body": "このタスクは今後「{name}」を待たなくなります。"
538
+ }
490
539
  },
491
540
  "estimate": {
492
541
  "title": "見積もり",
@@ -531,7 +580,11 @@
531
580
  "companionOf": "{label} (コンパニオン)",
532
581
  "merged": "マージ済み",
533
582
  "open": "開く",
534
- "mergePr": "PR をマージ"
583
+ "mergePr": "PR をマージ",
584
+ "empty": {
585
+ "title": "実行履歴はまだありません",
586
+ "body": "パイプラインを開始すると、ここに実行履歴が表示されます。"
587
+ }
535
588
  },
536
589
  "structure": {
537
590
  "module": "モジュール",
@@ -641,7 +694,9 @@
641
694
  "done": "仕上げ中"
642
695
  },
643
696
  "id": "コンテナ",
644
- "url": "アドレス"
697
+ "url": "アドレス",
698
+ "copyId": "コンテナIDをコピー",
699
+ "copyUrl": "アドレスをコピー"
645
700
  },
646
701
  "subtasks": "サブタスク · {completed}/{total}",
647
702
  "standardsApplied": "適用された基準",
@@ -731,7 +786,25 @@
731
786
  "viewRequirements": "要件を表示",
732
787
  "reRun": "再実行",
733
788
  "run": "実行",
734
- "focus": "フォーカス"
789
+ "focus": "フォーカス",
790
+ "confirmDelete": {
791
+ "task": {
792
+ "title": "このタスクを削除しますか?",
793
+ "body": "「{name}」と実行履歴が削除されます。この操作は取り消せません。"
794
+ },
795
+ "module": {
796
+ "title": "このモジュールを削除しますか?",
797
+ "body": "「{name}」とその中のすべてが削除されます。この操作は取り消せません。"
798
+ },
799
+ "service": {
800
+ "title": "このサービスを削除しますか?",
801
+ "body": "「{name}」とその中のすべてが削除されます。この操作は取り消せません。"
802
+ },
803
+ "recurring": {
804
+ "title": "この定期パイプラインを削除しますか?",
805
+ "body": "「{name}」、そのスケジュール、実行履歴が削除されます。この操作は取り消せません。"
806
+ }
807
+ }
735
808
  }
736
809
  },
737
810
  "observability": {
@@ -1035,6 +1108,10 @@
1035
1108
  "openBoardFailed": "ボードを開けませんでした",
1036
1109
  "boardDeleted": "ボードを削除しました",
1037
1110
  "deleteBoardFailed": "ボードを削除できませんでした"
1111
+ },
1112
+ "confirmDelete": {
1113
+ "title": "このボードを削除しますか?",
1114
+ "body": "「{name}」とその中のすべてが削除されます。 この操作は取り消せません。"
1038
1115
  }
1039
1116
  },
1040
1117
  "notifications": {
@@ -1056,6 +1133,10 @@
1056
1133
  "human_review": "既読にする",
1057
1134
  "followup_pending": "既読にする",
1058
1135
  "markRead": "既読にする"
1136
+ },
1137
+ "toast": {
1138
+ "acted": "対応済みにしました",
1139
+ "dismissed": "却下しました"
1059
1140
  }
1060
1141
  },
1061
1142
  "aiProvidersBanner": {
@@ -1155,7 +1236,8 @@
1155
1236
  "serviceFragmentDefaults": "デフォルトのサービスベストプラクティス",
1156
1237
  "accountSettings": "アカウント設定",
1157
1238
  "localModels": "マイローカルランナー",
1158
- "sandbox": "Sandbox を開く"
1239
+ "sandbox": "Sandbox を開く",
1240
+ "shortcuts": "キーボードショートカット"
1159
1241
  },
1160
1242
  "keywords": {
1161
1243
  "newPipeline": "pipeline agents chain パイプライン エージェント チェーン",
@@ -1174,7 +1256,8 @@
1174
1256
  "serviceFragmentDefaults": "fragment best practice guideline service default code-aware フラグメント ベストプラクティス ガイドライン サービス デフォルト コード対応",
1175
1257
  "accountSettings": "account team members roles invitations email api keys fragment best practice library context organization personal アカウント チーム メンバー ロール 招待 メール APIキー フラグメント ベストプラクティス ライブラリ コンテキスト 組織 個人",
1176
1258
  "localModels": "local model runner ollama lm studio llamacpp vllm endpoint ローカル モデル ランナー Ollama LM Studio llamacpp vLLM エンドポイント",
1177
- "sandbox": "sandbox prompt model test experiment judge fixture benchmark evaluate サンドボックス プロンプト モデル テスト 実験 ジャッジ フィクスチャ ベンチマーク 評価"
1259
+ "sandbox": "sandbox prompt model test experiment judge fixture benchmark evaluate サンドボックス プロンプト モデル テスト 実験 ジャッジ フィクスチャ ベンチマーク 評価",
1260
+ "shortcuts": "キーボード ショートカット キー ヘルプ"
1178
1261
  }
1179
1262
  },
1180
1263
  "integrationsHub": {
@@ -1247,6 +1330,13 @@
1247
1330
  "description": "自分のマシンで動かすモデルランナー (Ollama、LM Studio、vLLM…)。"
1248
1331
  }
1249
1332
  }
1333
+ },
1334
+ "shortcuts": {
1335
+ "title": "キーボードショートカット",
1336
+ "commandBar": "コマンドバーを開く",
1337
+ "deselect": "選択を解除 / インスペクターを閉じる",
1338
+ "deleteBlock": "選択したブロックを削除",
1339
+ "help": "このチートシートを表示"
1250
1340
  }
1251
1341
  },
1252
1342
  "settings": {
@@ -1289,6 +1379,10 @@
1289
1379
  "nameRequiredTitle": "名前が必要です",
1290
1380
  "nameRequiredBody": "プリセットに名前を付けてください。",
1291
1381
  "saveFailed": "プリセットを保存できませんでした"
1382
+ },
1383
+ "confirmDelete": {
1384
+ "title": "このモデルプリセットを削除しますか?",
1385
+ "body": "「{name}」が削除されます。使用中のタスクはワークスペースの既定に戻ります。"
1292
1386
  }
1293
1387
  },
1294
1388
  "account": {
@@ -1621,6 +1715,10 @@
1621
1715
  "saveFailed": "シークレットを保存できませんでした",
1622
1716
  "removed": "シークレットを削除しました",
1623
1717
  "removeFailed": "シークレットを削除できませんでした"
1718
+ },
1719
+ "confirmRemove": {
1720
+ "title": "このシークレットを削除しますか?",
1721
+ "body": "「{name}」が削除されます。 この操作は取り消せません。"
1624
1722
  }
1625
1723
  },
1626
1724
  "mergeThresholds": {
@@ -1667,7 +1765,11 @@
1667
1765
  "deleteFailed": "プリセットを削除できませんでした"
1668
1766
  },
1669
1767
  "autoMergeOnHint": "しきい値内なら自動的にマージします。",
1670
- "autoMergeOffHint": "常にPRを人間のレビューに回します。"
1768
+ "autoMergeOffHint": "常にPRを人間のレビューに回します。",
1769
+ "confirmDelete": {
1770
+ "title": "このマージプリセットを削除しますか?",
1771
+ "body": "「{name}」が削除されます。使用中のタスクはワークスペースの既定に戻ります。"
1772
+ }
1671
1773
  },
1672
1774
  "observabilityConnection": {
1673
1775
  "title": "リリース後のヘルス",
@@ -1874,6 +1976,10 @@
1874
1976
  "saveFailed": "ランナーを保存できませんでした",
1875
1977
  "removed": "ランナーを削除しました",
1876
1978
  "removeFailed": "ランナーを削除できませんでした"
1979
+ },
1980
+ "confirmRemove": {
1981
+ "title": "このランナーを削除しますか?",
1982
+ "body": "「{name}」が削除されます。 この操作は取り消せません。"
1877
1983
  }
1878
1984
  }
1879
1985
  },
@@ -2035,6 +2141,10 @@
2035
2141
  "step2": "API キーをコピーします。エージェントステップは Claude Code 経由で DeepSeek の Anthropic エンドポイントに対し、完全なコンテキストで実行されます。",
2036
2142
  "step3": "下にキーを貼り付けます。"
2037
2143
  }
2144
+ },
2145
+ "confirmRemove": {
2146
+ "title": "この認証情報を削除しますか?",
2147
+ "body": "「{name}」が削除されます。 この操作は取り消せません。"
2038
2148
  }
2039
2149
  }
2040
2150
  },
@@ -2131,6 +2241,10 @@
2131
2241
  "createBranch": "ブランチを作成できませんでした",
2132
2242
  "openPr": "プルリクエストを開けませんでした",
2133
2243
  "merge": "マージできませんでした"
2244
+ },
2245
+ "confirmDisconnect": {
2246
+ "title": "GitHub を切断しますか?",
2247
+ "body": "再接続するまでアプリはリポジトリにアクセスできなくなります。"
2134
2248
  }
2135
2249
  },
2136
2250
  "addService": {
@@ -2239,6 +2353,10 @@
2239
2353
  "disconnect": "Slackの接続を解除できませんでした",
2240
2354
  "saveRouting": "ルーティングを保存できませんでした",
2241
2355
  "saveMap": "メンバーマップを保存できませんでした"
2356
+ },
2357
+ "confirmDisconnect": {
2358
+ "title": "Slack を切断しますか?",
2359
+ "body": "再接続するまで Slack の通知が停止します。"
2242
2360
  }
2243
2361
  },
2244
2362
  "documents": {
@@ -2456,6 +2574,10 @@
2456
2574
  "cloned": "「{name}」を複製しました、「{copy}」を編集中です",
2457
2575
  "cloneFailed": "パイプラインを複製できませんでした",
2458
2576
  "updateFailed": "パイプラインを更新できませんでした"
2577
+ },
2578
+ "confirmDeletePipeline": {
2579
+ "title": "このパイプラインを削除しますか?",
2580
+ "body": "「{name}」が削除されます。この操作は取り消せません。"
2459
2581
  }
2460
2582
  },
2461
2583
  "progress": {
@@ -3365,6 +3487,10 @@
3365
3487
  "checkSourceFailed": "ソースを確認できませんでした",
3366
3488
  "sourceUnlinked": "ソースのリンクを解除しました",
3367
3489
  "unlinkSourceFailed": "ソースのリンクを解除できませんでした"
3490
+ },
3491
+ "confirmRemove": {
3492
+ "title": "このフラグメントを削除しますか?",
3493
+ "body": "「{name}」が削除されます。 この操作は取り消せません。"
3368
3494
  }
3369
3495
  },
3370
3496
  "sandbox": {
@@ -15,7 +15,16 @@
15
15
  "copy": "Kopiuj",
16
16
  "actionFailed": "Akcja nie powiodła się",
17
17
  "close": "Zamknij",
18
- "block": "Blok"
18
+ "block": "Blok",
19
+ "delete": "Usuń",
20
+ "remove": "Usuń",
21
+ "confirm": {
22
+ "defaultTitle": "Na pewno?",
23
+ "confirm": "Potwierdź"
24
+ },
25
+ "copied": "Skopiowano do schowka",
26
+ "disconnect": "Rozłącz",
27
+ "copyFailed": "Nie udało się skopiować do schowka"
19
28
  },
20
29
  "nav": {
21
30
  "menu": "Menu nawigacji",
@@ -235,7 +244,11 @@
235
244
  "module": "Moduł: {name}",
236
245
  "buildSteps": "Kroki budowania",
237
246
  "reviewAndApprove": "Przejrzyj i zatwierdź",
238
- "clickToViewStep": "Kliknij, aby zobaczyć szczegóły i wynik kroku"
247
+ "clickToViewStep": "Kliknij, aby zobaczyć szczegóły i wynik kroku",
248
+ "startedToast": {
249
+ "title": "Uruchomiono",
250
+ "body": "Trwa wykonywanie \"{name}\"."
251
+ }
239
252
  },
240
253
  "epic": {
241
254
  "label": "Epik",
@@ -322,6 +335,10 @@
322
335
  "step2": "Otwórz plik poświadczeń zapisany przez Codex w ~/.codex/auth.json (w systemie Windows %USERPROFILE%\\.codex\\auth.json).",
323
336
  "step3": "Skopiuj całą zawartość auth.json, wklej ją poniżej i wybierz osobiste hasło, aby ją chronić."
324
337
  }
338
+ },
339
+ "confirmDisconnect": {
340
+ "title": "Rozłączyć tę subskrypcję?",
341
+ "body": "Twoja subskrypcja \"{vendor}\" zostanie rozłączona. Tej operacji nie można cofnąć."
325
342
  }
326
343
  },
327
344
  "inspector": {
@@ -378,6 +395,34 @@
378
395
  "manageBoard": "Zarządzaj biblioteką fragmentów tej tablicy…",
379
396
  "manageAccount": "Zarządzaj fragmentami konta…"
380
397
  },
398
+ "frontendConfig": {
399
+ "title": "Frontend",
400
+ "hint": "Jak zbudować, uruchomić i zamockować ten frontend na potrzeby samodzielnego testu interfejsu. Powiązania poniżej łączą go z usługami backendu, które wywołuje.",
401
+ "packageManager": "Menedżer pakietów",
402
+ "installCommand": "Polecenie instalacji",
403
+ "buildScript": "Skrypt budowania",
404
+ "outputDir": "Katalog wyjściowy",
405
+ "serveMode": "Tryb serwowania",
406
+ "serveStatic": "Statyczny",
407
+ "serveCommand": "Polecenie",
408
+ "serveModeHint": "Statyczny serwuje katalog wyjściowy budowania; Polecenie uruchamia skrypt z package.json (np. preview).",
409
+ "serveScript": "Skrypt serwowania",
410
+ "servePort": "Port serwowania",
411
+ "mockMappingsPath": "Ścieżka mapowań mocków",
412
+ "envInjection": "Wstrzykiwanie zmiennych środowiskowych",
413
+ "envBuild": "W czasie budowania",
414
+ "envRuntime": "W czasie działania",
415
+ "envInjectionHint": "W czasie budowania wstrzykuje adresy URL backendu jako zmienne środowiskowe budowania; W czasie działania zapisuje je w shimie window.env.",
416
+ "previewEnabled": "Włącz przeglądalny podgląd",
417
+ "previewHint": "Utrzymuje działający serwowany podgląd z klikalnym adresem URL. Tylko środowiska Local i Node.",
418
+ "bindings": {
419
+ "title": "Powiązania backendu",
420
+ "hint": "Każda zmienna środowiskowa, którą frontend odczytuje dla adresu URL nadrzędnego, oraz miejsce jej rozwiązania: efemeryczne środowisko powiązanej usługi lub zaślepka WireMock.",
421
+ "mock": "Mock (WireMock)",
422
+ "remove": "Usuń powiązanie",
423
+ "empty": "Brak powiązań backendu. Dodaj jedno, aby skierować zmienną środowiskową do usługi lub mocka."
424
+ }
425
+ },
381
426
  "releaseHealth": {
382
427
  "title": "Kondycja po wydaniu",
383
428
  "clear": "Wyczyść",
@@ -486,7 +531,11 @@
486
531
  "merged": "Scalone",
487
532
  "notMerged": "Jeszcze nie scalone",
488
533
  "empty": "Brak zależności. Można uruchomić w dowolnym momencie.",
489
- "blocked": "Zablokowane do czasu scalenia zależności."
534
+ "blocked": "Zablokowane do czasu scalenia zależności.",
535
+ "confirmRemove": {
536
+ "title": "Usunąć tę zależność?",
537
+ "body": "To zadanie nie będzie już czekać na \"{name}\"."
538
+ }
490
539
  },
491
540
  "estimate": {
492
541
  "title": "Szacunek",
@@ -531,7 +580,11 @@
531
580
  "companionOf": "{label} (towarzysz)",
532
581
  "merged": "Scalone",
533
582
  "open": "Otwarty",
534
- "mergePr": "Scal PR"
583
+ "mergePr": "Scal PR",
584
+ "empty": {
585
+ "title": "Brak uruchomień",
586
+ "body": "Uruchom pipeline, aby zobaczyć tutaj historię uruchomień."
587
+ }
535
588
  },
536
589
  "structure": {
537
590
  "module": "Moduł",
@@ -661,7 +714,9 @@
661
714
  "done": "Kończenie"
662
715
  },
663
716
  "id": "Kontener",
664
- "url": "Adres"
717
+ "url": "Adres",
718
+ "copyId": "Kopiuj id kontenera",
719
+ "copyUrl": "Kopiuj adres"
665
720
  }
666
721
  },
667
722
  "stepDetail": {
@@ -731,7 +786,25 @@
731
786
  "viewRequirements": "Wyświetl wymagania",
732
787
  "reRun": "Uruchom ponownie",
733
788
  "run": "Uruchom",
734
- "focus": "Skup"
789
+ "focus": "Skup",
790
+ "confirmDelete": {
791
+ "task": {
792
+ "title": "Usunąć to zadanie?",
793
+ "body": "\"{name}\" i jego historia uruchomień zostaną usunięte. Tej operacji nie można cofnąć."
794
+ },
795
+ "module": {
796
+ "title": "Usunąć ten moduł?",
797
+ "body": "\"{name}\" i cała jego zawartość zostaną usunięte. Tej operacji nie można cofnąć."
798
+ },
799
+ "service": {
800
+ "title": "Usunąć tę usługę?",
801
+ "body": "\"{name}\" i cała jego zawartość zostaną usunięte. Tej operacji nie można cofnąć."
802
+ },
803
+ "recurring": {
804
+ "title": "Usunąć ten cykliczny pipeline?",
805
+ "body": "\"{name}\", jego harmonogram i historia uruchomień zostaną usunięte. Tej operacji nie można cofnąć."
806
+ }
807
+ }
735
808
  }
736
809
  },
737
810
  "observability": {
@@ -1035,6 +1108,10 @@
1035
1108
  "openBoardFailed": "Nie udało się otworzyć tablicy",
1036
1109
  "boardDeleted": "Tablica usunięta",
1037
1110
  "deleteBoardFailed": "Nie udało się usunąć tablicy"
1111
+ },
1112
+ "confirmDelete": {
1113
+ "title": "Usunąć tę tablicę?",
1114
+ "body": "\"{name}\" i cała jego zawartość zostaną usunięte. Tej operacji nie można cofnąć."
1038
1115
  }
1039
1116
  },
1040
1117
  "notifications": {
@@ -1056,6 +1133,10 @@
1056
1133
  "human_review": "Oznacz jako przeczytane",
1057
1134
  "followup_pending": "Oznacz jako przeczytane",
1058
1135
  "markRead": "Oznacz jako przeczytane"
1136
+ },
1137
+ "toast": {
1138
+ "acted": "Oznaczono jako obsłużone",
1139
+ "dismissed": "Odrzucono"
1059
1140
  }
1060
1141
  },
1061
1142
  "aiProvidersBanner": {
@@ -1155,7 +1236,8 @@
1155
1236
  "serviceFragmentDefaults": "Domyślne dobre praktyki usługi",
1156
1237
  "accountSettings": "Ustawienia konta",
1157
1238
  "localModels": "Moje lokalne silniki",
1158
- "sandbox": "Otwórz piaskownicę"
1239
+ "sandbox": "Otwórz piaskownicę",
1240
+ "shortcuts": "Skróty klawiszowe"
1159
1241
  },
1160
1242
  "keywords": {
1161
1243
  "newPipeline": "potok agenci łańcuch pipeline",
@@ -1174,7 +1256,8 @@
1174
1256
  "serviceFragmentDefaults": "fragment dobre praktyki wytyczna usługa domyślna świadoma kodu",
1175
1257
  "accountSettings": "konto zespół członkowie role zaproszenia e-mail klucze api fragment dobre praktyki biblioteka kontekst organizacja osobiste",
1176
1258
  "localModels": "model lokalny silnik ollama lm studio llamacpp vllm endpoint",
1177
- "sandbox": "piaskownica prompt model test eksperyment sędzia fixture benchmark ocena"
1259
+ "sandbox": "piaskownica prompt model test eksperyment sędzia fixture benchmark ocena",
1260
+ "shortcuts": "skróty klawiatura klawisze pomoc"
1178
1261
  }
1179
1262
  },
1180
1263
  "integrationsHub": {
@@ -1247,6 +1330,13 @@
1247
1330
  "description": "Twoje silniki modeli na własnej maszynie (Ollama, LM Studio, vLLM…)."
1248
1331
  }
1249
1332
  }
1333
+ },
1334
+ "shortcuts": {
1335
+ "title": "Skróty klawiszowe",
1336
+ "commandBar": "Otwórz pasek poleceń",
1337
+ "deselect": "Odznacz / zamknij inspektora",
1338
+ "deleteBlock": "Usuń wybrany blok",
1339
+ "help": "Pokaż tę ściągę"
1250
1340
  }
1251
1341
  },
1252
1342
  "settings": {
@@ -1289,6 +1379,10 @@
1289
1379
  "nameRequiredTitle": "Wymagana nazwa",
1290
1380
  "nameRequiredBody": "Nadaj ustawieniu nazwę.",
1291
1381
  "saveFailed": "Nie udało się zapisać ustawienia"
1382
+ },
1383
+ "confirmDelete": {
1384
+ "title": "Usunąć ten preset modelu?",
1385
+ "body": "\"{name}\" zostanie usunięty. Zadania go używające wrócą do domyślnego ustawienia obszaru roboczego."
1292
1386
  }
1293
1387
  },
1294
1388
  "account": {
@@ -1508,6 +1602,10 @@
1508
1602
  "saveFailed": "Nie udało się zapisać sekretu",
1509
1603
  "removed": "Sekret usunięty",
1510
1604
  "removeFailed": "Nie udało się usunąć sekretu"
1605
+ },
1606
+ "confirmRemove": {
1607
+ "title": "Usunąć ten sekret?",
1608
+ "body": "\"{name}\" zostanie usunięty. Tej operacji nie można cofnąć."
1511
1609
  }
1512
1610
  },
1513
1611
  "mergeThresholds": {
@@ -1554,7 +1652,11 @@
1554
1652
  "deleteFailed": "Nie można usunąć ustawienia"
1555
1653
  },
1556
1654
  "autoMergeOnHint": "Scalaj automatycznie, gdy mieści się w progach.",
1557
- "autoMergeOffHint": "Zawsze kieruj PR do recenzji człowieka."
1655
+ "autoMergeOffHint": "Zawsze kieruj PR do recenzji człowieka.",
1656
+ "confirmDelete": {
1657
+ "title": "Usunąć ten preset scalania?",
1658
+ "body": "\"{name}\" zostanie usunięty. Zadania go używające wrócą do domyślnego ustawienia obszaru roboczego."
1659
+ }
1558
1660
  },
1559
1661
  "observabilityConnection": {
1560
1662
  "title": "Kondycja po wydaniu",
@@ -1761,6 +1863,10 @@
1761
1863
  "saveFailed": "Nie udało się zapisać runnera",
1762
1864
  "removed": "Runner usunięty",
1763
1865
  "removeFailed": "Nie udało się usunąć runnera"
1866
+ },
1867
+ "confirmRemove": {
1868
+ "title": "Usunąć ten runner?",
1869
+ "body": "\"{name}\" zostanie usunięty. Tej operacji nie można cofnąć."
1764
1870
  }
1765
1871
  },
1766
1872
  "infrastructure": {
@@ -2022,6 +2128,10 @@
2022
2128
  "step2": "Skopiuj klucz API. Kroki agenta będą działać przez Claude Code na endpoincie Anthropic firmy DeepSeek z pełnym kontekstem.",
2023
2129
  "step3": "Wklej klucz poniżej."
2024
2130
  }
2131
+ },
2132
+ "confirmRemove": {
2133
+ "title": "Usunąć te dane logowania?",
2134
+ "body": "\"{name}\" zostanie usunięty. Tej operacji nie można cofnąć."
2025
2135
  }
2026
2136
  }
2027
2137
  },
@@ -2118,6 +2228,10 @@
2118
2228
  "createBranch": "Nie udało się utworzyć gałęzi",
2119
2229
  "openPr": "Nie udało się otworzyć pull requesta",
2120
2230
  "merge": "Nie udało się scalić"
2231
+ },
2232
+ "confirmDisconnect": {
2233
+ "title": "Rozłączyć GitHub?",
2234
+ "body": "Aplikacja utraci dostęp do Twoich repozytoriów do ponownego połączenia."
2121
2235
  }
2122
2236
  },
2123
2237
  "addService": {
@@ -2226,6 +2340,10 @@
2226
2340
  "disconnect": "Nie udalo sie rozlaczyc Slacka",
2227
2341
  "saveRouting": "Nie udalo sie zapisac routingu",
2228
2342
  "saveMap": "Nie udalo sie zapisac mapy czlonkow"
2343
+ },
2344
+ "confirmDisconnect": {
2345
+ "title": "Rozłączyć Slack?",
2346
+ "body": "Powiadomienia Slack zostaną wstrzymane do ponownego połączenia."
2229
2347
  }
2230
2348
  },
2231
2349
  "documents": {
@@ -2443,6 +2561,10 @@
2443
2561
  "cloned": "Sklonowano \"{name}\" — trwa edycja \"{copy}\"",
2444
2562
  "cloneFailed": "Nie udało się sklonować pipeline'u",
2445
2563
  "updateFailed": "Nie udało się zaktualizować pipeline'u"
2564
+ },
2565
+ "confirmDeletePipeline": {
2566
+ "title": "Usunąć ten pipeline?",
2567
+ "body": "\"{name}\" zostanie usunięty. Tej operacji nie można cofnąć."
2446
2568
  }
2447
2569
  },
2448
2570
  "progress": {
@@ -3352,6 +3474,10 @@
3352
3474
  "checkSourceFailed": "Nie udało się sprawdzić źródła",
3353
3475
  "sourceUnlinked": "Odłączono źródło",
3354
3476
  "unlinkSourceFailed": "Nie udało się odłączyć źródła"
3477
+ },
3478
+ "confirmRemove": {
3479
+ "title": "Usunąć ten fragment?",
3480
+ "body": "\"{name}\" zostanie usunięty. Tej operacji nie można cofnąć."
3355
3481
  }
3356
3482
  },
3357
3483
  "sandbox": {