@assistant-ui/react-devtools 1.2.18 → 1.2.20

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 (215) hide show
  1. package/dist/DevToolsModal.d.ts +2 -3
  2. package/dist/DevToolsModal.d.ts.map +1 -1
  3. package/dist/data/createInProcessClient.d.ts +3 -6
  4. package/dist/data/createInProcessClient.d.ts.map +1 -1
  5. package/dist/data/createInProcessClient.js +1 -3
  6. package/dist/data/createInProcessClient.js.map +1 -1
  7. package/dist/data/projectApi.d.ts +1 -2
  8. package/dist/data/projectApi.d.ts.map +1 -1
  9. package/dist/data/types.d.ts +6 -6
  10. package/dist/data/types.d.ts.map +1 -1
  11. package/dist/data/useDevToolsClient.d.ts +2 -3
  12. package/dist/data/useDevToolsClient.d.ts.map +1 -1
  13. package/dist/shell/DevToolsOverlay.d.ts +2 -3
  14. package/dist/shell/DevToolsOverlay.d.ts.map +1 -1
  15. package/dist/shell/DevToolsPanel.d.ts +2 -3
  16. package/dist/shell/DevToolsPanel.d.ts.map +1 -1
  17. package/dist/shell/ShadowRoot.d.ts +2 -3
  18. package/dist/shell/ShadowRoot.d.ts.map +1 -1
  19. package/dist/shell/SplitLayout.d.ts +3 -4
  20. package/dist/shell/SplitLayout.d.ts.map +1 -1
  21. package/dist/shell/registry.d.ts +4 -5
  22. package/dist/shell/registry.d.ts.map +1 -1
  23. package/dist/shell/tabs/ActivityTab.d.ts +1 -2
  24. package/dist/shell/tabs/ActivityTab.d.ts.map +1 -1
  25. package/dist/shell/tabs/ContextTab.d.ts +1 -2
  26. package/dist/shell/tabs/ContextTab.d.ts.map +1 -1
  27. package/dist/shell/tabs/RawTab.d.ts +1 -2
  28. package/dist/shell/tabs/RawTab.d.ts.map +1 -1
  29. package/dist/shell/tabs/ThreadTab.d.ts +1 -2
  30. package/dist/shell/tabs/ThreadTab.d.ts.map +1 -1
  31. package/dist/shell/tabs/navSelection.d.ts +1 -2
  32. package/dist/shell/tabs/navSelection.d.ts.map +1 -1
  33. package/dist/styles/panel.generated.d.ts +1 -2
  34. package/dist/styles/panel.generated.d.ts.map +1 -1
  35. package/dist/styles/panel.generated.js +1 -1
  36. package/dist/styles/panel.generated.js.map +1 -1
  37. package/dist/types.d.ts +1 -2
  38. package/dist/types.d.ts.map +1 -1
  39. package/dist/utils/common.d.ts +13 -14
  40. package/dist/utils/common.d.ts.map +1 -1
  41. package/dist/utils/diff.d.ts +2 -3
  42. package/dist/utils/diff.d.ts.map +1 -1
  43. package/dist/utils/serialization.d.ts +5 -6
  44. package/dist/utils/serialization.d.ts.map +1 -1
  45. package/dist/utils/serialization.js +13 -4
  46. package/dist/utils/serialization.js.map +1 -1
  47. package/dist/utils/toolNormalization.d.ts +2 -3
  48. package/dist/utils/toolNormalization.d.ts.map +1 -1
  49. package/dist/utils/unserializable.d.ts +2 -3
  50. package/dist/utils/unserializable.d.ts.map +1 -1
  51. package/dist/views/activity/EventLogRow.d.ts +2 -3
  52. package/dist/views/activity/EventLogRow.d.ts.map +1 -1
  53. package/dist/views/activity/EventStreamPane.d.ts +1 -2
  54. package/dist/views/activity/EventStreamPane.d.ts.map +1 -1
  55. package/dist/views/activity/OrphansPane.d.ts +1 -2
  56. package/dist/views/activity/OrphansPane.d.ts.map +1 -1
  57. package/dist/views/activity/RunDetailPane.d.ts +1 -2
  58. package/dist/views/activity/RunDetailPane.d.ts.map +1 -1
  59. package/dist/views/activity/activityNodes.d.ts +6 -7
  60. package/dist/views/activity/activityNodes.d.ts.map +1 -1
  61. package/dist/views/attachments/AttachmentList.d.ts +1 -2
  62. package/dist/views/attachments/AttachmentList.d.ts.map +1 -1
  63. package/dist/views/attachments/MediaPartView.d.ts +3 -4
  64. package/dist/views/attachments/MediaPartView.d.ts.map +1 -1
  65. package/dist/views/attachments/formatBytes.d.ts +3 -4
  66. package/dist/views/attachments/formatBytes.d.ts.map +1 -1
  67. package/dist/views/attachments/parseAttachment.d.ts +2 -3
  68. package/dist/views/attachments/parseAttachment.d.ts.map +1 -1
  69. package/dist/views/attachments/types.d.ts +2 -3
  70. package/dist/views/attachments/types.d.ts.map +1 -1
  71. package/dist/views/context/ContextDetail.d.ts +1 -2
  72. package/dist/views/context/ContextDetail.d.ts.map +1 -1
  73. package/dist/views/context/ToolUIsView.d.ts +1 -2
  74. package/dist/views/context/ToolUIsView.d.ts.map +1 -1
  75. package/dist/views/context/contextNodes.d.ts +4 -5
  76. package/dist/views/context/contextNodes.d.ts.map +1 -1
  77. package/dist/views/mcp/McpView.d.ts +1 -2
  78. package/dist/views/mcp/McpView.d.ts.map +1 -1
  79. package/dist/views/mcp/parse.d.ts +1 -2
  80. package/dist/views/mcp/parse.d.ts.map +1 -1
  81. package/dist/views/mcp/types.d.ts +3 -4
  82. package/dist/views/mcp/types.d.ts.map +1 -1
  83. package/dist/views/message/ChainOfThought.d.ts +1 -2
  84. package/dist/views/message/ChainOfThought.d.ts.map +1 -1
  85. package/dist/views/message/MessageDetailPane.d.ts +2 -3
  86. package/dist/views/message/MessageDetailPane.d.ts.map +1 -1
  87. package/dist/views/message/MessageItem.d.ts +1 -2
  88. package/dist/views/message/MessageItem.d.ts.map +1 -1
  89. package/dist/views/message/MessageList.d.ts +1 -2
  90. package/dist/views/message/MessageList.d.ts.map +1 -1
  91. package/dist/views/message/MessageMetrics.d.ts +1 -2
  92. package/dist/views/message/MessageMetrics.d.ts.map +1 -1
  93. package/dist/views/message/MessageMetrics.js +1 -1
  94. package/dist/views/message/MessageMetrics.js.map +1 -1
  95. package/dist/views/message/MessageTimeline.d.ts +3 -4
  96. package/dist/views/message/MessageTimeline.d.ts.map +1 -1
  97. package/dist/views/message/PartDisclosure.d.ts +1 -2
  98. package/dist/views/message/PartDisclosure.d.ts.map +1 -1
  99. package/dist/views/message/PartView.d.ts +1 -2
  100. package/dist/views/message/PartView.d.ts.map +1 -1
  101. package/dist/views/message/RoleLabel.d.ts +1 -2
  102. package/dist/views/message/RoleLabel.d.ts.map +1 -1
  103. package/dist/views/message/StatusBadge.d.ts +1 -2
  104. package/dist/views/message/StatusBadge.d.ts.map +1 -1
  105. package/dist/views/message/ToolCallView.d.ts +1 -2
  106. package/dist/views/message/ToolCallView.d.ts.map +1 -1
  107. package/dist/views/message/TtftBar.d.ts +2 -3
  108. package/dist/views/message/TtftBar.d.ts.map +1 -1
  109. package/dist/views/message/TtftBar.js +2 -2
  110. package/dist/views/message/TtftBar.js.map +1 -1
  111. package/dist/views/message/messagePlainText.d.ts +1 -2
  112. package/dist/views/message/messagePlainText.d.ts.map +1 -1
  113. package/dist/views/message/parse.d.ts +4 -5
  114. package/dist/views/message/parse.d.ts.map +1 -1
  115. package/dist/views/message/types.d.ts +17 -18
  116. package/dist/views/message/types.d.ts.map +1 -1
  117. package/dist/views/model-context/ModelContextView.d.ts +4 -5
  118. package/dist/views/model-context/ModelContextView.d.ts.map +1 -1
  119. package/dist/views/nav.d.ts +4 -5
  120. package/dist/views/nav.d.ts.map +1 -1
  121. package/dist/views/raw/RawDetail.d.ts +1 -2
  122. package/dist/views/raw/RawDetail.d.ts.map +1 -1
  123. package/dist/views/raw/rawNodes.d.ts +4 -5
  124. package/dist/views/raw/rawNodes.d.ts.map +1 -1
  125. package/dist/views/raw/statePreview.d.ts +1 -2
  126. package/dist/views/raw/statePreview.d.ts.map +1 -1
  127. package/dist/views/runs/PayloadDiff.d.ts +1 -2
  128. package/dist/views/runs/PayloadDiff.d.ts.map +1 -1
  129. package/dist/views/runs/parse.d.ts +1 -2
  130. package/dist/views/runs/parse.d.ts.map +1 -1
  131. package/dist/views/runs/types.d.ts +3 -4
  132. package/dist/views/runs/types.d.ts.map +1 -1
  133. package/dist/views/scopes/ScopesView.d.ts +1 -2
  134. package/dist/views/scopes/ScopesView.d.ts.map +1 -1
  135. package/dist/views/scopes/parse.d.ts +1 -2
  136. package/dist/views/scopes/parse.d.ts.map +1 -1
  137. package/dist/views/scopes/types.d.ts +1 -2
  138. package/dist/views/scopes/types.d.ts.map +1 -1
  139. package/dist/views/thread/ComposerAttachments.d.ts +1 -2
  140. package/dist/views/thread/ComposerAttachments.d.ts.map +1 -1
  141. package/dist/views/thread/ComposerFlags.d.ts +1 -2
  142. package/dist/views/thread/ComposerFlags.d.ts.map +1 -1
  143. package/dist/views/thread/ComposerQueue.d.ts +1 -2
  144. package/dist/views/thread/ComposerQueue.d.ts.map +1 -1
  145. package/dist/views/thread/ConversationList.d.ts +2 -3
  146. package/dist/views/thread/ConversationList.d.ts.map +1 -1
  147. package/dist/views/thread/ConversationStatusDot.d.ts +3 -4
  148. package/dist/views/thread/ConversationStatusDot.d.ts.map +1 -1
  149. package/dist/views/thread/ThreadDetails.d.ts +1 -2
  150. package/dist/views/thread/ThreadDetails.d.ts.map +1 -1
  151. package/dist/views/thread/Transcript.d.ts +3 -4
  152. package/dist/views/thread/Transcript.d.ts.map +1 -1
  153. package/dist/views/thread/Transcript.js +1 -1
  154. package/dist/views/thread/Transcript.js.map +1 -1
  155. package/dist/views/thread/resolve.d.ts +2 -3
  156. package/dist/views/thread/resolve.d.ts.map +1 -1
  157. package/dist/views/thread/types.d.ts +7 -7
  158. package/dist/views/thread/types.d.ts.map +1 -1
  159. package/dist/views/thread/utils.d.ts +4 -5
  160. package/dist/views/thread/utils.d.ts.map +1 -1
  161. package/dist/views/ui/CenteredMessage.d.ts +1 -2
  162. package/dist/views/ui/CenteredMessage.d.ts.map +1 -1
  163. package/dist/views/ui/Chip.d.ts +1 -2
  164. package/dist/views/ui/Chip.d.ts.map +1 -1
  165. package/dist/views/ui/ControlButton.d.ts +1 -2
  166. package/dist/views/ui/ControlButton.d.ts.map +1 -1
  167. package/dist/views/ui/CopyButton.d.ts +2 -3
  168. package/dist/views/ui/CopyButton.d.ts.map +1 -1
  169. package/dist/views/ui/CopyButton.js +3 -3
  170. package/dist/views/ui/CopyButton.js.map +1 -1
  171. package/dist/views/ui/EmptyState.d.ts +1 -2
  172. package/dist/views/ui/EmptyState.d.ts.map +1 -1
  173. package/dist/views/ui/InfoCard.d.ts +1 -2
  174. package/dist/views/ui/InfoCard.d.ts.map +1 -1
  175. package/dist/views/ui/JSONTree.d.ts +1 -2
  176. package/dist/views/ui/JSONTree.d.ts.map +1 -1
  177. package/dist/views/ui/JSONTree.js +51 -72
  178. package/dist/views/ui/JSONTree.js.map +1 -1
  179. package/dist/views/ui/PaneHeader.d.ts +2 -3
  180. package/dist/views/ui/PaneHeader.d.ts.map +1 -1
  181. package/dist/views/ui/RailTime.d.ts +1 -2
  182. package/dist/views/ui/RailTime.d.ts.map +1 -1
  183. package/dist/views/ui/SectionLabel.d.ts +1 -2
  184. package/dist/views/ui/SectionLabel.d.ts.map +1 -1
  185. package/dist/views/ui/SelectableRow.d.ts +1 -2
  186. package/dist/views/ui/SelectableRow.d.ts.map +1 -1
  187. package/dist/views/ui/Sparkline.d.ts +1 -2
  188. package/dist/views/ui/Sparkline.d.ts.map +1 -1
  189. package/dist/views/ui/SummaryItem.d.ts +2 -3
  190. package/dist/views/ui/SummaryItem.d.ts.map +1 -1
  191. package/dist/views/ui/ToneBadge.d.ts +1 -2
  192. package/dist/views/ui/ToneBadge.d.ts.map +1 -1
  193. package/dist/views/ui/badgeTone.d.ts +7 -8
  194. package/dist/views/ui/badgeTone.d.ts.map +1 -1
  195. package/dist/views/ui/getInlineJson.d.ts +4 -0
  196. package/dist/views/ui/getInlineJson.d.ts.map +1 -0
  197. package/dist/views/ui/getInlineJson.js +22 -0
  198. package/dist/views/ui/getInlineJson.js.map +1 -0
  199. package/dist/views/ui/useCopyToClipboard.d.ts +1 -2
  200. package/dist/views/ui/useCopyToClipboard.d.ts.map +1 -1
  201. package/package.json +16 -13
  202. package/src/data/createInProcessClient.ts +1 -3
  203. package/src/styles/panel.generated.ts +1 -1
  204. package/src/utils/serialization.test.ts +19 -0
  205. package/src/utils/serialization.ts +32 -7
  206. package/src/views/message/MessageMetrics.tsx +2 -3
  207. package/src/views/message/TtftBar.test.tsx +20 -0
  208. package/src/views/message/TtftBar.tsx +2 -2
  209. package/src/views/thread/Transcript.tsx +1 -6
  210. package/src/views/ui/CopyButton.tsx +3 -3
  211. package/src/views/ui/JSONTree.interaction.test.tsx +118 -0
  212. package/src/views/ui/JSONTree.tsx +29 -28
  213. package/src/views/ui/JSONTree.work.test.tsx +60 -0
  214. package/src/views/ui/getInlineJson.test.ts +83 -0
  215. package/src/views/ui/getInlineJson.ts +38 -0
@@ -1,18 +1,17 @@
1
1
  import { EventLogEntry } from "../../data/types.js";
2
2
  //#region src/views/activity/EventLogRow.d.ts
3
- declare const EventLogRow: ({ log, previous, showDiff, timeLabel }: {
3
+ export declare const EventLogRow: ({ log, previous, showDiff, timeLabel }: {
4
4
  log: EventLogEntry;
5
5
  previous?: EventLogEntry | undefined;
6
6
  showDiff?: boolean;
7
7
  /** Overrides the default clock time label. */
8
8
  timeLabel?: string | undefined;
9
9
  }) => import("react").JSX.Element;
10
- declare const ScopeFilterBar: ({ eventTypesByScope, unselectedEventTypes, toggleScope, toggleEventType }: {
10
+ export declare const ScopeFilterBar: ({ eventTypesByScope, unselectedEventTypes, toggleScope, toggleEventType }: {
11
11
  eventTypesByScope: readonly (readonly [string, string[]])[];
12
12
  unselectedEventTypes: ReadonlySet<string>;
13
13
  toggleScope: (types: string[]) => void;
14
14
  toggleEventType: (eventType: string) => void;
15
15
  }) => import("react").JSX.Element | null;
16
16
  //#endregion
17
- export { EventLogRow, ScopeFilterBar };
18
17
  //# sourceMappingURL=EventLogRow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventLogRow.d.ts","names":[],"sources":["../../../src/views/activity/EventLogRow.tsx"],"mappings":";;cAOa,gBAAe,KAAA,UAAA,UAAA;EAM1B,KAAK;EACL,WAAW;EACX;;EAEA;sBACD,IAAA;cA+BY,mBAAkB,mBAAA,sBAAA,aAAA;EAM7B;EACA,sBAAsB;EACtB,cAAc;EACd,kBAAkB;sBACnB,IAAA"}
1
+ {"version":3,"file":"EventLogRow.d.ts","names":[],"sources":["../../../src/views/activity/EventLogRow.tsx"],"mappings":";;qBAOa,gBAAe,KAAA,UAAA,UAAA;EAM1B,KAAK;EACL,WAAW;EACX;;EAEA;sBACD,IAAA;qBA+BY,mBAAkB,mBAAA,sBAAA,aAAA;EAM7B;EACA,sBAAsB;EACtB,cAAc;EACd,kBAAkB;sBACnB,IAAA"}
@@ -1,8 +1,7 @@
1
1
  import { EventLogEntry } from "../../data/types.js";
2
2
  //#region src/views/activity/EventStreamPane.d.ts
3
- declare const EventStreamPane: ({ logs }: {
3
+ export declare const EventStreamPane: ({ logs }: {
4
4
  logs: readonly EventLogEntry[];
5
5
  }) => import("react").JSX.Element;
6
6
  //#endregion
7
- export { EventStreamPane };
8
7
  //# sourceMappingURL=EventStreamPane.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventStreamPane.d.ts","names":[],"sources":["../../../src/views/activity/EventStreamPane.tsx"],"mappings":";;cAKa,oBAAmB;EAG9B,eAAe;sBAChB,IAAA"}
1
+ {"version":3,"file":"EventStreamPane.d.ts","names":[],"sources":["../../../src/views/activity/EventStreamPane.tsx"],"mappings":";;qBAKa,oBAAmB;EAG9B,eAAe;sBAChB,IAAA"}
@@ -1,8 +1,7 @@
1
1
  import { RunEventEntry } from "../runs/types.js";
2
2
  //#region src/views/activity/OrphansPane.d.ts
3
- declare const OrphansPane: ({ events }: {
3
+ export declare const OrphansPane: ({ events }: {
4
4
  events: readonly RunEventEntry[];
5
5
  }) => import("react").JSX.Element;
6
6
  //#endregion
7
- export { OrphansPane };
8
7
  //# sourceMappingURL=OrphansPane.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrphansPane.d.ts","names":[],"sources":["../../../src/views/activity/OrphansPane.tsx"],"mappings":";;cAIa,gBAAe;EAG1B,iBAAiB;sBAClB,IAAA"}
1
+ {"version":3,"file":"OrphansPane.d.ts","names":[],"sources":["../../../src/views/activity/OrphansPane.tsx"],"mappings":";;qBAIa,gBAAe;EAG1B,iBAAiB;sBAClB,IAAA"}
@@ -1,8 +1,7 @@
1
1
  import { RunPreview } from "../runs/types.js";
2
2
  //#region src/views/activity/RunDetailPane.d.ts
3
- declare const RunDetailPane: ({ run }: {
3
+ export declare const RunDetailPane: ({ run }: {
4
4
  run: RunPreview;
5
5
  }) => import("react").JSX.Element;
6
6
  //#endregion
7
- export { RunDetailPane };
8
7
  //# sourceMappingURL=RunDetailPane.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunDetailPane.d.ts","names":[],"sources":["../../../src/views/activity/RunDetailPane.tsx"],"mappings":";;cAqEa,kBAAiB;EAAW,KAAK;sBAAY,IAAA"}
1
+ {"version":3,"file":"RunDetailPane.d.ts","names":[],"sources":["../../../src/views/activity/RunDetailPane.tsx"],"mappings":";;qBAqEa,kBAAiB;EAAW,KAAK;sBAAY,IAAA"}
@@ -1,7 +1,7 @@
1
1
  import { EventLogEntry } from "../../data/types.js";
2
2
  import { RunEventEntry, RunPreview } from "../runs/types.js";
3
3
  //#region src/views/activity/activityNodes.d.ts
4
- type ActivityNode = {
4
+ export type ActivityNode = {
5
5
  id: "activity:stream";
6
6
  kind: "stream";
7
7
  } | {
@@ -13,14 +13,14 @@ type ActivityNode = {
13
13
  kind: "run";
14
14
  run: RunPreview;
15
15
  };
16
- declare const buildActivityNav: (logs: readonly EventLogEntry[]) => {
16
+ export declare const buildActivityNav: (logs: readonly EventLogEntry[]) => {
17
17
  nodes: ActivityNode[];
18
18
  runs: readonly RunPreview[];
19
19
  orphans: readonly RunEventEntry[];
20
20
  };
21
- declare const findActivityNode: (nodes: readonly ActivityNode[], nodeId: string | null) => ActivityNode | undefined;
22
- declare const defaultActivitySelection: (nodes: readonly ActivityNode[]) => `activity:run:${string}` | "activity:orphans" | "activity:stream";
23
- declare const useEventLogFilters: (logs: readonly EventLogEntry[]) => {
21
+ export declare const findActivityNode: (nodes: readonly ActivityNode[], nodeId: string | null) => ActivityNode | undefined;
22
+ export declare const defaultActivitySelection: (nodes: readonly ActivityNode[]) => `activity:run:${string}` | "activity:orphans" | "activity:stream";
23
+ export declare const useEventLogFilters: (logs: readonly EventLogEntry[]) => {
24
24
  eventTypes: string[];
25
25
  eventTypesByScope: [string, string[]][];
26
26
  filteredLogs: EventLogEntry[];
@@ -32,7 +32,6 @@ declare const useEventLogFilters: (logs: readonly EventLogEntry[]) => {
32
32
  toggleScope: (types: string[]) => void;
33
33
  unselectedEventTypes: Set<string>;
34
34
  };
35
- declare const previousSameScope: (logs: readonly EventLogEntry[], index: number) => EventLogEntry | undefined;
35
+ export declare const previousSameScope: (logs: readonly EventLogEntry[], index: number) => EventLogEntry | undefined;
36
36
  //#endregion
37
- export { ActivityNode, buildActivityNav, defaultActivitySelection, findActivityNode, previousSameScope, useEventLogFilters };
38
37
  //# sourceMappingURL=activityNodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"activityNodes.d.ts","names":[],"sources":["../../../src/views/activity/activityNodes.ts"],"mappings":";;;KAMY;EACN;EAAuB;;EAEvB;EACA;EACA,iBAAiB;;EAEjB;EAA8B;EAAa,KAAK;;cAIzC,mBAAoB,eAAe;;;;;cAuBnC,mBACX,gBAAgB,gBAChB,0BACC;cAGU,2BAA4B,gBAAgB;cAO5C,qBAAsB,eAAe;;;;;;;;EA2EA,kBAAA;EAYR,cAAA;;;cA6B7B,oBACX,eAAe,iBACf,kBACC"}
1
+ {"version":3,"file":"activityNodes.d.ts","names":[],"sources":["../../../src/views/activity/activityNodes.ts"],"mappings":";;;YAMY;EACN;EAAuB;;EAEvB;EACA;EACA,iBAAiB;;EAEjB;EAA8B;EAAa,KAAK;;qBAIzC,mBAAoB,eAAe;;;;;qBAuBnC,mBACX,gBAAgB,gBAChB,0BACC;qBAGU,2BAA4B,gBAAgB;qBAO5C,qBAAsB,eAAe;;;;;;;;EA2EA,kBAAA;EAYR,cAAA;;;qBA6B7B,oBACX,eAAe,iBACf,kBACC"}
@@ -1,10 +1,9 @@
1
1
  import { AttachmentPreview } from "./types.js";
2
2
  //#region src/views/attachments/AttachmentList.d.ts
3
- declare const AttachmentList: ({ attachments, label, bordered }: {
3
+ export declare const AttachmentList: ({ attachments, label, bordered }: {
4
4
  attachments: readonly AttachmentPreview[];
5
5
  label?: string;
6
6
  bordered?: boolean;
7
7
  }) => import("react").JSX.Element | null;
8
8
  //#endregion
9
- export { AttachmentList };
10
9
  //# sourceMappingURL=AttachmentList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentList.d.ts","names":[],"sources":["../../../src/views/attachments/AttachmentList.tsx"],"mappings":";;cAsFa,mBAAkB,aAAA,OAAA;EAK7B,sBAAsB;EACtB;EACA;sBACD,IAAA"}
1
+ {"version":3,"file":"AttachmentList.d.ts","names":[],"sources":["../../../src/views/attachments/AttachmentList.tsx"],"mappings":";;qBAsFa,mBAAkB,aAAA,OAAA;EAK7B,sBAAsB;EACtB;EACA;sBACD,IAAA"}
@@ -1,17 +1,16 @@
1
1
  import { AudioPartPreview, FilePartPreview, ImagePartPreview } from "../message/types.js";
2
2
  //#region src/views/attachments/MediaPartView.d.ts
3
- declare const ImagePartView: ({ part, compact }: {
3
+ export declare const ImagePartView: ({ part, compact }: {
4
4
  part: ImagePartPreview;
5
5
  compact?: boolean;
6
6
  }) => import("react").JSX.Element;
7
- declare const FilePartView: ({ part, compact }: {
7
+ export declare const FilePartView: ({ part, compact }: {
8
8
  part: FilePartPreview;
9
9
  compact?: boolean;
10
10
  }) => import("react").JSX.Element;
11
- declare const AudioPartView: ({ part, compact }: {
11
+ export declare const AudioPartView: ({ part, compact }: {
12
12
  part: AudioPartPreview;
13
13
  compact?: boolean;
14
14
  }) => import("react").JSX.Element;
15
15
  //#endregion
16
- export { AudioPartView, FilePartView, ImagePartView };
17
16
  //# sourceMappingURL=MediaPartView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaPartView.d.ts","names":[],"sources":["../../../src/views/attachments/MediaPartView.tsx"],"mappings":";;cAQa,kBAAiB,MAAA;EAI5B,MAAM;EACN;sBACD,IAAA;cAqBY,iBAAgB,MAAA;EAI3B,MAAM;EACN;sBACD,IAAA;cAiBY,kBAAiB,MAAA;EAI5B,MAAM;EACN;sBACD,IAAA"}
1
+ {"version":3,"file":"MediaPartView.d.ts","names":[],"sources":["../../../src/views/attachments/MediaPartView.tsx"],"mappings":";;qBAQa,kBAAiB,MAAA;EAI5B,MAAM;EACN;sBACD,IAAA;qBAqBY,iBAAgB,MAAA;EAI3B,MAAM;EACN;sBACD,IAAA;qBAiBY,kBAAiB,MAAA;EAI5B,MAAM;EACN;sBACD,IAAA"}
@@ -1,8 +1,7 @@
1
1
  //#region src/views/attachments/formatBytes.d.ts
2
- declare const formatBytes: (bytes: number | undefined) => string | undefined;
2
+ export declare const formatBytes: (bytes: number | undefined) => string | undefined;
3
3
  /** Rough size from base64 payload (no decoding). */
4
- declare const estimateBase64Bytes: (data: string) => number;
5
- declare const isSafeImagePreviewUrl: (url: string) => boolean;
4
+ export declare const estimateBase64Bytes: (data: string) => number;
5
+ export declare const isSafeImagePreviewUrl: (url: string) => boolean;
6
6
  //#endregion
7
- export { estimateBase64Bytes, formatBytes, isSafeImagePreviewUrl };
8
7
  //# sourceMappingURL=formatBytes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatBytes.d.ts","names":[],"sources":["../../../src/views/attachments/formatBytes.ts"],"mappings":";cAAa,cAAe;;cAQf,sBAAuB;cAGvB,wBAAyB"}
1
+ {"version":3,"file":"formatBytes.d.ts","names":[],"sources":["../../../src/views/attachments/formatBytes.ts"],"mappings":";qBAAa,cAAe;;qBAQf,sBAAuB;qBAGvB,wBAAyB"}
@@ -1,7 +1,6 @@
1
1
  import { AttachmentPreview } from "./types.js";
2
2
  //#region src/views/attachments/parseAttachment.d.ts
3
- declare const parseAttachment: (value: unknown) => AttachmentPreview | null;
4
- declare const parseAttachments: (value: unknown) => AttachmentPreview[];
3
+ export declare const parseAttachment: (value: unknown) => AttachmentPreview | null;
4
+ export declare const parseAttachments: (value: unknown) => AttachmentPreview[];
5
5
  //#endregion
6
- export { parseAttachment, parseAttachments };
7
6
  //# sourceMappingURL=parseAttachment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseAttachment.d.ts","names":[],"sources":["../../../src/views/attachments/parseAttachment.ts"],"mappings":";;cA6Ca,kBAAmB,mBAAiB;cAkCpC,mBAAoB,mBAAiB"}
1
+ {"version":3,"file":"parseAttachment.d.ts","names":[],"sources":["../../../src/views/attachments/parseAttachment.ts"],"mappings":";;qBA6Ca,kBAAmB,mBAAiB;qBAkCpC,mBAAoB,mBAAiB"}
@@ -1,10 +1,10 @@
1
1
  //#region src/views/attachments/types.d.ts
2
- interface AttachmentStatusPreview {
2
+ export interface AttachmentStatusPreview {
3
3
  type: string;
4
4
  reason?: string;
5
5
  progress?: number;
6
6
  }
7
- interface AttachmentPreview {
7
+ export interface AttachmentPreview {
8
8
  id?: string;
9
9
  name: string;
10
10
  kind?: string;
@@ -14,5 +14,4 @@ interface AttachmentPreview {
14
14
  sizeBytes?: number;
15
15
  }
16
16
  //#endregion
17
- export { AttachmentPreview, AttachmentStatusPreview };
18
17
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/attachments/types.ts"],"mappings":";UAAiB;EACf;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA,SAAS;EACT;EACA"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/attachments/types.ts"],"mappings":";iBAAiB;EACf;EACA;EACA;;iBAGe;EACf;EACA;EACA;EACA;EACA,SAAS;EACT;EACA"}
@@ -1,10 +1,9 @@
1
1
  import { ApiInfo } from "../../data/types.js";
2
2
  import { ContextNode } from "./contextNodes.js";
3
3
  //#region src/views/context/ContextDetail.d.ts
4
- declare const ContextDetail: ({ node, data }: {
4
+ export declare const ContextDetail: ({ node, data }: {
5
5
  node: ContextNode;
6
6
  data: ApiInfo;
7
7
  }) => import("react").JSX.Element | null;
8
8
  //#endregion
9
- export { ContextDetail };
10
9
  //# sourceMappingURL=ContextDetail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextDetail.d.ts","names":[],"sources":["../../../src/views/context/ContextDetail.tsx"],"mappings":";;;cAWa,kBAAiB,MAAA;EAI5B,MAAM;EACN,MAAM;sBACP,IAAA"}
1
+ {"version":3,"file":"ContextDetail.d.ts","names":[],"sources":["../../../src/views/context/ContextDetail.tsx"],"mappings":";;;qBAWa,kBAAiB,MAAA;EAI5B,MAAM;EACN,MAAM;sBACP,IAAA"}
@@ -1,7 +1,6 @@
1
1
  //#region src/views/context/ToolUIsView.d.ts
2
- declare const ToolUIsView: ({ value }: {
2
+ export declare const ToolUIsView: ({ value }: {
3
3
  value: unknown;
4
4
  }) => import("react").JSX.Element;
5
5
  //#endregion
6
- export { ToolUIsView };
7
6
  //# sourceMappingURL=ToolUIsView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolUIsView.d.ts","names":[],"sources":["../../../src/views/context/ToolUIsView.tsx"],"mappings":";cAGa,gBAAe;EAAa;sBAAgB,IAAA"}
1
+ {"version":3,"file":"ToolUIsView.d.ts","names":[],"sources":["../../../src/views/context/ToolUIsView.tsx"],"mappings":";qBAGa,gBAAe;EAAa;sBAAgB,IAAA"}
@@ -2,7 +2,7 @@ import { NormalizedTool } from "../../utils/toolNormalization.js";
2
2
  import { ApiInfo } from "../../data/types.js";
3
3
  import { NavGroup } from "../nav.js";
4
4
  //#region src/views/context/contextNodes.d.ts
5
- type ContextNode = {
5
+ export type ContextNode = {
6
6
  id: "ctx:system";
7
7
  kind: "system";
8
8
  preview: string;
@@ -23,9 +23,8 @@ type ContextNode = {
23
23
  id: "ctx:toolUIs";
24
24
  kind: "toolUIs";
25
25
  };
26
- type ContextNavGroup = NavGroup<ContextNode>;
27
- declare const buildContextNav: (data: ApiInfo) => ContextNavGroup[];
28
- declare const toolUiCount: (value: unknown) => number;
26
+ export type ContextNavGroup = NavGroup<ContextNode>;
27
+ export declare const buildContextNav: (data: ApiInfo) => ContextNavGroup[];
28
+ export declare const toolUiCount: (value: unknown) => number;
29
29
  //#endregion
30
- export { ContextNavGroup, ContextNode, buildContextNav, toolUiCount };
31
30
  //# sourceMappingURL=contextNodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contextNodes.d.ts","names":[],"sources":["../../../src/views/context/contextNodes.ts"],"mappings":";;;;KAKY;EACN;EAAkB;EAAgB;;EAClC;EAA0B;EAAc,MAAM;;EAC9C;EAAwB;;EACxB;EAAkB;;EAClB;EAAe;;EACf;EAAmB;;KAEb,kBAAkB,SAAS;cAK1B,kBAAmB,MAAM,YAAU;cAwDnC,cAAe"}
1
+ {"version":3,"file":"contextNodes.d.ts","names":[],"sources":["../../../src/views/context/contextNodes.ts"],"mappings":";;;;YAKY;EACN;EAAkB;EAAgB;;EAClC;EAA0B;EAAc,MAAM;;EAC9C;EAAwB;;EACxB;EAAkB;;EAClB;EAAe;;EACf;EAAmB;;YAEb,kBAAkB,SAAS;qBAK1B,kBAAmB,MAAM,YAAU;qBAwDnC,cAAe"}
@@ -1,8 +1,7 @@
1
1
  //#region src/views/mcp/McpView.d.ts
2
- declare const McpView: ({ value, compact }: {
2
+ export declare const McpView: ({ value, compact }: {
3
3
  value: unknown;
4
4
  compact?: boolean;
5
5
  }) => import("react").JSX.Element;
6
6
  //#endregion
7
- export { McpView };
8
7
  //# sourceMappingURL=McpView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpView.d.ts","names":[],"sources":["../../../src/views/mcp/McpView.tsx"],"mappings":";cA4Fa,YAAW,OAAA;EAItB;EACA;sBACD,IAAA"}
1
+ {"version":3,"file":"McpView.d.ts","names":[],"sources":["../../../src/views/mcp/McpView.tsx"],"mappings":";qBA4Fa,YAAW,OAAA;EAItB;EACA;sBACD,IAAA"}
@@ -1,6 +1,5 @@
1
1
  import { McpManagerPreview } from "./types.js";
2
2
  //#region src/views/mcp/parse.d.ts
3
- declare const parseMcpManager: (value: unknown) => McpManagerPreview | null;
3
+ export declare const parseMcpManager: (value: unknown) => McpManagerPreview | null;
4
4
  //#endregion
5
- export { parseMcpManager };
6
5
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","names":[],"sources":["../../../src/views/mcp/parse.ts"],"mappings":";;cA4Ca,kBAAmB,mBAAiB"}
1
+ {"version":3,"file":"parse.d.ts","names":[],"sources":["../../../src/views/mcp/parse.ts"],"mappings":";;qBA4Ca,kBAAmB,mBAAiB"}
@@ -1,9 +1,9 @@
1
1
  //#region src/views/mcp/types.d.ts
2
- interface McpToolPreview {
2
+ export interface McpToolPreview {
3
3
  readonly name: string;
4
4
  readonly description?: string;
5
5
  }
6
- interface McpServerPreview {
6
+ export interface McpServerPreview {
7
7
  readonly id: string;
8
8
  readonly name: string;
9
9
  readonly kind?: string;
@@ -13,10 +13,9 @@ interface McpServerPreview {
13
13
  readonly authorizationUrl?: string;
14
14
  readonly tools: readonly McpToolPreview[];
15
15
  }
16
- interface McpManagerPreview {
16
+ export interface McpManagerPreview {
17
17
  readonly isHydrated?: boolean;
18
18
  readonly servers: readonly McpServerPreview[];
19
19
  }
20
20
  //#endregion
21
- export { McpManagerPreview, McpServerPreview, McpToolPreview };
22
21
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/mcp/types.ts"],"mappings":";UAAiB;WACN;WACA;;UAGM;WACN;WACA;WACA;WACA;WACA;WACA;WACA;WACA,gBAAgB;;UAGV;WACN;WACA,kBAAkB"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/mcp/types.ts"],"mappings":";iBAAiB;WACN;WACA;;iBAGM;WACN;WACA;WACA;WACA;WACA;WACA;WACA;WACA,gBAAgB;;iBAGV;WACN;WACA,kBAAkB"}
@@ -1,8 +1,7 @@
1
1
  import { PartPreview } from "./types.js";
2
2
  //#region src/views/message/ChainOfThought.d.ts
3
- declare const ChainOfThought: ({ parts }: {
3
+ export declare const ChainOfThought: ({ parts }: {
4
4
  parts: readonly PartPreview[];
5
5
  }) => import("react").JSX.Element;
6
6
  //#endregion
7
- export { ChainOfThought };
8
7
  //# sourceMappingURL=ChainOfThought.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChainOfThought.d.ts","names":[],"sources":["../../../src/views/message/ChainOfThought.tsx"],"mappings":";;cAkCa,mBAAkB;EAG7B,gBAAgB;sBACjB,IAAA"}
1
+ {"version":3,"file":"ChainOfThought.d.ts","names":[],"sources":["../../../src/views/message/ChainOfThought.tsx"],"mappings":";;qBAkCa,mBAAkB;EAG7B,gBAAgB;sBACjB,IAAA"}
@@ -1,9 +1,8 @@
1
1
  import { MessagePreview } from "./types.js";
2
2
  //#region src/views/message/MessageDetailPane.d.ts
3
- declare const messageDetailHeader: (message: MessagePreview) => import("react").JSX.Element;
4
- declare const MessageDetailBody: ({ message }: {
3
+ export declare const messageDetailHeader: (message: MessagePreview) => import("react").JSX.Element;
4
+ export declare const MessageDetailBody: ({ message }: {
5
5
  message: MessagePreview;
6
6
  }) => import("react").JSX.Element;
7
7
  //#endregion
8
- export { MessageDetailBody, messageDetailHeader };
9
8
  //# sourceMappingURL=MessageDetailPane.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageDetailPane.d.ts","names":[],"sources":["../../../src/views/message/MessageDetailPane.tsx"],"mappings":";;cAKa,sBAAuB,SAAS,mCAAc,IAAA;cAkB9C,sBAAqB;EAAe,SAAS;sBAAgB,IAAA"}
1
+ {"version":3,"file":"MessageDetailPane.d.ts","names":[],"sources":["../../../src/views/message/MessageDetailPane.tsx"],"mappings":";;qBAKa,sBAAuB,SAAS,mCAAc,IAAA;qBAkB9C,sBAAqB;EAAe,SAAS;sBAAgB,IAAA"}
@@ -1,10 +1,9 @@
1
1
  import { MessagePreview } from "./types.js";
2
2
  //#region src/views/message/MessageItem.d.ts
3
- declare const MessageItem: ({ message, showHeader }: {
3
+ export declare const MessageItem: ({ message, showHeader }: {
4
4
  message: MessagePreview;
5
5
  /** When false, skips the summary header (role, badges, timestamp). */
6
6
  showHeader?: boolean;
7
7
  }) => import("react").JSX.Element;
8
8
  //#endregion
9
- export { MessageItem };
10
9
  //# sourceMappingURL=MessageItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageItem.d.ts","names":[],"sources":["../../../src/views/message/MessageItem.tsx"],"mappings":";;cAUa,gBAAe,SAAA;EAI1B,SAAS;;EAET;sBACD,IAAA"}
1
+ {"version":3,"file":"MessageItem.d.ts","names":[],"sources":["../../../src/views/message/MessageItem.tsx"],"mappings":";;qBAUa,gBAAe,SAAA;EAI1B,SAAS;;EAET;sBACD,IAAA"}
@@ -1,9 +1,8 @@
1
1
  import { MessagePreview } from "./types.js";
2
2
  //#region src/views/message/MessageList.d.ts
3
- declare const MessageList: ({ messages, title }: {
3
+ export declare const MessageList: ({ messages, title }: {
4
4
  messages: readonly MessagePreview[];
5
5
  title?: string;
6
6
  }) => import("react").JSX.Element;
7
7
  //#endregion
8
- export { MessageList };
9
8
  //# sourceMappingURL=MessageList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageList.d.ts","names":[],"sources":["../../../src/views/message/MessageList.tsx"],"mappings":";;cAOa,gBAAe,UAAA;EAI1B,mBAAmB;EACnB;sBACD,IAAA"}
1
+ {"version":3,"file":"MessageList.d.ts","names":[],"sources":["../../../src/views/message/MessageList.tsx"],"mappings":";;qBAOa,gBAAe,UAAA;EAI1B,mBAAmB;EACnB;sBACD,IAAA"}
@@ -1,8 +1,7 @@
1
1
  import { MessagePreview } from "./types.js";
2
2
  //#region src/views/message/MessageMetrics.d.ts
3
- declare const MessageMetrics: ({ message }: {
3
+ export declare const MessageMetrics: ({ message }: {
4
4
  message: MessagePreview;
5
5
  }) => import("react").JSX.Element | null;
6
6
  //#endregion
7
- export { MessageMetrics };
8
7
  //# sourceMappingURL=MessageMetrics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageMetrics.d.ts","names":[],"sources":["../../../src/views/message/MessageMetrics.tsx"],"mappings":";;cAkDa,mBAAkB;EAAe,SAAS;sBAAgB,IAAA"}
1
+ {"version":3,"file":"MessageMetrics.d.ts","names":[],"sources":["../../../src/views/message/MessageMetrics.tsx"],"mappings":";;qBAiDa,mBAAkB;EAAe,SAAS;sBAAgB,IAAA"}
@@ -8,7 +8,7 @@ const inlineStats = (message) => {
8
8
  const { timing, usage } = message;
9
9
  const stats = [];
10
10
  if (timing && !canRenderBar(timing)) {
11
- const ttft = timing.firstTokenTime !== void 0 && timing.streamStartTime !== void 0 ? Math.max(0, timing.firstTokenTime - timing.streamStartTime) : void 0;
11
+ const ttft = timing.firstTokenTime !== void 0 ? Math.max(0, timing.firstTokenTime) : void 0;
12
12
  if (ttft !== void 0) stats.push(`TTFT ${formatMs(ttft)}`);
13
13
  if (timing.totalStreamTime !== void 0) stats.push(`${formatMs(timing.totalStreamTime)} stream`);
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MessageMetrics.js","names":["formatMs","MessagePreview","TtftBar","canRenderBar","timing","Boolean","streamStartTime","undefined","firstTokenTime","totalStreamTime","inlineStats","message","usage","stats","ttft","Math","max","push","tokensPerSecond","toFixed","tokenCount","totalChunks","toolCallCount","count","inputTokens","outputTokens","steps","stepCount","MessageMetrics","t0","$","_c","t1","t2","t3","t4","Symbol","for","bb0","t5","bar","length","join"],"sources":["../../../src/views/message/MessageMetrics.tsx"],"sourcesContent":["import { formatMs } from \"../../utils/common\";\nimport type { MessagePreview } from \"./types\";\nimport { TtftBar } from \"./TtftBar\";\n\nconst canRenderBar = (timing: MessagePreview[\"timing\"]) =>\n Boolean(\n timing &&\n timing.streamStartTime !== undefined &&\n timing.firstTokenTime !== undefined &&\n timing.totalStreamTime !== undefined,\n );\n\nconst inlineStats = (message: MessagePreview): string[] => {\n const { timing, usage } = message;\n const stats: string[] = [];\n\n if (timing && !canRenderBar(timing)) {\n const ttft =\n timing.firstTokenTime !== undefined &&\n timing.streamStartTime !== undefined\n ? Math.max(0, timing.firstTokenTime - timing.streamStartTime)\n : undefined;\n if (ttft !== undefined) stats.push(`TTFT ${formatMs(ttft)}`);\n if (timing.totalStreamTime !== undefined) {\n stats.push(`${formatMs(timing.totalStreamTime)} stream`);\n }\n }\n\n if (timing?.tokensPerSecond !== undefined) {\n stats.push(`${timing.tokensPerSecond.toFixed(1)} tok/s`);\n }\n if (timing?.tokenCount !== undefined) {\n stats.push(`${timing.tokenCount} tok`);\n }\n if (timing?.totalChunks !== undefined) {\n stats.push(`${timing.totalChunks} chunks`);\n }\n if (timing?.toolCallCount !== undefined) {\n const count = timing.toolCallCount;\n stats.push(`${count} tool${count === 1 ? \"\" : \"s\"}`);\n }\n if (usage) {\n stats.push(`${usage.inputTokens}/${usage.outputTokens} in/out`);\n const steps = usage.stepCount;\n stats.push(`${steps} step${steps === 1 ? \"\" : \"s\"}`);\n }\n\n return stats;\n};\n\nexport const MessageMetrics = ({ message }: { message: MessagePreview }) => {\n const { timing } = message;\n const stats = inlineStats(message);\n const bar = timing && canRenderBar(timing);\n\n if (!bar && stats.length === 0) return null;\n\n return (\n <div className=\"flex flex-col gap-1\">\n {bar ? <TtftBar timing={timing} /> : null}\n {stats.length ? (\n <p className=\"text-muted-foreground text-[10px] leading-tight tabular-nums\">\n {stats.join(\" · \")}\n </p>\n ) : null}\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"MessageMetrics.js","names":["formatMs","MessagePreview","TtftBar","canRenderBar","timing","Boolean","streamStartTime","undefined","firstTokenTime","totalStreamTime","inlineStats","message","usage","stats","ttft","Math","max","push","tokensPerSecond","toFixed","tokenCount","totalChunks","toolCallCount","count","inputTokens","outputTokens","steps","stepCount","MessageMetrics","t0","$","_c","t1","t2","t3","t4","Symbol","for","bb0","t5","bar","length","join"],"sources":["../../../src/views/message/MessageMetrics.tsx"],"sourcesContent":["import { formatMs } from \"../../utils/common\";\nimport type { MessagePreview } from \"./types\";\nimport { TtftBar } from \"./TtftBar\";\n\nconst canRenderBar = (timing: MessagePreview[\"timing\"]) =>\n Boolean(\n timing &&\n timing.streamStartTime !== undefined &&\n timing.firstTokenTime !== undefined &&\n timing.totalStreamTime !== undefined,\n );\n\nconst inlineStats = (message: MessagePreview): string[] => {\n const { timing, usage } = message;\n const stats: string[] = [];\n\n if (timing && !canRenderBar(timing)) {\n const ttft =\n timing.firstTokenTime !== undefined\n ? Math.max(0, timing.firstTokenTime)\n : undefined;\n if (ttft !== undefined) stats.push(`TTFT ${formatMs(ttft)}`);\n if (timing.totalStreamTime !== undefined) {\n stats.push(`${formatMs(timing.totalStreamTime)} stream`);\n }\n }\n\n if (timing?.tokensPerSecond !== undefined) {\n stats.push(`${timing.tokensPerSecond.toFixed(1)} tok/s`);\n }\n if (timing?.tokenCount !== undefined) {\n stats.push(`${timing.tokenCount} tok`);\n }\n if (timing?.totalChunks !== undefined) {\n stats.push(`${timing.totalChunks} chunks`);\n }\n if (timing?.toolCallCount !== undefined) {\n const count = timing.toolCallCount;\n stats.push(`${count} tool${count === 1 ? \"\" : \"s\"}`);\n }\n if (usage) {\n stats.push(`${usage.inputTokens}/${usage.outputTokens} in/out`);\n const steps = usage.stepCount;\n stats.push(`${steps} step${steps === 1 ? \"\" : \"s\"}`);\n }\n\n return stats;\n};\n\nexport const MessageMetrics = ({ message }: { message: MessagePreview }) => {\n const { timing } = message;\n const stats = inlineStats(message);\n const bar = timing && canRenderBar(timing);\n\n if (!bar && stats.length === 0) return null;\n\n return (\n <div className=\"flex flex-col gap-1\">\n {bar ? <TtftBar timing={timing} /> : null}\n {stats.length ? (\n <p className=\"text-muted-foreground text-[10px] leading-tight tabular-nums\">\n {stats.join(\" · \")}\n </p>\n ) : null}\n </div>\n );\n};\n"],"mappings":";;;;;AAIA,MAAMG,gBAAgBC,WACpBC,QACED,UACAA,OAAOE,oBAAoBC,KAAAA,KAC3BH,OAAOI,mBAAmBD,KAAAA,KAC1BH,OAAOK,oBAAoBF,KAAAA,CAC7B;AAEF,MAAMG,eAAeC,YAAsC;CACzD,MAAM,EAAEP,QAAQQ,UAAUD;CAC1B,MAAME,QAAkB,CAAA;CAExB,IAAIT,UAAU,CAACD,aAAaC,MAAM,GAAG;EACnC,MAAMU,OACJV,OAAOI,mBAAmBD,KAAAA,IACtBQ,KAAKC,IAAI,GAAGZ,OAAOI,cAAc,IACjCD,KAAAA;EACN,IAAIO,SAASP,KAAAA,GAAWM,MAAMI,KAAK,QAAQjB,SAASc,IAAI,GAAG;EAC3D,IAAIV,OAAOK,oBAAoBF,KAAAA,GAC7BM,MAAMI,KAAK,GAAGjB,SAASI,OAAOK,eAAe,EAAC,QAAS;CAE3D;CAEA,IAAIL,QAAQc,oBAAoBX,KAAAA,GAC9BM,MAAMI,KAAK,GAAGb,OAAOc,gBAAgBC,QAAQ,CAAC,EAAC,OAAQ;CAEzD,IAAIf,QAAQgB,eAAeb,KAAAA,GACzBM,MAAMI,KAAK,GAAGb,OAAOgB,WAAU,KAAM;CAEvC,IAAIhB,QAAQiB,gBAAgBd,KAAAA,GAC1BM,MAAMI,KAAK,GAAGb,OAAOiB,YAAW,QAAS;CAE3C,IAAIjB,QAAQkB,kBAAkBf,KAAAA,GAAW;EACvC,MAAMgB,QAAQnB,OAAOkB;EACrBT,MAAMI,KAAK,GAAGM,MAAK,OAAQA,UAAU,IAAI,KAAK,KAAK;CACrD;CACA,IAAIX,OAAO;EACTC,MAAMI,KAAK,GAAGL,MAAMY,YAAW,GAAIZ,MAAMa,aAAY,QAAS;EAC9D,MAAMC,QAAQd,MAAMe;EACpBd,MAAMI,KAAK,GAAGS,MAAK,OAAQA,UAAU,IAAI,KAAK,KAAK;CACrD;CAEA,OAAOb;AACT;AAEA,MAAae,kBAAiBC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAApB,YAAAkB;CAC7B,MAAA,EAAAzB,WAAmBO;CAAQ,IAAAqB;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAL,EAAA,OAAAnB,WAAAmB,EAAA,OAAA1B,QAAA;EAIY+B,KAAAC,OAAIC,IAAJ,6BAAG;EAACC,KAAA;GAH3C,MAAAzB,QAAcH,YAAYC,OAAO;GAAE,IAAA4B;GAAA,IAAAT,EAAA,OAAA1B,QAAA;IACvBmC,KAAAnC,UAAUD,aAAaC,MAAM;IAAC0B,EAAA,KAAA1B;IAAA0B,EAAA,KAAAS;GAAA,OAAAA,KAAAT,EAAA;GAA1C,MAAAU,MAAYD;GAEZ,IAAI,CAACC,OAAO3B,MAAK4B,WAAY,GAAC;IAASN,KAAA;IAAA,MAAAG;GAAI;GAG1BN,KAAA;GAAqB,IAAAF,EAAA,OAAAU,OAAAV,EAAA,OAAA1B,QAAA;IACjC6B,KAAAO,MAAM,oBAAC,SAAD,EAAiBpC,OAAM,CAAA,IAA7B;IAAwC0B,EAAA,KAAAU;IAAAV,EAAA,KAAA1B;IAAA0B,EAAA,MAAAG;GAAA,OAAAA,KAAAH,EAAA;GACxCI,KAAArB,MAAK4B,SACJ,oBAAA,KAAA;IAAa,WAAA;IACV5B,UAAAA,MAAK6B,KAAM,KAAK;GACf,CAAA,IAHL;EAIO;EAAAZ,EAAA,KAAAnB;EAAAmB,EAAA,KAAA1B;EAAA0B,EAAA,KAAAE;EAAAF,EAAA,KAAAG;EAAAH,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;CAAA,OAAA;EAAAH,KAAAF,EAAA;EAAAG,KAAAH,EAAA;EAAAI,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;CAAA;CAAA,IAAAK,OAAAC,OAAAC,IAAA,6BAAA,GAAA,OAAAF;CAAA,IAAAI;CAAA,IAAAT,EAAA,QAAAE,MAAAF,EAAA,QAAAG,MAAAH,EAAA,QAAAI,IAAA;EANVK,KAAA,qBAAA,OAAA;GAAe,WAAAP;GAAf,UAAA,CACGC,IACAC,EAKG;;EAAAJ,EAAA,MAAAE;EAAAF,EAAA,MAAAG;EAAAH,EAAA,MAAAI;EAAAJ,EAAA,MAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,OAPNS;AAOM"}
@@ -1,13 +1,12 @@
1
1
  import { PartPreview } from "./types.js";
2
2
  //#region src/views/message/MessageTimeline.d.ts
3
- declare const MessageTimeline: ({ parts }: {
3
+ export declare const MessageTimeline: ({ parts }: {
4
4
  parts: readonly PartPreview[];
5
5
  }) => import("react").JSX.Element | null;
6
- declare const messageToolCount: (parts: readonly PartPreview[]) => number;
7
- declare const messageStepCount: (parts: readonly PartPreview[]) => {
6
+ export declare const messageToolCount: (parts: readonly PartPreview[]) => number;
7
+ export declare const messageStepCount: (parts: readonly PartPreview[]) => {
8
8
  tools: number;
9
9
  texts: number;
10
10
  };
11
11
  //#endregion
12
- export { MessageTimeline, messageStepCount, messageToolCount };
13
12
  //# sourceMappingURL=MessageTimeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageTimeline.d.ts","names":[],"sources":["../../../src/views/message/MessageTimeline.tsx"],"mappings":";;cASa,oBAAmB;EAG9B,gBAAgB;sBACjB,IAAA;cA8BY,mBAAoB,gBAAgB;cAGpC,mBAAoB,gBAAgB"}
1
+ {"version":3,"file":"MessageTimeline.d.ts","names":[],"sources":["../../../src/views/message/MessageTimeline.tsx"],"mappings":";;qBASa,oBAAmB;EAG9B,gBAAgB;sBACjB,IAAA;qBA8BY,mBAAoB,gBAAgB;qBAGpC,mBAAoB,gBAAgB"}
@@ -1,12 +1,11 @@
1
1
  import { ReactNode } from "react";
2
2
  //#region src/views/message/PartDisclosure.d.ts
3
3
  /** Label-only row; put payload in children. */
4
- declare const PartDisclosure: ({ label, defaultOpen, trailing, children }: {
4
+ export declare const PartDisclosure: ({ label, defaultOpen, trailing, children }: {
5
5
  label: string;
6
6
  defaultOpen?: boolean;
7
7
  trailing?: ReactNode;
8
8
  children: ReactNode;
9
9
  }) => import("react").JSX.Element;
10
10
  //#endregion
11
- export { PartDisclosure };
12
11
  //# sourceMappingURL=PartDisclosure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PartDisclosure.d.ts","names":[],"sources":["../../../src/views/message/PartDisclosure.tsx"],"mappings":";;;cAGa,mBAAkB,OAAA,aAAA,UAAA;EAM7B;EACA;EACA,WAAW;EACX,UAAU;sBACX,IAAA"}
1
+ {"version":3,"file":"PartDisclosure.d.ts","names":[],"sources":["../../../src/views/message/PartDisclosure.tsx"],"mappings":";;;qBAGa,mBAAkB,OAAA,aAAA,UAAA;EAM7B;EACA;EACA,WAAW;EACX,UAAU;sBACX,IAAA"}
@@ -1,9 +1,8 @@
1
1
  import { PartPreview } from "./types.js";
2
2
  //#region src/views/message/PartView.d.ts
3
- declare const PartView: ({ part, compact }: {
3
+ export declare const PartView: ({ part, compact }: {
4
4
  part: PartPreview;
5
5
  compact?: boolean;
6
6
  }) => import("react").JSX.Element;
7
7
  //#endregion
8
- export { PartView };
9
8
  //# sourceMappingURL=PartView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PartView.d.ts","names":[],"sources":["../../../src/views/message/PartView.tsx"],"mappings":";;cAmFa,aAAY,MAAA;EAIvB,MAAM;EACN;sBACD,IAAA"}
1
+ {"version":3,"file":"PartView.d.ts","names":[],"sources":["../../../src/views/message/PartView.tsx"],"mappings":";;qBAmFa,aAAY,MAAA;EAIvB,MAAM;EACN;sBACD,IAAA"}
@@ -1,8 +1,7 @@
1
1
  //#region src/views/message/RoleLabel.d.ts
2
- declare const RoleLabel: ({ role, compact }: {
2
+ export declare const RoleLabel: ({ role, compact }: {
3
3
  role: string;
4
4
  compact?: boolean;
5
5
  }) => import("react").JSX.Element;
6
6
  //#endregion
7
- export { RoleLabel };
8
7
  //# sourceMappingURL=RoleLabel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoleLabel.d.ts","names":[],"sources":["../../../src/views/message/RoleLabel.tsx"],"mappings":";cAEa,cAAa,MAAA;EAIxB;EACA;sBACD,IAAA"}
1
+ {"version":3,"file":"RoleLabel.d.ts","names":[],"sources":["../../../src/views/message/RoleLabel.tsx"],"mappings":";qBAEa,cAAa,MAAA;EAIxB;EACA;sBACD,IAAA"}
@@ -1,5 +1,5 @@
1
1
  //#region src/views/message/StatusBadge.d.ts
2
- declare const StatusBadge: ({ type, reason, compact, size, className }: {
2
+ export declare const StatusBadge: ({ type, reason, compact, size, className }: {
3
3
  type: string;
4
4
  reason?: string | undefined;
5
5
  /** Omits the reason segment — better for narrow transcript rails. */
@@ -8,5 +8,4 @@ declare const StatusBadge: ({ type, reason, compact, size, className }: {
8
8
  className?: string | undefined;
9
9
  }) => import("react").JSX.Element;
10
10
  //#endregion
11
- export { StatusBadge };
12
11
  //# sourceMappingURL=StatusBadge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBadge.d.ts","names":[],"sources":["../../../src/views/message/StatusBadge.tsx"],"mappings":";cAGa,gBAAe,MAAA,QAAA,SAAA,MAAA;EAO1B;EACA;;EAEA;EACA;EACA;sBACD,IAAA"}
1
+ {"version":3,"file":"StatusBadge.d.ts","names":[],"sources":["../../../src/views/message/StatusBadge.tsx"],"mappings":";qBAGa,gBAAe,MAAA,QAAA,SAAA,MAAA;EAO1B;EACA;;EAEA;EACA;EACA;sBACD,IAAA"}
@@ -1,9 +1,8 @@
1
1
  import { ToolCallPartPreview } from "./types.js";
2
2
  //#region src/views/message/ToolCallView.d.ts
3
- declare const ToolCallView: ({ part, nested }: {
3
+ export declare const ToolCallView: ({ part, nested }: {
4
4
  part: ToolCallPartPreview;
5
5
  nested?: boolean;
6
6
  }) => import("react").JSX.Element;
7
7
  //#endregion
8
- export { ToolCallView };
9
8
  //# sourceMappingURL=ToolCallView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCallView.d.ts","names":[],"sources":["../../../src/views/message/ToolCallView.tsx"],"mappings":";;cAoBa,iBAAgB,MAAA;EAI3B,MAAM;EACN;sBACD,IAAA"}
1
+ {"version":3,"file":"ToolCallView.d.ts","names":[],"sources":["../../../src/views/message/ToolCallView.tsx"],"mappings":";;qBAoBa,iBAAgB,MAAA;EAI3B,MAAM;EACN;sBACD,IAAA"}
@@ -3,11 +3,10 @@ import { MessageTimingPreview } from "./types.js";
3
3
  /**
4
4
  * Splits a model turn into the time-to-first-token segment (dim) and the
5
5
  * streaming segment (solid). The only width-bearing timing form: both numbers
6
- * are measured, not derived. Renders nothing unless all three timestamps exist.
6
+ * are measured, not derived. Renders nothing unless all three timing values exist.
7
7
  */
8
- declare const TtftBar: ({ timing }: {
8
+ export declare const TtftBar: ({ timing }: {
9
9
  timing: MessageTimingPreview;
10
10
  }) => import("react").JSX.Element | null;
11
11
  //#endregion
12
- export { TtftBar };
13
12
  //# sourceMappingURL=TtftBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TtftBar.d.ts","names":[],"sources":["../../../src/views/message/TtftBar.tsx"],"mappings":";;;;;;;cAQa,YAAW;EAAc,QAAQ;sBAAsB,IAAA"}
1
+ {"version":3,"file":"TtftBar.d.ts","names":[],"sources":["../../../src/views/message/TtftBar.tsx"],"mappings":";;;;;;;qBAQa,YAAW;EAAc,QAAQ;sBAAsB,IAAA"}