@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
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { WrongStackWebSocketClient } from '@/lib/ws-client';
|
|
2
|
+
export interface CatalogProvider {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
family: string;
|
|
6
|
+
apiBase?: string | undefined;
|
|
7
|
+
envVars: string[];
|
|
8
|
+
modelCount: number;
|
|
9
|
+
hasApiKey: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface SavedProvider {
|
|
12
|
+
id: string;
|
|
13
|
+
type?: string | undefined;
|
|
14
|
+
family?: string | undefined;
|
|
15
|
+
baseUrl?: string | undefined;
|
|
16
|
+
/** Saved model allowlist, in the order the user pinned them. */
|
|
17
|
+
models?: string[] | undefined;
|
|
18
|
+
/** Per-model metadata (display name, output limits, capability overrides). */
|
|
19
|
+
customModels?: Record<string, {
|
|
20
|
+
name?: string | undefined;
|
|
21
|
+
maxOutput?: number | undefined;
|
|
22
|
+
capabilities?: {
|
|
23
|
+
maxContext?: number | undefined;
|
|
24
|
+
tools?: boolean | undefined;
|
|
25
|
+
vision?: boolean | undefined;
|
|
26
|
+
reasoning?: boolean | undefined;
|
|
27
|
+
streaming?: boolean | undefined;
|
|
28
|
+
jsonMode?: boolean | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
}> | undefined;
|
|
31
|
+
/** First entry of `models`, surfaced for the panel's "Using" line. */
|
|
32
|
+
pickedModelId?: string | undefined;
|
|
33
|
+
apiKeys: Array<{
|
|
34
|
+
label: string;
|
|
35
|
+
maskedKey: string;
|
|
36
|
+
isActive: boolean;
|
|
37
|
+
createdAt: string;
|
|
38
|
+
}>;
|
|
39
|
+
}
|
|
40
|
+
export type ProviderTab = 'catalog' | 'saved';
|
|
41
|
+
export interface ProviderSectionProps {
|
|
42
|
+
/** Currently selected provider id. */
|
|
43
|
+
activeProvider: string;
|
|
44
|
+
/** Catalog providers list. */
|
|
45
|
+
catalogProviders: CatalogProvider[];
|
|
46
|
+
/** Loading flag. */
|
|
47
|
+
isLoadingCatalog: boolean;
|
|
48
|
+
/** Saved providers list. */
|
|
49
|
+
savedProviders: SavedProvider[];
|
|
50
|
+
/** Loading flag. */
|
|
51
|
+
isLoadingSaved: boolean;
|
|
52
|
+
/** Which sub-tab is active. */
|
|
53
|
+
providerTab: ProviderTab;
|
|
54
|
+
setProviderTab: (v: ProviderTab) => void;
|
|
55
|
+
/** Called when a catalog provider is selected. */
|
|
56
|
+
onSelectProvider: (id: string) => void;
|
|
57
|
+
/** Called to add an API key. */
|
|
58
|
+
onAddKey: (providerId: string, label: string, value: string) => Promise<boolean> | void;
|
|
59
|
+
/** Called to delete an API key. */
|
|
60
|
+
onDeleteKey: (providerId: string, label: string) => Promise<boolean> | void;
|
|
61
|
+
/** Called to set a key as active. */
|
|
62
|
+
onSetActiveKey: (providerId: string, label: string) => Promise<boolean> | void;
|
|
63
|
+
/** Called to add a custom provider. */
|
|
64
|
+
onAddProvider: (id: string, family: string, baseUrl?: string | undefined, apiKey?: string, models?: string[] | undefined, customModels?: Record<string, {
|
|
65
|
+
name?: string | undefined;
|
|
66
|
+
maxOutput?: number | undefined;
|
|
67
|
+
capabilities?: Record<string, unknown> | undefined;
|
|
68
|
+
}> | undefined, providerType?: string | undefined) => Promise<boolean> | void;
|
|
69
|
+
/** Called to remove a saved provider. */
|
|
70
|
+
onRemoveProvider: (providerId: string) => Promise<boolean> | void;
|
|
71
|
+
/** Called when a saved provider model is picked. */
|
|
72
|
+
onPickProviderModel: (providerId: string, modelId: string) => void;
|
|
73
|
+
/** WebSocket client used for saved-provider model probing/clearing. */
|
|
74
|
+
ws: WrongStackWebSocketClient;
|
|
75
|
+
/** Search filter text. */
|
|
76
|
+
catalogQuery: string;
|
|
77
|
+
setCatalogQuery: (v: string) => void;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=provider-section-types.d.ts.map
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { useWebSocket } from '@/hooks/useWebSocket';
|
|
2
2
|
import type { SessionHistoryEntry } from '@/stores';
|
|
3
|
-
|
|
4
|
-
type HistorySort = 'recent' | 'tokens' | 'activity';
|
|
3
|
+
export { filterAndSortSessions, formatCompactNumber, formatRelative, formatSessionDuration, getEmptySessionIds, getSessionHistoryStats, groupSessionHistory, splitSessionHistoryColumns, } from './session-history.js';
|
|
5
4
|
type HistoryListVariant = 'sidebar' | 'workspace';
|
|
6
5
|
interface SessionListProps {
|
|
7
6
|
historyQuery: string;
|
|
@@ -16,37 +15,5 @@ interface SessionListProps {
|
|
|
16
15
|
renameSession: ReturnType<typeof useWebSocket>['renameSession'];
|
|
17
16
|
variant?: HistoryListVariant | undefined;
|
|
18
17
|
}
|
|
19
|
-
interface HistoryViewOptions {
|
|
20
|
-
query: string;
|
|
21
|
-
filter: HistoryFilter;
|
|
22
|
-
sort: HistorySort;
|
|
23
|
-
favoriteIds: readonly string[];
|
|
24
|
-
}
|
|
25
|
-
interface SessionHistoryGroup {
|
|
26
|
-
label: 'favorites' | 'today' | 'yesterday' | 'thisWeek' | 'earlier';
|
|
27
|
-
rows: SessionHistoryEntry[];
|
|
28
|
-
favorite?: boolean | undefined;
|
|
29
|
-
}
|
|
30
|
-
interface SessionHistoryStats {
|
|
31
|
-
sessions: number;
|
|
32
|
-
active: number;
|
|
33
|
-
tokens: number;
|
|
34
|
-
tools: number;
|
|
35
|
-
files: number;
|
|
36
|
-
errors: number;
|
|
37
|
-
}
|
|
38
|
-
export declare const formatRelative: (iso: string) => string;
|
|
39
|
-
export declare function formatSessionDuration(entry: SessionHistoryEntry): string;
|
|
40
|
-
export declare function formatCompactNumber(value: number): string;
|
|
41
|
-
/** Pure function: returns empty non-active sessions that are safe to offer for cleanup. */
|
|
42
|
-
export declare function getEmptySessionIds(entries: Array<{
|
|
43
|
-
id: string;
|
|
44
|
-
tokenTotal: number;
|
|
45
|
-
isCurrent: boolean;
|
|
46
|
-
}>, protectedIds?: Iterable<string>): string[];
|
|
47
|
-
export declare function filterAndSortSessions(entries: readonly SessionHistoryEntry[], options: HistoryViewOptions): SessionHistoryEntry[];
|
|
48
|
-
export declare function groupSessionHistory(entries: readonly SessionHistoryEntry[], favoriteIds: readonly string[], now?: number): SessionHistoryGroup[];
|
|
49
|
-
export declare function getSessionHistoryStats(entries: readonly SessionHistoryEntry[]): SessionHistoryStats;
|
|
50
18
|
export declare function SessionList({ historyQuery, setHistoryQuery, historyEntries, historyLoading, historyError, wsConnected, listSessions, resumeSession, deleteSession, renameSession, variant, }: SessionListProps): import("react").JSX.Element;
|
|
51
|
-
export {};
|
|
52
19
|
//# sourceMappingURL=SessionList.d.ts.map
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Activity } from 'lucide-react';
|
|
2
|
+
import type { SessionHistoryEntry } from '@/stores';
|
|
3
|
+
export type HistoryFilter = 'all' | 'favorites' | 'active' | 'completed' | 'issues';
|
|
4
|
+
export type HistorySort = 'recent' | 'tokens' | 'activity';
|
|
5
|
+
export interface HistoryViewOptions {
|
|
6
|
+
query: string;
|
|
7
|
+
filter: HistoryFilter;
|
|
8
|
+
sort: HistorySort;
|
|
9
|
+
favoriteIds: readonly string[];
|
|
10
|
+
}
|
|
11
|
+
export interface SessionHistoryGroup {
|
|
12
|
+
label: 'favorites' | 'today' | 'yesterday' | 'thisWeek' | 'earlier';
|
|
13
|
+
rows: SessionHistoryEntry[];
|
|
14
|
+
favorite?: boolean | undefined;
|
|
15
|
+
}
|
|
16
|
+
export interface SessionHistoryStats {
|
|
17
|
+
sessions: number;
|
|
18
|
+
active: number;
|
|
19
|
+
tokens: number;
|
|
20
|
+
tools: number;
|
|
21
|
+
files: number;
|
|
22
|
+
errors: number;
|
|
23
|
+
}
|
|
24
|
+
export declare const timestamp: (iso: string | undefined) => number;
|
|
25
|
+
export declare const activityScore: (entry: SessionHistoryEntry) => number;
|
|
26
|
+
export declare const formatRelative: (iso: string) => string;
|
|
27
|
+
export declare const sessionActivityAt: (entry: SessionHistoryEntry) => string;
|
|
28
|
+
export declare function formatSessionDuration(entry: SessionHistoryEntry): string;
|
|
29
|
+
export declare function formatCompactNumber(value: number): string;
|
|
30
|
+
/** Pure function: returns empty non-active sessions that are safe to offer for cleanup. */
|
|
31
|
+
export declare function getEmptySessionIds(entries: Array<{
|
|
32
|
+
id: string;
|
|
33
|
+
tokenTotal: number;
|
|
34
|
+
isCurrent: boolean;
|
|
35
|
+
}>, protectedIds?: Iterable<string>): string[];
|
|
36
|
+
export declare function filterAndSortSessions(entries: readonly SessionHistoryEntry[], options: HistoryViewOptions): SessionHistoryEntry[];
|
|
37
|
+
export declare function groupSessionHistory(entries: readonly SessionHistoryEntry[], favoriteIds: readonly string[], now?: number): SessionHistoryGroup[];
|
|
38
|
+
export interface SessionHistoryColumns {
|
|
39
|
+
left: SessionHistoryGroup[];
|
|
40
|
+
right: SessionHistoryGroup[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Balance a page of time-ordered groups across the workspace page's two
|
|
44
|
+
* columns: rows fill the left column down to the midpoint, then continue
|
|
45
|
+
* down the right, so each column reads chronologically and neither towers
|
|
46
|
+
* over an empty sibling. A group straddling the midpoint is sliced at it —
|
|
47
|
+
* that keeps the page one continuous timeline even when a single bucket
|
|
48
|
+
* (e.g. "Today") dominates, which is the common case on early pages.
|
|
49
|
+
*/
|
|
50
|
+
export declare function splitSessionHistoryColumns(groups: readonly SessionHistoryGroup[]): SessionHistoryColumns;
|
|
51
|
+
export declare function getSessionHistoryStats(entries: readonly SessionHistoryEntry[]): SessionHistoryStats;
|
|
52
|
+
export declare function outcomeMeta(entry: SessionHistoryEntry): {
|
|
53
|
+
icon: typeof Activity;
|
|
54
|
+
label: 'active' | 'completed' | 'error' | 'timeout' | 'aborted' | 'saved';
|
|
55
|
+
defaultLabel: string;
|
|
56
|
+
className: string;
|
|
57
|
+
};
|
|
58
|
+
export declare function HistoryStats({ stats }: {
|
|
59
|
+
stats: SessionHistoryStats;
|
|
60
|
+
}): import("react").JSX.Element;
|
|
61
|
+
//# sourceMappingURL=session-history.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type Variant = 'lite' | 'default' | 'pro';
|
|
2
|
+
/** Profile-wide prompt copies. The runtime still owns tool and environment layers. */
|
|
3
|
+
export declare function SystemPromptPresetEditor({ currentVariant, onBusyChange, onDirtyChange, }: {
|
|
4
|
+
currentVariant: Variant;
|
|
5
|
+
onBusyChange?: (busy: boolean) => void;
|
|
6
|
+
onDirtyChange?: (dirty: boolean) => void;
|
|
7
|
+
}): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=SystemPromptPresetEditor.d.ts.map
|
|
@@ -4,9 +4,16 @@ import '@xterm/xterm/css/xterm.css';
|
|
|
4
4
|
* sessions (see server/terminal-ws-handler.ts). It now manages multiple PTYs
|
|
5
5
|
* per project WebUI connection through tabs while keeping the dock itself in
|
|
6
6
|
* the normal flex layout, so the main app remains scrollable.
|
|
7
|
+
*
|
|
8
|
+
* Hiding the dock (`hidden`) keeps its terminals running; the composer strip
|
|
9
|
+
* shows them meanwhile. Closing the last one, or all, disposes the dock.
|
|
7
10
|
*/
|
|
8
|
-
export declare function TerminalPanel({ desktopShell, onClose, }: {
|
|
11
|
+
export declare function TerminalPanel({ desktopShell, hidden, onClose, onDispose, }: {
|
|
9
12
|
desktopShell?: boolean | undefined;
|
|
13
|
+
hidden?: boolean | undefined;
|
|
14
|
+
/** Hide the dock; its terminals keep running. */
|
|
10
15
|
onClose: () => void;
|
|
16
|
+
/** Every terminal is closed: the dock can go. */
|
|
17
|
+
onDispose: () => void;
|
|
11
18
|
}): import("react").JSX.Element;
|
|
12
19
|
//# sourceMappingURL=TerminalPanel.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* WorkspaceDock —
|
|
2
|
+
* WorkspaceDock — session workspace controls in the left Session panel.
|
|
3
3
|
*
|
|
4
|
-
* The dock itself stays compact
|
|
4
|
+
* The dock itself stays compact. Selecting Goal, Fleet, Work,
|
|
5
5
|
* Worktrees, or Collab opens its content in WorkspaceDockInspector on the
|
|
6
6
|
* right, so the transcript never loses vertical space.
|
|
7
7
|
*
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReviewDiff — the Changes view's unified diff with line comments.
|
|
3
|
+
*
|
|
4
|
+
* Same row model and look as DiffView (shared `computeLineDiff`), plus a
|
|
5
|
+
* line-number gutter and a per-line "+" that opens an inline comment editor.
|
|
6
|
+
* Comments live in the project-scoped review store; a comment whose line no
|
|
7
|
+
* longer reads the same is listed above the diff as outdated instead of being
|
|
8
|
+
* pinned to whatever text now occupies that line number.
|
|
9
|
+
*/
|
|
10
|
+
import { type ReviewComment } from '@/stores/review-store';
|
|
11
|
+
export declare function CommentCard({ comment, outdated, }: {
|
|
12
|
+
comment: ReviewComment;
|
|
13
|
+
outdated?: boolean | undefined;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
export declare const ReviewDiff: import("react").MemoExoticComponent<({ path, scope, oldText, newText, }: {
|
|
16
|
+
path: string;
|
|
17
|
+
scope: string;
|
|
18
|
+
oldText: string;
|
|
19
|
+
newText: string;
|
|
20
|
+
}) => import("react").JSX.Element>;
|
|
21
|
+
//# sourceMappingURL=ReviewDiff.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReviewTray — every review comment in the project, grouped by file, with the
|
|
3
|
+
* two ways out: send the whole review to the chat composer as one message, or
|
|
4
|
+
* discard it.
|
|
5
|
+
*
|
|
6
|
+
* "Send to chat" inserts into the composer rather than submitting, so the
|
|
7
|
+
* user picks how it goes out (a normal send when idle; queue or `btw` while a
|
|
8
|
+
* run is going) through the composer's existing send-mode handling.
|
|
9
|
+
*/
|
|
10
|
+
export declare function useScopedReviewComments(scope: string): import("@/stores/review-store").ReviewComment[];
|
|
11
|
+
export declare function ReviewTray({ scope, onOpenFile, }: {
|
|
12
|
+
scope: string;
|
|
13
|
+
onOpenFile: (path: string) => void;
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=ReviewTray.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pure model behind ReviewDiff: line numbers for diff rows, where a
|
|
3
|
+
* comment anchors, and which comments still sit on the line they were
|
|
4
|
+
* written against.
|
|
5
|
+
*/
|
|
6
|
+
import type { DiffRow } from '@wrongstack/tools/tool-diff';
|
|
7
|
+
import type { ReviewComment } from '@/stores/review-store';
|
|
8
|
+
export interface NumberedDiffRow extends DiffRow {
|
|
9
|
+
oldLine?: number | undefined;
|
|
10
|
+
newLine?: number | undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Attach 1-based line numbers: context lines advance both sides, removals the
|
|
14
|
+
* old side, additions the new side.
|
|
15
|
+
*/
|
|
16
|
+
export declare function numberDiffRows(rows: readonly DiffRow[]): NumberedDiffRow[];
|
|
17
|
+
/** Where a comment on this row anchors: removed lines on the old side, the rest on the new. */
|
|
18
|
+
export declare function anchorFor(row: NumberedDiffRow): {
|
|
19
|
+
side: 'old' | 'new';
|
|
20
|
+
line: number;
|
|
21
|
+
} | null;
|
|
22
|
+
export declare const anchorKey: (side: 'old' | 'new', line: number) => string;
|
|
23
|
+
/**
|
|
24
|
+
* Split a file's comments into those still sitting on an identical line
|
|
25
|
+
* (keyed by anchor) and those whose line changed underneath them.
|
|
26
|
+
*/
|
|
27
|
+
export declare function placeComments(rows: readonly NumberedDiffRow[], comments: readonly ReviewComment[]): {
|
|
28
|
+
byAnchor: Map<string, ReviewComment[]>;
|
|
29
|
+
outdated: ReviewComment[];
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=review-diff-model.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import '@xyflow/react/dist/style.css';
|
|
2
|
+
export declare function useCodeMapFlow({ positionedNodes, deferredActiveOperations, deferredPulseActivities, selectedId, connected, incomingCounts, outgoingCounts, handleSelectNode, handleOpenNode, setHistoryFile, setFlowNodes, canvasGraph, deferredRecentActivities, setAgentTrailCount, setFlowEdges, fitSignature, lastFlowStructuralKey, flowRebuildTimer, lastFitSignature, fitView, activityFlowKey, }: {
|
|
3
|
+
positionedNodes: ReturnType<typeof import('./codemap-model.js').layoutGraph>;
|
|
4
|
+
deferredActiveOperations: import('../stores/codemap-activity-store.js').FileActivity[];
|
|
5
|
+
deferredPulseActivities: import('../stores/codemap-activity-store.js').FileActivity[];
|
|
6
|
+
selectedId: string | null;
|
|
7
|
+
connected: Set<string>;
|
|
8
|
+
incomingCounts: Map<string, number>;
|
|
9
|
+
outgoingCounts: Map<string, number>;
|
|
10
|
+
handleSelectNode: (node: import('./codemap-model.js').GraphNodeData) => void;
|
|
11
|
+
handleOpenNode: (node: import('./codemap-model.js').GraphNodeData) => void;
|
|
12
|
+
setHistoryFile: React.Dispatch<React.SetStateAction<string | null>>;
|
|
13
|
+
setFlowNodes: React.Dispatch<React.SetStateAction<import('@xyflow/react').Node[]>>;
|
|
14
|
+
canvasGraph: import('./codemap-model.js').CodeMapGraphResponse;
|
|
15
|
+
deferredRecentActivities: import('../stores/codemap-activity-store.js').FileActivity[];
|
|
16
|
+
setAgentTrailCount: React.Dispatch<React.SetStateAction<number>>;
|
|
17
|
+
setFlowEdges: React.Dispatch<React.SetStateAction<import('@xyflow/react').Edge[]>>;
|
|
18
|
+
fitSignature: string;
|
|
19
|
+
lastFlowStructuralKey: React.RefObject<string>;
|
|
20
|
+
flowRebuildTimer: React.RefObject<number | null>;
|
|
21
|
+
lastFitSignature: React.RefObject<string>;
|
|
22
|
+
fitView: import('@xyflow/react').FitView<import('@xyflow/react').Node>;
|
|
23
|
+
activityFlowKey: string;
|
|
24
|
+
}): void;
|
|
25
|
+
//# sourceMappingURL=use-code-map-flow.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Connection, type Edge, type Node } from '@xyflow/react';
|
|
2
2
|
import '@xyflow/react/dist/style.css';
|
|
3
|
-
import {
|
|
3
|
+
import type { OfficeNodeData } from './OfficeMapCanvas/utils.js';
|
|
4
4
|
export declare function useOfficeMapCanvas(): {
|
|
5
5
|
canvasRef: import("react").RefObject<HTMLDivElement | null>;
|
|
6
6
|
showHud: boolean;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { TFunction } from 'i18next';
|
|
2
|
+
import '@xyflow/react/dist/style.css';
|
|
3
|
+
export declare function useOfficeMapTopology({ clients, canvasSize, mailboxMessages, t, leaderId, fleetAgents, prevAgentStatsRef, activeNodesRef, ACTIVE_MS, vizActivityRef, edgeIntensitiesRef, layoutPosRef, setNodes, setEdges, prevNodeSigRef, fitView, session, }: {
|
|
4
|
+
clients: import('./OfficeMapCanvas/resolve.js').ResolvedClient[];
|
|
5
|
+
canvasSize: {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
};
|
|
9
|
+
mailboxMessages: import('../stores/mailbox-store.js').MailboxMessage[];
|
|
10
|
+
t: TFunction<'translation', undefined>;
|
|
11
|
+
leaderId: string | undefined;
|
|
12
|
+
fleetAgents: Map<string, import('../stores/types.js').SubagentView>;
|
|
13
|
+
prevAgentStatsRef: React.RefObject<Map<string, {
|
|
14
|
+
toolCalls: number;
|
|
15
|
+
iteration: number;
|
|
16
|
+
}>>;
|
|
17
|
+
activeNodesRef: React.RefObject<Map<string, number>>;
|
|
18
|
+
ACTIVE_MS: 4000;
|
|
19
|
+
vizActivityRef: React.RefObject<Map<string, number>>;
|
|
20
|
+
edgeIntensitiesRef: React.RefObject<Map<string, number>>;
|
|
21
|
+
layoutPosRef: React.RefObject<Map<string, {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
}>>;
|
|
25
|
+
setNodes: React.Dispatch<React.SetStateAction<import('@xyflow/react').Node<import('./OfficeMapCanvas/utils.js').OfficeNodeData>[]>>;
|
|
26
|
+
setEdges: React.Dispatch<React.SetStateAction<import('@xyflow/react').Edge[]>>;
|
|
27
|
+
prevNodeSigRef: React.RefObject<string>;
|
|
28
|
+
fitView: import('@xyflow/react').FitView<import('@xyflow/react').Node>;
|
|
29
|
+
session: import('../stores/types.js').SessionInfo | null;
|
|
30
|
+
}): void;
|
|
31
|
+
//# sourceMappingURL=use-office-map-topology.d.ts.map
|
|
@@ -21,7 +21,7 @@ export declare function useWebSocketBootstrap(): void;
|
|
|
21
21
|
export declare function useWebSocket(): {
|
|
22
22
|
client: WrongStackWebSocketClient;
|
|
23
23
|
sendMessage: (content: string, images?: import('@/types').WSUserMessageImage[], freshContext?: boolean) => string | null;
|
|
24
|
-
adviseTopic: (prompt: string) => Promise<import("
|
|
24
|
+
adviseTopic: (prompt: string) => Promise<import("@wrongstack/webui-protocol").SessionScopedPayload & {
|
|
25
25
|
requestId: string;
|
|
26
26
|
suggestNewContext: boolean;
|
|
27
27
|
confidence: number;
|
|
@@ -131,7 +131,6 @@ export declare function useWebSocket(): {
|
|
|
131
131
|
}) => void;
|
|
132
132
|
deleteContextMode: (id: string) => void;
|
|
133
133
|
repairContext: () => void;
|
|
134
|
-
toggleGoalAutonomous: (autonomous: boolean) => void;
|
|
135
134
|
startGoal: (title: string, phases?: unknown[] | undefined, autonomous?: boolean) => void;
|
|
136
135
|
pauseGoal: () => void;
|
|
137
136
|
resumeGoal: () => void;
|
|
@@ -4,4 +4,6 @@ export declare function handleGoalProgress(msg: WSServerMessage): void;
|
|
|
4
4
|
export declare function handleGoalLifecycle(msg: WSServerMessage): void;
|
|
5
5
|
export declare function handleGoalList(msg: WSServerMessage): void;
|
|
6
6
|
export declare function handleGoalUpdated(msg: WSServerMessage): void;
|
|
7
|
+
export declare function handleGoalRefining(msg: WSServerMessage): void;
|
|
8
|
+
export declare function handleGoalStateError(msg: WSServerMessage): void;
|
|
7
9
|
//# sourceMappingURL=goal-handlers.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { WSServerMessage } from '@/types';
|
|
2
|
+
export declare function removeServerQueuedPrompt(sessionId: string, id: string): void;
|
|
3
|
+
export declare function clearServerQueue(sessionId: string): void;
|
|
4
|
+
/**
|
|
5
|
+
* Ask for a session's queue when the session starts on this connection — the
|
|
6
|
+
* moment the capability is known. Opening the session is also the server's cue
|
|
7
|
+
* to run whatever a previous host left queued.
|
|
8
|
+
*/
|
|
9
|
+
export declare function requestPromptQueue(msg: WSServerMessage): void;
|
|
10
|
+
declare function handleQueueState(msg: WSServerMessage): void;
|
|
11
|
+
/** A queued prompt started its turn: it becomes the user's message in the transcript. */
|
|
12
|
+
declare function handleQueueDrained(msg: WSServerMessage): void;
|
|
13
|
+
export declare const promptQueueHandlerMap: {
|
|
14
|
+
'queue.state': typeof handleQueueState;
|
|
15
|
+
'queue.drained': typeof handleQueueDrained;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=prompt-queue-handlers.d.ts.map
|