@cat-factory/app 0.187.0 → 0.188.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/settings/ConsensusGroupsSection.vue +498 -0
- package/app/components/settings/ModelConfigurationPanel.vue +34 -2
- package/app/composables/api/presets.ts +22 -0
- 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/workspace/hydrate.ts +2 -0
- 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 +59 -2
- package/i18n/locales/en.json +65 -2
- package/i18n/locales/es.json +59 -2
- package/i18n/locales/fr.json +59 -2
- package/i18n/locales/he.json +59 -2
- package/i18n/locales/it.json +59 -2
- package/i18n/locales/ja.json +59 -2
- package/i18n/locales/pl.json +59 -2
- package/i18n/locales/tr.json +59 -2
- package/i18n/locales/uk.json +59 -2
- 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": {
|
|
@@ -3727,6 +3772,17 @@
|
|
|
3727
3772
|
"conflict": "Jemand anderes hat diesen Prompt geändert. Neu geladen - wenden Sie Ihre Änderung erneut an."
|
|
3728
3773
|
}
|
|
3729
3774
|
},
|
|
3775
|
+
"agentTier": {
|
|
3776
|
+
"label": "Agentenstufe",
|
|
3777
|
+
"basic": "Basis",
|
|
3778
|
+
"intermediate": "Fortgeschritten",
|
|
3779
|
+
"advanced": "Experte",
|
|
3780
|
+
"basicHint": "Nur die alltäglichen Agenten, aus denen eine Pipeline normalerweise besteht.",
|
|
3781
|
+
"intermediateHint": "Ergänzt die Agenten, die du regelmäßig einsetzt.",
|
|
3782
|
+
"advancedHint": "Zeigt alle Agenten, auch die spezialisierten.",
|
|
3783
|
+
"tooltip": "Wähle, wie viel des Agentenkatalogs angezeigt wird",
|
|
3784
|
+
"hidden": "{count} Agent ist auf dieser Stufe ausgeblendet. | {count} Agenten sind auf dieser Stufe ausgeblendet."
|
|
3785
|
+
},
|
|
3730
3786
|
"requirements": {
|
|
3731
3787
|
"title": "Anforderungsprüfung",
|
|
3732
3788
|
"iteration": "Iteration {current} / {max}",
|
|
@@ -4864,7 +4920,8 @@
|
|
|
4864
4920
|
"synthesizing": "Wird synthetisiert",
|
|
4865
4921
|
"done": "Fertig",
|
|
4866
4922
|
"failed": "Fehlgeschlagen"
|
|
4867
|
-
}
|
|
4923
|
+
},
|
|
4924
|
+
"groupTitle": "Die Konsensgruppe, auf die dieser Lauf hochgestuft hat"
|
|
4868
4925
|
},
|
|
4869
4926
|
"spec": {
|
|
4870
4927
|
"title": "Anforderungen",
|
package/i18n/locales/en.json
CHANGED
|
@@ -3261,6 +3261,47 @@
|
|
|
3261
3261
|
"saved": "Default test environment saved.",
|
|
3262
3262
|
"savedState": "Saved.",
|
|
3263
3263
|
"saveFailed": "Could not save the default test environment."
|
|
3264
|
+
},
|
|
3265
|
+
"consensusGroups": {
|
|
3266
|
+
"title": "Consensus groups",
|
|
3267
|
+
"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.",
|
|
3268
|
+
"new": "New group",
|
|
3269
|
+
"list": {
|
|
3270
|
+
"empty": "No consensus groups yet.",
|
|
3271
|
+
"always": "Always",
|
|
3272
|
+
"bar": "From {bar}",
|
|
3273
|
+
"editTitle": "Edit group",
|
|
3274
|
+
"deleteTitle": "Delete group",
|
|
3275
|
+
"participantCount": "no participants | one participant | {count} participants"
|
|
3276
|
+
},
|
|
3277
|
+
"editor": {
|
|
3278
|
+
"nameLabel": "Name",
|
|
3279
|
+
"namePlaceholder": "Deep review panel",
|
|
3280
|
+
"strategyLabel": "Strategy",
|
|
3281
|
+
"descriptionLabel": "Description",
|
|
3282
|
+
"descriptionPlaceholder": "What this panel is for",
|
|
3283
|
+
"participantsLabel": "Participants",
|
|
3284
|
+
"participantsHint": "At least two. Diversity of role and model is what makes a panel better than one model.",
|
|
3285
|
+
"addParticipant": "Add participant",
|
|
3286
|
+
"framingPlaceholder": "Perspective this participant argues from",
|
|
3287
|
+
"stepModel": "Step's model",
|
|
3288
|
+
"synthesizerLabel": "Synthesizer model",
|
|
3289
|
+
"gatedLabel": "Only for tasks above a threshold",
|
|
3290
|
+
"gatedHint": "The estimate a task must reach to earn this panel. Leave off to make this the group that always applies.",
|
|
3291
|
+
"complexityThreshold": "Complexity",
|
|
3292
|
+
"gatingIncomplete": "Set at least one threshold, or turn the gate off.",
|
|
3293
|
+
"unnamedRole": "Reviewer",
|
|
3294
|
+
"cancel": "Cancel",
|
|
3295
|
+
"save": "Save group"
|
|
3296
|
+
},
|
|
3297
|
+
"confirmDelete": {
|
|
3298
|
+
"title": "Delete consensus group?",
|
|
3299
|
+
"body": "Steps that name \"{name}\" fall back to their remaining groups."
|
|
3300
|
+
},
|
|
3301
|
+
"toast": {
|
|
3302
|
+
"saveFailed": "Could not save the consensus group",
|
|
3303
|
+
"deleteFailed": "Could not delete the consensus group"
|
|
3304
|
+
}
|
|
3264
3305
|
}
|
|
3265
3306
|
},
|
|
3266
3307
|
"providers": {
|
|
@@ -4049,7 +4090,11 @@
|
|
|
4049
4090
|
"skillNeedsPick": "A Skill step needs a skill selected before you can save.",
|
|
4050
4091
|
"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
4092
|
"promptEditTooltip": "Edit this agent's system prompt",
|
|
4052
|
-
"promptEditedTooltip": "This agent's system prompt is edited for this workspace"
|
|
4093
|
+
"promptEditedTooltip": "This agent's system prompt is edited for this workspace",
|
|
4094
|
+
"consensusGroups": "Consensus groups",
|
|
4095
|
+
"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.",
|
|
4096
|
+
"consensusGroupsActive": "This step runs the selected group. Deselect every group to configure participants here instead.",
|
|
4097
|
+
"consensusGroupAlways": "always"
|
|
4053
4098
|
},
|
|
4054
4099
|
"progress": {
|
|
4055
4100
|
"status": {
|
|
@@ -4167,6 +4212,23 @@
|
|
|
4167
4212
|
"conflict": "Someone else changed this prompt. Reloaded - re-apply your edit."
|
|
4168
4213
|
}
|
|
4169
4214
|
},
|
|
4215
|
+
"agentTier": {
|
|
4216
|
+
"label": "Agent tier",
|
|
4217
|
+
"@label": {
|
|
4218
|
+
"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."
|
|
4219
|
+
},
|
|
4220
|
+
"basic": "Basic",
|
|
4221
|
+
"intermediate": "Intermediate",
|
|
4222
|
+
"advanced": "Advanced",
|
|
4223
|
+
"@advanced": {
|
|
4224
|
+
"description": "The widest of the three levels: selecting it shows every agent, not only the advanced ones."
|
|
4225
|
+
},
|
|
4226
|
+
"basicHint": "Only the everyday agents a pipeline is normally built from.",
|
|
4227
|
+
"intermediateHint": "Adds the agents you reach for regularly.",
|
|
4228
|
+
"advancedHint": "Shows every agent, including the specialist ones.",
|
|
4229
|
+
"tooltip": "Choose how much of the agent catalog to show",
|
|
4230
|
+
"hidden": "{count} agent hidden at this tier. | {count} agents hidden at this tier."
|
|
4231
|
+
},
|
|
4170
4232
|
"riskPolicy": {
|
|
4171
4233
|
"health": {
|
|
4172
4234
|
"title": "Risk policy updates",
|
|
@@ -4582,7 +4644,8 @@
|
|
|
4582
4644
|
"synthesizing": "Synthesizing",
|
|
4583
4645
|
"done": "Done",
|
|
4584
4646
|
"failed": "Failed"
|
|
4585
|
-
}
|
|
4647
|
+
},
|
|
4648
|
+
"groupTitle": "The consensus group this run escalated to"
|
|
4586
4649
|
},
|
|
4587
4650
|
"brainstorm": {
|
|
4588
4651
|
"title": {
|
package/i18n/locales/es.json
CHANGED
|
@@ -3167,6 +3167,47 @@
|
|
|
3167
3167
|
"saved": "Entorno de pruebas predeterminado guardado.",
|
|
3168
3168
|
"savedState": "Guardado.",
|
|
3169
3169
|
"saveFailed": "No se ha podido guardar el entorno de pruebas predeterminado."
|
|
3170
|
+
},
|
|
3171
|
+
"consensusGroups": {
|
|
3172
|
+
"title": "Grupos de consenso",
|
|
3173
|
+
"intro": "Paneles de revisión reutilizables a los que puede escalar un paso de la canalización. Cada grupo lleva el umbral de estimación que una tarea debe superar, así el trabajo más pesado recibe un panel mayor sin necesidad de otra canalización.",
|
|
3174
|
+
"new": "Nuevo grupo",
|
|
3175
|
+
"list": {
|
|
3176
|
+
"empty": "Todavía no hay grupos de consenso.",
|
|
3177
|
+
"always": "Siempre",
|
|
3178
|
+
"bar": "Desde {bar}",
|
|
3179
|
+
"editTitle": "Editar grupo",
|
|
3180
|
+
"deleteTitle": "Eliminar grupo",
|
|
3181
|
+
"participantCount": "sin participantes | un participante | {count} participantes"
|
|
3182
|
+
},
|
|
3183
|
+
"editor": {
|
|
3184
|
+
"nameLabel": "Nombre",
|
|
3185
|
+
"namePlaceholder": "Panel de revisión profunda",
|
|
3186
|
+
"strategyLabel": "Estrategia",
|
|
3187
|
+
"descriptionLabel": "Descripción",
|
|
3188
|
+
"descriptionPlaceholder": "Para qué sirve este panel",
|
|
3189
|
+
"participantsLabel": "Participantes",
|
|
3190
|
+
"participantsHint": "Al menos dos. La diversidad de rol y de modelo es lo que hace que un panel supere a un solo modelo.",
|
|
3191
|
+
"addParticipant": "Añadir participante",
|
|
3192
|
+
"framingPlaceholder": "Perspectiva desde la que argumenta este participante",
|
|
3193
|
+
"stepModel": "Modelo del paso",
|
|
3194
|
+
"synthesizerLabel": "Modelo sintetizador",
|
|
3195
|
+
"gatedLabel": "Solo para tareas por encima de un umbral",
|
|
3196
|
+
"gatedHint": "La estimación que una tarea debe alcanzar para merecer este panel. Déjalo desactivado para que este grupo se aplique siempre.",
|
|
3197
|
+
"complexityThreshold": "Complejidad",
|
|
3198
|
+
"gatingIncomplete": "Fija al menos un umbral o desactiva la condición.",
|
|
3199
|
+
"unnamedRole": "Revisor",
|
|
3200
|
+
"cancel": "Cancelar",
|
|
3201
|
+
"save": "Guardar grupo"
|
|
3202
|
+
},
|
|
3203
|
+
"confirmDelete": {
|
|
3204
|
+
"title": "¿Eliminar el grupo de consenso?",
|
|
3205
|
+
"body": "Los pasos que nombran «{name}» recurrirán a sus grupos restantes."
|
|
3206
|
+
},
|
|
3207
|
+
"toast": {
|
|
3208
|
+
"saveFailed": "No se pudo guardar el grupo de consenso",
|
|
3209
|
+
"deleteFailed": "No se pudo eliminar el grupo de consenso"
|
|
3210
|
+
}
|
|
3170
3211
|
}
|
|
3171
3212
|
},
|
|
3172
3213
|
"providers": {
|
|
@@ -3934,7 +3975,11 @@
|
|
|
3934
3975
|
"skillNeedsPick": "Un paso Skill necesita una habilidad seleccionada antes de poder guardar.",
|
|
3935
3976
|
"purposeStepsConflict": "Este propósito no escribe código ni ejecuta pruebas, pero la canalización todavía tiene pasos de implementación o de prueba. Quítalos o cambia el propósito a Desarrollo.",
|
|
3936
3977
|
"promptEditTooltip": "Editar el prompt del sistema de este agente",
|
|
3937
|
-
"promptEditedTooltip": "El prompt del sistema de este agente está editado para este espacio de trabajo"
|
|
3978
|
+
"promptEditedTooltip": "El prompt del sistema de este agente está editado para este espacio de trabajo",
|
|
3979
|
+
"consensusGroups": "Grupos de consenso",
|
|
3980
|
+
"consensusGroupsHint": "Elige los paneles reutilizables a los que este paso puede escalar. Cada uno lleva su propio umbral de estimación; se ejecuta el más exigente que la tarea supere.",
|
|
3981
|
+
"consensusGroupsActive": "Este paso ejecuta el grupo seleccionado. Deselecciona todos los grupos para configurar aquí los participantes.",
|
|
3982
|
+
"consensusGroupAlways": "siempre"
|
|
3938
3983
|
},
|
|
3939
3984
|
"progress": {
|
|
3940
3985
|
"status": {
|
|
@@ -4043,6 +4088,17 @@
|
|
|
4043
4088
|
"conflict": "Otra persona cambió este prompt. Se recargó: vuelve a aplicar tu edición."
|
|
4044
4089
|
}
|
|
4045
4090
|
},
|
|
4091
|
+
"agentTier": {
|
|
4092
|
+
"label": "Nivel de agentes",
|
|
4093
|
+
"basic": "Básico",
|
|
4094
|
+
"intermediate": "Intermedio",
|
|
4095
|
+
"advanced": "Avanzado",
|
|
4096
|
+
"basicHint": "Solo los agentes de uso diario con los que se arma una pipeline.",
|
|
4097
|
+
"intermediateHint": "Añade los agentes que usas con regularidad.",
|
|
4098
|
+
"advancedHint": "Muestra todos los agentes, incluidos los especializados.",
|
|
4099
|
+
"tooltip": "Elige cuánto del catálogo de agentes se muestra",
|
|
4100
|
+
"hidden": "{count} agente oculto en este nivel. | {count} agentes ocultos en este nivel."
|
|
4101
|
+
},
|
|
4046
4102
|
"palette": {
|
|
4047
4103
|
"hint": "Haz clic en un agente para añadirlo al pipeline.",
|
|
4048
4104
|
"customAgents": "Agentes personalizados"
|
|
@@ -4386,7 +4442,8 @@
|
|
|
4386
4442
|
"synthesizing": "Sintetizando",
|
|
4387
4443
|
"done": "Completado",
|
|
4388
4444
|
"failed": "Fallido"
|
|
4389
|
-
}
|
|
4445
|
+
},
|
|
4446
|
+
"groupTitle": "El grupo de consenso al que escaló esta ejecución"
|
|
4390
4447
|
},
|
|
4391
4448
|
"brainstorm": {
|
|
4392
4449
|
"title": {
|