forked from laurentenhoor/devclaw
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathregistry.ts
More file actions
96 lines (92 loc) · 2.46 KB
/
registry.ts
File metadata and controls
96 lines (92 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/**
* roles/registry.ts — Single source of truth for all worker roles.
*
* Adding a new role? Just add an entry here. Everything else derives from this.
*
* Each role defines:
* - Identity (id, displayName)
* - Levels and models
* - Emoji for announcements
* - Valid completion results
* - Session key matching
* - Notification preferences
*/
import type { RoleConfig } from "./types.js";
export const ROLE_REGISTRY: Record<string, RoleConfig> = {
developer: {
id: "developer",
displayName: "DEVELOPER",
levels: ["junior", "medior", "senior"],
defaultLevel: "medior",
models: {
junior: "anthropic/claude-haiku-4-5",
medior: "anthropic/claude-sonnet-4-5",
senior: "anthropic/claude-opus-4-6",
},
emoji: {
junior: "⚡",
medior: "🔧",
senior: "🧠",
},
fallbackEmoji: "🔧",
completionResults: ["done", "blocked"],
sessionKeyPattern: "developer",
notifications: { onStart: true, onComplete: true },
},
tester: {
id: "tester",
displayName: "TESTER",
levels: ["junior", "medior", "senior"],
defaultLevel: "medior",
models: {
junior: "anthropic/claude-haiku-4-5",
medior: "anthropic/claude-sonnet-4-5",
senior: "anthropic/claude-opus-4-6",
},
emoji: {
junior: "⚡",
medior: "🔍",
senior: "🧠",
},
fallbackEmoji: "🔍",
completionResults: ["pass", "fail", "refine", "blocked"],
sessionKeyPattern: "tester",
notifications: { onStart: true, onComplete: true },
},
architect: {
id: "architect",
displayName: "ARCHITECT",
levels: ["junior", "senior"],
defaultLevel: "junior",
models: {
junior: "anthropic/claude-sonnet-4-5",
senior: "anthropic/claude-opus-4-6",
},
emoji: {
junior: "📐",
senior: "🏗️",
},
fallbackEmoji: "🏗️",
completionResults: ["done", "blocked"],
sessionKeyPattern: "architect",
notifications: { onStart: true, onComplete: true },
},
reviewer: {
id: "reviewer",
displayName: "REVIEWER",
levels: ["junior", "senior"],
defaultLevel: "junior",
models: {
junior: "anthropic/claude-haiku-4-5",
senior: "anthropic/claude-sonnet-4-5",
},
emoji: {
junior: "👁️",
senior: "🔬",
},
fallbackEmoji: "👁️",
completionResults: ["approve", "reject", "blocked"],
sessionKeyPattern: "reviewer",
notifications: { onStart: true, onComplete: true },
},
};