@wrongstack/webui 0.309.1 → 0.310.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/dist/assets/{AgentRosterView-CBiLW8dV.js → AgentRosterView-D65_58jj.js} +1 -1
- package/dist/assets/{AnalyticsDashboard-Grpp3QKX.js → AnalyticsDashboard-DOc43lwL.js} +1 -1
- package/dist/assets/{AudienceMemoryPanel-DU3hUuUl.js → AudienceMemoryPanel-BLpp2tHi.js} +1 -1
- package/dist/assets/{ChangesView-DOrw4udd.js → ChangesView-DgBKkM9W.js} +1 -1
- package/dist/assets/{ChronicleDashboard-DlCuQRB8.js → ChronicleDashboard-DTQBK3sz.js} +1 -1
- package/dist/assets/{CodeEditor-CU6zP0r8.js → CodeEditor-C_i1OpFY.js} +1 -1
- package/dist/assets/{CodeMap-BkJqVDg2.js → CodeMap-DAiZc6KR.js} +1 -1
- package/dist/assets/{ConfirmModal-BJOVE-JI.js → ConfirmModal-e_pAJNXI.js} +1 -1
- package/dist/assets/{CronJobsPanel-B3UJP0mn.js → CronJobsPanel-Bd9yYc54.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-_iUu5-90.js → DeadCodeScanPanel-DX6kTHMe.js} +1 -1
- package/dist/assets/{DebugDashboard-NTiN0je2.js → DebugDashboard-DzZ2VgUh.js} +1 -1
- package/dist/assets/{DesignGalleryView-BG2Nr8wy.js → DesignGalleryView-C6V81Ve6.js} +1 -1
- package/dist/assets/{GoalView-Dakf9ZR8.js → GoalView-D8IvL8gu.js} +1 -1
- package/dist/assets/{KanbanView-BR07PhbR.js → KanbanView-CgAYUWMt.js} +1 -1
- package/dist/assets/{MailboxDetailView-D31IhaK_.js → MailboxDetailView-DVhX5QJL.js} +1 -1
- package/dist/assets/{MemoryDrawer-6n0Etoz4.js → MemoryDrawer-8sFKIDFT.js} +1 -1
- package/dist/assets/{MemoryManager-7DSVhxZf.js → MemoryManager-UVJcZ8F1.js} +1 -1
- package/dist/assets/{ModelPicker-C72kprRH.js → ModelPicker-BX3TyLGh.js} +1 -1
- package/dist/assets/{OfficeMapPanel-Dc8-4CiU.js → OfficeMapPanel-CGquZdpA.js} +1 -1
- package/dist/assets/{ProcessMonitor-BGLc3yNM.js → ProcessMonitor-DWRyMBcK.js} +1 -1
- package/dist/assets/{PromptJournalView-CxDiqUkN.js → PromptJournalView-D7cxTV4b.js} +1 -1
- package/dist/assets/{QueuePanel-B2f1HbN0.js → QueuePanel-BHC0oZuW.js} +1 -1
- package/dist/assets/{RefreshDebugView-D8F95QxF.js → RefreshDebugView-CYtfPKpz.js} +1 -1
- package/dist/assets/{RequirementIntakeView-BRolSCpk.js → RequirementIntakeView-CqK3EO7I.js} +1 -1
- package/dist/assets/{SageTabs-DblSyqzB.js → SageTabs-twWj7FY5.js} +2 -2
- package/dist/assets/{SddFlowGraph-YOPsSaFc.js → SddFlowGraph-DRoJjwE7.js} +1 -1
- package/dist/assets/{SddHub-IusMUP2D.js → SddHub-GEtMx-VT.js} +1 -1
- package/dist/assets/{SessionInspectView-B633Bi0X.js → SessionInspectView-Bj3lSgGC.js} +1 -1
- package/dist/assets/{SessionList-BCE6NSCu.js → SessionList-Q2e5-_66.js} +1 -1
- package/dist/assets/{SessionsDashboard-N__p7_i5.js → SessionsDashboard-zMKgGHVE.js} +1 -1
- package/dist/assets/{SetupScreen-B06asuJC.js → SetupScreen-OTuQXHs_.js} +1 -1
- package/dist/assets/{SkillDetailView-BxpQcgfh.js → SkillDetailView-DOuDqdnT.js} +3 -3
- package/dist/assets/{SpecsView-Ddbow1sn.js → SpecsView-DCXc8NKW.js} +1 -1
- package/dist/assets/{TechStackView-HTZUTbuu.js → TechStackView-DBYyTF6H.js} +1 -1
- package/dist/assets/{TerminalPanel-Bi3CmRvI.js → TerminalPanel-D8ZfgplP.js} +1 -1
- package/dist/assets/{Toaster-COVFFUKo.js → Toaster-tBe1ZrKx.js} +1 -1
- package/dist/assets/{activity-Dt0RpmkN.js → activity-BA8C9ueU.js} +1 -1
- package/dist/assets/{activity-7Sj9fdO-.js → activity-BYnOci5N.js} +1 -1
- package/dist/assets/{activity-B7hiQ_IX.js → activity-COQ9xSFu.js} +1 -1
- package/dist/assets/{activity-B-LcgiXm.js → activity-CuJqhGz7.js} +1 -1
- package/dist/assets/{activity-JmCi-KcX.js → activity-D3ZccGOh.js} +1 -1
- package/dist/assets/{activity-Cq0Lqtgz.js → activity-YMES6OPI.js} +1 -1
- package/dist/assets/{activity-DVuAYnoi.js → activity-zlMMaNE1.js} +1 -1
- package/dist/assets/{button-DAT5OnLL.js → button-Dhmop_yM.js} +1 -1
- package/dist/assets/{chat-store-CtIMb3sU.js → chat-store-BiEXyguk.js} +1 -1
- package/dist/assets/{codemap-activity-store-CA_14DHd.js → codemap-activity-store-BWt_a7Gs.js} +1 -1
- package/dist/assets/codemap-index-store-CDhApwWQ.js +1 -0
- package/dist/assets/{dialog-BMrjwjA6.js → dialog-DPl7DolS.js} +1 -1
- package/dist/assets/{empty-state-Bf05Z1d2.js → empty-state-IT10GzRA.js} +1 -1
- package/dist/assets/{i18n-CYYBUSJB.js → i18n-dLvHUYek.js} +2 -2
- package/dist/assets/index-B8J_xxU5.css +1 -0
- package/dist/assets/{index-cUeJ0FkT.js → index-Cyhuj8ku.js} +55 -55
- package/dist/assets/{input-Ccsxvwz6.js → input-C3rIQ26u.js} +1 -1
- package/dist/assets/{mailbox-store-BWD7JeF9.js → mailbox-store-DhAVkVJQ.js} +1 -1
- package/dist/assets/{roster-ws-lMIf13ag.js → roster-ws-Vj_HH49O.js} +1 -1
- package/dist/assets/session-store-CKpAwNIm.js +1 -0
- package/dist/assets/{shared-Y6T3EEnd.js → shared-BUXBOqyO.js} +1 -1
- package/dist/assets/{stores-BUtRik4k.js → stores-D9Ng0JyF.js} +1 -1
- package/dist/assets/ui-store-3HoYrTu5.js +1 -0
- package/dist/assets/useWebSocket-B2jKc_G4.js +29 -0
- package/dist/assets/{utils-B5X3DKef.js → utils-BecmXwgG.js} +1 -1
- package/dist/assets/{vector-memory-panel-CnBqV6GK.js → vector-memory-panel-CBA4CK6N.js} +1 -1
- package/dist/assets/{vendor-DLS502Zs.js → vendor-DZ9_OO6N.js} +20 -20
- package/dist/assets/{view-navigation-Hd631M1W.js → view-navigation-C1UDTk5R.js} +1 -1
- package/dist/assets/ws-client-DXT4gi-N.js +1 -0
- package/dist/components/ChatView/AgentTabs.d.ts +16 -0
- package/dist/components/ChatView/SubagentTranscriptView.d.ts +16 -0
- package/dist/components/ChatView/useChatViewState.d.ts +7 -0
- package/dist/components/SettingsPanel/LogsSettingsTab.d.ts +1 -1
- package/dist/components/SettingsPanel/MCPSection.d.ts +2 -12
- package/dist/components/SettingsPanel/ModelSchemaEditor.d.ts +7 -0
- package/dist/components/SettingsPanel/contracts.d.ts +29 -0
- package/dist/components/SettingsPanel/official-servers.d.ts +1 -1
- package/dist/hooks/useLiveContextDebug.d.ts +97 -0
- package/dist/index.html +22 -22
- package/dist/index.js +10919 -10231
- package/dist/protocol-compatibility.d.ts +1 -1
- package/dist/stores/session-store.d.ts +9 -1
- package/dist/stores/ui-store.d.ts +12 -0
- package/dist/types/system.d.ts +12 -0
- package/package.json +12 -11
- package/dist/assets/codemap-index-store-BlPxA13l.js +0 -1
- package/dist/assets/index-D2tx76V0.css +0 -1
- package/dist/assets/session-store-D4PNeAGe.js +0 -1
- package/dist/assets/ui-store-DxMnhARg.js +0 -1
- package/dist/assets/useWebSocket-Ew1Bbjci.js +0 -29
- package/dist/assets/ws-client-DYrfK01f.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CanonicalClientMessageType, CanonicalServerMessageType } from '@wrongstack/webui-
|
|
1
|
+
import type { CanonicalClientMessageType, CanonicalServerMessageType } from '@wrongstack/webui-protocol';
|
|
2
2
|
import type { WSClientMessageCore, WSServerMessage } from './types.js';
|
|
3
3
|
type AssertNever<T extends never> = T;
|
|
4
4
|
/**
|
|
@@ -29,6 +29,14 @@ interface SessionState {
|
|
|
29
29
|
readTokens: number;
|
|
30
30
|
writeTokens: number;
|
|
31
31
|
hitRatio: number;
|
|
32
|
+
/** Session cache telemetry split by routed provider (fallback/model switches included). */
|
|
33
|
+
providers?: Array<{
|
|
34
|
+
provider: string;
|
|
35
|
+
input: number;
|
|
36
|
+
cacheRead: number;
|
|
37
|
+
cacheWrite: number;
|
|
38
|
+
hitRatio: number;
|
|
39
|
+
}>;
|
|
32
40
|
/**
|
|
33
41
|
* Cached prefix of the most recent prompt, capped at `lastInputTokens`
|
|
34
42
|
* so the coverage figure never overshoots the live request size.
|
|
@@ -108,7 +116,7 @@ interface SessionState {
|
|
|
108
116
|
/** Number of tools dropped from provider requests due to maxTools limit (0 = no limit or within limit). */
|
|
109
117
|
droppedTools: number;
|
|
110
118
|
setSession: (session: SessionInfo | null) => void;
|
|
111
|
-
updateUsage: (usage: Usage) => void;
|
|
119
|
+
updateUsage: (usage: Usage, providerId?: string) => void;
|
|
112
120
|
addCost: (cost: number) => void;
|
|
113
121
|
startSession: (session: SessionInfo) => void;
|
|
114
122
|
endSession: () => void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { QueuedItem, QueueMode } from './chat-store';
|
|
2
2
|
import type { MailboxMessage } from './mailbox-store';
|
|
3
|
+
import type { ImageAttachment } from '../components/ChatInput/image-attachments.js';
|
|
3
4
|
export type Activity = 'chat' | 'agents' | 'files' | 'changes' | 'mailbox' | 'skills' | 'design' | 'worktrees' | 'officemap';
|
|
4
5
|
/** Map any persisted (possibly legacy) activity value onto the current set. */
|
|
5
6
|
export declare function coerceActivity(value: unknown): Activity;
|
|
@@ -85,6 +86,11 @@ interface UIState {
|
|
|
85
86
|
inspectorTab: InspectorTab;
|
|
86
87
|
/** Agent ID to focus when opening the inspector on the agents tab. Cleared on read. */
|
|
87
88
|
inspectorFocusedAgentId: string | null;
|
|
89
|
+
/** Subagent whose full transcript currently replaces the main chat pane
|
|
90
|
+
* (agent tabs above the transcript). Null = leader chat. Transient — never
|
|
91
|
+
* persisted; ChatView auto-clears it when the focused agent leaves the
|
|
92
|
+
* fleet roster (removed, cleared, session stop). */
|
|
93
|
+
subagentChatFocusId: string | null;
|
|
88
94
|
/** Process Monitor overlay — triggered by /kill slash command. */
|
|
89
95
|
processMonitorOpen: boolean;
|
|
90
96
|
/** Queue Panel overlay — triggered by /queue slash command. */
|
|
@@ -106,7 +112,12 @@ interface UIState {
|
|
|
106
112
|
* is intentionally NOT persisted to localStorage, so it does not reappear on a
|
|
107
113
|
* fresh page load or when starting a new session. */
|
|
108
114
|
draftInput: string;
|
|
115
|
+
/** Pending image attachments mirroring the input draft (see draftInput):
|
|
116
|
+
* survives view navigation into a subagent transcript, never persisted,
|
|
117
|
+
* cleared on submit via clearPendingImages → setDraftImages([]). */
|
|
118
|
+
draftImages: ImageAttachment[];
|
|
109
119
|
setDraftInput: (text: string) => void;
|
|
120
|
+
setDraftImages: (images: ImageAttachment[]) => void;
|
|
110
121
|
setProcessMonitorOpen: (open: boolean) => void;
|
|
111
122
|
setQueuePanelOpen: (open: boolean) => void;
|
|
112
123
|
setCronJobsOpen: (open: boolean) => void;
|
|
@@ -242,6 +253,7 @@ interface UIState {
|
|
|
242
253
|
setInspectorOpen: (open: boolean) => void;
|
|
243
254
|
setInspectorTab: (tab: InspectorTab) => void;
|
|
244
255
|
setInspectorFocusedAgentId: (id: string | null) => void;
|
|
256
|
+
setSubagentChatFocus: (id: string | null) => void;
|
|
245
257
|
toggleInspector: () => void;
|
|
246
258
|
}
|
|
247
259
|
export declare const useUIStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<UIState>, "persist" | "setState"> & {
|
package/dist/types/system.d.ts
CHANGED
|
@@ -45,7 +45,19 @@ export interface WSStatsGet {
|
|
|
45
45
|
readTokens: number;
|
|
46
46
|
writeTokens: number;
|
|
47
47
|
hitRatio: number;
|
|
48
|
+
providers?: Array<{
|
|
49
|
+
provider: string;
|
|
50
|
+
input: number;
|
|
51
|
+
cacheRead: number;
|
|
52
|
+
cacheWrite: number;
|
|
53
|
+
hitRatio: number;
|
|
54
|
+
}>;
|
|
48
55
|
} | null;
|
|
56
|
+
currentRequest?: {
|
|
57
|
+
input: number;
|
|
58
|
+
cacheRead: number;
|
|
59
|
+
cacheWrite: number;
|
|
60
|
+
} | undefined;
|
|
49
61
|
cost: number;
|
|
50
62
|
messages: number;
|
|
51
63
|
readFiles: number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrongstack/webui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.310.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Browser-based WebUI for WrongStack — React + Vite frontend. The WebSocket backend lives in the separate @wrongstack/webui-server package (extracted in PR #018b to remove the CLI -> @wrongstack/webui/server cross-package edge).",
|
|
6
6
|
"keywords": [
|
|
@@ -62,26 +62,27 @@
|
|
|
62
62
|
"@xyflow/react": "^12.11.3",
|
|
63
63
|
"class-variance-authority": "^0.7.1",
|
|
64
64
|
"clsx": "^2.1.1",
|
|
65
|
-
"i18next": "^26.
|
|
65
|
+
"i18next": "^26.4.0",
|
|
66
66
|
"i18next-resources-to-backend": "^1.2.3",
|
|
67
67
|
"lucide-react": "^1.33.0",
|
|
68
68
|
"monaco-editor": "^0.56.0",
|
|
69
69
|
"qrcode": "^1.5.4",
|
|
70
70
|
"react": "^19.2.8",
|
|
71
71
|
"react-dom": "^19.2.8",
|
|
72
|
-
"react-i18next": "^17.0.
|
|
72
|
+
"react-i18next": "^17.0.12",
|
|
73
73
|
"react-markdown": "^10.1.0",
|
|
74
74
|
"rehype-highlight": "^7.0.2",
|
|
75
75
|
"remark-gfm": "^4.0.1",
|
|
76
76
|
"tailwind-merge": "^3.6.0",
|
|
77
|
-
"virtua": "^0.50.
|
|
77
|
+
"virtua": "^0.50.4",
|
|
78
78
|
"zustand": "^5.0.15",
|
|
79
|
-
"@wrongstack/
|
|
80
|
-
"@wrongstack/
|
|
81
|
-
"@wrongstack/
|
|
82
|
-
"@wrongstack/
|
|
83
|
-
"@wrongstack/
|
|
84
|
-
"@wrongstack/
|
|
79
|
+
"@wrongstack/core": "0.310.0",
|
|
80
|
+
"@wrongstack/kanban": "0.310.0",
|
|
81
|
+
"@wrongstack/tools": "0.310.0",
|
|
82
|
+
"@wrongstack/providers": "0.310.0",
|
|
83
|
+
"@wrongstack/plugins": "0.310.0",
|
|
84
|
+
"@wrongstack/webui-protocol": "0.310.0",
|
|
85
|
+
"@wrongstack/webui-server": "0.310.0"
|
|
85
86
|
},
|
|
86
87
|
"optionalDependencies": {
|
|
87
88
|
"node-pty": "1.2.0-beta.14"
|
|
@@ -103,7 +104,7 @@
|
|
|
103
104
|
"typescript": "^7.0.2",
|
|
104
105
|
"vite": "^8.2.2",
|
|
105
106
|
"vitest": "^4.1.11",
|
|
106
|
-
"@wrongstack/sdd": "0.
|
|
107
|
+
"@wrongstack/sdd": "0.310.0"
|
|
107
108
|
},
|
|
108
109
|
"scripts": {
|
|
109
110
|
"dev": "vite",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{za as e}from"./vendor-DLS502Zs.js";var t=e(e=>({generation:0,lastUpdatedAt:null,notifyIndexUpdated(t=Date.now()){e(e=>({generation:e.generation+1,lastUpdatedAt:t}))}}));export{t};
|