@cat-factory/app 0.70.0 → 0.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/auth/LoginScreen.vue +3 -2
- package/app/components/board/AddTaskModal.vue +7 -1
- package/app/components/board/AgentFailureCard.vue +3 -0
- package/app/components/board/RecurringPipelineModal.vue +6 -1
- package/app/components/board/nodes/BlockNode.vue +10 -2
- package/app/components/board/nodes/TaskCard.vue +12 -1
- package/app/components/bootstrap/BootstrapModal.vue +3 -0
- package/app/components/common/ConfirmDialog.vue +59 -0
- package/app/components/common/EmptyState.vue +35 -0
- package/app/components/common/KeyboardShortcutsHelp.vue +48 -0
- package/app/components/documents/ContextDocumentPicker.vue +8 -4
- package/app/components/documents/DocumentSourceConnectModal.vue +4 -3
- package/app/components/focus/BlockFocusView.vue +12 -7
- package/app/components/fragments/FragmentLibraryManager.vue +10 -0
- package/app/components/github/GitHubPanel.vue +9 -0
- package/app/components/humanTest/HumanTestWindow.vue +15 -1
- package/app/components/layout/AccountDeploymentSettings.vue +4 -0
- package/app/components/layout/AccountTeamSettings.vue +8 -2
- package/app/components/layout/AiProvidersBanner.vue +3 -1
- package/app/components/layout/BoardSwitcher.vue +11 -0
- package/app/components/layout/CommandBar.vue +8 -0
- package/app/components/layout/InfraSetupBanner.vue +192 -0
- package/app/components/layout/NotificationsInbox.vue +11 -0
- package/app/components/layout/ProviderConfigBanner.vue +3 -1
- package/app/components/panels/InspectorPanel.vue +18 -20
- package/app/components/panels/StepContainerStatus.vue +37 -0
- package/app/components/panels/inspector/FrontendConfig.vue +19 -4
- package/app/components/panels/inspector/ServiceReleaseHealthConfig.vue +4 -0
- package/app/components/panels/inspector/TaskDependencies.vue +18 -4
- package/app/components/panels/inspector/TaskExecution.vue +24 -0
- package/app/components/panels/inspector/TaskRunSettings.vue +8 -1
- package/app/components/pipeline/PipelineBuilder.vue +13 -1
- package/app/components/providers/ApiKeysSection.vue +4 -0
- package/app/components/providers/PersonalSubscriptionSection.vue +9 -0
- package/app/components/providers/VendorCredentialsModal.vue +12 -3
- package/app/components/settings/CustomManifestTypeEditor.vue +3 -0
- package/app/components/settings/InfraHandlersConfigurator.vue +72 -12
- package/app/components/settings/KubernetesEngineForm.vue +41 -5
- package/app/components/settings/LocalModelEndpointsPanel.vue +11 -0
- package/app/components/settings/MergeThresholdsPanel.vue +9 -0
- package/app/components/settings/ModelConfigurationPanel.vue +9 -0
- package/app/components/settings/ObservabilityConnectionPanel.vue +7 -0
- package/app/components/settings/ProviderConnectionTab.vue +2 -0
- package/app/components/settings/UserSecretsSection.vue +11 -0
- package/app/components/slack/SlackPanel.vue +9 -0
- package/app/components/tasks/ContextIssuePicker.vue +8 -4
- package/app/components/tasks/TaskSourceConnectModal.vue +4 -3
- package/app/composables/useBlockDeletion.ts +63 -0
- package/app/composables/useConfirm.ts +63 -0
- package/app/composables/useConfirmAction.ts +96 -0
- package/app/composables/useKeyboardShortcuts.ts +76 -0
- package/app/composables/usePipelineErrorToast.ts +2 -0
- package/app/composables/useWorkspaceStream.ts +26 -6
- package/app/pages/index.vue +28 -4
- package/app/stores/agentRuns.spec.ts +74 -0
- package/app/stores/agentRuns.ts +33 -5
- package/app/stores/ui.ts +33 -1
- package/app/stores/workspace.ts +10 -2
- package/app/types/domain.ts +3 -0
- package/app/utils/pipeline.ts +22 -0
- package/i18n/locales/en.json +174 -12
- package/i18n/locales/es.json +176 -17
- package/i18n/locales/fr.json +176 -17
- package/i18n/locales/he.json +176 -17
- package/i18n/locales/ja.json +176 -17
- package/i18n/locales/pl.json +176 -17
- package/i18n/locales/tr.json +176 -17
- package/i18n/locales/uk.json +176 -17
- package/package.json +3 -2
package/i18n/locales/en.json
CHANGED
|
@@ -13,6 +13,23 @@
|
|
|
13
13
|
"cancel": "Cancel",
|
|
14
14
|
"retry": "Retry",
|
|
15
15
|
"copy": "Copy",
|
|
16
|
+
"copied": "Copied to clipboard",
|
|
17
|
+
"delete": "Delete",
|
|
18
|
+
"remove": "Remove",
|
|
19
|
+
"confirm": {
|
|
20
|
+
"defaultTitle": "Are you sure?",
|
|
21
|
+
"confirm": "Confirm",
|
|
22
|
+
"irreversible": "This can't be undone.",
|
|
23
|
+
"reconnectHint": "You'll need to reconnect it before you can use it again.",
|
|
24
|
+
"titles": {
|
|
25
|
+
"disconnect": "Disconnect {name}?",
|
|
26
|
+
"remove": "Remove {name}?",
|
|
27
|
+
"revoke": "Revoke {name}?",
|
|
28
|
+
"clear": "Clear {name}?",
|
|
29
|
+
"destroy": "Destroy {name}?"
|
|
30
|
+
},
|
|
31
|
+
"reconfigureHint": "You can set it up again later."
|
|
32
|
+
},
|
|
16
33
|
"block": "Block",
|
|
17
34
|
"@block": {
|
|
18
35
|
"description": "Generic fallback NOUN for a board item whose title is unknown (a service / module / task node). Not the verb 'to block'."
|
|
@@ -21,6 +38,21 @@
|
|
|
21
38
|
"close": "Close",
|
|
22
39
|
"@close": {
|
|
23
40
|
"description": "Verb meaning dismiss / shut (a panel, drawer, dialog), NOT the adjective 'near'. Used as an aria-label on close affordances - translate as the imperative verb."
|
|
41
|
+
},
|
|
42
|
+
"disconnect": "Disconnect",
|
|
43
|
+
"copyFailed": "Couldn't copy to clipboard",
|
|
44
|
+
"revoke": "Revoke",
|
|
45
|
+
"clear": "Clear",
|
|
46
|
+
"destroy": "Destroy",
|
|
47
|
+
"toast": {
|
|
48
|
+
"disconnected": "Disconnected {name}",
|
|
49
|
+
"removed": "Removed {name}",
|
|
50
|
+
"revoked": "Revoked {name}",
|
|
51
|
+
"cleared": "Cleared {name}",
|
|
52
|
+
"destroyed": "Destroyed {name}"
|
|
53
|
+
},
|
|
54
|
+
"@clear": {
|
|
55
|
+
"description": "Verb meaning empty / reset a stored value (a config, a saved connection), NOT the adjective 'transparent / obvious'. Used as a destructive-action button label."
|
|
24
56
|
}
|
|
25
57
|
},
|
|
26
58
|
"nav": {
|
|
@@ -250,6 +282,10 @@
|
|
|
250
282
|
"blockedByDependenciesTitle": "Blocked by dependencies",
|
|
251
283
|
"noPipelineTitle": "No pipeline defined",
|
|
252
284
|
"noPipelineBody": "Create one in the builder first.",
|
|
285
|
+
"startedToast": {
|
|
286
|
+
"title": "Run started",
|
|
287
|
+
"body": "Running \"{name}\"."
|
|
288
|
+
},
|
|
253
289
|
"pr": "PR",
|
|
254
290
|
"prNumber": "PR #{number}",
|
|
255
291
|
"openPrOnGithub": "Open {pr} on GitHub",
|
|
@@ -291,7 +327,9 @@
|
|
|
291
327
|
"github_not_connected": "GitHub not connected",
|
|
292
328
|
"bootstrap_not_retryable": "Bootstrap can’t be retried",
|
|
293
329
|
"bootstrap_reference_missing": "Reference architecture is gone",
|
|
294
|
-
"provision_type_unhandled": "No handler for this provision type"
|
|
330
|
+
"provision_type_unhandled": "No handler for this provision type",
|
|
331
|
+
"preset_unsatisfiable": "Model preset can't run this pipeline",
|
|
332
|
+
"visual_pipeline_no_frontend": "No frontend to test"
|
|
295
333
|
},
|
|
296
334
|
"fallbackMessage": "This action conflicts with the current state.",
|
|
297
335
|
"providersUnconfigured": {
|
|
@@ -359,6 +397,10 @@
|
|
|
359
397
|
"step2": "Open the credentials file Codex wrote at ~/.codex/auth.json (on Windows %USERPROFILE%\\.codex\\auth.json).",
|
|
360
398
|
"step3": "Copy the entire contents of auth.json, paste it below, and choose a personal password to protect it."
|
|
361
399
|
}
|
|
400
|
+
},
|
|
401
|
+
"confirmDisconnect": {
|
|
402
|
+
"title": "Disconnect this subscription?",
|
|
403
|
+
"body": "Your \"{vendor}\" subscription will be disconnected. This can't be undone."
|
|
362
404
|
}
|
|
363
405
|
},
|
|
364
406
|
"inspector": {
|
|
@@ -429,12 +471,14 @@
|
|
|
429
471
|
"serveScript": "Serve script",
|
|
430
472
|
"servePort": "Serve port",
|
|
431
473
|
"mockMappingsPath": "Mock mappings path",
|
|
474
|
+
"mockMappingsHint": "WireMock's root directory. Put stub JSON in a mappings/ subfolder inside it (and response bodies in __files/), e.g. mocks/mappings/. A folder with no mappings/ inside runs an empty mock.",
|
|
432
475
|
"envInjection": "Env injection",
|
|
433
476
|
"envBuild": "Build-time",
|
|
434
477
|
"envRuntime": "Runtime",
|
|
435
|
-
"envInjectionHint": "Build-time injects the backend URLs as build env vars; Runtime writes them into a window.env shim.",
|
|
478
|
+
"envInjectionHint": "Build-time injects the backend URLs as build env vars; Runtime writes them into a window.env shim. Note your build tool may only expose prefixed vars (e.g. VITE_) to the browser, so name bindings to match its convention.",
|
|
436
479
|
"previewEnabled": "Enable browsable preview",
|
|
437
480
|
"previewHint": "Keeps a served preview running with a clickable URL. Local and Node runtimes only.",
|
|
481
|
+
"previewUnsupported": "This deployment can't host a browsable preview. Run on a Local or Node deployment to keep a served preview with a clickable URL.",
|
|
438
482
|
"bindings": {
|
|
439
483
|
"title": "Backend bindings",
|
|
440
484
|
"hint": "Each env var the frontend reads for an upstream URL, and where it resolves: a bound service's ephemeral environment, or a WireMock stub.",
|
|
@@ -456,7 +500,8 @@
|
|
|
456
500
|
"saveMonitoring": "Save monitoring",
|
|
457
501
|
"savedToast": "Monitoring saved",
|
|
458
502
|
"saveFailed": "Could not save the mapping",
|
|
459
|
-
"clearFailed": "Could not clear the mapping"
|
|
503
|
+
"clearFailed": "Could not clear the mapping",
|
|
504
|
+
"configNoun": "the release health configuration"
|
|
460
505
|
},
|
|
461
506
|
"testConfig": {
|
|
462
507
|
"title": "Test infrastructure",
|
|
@@ -551,7 +596,11 @@
|
|
|
551
596
|
"merged": "Merged",
|
|
552
597
|
"notMerged": "Not merged yet",
|
|
553
598
|
"empty": "No dependencies. Can run any time.",
|
|
554
|
-
"blocked": "Blocked until dependencies merge."
|
|
599
|
+
"blocked": "Blocked until dependencies merge.",
|
|
600
|
+
"confirmRemove": {
|
|
601
|
+
"title": "Remove this dependency?",
|
|
602
|
+
"body": "This task will no longer wait for \"{name}\"."
|
|
603
|
+
}
|
|
555
604
|
},
|
|
556
605
|
"estimate": {
|
|
557
606
|
"title": "Estimate",
|
|
@@ -565,6 +614,10 @@
|
|
|
565
614
|
"reviewing": "Re-reviewing…",
|
|
566
615
|
"recommending": "Recommending…"
|
|
567
616
|
},
|
|
617
|
+
"empty": {
|
|
618
|
+
"title": "No runs yet",
|
|
619
|
+
"body": "Start a pipeline to see execution history here."
|
|
620
|
+
},
|
|
568
621
|
"prNumber": "PR #{number}",
|
|
569
622
|
"pullRequest": "Pull request",
|
|
570
623
|
"stepState": {
|
|
@@ -706,7 +759,9 @@
|
|
|
706
759
|
"done": "Finishing up"
|
|
707
760
|
},
|
|
708
761
|
"id": "Container",
|
|
709
|
-
"url": "Address"
|
|
762
|
+
"url": "Address",
|
|
763
|
+
"copyId": "Copy container id",
|
|
764
|
+
"copyUrl": "Copy address"
|
|
710
765
|
},
|
|
711
766
|
"subtasks": "Subtasks · {completed}/{total}",
|
|
712
767
|
"standardsApplied": "Standards applied",
|
|
@@ -779,6 +834,24 @@
|
|
|
779
834
|
"deleteTask": "Delete task",
|
|
780
835
|
"deleteModule": "Delete module",
|
|
781
836
|
"deleteService": "Delete service",
|
|
837
|
+
"confirmDelete": {
|
|
838
|
+
"task": {
|
|
839
|
+
"title": "Delete this task?",
|
|
840
|
+
"body": "\"{name}\" and its run history will be removed. This can't be undone."
|
|
841
|
+
},
|
|
842
|
+
"module": {
|
|
843
|
+
"title": "Delete this module?",
|
|
844
|
+
"body": "\"{name}\" and everything inside it will be removed. This can't be undone."
|
|
845
|
+
},
|
|
846
|
+
"service": {
|
|
847
|
+
"title": "Delete this service?",
|
|
848
|
+
"body": "\"{name}\" and everything inside it will be removed. This can't be undone."
|
|
849
|
+
},
|
|
850
|
+
"recurring": {
|
|
851
|
+
"title": "Delete this recurring pipeline?",
|
|
852
|
+
"body": "\"{name}\", its schedule and its run history will be removed. This can't be undone."
|
|
853
|
+
}
|
|
854
|
+
},
|
|
782
855
|
"titlePlaceholder": "Title…",
|
|
783
856
|
"reworkedRequirements": "Reworked requirements",
|
|
784
857
|
"agentStepsUseDocument": "Agent steps use this document.",
|
|
@@ -1059,7 +1132,8 @@
|
|
|
1059
1132
|
"revokeInvite": "Could not revoke invitation",
|
|
1060
1133
|
"connectEmail": "Could not connect email sender",
|
|
1061
1134
|
"disconnectEmail": "Could not disconnect email sender"
|
|
1062
|
-
}
|
|
1135
|
+
},
|
|
1136
|
+
"emailNoun": "email sending"
|
|
1063
1137
|
},
|
|
1064
1138
|
"boardSwitcher": {
|
|
1065
1139
|
"accountFallback": "Account",
|
|
@@ -1103,6 +1177,10 @@
|
|
|
1103
1177
|
"openBoardFailed": "Could not open board",
|
|
1104
1178
|
"boardDeleted": "Board deleted",
|
|
1105
1179
|
"deleteBoardFailed": "Could not delete board"
|
|
1180
|
+
},
|
|
1181
|
+
"confirmDelete": {
|
|
1182
|
+
"title": "Delete this board?",
|
|
1183
|
+
"body": "\"{name}\" and everything in it will be removed. This can't be undone."
|
|
1106
1184
|
}
|
|
1107
1185
|
},
|
|
1108
1186
|
"notifications": {
|
|
@@ -1110,6 +1188,10 @@
|
|
|
1110
1188
|
"overdue": "Overdue",
|
|
1111
1189
|
"openPr": "Open PR",
|
|
1112
1190
|
"dismiss": "Dismiss",
|
|
1191
|
+
"toast": {
|
|
1192
|
+
"acted": "Marked as handled",
|
|
1193
|
+
"dismissed": "Dismissed"
|
|
1194
|
+
},
|
|
1113
1195
|
"action": {
|
|
1114
1196
|
"merge_review": "Merge",
|
|
1115
1197
|
"pipeline_complete": "Confirm & merge",
|
|
@@ -1156,6 +1238,27 @@
|
|
|
1156
1238
|
"runner-pool": "Configure runner pool"
|
|
1157
1239
|
}
|
|
1158
1240
|
},
|
|
1241
|
+
"infraSetupBanner": {
|
|
1242
|
+
"agentExecutor": {
|
|
1243
|
+
"title": "Agent executor not configured",
|
|
1244
|
+
"body": "This deployment runs agents on a self-hosted runner pool, but none is registered, so no agent can run until you connect one.",
|
|
1245
|
+
"action": "Configure runner pool"
|
|
1246
|
+
},
|
|
1247
|
+
"ephemeralEnvironments": {
|
|
1248
|
+
"title": "Test environment not configured",
|
|
1249
|
+
"body": "No ephemeral environment provider is registered, so testing agents that need a live environment can't run. Connect one to enable them.",
|
|
1250
|
+
"action": "Configure environment"
|
|
1251
|
+
},
|
|
1252
|
+
"binaryStorage": {
|
|
1253
|
+
"title": "Content storage not configured",
|
|
1254
|
+
"body": "No binary storage backend is configured for this account, so UI screenshots and reference images have nowhere to live and the visual checks are skipped. Configure storage to enable them.",
|
|
1255
|
+
"action": "Configure storage"
|
|
1256
|
+
},
|
|
1257
|
+
"dismiss": {
|
|
1258
|
+
"session": "Dismiss for this session",
|
|
1259
|
+
"permanent": "I'm OK with the limitations, don't notify me again"
|
|
1260
|
+
}
|
|
1261
|
+
},
|
|
1159
1262
|
"spendWarningBanner": {
|
|
1160
1263
|
"title": "Spend limit reached, agent execution paused",
|
|
1161
1264
|
"body": "This month's token spend has hit the configured budget, so running pipelines were paused to avoid further cost. Execution resumes automatically when the budget rolls over next month, or once the limit is raised.",
|
|
@@ -1223,7 +1326,8 @@
|
|
|
1223
1326
|
"serviceFragmentDefaults": "Default service best practices",
|
|
1224
1327
|
"accountSettings": "Account settings",
|
|
1225
1328
|
"localModels": "My local runners",
|
|
1226
|
-
"sandbox": "Open Sandbox"
|
|
1329
|
+
"sandbox": "Open Sandbox",
|
|
1330
|
+
"shortcuts": "Keyboard shortcuts"
|
|
1227
1331
|
},
|
|
1228
1332
|
"keywords": {
|
|
1229
1333
|
"newPipeline": "pipeline agents chain",
|
|
@@ -1242,9 +1346,17 @@
|
|
|
1242
1346
|
"serviceFragmentDefaults": "fragment best practice guideline service default code-aware",
|
|
1243
1347
|
"accountSettings": "account team members roles invitations email api keys fragment best practice library context organization personal",
|
|
1244
1348
|
"localModels": "local model runner ollama lm studio llamacpp vllm endpoint",
|
|
1245
|
-
"sandbox": "sandbox prompt model test experiment judge fixture benchmark evaluate"
|
|
1349
|
+
"sandbox": "sandbox prompt model test experiment judge fixture benchmark evaluate",
|
|
1350
|
+
"shortcuts": "keyboard shortcuts keys hotkeys cheatsheet help"
|
|
1246
1351
|
}
|
|
1247
1352
|
},
|
|
1353
|
+
"shortcuts": {
|
|
1354
|
+
"title": "Keyboard shortcuts",
|
|
1355
|
+
"commandBar": "Open the command bar",
|
|
1356
|
+
"deselect": "Deselect / close the inspector",
|
|
1357
|
+
"deleteBlock": "Delete the selected block",
|
|
1358
|
+
"help": "Show this cheatsheet"
|
|
1359
|
+
},
|
|
1248
1360
|
"integrationsHub": {
|
|
1249
1361
|
"title": "Integrations",
|
|
1250
1362
|
"intro": "Connect and manage the external systems this workspace can link in.",
|
|
@@ -1323,6 +1435,10 @@
|
|
|
1323
1435
|
"subtitle": "Presets that map a model to every agent. A task picks one; tasks default to the workspace default preset.",
|
|
1324
1436
|
"back": "Back",
|
|
1325
1437
|
"closeEsc": "Close (Esc)",
|
|
1438
|
+
"confirmDelete": {
|
|
1439
|
+
"title": "Delete this model preset?",
|
|
1440
|
+
"body": "\"{name}\" will be removed. Tasks using it fall back to the workspace default."
|
|
1441
|
+
},
|
|
1326
1442
|
"quota": "quota",
|
|
1327
1443
|
"list": {
|
|
1328
1444
|
"intro": "Each preset sets a {baseModel} for every agent, with optional per-agent overrides. A model pinned on an individual task still overrides the preset.",
|
|
@@ -1412,6 +1528,9 @@
|
|
|
1412
1528
|
"apiServerUrlHelp": "The kube-apiserver root, e.g. https://my-cluster.example:6443.",
|
|
1413
1529
|
"apiToken": "ServiceAccount token",
|
|
1414
1530
|
"apiTokenHelp": "Write-only; re-enter it to rotate. Stored encrypted, never returned.",
|
|
1531
|
+
"apiTokenHelpStored": "A token is saved and reused for tests. Leave blank to keep it, or enter a new one to replace it.",
|
|
1532
|
+
"apiTokenPlaceholderStored": "Leave blank to keep the saved token",
|
|
1533
|
+
"tokenSaved": "Saved",
|
|
1415
1534
|
"urlSourceLabel": "Environment URL source",
|
|
1416
1535
|
"urlIngressTemplate": "Ingress host template",
|
|
1417
1536
|
"urlIngressStatus": "Ingress status",
|
|
@@ -1464,6 +1583,9 @@
|
|
|
1464
1583
|
"handler": {
|
|
1465
1584
|
"intro": "Configure how each provision type a service declares is handled: the engine and connection. A service's manifests/compose path (the what/where) is set on the service.",
|
|
1466
1585
|
"activeEngine": "Engine:",
|
|
1586
|
+
"connectionEstablished": "Connection established",
|
|
1587
|
+
"notConnected": "No connection configured yet",
|
|
1588
|
+
"disconnect": "Remove connection",
|
|
1467
1589
|
"engineLabel": "Engine",
|
|
1468
1590
|
"customHandlerTitle": "Remote-custom handler",
|
|
1469
1591
|
"customTypeLabel": "Custom type",
|
|
@@ -1477,7 +1599,10 @@
|
|
|
1477
1599
|
"overrideActive": "Active",
|
|
1478
1600
|
"personalOverrideHint": "Override the workspace handler for this provision type on your own machine. Stored per user.",
|
|
1479
1601
|
"removeOverride": "Remove override",
|
|
1480
|
-
"loading": "Loading infrastructure settings…"
|
|
1602
|
+
"loading": "Loading infrastructure settings…",
|
|
1603
|
+
"kubeNoun": "the Kubernetes handler",
|
|
1604
|
+
"kubeOverrideNoun": "the Kubernetes override",
|
|
1605
|
+
"customNoun": "this handler"
|
|
1481
1606
|
}
|
|
1482
1607
|
},
|
|
1483
1608
|
"providerConnection": {
|
|
@@ -1692,11 +1817,19 @@
|
|
|
1692
1817
|
"saveFailed": "Could not save secret",
|
|
1693
1818
|
"removed": "Secret removed",
|
|
1694
1819
|
"removeFailed": "Could not remove secret"
|
|
1820
|
+
},
|
|
1821
|
+
"confirmRemove": {
|
|
1822
|
+
"title": "Remove this secret?",
|
|
1823
|
+
"body": "\"{name}\" will be removed. This can't be undone."
|
|
1695
1824
|
}
|
|
1696
1825
|
},
|
|
1697
1826
|
"mergeThresholds": {
|
|
1698
1827
|
"intro": "Named auto-merge policies a task can choose. After CI passes, the {merger} agent scores the PR on complexity, risk and impact (0-100%); the PR auto-merges only when every score is at or below the preset's ceilings, otherwise a review notification is raised. The default preset governs any task that picks none.",
|
|
1699
1828
|
"mergerAgent": "merger",
|
|
1829
|
+
"confirmDelete": {
|
|
1830
|
+
"title": "Delete this merge preset?",
|
|
1831
|
+
"body": "\"{name}\" will be removed. Tasks using it fall back to the workspace default."
|
|
1832
|
+
},
|
|
1700
1833
|
"concern": {
|
|
1701
1834
|
"none": "None (always stop)",
|
|
1702
1835
|
"low": "Low",
|
|
@@ -1778,7 +1911,9 @@
|
|
|
1778
1911
|
"connected": "Observability connected",
|
|
1779
1912
|
"connectFailed": "Could not save the connection",
|
|
1780
1913
|
"disconnectFailed": "Could not disconnect"
|
|
1781
|
-
}
|
|
1914
|
+
},
|
|
1915
|
+
"connectionNoun": "the observability connection",
|
|
1916
|
+
"incidentNoun": "the incident provider"
|
|
1782
1917
|
},
|
|
1783
1918
|
"localMode": {
|
|
1784
1919
|
"title": "Local mode",
|
|
@@ -1948,6 +2083,10 @@
|
|
|
1948
2083
|
"saveFailed": "Could not save runner",
|
|
1949
2084
|
"removed": "Runner removed",
|
|
1950
2085
|
"removeFailed": "Could not remove runner"
|
|
2086
|
+
},
|
|
2087
|
+
"confirmRemove": {
|
|
2088
|
+
"title": "Remove this runner?",
|
|
2089
|
+
"body": "\"{name}\" will be removed. This can't be undone."
|
|
1951
2090
|
}
|
|
1952
2091
|
}
|
|
1953
2092
|
},
|
|
@@ -2074,7 +2213,8 @@
|
|
|
2074
2213
|
"step1": "Generate a virtual key on your LiteLLM gateway (or use its master key).",
|
|
2075
2214
|
"step2": "The gateway's base URL is set by your deployment operator (LITELLM_BASE_URL), not here."
|
|
2076
2215
|
}
|
|
2077
|
-
}
|
|
2216
|
+
},
|
|
2217
|
+
"keyNoun": "this API key"
|
|
2078
2218
|
},
|
|
2079
2219
|
"vendorCredentials": {
|
|
2080
2220
|
"title": "LLM Vendors",
|
|
@@ -2115,6 +2255,10 @@
|
|
|
2115
2255
|
"step2": "Copy the API key. Agent steps will run via Claude Code against DeepSeek's Anthropic endpoint with full context.",
|
|
2116
2256
|
"step3": "Paste the key below."
|
|
2117
2257
|
}
|
|
2258
|
+
},
|
|
2259
|
+
"confirmRemove": {
|
|
2260
|
+
"title": "Remove this credential?",
|
|
2261
|
+
"body": "\"{name}\" will be removed. This can't be undone."
|
|
2118
2262
|
}
|
|
2119
2263
|
}
|
|
2120
2264
|
},
|
|
@@ -2211,6 +2355,10 @@
|
|
|
2211
2355
|
"createBranch": "Could not create branch",
|
|
2212
2356
|
"openPr": "Could not open pull request",
|
|
2213
2357
|
"merge": "Could not merge"
|
|
2358
|
+
},
|
|
2359
|
+
"confirmDisconnect": {
|
|
2360
|
+
"title": "Disconnect GitHub?",
|
|
2361
|
+
"body": "The app will lose access to your repositories until you reconnect."
|
|
2214
2362
|
}
|
|
2215
2363
|
},
|
|
2216
2364
|
"addService": {
|
|
@@ -2322,6 +2470,10 @@
|
|
|
2322
2470
|
"disconnect": "Could not disconnect Slack",
|
|
2323
2471
|
"saveRouting": "Could not save routing",
|
|
2324
2472
|
"saveMap": "Could not save member map"
|
|
2473
|
+
},
|
|
2474
|
+
"confirmDisconnect": {
|
|
2475
|
+
"title": "Disconnect Slack?",
|
|
2476
|
+
"body": "Slack notifications will stop until you reconnect."
|
|
2325
2477
|
}
|
|
2326
2478
|
},
|
|
2327
2479
|
"documents": {
|
|
@@ -2518,6 +2670,10 @@
|
|
|
2518
2670
|
"clone": "Clone",
|
|
2519
2671
|
"edit": "Edit this pipeline",
|
|
2520
2672
|
"delete": "Delete this pipeline",
|
|
2673
|
+
"confirmDeletePipeline": {
|
|
2674
|
+
"title": "Delete this pipeline?",
|
|
2675
|
+
"body": "\"{name}\" will be removed. This can't be undone."
|
|
2676
|
+
},
|
|
2521
2677
|
"disabledStepTooltip": "Disabled, skipped at run",
|
|
2522
2678
|
"cancelEdit": "Cancel edit",
|
|
2523
2679
|
"clear": "Clear",
|
|
@@ -3151,7 +3307,9 @@
|
|
|
3151
3307
|
"completed": "completed",
|
|
3152
3308
|
"failed": "failed",
|
|
3153
3309
|
"inProgress": "in progress"
|
|
3154
|
-
}
|
|
3310
|
+
},
|
|
3311
|
+
"envNoun": "the test environment",
|
|
3312
|
+
"destroyFailed": "Could not destroy the environment"
|
|
3155
3313
|
},
|
|
3156
3314
|
"testing": {
|
|
3157
3315
|
"title": "Test report",
|
|
@@ -3509,6 +3667,10 @@
|
|
|
3509
3667
|
"checkSourceFailed": "Could not check source",
|
|
3510
3668
|
"sourceUnlinked": "Source unlinked",
|
|
3511
3669
|
"unlinkSourceFailed": "Could not unlink source"
|
|
3670
|
+
},
|
|
3671
|
+
"confirmRemove": {
|
|
3672
|
+
"title": "Delete this fragment?",
|
|
3673
|
+
"body": "\"{name}\" will be removed. This can't be undone."
|
|
3512
3674
|
}
|
|
3513
3675
|
},
|
|
3514
3676
|
"sandbox": {
|