@opengeni/react 0.46.1 → 0.52.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 +158 -14
- package/dist/artifacts-document.d.ts +3 -0
- package/dist/artifacts-document.js +17 -0
- package/dist/artifacts-document.js.map +1 -0
- package/dist/artifacts-presentation.d.ts +3 -0
- package/dist/artifacts-presentation.js +17 -0
- package/dist/artifacts-presentation.js.map +1 -0
- package/dist/artifacts-spreadsheet.d.ts +3 -0
- package/dist/artifacts-spreadsheet.js +17 -0
- package/dist/artifacts-spreadsheet.js.map +1 -0
- package/dist/artifacts.d.ts +2 -0
- package/dist/artifacts.js +170 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/chunk-6BBWWOOU.js +82 -0
- package/dist/chunk-6BBWWOOU.js.map +1 -0
- package/dist/{chunk-HFO4ERGQ.js → chunk-724BW4TW.js} +586 -35
- package/dist/chunk-724BW4TW.js.map +1 -0
- package/dist/chunk-7I2KB3OK.js +3895 -0
- package/dist/chunk-7I2KB3OK.js.map +1 -0
- package/dist/chunk-7WCLAEFV.js +2828 -0
- package/dist/chunk-7WCLAEFV.js.map +1 -0
- package/dist/{chunk-U3CSCMWA.js → chunk-FK6VG4LL.js} +9 -13
- package/dist/chunk-FK6VG4LL.js.map +1 -0
- package/dist/{chunk-SRFUT2ZU.js → chunk-FWS3KC3Z.js} +120 -64
- package/dist/chunk-FWS3KC3Z.js.map +1 -0
- package/dist/{chunk-EKZH6IDG.js → chunk-HDBG7XGO.js} +62 -1
- package/dist/chunk-HDBG7XGO.js.map +1 -0
- package/dist/chunk-HUIKIDM5.js +2148 -0
- package/dist/chunk-HUIKIDM5.js.map +1 -0
- package/dist/{chunk-LGVMUIRV.js → chunk-JAGDUCZQ.js} +1053 -390
- package/dist/chunk-JAGDUCZQ.js.map +1 -0
- package/dist/{chunk-LWR4MXSS.js → chunk-JR3QFY6B.js} +420 -35
- package/dist/chunk-JR3QFY6B.js.map +1 -0
- package/dist/chunk-JVYQRRC4.js +53 -0
- package/dist/chunk-JVYQRRC4.js.map +1 -0
- package/dist/chunk-KCGXPP5V.js +157 -0
- package/dist/chunk-KCGXPP5V.js.map +1 -0
- package/dist/{chunk-EB67J347.js → chunk-KZ73RL76.js} +111 -31
- package/dist/chunk-KZ73RL76.js.map +1 -0
- package/dist/chunk-PEI6RANI.js +3234 -0
- package/dist/chunk-PEI6RANI.js.map +1 -0
- package/dist/{chunk-3PB7MIT6.js → chunk-ROIRTM37.js} +220 -72
- package/dist/chunk-ROIRTM37.js.map +1 -0
- package/dist/chunk-VZTQ73XT.js +86 -0
- package/dist/chunk-VZTQ73XT.js.map +1 -0
- package/dist/{chunk-VCBFUSUZ.js → chunk-WSK7G5LE.js} +72 -4
- package/dist/chunk-WSK7G5LE.js.map +1 -0
- package/dist/{chunk-FGZUCXZF.js → chunk-WYA65Y3F.js} +16 -16
- package/dist/chunk-WYA65Y3F.js.map +1 -0
- package/dist/{chunk-6EDV6YFE.js → chunk-X4S56Y2H.js} +147 -35
- package/dist/chunk-X4S56Y2H.js.map +1 -0
- package/dist/client.d.ts +7 -1
- package/dist/clipboard.d.ts +1 -0
- package/dist/clipboard.js +7 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/commands/index.d.ts +3 -3
- package/dist/commands/registry.d.ts +1 -1
- package/dist/commands/types.d.ts +1 -1
- package/dist/components/approval-surface.d.ts +2 -2
- package/dist/components/artifacts/artifact-surface.d.ts +18 -0
- package/dist/components/artifacts/document-editor.d.ts +172 -0
- package/dist/components/artifacts/editable-artifact-ui.d.ts +13 -0
- package/dist/components/artifacts/editable-artifact-workbench.d.ts +49 -0
- package/dist/components/artifacts/editable-document.d.ts +24 -0
- package/dist/components/artifacts/editable-presentation.d.ts +24 -0
- package/dist/components/artifacts/editable-spreadsheet.d.ts +32 -0
- package/dist/components/artifacts/index.d.ts +8 -0
- package/dist/components/artifacts/presentation-editor.d.ts +297 -0
- package/dist/components/artifacts/spreadsheet-canvas.d.ts +120 -0
- package/dist/components/artifacts/spreadsheet-grid.d.ts +113 -0
- package/dist/components/browser-viewer.d.ts +29 -0
- package/dist/components/chat-composer.d.ts +13 -8
- package/dist/components/code-editor.d.ts +25 -3
- package/dist/components/command-palette.d.ts +2 -2
- package/dist/components/composer-transcription-control.d.ts +4 -2
- package/dist/components/composer.d.ts +29 -15
- package/dist/components/computer-viewer.d.ts +23 -0
- package/dist/components/copy-button.d.ts +2 -2
- package/dist/components/desktop-viewer.d.ts +25 -21
- package/dist/components/diff-view.d.ts +1 -1
- package/dist/components/enrollment-consent.d.ts +1 -1
- package/dist/components/enrollment-device-flow.d.ts +1 -1
- package/dist/components/file-browser.d.ts +2 -2
- package/dist/components/fleet-tile.d.ts +1 -1
- package/dist/components/generated-video-player.d.ts +10 -0
- package/dist/components/human-input-form.d.ts +1 -1
- package/dist/components/human-input-surface.d.ts +2 -2
- package/dist/components/interactive-workbench-viewers.d.ts +2 -0
- package/dist/components/machine-card.d.ts +2 -2
- package/dist/components/machine-dock-bar.d.ts +3 -3
- package/dist/components/machine-health-pill.d.ts +2 -2
- package/dist/components/machine-input-display.d.ts +1 -1
- package/dist/components/machine-metrics.d.ts +2 -2
- package/dist/components/machine-status-pill.d.ts +4 -4
- package/dist/components/machines/health.d.ts +1 -1
- package/dist/components/machines/machine-detail.d.ts +5 -3
- package/dist/components/machines/metric-history-chart.d.ts +1 -1
- package/dist/components/machines/metric-sparkline.d.ts +2 -2
- package/dist/components/machines/series.d.ts +2 -2
- package/dist/components/machines-dashboard.d.ts +5 -5
- package/dist/components/markdown.d.ts +1 -1
- package/dist/components/message-timeline.d.ts +22 -5
- package/dist/components/model-picker.d.ts +2 -2
- package/dist/components/model-policy-picker.d.ts +7 -7
- package/dist/components/pierre-diff.d.ts +1 -1
- package/dist/components/pierre-file.d.ts +1 -1
- package/dist/components/queue-draft-policy.d.ts +1 -1
- package/dist/components/queue-surface-implementation.d.ts +3 -3
- package/dist/components/queue-surface-state.d.ts +4 -4
- package/dist/components/queue-surface.d.ts +5 -5
- package/dist/components/sandbox-files.d.ts +5 -5
- package/dist/components/sandbox-terminal.d.ts +50 -4
- package/dist/components/sandbox-workspace.d.ts +30 -10
- package/dist/components/session-chrome.d.ts +4 -4
- package/dist/components/session-status.d.ts +2 -2
- package/dist/components/timeline-annotation-selection.d.ts +9 -0
- package/dist/components/timeline-annotations-dialog.d.ts +16 -0
- package/dist/components/timeline-annotations.d.ts +13 -0
- package/dist/components/tooltip.d.ts +4 -4
- package/dist/components/user-message-body.d.ts +2 -2
- package/dist/components/workbench-changes.d.ts +2 -2
- package/dist/components/workspace-dock.d.ts +3 -1
- package/dist/composer.d.ts +11 -11
- package/dist/composer.js +7 -7
- package/dist/hooks/internal.d.ts +7 -1
- package/dist/hooks/use-attached-browsers.d.ts +21 -0
- package/dist/hooks/use-available-models.d.ts +2 -2
- package/dist/hooks/use-billing-usage.d.ts +1 -1
- package/dist/hooks/use-browser-frame-stream.d.ts +28 -0
- package/dist/hooks/use-browser-identities.d.ts +26 -0
- package/dist/hooks/use-browser-session.d.ts +28 -0
- package/dist/hooks/use-browser-sessions.d.ts +32 -0
- package/dist/hooks/use-codex-accounts.d.ts +3 -3
- package/dist/hooks/use-composer.d.ts +36 -9
- package/dist/hooks/use-computer-frame-stream.d.ts +24 -0
- package/dist/hooks/use-computer-session.d.ts +28 -0
- package/dist/hooks/use-computer-sessions.d.ts +28 -0
- package/dist/hooks/use-desktop-stream.d.ts +1 -1
- package/dist/hooks/use-environments.d.ts +11 -5
- package/dist/hooks/use-file-attachments.d.ts +1 -1
- package/dist/hooks/use-goal.d.ts +2 -2
- package/dist/hooks/use-human-input.d.ts +2 -2
- package/dist/hooks/use-last-started-turn-policy.d.ts +2 -2
- package/dist/hooks/use-machine-chip.d.ts +2 -2
- package/dist/hooks/use-machines.d.ts +10 -3
- package/dist/hooks/use-packs.d.ts +7 -2
- package/dist/hooks/use-rigs.d.ts +1 -1
- package/dist/hooks/use-sandbox-files.d.ts +25 -4
- package/dist/hooks/use-sandbox-git.d.ts +13 -5
- package/dist/hooks/use-sandbox-terminal.d.ts +1 -1
- package/dist/hooks/use-scheduled-tasks.d.ts +1 -1
- package/dist/hooks/use-session-capabilities.d.ts +5 -4
- package/dist/hooks/use-session-control.d.ts +1 -1
- package/dist/hooks/use-session-events.d.ts +2 -2
- package/dist/hooks/use-session-lineage.d.ts +1 -1
- package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
- package/dist/hooks/use-session.d.ts +2 -2
- package/dist/hooks/use-slash-commands.d.ts +1 -1
- package/dist/hooks/use-terminal-stream.d.ts +8 -2
- package/dist/hooks/use-transcription.d.ts +2 -2
- package/dist/hooks/use-turn-queue.d.ts +2 -2
- package/dist/hooks/use-video-artifact-playback.d.ts +9 -0
- package/dist/hooks/use-voice-input.d.ts +6 -4
- package/dist/hooks/use-workspace-capture.d.ts +1 -1
- package/dist/hooks/use-workspace-edit.d.ts +1 -1
- package/dist/hooks/use-workspace-sessions.d.ts +1 -1
- package/dist/hooks/use-workspaces.d.ts +1 -1
- package/dist/index.d.ts +158 -154
- package/dist/index.js +1718 -908
- package/dist/index.js.map +1 -1
- package/dist/interaction.d.ts +23 -0
- package/dist/interaction.js +36 -0
- package/dist/interaction.js.map +1 -0
- package/dist/interactive-workbench-viewers-KHNOHWQE.js +13 -0
- package/dist/interactive-workbench-viewers-KHNOHWQE.js.map +1 -0
- package/dist/lib/composer-responsive-context.d.ts +9 -0
- package/dist/lib/relay-wire.d.ts +4 -0
- package/dist/lib/sandbox-liveness.d.ts +9 -0
- package/dist/lib/terminal-capability.d.ts +5 -0
- package/dist/lib/use-portal-token-style.d.ts +14 -3
- package/dist/lib/xterm-theme.d.ts +1 -1
- package/dist/machines.d.ts +30 -30
- package/dist/machines.js +3 -3
- package/dist/provider.d.ts +4 -4
- package/dist/{queue-surface-implementation-J4XJFKRW.js → queue-surface-implementation-2KVJTYXH.js} +117 -64
- package/dist/queue-surface-implementation-2KVJTYXH.js.map +1 -0
- package/dist/realtime/dropdown-menu.d.ts +8 -8
- package/dist/realtime/realtime-control.d.ts +15 -6
- package/dist/realtime.d.ts +4 -4
- package/dist/realtime.js +30 -33
- package/dist/realtime.js.map +1 -1
- package/dist/session-context.d.ts +19 -1
- package/dist/session-ui.d.ts +14 -14
- package/dist/session-ui.js +6 -5
- package/dist/session.d.ts +28 -28
- package/dist/session.js +5 -5
- package/dist/timeline/activity-rail.d.ts +6 -3
- package/dist/timeline/disclosure-context.d.ts +1 -1
- package/dist/timeline/fleet-decision-projection.d.ts +1 -1
- package/dist/timeline/fleet-decision-row.d.ts +3 -3
- package/dist/timeline/index.d.ts +19 -19
- package/dist/timeline/parsers.d.ts +6 -3
- package/dist/timeline/projection.d.ts +3 -3
- package/dist/timeline/registry.d.ts +10 -1
- package/dist/timeline/screenshot-lightbox.d.ts +2 -2
- package/dist/timeline/shared.d.ts +21 -10
- package/dist/timeline/tool-diff.d.ts +2 -2
- package/dist/timeline/tool-renderers.d.ts +1 -1
- package/dist/timeline/turn-summary.d.ts +3 -3
- package/dist/timeline/types.d.ts +42 -2
- package/dist/timeline-annotation-selection-3L7LHGG2.js +187 -0
- package/dist/timeline-annotation-selection-3L7LHGG2.js.map +1 -0
- package/dist/timeline-annotations-dialog-U7EVLR75.js +196 -0
- package/dist/timeline-annotations-dialog-U7EVLR75.js.map +1 -0
- package/dist/voice-recording-store.d.ts +8 -2
- package/package.json +52 -7
- package/src/artifacts-document.ts +31 -0
- package/src/artifacts-presentation.ts +36 -0
- package/src/artifacts-spreadsheet.ts +21 -0
- package/src/artifacts.ts +86 -0
- package/src/client.ts +90 -1
- package/src/clipboard.ts +2 -0
- package/src/components/artifacts/artifact-surface.tsx +93 -0
- package/src/components/artifacts/document-editor.tsx +2255 -0
- package/src/components/artifacts/editable-artifact-ui.tsx +89 -0
- package/src/components/artifacts/editable-artifact-workbench.tsx +203 -0
- package/src/components/artifacts/editable-document.tsx +657 -0
- package/src/components/artifacts/editable-presentation.tsx +1020 -0
- package/src/components/artifacts/editable-spreadsheet.tsx +733 -0
- package/src/components/artifacts/index.ts +99 -0
- package/src/components/artifacts/presentation-editor.tsx +3148 -0
- package/src/components/artifacts/spreadsheet-canvas.ts +799 -0
- package/src/components/artifacts/spreadsheet-grid.tsx +2129 -0
- package/src/components/browser-viewer.tsx +1592 -0
- package/src/components/chat-composer.tsx +25 -2
- package/src/components/code-editor.tsx +90 -31
- package/src/components/command-palette.tsx +1 -1
- package/src/components/composer-transcription-control.tsx +51 -22
- package/src/components/composer.tsx +49 -23
- package/src/components/computer-viewer.tsx +1139 -0
- package/src/components/copy-button.tsx +1 -1
- package/src/components/desktop-viewer.tsx +103 -75
- package/src/components/file-browser.tsx +39 -17
- package/src/components/generated-video-player.tsx +89 -0
- package/src/components/human-input-form.tsx +2 -2
- package/src/components/interactive-workbench-viewers.ts +2 -0
- package/src/components/machine-card.tsx +1 -1
- package/src/components/machine-input-display.ts +3 -0
- package/src/components/machines/machine-detail.tsx +39 -15
- package/src/components/machines-dashboard.tsx +7 -6
- package/src/components/message-timeline.tsx +327 -37
- package/src/components/model-picker.tsx +2 -2
- package/src/components/model-policy-picker.tsx +16 -15
- package/src/components/queue-surface-implementation.tsx +135 -75
- package/src/components/queue-surface-state.tsx +2 -2
- package/src/components/sandbox-files.tsx +142 -62
- package/src/components/sandbox-terminal.tsx +119 -35
- package/src/components/sandbox-workspace.tsx +394 -228
- package/src/components/session-chrome.tsx +67 -27
- package/src/components/timeline-annotation-selection.tsx +221 -0
- package/src/components/timeline-annotations-dialog.tsx +213 -0
- package/src/components/timeline-annotations.tsx +84 -0
- package/src/components/tooltip.tsx +13 -16
- package/src/components/user-message-body.tsx +1 -1
- package/src/components/workbench-changes.tsx +192 -35
- package/src/components/workspace-dock.tsx +13 -5
- package/src/composer.ts +3 -0
- package/src/hooks/internal.ts +132 -38
- package/src/hooks/use-attached-browsers.ts +152 -0
- package/src/hooks/use-browser-frame-stream.ts +316 -0
- package/src/hooks/use-browser-identities.ts +225 -0
- package/src/hooks/use-browser-session.ts +476 -0
- package/src/hooks/use-browser-sessions.ts +281 -0
- package/src/hooks/use-codex-accounts.ts +4 -4
- package/src/hooks/use-composer.ts +769 -24
- package/src/hooks/use-computer-frame-stream.ts +311 -0
- package/src/hooks/use-computer-session.ts +442 -0
- package/src/hooks/use-computer-sessions.ts +245 -0
- package/src/hooks/use-environments.ts +24 -5
- package/src/hooks/use-file-attachments.ts +70 -32
- package/src/hooks/use-goal.ts +17 -5
- package/src/hooks/use-machine-chip.ts +5 -3
- package/src/hooks/use-machines.ts +79 -3
- package/src/hooks/use-packs.ts +51 -0
- package/src/hooks/use-sandbox-files.ts +382 -88
- package/src/hooks/use-sandbox-git.ts +208 -46
- package/src/hooks/use-sandbox-terminal.ts +3 -2
- package/src/hooks/use-session-capabilities.ts +94 -70
- package/src/hooks/use-session-events.ts +18 -4
- package/src/hooks/use-terminal-stream.ts +102 -23
- package/src/hooks/use-transcription.ts +4 -14
- package/src/hooks/use-turn-queue.ts +17 -5
- package/src/hooks/use-video-artifact-playback.ts +28 -0
- package/src/hooks/use-voice-input.ts +163 -19
- package/src/hooks/use-windowed-sections.ts +9 -7
- package/src/hooks/use-workspace-edit.ts +2 -1
- package/src/index.ts +21 -6
- package/src/interaction.ts +71 -0
- package/src/lib/composer-responsive-context.ts +15 -0
- package/src/lib/relay-wire.ts +4 -0
- package/src/lib/sandbox-liveness.ts +11 -0
- package/src/lib/terminal-capability.ts +10 -0
- package/src/lib/use-portal-token-style.ts +60 -15
- package/src/provider.tsx +52 -7
- package/src/realtime/dropdown-menu.tsx +15 -19
- package/src/realtime/realtime-control.tsx +16 -5
- package/src/session-context.ts +90 -0
- package/src/timeline/activity-rail.tsx +31 -6
- package/src/timeline/index.ts +4 -1
- package/src/timeline/parsers.ts +46 -20
- package/src/timeline/projection.ts +233 -13
- package/src/timeline/registry.ts +19 -0
- package/src/timeline/screenshot-lightbox.tsx +30 -9
- package/src/timeline/shared.tsx +59 -11
- package/src/timeline/tool-renderers.tsx +421 -24
- package/src/timeline/turn-summary.tsx +2 -2
- package/src/timeline/types.ts +58 -2
- package/src/voice-recording-store.ts +15 -0
- package/styles/compiled.css +5298 -0
- package/styles/compiled.d.ts +2 -0
- package/styles/effective-tokens.css +27 -0
- package/styles/index.css +18 -0
- package/styles/responsive.css +208 -0
- package/styles/responsive.d.ts +2 -0
- package/styles/tokens.css +50 -17
- package/dist/chunk-3PB7MIT6.js.map +0 -1
- package/dist/chunk-6EDV6YFE.js.map +0 -1
- package/dist/chunk-EB67J347.js.map +0 -1
- package/dist/chunk-EKZH6IDG.js.map +0 -1
- package/dist/chunk-FGZUCXZF.js.map +0 -1
- package/dist/chunk-HFO4ERGQ.js.map +0 -1
- package/dist/chunk-JB5725BI.js +0 -48
- package/dist/chunk-JB5725BI.js.map +0 -1
- package/dist/chunk-LGVMUIRV.js.map +0 -1
- package/dist/chunk-LWR4MXSS.js.map +0 -1
- package/dist/chunk-SRFUT2ZU.js.map +0 -1
- package/dist/chunk-U3CSCMWA.js.map +0 -1
- package/dist/chunk-VCBFUSUZ.js.map +0 -1
- package/dist/fleet-decision-projection-SLNZMS42.js +0 -241
- package/dist/fleet-decision-projection-SLNZMS42.js.map +0 -1
- package/dist/queue-surface-implementation-J4XJFKRW.js.map +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
export type SpreadsheetCanvasCellFormat = {
|
|
2
|
+
fill?: string | undefined;
|
|
3
|
+
font?: {
|
|
4
|
+
name?: string | undefined;
|
|
5
|
+
size?: number | undefined;
|
|
6
|
+
bold?: boolean | undefined;
|
|
7
|
+
italic?: boolean | undefined;
|
|
8
|
+
underline?: boolean | undefined;
|
|
9
|
+
color?: string | undefined;
|
|
10
|
+
} | undefined;
|
|
11
|
+
horizontalAlignment?: "left" | "center" | "right" | "justify" | undefined;
|
|
12
|
+
verticalAlignment?: "top" | "center" | "bottom" | undefined;
|
|
13
|
+
wrapText?: boolean | undefined;
|
|
14
|
+
};
|
|
15
|
+
/** One sparse, already-authorized cell projected into the renderer. */
|
|
16
|
+
export type SpreadsheetCanvasCell = {
|
|
17
|
+
row: number;
|
|
18
|
+
col: number;
|
|
19
|
+
value: unknown;
|
|
20
|
+
formula?: string | null | undefined;
|
|
21
|
+
format: SpreadsheetCanvasCellFormat;
|
|
22
|
+
};
|
|
23
|
+
export type SpreadsheetCanvasCoverage = {
|
|
24
|
+
rowStart: number;
|
|
25
|
+
rowEnd: number;
|
|
26
|
+
columnStart: number;
|
|
27
|
+
columnEnd: number;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* A bounded value projection. `coverage` is end-exclusive; omitting it means
|
|
31
|
+
* the source can answer for the entire sheet. A session-backed adapter can
|
|
32
|
+
* replace this object as viewport subscriptions advance without making the
|
|
33
|
+
* React layer or renderer own the canonical workbook model.
|
|
34
|
+
*/
|
|
35
|
+
export type SpreadsheetCanvasProjection = {
|
|
36
|
+
sheetId: string;
|
|
37
|
+
generationId: string | null;
|
|
38
|
+
revision: string | number;
|
|
39
|
+
coverage?: SpreadsheetCanvasCoverage | undefined;
|
|
40
|
+
cells: SpreadsheetCanvasCellSource;
|
|
41
|
+
valueAt: (cell: SpreadsheetCanvasCell) => unknown;
|
|
42
|
+
};
|
|
43
|
+
export type SpreadsheetCanvasCellSource = {
|
|
44
|
+
forEachInRange: (rowStart: number, rowEnd: number, columnStart: number, columnEnd: number, visit: (cell: SpreadsheetCanvasCell) => void) => void;
|
|
45
|
+
};
|
|
46
|
+
export type SpreadsheetCanvasAxis = {
|
|
47
|
+
count: number;
|
|
48
|
+
total: number;
|
|
49
|
+
offsetAt: (index: number) => number;
|
|
50
|
+
sizeAt: (index: number) => number;
|
|
51
|
+
indexAtOffset: (offset: number) => number;
|
|
52
|
+
};
|
|
53
|
+
export type SpreadsheetCanvasSelection = {
|
|
54
|
+
top: number;
|
|
55
|
+
bottom: number;
|
|
56
|
+
left: number;
|
|
57
|
+
right: number;
|
|
58
|
+
focusRow: number;
|
|
59
|
+
focusColumn: number;
|
|
60
|
+
};
|
|
61
|
+
export type SpreadsheetCanvasTheme = {
|
|
62
|
+
background: string;
|
|
63
|
+
headerBackground: string;
|
|
64
|
+
border: string;
|
|
65
|
+
foreground: string;
|
|
66
|
+
mutedForeground: string;
|
|
67
|
+
accent: string;
|
|
68
|
+
error: string;
|
|
69
|
+
fontFamily: string;
|
|
70
|
+
fontSize: number;
|
|
71
|
+
headerFontSize: number;
|
|
72
|
+
signature: string;
|
|
73
|
+
};
|
|
74
|
+
export type SpreadsheetCanvasPaint = {
|
|
75
|
+
canvas: HTMLCanvasElement;
|
|
76
|
+
projection: SpreadsheetCanvasProjection;
|
|
77
|
+
rows: SpreadsheetCanvasAxis;
|
|
78
|
+
columns: SpreadsheetCanvasAxis;
|
|
79
|
+
selection: SpreadsheetCanvasSelection;
|
|
80
|
+
logicalScrollLeft: number;
|
|
81
|
+
logicalScrollTop: number;
|
|
82
|
+
viewportWidth: number;
|
|
83
|
+
viewportHeight: number;
|
|
84
|
+
rowHeaderWidth: number;
|
|
85
|
+
columnHeaderHeight: number;
|
|
86
|
+
dimensionRevision: string | number;
|
|
87
|
+
devicePixelRatio: number;
|
|
88
|
+
theme: SpreadsheetCanvasTheme;
|
|
89
|
+
};
|
|
90
|
+
export type SpreadsheetCanvasPaintStats = {
|
|
91
|
+
cacheSize: number;
|
|
92
|
+
paintedTiles: number;
|
|
93
|
+
reusedTiles: number;
|
|
94
|
+
uncachedTiles: number;
|
|
95
|
+
devicePixelRatio: number;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* A row-major sparse index over stored worksheet cells. Empty cells never enter
|
|
99
|
+
* this structure, so a tile query costs O(log k + v), where v is the number of
|
|
100
|
+
* stored cells intersecting that tile.
|
|
101
|
+
*/
|
|
102
|
+
export declare class SparseSpreadsheetCellIndex {
|
|
103
|
+
readonly size: number;
|
|
104
|
+
private readonly rows;
|
|
105
|
+
constructor(entries: Iterable<SpreadsheetCanvasCell>);
|
|
106
|
+
forEachInRange(rowStart: number, rowEnd: number, columnStart: number, columnEnd: number, visit: (cell: SpreadsheetCanvasCell) => void): void;
|
|
107
|
+
}
|
|
108
|
+
export declare function spreadsheetCanvasDevicePixelRatio(value: number): number;
|
|
109
|
+
/** Caps backing-store allocation while retaining the full CSS viewport. */
|
|
110
|
+
export declare function spreadsheetCanvasBackingScale(width: number, height: number, devicePixelRatio: number): number;
|
|
111
|
+
/** Retained 2D tile renderer. Dynamic selection and headers are painted above cached body tiles. */
|
|
112
|
+
export declare class SpreadsheetCanvasRenderer {
|
|
113
|
+
private readonly tiles;
|
|
114
|
+
private generation;
|
|
115
|
+
private clock;
|
|
116
|
+
dispose(): void;
|
|
117
|
+
paint(input: SpreadsheetCanvasPaint): SpreadsheetCanvasPaintStats | null;
|
|
118
|
+
private paintTile;
|
|
119
|
+
private evictTiles;
|
|
120
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import type { Workbook, Worksheet } from "@opengeni/artifact-tool/reference";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
import { type SpreadsheetCanvasCellFormat, type SpreadsheetCanvasProjection } from "./spreadsheet-canvas.js";
|
|
4
|
+
type CellCoordinate = {
|
|
5
|
+
row: number;
|
|
6
|
+
col: number;
|
|
7
|
+
};
|
|
8
|
+
export type SpreadsheetSelection = {
|
|
9
|
+
sheetId: string;
|
|
10
|
+
anchor: CellCoordinate;
|
|
11
|
+
focus: CellCoordinate;
|
|
12
|
+
};
|
|
13
|
+
export type SpreadsheetCommit = {
|
|
14
|
+
sheetId: string;
|
|
15
|
+
cell: CellCoordinate;
|
|
16
|
+
input: string;
|
|
17
|
+
kind: "formula" | "value";
|
|
18
|
+
};
|
|
19
|
+
/** Row-major rectangular input submitted as one durable spreadsheet command. */
|
|
20
|
+
export type SpreadsheetRangeCommit = {
|
|
21
|
+
sheetId: string;
|
|
22
|
+
anchor: CellCoordinate;
|
|
23
|
+
rows: number;
|
|
24
|
+
columns: number;
|
|
25
|
+
inputs: readonly string[];
|
|
26
|
+
};
|
|
27
|
+
/** End-exclusive logical windows emitted at most once per animation frame. */
|
|
28
|
+
export type SpreadsheetViewport = {
|
|
29
|
+
sheetId: string;
|
|
30
|
+
rowStart: number;
|
|
31
|
+
rowEnd: number;
|
|
32
|
+
columnStart: number;
|
|
33
|
+
columnEnd: number;
|
|
34
|
+
overscanRowStart: number;
|
|
35
|
+
overscanRowEnd: number;
|
|
36
|
+
overscanColumnStart: number;
|
|
37
|
+
overscanColumnEnd: number;
|
|
38
|
+
logicalScrollLeft: number;
|
|
39
|
+
logicalScrollTop: number;
|
|
40
|
+
viewportWidth: number;
|
|
41
|
+
viewportHeight: number;
|
|
42
|
+
};
|
|
43
|
+
export type SpreadsheetGridProps = {
|
|
44
|
+
workbook: Workbook;
|
|
45
|
+
worksheet: Worksheet;
|
|
46
|
+
readOnly?: boolean | undefined;
|
|
47
|
+
/** Addressable rows in the interactive projection. Grows to include used data. */
|
|
48
|
+
rowCount?: number | undefined;
|
|
49
|
+
/** Addressable columns in the interactive projection. Grows to include used data. */
|
|
50
|
+
columnCount?: number | undefined;
|
|
51
|
+
overscanRows?: number | undefined;
|
|
52
|
+
overscanColumns?: number | undefined;
|
|
53
|
+
onSelectionChange?: ((selection: SpreadsheetSelection) => void) | undefined;
|
|
54
|
+
onCommit?: ((commit: SpreadsheetCommit) => void) | undefined;
|
|
55
|
+
onViewportChange?: ((viewport: SpreadsheetViewport) => void) | undefined;
|
|
56
|
+
className?: string | undefined;
|
|
57
|
+
};
|
|
58
|
+
export type SpreadsheetProjectionCell = {
|
|
59
|
+
value: unknown;
|
|
60
|
+
input: string;
|
|
61
|
+
format: SpreadsheetCanvasCellFormat;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Synchronous, bounded view state consumed by the React editor. Durable model
|
|
65
|
+
* ownership stays with the caller (legacy Workbook, SDK Worker, or another
|
|
66
|
+
* projection adapter); edits return through `commit` / `clear` ports.
|
|
67
|
+
*/
|
|
68
|
+
export type SpreadsheetGridProjection = SpreadsheetCanvasProjection & {
|
|
69
|
+
sheetName: string;
|
|
70
|
+
rowCount: number;
|
|
71
|
+
columnCount: number;
|
|
72
|
+
defaultRowHeight?: number | undefined;
|
|
73
|
+
defaultColumnWidth?: number | undefined;
|
|
74
|
+
rowHeights?: readonly (readonly [number, number])[] | undefined;
|
|
75
|
+
columnWidths?: readonly (readonly [number, number])[] | undefined;
|
|
76
|
+
dimensionRevision?: string | number | undefined;
|
|
77
|
+
usedRange?: {
|
|
78
|
+
row: number;
|
|
79
|
+
col: number;
|
|
80
|
+
rowCount: number;
|
|
81
|
+
colCount: number;
|
|
82
|
+
} | null | undefined;
|
|
83
|
+
readCell: (row: number, column: number) => SpreadsheetProjectionCell | null;
|
|
84
|
+
};
|
|
85
|
+
export type SpreadsheetProjectionGridProps = {
|
|
86
|
+
projection: SpreadsheetGridProjection;
|
|
87
|
+
readOnly?: boolean | undefined;
|
|
88
|
+
overscanRows?: number | undefined;
|
|
89
|
+
overscanColumns?: number | undefined;
|
|
90
|
+
onSelectionChange?: ((selection: SpreadsheetSelection) => void) | undefined;
|
|
91
|
+
commit?: ((commit: SpreadsheetCommit) => void | Promise<void>) | undefined;
|
|
92
|
+
commitRange?: ((commit: SpreadsheetRangeCommit) => void | Promise<void>) | undefined;
|
|
93
|
+
clear?: ((selection: SpreadsheetSelection) => void | Promise<void>) | undefined;
|
|
94
|
+
onCommandError?: ((error: Error) => void) | undefined;
|
|
95
|
+
onViewportChange?: ((viewport: SpreadsheetViewport) => void) | undefined;
|
|
96
|
+
className?: string | undefined;
|
|
97
|
+
};
|
|
98
|
+
export type SpreadsheetArtifactSurfaceProps = Omit<SpreadsheetGridProps, "worksheet"> & {
|
|
99
|
+
title?: string | undefined;
|
|
100
|
+
subtitle?: ReactNode | undefined;
|
|
101
|
+
actions?: ReactNode | undefined;
|
|
102
|
+
initialSheetId?: string | undefined;
|
|
103
|
+
allowAddSheet?: boolean | undefined;
|
|
104
|
+
};
|
|
105
|
+
/** A reusable workbook shell with first-class sheet switching. */
|
|
106
|
+
export declare function SpreadsheetArtifactSurface({ workbook, title, subtitle, actions, initialSheetId, allowAddSheet, readOnly, ...gridProps }: SpreadsheetArtifactSurfaceProps): import("react").JSX.Element;
|
|
107
|
+
export declare function SpreadsheetGrid({ workbook, worksheet, readOnly, rowCount: requestedRowCount, columnCount: requestedColumnCount, overscanRows, overscanColumns, onSelectionChange, onCommit, onViewportChange, className, }: SpreadsheetGridProps): import("react").JSX.Element;
|
|
108
|
+
/**
|
|
109
|
+
* Two-axis virtualized, accessible spreadsheet projection. The caller owns
|
|
110
|
+
* durable model state; React owns only viewport, selection, and edit state.
|
|
111
|
+
*/
|
|
112
|
+
export declare function SpreadsheetProjectionGrid({ projection, readOnly, overscanRows, overscanColumns, onSelectionChange, commit, commitRange, clear, onCommandError, onViewportChange, className, }: SpreadsheetProjectionGridProps): import("react").JSX.Element;
|
|
113
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ComputerSession } from "@opengeni/sdk/interaction";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
import { type BrowserFrameWebSocketFactory } from "../hooks/use-browser-frame-stream.js";
|
|
4
|
+
import type { EmbeddedBrowserInteractionClientOverride } from "../session-context.js";
|
|
5
|
+
export type BrowserViewerNotification = {
|
|
6
|
+
kind: "error" | "info";
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
9
|
+
export type BrowserViewerProps = EmbeddedBrowserInteractionClientOverride & {
|
|
10
|
+
/** The selected OpenGeni agent/session. Peer BrowserSessions stay discoverable. */
|
|
11
|
+
sessionId: string;
|
|
12
|
+
enabled?: boolean | undefined;
|
|
13
|
+
className?: string | undefined;
|
|
14
|
+
onNotify?: ((notification: BrowserViewerNotification) => void) | undefined;
|
|
15
|
+
/** Tests/demos only. Production uses the browser's native WebSocket. */
|
|
16
|
+
webSocketFactory?: BrowserFrameWebSocketFactory | undefined;
|
|
17
|
+
renderEmpty?: ((create: () => void, creating: boolean) => ReactNode) | undefined;
|
|
18
|
+
/** Optional host capability for a headed managed browser. Browser-only
|
|
19
|
+
* embedders remain valid and create headless sessions instead. */
|
|
20
|
+
createLinkedComputer?: ((name: string) => Promise<Pick<ComputerSession, "id" | "placement">>) | undefined;
|
|
21
|
+
/** Navigate to the exact linked ComputerSession; never a lookalike desktop. */
|
|
22
|
+
onOpenComputer?: ((computerSessionId: string) => void) | undefined;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Complete browser-native session surface: workspace discovery, agent relevance,
|
|
26
|
+
* browser/tab switching, live frames, semantic fallback, direct human input,
|
|
27
|
+
* address navigation, diagnostics, and reconnect. Closing it never closes the browser.
|
|
28
|
+
*/
|
|
29
|
+
export declare function BrowserViewer({ sessionId, enabled, className, onNotify, webSocketFactory, renderEmpty, createLinkedComputer, onOpenComputer, ...override }: BrowserViewerProps): import("react").JSX.Element | null;
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import type { ClientModel, EffectiveSessionControl } from "@opengeni/sdk";
|
|
2
2
|
import type { ClipboardEvent, ReactNode } from "react";
|
|
3
|
-
import type { SlashCommand } from "../commands/types";
|
|
4
|
-
import type { ComposerState } from "../hooks/use-composer";
|
|
5
|
-
import type { UseFileAttachmentsResult } from "../hooks/use-file-attachments";
|
|
6
|
-
import type { SlashCommandContext } from "../hooks/use-slash-commands";
|
|
7
|
-
import { OPEN_WORKSTREAM_CONTROL_EVENT } from "../workstream-control-event";
|
|
8
|
-
import { type ChatComposerMessages, type ComposerControlLinks } from "./composer";
|
|
9
|
-
import { type ComposerTranscriptionControlProps } from "./composer-transcription-control";
|
|
3
|
+
import type { SlashCommand } from "../commands/types.js";
|
|
4
|
+
import type { ComposerState } from "../hooks/use-composer.js";
|
|
5
|
+
import type { UseFileAttachmentsResult } from "../hooks/use-file-attachments.js";
|
|
6
|
+
import type { SlashCommandContext } from "../hooks/use-slash-commands.js";
|
|
7
|
+
import { OPEN_WORKSTREAM_CONTROL_EVENT } from "../workstream-control-event.js";
|
|
8
|
+
import { type ChatComposerMessages, type ComposerControlLinks, type ResponsiveBasis } from "./composer.js";
|
|
9
|
+
import { type ComposerTranscriptionControlProps } from "./composer-transcription-control.js";
|
|
10
10
|
export { OPEN_WORKSTREAM_CONTROL_EVENT };
|
|
11
11
|
export type ChatComposerProps = {
|
|
12
12
|
composer: ComposerState;
|
|
13
|
+
/**
|
|
14
|
+
* Measurement surface for responsive chrome. Defaults to the historical
|
|
15
|
+
* viewport breakpoints; opt into `container` for narrow embedded panels.
|
|
16
|
+
*/
|
|
17
|
+
responsiveBasis?: ResponsiveBasis | undefined;
|
|
13
18
|
/** Canonical workstream control, separate from lifecycle status. */
|
|
14
19
|
effectiveControl?: EffectiveSessionControl | null | undefined;
|
|
15
20
|
/** Waiting prompts already ahead of a normal Send. */
|
|
@@ -59,4 +64,4 @@ export type ChatComposerProps = {
|
|
|
59
64
|
* the public controller and compound primitives exported by the composer
|
|
60
65
|
* subpath, so custom and default layouts share one behavioral implementation.
|
|
61
66
|
*/
|
|
62
|
-
export declare function ChatComposer({ composer, effectiveControl, queuedAheadCount, canControlWorkspace, controlLinks, placeholder, disabled, autoFocus, hint, controlsLeading, controlsStart, actionsStart, attachButtonClassName, transcription, transcriptionClassName, transcriptionSuppressed, header, onPaste, attachments, models, selectedModel, onSelectModel, className, commands, commandContext, onClearView, messages, }: ChatComposerProps): import("react
|
|
67
|
+
export declare function ChatComposer({ composer, responsiveBasis, effectiveControl, queuedAheadCount, canControlWorkspace, controlLinks, placeholder, disabled, autoFocus, hint, controlsLeading, controlsStart, actionsStart, attachButtonClassName, transcription, transcriptionClassName, transcriptionSuppressed, header, onPaste, attachments, models, selectedModel, onSelectModel, className, commands, commandContext, onClearView, messages, }: ChatComposerProps): import("react").JSX.Element;
|
|
@@ -8,8 +8,13 @@ export type CodeEditorProps = {
|
|
|
8
8
|
path: string;
|
|
9
9
|
/** The decoded text contents to seed the editor with. */
|
|
10
10
|
initialContents: string;
|
|
11
|
-
/**
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Persist the current buffer against the exact contents it was edited from.
|
|
13
|
+
* The second argument is the immutable compare-and-swap baseline; hosts must
|
|
14
|
+
* not replace it with a newer remote snapshot or concurrent writes can be
|
|
15
|
+
* silently overwritten.
|
|
16
|
+
*/
|
|
17
|
+
onSave: (contents: string, expectedContents: string) => Promise<unknown>;
|
|
13
18
|
/** Explicitly overwrite after a visible expected-content conflict. */
|
|
14
19
|
onOverwrite?: ((contents: string) => Promise<unknown>) | undefined;
|
|
15
20
|
/** Re-read the selected file after a visible save conflict. */
|
|
@@ -27,6 +32,23 @@ export type CodeEditorProps = {
|
|
|
27
32
|
fallback?: ReactNode | undefined;
|
|
28
33
|
className?: string | undefined;
|
|
29
34
|
};
|
|
35
|
+
export type EditorBufferState = {
|
|
36
|
+
path: string;
|
|
37
|
+
value: string;
|
|
38
|
+
baseline: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Reconcile a remote file snapshot without destroying unsaved local work.
|
|
42
|
+
*
|
|
43
|
+
* A different path is a new document and always resets. For the same path, a
|
|
44
|
+
* clean editor follows the remote snapshot while a dirty editor retains both
|
|
45
|
+
* its local value and the original CAS baseline. The eventual save will then
|
|
46
|
+
* either succeed against that baseline or surface a typed conflict.
|
|
47
|
+
*/
|
|
48
|
+
export declare function reconcileEditorBuffer(current: EditorBufferState, incoming: {
|
|
49
|
+
path: string;
|
|
50
|
+
contents: string;
|
|
51
|
+
}): EditorBufferState;
|
|
30
52
|
/**
|
|
31
53
|
* The EDITABLE single-file pane: CodeMirror 6 with a per-language grammar chosen
|
|
32
54
|
* from the filename, og-* themed, with dirty tracking and a save path wired to
|
|
@@ -39,5 +61,5 @@ export type CodeEditorProps = {
|
|
|
39
61
|
* `readOnly` suppresses every mutation path so a truncated/binary file can never
|
|
40
62
|
* be saved back (which would corrupt it by writing the truncated prefix).
|
|
41
63
|
*/
|
|
42
|
-
export declare function CodeEditor({ path, initialContents, onSave, onOverwrite, onReload, onEditIntent, readOnly, themeType, loading, fallback, className, }: CodeEditorProps): import("react
|
|
64
|
+
export declare function CodeEditor({ path, initialContents, onSave, onOverwrite, onReload, onEditIntent, readOnly, themeType, loading, fallback, className, }: CodeEditorProps): import("react").JSX.Element;
|
|
43
65
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SlashCommand } from "../commands/types";
|
|
1
|
+
import type { SlashCommand } from "../commands/types.js";
|
|
2
2
|
export type CommandPaletteProps = {
|
|
3
3
|
open: boolean;
|
|
4
4
|
items: SlashCommand[];
|
|
@@ -22,4 +22,4 @@ export type CommandPaletteProps = {
|
|
|
22
22
|
* the opengeni#46 design tokens. Full keyboard nav lives in useSlashCommands;
|
|
23
23
|
* this component is presentational + aria.
|
|
24
24
|
*/
|
|
25
|
-
export declare function CommandPalette({ open, items, highlight, onHighlight, onRun, argHintText, listboxId, label, dangerLabel, }: CommandPaletteProps): import("react
|
|
25
|
+
export declare function CommandPalette({ open, items, highlight, onHighlight, onRun, argHintText, listboxId, label, dangerLabel, }: CommandPaletteProps): import("react").JSX.Element;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import type { ClientVoiceInputConfig, OpenGeniClient, TranscriptionAdapter, WorkspaceTranscriptionPolicy } from "@opengeni/sdk";
|
|
2
|
-
import type { VoiceRecordingStore } from "../voice-recording-store";
|
|
2
|
+
import type { VoiceRecordingStore } from "../voice-recording-store.js";
|
|
3
3
|
export type ComposerTranscriptionMessages = {
|
|
4
4
|
start: string;
|
|
5
5
|
stop: string;
|
|
6
6
|
cancel: string;
|
|
7
7
|
retry: string;
|
|
8
|
+
pauseRetrying: string;
|
|
8
9
|
requestingPermission: string;
|
|
9
10
|
recording: string;
|
|
10
11
|
saving: string;
|
|
11
12
|
transcribing: string;
|
|
13
|
+
retrying: string;
|
|
12
14
|
recovered: string;
|
|
13
15
|
recoveredTranscript: string;
|
|
14
16
|
insertRecoveredTranscript: string;
|
|
@@ -48,4 +50,4 @@ export type ComposerTranscriptionControlProps = {
|
|
|
48
50
|
suppressed?: boolean | undefined;
|
|
49
51
|
};
|
|
50
52
|
/** One provider-neutral microphone control for the nearest editable composer. */
|
|
51
|
-
export declare function ComposerTranscriptionControl({ client, workspaceId, capability, workspaceEnabled, messages: overrides, className, createRecordingStore, createOwnerId, suppressed, }: ComposerTranscriptionControlProps): import("react
|
|
53
|
+
export declare function ComposerTranscriptionControl({ client, workspaceId, capability, workspaceEnabled, messages: overrides, className, createRecordingStore, createOwnerId, suppressed, }: ComposerTranscriptionControlProps): import("react").JSX.Element;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { ClientModel, EffectiveSessionControl } from "@opengeni/sdk";
|
|
2
2
|
import { type ButtonHTMLAttributes, type ChangeEvent, type ClipboardEvent, type ComponentPropsWithoutRef, type DragEvent, type KeyboardEvent, type ReactNode, type RefObject } from "react";
|
|
3
|
-
import type { Notice, SlashCommand } from "../commands/types";
|
|
4
|
-
import type { ComposerState } from "../hooks/use-composer";
|
|
5
|
-
import type { UseFileAttachmentsResult } from "../hooks/use-file-attachments";
|
|
6
|
-
import { type ConfirmState, type SlashCommandContext } from "../hooks/use-slash-commands";
|
|
7
|
-
import type
|
|
8
|
-
import {
|
|
3
|
+
import type { Notice, SlashCommand } from "../commands/types.js";
|
|
4
|
+
import type { ComposerState } from "../hooks/use-composer.js";
|
|
5
|
+
import type { UseFileAttachmentsResult } from "../hooks/use-file-attachments.js";
|
|
6
|
+
import { type ConfirmState, type SlashCommandContext } from "../hooks/use-slash-commands.js";
|
|
7
|
+
import { type ResponsiveBasis } from "../lib/composer-responsive-context.js";
|
|
8
|
+
import type { PickerModelRow } from "../model-policy.js";
|
|
9
|
+
import { OPEN_WORKSTREAM_CONTROL_EVENT } from "../workstream-control-event.js";
|
|
9
10
|
export { OPEN_WORKSTREAM_CONTROL_EVENT };
|
|
11
|
+
export type { ResponsiveBasis } from "../lib/composer-responsive-context.js";
|
|
10
12
|
export type ComposerDelivery = Pick<ComposerState, "value" | "setValue" | "send" | "steer" | "sending" | "canSend" | "error" | "clearError">;
|
|
11
13
|
export type ComposerDraftState = Pick<ComposerState, "draftConflict" | "draftSaving" | "resolveDraftConflict" | "restoredResources" | "removeRestoredResource">;
|
|
12
14
|
export type ComposerControlState = Pick<ComposerState, "pause" | "pausing" | "resume" | "resumeScope" | "resuming">;
|
|
@@ -201,7 +203,7 @@ export declare function useChatComposerController({ delivery, draft, control, ef
|
|
|
201
203
|
handleDragOver: (event: DragEvent<HTMLDivElement>) => void;
|
|
202
204
|
handleDragLeave: (event: DragEvent<HTMLDivElement>) => void;
|
|
203
205
|
handleDrop: (event: DragEvent<HTMLDivElement>) => void;
|
|
204
|
-
palette: import("
|
|
206
|
+
palette: import("../index.js").UseSlashCommandsResult;
|
|
205
207
|
paletteEnabled: boolean;
|
|
206
208
|
commandDraftBlocked: boolean;
|
|
207
209
|
confirmState: ConfirmState;
|
|
@@ -227,27 +229,39 @@ export declare function useChatComposer(): ChatComposerContextValue;
|
|
|
227
229
|
export type ComposerRootProps = Omit<ComponentPropsWithoutRef<"div">, "children"> & {
|
|
228
230
|
controller: ChatComposerController;
|
|
229
231
|
children: ReactNode;
|
|
232
|
+
/**
|
|
233
|
+
* Measurement surface for responsive composer chrome. `viewport` preserves
|
|
234
|
+
* the existing breakpoint behavior; `container` responds to this root's
|
|
235
|
+
* inline size and also bounds composer-owned portalled menus to it.
|
|
236
|
+
*/
|
|
237
|
+
responsiveBasis?: ResponsiveBasis | undefined;
|
|
230
238
|
};
|
|
231
239
|
export declare const Root: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "children"> & {
|
|
232
240
|
controller: ChatComposerController;
|
|
233
241
|
children: ReactNode;
|
|
242
|
+
/**
|
|
243
|
+
* Measurement surface for responsive composer chrome. `viewport` preserves
|
|
244
|
+
* the existing breakpoint behavior; `container` responds to this root's
|
|
245
|
+
* inline size and also bounds composer-owned portalled menus to it.
|
|
246
|
+
*/
|
|
247
|
+
responsiveBasis?: ResponsiveBasis | undefined;
|
|
234
248
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
235
249
|
export type ComposerFrameProps = ComponentPropsWithoutRef<"div">;
|
|
236
250
|
export declare const Frame: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
237
251
|
export type ComposerCommandPaletteProps = {
|
|
238
252
|
className?: string | undefined;
|
|
239
253
|
};
|
|
240
|
-
export declare function CommandPalette({ className }: ComposerCommandPaletteProps): import("react
|
|
254
|
+
export declare function CommandPalette({ className }: ComposerCommandPaletteProps): import("react").JSX.Element | null;
|
|
241
255
|
type OwnedSurfaceProps = "onDragOver" | "onDragLeave" | "onDrop";
|
|
242
256
|
export type ComposerSurfaceProps = Omit<ComponentPropsWithoutRef<"div">, OwnedSurfaceProps>;
|
|
243
257
|
export declare const Surface: import("react").ForwardRefExoticComponent<ComposerSurfaceProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
244
|
-
export declare function PausedState(): import("react
|
|
245
|
-
export declare function RestoredResources(): import("react
|
|
246
|
-
export declare function Attachments(): import("react
|
|
258
|
+
export declare function PausedState(): import("react").JSX.Element | null;
|
|
259
|
+
export declare function RestoredResources(): import("react").JSX.Element | null;
|
|
260
|
+
export declare function Attachments(): import("react").JSX.Element | null;
|
|
247
261
|
type OwnedInputProps = "value" | "defaultValue" | "onChange" | "onKeyDown" | "onPaste" | "disabled" | "aria-autocomplete" | "aria-controls" | "aria-activedescendant" | "aria-keyshortcuts";
|
|
248
262
|
export type ComposerInputProps = Omit<ComponentPropsWithoutRef<"textarea">, OwnedInputProps>;
|
|
249
263
|
export declare const Input: import("react").ForwardRefExoticComponent<ComposerInputProps & import("react").RefAttributes<HTMLTextAreaElement>>;
|
|
250
|
-
export declare function Confirmation(): import("react
|
|
264
|
+
export declare function Confirmation(): import("react").JSX.Element | null;
|
|
251
265
|
export type ComposerFooterProps = ComponentPropsWithoutRef<"div">;
|
|
252
266
|
export declare const Footer: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
253
267
|
export type ComposerControlsProps = ComponentPropsWithoutRef<"span">;
|
|
@@ -276,10 +290,10 @@ export type ComposerModelPickerProps = {
|
|
|
276
290
|
/** Filter to Codex models for remote_v2-locked sessions. */
|
|
277
291
|
codexOnly?: boolean | undefined;
|
|
278
292
|
};
|
|
279
|
-
export declare function ModelPicker({ models, rows, value, onChange, label, className, codexOnly, }: ComposerModelPickerProps): import("react
|
|
293
|
+
export declare function ModelPicker({ models, rows, value, onChange, label, className, codexOnly, }: ComposerModelPickerProps): import("react").JSX.Element;
|
|
280
294
|
export type ComposerPauseButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, OwnedButtonProps>;
|
|
281
295
|
export declare const PauseButton: import("react").ForwardRefExoticComponent<ComposerPauseButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
282
296
|
export type ComposerSendButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, OwnedButtonProps>;
|
|
283
297
|
export declare const SendButton: import("react").ForwardRefExoticComponent<ComposerSendButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
284
|
-
export declare function Help(): import("react
|
|
285
|
-
export declare function Status(): import("react
|
|
298
|
+
export declare function Help(): import("react").JSX.Element;
|
|
299
|
+
export declare function Status(): import("react").JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type ComputerFrameWebSocketFactory } from "../hooks/use-computer-frame-stream.js";
|
|
3
|
+
import type { EmbeddedComputerInteractionClientOverride } from "../session-context.js";
|
|
4
|
+
export type ComputerViewerNotification = {
|
|
5
|
+
kind: "error" | "info";
|
|
6
|
+
message: string;
|
|
7
|
+
};
|
|
8
|
+
export type ComputerViewerProps = EmbeddedComputerInteractionClientOverride & {
|
|
9
|
+
/** Selected OpenGeni agent/session. Peer ComputerSessions remain visible. */
|
|
10
|
+
sessionId: string;
|
|
11
|
+
enabled?: boolean | undefined;
|
|
12
|
+
className?: string | undefined;
|
|
13
|
+
onNotify?: ((notification: ComputerViewerNotification) => void) | undefined;
|
|
14
|
+
/** Tests/demos only. Production uses the browser's native WebSocket. */
|
|
15
|
+
webSocketFactory?: ComputerFrameWebSocketFactory | undefined;
|
|
16
|
+
renderEmpty?: ((create: () => void, creating: boolean) => ReactNode) | undefined;
|
|
17
|
+
/** Host navigation request for one exact ComputerSession. */
|
|
18
|
+
requestedComputerSessionId?: string | null | undefined;
|
|
19
|
+
requestedComputerRequestId?: string | number | null | undefined;
|
|
20
|
+
};
|
|
21
|
+
/** Full ComputerSession surface: workspace discovery, peer switching, app/window/
|
|
22
|
+
* screen navigation, semantic controls, exact-frame input, and live media. */
|
|
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;
|
|
@@ -15,7 +15,7 @@ export type CopyButtonProps = {
|
|
|
15
15
|
* Ghost icon copy control — no chrome box, no "Copy code" label.
|
|
16
16
|
* Copy → check flash. Hover-reveal via `group/copy` on a parent.
|
|
17
17
|
*/
|
|
18
|
-
export declare function CopyButton({ text, label, className, reveal, }: CopyButtonProps): import("react
|
|
18
|
+
export declare function CopyButton({ text, label, className, reveal, }: CopyButtonProps): import("react").JSX.Element;
|
|
19
19
|
/** Hover-reveal chrome around a message / turn so {@link CopyButton} can fade in. */
|
|
20
20
|
export declare function CopyHoverFrame({ children, className, copyText, label, align, trailing, }: {
|
|
21
21
|
children: ReactNode;
|
|
@@ -25,4 +25,4 @@ export declare function CopyHoverFrame({ children, className, copyText, label, a
|
|
|
25
25
|
align?: "start" | "end" | undefined;
|
|
26
26
|
/** Optional footer meta (e.g. sent/finished clock) — immediately after the copy control. */
|
|
27
27
|
trailing?: ReactNode | undefined;
|
|
28
|
-
}): import("react
|
|
28
|
+
}): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CapabilityUnavailableReason, DesktopRfbFactory, DesktopStreamCapability } from "@opengeni/sdk";
|
|
2
2
|
import { type ReactNode } from "react";
|
|
3
|
-
import type { DesktopWebSocketFactory } from "../hooks/use-relay-frame-stream";
|
|
3
|
+
import type { DesktopWebSocketFactory } from "../hooks/use-relay-frame-stream.js";
|
|
4
4
|
export type DesktopViewerProps = {
|
|
5
5
|
/** The desktop cell of the negotiated capabilities (`capabilities.DesktopStream`). */
|
|
6
6
|
capability: DesktopStreamCapability | null;
|
|
@@ -20,22 +20,26 @@ export type DesktopViewerProps = {
|
|
|
20
20
|
* Defaults to `new WebSocket(url)`. Mirrors `rfbFactory`. */
|
|
21
21
|
webSocketFactory?: DesktopWebSocketFactory | undefined;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* been given. Call `onAccept` to record consent (the host wires it to
|
|
26
|
-
* `client.acknowledgeStream` + a re-negotiate). When omitted, a default
|
|
27
|
-
* banner is shown.
|
|
23
|
+
* @deprecated Desktop acknowledgment is automatic. Retained as an ignored
|
|
24
|
+
* compatibility prop so existing embedders keep compiling.
|
|
28
25
|
*/
|
|
29
26
|
renderConsentGate?: ((onAccept: () => void, shared: boolean) => ReactNode) | undefined;
|
|
30
|
-
/** Called when the default consent gate's accept button is pressed. */
|
|
31
|
-
onAcknowledge?: (() => void) | undefined;
|
|
32
27
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*
|
|
28
|
+
* Called once when the viewer mounts. Hosts use this to engage the desktop
|
|
29
|
+
* holder immediately when the Desktop tab opens.
|
|
30
|
+
*/
|
|
31
|
+
onActivate?: (() => void) | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Called automatically when the server requires acknowledgment of the
|
|
34
|
+
* un-redacted (and possibly shared) pixel plane. The viewer shows its ordinary
|
|
35
|
+
* opening state while this completes; no click-through gate is rendered.
|
|
36
|
+
*/
|
|
37
|
+
onAcknowledge?: (() => void | Promise<void>) | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the host has the viewer attach engaged. Drives the cold-state
|
|
40
|
+
* behaviour: when watching, a cold-but-warmable lease AUTO-WARMS (and re-warms
|
|
41
|
+
* when the box drains) instead of dead-ending. Mounting the viewer counts as
|
|
42
|
+
* watching when this is omitted.
|
|
39
43
|
*/
|
|
40
44
|
watching?: boolean | undefined;
|
|
41
45
|
/**
|
|
@@ -43,8 +47,7 @@ export type DesktopViewerProps = {
|
|
|
43
47
|
* already been recorded — only the box drained). The host wires this to
|
|
44
48
|
* "engage the viewer attach + re-negotiate". Called automatically when a
|
|
45
49
|
* watched desktop is found cold-but-warmable, and behind the manual retry on
|
|
46
|
-
* the warming notice. Distinct from
|
|
47
|
-
* consent-bearing warm.
|
|
50
|
+
* the warming notice. Distinct from the automatic acknowledgment request.
|
|
48
51
|
*/
|
|
49
52
|
onWarm?: (() => void) | undefined;
|
|
50
53
|
/** Shown when transport is null (headless backend / degraded / disabled). */
|
|
@@ -77,9 +80,10 @@ export type DesktopViewerProps = {
|
|
|
77
80
|
* reason).
|
|
78
81
|
*
|
|
79
82
|
* Warming: a cold-but-warmable lease (`reason: "lease_cold"`) is NOT a dead end.
|
|
80
|
-
* When the
|
|
81
|
-
*
|
|
82
|
-
* cold it re-warms.
|
|
83
|
-
* keep a clear,
|
|
83
|
+
* When the viewer is mounted, it asks the host to engage the desktop and records
|
|
84
|
+
* any required acknowledgment automatically. A cold-but-warmable box then
|
|
85
|
+
* (re)warms through `onWarm`; if it later drains to cold it re-warms.
|
|
86
|
+
* Genuinely-unavailable surfaces (headless/policy/os/backend) keep a clear,
|
|
87
|
+
* static unavailable notice.
|
|
84
88
|
*/
|
|
85
|
-
export declare function DesktopViewer({ capability, interactive, showControlToggle, scaleViewport, rfbFactory, webSocketFactory,
|
|
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;
|
|
@@ -35,4 +35,4 @@ export type DiffViewProps = {
|
|
|
35
35
|
* (Shiki-highlighted, unified/split) with a plain-text fallback for a host
|
|
36
36
|
* without `@pierre/diffs`. Removed next major.
|
|
37
37
|
*/
|
|
38
|
-
export declare function DiffView({ diff, fallback, layout, themeType, isRepo, emptyState, className, }: DiffViewProps): import("react
|
|
38
|
+
export declare function DiffView({ diff, fallback, layout, themeType, isRepo, emptyState, className, }: DiffViewProps): import("react").JSX.Element;
|
|
@@ -30,4 +30,4 @@ export type EnrollmentConsentProps = {
|
|
|
30
30
|
* The danger framing is deliberate (§18 hardening: whole-machine = loud consent),
|
|
31
31
|
* never buried. Renders review / approving / approved / denied / error phases.
|
|
32
32
|
*/
|
|
33
|
-
export declare function EnrollmentConsent({ userCode, machine, phase, onApprove, onDeny, errorMessage, className, }: EnrollmentConsentProps): import("react
|
|
33
|
+
export declare function EnrollmentConsent({ userCode, machine, phase, onApprove, onDeny, errorMessage, className, }: EnrollmentConsentProps): import("react").JSX.Element;
|
|
@@ -24,4 +24,4 @@ export type EnrollmentDeviceFlowProps = {
|
|
|
24
24
|
* pending → authorized/denied/expired progression with a connection pill. This is
|
|
25
25
|
* the FIRST step of the IA flow (device-flow → Machines list → attach/swap).
|
|
26
26
|
*/
|
|
27
|
-
export declare function EnrollmentDeviceFlow({ userCode, verificationUri, verificationUriComplete, installCommand, phase, expiresInSeconds, onCopyCode, onCopyInstall, onOpenVerification, className, }: EnrollmentDeviceFlowProps): import("react
|
|
27
|
+
export declare function EnrollmentDeviceFlow({ userCode, verificationUri, verificationUriComplete, installCommand, phase, expiresInSeconds, onCopyCode, onCopyInstall, onOpenVerification, className, }: EnrollmentDeviceFlowProps): import("react").JSX.Element;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
-
import type { FileTreeNode, UseSandboxFilesResult } from "../hooks/use-sandbox-files";
|
|
2
|
+
import type { FileTreeNode, UseSandboxFilesResult } from "../hooks/use-sandbox-files.js";
|
|
3
3
|
export type FileBrowserProps = {
|
|
4
4
|
/** From `useSandboxFiles(...)`. */
|
|
5
5
|
result: UseSandboxFilesResult;
|
|
@@ -44,4 +44,4 @@ export type FileBrowserProps = {
|
|
|
44
44
|
* `renderNode` is still honoured as the Pierre-swap escape hatch for the row
|
|
45
45
|
* chrome; the manager scaffolding (toolbar, dnd, menu, inline inputs) wraps it.
|
|
46
46
|
*/
|
|
47
|
-
export declare function FileBrowser({ result, fallback, onSelectFile, selectedPath, renderNode, emptyState, editable, confirmDelete, className, }: FileBrowserProps): import("react
|
|
47
|
+
export declare function FileBrowser({ result, fallback, onSelectFile, selectedPath, renderNode, emptyState, editable, confirmDelete, className, }: FileBrowserProps): import("react").JSX.Element;
|
|
@@ -15,4 +15,4 @@ export declare function sessionDisplayTitle(session: Session): string;
|
|
|
15
15
|
* recency — dense but calm. Running sessions carry a breathing status dot
|
|
16
16
|
* and a faint accent edge so the live ones read at a glance.
|
|
17
17
|
*/
|
|
18
|
-
export declare function FleetTile({ session, title, subtitle, onOpen, className }: FleetTileProps): import("react
|
|
18
|
+
export declare function FleetTile({ session, title, subtitle, onOpen, className }: FleetTileProps): import("react").JSX.Element;
|