@opengeni/react 1.0.1 → 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 +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-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 +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 +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 +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 +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
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-UOLJWT5Y.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-XSA2QAKP.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,6 +33,27 @@ 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;
@@ -130,6 +158,21 @@ export type SandboxItem = {
130
158
  status: "running" | "complete" | "failed" | "cancelled";
131
159
  occurredAt: string;
132
160
  };
161
+ export type StartupPhase = "queue" | "sandbox" | "rig" | "repository" | "files" | "tools" | "model_preparation" | "provider_first_byte";
162
+ /** A compact user-visible critical-path span reconstructed from durable events. */
163
+ export type StartupPhaseItem = {
164
+ kind: "startup-phase";
165
+ id: string;
166
+ turnId: string | null;
167
+ phase: StartupPhase;
168
+ status: "running" | "complete" | "failed" | "cancelled";
169
+ startedAt: string;
170
+ completedAt: string | null;
171
+ durationMs: number | null;
172
+ /** Sandbox origin and rig marker outcomes refine the settled label only. */
173
+ outcome: "created" | "restored" | "resumed" | "skipped" | null;
174
+ occurredAt: string;
175
+ };
133
176
  /**
134
177
  * A first-party workspace-memory write the agent made mid-turn — a `memory.saved`
135
178
  * (it committed a new preference / fact / procedure / decision / history) or a
@@ -209,7 +252,7 @@ export type SessionStatusItem = {
209
252
  export type GoalItem = {
210
253
  kind: "goal";
211
254
  id: string;
212
- action: "set" | "updated" | "completed" | "paused" | "resumed" | "cleared" | "continuation";
255
+ action: "set" | "updated" | "completed" | "paused" | "resumed" | "cleared" | "held" | "continuation";
213
256
  text: string | null;
214
257
  occurredAt: string;
215
258
  };
@@ -248,7 +291,7 @@ export type ContextCompactionItem = {
248
291
  };
249
292
  export type MachineInputMember = {
250
293
  id: string;
251
- kind: "scheduled_occurrence" | "goal_continuation" | "agent_message" | "agent_steer_instruction" | "child_terminal_result" | "media_generation_result";
294
+ 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
295
  classification: "success" | "failure" | "action_required" | "info";
253
296
  sourceId: string;
254
297
  summary: string;
@@ -309,9 +352,9 @@ export type TurnEndItem = {
309
352
  failureText: string | null;
310
353
  occurredAt: string;
311
354
  };
312
- export type TimelineItem = UserMessageItem | AgentMessageItem | ReasoningItem | ToolCallItem | WorkerItem | WorkerCompletionItem | SandboxItem | SessionStatusItem | GoalItem | NoticeItem | ContextCompactionItem | MachineInputBatchItem | AuthNeededItem | MemoryItem | FleetDecisionItem | TurnEndItem;
355
+ export type TimelineItem = UserMessageItem | HumanInputItem | AgentMessageItem | ReasoningItem | ToolCallItem | WorkerItem | WorkerCompletionItem | SandboxItem | StartupPhaseItem | SessionStatusItem | GoalItem | NoticeItem | ContextCompactionItem | MachineInputBatchItem | AuthNeededItem | MemoryItem | FleetDecisionItem | TurnEndItem;
313
356
  /** Activity items cluster between chat messages (reasoning, tools, workers, sandbox, memory). */
314
- export type ActivityItem = ReasoningItem | ToolCallItem | WorkerItem | SandboxItem | MemoryItem | FleetDecisionItem;
357
+ export type ActivityItem = ReasoningItem | ToolCallItem | WorkerItem | SandboxItem | StartupPhaseItem | MemoryItem | FleetDecisionItem;
315
358
  export type TimelineGroup = {
316
359
  kind: "item";
317
360
  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.2.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.2.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";