@wrongstack/webui 1.0.24 → 1.0.26
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-udJ14GYq.js +12 -0
- package/dist/assets/{AnalyticsDashboard-DgqJODVI.js → AnalyticsDashboard-DwF-0cUA.js} +1 -1
- package/dist/assets/AudienceMemoryPanel-DpBGeZv_.js +3 -0
- package/dist/assets/ChangesView-BfM0T_aS.js +3 -0
- package/dist/assets/ChimeraReviewsView-Q_5C4DU1.js +1 -0
- package/dist/assets/ChronicleDashboard-D6LnZzhy.js +1 -0
- package/dist/assets/CodeEditor-DonrWH9u.js +2 -0
- package/dist/assets/CodeMap-Dxtc378S.js +1 -0
- package/dist/assets/{CronJobsPanel-GTK038V9.js → CronJobsPanel-Cn2PQO_p.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-DX4OEuyp.js → DeadCodeScanPanel-Mc5py-kJ.js} +1 -1
- package/dist/assets/{DebugDashboard-CKp3sa_k.js → DebugDashboard-D0LRcT4J.js} +1 -1
- package/dist/assets/{DesignGalleryView-DVUTYaP6.js → DesignGalleryView-DAD-wRUc.js} +1 -1
- package/dist/assets/GoalView-CqeSw0tK.js +1 -0
- package/dist/assets/KanbanView-V-bkFftp.js +3 -0
- package/dist/assets/{MailboxDetailView-CylnzTVc.js → MailboxDetailView-CTEjap3r.js} +1 -1
- package/dist/assets/{MemoryDrawer-DJ0Y98Z8.js → MemoryDrawer-RCduY0FV.js} +1 -1
- package/dist/assets/MemoryManager-B-p6-Bic.js +1 -0
- package/dist/assets/{ProcessMonitor-BnQ3vJtn.js → ProcessMonitor-B9tpPo4r.js} +1 -1
- package/dist/assets/PromptJournalView-DVNqlac9.js +1 -0
- package/dist/assets/ProviderTestView-mmfpnAbZ.js +1 -0
- package/dist/assets/QueuePanel-BB9qozjm.js +1 -0
- package/dist/assets/{RefreshDebugView-s6MyGpPq.js → RefreshDebugView-CCCWzq29.js} +1 -1
- package/dist/assets/{RepositoryHistoryView-CWi_Zo3F.js → RepositoryHistoryView-RQVRkkUU.js} +2 -2
- package/dist/assets/RequirementIntakeView-D_JRhgzW.js +1 -0
- package/dist/assets/{SageTabs-D6eTg3ix.js → SageTabs--k2hQTvl.js} +2 -2
- package/dist/assets/{SddFlowGraph-B-ptkFX6.js → SddFlowGraph-DKrrRXKy.js} +1 -1
- package/dist/assets/SddHub-B5XO56oY.js +2 -0
- package/dist/assets/{SessionInspectView-NSpj5WEN.js → SessionInspectView-j3VJwXNi.js} +1 -1
- package/dist/assets/SessionList-CCVHBseu.js +1 -0
- package/dist/assets/{SessionsDashboard-mF4PzdKY.js → SessionsDashboard-DsM7sXQw.js} +1 -1
- package/dist/assets/SetupScreen-DeuR8Y8S.js +1 -0
- package/dist/assets/{SkillDetailView-B9BFyB1i.js → SkillDetailView-BeZyGIpW.js} +3 -3
- package/dist/assets/TechStackView-CpSMRQE0.js +2 -0
- package/dist/assets/TerminalPanel-BVJ5w-5R.js +1 -0
- package/dist/assets/activity-BS2aW_NN.js +10 -0
- package/dist/assets/activity-CR2KFruY.js +10 -0
- package/dist/assets/activity-Cd0qM2Hx.js +10 -0
- package/dist/assets/activity-DyXRoY2s.js +10 -0
- package/dist/assets/activity-bBAOetvE.js +10 -0
- package/dist/assets/activity-fI3Jy_jD.js +10 -0
- package/dist/assets/activity-t6fUmVjo.js +10 -0
- package/dist/assets/{button-BbeB5Qm8.js → button-UuKTnoM-.js} +1 -1
- package/dist/assets/chat-9GLubejR.js +1 -0
- package/dist/assets/chat-B50ssTLh.js +1 -0
- package/dist/assets/chat-CDioiM1L.js +1 -0
- package/dist/assets/chat-Cll_3gXD.js +1 -0
- package/dist/assets/chat-Cqhc6jQa.js +1 -0
- package/dist/assets/chat-DN1MggWt.js +1 -0
- package/dist/assets/chat-fyvZyUZM.js +1 -0
- package/dist/assets/chat-store-uzGtJfDz.js +1 -0
- package/dist/assets/{codemap-activity-store-Ha7XbGgq.js → codemap-activity-store-WjfEZe4_.js} +1 -1
- package/dist/assets/config-store-P5_updTQ.js +21 -0
- package/dist/assets/{dialog-b-Ai37sa.js → dialog-BDUaV5gY.js} +1 -1
- package/dist/assets/{empty-state-pfuS5znr.js → empty-state-BzoEa04Q.js} +1 -1
- package/dist/assets/{fonts-DRGbd-AM.js → fonts-C303yVU_.js} +2 -2
- package/dist/assets/i18n-t7rIS4DB.js +3 -0
- package/dist/assets/index-B4ELbNoz.js +181 -0
- package/dist/assets/index-qdrakcnP.css +1 -0
- package/dist/assets/{input-BA6D2L3K.js → input-DMnC2O7-.js} +1 -1
- package/dist/assets/{mailbox-store-ZQO_Rv6E.js → mailbox-store-DyOOYbni.js} +1 -1
- package/dist/assets/{roster-ws-Cv_PHlEV.js → roster-ws-szSqUkqP.js} +1 -1
- package/dist/assets/settings-BMHZcBqe.js +1 -0
- package/dist/assets/settings-BQ5J8WXE.js +1 -0
- package/dist/assets/settings-BfNJfO4z.js +1 -0
- package/dist/assets/settings-ClDQ01ie.js +1 -0
- package/dist/assets/settings-DD31lC4f.js +1 -0
- package/dist/assets/settings-Da3EIcna.js +1 -0
- package/dist/assets/settings-Dl_QM2QZ.js +1 -0
- package/dist/assets/{shared-BFJvAYzX.js → shared-CLNEiW00.js} +1 -1
- package/dist/assets/stores-Cx52UOxM.js +7 -0
- package/dist/assets/toasts-3tM1krOo.js +1 -0
- package/dist/assets/toasts-BrHW33qA.js +1 -0
- package/dist/assets/toasts-Buww129h.js +1 -0
- package/dist/assets/toasts-CSN9Fy47.js +1 -0
- package/dist/assets/toasts-DOoYxbHd.js +1 -0
- package/dist/assets/toasts-DkDnbhs_.js +1 -0
- package/dist/assets/toasts-Jo4VH13n.js +1 -0
- package/dist/assets/ui-store-DI0iusYZ.js +1 -0
- package/dist/assets/{utils-CKsqCaP8.js → utils-B21Devim.js} +1 -1
- package/dist/assets/{vector-memory-panel-YWv6xcza.js → vector-memory-panel-DnX-ODHC.js} +1 -1
- package/dist/assets/{vendor-V3ydTHqN.js → vendor-BfBvt432.js} +28 -28
- package/dist/assets/{view-navigation-CpIPxhZp.js → view-navigation-Cvrp_uJm.js} +1 -1
- package/dist/components/BrowserLivePane.d.ts +2 -0
- package/dist/components/ChangesView.d.ts +3 -1
- package/dist/components/ChatInput/chat-input-bars.d.ts +1 -1
- package/dist/components/ChatInput/image-attachments.d.ts +19 -2
- package/dist/components/ChatInput/slash-routing.d.ts +18 -0
- package/dist/components/ChatInput/use-paste-drop.d.ts +3 -0
- package/dist/components/ChatInput/use-prompt-queue-view.d.ts +13 -0
- package/dist/components/ChatView/BackgroundShellStrip.d.ts +16 -0
- package/dist/components/ChatView/TerminalStrip.d.ts +8 -0
- package/dist/components/CodeMap.d.ts +0 -12
- package/dist/components/GoalPanel.d.ts +2 -1
- package/dist/components/ImageDiffView.d.ts +12 -0
- package/dist/components/KanbanTaskExecution.d.ts +64 -0
- package/dist/components/KanbanTaskInspector.d.ts +1 -1
- package/dist/components/MessageBubble/AttachmentGallery.d.ts +1 -1
- package/dist/components/MessageBubble/GeneratedImagePreview.d.ts +10 -0
- package/dist/components/SessionTabBar/summaries.d.ts +4 -0
- package/dist/components/SettingsPanel/LimitsSection.d.ts +7 -0
- package/dist/components/SettingsPanel/MCPSection.d.ts +1 -37
- package/dist/components/SettingsPanel/MCPServerCards.d.ts +67 -0
- package/dist/components/SettingsPanel/MCPServerDialog.d.ts +11 -0
- package/dist/components/SettingsPanel/PreferenceControls.d.ts +8 -0
- package/dist/components/SettingsPanel/ProviderSavedProfiles.d.ts +50 -0
- package/dist/components/SettingsPanel/ProviderSection.d.ts +2 -79
- package/dist/components/SettingsPanel/SettingsNavigation.d.ts +12 -0
- package/dist/components/SettingsPanel/brain-section-options.d.ts +1 -2
- package/dist/components/SettingsPanel/provider-section-types.d.ts +79 -0
- package/dist/components/SidePanel/SessionList.d.ts +1 -34
- package/dist/components/SidePanel/session-history.d.ts +61 -0
- package/dist/components/SystemPromptPresetEditor.d.ts +9 -0
- package/dist/components/TerminalPanel.d.ts +8 -1
- package/dist/components/WorkspaceDock.d.ts +2 -2
- package/dist/components/review/ReviewDiff.d.ts +21 -0
- package/dist/components/review/ReviewTray.d.ts +15 -0
- package/dist/components/review/review-diff-model.d.ts +31 -0
- package/dist/components/use-code-map-flow.d.ts +25 -0
- package/dist/components/use-office-map-canvas.d.ts +1 -1
- package/dist/components/use-office-map-topology.d.ts +31 -0
- package/dist/hooks/use-live-browser.d.ts +7 -0
- package/dist/hooks/useWebSocket.d.ts +1 -2
- package/dist/hooks/ws-handlers/goal-handlers.d.ts +2 -0
- package/dist/hooks/ws-handlers/prompt-queue-handlers.d.ts +18 -0
- package/dist/index.css +3013 -3013
- package/dist/index.html +18 -18
- package/dist/index.js +97375 -92924
- package/dist/lib/compact-file-tree.d.ts +30 -0
- package/dist/lib/project-image.d.ts +26 -0
- package/dist/lib/provider-warm.d.ts +3 -0
- package/dist/lib/ws-client-session-methods.d.ts +2 -0
- package/dist/lib/ws-client.d.ts +3 -0
- package/dist/stores/chat-lane-data.d.ts +153 -0
- package/dist/stores/chat-lanes.d.ts +3 -174
- package/dist/stores/chat-queue-helpers.d.ts +9 -0
- package/dist/stores/chat-store-types.d.ts +3 -0
- package/dist/stores/chat-store.d.ts +1 -1
- package/dist/stores/context-editor-store.d.ts +1 -1
- package/dist/stores/fleet-transcript.d.ts +14 -0
- package/dist/stores/git-changes-store.d.ts +3 -0
- package/dist/stores/goal-run-store.d.ts +8 -0
- package/dist/stores/goal-state-store.d.ts +3 -0
- package/dist/stores/goal-store.d.ts +9 -11
- package/dist/stores/local-prefs-defaults.d.ts +340 -0
- package/dist/stores/local-prefs.d.ts +2 -318
- package/dist/stores/notification-store.d.ts +9 -0
- package/dist/stores/review-store.d.ts +54 -0
- package/dist/stores/session-activity.d.ts +33 -0
- package/dist/stores/session-tab-store.d.ts +1 -46
- package/dist/stores/terminal-strip-store.d.ts +26 -0
- package/dist/stores/ui-store-chrome.d.ts +1 -1
- package/dist/stores/ui-store-persist.d.ts +2 -2
- package/dist/stores/ui-store-types.d.ts +3 -3
- package/dist/stores/ui-store.d.ts +5 -5
- package/dist/types/brain.d.ts +4 -2
- package/dist/types/client-message.d.ts +119 -11
- package/dist/types/prompt-queue.d.ts +55 -0
- package/dist/types/protocol-core.d.ts +4 -216
- package/dist/types/runtime.d.ts +3 -38
- package/dist/types/server-message-files.d.ts +22 -0
- package/dist/types/server-message-mcp.d.ts +30 -0
- package/dist/types/server-message-system.d.ts +110 -0
- package/dist/types/server-message.d.ts +4 -3
- package/dist/types/system.d.ts +2 -24
- package/package.json +10 -9
- package/dist/assets/AgentRosterView-Dq8Xa0WK.js +0 -12
- package/dist/assets/AudienceMemoryPanel-BVGdDVTT.js +0 -3
- package/dist/assets/ChangesView-BVyLENBb.js +0 -1
- package/dist/assets/ChimeraReviewsView-CTuxzgTC.js +0 -1
- package/dist/assets/ChronicleDashboard-BRP7D6RZ.js +0 -1
- package/dist/assets/CodeEditor-k3z3M0NG.js +0 -2
- package/dist/assets/CodeMap-CvHNQZEF.js +0 -1
- package/dist/assets/GoalView-D8G8e8YG.js +0 -1
- package/dist/assets/KanbanView-BMXGDqGo.js +0 -3
- package/dist/assets/MemoryManager-DfcsYPUB.js +0 -1
- package/dist/assets/PromptJournalView-D7k8Yh5a.js +0 -1
- package/dist/assets/ProviderTestView-DSd6kkWT.js +0 -1
- package/dist/assets/QueuePanel-79KiyZWD.js +0 -1
- package/dist/assets/RequirementIntakeView-D_Ea20fx.js +0 -1
- package/dist/assets/SddHub-CSVfLGpr.js +0 -2
- package/dist/assets/SessionList-BYRCs1AK.js +0 -1
- package/dist/assets/SetupScreen-BUZeJSZi.js +0 -1
- package/dist/assets/TechStackView-CXJilX0M.js +0 -2
- package/dist/assets/TerminalPanel-CAXevSAa.js +0 -1
- package/dist/assets/activity-B3wutYIE.js +0 -10
- package/dist/assets/activity-Be03cc7g.js +0 -10
- package/dist/assets/activity-CiYZ3y4e.js +0 -10
- package/dist/assets/activity-CmIA2MhR.js +0 -10
- package/dist/assets/activity-Cp5GhldB.js +0 -10
- package/dist/assets/activity-DFCf7l5d.js +0 -10
- package/dist/assets/activity-EbNUY7Ci.js +0 -10
- package/dist/assets/chat-6dE2AJNN.js +0 -1
- package/dist/assets/chat-B3AJmhGD.js +0 -1
- package/dist/assets/chat-BHsbpaVt.js +0 -1
- package/dist/assets/chat-BITJe8-v.js +0 -1
- package/dist/assets/chat-U-Jjb8_k.js +0 -1
- package/dist/assets/chat-_Xp5fDnj.js +0 -1
- package/dist/assets/chat-mSbSzPl5.js +0 -1
- package/dist/assets/chat-store-C7InoWAO.js +0 -1
- package/dist/assets/config-store-BbL0WxLE.js +0 -21
- package/dist/assets/i18n-Dv97urcO.js +0 -3
- package/dist/assets/index-CON0Nbm4.css +0 -1
- package/dist/assets/index-DX6tHUzs.js +0 -177
- package/dist/assets/settings-BCvuzOJ6.js +0 -1
- package/dist/assets/settings-DMPKd-4K.js +0 -1
- package/dist/assets/settings-DxQ2452f.js +0 -1
- package/dist/assets/settings-Dz3StaVx.js +0 -1
- package/dist/assets/settings-EBW1mlXc.js +0 -1
- package/dist/assets/settings-Er2LHp9d.js +0 -1
- package/dist/assets/settings-EzznCDaX.js +0 -1
- package/dist/assets/stores-DXn5tdr7.js +0 -7
- package/dist/assets/toasts-BsmyGP95.js +0 -1
- package/dist/assets/toasts-CgXHu8ZB.js +0 -1
- package/dist/assets/toasts-DZ6HdKgG.js +0 -1
- package/dist/assets/toasts-DizCJjAR.js +0 -1
- package/dist/assets/toasts-NC2MT4uN.js +0 -1
- package/dist/assets/toasts-bPl097de.js +0 -1
- package/dist/assets/toasts-tCVo15mP.js +0 -1
- package/dist/assets/ui-store-DxDwFHNK.js +0 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export type NotificationVariant = 'success' | 'error' | 'warn' | 'info';
|
|
2
|
+
export type NotificationFilter = 'important' | 'all' | NotificationVariant;
|
|
2
3
|
export type ToastVariant = NotificationVariant;
|
|
4
|
+
export declare function matchesNotificationFilter(notification: Pick<AppNotification, 'variant'>, filter: NotificationFilter): boolean;
|
|
3
5
|
export interface NotificationAction {
|
|
4
6
|
label: string;
|
|
5
7
|
onClick: () => void;
|
|
@@ -28,6 +30,9 @@ export interface NotificationStoreState {
|
|
|
28
30
|
notifications: AppNotification[];
|
|
29
31
|
/** Ephemeral toasts currently rendered on screen */
|
|
30
32
|
toasts: ToastEntry[];
|
|
33
|
+
/** Shared by desktop and mobile notification menus. */
|
|
34
|
+
filter: NotificationFilter;
|
|
35
|
+
setFilter: (filter: NotificationFilter) => void;
|
|
31
36
|
/** Push a new toast + notification */
|
|
32
37
|
push: (entry: {
|
|
33
38
|
message: string;
|
|
@@ -51,6 +56,7 @@ export declare const useNotificationStore: import("zustand").UseBoundStore<Omit<
|
|
|
51
56
|
setState(state: NotificationStoreState | ((state: NotificationStoreState) => NotificationStoreState), replace: true): unknown;
|
|
52
57
|
persist: {
|
|
53
58
|
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<NotificationStoreState, {
|
|
59
|
+
filter: NotificationFilter;
|
|
54
60
|
notifications: {
|
|
55
61
|
id: string;
|
|
56
62
|
message: string;
|
|
@@ -70,6 +76,7 @@ export declare const useNotificationStore: import("zustand").UseBoundStore<Omit<
|
|
|
70
76
|
onHydrate: (fn: (state: NotificationStoreState) => void) => () => void;
|
|
71
77
|
onFinishHydration: (fn: (state: NotificationStoreState) => void) => () => void;
|
|
72
78
|
getOptions: () => Partial<import("zustand/middleware").PersistOptions<NotificationStoreState, {
|
|
79
|
+
filter: NotificationFilter;
|
|
73
80
|
notifications: {
|
|
74
81
|
id: string;
|
|
75
82
|
message: string;
|
|
@@ -104,6 +111,7 @@ export declare const useToastStore: import("zustand").UseBoundStore<Omit<import(
|
|
|
104
111
|
setState(state: NotificationStoreState | ((state: NotificationStoreState) => NotificationStoreState), replace: true): unknown;
|
|
105
112
|
persist: {
|
|
106
113
|
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<NotificationStoreState, {
|
|
114
|
+
filter: NotificationFilter;
|
|
107
115
|
notifications: {
|
|
108
116
|
id: string;
|
|
109
117
|
message: string;
|
|
@@ -123,6 +131,7 @@ export declare const useToastStore: import("zustand").UseBoundStore<Omit<import(
|
|
|
123
131
|
onHydrate: (fn: (state: NotificationStoreState) => void) => () => void;
|
|
124
132
|
onFinishHydration: (fn: (state: NotificationStoreState) => void) => () => void;
|
|
125
133
|
getOptions: () => Partial<import("zustand/middleware").PersistOptions<NotificationStoreState, {
|
|
134
|
+
filter: NotificationFilter;
|
|
126
135
|
notifications: {
|
|
127
136
|
id: string;
|
|
128
137
|
message: string;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A line comment left on the working-tree diff in the Changes view. Comments
|
|
3
|
+
* are project-scoped (`scope` = project root): the diff is the repository's,
|
|
4
|
+
* not a chat session's, so switching tabs keeps them and switching projects
|
|
5
|
+
* hides them.
|
|
6
|
+
*/
|
|
7
|
+
export interface ReviewComment {
|
|
8
|
+
id: string;
|
|
9
|
+
scope: string;
|
|
10
|
+
/** Repo-relative path, as the Changes panel lists it. */
|
|
11
|
+
path: string;
|
|
12
|
+
/** `new` for added/context lines, `old` for removed lines. */
|
|
13
|
+
side: 'old' | 'new';
|
|
14
|
+
/** 1-based line number on `side`. */
|
|
15
|
+
line: number;
|
|
16
|
+
/** The line's text when the comment was written — quoted in the review. */
|
|
17
|
+
lineText: string;
|
|
18
|
+
body: string;
|
|
19
|
+
createdAt: number;
|
|
20
|
+
}
|
|
21
|
+
interface ReviewState {
|
|
22
|
+
comments: ReviewComment[];
|
|
23
|
+
add: (comment: Omit<ReviewComment, 'id' | 'createdAt'>) => ReviewComment | null;
|
|
24
|
+
update: (id: string, body: string) => void;
|
|
25
|
+
remove: (id: string) => void;
|
|
26
|
+
/** Drop every comment in `scope` (after the review went to the composer). */
|
|
27
|
+
clearScope: (scope: string) => void;
|
|
28
|
+
}
|
|
29
|
+
export declare const useReviewStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<ReviewState>, "persist" | "setState"> & {
|
|
30
|
+
setState(partial: Partial<ReviewState> | ReviewState | ((state: ReviewState) => Partial<ReviewState> | ReviewState), replace?: false | undefined): unknown;
|
|
31
|
+
setState(state: ReviewState | ((state: ReviewState) => ReviewState), replace: true): unknown;
|
|
32
|
+
persist: {
|
|
33
|
+
setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ReviewState, {
|
|
34
|
+
comments: ReviewComment[];
|
|
35
|
+
}, unknown>>) => void;
|
|
36
|
+
clearStorage: () => void;
|
|
37
|
+
rehydrate: () => Promise<void> | void;
|
|
38
|
+
hasHydrated: () => boolean;
|
|
39
|
+
onHydrate: (fn: (state: ReviewState) => void) => () => void;
|
|
40
|
+
onFinishHydration: (fn: (state: ReviewState) => void) => () => void;
|
|
41
|
+
getOptions: () => Partial<import("zustand/middleware").PersistOptions<ReviewState, {
|
|
42
|
+
comments: ReviewComment[];
|
|
43
|
+
}, unknown>>;
|
|
44
|
+
};
|
|
45
|
+
}>;
|
|
46
|
+
/** Comments in `scope`, ordered by file then line — the order the review reads in. */
|
|
47
|
+
export declare function scopedComments(comments: readonly ReviewComment[], scope: string): ReviewComment[];
|
|
48
|
+
/**
|
|
49
|
+
* The review as one message the agent can act on: each comment names its file
|
|
50
|
+
* and line, quotes the line it was written against, then the comment.
|
|
51
|
+
*/
|
|
52
|
+
export declare function formatReviewMessage(comments: readonly ReviewComment[]): string;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=review-store.d.ts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** A tab is "busy" when its own run is live or it owns a running subagent. */
|
|
2
|
+
export declare function isTabBusy(sessionId: string): boolean;
|
|
3
|
+
/** Everything a busy-tab warning needs to say about one session, gathered in
|
|
4
|
+
* one place. The close dialog and the switch-away toast render the same
|
|
5
|
+
* `lines`, so the two warnings cannot drift apart or go vague. */
|
|
6
|
+
export interface SessionActivityReport {
|
|
7
|
+
sessionId: string;
|
|
8
|
+
isBusy: boolean;
|
|
9
|
+
/** True when the tab holds nothing at all — no chat history, no agents
|
|
10
|
+
* (running or finished), no queued messages, no live run. Such a tab has
|
|
11
|
+
* nothing to lose and may close without asking. */
|
|
12
|
+
isEmpty: boolean;
|
|
13
|
+
leaderRunning: boolean;
|
|
14
|
+
runningAgents: Array<{
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
brief: string;
|
|
18
|
+
}>;
|
|
19
|
+
finishedAgents: number;
|
|
20
|
+
queuedMessages: number;
|
|
21
|
+
/** Pre-localized, factual inventory lines (no framing). */
|
|
22
|
+
lines: string[];
|
|
23
|
+
}
|
|
24
|
+
/** Complete inventory of what a session has in flight: its own run, every
|
|
25
|
+
* running subagent with a task preview, finished agents on record, queued
|
|
26
|
+
* messages. Reads the lane registries directly, like `isTabBusy`. */
|
|
27
|
+
export declare function describeSessionActivity(sessionId: string): SessionActivityReport;
|
|
28
|
+
/** Thorough, non-blocking notice fired when the foreground moves OFF a busy
|
|
29
|
+
* tab: the tab keeps running in its slot, and the user sees exactly what
|
|
30
|
+
* stays behind. Switching back is always one click, so this must inform,
|
|
31
|
+
* not block. */
|
|
32
|
+
export declare function notifyBusyTabLeftBehind(sessionId: string): void;
|
|
33
|
+
//# sourceMappingURL=session-activity.d.ts.map
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* session-tab-store.ts — The four slots, and the only place a tab is opened,
|
|
3
|
-
* switched or closed.
|
|
4
|
-
*
|
|
5
|
-
* The model, stated plainly:
|
|
6
|
-
*
|
|
7
|
-
* - There are exactly FOUR slots. Never more, never a fifth "just for now".
|
|
8
|
-
* - A slot holds AT MOST one session, and a session sits in AT MOST one slot.
|
|
9
|
-
* Both directions are enforced here; nothing else is allowed to bind them.
|
|
10
|
-
* - Switching slots moves a pointer. It does not park, copy, restore or clear
|
|
11
|
-
* anything, because every slot's state already lives in its own lane
|
|
12
|
-
* (`chat-lanes.ts`, `session-lanes.ts`) whether or not it is on screen.
|
|
13
|
-
* - Closing a slot disposes that lane. A closed tab keeps nothing alive.
|
|
14
|
-
*
|
|
15
|
-
* Think of the four slots as four layouts side by side. What makes them
|
|
16
|
-
* side-by-side rather than one surface with four costumes is that no slot can
|
|
17
|
-
* name another slot's state: the lane registries are keyed by session id and
|
|
18
|
-
* every writer must name the session it is writing to.
|
|
19
|
-
*/
|
|
1
|
+
export { describeSessionActivity, isTabBusy } from './session-activity.js';
|
|
20
2
|
import { chatLane } from './chat-lanes';
|
|
21
3
|
export declare const MAX_OPEN_TABS = 4;
|
|
22
4
|
export declare const TAB_STORAGE_KEY = "wrongstack.open_session_tabs";
|
|
@@ -78,33 +60,6 @@ interface SessionTabState {
|
|
|
78
60
|
markSeen: (sessionId: string) => void;
|
|
79
61
|
setAttention: (sessionId: string, needsAttention: boolean) => void;
|
|
80
62
|
}
|
|
81
|
-
/** A tab is "busy" when its own run is live or it owns a running subagent. */
|
|
82
|
-
export declare function isTabBusy(sessionId: string): boolean;
|
|
83
|
-
/** Everything a busy-tab warning needs to say about one session, gathered in
|
|
84
|
-
* one place. The close dialog and the switch-away toast render the same
|
|
85
|
-
* `lines`, so the two warnings cannot drift apart or go vague. */
|
|
86
|
-
interface SessionActivityReport {
|
|
87
|
-
sessionId: string;
|
|
88
|
-
isBusy: boolean;
|
|
89
|
-
/** True when the tab holds nothing at all — no chat history, no agents
|
|
90
|
-
* (running or finished), no queued messages, no live run. Such a tab has
|
|
91
|
-
* nothing to lose and may close without asking. */
|
|
92
|
-
isEmpty: boolean;
|
|
93
|
-
leaderRunning: boolean;
|
|
94
|
-
runningAgents: Array<{
|
|
95
|
-
id: string;
|
|
96
|
-
name: string;
|
|
97
|
-
brief: string;
|
|
98
|
-
}>;
|
|
99
|
-
finishedAgents: number;
|
|
100
|
-
queuedMessages: number;
|
|
101
|
-
/** Pre-localized, factual inventory lines (no framing). */
|
|
102
|
-
lines: string[];
|
|
103
|
-
}
|
|
104
|
-
/** Complete inventory of what a session has in flight: its own run, every
|
|
105
|
-
* running subagent with a task preview, finished agents on record, queued
|
|
106
|
-
* messages. Reads the lane registries directly, like `isTabBusy`. */
|
|
107
|
-
export declare function describeSessionActivity(sessionId: string): SessionActivityReport;
|
|
108
63
|
/**
|
|
109
64
|
* Everything one slot owns, freed in one place.
|
|
110
65
|
*
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Lines kept for the strip's peek. */
|
|
2
|
+
export declare const TERMINAL_PEEK_LINES = 12;
|
|
3
|
+
export interface TerminalSummary {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
status: 'starting' | 'running' | 'exited';
|
|
7
|
+
exitCode?: number | undefined;
|
|
8
|
+
lastOutputAt: number;
|
|
9
|
+
tail: string[];
|
|
10
|
+
}
|
|
11
|
+
interface TerminalStripState {
|
|
12
|
+
terminals: TerminalSummary[];
|
|
13
|
+
/** A terminal the strip asked the dock to bring to the front. */
|
|
14
|
+
focusRequest: {
|
|
15
|
+
id: string;
|
|
16
|
+
nonce: number;
|
|
17
|
+
} | null;
|
|
18
|
+
syncTabs(tabs: ReadonlyArray<Pick<TerminalSummary, 'id' | 'name' | 'status' | 'exitCode'>>): void;
|
|
19
|
+
appendOutput(id: string, lines: string[], at: number): void;
|
|
20
|
+
requestFocus(id: string): void;
|
|
21
|
+
clear(): void;
|
|
22
|
+
}
|
|
23
|
+
export declare const useTerminalStripStore: import("zustand").UseBoundStore<import("zustand").StoreApi<TerminalStripState>>;
|
|
24
|
+
export declare function noteTerminalOutput(id: string, data: string): void;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=terminal-strip-store.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SessionChromeState, UIState } from './ui-store-types.js';
|
|
2
2
|
export declare function isDesktopShellStorageContext(): boolean;
|
|
3
3
|
export declare function homeNavigationStatePatch(options?: {
|
|
4
4
|
sidebarOpen?: boolean | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PersistOptions } from
|
|
2
|
-
import type { UIState } from
|
|
1
|
+
import type { PersistOptions } from 'zustand/middleware';
|
|
2
|
+
import type { UIState } from './ui-store-types.js';
|
|
3
3
|
export declare const uiPersistOptions: PersistOptions<UIState, Partial<UIState>>;
|
|
4
4
|
//# sourceMappingURL=ui-store-persist.d.ts.map
|
|
@@ -26,7 +26,7 @@ export type View = (typeof VIEWS)[number];
|
|
|
26
26
|
* when reading from localStorage so a stale value (e.g. 'context', a view
|
|
27
27
|
* removed in v3) lands on 'chat' rather than crashing the router. */
|
|
28
28
|
export declare function coerceView(value: unknown): View;
|
|
29
|
-
export declare const DOCK_SECTIONS: readonly ['goal', 'goal-state', 'fleet', 'work', 'worktrees', 'collab'];
|
|
29
|
+
export declare const DOCK_SECTIONS: readonly ['goal', 'goal-state', 'fleet', 'work', 'worktrees', 'collab', 'browser'];
|
|
30
30
|
export declare function coerceDockSection(value: unknown): DockSection | null;
|
|
31
31
|
export declare const SETTINGS_TABS: readonly ['general', 'fonts', 'provider', 'jev', 'connection', 'agent', 'execution', 'fallbacks', 'routing', 'fleet', 'integrations', 'chimera', 'context', 'logs', 'security', 'display'];
|
|
32
32
|
export declare function coerceSettingsTab(value: unknown): string;
|
|
@@ -34,8 +34,8 @@ export declare function coerceSettingsTab(value: unknown): string;
|
|
|
34
34
|
export declare const SIDEBAR_MIN_WIDTH = 240;
|
|
35
35
|
export declare const SIDEBAR_MAX_WIDTH = 560;
|
|
36
36
|
export declare const SIDEBAR_DEFAULT_WIDTH = 304;
|
|
37
|
-
/** Sections of the WorkspaceDock
|
|
38
|
-
export type DockSection = 'goal' | 'goal-state' | 'fleet' | 'work' | 'worktrees' | 'collab';
|
|
37
|
+
/** Sections of the WorkspaceDock in the Session side panel. */
|
|
38
|
+
export type DockSection = 'goal' | 'goal-state' | 'fleet' | 'work' | 'worktrees' | 'collab' | 'browser';
|
|
39
39
|
export type WorkDashboardTab = 'todos' | 'tasks' | 'plan';
|
|
40
40
|
/**
|
|
41
41
|
* User-customized ActivityBar icon order (panels + views). Null = default
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export { uiPersistOptions } from
|
|
5
|
-
import type { UIState } from
|
|
1
|
+
export { ACTIVITIES, DOCK_SECTIONS, SETTINGS_TABS, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_WIDTH, VIEWS, coerceActivity, coerceDockSection, coerceSettingsTab, coerceView, } from './ui-store-types.js';
|
|
2
|
+
export type { Activity, DockSection, InspectorTab, InspectorTarget, SessionChromeState, UIState, View, WorkDashboardTab, } from './ui-store-types.js';
|
|
3
|
+
export { defaultSessionChrome, defaultSkillsState, homeNavigationStatePatch, isDesktopShellStorageContext, parkChrome, readSessionChrome, } from './ui-store-chrome.js';
|
|
4
|
+
export { uiPersistOptions } from './ui-store-persist.js';
|
|
5
|
+
import type { UIState } from './ui-store-types.js';
|
|
6
6
|
export declare const useUIStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<UIState>, "persist" | "setState"> & {
|
|
7
7
|
setState(partial: Partial<UIState> | UIState | ((state: UIState) => Partial<UIState> | UIState), replace?: false | undefined): unknown;
|
|
8
8
|
setState(state: UIState | ((state: UIState) => UIState), replace: true): unknown;
|
package/dist/types/brain.d.ts
CHANGED
|
@@ -65,14 +65,16 @@ interface BrainHeuristicsPatchWire {
|
|
|
65
65
|
}
|
|
66
66
|
/** Effective single-LLM tier quality gate. */
|
|
67
67
|
interface BrainLlmWire {
|
|
68
|
-
|
|
68
|
+
/** Absent = the model's own output ceiling. */
|
|
69
|
+
maxTokens?: number | undefined;
|
|
69
70
|
rejectUncertain: boolean;
|
|
70
71
|
minConfidence: number;
|
|
71
72
|
denyIsTerminal: 'never' | 'when-decided' | 'always';
|
|
72
73
|
}
|
|
73
74
|
/** Writable single-LLM tier quality gate. */
|
|
74
75
|
interface BrainLlmPatchWire {
|
|
75
|
-
|
|
76
|
+
/** `null` clears the cap back to the model's own ceiling. */
|
|
77
|
+
maxTokens?: number | null | undefined;
|
|
76
78
|
rejectUncertain?: boolean | undefined;
|
|
77
79
|
minConfidence?: number | undefined;
|
|
78
80
|
denyIsTerminal?: 'never' | 'when-decided' | 'always' | undefined;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BrainConfigPatchWire } from './brain.js';
|
|
2
2
|
import type { ChronicleFacet, ChronicleMetricsView, ChronicleQuery } from './chronicle.js';
|
|
3
3
|
import type { WSCollabAnnotate, WSCollabGrantControl, WSCollabInjectTool, WSCollabJoin, WSCollabLeave, WSCollabRequestPause, WSCollabResolve, WSCollabResume } from './collab.js';
|
|
4
|
+
import type { WSPromptQueueClientMessage } from './prompt-queue.js';
|
|
4
5
|
import type { SessionScopedPayload, WSUserMessage } from './protocol-core.js';
|
|
5
6
|
import type { ContextEditorMessage, ContextEditorRemoval, WSModelSwitch, WSToolConfirmResult, WSUserInputSubmit } from './runtime.js';
|
|
6
7
|
import type { SageAnchor, SageScope, SageStatus, WSMemorySageForFileRequest } from './sage.js';
|
|
@@ -25,7 +26,12 @@ export interface ProviderCustomModelWire {
|
|
|
25
26
|
*/
|
|
26
27
|
modelsDev?: Record<string, unknown> | undefined;
|
|
27
28
|
}
|
|
28
|
-
export type WSClientMessageCore = WSUserMessage |
|
|
29
|
+
export type WSClientMessageCore = WSUserMessage | WSPromptQueueClientMessage
|
|
30
|
+
/** The user is typing; open the provider connection (`session.provider-warm`). */
|
|
31
|
+
| {
|
|
32
|
+
type: 'composer.warm';
|
|
33
|
+
payload: SessionScopedPayload;
|
|
34
|
+
} | {
|
|
29
35
|
type: 'topic.advice';
|
|
30
36
|
payload: SessionScopedPayload & {
|
|
31
37
|
requestId: string;
|
|
@@ -100,7 +106,9 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
100
106
|
payload: Record<string, never>;
|
|
101
107
|
} | {
|
|
102
108
|
type: 'goal.resume';
|
|
103
|
-
payload:
|
|
109
|
+
payload: {
|
|
110
|
+
graphId?: string | undefined;
|
|
111
|
+
};
|
|
104
112
|
} | {
|
|
105
113
|
type: 'goal.stop';
|
|
106
114
|
payload: Record<string, never>;
|
|
@@ -113,9 +121,6 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
113
121
|
} | {
|
|
114
122
|
type: 'goal.status';
|
|
115
123
|
payload?: Record<string, never>;
|
|
116
|
-
} | {
|
|
117
|
-
type: 'goal.state';
|
|
118
|
-
payload?: Record<string, never>;
|
|
119
124
|
} | {
|
|
120
125
|
type: 'goal.save';
|
|
121
126
|
payload?: Record<string, never>;
|
|
@@ -125,12 +130,9 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
125
130
|
} | {
|
|
126
131
|
type: 'goal.load';
|
|
127
132
|
payload: {
|
|
128
|
-
graphId
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
type: 'goal.toggleAutonomous';
|
|
132
|
-
payload: {
|
|
133
|
-
autonomous?: boolean | undefined;
|
|
133
|
+
graphId?: string | undefined;
|
|
134
|
+
query?: string | undefined;
|
|
135
|
+
resume?: boolean | undefined;
|
|
134
136
|
};
|
|
135
137
|
} | {
|
|
136
138
|
type: 'goal.selectPhase';
|
|
@@ -444,6 +446,13 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
444
446
|
* what a live lane already has.
|
|
445
447
|
*/
|
|
446
448
|
replayFor?: string[];
|
|
449
|
+
/**
|
|
450
|
+
* Reconnect catch-up: the last numbered frame (`seq`) this page applied
|
|
451
|
+
* per tab, valid for the server process that issued `eventEpoch`. The
|
|
452
|
+
* server sends back the frames after it, then `session.frames_resumed`.
|
|
453
|
+
*/
|
|
454
|
+
cursors?: Record<string, number>;
|
|
455
|
+
eventEpoch?: string;
|
|
447
456
|
} & SessionScopedPayload;
|
|
448
457
|
} | {
|
|
449
458
|
type: 'context.clear';
|
|
@@ -939,6 +948,11 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
939
948
|
payload: {
|
|
940
949
|
filePath: string;
|
|
941
950
|
} & SessionScopedPayload;
|
|
951
|
+
} | {
|
|
952
|
+
type: 'files.image';
|
|
953
|
+
payload: {
|
|
954
|
+
filePath: string;
|
|
955
|
+
} & SessionScopedPayload;
|
|
942
956
|
} | {
|
|
943
957
|
type: 'files.skeleton';
|
|
944
958
|
payload: {
|
|
@@ -1022,6 +1036,23 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
1022
1036
|
} | {
|
|
1023
1037
|
type: 'process.list';
|
|
1024
1038
|
payload?: SessionScopedPayload;
|
|
1039
|
+
} | {
|
|
1040
|
+
type: 'process.output';
|
|
1041
|
+
payload: {
|
|
1042
|
+
pid: number;
|
|
1043
|
+
lines?: number;
|
|
1044
|
+
} & SessionScopedPayload;
|
|
1045
|
+
} | {
|
|
1046
|
+
type: 'browser.live.list';
|
|
1047
|
+
payload?: SessionScopedPayload;
|
|
1048
|
+
} | {
|
|
1049
|
+
type: 'browser.live.watch';
|
|
1050
|
+
payload: {
|
|
1051
|
+
id: string;
|
|
1052
|
+
} & SessionScopedPayload;
|
|
1053
|
+
} | {
|
|
1054
|
+
type: 'browser.live.unwatch';
|
|
1055
|
+
payload?: SessionScopedPayload;
|
|
1025
1056
|
} | {
|
|
1026
1057
|
type: 'process.kill';
|
|
1027
1058
|
payload: {
|
|
@@ -1086,6 +1117,23 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
1086
1117
|
type: 'goal.get';
|
|
1087
1118
|
} | {
|
|
1088
1119
|
type: 'goal-state.get';
|
|
1120
|
+
} | {
|
|
1121
|
+
type: 'goal-state.set';
|
|
1122
|
+
payload: {
|
|
1123
|
+
goal: string;
|
|
1124
|
+
} & SessionScopedPayload;
|
|
1125
|
+
} | {
|
|
1126
|
+
type: 'goal-state.refine';
|
|
1127
|
+
payload?: SessionScopedPayload;
|
|
1128
|
+
} | {
|
|
1129
|
+
type: 'goal-state.pause';
|
|
1130
|
+
payload?: Record<string, never>;
|
|
1131
|
+
} | {
|
|
1132
|
+
type: 'goal-state.resume';
|
|
1133
|
+
payload?: Record<string, never>;
|
|
1134
|
+
} | {
|
|
1135
|
+
type: 'goal-state.clear';
|
|
1136
|
+
payload?: Record<string, never>;
|
|
1089
1137
|
} | {
|
|
1090
1138
|
type: 'autonomy.switch';
|
|
1091
1139
|
payload: {
|
|
@@ -1100,6 +1148,49 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
1100
1148
|
} | {
|
|
1101
1149
|
type: 'system_prompt.get';
|
|
1102
1150
|
payload?: SessionScopedPayload;
|
|
1151
|
+
} | {
|
|
1152
|
+
type: 'system_prompt.presets.get';
|
|
1153
|
+
payload?: SessionScopedPayload;
|
|
1154
|
+
} | {
|
|
1155
|
+
type: 'system_prompt.presets.create';
|
|
1156
|
+
payload: {
|
|
1157
|
+
name: string;
|
|
1158
|
+
baseVariant: 'lite' | 'default' | 'pro';
|
|
1159
|
+
};
|
|
1160
|
+
} | {
|
|
1161
|
+
type: 'system_prompt.presets.save';
|
|
1162
|
+
payload: {
|
|
1163
|
+
id: string;
|
|
1164
|
+
revision: number;
|
|
1165
|
+
name: string;
|
|
1166
|
+
text: string;
|
|
1167
|
+
reviewedCurrentSource?: boolean;
|
|
1168
|
+
};
|
|
1169
|
+
} | {
|
|
1170
|
+
type: 'system_prompt.presets.activate';
|
|
1171
|
+
payload: {
|
|
1172
|
+
baseVariant: 'lite' | 'default' | 'pro';
|
|
1173
|
+
id?: string;
|
|
1174
|
+
sessionId?: string;
|
|
1175
|
+
scope: 'profile' | 'project';
|
|
1176
|
+
};
|
|
1177
|
+
} | {
|
|
1178
|
+
type: 'system_prompt.presets.delete';
|
|
1179
|
+
payload: {
|
|
1180
|
+
id: string;
|
|
1181
|
+
};
|
|
1182
|
+
} | {
|
|
1183
|
+
type: 'system_prompt.presets.validate';
|
|
1184
|
+
payload: {
|
|
1185
|
+
text: string;
|
|
1186
|
+
};
|
|
1187
|
+
} | {
|
|
1188
|
+
type: 'system_prompt.presets.preview';
|
|
1189
|
+
payload: {
|
|
1190
|
+
text: string;
|
|
1191
|
+
sessionId?: string;
|
|
1192
|
+
requestId: number;
|
|
1193
|
+
};
|
|
1103
1194
|
} | {
|
|
1104
1195
|
type: 'projects.list';
|
|
1105
1196
|
} | {
|
|
@@ -1392,6 +1483,23 @@ export type WSClientMessageCore = WSUserMessage | {
|
|
|
1392
1483
|
prompt: string;
|
|
1393
1484
|
arguments?: Record<string, string>;
|
|
1394
1485
|
};
|
|
1486
|
+
} | {
|
|
1487
|
+
type: 'mcp.auth.status';
|
|
1488
|
+
payload: {
|
|
1489
|
+
name: string;
|
|
1490
|
+
};
|
|
1491
|
+
} | {
|
|
1492
|
+
type: 'mcp.auth.login';
|
|
1493
|
+
payload: {
|
|
1494
|
+
name: string;
|
|
1495
|
+
clientId?: string;
|
|
1496
|
+
scopes?: string[];
|
|
1497
|
+
};
|
|
1498
|
+
} | {
|
|
1499
|
+
type: 'mcp.auth.logout';
|
|
1500
|
+
payload: {
|
|
1501
|
+
name: string;
|
|
1502
|
+
};
|
|
1395
1503
|
} | {
|
|
1396
1504
|
type: 'terminal.create';
|
|
1397
1505
|
payload: {
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { SessionScopedPayload, WSUserMessageImage } from './protocol-core.js';
|
|
2
|
+
/**
|
|
3
|
+
* The host-owned prompt queue (`session.prompt-queue` capability): prompts
|
|
4
|
+
* queued for a session live on the server, which runs them one after another
|
|
5
|
+
* as the session's turns end — whether or not this page is still open.
|
|
6
|
+
*/
|
|
7
|
+
/** One queued prompt as the server lists it (image bytes stay on the server). */
|
|
8
|
+
export interface WSQueuedPromptView {
|
|
9
|
+
id: string;
|
|
10
|
+
text: string;
|
|
11
|
+
addedAt: number;
|
|
12
|
+
imageCount: number;
|
|
13
|
+
}
|
|
14
|
+
export type WSPromptQueueClientMessage = {
|
|
15
|
+
type: 'queue.add';
|
|
16
|
+
payload: SessionScopedPayload & {
|
|
17
|
+
text: string;
|
|
18
|
+
images?: WSUserMessageImage[] | undefined;
|
|
19
|
+
};
|
|
20
|
+
} | {
|
|
21
|
+
type: 'queue.remove';
|
|
22
|
+
payload: SessionScopedPayload & {
|
|
23
|
+
id: string;
|
|
24
|
+
};
|
|
25
|
+
} | {
|
|
26
|
+
type: 'queue.clear';
|
|
27
|
+
payload?: SessionScopedPayload;
|
|
28
|
+
} | {
|
|
29
|
+
type: 'queue.get';
|
|
30
|
+
payload?: SessionScopedPayload;
|
|
31
|
+
};
|
|
32
|
+
/** The session's whole queue, after every change. */
|
|
33
|
+
export interface WSQueueState {
|
|
34
|
+
type: 'queue.state';
|
|
35
|
+
payload: SessionScopedPayload & {
|
|
36
|
+
items: WSQueuedPromptView[];
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** A queued prompt just started its turn: render it as the user's message. */
|
|
40
|
+
export interface WSQueueDrained {
|
|
41
|
+
type: 'queue.drained';
|
|
42
|
+
payload: SessionScopedPayload & {
|
|
43
|
+
item: {
|
|
44
|
+
id: string;
|
|
45
|
+
text: string;
|
|
46
|
+
addedAt: number;
|
|
47
|
+
images?: Array<{
|
|
48
|
+
data: string;
|
|
49
|
+
mediaType?: string | undefined;
|
|
50
|
+
name?: string | undefined;
|
|
51
|
+
}>;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=prompt-queue.d.ts.map
|