@wrongstack/webui 0.264.0 → 0.265.1

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/dist/types.d.ts CHANGED
@@ -277,12 +277,94 @@ interface WSSkillsList {
277
277
  description: string;
278
278
  version: string;
279
279
  source: string;
280
+ sourceUrl: string;
281
+ ref: string;
280
282
  path: string;
281
283
  trigger: string;
282
284
  scope: string[];
283
285
  }>;
284
286
  };
285
287
  }
288
+ interface WSSkillContent {
289
+ type: 'skills.content';
290
+ payload: {
291
+ name: string;
292
+ body: string;
293
+ path: string;
294
+ source: string;
295
+ relatedFiles: string[];
296
+ references: string[];
297
+ error?: string | undefined;
298
+ sourceUrl?: string;
299
+ };
300
+ }
301
+ interface WSSkillsInstalled {
302
+ type: 'skills.installed';
303
+ payload: {
304
+ success: boolean;
305
+ error: string | null;
306
+ results?: Array<{
307
+ name: string;
308
+ path: string;
309
+ scope: 'project' | 'user';
310
+ source: string;
311
+ ref: string;
312
+ skillCount: number;
313
+ }>;
314
+ };
315
+ }
316
+ interface WSSkillsUninstalled {
317
+ type: 'skills.uninstalled';
318
+ payload: {
319
+ success: boolean;
320
+ error: string | null;
321
+ };
322
+ }
323
+ interface WSSkillsUpdated {
324
+ type: 'skills.updated';
325
+ payload: {
326
+ success: boolean;
327
+ error: string | null;
328
+ updated?: Array<{
329
+ name: string;
330
+ oldRef: string;
331
+ newRef: string;
332
+ }>;
333
+ unchanged?: string[];
334
+ errors?: Array<{
335
+ name: string;
336
+ error: string;
337
+ }>;
338
+ };
339
+ }
340
+ interface WSSkillsCreated {
341
+ type: 'skills.created';
342
+ payload: {
343
+ success: boolean;
344
+ error: string | null;
345
+ skill?: {
346
+ name: string;
347
+ path: string;
348
+ scope: 'project' | 'user';
349
+ };
350
+ };
351
+ }
352
+ interface WSSkillsEdited {
353
+ type: 'skills.edited';
354
+ payload: {
355
+ success: boolean;
356
+ error: string | null;
357
+ };
358
+ }
359
+ interface WSSkillsExported {
360
+ type: 'skills.exported';
361
+ payload: {
362
+ /** Base64-encoded ZIP buffer containing all skills as SKILL.md files */
363
+ zipBase64: string;
364
+ skillCount: number;
365
+ error?: string | undefined;
366
+ };
367
+ }
286
368
  interface WSDiagGet {
287
369
  type: 'diag.get';
288
370
  payload: {
@@ -687,6 +769,12 @@ type WSClientMessage = WSUserMessage | WSToolConfirmResult | {
687
769
  };
688
770
  } | {
689
771
  type: 'skills.list';
772
+ } | {
773
+ type: 'skills.content';
774
+ payload: {
775
+ name: string;
776
+ source: string;
777
+ };
690
778
  } | {
691
779
  type: 'diag.get';
692
780
  } | {
@@ -852,8 +940,118 @@ type WSClientMessage = WSUserMessage | WSToolConfirmResult | {
852
940
  payload: {
853
941
  text: string;
854
942
  };
943
+ } | {
944
+ type: 'skills.list';
945
+ } | {
946
+ type: 'skills.content';
947
+ payload: {
948
+ name: string;
949
+ source: string;
950
+ };
951
+ } | {
952
+ type: 'skills.install';
953
+ payload: {
954
+ ref: string;
955
+ global?: boolean;
956
+ };
957
+ } | {
958
+ type: 'skills.uninstall';
959
+ payload: {
960
+ name: string;
961
+ global?: boolean;
962
+ };
963
+ } | {
964
+ type: 'skills.update';
965
+ payload: {
966
+ name?: string;
967
+ global?: boolean;
968
+ };
969
+ } | {
970
+ type: 'skills.create';
971
+ payload: {
972
+ name: string;
973
+ description: string;
974
+ scope: 'project' | 'global';
975
+ };
976
+ } | {
977
+ type: 'skills.export';
978
+ payload?: Record<string, unknown>;
979
+ } | {
980
+ type: 'skills.edit';
981
+ payload: {
982
+ name: string;
983
+ body: string;
984
+ };
985
+ } | {
986
+ type: 'mcp.list';
987
+ } | {
988
+ type: 'mcp.add';
989
+ payload: {
990
+ name: string;
991
+ transport: string;
992
+ description?: string;
993
+ enabled?: boolean;
994
+ command?: string;
995
+ args?: string[];
996
+ env?: Record<string, string>;
997
+ allowedTools?: string[];
998
+ };
999
+ } | {
1000
+ type: 'mcp.remove';
1001
+ payload: {
1002
+ name: string;
1003
+ };
1004
+ } | {
1005
+ type: 'mcp.update';
1006
+ payload: {
1007
+ name: string;
1008
+ transport?: string;
1009
+ description?: string;
1010
+ enabled?: boolean;
1011
+ command?: string;
1012
+ args?: string[];
1013
+ env?: Record<string, string>;
1014
+ allowedTools?: string[];
1015
+ };
1016
+ } | {
1017
+ type: 'mcp.wake';
1018
+ payload: {
1019
+ name: string;
1020
+ };
1021
+ } | {
1022
+ type: 'mcp.sleep';
1023
+ payload: {
1024
+ name: string;
1025
+ };
1026
+ } | {
1027
+ type: 'mcp.discover';
1028
+ payload: {
1029
+ name: string;
1030
+ };
1031
+ } | {
1032
+ type: 'mcp.enable';
1033
+ payload: {
1034
+ name: string;
1035
+ };
1036
+ } | {
1037
+ type: 'mcp.disable';
1038
+ payload: {
1039
+ name: string;
1040
+ };
1041
+ } | {
1042
+ type: 'mcp.restart';
1043
+ payload: {
1044
+ name: string;
1045
+ };
1046
+ } | {
1047
+ type: 'plan.template_use';
1048
+ payload: {
1049
+ template: string;
1050
+ };
1051
+ } | {
1052
+ type: 'webui.shutdown';
855
1053
  };
856
- type WSServerMessage = WSSessionStart | WSSessionEnd | WSTextDelta | WSThinkingDelta | WSToolUseStart | WSToolProgress | WSToolExecuted | WSIterationStarted | WSIterationCompleted | WSProviderResponse | WSRunResult | WSSessionStats | WSError | WSToolConfirmNeeded | WSContextDebug | WSContextCompacted | WSContextRepaired | WSContextModesList | WSContextModeChanged | WSToolsList | WSMemoryList | WSSkillsList | WSDiagGet | WSStatsGet | WSSessionsList | WSProviderCatalog | WSProviderModels | WSSavedProviders | WSProviderProbe | WSKeyOperationResult | WSFilesList | {
1054
+ type WSServerMessage = WSSessionStart | WSSessionEnd | WSTextDelta | WSThinkingDelta | WSToolUseStart | WSToolProgress | WSToolExecuted | WSIterationStarted | WSIterationCompleted | WSProviderResponse | WSRunResult | WSSessionStats | WSError | WSToolConfirmNeeded | WSContextDebug | WSContextCompacted | WSContextRepaired | WSContextModesList | WSContextModeChanged | WSToolsList | WSMemoryList | WSSkillsList | WSSkillContent | WSSkillsInstalled | WSSkillsUninstalled | WSSkillsUpdated | WSSkillsCreated | WSSkillsEdited | WSSkillsExported | WSDiagGet | WSStatsGet | WSSessionsList | WSProviderCatalog | WSProviderModels | WSSavedProviders | WSProviderProbe | WSKeyOperationResult | WSFilesList | {
857
1055
  type: 'files.tree';
858
1056
  payload: {
859
1057
  root: string;
@@ -993,6 +1191,197 @@ type WSServerMessage = WSSessionStart | WSSessionEnd | WSTextDelta | WSThinkingD
993
1191
  english: string;
994
1192
  error?: string | undefined;
995
1193
  };
1194
+ } | {
1195
+ type: 'coordinator.status';
1196
+ payload: {
1197
+ status: 'idle' | 'running' | 'draining' | 'stopped';
1198
+ mode?: string;
1199
+ subagentCount?: number;
1200
+ taskQueue?: {
1201
+ pending: number;
1202
+ running: number;
1203
+ completed: number;
1204
+ failed: number;
1205
+ };
1206
+ };
1207
+ } | {
1208
+ type: 'coordinator.stats';
1209
+ payload: {
1210
+ total: number;
1211
+ running: number;
1212
+ idle: number;
1213
+ stopped: number;
1214
+ inFlight: number;
1215
+ pending: number;
1216
+ completed: number;
1217
+ subagentStatuses?: Array<{
1218
+ id: string;
1219
+ name: string;
1220
+ status: string;
1221
+ currentTask?: string;
1222
+ }>;
1223
+ };
1224
+ } | {
1225
+ type: 'budget.threshold_reached';
1226
+ payload: {
1227
+ subagentId: string;
1228
+ taskId?: string;
1229
+ ts: number;
1230
+ kind: string;
1231
+ used: number;
1232
+ limit: number;
1233
+ timeoutMs: number;
1234
+ };
1235
+ } | {
1236
+ type: 'budget.decision';
1237
+ payload: {
1238
+ subagentId: string;
1239
+ kind: string;
1240
+ decision: 'extend' | 'deny';
1241
+ extended?: {
1242
+ timeoutMs?: number;
1243
+ maxIterations?: number;
1244
+ maxToolCalls?: number;
1245
+ };
1246
+ };
1247
+ } | {
1248
+ type: 'subagent.budget_extended';
1249
+ payload: {
1250
+ subagentId: string;
1251
+ kind: string;
1252
+ extendedMs?: number;
1253
+ extendedTo?: number;
1254
+ };
1255
+ } | {
1256
+ type: 'consensus.vote_initiated';
1257
+ payload: {
1258
+ changeId: string;
1259
+ title: string;
1260
+ eligible: Array<{
1261
+ agentId: string;
1262
+ agentName: string;
1263
+ }>;
1264
+ };
1265
+ } | {
1266
+ type: 'consensus.vote_cast';
1267
+ payload: {
1268
+ changeId: string;
1269
+ voterId: string;
1270
+ value: 'approve' | 'reject' | 'abstain';
1271
+ };
1272
+ } | {
1273
+ type: 'consensus.vote_resolved';
1274
+ payload: {
1275
+ changeId: string;
1276
+ result: 'approved' | 'rejected' | 'vetoed' | 'quorum_not_met';
1277
+ approveCount: number;
1278
+ rejectCount: number;
1279
+ };
1280
+ } | {
1281
+ type: 'task.pending';
1282
+ payload: {
1283
+ taskId: string;
1284
+ description: string;
1285
+ priority?: number;
1286
+ };
1287
+ } | {
1288
+ type: 'task.started';
1289
+ payload: {
1290
+ taskId: string;
1291
+ subagentId: string;
1292
+ };
1293
+ } | {
1294
+ type: 'task.completed';
1295
+ payload: {
1296
+ taskId: string;
1297
+ subagentId: string;
1298
+ status: string;
1299
+ durationMs: number;
1300
+ };
1301
+ } | {
1302
+ type: 'task.failed';
1303
+ payload: {
1304
+ taskId: string;
1305
+ subagentId: string;
1306
+ error: string;
1307
+ };
1308
+ } | {
1309
+ type: 'mcp.list';
1310
+ payload: {
1311
+ servers: Array<{
1312
+ name: string;
1313
+ transport: string;
1314
+ status: string;
1315
+ enabled: boolean;
1316
+ description?: string;
1317
+ tools?: string[];
1318
+ error?: string;
1319
+ pid?: number;
1320
+ }>;
1321
+ };
1322
+ } | {
1323
+ type: 'mcp.server.added';
1324
+ payload: {
1325
+ server: {
1326
+ name: string;
1327
+ transport: string;
1328
+ status: string;
1329
+ enabled: boolean;
1330
+ description?: string;
1331
+ tools?: string[];
1332
+ };
1333
+ };
1334
+ } | {
1335
+ type: 'mcp.server.removed';
1336
+ payload: {
1337
+ name: string;
1338
+ };
1339
+ } | {
1340
+ type: 'mcp.server.updated';
1341
+ payload: {
1342
+ server: {
1343
+ name: string;
1344
+ transport: string;
1345
+ status: string;
1346
+ enabled: boolean;
1347
+ description?: string;
1348
+ tools?: string[];
1349
+ };
1350
+ };
1351
+ } | {
1352
+ type: 'mcp.server.discovered';
1353
+ payload: {
1354
+ name: string;
1355
+ tools: string[];
1356
+ };
1357
+ } | {
1358
+ type: 'mcp.server.sleeping';
1359
+ payload: {
1360
+ name: string;
1361
+ };
1362
+ } | {
1363
+ type: 'mcp.server.waking';
1364
+ payload: {
1365
+ name: string;
1366
+ };
1367
+ } | {
1368
+ type: 'mcp.server.connected';
1369
+ payload: {
1370
+ name: string;
1371
+ pid?: number;
1372
+ };
1373
+ } | {
1374
+ type: 'mcp.server.error';
1375
+ payload: {
1376
+ name: string;
1377
+ error: string;
1378
+ };
1379
+ } | {
1380
+ type: 'mcp.operation_result';
1381
+ payload: {
1382
+ success: boolean;
1383
+ message: string;
1384
+ };
996
1385
  };
997
1386
  type BroadcastFn = (msg: WSServerMessage) => void;
998
1387
  /** Narrow type for CollabPanel event handlers — only collab-related messages + errors. */
@@ -1205,4 +1594,4 @@ interface WSCollabInjectionGranted {
1205
1594
  };
1206
1595
  }
1207
1596
 
1208
- export type { BroadcastFn, CollabPanelMessage, CollabRole, MemoryScope, WSAutoPhaseState, WSClientMessage, WSCollabAnnotate, WSCollabAnnotationAdded, WSCollabAnnotationResolved, WSCollabEvent, WSCollabGrantControl, WSCollabInjectTool, WSCollabInjectionGranted, WSCollabJoin, WSCollabLeave, WSCollabParticipantJoined, WSCollabParticipantLeft, WSCollabPauseGranted, WSCollabPauseReleased, WSCollabRequestPause, WSCollabResolve, WSCollabResume, WSCollabState, WSContextCompacted, WSContextDebug, WSContextModeChanged, WSContextModesList, WSContextRepaired, WSDiagGet, WSError, WSFilesList, WSIterationCompleted, WSIterationStarted, WSKeyOperationResult, WSMemoryList, WSMessage, WSModelSwitch, WSModesList, WSProviderCatalog, WSProviderModels, WSProviderProbe, WSProviderResponse, WSRunResult, WSSavedProviders, WSServerMessage, WSSessionEnd, WSSessionStart, WSSessionStats, WSSessionsList, WSSkillsList, WSStatsGet, WSTextDelta, WSThinkingDelta, WSTodosUpdated, WSToolConfirmNeeded, WSToolConfirmResult, WSToolExecuted, WSToolProgress, WSToolUseStart, WSToolsList, WSUserMessage, WSWorktreeEvent, WSWorktreeState, WorktreeHandleView };
1597
+ export type { BroadcastFn, CollabPanelMessage, CollabRole, MemoryScope, WSAutoPhaseState, WSClientMessage, WSCollabAnnotate, WSCollabAnnotationAdded, WSCollabAnnotationResolved, WSCollabEvent, WSCollabGrantControl, WSCollabInjectTool, WSCollabInjectionGranted, WSCollabJoin, WSCollabLeave, WSCollabParticipantJoined, WSCollabParticipantLeft, WSCollabPauseGranted, WSCollabPauseReleased, WSCollabRequestPause, WSCollabResolve, WSCollabResume, WSCollabState, WSContextCompacted, WSContextDebug, WSContextModeChanged, WSContextModesList, WSContextRepaired, WSDiagGet, WSError, WSFilesList, WSIterationCompleted, WSIterationStarted, WSKeyOperationResult, WSMemoryList, WSMessage, WSModelSwitch, WSModesList, WSProviderCatalog, WSProviderModels, WSProviderProbe, WSProviderResponse, WSRunResult, WSSavedProviders, WSServerMessage, WSSessionEnd, WSSessionStart, WSSessionStats, WSSessionsList, WSSkillContent, WSSkillsCreated, WSSkillsEdited, WSSkillsExported, WSSkillsInstalled, WSSkillsList, WSSkillsUninstalled, WSSkillsUpdated, WSStatsGet, WSTextDelta, WSThinkingDelta, WSTodosUpdated, WSToolConfirmNeeded, WSToolConfirmResult, WSToolExecuted, WSToolProgress, WSToolUseStart, WSToolsList, WSUserMessage, WSWorktreeEvent, WSWorktreeState, WorktreeHandleView };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/webui",
3
- "version": "0.264.0",
3
+ "version": "0.265.1",
4
4
  "license": "MIT",
5
5
  "description": "Browser-based WebUI for WrongStack — React + Vite frontend with WebSocket backend that drives the same agent kernel as the CLI/TUI.",
6
6
  "keywords": [
@@ -68,9 +68,11 @@
68
68
  "@radix-ui/react-tabs": "^1.1.14",
69
69
  "@radix-ui/react-toast": "^1.2.16",
70
70
  "@radix-ui/react-tooltip": "^1.2.9",
71
+ "@uiw/react-textarea-code-editor": "^3.1.1",
71
72
  "@xyflow/react": "^12.11.0",
72
73
  "class-variance-authority": "^0.7.1",
73
74
  "clsx": "^2.1.1",
75
+ "jszip": "^3.10.1",
74
76
  "lucide-react": "^1.17.0",
75
77
  "monaco-editor": "^0.55.1",
76
78
  "react": "^19.2.7",
@@ -82,10 +84,10 @@
82
84
  "virtua": "^0.49.1",
83
85
  "ws": "^8.21.0",
84
86
  "zustand": "^5.0.14",
85
- "@wrongstack/core": "0.264.0",
86
- "@wrongstack/tools": "0.264.0",
87
- "@wrongstack/runtime": "0.264.0",
88
- "@wrongstack/providers": "0.264.0"
87
+ "@wrongstack/providers": "0.265.1",
88
+ "@wrongstack/runtime": "0.265.1",
89
+ "@wrongstack/core": "0.265.1",
90
+ "@wrongstack/tools": "0.265.1"
89
91
  },
90
92
  "devDependencies": {
91
93
  "@playwright/test": "^1.60.0",