@opengeni/react 0.57.0 → 2.2.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +36 -11
  2. package/dist/artifacts-spreadsheet.js +1 -1
  3. package/dist/artifacts.js +1 -1
  4. package/dist/browser-viewer-GXUICIAG.js +14 -0
  5. package/dist/{chunk-R3AZOAB5.js → chunk-4MDLEHXL.js} +9 -115
  6. package/dist/chunk-4MDLEHXL.js.map +1 -0
  7. package/dist/{chunk-Y7OEDUJ5.js → chunk-5RZN3DD5.js} +1014 -420
  8. package/dist/chunk-5RZN3DD5.js.map +1 -0
  9. package/dist/chunk-5YK2ZDIG.js +116 -0
  10. package/dist/chunk-5YK2ZDIG.js.map +1 -0
  11. package/dist/chunk-H5YGYNXS.js +329 -0
  12. package/dist/chunk-H5YGYNXS.js.map +1 -0
  13. package/dist/{chunk-7WCLAEFV.js → chunk-ICA6R6TW.js} +2 -2
  14. package/dist/{chunk-7WCLAEFV.js.map → chunk-ICA6R6TW.js.map} +1 -1
  15. package/dist/{chunk-IGC6A2ZI.js → chunk-JOAVA2TW.js} +589 -217
  16. package/dist/chunk-JOAVA2TW.js.map +1 -0
  17. package/dist/{chunk-5UQPNLIO.js → chunk-LTCHJ4MS.js} +9 -9
  18. package/dist/chunk-LTCHJ4MS.js.map +1 -0
  19. package/dist/{chunk-C5ZPSSS5.js → chunk-NEXLLTP4.js} +2 -1
  20. package/dist/{chunk-C5ZPSSS5.js.map → chunk-NEXLLTP4.js.map} +1 -1
  21. package/dist/chunk-QGBJ6GHG.js +2300 -0
  22. package/dist/chunk-QGBJ6GHG.js.map +1 -0
  23. package/dist/{chunk-B6WPZSTT.js → chunk-UOLJWT5Y.js} +78 -16
  24. package/dist/chunk-UOLJWT5Y.js.map +1 -0
  25. package/dist/{chunk-MKPIAGVL.js → chunk-W6NFJXSA.js} +8 -19
  26. package/dist/chunk-W6NFJXSA.js.map +1 -0
  27. package/dist/{chunk-XBZWOM2K.js → chunk-X4A66EWZ.js} +8 -3
  28. package/dist/chunk-X4A66EWZ.js.map +1 -0
  29. package/dist/chunk-X4JAFD5R.js +3907 -0
  30. package/dist/chunk-X4JAFD5R.js.map +1 -0
  31. package/dist/{chunk-6KLX2RH5.js → chunk-XSA2QAKP.js} +334 -19
  32. package/dist/chunk-XSA2QAKP.js.map +1 -0
  33. package/dist/{chunk-HA46CYQK.js → chunk-XXWH2JLC.js} +792 -206
  34. package/dist/chunk-XXWH2JLC.js.map +1 -0
  35. package/dist/client.d.ts +2 -2
  36. package/dist/components/browser-viewer.d.ts +7 -1
  37. package/dist/components/computer-viewer.d.ts +4 -1
  38. package/dist/components/enrollment-consent.d.ts +6 -3
  39. package/dist/components/file-browser.d.ts +7 -1
  40. package/dist/components/human-input-form.d.ts +1 -1
  41. package/dist/components/human-input-surface.d.ts +1 -1
  42. package/dist/components/machine-card.d.ts +4 -1
  43. package/dist/components/machines/machine-detail.d.ts +4 -1
  44. package/dist/components/machines/machine-operation-policy.d.ts +11 -0
  45. package/dist/components/machines-dashboard.d.ts +3 -1
  46. package/dist/components/markdown.d.ts +20 -1
  47. package/dist/components/message-timeline.d.ts +1 -1
  48. package/dist/components/model-policy-picker.d.ts +2 -0
  49. package/dist/components/pierre-file.d.ts +1 -1
  50. package/dist/components/sandbox-files.d.ts +8 -2
  51. package/dist/components/sandbox-workspace.d.ts +33 -3
  52. package/dist/components/session-chrome.d.ts +15 -3
  53. package/dist/components/workspace-dock.d.ts +6 -2
  54. package/dist/composer.js +5 -5
  55. package/dist/computer-viewer-ZOP4Q7A7.js +16 -0
  56. package/dist/computer-viewer-ZOP4Q7A7.js.map +1 -0
  57. package/dist/hooks/channel-cache.d.ts +23 -0
  58. package/dist/hooks/shared-machines-list.d.ts +14 -0
  59. package/dist/hooks/use-attached-browsers.d.ts +2 -1
  60. package/dist/hooks/use-channels.d.ts +1 -0
  61. package/dist/hooks/use-composer.d.ts +37 -9
  62. package/dist/hooks/use-machine-chip.d.ts +3 -3
  63. package/dist/hooks/use-machines.d.ts +19 -1
  64. package/dist/hooks/use-sandbox-files.d.ts +1 -0
  65. package/dist/hooks/use-session-background-commands.d.ts +14 -0
  66. package/dist/hooks/use-turn-queue.d.ts +12 -0
  67. package/dist/hooks/use-workspace-sessions.d.ts +1 -0
  68. package/dist/index.d.ts +7 -5
  69. package/dist/index.js +1096 -623
  70. package/dist/index.js.map +1 -1
  71. package/dist/interaction.js +29 -181
  72. package/dist/interaction.js.map +1 -1
  73. package/dist/lib/interaction-errors.d.ts +3 -0
  74. package/dist/machines.d.ts +4 -2
  75. package/dist/machines.js +10 -2
  76. package/dist/model-policy.d.ts +1 -1
  77. package/dist/model-policy.js +1 -1
  78. package/dist/platform-activity-row-BJHUHXAT.js +169 -0
  79. package/dist/platform-activity-row-BJHUHXAT.js.map +1 -0
  80. package/dist/{queue-surface-implementation-2KVJTYXH.js → queue-surface-implementation-BSKUWHRI.js} +76 -16
  81. package/dist/queue-surface-implementation-BSKUWHRI.js.map +1 -0
  82. package/dist/realtime/realtime-control.d.ts +10 -3
  83. package/dist/realtime.js +138 -29
  84. package/dist/realtime.js.map +1 -1
  85. package/dist/session-ui.d.ts +1 -1
  86. package/dist/session-ui.js +6 -2
  87. package/dist/session.d.ts +2 -2
  88. package/dist/session.js +4 -4
  89. package/dist/timeline/index.d.ts +1 -1
  90. package/dist/timeline/platform-activity-row.d.ts +15 -0
  91. package/dist/timeline/screenshot-lightbox.d.ts +1 -1
  92. package/dist/timeline/shared.d.ts +4 -2
  93. package/dist/timeline/types.d.ts +48 -5
  94. package/dist/types/machines.d.ts +2 -2
  95. package/package.json +3 -3
  96. package/src/client.ts +12 -1
  97. package/src/components/artifacts/editable-spreadsheet.tsx +1 -1
  98. package/src/components/browser-viewer.tsx +361 -58
  99. package/src/components/chat-composer.tsx +1 -1
  100. package/src/components/composer.tsx +6 -6
  101. package/src/components/computer-viewer.tsx +368 -115
  102. package/src/components/enrollment-consent.tsx +64 -6
  103. package/src/components/file-browser.tsx +117 -2
  104. package/src/components/human-input-form.tsx +91 -55
  105. package/src/components/human-input-surface.tsx +1 -1
  106. package/src/components/machine-card.tsx +111 -0
  107. package/src/components/machine-input-display.ts +15 -0
  108. package/src/components/machines/machine-detail.tsx +47 -0
  109. package/src/components/machines/machine-operation-policy.tsx +179 -0
  110. package/src/components/machines-dashboard.tsx +6 -0
  111. package/src/components/markdown.tsx +174 -20
  112. package/src/components/message-timeline.tsx +162 -17
  113. package/src/components/model-policy-picker.tsx +9 -17
  114. package/src/components/pierre-file.tsx +1 -1
  115. package/src/components/queue-surface-implementation.tsx +82 -16
  116. package/src/components/sandbox-files.tsx +135 -19
  117. package/src/components/sandbox-workspace.tsx +204 -92
  118. package/src/components/session-chrome.tsx +415 -208
  119. package/src/components/session-status.tsx +1 -1
  120. package/src/components/user-message-body.tsx +168 -48
  121. package/src/components/workspace-dock.tsx +141 -175
  122. package/src/hooks/channel-cache.ts +104 -0
  123. package/src/hooks/shared-machines-list.ts +239 -0
  124. package/src/hooks/use-attached-browsers.ts +5 -1
  125. package/src/hooks/use-browser-frame-stream.ts +6 -1
  126. package/src/hooks/use-browser-session.ts +6 -4
  127. package/src/hooks/use-browser-sessions.ts +7 -1
  128. package/src/hooks/use-channels.ts +32 -10
  129. package/src/hooks/use-composer.ts +760 -291
  130. package/src/hooks/use-computer-frame-stream.ts +14 -9
  131. package/src/hooks/use-computer-session.ts +16 -14
  132. package/src/hooks/use-computer-sessions.ts +8 -1
  133. package/src/hooks/use-last-started-turn-policy.ts +1 -1
  134. package/src/hooks/use-machine-chip.ts +23 -6
  135. package/src/hooks/use-machines.ts +104 -6
  136. package/src/hooks/use-sandbox-files.ts +195 -140
  137. package/src/hooks/use-sandbox-git.ts +58 -29
  138. package/src/hooks/use-session-background-commands.ts +56 -0
  139. package/src/hooks/use-session-capabilities.ts +18 -0
  140. package/src/hooks/use-turn-queue.ts +111 -12
  141. package/src/hooks/use-workspace-sessions.ts +5 -1
  142. package/src/index.ts +26 -4
  143. package/src/lib/interaction-errors.ts +18 -0
  144. package/src/machines.ts +9 -1
  145. package/src/model-policy.ts +10 -2
  146. package/src/realtime/realtime-control.tsx +200 -37
  147. package/src/session-context.ts +1 -0
  148. package/src/session-ui.ts +6 -1
  149. package/src/session.ts +9 -1
  150. package/src/timeline/activity-rail.tsx +20 -75
  151. package/src/timeline/index.ts +4 -0
  152. package/src/timeline/platform-activity-row.tsx +201 -0
  153. package/src/timeline/projection.ts +476 -23
  154. package/src/timeline/screenshot-lightbox.tsx +48 -14
  155. package/src/timeline/shared.tsx +8 -2
  156. package/src/timeline/tool-renderers.tsx +104 -6
  157. package/src/timeline/turn-summary.tsx +6 -1
  158. package/src/timeline/types.ts +75 -2
  159. package/src/types/machines.ts +10 -0
  160. package/styles/compiled.css +115 -104
  161. package/dist/chunk-5UQPNLIO.js.map +0 -1
  162. package/dist/chunk-6KLX2RH5.js.map +0 -1
  163. package/dist/chunk-B6WPZSTT.js.map +0 -1
  164. package/dist/chunk-HA46CYQK.js.map +0 -1
  165. package/dist/chunk-IGC6A2ZI.js.map +0 -1
  166. package/dist/chunk-LLOLUHVG.js +0 -5937
  167. package/dist/chunk-LLOLUHVG.js.map +0 -1
  168. package/dist/chunk-MKPIAGVL.js.map +0 -1
  169. package/dist/chunk-R3AZOAB5.js.map +0 -1
  170. package/dist/chunk-XBZWOM2K.js.map +0 -1
  171. package/dist/chunk-Y7OEDUJ5.js.map +0 -1
  172. package/dist/interactive-workbench-viewers-TOHBXJEE.js +0 -15
  173. package/dist/queue-surface-implementation-2KVJTYXH.js.map +0 -1
  174. /package/dist/{interactive-workbench-viewers-TOHBXJEE.js.map → browser-viewer-GXUICIAG.js.map} +0 -0
@@ -1,6 +1,12 @@
1
- import type { RemoveEnrollmentRequest, RemoveEnrollmentResponse, SwapActiveSandboxResponse } from "@opengeni/sdk";
1
+ import type { RemoveEnrollmentRequest, RemoveEnrollmentResponse, MachineOperationPolicy, SwapActiveSandboxResponse, UpdateMachineOperationPolicyRequest, UpdateMachineAgentResponse } from "@opengeni/sdk";
2
2
  import { type ClientOverride } from "../provider.js";
3
3
  import type { MachinesResponse, MachineView, MetricSample } from "../types/machines.js";
4
+ /** Dashboard list: cheap heartbeat read, keep the pill reasonably fresh. */
5
+ export declare const MACHINES_DASHBOARD_POLL_MS = 10000;
6
+ /** Session surfaces share one poll for the same workspace+session. */
7
+ export declare const MACHINES_SESSION_POLL_MS = 15000;
8
+ /** Composer polls after the first load shows a machine, or to retry a real error. */
9
+ export declare const MACHINES_COMPOSER_POLL_MS = 30000;
4
10
  /**
5
11
  * The slice of the SDK client the Machines surface needs. The method NAMES +
6
12
  * SIGNATURES match M10's `OpenGeniClient` (`listMachines`, `machineMetricsSeries`)
@@ -29,6 +35,10 @@ export type MachinesClientLike = {
29
35
  }) => Promise<MetricSample[]>;
30
36
  /** POST .../enrollments/:enrollmentId/revoke — workspace-admin removal. */
31
37
  removeEnrollment?: (workspaceId: string, enrollmentId: string, request?: RemoveEnrollmentRequest) => Promise<RemoveEnrollmentResponse>;
38
+ /** POST .../machines/:enrollmentId/update — signed, generation-fenced update. */
39
+ updateMachineAgent?: (workspaceId: string, enrollmentId: string) => Promise<UpdateMachineAgentResponse>;
40
+ /** PATCH .../machines/:enrollmentId/operation-policy — revision-fenced policy. */
41
+ updateMachineOperationPolicy?: (workspaceId: string, enrollmentId: string, request: UpdateMachineOperationPolicyRequest) => Promise<MachineOperationPolicy>;
32
42
  /**
33
43
  * POST .../sessions/:sessionId/active-sandbox — swap the session's active
34
44
  * sandbox to a machine. The default swap path; the real SDK client provides it.
@@ -67,6 +77,14 @@ export type UseMachinesResult = {
67
77
  remove: (enrollmentId: string, request?: RemoveEnrollmentRequest) => Promise<RemoveEnrollmentResponse | null>;
68
78
  canRemove: boolean;
69
79
  removingEnrollmentId: string | null;
80
+ /** Start/retry the signed self-update for one Connected Machine. */
81
+ updateAgent: (enrollmentId: string) => Promise<UpdateMachineAgentResponse | null>;
82
+ canUpdateAgent: boolean;
83
+ updatingEnrollmentId: string | null;
84
+ /** Update the optional per-enrollment command memory policy. */
85
+ updateOperationPolicy: (enrollmentId: string, request: UpdateMachineOperationPolicyRequest) => Promise<MachineOperationPolicy | null>;
86
+ canUpdateOperationPolicy: boolean;
87
+ updatingOperationPolicyEnrollmentId: string | null;
70
88
  /** Whether the host wired an attach/swap path (drives the card affordance). */
71
89
  canAttach: boolean;
72
90
  /** Fetch a downsampled metric series for one enrolled machine. */
@@ -29,6 +29,7 @@ export type SandboxWriteFileOptions = {
29
29
  /** A node in the Pierre file tree. `children === undefined` ⇒ an unexpanded dir
30
30
  * (lazy treeMode); `children: []` ⇒ an expanded-but-empty dir. */
31
31
  export type FileTreeNode = {
32
+ /** Opaque path returned by the selected target's FileSystem boundary. */
32
33
  path: string;
33
34
  name: string;
34
35
  kind: "file" | "dir";
@@ -0,0 +1,14 @@
1
+ import type { SessionBackgroundCommand } from "@opengeni/sdk";
2
+ import { type ClientOverride } from "../provider.js";
3
+ export type UseSessionBackgroundCommandsOptions = ClientOverride & {
4
+ pollIntervalMs?: number | undefined;
5
+ enabled?: boolean | undefined;
6
+ };
7
+ export type UseSessionBackgroundCommandsResult = {
8
+ commands: SessionBackgroundCommand[];
9
+ loading: boolean;
10
+ error: Error | null;
11
+ refresh: () => Promise<void>;
12
+ cancel: (commandId: string) => Promise<void>;
13
+ };
14
+ export declare function useSessionBackgroundCommands(sessionId: string | null | undefined, options?: UseSessionBackgroundCommandsOptions): UseSessionBackgroundCommandsResult;
@@ -4,6 +4,16 @@ import { type SessionEventFeedOptions } from "./internal.js";
4
4
  /** Events that can change the authoritative prompt queue or effective control. */
5
5
  export declare function isTurnQueueEvent(event: Pick<SessionEvent, "type">): boolean;
6
6
  export type QueueMutationKind = "move" | "edit" | "steer" | "delete";
7
+ export type AcceptedQueueSteer = {
8
+ turnId: string;
9
+ triggerEventId: string;
10
+ text: string;
11
+ annotations: SessionTurn["annotations"];
12
+ resources: SessionTurn["resources"];
13
+ tools: SessionTurn["tools"];
14
+ occurredAt: string;
15
+ state: "sending" | "queued";
16
+ };
7
17
  export type UseTurnQueueOptions = EmbeddedSessionClientOverride & SessionEventFeedOptions & {
8
18
  pollIntervalMs?: number | undefined;
9
19
  };
@@ -37,6 +47,8 @@ export type UseTurnQueueResult = {
37
47
  mutating: boolean;
38
48
  mutationError: Error | null;
39
49
  clearMutationError: () => void;
50
+ /** Immediate chat bridge while the durable Steer event catches up over SSE. */
51
+ acceptedSteers?: AcceptedQueueSteer[] | undefined;
40
52
  };
41
53
  /**
42
54
  * The one authoritative human prompt queue. Every mutation carries the exact
@@ -7,6 +7,7 @@ export type UseWorkspaceSessionsOptions = ClientOverride & {
7
7
  search?: string | undefined;
8
8
  /** Return only the complete personal pinned projection. */
9
9
  pinsOnly?: boolean | undefined;
10
+ archivedOnly?: boolean | undefined;
10
11
  /** Refresh interval (ms) for fleet/manager views. Off by default. */
11
12
  pollIntervalMs?: number | undefined;
12
13
  enabled?: boolean | undefined;
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ export type { UseSessionOptions, UseSessionResult } from "./hooks/use-session.js
10
10
  export { SESSION_EVENT_BROWSER_MAX_BYTES, SESSION_EVENT_BROWSER_MAX_COUNT, SESSION_EVENT_BROWSER_PENDING_MAX_BYTES, SESSION_EVENT_BROWSER_PENDING_MAX_COUNT, SESSION_EVENT_BROWSER_SINGLE_EVENT_MAX_BYTES, boundBrowserSessionEventWindow, useSessionEvents, } from "./hooks/use-session-events.js";
11
11
  export type { BrowserSessionEventWindow, SessionEventsConnectionState, UseSessionEventsOptions, UseSessionEventsResult, } from "./hooks/use-session-events.js";
12
12
  export { useComposer, composeSendInput, shouldSteerOnKey, shouldSubmitOnKey, FILE_ONLY_MESSAGE_TEXT, } from "./hooks/use-composer.js";
13
- export type { ComposerSendExtras, ComposerState, UseComposerOptions } from "./hooks/use-composer.js";
13
+ export type { ComposerControllerState, ComposerPolicy, ComposerSendExtras, ComposerState, UseComposerOptions, } from "./hooks/use-composer.js";
14
14
  export { VOICE_RECORDING_CLIENT_MAX_DURATION_SECONDS, VOICE_RECORDING_OWNER_HEARTBEAT_MILLISECONDS, VOICE_RECORDING_OWNER_STALE_MILLISECONDS, VOICE_RECORDING_TIMESLICE_MILLISECONDS, useVoiceInput, } from "./hooks/use-voice-input.js";
15
15
  export type { UseVoiceInputOptions, UseVoiceInputResult, VoiceInputStatus, } from "./hooks/use-voice-input.js";
16
16
  export { IndexedDbVoiceRecordingStore, VoiceRecordingChunkConflictError, VoiceRecordingChunkSequenceError, VoiceRecordingNotFoundError, VoiceRecordingOwnedError, VoiceRecordingStorageUnavailableError, createVoiceRecordingManifest, planVoiceRecordingChunkCommit, prepareVoiceRecordingChunk, } from "./voice-recording-store.js";
@@ -26,7 +26,7 @@ export { useLastStartedTurnPolicy, isLastStartedTurnPolicyEvent, } from "./hooks
26
26
  export type { LastStartedTurnPolicy, UseLastStartedTurnPolicyOptions, UseLastStartedTurnPolicyResult, } from "./hooks/use-last-started-turn-policy.js";
27
27
  export { QueueSurface } from "./components/queue-surface.js";
28
28
  export type { QueueSurfaceProps } from "./components/queue-surface.js";
29
- export { SessionChrome, sessionChromeGoalPillState } from "./components/session-chrome.js";
29
+ export { SessionChrome, sessionChromeGoalPillExplanation, sessionChromeGoalPillLabel, sessionChromeGoalPillState, } from "./components/session-chrome.js";
30
30
  export type { SessionChromeAgentsSignal, SessionChromeProps, SessionChromeSignalId, SessionChromeSignalTone, } from "./components/session-chrome.js";
31
31
  export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./components/tooltip.js";
32
32
  export { OPEN_WORKSTREAM_CONTROL_EVENT } from "./workstream-control-event.js";
@@ -40,6 +40,8 @@ export { useScheduledTasks } from "./hooks/use-scheduled-tasks.js";
40
40
  export type { UseScheduledTasksOptions, UseScheduledTasksResult, } from "./hooks/use-scheduled-tasks.js";
41
41
  export { useWorkspaceSessions } from "./hooks/use-workspace-sessions.js";
42
42
  export type { UseWorkspaceSessionsOptions, UseWorkspaceSessionsResult, } from "./hooks/use-workspace-sessions.js";
43
+ export { useSessionBackgroundCommands } from "./hooks/use-session-background-commands.js";
44
+ export type { UseSessionBackgroundCommandsOptions, UseSessionBackgroundCommandsResult, } from "./hooks/use-session-background-commands.js";
43
45
  export { useSessionLineage, isLineageRefreshEvent } from "./hooks/use-session-lineage.js";
44
46
  export type { UseSessionLineageOptions, UseSessionLineageResult, } from "./hooks/use-session-lineage.js";
45
47
  export { useVariableSets, useEnvironments } from "./hooks/use-environments.js";
@@ -89,7 +91,7 @@ export type { HumanInputAnswerDraft, HumanInputFormMessages, HumanInputFormProps
89
91
  export { HumanInputSurface } from "./components/human-input-surface.js";
90
92
  export type { HumanInputSurfaceProps } from "./components/human-input-surface.js";
91
93
  export { buildTimeline, creditExhaustedFromEvents, extractSessionRef, groupTimeline, sessionStatusFromEvents, toolDisplayName, } from "./timeline/index.js";
92
- export type { ActivityItem, AgentMessageItem, AuthNeededItem, ContextCompactionItem, GoalItem, MachineInputBatchItem, MachineInputMember, NoticeItem, ReasoningItem, SandboxItem, SessionStatusItem, TimelineGroup, TimelineItem, TurnEndItem, ToolCallItem, UserMessageItem, WorkerItem, } from "./timeline/index.js";
94
+ export type { ActivityItem, AgentMessageItem, AuthNeededItem, ContextCompactionItem, GoalItem, HumanInputAnswerSummary, HumanInputItem, MachineInputBatchItem, MachineInputMember, NoticeItem, ReasoningItem, SandboxItem, SessionStatusItem, TimelineGroup, TimelineItem, TurnEndItem, ToolCallItem, UserMessageItem, WorkerItem, } from "./timeline/index.js";
93
95
  export { createDefaultToolRegistry, createToolRegistry, defaultToolRegistry, rawTypeOf, } from "./timeline/index.js";
94
96
  export type { CreateToolRegistryOptions, RetainedArtifactLoader, RetainedScreenshotLoader, VideoArtifactPlaybackLoader, ToolRegistry, ToolRegistryEntry, ToolRenderer, ToolRendererProps, } from "./timeline/index.js";
95
97
  export { ActivityDisclosure, ActivityRail, BodyNote, DisclosureDefaultsProvider, LightboxProvider, MediaEmpty, MediaSkeleton, PayloadBlock, ScreenshotFigure, TermBlock, Thumbnail, TurnSummary, BUILT_IN_TURN_SUMMARY_FACET_IDS, useLightbox, useLightboxOptional, } from "./timeline/index.js";
@@ -121,10 +123,10 @@ export type { GeneratedVideoPlayerProps } from "./components/generated-video-pla
121
123
  export type { MessageTimelineProps } from "./components/message-timeline.js";
122
124
  export { UserMessageBody, userMessageLikelyNeedsDisclosure } from "./components/user-message-body.js";
123
125
  export type { UserMessageBodyProps } from "./components/user-message-body.js";
124
- export { Markdown } from "./components/markdown.js";
126
+ export { Markdown, sandboxFileLocationFromHref, sandboxFilePathFromHref, } from "./components/markdown.js";
127
+ export type { MarkdownProps, SandboxFileLocation } from "./components/markdown.js";
125
128
  export { CopyButton, CopyHoverFrame } from "./components/copy-button.js";
126
129
  export { copyTextToClipboard, tableElementToTsv } from "./lib/clipboard.js";
127
- export type { MarkdownProps } from "./components/markdown.js";
128
130
  export { SessionStatus, StatusDot, SESSION_STATUS_META } from "./components/session-status.js";
129
131
  export type { SessionStatusProps, StatusDotProps, SessionStatusMeta, } from "./components/session-status.js";
130
132
  export { FleetTile, sessionDisplayTitle } from "./components/fleet-tile.js";