@wrongstack/webui 1.0.24 → 1.0.27
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-BJ-1SQOm.js +12 -0
- package/dist/assets/{AnalyticsDashboard-DgqJODVI.js → AnalyticsDashboard-FYrD8BFQ.js} +1 -1
- package/dist/assets/AudienceMemoryPanel-BghMZicW.js +3 -0
- package/dist/assets/ChangesView-B3uQtZGR.js +3 -0
- package/dist/assets/ChimeraReviewsView-CBRbTHGM.js +1 -0
- package/dist/assets/ChronicleDashboard-B1E-_u64.js +1 -0
- package/dist/assets/CodeEditor-CbcWuMGV.js +2 -0
- package/dist/assets/CodeMap-WOfveRTG.js +1 -0
- package/dist/assets/{CronJobsPanel-GTK038V9.js → CronJobsPanel-DOFA5WVq.js} +1 -1
- package/dist/assets/{DeadCodeScanPanel-DX4OEuyp.js → DeadCodeScanPanel-4ToPZX7e.js} +1 -1
- package/dist/assets/{DebugDashboard-CKp3sa_k.js → DebugDashboard-DAsNHSpG.js} +1 -1
- package/dist/assets/{DesignGalleryView-DVUTYaP6.js → DesignGalleryView-Dd5YnKhs.js} +1 -1
- package/dist/assets/GoalView-BaDGAXuQ.js +1 -0
- package/dist/assets/KanbanView-CG8bVhpR.js +3 -0
- package/dist/assets/{MailboxDetailView-CylnzTVc.js → MailboxDetailView-COxz-eEJ.js} +1 -1
- package/dist/assets/{MemoryDrawer-DJ0Y98Z8.js → MemoryDrawer-4lDXuHCi.js} +1 -1
- package/dist/assets/MemoryManager-DQlnpch1.js +1 -0
- package/dist/assets/{ProcessMonitor-BnQ3vJtn.js → ProcessMonitor-BUjfYqG3.js} +1 -1
- package/dist/assets/PromptJournalView-o2dmPrwg.js +1 -0
- package/dist/assets/ProviderTestView-5wNbI46L.js +1 -0
- package/dist/assets/QueuePanel-DP9D99DX.js +1 -0
- package/dist/assets/{RefreshDebugView-s6MyGpPq.js → RefreshDebugView-CB7_a_TI.js} +1 -1
- package/dist/assets/{RepositoryHistoryView-CWi_Zo3F.js → RepositoryHistoryView-C_zpYLY6.js} +2 -2
- package/dist/assets/RequirementIntakeView-CahKEHJn.js +1 -0
- package/dist/assets/{SageTabs-D6eTg3ix.js → SageTabs-5Z2PR11S.js} +2 -2
- package/dist/assets/{SddFlowGraph-B-ptkFX6.js → SddFlowGraph-DSoWnlIt.js} +1 -1
- package/dist/assets/SddHub-0q2EpwYz.js +2 -0
- package/dist/assets/{SessionInspectView-NSpj5WEN.js → SessionInspectView-CbDFR_tP.js} +1 -1
- package/dist/assets/SessionList-DhQK7JnP.js +1 -0
- package/dist/assets/{SessionsDashboard-mF4PzdKY.js → SessionsDashboard-DNLDczSd.js} +1 -1
- package/dist/assets/SetupScreen-C-hpHQQ9.js +1 -0
- package/dist/assets/{SkillDetailView-B9BFyB1i.js → SkillDetailView-Bir-Kdm4.js} +3 -3
- package/dist/assets/TechStackView-CJ3Abnwg.js +2 -0
- package/dist/assets/TerminalPanel-8WHNTeQK.js +1 -0
- package/dist/assets/activity-B9WjS_Cz.js +10 -0
- package/dist/assets/activity-BB7AHL0U.js +10 -0
- package/dist/assets/activity-Bd0XmdqX.js +10 -0
- package/dist/assets/activity-BvmJte2K.js +10 -0
- package/dist/assets/activity-DOEbDWqw.js +10 -0
- package/dist/assets/activity-beTxIN7V.js +10 -0
- package/dist/assets/activity-t-0KDhv5.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-BMwP_sS0.js +1 -0
- package/dist/assets/{codemap-activity-store-Ha7XbGgq.js → codemap-activity-store-WjfEZe4_.js} +1 -1
- package/dist/assets/{common-DvjdaRhB.js → common-2kj0c3pG.js} +1 -1
- package/dist/assets/{common-D0QL7rwb.js → common-BAvh8XBp.js} +1 -1
- package/dist/assets/{common-opV6EoLd.js → common-CKwGvEQD.js} +1 -1
- package/dist/assets/{common-DJRPtYAt.js → common-CUd7l34J.js} +1 -1
- package/dist/assets/{common-BtyQBZBN.js → common-DmS4Wp1i.js} +1 -1
- package/dist/assets/common-PC103akE.js +1 -0
- package/dist/assets/{common-Bjl7V12m.js → common-zatZ4s-Z.js} +1 -1
- package/dist/assets/config-store-Cb4iyhGv.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-CzTjKT4L.js +3 -0
- package/dist/assets/index-Ci22AODp.js +182 -0
- package/dist/assets/index-DfU9PQg8.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-D-DCMdrg.js} +1 -1
- package/dist/assets/settings-7W0ofid0.js +1 -0
- package/dist/assets/settings-BAArGYGW.js +1 -0
- package/dist/assets/settings-Btyr_M2v.js +1 -0
- package/dist/assets/settings-BwL_DVmc.js +1 -0
- package/dist/assets/settings-C7ybAkyi.js +1 -0
- package/dist/assets/settings-CgtL8eYb.js +1 -0
- package/dist/assets/settings-D57Fd8Z8.js +1 -0
- package/dist/assets/{shared-BFJvAYzX.js → shared-CLNEiW00.js} +1 -1
- package/dist/assets/stores-Svlibwo5.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/FailedRunContinue.d.ts +7 -3
- 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/TechStackView/AnalyzeControls.d.ts +25 -0
- package/dist/components/TechStackView/RemediationTab.d.ts +20 -0
- package/dist/components/TechStackView/TrendsTab.d.ts +17 -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/chat-handlers.d.ts +12 -0
- package/dist/hooks/ws-handlers/goal-handlers.d.ts +2 -0
- package/dist/hooks/ws-handlers/mcp-status-handlers.d.ts +6 -0
- package/dist/hooks/ws-handlers/prompt-queue-handlers.d.ts +18 -0
- package/dist/hooks/ws-handlers/techstack-handlers.d.ts +7 -0
- package/dist/index.css +3013 -3013
- package/dist/index.html +19 -19
- package/dist/index.js +53010 -47407
- 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/index.d.ts +1 -1
- package/dist/stores/local-prefs-defaults.d.ts +341 -0
- package/dist/stores/local-prefs.d.ts +2 -318
- package/dist/stores/notification-store.d.ts +9 -0
- package/dist/stores/provider-quota-store.d.ts +5 -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/techstack-store.d.ts +140 -1
- package/dist/stores/terminal-strip-store.d.ts +26 -0
- package/dist/stores/types.d.ts +5 -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 +122 -14
- package/dist/types/jev.d.ts +2 -0
- 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 +32 -0
- package/dist/types/server-message-system.d.ts +121 -0
- package/dist/types/server-message.d.ts +4 -3
- package/dist/types/system.d.ts +2 -24
- package/package.json +11 -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/common-DPPTV3yw.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;
|
|
@@ -24,6 +24,11 @@ export interface QuotaWindow {
|
|
|
24
24
|
windowMinutes?: number | undefined;
|
|
25
25
|
/** Absolute reset time in epoch **seconds**. */
|
|
26
26
|
resetsAt?: number | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* When the last hour's pace fills the window (epoch **seconds**). Set by the
|
|
29
|
+
* server only when that lands before `resetsAt`.
|
|
30
|
+
*/
|
|
31
|
+
exhaustsAt?: number | undefined;
|
|
27
32
|
}
|
|
28
33
|
export interface QuotaCredits {
|
|
29
34
|
hasCredits: boolean;
|
|
@@ -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
|
*
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
export type TechStackCoverage = 'full' | 'partial' | 'unsupported';
|
|
2
2
|
export type TechStackJobKind = 'inventory' | 'analyze';
|
|
3
3
|
export type TechStackJobStatus = 'idle' | 'queued' | 'discovering' | 'inventorying' | 'enriching' | 'researching' | 'synthesizing' | 'completed' | 'failed' | 'cancelled';
|
|
4
|
+
/**
|
|
5
|
+
* Pipeline depth the user picked for the next `analyze` run.
|
|
6
|
+
* Mirrors `AnalyzeDepth` on the engine; defaults to `'full'` for parity with
|
|
7
|
+
* the pre-feature one-click Analyze button.
|
|
8
|
+
*/
|
|
9
|
+
export type TechStackAnalyzeDepth = 'inventory' | 'enrich' | 'full';
|
|
4
10
|
export interface TechStackEvidence {
|
|
5
11
|
readonly kind: string;
|
|
6
12
|
readonly source: string;
|
|
@@ -62,6 +68,96 @@ export interface TechStackFinding {
|
|
|
62
68
|
readonly breakingRisk?: string | undefined;
|
|
63
69
|
readonly evidence: readonly TechStackEvidence[];
|
|
64
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* One item in a remediation upgrade plan.
|
|
73
|
+
*
|
|
74
|
+
* Mirrors `UpgradePlanItem` server-side (`packages/techstack/src/remediation.ts`).
|
|
75
|
+
* `executable` is true when the engine can drive the change through the
|
|
76
|
+
* permission-gated `language_package` tool — false for ecosystems that need
|
|
77
|
+
* a manual command (ruby, dart, maven, gradle, swift, elixir, c/cpp). The UI
|
|
78
|
+
* uses this to render an "Apply" button vs. a "Copy command" card.
|
|
79
|
+
*/
|
|
80
|
+
export interface TechStackUpgradePlanItem {
|
|
81
|
+
readonly dependencyName: string;
|
|
82
|
+
readonly ecosystem: string;
|
|
83
|
+
readonly workspaceId: string;
|
|
84
|
+
readonly currentVersion?: string | undefined;
|
|
85
|
+
readonly targetVersion?: string | undefined;
|
|
86
|
+
readonly action: TechStackFindingAction;
|
|
87
|
+
readonly severity: TechStackFindingSeverity;
|
|
88
|
+
readonly rationale: string;
|
|
89
|
+
readonly breakingRisk?: string | undefined;
|
|
90
|
+
readonly suggestedCommand?: string | undefined;
|
|
91
|
+
readonly executable: boolean;
|
|
92
|
+
}
|
|
93
|
+
export interface TechStackUpgradePlan {
|
|
94
|
+
readonly snapshotId: string;
|
|
95
|
+
readonly generatedAt: string;
|
|
96
|
+
readonly warning: string;
|
|
97
|
+
readonly summary: {
|
|
98
|
+
readonly total: number;
|
|
99
|
+
readonly patch: number;
|
|
100
|
+
readonly minor: number;
|
|
101
|
+
readonly major: number;
|
|
102
|
+
readonly replace: number;
|
|
103
|
+
readonly remove: number;
|
|
104
|
+
readonly investigate: number;
|
|
105
|
+
};
|
|
106
|
+
readonly items: readonly TechStackUpgradePlanItem[];
|
|
107
|
+
}
|
|
108
|
+
export interface TechStackApplyPlanResult {
|
|
109
|
+
readonly dryRun: boolean;
|
|
110
|
+
readonly items: ReadonlyArray<{
|
|
111
|
+
readonly dependencyName: string;
|
|
112
|
+
readonly status: 'planned' | 'skipped' | 'applied' | 'failed';
|
|
113
|
+
readonly detail?: string | undefined;
|
|
114
|
+
}>;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Single point on the cross-snapshot trend curve.
|
|
118
|
+
*
|
|
119
|
+
* Server-side: `TrendReport` in `packages/techstack/src/trend.ts`. The full
|
|
120
|
+
* report is heavier than what the page needs day-to-day, so the WebUI view
|
|
121
|
+
* uses the lightweight shape surfaced by `GET /api/techstack/trends`.
|
|
122
|
+
*/
|
|
123
|
+
export interface TechStackTrendPoint {
|
|
124
|
+
readonly snapshotId: string;
|
|
125
|
+
readonly createdAt: string;
|
|
126
|
+
readonly dependencies: number;
|
|
127
|
+
readonly outdated: number;
|
|
128
|
+
readonly vulnerable: number;
|
|
129
|
+
}
|
|
130
|
+
export interface TechStackTrendReport {
|
|
131
|
+
readonly snapshots: number;
|
|
132
|
+
readonly vulnerabilityHalfLifeMs?: number | undefined;
|
|
133
|
+
readonly points: readonly TechStackTrendPoint[];
|
|
134
|
+
readonly dependencies: ReadonlyArray<{
|
|
135
|
+
readonly key: string;
|
|
136
|
+
readonly name: string;
|
|
137
|
+
readonly ecosystem: string;
|
|
138
|
+
readonly currentVersion?: string | undefined;
|
|
139
|
+
readonly lockedVersionAgeMs: number;
|
|
140
|
+
readonly versionChanges: number;
|
|
141
|
+
}>;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Lightweight description of the LLM available for AI-assisted runs.
|
|
145
|
+
* Mirrors the `GET /api/techstack/models` response. When `available` is false
|
|
146
|
+
* the model picker is disabled — there is no point letting the user pick a
|
|
147
|
+
* model when none can answer.
|
|
148
|
+
*/
|
|
149
|
+
export interface TechStackModelInfo {
|
|
150
|
+
readonly available: boolean;
|
|
151
|
+
readonly provider: string | null;
|
|
152
|
+
readonly model: string | null;
|
|
153
|
+
readonly candidates: ReadonlyArray<{
|
|
154
|
+
readonly id: string;
|
|
155
|
+
}>;
|
|
156
|
+
readonly capabilities: {
|
|
157
|
+
readonly structuredOutput: boolean;
|
|
158
|
+
readonly jsonMode: boolean;
|
|
159
|
+
};
|
|
160
|
+
}
|
|
65
161
|
export interface TechStackSnapshot {
|
|
66
162
|
readonly id: string;
|
|
67
163
|
readonly projectId: string;
|
|
@@ -85,6 +181,10 @@ export interface TechStackJobView {
|
|
|
85
181
|
readonly status: TechStackJobStatus;
|
|
86
182
|
readonly progress: TechStackProgress | null;
|
|
87
183
|
readonly error: string | null;
|
|
184
|
+
/** Pipeline depth the job will run / is running. */
|
|
185
|
+
readonly depth?: TechStackAnalyzeDepth;
|
|
186
|
+
/** Model id the user picked for the LLM research stage. */
|
|
187
|
+
readonly model?: string;
|
|
88
188
|
}
|
|
89
189
|
interface TechStackState {
|
|
90
190
|
snapshot: TechStackSnapshot | null;
|
|
@@ -94,15 +194,54 @@ interface TechStackState {
|
|
|
94
194
|
activeJob: TechStackJobView | null;
|
|
95
195
|
lastWorkspaceId: string | null;
|
|
96
196
|
reportId: string | null;
|
|
197
|
+
/** Next analyze options. Persisted in-memory so a refresh keeps them. */
|
|
198
|
+
selectedDepth: TechStackAnalyzeDepth;
|
|
199
|
+
selectedModel: string | null;
|
|
200
|
+
/** `null` until the user opens the TechStack page (the page lazy-loads the list). */
|
|
201
|
+
availableModels: TechStackModelInfo | null;
|
|
202
|
+
/** Plan from `GET /api/techstack/remediation`. `null` when not yet fetched. */
|
|
203
|
+
remediationPlan: TechStackUpgradePlan | null;
|
|
204
|
+
remediationPreview: TechStackApplyPlanResult | null;
|
|
205
|
+
remediationLoading: boolean;
|
|
206
|
+
remediationError: string | null;
|
|
207
|
+
/** Cross-snapshot trend report. `null` when not yet fetched. */
|
|
208
|
+
trend: TechStackTrendReport | null;
|
|
209
|
+
trendLoading: boolean;
|
|
210
|
+
trendError: string | null;
|
|
211
|
+
/** Streaming deep-dive partials, keyed by dependency id. */
|
|
212
|
+
deepDivePartial: {
|
|
213
|
+
dependencyId: string;
|
|
214
|
+
status: 'researching';
|
|
215
|
+
completed: number;
|
|
216
|
+
total: number;
|
|
217
|
+
} | null;
|
|
97
218
|
setSnapshot: (snapshot: TechStackSnapshot | null, stale?: boolean) => void;
|
|
98
219
|
setLoading: (loading: boolean) => void;
|
|
99
220
|
setError: (error: string | null) => void;
|
|
100
|
-
jobStarted: (jobId: string, kind: TechStackJobKind
|
|
221
|
+
jobStarted: (jobId: string, kind: TechStackJobKind, options?: {
|
|
222
|
+
depth?: TechStackAnalyzeDepth;
|
|
223
|
+
model?: string;
|
|
224
|
+
}) => void;
|
|
101
225
|
jobProgress: (jobId: string, progress: TechStackProgress) => void;
|
|
102
226
|
jobFailed: (jobId: string, error: string) => void;
|
|
103
227
|
jobCancelled: (jobId: string) => void;
|
|
104
228
|
workspaceCompleted: (workspaceId: string) => void;
|
|
105
229
|
reportReady: (reportId: string) => void;
|
|
230
|
+
setSelectedDepth: (depth: TechStackAnalyzeDepth) => void;
|
|
231
|
+
setSelectedModel: (model: string | null) => void;
|
|
232
|
+
setAvailableModels: (models: TechStackModelInfo) => void;
|
|
233
|
+
setRemediation: (plan: TechStackUpgradePlan, preview: TechStackApplyPlanResult) => void;
|
|
234
|
+
setRemediationLoading: (loading: boolean) => void;
|
|
235
|
+
setRemediationError: (error: string | null) => void;
|
|
236
|
+
setTrend: (trend: TechStackTrendReport) => void;
|
|
237
|
+
setTrendLoading: (loading: boolean) => void;
|
|
238
|
+
setTrendError: (error: string | null) => void;
|
|
239
|
+
setDeepDivePartial: (partial: {
|
|
240
|
+
dependencyId: string;
|
|
241
|
+
status: 'researching';
|
|
242
|
+
completed: number;
|
|
243
|
+
total: number;
|
|
244
|
+
} | null) => void;
|
|
106
245
|
clear: () => void;
|
|
107
246
|
}
|
|
108
247
|
export declare const useTechStackStore: import("zustand").UseBoundStore<import("zustand").StoreApi<TechStackState>>;
|
|
@@ -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
|
package/dist/stores/types.d.ts
CHANGED
|
@@ -95,6 +95,11 @@ export interface ChatMessage {
|
|
|
95
95
|
* most recent start and would leave earlier ones stuck on "Running...". */
|
|
96
96
|
toolUseId?: string | undefined;
|
|
97
97
|
isError?: boolean | undefined;
|
|
98
|
+
/** Set on the error bubble of a run a provider killed on a retryable
|
|
99
|
+
* failure (overload, dropped connection, 5xx): the one error the Continue
|
|
100
|
+
* countdown may auto-fire for, in `auto` autonomy. Every other error —
|
|
101
|
+
* loop guard, iteration limit, auth, bad request — keeps a manual button. */
|
|
102
|
+
autoContinue?: boolean | undefined;
|
|
98
103
|
timestamp: number;
|
|
99
104
|
usage?: Usage | undefined;
|
|
100
105
|
streaming?: boolean | undefined;
|
|
@@ -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;
|