@robbiesrobotics/alice-agents 1.4.5 → 1.4.6

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.
@@ -0,0 +1,550 @@
1
+ [
2
+ {
3
+ "id": "hannah",
4
+ "name": "Hannah",
5
+ "domain": "HR",
6
+ "theme": "HR specialist",
7
+ "emoji": "\ud83d\udc65",
8
+ "description": "Team processes, hiring workflows, culture documentation",
9
+ "tier": "pro",
10
+ "coding": false,
11
+ "sandbox": {
12
+ "mode": "all",
13
+ "scope": "agent"
14
+ },
15
+ "tools": {
16
+ "allow": [
17
+ "read",
18
+ "write",
19
+ "edit",
20
+ "web_search",
21
+ "web_fetch",
22
+ "sessions_list",
23
+ "sessions_history",
24
+ "session_status"
25
+ ],
26
+ "deny": [
27
+ "exec",
28
+ "process",
29
+ "browser",
30
+ "canvas",
31
+ "apply_patch",
32
+ "cron"
33
+ ]
34
+ }
35
+ },
36
+ {
37
+ "id": "aiden",
38
+ "name": "Aiden",
39
+ "domain": "Analytics",
40
+ "theme": "analytics specialist",
41
+ "emoji": "\ud83d\udcc8",
42
+ "description": "Business analytics, metrics, dashboards, data visualization",
43
+ "tier": "pro",
44
+ "coding": true,
45
+ "sandbox": {
46
+ "mode": "off"
47
+ },
48
+ "tools": {
49
+ "profile": "coding",
50
+ "alsoAllow": [
51
+ "web_search",
52
+ "web_fetch"
53
+ ]
54
+ }
55
+ },
56
+ {
57
+ "id": "clara",
58
+ "name": "Clara",
59
+ "domain": "Communication",
60
+ "theme": "communication specialist",
61
+ "emoji": "\u270d\ufe0f",
62
+ "description": "Copy, messaging, email drafts, announcements, brand voice",
63
+ "tier": "pro",
64
+ "coding": false,
65
+ "sandbox": {
66
+ "mode": "all",
67
+ "scope": "agent"
68
+ },
69
+ "tools": {
70
+ "allow": [
71
+ "read",
72
+ "write",
73
+ "edit",
74
+ "web_search",
75
+ "web_fetch",
76
+ "message",
77
+ "sessions_list",
78
+ "sessions_history",
79
+ "session_status"
80
+ ],
81
+ "deny": [
82
+ "exec",
83
+ "process",
84
+ "browser",
85
+ "canvas",
86
+ "apply_patch",
87
+ "cron"
88
+ ]
89
+ }
90
+ },
91
+ {
92
+ "id": "avery",
93
+ "name": "Avery",
94
+ "domain": "Automation",
95
+ "theme": "automation specialist",
96
+ "emoji": "\u2699\ufe0f",
97
+ "description": "Workflow automation, cron jobs, scripting, process optimization",
98
+ "tier": "pro",
99
+ "coding": true,
100
+ "sandbox": {
101
+ "mode": "off"
102
+ },
103
+ "tools": {
104
+ "profile": "coding",
105
+ "alsoAllow": [
106
+ "web_search",
107
+ "web_fetch",
108
+ "cron"
109
+ ]
110
+ }
111
+ },
112
+ {
113
+ "id": "owen",
114
+ "name": "Owen",
115
+ "domain": "Operations",
116
+ "theme": "operations specialist",
117
+ "emoji": "\ud83d\udd27",
118
+ "description": "System health, monitoring, incident response, operational readiness",
119
+ "tier": "pro",
120
+ "coding": false,
121
+ "sandbox": {
122
+ "mode": "off"
123
+ },
124
+ "tools": {
125
+ "allow": [
126
+ "read",
127
+ "exec",
128
+ "process",
129
+ "web_search",
130
+ "web_fetch",
131
+ "sessions_list",
132
+ "sessions_history",
133
+ "session_status"
134
+ ],
135
+ "deny": [
136
+ "write",
137
+ "edit",
138
+ "apply_patch",
139
+ "canvas",
140
+ "browser",
141
+ "cron"
142
+ ]
143
+ }
144
+ },
145
+ {
146
+ "id": "isaac",
147
+ "name": "Isaac",
148
+ "domain": "Integration",
149
+ "theme": "integration specialist",
150
+ "emoji": "\ud83d\udd0c",
151
+ "description": "API integration, third-party services, webhooks, connectors",
152
+ "tier": "pro",
153
+ "coding": true,
154
+ "sandbox": {
155
+ "mode": "off"
156
+ },
157
+ "tools": {
158
+ "profile": "coding",
159
+ "alsoAllow": [
160
+ "web_search",
161
+ "web_fetch"
162
+ ]
163
+ }
164
+ },
165
+ {
166
+ "id": "tommy",
167
+ "name": "Tommy",
168
+ "domain": "Travel",
169
+ "theme": "travel specialist",
170
+ "emoji": "\u2708\ufe0f",
171
+ "description": "Trip planning, itineraries, booking research, travel logistics",
172
+ "tier": "pro",
173
+ "coding": false,
174
+ "sandbox": {
175
+ "mode": "all",
176
+ "scope": "agent"
177
+ },
178
+ "tools": {
179
+ "allow": [
180
+ "read",
181
+ "write",
182
+ "edit",
183
+ "web_search",
184
+ "web_fetch",
185
+ "browser",
186
+ "cron",
187
+ "sessions_list",
188
+ "sessions_history",
189
+ "session_status"
190
+ ],
191
+ "deny": [
192
+ "exec",
193
+ "process",
194
+ "canvas",
195
+ "apply_patch"
196
+ ]
197
+ }
198
+ },
199
+ {
200
+ "id": "sloane",
201
+ "name": "Sloane",
202
+ "domain": "Sales",
203
+ "theme": "sales specialist",
204
+ "emoji": "\ud83d\udcbc",
205
+ "description": "Sales strategy, outreach, pipeline management, proposals",
206
+ "tier": "pro",
207
+ "coding": false,
208
+ "sandbox": {
209
+ "mode": "all",
210
+ "scope": "agent"
211
+ },
212
+ "tools": {
213
+ "allow": [
214
+ "read",
215
+ "write",
216
+ "edit",
217
+ "web_search",
218
+ "web_fetch",
219
+ "browser",
220
+ "message",
221
+ "sessions_list",
222
+ "sessions_history",
223
+ "session_status",
224
+ "cron"
225
+ ],
226
+ "deny": [
227
+ "exec",
228
+ "process",
229
+ "canvas",
230
+ "apply_patch"
231
+ ]
232
+ }
233
+ },
234
+ {
235
+ "id": "nadia",
236
+ "name": "Nadia",
237
+ "domain": "UI/UX Design",
238
+ "theme": "UI/UX design specialist",
239
+ "emoji": "\ud83c\udfa8",
240
+ "description": "Design systems, wireframes, UI patterns, visual design",
241
+ "tier": "pro",
242
+ "coding": false,
243
+ "sandbox": {
244
+ "mode": "all",
245
+ "scope": "agent"
246
+ },
247
+ "tools": {
248
+ "allow": [
249
+ "read",
250
+ "write",
251
+ "edit",
252
+ "apply_patch",
253
+ "canvas",
254
+ "browser",
255
+ "web_search",
256
+ "web_fetch",
257
+ "sessions_list",
258
+ "sessions_history",
259
+ "session_status"
260
+ ],
261
+ "deny": [
262
+ "exec",
263
+ "process",
264
+ "cron"
265
+ ]
266
+ }
267
+ },
268
+ {
269
+ "id": "morgan",
270
+ "name": "Morgan",
271
+ "domain": "Marketing",
272
+ "theme": "marketing specialist",
273
+ "emoji": "\ud83d\udce3",
274
+ "description": "Marketing strategy, content planning, SEO, campaigns",
275
+ "tier": "pro",
276
+ "coding": false,
277
+ "sandbox": {
278
+ "mode": "all",
279
+ "scope": "agent"
280
+ },
281
+ "tools": {
282
+ "allow": [
283
+ "read",
284
+ "write",
285
+ "edit",
286
+ "web_search",
287
+ "web_fetch",
288
+ "browser",
289
+ "message",
290
+ "sessions_list",
291
+ "sessions_history",
292
+ "session_status",
293
+ "cron"
294
+ ],
295
+ "deny": [
296
+ "exec",
297
+ "process",
298
+ "canvas",
299
+ "apply_patch"
300
+ ]
301
+ }
302
+ },
303
+ {
304
+ "id": "alex",
305
+ "name": "Alex",
306
+ "domain": "API Crawling",
307
+ "theme": "API crawler specialist",
308
+ "emoji": "\ud83d\udd77\ufe0f",
309
+ "description": "API discovery, web scraping, data extraction, crawl automation",
310
+ "tier": "pro",
311
+ "coding": true,
312
+ "sandbox": {
313
+ "mode": "off"
314
+ },
315
+ "tools": {
316
+ "profile": "coding",
317
+ "alsoAllow": [
318
+ "web_search",
319
+ "web_fetch",
320
+ "browser"
321
+ ]
322
+ }
323
+ },
324
+ {
325
+ "id": "uma",
326
+ "name": "Uma",
327
+ "domain": "UX Research",
328
+ "theme": "UX researcher",
329
+ "emoji": "\ud83e\uddea",
330
+ "description": "User research, usability testing, personas, journey maps",
331
+ "tier": "pro",
332
+ "coding": false,
333
+ "sandbox": {
334
+ "mode": "all",
335
+ "scope": "agent"
336
+ },
337
+ "tools": {
338
+ "allow": [
339
+ "read",
340
+ "write",
341
+ "edit",
342
+ "browser",
343
+ "canvas",
344
+ "web_search",
345
+ "web_fetch",
346
+ "sessions_list",
347
+ "sessions_history",
348
+ "session_status"
349
+ ],
350
+ "deny": [
351
+ "exec",
352
+ "process",
353
+ "cron",
354
+ "apply_patch"
355
+ ]
356
+ }
357
+ },
358
+ {
359
+ "id": "caleb",
360
+ "name": "Caleb",
361
+ "domain": "CRM",
362
+ "theme": "CRM builder specialist",
363
+ "emoji": "\ud83d\uddc2\ufe0f",
364
+ "description": "CRM design, customer data, pipeline tooling, relationship tracking",
365
+ "tier": "pro",
366
+ "coding": true,
367
+ "sandbox": {
368
+ "mode": "off"
369
+ },
370
+ "tools": {
371
+ "profile": "coding",
372
+ "alsoAllow": [
373
+ "web_search",
374
+ "web_fetch"
375
+ ]
376
+ }
377
+ },
378
+ {
379
+ "id": "elena",
380
+ "name": "Elena",
381
+ "domain": "Estimation",
382
+ "theme": "estimator specialist",
383
+ "emoji": "\ud83d\udccb",
384
+ "description": "Project estimation, cost analysis, timeline planning, scoping",
385
+ "tier": "pro",
386
+ "coding": false,
387
+ "sandbox": {
388
+ "mode": "all",
389
+ "scope": "agent"
390
+ },
391
+ "tools": {
392
+ "allow": [
393
+ "read",
394
+ "write",
395
+ "edit",
396
+ "web_search",
397
+ "web_fetch",
398
+ "sessions_list",
399
+ "sessions_history",
400
+ "session_status"
401
+ ],
402
+ "deny": [
403
+ "exec",
404
+ "process",
405
+ "browser",
406
+ "canvas",
407
+ "apply_patch",
408
+ "cron"
409
+ ]
410
+ }
411
+ },
412
+ {
413
+ "id": "audrey",
414
+ "name": "Audrey",
415
+ "domain": "Accounting",
416
+ "theme": "accounting specialist",
417
+ "emoji": "\ud83d\udcb0",
418
+ "description": "Financial tracking, invoicing, expense reports, bookkeeping",
419
+ "tier": "pro",
420
+ "coding": false,
421
+ "sandbox": {
422
+ "mode": "all",
423
+ "scope": "agent"
424
+ },
425
+ "tools": {
426
+ "allow": [
427
+ "read",
428
+ "write",
429
+ "edit",
430
+ "web_search",
431
+ "web_fetch",
432
+ "sessions_list",
433
+ "sessions_history",
434
+ "session_status"
435
+ ],
436
+ "deny": [
437
+ "exec",
438
+ "process",
439
+ "browser",
440
+ "canvas",
441
+ "apply_patch",
442
+ "cron"
443
+ ]
444
+ }
445
+ },
446
+ {
447
+ "id": "logan",
448
+ "name": "Logan",
449
+ "domain": "Legal",
450
+ "theme": "legal specialist",
451
+ "emoji": "\u2696\ufe0f",
452
+ "description": "Contract review, compliance, terms of service, legal research",
453
+ "tier": "pro",
454
+ "coding": false,
455
+ "sandbox": {
456
+ "mode": "all",
457
+ "scope": "agent"
458
+ },
459
+ "tools": {
460
+ "allow": [
461
+ "read",
462
+ "write",
463
+ "edit",
464
+ "web_search",
465
+ "web_fetch",
466
+ "sessions_list",
467
+ "sessions_history",
468
+ "session_status"
469
+ ],
470
+ "deny": [
471
+ "exec",
472
+ "process",
473
+ "browser",
474
+ "canvas",
475
+ "apply_patch",
476
+ "cron"
477
+ ]
478
+ }
479
+ },
480
+ {
481
+ "id": "eva",
482
+ "name": "Eva",
483
+ "domain": "Executive Assistant",
484
+ "theme": "executive assistant",
485
+ "emoji": "\ud83d\udccc",
486
+ "description": "Scheduling, task management, priority triaging, reminders",
487
+ "tier": "pro",
488
+ "coding": false,
489
+ "sandbox": {
490
+ "mode": "all",
491
+ "scope": "agent"
492
+ },
493
+ "tools": {
494
+ "allow": [
495
+ "read",
496
+ "write",
497
+ "edit",
498
+ "web_search",
499
+ "web_fetch",
500
+ "message",
501
+ "sessions_list",
502
+ "sessions_history",
503
+ "session_status",
504
+ "cron"
505
+ ],
506
+ "deny": [
507
+ "exec",
508
+ "process",
509
+ "browser",
510
+ "canvas",
511
+ "apply_patch"
512
+ ]
513
+ }
514
+ },
515
+ {
516
+ "id": "parker",
517
+ "name": "Parker",
518
+ "domain": "Project Management",
519
+ "theme": "project manager",
520
+ "emoji": "\ud83d\udcc5",
521
+ "description": "Project planning, milestone tracking, team coordination, roadmaps",
522
+ "tier": "pro",
523
+ "coding": false,
524
+ "sandbox": {
525
+ "mode": "all",
526
+ "scope": "agent"
527
+ },
528
+ "tools": {
529
+ "allow": [
530
+ "read",
531
+ "write",
532
+ "edit",
533
+ "web_search",
534
+ "web_fetch",
535
+ "message",
536
+ "sessions_list",
537
+ "sessions_history",
538
+ "session_status",
539
+ "cron"
540
+ ],
541
+ "deny": [
542
+ "exec",
543
+ "process",
544
+ "browser",
545
+ "canvas",
546
+ "apply_patch"
547
+ ]
548
+ }
549
+ }
550
+ ]
@@ -26,6 +26,7 @@ interface RuntimeNodeRegistrationPayload {
26
26
  nodeId: string;
27
27
  installId: string;
28
28
  nodeName: string;
29
+ teamId?: string;
29
30
  sourceNode: string;
30
31
  connectionMode: "relay";
31
32
  gatewayUrl: string;
@@ -106,6 +107,10 @@ const WORKER_TOKEN = getString(
106
107
  getString(cloudConfig.workerToken, INGEST_TOKEN),
107
108
  );
108
109
  const SOURCE_NODE = getString(process.env.MC_SOURCE_NODE, getString(cloudConfig.sourceNode, "openclaw-local"));
110
+ const TEAM_ID = getString(process.env.MC_TEAM_ID, getString(cloudConfig.teamId));
111
+ const TEAM_SLUG = getString(process.env.MC_TEAM_SLUG, getString(cloudConfig.teamSlug));
112
+ const TEAM_NAME = getString(process.env.MC_TEAM_NAME, getString(cloudConfig.teamName));
113
+ const TEAM_PLAN = getString(process.env.MC_TEAM_PLAN, getString(cloudConfig.teamPlan));
109
114
  const INSTALL_ID = getString(process.env.MC_INSTALL_ID, SOURCE_NODE);
110
115
  const NODE_ID = getString(process.env.MC_NODE_ID, SOURCE_NODE);
111
116
  const GATEWAY_URL = normalizeUrl(getString(process.env.MC_GATEWAY_URL, DEFAULT_GATEWAY_URL));
@@ -162,6 +167,7 @@ function buildNodeRegistrationPayload(): RuntimeNodeRegistrationPayload {
162
167
  nodeId: NODE_ID,
163
168
  installId: INSTALL_ID,
164
169
  nodeName: SOURCE_NODE,
170
+ ...(TEAM_ID ? { teamId: TEAM_ID } : {}),
165
171
  sourceNode: SOURCE_NODE,
166
172
  connectionMode: "relay",
167
173
  gatewayUrl: GATEWAY_URL,
@@ -176,6 +182,9 @@ function buildNodeRegistrationPayload(): RuntimeNodeRegistrationPayload {
176
182
  metadata: {
177
183
  dashboardUrl: DASHBOARD_URL,
178
184
  pluginId: "mission-control-bridge",
185
+ ...(TEAM_SLUG ? { teamSlug: TEAM_SLUG } : {}),
186
+ ...(TEAM_NAME ? { teamName: TEAM_NAME } : {}),
187
+ ...(TEAM_PLAN ? { teamPlan: TEAM_PLAN } : {}),
179
188
  },
180
189
  };
181
190
  }
@@ -199,6 +208,7 @@ async function heartbeatNode(logger: { warn(message: string): void }): Promise<v
199
208
  if (!WORKER_TOKEN) return;
200
209
  const payload = {
201
210
  nodeId: NODE_ID,
211
+ ...(TEAM_ID ? { teamId: TEAM_ID } : {}),
202
212
  status: "online",
203
213
  runtimeVersion: process.version,
204
214
  platform: process.platform,
@@ -210,6 +220,9 @@ async function heartbeatNode(logger: { warn(message: string): void }): Promise<v
210
220
  },
211
221
  metadata: {
212
222
  dashboardUrl: DASHBOARD_URL,
223
+ ...(TEAM_SLUG ? { teamSlug: TEAM_SLUG } : {}),
224
+ ...(TEAM_NAME ? { teamName: TEAM_NAME } : {}),
225
+ ...(TEAM_PLAN ? { teamPlan: TEAM_PLAN } : {}),
213
226
  },
214
227
  };
215
228
  try {
@@ -225,6 +238,10 @@ async function heartbeatNode(logger: { warn(message: string): void }): Promise<v
225
238
  const res = await postJson(ADMIN_HEARTBEAT_URL, WORKER_TOKEN, {
226
239
  instanceId: NODE_ID,
227
240
  nodeName: SOURCE_NODE,
241
+ ...(TEAM_ID ? { teamId: TEAM_ID } : {}),
242
+ ...(TEAM_SLUG ? { teamSlug: TEAM_SLUG } : {}),
243
+ ...(TEAM_NAME ? { teamName: TEAM_NAME } : {}),
244
+ ...(TEAM_PLAN ? { teamPlan: TEAM_PLAN } : {}),
228
245
  tailscaleIp: getString(process.env.TAILSCALE_IP),
229
246
  deployedVersion: getString(process.env.MC_DEPLOYED_VERSION),
230
247
  runtimeVersion: process.version,
@@ -449,6 +466,7 @@ function handleModelUsage(evt: Extract<DiagnosticEventPayload, { type: "model.us
449
466
  payload: {
450
467
  session_id: evt.sessionId ?? evt.sessionKey ?? nextId("sess"),
451
468
  agent_id: agentId,
469
+ ...(TEAM_ID ? { teamId: TEAM_ID } : {}),
452
470
  model: evt.model ?? "unknown",
453
471
  channel: evt.channel ?? "unknown",
454
472
  total_tokens: totalTokens,
@@ -492,6 +510,7 @@ function handleMessageProcessed(evt: Extract<DiagnosticEventPayload, { type: "me
492
510
  payload: {
493
511
  session_id: evt.sessionId ?? evt.sessionKey ?? nextId("sess"),
494
512
  agent_id: agentId,
513
+ ...(TEAM_ID ? { teamId: TEAM_ID } : {}),
495
514
  channel: evt.channel ?? "unknown",
496
515
  status: evt.outcome === "error" ? "failed" : "completed",
497
516
  duration_ms: evt.durationMs ?? 0,
@@ -525,6 +544,7 @@ function handleSessionState(evt: Extract<DiagnosticEventPayload, { type: "sessio
525
544
  payload: {
526
545
  session_id: evt.sessionId ?? evt.sessionKey ?? nextId("sess"),
527
546
  agent_id: agentId,
547
+ ...(TEAM_ID ? { teamId: TEAM_ID } : {}),
528
548
  state: evt.state,
529
549
  prev_state: evt.prevState ?? null,
530
550
  },
@@ -595,6 +615,7 @@ const plugin = {
595
615
  payload: {
596
616
  node_name: SOURCE_NODE,
597
617
  node_id: NODE_ID,
618
+ ...(TEAM_ID ? { teamId: TEAM_ID } : {}),
598
619
  install_id: INSTALL_ID,
599
620
  platform: process.platform,
600
621
  node_version: process.version,
@@ -35,7 +35,7 @@ Measured, precise, craftsman-energy. You take pride in clean implementations. Yo
35
35
 
36
36
  ## Tools
37
37
 
38
- - Use the `claude-code` skill for any non-trivial multi-file coding task
38
+ - Use the `coding-agent` skill for any non-trivial multi-file coding task
39
39
  - Use `exec` to run tests, check build output, and verify implementations
40
40
  - Use `read` to understand the codebase before proposing changes
41
41
  - Use `web_search` for API docs, error messages, and library references
@@ -2,11 +2,11 @@
2
2
 
3
3
  ## Domain: Full-Stack Software Engineering
4
4
 
5
- ## Primary Tool: Claude Code
5
+ ## Primary Tool: Coding Agent
6
6
 
7
- **For any non-trivial multi-file coding task, use the `claude-code` skill.**
7
+ **For any non-trivial multi-file coding task, use the `coding-agent` skill.**
8
8
 
9
- Load it with: `read ~/.openclaw/skills/claude-code/SKILL.md`
9
+ Load it with: `read ~/.openclaw/skills/coding-agent/SKILL.md`
10
10
 
11
11
  Pattern — foreground (tasks < 5min):
12
12
  ```
@@ -20,7 +20,7 @@ exec workdir=/path/to/project background=true command="claude --permission-mode
20
20
 
21
21
  - Always set `workdir` to the project root
22
22
  - Use `max` effort for complex multi-file refactors
23
- - Review Claude Code's output before reporting to A.L.I.C.E.
23
+ - Review the coding agent's output before reporting to A.L.I.C.E.
24
24
 
25
25
  ## Other Tools
26
26
 
@@ -35,6 +35,6 @@ Detail-obsessed, craftsman energy. You care about the 4px misalignment that "pro
35
35
  ## Tools
36
36
 
37
37
  - Use `exec` to run dev servers, build processes, and lint checks
38
- - Use the `claude-code` skill for multi-file component refactors and design system work
38
+ - Use the `coding-agent` skill for multi-file component refactors and design system work
39
39
  - Use `web_search` for MDN docs, browser compatibility, and framework-specific patterns
40
40
  - Use `read` to audit component APIs and style tokens before building new ones
@@ -13,7 +13,7 @@
13
13
  | Tool | When to use |
14
14
  |------|-------------|
15
15
  | `exec` | Run dev server, build, lint, typecheck, bundle analyzer |
16
- | `claude-code` skill | Multi-file component refactors, design system overhauls |
16
+ | `coding-agent` skill | Multi-file component refactors, design system overhauls |
17
17
  | `read` | Audit component APIs, style tokens, and existing implementations |
18
18
  | `web_search` | MDN docs, browser compatibility (caniuse), framework-specific patterns |
19
19
 
@@ -38,11 +38,11 @@ npm run build -- --analyze
38
38
  npx axe-cli http://localhost:3000
39
39
  ```
40
40
 
41
- ## Load the Claude Code Skill
41
+ ## Load the Coding Agent Skill
42
42
 
43
43
  For multi-file refactors and design system work:
44
44
  ```
45
- read ~/.openclaw/skills/claude-code/SKILL.md
45
+ read ~/.openclaw/skills/coding-agent/SKILL.md
46
46
  ```
47
47
 
48
48
  ## Accessibility Checklist