@opengeni/react 1.0.1 → 2.3.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 +33 -10
  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-5YK2ZDIG.js +116 -0
  8. package/dist/chunk-5YK2ZDIG.js.map +1 -0
  9. package/dist/chunk-H5YGYNXS.js +329 -0
  10. package/dist/chunk-H5YGYNXS.js.map +1 -0
  11. package/dist/{chunk-7WCLAEFV.js → chunk-ICA6R6TW.js} +2 -2
  12. package/dist/{chunk-7WCLAEFV.js.map → chunk-ICA6R6TW.js.map} +1 -1
  13. package/dist/{chunk-IGC6A2ZI.js → chunk-JOAVA2TW.js} +589 -217
  14. package/dist/chunk-JOAVA2TW.js.map +1 -0
  15. package/dist/{chunk-Y7OEDUJ5.js → chunk-LS4POUTY.js} +1057 -426
  16. package/dist/chunk-LS4POUTY.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-6KLX2RH5.js → chunk-RSXJN73N.js} +365 -21
  24. package/dist/chunk-RSXJN73N.js.map +1 -0
  25. package/dist/{chunk-B6WPZSTT.js → chunk-SE4W4WQ3.js} +78 -16
  26. package/dist/chunk-SE4W4WQ3.js.map +1 -0
  27. package/dist/{chunk-MKPIAGVL.js → chunk-W6NFJXSA.js} +8 -19
  28. package/dist/chunk-W6NFJXSA.js.map +1 -0
  29. package/dist/{chunk-XBZWOM2K.js → chunk-X4A66EWZ.js} +8 -3
  30. package/dist/chunk-X4A66EWZ.js.map +1 -0
  31. package/dist/chunk-X4JAFD5R.js +3907 -0
  32. package/dist/chunk-X4JAFD5R.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 +6 -3
  83. package/dist/realtime.js +36 -14
  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 +50 -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 +103 -59
  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 +215 -18
  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 +53 -17
  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 +529 -25
  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 +77 -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
package/dist/session.d.ts CHANGED
@@ -5,7 +5,7 @@ export type { UseSessionOptions, UseSessionResult } from "./hooks/use-session.js
5
5
  export { useSessionEvents } from "./hooks/use-session-events.js";
6
6
  export type { SessionEventsConnectionState, UseSessionEventsOptions, UseSessionEventsResult, } from "./hooks/use-session-events.js";
7
7
  export { useComposer, composeSendInput, shouldSteerOnKey, shouldSubmitOnKey, FILE_ONLY_MESSAGE_TEXT, } from "./hooks/use-composer.js";
8
- export type { ComposerSendExtras, ComposerState, UseComposerOptions } from "./hooks/use-composer.js";
8
+ export type { ComposerControllerState, ComposerPolicy, ComposerSendExtras, ComposerState, UseComposerOptions, } from "./hooks/use-composer.js";
9
9
  export { useFileAttachments } from "./hooks/use-file-attachments.js";
10
10
  export type { FileAttachment, UseFileAttachmentsOptions, UseFileAttachmentsResult, } from "./hooks/use-file-attachments.js";
11
11
  export { useTurnQueue, isTurnQueueEvent } from "./hooks/use-turn-queue.js";
@@ -25,4 +25,4 @@ export type { PendingHumanInputRequest } from "./human-input.js";
25
25
  export { isHumanInputEvent, useHumanInputRequests } from "./hooks/use-human-input.js";
26
26
  export type { UseHumanInputRequestsOptions, UseHumanInputRequestsResult, } from "./hooks/use-human-input.js";
27
27
  export { buildTimeline, creditExhaustedFromEvents, extractSessionRef, groupTimeline, sessionStatusFromEvents, toolDisplayName, } from "./timeline/projection.js";
28
- export type { ActivityItem, AgentMessageItem, AuthNeededItem, GoalItem, MachineInputBatchItem, MachineInputMember, MemoryItem, NoticeItem, ReasoningItem, SandboxItem, SessionStatusItem, TimelineGroup, TimelineItem, TurnOutcome, ToolCallItem, TurnEndItem, UserMessageItem, WorkerCompletionItem, WorkerItem, } from "./timeline/types.js";
28
+ export type { ActivityItem, AgentMessageItem, AuthNeededItem, GoalItem, HumanInputAnswerSummary, HumanInputItem, MachineInputBatchItem, MachineInputMember, MemoryItem, NoticeItem, ReasoningItem, SandboxItem, SessionStatusItem, TimelineGroup, TimelineItem, TurnOutcome, ToolCallItem, TurnEndItem, UserMessageItem, WorkerCompletionItem, WorkerItem, } from "./timeline/types.js";
package/dist/session.js CHANGED
@@ -18,14 +18,14 @@ import {
18
18
  useSessionLineage,
19
19
  useSessionMcpApprovalPolicy,
20
20
  useTurnQueue
21
- } from "./chunk-B6WPZSTT.js";
21
+ } from "./chunk-SE4W4WQ3.js";
22
22
  import {
23
23
  FILE_ONLY_MESSAGE_TEXT,
24
24
  composeSendInput,
25
25
  shouldSteerOnKey,
26
26
  shouldSubmitOnKey,
27
27
  useComposer
28
- } from "./chunk-IGC6A2ZI.js";
28
+ } from "./chunk-JOAVA2TW.js";
29
29
  import {
30
30
  buildTimeline,
31
31
  creditExhaustedFromEvents,
@@ -33,9 +33,9 @@ import {
33
33
  groupTimeline,
34
34
  sessionStatusFromEvents,
35
35
  toolDisplayName
36
- } from "./chunk-6KLX2RH5.js";
36
+ } from "./chunk-RSXJN73N.js";
37
37
  import "./chunk-KZ73RL76.js";
38
- import "./chunk-C5ZPSSS5.js";
38
+ import "./chunk-NEXLLTP4.js";
39
39
  import "./chunk-LAKLF4PA.js";
40
40
  export {
41
41
  FILE_ONLY_MESSAGE_TEXT,
@@ -1,5 +1,5 @@
1
1
  export { buildTimeline, creditExhaustedFromEvents, extractSessionRef, groupTimeline, sessionStatusFromEvents, mcpToolLeaf, toolDisplayName, toolMatchesLeaf, } from "./projection.js";
2
- export type { ActivityItem, AgentMessageItem, AuthNeededItem, ContextCompactionItem, FleetDecisionItem, FleetDecisionScoreItem, GoalItem, MachineInputBatchItem, MachineInputMember, MemoryItem, NoticeItem, ReasoningItem, SandboxItem, SessionStatusItem, TimelineGroup, TimelineItem, TimelineAnnotationSourceDescriptor, TurnEndItem, ToolCallItem, UserMessageItem, WorkerCompletionItem, WorkerItem, } from "./types.js";
2
+ export type { ActivityItem, AgentMessageItem, AuthNeededItem, ContextCompactionItem, FleetDecisionItem, FleetDecisionScoreItem, GoalItem, HumanInputAnswerSummary, HumanInputItem, MachineInputBatchItem, MachineInputMember, MemoryItem, NoticeItem, ReasoningItem, SandboxItem, StartupPhase, StartupPhaseItem, SessionStatusItem, TimelineGroup, TimelineItem, TimelineAnnotationSourceDescriptor, TurnEndItem, ToolCallItem, UserMessageItem, WorkerCompletionItem, WorkerItem, } from "./types.js";
3
3
  export { createToolRegistry, rawTypeOf } from "./registry.js";
4
4
  export type { CreateToolRegistryOptions, RetainedArtifactLoader, RetainedScreenshotLoader, VideoArtifactPlaybackLoader, ToolRegistry, ToolRegistryEntry, ToolRenderer, ToolRendererProps, } from "./registry.js";
5
5
  export { createDefaultToolRegistry, defaultToolRegistry } from "./tool-renderers.js";
@@ -0,0 +1,15 @@
1
+ import type { ReasoningItem, SandboxItem, StartupPhaseItem } from "./types.js";
2
+ type RowJsx = typeof import("react/jsx-runtime").jsx;
3
+ type RowJsxs = typeof import("react/jsx-runtime").jsxs;
4
+ export default function PlatformActivityRow({ item, d: ActivityDisclosure, p: PayloadBlock, t: displayName, b: BotIcon, m: Markdown, r: truncate, j, s, }: {
5
+ item: ReasoningItem | SandboxItem | StartupPhaseItem;
6
+ d: typeof import("./shared.js").ActivityDisclosure;
7
+ p: typeof import("./shared.js").PayloadBlock;
8
+ t: (name: string) => string;
9
+ b: typeof import("lucide-react").BotIcon;
10
+ m: typeof import("../components/markdown.js").Markdown;
11
+ r: typeof import("../lib/format.js").truncate;
12
+ j: RowJsx;
13
+ s: RowJsxs;
14
+ }): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
15
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { type ReactNode } from "react";
2
2
  type LightboxController = {
3
- open: (src: string, caption?: string, source?: HTMLElement | null, label?: string) => void;
3
+ open: (src: string, caption?: string, source?: HTMLElement | null, label?: string, downloadFilename?: string) => void;
4
4
  };
5
5
  /** Open the app-level screenshot lightbox. No-op outside a `LightboxProvider`. */
6
6
  export declare function useLightbox(): LightboxController;
@@ -114,12 +114,13 @@ export declare function MediaEmpty(): import("react").JSX.Element;
114
114
  * Outside one it degrades to a plain, non-interactive image — never a dead
115
115
  * "Expand" button that announces an action it cannot perform.
116
116
  */
117
- export declare function Thumbnail({ src, caption, alt, expandLabel, lightboxLabel, }: {
117
+ export declare function Thumbnail({ src, caption, alt, expandLabel, lightboxLabel, downloadFilename, }: {
118
118
  src: string;
119
119
  caption?: string | undefined;
120
120
  alt?: string;
121
121
  expandLabel?: string | undefined;
122
122
  lightboxLabel?: string | undefined;
123
+ downloadFilename?: string | undefined;
123
124
  }): import("react").JSX.Element;
124
125
  /**
125
126
  * The expanded screenshot inside a tool body: a contained, clickable preview
@@ -127,10 +128,11 @@ export declare function Thumbnail({ src, caption, alt, expandLabel, lightboxLabe
127
128
  * so it never breaks the row layout. Like {@link Thumbnail}, it degrades to a
128
129
  * plain image outside a `LightboxProvider`.
129
130
  */
130
- export declare function ScreenshotFigure({ src, caption, alt, expandLabel, lightboxLabel, }: {
131
+ export declare function ScreenshotFigure({ src, caption, alt, expandLabel, lightboxLabel, downloadFilename, }: {
131
132
  src: string;
132
133
  caption?: string | undefined;
133
134
  alt?: string;
134
135
  expandLabel?: string | undefined;
135
136
  lightboxLabel?: string | undefined;
137
+ downloadFilename?: string | undefined;
136
138
  }): import("react").JSX.Element;
@@ -1,10 +1,17 @@
1
- import type { MediaGenerationResult, ResourceRef, SessionStatus, TimelineAnnotation, TimelineAnnotationSource, ToolAuthNeededPayload, ToolRef } from "@opengeni/sdk";
1
+ import type { HumanInputQuestion, HumanInputResponse, MediaGenerationResult, ResourceRef, SessionStatus, TimelineAnnotation, TimelineAnnotationSource, ToolAuthNeededPayload, ToolRef } from "@opengeni/sdk";
2
2
  export type TimelineAnnotationSourceDescriptor = Omit<TimelineAnnotationSource, "startOffset" | "endOffset" | "contextBefore" | "contextAfter"> & {
3
3
  text: string;
4
4
  };
5
5
  export type UserMessageItem = {
6
6
  kind: "user-message";
7
7
  id: string;
8
+ /**
9
+ * Renderer-only identity shared by a locally acknowledged message and the
10
+ * durable event that replaces it. The canonical event id remains `id`; this
11
+ * key only prevents the optimistic-to-durable handoff from remounting and
12
+ * replaying the row entrance animation.
13
+ */
14
+ reconciliationKey?: string | undefined;
8
15
  text: string;
9
16
  annotations?: TimelineAnnotation[] | undefined;
10
17
  annotationSource?: TimelineAnnotationSourceDescriptor | undefined;
@@ -26,11 +33,34 @@ export type UserMessageItem = {
26
33
  onRemove?: (() => void) | undefined;
27
34
  } | undefined;
28
35
  };
36
+ export type HumanInputAnswerSummary = {
37
+ questionId: string;
38
+ label: string;
39
+ prompt: string;
40
+ values: string[];
41
+ };
42
+ /**
43
+ * One resolved structured question in the conversation. The live pending form
44
+ * is rendered at the timeline tip by the host; after settlement this item keeps
45
+ * both the agent's question and the human's answer visible as chat history.
46
+ */
47
+ export type HumanInputItem = {
48
+ kind: "human-input";
49
+ id: string;
50
+ turnId: string | null;
51
+ requestId: string;
52
+ questions: HumanInputQuestion[];
53
+ response: HumanInputResponse;
54
+ answers: HumanInputAnswerSummary[];
55
+ occurredAt: string;
56
+ };
29
57
  export type AgentMessageItem = {
30
58
  kind: "agent-message";
31
59
  id: string;
32
60
  turnId: string | null;
33
61
  text: string;
62
+ /** Provider-declared assistant channel. Absent on legacy and non-Responses events. */
63
+ phase?: "commentary" | "final_answer" | undefined;
34
64
  /** Still receiving deltas (no completed/turn-end seen yet). */
35
65
  streaming: boolean;
36
66
  occurredAt: string;
@@ -130,6 +160,21 @@ export type SandboxItem = {
130
160
  status: "running" | "complete" | "failed" | "cancelled";
131
161
  occurredAt: string;
132
162
  };
163
+ export type StartupPhase = "queue" | "sandbox" | "rig" | "repository" | "files" | "tools" | "model_preparation" | "provider_first_byte";
164
+ /** A compact user-visible critical-path span reconstructed from durable events. */
165
+ export type StartupPhaseItem = {
166
+ kind: "startup-phase";
167
+ id: string;
168
+ turnId: string | null;
169
+ phase: StartupPhase;
170
+ status: "running" | "complete" | "failed" | "cancelled";
171
+ startedAt: string;
172
+ completedAt: string | null;
173
+ durationMs: number | null;
174
+ /** Sandbox origin and rig marker outcomes refine the settled label only. */
175
+ outcome: "created" | "restored" | "resumed" | "skipped" | null;
176
+ occurredAt: string;
177
+ };
133
178
  /**
134
179
  * A first-party workspace-memory write the agent made mid-turn — a `memory.saved`
135
180
  * (it committed a new preference / fact / procedure / decision / history) or a
@@ -209,7 +254,7 @@ export type SessionStatusItem = {
209
254
  export type GoalItem = {
210
255
  kind: "goal";
211
256
  id: string;
212
- action: "set" | "updated" | "completed" | "paused" | "resumed" | "cleared" | "continuation";
257
+ action: "set" | "updated" | "completed" | "paused" | "resumed" | "cleared" | "held" | "continuation";
213
258
  text: string | null;
214
259
  occurredAt: string;
215
260
  };
@@ -248,7 +293,7 @@ export type ContextCompactionItem = {
248
293
  };
249
294
  export type MachineInputMember = {
250
295
  id: string;
251
- kind: "scheduled_occurrence" | "goal_continuation" | "agent_message" | "agent_steer_instruction" | "child_terminal_result" | "media_generation_result";
296
+ kind: "scheduled_occurrence" | "goal_continuation" | "agent_message" | "agent_steer_instruction" | "child_terminal_result" | "media_generation_result" | "child_requires_action" | "child_requires_action_resolved" | "child_paused" | "child_waiting_capacity" | "child_progress";
252
297
  classification: "success" | "failure" | "action_required" | "info";
253
298
  sourceId: string;
254
299
  summary: string;
@@ -309,9 +354,9 @@ export type TurnEndItem = {
309
354
  failureText: string | null;
310
355
  occurredAt: string;
311
356
  };
312
- export type TimelineItem = UserMessageItem | AgentMessageItem | ReasoningItem | ToolCallItem | WorkerItem | WorkerCompletionItem | SandboxItem | SessionStatusItem | GoalItem | NoticeItem | ContextCompactionItem | MachineInputBatchItem | AuthNeededItem | MemoryItem | FleetDecisionItem | TurnEndItem;
357
+ export type TimelineItem = UserMessageItem | HumanInputItem | AgentMessageItem | ReasoningItem | ToolCallItem | WorkerItem | WorkerCompletionItem | SandboxItem | StartupPhaseItem | SessionStatusItem | GoalItem | NoticeItem | ContextCompactionItem | MachineInputBatchItem | AuthNeededItem | MemoryItem | FleetDecisionItem | TurnEndItem;
313
358
  /** Activity items cluster between chat messages (reasoning, tools, workers, sandbox, memory). */
314
- export type ActivityItem = ReasoningItem | ToolCallItem | WorkerItem | SandboxItem | MemoryItem | FleetDecisionItem;
359
+ export type ActivityItem = ReasoningItem | ToolCallItem | WorkerItem | SandboxItem | StartupPhaseItem | MemoryItem | FleetDecisionItem;
315
360
  export type TimelineGroup = {
316
361
  kind: "item";
317
362
  item: TimelineItem;
@@ -1,5 +1,5 @@
1
- import type { MachineKind, MachineMetricsSeriesResponse, MachinesResponse, MachineState, MachineView, MetricSample } from "@opengeni/sdk";
2
- export type { MachineKind, MachineMetricsSeriesResponse, MachinesResponse, MachineState, MachineView, MetricSample, };
1
+ import type { MachineKind, MachineMetricsSeriesResponse, MachinesResponse, MachineState, MachineView, MachineRuntime, MachineRuntimeCapabilities, MachineOperationPolicy, MachineUpdateState, MachineUpdateStatus, MetricSample } from "@opengeni/sdk";
2
+ export type { MachineKind, MachineMetricsSeriesResponse, MachinesResponse, MachineState, MachineView, MachineRuntime, MachineRuntimeCapabilities, MachineOperationPolicy, MachineUpdateState, MachineUpdateStatus, MetricSample, };
3
3
  /**
4
4
  * The three connection-status pill values the UI surfaces across the dashboard,
5
5
  * the dock, and the timeline. `consent_required` / `display_unavailable` /
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeni/react",
3
- "version": "1.0.1",
3
+ "version": "2.3.0-canary.0",
4
4
  "description": "React hooks and styled components for OpenGeni: live session streaming, chat composer, message timeline, session status, and fleet views — token-themed (CSS variables), dark-first, built on Tailwind v4 + Radix + Motion.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -116,7 +116,7 @@
116
116
  "@dnd-kit/utilities": "3.2.2",
117
117
  "@fontsource-variable/noto-sans-arabic": "5.2.10",
118
118
  "@fontsource-variable/noto-sans-jp": "5.2.10",
119
- "@opengeni/sdk": "^1.0.1",
119
+ "@opengeni/sdk": "^2.3.0-canary.0",
120
120
  "clsx": "^2.1.1",
121
121
  "lucide-react": "^1.8.0",
122
122
  "motion": "^12.0.0",
@@ -135,7 +135,7 @@
135
135
  "@codemirror/lang-markdown": "^6.0.0",
136
136
  "@codemirror/lang-python": "^6.0.0",
137
137
  "@novnc/novnc": "^1.7.0",
138
- "@opengeni/artifact-tool": ">=0.1.0 <0.3.0",
138
+ "@opengeni/artifact-tool": ">=0.1.0 <0.4.0",
139
139
  "@pierre/diffs": "^1.2.11",
140
140
  "@uiw/react-codemirror": "^4.23.0",
141
141
  "@xterm/addon-fit": "^0.11.0",
package/src/client.ts CHANGED
@@ -34,6 +34,7 @@ export type SessionClientLike = Pick<
34
34
  | "deleteQueueItem"
35
35
  | "getComposerDraft"
36
36
  | "saveComposerDraft"
37
+ | "submitComposerDraft"
37
38
  | "listTurns"
38
39
  // Goal
39
40
  | "getGoal"
@@ -66,6 +67,7 @@ export type SessionClientLike = Pick<
66
67
  | "listChannels"
67
68
  | "createChannel"
68
69
  | "updateChannel"
70
+ | "reorderChannels"
69
71
  | "deleteChannel"
70
72
  | "updateSessionChannel"
71
73
  // Rigs
@@ -187,7 +189,15 @@ export type SessionClientLike = Pick<
187
189
  | "terminalPtyResize"
188
190
  | "terminalPtyClose"
189
191
  > &
190
- Partial<Pick<OpenGeniClient, "createVideoArtifactPlaybackSource" | "streamWorkspaceLiveEvents">>;
192
+ Partial<
193
+ Pick<
194
+ OpenGeniClient,
195
+ | "createVideoArtifactPlaybackSource"
196
+ | "streamWorkspaceLiveEvents"
197
+ | "listSessionBackgroundCommands"
198
+ | "cancelSessionBackgroundCommand"
199
+ >
200
+ >;
191
201
 
192
202
  /**
193
203
  * Tenant-safe client surface required by the session-only React entry.
@@ -205,6 +215,7 @@ export type EmbeddedSessionClientLike = Pick<
205
215
  | "streamEvents"
206
216
  | "getComposerDraft"
207
217
  | "saveComposerDraft"
218
+ | "submitComposerDraft"
208
219
  | "sendMessage"
209
220
  | "steerMessage"
210
221
  | "getQueue"
@@ -651,7 +651,7 @@ function spreadsheetCellInput(
651
651
  input: string,
652
652
  kind: SpreadsheetCommit["kind"],
653
653
  ): SpreadsheetCellInput {
654
- if (kind === "formula") return { formula: input, cached: null };
654
+ if (kind === "formula") return { formula: input };
655
655
  if (input === "") return null;
656
656
  const normalized = input.trim();
657
657
  if (/^(?:true|false)$/i.test(normalized)) return normalized.toLowerCase() === "true";