@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
@@ -5,14 +5,14 @@ import { jsx, jsxs } from "react/jsx-runtime";
5
5
  /**
6
6
  * Splits a model turn into the time-to-first-token segment (dim) and the
7
7
  * streaming segment (solid). The only width-bearing timing form: both numbers
8
- * are measured, not derived. Renders nothing unless all three timestamps exist.
8
+ * are measured, not derived. Renders nothing unless all three timing values exist.
9
9
  */
10
10
  const TtftBar = (t0) => {
11
11
  const $ = c(31);
12
12
  const { timing } = t0;
13
13
  const { streamStartTime, firstTokenTime, totalStreamTime } = timing;
14
14
  if (streamStartTime === void 0 || firstTokenTime === void 0 || totalStreamTime === void 0) return null;
15
- const ttft = Math.max(0, firstTokenTime - streamStartTime);
15
+ const ttft = Math.max(0, firstTokenTime);
16
16
  const total = Math.max(totalStreamTime, ttft);
17
17
  const stream = Math.max(0, total - ttft);
18
18
  const ttftPercent = total > 0 ? ttft / total * 100 : 0;
@@ -1 +1 @@
1
- {"version":3,"file":"TtftBar.js","names":["formatMs","MessageTimingPreview","TtftBar","t0","$","_c","timing","streamStartTime","firstTokenTime","totalStreamTime","undefined","ttft","Math","max","total","stream","ttftPercent","t1","t2","t3","t4","t5","t6","t7","width","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17"],"sources":["../../../src/views/message/TtftBar.tsx"],"sourcesContent":["import { formatMs } from \"../../utils/common\";\nimport type { MessageTimingPreview } from \"./types\";\n\n/**\n * Splits a model turn into the time-to-first-token segment (dim) and the\n * streaming segment (solid). The only width-bearing timing form: both numbers\n * are measured, not derived. Renders nothing unless all three timestamps exist.\n */\nexport const TtftBar = ({ timing }: { timing: MessageTimingPreview }) => {\n const { streamStartTime, firstTokenTime, totalStreamTime } = timing;\n if (\n streamStartTime === undefined ||\n firstTokenTime === undefined ||\n totalStreamTime === undefined\n ) {\n return null;\n }\n\n const ttft = Math.max(0, firstTokenTime - streamStartTime);\n const total = Math.max(totalStreamTime, ttft);\n const stream = Math.max(0, total - ttft);\n const ttftPercent = total > 0 ? (ttft / total) * 100 : 0;\n\n return (\n <div className=\"flex flex-col gap-0.5\">\n <div className=\"text-muted-foreground flex justify-between text-[9px] leading-none tabular-nums\">\n <span>TTFT {formatMs(ttft)}</span>\n <span>{formatMs(stream)} stream</span>\n </div>\n <div className=\"bg-muted flex h-1 overflow-hidden rounded-full\">\n <div\n className=\"bg-muted-foreground/40 h-full\"\n style={{ width: `${ttftPercent}%` }}\n title={`TTFT ${formatMs(ttft)}`}\n />\n <div\n className=\"bg-primary h-full\"\n style={{ width: `${100 - ttftPercent}%` }}\n title={`stream ${formatMs(stream)}`}\n />\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"TtftBar.js","names":["formatMs","MessageTimingPreview","TtftBar","t0","$","_c","timing","streamStartTime","firstTokenTime","totalStreamTime","undefined","ttft","Math","max","total","stream","ttftPercent","t1","t2","t3","t4","t5","t6","t7","width","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17"],"sources":["../../../src/views/message/TtftBar.tsx"],"sourcesContent":["import { formatMs } from \"../../utils/common\";\nimport type { MessageTimingPreview } from \"./types\";\n\n/**\n * Splits a model turn into the time-to-first-token segment (dim) and the\n * streaming segment (solid). The only width-bearing timing form: both numbers\n * are measured, not derived. Renders nothing unless all three timing values exist.\n */\nexport const TtftBar = ({ timing }: { timing: MessageTimingPreview }) => {\n const { streamStartTime, firstTokenTime, totalStreamTime } = timing;\n if (\n streamStartTime === undefined ||\n firstTokenTime === undefined ||\n totalStreamTime === undefined\n ) {\n return null;\n }\n\n const ttft = Math.max(0, firstTokenTime);\n const total = Math.max(totalStreamTime, ttft);\n const stream = Math.max(0, total - ttft);\n const ttftPercent = total > 0 ? (ttft / total) * 100 : 0;\n\n return (\n <div className=\"flex flex-col gap-0.5\">\n <div className=\"text-muted-foreground flex justify-between text-[9px] leading-none tabular-nums\">\n <span>TTFT {formatMs(ttft)}</span>\n <span>{formatMs(stream)} stream</span>\n </div>\n <div className=\"bg-muted flex h-1 overflow-hidden rounded-full\">\n <div\n className=\"bg-muted-foreground/40 h-full\"\n style={{ width: `${ttftPercent}%` }}\n title={`TTFT ${formatMs(ttft)}`}\n />\n <div\n className=\"bg-primary h-full\"\n style={{ width: `${100 - ttftPercent}%` }}\n title={`stream ${formatMs(stream)}`}\n />\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { MessagePreview } from "./types.js";
2
2
  //#region src/views/message/messagePlainText.d.ts
3
3
  /** Plain-text export of a message for clipboard copy. */
4
- declare const messagePlainText: (message: MessagePreview) => string;
4
+ export declare const messagePlainText: (message: MessagePreview) => string;
5
5
  //#endregion
6
- export { messagePlainText };
7
6
  //# sourceMappingURL=messagePlainText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messagePlainText.d.ts","names":[],"sources":["../../../src/views/message/messagePlainText.ts"],"mappings":";;;cA8Ca,mBAAoB,SAAS"}
1
+ {"version":3,"file":"messagePlainText.d.ts","names":[],"sources":["../../../src/views/message/messagePlainText.ts"],"mappings":";;;qBA8Ca,mBAAoB,SAAS"}
@@ -1,9 +1,8 @@
1
1
  import { MessagePreview, PartPreview, PartStatusPreview } from "./types.js";
2
2
  //#region src/views/message/parse.d.ts
3
- declare const partKey: (part: PartPreview, index: number) => string;
4
- declare const parsePartStatus: (value: unknown) => PartStatusPreview | undefined;
5
- declare const parsePart: (value: unknown) => PartPreview;
6
- declare const parseMessage: (value: unknown, index: number) => MessagePreview | null;
3
+ export declare const partKey: (part: PartPreview, index: number) => string;
4
+ export declare const parsePartStatus: (value: unknown) => PartStatusPreview | undefined;
5
+ export declare const parsePart: (value: unknown) => PartPreview;
6
+ export declare const parseMessage: (value: unknown, index: number) => MessagePreview | null;
7
7
  //#endregion
8
- export { parseMessage, parsePart, parsePartStatus, partKey };
9
8
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","names":[],"sources":["../../../src/views/message/parse.ts"],"mappings":";;cAiBa,UAAW,MAAM,aAAa;cAK9B,kBACX,mBACC;cA2EU,YAAa,mBAAiB;cA2I9B,eACX,gBACA,kBACC"}
1
+ {"version":3,"file":"parse.d.ts","names":[],"sources":["../../../src/views/message/parse.ts"],"mappings":";;qBAiBa,UAAW,MAAM,aAAa;qBAK9B,kBACX,mBACC;qBA2EU,YAAa,mBAAiB;qBA2I9B,eACX,gBACA,kBACC"}
@@ -1,64 +1,64 @@
1
1
  import { AttachmentPreview } from "../attachments/types.js";
2
2
  //#region src/views/message/types.d.ts
3
- interface PartStatusPreview {
3
+ export interface PartStatusPreview {
4
4
  readonly type: string;
5
5
  readonly reason?: string;
6
6
  readonly error?: unknown;
7
7
  }
8
- interface ToolCallApprovalPreview {
8
+ export interface ToolCallApprovalPreview {
9
9
  readonly id?: string;
10
10
  readonly approved?: boolean;
11
11
  readonly reason?: string;
12
12
  readonly isAutomatic?: boolean;
13
13
  }
14
- interface ToolCallInterruptPreview {
14
+ export interface ToolCallInterruptPreview {
15
15
  readonly type?: string;
16
16
  readonly payload?: unknown;
17
17
  }
18
18
  interface BasePartPreview {
19
19
  readonly status?: PartStatusPreview;
20
20
  }
21
- interface TextPartPreview extends BasePartPreview {
21
+ export interface TextPartPreview extends BasePartPreview {
22
22
  readonly type: "text";
23
23
  readonly text: string;
24
24
  }
25
- interface ReasoningPartPreview extends BasePartPreview {
25
+ export interface ReasoningPartPreview extends BasePartPreview {
26
26
  readonly type: "reasoning";
27
27
  readonly text: string;
28
28
  }
29
- interface SourcePartPreview extends BasePartPreview {
29
+ export interface SourcePartPreview extends BasePartPreview {
30
30
  readonly type: "source";
31
31
  readonly sourceType?: string;
32
32
  readonly title?: string;
33
33
  readonly url?: string;
34
34
  }
35
- interface ImagePartPreview extends BasePartPreview {
35
+ export interface ImagePartPreview extends BasePartPreview {
36
36
  readonly type: "image";
37
37
  readonly filename?: string;
38
38
  readonly previewUrl?: string;
39
39
  readonly sizeBytes?: number;
40
40
  }
41
- interface FilePartPreview extends BasePartPreview {
41
+ export interface FilePartPreview extends BasePartPreview {
42
42
  readonly type: "file";
43
43
  readonly filename?: string;
44
44
  readonly mimeType?: string;
45
45
  readonly sizeBytes?: number;
46
46
  }
47
- interface AudioPartPreview extends BasePartPreview {
47
+ export interface AudioPartPreview extends BasePartPreview {
48
48
  readonly type: "audio";
49
49
  readonly format?: string;
50
50
  readonly sizeBytes?: number;
51
51
  }
52
- interface DataPartPreview extends BasePartPreview {
52
+ export interface DataPartPreview extends BasePartPreview {
53
53
  readonly type: "data";
54
54
  readonly name?: string;
55
55
  readonly data: unknown;
56
56
  }
57
- interface GenerativeUiPartPreview extends BasePartPreview {
57
+ export interface GenerativeUiPartPreview extends BasePartPreview {
58
58
  readonly type: "generative-ui";
59
59
  readonly spec: unknown;
60
60
  }
61
- interface ToolCallPartPreview extends BasePartPreview {
61
+ export interface ToolCallPartPreview extends BasePartPreview {
62
62
  readonly type: "tool-call";
63
63
  readonly toolCallId: string;
64
64
  readonly toolName: string;
@@ -73,13 +73,13 @@ interface ToolCallPartPreview extends BasePartPreview {
73
73
  readonly approval?: ToolCallApprovalPreview;
74
74
  readonly subMessageCount: number;
75
75
  }
76
- interface UnknownPartPreview extends BasePartPreview {
76
+ export interface UnknownPartPreview extends BasePartPreview {
77
77
  readonly type: "unknown";
78
78
  readonly rawType: string;
79
79
  readonly raw: unknown;
80
80
  }
81
- type PartPreview = TextPartPreview | ReasoningPartPreview | SourcePartPreview | ImagePartPreview | FilePartPreview | AudioPartPreview | DataPartPreview | GenerativeUiPartPreview | ToolCallPartPreview | UnknownPartPreview;
82
- interface MessageTimingPreview {
81
+ export type PartPreview = TextPartPreview | ReasoningPartPreview | SourcePartPreview | ImagePartPreview | FilePartPreview | AudioPartPreview | DataPartPreview | GenerativeUiPartPreview | ToolCallPartPreview | UnknownPartPreview;
82
+ export interface MessageTimingPreview {
83
83
  readonly streamStartTime?: number;
84
84
  readonly firstTokenTime?: number;
85
85
  readonly totalStreamTime?: number;
@@ -88,12 +88,12 @@ interface MessageTimingPreview {
88
88
  readonly totalChunks?: number;
89
89
  readonly toolCallCount?: number;
90
90
  }
91
- interface MessageUsagePreview {
91
+ export interface MessageUsagePreview {
92
92
  readonly inputTokens: number;
93
93
  readonly outputTokens: number;
94
94
  readonly stepCount: number;
95
95
  }
96
- interface MessagePreview {
96
+ export interface MessagePreview {
97
97
  readonly id: string;
98
98
  readonly role: string;
99
99
  readonly createdAt?: string;
@@ -109,5 +109,4 @@ interface MessagePreview {
109
109
  readonly submittedFeedback?: string;
110
110
  }
111
111
  //#endregion
112
- export { AudioPartPreview, DataPartPreview, FilePartPreview, GenerativeUiPartPreview, ImagePartPreview, MessagePreview, MessageTimingPreview, MessageUsagePreview, PartPreview, PartStatusPreview, ReasoningPartPreview, SourcePartPreview, TextPartPreview, ToolCallApprovalPreview, ToolCallInterruptPreview, ToolCallPartPreview, UnknownPartPreview };
113
112
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/message/types.ts"],"mappings":";;UAEiB;WACN;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA;;UAGM;WACN;WACA;;UAGD;WACC,SAAS;;UAGH,wBAAwB;WAC9B;WACA;;UAGM,6BAA6B;WACnC;WACA;;UAGM,0BAA0B;WAChC;WACA;WACA;WACA;;UAGM,yBAAyB;WAC/B;WACA;WACA;WACA;;UAGM,wBAAwB;WAC9B;WACA;WACA;WACA;;UAGM,yBAAyB;WAC/B;WACA;WACA;;UAGM,wBAAwB;WAC9B;WACA;WACA;;UAGM,gCAAgC;WACtC;WACA;;UAGM,4BAA4B;WAClC;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,YAAY;WACZ,WAAW;WACX;;UAGM,2BAA2B;WACjC;WACA;WACA;;KAGC,cACR,kBACA,uBACA,oBACA,mBACA,kBACA,mBACA,kBACA,0BACA,sBACA;UAEa;WACN;WACA;WACA;WACA;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA,SAAS;WACT,gBAAgB;WAChB,sBAAsB;WACtB,SAAS;WACT,QAAQ;WACR;WACA;WACA;WACA;WACA"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/message/types.ts"],"mappings":";;iBAEiB;WACN;WACA;WACA;;iBAGM;WACN;WACA;WACA;WACA;;iBAGM;WACN;WACA;;UAGD;WACC,SAAS;;iBAGH,wBAAwB;WAC9B;WACA;;iBAGM,6BAA6B;WACnC;WACA;;iBAGM,0BAA0B;WAChC;WACA;WACA;WACA;;iBAGM,yBAAyB;WAC/B;WACA;WACA;WACA;;iBAGM,wBAAwB;WAC9B;WACA;WACA;WACA;;iBAGM,yBAAyB;WAC/B;WACA;WACA;;iBAGM,wBAAwB;WAC9B;WACA;WACA;;iBAGM,gCAAgC;WACtC;WACA;;iBAGM,4BAA4B;WAClC;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,YAAY;WACZ,WAAW;WACX;;iBAGM,2BAA2B;WACjC;WACA;WACA;;YAGC,cACR,kBACA,uBACA,oBACA,mBACA,kBACA,mBACA,kBACA,0BACA,sBACA;iBAEa;WACN;WACA;WACA;WACA;WACA;WACA;WACA;;iBAGM;WACN;WACA;WACA;;iBAGM;WACN;WACA;WACA;WACA,SAAS;WACT,gBAAgB;WAChB,sBAAsB;WACtB,SAAS;WACT,QAAQ;WACR;WACA;WACA;WACA;WACA"}
@@ -1,17 +1,16 @@
1
1
  import { NormalizedTool } from "../../utils/toolNormalization.js";
2
2
  //#region src/views/model-context/ModelContextView.d.ts
3
- declare const SystemPromptPane: ({ system }: {
3
+ export declare const SystemPromptPane: ({ system }: {
4
4
  system: string;
5
5
  }) => import("react").JSX.Element;
6
- declare const ToolDetailPane: ({ tool }: {
6
+ export declare const ToolDetailPane: ({ tool }: {
7
7
  tool: NormalizedTool;
8
8
  }) => import("react").JSX.Element;
9
- declare const CallSettingsPane: ({ value }: {
9
+ export declare const CallSettingsPane: ({ value }: {
10
10
  value: Record<string, unknown>;
11
11
  }) => import("react").JSX.Element;
12
- declare const ConfigPane: ({ value }: {
12
+ export declare const ConfigPane: ({ value }: {
13
13
  value: Record<string, unknown>;
14
14
  }) => import("react").JSX.Element;
15
15
  //#endregion
16
- export { CallSettingsPane, ConfigPane, SystemPromptPane, ToolDetailPane };
17
16
  //# sourceMappingURL=ModelContextView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelContextView.d.ts","names":[],"sources":["../../../src/views/model-context/ModelContextView.tsx"],"mappings":";;cAIa,qBAAoB;EAAc;sBAAgB,IAAA;cAMlD,mBAAkB;EAAY,MAAM;sBAAgB,IAAA;cAoDpD,qBAAoB;EAG/B,OAAO;sBACR,IAAA;cAEY,eAAc;EAAa,OAAO;sBAAyB,IAAA"}
1
+ {"version":3,"file":"ModelContextView.d.ts","names":[],"sources":["../../../src/views/model-context/ModelContextView.tsx"],"mappings":";;qBAIa,qBAAoB;EAAc;sBAAgB,IAAA;qBAMlD,mBAAkB;EAAY,MAAM;sBAAgB,IAAA;qBAoDpD,qBAAoB;EAG/B,OAAO;sBACR,IAAA;qBAEY,eAAc;EAAa,OAAO;sBAAyB,IAAA"}
@@ -1,19 +1,18 @@
1
1
  //#region src/views/nav.d.ts
2
- type NavGroup<N extends {
2
+ export type NavGroup<N extends {
3
3
  id: string;
4
4
  }> = {
5
5
  label: string;
6
6
  nodes: N[];
7
7
  };
8
- declare const flattenNav: <N extends {
8
+ export declare const flattenNav: <N extends {
9
9
  id: string;
10
10
  }>(groups: readonly NavGroup<N>[]) => N[];
11
- declare const findNavNode: <N extends {
11
+ export declare const findNavNode: <N extends {
12
12
  id: string;
13
13
  }>(groups: readonly NavGroup<N>[], nodeId: string | null) => N | undefined;
14
- declare const firstNavId: <N extends {
14
+ export declare const firstNavId: <N extends {
15
15
  id: string;
16
16
  }>(groups: readonly NavGroup<N>[]) => string | null;
17
17
  //#endregion
18
- export { NavGroup, findNavNode, firstNavId, flattenNav };
19
18
  //# sourceMappingURL=nav.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nav.d.ts","names":[],"sources":["../../src/views/nav.ts"],"mappings":";KAAY,SAAS;EAAY;;EAC/B;EACA,OAAO;;cAGI,aAAc;EAAY;GACrC,iBAAiB,SAAS,SACzB;cAEU,cAAe;EAAY;GACtC,iBAAiB,SAAS,MAC1B,0BACC;cAGU,aAAc;EAAY;GACrC,iBAAiB,SAAS"}
1
+ {"version":3,"file":"nav.d.ts","names":[],"sources":["../../src/views/nav.ts"],"mappings":";YAAY,SAAS;EAAY;;EAC/B;EACA,OAAO;;qBAGI,aAAc;EAAY;GACrC,iBAAiB,SAAS,SACzB;qBAEU,cAAe;EAAY;GACtC,iBAAiB,SAAS,MAC1B,0BACC;qBAGU,aAAc;EAAY;GACrC,iBAAiB,SAAS"}
@@ -1,10 +1,9 @@
1
1
  import { RawNode } from "./rawNodes.js";
2
2
  //#region src/views/raw/RawDetail.d.ts
3
- declare const RawDetail: ({ node, state, scopes }: {
3
+ export declare const RawDetail: ({ node, state, scopes }: {
4
4
  node: RawNode;
5
5
  state: Record<string, unknown>;
6
6
  scopes: unknown;
7
7
  }) => import("react").JSX.Element;
8
8
  //#endregion
9
- export { RawDetail };
10
9
  //# sourceMappingURL=RawDetail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RawDetail.d.ts","names":[],"sources":["../../../src/views/raw/RawDetail.tsx"],"mappings":";;cAMa,cAAa,MAAA,OAAA;EAKxB,MAAM;EACN,OAAO;EACP;sBACD,IAAA"}
1
+ {"version":3,"file":"RawDetail.d.ts","names":[],"sources":["../../../src/views/raw/RawDetail.tsx"],"mappings":";;qBAMa,cAAa,MAAA,OAAA;EAKxB,MAAM;EACN,OAAO;EACP;sBACD,IAAA"}
@@ -1,7 +1,7 @@
1
1
  import { ApiInfo } from "../../data/types.js";
2
2
  import { NavGroup } from "../nav.js";
3
3
  //#region src/views/raw/rawNodes.d.ts
4
- type RawNode = {
4
+ export type RawNode = {
5
5
  id: `raw:slice:${string}`;
6
6
  kind: "slice";
7
7
  key: string;
@@ -11,9 +11,8 @@ type RawNode = {
11
11
  kind: "scopes";
12
12
  count: number;
13
13
  };
14
- type RawNavGroup = NavGroup<RawNode>;
15
- declare const sliceHint: (key: string, value: unknown) => string | null;
16
- declare const buildRawNav: (data: ApiInfo) => RawNavGroup[];
14
+ export type RawNavGroup = NavGroup<RawNode>;
15
+ export declare const sliceHint: (key: string, value: unknown) => string | null;
16
+ export declare const buildRawNav: (data: ApiInfo) => RawNavGroup[];
17
17
  //#endregion
18
- export { RawNavGroup, RawNode, buildRawNav, sliceHint };
19
18
  //# sourceMappingURL=rawNodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rawNodes.d.ts","names":[],"sources":["../../../src/views/raw/rawNodes.ts"],"mappings":";;;KAUY;EAEN;EACA;EACA;EACA;;EAEA;EAAkB;EAAgB;;KAE5B,cAAc,SAAS;cAwBtB,YAAa,aAAa;cAmC1B,cAAe,MAAM,YAAU"}
1
+ {"version":3,"file":"rawNodes.d.ts","names":[],"sources":["../../../src/views/raw/rawNodes.ts"],"mappings":";;;YAUY;EAEN;EACA;EACA;EACA;;EAEA;EAAkB;EAAgB;;YAE5B,cAAc,SAAS;qBAwBtB,YAAa,aAAa;qBAmC1B,cAAe,MAAM,YAAU"}
@@ -1,5 +1,4 @@
1
1
  //#region src/views/raw/statePreview.d.ts
2
- declare const renderStatePreview: (key: string, value: unknown) => import("react").JSX.Element;
2
+ export declare const renderStatePreview: (key: string, value: unknown) => import("react").JSX.Element;
3
3
  //#endregion
4
- export { renderStatePreview };
5
4
  //# sourceMappingURL=statePreview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"statePreview.d.ts","names":[],"sources":["../../../src/views/raw/statePreview.tsx"],"mappings":";cAmKa,qBAAsB,aAAa,mCAAc,IAAA"}
1
+ {"version":3,"file":"statePreview.d.ts","names":[],"sources":["../../../src/views/raw/statePreview.tsx"],"mappings":";qBAmKa,qBAAsB,aAAa,mCAAc,IAAA"}
@@ -1,8 +1,7 @@
1
1
  //#region src/views/runs/PayloadDiff.d.ts
2
- declare const PayloadDiff: ({ before, after }: {
2
+ export declare const PayloadDiff: ({ before, after }: {
3
3
  before: unknown;
4
4
  after: unknown;
5
5
  }) => import("react").JSX.Element;
6
6
  //#endregion
7
- export { PayloadDiff };
8
7
  //# sourceMappingURL=PayloadDiff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayloadDiff.d.ts","names":[],"sources":["../../../src/views/runs/PayloadDiff.tsx"],"mappings":";cAaa,gBAAe,QAAA;EAI1B;EACA;sBACD,IAAA"}
1
+ {"version":3,"file":"PayloadDiff.d.ts","names":[],"sources":["../../../src/views/runs/PayloadDiff.tsx"],"mappings":";qBAaa,gBAAe,QAAA;EAI1B;EACA;sBACD,IAAA"}
@@ -1,7 +1,6 @@
1
1
  import { EventLogEntry } from "../../data/types.js";
2
2
  import { RunGrouping } from "./types.js";
3
3
  //#region src/views/runs/parse.d.ts
4
- declare const groupRuns: (logs: readonly EventLogEntry[]) => RunGrouping;
4
+ export declare const groupRuns: (logs: readonly EventLogEntry[]) => RunGrouping;
5
5
  //#endregion
6
- export { groupRuns };
7
6
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","names":[],"sources":["../../../src/views/runs/parse.ts"],"mappings":";;;cA+Ba,YAAa,eAAe,oBAAkB"}
1
+ {"version":3,"file":"parse.d.ts","names":[],"sources":["../../../src/views/runs/parse.ts"],"mappings":";;;qBA+Ba,YAAa,eAAe,oBAAkB"}
@@ -1,12 +1,12 @@
1
1
  //#region src/views/runs/types.d.ts
2
- interface RunEventEntry {
2
+ export interface RunEventEntry {
3
3
  readonly time: Date;
4
4
  readonly event: string;
5
5
  readonly scope: string;
6
6
  readonly offsetMs: number;
7
7
  readonly data: unknown;
8
8
  }
9
- interface RunPreview {
9
+ export interface RunPreview {
10
10
  readonly id: string;
11
11
  readonly threadId?: string;
12
12
  readonly index: number;
@@ -16,10 +16,9 @@ interface RunPreview {
16
16
  readonly spanMs: number;
17
17
  readonly events: readonly RunEventEntry[];
18
18
  }
19
- interface RunGrouping {
19
+ export interface RunGrouping {
20
20
  readonly runs: readonly RunPreview[];
21
21
  readonly orphans: readonly RunEventEntry[];
22
22
  }
23
23
  //#endregion
24
- export { RunEventEntry, RunGrouping, RunPreview };
25
24
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/runs/types.ts"],"mappings":";UAAiB;WACN,MAAM;WACN;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA,WAAW;WACX,UAAU;WACV;WACA;WACA,iBAAiB;;UAGX;WACN,eAAe;WACf,kBAAkB"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/runs/types.ts"],"mappings":";iBAAiB;WACN,MAAM;WACN;WACA;WACA;WACA;;iBAGM;WACN;WACA;WACA;WACA,WAAW;WACX,UAAU;WACV;WACA;WACA,iBAAiB;;iBAGX;WACN,eAAe;WACf,kBAAkB"}
@@ -1,7 +1,6 @@
1
1
  //#region src/views/scopes/ScopesView.d.ts
2
- declare const ScopesView: ({ scopes }: {
2
+ export declare const ScopesView: ({ scopes }: {
3
3
  scopes?: unknown;
4
4
  }) => import("react").JSX.Element;
5
5
  //#endregion
6
- export { ScopesView };
7
6
  //# sourceMappingURL=ScopesView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScopesView.d.ts","names":[],"sources":["../../../src/views/scopes/ScopesView.tsx"],"mappings":";cAkEa,eAAc;EAAc;sBAAkB,IAAA"}
1
+ {"version":3,"file":"ScopesView.d.ts","names":[],"sources":["../../../src/views/scopes/ScopesView.tsx"],"mappings":";qBAkEa,eAAc;EAAc;sBAAkB,IAAA"}
@@ -1,6 +1,5 @@
1
1
  import { ScopePreview } from "./types.js";
2
2
  //#region src/views/scopes/parse.d.ts
3
- declare const parseScopes: (value: unknown) => ScopePreview[];
3
+ export declare const parseScopes: (value: unknown) => ScopePreview[];
4
4
  //#endregion
5
- export { parseScopes };
6
5
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","names":[],"sources":["../../../src/views/scopes/parse.ts"],"mappings":";;cAgBa,cAAe,mBAAiB"}
1
+ {"version":3,"file":"parse.d.ts","names":[],"sources":["../../../src/views/scopes/parse.ts"],"mappings":";;qBAgBa,cAAe,mBAAiB"}
@@ -1,10 +1,9 @@
1
1
  //#region src/views/scopes/types.d.ts
2
- interface ScopePreview {
2
+ export interface ScopePreview {
3
3
  readonly name: string;
4
4
  readonly source: string | null;
5
5
  readonly query: unknown;
6
6
  readonly methods: readonly string[];
7
7
  }
8
8
  //#endregion
9
- export { ScopePreview };
10
9
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/scopes/types.ts"],"mappings":";UAAiB;WACN;WACA;WACA;WACA"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/views/scopes/types.ts"],"mappings":";iBAAiB;WACN;WACA;WACA;WACA"}
@@ -1,8 +1,7 @@
1
1
  import { AttachmentPreview } from "../attachments/types.js";
2
2
  //#region src/views/thread/ComposerAttachments.d.ts
3
- declare const ComposerAttachments: ({ attachments }: {
3
+ export declare const ComposerAttachments: ({ attachments }: {
4
4
  attachments: readonly AttachmentPreview[];
5
5
  }) => import("react").JSX.Element;
6
6
  //#endregion
7
- export { ComposerAttachments };
8
7
  //# sourceMappingURL=ComposerAttachments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerAttachments.d.ts","names":[],"sources":["../../../src/views/thread/ComposerAttachments.tsx"],"mappings":";;cAGa,wBAAuB;EAGlC,sBAAsB;sBACvB,IAAA"}
1
+ {"version":3,"file":"ComposerAttachments.d.ts","names":[],"sources":["../../../src/views/thread/ComposerAttachments.tsx"],"mappings":";;qBAGa,wBAAuB;EAGlC,sBAAsB;sBACvB,IAAA"}
@@ -1,8 +1,7 @@
1
1
  import { ComposerPreview } from "./types.js";
2
2
  //#region src/views/thread/ComposerFlags.d.ts
3
- declare const ComposerFlags: ({ composer }: {
3
+ export declare const ComposerFlags: ({ composer }: {
4
4
  composer: ComposerPreview;
5
5
  }) => import("react").JSX.Element;
6
6
  //#endregion
7
- export { ComposerFlags };
8
7
  //# sourceMappingURL=ComposerFlags.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerFlags.d.ts","names":[],"sources":["../../../src/views/thread/ComposerFlags.tsx"],"mappings":";;cAGa,kBAAiB;EAAgB,UAAU;sBAAiB,IAAA"}
1
+ {"version":3,"file":"ComposerFlags.d.ts","names":[],"sources":["../../../src/views/thread/ComposerFlags.tsx"],"mappings":";;qBAGa,kBAAiB;EAAgB,UAAU;sBAAiB,IAAA"}
@@ -1,8 +1,7 @@
1
1
  import { ComposerQueueItem } from "./types.js";
2
2
  //#region src/views/thread/ComposerQueue.d.ts
3
- declare const ComposerQueue: ({ queue }: {
3
+ export declare const ComposerQueue: ({ queue }: {
4
4
  queue: readonly ComposerQueueItem[];
5
5
  }) => import("react").JSX.Element | null;
6
6
  //#endregion
7
- export { ComposerQueue };
8
7
  //# sourceMappingURL=ComposerQueue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComposerQueue.d.ts","names":[],"sources":["../../../src/views/thread/ComposerQueue.tsx"],"mappings":";;cAGa,kBAAiB;EAG5B,gBAAgB;sBACjB,IAAA"}
1
+ {"version":3,"file":"ComposerQueue.d.ts","names":[],"sources":["../../../src/views/thread/ComposerQueue.tsx"],"mappings":";;qBAGa,kBAAiB;EAG5B,gBAAgB;sBACjB,IAAA"}
@@ -1,12 +1,11 @@
1
1
  import { ThreadListPreview } from "./types.js";
2
2
  //#region src/views/thread/ConversationList.d.ts
3
- declare const conversationListHeader: (threadList: ThreadListPreview) => import("react").JSX.Element;
4
- declare const ConversationList: ({ threadList, snapshots, selectedId, onSelect }: {
3
+ export declare const conversationListHeader: (threadList: ThreadListPreview) => import("react").JSX.Element;
4
+ export declare const ConversationList: ({ threadList, snapshots, selectedId, onSelect }: {
5
5
  threadList: ThreadListPreview;
6
6
  snapshots: Readonly<Record<string, unknown>> | undefined;
7
7
  selectedId: string;
8
8
  onSelect: (threadId: string) => void;
9
9
  }) => import("react").JSX.Element;
10
10
  //#endregion
11
- export { ConversationList, conversationListHeader };
12
11
  //# sourceMappingURL=ConversationList.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationList.d.ts","names":[],"sources":["../../../src/views/thread/ConversationList.tsx"],"mappings":";;cAiBa,yBAA0B,YAAY,sCAAiB,IAAA;cAkDvD,qBAAoB,YAAA,WAAA,YAAA;EAM/B,YAAY;EACZ,WAAW,SAAS;EACpB;EACA,WAAW;sBACZ,IAAA"}
1
+ {"version":3,"file":"ConversationList.d.ts","names":[],"sources":["../../../src/views/thread/ConversationList.tsx"],"mappings":";;qBAiBa,yBAA0B,YAAY,sCAAiB,IAAA;qBAkDvD,qBAAoB,YAAA,WAAA,YAAA;EAM/B,YAAY;EACZ,WAAW,SAAS;EACpB;EACA,WAAW;sBACZ,IAAA"}
@@ -1,18 +1,17 @@
1
1
  import { ThreadListItemPreview, ThreadPreview } from "./types.js";
2
2
  //#region src/views/thread/ConversationStatusDot.d.ts
3
- type ConversationDotState = "unloaded" | "loading" | "loaded" | "running" | "active" | "active-running" | "error" | "new";
4
- declare const resolveConversationDotState: ({ item, mainThreadId, main, snapshots }: {
3
+ export type ConversationDotState = "unloaded" | "loading" | "loaded" | "running" | "active" | "active-running" | "error" | "new";
4
+ export declare const resolveConversationDotState: ({ item, mainThreadId, main, snapshots }: {
5
5
  item: ThreadListItemPreview;
6
6
  mainThreadId: string | undefined;
7
7
  main: ThreadPreview | undefined;
8
8
  snapshots: Readonly<Record<string, unknown>> | undefined;
9
9
  }) => ConversationDotState;
10
- declare const ConversationStatusDot: ({ item, mainThreadId, main, snapshots }: {
10
+ export declare const ConversationStatusDot: ({ item, mainThreadId, main, snapshots }: {
11
11
  item: ThreadListItemPreview;
12
12
  mainThreadId: string | undefined;
13
13
  main: ThreadPreview | undefined;
14
14
  snapshots: Readonly<Record<string, unknown>> | undefined;
15
15
  }) => import("react").JSX.Element;
16
16
  //#endregion
17
- export { ConversationDotState, ConversationStatusDot, resolveConversationDotState };
18
17
  //# sourceMappingURL=ConversationStatusDot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationStatusDot.d.ts","names":[],"sources":["../../../src/views/thread/ConversationStatusDot.tsx"],"mappings":";;KAIY;cAyDC,gCAA+B,MAAA,cAAA,MAAA;EAM1C,MAAM;EACN;EACA,MAAM;EACN,WAAW,SAAS;MAClB;cAqBS,0BAAyB,MAAA,cAAA,MAAA;EAMpC,MAAM;EACN;EACA,MAAM;EACN,WAAW,SAAS;sBACrB,IAAA"}
1
+ {"version":3,"file":"ConversationStatusDot.d.ts","names":[],"sources":["../../../src/views/thread/ConversationStatusDot.tsx"],"mappings":";;YAIY;qBAyDC,gCAA+B,MAAA,cAAA,MAAA;EAM1C,MAAM;EACN;EACA,MAAM;EACN,WAAW,SAAS;MAClB;qBAqBS,0BAAyB,MAAA,cAAA,MAAA;EAMpC,MAAM;EACN;EACA,MAAM;EACN,WAAW,SAAS;sBACrB,IAAA"}
@@ -1,9 +1,8 @@
1
1
  import { ThreadPreview } from "./types.js";
2
2
  //#region src/views/thread/ThreadDetails.d.ts
3
- declare const ThreadDetails: ({ thread, title }: {
3
+ export declare const ThreadDetails: ({ thread, title }: {
4
4
  thread: ThreadPreview;
5
5
  title?: string;
6
6
  }) => import("react").JSX.Element;
7
7
  //#endregion
8
- export { ThreadDetails };
9
8
  //# sourceMappingURL=ThreadDetails.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadDetails.d.ts","names":[],"sources":["../../../src/views/thread/ThreadDetails.tsx"],"mappings":";;cAQa,kBAAiB,QAAA;EAI5B,QAAQ;EACR;sBACD,IAAA"}
1
+ {"version":3,"file":"ThreadDetails.d.ts","names":[],"sources":["../../../src/views/thread/ThreadDetails.tsx"],"mappings":";;qBAQa,kBAAiB,QAAA;EAI5B,QAAQ;EACR;sBACD,IAAA"}
@@ -1,14 +1,13 @@
1
1
  import { ThreadPreview } from "./types.js";
2
2
  //#region src/views/thread/Transcript.d.ts
3
- declare const messageNodeId: (id: string) => string;
4
- declare const TranscriptHeader: import("react").MemoExoticComponent<({ thread }: {
3
+ export declare const messageNodeId: (id: string) => string;
4
+ export declare const TranscriptHeader: import("react").MemoExoticComponent<({ thread }: {
5
5
  thread: ThreadPreview;
6
6
  }) => import("react").JSX.Element>;
7
- declare const Transcript: ({ thread, selection, onSelect }: {
7
+ export declare const Transcript: ({ thread, selection, onSelect }: {
8
8
  thread: ThreadPreview;
9
9
  selection: string | null;
10
10
  onSelect: (nodeId: string) => void;
11
11
  }) => import("react").JSX.Element;
12
12
  //#endregion
13
- export { Transcript, TranscriptHeader, messageNodeId };
14
13
  //# sourceMappingURL=Transcript.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transcript.d.ts","names":[],"sources":["../../../src/views/thread/Transcript.tsx"],"mappings":";;cAyBa,gBAAiB;cAiKjB,kCAAgB,uBAAA;EAG3B,QAAQ;sBACT,IAAA;cAkGY,eAAc,QAAA,WAAA;EAKzB,QAAQ;EACR;EACA,WAAW;sBACZ,IAAA"}
1
+ {"version":3,"file":"Transcript.d.ts","names":[],"sources":["../../../src/views/thread/Transcript.tsx"],"mappings":";;qBAyBa,gBAAiB;qBA4JjB,kCAAgB,uBAAA;EAG3B,QAAQ;sBACT,IAAA;qBAkGY,eAAc,QAAA,WAAA;EAKzB,QAAQ;EACR;EACA,WAAW;sBACZ,IAAA"}
@@ -263,7 +263,7 @@ const metricSeries = (messages) => [
263
263
  },
264
264
  {
265
265
  label: "TTFT",
266
- values: collect(messages, (message) => message.timing?.firstTokenTime !== void 0 && message.timing?.streamStartTime !== void 0 ? message.timing.firstTokenTime - message.timing.streamStartTime : void 0),
266
+ values: collect(messages, (message) => message.timing?.firstTokenTime),
267
267
  format: (value) => `${Math.round(value)}ms`
268
268
  },
269
269
  {