@opengeni/react 0.52.1 → 1.0.1
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.
- package/README.md +51 -1
- package/dist/artifacts.d.ts +1 -1
- package/dist/artifacts.js +43 -14
- package/dist/artifacts.js.map +1 -1
- package/dist/{chunk-ROIRTM37.js → chunk-5UQPNLIO.js} +6 -6
- package/dist/{chunk-JR3QFY6B.js → chunk-6KLX2RH5.js} +49 -2
- package/dist/chunk-6KLX2RH5.js.map +1 -0
- package/dist/{chunk-FWS3KC3Z.js → chunk-B6WPZSTT.js} +104 -104
- package/dist/{chunk-FWS3KC3Z.js.map → chunk-B6WPZSTT.js.map} +1 -1
- package/dist/{chunk-HDBG7XGO.js → chunk-C5ZPSSS5.js} +50 -1
- package/dist/chunk-C5ZPSSS5.js.map +1 -0
- package/dist/{chunk-X4S56Y2H.js → chunk-HA46CYQK.js} +135 -11
- package/dist/chunk-HA46CYQK.js.map +1 -0
- package/dist/{chunk-724BW4TW.js → chunk-IGC6A2ZI.js} +2 -2
- package/dist/chunk-LLOLUHVG.js +5937 -0
- package/dist/chunk-LLOLUHVG.js.map +1 -0
- package/dist/{chunk-WYA65Y3F.js → chunk-MKPIAGVL.js} +13 -3
- package/dist/chunk-MKPIAGVL.js.map +1 -0
- package/dist/chunk-R3AZOAB5.js +933 -0
- package/dist/chunk-R3AZOAB5.js.map +1 -0
- package/dist/{chunk-23EJ676W.js → chunk-XBZWOM2K.js} +9 -4
- package/dist/chunk-XBZWOM2K.js.map +1 -0
- package/dist/{chunk-JAGDUCZQ.js → chunk-Y7OEDUJ5.js} +17 -13
- package/dist/chunk-Y7OEDUJ5.js.map +1 -0
- package/dist/client.d.ts +6 -4
- package/dist/components/artifacts/index.d.ts +1 -0
- package/dist/components/artifacts/published-html-artifact-frame.d.ts +14 -0
- package/dist/components/browser-input.d.ts +7 -0
- package/dist/components/browser-viewer.d.ts +5 -4
- package/dist/components/computer-viewer.d.ts +2 -1
- package/dist/components/desktop-viewer.d.ts +26 -2
- package/dist/components/interaction-intervention-banner.d.ts +11 -0
- package/dist/components/sandbox-terminal.d.ts +4 -1
- package/dist/components/sandbox-workspace.d.ts +3 -0
- package/dist/composer.js +6 -6
- package/dist/hooks/use-auth-runs.d.ts +32 -0
- package/dist/hooks/use-browser-downloads.d.ts +25 -0
- package/dist/hooks/use-browser-identities.d.ts +5 -1
- package/dist/hooks/use-browser-session.d.ts +2 -1
- package/dist/hooks/use-browser-sessions.d.ts +1 -1
- package/dist/hooks/use-channels.d.ts +26 -0
- package/dist/hooks/use-computer-frame-stream.d.ts +1 -1
- package/dist/hooks/use-computer-session.d.ts +2 -1
- package/dist/hooks/use-computer-sessions.d.ts +1 -1
- package/dist/hooks/use-desktop-stream.d.ts +4 -0
- package/dist/hooks/use-interaction-interventions.d.ts +27 -0
- package/dist/hooks/use-interaction-invalidation.d.ts +19 -0
- package/dist/hooks/use-network-routes.d.ts +25 -0
- package/dist/hooks/use-site-auth-connections.d.ts +25 -0
- package/dist/hooks/use-supergrok-accounts.d.ts +26 -0
- package/dist/hooks/use-terminal-stream.d.ts +3 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +1220 -1545
- package/dist/index.js.map +1 -1
- package/dist/interaction.d.ts +13 -3
- package/dist/interaction.js +520 -6
- package/dist/interaction.js.map +1 -1
- package/dist/interactive-workbench-viewers-TOHBXJEE.js +15 -0
- package/dist/lib/host-platform.d.ts +5 -0
- package/dist/lib/relay-wire.d.ts +20 -1
- package/dist/machines.js +3 -3
- package/dist/model-policy.d.ts +1 -1
- package/dist/model-policy.js +1 -1
- package/dist/provider.d.ts +3 -2
- package/dist/realtime/realtime-control.d.ts +6 -2
- package/dist/realtime.js +138 -24
- package/dist/realtime.js.map +1 -1
- package/dist/session-context.d.ts +10 -2
- package/dist/session-ui.js +3 -3
- package/dist/session.js +11 -11
- package/dist/timeline/types.d.ts +5 -0
- package/package.json +2 -2
- package/src/artifacts.ts +3 -0
- package/src/client.ts +73 -3
- package/src/components/artifacts/index.ts +5 -0
- package/src/components/artifacts/published-html-artifact-frame.tsx +38 -0
- package/src/components/browser-input.ts +65 -0
- package/src/components/browser-viewer.tsx +1287 -177
- package/src/components/computer-viewer.tsx +611 -114
- package/src/components/desktop-viewer.tsx +114 -1
- package/src/components/interaction-intervention-banner.tsx +99 -0
- package/src/components/machines/machine-detail.tsx +1 -1
- package/src/components/model-policy-picker.tsx +15 -0
- package/src/components/sandbox-terminal.tsx +24 -7
- package/src/components/sandbox-workspace.tsx +42 -4
- package/src/components/workspace-dock.tsx +59 -5
- package/src/hooks/use-attached-browsers.ts +13 -11
- package/src/hooks/use-auth-runs.ts +278 -0
- package/src/hooks/use-browser-downloads.ts +218 -0
- package/src/hooks/use-browser-frame-stream.ts +168 -59
- package/src/hooks/use-browser-identities.ts +47 -6
- package/src/hooks/use-browser-session.ts +94 -27
- package/src/hooks/use-browser-sessions.ts +19 -14
- package/src/hooks/use-channels.ts +99 -0
- package/src/hooks/use-computer-frame-stream.ts +184 -61
- package/src/hooks/use-computer-session.ts +22 -2
- package/src/hooks/use-computer-sessions.ts +19 -13
- package/src/hooks/use-desktop-stream.ts +39 -7
- package/src/hooks/use-interaction-interventions.ts +242 -0
- package/src/hooks/use-interaction-invalidation.ts +66 -0
- package/src/hooks/use-machine-chip.ts +13 -3
- package/src/hooks/use-network-routes.ts +214 -0
- package/src/hooks/use-site-auth-connections.ts +226 -0
- package/src/hooks/use-supergrok-accounts.ts +81 -0
- package/src/hooks/use-terminal-stream.ts +288 -55
- package/src/index.ts +8 -0
- package/src/interaction.ts +30 -0
- package/src/lib/host-platform.ts +10 -0
- package/src/lib/relay-wire.ts +43 -4
- package/src/lib/terminal-capability.ts +1 -1
- package/src/model-policy.ts +19 -4
- package/src/provider.tsx +133 -1
- package/src/realtime/realtime-control.tsx +181 -26
- package/src/session-context.ts +66 -1
- package/src/timeline/activity-rail.tsx +6 -0
- package/src/timeline/projection.ts +58 -0
- package/src/timeline/types.ts +2 -0
- package/styles/compiled.css +64 -6
- package/dist/chunk-23EJ676W.js.map +0 -1
- package/dist/chunk-6BBWWOOU.js +0 -82
- package/dist/chunk-6BBWWOOU.js.map +0 -1
- package/dist/chunk-7I2KB3OK.js +0 -3895
- package/dist/chunk-7I2KB3OK.js.map +0 -1
- package/dist/chunk-HDBG7XGO.js.map +0 -1
- package/dist/chunk-JAGDUCZQ.js.map +0 -1
- package/dist/chunk-JR3QFY6B.js.map +0 -1
- package/dist/chunk-WYA65Y3F.js.map +0 -1
- package/dist/chunk-X4S56Y2H.js.map +0 -1
- package/dist/interactive-workbench-viewers-KHNOHWQE.js +0 -13
- /package/dist/{chunk-ROIRTM37.js.map → chunk-5UQPNLIO.js.map} +0 -0
- /package/dist/{chunk-724BW4TW.js.map → chunk-IGC6A2ZI.js.map} +0 -0
- /package/dist/{interactive-workbench-viewers-KHNOHWQE.js.map → interactive-workbench-viewers-TOHBXJEE.js.map} +0 -0
package/dist/client.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { OpenGeniClient } from "@opengeni/sdk";
|
|
|
4
4
|
* pass the real SDK client, a proxy-backed client that routes through their
|
|
5
5
|
* own API, or a scripted client in tests/demos.
|
|
6
6
|
*/
|
|
7
|
-
export type SessionClientLike = Pick<OpenGeniClient, "getClientConfig" | "getSession" | "getSessionLineage" | "updateSession" | "updateSessionPin" | "listSessions" | "listSessionPage" | "sendMessage" | "steerMessage" | "pauseSession" | "resumeSession" | "sendApprovalDecision" | "listHumanInputRequests" | "getHumanInputRequest" | "submitHumanInputResponse" | "listEvents" | "streamEvents" | "getQueue" | "moveQueueItem" | "editQueueItem" | "steerQueueItem" | "deleteQueueItem" | "getComposerDraft" | "saveComposerDraft" | "listTurns" | "getGoal" | "updateGoal" | "deleteGoal" | "clearSessionContext" | "compactSessionContext" | "listScheduledTasks" | "uploadFile" | "getFile" | "createFileDownloadUrl" | "listVariableSets" | "getVariableSetVariable" | "createVariableSet" | "updateVariableSet" | "deleteVariableSet" | "setVariableSetVariable" | "deleteVariableSetVariable" | "listEnvironments" | "createEnvironment" | "updateEnvironment" | "deleteEnvironment" | "setEnvironmentVariable" | "deleteEnvironmentVariable" | "listRigs" | "createRig" | "getRig" | "updateRig" | "deleteRig" | "listRigVersions" | "activateRigVersion" | "listRigChanges" | "proposeRigChange" | "getRigChange" | "verifyRigChange" | "promoteRigChange" | "verifyRig" | "listPacks" | "registerPack" | "enablePack" | "previewPackInstallation" | "installPack" | "previewPackUninstall" | "uninstallPack" | "deletePack" | "listWorkspaces" | "createWorkspace" | "updateWorkspace" | "setWorkspaceInferenceState" | "getWorkspace" | "getWorkspaceModelCatalog" | "listWorkspaceControlEvents" | "streamWorkspaceControlEvents" | "getBillingUsage" | "getClientConfig" | "getStreamCapabilities" | "acknowledgeStream" | "attachViewer" | "heartbeatViewer" | "detachViewer" | "listAttachedBrowsers" | "getAttachedBrowser" | "listBrowserIdentities" | "getBrowserIdentity" | "createBrowserIdentity" | "listBrowserRevisions" | "listBrowserSessions" | "getBrowserSession" | "createBrowserSession" | "listBrowserTargets" | "openBrowserTarget" | "selectBrowserTarget" | "closeBrowserTarget" | "observeBrowserTarget" | "actInBrowser" | "getBrowserActionReceipt" | "listBrowserDiagnostics" | "attachBrowserSession" | "heartbeatBrowserSession" | "publishBrowserRevision" | "suspendBrowserSession" | "resumeBrowserSession" | "endBrowserSession" | "listComputerSessions" | "getComputerSession" | "createComputerSession" | "listComputerTargets" | "observeComputerTarget" | "actInComputer" | "getComputerActionReceipt" | "attachComputerSession" | "heartbeatComputerSession" | "endComputerSession" | "fsList" | "fsListBatch" | "fsRead" | "fsWrite" | "fsDelete" | "fsMove" | "fsMkdir" | "gitStatus" | "gitDiff" | "gitReadBatch" | "getWorkspaceCapture" | "getWorkspaceCaptureFile" | "terminalExec" | "terminalPtyOpen" | "terminalPtyWrite" | "terminalPtyResize" | "terminalPtyClose"> & Partial<Pick<OpenGeniClient, "createVideoArtifactPlaybackSource">>;
|
|
7
|
+
export type SessionClientLike = Pick<OpenGeniClient, "getClientConfig" | "getSession" | "getSessionLineage" | "updateSession" | "updateSessionPin" | "listSessions" | "listSessionPage" | "sendMessage" | "steerMessage" | "pauseSession" | "resumeSession" | "sendApprovalDecision" | "listHumanInputRequests" | "getHumanInputRequest" | "submitHumanInputResponse" | "listEvents" | "streamEvents" | "getQueue" | "moveQueueItem" | "editQueueItem" | "steerQueueItem" | "deleteQueueItem" | "getComposerDraft" | "saveComposerDraft" | "listTurns" | "getGoal" | "updateGoal" | "deleteGoal" | "clearSessionContext" | "compactSessionContext" | "listScheduledTasks" | "uploadFile" | "getFile" | "createFileDownloadUrl" | "listVariableSets" | "getVariableSetVariable" | "createVariableSet" | "updateVariableSet" | "deleteVariableSet" | "setVariableSetVariable" | "deleteVariableSetVariable" | "listEnvironments" | "createEnvironment" | "updateEnvironment" | "deleteEnvironment" | "setEnvironmentVariable" | "deleteEnvironmentVariable" | "listChannels" | "createChannel" | "updateChannel" | "deleteChannel" | "updateSessionChannel" | "listRigs" | "createRig" | "getRig" | "updateRig" | "deleteRig" | "listRigVersions" | "activateRigVersion" | "listRigChanges" | "proposeRigChange" | "getRigChange" | "verifyRigChange" | "promoteRigChange" | "verifyRig" | "listPacks" | "registerPack" | "enablePack" | "previewPackInstallation" | "installPack" | "previewPackUninstall" | "uninstallPack" | "deletePack" | "listWorkspaces" | "createWorkspace" | "updateWorkspace" | "setWorkspaceInferenceState" | "getWorkspace" | "getWorkspaceModelCatalog" | "listWorkspaceControlEvents" | "streamWorkspaceControlEvents" | "streamWorkspaceInteractionRevisions" | "getBillingUsage" | "getClientConfig" | "getStreamCapabilities" | "acknowledgeStream" | "attachViewer" | "heartbeatViewer" | "detachViewer" | "listNetworkRoutes" | "getNetworkRoute" | "createNetworkRoute" | "updateNetworkRoute" | "listSiteAuthConnections" | "getSiteAuthConnection" | "createSiteAuthConnection" | "updateSiteAuthConnection" | "listAuthRuns" | "getAuthRun" | "startBrowserAuthRun" | "reportBrowserAuthRun" | "protectedBrowserAuthFill" | "verifyBrowserAuthRun" | "listInteractionInterventions" | "getInteractionIntervention" | "createInteractionIntervention" | "resolveInteractionIntervention" | "listAttachedBrowsers" | "getAttachedBrowser" | "listBrowserIdentities" | "getBrowserIdentity" | "createBrowserIdentity" | "updateBrowserIdentity" | "listBrowserRevisions" | "listBrowserSessions" | "getBrowserSession" | "readBrowserClipboard" | "listBrowserDownloads" | "getBrowserDownload" | "saveBrowserDownload" | "createBrowserSession" | "listBrowserTargets" | "openBrowserTarget" | "selectBrowserTarget" | "closeBrowserTarget" | "observeBrowserTarget" | "actInBrowser" | "getBrowserActionReceipt" | "listBrowserDiagnostics" | "attachBrowserSession" | "heartbeatBrowserSession" | "publishBrowserRevision" | "suspendBrowserSession" | "resumeBrowserSession" | "endBrowserSession" | "listComputerSessions" | "getComputerSession" | "readComputerClipboard" | "createComputerSession" | "listComputerTargets" | "observeComputerTarget" | "actInComputer" | "getComputerActionReceipt" | "attachComputerSession" | "heartbeatComputerSession" | "endComputerSession" | "fsList" | "fsListBatch" | "fsRead" | "fsWrite" | "fsDelete" | "fsMove" | "fsMkdir" | "gitStatus" | "gitDiff" | "gitReadBatch" | "getWorkspaceCapture" | "getWorkspaceCaptureFile" | "terminalExec" | "terminalPtyOpen" | "terminalPtyWrite" | "terminalPtyResize" | "terminalPtyClose"> & Partial<Pick<OpenGeniClient, "createVideoArtifactPlaybackSource" | "streamWorkspaceLiveEvents">>;
|
|
8
8
|
/**
|
|
9
9
|
* Tenant-safe client surface required by the session-only React entry.
|
|
10
10
|
*
|
|
@@ -32,10 +32,12 @@ export type EmbeddedHumanInputSessionClientLike = EmbeddedSessionEventClientLike
|
|
|
32
32
|
/** Exact client surface required by MCP approval-policy hooks. */
|
|
33
33
|
export type EmbeddedSessionMcpApprovalPolicyClientLike = EmbeddedSessionEventClientLike & Pick<OpenGeniClient, "updateSessionMcpApprovalPolicy">;
|
|
34
34
|
/** Exact client surface required by the public realtime React subpath. */
|
|
35
|
-
export type EmbeddedRealtimeSessionClientLike = Pick<OpenGeniClient, "getWorkspaceRealtimeModelCatalog" | "beginSessionRealtime" | "heartbeatSessionRealtime" | "negotiateCodexRealtimeWebrtc" | "negotiateGatewayRealtime" | "activateCodexRealtimeConnection" | "syncSessionRealtimeLedger" | "endSessionRealtime">;
|
|
35
|
+
export type EmbeddedRealtimeSessionClientLike = Pick<OpenGeniClient, "getWorkspaceRealtimeModelCatalog" | "beginSessionRealtime" | "heartbeatSessionRealtime" | "negotiateCodexRealtimeWebrtc" | "negotiateGatewayRealtime" | "negotiateXaiSubscriptionRealtime" | "activateCodexRealtimeConnection" | "syncSessionRealtimeLedger" | "endSessionRealtime">;
|
|
36
|
+
/** Exact public SDK surface required by cross-surface human interventions. */
|
|
37
|
+
export type EmbeddedInterventionClientLike = Pick<OpenGeniClient, "streamWorkspaceInteractionRevisions" | "listInteractionInterventions" | "getInteractionIntervention" | "createInteractionIntervention" | "resolveInteractionIntervention">;
|
|
36
38
|
/** Exact public SDK surface required by BrowserSession hooks and components. */
|
|
37
|
-
export type EmbeddedBrowserInteractionClientLike = Pick<OpenGeniClient, "listAttachedBrowsers" | "getAttachedBrowser" | "listBrowserIdentities" | "getBrowserIdentity" | "createBrowserIdentity" | "listBrowserRevisions" | "listBrowserSessions" | "getBrowserSession" | "createBrowserSession" | "listBrowserTargets" | "openBrowserTarget" | "selectBrowserTarget" | "closeBrowserTarget" | "observeBrowserTarget" | "actInBrowser" | "getBrowserActionReceipt" | "listBrowserDiagnostics" | "attachBrowserSession" | "heartbeatBrowserSession" | "publishBrowserRevision" | "suspendBrowserSession" | "resumeBrowserSession" | "endBrowserSession"
|
|
39
|
+
export type EmbeddedBrowserInteractionClientLike = Pick<OpenGeniClient, "streamWorkspaceInteractionRevisions" | "listNetworkRoutes" | "getNetworkRoute" | "createNetworkRoute" | "updateNetworkRoute" | "listSiteAuthConnections" | "getSiteAuthConnection" | "createSiteAuthConnection" | "updateSiteAuthConnection" | "listAuthRuns" | "getAuthRun" | "startBrowserAuthRun" | "reportBrowserAuthRun" | "protectedBrowserAuthFill" | "verifyBrowserAuthRun" | "listInteractionInterventions" | "getInteractionIntervention" | "createInteractionIntervention" | "resolveInteractionIntervention" | "listAttachedBrowsers" | "getAttachedBrowser" | "listBrowserIdentities" | "getBrowserIdentity" | "createBrowserIdentity" | "updateBrowserIdentity" | "listBrowserRevisions" | "listBrowserSessions" | "getBrowserSession" | "readBrowserClipboard" | "listBrowserDownloads" | "getBrowserDownload" | "saveBrowserDownload" | "createBrowserSession" | "listBrowserTargets" | "openBrowserTarget" | "selectBrowserTarget" | "closeBrowserTarget" | "observeBrowserTarget" | "actInBrowser" | "getBrowserActionReceipt" | "listBrowserDiagnostics" | "attachBrowserSession" | "heartbeatBrowserSession" | "publishBrowserRevision" | "suspendBrowserSession" | "resumeBrowserSession" | "endBrowserSession"> & EmbeddedInterventionClientLike;
|
|
38
40
|
/** Exact public SDK surface required by ComputerSession hooks and components. */
|
|
39
|
-
export type EmbeddedComputerInteractionClientLike = Pick<OpenGeniClient, "listComputerSessions" | "getComputerSession" | "createComputerSession" | "listComputerTargets" | "observeComputerTarget" | "actInComputer" | "getComputerActionReceipt" | "attachComputerSession" | "heartbeatComputerSession" | "endComputerSession"
|
|
41
|
+
export type EmbeddedComputerInteractionClientLike = Pick<OpenGeniClient, "streamWorkspaceInteractionRevisions" | "listComputerSessions" | "getComputerSession" | "readComputerClipboard" | "createComputerSession" | "listComputerTargets" | "observeComputerTarget" | "actInComputer" | "getComputerActionReceipt" | "attachComputerSession" | "heartbeatComputerSession" | "endComputerSession"> & EmbeddedInterventionClientLike;
|
|
40
42
|
/** Complete public Browser + Computer interaction surface. */
|
|
41
43
|
export type EmbeddedInteractionClientLike = EmbeddedBrowserInteractionClientLike & EmbeddedComputerInteractionClientLike;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { ArtifactSurface, type ArtifactModality, type ArtifactSurfaceProps, } from "./artifact-surface.js";
|
|
2
|
+
export { PUBLISHED_HTML_ARTIFACT_IFRAME_SANDBOX, PublishedHtmlArtifactFrame, type PublishedHtmlArtifactFrameProps, } from "./published-html-artifact-frame.js";
|
|
2
3
|
export { SpreadsheetArtifactSurface, SpreadsheetGrid, SpreadsheetProjectionGrid, type SpreadsheetArtifactSurfaceProps, type SpreadsheetCommit, type SpreadsheetRangeCommit, type SpreadsheetGridProps, type SpreadsheetGridProjection, type SpreadsheetProjectionCell, type SpreadsheetProjectionGridProps, type SpreadsheetSelection, type SpreadsheetViewport, } from "./spreadsheet-grid.js";
|
|
3
4
|
export { EditableSpreadsheetArtifactSurface, EditableSpreadsheetGrid, type EditableSpreadsheetArtifactSurfaceProps, type EditableSpreadsheetGridProps, } from "./editable-spreadsheet.js";
|
|
4
5
|
export { BrowserEditableArtifactWorkbench, EditableArtifactWorkbench, EditableArtifactWorkbenchHost, type BrowserEditableArtifactWorkbenchOptions, type BrowserEditableArtifactWorkbenchProps, type EditableArtifactWorkbenchHostProps, type EditableArtifactWorkbenchProps, } from "./editable-artifact-workbench.js";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CSSProperties } from "react";
|
|
2
|
+
export declare const PUBLISHED_HTML_ARTIFACT_IFRAME_SANDBOX: string;
|
|
3
|
+
export type PublishedHtmlArtifactFrameProps = {
|
|
4
|
+
html: string;
|
|
5
|
+
title: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Render exact published HTML in an opaque-origin iframe. Artifact scripts,
|
|
11
|
+
* external resources, forms, popups, and downloads work without granting
|
|
12
|
+
* parent-origin authority, shared cookies/storage, or top-level navigation.
|
|
13
|
+
*/
|
|
14
|
+
export declare function PublishedHtmlArtifactFrame(props: PublishedHtmlArtifactFrameProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { KeyboardEvent } from "react";
|
|
2
|
+
import { type InteractionHostPlatform } from "../lib/host-platform.js";
|
|
3
|
+
export declare const HUMAN_BROWSER_HOME_URL = "https://www.google.com/";
|
|
4
|
+
/** Apply browser-style omnibox behavior: navigate hosts, search ordinary text. */
|
|
5
|
+
export declare function normalizeBrowserAddress(value: string): string | null;
|
|
6
|
+
/** Translate executable keyboard chords for the BrowserSession action API. */
|
|
7
|
+
export declare function browserKey(event: Pick<KeyboardEvent<HTMLTextAreaElement>, "altKey" | "ctrlKey" | "key" | "metaKey" | "shiftKey">, hostPlatform?: InteractionHostPlatform): string | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ComputerSession } from "@opengeni/sdk/interaction";
|
|
1
|
+
import type { ComputerSession, InteractionPlacement } from "@opengeni/sdk/interaction";
|
|
2
2
|
import { type ReactNode } from "react";
|
|
3
3
|
import { type BrowserFrameWebSocketFactory } from "../hooks/use-browser-frame-stream.js";
|
|
4
4
|
import type { EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
|
|
@@ -15,9 +15,10 @@ export type BrowserViewerProps = EmbeddedBrowserInteractionClientOverride & {
|
|
|
15
15
|
/** Tests/demos only. Production uses the browser's native WebSocket. */
|
|
16
16
|
webSocketFactory?: BrowserFrameWebSocketFactory | undefined;
|
|
17
17
|
renderEmpty?: ((create: () => void, creating: boolean) => ReactNode) | undefined;
|
|
18
|
-
/** Optional host capability for a headed
|
|
19
|
-
*
|
|
20
|
-
|
|
18
|
+
/** Optional host capability for placing a human-created headed browser inside
|
|
19
|
+
* an exact ComputerSession. Browser-only embedders still create a headed
|
|
20
|
+
* browser; they simply omit the linked desktop resource. */
|
|
21
|
+
createLinkedComputer?: ((name: string, placement?: InteractionPlacement) => Promise<Pick<ComputerSession, "id" | "placement">>) | undefined;
|
|
21
22
|
/** Navigate to the exact linked ComputerSession; never a lookalike desktop. */
|
|
22
23
|
onOpenComputer?: ((computerSessionId: string) => void) | undefined;
|
|
23
24
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ReactNode } from "react";
|
|
1
|
+
import { type KeyboardEvent, type ReactNode } from "react";
|
|
2
2
|
import { type ComputerFrameWebSocketFactory } from "../hooks/use-computer-frame-stream.js";
|
|
3
3
|
import type { EmbeddedComputerInteractionClientOverride } from "../session-context.js";
|
|
4
4
|
export type ComputerViewerNotification = {
|
|
@@ -21,3 +21,4 @@ export type ComputerViewerProps = EmbeddedComputerInteractionClientOverride & {
|
|
|
21
21
|
/** Full ComputerSession surface: workspace discovery, peer switching, app/window/
|
|
22
22
|
* screen navigation, semantic controls, exact-frame input, and live media. */
|
|
23
23
|
export declare function ComputerViewer({ sessionId, enabled, className, onNotify, webSocketFactory, renderEmpty, requestedComputerSessionId, requestedComputerRequestId, ...override }: ComputerViewerProps): string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
|
|
24
|
+
export declare function computerKey(event: Pick<KeyboardEvent<HTMLTextAreaElement>, "altKey" | "ctrlKey" | "key" | "metaKey" | "shiftKey">): string | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CapabilityUnavailableReason, DesktopRfbFactory, DesktopStreamCapability } from "@opengeni/sdk";
|
|
2
|
-
import { type ReactNode } from "react";
|
|
2
|
+
import { type KeyboardEvent as ReactKeyboardEvent, type ReactNode } from "react";
|
|
3
|
+
import { type InteractionHostPlatform } from "../lib/host-platform.js";
|
|
3
4
|
import type { DesktopWebSocketFactory } from "../hooks/use-relay-frame-stream.js";
|
|
4
5
|
export type DesktopViewerProps = {
|
|
5
6
|
/** The desktop cell of the negotiated capabilities (`capabilities.DesktopStream`). */
|
|
@@ -16,9 +17,22 @@ export type DesktopViewerProps = {
|
|
|
16
17
|
scaleViewport?: boolean | undefined;
|
|
17
18
|
/** Custom RFB factory (tests / a WebRTC swap). Defaults to lazy @novnc/novnc. */
|
|
18
19
|
rfbFactory?: DesktopRfbFactory | undefined;
|
|
20
|
+
/** Authenticated controller protocols for proxied RFB transports. */
|
|
21
|
+
webSocketProtocols?: string[] | undefined;
|
|
19
22
|
/** Custom socket factory for the self-hosted `relay-frames` transport (tests).
|
|
20
23
|
* Defaults to `new WebSocket(url)`. Mirrors `rfbFactory`. */
|
|
21
24
|
webSocketFactory?: DesktopWebSocketFactory | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Optional host-owned paste path. ComputerSession hosts use their native,
|
|
27
|
+
* target-scoped clipboard action instead of relying on an RFB server to sync
|
|
28
|
+
* ClientCutText into the graphical seat. Return true once the host accepted
|
|
29
|
+
* the text. Without a host authority the viewer leaves paste untouched rather
|
|
30
|
+
* than claiming success for an unreliable display-server clipboard heuristic.
|
|
31
|
+
*/
|
|
32
|
+
onPasteText?: ((text: string) => boolean) | undefined;
|
|
33
|
+
/** OS behind the RFB seat. Used only to translate the host's primary shortcut
|
|
34
|
+
* (Cmd on macOS, Ctrl elsewhere) to the target's primary modifier. */
|
|
35
|
+
targetPlatform?: "linux" | "macos" | "windows" | null | undefined;
|
|
22
36
|
/**
|
|
23
37
|
* @deprecated Desktop acknowledgment is automatic. Retained as an ignored
|
|
24
38
|
* compatibility prop so existing embedders keep compiling.
|
|
@@ -86,4 +100,14 @@ export type DesktopViewerProps = {
|
|
|
86
100
|
* Genuinely-unavailable surfaces (headless/policy/os/backend) keep a clear,
|
|
87
101
|
* static unavailable notice.
|
|
88
102
|
*/
|
|
89
|
-
export declare function DesktopViewer({ capability, interactive, showControlToggle, scaleViewport, rfbFactory, webSocketFactory, onActivate, onAcknowledge, watching, onWarm, renderUnavailable, renderWarming, renderViewerCap, viewerCapReached, connectTimeoutMs, className, }: DesktopViewerProps): import("react").JSX.Element;
|
|
103
|
+
export declare function DesktopViewer({ capability, interactive, showControlToggle, scaleViewport, rfbFactory, webSocketProtocols, webSocketFactory, onPasteText, targetPlatform, onActivate, onAcknowledge, watching, onWarm, renderUnavailable, renderWarming, renderViewerCap, viewerCapReached, connectTimeoutMs, className, }: DesktopViewerProps): import("react").JSX.Element;
|
|
104
|
+
type RfbKeyEvent = {
|
|
105
|
+
keysym: number;
|
|
106
|
+
code: string;
|
|
107
|
+
down: boolean;
|
|
108
|
+
};
|
|
109
|
+
/** Translate one host-primary chord into deterministic RFB events for the
|
|
110
|
+
* target OS. noVNC otherwise treats a Mac Command key as remote Alt, which
|
|
111
|
+
* makes ordinary Cmd+A/Z shortcuts silently wrong on Linux sandboxes. */
|
|
112
|
+
export declare function desktopPrimaryShortcut(event: Pick<ReactKeyboardEvent<HTMLDivElement>, "altKey" | "ctrlKey" | "key" | "metaKey" | "shiftKey" | "code">, hostPlatform: InteractionHostPlatform, targetPlatform: "linux" | "macos" | "windows"): RfbKeyEvent[] | "clipboard" | null;
|
|
113
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { InteractionIntervention } from "@opengeni/sdk/interaction";
|
|
2
|
+
export type InteractionInterventionBannerProps = {
|
|
3
|
+
interventions: InteractionIntervention[];
|
|
4
|
+
activeTargetId?: string | null | undefined;
|
|
5
|
+
mutating?: boolean | undefined;
|
|
6
|
+
className?: string | undefined;
|
|
7
|
+
onOpen?: ((intervention: InteractionIntervention) => void) | undefined;
|
|
8
|
+
onResolve: (intervention: InteractionIntervention, outcome: "completed" | "dismissed") => void;
|
|
9
|
+
};
|
|
10
|
+
/** Compact durable human-action prompt shared by Browser and Computer viewers. */
|
|
11
|
+
export declare function InteractionInterventionBanner({ interventions, activeTargetId, mutating, className, onOpen, onResolve, }: InteractionInterventionBannerProps): import("react").JSX.Element | null;
|
|
@@ -81,10 +81,13 @@ export type SandboxTerminalProps = {
|
|
|
81
81
|
* the firehose-only default).
|
|
82
82
|
*/
|
|
83
83
|
onActivate?: (() => void) | undefined;
|
|
84
|
+
/** Re-negotiate the terminal capability after an unexpected socket failure. */
|
|
85
|
+
onReconnectNeeded?: (() => void) | undefined;
|
|
84
86
|
className?: string | undefined;
|
|
85
87
|
};
|
|
86
88
|
type XtermLike = {
|
|
87
89
|
open: (el: HTMLElement) => void;
|
|
90
|
+
focus: () => void;
|
|
88
91
|
write: (data: string) => void;
|
|
89
92
|
clear: () => void;
|
|
90
93
|
onData: (cb: (data: string) => void) => {
|
|
@@ -165,5 +168,5 @@ declare global {
|
|
|
165
168
|
* Resizes are tracked with a `ResizeObserver` on the container (not just
|
|
166
169
|
* `window.resize`) so dragging the dock handle refits the grid.
|
|
167
170
|
*/
|
|
168
|
-
export declare function SandboxTerminal({ result, terminalCapability, theme, fontFamily, fontSize, liveness, readOnly, placeholder, showHeader, shell, onActivate, className, }: SandboxTerminalProps): import("react").JSX.Element;
|
|
171
|
+
export declare function SandboxTerminal({ result, terminalCapability, theme, fontFamily, fontSize, liveness, readOnly, placeholder, showHeader, shell, onActivate, onReconnectNeeded, className, }: SandboxTerminalProps): import("react").JSX.Element;
|
|
169
172
|
export {};
|
|
@@ -62,6 +62,9 @@ export type UseSandboxWorkspaceTabsOptions = ClientOverride & {
|
|
|
62
62
|
initialTab?: string | null | undefined;
|
|
63
63
|
/** Actually selected dock tab. Inactive data surfaces retain cache but issue no live reads. */
|
|
64
64
|
activeTab?: string | null | undefined;
|
|
65
|
+
/** Whether the dock is visible. Hidden docks retain UI state but must not keep
|
|
66
|
+
* expensive browser/computer media streams alive. */
|
|
67
|
+
workspaceVisible?: boolean | undefined;
|
|
65
68
|
/** Host-routed notifications (mutation errors, desktop-consent failures). The
|
|
66
69
|
* package never imports a toast library — the host decides how to surface. */
|
|
67
70
|
onNotify?: ((notification: WorkspaceNotification) => void) | undefined;
|
package/dist/composer.js
CHANGED
|
@@ -37,7 +37,8 @@ import {
|
|
|
37
37
|
useChatComposer,
|
|
38
38
|
useChatComposerController,
|
|
39
39
|
useVoiceInput
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-5UQPNLIO.js";
|
|
41
|
+
import "./chunk-IGC6A2ZI.js";
|
|
41
42
|
import {
|
|
42
43
|
BillingClassMark,
|
|
43
44
|
ModelPolicyPicker,
|
|
@@ -46,14 +47,13 @@ import {
|
|
|
46
47
|
PickerBackHeader,
|
|
47
48
|
PickerNavRow,
|
|
48
49
|
defaultModelPolicyPickerMessages
|
|
49
|
-
} from "./chunk-
|
|
50
|
-
import "./chunk-
|
|
50
|
+
} from "./chunk-MKPIAGVL.js";
|
|
51
|
+
import "./chunk-XBZWOM2K.js";
|
|
51
52
|
import "./chunk-FK6VG4LL.js";
|
|
52
53
|
import "./chunk-VZTQ73XT.js";
|
|
53
|
-
import "./chunk-724BW4TW.js";
|
|
54
|
-
import "./chunk-LAKLF4PA.js";
|
|
55
54
|
import "./chunk-KZ73RL76.js";
|
|
56
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-C5ZPSSS5.js";
|
|
56
|
+
import "./chunk-LAKLF4PA.js";
|
|
57
57
|
import "./chunk-22KP6LR5.js";
|
|
58
58
|
export {
|
|
59
59
|
Actions,
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { AuthRun, AuthRunMutationResponse, ProtectedAuthFillRequest, ProtectedAuthFillResponse, ReportAuthRunRequest, StartAuthRunRequest, VerifyAuthRunRequest } from "@opengeni/sdk/interaction";
|
|
2
|
+
import type { EmbeddedBrowserInteractionClientLike } from "../client.js";
|
|
3
|
+
import { type EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
|
|
4
|
+
export type UseAuthRunsOptions = EmbeddedBrowserInteractionClientOverride & {
|
|
5
|
+
enabled?: boolean | undefined;
|
|
6
|
+
browserSessionId?: string | null | undefined;
|
|
7
|
+
siteAuthConnectionId?: string | null | undefined;
|
|
8
|
+
includeSettled?: boolean | undefined;
|
|
9
|
+
};
|
|
10
|
+
export type UseAuthRunsResult = {
|
|
11
|
+
runs: AuthRun[];
|
|
12
|
+
loading: boolean;
|
|
13
|
+
refreshing: boolean;
|
|
14
|
+
mutating: boolean;
|
|
15
|
+
error: Error | null;
|
|
16
|
+
refresh: () => Promise<void>;
|
|
17
|
+
start: (browserSessionId: string, request: Omit<StartAuthRunRequest, "operationId"> & {
|
|
18
|
+
operationId?: string;
|
|
19
|
+
}) => Promise<AuthRunMutationResponse>;
|
|
20
|
+
report: (browserSessionId: string, authRunId: string, request: Omit<ReportAuthRunRequest, "operationId"> & {
|
|
21
|
+
operationId?: string;
|
|
22
|
+
}) => Promise<AuthRunMutationResponse>;
|
|
23
|
+
protectedFill: (browserSessionId: string, authRunId: string, request: Omit<ProtectedAuthFillRequest, "operationId"> & {
|
|
24
|
+
operationId?: string;
|
|
25
|
+
}) => Promise<ProtectedAuthFillResponse>;
|
|
26
|
+
verify: (browserSessionId: string, authRunId: string, request: Omit<VerifyAuthRunRequest, "operationId"> & {
|
|
27
|
+
operationId?: string;
|
|
28
|
+
}) => Promise<AuthRunMutationResponse>;
|
|
29
|
+
};
|
|
30
|
+
/** Live authentication state machines tied to exact browser document generations. */
|
|
31
|
+
export declare function useAuthRuns(options?: UseAuthRunsOptions): UseAuthRunsResult;
|
|
32
|
+
export type AuthRunsClient = EmbeddedBrowserInteractionClientLike;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BrowserDownload, BrowserDownloadSaveResponse } from "@opengeni/sdk/interaction";
|
|
2
|
+
import type { EmbeddedBrowserInteractionClientLike } from "../client.js";
|
|
3
|
+
import { type EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
|
|
4
|
+
export type UseBrowserDownloadsOptions = EmbeddedBrowserInteractionClientOverride & {
|
|
5
|
+
browserSessionId: string | null;
|
|
6
|
+
enabled?: boolean | undefined;
|
|
7
|
+
pollIntervalMs?: number | undefined;
|
|
8
|
+
};
|
|
9
|
+
export type BrowserDownloadSaveOptions = {
|
|
10
|
+
operationId?: string | undefined;
|
|
11
|
+
overwrite?: boolean | undefined;
|
|
12
|
+
};
|
|
13
|
+
export type UseBrowserDownloadsResult = {
|
|
14
|
+
downloads: BrowserDownload[];
|
|
15
|
+
loading: boolean;
|
|
16
|
+
refreshing: boolean;
|
|
17
|
+
savingDownloadIds: string[];
|
|
18
|
+
error: Error | null;
|
|
19
|
+
refresh: () => Promise<void>;
|
|
20
|
+
saveToWorkspace: (downloadId: string, destinationPath: string, options?: BrowserDownloadSaveOptions) => Promise<BrowserDownloadSaveResponse>;
|
|
21
|
+
};
|
|
22
|
+
/** Exact browser-produced files for one BrowserSession. Bytes remain private
|
|
23
|
+
* until `saveToWorkspace` performs the canonical workspace mutation. */
|
|
24
|
+
export declare function useBrowserDownloads(options: UseBrowserDownloadsOptions): UseBrowserDownloadsResult;
|
|
25
|
+
export type BrowserDownloadsClient = EmbeddedBrowserInteractionClientLike;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { BrowserIdentity, BrowserIdentityMutationResponse, BrowserRevisionListResponse, CreateBrowserIdentityRequest, PublishBrowserRevisionRequest, PublishBrowserRevisionResponse } from "@opengeni/sdk/interaction";
|
|
1
|
+
import type { BrowserIdentity, BrowserIdentityMutationResponse, BrowserRevisionListResponse, CreateBrowserIdentityRequest, PublishBrowserRevisionRequest, PublishBrowserRevisionResponse, UpdateBrowserIdentityRequest } from "@opengeni/sdk/interaction";
|
|
2
2
|
import type { EmbeddedBrowserInteractionClientLike } from "../client.js";
|
|
3
3
|
import { type EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
|
|
4
4
|
export type UseBrowserIdentitiesOptions = EmbeddedBrowserInteractionClientOverride & {
|
|
5
5
|
enabled?: boolean | undefined;
|
|
6
|
+
includeArchived?: boolean | undefined;
|
|
6
7
|
};
|
|
7
8
|
export type UseBrowserIdentitiesResult = {
|
|
8
9
|
revision: number;
|
|
@@ -15,6 +16,9 @@ export type UseBrowserIdentitiesResult = {
|
|
|
15
16
|
create: (request: Omit<CreateBrowserIdentityRequest, "operationId"> & {
|
|
16
17
|
operationId?: string;
|
|
17
18
|
}) => Promise<BrowserIdentityMutationResponse>;
|
|
19
|
+
update: (identityId: string, request: Omit<UpdateBrowserIdentityRequest, "operationId"> & {
|
|
20
|
+
operationId?: string;
|
|
21
|
+
}) => Promise<BrowserIdentityMutationResponse>;
|
|
18
22
|
revisions: (identityId: string) => Promise<BrowserRevisionListResponse>;
|
|
19
23
|
publish: (browserSessionId: string, request: Omit<PublishBrowserRevisionRequest, "operationId"> & {
|
|
20
24
|
operationId?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BrowserAction, BrowserActionBatch, BrowserActionReceipt, BrowserDiagnosticBatch, BrowserDiagnosticsOptions, BrowserFrame, BrowserObservation, BrowserSession, BrowserTarget } from "@opengeni/sdk/interaction";
|
|
1
|
+
import type { BrowserAction, BrowserActionBatch, BrowserActionReceipt, BrowserClipboard, BrowserDiagnosticBatch, BrowserDiagnosticsOptions, BrowserFrame, BrowserObservation, BrowserSession, BrowserTarget } from "@opengeni/sdk/interaction";
|
|
2
2
|
import { type EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
|
|
3
3
|
export type UseBrowserSessionOptions = EmbeddedBrowserInteractionClientOverride & {
|
|
4
4
|
browserSessionId: string | null;
|
|
@@ -21,6 +21,7 @@ export type UseBrowserSessionResult = {
|
|
|
21
21
|
/** Dispatch input against the exact image a human saw. Stale images fail at
|
|
22
22
|
* the controller fence instead of targeting a newer page. */
|
|
23
23
|
actFromFrame: (action: BrowserAction | BrowserActionBatch, frame: BrowserFrame, operationId?: string) => Promise<BrowserActionReceipt>;
|
|
24
|
+
readClipboard: () => Promise<BrowserClipboard>;
|
|
24
25
|
diagnostics: (options?: BrowserDiagnosticsOptions) => Promise<BrowserDiagnosticBatch>;
|
|
25
26
|
};
|
|
26
27
|
/** Selected BrowserSession control state. All human actions use the same
|
|
@@ -5,7 +5,7 @@ export type UseBrowserSessionsOptions = EmbeddedBrowserInteractionClientOverride
|
|
|
5
5
|
/** Current agent/session relevance. Workspace peers remain in `sessions`. */
|
|
6
6
|
sessionId?: string | undefined;
|
|
7
7
|
enabled?: boolean | undefined;
|
|
8
|
-
/**
|
|
8
|
+
/** Polling fallback used only while the workspace invalidation stream is unavailable. */
|
|
9
9
|
pollIntervalMs?: number | undefined;
|
|
10
10
|
};
|
|
11
11
|
export type UseBrowserSessionsResult = {
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Channel, CreateChannelRequest, Session, UpdateChannelRequest } from "@opengeni/sdk";
|
|
2
|
+
import { type ClientOverride } from "../provider.js";
|
|
3
|
+
export type UseChannelsOptions = ClientOverride & {
|
|
4
|
+
pollIntervalMs?: number | undefined;
|
|
5
|
+
enabled?: boolean | undefined;
|
|
6
|
+
};
|
|
7
|
+
export type UseChannelsResult = {
|
|
8
|
+
channels: Channel[];
|
|
9
|
+
loading: boolean;
|
|
10
|
+
error: Error | null;
|
|
11
|
+
refresh: () => Promise<void>;
|
|
12
|
+
create: (request: CreateChannelRequest) => Promise<Channel | null>;
|
|
13
|
+
update: (channelId: string, request: UpdateChannelRequest) => Promise<Channel | null>;
|
|
14
|
+
remove: (channelId: string) => Promise<boolean>;
|
|
15
|
+
/** Re-file a session into a channel; null moves it back to the inbox. */
|
|
16
|
+
moveSession: (sessionId: string, channelId: string | null) => Promise<Session | null>;
|
|
17
|
+
mutating: boolean;
|
|
18
|
+
mutationError: Error | null;
|
|
19
|
+
clearMutationError: () => void;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Workspace-shared channels: rail organization for root sessions
|
|
23
|
+
* ("workstreams") by work type. Pure metadata — filing a session into a
|
|
24
|
+
* channel never affects execution.
|
|
25
|
+
*/
|
|
26
|
+
export declare function useChannels(options?: UseChannelsOptions): UseChannelsResult;
|
|
@@ -15,7 +15,7 @@ export type UseComputerFrameStreamOptions = EmbeddedComputerInteractionClientOve
|
|
|
15
15
|
export type UseComputerFrameStreamResult = {
|
|
16
16
|
state: ComputerFrameConnectionState;
|
|
17
17
|
frame: ComputerFrame | null;
|
|
18
|
-
attachment: Pick<ComputerSessionAttachment, "computerSessionId" | "controllerGeneration" | "targetId" | "expiresAt"> | null;
|
|
18
|
+
attachment: Pick<ComputerSessionAttachment, "computerSessionId" | "controllerGeneration" | "targetId" | "stream" | "expiresAt"> | null;
|
|
19
19
|
error: Error | null;
|
|
20
20
|
reconnect: () => void;
|
|
21
21
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ComputerAction, ComputerActionReceipt, ComputerFrame, ComputerObservation, ComputerSession, ComputerTarget } from "@opengeni/sdk/interaction";
|
|
1
|
+
import type { ComputerAction, ComputerActionReceipt, ComputerClipboard, ComputerFrame, ComputerObservation, ComputerSession, ComputerTarget } from "@opengeni/sdk/interaction";
|
|
2
2
|
import { type EmbeddedComputerInteractionClientOverride } from "../session-context.js";
|
|
3
3
|
export type UseComputerSessionOptions = EmbeddedComputerInteractionClientOverride & {
|
|
4
4
|
computerSessionId: string | null;
|
|
@@ -14,6 +14,7 @@ export type UseComputerSessionResult = {
|
|
|
14
14
|
mutating: boolean;
|
|
15
15
|
error: Error | null;
|
|
16
16
|
refresh: () => Promise<void>;
|
|
17
|
+
readClipboard: () => Promise<ComputerClipboard>;
|
|
17
18
|
/** Changes only this viewer's target cursor; it never takes ownership or
|
|
18
19
|
* foregrounds an application. */
|
|
19
20
|
selectTarget: (targetId: string) => Promise<ComputerTarget>;
|
|
@@ -5,7 +5,7 @@ export type UseComputerSessionsOptions = EmbeddedComputerInteractionClientOverri
|
|
|
5
5
|
/** Current agent/session relevance. Workspace peers remain in `sessions`. */
|
|
6
6
|
sessionId?: string | undefined;
|
|
7
7
|
enabled?: boolean | undefined;
|
|
8
|
-
/**
|
|
8
|
+
/** Polling fallback used only while the workspace invalidation stream is unavailable. */
|
|
9
9
|
pollIntervalMs?: number | undefined;
|
|
10
10
|
};
|
|
11
11
|
export type UseComputerSessionsResult = {
|
|
@@ -11,6 +11,8 @@ export type UseDesktopStreamOptions = {
|
|
|
11
11
|
scaleViewport?: boolean | undefined;
|
|
12
12
|
/** Custom RFB factory (tests / a WebRTC swap). Defaults to a lazy @novnc/novnc. */
|
|
13
13
|
rfbFactory?: DesktopRfbFactory | undefined;
|
|
14
|
+
/** Additional WebSocket protocols for an authenticated placement proxy. */
|
|
15
|
+
webSocketProtocols?: string[] | undefined;
|
|
14
16
|
/** Custom socket factory for the `relay-frames` transport (tests). Defaults to
|
|
15
17
|
* `new WebSocket(url)`. Mirrors `rfbFactory` for the frame renderer. */
|
|
16
18
|
webSocketFactory?: DesktopWebSocketFactory | undefined;
|
|
@@ -20,6 +22,8 @@ export type UseDesktopStreamResult = {
|
|
|
20
22
|
error: Error | null;
|
|
21
23
|
/** Manual reconnect (e.g. after a securityfailure once a fresh URL arrives). */
|
|
22
24
|
reconnect: () => void;
|
|
25
|
+
/** Synchronous input on the already-open RFB authority. */
|
|
26
|
+
sendKey?: ((keysym: number, code: string, down?: boolean) => boolean) | undefined;
|
|
23
27
|
};
|
|
24
28
|
/**
|
|
25
29
|
* Drive the noVNC RFB lifecycle from a `DesktopStreamCapability`, using the
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CreateInteractionInterventionRequest, InteractionIntervention, InteractionInterventionMutationResponse, ResolveInteractionInterventionRequest } from "@opengeni/sdk/interaction";
|
|
2
|
+
import type { EmbeddedInterventionClientLike } from "../client.js";
|
|
3
|
+
import { type EmbeddedInterventionClientOverride } from "../session-context.js";
|
|
4
|
+
export type UseInteractionInterventionsOptions = EmbeddedInterventionClientOverride & {
|
|
5
|
+
enabled?: boolean | undefined;
|
|
6
|
+
resourceKind?: "browser_session" | "computer_session" | undefined;
|
|
7
|
+
resourceId?: string | null | undefined;
|
|
8
|
+
includeSettled?: boolean | undefined;
|
|
9
|
+
pollIntervalMs?: number | undefined;
|
|
10
|
+
};
|
|
11
|
+
export type UseInteractionInterventionsResult = {
|
|
12
|
+
interventions: InteractionIntervention[];
|
|
13
|
+
loading: boolean;
|
|
14
|
+
refreshing: boolean;
|
|
15
|
+
mutating: boolean;
|
|
16
|
+
error: Error | null;
|
|
17
|
+
refresh: () => Promise<void>;
|
|
18
|
+
create: (request: Omit<CreateInteractionInterventionRequest, "operationId"> & {
|
|
19
|
+
operationId?: string;
|
|
20
|
+
}) => Promise<InteractionInterventionMutationResponse>;
|
|
21
|
+
resolve: (interventionId: string, request: Omit<ResolveInteractionInterventionRequest, "operationId"> & {
|
|
22
|
+
operationId?: string;
|
|
23
|
+
}) => Promise<InteractionInterventionMutationResponse>;
|
|
24
|
+
};
|
|
25
|
+
/** Human-action bridge shared by Browser and Computer surfaces. */
|
|
26
|
+
export declare function useInteractionInterventions(options?: UseInteractionInterventionsOptions): UseInteractionInterventionsResult;
|
|
27
|
+
export type InteractionInterventionsClient = EmbeddedInterventionClientLike;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StreamConnectionState, WorkspaceInteractionRevisionEvent } from "@opengeni/sdk";
|
|
2
|
+
export type InteractionInvalidationOptions = {
|
|
3
|
+
workspaceId: string;
|
|
4
|
+
/** Distinguishes filtered projections of the same workspace catalog. */
|
|
5
|
+
key: string;
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
event: WorkspaceInteractionRevisionEvent | null;
|
|
8
|
+
connectionState: StreamConnectionState | "idle" | "error";
|
|
9
|
+
/** Catalog responses carry the workspace revision; live-state lists do not. */
|
|
10
|
+
knownRevision?: number | undefined;
|
|
11
|
+
refresh: () => Promise<void>;
|
|
12
|
+
fallbackPollIntervalMs?: number | undefined;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Refetch authoritative lists on the shared latest-revision stream. Poll only
|
|
16
|
+
* while that stream is unavailable, preserving standalone-hook degradation
|
|
17
|
+
* without multiplying healthy-provider traffic.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useInteractionInvalidation(options: InteractionInvalidationOptions): void;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CreateNetworkRouteRequest, NetworkRoute, NetworkRouteMutationResponse, UpdateNetworkRouteRequest } from "@opengeni/sdk/interaction";
|
|
2
|
+
import type { EmbeddedBrowserInteractionClientLike } from "../client.js";
|
|
3
|
+
import { type EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
|
|
4
|
+
export type UseNetworkRoutesOptions = EmbeddedBrowserInteractionClientOverride & {
|
|
5
|
+
enabled?: boolean | undefined;
|
|
6
|
+
includeArchived?: boolean | undefined;
|
|
7
|
+
};
|
|
8
|
+
export type UseNetworkRoutesResult = {
|
|
9
|
+
revision: number;
|
|
10
|
+
routes: NetworkRoute[];
|
|
11
|
+
loading: boolean;
|
|
12
|
+
refreshing: boolean;
|
|
13
|
+
mutating: boolean;
|
|
14
|
+
error: Error | null;
|
|
15
|
+
refresh: () => Promise<void>;
|
|
16
|
+
create: (request: Omit<CreateNetworkRouteRequest, "operationId"> & {
|
|
17
|
+
operationId?: string;
|
|
18
|
+
}) => Promise<NetworkRouteMutationResponse>;
|
|
19
|
+
update: (networkRouteId: string, request: Omit<UpdateNetworkRouteRequest, "operationId"> & {
|
|
20
|
+
operationId?: string;
|
|
21
|
+
}) => Promise<NetworkRouteMutationResponse>;
|
|
22
|
+
};
|
|
23
|
+
/** Workspace network-route registry. Route mutations never expose brokered credentials. */
|
|
24
|
+
export declare function useNetworkRoutes(options?: UseNetworkRoutesOptions): UseNetworkRoutesResult;
|
|
25
|
+
export type NetworkRoutesClient = EmbeddedBrowserInteractionClientLike;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CreateSiteAuthConnectionRequest, SiteAuthConnection, SiteAuthConnectionMutationResponse, UpdateSiteAuthConnectionRequest } from "@opengeni/sdk/interaction";
|
|
2
|
+
import type { EmbeddedBrowserInteractionClientLike } from "../client.js";
|
|
3
|
+
import { type EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
|
|
4
|
+
export type UseSiteAuthConnectionsOptions = EmbeddedBrowserInteractionClientOverride & {
|
|
5
|
+
enabled?: boolean | undefined;
|
|
6
|
+
includeArchived?: boolean | undefined;
|
|
7
|
+
};
|
|
8
|
+
export type UseSiteAuthConnectionsResult = {
|
|
9
|
+
revision: number;
|
|
10
|
+
connections: SiteAuthConnection[];
|
|
11
|
+
loading: boolean;
|
|
12
|
+
refreshing: boolean;
|
|
13
|
+
mutating: boolean;
|
|
14
|
+
error: Error | null;
|
|
15
|
+
refresh: () => Promise<void>;
|
|
16
|
+
create: (request: Omit<CreateSiteAuthConnectionRequest, "operationId"> & {
|
|
17
|
+
operationId?: string;
|
|
18
|
+
}) => Promise<SiteAuthConnectionMutationResponse>;
|
|
19
|
+
update: (connectionId: string, request: Omit<UpdateSiteAuthConnectionRequest, "operationId"> & {
|
|
20
|
+
operationId?: string;
|
|
21
|
+
}) => Promise<SiteAuthConnectionMutationResponse>;
|
|
22
|
+
};
|
|
23
|
+
/** Secret-free workspace login recipes and their verified health. */
|
|
24
|
+
export declare function useSiteAuthConnections(options?: UseSiteAuthConnectionsOptions): UseSiteAuthConnectionsResult;
|
|
25
|
+
export type SiteAuthConnectionsClient = EmbeddedBrowserInteractionClientLike;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SuperGrokAccount, SuperGrokAccountsResponse } from "@opengeni/sdk";
|
|
2
|
+
import { type ClientOverride } from "../provider.js";
|
|
3
|
+
export type SuperGrokAccountsClientLike = {
|
|
4
|
+
listSuperGrokAccounts: (workspaceId: string) => Promise<SuperGrokAccountsResponse>;
|
|
5
|
+
activateSuperGrokAccount?: (workspaceId: string, accountId: string) => Promise<{
|
|
6
|
+
activated: boolean;
|
|
7
|
+
accountId: string;
|
|
8
|
+
}>;
|
|
9
|
+
};
|
|
10
|
+
export type UseSuperGrokAccountsOptions = ClientOverride & {
|
|
11
|
+
enabled?: boolean | undefined;
|
|
12
|
+
pollIntervalMs?: number | undefined;
|
|
13
|
+
supergrokClient?: SuperGrokAccountsClientLike | undefined;
|
|
14
|
+
};
|
|
15
|
+
export type UseSuperGrokAccountsResult = {
|
|
16
|
+
accounts: SuperGrokAccount[];
|
|
17
|
+
activeAccountId: string | null;
|
|
18
|
+
settings: SuperGrokAccountsResponse["settings"];
|
|
19
|
+
loading: boolean;
|
|
20
|
+
refresh: () => Promise<void>;
|
|
21
|
+
activate: (accountId: string) => Promise<boolean>;
|
|
22
|
+
activating: boolean;
|
|
23
|
+
mutationError: Error | null;
|
|
24
|
+
};
|
|
25
|
+
/** Workspace-visible xAI accounts. Workspace scope is the connection default. */
|
|
26
|
+
export declare function useSuperGrokAccounts(options?: UseSuperGrokAccountsOptions): UseSuperGrokAccountsResult;
|
|
@@ -11,6 +11,9 @@ export type UseTerminalStreamOptions = {
|
|
|
11
11
|
onOutput?: ((data: string) => void) | undefined;
|
|
12
12
|
/** Called when ttyd sends a SET_WINDOW_TITLE frame. */
|
|
13
13
|
onTitle?: ((title: string) => void) | undefined;
|
|
14
|
+
/** Requests a fresh negotiated terminal grant after an unexpected transport
|
|
15
|
+
* failure. Intentional disconnects and effect cleanup never call it. */
|
|
16
|
+
onReconnectNeeded?: (() => void) | undefined;
|
|
14
17
|
/** Initial PTY size to seed the ttyd auth frame + first resize. */
|
|
15
18
|
initialCols?: number | undefined;
|
|
16
19
|
initialRows?: number | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -44,6 +44,8 @@ export { useSessionLineage, isLineageRefreshEvent } from "./hooks/use-session-li
|
|
|
44
44
|
export type { UseSessionLineageOptions, UseSessionLineageResult, } from "./hooks/use-session-lineage.js";
|
|
45
45
|
export { useVariableSets, useEnvironments } from "./hooks/use-environments.js";
|
|
46
46
|
export type { UseVariableSetsOptions, UseVariableSetsResult, UseEnvironmentsOptions, UseEnvironmentsResult, } from "./hooks/use-environments.js";
|
|
47
|
+
export { useChannels } from "./hooks/use-channels.js";
|
|
48
|
+
export type { UseChannelsOptions, UseChannelsResult } from "./hooks/use-channels.js";
|
|
47
49
|
export { useRigs, useRig, useRigVersions, useRigChanges } from "./hooks/use-rigs.js";
|
|
48
50
|
export type { UseRigsOptions, UseRigsResult, UseRigOptions, UseRigResult, UseRigVersionsOptions, UseRigVersionsResult, UseRigChangesOptions, UseRigChangesResult, } from "./hooks/use-rigs.js";
|
|
49
51
|
export { usePacks } from "./hooks/use-packs.js";
|
|
@@ -152,6 +154,8 @@ export type { SandboxWorkspaceSurface, SandboxWorkspaceProps, UseSandboxWorkspac
|
|
|
152
154
|
export * from "./machines.js";
|
|
153
155
|
export { useCodexAccounts, isCodexAccountEvent } from "./hooks/use-codex-accounts.js";
|
|
154
156
|
export type { CodexAccountsClientLike, UseCodexAccountsOptions, UseCodexAccountsResult, } from "./hooks/use-codex-accounts.js";
|
|
157
|
+
export { useSuperGrokAccounts } from "./hooks/use-supergrok-accounts.js";
|
|
158
|
+
export type { SuperGrokAccountsClientLike, UseSuperGrokAccountsOptions, UseSuperGrokAccountsResult, } from "./hooks/use-supergrok-accounts.js";
|
|
155
159
|
export { gitFileDiffToPatch } from "./lib/git-patch.js";
|
|
156
160
|
export { xtermThemeFromTokens } from "./lib/xterm-theme.js";
|
|
157
161
|
export { cn } from "./lib/cn.js";
|