@ai-matrx/chat 0.7.6 → 0.7.7

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 (151) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/agents/api/fetch-pending-calls.js +4 -3
  3. package/dist/agents/api/submit-tool-results.js +3 -6
  4. package/dist/agents/components/chat/begin-fresh-chat.js +2 -2
  5. package/dist/agents/components/inputs/smart-input/composer/ComposerSplash.js +2 -3
  6. package/dist/agents/components/inputs/smart-input/composer/useComposerMode.js +4 -2
  7. package/dist/agents/components/live-run/LiveRunDisplay.d.ts +7 -1
  8. package/dist/agents/components/live-run/LiveRunDisplay.js +3 -1
  9. package/dist/agents/components/messages-display/AgentConversationDisplay.js +1 -1
  10. package/dist/agents/components/messages-display/assistant/AgentEmptyMessageDisplay.js +4 -4
  11. package/dist/agents/components/messages-display/assistant/AssistantNoAnswer.js +1 -1
  12. package/dist/agents/components/messages-display/assistant/BreathingOrb.js +1 -1
  13. package/dist/agents/components/messages-display/assistant/InPlaceAnswerEditor.js +1 -1
  14. package/dist/agents/components/messages-display/citations/MessageSourcesRow.js +1 -1
  15. package/dist/agents/components/messages-display/conversation-tools/ConversationFindBar.js +4 -4
  16. package/dist/agents/components/messages-display/message-options/EditHistoryDialog.js +7 -7
  17. package/dist/agents/components/messages-display/user/AgentUserMessage.js +4 -4
  18. package/dist/agents/components/messages-display/user/CollabNoteMessage.js +2 -2
  19. package/dist/agents/components/messages-display/user/FirstTurnVariables.js +3 -3
  20. package/dist/agents/components/messages-display/user/PendingSendMessage.js +4 -4
  21. package/dist/agents/components/messages-display/user/RemarksTranscriptView.js +7 -7
  22. package/dist/agents/components/messages-display/user/ResourceAttachmentTile.js +9 -9
  23. package/dist/agents/components/messages-display/user/ResourceEditableToggleSamples.js +4 -4
  24. package/dist/agents/components/messages-display/user/UserActionBar.js +3 -3
  25. package/dist/agents/components/messages-display/user/UserMessageAttachmentStyleComparison.js +12 -12
  26. package/dist/agents/components/messages-display/user/UserMessageChipsDemo.js +19 -19
  27. package/dist/agents/components/messages-display/user/UserMessageHybridTileSamples.js +22 -22
  28. package/dist/agents/components/run/AgentRunnerPage.js +4 -4
  29. package/dist/agents/components/run/AssistantError.js +1 -1
  30. package/dist/agents/components/run/AssistantWarning.js +1 -1
  31. package/dist/agents/components/run/GenerationJobCard.js +5 -5
  32. package/dist/agents/components/run/IncompleteNote.js +1 -1
  33. package/dist/agents/components/run/RunJobWorkingLine.js +1 -1
  34. package/dist/agents/components/shared/AgentConversationColumn.js +1 -1
  35. package/dist/agents/components/shared/AgentHeaderMobile.js +6 -6
  36. package/dist/agents/components/shared/AgentModeController.js +1 -1
  37. package/dist/agents/components/shared/AutoInjectionSwitch.js +6 -6
  38. package/dist/agents/components/shared/DesktopFilterPanel.js +8 -8
  39. package/dist/agents/components/smart/AgentRunner.js +1 -1
  40. package/dist/agents/components/smart/CreateWithAiTabs.js +1 -1
  41. package/dist/agents/redux/agent-definition/agent-cache-bust-request.js +7 -7
  42. package/dist/agents/redux/execution-system/context-rules/receipt-check.js +2 -2
  43. package/dist/agents/redux/execution-system/inbox/inbox.thunks.d.ts +2 -2
  44. package/dist/agents/redux/execution-system/inbox/inbox.thunks.js +7 -15
  45. package/dist/agents/redux/execution-system/observational-memory/fetch-memory-cost.thunk.d.ts +1 -1
  46. package/dist/agents/redux/execution-system/observational-memory/fetch-memory-cost.thunk.js +7 -4
  47. package/dist/agents/redux/execution-system/selectors/aggregate.selectors.d.ts +1 -114
  48. package/dist/agents/redux/execution-system/selectors/aggregate.selectors.js +28 -43
  49. package/dist/agents/redux/execution-system/thunks/call-conversation-api.d.ts +44 -0
  50. package/dist/agents/redux/execution-system/thunks/call-conversation-api.js +78 -0
  51. package/dist/agents/redux/execution-system/thunks/continue-agent-json.d.ts +41 -0
  52. package/dist/agents/redux/execution-system/thunks/continue-agent-json.js +66 -0
  53. package/dist/agents/redux/execution-system/thunks/execute-instance.thunk.d.ts +20 -0
  54. package/dist/agents/redux/execution-system/thunks/execute-instance.thunk.js +9 -2
  55. package/dist/agents/redux/execution-system/thunks/launch-agent-execution.thunk.js +4 -6
  56. package/dist/agents/redux/execution-system/thunks/notify-and-play-dispatcher.d.ts +1 -5
  57. package/dist/agents/redux/execution-system/thunks/notify-and-play-dispatcher.js +2 -1
  58. package/dist/agents/redux/execution-system/thunks/resolve-base-url.js +7 -17
  59. package/dist/agents/redux/execution-system/thunks/settle-after-stop.thunk.js +2 -2
  60. package/dist/agents/redux/execution-system/thunks/smart-execute.thunk.js +3 -3
  61. package/dist/agents/redux/execution-system/utils/continuation-body.d.ts +8 -2
  62. package/dist/agents/redux/execution-system/utils/continuation-body.js +3 -3
  63. package/dist/agents/redux/execution-system/utils/required-organization.d.ts +18 -0
  64. package/dist/agents/redux/execution-system/utils/required-organization.js +14 -10
  65. package/dist/agents/services/mcp-connections.service.js +5 -8
  66. package/dist/agents/ui-first-tools/dispatcher/dispatch-ui-first-tool.thunk.js +2 -1
  67. package/dist/host/defaults/files-host.js +11 -1
  68. package/dist/host/defaults/server-api.d.ts +1 -15
  69. package/dist/host/defaults/server-api.js +0 -21
  70. package/dist/host/defaults/server.d.ts +2 -1
  71. package/dist/host/defaults/server.js +8 -6
  72. package/dist/host/request-headers.d.ts +26 -0
  73. package/dist/host/request-headers.js +15 -0
  74. package/dist/host/server/call-api.d.ts +0 -13
  75. package/dist/host/server/call-api.js +0 -2
  76. package/dist/host/server/matrx-transport.d.ts +0 -1
  77. package/dist/host/server/matrx-transport.js +0 -2
  78. package/dist/store/root-state.d.ts +4 -21
  79. package/dist/surfaces/hooks/useSurfaceConfig.js +2 -1
  80. package/dist/surfaces/runtime/surface-feedback.js +2 -2
  81. package/dist/tool-call-visualization/components/ArtifactResultBar.js +4 -4
  82. package/dist/tool-call-visualization/components/ChatResultColumn.d.ts +1 -1
  83. package/dist/tool-call-visualization/components/ToolCallBatch.js +2 -2
  84. package/dist/tool-call-visualization/components/ToolCallVisualization.js +5 -5
  85. package/dist/tool-call-visualization/components/ToolTabBodies.js +12 -12
  86. package/dist/tool-call-visualization/components/ToolUpdatesOverlay.js +4 -4
  87. package/dist/tool-call-visualization/configured-rows/ConfiguredToolRow.js +8 -8
  88. package/dist/tool-call-visualization/configured-rows/CopyToolButton.js +1 -1
  89. package/dist/tool-call-visualization/configured-rows/ToolProgressView.js +7 -7
  90. package/dist/tool-call-visualization/configured-rows/field-components.js +6 -6
  91. package/dist/tool-call-visualization/registry/GenericRenderer.js +4 -4
  92. package/dist/tool-call-visualization/renderers/_shared-entity/EmptyResultCard.js +1 -1
  93. package/dist/tool-call-visualization/renderers/_shared-entity/EntityCard.js +5 -5
  94. package/dist/tool-call-visualization/renderers/_shared-entity/PartPeekPopover.js +2 -2
  95. package/dist/tool-call-visualization/renderers/_shared-entity/ToolGlyph.js +1 -1
  96. package/dist/tool-call-visualization/renderers/_shared-entity/ToolResultCard.js +6 -6
  97. package/dist/tool-call-visualization/renderers/agent-call/AgentCallInline.js +5 -5
  98. package/dist/tool-call-visualization/renderers/agent-call/CollabCallCard.js +4 -4
  99. package/dist/tool-call-visualization/renderers/agent-call/ImageGenerationResult.js +1 -1
  100. package/dist/tool-call-visualization/renderers/ask/AskInline.js +3 -3
  101. package/dist/tool-call-visualization/renderers/ask-person/AskPersonInline.js +2 -2
  102. package/dist/tool-call-visualization/renderers/cloud-browser/CloudBrowserRunCard.js +5 -5
  103. package/dist/tool-call-visualization/renderers/ctx/CtxBatchInline.js +3 -3
  104. package/dist/tool-call-visualization/renderers/ctx/CtxGetInline.js +2 -2
  105. package/dist/tool-call-visualization/renderers/ctx/CtxItemCard.js +3 -3
  106. package/dist/tool-call-visualization/renderers/ctx/CtxPatchInline.js +6 -6
  107. package/dist/tool-call-visualization/renderers/dictionary/DictEntryList.js +12 -12
  108. package/dist/tool-call-visualization/renderers/dictionary/DictionaryOverlay.js +5 -5
  109. package/dist/tool-call-visualization/renderers/fs/FsInline.js +7 -7
  110. package/dist/tool-call-visualization/renderers/news-api/NewsInline.js +17 -17
  111. package/dist/tool-call-visualization/renderers/news-api/NewsOverlay.js +12 -12
  112. package/dist/tool-call-visualization/renderers/random-wheel/RandomWheelInline.js +34 -34
  113. package/dist/tool-call-visualization/renderers/records/RecordsInline.js +1 -1
  114. package/dist/tool-call-visualization/renderers/research/ResearchInline.js +10 -10
  115. package/dist/tool-call-visualization/renderers/research/ResearchOverlay.js +19 -19
  116. package/dist/tool-call-visualization/renderers/research/SubagentReportBlock.js +11 -11
  117. package/dist/tool-call-visualization/renderers/scrape/ScrapeInline.js +18 -18
  118. package/dist/tool-call-visualization/renderers/scrape/ScrapeOverlay.js +17 -17
  119. package/dist/tool-call-visualization/renderers/search/SearchInline.js +30 -30
  120. package/dist/tool-call-visualization/renderers/search/SearchOverlay.js +40 -40
  121. package/dist/tool-call-visualization/renderers/shell/ShellInline.js +3 -3
  122. package/dist/tool-call-visualization/renderers/skill/SkillInline.js +5 -5
  123. package/dist/tool-call-visualization/renderers/sql/DbSchemaInline.js +7 -7
  124. package/dist/tool-call-visualization/renderers/sql/SqlInline.js +4 -4
  125. package/dist/tool-call-visualization/renderers/workbook/WorkbookGrid.js +4 -4
  126. package/dist/tool-call-visualization/renderers/workbook/WorkbookInline.js +2 -2
  127. package/dist/tool-call-visualization/renderers/workbook/WorkbookOverlay.js +7 -7
  128. package/dist/tool-call-visualization/renderers/working-document/PatchDiffInline.js +3 -3
  129. package/dist/tool-call-visualization/result-fields/EmptyResult.js +1 -1
  130. package/dist/tool-call-visualization/result-fields/KeyValueGrid.js +9 -9
  131. package/dist/tool-call-visualization/result-fields/ResultFile.js +4 -4
  132. package/dist/tool-call-visualization/result-fields/ResultJson.js +1 -1
  133. package/dist/tool-call-visualization/result-fields/ResultMedia.js +2 -2
  134. package/dist/tool-call-visualization/result-fields/ResultScalar.js +2 -2
  135. package/dist/tool-call-visualization/result-fields/ResultTable.js +10 -10
  136. package/dist/tool-call-visualization/result-fields/ResultValue.js +7 -7
  137. package/dist/tool-call-visualization/result-fields/ShortId.js +3 -3
  138. package/dist/tool-call-visualization/result-fields/ToolErrorCard.js +4 -4
  139. package/dist/tool-call-visualization/result-fields/UrlChips.js +3 -3
  140. package/dist/tool-call-visualization/surface-write/SurfaceWriteDiff.js +2 -2
  141. package/dist/tool-call-visualization/surface-write/SurfaceWriteStress.js +1 -1
  142. package/dist/tool-call-visualization/window-panel/ToolCallWindowPanel.js +9 -9
  143. package/dist/ui/mandates-storage/mandateStorage.d.ts +36 -0
  144. package/dist/ui/mandates-storage/shortcutStorage.d.ts +9 -0
  145. package/dist/ui/markdown-stream/EnhancedChatMarkdown.js +22 -0
  146. package/dist/ui/markdown-stream/MarkdownStreamImpl.js +3 -3
  147. package/dist/ui/markdown-stream/StreamTextFallback.d.ts +6 -0
  148. package/dist/ui/markdown-stream/StreamTextFallback.js +23 -0
  149. package/dist/ui/markdown-stream/merge-thinking-across-hidden.d.ts +19 -0
  150. package/dist/ui/markdown-stream/merge-thinking-across-hidden.js +21 -0
  151. package/package.json +12 -7
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { cn } from "@ai-matrx/design-system";
3
3
  const ACCENT_ICON = {
4
- primary: "text-primary",
4
+ primary: "text-[color:var(--mx-chat-accent,hsl(var(--primary)))]",
5
5
  blue: "text-blue-600 dark:text-blue-400",
6
6
  violet: "text-violet-600 dark:text-violet-400",
7
7
  cyan: "text-cyan-600 dark:text-cyan-400",
@@ -16,7 +16,7 @@ import {
16
16
  import { cn } from "@ai-matrx/design-system";
17
17
  function ToolResultCard({
18
18
  icon: Icon,
19
- iconClassName = "text-primary",
19
+ iconClassName = "text-[color:var(--mx-chat-accent,hsl(var(--primary)))]",
20
20
  title,
21
21
  sub,
22
22
  children,
@@ -49,7 +49,7 @@ function ToolResultCard({
49
49
  }
50
50
  },
51
51
  className: cn(
52
- "flex w-full cursor-pointer items-center gap-3 border border-border/50 bg-card px-4 py-2.5 text-left transition-colors hover:bg-accent/30",
52
+ "flex w-full cursor-pointer items-center gap-3 border border-border/50 bg-[var(--mx-chat-card,hsl(var(--card)))] px-4 py-2.5 text-left transition-colors hover:bg-accent/30",
53
53
  showBody ? "rounded-t-xl border-b-0" : "rounded-xl"
54
54
  ),
55
55
  children: [
@@ -61,8 +61,8 @@ function ToolResultCard({
61
61
  }
62
62
  ),
63
63
  /* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1", children: [
64
- /* @__PURE__ */ jsx("span", { className: "block break-words text-sm font-medium text-foreground sm:truncate", children: title }),
65
- sub && /* @__PURE__ */ jsx("span", { className: "block break-words text-xs text-muted-foreground sm:truncate", children: sub })
64
+ /* @__PURE__ */ jsx("span", { className: "block break-words text-sm font-medium text-[color:var(--mx-chat-text,hsl(var(--foreground)))] sm:truncate", children: title }),
65
+ sub && /* @__PURE__ */ jsx("span", { className: "block break-words text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] sm:truncate", children: sub })
66
66
  ] }),
67
67
  headerAction && /* @__PURE__ */ jsx(
68
68
  "span",
@@ -81,7 +81,7 @@ function ToolResultCard({
81
81
  tabIndex: 0,
82
82
  onClick: (e) => e.stopPropagation(),
83
83
  onKeyDown: (e) => e.stopPropagation(),
84
- className: "flex min-h-11 shrink-0 cursor-pointer items-center gap-1.5 rounded-xl border border-border/70 bg-background/60 px-2.5 py-1.5 text-xs font-medium text-muted-foreground transition-colors hover:bg-accent/40 hover:text-foreground sm:min-h-0",
84
+ className: "flex min-h-11 shrink-0 cursor-pointer items-center gap-1.5 rounded-xl border border-border/70 bg-background/60 px-2.5 py-1.5 text-xs font-medium text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] transition-colors hover:bg-accent/40 hover:text-[color:var(--mx-chat-text,hsl(var(--foreground)))] sm:min-h-0",
85
85
  "aria-label": "Open options",
86
86
  children: [
87
87
  /* @__PURE__ */ jsx(PanelRightOpen, { className: "size-3.5" }),
@@ -124,7 +124,7 @@ function ToolResultCard({
124
124
  ]
125
125
  }
126
126
  ),
127
- showBody && /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-b-xl border border-t-0 border-border/50 bg-card", children })
127
+ showBody && /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-b-xl border border-t-0 border-border/50 bg-[var(--mx-chat-card,hsl(var(--card)))]", children })
128
128
  ] });
129
129
  }
130
130
  var ToolResultCard_default = ToolResultCard;
@@ -54,19 +54,19 @@ function ImageGenerationLoading() {
54
54
  className: "absolute -inset-8 rotate-12 bg-[linear-gradient(110deg,transparent_35%,color-mix(in_oklab,var(--color-background)_80%,transparent)_50%,transparent_65%)] bg-[length:200%_100%]"
55
55
  }
56
56
  ),
57
- /* @__PURE__ */ jsx(ImageIcon, { className: "relative h-8 w-8 text-primary" }),
57
+ /* @__PURE__ */ jsx(ImageIcon, { className: "relative h-8 w-8 text-[color:var(--mx-chat-accent,hsl(var(--primary)))]" }),
58
58
  /* @__PURE__ */ jsx(Aperture, { className: "absolute right-2 top-2 h-4 w-4 text-violet-500 animate-pulse" }),
59
59
  /* @__PURE__ */ jsx("span", { className: "absolute bottom-2 left-2 h-1.5 w-1.5 rounded-full bg-cyan-400 shadow-[0_0_10px_2px_rgb(34_211_238_/_0.55)]" })
60
60
  ] }),
61
61
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 space-y-2.5", children: [
62
62
  /* @__PURE__ */ jsxs("div", { children: [
63
- /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-foreground", children: "Composing your image" }),
64
- /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs leading-relaxed text-muted-foreground", children: "Building the scene, details, lighting, and final finish." })
63
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: "Composing your image" }),
64
+ /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs leading-relaxed text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: "Building the scene, details, lighting, and final finish." })
65
65
  ] }),
66
66
  /* @__PURE__ */ jsx("div", { className: "flex gap-1.5", "aria-hidden": "true", children: [0, 1, 2, 3].map((step) => /* @__PURE__ */ jsx(
67
67
  "span",
68
68
  {
69
- className: "h-1 flex-1 overflow-hidden rounded-full bg-muted",
69
+ className: "h-1 flex-1 overflow-hidden rounded-full bg-[var(--mx-chat-fill,hsl(var(--muted)))]",
70
70
  children: /* @__PURE__ */ jsx(
71
71
  "span",
72
72
  {
@@ -94,7 +94,7 @@ function AgentCallLiveChild(props) {
94
94
  if (!requestId || !child || !child.text.trim()) {
95
95
  return /* @__PURE__ */ jsx(GenericRenderer, { ...props });
96
96
  }
97
- return /* @__PURE__ */ jsx("div", { className: "max-h-64 overflow-y-auto rounded-md border border-border bg-background/60 px-3 py-2", children: /* @__PURE__ */ jsx(
97
+ return /* @__PURE__ */ jsx("div", { className: "max-h-64 overflow-y-auto rounded-md border border-[color:var(--mx-chat-border,hsl(var(--border)))] bg-background/60 px-3 py-2", children: /* @__PURE__ */ jsx(
98
98
  MarkdownStream,
99
99
  {
100
100
  imagePolicy: "ai",
@@ -43,7 +43,7 @@ function CollabCallCard(props) {
43
43
  return /* @__PURE__ */ jsxs("div", { className: "overflow-hidden rounded-xl border border-violet-500/20 bg-violet-500/[0.04] dark:bg-violet-400/[0.05]", children: [
44
44
  /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1 px-3 py-2", children: [
45
45
  /* @__PURE__ */ jsx(Handshake, { className: "h-4 w-4 shrink-0 text-violet-600 dark:text-violet-400" }),
46
- /* @__PURE__ */ jsxs("span", { className: "min-w-0 text-sm font-medium text-foreground", children: [
46
+ /* @__PURE__ */ jsxs("span", { className: "min-w-0 text-sm font-medium text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: [
47
47
  agentLabel,
48
48
  " ",
49
49
  isActive ? "is reviewing" : "reviewed",
@@ -68,14 +68,14 @@ function CollabCallCard(props) {
68
68
  label: MODE_CHIP[info.historyMode]
69
69
  }
70
70
  ),
71
- info.messagesIncluded !== null && /* @__PURE__ */ jsxs("span", { className: "text-xs text-muted-foreground", children: [
71
+ info.messagesIncluded !== null && /* @__PURE__ */ jsxs("span", { className: "text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
72
72
  info.messagesIncluded,
73
73
  " message",
74
74
  info.messagesIncluded === 1 ? "" : "s",
75
75
  " shared"
76
76
  ] })
77
77
  ] }),
78
- showLiveStream && /* @__PURE__ */ jsx("div", { className: "mx-3 mb-2 max-h-64 overflow-y-auto rounded-md border border-border bg-background/60 px-3 py-2", children: /* @__PURE__ */ jsx(
78
+ showLiveStream && /* @__PURE__ */ jsx("div", { className: "mx-3 mb-2 max-h-64 overflow-y-auto rounded-md border border-[color:var(--mx-chat-border,hsl(var(--border)))] bg-background/60 px-3 py-2", children: /* @__PURE__ */ jsx(
79
79
  MarkdownStream,
80
80
  {
81
81
  imagePolicy: "ai",
@@ -112,7 +112,7 @@ function CollabCallCard(props) {
112
112
  labelClassName: "text-xs"
113
113
  }
114
114
  ),
115
- info.remember?.status === "queued" && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1.5 text-xs text-muted-foreground", children: [
115
+ info.remember?.status === "queued" && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1.5 text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
116
116
  /* @__PURE__ */ jsx(Inbox, { className: "h-3.5 w-3.5 shrink-0 text-violet-600 dark:text-violet-400" }),
117
117
  "Note queued for ",
118
118
  isCurrentSource ? "this conversation" : sourceTitle ?? "the source conversation",
@@ -41,7 +41,7 @@ const ImageGenerationResult = (props) => {
41
41
  e.stopPropagation();
42
42
  onOpenOverlay(`tool-group-${groupId}`);
43
43
  },
44
- className: "group flex w-full items-center justify-between gap-2 rounded border border-border/60 px-2 py-1 text-xs text-muted-foreground transition-colors hover:border-primary/40 hover:text-foreground",
44
+ className: "group flex w-full items-center justify-between gap-2 rounded border border-border/60 px-2 py-1 text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] transition-colors hover:border-primary/40 hover:text-[color:var(--mx-chat-text,hsl(var(--foreground)))]",
45
45
  children: [
46
46
  /* @__PURE__ */ jsx("span", { children: "View complete result" }),
47
47
  /* @__PURE__ */ jsx(Maximize2, { className: "h-3 w-3 shrink-0" })
@@ -117,10 +117,10 @@ const AskInline = (props) => {
117
117
  {
118
118
  className: cn("px-4 py-2", i > 0 && "border-t border-border/30"),
119
119
  children: [
120
- /* @__PURE__ */ jsx("p", { className: "text-[13px] leading-snug text-foreground", children: qa.question }),
120
+ /* @__PURE__ */ jsx("p", { className: "text-[13px] leading-snug text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: qa.question }),
121
121
  /* @__PURE__ */ jsxs("p", { className: "mt-1 flex items-start gap-1.5 text-[13px] leading-snug", children: [
122
- /* @__PURE__ */ jsx(CornerDownRight, { className: "mt-0.5 size-3 shrink-0 text-muted-foreground" }),
123
- qa.answer !== null ? /* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: qa.answer }) : /* @__PURE__ */ jsx("span", { className: "italic text-muted-foreground", children: "Awaiting answer" })
122
+ /* @__PURE__ */ jsx(CornerDownRight, { className: "mt-0.5 size-3 shrink-0 text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]" }),
123
+ qa.answer !== null ? /* @__PURE__ */ jsx("span", { className: "font-medium text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: qa.answer }) : /* @__PURE__ */ jsx("span", { className: "italic text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: "Awaiting answer" })
124
124
  ] })
125
125
  ]
126
126
  },
@@ -50,12 +50,12 @@ const AskPersonInline = (props) => {
50
50
  "No longer needed"
51
51
  ) : lookup.phase === "unreachable" ? "Could not load this ask" : null;
52
52
  const body = open ? /* @__PURE__ */ jsx("div", { "data-parked-ask": "", children: /* @__PURE__ */ jsx(ActionRequestInlineAnswer, { request: open, onAnswered: rereadConversation }) }) : lookup.phase === "unreachable" ? /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 p-4", children: [
53
- /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
53
+ /* @__PURE__ */ jsxs("p", { className: "text-sm text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
54
54
  "We could not reach your agent just now. Nothing was lost \u2014 try again.",
55
55
  /* @__PURE__ */ jsx(ErrorAlchemyMenu, {})
56
56
  ] }),
57
57
  /* @__PURE__ */ jsx(Button, { size: "sm", variant: "outline", onClick: lookup.retry, children: "Try again" })
58
- ] }) : lookup.phase === "closed" && cannotLook ? /* @__PURE__ */ jsx("p", { className: "p-4 text-sm text-muted-foreground", children: "Open this ask from the chat to answer it." }) : lookup.phase === "closed" ? /* @__PURE__ */ jsx("p", { className: "p-4 text-sm text-muted-foreground", children: isTerminal(entry) && !parked ? "Done \u2014 your agent has what it asked for." : "This ask is no longer open." }) : /* @__PURE__ */ jsx("p", { className: "p-4 text-sm text-muted-foreground", children: sub });
58
+ ] }) : lookup.phase === "closed" && cannotLook ? /* @__PURE__ */ jsx("p", { className: "p-4 text-sm text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: "Open this ask from the chat to answer it." }) : lookup.phase === "closed" ? /* @__PURE__ */ jsx("p", { className: "p-4 text-sm text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: isTerminal(entry) && !parked ? "Done \u2014 your agent has what it asked for." : "This ask is no longer open." }) : /* @__PURE__ */ jsx("p", { className: "p-4 text-sm text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: sub });
59
59
  if (!onToggleExpanded) {
60
60
  return /* @__PURE__ */ jsxs("div", { children: [
61
61
  open && open.render.form !== "questions" ? /* @__PURE__ */ jsx("p", { className: "px-4 pt-4 text-sm font-medium", children: open.render.title }) : null,
@@ -52,7 +52,7 @@ function ActivityUrl({ url }) {
52
52
  target: "_blank",
53
53
  rel: "noopener noreferrer",
54
54
  onClick: (event) => event.stopPropagation(),
55
- className: "inline-flex min-w-0 max-w-[min(22rem,48vw)] items-center gap-1 text-primary hover:underline",
55
+ className: "inline-flex min-w-0 max-w-[min(22rem,48vw)] items-center gap-1 text-[color:var(--mx-chat-accent,hsl(var(--primary)))] hover:underline",
56
56
  title: url,
57
57
  children: [
58
58
  /* @__PURE__ */ jsx("span", { className: "truncate", children: label }),
@@ -94,7 +94,7 @@ function CloudBrowserRunCard({
94
94
  {
95
95
  className: cn(
96
96
  "min-w-0 truncate",
97
- activity.isError ? "text-destructive" : "text-muted-foreground"
97
+ activity.isError ? "text-destructive" : "text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]"
98
98
  ),
99
99
  title: activity.label,
100
100
  children: activity.label
@@ -106,12 +106,12 @@ function CloudBrowserRunCard({
106
106
  ] }, entries[index]?.callId ?? index);
107
107
  }) }),
108
108
  /* @__PURE__ */ jsxs("details", { className: "group/details mt-1.5 border-t border-border/40 pt-1.5", children: [
109
- /* @__PURE__ */ jsxs("summary", { className: "flex w-fit cursor-pointer list-none items-center gap-1.5 rounded px-1 py-0.5 text-[11px] text-muted-foreground transition-colors hover:bg-accent/40 hover:text-foreground [&::-webkit-details-marker]:hidden", children: [
109
+ /* @__PURE__ */ jsxs("summary", { className: "flex w-fit cursor-pointer list-none items-center gap-1.5 rounded px-1 py-0.5 text-[11px] text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] transition-colors hover:bg-accent/40 hover:text-[color:var(--mx-chat-text,hsl(var(--foreground)))] [&::-webkit-details-marker]:hidden", children: [
110
110
  /* @__PURE__ */ jsx(SlidersHorizontal, { className: "size-3" }),
111
111
  "Details"
112
112
  ] }),
113
113
  /* @__PURE__ */ jsx("div", { className: "mt-1.5 max-h-64 space-y-2 overflow-y-auto rounded-md bg-muted/30 p-2 scrollbar-thin", children: entries.map((entry, index) => /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
114
- /* @__PURE__ */ jsxs("p", { className: "mb-1 text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: [
114
+ /* @__PURE__ */ jsxs("p", { className: "mb-1 text-[10px] font-medium uppercase tracking-wide text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
115
115
  "Step ",
116
116
  index + 1
117
117
  ] }),
@@ -121,7 +121,7 @@ function CloudBrowserRunCard({
121
121
  ] });
122
122
  if (compact) {
123
123
  return /* @__PURE__ */ jsxs("div", { className: cn("mb-1 w-full min-w-0", className), children: [
124
- /* @__PURE__ */ jsxs("div", { className: "flex min-h-7 min-w-0 items-center gap-1.5 text-[12px] text-muted-foreground", children: [
124
+ /* @__PURE__ */ jsxs("div", { className: "flex min-h-7 min-w-0 items-center gap-1.5 text-[12px] text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
125
125
  /* @__PURE__ */ jsx(Globe2, { className: "size-3.5 shrink-0 text-info" }),
126
126
  /* @__PURE__ */ jsx(Tile, { variant: "quiet", title: `Continued browsing \xB7 ${entries.length} actions`, end: expanded ? /* @__PURE__ */ jsx(ChevronDown, {}) : /* @__PURE__ */ jsx(ChevronRight, {}), onClick: onToggleExpanded, "aria-expanded": expanded, className: "min-w-0" }),
127
127
  latestUrl && /* @__PURE__ */ jsx("span", { className: "hidden min-w-0 flex-1 sm:block", children: /* @__PURE__ */ jsx(ActivityUrl, { url: latestUrl }) }),
@@ -74,7 +74,7 @@ const CtxBatchInline = ({
74
74
  );
75
75
  }
76
76
  if (!isTerminal(entry)) {
77
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 py-1.5 text-xs text-muted-foreground animate-in fade-in", children: [
77
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 py-1.5 text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] animate-in fade-in", children: [
78
78
  /* @__PURE__ */ jsx(Layers, { className: "h-3.5 w-3.5 shrink-0" }),
79
79
  /* @__PURE__ */ jsx("span", { children: "Reviewing context" })
80
80
  ] });
@@ -86,10 +86,10 @@ const CtxBatchInline = ({
86
86
  const shown = parsed.results.slice(0, cap);
87
87
  const remaining = parsed.results.length - shown.length;
88
88
  return /* @__PURE__ */ jsxs("div", { className: "space-y-2 animate-in fade-in", children: [
89
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground", children: [
89
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
90
90
  /* @__PURE__ */ jsx(Layers, { className: "h-3.5 w-3.5 shrink-0" }),
91
91
  /* @__PURE__ */ jsxs("span", { children: [
92
- /* @__PURE__ */ jsx("span", { className: "font-semibold tabular-nums text-foreground", children: parsed.count }),
92
+ /* @__PURE__ */ jsx("span", { className: "font-semibold tabular-nums text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: parsed.count }),
93
93
  " ",
94
94
  "of",
95
95
  " ",
@@ -49,12 +49,12 @@ const CtxGetInline = ({
49
49
  );
50
50
  }
51
51
  if (view.kind === "loading") {
52
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 py-1.5 text-xs text-muted-foreground animate-in fade-in", children: [
52
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 py-1.5 text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] animate-in fade-in", children: [
53
53
  /* @__PURE__ */ jsx(Search, { className: "h-3.5 w-3.5 shrink-0" }),
54
54
  /* @__PURE__ */ jsxs("span", { children: [
55
55
  "Looking up",
56
56
  " ",
57
- keyArg ? /* @__PURE__ */ jsx("span", { className: "text-foreground", children: contextEntryLabel({ key: keyArg }) }) : "context"
57
+ keyArg ? /* @__PURE__ */ jsx("span", { className: "text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: contextEntryLabel({ key: keyArg }) }) : "context"
58
58
  ] })
59
59
  ] });
60
60
  }
@@ -52,16 +52,16 @@ const CtxItemCard = ({
52
52
  "div",
53
53
  {
54
54
  className: cn(
55
- "rounded-lg border border-border bg-card p-3 space-y-2",
55
+ "rounded-lg border border-[color:var(--mx-chat-border,hsl(var(--border)))] bg-[var(--mx-chat-card,hsl(var(--card)))] p-3 space-y-2",
56
56
  className
57
57
  ),
58
58
  children: [
59
59
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
60
- /* @__PURE__ */ jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center rounded bg-muted text-muted-foreground", children: /* @__PURE__ */ jsx(Icon, { className: "h-3.5 w-3.5" }) }),
60
+ /* @__PURE__ */ jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center rounded bg-[var(--mx-chat-fill,hsl(var(--muted)))] text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: /* @__PURE__ */ jsx(Icon, { className: "h-3.5 w-3.5" }) }),
61
61
  /* @__PURE__ */ jsx(
62
62
  "span",
63
63
  {
64
- className: "min-w-0 truncate font-medium text-foreground",
64
+ className: "min-w-0 truncate font-medium text-[color:var(--mx-chat-text,hsl(var(--foreground)))]",
65
65
  title: showKey ? item.key : void 0,
66
66
  children: label
67
67
  }
@@ -62,26 +62,26 @@ const CtxPatchConfirmation = ({
62
62
  );
63
63
  }
64
64
  if (!isTerminal(entry)) {
65
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 py-1.5 text-xs text-muted-foreground animate-in fade-in", children: [
65
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 py-1.5 text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] animate-in fade-in", children: [
66
66
  /* @__PURE__ */ jsx(FilePen, { className: "h-3.5 w-3.5 shrink-0" }),
67
67
  /* @__PURE__ */ jsxs("span", { children: [
68
68
  "Updating",
69
69
  " ",
70
- data.key ? /* @__PURE__ */ jsx("span", { className: "text-foreground", children: contextEntryLabel({ key: data.key }) }) : "context"
70
+ data.key ? /* @__PURE__ */ jsx("span", { className: "text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: contextEntryLabel({ key: data.key }) }) : "context"
71
71
  ] })
72
72
  ] });
73
73
  }
74
- return /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-border bg-card p-3 space-y-2 animate-in fade-in", children: [
74
+ return /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-[color:var(--mx-chat-border,hsl(var(--border)))] bg-[var(--mx-chat-card,hsl(var(--card)))] p-3 space-y-2 animate-in fade-in", children: [
75
75
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
76
- /* @__PURE__ */ jsx(CheckCircle2, { className: "h-4 w-4 shrink-0 text-primary" }),
77
- /* @__PURE__ */ jsxs("span", { className: "text-sm text-foreground", children: [
76
+ /* @__PURE__ */ jsx(CheckCircle2, { className: "h-4 w-4 shrink-0 text-[color:var(--mx-chat-accent,hsl(var(--primary)))]" }),
77
+ /* @__PURE__ */ jsxs("span", { className: "text-sm text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: [
78
78
  "Updated",
79
79
  " ",
80
80
  /* @__PURE__ */ jsx("span", { className: "font-medium", children: data.key ? contextEntryLabel({ key: data.key }) : "context" })
81
81
  ] }),
82
82
  data.command && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "ml-auto font-mono font-normal", children: data.command })
83
83
  ] }),
84
- data.preview != null && /* @__PURE__ */ jsx("div", { className: "min-w-0 border-t border-border pt-2", children: /* @__PURE__ */ jsx(ResultValue, { value: data.preview, density }) })
84
+ data.preview != null && /* @__PURE__ */ jsx("div", { className: "min-w-0 border-t border-[color:var(--mx-chat-border,hsl(var(--border)))] pt-2", children: /* @__PURE__ */ jsx(ResultValue, { value: data.preview, density }) })
85
85
  ] });
86
86
  };
87
87
  export {
@@ -6,18 +6,18 @@ function hasDetail(e) {
6
6
  }
7
7
  function DictPeekBody({ e }) {
8
8
  return /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
9
- e.pronunciation || e.ipa ? /* @__PURE__ */ jsxs("div", { className: "font-mono text-muted-foreground", children: [
9
+ e.pronunciation || e.ipa ? /* @__PURE__ */ jsxs("div", { className: "font-mono text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
10
10
  e.pronunciation ? `/${e.pronunciation}/` : "",
11
11
  e.ipa ? ` ${e.ipa}` : ""
12
12
  ] }) : null,
13
- e.definition ? /* @__PURE__ */ jsx("div", { className: "text-foreground", children: e.definition }) : null,
14
- e.soundsLike.length ? /* @__PURE__ */ jsxs("div", { className: "text-muted-foreground", children: [
15
- /* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: "Sounds like:" }),
13
+ e.definition ? /* @__PURE__ */ jsx("div", { className: "text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: e.definition }) : null,
14
+ e.soundsLike.length ? /* @__PURE__ */ jsxs("div", { className: "text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
15
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: "Sounds like:" }),
16
16
  " ",
17
17
  e.soundsLike.join(", ")
18
18
  ] }) : null,
19
- e.category ? /* @__PURE__ */ jsxs("div", { className: "text-muted-foreground", children: [
20
- /* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: "Category:" }),
19
+ e.category ? /* @__PURE__ */ jsxs("div", { className: "text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
20
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: "Category:" }),
21
21
  " ",
22
22
  e.category
23
23
  ] }) : null
@@ -27,16 +27,16 @@ function DictEntryList({ entries }) {
27
27
  return /* @__PURE__ */ jsx("div", { className: "divide-y divide-border", children: entries.map((e, i) => {
28
28
  const row = /* @__PURE__ */ jsxs("div", { className: "px-3 py-2 transition-colors hover:bg-muted/40", children: [
29
29
  /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-2", children: [
30
- /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-foreground", children: e.term }),
31
- e.pronunciation ? /* @__PURE__ */ jsxs("span", { className: "text-xs text-muted-foreground", children: [
30
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: e.term }),
31
+ e.pronunciation ? /* @__PURE__ */ jsxs("span", { className: "text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
32
32
  "/",
33
33
  e.pronunciation,
34
34
  "/"
35
- ] }) : e.ipa ? /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: e.ipa }) : null,
36
- e.category ? /* @__PURE__ */ jsx("span", { className: "ml-auto shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground", children: e.category }) : null
35
+ ] }) : e.ipa ? /* @__PURE__ */ jsx("span", { className: "text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: e.ipa }) : null,
36
+ e.category ? /* @__PURE__ */ jsx("span", { className: "ml-auto shrink-0 rounded-full bg-[var(--mx-chat-fill,hsl(var(--muted)))] px-1.5 py-0.5 text-[10px] font-medium text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: e.category }) : null
37
37
  ] }),
38
- e.definition ? /* @__PURE__ */ jsx("p", { className: "mt-0.5 line-clamp-2 text-xs text-muted-foreground", children: e.definition }) : null,
39
- e.soundsLike.length ? /* @__PURE__ */ jsxs("p", { className: "mt-0.5 text-[11px] text-muted-foreground", children: [
38
+ e.definition ? /* @__PURE__ */ jsx("p", { className: "mt-0.5 line-clamp-2 text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: e.definition }) : null,
39
+ e.soundsLike.length ? /* @__PURE__ */ jsxs("p", { className: "mt-0.5 text-[11px] text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
40
40
  "Sounds like: ",
41
41
  e.soundsLike.join(", ")
42
42
  ] }) : null
@@ -7,23 +7,23 @@ import { DictEntryList } from "./DictEntryList.js";
7
7
  function DictionaryOverlay({ entry }) {
8
8
  const { entries, level } = useMemo(() => parseDictionary(entry), [entry]);
9
9
  if (!entries.length) {
10
- return /* @__PURE__ */ jsx("div", { className: "p-4 text-center text-muted-foreground", children: "No dictionary entries to display" });
10
+ return /* @__PURE__ */ jsx("div", { className: "p-4 text-center text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: "No dictionary entries to display" });
11
11
  }
12
12
  return /* @__PURE__ */ jsxs("div", { className: "h-full overflow-y-auto bg-muted/30 p-4", children: [
13
- /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center gap-2 text-sm font-medium text-foreground", children: [
14
- /* @__PURE__ */ jsx(BookText, { className: "h-4 w-4 text-primary" }),
13
+ /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center gap-2 text-sm font-medium text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: [
14
+ /* @__PURE__ */ jsx(BookText, { className: "h-4 w-4 text-[color:var(--mx-chat-accent,hsl(var(--primary)))]" }),
15
15
  /* @__PURE__ */ jsxs("span", { children: [
16
16
  entries.length,
17
17
  " ",
18
18
  entries.length === 1 ? "term" : "terms"
19
19
  ] }),
20
- level ? /* @__PURE__ */ jsxs("span", { className: "text-xs capitalize text-muted-foreground", children: [
20
+ level ? /* @__PURE__ */ jsxs("span", { className: "text-xs capitalize text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
21
21
  "\xB7 ",
22
22
  level.replace(/_/g, " "),
23
23
  " dictionary"
24
24
  ] }) : null
25
25
  ] }),
26
- /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-lg border border-border bg-card", children: /* @__PURE__ */ jsx(DictEntryList, { entries }) })
26
+ /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-lg border border-[color:var(--mx-chat-border,hsl(var(--border)))] bg-[var(--mx-chat-card,hsl(var(--card)))]", children: /* @__PURE__ */ jsx(DictEntryList, { entries }) })
27
27
  ] });
28
28
  }
29
29
  export {
@@ -62,9 +62,9 @@ const FsEntryRow = ({
62
62
  withTopBorder && (indent ? "border-t border-border/20" : "border-t border-border/30")
63
63
  ),
64
64
  children: [
65
- e.isDir ? /* @__PURE__ */ jsx(Folder, { className: "size-3.5 shrink-0 text-sky-600/70 dark:text-sky-400/70" }) : /* @__PURE__ */ jsx(File, { className: "size-3.5 shrink-0 text-muted-foreground" }),
66
- /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-[13px] text-foreground", children: e.name }),
67
- !e.isDir && e.size !== null && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs tabular-nums text-muted-foreground", children: formatFileSize(e.size) })
65
+ e.isDir ? /* @__PURE__ */ jsx(Folder, { className: "size-3.5 shrink-0 text-sky-600/70 dark:text-sky-400/70" }) : /* @__PURE__ */ jsx(File, { className: "size-3.5 shrink-0 text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]" }),
66
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate text-[13px] text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: e.name }),
67
+ !e.isDir && e.size !== null && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs tabular-nums text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: formatFileSize(e.size) })
68
68
  ]
69
69
  }
70
70
  );
@@ -157,16 +157,16 @@ const FsBatchCard = ({ listings, className }) => {
157
157
  ),
158
158
  children: [
159
159
  /* @__PURE__ */ jsx(Folder, { className: "size-3.5 shrink-0 text-sky-600/70 dark:text-sky-400/70" }),
160
- /* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1 truncate text-[13px] text-foreground", children: [
160
+ /* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1 truncate text-[13px] text-[color:var(--mx-chat-text,hsl(var(--foreground)))]", children: [
161
161
  basename(l.path),
162
- /* @__PURE__ */ jsx("span", { className: "ml-2 text-xs text-muted-foreground", children: l.path })
162
+ /* @__PURE__ */ jsx("span", { className: "ml-2 text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: l.path })
163
163
  ] }),
164
- /* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs text-muted-foreground", children: countsLabel(l.entries) }),
164
+ /* @__PURE__ */ jsx("span", { className: "shrink-0 text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: countsLabel(l.entries) }),
165
165
  /* @__PURE__ */ jsx(
166
166
  ChevronRight,
167
167
  {
168
168
  className: cn(
169
- "size-3 shrink-0 text-muted-foreground transition-transform",
169
+ "size-3 shrink-0 text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] transition-transform",
170
170
  open[i] && "rotate-90"
171
171
  )
172
172
  }
@@ -47,21 +47,21 @@ const NewsInline = ({
47
47
  const data = useMemo(() => parseNewsData(entry), [entry]);
48
48
  if (data.isLoading) {
49
49
  return /* @__PURE__ */ jsxs("div", { className: "space-y-3 animate-in fade-in", children: [
50
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
51
- /* @__PURE__ */ jsx(Loader2, { className: "w-4 h-4 animate-spin text-primary" }),
50
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
51
+ /* @__PURE__ */ jsx(Loader2, { className: "w-4 h-4 animate-spin text-[color:var(--mx-chat-accent,hsl(var(--primary)))]" }),
52
52
  /* @__PURE__ */ jsxs("span", { children: [
53
53
  "Fetching news",
54
54
  data.query ? ` for "${data.query}"` : "",
55
55
  "..."
56
56
  ] })
57
57
  ] }),
58
- /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-card border border-border overflow-hidden", children: [
59
- /* @__PURE__ */ jsx("div", { className: "w-full aspect-video bg-muted animate-pulse" }),
58
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3", children: [1, 2, 3].map((i) => /* @__PURE__ */ jsxs("div", { className: "rounded-lg bg-[var(--mx-chat-card,hsl(var(--card)))] border border-[color:var(--mx-chat-border,hsl(var(--border)))] overflow-hidden", children: [
59
+ /* @__PURE__ */ jsx("div", { className: "w-full aspect-video bg-[var(--mx-chat-fill,hsl(var(--muted)))] animate-pulse" }),
60
60
  /* @__PURE__ */ jsxs("div", { className: "p-3 space-y-2", children: [
61
- /* @__PURE__ */ jsx("div", { className: "h-3 bg-muted animate-pulse rounded w-24" }),
62
- /* @__PURE__ */ jsx("div", { className: "h-4 bg-muted animate-pulse rounded w-full" }),
63
- /* @__PURE__ */ jsx("div", { className: "h-4 bg-muted animate-pulse rounded w-3/4" }),
64
- /* @__PURE__ */ jsx("div", { className: "h-3 bg-muted animate-pulse rounded w-20" })
61
+ /* @__PURE__ */ jsx("div", { className: "h-3 bg-[var(--mx-chat-fill,hsl(var(--muted)))] animate-pulse rounded w-24" }),
62
+ /* @__PURE__ */ jsx("div", { className: "h-4 bg-[var(--mx-chat-fill,hsl(var(--muted)))] animate-pulse rounded w-full" }),
63
+ /* @__PURE__ */ jsx("div", { className: "h-4 bg-[var(--mx-chat-fill,hsl(var(--muted)))] animate-pulse rounded w-3/4" }),
64
+ /* @__PURE__ */ jsx("div", { className: "h-3 bg-[var(--mx-chat-fill,hsl(var(--muted)))] animate-pulse rounded w-20" })
65
65
  ] })
66
66
  ] }, i)) })
67
67
  ] });
@@ -74,7 +74,7 @@ const NewsInline = ({
74
74
  ] });
75
75
  }
76
76
  if (data.isComplete && data.articles.length === 0) {
77
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground py-3", children: [
77
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] py-3", children: [
78
78
  /* @__PURE__ */ jsx(Newspaper, { className: "w-4 h-4 flex-shrink-0" }),
79
79
  /* @__PURE__ */ jsxs("span", { children: [
80
80
  "No articles found",
@@ -92,14 +92,14 @@ const NewsInline = ({
92
92
  href: article.url,
93
93
  target: "_blank",
94
94
  rel: "noopener noreferrer",
95
- className: "group block bg-card rounded-lg border border-border overflow-hidden hover:border-primary/30 hover:shadow-md transition-all duration-200 animate-in fade-in zoom-in-95",
95
+ className: "group block bg-[var(--mx-chat-card,hsl(var(--card)))] rounded-lg border border-[color:var(--mx-chat-border,hsl(var(--border)))] overflow-hidden hover:border-primary/30 hover:shadow-md transition-all duration-200 animate-in fade-in zoom-in-95",
96
96
  style: {
97
97
  animationDelay: `${index * 80}ms`,
98
98
  animationDuration: "300ms",
99
99
  animationFillMode: "backwards"
100
100
  },
101
101
  children: [
102
- article.url_to_image ? /* @__PURE__ */ jsxs("div", { className: "relative w-full aspect-video bg-muted overflow-hidden", children: [
102
+ article.url_to_image ? /* @__PURE__ */ jsxs("div", { className: "relative w-full aspect-video bg-[var(--mx-chat-fill,hsl(var(--muted)))] overflow-hidden", children: [
103
103
  /* @__PURE__ */ jsx(
104
104
  "img",
105
105
  {
@@ -112,15 +112,15 @@ const NewsInline = ({
112
112
  }
113
113
  ),
114
114
  /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/10 to-transparent opacity-0 group-hover:opacity-100 transition-opacity" })
115
- ] }) : /* @__PURE__ */ jsx("div", { className: "w-full aspect-video bg-muted flex items-center justify-center", children: /* @__PURE__ */ jsx(Newspaper, { className: "w-10 h-10 text-muted-foreground/30" }) }),
115
+ ] }) : /* @__PURE__ */ jsx("div", { className: "w-full aspect-video bg-[var(--mx-chat-fill,hsl(var(--muted)))] flex items-center justify-center", children: /* @__PURE__ */ jsx(Newspaper, { className: "w-10 h-10 text-muted-foreground/30" }) }),
116
116
  /* @__PURE__ */ jsxs("div", { className: "p-3 space-y-1.5", children: [
117
117
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-2", children: [
118
- /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-primary truncate", children: article.source?.name }),
119
- /* @__PURE__ */ jsx(ExternalLink, { className: "w-3 h-3 text-muted-foreground flex-shrink-0 opacity-0 group-hover:opacity-100 transition-opacity" })
118
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-[color:var(--mx-chat-accent,hsl(var(--primary)))] truncate", children: article.source?.name }),
119
+ /* @__PURE__ */ jsx(ExternalLink, { className: "w-3 h-3 text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] flex-shrink-0 opacity-0 group-hover:opacity-100 transition-opacity" })
120
120
  ] }),
121
- /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-foreground line-clamp-2 group-hover:text-primary transition-colors leading-snug", children: article.title }),
122
- article.description && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground line-clamp-2", children: article.description }),
123
- article.published_at && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
121
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold text-[color:var(--mx-chat-text,hsl(var(--foreground)))] line-clamp-2 group-hover:text-[color:var(--mx-chat-accent,hsl(var(--primary)))] transition-colors leading-snug", children: article.title }),
122
+ article.description && /* @__PURE__ */ jsx("p", { className: "text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))] line-clamp-2", children: article.description }),
123
+ article.published_at && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 text-xs text-[color:var(--mx-chat-text-secondary,hsl(var(--muted-foreground)))]", children: [
124
124
  /* @__PURE__ */ jsx(Calendar, { className: "w-3 h-3 flex-shrink-0" }),
125
125
  /* @__PURE__ */ jsx("span", { children: new Date(article.published_at).toLocaleDateString("en-US", {
126
126
  month: "short",