@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.
- package/app/components/board/AgentFailureCard.vue +3 -0
- package/app/components/board/TaskDependencyEdges.vue +66 -0
- package/app/components/board/nodes/BlockNode.vue +10 -2
- package/app/components/board/nodes/TaskCard.vue +12 -1
- 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/fragments/FragmentLibraryManager.vue +10 -0
- package/app/components/github/GitHubPanel.vue +9 -0
- package/app/components/layout/BoardSwitcher.vue +11 -0
- package/app/components/layout/CommandBar.vue +8 -0
- package/app/components/layout/NotificationsInbox.vue +11 -0
- package/app/components/panels/InspectorPanel.vue +9 -13
- package/app/components/panels/StepContainerStatus.vue +37 -0
- package/app/components/panels/inspector/FrontendConfig.vue +349 -0
- package/app/components/panels/inspector/TaskDependencies.vue +18 -4
- package/app/components/panels/inspector/TaskExecution.vue +24 -0
- package/app/components/pipeline/PipelineBuilder.vue +13 -1
- package/app/components/providers/PersonalSubscriptionSection.vue +9 -0
- package/app/components/providers/VendorCredentialsModal.vue +12 -3
- 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/UserSecretsSection.vue +11 -0
- package/app/components/slack/SlackPanel.vue +9 -0
- package/app/components/tasks/ContextIssuePicker.vue +8 -4
- package/app/composables/useBlockDeletion.ts +63 -0
- package/app/composables/useConfirm.ts +63 -0
- package/app/composables/useKeyboardShortcuts.ts +76 -0
- package/app/pages/index.vue +8 -0
- package/app/stores/agentRuns.spec.ts +56 -0
- package/app/stores/agentRuns.ts +22 -4
- package/app/stores/ui.ts +16 -0
- package/app/types/domain.ts +7 -0
- package/i18n/locales/en.json +131 -5
- package/i18n/locales/es.json +135 -9
- package/i18n/locales/fr.json +135 -9
- package/i18n/locales/he.json +135 -9
- package/i18n/locales/ja.json +135 -9
- package/i18n/locales/pl.json +135 -9
- package/i18n/locales/tr.json +135 -9
- package/i18n/locales/uk.json +135 -9
- package/package.json +2 -2
package/i18n/locales/en.json
CHANGED
|
@@ -13,6 +13,13 @@
|
|
|
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
|
+
},
|
|
16
23
|
"block": "Block",
|
|
17
24
|
"@block": {
|
|
18
25
|
"description": "Generic fallback NOUN for a board item whose title is unknown (a service / module / task node). Not the verb 'to block'."
|
|
@@ -21,7 +28,9 @@
|
|
|
21
28
|
"close": "Close",
|
|
22
29
|
"@close": {
|
|
23
30
|
"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."
|
|
24
|
-
}
|
|
31
|
+
},
|
|
32
|
+
"disconnect": "Disconnect",
|
|
33
|
+
"copyFailed": "Couldn't copy to clipboard"
|
|
25
34
|
},
|
|
26
35
|
"nav": {
|
|
27
36
|
"menu": "Navigation menu",
|
|
@@ -250,6 +259,10 @@
|
|
|
250
259
|
"blockedByDependenciesTitle": "Blocked by dependencies",
|
|
251
260
|
"noPipelineTitle": "No pipeline defined",
|
|
252
261
|
"noPipelineBody": "Create one in the builder first.",
|
|
262
|
+
"startedToast": {
|
|
263
|
+
"title": "Run started",
|
|
264
|
+
"body": "Running \"{name}\"."
|
|
265
|
+
},
|
|
253
266
|
"pr": "PR",
|
|
254
267
|
"prNumber": "PR #{number}",
|
|
255
268
|
"openPrOnGithub": "Open {pr} on GitHub",
|
|
@@ -359,6 +372,10 @@
|
|
|
359
372
|
"step2": "Open the credentials file Codex wrote at ~/.codex/auth.json (on Windows %USERPROFILE%\\.codex\\auth.json).",
|
|
360
373
|
"step3": "Copy the entire contents of auth.json, paste it below, and choose a personal password to protect it."
|
|
361
374
|
}
|
|
375
|
+
},
|
|
376
|
+
"confirmDisconnect": {
|
|
377
|
+
"title": "Disconnect this subscription?",
|
|
378
|
+
"body": "Your \"{vendor}\" subscription will be disconnected. This can't be undone."
|
|
362
379
|
}
|
|
363
380
|
},
|
|
364
381
|
"inspector": {
|
|
@@ -415,6 +432,34 @@
|
|
|
415
432
|
"manageBoard": "Manage this board's fragment library…",
|
|
416
433
|
"manageAccount": "Manage account fragments…"
|
|
417
434
|
},
|
|
435
|
+
"frontendConfig": {
|
|
436
|
+
"title": "Frontend",
|
|
437
|
+
"hint": "How to build, serve, and mock this frontend for a self-contained UI test. Bindings below link it to the backend services it calls.",
|
|
438
|
+
"packageManager": "Package manager",
|
|
439
|
+
"installCommand": "Install command",
|
|
440
|
+
"buildScript": "Build script",
|
|
441
|
+
"outputDir": "Output directory",
|
|
442
|
+
"serveMode": "Serve mode",
|
|
443
|
+
"serveStatic": "Static",
|
|
444
|
+
"serveCommand": "Command",
|
|
445
|
+
"serveModeHint": "Static serves the build output directory; Command runs a package.json script (e.g. preview).",
|
|
446
|
+
"serveScript": "Serve script",
|
|
447
|
+
"servePort": "Serve port",
|
|
448
|
+
"mockMappingsPath": "Mock mappings path",
|
|
449
|
+
"envInjection": "Env injection",
|
|
450
|
+
"envBuild": "Build-time",
|
|
451
|
+
"envRuntime": "Runtime",
|
|
452
|
+
"envInjectionHint": "Build-time injects the backend URLs as build env vars; Runtime writes them into a window.env shim.",
|
|
453
|
+
"previewEnabled": "Enable browsable preview",
|
|
454
|
+
"previewHint": "Keeps a served preview running with a clickable URL. Local and Node runtimes only.",
|
|
455
|
+
"bindings": {
|
|
456
|
+
"title": "Backend bindings",
|
|
457
|
+
"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.",
|
|
458
|
+
"mock": "Mock (WireMock)",
|
|
459
|
+
"remove": "Remove binding",
|
|
460
|
+
"empty": "No backend bindings. Add one to point an env var at a service or a mock."
|
|
461
|
+
}
|
|
462
|
+
},
|
|
418
463
|
"releaseHealth": {
|
|
419
464
|
"title": "Post-release health",
|
|
420
465
|
"clear": "Clear",
|
|
@@ -523,7 +568,11 @@
|
|
|
523
568
|
"merged": "Merged",
|
|
524
569
|
"notMerged": "Not merged yet",
|
|
525
570
|
"empty": "No dependencies. Can run any time.",
|
|
526
|
-
"blocked": "Blocked until dependencies merge."
|
|
571
|
+
"blocked": "Blocked until dependencies merge.",
|
|
572
|
+
"confirmRemove": {
|
|
573
|
+
"title": "Remove this dependency?",
|
|
574
|
+
"body": "This task will no longer wait for \"{name}\"."
|
|
575
|
+
}
|
|
527
576
|
},
|
|
528
577
|
"estimate": {
|
|
529
578
|
"title": "Estimate",
|
|
@@ -537,6 +586,10 @@
|
|
|
537
586
|
"reviewing": "Re-reviewing…",
|
|
538
587
|
"recommending": "Recommending…"
|
|
539
588
|
},
|
|
589
|
+
"empty": {
|
|
590
|
+
"title": "No runs yet",
|
|
591
|
+
"body": "Start a pipeline to see execution history here."
|
|
592
|
+
},
|
|
540
593
|
"prNumber": "PR #{number}",
|
|
541
594
|
"pullRequest": "Pull request",
|
|
542
595
|
"stepState": {
|
|
@@ -678,7 +731,9 @@
|
|
|
678
731
|
"done": "Finishing up"
|
|
679
732
|
},
|
|
680
733
|
"id": "Container",
|
|
681
|
-
"url": "Address"
|
|
734
|
+
"url": "Address",
|
|
735
|
+
"copyId": "Copy container id",
|
|
736
|
+
"copyUrl": "Copy address"
|
|
682
737
|
},
|
|
683
738
|
"subtasks": "Subtasks · {completed}/{total}",
|
|
684
739
|
"standardsApplied": "Standards applied",
|
|
@@ -751,6 +806,24 @@
|
|
|
751
806
|
"deleteTask": "Delete task",
|
|
752
807
|
"deleteModule": "Delete module",
|
|
753
808
|
"deleteService": "Delete service",
|
|
809
|
+
"confirmDelete": {
|
|
810
|
+
"task": {
|
|
811
|
+
"title": "Delete this task?",
|
|
812
|
+
"body": "\"{name}\" and its run history will be removed. This can't be undone."
|
|
813
|
+
},
|
|
814
|
+
"module": {
|
|
815
|
+
"title": "Delete this module?",
|
|
816
|
+
"body": "\"{name}\" and everything inside it will be removed. This can't be undone."
|
|
817
|
+
},
|
|
818
|
+
"service": {
|
|
819
|
+
"title": "Delete this service?",
|
|
820
|
+
"body": "\"{name}\" and everything inside it will be removed. This can't be undone."
|
|
821
|
+
},
|
|
822
|
+
"recurring": {
|
|
823
|
+
"title": "Delete this recurring pipeline?",
|
|
824
|
+
"body": "\"{name}\", its schedule and its run history will be removed. This can't be undone."
|
|
825
|
+
}
|
|
826
|
+
},
|
|
754
827
|
"titlePlaceholder": "Title…",
|
|
755
828
|
"reworkedRequirements": "Reworked requirements",
|
|
756
829
|
"agentStepsUseDocument": "Agent steps use this document.",
|
|
@@ -1075,6 +1148,10 @@
|
|
|
1075
1148
|
"openBoardFailed": "Could not open board",
|
|
1076
1149
|
"boardDeleted": "Board deleted",
|
|
1077
1150
|
"deleteBoardFailed": "Could not delete board"
|
|
1151
|
+
},
|
|
1152
|
+
"confirmDelete": {
|
|
1153
|
+
"title": "Delete this board?",
|
|
1154
|
+
"body": "\"{name}\" and everything in it will be removed. This can't be undone."
|
|
1078
1155
|
}
|
|
1079
1156
|
},
|
|
1080
1157
|
"notifications": {
|
|
@@ -1082,6 +1159,10 @@
|
|
|
1082
1159
|
"overdue": "Overdue",
|
|
1083
1160
|
"openPr": "Open PR",
|
|
1084
1161
|
"dismiss": "Dismiss",
|
|
1162
|
+
"toast": {
|
|
1163
|
+
"acted": "Marked as handled",
|
|
1164
|
+
"dismissed": "Dismissed"
|
|
1165
|
+
},
|
|
1085
1166
|
"action": {
|
|
1086
1167
|
"merge_review": "Merge",
|
|
1087
1168
|
"pipeline_complete": "Confirm & merge",
|
|
@@ -1195,7 +1276,8 @@
|
|
|
1195
1276
|
"serviceFragmentDefaults": "Default service best practices",
|
|
1196
1277
|
"accountSettings": "Account settings",
|
|
1197
1278
|
"localModels": "My local runners",
|
|
1198
|
-
"sandbox": "Open Sandbox"
|
|
1279
|
+
"sandbox": "Open Sandbox",
|
|
1280
|
+
"shortcuts": "Keyboard shortcuts"
|
|
1199
1281
|
},
|
|
1200
1282
|
"keywords": {
|
|
1201
1283
|
"newPipeline": "pipeline agents chain",
|
|
@@ -1214,9 +1296,17 @@
|
|
|
1214
1296
|
"serviceFragmentDefaults": "fragment best practice guideline service default code-aware",
|
|
1215
1297
|
"accountSettings": "account team members roles invitations email api keys fragment best practice library context organization personal",
|
|
1216
1298
|
"localModels": "local model runner ollama lm studio llamacpp vllm endpoint",
|
|
1217
|
-
"sandbox": "sandbox prompt model test experiment judge fixture benchmark evaluate"
|
|
1299
|
+
"sandbox": "sandbox prompt model test experiment judge fixture benchmark evaluate",
|
|
1300
|
+
"shortcuts": "keyboard shortcuts keys hotkeys cheatsheet help"
|
|
1218
1301
|
}
|
|
1219
1302
|
},
|
|
1303
|
+
"shortcuts": {
|
|
1304
|
+
"title": "Keyboard shortcuts",
|
|
1305
|
+
"commandBar": "Open the command bar",
|
|
1306
|
+
"deselect": "Deselect / close the inspector",
|
|
1307
|
+
"deleteBlock": "Delete the selected block",
|
|
1308
|
+
"help": "Show this cheatsheet"
|
|
1309
|
+
},
|
|
1220
1310
|
"integrationsHub": {
|
|
1221
1311
|
"title": "Integrations",
|
|
1222
1312
|
"intro": "Connect and manage the external systems this workspace can link in.",
|
|
@@ -1295,6 +1385,10 @@
|
|
|
1295
1385
|
"subtitle": "Presets that map a model to every agent. A task picks one; tasks default to the workspace default preset.",
|
|
1296
1386
|
"back": "Back",
|
|
1297
1387
|
"closeEsc": "Close (Esc)",
|
|
1388
|
+
"confirmDelete": {
|
|
1389
|
+
"title": "Delete this model preset?",
|
|
1390
|
+
"body": "\"{name}\" will be removed. Tasks using it fall back to the workspace default."
|
|
1391
|
+
},
|
|
1298
1392
|
"quota": "quota",
|
|
1299
1393
|
"list": {
|
|
1300
1394
|
"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.",
|
|
@@ -1664,11 +1758,19 @@
|
|
|
1664
1758
|
"saveFailed": "Could not save secret",
|
|
1665
1759
|
"removed": "Secret removed",
|
|
1666
1760
|
"removeFailed": "Could not remove secret"
|
|
1761
|
+
},
|
|
1762
|
+
"confirmRemove": {
|
|
1763
|
+
"title": "Remove this secret?",
|
|
1764
|
+
"body": "\"{name}\" will be removed. This can't be undone."
|
|
1667
1765
|
}
|
|
1668
1766
|
},
|
|
1669
1767
|
"mergeThresholds": {
|
|
1670
1768
|
"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.",
|
|
1671
1769
|
"mergerAgent": "merger",
|
|
1770
|
+
"confirmDelete": {
|
|
1771
|
+
"title": "Delete this merge preset?",
|
|
1772
|
+
"body": "\"{name}\" will be removed. Tasks using it fall back to the workspace default."
|
|
1773
|
+
},
|
|
1672
1774
|
"concern": {
|
|
1673
1775
|
"none": "None (always stop)",
|
|
1674
1776
|
"low": "Low",
|
|
@@ -1920,6 +2022,10 @@
|
|
|
1920
2022
|
"saveFailed": "Could not save runner",
|
|
1921
2023
|
"removed": "Runner removed",
|
|
1922
2024
|
"removeFailed": "Could not remove runner"
|
|
2025
|
+
},
|
|
2026
|
+
"confirmRemove": {
|
|
2027
|
+
"title": "Remove this runner?",
|
|
2028
|
+
"body": "\"{name}\" will be removed. This can't be undone."
|
|
1923
2029
|
}
|
|
1924
2030
|
}
|
|
1925
2031
|
},
|
|
@@ -2087,6 +2193,10 @@
|
|
|
2087
2193
|
"step2": "Copy the API key. Agent steps will run via Claude Code against DeepSeek's Anthropic endpoint with full context.",
|
|
2088
2194
|
"step3": "Paste the key below."
|
|
2089
2195
|
}
|
|
2196
|
+
},
|
|
2197
|
+
"confirmRemove": {
|
|
2198
|
+
"title": "Remove this credential?",
|
|
2199
|
+
"body": "\"{name}\" will be removed. This can't be undone."
|
|
2090
2200
|
}
|
|
2091
2201
|
}
|
|
2092
2202
|
},
|
|
@@ -2183,6 +2293,10 @@
|
|
|
2183
2293
|
"createBranch": "Could not create branch",
|
|
2184
2294
|
"openPr": "Could not open pull request",
|
|
2185
2295
|
"merge": "Could not merge"
|
|
2296
|
+
},
|
|
2297
|
+
"confirmDisconnect": {
|
|
2298
|
+
"title": "Disconnect GitHub?",
|
|
2299
|
+
"body": "The app will lose access to your repositories until you reconnect."
|
|
2186
2300
|
}
|
|
2187
2301
|
},
|
|
2188
2302
|
"addService": {
|
|
@@ -2294,6 +2408,10 @@
|
|
|
2294
2408
|
"disconnect": "Could not disconnect Slack",
|
|
2295
2409
|
"saveRouting": "Could not save routing",
|
|
2296
2410
|
"saveMap": "Could not save member map"
|
|
2411
|
+
},
|
|
2412
|
+
"confirmDisconnect": {
|
|
2413
|
+
"title": "Disconnect Slack?",
|
|
2414
|
+
"body": "Slack notifications will stop until you reconnect."
|
|
2297
2415
|
}
|
|
2298
2416
|
},
|
|
2299
2417
|
"documents": {
|
|
@@ -2490,6 +2608,10 @@
|
|
|
2490
2608
|
"clone": "Clone",
|
|
2491
2609
|
"edit": "Edit this pipeline",
|
|
2492
2610
|
"delete": "Delete this pipeline",
|
|
2611
|
+
"confirmDeletePipeline": {
|
|
2612
|
+
"title": "Delete this pipeline?",
|
|
2613
|
+
"body": "\"{name}\" will be removed. This can't be undone."
|
|
2614
|
+
},
|
|
2493
2615
|
"disabledStepTooltip": "Disabled, skipped at run",
|
|
2494
2616
|
"cancelEdit": "Cancel edit",
|
|
2495
2617
|
"clear": "Clear",
|
|
@@ -3481,6 +3603,10 @@
|
|
|
3481
3603
|
"checkSourceFailed": "Could not check source",
|
|
3482
3604
|
"sourceUnlinked": "Source unlinked",
|
|
3483
3605
|
"unlinkSourceFailed": "Could not unlink source"
|
|
3606
|
+
},
|
|
3607
|
+
"confirmRemove": {
|
|
3608
|
+
"title": "Delete this fragment?",
|
|
3609
|
+
"body": "\"{name}\" will be removed. This can't be undone."
|
|
3484
3610
|
}
|
|
3485
3611
|
},
|
|
3486
3612
|
"sandbox": {
|
package/i18n/locales/es.json
CHANGED
|
@@ -15,7 +15,16 @@
|
|
|
15
15
|
"copy": "Copiar",
|
|
16
16
|
"actionFailed": "La acción falló",
|
|
17
17
|
"close": "Cerrar",
|
|
18
|
-
"block": "Bloque"
|
|
18
|
+
"block": "Bloque",
|
|
19
|
+
"delete": "Eliminar",
|
|
20
|
+
"remove": "Quitar",
|
|
21
|
+
"confirm": {
|
|
22
|
+
"defaultTitle": "¿Estás seguro?",
|
|
23
|
+
"confirm": "Confirmar"
|
|
24
|
+
},
|
|
25
|
+
"copied": "Copiado al portapapeles",
|
|
26
|
+
"disconnect": "Desconectar",
|
|
27
|
+
"copyFailed": "No se pudo copiar al portapapeles"
|
|
19
28
|
},
|
|
20
29
|
"nav": {
|
|
21
30
|
"menu": "Menú de navegación",
|
|
@@ -235,7 +244,11 @@
|
|
|
235
244
|
"module": "Módulo: {name}",
|
|
236
245
|
"buildSteps": "Pasos de build",
|
|
237
246
|
"reviewAndApprove": "Revisar y aprobar",
|
|
238
|
-
"clickToViewStep": "Haz clic para ver los detalles y la salida del paso"
|
|
247
|
+
"clickToViewStep": "Haz clic para ver los detalles y la salida del paso",
|
|
248
|
+
"startedToast": {
|
|
249
|
+
"title": "Ejecución iniciada",
|
|
250
|
+
"body": "Ejecutando \"{name}\"."
|
|
251
|
+
}
|
|
239
252
|
},
|
|
240
253
|
"epic": {
|
|
241
254
|
"label": "Épica",
|
|
@@ -322,6 +335,10 @@
|
|
|
322
335
|
"step2": "Abre el archivo de credenciales que Codex escribió en ~/.codex/auth.json (en Windows %USERPROFILE%\\.codex\\auth.json).",
|
|
323
336
|
"step3": "Copia todo el contenido de auth.json, pégalo abajo y elige una contraseña personal para protegerlo."
|
|
324
337
|
}
|
|
338
|
+
},
|
|
339
|
+
"confirmDisconnect": {
|
|
340
|
+
"title": "¿Desconectar esta suscripción?",
|
|
341
|
+
"body": "Se desconectará tu suscripción de \"{vendor}\". Esta acción no se puede deshacer."
|
|
325
342
|
}
|
|
326
343
|
},
|
|
327
344
|
"inspector": {
|
|
@@ -378,6 +395,34 @@
|
|
|
378
395
|
"manageBoard": "Gestionar la biblioteca de fragmentos de este tablero…",
|
|
379
396
|
"manageAccount": "Gestionar los fragmentos de la cuenta…"
|
|
380
397
|
},
|
|
398
|
+
"frontendConfig": {
|
|
399
|
+
"title": "Frontend",
|
|
400
|
+
"hint": "Cómo compilar, servir y simular este frontend para una prueba de interfaz autónoma. Las vinculaciones de abajo lo conectan con los servicios de backend a los que llama.",
|
|
401
|
+
"packageManager": "Gestor de paquetes",
|
|
402
|
+
"installCommand": "Comando de instalación",
|
|
403
|
+
"buildScript": "Script de compilación",
|
|
404
|
+
"outputDir": "Directorio de salida",
|
|
405
|
+
"serveMode": "Modo de servicio",
|
|
406
|
+
"serveStatic": "Estático",
|
|
407
|
+
"serveCommand": "Comando",
|
|
408
|
+
"serveModeHint": "Estático sirve el directorio de salida de la compilación; Comando ejecuta un script de package.json (p. ej. preview).",
|
|
409
|
+
"serveScript": "Script de servicio",
|
|
410
|
+
"servePort": "Puerto de servicio",
|
|
411
|
+
"mockMappingsPath": "Ruta de asignaciones de simulación",
|
|
412
|
+
"envInjection": "Inyección de variables de entorno",
|
|
413
|
+
"envBuild": "En compilación",
|
|
414
|
+
"envRuntime": "En ejecución",
|
|
415
|
+
"envInjectionHint": "En compilación inyecta las URL del backend como variables de entorno de compilación; En ejecución las escribe en un shim de window.env.",
|
|
416
|
+
"previewEnabled": "Activar vista previa navegable",
|
|
417
|
+
"previewHint": "Mantiene una vista previa servida en ejecución con una URL clicable. Solo en los entornos Local y Node.",
|
|
418
|
+
"bindings": {
|
|
419
|
+
"title": "Vinculaciones del backend",
|
|
420
|
+
"hint": "Cada variable de entorno que el frontend lee para una URL upstream, y dónde se resuelve: el entorno efímero de un servicio vinculado, o un stub de WireMock.",
|
|
421
|
+
"mock": "Simulación (WireMock)",
|
|
422
|
+
"remove": "Eliminar vinculación",
|
|
423
|
+
"empty": "No hay vinculaciones de backend. Añade una para apuntar una variable de entorno a un servicio o a una simulación."
|
|
424
|
+
}
|
|
425
|
+
},
|
|
381
426
|
"releaseHealth": {
|
|
382
427
|
"title": "Salud posterior al lanzamiento",
|
|
383
428
|
"clear": "Limpiar",
|
|
@@ -486,7 +531,11 @@
|
|
|
486
531
|
"merged": "Fusionado",
|
|
487
532
|
"notMerged": "Aún sin fusionar",
|
|
488
533
|
"empty": "Sin dependencias. Puede ejecutarse en cualquier momento.",
|
|
489
|
-
"blocked": "Bloqueado hasta que se fusionen las dependencias."
|
|
534
|
+
"blocked": "Bloqueado hasta que se fusionen las dependencias.",
|
|
535
|
+
"confirmRemove": {
|
|
536
|
+
"title": "¿Quitar esta dependencia?",
|
|
537
|
+
"body": "Esta tarea ya no esperará a \"{name}\"."
|
|
538
|
+
}
|
|
490
539
|
},
|
|
491
540
|
"estimate": {
|
|
492
541
|
"title": "Estimación",
|
|
@@ -531,7 +580,11 @@
|
|
|
531
580
|
"companionOf": "{label} (acompañante)",
|
|
532
581
|
"merged": "Fusionado",
|
|
533
582
|
"open": "Abierto",
|
|
534
|
-
"mergePr": "Fusionar PR"
|
|
583
|
+
"mergePr": "Fusionar PR",
|
|
584
|
+
"empty": {
|
|
585
|
+
"title": "Aún no hay ejecuciones",
|
|
586
|
+
"body": "Inicia un pipeline para ver el historial de ejecución aquí."
|
|
587
|
+
}
|
|
535
588
|
},
|
|
536
589
|
"structure": {
|
|
537
590
|
"module": "Módulo",
|
|
@@ -661,7 +714,9 @@
|
|
|
661
714
|
"done": "Finalizando"
|
|
662
715
|
},
|
|
663
716
|
"id": "Contenedor",
|
|
664
|
-
"url": "Dirección"
|
|
717
|
+
"url": "Dirección",
|
|
718
|
+
"copyId": "Copiar id del contenedor",
|
|
719
|
+
"copyUrl": "Copiar dirección"
|
|
665
720
|
}
|
|
666
721
|
},
|
|
667
722
|
"stepDetail": {
|
|
@@ -731,7 +786,25 @@
|
|
|
731
786
|
"viewRequirements": "Ver requisitos",
|
|
732
787
|
"reRun": "Reejecutar",
|
|
733
788
|
"run": "Ejecutar",
|
|
734
|
-
"focus": "Enfocar"
|
|
789
|
+
"focus": "Enfocar",
|
|
790
|
+
"confirmDelete": {
|
|
791
|
+
"task": {
|
|
792
|
+
"title": "¿Eliminar esta tarea?",
|
|
793
|
+
"body": "Se eliminarán \"{name}\" y su historial de ejecución. Esta acción no se puede deshacer."
|
|
794
|
+
},
|
|
795
|
+
"module": {
|
|
796
|
+
"title": "¿Eliminar este módulo?",
|
|
797
|
+
"body": "Se eliminará \"{name}\" y todo su contenido. Esta acción no se puede deshacer."
|
|
798
|
+
},
|
|
799
|
+
"service": {
|
|
800
|
+
"title": "¿Eliminar este servicio?",
|
|
801
|
+
"body": "Se eliminará \"{name}\" y todo su contenido. Esta acción no se puede deshacer."
|
|
802
|
+
},
|
|
803
|
+
"recurring": {
|
|
804
|
+
"title": "¿Eliminar este pipeline recurrente?",
|
|
805
|
+
"body": "Se eliminarán \"{name}\", su programación y su historial de ejecución. Esta acción no se puede deshacer."
|
|
806
|
+
}
|
|
807
|
+
}
|
|
735
808
|
}
|
|
736
809
|
},
|
|
737
810
|
"observability": {
|
|
@@ -1035,6 +1108,10 @@
|
|
|
1035
1108
|
"openBoardFailed": "No se pudo abrir el tablero",
|
|
1036
1109
|
"boardDeleted": "Tablero eliminado",
|
|
1037
1110
|
"deleteBoardFailed": "No se pudo eliminar el tablero"
|
|
1111
|
+
},
|
|
1112
|
+
"confirmDelete": {
|
|
1113
|
+
"title": "¿Eliminar este tablero?",
|
|
1114
|
+
"body": "Se eliminará \"{name}\" y todo su contenido. Esta acción no se puede deshacer."
|
|
1038
1115
|
}
|
|
1039
1116
|
},
|
|
1040
1117
|
"notifications": {
|
|
@@ -1056,6 +1133,10 @@
|
|
|
1056
1133
|
"human_review": "Marcar como leída",
|
|
1057
1134
|
"followup_pending": "Marcar como leída",
|
|
1058
1135
|
"markRead": "Marcar como leída"
|
|
1136
|
+
},
|
|
1137
|
+
"toast": {
|
|
1138
|
+
"acted": "Marcado como resuelto",
|
|
1139
|
+
"dismissed": "Descartado"
|
|
1059
1140
|
}
|
|
1060
1141
|
},
|
|
1061
1142
|
"aiProvidersBanner": {
|
|
@@ -1155,7 +1236,8 @@
|
|
|
1155
1236
|
"serviceFragmentDefaults": "Buenas prácticas del servicio por defecto",
|
|
1156
1237
|
"accountSettings": "Ajustes de la cuenta",
|
|
1157
1238
|
"localModels": "Mis ejecutores locales",
|
|
1158
|
-
"sandbox": "Abrir el entorno de pruebas"
|
|
1239
|
+
"sandbox": "Abrir el entorno de pruebas",
|
|
1240
|
+
"shortcuts": "Atajos de teclado"
|
|
1159
1241
|
},
|
|
1160
1242
|
"keywords": {
|
|
1161
1243
|
"newPipeline": "canalización agentes cadena pipeline",
|
|
@@ -1174,7 +1256,8 @@
|
|
|
1174
1256
|
"serviceFragmentDefaults": "fragmento buenas prácticas directriz servicio por defecto consciente del código",
|
|
1175
1257
|
"accountSettings": "cuenta equipo miembros roles invitaciones correo claves api fragmento buenas prácticas biblioteca contexto organización personal",
|
|
1176
1258
|
"localModels": "modelo local ejecutor ollama lm studio llamacpp vllm endpoint",
|
|
1177
|
-
"sandbox": "entorno de pruebas prompt modelo prueba experimento juez fixture benchmark evaluar"
|
|
1259
|
+
"sandbox": "entorno de pruebas prompt modelo prueba experimento juez fixture benchmark evaluar",
|
|
1260
|
+
"shortcuts": "atajos teclado teclas ayuda"
|
|
1178
1261
|
}
|
|
1179
1262
|
},
|
|
1180
1263
|
"integrationsHub": {
|
|
@@ -1247,6 +1330,13 @@
|
|
|
1247
1330
|
"description": "Tus ejecutores de modelos en tu propia máquina (Ollama, LM Studio, vLLM…)."
|
|
1248
1331
|
}
|
|
1249
1332
|
}
|
|
1333
|
+
},
|
|
1334
|
+
"shortcuts": {
|
|
1335
|
+
"title": "Atajos de teclado",
|
|
1336
|
+
"commandBar": "Abrir la barra de comandos",
|
|
1337
|
+
"deselect": "Deseleccionar / cerrar el inspector",
|
|
1338
|
+
"deleteBlock": "Eliminar el bloque seleccionado",
|
|
1339
|
+
"help": "Mostrar esta ayuda"
|
|
1250
1340
|
}
|
|
1251
1341
|
},
|
|
1252
1342
|
"settings": {
|
|
@@ -1289,6 +1379,10 @@
|
|
|
1289
1379
|
"nameRequiredTitle": "Nombre obligatorio",
|
|
1290
1380
|
"nameRequiredBody": "Dale un nombre al ajuste.",
|
|
1291
1381
|
"saveFailed": "No se pudo guardar el ajuste"
|
|
1382
|
+
},
|
|
1383
|
+
"confirmDelete": {
|
|
1384
|
+
"title": "¿Eliminar este preset de modelo?",
|
|
1385
|
+
"body": "Se eliminará \"{name}\". Las tareas que lo usan volverán al valor predeterminado del espacio de trabajo."
|
|
1292
1386
|
}
|
|
1293
1387
|
},
|
|
1294
1388
|
"account": {
|
|
@@ -1508,6 +1602,10 @@
|
|
|
1508
1602
|
"saveFailed": "No se pudo guardar el secreto",
|
|
1509
1603
|
"removed": "Secreto eliminado",
|
|
1510
1604
|
"removeFailed": "No se pudo eliminar el secreto"
|
|
1605
|
+
},
|
|
1606
|
+
"confirmRemove": {
|
|
1607
|
+
"title": "¿Quitar este secreto?",
|
|
1608
|
+
"body": "Se eliminará \"{name}\". Esta acción no se puede deshacer."
|
|
1511
1609
|
}
|
|
1512
1610
|
},
|
|
1513
1611
|
"mergeThresholds": {
|
|
@@ -1554,7 +1652,11 @@
|
|
|
1554
1652
|
"deleteFailed": "No se pudo eliminar el ajuste"
|
|
1555
1653
|
},
|
|
1556
1654
|
"autoMergeOnHint": "Fusionar automáticamente cuando esté dentro de los umbrales.",
|
|
1557
|
-
"autoMergeOffHint": "Enviar siempre el PR a revisión humana."
|
|
1655
|
+
"autoMergeOffHint": "Enviar siempre el PR a revisión humana.",
|
|
1656
|
+
"confirmDelete": {
|
|
1657
|
+
"title": "¿Eliminar este preset de fusión?",
|
|
1658
|
+
"body": "Se eliminará \"{name}\". Las tareas que lo usan volverán al valor predeterminado del espacio de trabajo."
|
|
1659
|
+
}
|
|
1558
1660
|
},
|
|
1559
1661
|
"observabilityConnection": {
|
|
1560
1662
|
"title": "Salud posterior al lanzamiento",
|
|
@@ -1761,6 +1863,10 @@
|
|
|
1761
1863
|
"saveFailed": "No se pudo guardar el runner",
|
|
1762
1864
|
"removed": "Runner eliminado",
|
|
1763
1865
|
"removeFailed": "No se pudo eliminar el runner"
|
|
1866
|
+
},
|
|
1867
|
+
"confirmRemove": {
|
|
1868
|
+
"title": "¿Quitar este runner?",
|
|
1869
|
+
"body": "Se eliminará \"{name}\". Esta acción no se puede deshacer."
|
|
1764
1870
|
}
|
|
1765
1871
|
},
|
|
1766
1872
|
"infrastructure": {
|
|
@@ -2022,6 +2128,10 @@
|
|
|
2022
2128
|
"step2": "Copia la clave de API. Los pasos de agente se ejecutarán vía Claude Code contra el endpoint de Anthropic de DeepSeek con contexto completo.",
|
|
2023
2129
|
"step3": "Pega la clave abajo."
|
|
2024
2130
|
}
|
|
2131
|
+
},
|
|
2132
|
+
"confirmRemove": {
|
|
2133
|
+
"title": "¿Quitar esta credencial?",
|
|
2134
|
+
"body": "Se eliminará \"{name}\". Esta acción no se puede deshacer."
|
|
2025
2135
|
}
|
|
2026
2136
|
}
|
|
2027
2137
|
},
|
|
@@ -2118,6 +2228,10 @@
|
|
|
2118
2228
|
"createBranch": "No se pudo crear la rama",
|
|
2119
2229
|
"openPr": "No se pudo abrir la solicitud de incorporación de cambios",
|
|
2120
2230
|
"merge": "No se pudo fusionar"
|
|
2231
|
+
},
|
|
2232
|
+
"confirmDisconnect": {
|
|
2233
|
+
"title": "¿Desconectar GitHub?",
|
|
2234
|
+
"body": "La app perderá acceso a tus repositorios hasta que vuelvas a conectar."
|
|
2121
2235
|
}
|
|
2122
2236
|
},
|
|
2123
2237
|
"addService": {
|
|
@@ -2226,6 +2340,10 @@
|
|
|
2226
2340
|
"disconnect": "No se pudo desconectar Slack",
|
|
2227
2341
|
"saveRouting": "No se pudo guardar el enrutamiento",
|
|
2228
2342
|
"saveMap": "No se pudo guardar el mapa de miembros"
|
|
2343
|
+
},
|
|
2344
|
+
"confirmDisconnect": {
|
|
2345
|
+
"title": "¿Desconectar Slack?",
|
|
2346
|
+
"body": "Las notificaciones de Slack se detendrán hasta que vuelvas a conectar."
|
|
2229
2347
|
}
|
|
2230
2348
|
},
|
|
2231
2349
|
"documents": {
|
|
@@ -2443,6 +2561,10 @@
|
|
|
2443
2561
|
"cloned": "Clonado \"{name}\" — ahora editando \"{copy}\"",
|
|
2444
2562
|
"cloneFailed": "No se pudo clonar el pipeline",
|
|
2445
2563
|
"updateFailed": "No se pudo actualizar el pipeline"
|
|
2564
|
+
},
|
|
2565
|
+
"confirmDeletePipeline": {
|
|
2566
|
+
"title": "¿Eliminar este pipeline?",
|
|
2567
|
+
"body": "Se eliminará \"{name}\". Esta acción no se puede deshacer."
|
|
2446
2568
|
}
|
|
2447
2569
|
},
|
|
2448
2570
|
"progress": {
|
|
@@ -3352,6 +3474,10 @@
|
|
|
3352
3474
|
"checkSourceFailed": "No se pudo comprobar el origen",
|
|
3353
3475
|
"sourceUnlinked": "Origen desvinculado",
|
|
3354
3476
|
"unlinkSourceFailed": "No se pudo desvincular el origen"
|
|
3477
|
+
},
|
|
3478
|
+
"confirmRemove": {
|
|
3479
|
+
"title": "¿Eliminar este fragmento?",
|
|
3480
|
+
"body": "Se eliminará \"{name}\". Esta acción no se puede deshacer."
|
|
3355
3481
|
}
|
|
3356
3482
|
},
|
|
3357
3483
|
"sandbox": {
|