@cat-factory/app 0.46.9 → 0.46.11
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/AddTaskModal.vue +106 -88
- package/app/components/board/AgentFailureCard.vue +8 -5
- package/app/components/board/AgentStopButton.vue +8 -5
- package/app/components/board/BoardCanvas.vue +13 -9
- package/app/components/board/RecurringPipelineModal.vue +33 -23
- package/app/components/board/nodes/BlockNode.vue +50 -34
- package/app/components/board/nodes/DecisionBadge.vue +6 -3
- package/app/components/board/nodes/DraggableTask.vue +2 -1
- package/app/components/board/nodes/EpicNode.vue +10 -3
- package/app/components/board/nodes/ModuleFrame.vue +6 -5
- package/app/components/board/nodes/TaskCard.vue +40 -22
- package/app/components/board/nodes/TaskPipelineMini.vue +4 -3
- package/app/components/layout/BoardToolbar.vue +26 -19
- package/app/components/observability/StepMetricsBar.vue +31 -11
- package/app/components/observability/StepModelActivity.vue +3 -2
- package/app/components/panels/AgentStepDetail.vue +52 -39
- package/app/components/panels/DecisionModal.vue +12 -5
- package/app/components/panels/GenericStructuredResultView.vue +16 -6
- package/app/components/panels/InspectorPanel.vue +35 -28
- package/app/components/panels/ObservabilityPanel.vue +92 -49
- package/app/components/panels/StepMetadataCard.vue +87 -30
- package/app/components/panels/StepRestartControl.vue +4 -3
- package/app/components/panels/StepRunMeta.vue +23 -10
- package/app/components/panels/StepTestReport.vue +14 -11
- package/app/components/panels/inspector/ContainerSummary.vue +25 -14
- package/app/components/panels/inspector/EpicChildren.vue +7 -4
- package/app/components/panels/inspector/RecurringScheduleSettings.vue +60 -19
- package/app/components/panels/inspector/ServiceFragments.vue +3 -2
- package/app/components/panels/inspector/ServiceReleaseHealthConfig.vue +18 -13
- package/app/components/panels/inspector/ServiceTestConfig.vue +50 -39
- package/app/components/panels/inspector/TaskAgentConfig.vue +6 -5
- package/app/components/panels/inspector/TaskDependencies.vue +9 -4
- package/app/components/panels/inspector/TaskEstimateBadge.vue +14 -13
- package/app/components/panels/inspector/TaskExecution.vue +65 -31
- package/app/components/panels/inspector/TaskRunSettings.vue +93 -56
- package/app/components/panels/inspector/TaskStructure.vue +5 -4
- package/i18n/locales/en.json +606 -0
- package/i18n/locales/es.json +596 -2
- package/i18n/locales/fr.json +596 -2
- package/i18n/locales/pl.json +596 -2
- package/i18n/locales/uk.json +596 -2
- package/package.json +1 -1
package/i18n/locales/en.json
CHANGED
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
"save": "Save",
|
|
13
13
|
"cancel": "Cancel",
|
|
14
14
|
"retry": "Retry",
|
|
15
|
+
"block": "Block",
|
|
16
|
+
"@block": {
|
|
17
|
+
"description": "Generic fallback NOUN for a board item whose title is unknown (a service / module / task node). Not the verb 'to block'."
|
|
18
|
+
},
|
|
15
19
|
"actionFailed": "Action failed",
|
|
16
20
|
"close": "Close",
|
|
17
21
|
"@close": {
|
|
@@ -50,7 +54,207 @@
|
|
|
50
54
|
"decisionWord": "decision | decisions",
|
|
51
55
|
"@decisionWord": {
|
|
52
56
|
"description": "Count-based plural noun rendered AFTER a number, e.g. '3 decisions' (pending human decisions in the run queue). Resolved via t(key, count); count is always 1 or more. Provide ALL plural forms your language needs (English has 2; Polish/Ukrainian need 3 - one/few/many - and rely on the custom pluralRules wired in i18n.config.ts)."
|
|
57
|
+
},
|
|
58
|
+
"lod": {
|
|
59
|
+
"far": "Overview",
|
|
60
|
+
"mid": "Summary",
|
|
61
|
+
"close": "Detail",
|
|
62
|
+
"steps": "Build steps",
|
|
63
|
+
"subtasks": "Subtasks"
|
|
64
|
+
},
|
|
65
|
+
"spendTitle": "Token spend this month",
|
|
66
|
+
"spendLimitReached": "Spend limit reached — runs paused",
|
|
67
|
+
"serviceAdded": "Added {title}",
|
|
68
|
+
"serviceAddFailed": "Could not add service"
|
|
69
|
+
},
|
|
70
|
+
"canvas": {
|
|
71
|
+
"emptyTitle": "Your board is empty",
|
|
72
|
+
"emptyBody": "Add a service to get started: bootstrap a fresh repo or pull in one you already have.",
|
|
73
|
+
"addBlockFailedTitle": "Could not add block",
|
|
74
|
+
"addBlockFailedBody": "The backend rejected the request.",
|
|
75
|
+
"dropOntoTaskTitle": "Drop onto a task",
|
|
76
|
+
"dropOntoTaskBody": "Pipelines run against tasks, not services.",
|
|
77
|
+
"taskBlockedTitle": "Task is blocked",
|
|
78
|
+
"taskBlockedBody": "Its dependencies haven't merged yet."
|
|
79
|
+
},
|
|
80
|
+
"addTask": {
|
|
81
|
+
"title": "Add a task",
|
|
82
|
+
"newTaskIn": "New task in {container}",
|
|
83
|
+
"typeLabel": "Type",
|
|
84
|
+
"types": {
|
|
85
|
+
"feature": "Feature",
|
|
86
|
+
"bug": "Bug",
|
|
87
|
+
"document": "Document",
|
|
88
|
+
"spike": "Spike",
|
|
89
|
+
"recurring": "Recurring"
|
|
90
|
+
},
|
|
91
|
+
"recurringWithFrame": "A recurring task runs a pipeline on a cadence. Continue to set the schedule + prompt.",
|
|
92
|
+
"recurringNoFrame": "A recurring task must live on a service. Add it from a service frame (or a module inside one).",
|
|
93
|
+
"titleField": "Title",
|
|
94
|
+
"titlePlaceholder": "What needs to be done?",
|
|
95
|
+
"issueIncluded": "{title} (from issue, included)",
|
|
96
|
+
"loadingIssue": "Loading the linked issue's description…",
|
|
97
|
+
"additionalNotes": "Additional notes",
|
|
98
|
+
"description": "Description",
|
|
99
|
+
"notesPlaceholder": "Add anything else the agent should know — appended to the issue description above…",
|
|
100
|
+
"descriptionPlaceholder": "Describe the work — context, acceptance criteria, anything the agent should know…",
|
|
101
|
+
"technical": "Technical task",
|
|
102
|
+
"technicalHint": "A refactor / non-functional / internal change. The implementer treats the task definition as primary and the spec as a regression reference; leave off to let the spec phase decide.",
|
|
103
|
+
"severity": "Severity",
|
|
104
|
+
"stepsToReproduce": "Steps to reproduce",
|
|
105
|
+
"stepsToReproducePlaceholder": "Observed vs expected, and how to reproduce…",
|
|
106
|
+
"timebox": "Time-box (hours)",
|
|
107
|
+
"timeboxPlaceholder": "e.g. 8",
|
|
108
|
+
"documentKind": "Document kind",
|
|
109
|
+
"audience": "Audience",
|
|
110
|
+
"audiencePlaceholder": "e.g. platform engineers",
|
|
111
|
+
"targetPath": "Target path",
|
|
112
|
+
"targetPathPlaceholder": "e.g. docs/rfcs/0001-foo.md",
|
|
113
|
+
"outlineHints": "Outline hints",
|
|
114
|
+
"outlineHintsPlaceholder": "Sections or points the document should cover",
|
|
115
|
+
"optional": "optional",
|
|
116
|
+
"pipeline": "Pipeline",
|
|
117
|
+
"chooseAtRunTime": "Choose at run time",
|
|
118
|
+
"mergePolicy": "Merge policy",
|
|
119
|
+
"workspaceDefault": "Workspace default",
|
|
120
|
+
"defaultPreset": "Default ({name}) — {thresholds}",
|
|
121
|
+
"defaultModelPreset": "Default ({name})",
|
|
122
|
+
"modelPreset": "Model preset",
|
|
123
|
+
"agentConfiguration": "Agent configuration",
|
|
124
|
+
"contextDocuments": "Context documents",
|
|
125
|
+
"contextIssues": "Context issues",
|
|
126
|
+
"attach": "Attach",
|
|
127
|
+
"done": "Done",
|
|
128
|
+
"attachDocDisabledConnect": "Connect a document source first (Integrations)",
|
|
129
|
+
"attachDocDisabledEnable": "Enable the documents integration first",
|
|
130
|
+
"attachIssueDisabledConnect": "Connect an issue tracker first (Integrations)",
|
|
131
|
+
"attachIssueDisabledEnable": "Enable the issue-tracker integration first",
|
|
132
|
+
"importsOnAdd": "imports on add",
|
|
133
|
+
"noDocsHint": "Attach a requirement, RFC or PRD so agents see it while implementing this task.",
|
|
134
|
+
"noIssuesHint": "Attach a tracker issue so agents see its description and comments while implementing this task.",
|
|
135
|
+
"plannedHint": "The task is added in a planned state. It won't run until you start a pipeline on it — you can keep editing it until then.",
|
|
136
|
+
"continue": "Continue",
|
|
137
|
+
"submit": "Add task",
|
|
138
|
+
"addFailedTitle": "Could not add task",
|
|
139
|
+
"linkFailed": "Task added, but {count} attachment could not be linked | Task added, but {count} attachments could not be linked",
|
|
140
|
+
"@linkFailed": {
|
|
141
|
+
"description": "Count-based: how many context attachments (docs/issues) failed to link after the task was created (count is always >= 1). Provide ALL plural forms your language needs (English has 2; Polish/Ukrainian need 3 - one/few/many - via the custom pluralRules in i18n.config.ts)."
|
|
53
142
|
}
|
|
143
|
+
},
|
|
144
|
+
"recurring": {
|
|
145
|
+
"title": "Add a recurring pipeline",
|
|
146
|
+
"on": "Recurring pipeline on {frame}",
|
|
147
|
+
"name": "Name",
|
|
148
|
+
"namePlaceholder": "e.g. Weekly dependency updates",
|
|
149
|
+
"pipeline": "Pipeline",
|
|
150
|
+
"pickPipeline": "Pick a pipeline",
|
|
151
|
+
"prompt": "Prompt",
|
|
152
|
+
"promptPlaceholder": "What should each run do? Describe the work — the same prompt a normal task carries. Leave blank to use the pipeline's default.",
|
|
153
|
+
"issueTracker": "Issue tracker",
|
|
154
|
+
"issueTrackerHint": "The tech-debt pipeline files a ticket from its analysis before implementing. Choose where (saved for the whole workspace).",
|
|
155
|
+
"githubIssues": "GitHub Issues",
|
|
156
|
+
"jira": "Jira",
|
|
157
|
+
"linear": "Linear",
|
|
158
|
+
"jiraProjectKey": "Jira project key",
|
|
159
|
+
"jiraProjectKeyPlaceholder": "e.g. ENG",
|
|
160
|
+
"linearTeamId": "Linear team id",
|
|
161
|
+
"footerHint": "A single recurring task is added inside the service; each run replaces the last. Its run history is visible in the inspector.",
|
|
162
|
+
"submit": "Add recurring pipeline",
|
|
163
|
+
"addFailedTitle": "Could not add recurring pipeline"
|
|
164
|
+
},
|
|
165
|
+
"failure": {
|
|
166
|
+
"containerFailedToStart": "Container failed to start",
|
|
167
|
+
"bootstrapFailed": "Bootstrap failed",
|
|
168
|
+
"runFailed": "Run failed",
|
|
169
|
+
"retryBootstrap": "Retry bootstrap",
|
|
170
|
+
"retryRun": "Retry run",
|
|
171
|
+
"showDetail": "Show detail",
|
|
172
|
+
"retrying": "Retrying…"
|
|
173
|
+
},
|
|
174
|
+
"stop": {
|
|
175
|
+
"label": "Stop",
|
|
176
|
+
"bootstrapStopped": "Bootstrap stopped",
|
|
177
|
+
"runStopped": "Run stopped",
|
|
178
|
+
"stoppedDescription": "The container was killed and the run was cancelled.",
|
|
179
|
+
"stopFailed": "Stop failed"
|
|
180
|
+
},
|
|
181
|
+
"frame": {
|
|
182
|
+
"status": {
|
|
183
|
+
"planned": "No tasks",
|
|
184
|
+
"ready": "Live",
|
|
185
|
+
"in_progress": "Active",
|
|
186
|
+
"blocked": "Needs attention",
|
|
187
|
+
"pr_ready": "Active",
|
|
188
|
+
"done": "Live"
|
|
189
|
+
},
|
|
190
|
+
"shared": "Shared",
|
|
191
|
+
"sharedTitle": "Shared across workspaces in this org",
|
|
192
|
+
"bootstrapping": "Bootstrapping…",
|
|
193
|
+
"bootstrappingRepository": "Bootstrapping repository…",
|
|
194
|
+
"bootstrapStepsCount": "{completed}/{total} steps",
|
|
195
|
+
"runFailed": "Run failed",
|
|
196
|
+
"mergedOfTotal": "{merged}/{total} merged",
|
|
197
|
+
"noTasksYet": "No tasks yet",
|
|
198
|
+
"prCount": "{count} PR",
|
|
199
|
+
"implemented": "{merged}/{total} implemented",
|
|
200
|
+
"prReadyCount": "{count} PR ready",
|
|
201
|
+
"taskCount": "{count} task | {count} tasks",
|
|
202
|
+
"@taskCount": {
|
|
203
|
+
"description": "Count-based task tally rendered as e.g. '3 tasks' (count is always >= 0). Provide ALL plural forms your language needs (English has 2; Polish/Ukrainian need 3 - one/few/many - via the custom pluralRules in i18n.config.ts)."
|
|
204
|
+
},
|
|
205
|
+
"moduleCount": "{count} module | {count} modules",
|
|
206
|
+
"@moduleCount": {
|
|
207
|
+
"description": "Count-based module tally rendered as e.g. '2 modules' (count is always >= 1). Provide ALL plural forms your language needs (English has 2; Polish/Ukrainian need 3 - one/few/many - via the custom pluralRules in i18n.config.ts)."
|
|
208
|
+
},
|
|
209
|
+
"addTaskTitle": "Add task",
|
|
210
|
+
"createTaskFromIssueTitle": "Create task from issue",
|
|
211
|
+
"addRecurringTitle": "Add recurring pipeline",
|
|
212
|
+
"collapseTitle": "Collapse",
|
|
213
|
+
"dragService": "Drag service",
|
|
214
|
+
"dragTask": "Drag task",
|
|
215
|
+
"dragToResize": "Drag to resize",
|
|
216
|
+
"addFirstTask": "Add the first task"
|
|
217
|
+
},
|
|
218
|
+
"decisionBadge": {
|
|
219
|
+
"decisionNeeded": "Decision needed",
|
|
220
|
+
"approvalNeeded": "Approval needed"
|
|
221
|
+
},
|
|
222
|
+
"task": {
|
|
223
|
+
"recurringPipeline": "Recurring pipeline",
|
|
224
|
+
"recurringPipelinePaused": "Recurring pipeline (paused)",
|
|
225
|
+
"dragToConnect": "Drag onto another task to make it depend on this one",
|
|
226
|
+
"failed": "Failed",
|
|
227
|
+
"decisionNeeded": "Decision needed",
|
|
228
|
+
"approvalNeeded": "Approval needed",
|
|
229
|
+
"resolve": "Resolve",
|
|
230
|
+
"approve": "Approve",
|
|
231
|
+
"incorporatingAnswers": "Incorporating answers…",
|
|
232
|
+
"reReviewing": "Re-reviewing…",
|
|
233
|
+
"recommending": "Recommending…",
|
|
234
|
+
"starting": "Starting…",
|
|
235
|
+
"start": "Start",
|
|
236
|
+
"blocked": "Blocked",
|
|
237
|
+
"startPipeline": "Start {name}",
|
|
238
|
+
"pipelineFallback": "pipeline",
|
|
239
|
+
"waitingOn": "Waiting on: {deps}",
|
|
240
|
+
"blockedByDependenciesTitle": "Blocked by dependencies",
|
|
241
|
+
"noPipelineTitle": "No pipeline defined",
|
|
242
|
+
"noPipelineBody": "Create one in the builder first.",
|
|
243
|
+
"pr": "PR",
|
|
244
|
+
"prNumber": "PR #{number}",
|
|
245
|
+
"openPrOnGithub": "Open {pr} on GitHub",
|
|
246
|
+
"review": "Review",
|
|
247
|
+
"merge": "Merge",
|
|
248
|
+
"implemented": "implemented",
|
|
249
|
+
"module": "Module: {name}",
|
|
250
|
+
"buildSteps": "Build steps",
|
|
251
|
+
"reviewAndApprove": "Review & approve",
|
|
252
|
+
"clickToViewStep": "Click to view step details & output"
|
|
253
|
+
},
|
|
254
|
+
"epic": {
|
|
255
|
+
"label": "Epic",
|
|
256
|
+
"activeCount": "{count} active",
|
|
257
|
+
"noTasksYet": "No tasks yet"
|
|
54
258
|
}
|
|
55
259
|
},
|
|
56
260
|
"errors": {
|
|
@@ -140,5 +344,407 @@
|
|
|
140
344
|
"step3": "Copy the entire contents of auth.json, paste it below, and choose a personal password to protect it."
|
|
141
345
|
}
|
|
142
346
|
}
|
|
347
|
+
},
|
|
348
|
+
"inspector": {
|
|
349
|
+
"container": {
|
|
350
|
+
"modules": "Modules ({count})",
|
|
351
|
+
"taskCount": "{count} task | {count} tasks",
|
|
352
|
+
"allTasks": "All tasks ({count})",
|
|
353
|
+
"tasks": "Tasks ({count})",
|
|
354
|
+
"addTask": "Add task",
|
|
355
|
+
"noTasks": "No tasks yet. Add one to start work.",
|
|
356
|
+
"servicesHint": "Services are long-lived and don't complete. Work happens in their tasks and modules."
|
|
357
|
+
},
|
|
358
|
+
"epicChildren": {
|
|
359
|
+
"title": "Epic tasks",
|
|
360
|
+
"doneCount": "{done}/{total} done",
|
|
361
|
+
"empty": "No tasks belong to this epic yet. Import an epic's children, or set a task's epic.",
|
|
362
|
+
"unassigned": "Unassigned"
|
|
363
|
+
},
|
|
364
|
+
"recurring": {
|
|
365
|
+
"title": "Recurring pipeline",
|
|
366
|
+
"active": "Active",
|
|
367
|
+
"paused": "Paused",
|
|
368
|
+
"intervalDays": "{count}d",
|
|
369
|
+
"intervalHours": "{count}h",
|
|
370
|
+
"anyDay": "any day",
|
|
371
|
+
"cadence": "Every {every} · {days}{window} · {timezone}",
|
|
372
|
+
"weekdays": {
|
|
373
|
+
"sun": "Sun",
|
|
374
|
+
"mon": "Mon",
|
|
375
|
+
"tue": "Tue",
|
|
376
|
+
"wed": "Wed",
|
|
377
|
+
"thu": "Thu",
|
|
378
|
+
"fri": "Fri",
|
|
379
|
+
"sat": "Sat"
|
|
380
|
+
},
|
|
381
|
+
"nextRun": "Next run: {time}",
|
|
382
|
+
"runNow": "Run now",
|
|
383
|
+
"pause": "Pause",
|
|
384
|
+
"resume": "Resume",
|
|
385
|
+
"editCadence": "Edit cadence",
|
|
386
|
+
"recentRuns": "Recent runs",
|
|
387
|
+
"runStatus": {
|
|
388
|
+
"running": "Running",
|
|
389
|
+
"done": "Done",
|
|
390
|
+
"failed": "Failed",
|
|
391
|
+
"skipped": "Skipped"
|
|
392
|
+
},
|
|
393
|
+
"updateFailed": "Could not update schedule",
|
|
394
|
+
"runNowFailed": "Could not run now"
|
|
395
|
+
},
|
|
396
|
+
"fragments": {
|
|
397
|
+
"serviceTitle": "Service best practices",
|
|
398
|
+
"serviceEmpty": "None. Code-aware agents on this service follow their default guidance."
|
|
399
|
+
},
|
|
400
|
+
"releaseHealth": {
|
|
401
|
+
"title": "Post-release health",
|
|
402
|
+
"clear": "Clear",
|
|
403
|
+
"connectPrompt": "Connect an observability integration to watch this service after releases.",
|
|
404
|
+
"connectFirst": "Connect an observability integration first",
|
|
405
|
+
"connect": "Connect",
|
|
406
|
+
"hint": "The monitors and SLOs the gate watches after this service ships. Comma-separate ids.",
|
|
407
|
+
"monitorIds": "Monitor ids",
|
|
408
|
+
"sloIds": "SLO ids",
|
|
409
|
+
"envTag": "Env tag (optional)",
|
|
410
|
+
"saveMonitoring": "Save monitoring",
|
|
411
|
+
"savedToast": "Monitoring saved",
|
|
412
|
+
"saveFailed": "Could not save the mapping",
|
|
413
|
+
"clearFailed": "Could not clear the mapping"
|
|
414
|
+
},
|
|
415
|
+
"testConfig": {
|
|
416
|
+
"title": "Test infrastructure",
|
|
417
|
+
"defaultEnv": "Default test environment",
|
|
418
|
+
"defaultEnvHint": "The default tasks under this service are spawned with. Each task can override it in its agent settings.",
|
|
419
|
+
"env": {
|
|
420
|
+
"ephemeral": "Ephemeral environment",
|
|
421
|
+
"ephemeralHint": "tests run against a provisioned env",
|
|
422
|
+
"local": "Local (docker-compose)",
|
|
423
|
+
"localHint": "the Tester stands deps up locally"
|
|
424
|
+
},
|
|
425
|
+
"composePath": "docker-compose path",
|
|
426
|
+
"browseRepo": "Browse the repository for the compose file",
|
|
427
|
+
"composeHint": "Used by the Tester to stand up the service's dependencies locally.",
|
|
428
|
+
"selectComposeTitle": "Select the docker-compose file",
|
|
429
|
+
"selectComposeHint": "Pick the compose file in the repository. Its path is stored relative to the repo root.",
|
|
430
|
+
"selected": "Selected: {path}",
|
|
431
|
+
"noFileSelected": "No file selected.",
|
|
432
|
+
"useThisFile": "Use this file",
|
|
433
|
+
"noInfra": "No infra dependencies (the Tester spins nothing up)",
|
|
434
|
+
"missingInfra": "Set a docker-compose path or enable no infra dependencies, otherwise a pipeline with a Tester won't start.",
|
|
435
|
+
"provisioningTitle": "Ephemeral environment provisioning",
|
|
436
|
+
"provisioningHint": "A hint for provisioning this service's ephemeral test environment: which cloud provider to deploy to and how large an instance to request. Ignored for local (docker-compose) testing.",
|
|
437
|
+
"cloudProvider": "Cloud provider",
|
|
438
|
+
"instanceSize": "Instance size",
|
|
439
|
+
"providers": {
|
|
440
|
+
"docker": "Docker (local)",
|
|
441
|
+
"custom": "Custom"
|
|
442
|
+
},
|
|
443
|
+
"sizes": {
|
|
444
|
+
"small": "Small",
|
|
445
|
+
"medium": "Medium",
|
|
446
|
+
"large": "Large",
|
|
447
|
+
"xlarge": "XLarge"
|
|
448
|
+
}
|
|
449
|
+
},
|
|
450
|
+
"agentConfig": {
|
|
451
|
+
"title": "Agent configuration",
|
|
452
|
+
"inherited": "inherited from service",
|
|
453
|
+
"frozen": "Frozen: the agent has started"
|
|
454
|
+
},
|
|
455
|
+
"dependencies": {
|
|
456
|
+
"title": "Depends on",
|
|
457
|
+
"merged": "Merged",
|
|
458
|
+
"notMerged": "Not merged yet",
|
|
459
|
+
"empty": "No dependencies. Can run any time.",
|
|
460
|
+
"blocked": "Blocked until dependencies merge."
|
|
461
|
+
},
|
|
462
|
+
"estimate": {
|
|
463
|
+
"title": "Estimate",
|
|
464
|
+
"complexity": "Complexity",
|
|
465
|
+
"risk": "Risk",
|
|
466
|
+
"impact": "Impact"
|
|
467
|
+
},
|
|
468
|
+
"execution": {
|
|
469
|
+
"stage": {
|
|
470
|
+
"incorporating": "Incorporating…",
|
|
471
|
+
"reviewing": "Re-reviewing…",
|
|
472
|
+
"recommending": "Recommending…"
|
|
473
|
+
},
|
|
474
|
+
"prNumber": "PR #{number}",
|
|
475
|
+
"pullRequest": "Pull request",
|
|
476
|
+
"stepState": {
|
|
477
|
+
"pending": "Pending",
|
|
478
|
+
"working": "Working",
|
|
479
|
+
"waiting_decision": "Needs decision",
|
|
480
|
+
"done": "Done"
|
|
481
|
+
},
|
|
482
|
+
"failed": "Failed",
|
|
483
|
+
"needsDecision": "Needs decision",
|
|
484
|
+
"needsApproval": "Needs approval",
|
|
485
|
+
"spinningUp": "Spinning up…",
|
|
486
|
+
"stop": "Stop",
|
|
487
|
+
"stopTooltip": "Stop the run but keep it (readable and retryable)",
|
|
488
|
+
"reset": "Reset",
|
|
489
|
+
"resetTooltip": "Discard this run and reset the task to planned",
|
|
490
|
+
"viewDetailsOutput": "View details and read output",
|
|
491
|
+
"viewDetails": "View step details",
|
|
492
|
+
"companion": "Companion",
|
|
493
|
+
"companionTooltip": "Companion of a producer step",
|
|
494
|
+
"subtasksProgress": "{completed} of {total} subtasks done, {inProgress} in progress",
|
|
495
|
+
"subtasksDone": "{completed} of {total} subtasks done",
|
|
496
|
+
"resolve": "Resolve",
|
|
497
|
+
"decide": "Decide",
|
|
498
|
+
"review": "Review",
|
|
499
|
+
"approve": "Approve",
|
|
500
|
+
"fragmentsTooltip": "Best-practice fragments folded into this step: {fragments}",
|
|
501
|
+
"standardsApplied": "{count} standard applied | {count} standards applied",
|
|
502
|
+
"companionOf": "{label} (companion)",
|
|
503
|
+
"merged": "Merged",
|
|
504
|
+
"open": "Open",
|
|
505
|
+
"mergePr": "Merge PR"
|
|
506
|
+
},
|
|
507
|
+
"structure": {
|
|
508
|
+
"module": "Module",
|
|
509
|
+
"modulePlaceholder": "e.g. Sessions (created on implement if new)",
|
|
510
|
+
"bestPractices": "Best practices",
|
|
511
|
+
"bestPracticesEmpty": "None. Agents follow their default guidance."
|
|
512
|
+
},
|
|
513
|
+
"runSettings": {
|
|
514
|
+
"unassigned": "Unassigned",
|
|
515
|
+
"workspaceDefault": "Workspace default",
|
|
516
|
+
"workspaceDefaultParen": "(workspace default)",
|
|
517
|
+
"defaultPresetThresholds": "Default ({name}): {thresholds}",
|
|
518
|
+
"defaultPreset": "Default ({name})",
|
|
519
|
+
"noDefault": "No default",
|
|
520
|
+
"inheritWorkspace": "Inherit workspace",
|
|
521
|
+
"on": "On",
|
|
522
|
+
"off": "Off",
|
|
523
|
+
"inheritOn": "Inherit (on)",
|
|
524
|
+
"inheritOff": "Inherit (off)",
|
|
525
|
+
"technical": {
|
|
526
|
+
"unset": "Unset (auto-detect)",
|
|
527
|
+
"technical": "Technical",
|
|
528
|
+
"business": "Business"
|
|
529
|
+
},
|
|
530
|
+
"pipeline": "Pipeline",
|
|
531
|
+
"pipelineEmpty": "No default. Pick a pipeline when you run this task.",
|
|
532
|
+
"mergePolicy": "Merge policy",
|
|
533
|
+
"mergePresetDetail": "{name}: auto-merge when complexity ≤ {complexity}, risk ≤ {risk}, impact ≤ {impact}; up to {attempts} CI-fix attempts.",
|
|
534
|
+
"mergePresetEmpty": "No preset configured. The merger raises a review notification for every PR.",
|
|
535
|
+
"modelPreset": "Model preset",
|
|
536
|
+
"modelPresetBase": "base {model}",
|
|
537
|
+
"modelPresetOverrides": ", {count} override | , {count} overrides",
|
|
538
|
+
"modelPresetEmpty": "No preset configured. Agents run on the deployment's default routing.",
|
|
539
|
+
"unavailableModels": "Not available under the current configuration: {models}. This task would fail on those steps.",
|
|
540
|
+
"editPresets": "Edit presets",
|
|
541
|
+
"configureVendors": "Configure vendors",
|
|
542
|
+
"modelPresetChangeHint": "Changing this affects only steps that haven't started yet.",
|
|
543
|
+
"taskKind": "Task kind",
|
|
544
|
+
"technicalHint": {
|
|
545
|
+
"technical": "Technical: the implementer treats the task definition as primary and the spec as a regression reference; the spec-writer may produce no business specs.",
|
|
546
|
+
"business": "Business: the specification leads, as usual.",
|
|
547
|
+
"unset": "Auto-detect: inferred from the spec phase. Set it explicitly to override."
|
|
548
|
+
},
|
|
549
|
+
"issueWriteback": "Issue writeback",
|
|
550
|
+
"commentOnPrOpen": "Comment on PR open",
|
|
551
|
+
"closeOnMerge": "Close on merge",
|
|
552
|
+
"writebackHint": "Writes back to this task's linked tracker issue. Overrides the workspace default.",
|
|
553
|
+
"responsibleProduct": "Responsible product",
|
|
554
|
+
"responsibleEmpty": "Unassigned. Set a product owner to notify them when requirement review flags this task.",
|
|
555
|
+
"autoStartDependents": "Auto-start dependents",
|
|
556
|
+
"autoStartHint": "When this task merges, automatically start the tasks that depend on it (once their other dependencies are also done)."
|
|
557
|
+
}
|
|
558
|
+
},
|
|
559
|
+
"panels": {
|
|
560
|
+
"decision": {
|
|
561
|
+
"title": "Decision required",
|
|
562
|
+
"agentOnBlock": "{agent} on {block}",
|
|
563
|
+
"visualizationHint": "This is a visualization. Any choice simply resumes the pipeline."
|
|
564
|
+
},
|
|
565
|
+
"stepRestart": {
|
|
566
|
+
"restartFromStep": "Restart pipeline from this step",
|
|
567
|
+
"restartFromHere": "Restart from here"
|
|
568
|
+
},
|
|
569
|
+
"structuredResult": {
|
|
570
|
+
"fallbackTitle": "Agent result",
|
|
571
|
+
"titleWithBlock": "{label}: {title}",
|
|
572
|
+
"fallbackDescription": "Structured agent output",
|
|
573
|
+
"structuredOutput": "Structured output",
|
|
574
|
+
"noResult": "No result yet.",
|
|
575
|
+
"noResultHint": "The structured output appears once this agent finishes. While it runs, the step shows live progress on the board."
|
|
576
|
+
},
|
|
577
|
+
"testReport": {
|
|
578
|
+
"title": "Test report",
|
|
579
|
+
"greenlit": "Greenlit",
|
|
580
|
+
"needsFixes": "Needs fixes",
|
|
581
|
+
"fixAttempts": "{count}/{max} fix attempts",
|
|
582
|
+
"fixing": "· fixing…",
|
|
583
|
+
"tested": "Tested",
|
|
584
|
+
"outcomes": "Outcomes",
|
|
585
|
+
"concerns": "Concerns"
|
|
586
|
+
},
|
|
587
|
+
"stepMeta": {
|
|
588
|
+
"stateLabel": "State",
|
|
589
|
+
"duration": "Duration",
|
|
590
|
+
"elapsed": "elapsed",
|
|
591
|
+
"step": "Step",
|
|
592
|
+
"stepOf": "{number} of {total}",
|
|
593
|
+
"started": "Started",
|
|
594
|
+
"finished": "Finished",
|
|
595
|
+
"model": "Model",
|
|
596
|
+
"notRecorded": "Not recorded",
|
|
597
|
+
"run": "Run",
|
|
598
|
+
"clickToCopy": "{id} (click to copy)",
|
|
599
|
+
"spinningUpContainer": "Spinning up container…",
|
|
600
|
+
"subtasks": "Subtasks · {completed}/{total}",
|
|
601
|
+
"standardsApplied": "Standards applied",
|
|
602
|
+
"decision": "Decision",
|
|
603
|
+
"awaitingChoice": "Awaiting a human choice",
|
|
604
|
+
"approvalGate": "Approval gate",
|
|
605
|
+
"companionReview": "Companion review",
|
|
606
|
+
"correctionIterations": "{count} correction iteration. | {count} correction iterations.",
|
|
607
|
+
"state": {
|
|
608
|
+
"pending": "Pending",
|
|
609
|
+
"working": "Working",
|
|
610
|
+
"waiting_decision": "Needs input",
|
|
611
|
+
"done": "Done",
|
|
612
|
+
"failed": "Failed"
|
|
613
|
+
},
|
|
614
|
+
"approvalStatus": {
|
|
615
|
+
"pending": "Pending",
|
|
616
|
+
"approved": "Approved",
|
|
617
|
+
"changes_requested": "Changes requested",
|
|
618
|
+
"rejected": "Rejected"
|
|
619
|
+
}
|
|
620
|
+
},
|
|
621
|
+
"stepDetail": {
|
|
622
|
+
"contents": "Contents",
|
|
623
|
+
"details": "Details",
|
|
624
|
+
"approvalRequired": "Approval required",
|
|
625
|
+
"decisionRequired": "Decision required",
|
|
626
|
+
"expandAll": "Expand all sections",
|
|
627
|
+
"collapseAll": "Collapse all sections",
|
|
628
|
+
"copyRawOutput": "Copy raw output",
|
|
629
|
+
"closeEsc": "Close (Esc)",
|
|
630
|
+
"companionCapHeading": "{agent} hit its {attempts}-attempt rework limit, still below the {threshold} bar.",
|
|
631
|
+
"companionCapDetail": "Do one more automatic rework round, proceed to the next step accepting the current output, or stop and reset the task so you can edit the inputs and resubmit.",
|
|
632
|
+
"infraAttempts": "Infrastructure attempts",
|
|
633
|
+
"hideInfraAttempts": "Hide infrastructure attempts",
|
|
634
|
+
"editingConclusions": "Editing the conclusions",
|
|
635
|
+
"editConclusionsPlaceholder": "Edit the agent's conclusions; your edits are saved when you approve…",
|
|
636
|
+
"noProseOutput": "This agent produced no prose output.",
|
|
637
|
+
"approveWithCorrections": "Approve with corrections",
|
|
638
|
+
"reviewAndApprove": "Review & approve",
|
|
639
|
+
"editHint": "Edit the conclusions on the left; your edits are saved when you approve.",
|
|
640
|
+
"reviewHint": "Click any block in the output to comment on it, or leave overall feedback below.",
|
|
641
|
+
"editingNotice": "You're editing the conclusions directly. Manual edits can't be combined with per-block comments. Approve to save them, or cancel to return to review.",
|
|
642
|
+
"commentingOn": "Commenting on",
|
|
643
|
+
"commentPlaceholder": "Leave a comment on this block…",
|
|
644
|
+
"addComment": "Add comment",
|
|
645
|
+
"commentN": "Comment {number}",
|
|
646
|
+
"removeComment": "Remove comment",
|
|
647
|
+
"overallFeedback": "Overall feedback / reject reason",
|
|
648
|
+
"overallFeedbackPlaceholder": "Describe the changes the agent should make (optional if you left per-block comments)…",
|
|
649
|
+
"approveWithEdits": "Approve with these edits",
|
|
650
|
+
"cancelEdits": "Cancel edits",
|
|
651
|
+
"approveAndProceed": "Approve & proceed",
|
|
652
|
+
"rejectConfirmPrompt": "Reject this proposal and stop the run entirely?",
|
|
653
|
+
"confirmReject": "Confirm reject",
|
|
654
|
+
"requestChanges": "Request changes",
|
|
655
|
+
"reject": "Reject",
|
|
656
|
+
"requestChangesHint": "Request changes re-runs this step with your feedback & comments. Reject stops the run entirely."
|
|
657
|
+
},
|
|
658
|
+
"inspector": {
|
|
659
|
+
"frameStatus": {
|
|
660
|
+
"planned": "No tasks",
|
|
661
|
+
"ready": "Live",
|
|
662
|
+
"in_progress": "Active",
|
|
663
|
+
"blocked": "Needs attention",
|
|
664
|
+
"pr_ready": "Active",
|
|
665
|
+
"done": "Live"
|
|
666
|
+
},
|
|
667
|
+
"deleteRecurringPipeline": "Delete recurring pipeline",
|
|
668
|
+
"deleteTask": "Delete task",
|
|
669
|
+
"deleteModule": "Delete module",
|
|
670
|
+
"deleteService": "Delete service",
|
|
671
|
+
"titlePlaceholder": "Title…",
|
|
672
|
+
"reworkedRequirements": "Reworked requirements",
|
|
673
|
+
"agentStepsUseDocument": "Agent steps use this document.",
|
|
674
|
+
"open": "Open",
|
|
675
|
+
"originalDescriptionFrozen": "Original description (frozen)",
|
|
676
|
+
"noDescription": "No description",
|
|
677
|
+
"describeBlock": "Describe this block…",
|
|
678
|
+
"taskStartedLocked": "This task has started. Its details are locked.",
|
|
679
|
+
"lastIncorporatedRequirements": "Last incorporated requirements",
|
|
680
|
+
"priorDocHint": "From the previous review. Use it as a base: edit the description above and resubmit.",
|
|
681
|
+
"bootstrapping": "Bootstrapping…",
|
|
682
|
+
"importIssue": "Import issue",
|
|
683
|
+
"connectTracker": "Connect a tracker",
|
|
684
|
+
"spawnFromDocument": "Spawn from document",
|
|
685
|
+
"viewRequirements": "View Requirements",
|
|
686
|
+
"reRun": "Re-run",
|
|
687
|
+
"run": "Run",
|
|
688
|
+
"focus": "Focus"
|
|
689
|
+
}
|
|
690
|
+
},
|
|
691
|
+
"observability": {
|
|
692
|
+
"modelActivity": "Model activity",
|
|
693
|
+
"viewAllCalls": "View all calls →",
|
|
694
|
+
"providedContext": "Provided context",
|
|
695
|
+
"exportJson": "Export JSON",
|
|
696
|
+
"exportHint": "Download an LLM-friendly JSON export of this run",
|
|
697
|
+
"closeEsc": "Close (Esc)",
|
|
698
|
+
"loadingActivity": "Loading model activity…",
|
|
699
|
+
"loadingContext": "Loading provided context…",
|
|
700
|
+
"noCalls": "No model calls recorded for this run.",
|
|
701
|
+
"noContext": "No agent context stored for this run. It is captured per dispatch when the workspace has 'Store full agent context' enabled.",
|
|
702
|
+
"summary": {
|
|
703
|
+
"calls": "Calls",
|
|
704
|
+
"tokensInOut": "Tokens (in / out)",
|
|
705
|
+
"transportOverhead": "Transport overhead",
|
|
706
|
+
"modelExecution": "Model execution",
|
|
707
|
+
"truncated": "{count} truncated | {count} truncated"
|
|
708
|
+
},
|
|
709
|
+
"metricsBar": {
|
|
710
|
+
"calls": "{count} call | {count} calls",
|
|
711
|
+
"promptCompletionTokens": "Prompt / completion tokens",
|
|
712
|
+
"cachedTokens": "({tokens} cached)",
|
|
713
|
+
"cachedTokensHint": "Prompt tokens served from the provider's cache",
|
|
714
|
+
"errors": "{count} error | {count} errors",
|
|
715
|
+
"warnings": "{count} warning | {count} warnings",
|
|
716
|
+
"outputLimit": "Output limit",
|
|
717
|
+
"truncatedCalls": "{count} call truncated at the limit | {count} calls truncated at the limit",
|
|
718
|
+
"transportVsExecution": "Transport vs execution",
|
|
719
|
+
"transportOverhead": "Transport / proxy overhead",
|
|
720
|
+
"modelExecution": "Model execution"
|
|
721
|
+
},
|
|
722
|
+
"call": {
|
|
723
|
+
"tokensTitle": "{prompt} prompt / {completion} completion tokens",
|
|
724
|
+
"outputUsedVsLimit": "Output used vs limit",
|
|
725
|
+
"transportVsExecution": "Transport overhead / model execution",
|
|
726
|
+
"error": "error",
|
|
727
|
+
"ok": "ok",
|
|
728
|
+
"messages": "{count} messages",
|
|
729
|
+
"tools": "{count} tools",
|
|
730
|
+
"streamed": "streamed",
|
|
731
|
+
"buffered": "buffered",
|
|
732
|
+
"maxTokens": "max_tokens {value}",
|
|
733
|
+
"promptCached": "{cached}/{prompt} prompt cached",
|
|
734
|
+
"total": "total {duration}",
|
|
735
|
+
"prompt": "Prompt",
|
|
736
|
+
"promptPrefixOmitted": "(new messages only: {count} earlier omitted)",
|
|
737
|
+
"response": "Response",
|
|
738
|
+
"reasoning": "Reasoning"
|
|
739
|
+
},
|
|
740
|
+
"context": {
|
|
741
|
+
"injectedFiles": "Injected context files",
|
|
742
|
+
"bestPracticeFragments": "Best-practice fragments",
|
|
743
|
+
"filesCount": "{count} files",
|
|
744
|
+
"fragmentsCount": "{count} fragments",
|
|
745
|
+
"systemPrompt": "System prompt",
|
|
746
|
+
"userPrompt": "User prompt",
|
|
747
|
+
"details": "Details"
|
|
748
|
+
}
|
|
143
749
|
}
|
|
144
750
|
}
|