@wrongstack/webui 0.299.0 → 0.301.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/assets/AgentRosterView-BV6ysoGs.js +9 -0
  2. package/dist/assets/{AnalyticsDashboard-D58kSekC.js → AnalyticsDashboard-UWNP8zjE.js} +1 -1
  3. package/dist/assets/AudienceMemoryPanel-DwDKbvSA.js +3 -0
  4. package/dist/assets/ChangesView-DuVlGWkD.js +1 -0
  5. package/dist/assets/ChronicleDashboard-cs16n708.js +1 -0
  6. package/dist/assets/CodeEditor-sr50ljZN.js +1 -0
  7. package/dist/assets/CodeMap-CtK-C8gK.js +1 -0
  8. package/dist/assets/ConfirmModal-ndS17YwF.js +1 -0
  9. package/dist/assets/CronJobsPanel-Dovomns5.js +1 -0
  10. package/dist/assets/DeadCodeScanPanel-DjR4LLMs.js +2 -0
  11. package/dist/assets/DebugDashboard-jK1yp3qS.js +1 -0
  12. package/dist/assets/DesignGalleryView-CqXlEUzE.js +1 -0
  13. package/dist/assets/GoalView-CGNLrnA4.js +1 -0
  14. package/dist/assets/KanbanView--tAf_K7N.js +3 -0
  15. package/dist/assets/{MailboxDetailView-ZcKcOEAe.js → MailboxDetailView-0TBzZTdN.js} +1 -1
  16. package/dist/assets/MemoryManager-CDK_MO8A.js +1 -0
  17. package/dist/assets/{ModelPicker-DvNLZzkm.js → ModelPicker-BbBZuQwR.js} +1 -1
  18. package/dist/assets/OfficeMapPanel-68sVzHRD.js +4 -0
  19. package/dist/assets/OfficeMapPanel-D6yTfGIT.css +1 -0
  20. package/dist/assets/{ProcessMonitor-2nSk6sXA.js → ProcessMonitor-gFwiF8gX.js} +1 -1
  21. package/dist/assets/{QueuePanel-4KBBWFxj.js → QueuePanel-Cx-isRGl.js} +1 -1
  22. package/dist/assets/{RefreshDebugView-D3XnE53y.js → RefreshDebugView-C9tdu6Ld.js} +1 -1
  23. package/dist/assets/RequirementIntakeView-cPEw-RpV.js +1 -0
  24. package/dist/assets/SageTabs-BbK6VFO0.js +2 -0
  25. package/dist/assets/SddHub-NKvDRECi.js +2 -0
  26. package/dist/assets/SessionInspectView-DPG5qWhj.js +1 -0
  27. package/dist/assets/SessionList-ncl-20X_.js +1 -0
  28. package/dist/assets/SessionsDashboard-D23UVLr4.js +1 -0
  29. package/dist/assets/SetupScreen-D3XQ8MGk.js +1 -0
  30. package/dist/assets/{SkillDetailView-D7EQ2XtV.js → SkillDetailView-DDPhVFet.js} +1 -1
  31. package/dist/assets/SpecsView-afIS0QpX.js +1 -0
  32. package/dist/assets/TechStackView-kQ2OGxxw.js +1 -0
  33. package/dist/assets/{TerminalPanel-BL9ZPGJt.js → TerminalPanel-GcJWeldW.js} +1 -1
  34. package/dist/assets/{Toaster-CJI70aa-.js → Toaster-CgQA9256.js} +1 -1
  35. package/dist/assets/activity-B-cvKIfT.js +9 -0
  36. package/dist/assets/activity-Ba3aMzvo.js +9 -0
  37. package/dist/assets/activity-CRTVZ5A4.js +9 -0
  38. package/dist/assets/activity-DsSuflRW.js +9 -0
  39. package/dist/assets/activity-DxDRJ8kN.js +9 -0
  40. package/dist/assets/activity-VI776bUZ.js +9 -0
  41. package/dist/assets/activity-nVmsmqAI.js +9 -0
  42. package/dist/assets/chat-BPuAsrkF.js +1 -0
  43. package/dist/assets/chat-BfQBSiII.js +1 -0
  44. package/dist/assets/chat-BnkVCZ3Q.js +1 -0
  45. package/dist/assets/chat-CR2B97dj.js +1 -0
  46. package/dist/assets/chat-CdiY7G6Z.js +1 -0
  47. package/dist/assets/chat-DResBrkV.js +1 -0
  48. package/dist/assets/chat-Di8o0wDz.js +1 -0
  49. package/dist/assets/chat-store-DbxFVDwi.js +17 -0
  50. package/dist/assets/{common-DMM-xyW3.js → common-BXJbu5Y-.js} +1 -1
  51. package/dist/assets/{common-C9ikgX7d.js → common-BiNu_WzQ.js} +1 -1
  52. package/dist/assets/common-COVxQ0FV.js +1 -0
  53. package/dist/assets/{common-D29Zdkxb.js → common-Ch7JihXD.js} +1 -1
  54. package/dist/assets/{common-DoUBSHRY.js → common-DPaTeTls.js} +1 -1
  55. package/dist/assets/{common-vdwxzODB.js → common-DdGpRh8j.js} +1 -1
  56. package/dist/assets/{common-C5hY-d_0.js → common-pI6fYZW3.js} +1 -1
  57. package/dist/assets/i18n-COgumVF5.js +2 -0
  58. package/dist/assets/index-CtpViiZy.js +132 -0
  59. package/dist/assets/index-fIsq43fR.css +1 -0
  60. package/dist/assets/mailbox-store-C1mzoSqJ.js +1 -0
  61. package/dist/assets/{progress-ring-61A-xUEl.js → progress-ring-D_48qsBl.js} +1 -1
  62. package/dist/assets/{roster-ws-Dfg_187V.js → roster-ws-Da57e_sI.js} +1 -1
  63. package/dist/assets/session-store-Df7_hhe9.js +1 -0
  64. package/dist/assets/settings-Bb7_utQE.js +1 -0
  65. package/dist/assets/settings-Bd8zMwvC.js +1 -0
  66. package/dist/assets/settings-DdFgBMAw.js +1 -0
  67. package/dist/assets/settings-De6sXIFO.js +1 -0
  68. package/dist/assets/settings-E8SKMLxq.js +1 -0
  69. package/dist/assets/settings-zIY9-ivF.js +1 -0
  70. package/dist/assets/settings-zKBcRjqE.js +1 -0
  71. package/dist/assets/stores-ChEnUmic.js +7 -0
  72. package/dist/assets/ui-store-CE4-TlwB.js +1 -0
  73. package/dist/assets/useWebSocket-_gk4MRJz.js +29 -0
  74. package/dist/assets/{view-navigation-DxfiZrXS.js → view-navigation-DIDEcp4V.js} +1 -1
  75. package/dist/assets/ws-client-TTMa0XaT.js +1 -0
  76. package/dist/components/AgentCard.d.ts +21 -0
  77. package/dist/components/AgentsPage.d.ts +0 -3
  78. package/dist/components/AutonomyPicker.d.ts +1 -1
  79. package/dist/components/ChatInput/refine-panel-host.d.ts +2 -2
  80. package/dist/components/ChatView/auto-collapse.d.ts +42 -0
  81. package/dist/components/ConfirmModal.d.ts +7 -2
  82. package/dist/components/FallbackModal.d.ts +2 -0
  83. package/dist/components/KanbanBoardState.d.ts +1 -1
  84. package/dist/components/KanbanVerificationDashboard.d.ts +0 -6
  85. package/dist/components/SettingsPanel/PluginToggleList.d.ts +11 -3
  86. package/dist/components/SettingsPanel/ShadowSection.d.ts +18 -1
  87. package/dist/components/SettingsPanel/brain-section-options.d.ts +27 -55
  88. package/dist/components/TaskCard.d.ts +0 -1
  89. package/dist/components/TaskRiskPanel.d.ts +10 -3
  90. package/dist/components/TechStackView/shared.d.ts +11 -6
  91. package/dist/components/ThemeProvider.d.ts +6 -1
  92. package/dist/components/agent-roster-data.d.ts +2 -1
  93. package/dist/components/index.d.ts +0 -1
  94. package/dist/hooks/useWebSocket.d.ts +10 -2
  95. package/dist/hooks/ws-handlers/files-mailbox-handlers.d.ts +1 -0
  96. package/dist/hooks/ws-handlers/misc-handlers.d.ts +13 -0
  97. package/dist/hooks/ws-handlers/session-handlers.d.ts +1 -0
  98. package/dist/index.css +62 -0
  99. package/dist/index.html +18 -17
  100. package/dist/index.js +26640 -12728
  101. package/dist/lib/file-icons.d.ts +3 -3
  102. package/dist/lib/kanban-board-active.d.ts +19 -0
  103. package/dist/lib/palettes.d.ts +37 -0
  104. package/dist/lib/plugin-enablement.d.ts +1 -1
  105. package/dist/lib/ws-client.d.ts +24 -4
  106. package/dist/providers.json +7 -7
  107. package/dist/stores/config-store.d.ts +9 -1
  108. package/dist/stores/context-editor-store.d.ts +9 -1
  109. package/dist/stores/fallback-store.d.ts +30 -0
  110. package/dist/stores/fleet-store.d.ts +14 -1
  111. package/dist/stores/index.d.ts +2 -0
  112. package/dist/stores/local-prefs.d.ts +13 -0
  113. package/dist/stores/mailbox-store.d.ts +2 -0
  114. package/dist/stores/session-store.d.ts +9 -1
  115. package/dist/stores/ui-store.d.ts +2 -0
  116. package/dist/types/brain.d.ts +2 -0
  117. package/dist/types/client-message.d.ts +19 -2
  118. package/dist/types/protocol-core.d.ts +21 -0
  119. package/dist/types/runtime.d.ts +22 -0
  120. package/dist/types/server-message.d.ts +15 -4
  121. package/package.json +9 -9
  122. package/dist/assets/AgentRosterView-BqojERFR.js +0 -11
  123. package/dist/assets/AudienceMemoryPanel-Cc1UkbDl.js +0 -3
  124. package/dist/assets/ChangesView-BKU80ANq.js +0 -1
  125. package/dist/assets/ChronicleDashboard-CvCS1Dj1.js +0 -1
  126. package/dist/assets/CodeEditor-BHZQhx_8.js +0 -1
  127. package/dist/assets/CodeMap-qllGEFLB.js +0 -1
  128. package/dist/assets/CronJobsPanel-DD5mhZ4Q.js +0 -1
  129. package/dist/assets/DeadCodeScanPanel-PB-c8et_.js +0 -2
  130. package/dist/assets/DebugDashboard-Q8QiVflQ.js +0 -1
  131. package/dist/assets/DesignGalleryView-CGOtWO7s.js +0 -1
  132. package/dist/assets/GoalView-Dlk42vW7.js +0 -1
  133. package/dist/assets/KanbanView-DIP6kKmU.js +0 -3
  134. package/dist/assets/MemoryManager-B7620q_K.js +0 -1
  135. package/dist/assets/OfficeMapPanel-BFIF-EMt.css +0 -1
  136. package/dist/assets/OfficeMapPanel-DKJNTtOZ.js +0 -4
  137. package/dist/assets/RequirementIntakeView-BMxlf8bt.js +0 -1
  138. package/dist/assets/SageTabs-g1hO2hJ0.js +0 -2
  139. package/dist/assets/SddHub-Kv_TbTgT.js +0 -2
  140. package/dist/assets/SessionInspectView-PnKTvyvP.js +0 -1
  141. package/dist/assets/SessionList-BeinIC-h.js +0 -1
  142. package/dist/assets/SessionsDashboard-DEG_BylE.js +0 -1
  143. package/dist/assets/SetupScreen-DxJwZ1OZ.js +0 -1
  144. package/dist/assets/SpecsView-Fm7pYYcj.js +0 -1
  145. package/dist/assets/TechStackView-Bo_UenRF.js +0 -1
  146. package/dist/assets/activity-BCgOEWgR.js +0 -5
  147. package/dist/assets/activity-BQ0zqkw2.js +0 -5
  148. package/dist/assets/activity-CAovbq3e.js +0 -5
  149. package/dist/assets/activity-CFQyCvgu.js +0 -5
  150. package/dist/assets/activity-CdQf7zRK.js +0 -5
  151. package/dist/assets/activity-DACvyn2-.js +0 -5
  152. package/dist/assets/activity-DOwYydU-.js +0 -5
  153. package/dist/assets/chat-CRmMDzCb.js +0 -1
  154. package/dist/assets/chat-CwnuX7tG.js +0 -1
  155. package/dist/assets/chat-DLn1hY01.js +0 -1
  156. package/dist/assets/chat-DSEq1Bdz.js +0 -1
  157. package/dist/assets/chat-DxLD17ER.js +0 -1
  158. package/dist/assets/chat-DzPxYALH.js +0 -1
  159. package/dist/assets/chat-OunddzYy.js +0 -1
  160. package/dist/assets/chat-store-CtOyUCdF.js +0 -17
  161. package/dist/assets/common-BfVFjVhf.js +0 -1
  162. package/dist/assets/i18n-B0hsnanh.js +0 -2
  163. package/dist/assets/index-DHdO0CRE.js +0 -132
  164. package/dist/assets/index-DKrFQ76m.css +0 -1
  165. package/dist/assets/mailbox-store-D8TvJsuk.js +0 -1
  166. package/dist/assets/session-store-b2KGFwkX.js +0 -1
  167. package/dist/assets/settings-B5xal2R3.js +0 -1
  168. package/dist/assets/settings-BHtFy8EG.js +0 -1
  169. package/dist/assets/settings-Bss5hBla.js +0 -1
  170. package/dist/assets/settings-BzrLCVRP.js +0 -1
  171. package/dist/assets/settings-C7RdvmLZ.js +0 -1
  172. package/dist/assets/settings-Dd94HoV6.js +0 -1
  173. package/dist/assets/settings-Dm9THFe8.js +0 -1
  174. package/dist/assets/stores-BptlyD_v.js +0 -7
  175. package/dist/assets/ui-store-BsBnjO3w.js +0 -1
  176. package/dist/assets/useWebSocket-Bc4S0N4r.js +0 -29
  177. package/dist/assets/ws-client-DqFoX4jJ.js +0 -1
  178. package/dist/components/AgentsMonitor.d.ts +0 -26
  179. package/dist/components/FleetMonitor.d.ts +0 -21
  180. package/dist/lib/accent-colors.d.ts +0 -136
@@ -16,7 +16,6 @@ export interface TaskItem {
16
16
  export declare const TASK_STATUS_CONFIG: Record<TaskItem['status'], {
17
17
  icon: React.ReactNode;
18
18
  color: string;
19
- label: string;
20
19
  }>;
21
20
  export declare const PRIORITY_BADGE: Record<TaskItem['priority'], string>;
22
21
  export declare const TYPE_BADGE: Record<TaskItem['type'], string>;
@@ -1,12 +1,19 @@
1
1
  import type { KanbanBoard, KanbanEvent, KanbanTask } from '@wrongstack/kanban';
2
2
  export type TaskRiskSeverity = 'critical' | 'warning' | 'info';
3
+ /**
4
+ * A finding carries i18n KEYS, not prose: `analyzeTaskRisk` is a pure function
5
+ * used outside React (KanbanColumnView calls it for badge counts), so it must
6
+ * not depend on a translator. The panel resolves the keys at render time and
7
+ * feeds `detailParams` into the interpolation.
8
+ */
3
9
  export interface TaskRiskFinding {
4
10
  id: string;
5
11
  severity: TaskRiskSeverity;
6
12
  category: 'operational' | 'audit';
7
- title: string;
8
- detail: string;
9
- remediation: string;
13
+ titleKey: string;
14
+ detailKey: string;
15
+ detailParams?: Record<string, string | number>;
16
+ remediationKey: string;
10
17
  }
11
18
  export interface TaskRiskAssessment {
12
19
  score: number;
@@ -6,7 +6,7 @@
6
6
  import type { ComponentType } from 'react';
7
7
  import type { TechStackCoverage, TechStackDependency, TechStackFinding, TechStackFindingSeverity } from '@/stores';
8
8
  export interface StatusMeta {
9
- readonly label: string;
9
+ readonly labelKey: string;
10
10
  /** Full literal class strings. */
11
11
  readonly badge: string;
12
12
  readonly dot: string;
@@ -25,8 +25,11 @@ export interface StatusMeta {
25
25
  export declare const STATUS_META: Record<string, StatusMeta>;
26
26
  export declare function statusMeta(status: string): StatusMeta;
27
27
  export interface EcosystemMeta {
28
- /** Human-readable display name for the ecosystem. */
29
- readonly label: string;
28
+ /** Human-readable display name a proper noun (npm, Python, Rust…), so it
29
+ * is NOT translated. The unknown-ecosystem fallback uses `labelKey`. */
30
+ readonly label?: string | undefined;
31
+ /** i18n key, set only where the label is real display copy. */
32
+ readonly labelKey?: string | undefined;
30
33
  /** Optional lucide-react icon component for visual identification. */
31
34
  readonly icon?: ComponentType<{
32
35
  className?: string;
@@ -41,6 +44,8 @@ export interface EcosystemMeta {
41
44
  * for the UI to display a human-readable label.
42
45
  */
43
46
  export declare const ECOSYSTEM_META: Record<string, EcosystemMeta>;
47
+ /** Display name for an ecosystem: proper noun as-is, fallback via the catalog. */
48
+ export declare function ecosystemLabel(ecosystem: string, t: (key: string) => string): string;
44
49
  export declare function ecosystemMeta(ecosystem: string): EcosystemMeta;
45
50
  /**
46
51
  * Renders the ecosystem icon if one is registered, or nothing.
@@ -55,15 +60,15 @@ export declare function EcosystemIcon({ ecosystem, className, }: {
55
60
  export declare function needsAttention(dep: TechStackDependency): boolean;
56
61
  export declare const SEVERITY_ORDER: readonly TechStackFindingSeverity[];
57
62
  export declare const SEVERITY_META: Record<TechStackFindingSeverity, {
58
- label: string;
63
+ labelKey: string;
59
64
  badge: string;
60
65
  }>;
61
66
  export declare const ACTION_LABELS: Record<string, string>;
62
67
  export interface CoverageMeta {
63
- readonly label: string;
68
+ readonly labelKey: string;
64
69
  readonly badge: string;
65
70
  /** Short inline text for the dependency row subtitle (e.g. "limited", "best-effort"). */
66
- readonly note: string | undefined;
71
+ readonly noteKey: string | undefined;
67
72
  }
68
73
  export declare const COVERAGE_META: Record<TechStackCoverage, CoverageMeta>;
69
74
  /** Lookup helper that returns the FALLBACK for unknown coverage strings. */
@@ -1,15 +1,20 @@
1
+ import { type PaletteId } from '@/lib/palettes';
1
2
  import type React from 'react';
2
3
  type Theme = 'light' | 'dark' | 'system';
3
4
  interface ThemeProviderProps {
4
5
  children: React.ReactNode;
5
6
  defaultTheme?: Theme | undefined;
6
7
  storageKey?: string | undefined;
8
+ defaultPalette?: PaletteId | undefined;
9
+ paletteStorageKey?: string | undefined;
7
10
  }
8
11
  interface ThemeProviderState {
9
12
  theme: Theme;
10
13
  setTheme: (theme: Theme) => void;
14
+ palette: PaletteId;
15
+ setPalette: (palette: PaletteId) => void;
11
16
  }
12
- export declare function ThemeProvider({ children, defaultTheme, storageKey, }: ThemeProviderProps): React.JSX.Element;
17
+ export declare function ThemeProvider({ children, defaultTheme, storageKey, defaultPalette, paletteStorageKey, }: ThemeProviderProps): React.JSX.Element;
13
18
  export declare function useTheme(): ThemeProviderState;
14
19
  export {};
15
20
  //# sourceMappingURL=ThemeProvider.d.ts.map
@@ -54,7 +54,8 @@ export type RosterTab = 'live' | 'catalog' | 'learning' | 'customize';
54
54
  interface TabDef {
55
55
  id: RosterTab;
56
56
  icon: React.ReactNode;
57
- label: string;
57
+ /** i18n key resolved at render time — this module is hook-free by design. */
58
+ labelKey: string;
58
59
  }
59
60
  export declare const TABS: TabDef[];
60
61
  export declare const KNOWN_ROLES: RosterAgentEntry[];
@@ -27,7 +27,6 @@ export { TaskBoard, type TaskItem } from './TaskBoard';
27
27
  export { ContextBar, ContextFillBar } from './ContextBar';
28
28
  export { ContextBreakdownModal } from './ContextBreakdownModal';
29
29
  export { ContextDashboard } from './ContextDashboard';
30
- export { AgentsPage } from './AgentsPage';
31
30
  export { SetupScreen } from './SetupScreen';
32
31
  export { RefinePanel } from './RefinePanel';
33
32
  export { QueuePanel } from './QueuePanel';
@@ -1,5 +1,5 @@
1
- import type { ProviderCustomModelWire } from '@/types';
2
1
  import type { WrongStackWebSocketClient, WSSendOptions } from '@/lib/ws-client';
2
+ import type { ProviderCustomModelWire } from '@/types';
3
3
  /**
4
4
  * Mounts the WebSocket connection and installs event handlers.
5
5
  * Call this from App.tsx (top of the tree) and nowhere else.
@@ -20,7 +20,15 @@ export declare function useWebSocketBootstrap(): void;
20
20
  */
21
21
  export declare function useWebSocket(): {
22
22
  client: WrongStackWebSocketClient;
23
- sendMessage: (content: string, images?: import('@/types').WSUserMessageImage[]) => string | null;
23
+ sendMessage: (content: string, images?: import('@/types').WSUserMessageImage[], freshContext?: boolean) => string | null;
24
+ adviseTopic: (prompt: string) => Promise<import("@/types").SessionScopedPayload & {
25
+ requestId: string;
26
+ suggestNewContext: boolean;
27
+ confidence: number;
28
+ reason: string;
29
+ nextTopic?: string | undefined;
30
+ source: 'explicit' | 'model' | 'cache' | 'local';
31
+ }>;
24
32
  sendAbort: () => void;
25
33
  sendMailboxMessage: (opts: Parameters<(opts: import("@/lib/ws-client").WSMailboxSendOptions) => string>[0]) => string;
26
34
  sendConfirm: (id: string, decision: 'yes' | 'no' | 'always' | 'deny') => void;
@@ -10,6 +10,7 @@ export declare function handleMailboxMessages(msg: WSServerMessage): void;
10
10
  export declare function handleMailboxAgents(msg: WSServerMessage): void;
11
11
  export declare function handleMailboxReceived(msg: WSServerMessage): void;
12
12
  export declare function handleMailboxAgentRegistered(_msg: WSServerMessage): void;
13
+ export declare function handleMailboxAgentDeregistered(msg: WSServerMessage): void;
13
14
  export declare function handleMailboxCleared(_msg: WSServerMessage): void;
14
15
  export declare function handleMailboxPurged(_msg: WSServerMessage): void;
15
16
  export declare function handleMailboxCompacted(msg: WSServerMessage): void;
@@ -7,6 +7,19 @@ export declare function handleGoalUpdated(msg: WSServerMessage): void;
7
7
  export declare function handlePrefsUpdated(msg: WSServerMessage): void;
8
8
  export declare function handleBrainStatus(msg: WSServerMessage): void;
9
9
  export declare function handleBrainAnswer(msg: WSServerMessage): void;
10
+ /**
11
+ * Council seat votes are NOT buffered here: the council log store already
12
+ * tracks each panel's seats per request id (deduped by seat id, retained as
13
+ * whole panels in its ring buffer). `brain.council_vote` fires once per seat
14
+ * and `brain.council_resolved` once per panel, both from inside
15
+ * `council.decide()`. Both reached the browser and were dropped on the
16
+ * floor, so the most expensive Brain tier — one provider call per seat — was
17
+ * completely invisible in the UI. The resolved handler reads the panel's
18
+ * seats back from the store, so vote eviction is per-panel (per-request): a
19
+ * live panel's seats can never be dropped by other requests' vote traffic
20
+ * (the old global 50-vote buffer could). Whole panels still age out of the
21
+ * store's ring buffer, which is the intended log retention.
22
+ */
10
23
  export declare function handleBrainEvent(msg: WSServerMessage): void;
11
24
  export declare function handleMemoryEvent(msg: WSServerMessage): void;
12
25
  export declare function handleCollabEvent(msg: WSServerMessage): void;
@@ -11,6 +11,7 @@ export declare function handleIterationLimitReached(msg: WSServerMessage): void;
11
11
  export declare function handleProviderRetry(msg: WSServerMessage): void;
12
12
  export declare function handleProviderError(msg: WSServerMessage): void;
13
13
  export declare function handleProviderFallback(msg: WSServerMessage): void;
14
+ export declare function handleProviderFallbackPending(msg: WSServerMessage): void;
14
15
  export declare function handleProviderStatusChanged(msg: WSServerMessage): void;
15
16
  export declare function handleProviderStatusSnapshot(msg: WSServerMessage): void;
16
17
  export declare function handleProviderActiveBlocked(msg: WSServerMessage): void;
package/dist/index.css CHANGED
@@ -1007,6 +1007,36 @@
1007
1007
  --desk-floor: hsl(var(--foreground) / 0.035);
1008
1008
  --desk-aura: hsl(var(--muted-foreground) / 0.044);
1009
1009
  }
1010
+ .dark .agent-office__lane {
1011
+ --desk-wall: hsl(var(--info) / 0.16);
1012
+ --desk-floor: hsl(var(--warning) / 0.16);
1013
+ --desk-aura: hsl(var(--warning) / 0.14);
1014
+ }
1015
+ .dark .agent-office__lane.is-desk-mint {
1016
+ --desk-wall: hsl(var(--success) / 0.18);
1017
+ --desk-floor: hsl(var(--info) / 0.14);
1018
+ --desk-aura: hsl(var(--success) / 0.16);
1019
+ }
1020
+ .dark .agent-office__lane.is-desk-ocean {
1021
+ --desk-wall: hsl(var(--info) / 0.2);
1022
+ --desk-floor: hsl(var(--primary) / 0.14);
1023
+ --desk-aura: hsl(var(--info) / 0.16);
1024
+ }
1025
+ .dark .agent-office__lane.is-desk-plum {
1026
+ --desk-wall: hsl(var(--primary) / 0.18);
1027
+ --desk-floor: hsl(var(--warning) / 0.14);
1028
+ --desk-aura: hsl(var(--primary) / 0.16);
1029
+ }
1030
+ .dark .agent-office__lane.is-desk-rose {
1031
+ --desk-wall: hsl(var(--destructive) / 0.16);
1032
+ --desk-floor: hsl(var(--warning) / 0.14);
1033
+ --desk-aura: hsl(var(--destructive) / 0.14);
1034
+ }
1035
+ .dark .agent-office__lane.is-desk-graphite {
1036
+ --desk-wall: hsl(var(--muted-foreground) / 0.14);
1037
+ --desk-floor: hsl(var(--foreground) / 0.1);
1038
+ --desk-aura: hsl(var(--muted-foreground) / 0.12);
1039
+ }
1010
1040
  .agent-office__lane:hover {
1011
1041
  transform: translateY(-1px);
1012
1042
  box-shadow: 0 13px 34px hsl(var(--shadow-color) / 0.1);
@@ -2443,6 +2473,38 @@ button.agent-office__parcel:hover {
2443
2473
  background: hsl(var(--primary) / 0.09);
2444
2474
  border-color: hsl(var(--primary) / 0.24);
2445
2475
  }
2476
+ .dark .agent-office__tool-glyph {
2477
+ border-color: hsl(var(--border));
2478
+ color: hsl(var(--muted-foreground));
2479
+ background: hsl(var(--muted) / 0.82);
2480
+ }
2481
+ .dark .agent-office__tool-glyph.is-read,
2482
+ .dark .agent-office__tool-glyph.is-web {
2483
+ border-color: hsl(var(--info) / 0.38);
2484
+ color: hsl(var(--info));
2485
+ background: hsl(var(--info) / 0.18);
2486
+ }
2487
+ .dark .agent-office__tool-glyph.is-write,
2488
+ .dark .agent-office__tool-glyph.is-edit {
2489
+ border-color: hsl(var(--warning) / 0.38);
2490
+ color: hsl(var(--warning));
2491
+ background: hsl(var(--warning) / 0.18);
2492
+ }
2493
+ .dark .agent-office__tool-glyph.is-terminal {
2494
+ border-color: hsl(var(--success) / 0.38);
2495
+ color: hsl(var(--success));
2496
+ background: hsl(var(--success) / 0.18);
2497
+ }
2498
+ .dark .agent-office__tool-glyph.is-search,
2499
+ .dark .agent-office__tool-glyph.is-memory {
2500
+ border-color: hsl(var(--primary) / 0.38);
2501
+ color: hsl(var(--primary));
2502
+ background: hsl(var(--primary) / 0.17);
2503
+ }
2504
+ .dark .agent-office__monitor .agent-office__tool-glyph {
2505
+ border: 0;
2506
+ background: transparent;
2507
+ }
2446
2508
  .agent-office__tool-glyph.is-active::after {
2447
2509
  position: absolute;
2448
2510
  inset: -4px;
package/dist/index.html CHANGED
@@ -5,38 +5,39 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/wrongstack.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>WrongStack WebUI</title>
8
- <script type="module" crossorigin src="/assets/index-DHdO0CRE.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-CtpViiZy.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/monaco-BLUV5g0U.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/markdown-sSmz-Ua_.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/vendor-BuarzSSb.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/utils-B-9lSDIn.js">
14
- <link rel="modulepreload" crossorigin href="/assets/chat-store-CtOyUCdF.js">
15
- <link rel="modulepreload" crossorigin href="/assets/ui-store-BsBnjO3w.js">
16
- <link rel="modulepreload" crossorigin href="/assets/activity-BQ0zqkw2.js">
17
- <link rel="modulepreload" crossorigin href="/assets/chat-DLn1hY01.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/chat-store-DbxFVDwi.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/activity-nVmsmqAI.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/chat-CdiY7G6Z.js">
18
17
  <link rel="modulepreload" crossorigin href="/assets/commandPalette-DpaemFux.js">
19
- <link rel="modulepreload" crossorigin href="/assets/common-BfVFjVhf.js">
20
- <link rel="modulepreload" crossorigin href="/assets/settings-BHtFy8EG.js">
18
+ <link rel="modulepreload" crossorigin href="/assets/common-COVxQ0FV.js">
19
+ <link rel="modulepreload" crossorigin href="/assets/settings-zIY9-ivF.js">
21
20
  <link rel="modulepreload" crossorigin href="/assets/setup-BFcmn89w.js">
22
21
  <link rel="modulepreload" crossorigin href="/assets/toasts-BL_8kH4B.js">
23
- <link rel="modulepreload" crossorigin href="/assets/i18n-B0hsnanh.js">
24
- <link rel="modulepreload" crossorigin href="/assets/session-store-b2KGFwkX.js">
25
- <link rel="modulepreload" crossorigin href="/assets/ws-client-DqFoX4jJ.js">
22
+ <link rel="modulepreload" crossorigin href="/assets/i18n-COgumVF5.js">
23
+ <link rel="modulepreload" crossorigin href="/assets/session-store-Df7_hhe9.js">
24
+ <link rel="modulepreload" crossorigin href="/assets/ws-client-TTMa0XaT.js">
26
25
  <link rel="modulepreload" crossorigin href="/assets/codemap-activity-store-DQfjo7-j.js">
27
- <link rel="modulepreload" crossorigin href="/assets/mailbox-store-D8TvJsuk.js">
28
- <link rel="modulepreload" crossorigin href="/assets/stores-BptlyD_v.js">
29
- <link rel="modulepreload" crossorigin href="/assets/view-navigation-DxfiZrXS.js">
26
+ <link rel="modulepreload" crossorigin href="/assets/mailbox-store-C1mzoSqJ.js">
27
+ <link rel="modulepreload" crossorigin href="/assets/ui-store-CE4-TlwB.js">
28
+ <link rel="modulepreload" crossorigin href="/assets/stores-ChEnUmic.js">
29
+ <link rel="modulepreload" crossorigin href="/assets/view-navigation-DIDEcp4V.js">
30
30
  <link rel="modulepreload" crossorigin href="/assets/codemap-index-store-COStDU-8.js">
31
- <link rel="modulepreload" crossorigin href="/assets/Toaster-CJI70aa-.js">
32
- <link rel="modulepreload" crossorigin href="/assets/useWebSocket-Bc4S0N4r.js">
31
+ <link rel="modulepreload" crossorigin href="/assets/Toaster-CgQA9256.js">
32
+ <link rel="modulepreload" crossorigin href="/assets/useWebSocket-_gk4MRJz.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/dialog-ftgTihmF.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/button-Dcy288Mc.js">
35
35
  <link rel="modulepreload" crossorigin href="/assets/input-fo9-BPBC.js">
36
- <link rel="modulepreload" crossorigin href="/assets/ModelPicker-DvNLZzkm.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/ConfirmModal-ndS17YwF.js">
37
+ <link rel="modulepreload" crossorigin href="/assets/ModelPicker-BbBZuQwR.js">
37
38
  <link rel="stylesheet" crossorigin href="/assets/monaco-Bowa0-zp.css">
38
39
  <link rel="stylesheet" crossorigin href="/assets/vendor-BMdWcCR4.css">
39
- <link rel="stylesheet" crossorigin href="/assets/index-DKrFQ76m.css">
40
+ <link rel="stylesheet" crossorigin href="/assets/index-fIsq43fR.css">
40
41
  </head>
41
42
  <body>
42
43
  <div id="root"></div>