@cat-factory/app 0.187.0 → 0.189.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/README.md +26 -0
- package/app/components/consensus/ConsensusSessionWindow.vue +11 -0
- package/app/components/palettes/AgentPalette.vue +12 -1
- package/app/components/palettes/AgentTierSelect.vue +67 -0
- package/app/components/pipeline/PipelineBuilder.vue +166 -92
- package/app/components/pipeline/PipelineHealthModal.vue +68 -12
- package/app/components/settings/ConsensusGroupsSection.vue +498 -0
- package/app/components/settings/ModelConfigurationPanel.vue +34 -2
- package/app/composables/api/presets.ts +22 -0
- package/app/composables/usePipelineErrorToast.ts +17 -0
- package/app/composables/usePipelineHealth.spec.ts +79 -7
- package/app/composables/usePipelineHealth.ts +70 -3
- package/app/modular/agent-kinds.spec.ts +9 -3
- package/app/modular/agent-kinds.ts +4 -0
- package/app/stores/agentTier.spec.ts +24 -0
- package/app/stores/agentTier.ts +42 -0
- package/app/stores/consensusGroups.ts +77 -0
- package/app/stores/pipelines/draftActions.ts +11 -113
- package/app/stores/pipelines/draftStepConfig.ts +157 -0
- package/app/stores/pipelines.ts +21 -3
- package/app/stores/workspace/hydrate.ts +7 -1
- package/app/types/consensus.ts +3 -0
- package/app/types/domain.ts +8 -1
- package/app/utils/agentTier.spec.ts +59 -0
- package/app/utils/agentTier.ts +49 -0
- package/app/utils/catalog.spec.ts +12 -0
- package/app/utils/catalog.ts +58 -2
- package/i18n/locales/de.json +74 -5
- package/i18n/locales/en.json +80 -5
- package/i18n/locales/es.json +74 -5
- package/i18n/locales/fr.json +74 -5
- package/i18n/locales/he.json +74 -5
- package/i18n/locales/it.json +74 -5
- package/i18n/locales/ja.json +74 -5
- package/i18n/locales/pl.json +74 -5
- package/i18n/locales/tr.json +74 -5
- package/i18n/locales/uk.json +74 -5
- package/package.json +2 -2
package/app/utils/catalog.ts
CHANGED
|
@@ -30,6 +30,7 @@ export const AGENT_CATEGORIES: { id: AgentCategory; label: string }[] = [
|
|
|
30
30
|
export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
31
31
|
{
|
|
32
32
|
kind: 'requirements-review',
|
|
33
|
+
tier: 'basic',
|
|
33
34
|
label: 'Requirements Reviewer',
|
|
34
35
|
icon: 'i-lucide-clipboard-check',
|
|
35
36
|
color: '#f59e0b',
|
|
@@ -42,6 +43,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
42
43
|
},
|
|
43
44
|
{
|
|
44
45
|
kind: 'clarity-review',
|
|
46
|
+
tier: 'basic',
|
|
45
47
|
label: 'Clarity Reviewer',
|
|
46
48
|
icon: 'i-lucide-bug',
|
|
47
49
|
color: '#f59e0b',
|
|
@@ -58,6 +60,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
58
60
|
// structured triage opens in the shared generic viewer; the clarity gate consumes its
|
|
59
61
|
// `clarity`/`questions` server-side.
|
|
60
62
|
kind: 'bug-investigator',
|
|
63
|
+
tier: 'intermediate',
|
|
61
64
|
label: 'Bug Investigator',
|
|
62
65
|
icon: 'i-lucide-search-code',
|
|
63
66
|
color: '#38bdf8',
|
|
@@ -73,6 +76,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
73
76
|
// resolves to the findings-selection window on every surface — not just when the manifest
|
|
74
77
|
// is hydrated. Mirrors the backend `presentation` in `pr-reviewer.ts`.
|
|
75
78
|
kind: 'pr-reviewer',
|
|
79
|
+
tier: 'basic',
|
|
76
80
|
label: 'PR Reviewer',
|
|
77
81
|
icon: 'i-lucide-clipboard-check',
|
|
78
82
|
color: '#6366f1',
|
|
@@ -89,6 +93,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
89
93
|
// shared generic viewer; the findings document is committed by a backend post-op (delivered
|
|
90
94
|
// as a pull request by default, or straight to base via the direct pipeline).
|
|
91
95
|
kind: 'spike',
|
|
96
|
+
tier: 'intermediate',
|
|
92
97
|
label: 'Spike',
|
|
93
98
|
icon: 'i-lucide-flask-conical',
|
|
94
99
|
color: '#22d3ee',
|
|
@@ -99,6 +104,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
99
104
|
},
|
|
100
105
|
{
|
|
101
106
|
kind: 'task-estimator',
|
|
107
|
+
tier: 'intermediate',
|
|
102
108
|
label: 'Task Estimator',
|
|
103
109
|
icon: 'i-lucide-gauge',
|
|
104
110
|
color: '#eab308',
|
|
@@ -108,6 +114,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
108
114
|
},
|
|
109
115
|
{
|
|
110
116
|
kind: 'requirements-brainstorm',
|
|
117
|
+
tier: 'intermediate',
|
|
111
118
|
label: 'Requirements Brainstorm',
|
|
112
119
|
icon: 'i-lucide-lightbulb',
|
|
113
120
|
color: '#f59e0b',
|
|
@@ -120,6 +127,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
120
127
|
},
|
|
121
128
|
{
|
|
122
129
|
kind: 'architecture-brainstorm',
|
|
130
|
+
tier: 'advanced',
|
|
123
131
|
label: 'Architecture Brainstorm',
|
|
124
132
|
icon: 'i-lucide-compass',
|
|
125
133
|
color: '#a78bfa',
|
|
@@ -130,6 +138,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
130
138
|
},
|
|
131
139
|
{
|
|
132
140
|
kind: 'architect',
|
|
141
|
+
tier: 'basic',
|
|
133
142
|
label: 'Architect',
|
|
134
143
|
icon: 'i-lucide-drafting-compass',
|
|
135
144
|
color: '#a78bfa',
|
|
@@ -138,6 +147,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
138
147
|
},
|
|
139
148
|
{
|
|
140
149
|
kind: 'researcher',
|
|
150
|
+
tier: 'intermediate',
|
|
141
151
|
label: 'Researcher',
|
|
142
152
|
icon: 'i-lucide-telescope',
|
|
143
153
|
color: '#38bdf8',
|
|
@@ -146,6 +156,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
146
156
|
},
|
|
147
157
|
{
|
|
148
158
|
kind: 'coder',
|
|
159
|
+
tier: 'basic',
|
|
149
160
|
label: 'Coder',
|
|
150
161
|
icon: 'i-lucide-code-xml',
|
|
151
162
|
color: '#34d399',
|
|
@@ -154,6 +165,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
154
165
|
},
|
|
155
166
|
{
|
|
156
167
|
kind: 'integrator',
|
|
168
|
+
tier: 'advanced',
|
|
157
169
|
label: 'Integrator',
|
|
158
170
|
icon: 'i-lucide-plug-zap',
|
|
159
171
|
color: '#fb923c',
|
|
@@ -162,6 +174,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
162
174
|
},
|
|
163
175
|
{
|
|
164
176
|
kind: 'mocker',
|
|
177
|
+
tier: 'advanced',
|
|
165
178
|
label: 'Mock Builder',
|
|
166
179
|
icon: 'i-lucide-server-cog',
|
|
167
180
|
color: '#fb7185',
|
|
@@ -170,6 +183,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
170
183
|
},
|
|
171
184
|
{
|
|
172
185
|
kind: 'tester-api',
|
|
186
|
+
tier: 'basic',
|
|
173
187
|
label: 'API Tester',
|
|
174
188
|
icon: 'i-lucide-flask-conical',
|
|
175
189
|
color: '#fbbf24',
|
|
@@ -181,6 +195,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
181
195
|
},
|
|
182
196
|
{
|
|
183
197
|
kind: 'tester-ui',
|
|
198
|
+
tier: 'intermediate',
|
|
184
199
|
label: 'UI Tester',
|
|
185
200
|
icon: 'i-lucide-camera',
|
|
186
201
|
color: '#fbbf24',
|
|
@@ -192,6 +207,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
192
207
|
},
|
|
193
208
|
{
|
|
194
209
|
kind: 'playwright',
|
|
210
|
+
tier: 'intermediate',
|
|
195
211
|
label: 'Acceptance Test Author',
|
|
196
212
|
icon: 'i-lucide-theater',
|
|
197
213
|
color: '#e879f9',
|
|
@@ -201,6 +217,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
201
217
|
},
|
|
202
218
|
{
|
|
203
219
|
kind: 'human-test',
|
|
220
|
+
tier: 'intermediate',
|
|
204
221
|
label: 'Human Testing',
|
|
205
222
|
icon: 'i-lucide-user-check',
|
|
206
223
|
color: '#f59e0b',
|
|
@@ -213,6 +230,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
213
230
|
},
|
|
214
231
|
{
|
|
215
232
|
kind: 'visual-confirmation',
|
|
233
|
+
tier: 'advanced',
|
|
216
234
|
label: 'Visual Confirmation',
|
|
217
235
|
icon: 'i-lucide-image-play',
|
|
218
236
|
color: '#f59e0b',
|
|
@@ -225,6 +243,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
225
243
|
},
|
|
226
244
|
{
|
|
227
245
|
kind: 'documenter',
|
|
246
|
+
tier: 'basic',
|
|
228
247
|
label: 'Documenter',
|
|
229
248
|
icon: 'i-lucide-book-open-text',
|
|
230
249
|
color: '#818cf8',
|
|
@@ -233,6 +252,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
233
252
|
},
|
|
234
253
|
{
|
|
235
254
|
kind: 'business-documenter',
|
|
255
|
+
tier: 'intermediate',
|
|
236
256
|
label: 'Domain Rules Documenter',
|
|
237
257
|
icon: 'i-lucide-scroll-text',
|
|
238
258
|
color: '#84cc16',
|
|
@@ -242,6 +262,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
242
262
|
},
|
|
243
263
|
{
|
|
244
264
|
kind: 'business-reviewer',
|
|
265
|
+
tier: 'advanced',
|
|
245
266
|
label: 'Domain Rules Reviewer',
|
|
246
267
|
icon: 'i-lucide-shield-alert',
|
|
247
268
|
color: '#ef4444',
|
|
@@ -264,6 +285,7 @@ export const AGENT_ARCHETYPES: AgentArchetype[] = [
|
|
|
264
285
|
export const COMPANION_ARCHETYPES: AgentArchetype[] = [
|
|
265
286
|
{
|
|
266
287
|
kind: 'reviewer',
|
|
288
|
+
tier: 'basic',
|
|
267
289
|
label: 'Reviewer (companion)',
|
|
268
290
|
icon: 'i-lucide-scan-eye',
|
|
269
291
|
color: '#f472b6',
|
|
@@ -272,6 +294,7 @@ export const COMPANION_ARCHETYPES: AgentArchetype[] = [
|
|
|
272
294
|
},
|
|
273
295
|
{
|
|
274
296
|
kind: 'architect-companion',
|
|
297
|
+
tier: 'intermediate',
|
|
275
298
|
label: 'Architect Companion',
|
|
276
299
|
icon: 'i-lucide-bug-play',
|
|
277
300
|
color: '#c084fc',
|
|
@@ -280,6 +303,7 @@ export const COMPANION_ARCHETYPES: AgentArchetype[] = [
|
|
|
280
303
|
},
|
|
281
304
|
{
|
|
282
305
|
kind: 'spec-companion',
|
|
306
|
+
tier: 'intermediate',
|
|
283
307
|
label: 'Spec Reviewer',
|
|
284
308
|
icon: 'i-lucide-list-checks',
|
|
285
309
|
color: '#2dd4bf',
|
|
@@ -288,6 +312,7 @@ export const COMPANION_ARCHETYPES: AgentArchetype[] = [
|
|
|
288
312
|
},
|
|
289
313
|
{
|
|
290
314
|
kind: 'doc-reviewer',
|
|
315
|
+
tier: 'intermediate',
|
|
291
316
|
label: 'Doc Reviewer',
|
|
292
317
|
icon: 'i-lucide-file-search',
|
|
293
318
|
color: '#818cf8',
|
|
@@ -366,13 +391,19 @@ export function __resetCustomAgentKindMetaForTest(): void {
|
|
|
366
391
|
* Agent kinds eligible for the optional consensus mechanism (the pipeline builder shows an
|
|
367
392
|
* "Enable Consensus" toggle for these). Mirrors the backend default-eligible set assigned by
|
|
368
393
|
* `registerConsensusTraits()` in `@cat-factory/consensus` — hand-synced, like the other
|
|
369
|
-
* frontend mirrors. In CONSENSUS mode `architect`/`analysis
|
|
370
|
-
*
|
|
394
|
+
* frontend mirrors. In CONSENSUS mode a container-backed kind (`architect`/`analysis`, and the
|
|
395
|
+
* checkout-exploring reviewers) reasons over the provided context rather than exploring a
|
|
396
|
+
* checkout (a deliberate trade, gated by the task estimate); the review kinds carry the bulk of
|
|
397
|
+
* the value, since a review is a judgement and a panel judges better than one model.
|
|
371
398
|
*/
|
|
372
399
|
export const CONSENSUS_ELIGIBLE_KINDS: ReadonlySet<string> = new Set([
|
|
373
400
|
'architect',
|
|
374
401
|
'analysis',
|
|
375
402
|
'reviewer',
|
|
403
|
+
'pr-reviewer',
|
|
404
|
+
'doc-reviewer',
|
|
405
|
+
'architect-companion',
|
|
406
|
+
'spec-companion',
|
|
376
407
|
'task-estimator',
|
|
377
408
|
])
|
|
378
409
|
|
|
@@ -400,6 +431,7 @@ export function isTesterKind(kind: string): boolean {
|
|
|
400
431
|
export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
401
432
|
'spec-writer': {
|
|
402
433
|
kind: 'spec-writer',
|
|
434
|
+
tier: 'intermediate',
|
|
403
435
|
label: 'Spec Writer',
|
|
404
436
|
icon: 'i-lucide-clipboard-list',
|
|
405
437
|
color: '#c084fc',
|
|
@@ -408,6 +440,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
408
440
|
},
|
|
409
441
|
blueprints: {
|
|
410
442
|
kind: 'blueprints',
|
|
443
|
+
tier: 'intermediate',
|
|
411
444
|
label: 'Blueprinter',
|
|
412
445
|
icon: 'i-lucide-map',
|
|
413
446
|
color: '#22d3ee',
|
|
@@ -420,6 +453,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
420
453
|
// different (stronger) model than the reviewer. Its output renders in the pr-review window.
|
|
421
454
|
'challenge-investigator': {
|
|
422
455
|
kind: 'challenge-investigator',
|
|
456
|
+
tier: 'advanced',
|
|
423
457
|
label: 'Challenge Investigator',
|
|
424
458
|
icon: 'i-lucide-gavel',
|
|
425
459
|
color: '#6366f1',
|
|
@@ -433,6 +467,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
433
467
|
// built-in pipelines, so it needs display metadata (else it renders as a generic gray "Agent").
|
|
434
468
|
deployer: {
|
|
435
469
|
kind: 'deployer',
|
|
470
|
+
tier: 'intermediate',
|
|
436
471
|
label: 'Deployer',
|
|
437
472
|
icon: 'i-lucide-cloud-upload',
|
|
438
473
|
color: '#34d399',
|
|
@@ -445,6 +480,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
445
480
|
// interviewer, so the interview covers only what the code cannot answer.
|
|
446
481
|
'initiative-interviewer': {
|
|
447
482
|
kind: 'initiative-interviewer',
|
|
483
|
+
tier: 'advanced',
|
|
448
484
|
label: 'Initiative Interviewer',
|
|
449
485
|
icon: 'i-lucide-messages-square',
|
|
450
486
|
color: '#818cf8',
|
|
@@ -455,6 +491,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
455
491
|
},
|
|
456
492
|
'initiative-analyst': {
|
|
457
493
|
kind: 'initiative-analyst',
|
|
494
|
+
tier: 'advanced',
|
|
458
495
|
label: 'Initiative Analyst',
|
|
459
496
|
icon: 'i-lucide-microscope',
|
|
460
497
|
color: '#818cf8',
|
|
@@ -464,6 +501,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
464
501
|
},
|
|
465
502
|
'initiative-planner': {
|
|
466
503
|
kind: 'initiative-planner',
|
|
504
|
+
tier: 'advanced',
|
|
467
505
|
label: 'Initiative Planner',
|
|
468
506
|
icon: 'i-lucide-milestone',
|
|
469
507
|
color: '#818cf8',
|
|
@@ -475,6 +513,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
475
513
|
},
|
|
476
514
|
'initiative-committer': {
|
|
477
515
|
kind: 'initiative-committer',
|
|
516
|
+
tier: 'advanced',
|
|
478
517
|
label: 'Initiative Committer',
|
|
479
518
|
icon: 'i-lucide-git-commit-horizontal',
|
|
480
519
|
color: '#818cf8',
|
|
@@ -487,6 +526,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
487
526
|
// for run-timeline / saved-pipeline display rather than in AGENT_ARCHETYPES.
|
|
488
527
|
analysis: {
|
|
489
528
|
kind: 'analysis',
|
|
529
|
+
tier: 'intermediate',
|
|
490
530
|
label: 'Analyst',
|
|
491
531
|
icon: 'i-lucide-search-code',
|
|
492
532
|
color: '#818cf8',
|
|
@@ -498,6 +538,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
498
538
|
// tech-debt pipeline, so it is a display-metadata system kind, not a palette archetype.
|
|
499
539
|
tracker: {
|
|
500
540
|
kind: 'tracker',
|
|
541
|
+
tier: 'advanced',
|
|
501
542
|
label: 'Issue Tracker',
|
|
502
543
|
icon: 'i-lucide-ticket',
|
|
503
544
|
color: '#fb923c',
|
|
@@ -511,6 +552,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
511
552
|
// `tracker`), not a palette archetype.
|
|
512
553
|
'bug-intake': {
|
|
513
554
|
kind: 'bug-intake',
|
|
555
|
+
tier: 'advanced',
|
|
514
556
|
label: 'Bug Intake',
|
|
515
557
|
icon: 'i-lucide-inbox',
|
|
516
558
|
color: '#fb923c',
|
|
@@ -519,6 +561,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
519
561
|
},
|
|
520
562
|
conflicts: {
|
|
521
563
|
kind: 'conflicts',
|
|
564
|
+
tier: 'intermediate',
|
|
522
565
|
label: 'Conflicts Gate',
|
|
523
566
|
icon: 'i-lucide-git-merge',
|
|
524
567
|
color: '#f97316',
|
|
@@ -529,6 +572,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
529
572
|
},
|
|
530
573
|
'conflict-resolver': {
|
|
531
574
|
kind: 'conflict-resolver',
|
|
575
|
+
tier: 'intermediate',
|
|
532
576
|
label: 'Conflict Resolver',
|
|
533
577
|
icon: 'i-lucide-git-merge',
|
|
534
578
|
color: '#f97316',
|
|
@@ -536,6 +580,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
536
580
|
},
|
|
537
581
|
ci: {
|
|
538
582
|
kind: 'ci',
|
|
583
|
+
tier: 'basic',
|
|
539
584
|
label: 'CI Gate',
|
|
540
585
|
icon: 'i-lucide-shield-check',
|
|
541
586
|
color: '#38bdf8',
|
|
@@ -550,6 +595,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
550
595
|
// is a registered kind, so it arrives via the workspace snapshot's `customAgentKinds`.
|
|
551
596
|
'doc-quality': {
|
|
552
597
|
kind: 'doc-quality',
|
|
598
|
+
tier: 'intermediate',
|
|
553
599
|
label: 'Doc Quality Gate',
|
|
554
600
|
icon: 'i-lucide-file-check-2',
|
|
555
601
|
color: '#818cf8',
|
|
@@ -560,6 +606,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
560
606
|
},
|
|
561
607
|
'ci-fixer': {
|
|
562
608
|
kind: 'ci-fixer',
|
|
609
|
+
tier: 'basic',
|
|
563
610
|
label: 'CI Fixer',
|
|
564
611
|
icon: 'i-lucide-wrench',
|
|
565
612
|
color: '#38bdf8',
|
|
@@ -567,6 +614,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
567
614
|
},
|
|
568
615
|
fixer: {
|
|
569
616
|
kind: 'fixer',
|
|
617
|
+
tier: 'basic',
|
|
570
618
|
label: 'Fixer',
|
|
571
619
|
icon: 'i-lucide-wrench',
|
|
572
620
|
color: '#fbbf24',
|
|
@@ -575,6 +623,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
575
623
|
},
|
|
576
624
|
merger: {
|
|
577
625
|
kind: 'merger',
|
|
626
|
+
tier: 'basic',
|
|
578
627
|
label: 'Merger',
|
|
579
628
|
icon: 'i-lucide-git-pull-request',
|
|
580
629
|
color: '#a3e635',
|
|
@@ -585,6 +634,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
585
634
|
},
|
|
586
635
|
'human-review': {
|
|
587
636
|
kind: 'human-review',
|
|
637
|
+
tier: 'basic',
|
|
588
638
|
label: 'Human Review Gate',
|
|
589
639
|
icon: 'i-lucide-users',
|
|
590
640
|
color: '#c084fc',
|
|
@@ -600,6 +650,7 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
600
650
|
// so it needs display metadata here and a per-workspace model in Model Configuration.
|
|
601
651
|
kaizen: {
|
|
602
652
|
kind: 'kaizen',
|
|
653
|
+
tier: 'advanced',
|
|
603
654
|
label: 'Kaizen',
|
|
604
655
|
icon: 'i-lucide-sparkles',
|
|
605
656
|
color: '#2dd4bf',
|
|
@@ -613,6 +664,11 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
|
|
|
613
664
|
// but it still needs display metadata here so timelines/saved pipelines render it.
|
|
614
665
|
'post-release-health': {
|
|
615
666
|
kind: 'post-release-health',
|
|
667
|
+
// Intermediate rather than advanced: the palette already offers this gate ONLY when the
|
|
668
|
+
// workspace has an observability integration connected, and that connection is a stronger
|
|
669
|
+
// statement of intent than the tier — burying a gate the operator just wired two levels
|
|
670
|
+
// down would hide the capability they came for.
|
|
671
|
+
tier: 'intermediate',
|
|
616
672
|
label: 'Post-Release Health',
|
|
617
673
|
icon: 'i-lucide-activity',
|
|
618
674
|
color: '#f43f5e',
|
package/i18n/locales/de.json
CHANGED
|
@@ -971,6 +971,47 @@
|
|
|
971
971
|
"saved": "Standard-Testumgebung gespeichert.",
|
|
972
972
|
"savedState": "Gespeichert.",
|
|
973
973
|
"saveFailed": "Die Standard-Testumgebung konnte nicht gespeichert werden."
|
|
974
|
+
},
|
|
975
|
+
"consensusGroups": {
|
|
976
|
+
"title": "Konsensgruppen",
|
|
977
|
+
"intro": "Wiederverwendbare Review-Panels, auf die ein Pipeline-Schritt hochstufen kann. Jede Gruppe trägt die Schätzungsschwelle, die eine Aufgabe erreichen muss — so bekommt schwerere Arbeit ein größeres Panel, ohne eigene Pipeline.",
|
|
978
|
+
"new": "Neue Gruppe",
|
|
979
|
+
"list": {
|
|
980
|
+
"empty": "Noch keine Konsensgruppen.",
|
|
981
|
+
"always": "Immer",
|
|
982
|
+
"bar": "Ab {bar}",
|
|
983
|
+
"editTitle": "Gruppe bearbeiten",
|
|
984
|
+
"deleteTitle": "Gruppe löschen",
|
|
985
|
+
"participantCount": "keine Teilnehmer | ein Teilnehmer | {count} Teilnehmer"
|
|
986
|
+
},
|
|
987
|
+
"editor": {
|
|
988
|
+
"nameLabel": "Name",
|
|
989
|
+
"namePlaceholder": "Tiefes Review-Panel",
|
|
990
|
+
"strategyLabel": "Strategie",
|
|
991
|
+
"descriptionLabel": "Beschreibung",
|
|
992
|
+
"descriptionPlaceholder": "Wofür dieses Panel gedacht ist",
|
|
993
|
+
"participantsLabel": "Teilnehmer",
|
|
994
|
+
"participantsHint": "Mindestens zwei. Vielfalt bei Rolle und Modell macht ein Panel besser als ein einzelnes Modell.",
|
|
995
|
+
"addParticipant": "Teilnehmer hinzufügen",
|
|
996
|
+
"framingPlaceholder": "Perspektive, aus der dieser Teilnehmer argumentiert",
|
|
997
|
+
"stepModel": "Modell des Schritts",
|
|
998
|
+
"synthesizerLabel": "Synthese-Modell",
|
|
999
|
+
"gatedLabel": "Nur für Aufgaben über einer Schwelle",
|
|
1000
|
+
"gatedHint": "Die Schätzung, die eine Aufgabe erreichen muss, um dieses Panel zu bekommen. Aus lassen, damit diese Gruppe immer gilt.",
|
|
1001
|
+
"complexityThreshold": "Komplexität",
|
|
1002
|
+
"gatingIncomplete": "Setze mindestens eine Schwelle oder schalte die Bedingung aus.",
|
|
1003
|
+
"unnamedRole": "Reviewer",
|
|
1004
|
+
"cancel": "Abbrechen",
|
|
1005
|
+
"save": "Gruppe speichern"
|
|
1006
|
+
},
|
|
1007
|
+
"confirmDelete": {
|
|
1008
|
+
"title": "Konsensgruppe löschen?",
|
|
1009
|
+
"body": "Schritte, die „{name}“ nennen, fallen auf ihre verbleibenden Gruppen zurück."
|
|
1010
|
+
},
|
|
1011
|
+
"toast": {
|
|
1012
|
+
"saveFailed": "Konsensgruppe konnte nicht gespeichert werden",
|
|
1013
|
+
"deleteFailed": "Konsensgruppe konnte nicht gelöscht werden"
|
|
1014
|
+
}
|
|
974
1015
|
}
|
|
975
1016
|
},
|
|
976
1017
|
"inspector": {
|
|
@@ -3618,7 +3659,11 @@
|
|
|
3618
3659
|
"skillNeedsPick": "Ein Skill-Schritt braucht einen ausgewählten Skill, bevor du speichern kannst.",
|
|
3619
3660
|
"purposeStepsConflict": "Dieser Zweck schreibt keinen Code und führt keine Tests aus, doch die Pipeline enthält noch Implementierungs- oder Testschritte. Entfernen Sie diese oder setzen Sie den Zweck auf Entwicklung.",
|
|
3620
3661
|
"promptEditTooltip": "Systemprompt dieses Agenten bearbeiten",
|
|
3621
|
-
"promptEditedTooltip": "Der Systemprompt dieses Agenten ist für diesen Arbeitsbereich bearbeitet"
|
|
3662
|
+
"promptEditedTooltip": "Der Systemprompt dieses Agenten ist für diesen Arbeitsbereich bearbeitet",
|
|
3663
|
+
"consensusGroups": "Konsensgruppen",
|
|
3664
|
+
"consensusGroupsHint": "Wähle die wiederverwendbaren Panels, auf die dieser Schritt hochstufen darf. Jedes hat seine eigene Schätzungsschwelle; es läuft das anspruchsvollste, das die Aufgabe erreicht.",
|
|
3665
|
+
"consensusGroupsActive": "Dieser Schritt führt die ausgewählte Gruppe aus. Hebe die Auswahl aller Gruppen auf, um die Teilnehmer hier zu konfigurieren.",
|
|
3666
|
+
"consensusGroupAlways": "immer"
|
|
3622
3667
|
},
|
|
3623
3668
|
"progress": {
|
|
3624
3669
|
"status": {
|
|
@@ -3681,14 +3726,20 @@
|
|
|
3681
3726
|
"add": "Hinzufügen",
|
|
3682
3727
|
"reseed": "Neu aufsetzen",
|
|
3683
3728
|
"delete": "Löschen",
|
|
3729
|
+
"remove": "Entfernen",
|
|
3684
3730
|
"updatesHeading": "Updates verfügbar",
|
|
3685
3731
|
"updatesDescription": "Eine neuere Version dieser integrierten Pipelines wurde ausgeliefert. Setzen Sie sie neu auf, um sie zu übernehmen (Ihre Labels und der Archivstatus bleiben erhalten).",
|
|
3732
|
+
"retiredHeading": "Ausgemusterte Pipelines",
|
|
3733
|
+
"retiredDescription": "Diese integrierten Pipelines wurden aus dem Katalog zurückgezogen, es gibt also keine neuere Version zum Übernehmen. Entfernen Sie sie aus der Bibliothek dieses Boards.",
|
|
3734
|
+
"retiredNote": "Aus dem Katalog zurückgezogen.",
|
|
3735
|
+
"retiredReplacedBy": "Aus dem Katalog zurückgezogen. Verwenden Sie stattdessen {name}.",
|
|
3686
3736
|
"reseedAll": "Alle neu aufsetzen ({count})",
|
|
3687
3737
|
"dismiss": "Verwerfen",
|
|
3688
3738
|
"done": "Fertig",
|
|
3689
3739
|
"toast": {
|
|
3690
3740
|
"reseedFailed": "Pipeline konnte nicht neu aufgesetzt werden",
|
|
3691
|
-
"deleteFailed": "Pipeline konnte nicht gelöscht werden"
|
|
3741
|
+
"deleteFailed": "Pipeline konnte nicht gelöscht werden",
|
|
3742
|
+
"removeFailed": "Pipeline konnte nicht entfernt werden"
|
|
3692
3743
|
}
|
|
3693
3744
|
}
|
|
3694
3745
|
},
|
|
@@ -3727,6 +3778,17 @@
|
|
|
3727
3778
|
"conflict": "Jemand anderes hat diesen Prompt geändert. Neu geladen - wenden Sie Ihre Änderung erneut an."
|
|
3728
3779
|
}
|
|
3729
3780
|
},
|
|
3781
|
+
"agentTier": {
|
|
3782
|
+
"label": "Agentenstufe",
|
|
3783
|
+
"basic": "Basis",
|
|
3784
|
+
"intermediate": "Fortgeschritten",
|
|
3785
|
+
"advanced": "Experte",
|
|
3786
|
+
"basicHint": "Nur die alltäglichen Agenten, aus denen eine Pipeline normalerweise besteht.",
|
|
3787
|
+
"intermediateHint": "Ergänzt die Agenten, die du regelmäßig einsetzt.",
|
|
3788
|
+
"advancedHint": "Zeigt alle Agenten, auch die spezialisierten.",
|
|
3789
|
+
"tooltip": "Wähle, wie viel des Agentenkatalogs angezeigt wird",
|
|
3790
|
+
"hidden": "{count} Agent ist auf dieser Stufe ausgeblendet. | {count} Agenten sind auf dieser Stufe ausgeblendet."
|
|
3791
|
+
},
|
|
3730
3792
|
"requirements": {
|
|
3731
3793
|
"title": "Anforderungsprüfung",
|
|
3732
3794
|
"iteration": "Iteration {current} / {max}",
|
|
@@ -4574,7 +4636,10 @@
|
|
|
4574
4636
|
"env_test_not_provisionable": "Umgebungs-Handler nicht konfiguriert",
|
|
4575
4637
|
"env_test_no_vcs": "Git-Anbieter nicht verbunden",
|
|
4576
4638
|
"env_test_connection_failed": "Umgebungsverbindung fehlgeschlagen",
|
|
4577
|
-
"prompt_revision_conflict": "Prompt von jemand anderem geändert"
|
|
4639
|
+
"prompt_revision_conflict": "Prompt von jemand anderem geändert",
|
|
4640
|
+
"pipeline_schedule_attached": "Wiederkehrender Zeitplan nutzt diese Pipeline",
|
|
4641
|
+
"pipeline_schedule_requires_recurring": "Wiederkehrender Zeitplan braucht diese Pipeline",
|
|
4642
|
+
"pipeline_schedule_intake_unconfigured": "Zeitplan ohne Ticket-Erfassung"
|
|
4578
4643
|
},
|
|
4579
4644
|
"description": {
|
|
4580
4645
|
"dependencies_unmet": "Diese Aufgabe hängt von anderen ab, die noch nicht abgeschlossen sind. Schließe sie ab oder gib sie frei und starte dann erneut.",
|
|
@@ -4599,7 +4664,10 @@
|
|
|
4599
4664
|
"env_test_no_vcs": "Der Selbsttest benötigt einen Git-Anbieter, um seinen Wegwerf-Branch zu erstellen und zu löschen, aber dieser Workspace ist mit keinem verbunden.",
|
|
4600
4665
|
"env_test_connection_failed": "Der Umgebungs-Handler dieses Dienstes hat seinen Verbindungstest nicht bestanden. Prüfen Sie Endpunkt, Anmeldedaten und Projekteinstellungen und testen Sie die Verbindung erneut.",
|
|
4601
4666
|
"env_test_connection_failed_detail": "Der Umgebungs-Handler dieses Dienstes hat seinen Verbindungstest nicht bestanden: {detail}. Prüfen Sie Endpunkt, Anmeldedaten und Projekteinstellungen und testen Sie die Verbindung erneut.",
|
|
4602
|
-
"prompt_revision_conflict": "Eine andere Änderung an diesem Prompt war zuerst da. Laden Sie ihn neu und wenden Sie Ihre Änderung darauf erneut an."
|
|
4667
|
+
"prompt_revision_conflict": "Eine andere Änderung an diesem Prompt war zuerst da. Laden Sie ihn neu und wenden Sie Ihre Änderung darauf erneut an.",
|
|
4668
|
+
"pipeline_schedule_attached": "Ein wiederkehrender Zeitplan verweist noch auf diese Pipeline, und jeder von ihm gestartete Lauf löst die Pipeline über ihre ID auf. Lösen oder löschen Sie zuerst diesen Zeitplan und entfernen Sie danach die Pipeline.",
|
|
4669
|
+
"pipeline_schedule_requires_recurring": "Ein wiederkehrender Zeitplan verweist noch auf diese Pipeline. Sie nur einmalig zu machen würde jeden künftigen Lauf unterbrechen. Lösen Sie zuerst diesen Zeitplan.",
|
|
4670
|
+
"pipeline_schedule_intake_unconfigured": "Ein Bug-Intake-Schritt bezieht seine Arbeit aus der Ticket-Erfassung des Zeitplans, und der verknüpfte Zeitplan hat keine. Konfigurieren Sie zuerst die Ticket-Erfassung im Zeitplan."
|
|
4603
4671
|
},
|
|
4604
4672
|
"action": {
|
|
4605
4673
|
"connectGitHub": "GitHub verbinden",
|
|
@@ -4864,7 +4932,8 @@
|
|
|
4864
4932
|
"synthesizing": "Wird synthetisiert",
|
|
4865
4933
|
"done": "Fertig",
|
|
4866
4934
|
"failed": "Fehlgeschlagen"
|
|
4867
|
-
}
|
|
4935
|
+
},
|
|
4936
|
+
"groupTitle": "Die Konsensgruppe, auf die dieser Lauf hochgestuft hat"
|
|
4868
4937
|
},
|
|
4869
4938
|
"spec": {
|
|
4870
4939
|
"title": "Anforderungen",
|
package/i18n/locales/en.json
CHANGED
|
@@ -559,7 +559,10 @@
|
|
|
559
559
|
"env_test_not_provisionable": "Environment handler not configured",
|
|
560
560
|
"env_test_no_vcs": "Git provider not connected",
|
|
561
561
|
"env_test_connection_failed": "Environment connection failed",
|
|
562
|
-
"prompt_revision_conflict": "Prompt changed by someone else"
|
|
562
|
+
"prompt_revision_conflict": "Prompt changed by someone else",
|
|
563
|
+
"pipeline_schedule_attached": "Recurring schedule uses this pipeline",
|
|
564
|
+
"pipeline_schedule_requires_recurring": "Recurring schedule needs this pipeline",
|
|
565
|
+
"pipeline_schedule_intake_unconfigured": "Schedule has no issue intake"
|
|
563
566
|
},
|
|
564
567
|
"description": {
|
|
565
568
|
"dependencies_unmet": "This task depends on others that aren't finished yet. Complete or unblock them, then start it again.",
|
|
@@ -587,7 +590,10 @@
|
|
|
587
590
|
"@env_test_connection_failed_detail": {
|
|
588
591
|
"description": "Keep the named placeholder for the failure detail intact (the environment provider's connection-test error message, injected at runtime)."
|
|
589
592
|
},
|
|
590
|
-
"prompt_revision_conflict": "Another edit to this prompt landed first. Reload it and re-apply your change on top."
|
|
593
|
+
"prompt_revision_conflict": "Another edit to this prompt landed first. Reload it and re-apply your change on top.",
|
|
594
|
+
"pipeline_schedule_attached": "A recurring schedule still points at this pipeline, and every run it starts resolves the pipeline by id. Detach or delete that schedule first, then remove the pipeline.",
|
|
595
|
+
"pipeline_schedule_requires_recurring": "A recurring schedule still points at this pipeline, so making it one-off only would break every future run it starts. Detach that schedule first.",
|
|
596
|
+
"pipeline_schedule_intake_unconfigured": "A bug intake step draws its work from the schedule issue intake settings, and the attached schedule has none. Configure issue intake on the schedule first."
|
|
591
597
|
},
|
|
592
598
|
"action": {
|
|
593
599
|
"connectGitHub": "Connect GitHub",
|
|
@@ -3261,6 +3267,47 @@
|
|
|
3261
3267
|
"saved": "Default test environment saved.",
|
|
3262
3268
|
"savedState": "Saved.",
|
|
3263
3269
|
"saveFailed": "Could not save the default test environment."
|
|
3270
|
+
},
|
|
3271
|
+
"consensusGroups": {
|
|
3272
|
+
"title": "Consensus groups",
|
|
3273
|
+
"intro": "Reusable review panels a pipeline step can escalate to. Each group carries the estimate bar a task must clear to earn it, so heavier work gets a bigger panel without a separate pipeline.",
|
|
3274
|
+
"new": "New group",
|
|
3275
|
+
"list": {
|
|
3276
|
+
"empty": "No consensus groups yet.",
|
|
3277
|
+
"always": "Always",
|
|
3278
|
+
"bar": "From {bar}",
|
|
3279
|
+
"editTitle": "Edit group",
|
|
3280
|
+
"deleteTitle": "Delete group",
|
|
3281
|
+
"participantCount": "no participants | one participant | {count} participants"
|
|
3282
|
+
},
|
|
3283
|
+
"editor": {
|
|
3284
|
+
"nameLabel": "Name",
|
|
3285
|
+
"namePlaceholder": "Deep review panel",
|
|
3286
|
+
"strategyLabel": "Strategy",
|
|
3287
|
+
"descriptionLabel": "Description",
|
|
3288
|
+
"descriptionPlaceholder": "What this panel is for",
|
|
3289
|
+
"participantsLabel": "Participants",
|
|
3290
|
+
"participantsHint": "At least two. Diversity of role and model is what makes a panel better than one model.",
|
|
3291
|
+
"addParticipant": "Add participant",
|
|
3292
|
+
"framingPlaceholder": "Perspective this participant argues from",
|
|
3293
|
+
"stepModel": "Step's model",
|
|
3294
|
+
"synthesizerLabel": "Synthesizer model",
|
|
3295
|
+
"gatedLabel": "Only for tasks above a threshold",
|
|
3296
|
+
"gatedHint": "The estimate a task must reach to earn this panel. Leave off to make this the group that always applies.",
|
|
3297
|
+
"complexityThreshold": "Complexity",
|
|
3298
|
+
"gatingIncomplete": "Set at least one threshold, or turn the gate off.",
|
|
3299
|
+
"unnamedRole": "Reviewer",
|
|
3300
|
+
"cancel": "Cancel",
|
|
3301
|
+
"save": "Save group"
|
|
3302
|
+
},
|
|
3303
|
+
"confirmDelete": {
|
|
3304
|
+
"title": "Delete consensus group?",
|
|
3305
|
+
"body": "Steps that name \"{name}\" fall back to their remaining groups."
|
|
3306
|
+
},
|
|
3307
|
+
"toast": {
|
|
3308
|
+
"saveFailed": "Could not save the consensus group",
|
|
3309
|
+
"deleteFailed": "Could not delete the consensus group"
|
|
3310
|
+
}
|
|
3264
3311
|
}
|
|
3265
3312
|
},
|
|
3266
3313
|
"providers": {
|
|
@@ -4049,7 +4096,11 @@
|
|
|
4049
4096
|
"skillNeedsPick": "A Skill step needs a skill selected before you can save.",
|
|
4050
4097
|
"purposeStepsConflict": "This purpose writes no code and runs no tests, but the pipeline still has implementation or testing steps. Remove them or switch the purpose to Build.",
|
|
4051
4098
|
"promptEditTooltip": "Edit this agent's system prompt",
|
|
4052
|
-
"promptEditedTooltip": "This agent's system prompt is edited for this workspace"
|
|
4099
|
+
"promptEditedTooltip": "This agent's system prompt is edited for this workspace",
|
|
4100
|
+
"consensusGroups": "Consensus groups",
|
|
4101
|
+
"consensusGroupsHint": "Pick the reusable panels this step may escalate to. Each carries its own estimate bar; the most demanding one the task clears is the one that runs.",
|
|
4102
|
+
"consensusGroupsActive": "This step runs the selected group. Deselect every group to configure participants here instead.",
|
|
4103
|
+
"consensusGroupAlways": "always"
|
|
4053
4104
|
},
|
|
4054
4105
|
"progress": {
|
|
4055
4106
|
"status": {
|
|
@@ -4112,14 +4163,20 @@
|
|
|
4112
4163
|
"add": "Add",
|
|
4113
4164
|
"reseed": "Reseed",
|
|
4114
4165
|
"delete": "Delete",
|
|
4166
|
+
"remove": "Remove",
|
|
4115
4167
|
"updatesHeading": "Updates available",
|
|
4116
4168
|
"updatesDescription": "A newer version of these built-in pipelines has shipped. Reseed to adopt it (your labels and archive state are kept).",
|
|
4169
|
+
"retiredHeading": "Retired pipelines",
|
|
4170
|
+
"retiredDescription": "These built-in pipelines have been withdrawn from the catalog, so there is no newer version to adopt. Remove them from this board library.",
|
|
4171
|
+
"retiredNote": "Retired from the catalog.",
|
|
4172
|
+
"retiredReplacedBy": "Retired from the catalog. Use {name} instead.",
|
|
4117
4173
|
"reseedAll": "Reseed all ({count})",
|
|
4118
4174
|
"dismiss": "Dismiss",
|
|
4119
4175
|
"done": "Done",
|
|
4120
4176
|
"toast": {
|
|
4121
4177
|
"reseedFailed": "Could not reseed pipeline",
|
|
4122
|
-
"deleteFailed": "Could not delete pipeline"
|
|
4178
|
+
"deleteFailed": "Could not delete pipeline",
|
|
4179
|
+
"removeFailed": "Could not remove pipeline"
|
|
4123
4180
|
}
|
|
4124
4181
|
}
|
|
4125
4182
|
},
|
|
@@ -4167,6 +4224,23 @@
|
|
|
4167
4224
|
"conflict": "Someone else changed this prompt. Reloaded - re-apply your edit."
|
|
4168
4225
|
}
|
|
4169
4226
|
},
|
|
4227
|
+
"agentTier": {
|
|
4228
|
+
"label": "Agent tier",
|
|
4229
|
+
"@label": {
|
|
4230
|
+
"description": "Label of the control that chooses how much of the agent catalog is shown. \"Tier\" here means level of depth/specialisation, never a pricing plan."
|
|
4231
|
+
},
|
|
4232
|
+
"basic": "Basic",
|
|
4233
|
+
"intermediate": "Intermediate",
|
|
4234
|
+
"advanced": "Advanced",
|
|
4235
|
+
"@advanced": {
|
|
4236
|
+
"description": "The widest of the three levels: selecting it shows every agent, not only the advanced ones."
|
|
4237
|
+
},
|
|
4238
|
+
"basicHint": "Only the everyday agents a pipeline is normally built from.",
|
|
4239
|
+
"intermediateHint": "Adds the agents you reach for regularly.",
|
|
4240
|
+
"advancedHint": "Shows every agent, including the specialist ones.",
|
|
4241
|
+
"tooltip": "Choose how much of the agent catalog to show",
|
|
4242
|
+
"hidden": "{count} agent hidden at this tier. | {count} agents hidden at this tier."
|
|
4243
|
+
},
|
|
4170
4244
|
"riskPolicy": {
|
|
4171
4245
|
"health": {
|
|
4172
4246
|
"title": "Risk policy updates",
|
|
@@ -4582,7 +4656,8 @@
|
|
|
4582
4656
|
"synthesizing": "Synthesizing",
|
|
4583
4657
|
"done": "Done",
|
|
4584
4658
|
"failed": "Failed"
|
|
4585
|
-
}
|
|
4659
|
+
},
|
|
4660
|
+
"groupTitle": "The consensus group this run escalated to"
|
|
4586
4661
|
},
|
|
4587
4662
|
"brainstorm": {
|
|
4588
4663
|
"title": {
|