@electric-agent/studio 1.12.1 → 1.13.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.
@@ -1,14 +1,21 @@
1
+ import type { Registry } from "./registry.js";
1
2
  import type { SessionInfo } from "./sessions.js";
2
3
  /**
3
- * Lightweight in-memory session store for the current server lifetime.
4
+ * In-memory session store with optional durable backing via Registry.
4
5
  *
5
- * Sessions are private to each user (stored in their browser's localStorage).
6
- * The server only tracks active sessions for sandbox/bridge management.
7
- * This store is NOT persisted it resets on server restart.
6
+ * When a Registry is provided, mutations are persisted to the durable stream
7
+ * (fire-and-forget the in-memory state is the source of truth for reads).
8
+ * On startup, call `ActiveSessions.create(registry)` to hydrate from the stream.
8
9
  */
9
10
  export declare class ActiveSessions {
10
11
  private sessions;
11
12
  private transcriptToSession;
13
+ private registry;
14
+ /**
15
+ * Create an ActiveSessions store backed by a Registry.
16
+ * Seeds in-memory state from the registry's persisted sessions.
17
+ */
18
+ static fromRegistry(registry: Registry): ActiveSessions;
12
19
  add(session: SessionInfo): void;
13
20
  get(id: string): SessionInfo | undefined;
14
21
  update(id: string, update: Partial<SessionInfo>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"active-sessions.d.ts","sourceRoot":"","sources":["../src/active-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;;;;;GAMG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,mBAAmB,CAA4B;IAEvD,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAI/B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIxC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAStD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B,qDAAqD;IACrD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,4CAA4C;IAC5C,IAAI,IAAI,MAAM;IAMd;;;OAGG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAM3D;;OAEG;IACH,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAG9D"}
1
+ {"version":3,"file":"active-sessions.d.ts","sourceRoot":"","sources":["../src/active-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;;;;;GAMG;AACH,qBAAa,cAAc;IAC1B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAwB;IAExC;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc;IAavD,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAO/B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIxC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAYtD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAU3B,qDAAqD;IACrD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,4CAA4C;IAC5C,IAAI,IAAI,MAAM;IAMd;;;OAGG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAM3D;;OAEG;IACH,aAAa,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAM9D"}
@@ -1,15 +1,33 @@
1
1
  /**
2
- * Lightweight in-memory session store for the current server lifetime.
2
+ * In-memory session store with optional durable backing via Registry.
3
3
  *
4
- * Sessions are private to each user (stored in their browser's localStorage).
5
- * The server only tracks active sessions for sandbox/bridge management.
6
- * This store is NOT persisted it resets on server restart.
4
+ * When a Registry is provided, mutations are persisted to the durable stream
5
+ * (fire-and-forget the in-memory state is the source of truth for reads).
6
+ * On startup, call `ActiveSessions.create(registry)` to hydrate from the stream.
7
7
  */
8
8
  export class ActiveSessions {
9
9
  sessions = new Map();
10
10
  transcriptToSession = new Map();
11
+ registry = null;
12
+ /**
13
+ * Create an ActiveSessions store backed by a Registry.
14
+ * Seeds in-memory state from the registry's persisted sessions.
15
+ */
16
+ static fromRegistry(registry) {
17
+ const store = new ActiveSessions();
18
+ store.registry = registry;
19
+ // Seed from persisted sessions
20
+ for (const session of registry.listSessions()) {
21
+ store.sessions.set(session.id, session);
22
+ }
23
+ console.log(`[active-sessions] Seeded ${store.sessions.size} session(s) from registry`);
24
+ return store;
25
+ }
11
26
  add(session) {
12
27
  this.sessions.set(session.id, session);
28
+ this.registry?.addSession(session).catch((err) => {
29
+ console.error(`[active-sessions] Failed to persist add:`, err);
30
+ });
13
31
  }
14
32
  get(id) {
15
33
  return this.sessions.get(id);
@@ -20,10 +38,19 @@ export class ActiveSessions {
20
38
  Object.assign(session, update, {
21
39
  lastActiveAt: new Date().toISOString(),
22
40
  });
41
+ this.registry?.updateSession(id, update).catch((err) => {
42
+ console.error(`[active-sessions] Failed to persist update:`, err);
43
+ });
23
44
  }
24
45
  }
25
46
  delete(id) {
26
- return this.sessions.delete(id);
47
+ const deleted = this.sessions.delete(id);
48
+ if (deleted) {
49
+ this.registry?.deleteSession(id).catch((err) => {
50
+ console.error(`[active-sessions] Failed to persist delete:`, err);
51
+ });
52
+ }
53
+ return deleted;
27
54
  }
28
55
  /** Check if a session exists in the active store. */
29
56
  has(id) {
@@ -49,6 +76,9 @@ export class ActiveSessions {
49
76
  */
50
77
  mapTranscript(transcriptPath, sessionId) {
51
78
  this.transcriptToSession.set(transcriptPath, sessionId);
79
+ this.registry?.mapTranscriptToSession(transcriptPath, sessionId).catch((err) => {
80
+ console.error(`[active-sessions] Failed to persist transcript mapping:`, err);
81
+ });
52
82
  }
53
83
  }
54
84
  //# sourceMappingURL=active-sessions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"active-sessions.js","sourceRoot":"","sources":["../src/active-sessions.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IAClB,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAA;IACzC,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEvD,GAAG,CAAC,OAAoB;QACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,GAAG,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,MAA4B;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACrC,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;gBAC9B,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAED,MAAM,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC;IAED,qDAAqD;IACrD,GAAG,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,4CAA4C;IAC5C,IAAI;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAA;IAC1B,CAAC;IAED,0EAA0E;IAE1E;;;OAGG;IACH,eAAe,CAAC,cAAsB;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAC9D,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAA;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5D,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,cAAsB,EAAE,SAAiB;QACtD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAA;IACxD,CAAC;CACD"}
1
+ {"version":3,"file":"active-sessions.js","sourceRoot":"","sources":["../src/active-sessions.ts"],"names":[],"mappings":"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"}
@@ -59,17 +59,17 @@ export declare const createSandboxSchema: z.ZodObject<{
59
59
  sourceId: z.ZodString;
60
60
  secret: z.ZodString;
61
61
  }, "strip", z.ZodTypeAny, {
62
+ secret: string;
62
63
  mode: "cloud";
63
64
  databaseUrl: string;
64
65
  electricUrl: string;
65
66
  sourceId: string;
66
- secret: string;
67
67
  }, {
68
+ secret: string;
68
69
  mode: "cloud";
69
70
  databaseUrl: string;
70
71
  electricUrl: string;
71
72
  sourceId: string;
72
- secret: string;
73
73
  }>, z.ZodObject<{
74
74
  mode: z.ZodLiteral<"claim">;
75
75
  databaseUrl: z.ZodString;
@@ -79,18 +79,18 @@ export declare const createSandboxSchema: z.ZodObject<{
79
79
  claimId: z.ZodString;
80
80
  }, "strip", z.ZodTypeAny, {
81
81
  claimId: string;
82
+ secret: string;
82
83
  mode: "claim";
83
84
  databaseUrl: string;
84
85
  electricUrl: string;
85
86
  sourceId: string;
86
- secret: string;
87
87
  }, {
88
88
  claimId: string;
89
+ secret: string;
89
90
  mode: "claim";
90
91
  databaseUrl: string;
91
92
  electricUrl: string;
92
93
  sourceId: string;
93
- secret: string;
94
94
  }>]>>;
95
95
  }, "strip", z.ZodTypeAny, {
96
96
  projectName?: string | undefined;
@@ -100,18 +100,18 @@ export declare const createSandboxSchema: z.ZodObject<{
100
100
  } | {
101
101
  mode: "local";
102
102
  } | {
103
+ secret: string;
103
104
  mode: "cloud";
104
105
  databaseUrl: string;
105
106
  electricUrl: string;
106
107
  sourceId: string;
107
- secret: string;
108
108
  } | {
109
109
  claimId: string;
110
+ secret: string;
110
111
  mode: "claim";
111
112
  databaseUrl: string;
112
113
  electricUrl: string;
113
114
  sourceId: string;
114
- secret: string;
115
115
  } | undefined;
116
116
  }, {
117
117
  projectName?: string | undefined;
@@ -121,18 +121,18 @@ export declare const createSandboxSchema: z.ZodObject<{
121
121
  } | {
122
122
  mode: "local";
123
123
  } | {
124
+ secret: string;
124
125
  mode: "cloud";
125
126
  databaseUrl: string;
126
127
  electricUrl: string;
127
128
  sourceId: string;
128
- secret: string;
129
129
  } | {
130
130
  claimId: string;
131
+ secret: string;
131
132
  mode: "claim";
132
133
  databaseUrl: string;
133
134
  electricUrl: string;
134
135
  sourceId: string;
135
- secret: string;
136
136
  } | undefined;
137
137
  }>;
138
138
  export declare const createRoomSchema: z.ZodObject<{
@@ -145,6 +145,25 @@ export declare const createRoomSchema: z.ZodObject<{
145
145
  name: string;
146
146
  maxRounds?: number | undefined;
147
147
  }>;
148
+ export declare const createAppRoomSchema: z.ZodObject<{
149
+ description: z.ZodString;
150
+ name: z.ZodOptional<z.ZodString>;
151
+ apiKey: z.ZodOptional<z.ZodString>;
152
+ oauthToken: z.ZodOptional<z.ZodString>;
153
+ ghToken: z.ZodOptional<z.ZodString>;
154
+ }, "strip", z.ZodTypeAny, {
155
+ description: string;
156
+ name?: string | undefined;
157
+ apiKey?: string | undefined;
158
+ oauthToken?: string | undefined;
159
+ ghToken?: string | undefined;
160
+ }, {
161
+ description: string;
162
+ name?: string | undefined;
163
+ apiKey?: string | undefined;
164
+ oauthToken?: string | undefined;
165
+ ghToken?: string | undefined;
166
+ }>;
148
167
  export declare const addAgentSchema: z.ZodObject<{
149
168
  name: z.ZodOptional<z.ZodString>;
150
169
  role: z.ZodOptional<z.ZodString>;
@@ -175,12 +194,12 @@ export declare const addSessionToRoomSchema: z.ZodObject<{
175
194
  name: z.ZodString;
176
195
  initialPrompt: z.ZodOptional<z.ZodString>;
177
196
  }, "strip", z.ZodTypeAny, {
178
- name: string;
179
197
  sessionId: string;
198
+ name: string;
180
199
  initialPrompt?: string | undefined;
181
200
  }, {
182
- name: string;
183
201
  sessionId: string;
202
+ name: string;
184
203
  initialPrompt?: string | undefined;
185
204
  }>;
186
205
  export declare const iterateRoomSessionSchema: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"api-schemas.d.ts","sourceRoot":"","sources":["../src/api-schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAUvB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAQ9B,CAAA;AAGF,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAA;AA2BF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAA;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAA;AAGF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;EAQzB,CAAA;AAGF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAA;AAGF,eAAO,MAAM,wBAAwB;;;;;;EAEnC,CAAA;AAGF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAIhC,CAAA;AAGF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAA"}
1
+ {"version":3,"file":"api-schemas.d.ts","sourceRoot":"","sources":["../src/api-schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAUvB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;EAQ9B,CAAA;AAGF,eAAO,MAAM,oBAAoB;;;;;;EAE/B,CAAA;AA2BF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAA;AAGF,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAA;AAGF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAA;AAGF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;EAQzB,CAAA;AAGF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAA;AAGF,eAAO,MAAM,wBAAwB;;;;;;EAEnC,CAAA;AAGF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAIhC,CAAA;AAGF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAA"}
@@ -58,6 +58,14 @@ export const createRoomSchema = z.object({
58
58
  name: z.string().min(1).max(MAX_SHORT),
59
59
  maxRounds: z.number().int().positive().optional(),
60
60
  });
61
+ // POST /api/rooms/create-app
62
+ export const createAppRoomSchema = z.object({
63
+ description: z.string().min(1).max(MAX_TEXT),
64
+ name: z.string().max(MAX_SHORT).optional(),
65
+ apiKey: optionalKey,
66
+ oauthToken: optionalKey,
67
+ ghToken: optionalKey,
68
+ });
61
69
  // POST /api/rooms/:id/agents
62
70
  export const addAgentSchema = z.object({
63
71
  name: z.string().max(MAX_SHORT).optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"api-schemas.js","sourceRoot":"","sources":["../src/api-schemas.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,uDAAuD;AACvD,MAAM,QAAQ,GAAG,MAAM,CAAA;AACvB,MAAM,SAAS,GAAG,GAAG,CAAA;AACrB,MAAM,OAAO,GAAG,KAAK,CAAA;AAErB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAA;AAEtD,qBAAqB;AACrB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,WAAW;IACvB,OAAO,EAAE,WAAW;CACpB,CAAC,CAAA;AAEF,iCAAiC;AACjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;CACxC,CAAC,CAAA;AAEF,sBAAsB;AACtB,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAC7D,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AAC/D,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;CAC/B,CAAC,CAAA;AACF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;CAClC,CAAC,CAAA;AACF,MAAM,iBAAiB,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACtD,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;CAChB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IACjD,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAEF,kBAAkB;AAClB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACjD,CAAC,CAAA;AAEF,6BAA6B;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IAC1C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;IAClD,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,WAAW;IACvB,OAAO,EAAE,WAAW;CACpB,CAAC,CAAA;AAEF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;IACtC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAA;AAEF,kDAAkD;AAClD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;CACxC,CAAC,CAAA;AAEF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAA;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,WAAW;IACnB,UAAU,EAAE,WAAW;IACvB,OAAO,EAAE,WAAW;CACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"api-schemas.js","sourceRoot":"","sources":["../src/api-schemas.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"role-skills.d.ts","sourceRoot":"","sources":["../../src/bridge/role-skills.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkGH,MAAM,WAAW,SAAS;IACzB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAsBrE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
1
+ {"version":3,"file":"role-skills.d.ts","sourceRoot":"","sources":["../../src/bridge/role-skills.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2GH,MAAM,WAAW,SAAS;IACzB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAsBrE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
@@ -20,6 +20,9 @@ const ROLE_ALIASES = {
20
20
  reviewer: "reviewer",
21
21
  "code reviewer": "reviewer",
22
22
  "pr reviewer": "reviewer",
23
+ "ui-designer": "ui-designer",
24
+ "ui designer": "ui-designer",
25
+ "frontend designer": "ui-designer",
23
26
  };
24
27
  // ---------------------------------------------------------------------------
25
28
  // Tool permissions per role
@@ -55,9 +58,14 @@ const REVIEWER_TOOLS = [
55
58
  "AskUserQuestion",
56
59
  "Skill",
57
60
  ];
61
+ /**
62
+ * UI Designer gets full write access — needs Write/Edit/Bash to modify code and run dev server.
63
+ */
64
+ const UI_DESIGNER_TOOLS = [...ALL_TOOLS];
58
65
  const ROLE_TOOLS = {
59
66
  coder: CODER_TOOLS,
60
67
  reviewer: REVIEWER_TOOLS,
68
+ "ui-designer": UI_DESIGNER_TOOLS,
61
69
  };
62
70
  // ---------------------------------------------------------------------------
63
71
  // Skill file loading
@@ -1 +1 @@
1
- {"version":3,"file":"role-skills.js","sourceRoot":"","sources":["../../src/bridge/role-skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"role-skills.js","sourceRoot":"","sources":["../../src/bridge/role-skills.ts"],"names":[],"mappings":"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"}