@opengeni/react 1.0.1 → 1.0.2-canary.37202341988001
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 +660 -21
- package/dist/accounts.d.ts +64 -0
- package/dist/accounts.js +822 -0
- package/dist/accounts.js.map +1 -0
- package/dist/approvals.d.ts +2 -1
- package/dist/artifacts-document.js +3 -2
- package/dist/artifacts-presentation.js +3 -2
- package/dist/artifacts-spreadsheet.js +2 -2
- package/dist/artifacts.d.ts +4 -1
- package/dist/artifacts.js +518 -42
- package/dist/artifacts.js.map +1 -1
- package/dist/browser-viewer-SHYKQRNX.js +16 -0
- package/dist/capability-catalog-row.d.ts +20 -0
- package/dist/capability-logo-fallback.d.ts +3 -0
- package/dist/chat-interactive-block-UGBTNB3L.js +11 -0
- package/dist/chat-interactive-block-UGBTNB3L.js.map +1 -0
- package/dist/chunk-26ZNDDLZ.js +453 -0
- package/dist/chunk-26ZNDDLZ.js.map +1 -0
- package/dist/chunk-3CTRFMAK.js +359 -0
- package/dist/chunk-3CTRFMAK.js.map +1 -0
- package/dist/chunk-447JLCBU.js +209 -0
- package/dist/chunk-447JLCBU.js.map +1 -0
- package/dist/chunk-4RVYOY4O.js +379 -0
- package/dist/chunk-4RVYOY4O.js.map +1 -0
- package/dist/chunk-5CVXZA3Y.js +292 -0
- package/dist/chunk-5CVXZA3Y.js.map +1 -0
- package/dist/chunk-5J4FOW6Q.js +108 -0
- package/dist/chunk-5J4FOW6Q.js.map +1 -0
- package/dist/chunk-742CZ3L3.js +481 -0
- package/dist/chunk-742CZ3L3.js.map +1 -0
- package/dist/chunk-A2PI6UMY.js +41 -0
- package/dist/chunk-A2PI6UMY.js.map +1 -0
- package/dist/{chunk-7WCLAEFV.js → chunk-A4UJB2MM.js} +37 -27
- package/dist/chunk-A4UJB2MM.js.map +1 -0
- package/dist/chunk-B3V6TG77.js +41 -0
- package/dist/chunk-B3V6TG77.js.map +1 -0
- package/dist/chunk-BRM6FVZA.js +302 -0
- package/dist/chunk-BRM6FVZA.js.map +1 -0
- package/dist/chunk-C5X5AJXK.js +182 -0
- package/dist/chunk-C5X5AJXK.js.map +1 -0
- package/dist/{chunk-6KLX2RH5.js → chunk-DO544OSV.js} +1075 -79
- package/dist/chunk-DO544OSV.js.map +1 -0
- package/dist/{chunk-R3AZOAB5.js → chunk-DYWBUX5Q.js} +29 -123
- package/dist/chunk-DYWBUX5Q.js.map +1 -0
- package/dist/{chunk-HA46CYQK.js → chunk-EESD3PY3.js} +792 -537
- package/dist/chunk-EESD3PY3.js.map +1 -0
- package/dist/{chunk-5UQPNLIO.js → chunk-EN3YTHKR.js} +4117 -3896
- package/dist/chunk-EN3YTHKR.js.map +1 -0
- package/dist/chunk-ERGYJIBB.js +21 -0
- package/dist/chunk-ERGYJIBB.js.map +1 -0
- package/dist/chunk-FZCP527Y.js +116 -0
- package/dist/chunk-FZCP527Y.js.map +1 -0
- package/dist/chunk-GIMRELBW.js +14 -0
- package/dist/chunk-GIMRELBW.js.map +1 -0
- package/dist/chunk-GYVRFZDY.js +2733 -0
- package/dist/chunk-GYVRFZDY.js.map +1 -0
- package/dist/{chunk-LLOLUHVG.js → chunk-HDJWDK7W.js} +1358 -2746
- package/dist/chunk-HDJWDK7W.js.map +1 -0
- package/dist/chunk-I7IWRQLN.js +1608 -0
- package/dist/chunk-I7IWRQLN.js.map +1 -0
- package/dist/chunk-IT4BJUGF.js +13055 -0
- package/dist/chunk-IT4BJUGF.js.map +1 -0
- package/dist/chunk-IWIDV7SB.js +1 -0
- package/dist/chunk-IWIDV7SB.js.map +1 -0
- package/dist/chunk-J2QWVSQY.js +312 -0
- package/dist/chunk-J2QWVSQY.js.map +1 -0
- package/dist/chunk-J6DBS4T3.js +371 -0
- package/dist/chunk-J6DBS4T3.js.map +1 -0
- package/dist/{chunk-B6WPZSTT.js → chunk-JIQYUGVL.js} +1331 -1163
- package/dist/chunk-JIQYUGVL.js.map +1 -0
- package/dist/chunk-JT4JW7BC.js +54 -0
- package/dist/chunk-JT4JW7BC.js.map +1 -0
- package/dist/chunk-K3HQAKQX.js +24 -0
- package/dist/chunk-K3HQAKQX.js.map +1 -0
- package/dist/{chunk-PEI6RANI.js → chunk-PNY3JKBJ.js} +309 -74
- package/dist/chunk-PNY3JKBJ.js.map +1 -0
- package/dist/chunk-RHREZ7BO.js +11 -0
- package/dist/chunk-RHREZ7BO.js.map +1 -0
- package/dist/chunk-RLUSC2WA.js +299 -0
- package/dist/chunk-RLUSC2WA.js.map +1 -0
- package/dist/{chunk-IGC6A2ZI.js → chunk-RSI7XYXL.js} +777 -246
- package/dist/chunk-RSI7XYXL.js.map +1 -0
- package/dist/chunk-SCOTPE2I.js +589 -0
- package/dist/chunk-SCOTPE2I.js.map +1 -0
- package/dist/{chunk-C5ZPSSS5.js → chunk-TKOTKRWY.js} +5 -4
- package/dist/{chunk-C5ZPSSS5.js.map → chunk-TKOTKRWY.js.map} +1 -1
- package/dist/chunk-TMYGL6X5.js +742 -0
- package/dist/chunk-TMYGL6X5.js.map +1 -0
- package/dist/chunk-UGLEYEMP.js +33 -0
- package/dist/chunk-UGLEYEMP.js.map +1 -0
- package/dist/chunk-UK4TINKT.js +27 -0
- package/dist/chunk-UK4TINKT.js.map +1 -0
- package/dist/chunk-UTRTG6LH.js +220 -0
- package/dist/chunk-UTRTG6LH.js.map +1 -0
- package/dist/chunk-WEHMPOXK.js +39 -0
- package/dist/chunk-WEHMPOXK.js.map +1 -0
- package/dist/chunk-WGXVEJO5.js +319 -0
- package/dist/chunk-WGXVEJO5.js.map +1 -0
- package/dist/chunk-WRHIZYZF.js +988 -0
- package/dist/chunk-WRHIZYZF.js.map +1 -0
- package/dist/{chunk-HUIKIDM5.js → chunk-WUISZ3WU.js} +223 -115
- package/dist/chunk-WUISZ3WU.js.map +1 -0
- package/dist/chunk-XCHWDJ22.js +107 -0
- package/dist/chunk-XCHWDJ22.js.map +1 -0
- package/dist/{chunk-KCGXPP5V.js → chunk-Y2PRMYLC.js} +11 -6
- package/dist/chunk-Y2PRMYLC.js.map +1 -0
- package/dist/chunk-YBXQDQFX.js +1772 -0
- package/dist/chunk-YBXQDQFX.js.map +1 -0
- package/dist/chunk-YM2DE7BQ.js +3124 -0
- package/dist/chunk-YM2DE7BQ.js.map +1 -0
- package/dist/{chunk-KZ73RL76.js → chunk-YQEAA6LT.js} +7 -3
- package/dist/chunk-YQEAA6LT.js.map +1 -0
- package/dist/chunk-YV4L3ILF.js +9 -0
- package/dist/chunk-YV4L3ILF.js.map +1 -0
- package/dist/chunk-ZYRGEKWS.js +216 -0
- package/dist/chunk-ZYRGEKWS.js.map +1 -0
- package/dist/client.d.ts +7 -4
- package/dist/clipboard.js +1 -0
- package/dist/commands/types.d.ts +2 -0
- package/dist/components/anthropic-mark.d.ts +3 -0
- package/dist/components/approval-surface.d.ts +15 -0
- package/dist/components/artifacts/artifact-chrome.d.ts +120 -0
- package/dist/components/artifacts/artifact-sandbox.d.ts +27 -0
- package/dist/components/artifacts/artifact-surface.d.ts +3 -1
- package/dist/components/artifacts/chat-interactive-block.d.ts +29 -0
- package/dist/components/artifacts/deferred-chat-media.d.ts +15 -0
- package/dist/components/artifacts/document-editor.d.ts +4 -2
- package/dist/components/artifacts/editable-artifact-ui.d.ts +2 -1
- package/dist/components/artifacts/editable-artifact-view.d.ts +46 -0
- package/dist/components/artifacts/editable-document.d.ts +1 -1
- package/dist/components/artifacts/editable-presentation.d.ts +2 -2
- package/dist/components/artifacts/editable-spreadsheet.d.ts +2 -1
- package/dist/components/artifacts/index.d.ts +8 -1
- package/dist/components/artifacts/inline-html-document.d.ts +2 -0
- package/dist/components/artifacts/latest-task-runner.d.ts +15 -0
- package/dist/components/artifacts/presentation-editor.d.ts +6 -2
- package/dist/components/artifacts/published-html-artifact-frame.d.ts +48 -3
- package/dist/components/artifacts/session-artifact-viewer.d.ts +39 -0
- package/dist/components/artifacts/site-view.d.ts +23 -0
- package/dist/components/artifacts/spreadsheet-general-display.d.ts +24 -0
- package/dist/components/artifacts/visualization-assets.gen.d.ts +2 -0
- package/dist/components/browser-select-control.d.ts +16 -0
- package/dist/components/browser-viewer.d.ts +10 -1
- package/dist/components/chat-composer.d.ts +21 -3
- package/dist/components/child-session-link.d.ts +5 -0
- package/dist/components/claude-mark.d.ts +3 -0
- package/dist/components/code-editor.d.ts +1 -4
- package/dist/components/composer.d.ts +45 -4
- package/dist/components/computer-viewer.d.ts +4 -1
- package/dist/components/copy-button.d.ts +3 -1
- package/dist/components/desktop-viewer.d.ts +1 -1
- package/dist/components/enrollment-consent.d.ts +6 -3
- package/dist/components/file-browser.d.ts +10 -1
- package/dist/components/fleet-tile.d.ts +2 -2
- package/dist/components/grok-mark.d.ts +26 -0
- package/dist/components/human-input-form.d.ts +21 -2
- package/dist/components/human-input-surface.d.ts +6 -3
- package/dist/components/machine-card.d.ts +4 -1
- package/dist/components/machines/machine-detail.d.ts +4 -1
- package/dist/components/machines/machine-operation-policy.d.ts +11 -0
- package/dist/components/machines-dashboard.d.ts +3 -1
- package/dist/components/markdown-table-layout.d.ts +12 -0
- package/dist/components/markdown.d.ts +47 -3
- package/dist/components/message-timeline.d.ts +72 -9
- package/dist/components/model-mark.d.ts +29 -0
- package/dist/components/model-policy-picker-menu.d.ts +9 -0
- package/dist/components/model-policy-picker.d.ts +62 -13
- package/dist/components/open-geni-chat.d.ts +58 -0
- package/dist/components/open-geni-links.d.ts +68 -0
- package/dist/components/openrouter-mark.d.ts +6 -0
- package/dist/components/pierre-file.d.ts +1 -1
- package/dist/components/preview-loading.d.ts +2 -0
- package/dist/components/queue-item-content.d.ts +9 -0
- package/dist/components/sandbox-files.d.ts +13 -2
- package/dist/components/sandbox-workspace.d.ts +43 -3
- package/dist/components/session-capability-frame.d.ts +35 -0
- package/dist/components/session-chrome.d.ts +66 -8
- package/dist/components/session-commands-panel.d.ts +6 -0
- package/dist/components/session-commands.d.ts +6 -0
- package/dist/components/session-connection-request.d.ts +8 -0
- package/dist/components/session-conversation.d.ts +89 -0
- package/dist/components/session-list.d.ts +36 -0
- package/dist/components/session-mcp-capability-card.d.ts +41 -0
- package/dist/components/session-proxy-scope.d.ts +21 -0
- package/dist/components/timeline-anchor.d.ts +24 -0
- package/dist/components/timeline-annotation-chrome.d.ts +25 -0
- package/dist/components/timeline-annotation-layout.d.ts +42 -0
- package/dist/components/timeline-annotation-markers.d.ts +8 -0
- package/dist/components/timeline-annotation-reveal-context.d.ts +4 -0
- package/dist/components/timeline-annotation-shared.d.ts +31 -0
- package/dist/components/timeline-annotations-dialog.d.ts +3 -2
- package/dist/components/timeline-annotations.d.ts +13 -3
- package/dist/components/timeline-reading-progress.d.ts +11 -0
- package/dist/components/timeline-search.d.ts +34 -0
- package/dist/components/timeline-settlement.d.ts +16 -0
- package/dist/components/tip-follow.d.ts +16 -0
- package/dist/components/usage-limit-notice.d.ts +49 -0
- package/dist/components/usage-member-list.d.ts +91 -0
- package/dist/components/usage-meter.d.ts +73 -0
- package/dist/components/use-viewer-menu-dismiss.d.ts +2 -0
- package/dist/components/user-message-body.d.ts +10 -1
- package/dist/components/workspace-dock.d.ts +6 -2
- package/dist/composer.d.ts +5 -4
- package/dist/composer.js +15 -9
- package/dist/computer-viewer-6SRGWRUX.js +19 -0
- package/dist/computer-viewer-6SRGWRUX.js.map +1 -0
- package/dist/connect-account-identity.d.ts +8 -0
- package/dist/connect-accounts.d.ts +15 -0
- package/dist/connect-chooser.d.ts +18 -0
- package/dist/connect-panel.d.ts +18 -0
- package/dist/connect-setup.d.ts +16 -0
- package/dist/connect.d.ts +21 -0
- package/dist/connect.js +2129 -0
- package/dist/connect.js.map +1 -0
- package/dist/connection-catalog.d.ts +38 -0
- package/dist/connection-discovery.d.ts +12 -0
- package/dist/connection-installed.d.ts +17 -0
- package/dist/connection-logo.d.ts +9 -0
- package/dist/connection-service-logo.d.ts +8 -0
- package/dist/connection-service-presentation.d.ts +13 -0
- package/dist/connection-skeleton.d.ts +5 -0
- package/dist/connection-type-picker.d.ts +6 -0
- package/dist/conversation-timeline.d.ts +5 -0
- package/dist/desktop.d.ts +7 -0
- package/dist/desktop.js +26 -0
- package/dist/desktop.js.map +1 -0
- package/dist/device-authorization.d.ts +23 -0
- package/dist/diffs.d.ts +8 -0
- package/dist/diffs.js +14 -0
- package/dist/diffs.js.map +1 -0
- package/dist/discovery-cache.d.ts +5 -0
- package/dist/editor.d.ts +7 -0
- package/dist/editor.js +21 -0
- package/dist/editor.js.map +1 -0
- package/dist/embedded-session-client.d.ts +23 -0
- package/dist/file-node-visibility.d.ts +15 -0
- package/dist/{fleet-decision-row-GGCAT4E4.js → fleet-decision-row-YZ3ZKWMM.js} +2 -1
- package/dist/fleet-decision-row-YZ3ZKWMM.js.map +1 -0
- package/dist/hooks/channel-cache.d.ts +23 -0
- package/dist/hooks/latest-question.d.ts +25 -0
- package/dist/hooks/shared-machines-list.d.ts +14 -0
- package/dist/hooks/use-attached-browsers.d.ts +2 -1
- package/dist/hooks/use-browser-frame-stream.d.ts +1 -1
- package/dist/hooks/use-browser-session.d.ts +12 -1
- package/dist/hooks/use-channels.d.ts +1 -0
- package/dist/hooks/use-codex-accounts.d.ts +25 -7
- package/dist/hooks/use-composer.d.ts +45 -9
- package/dist/hooks/use-computer-frame-stream.d.ts +1 -1
- package/dist/hooks/use-computer-input-posture.d.ts +13 -0
- package/dist/hooks/use-computer-session.d.ts +2 -0
- package/dist/hooks/use-connect.d.ts +22 -0
- package/dist/hooks/use-desktop-stream.d.ts +1 -1
- package/dist/hooks/use-file-attachments.d.ts +21 -2
- package/dist/hooks/use-machine-chip.d.ts +3 -3
- package/dist/hooks/use-machines.d.ts +19 -1
- package/dist/hooks/use-sandbox-files.d.ts +5 -1
- package/dist/hooks/use-session-background-commands.d.ts +14 -0
- package/dist/hooks/use-session-events.d.ts +30 -8
- package/dist/hooks/use-session-lineage.d.ts +4 -0
- package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
- package/dist/hooks/use-session.d.ts +6 -0
- package/dist/hooks/use-turn-queue.d.ts +12 -0
- package/dist/hooks/use-usage.d.ts +40 -0
- package/dist/hooks/use-workspace-edit.d.ts +4 -0
- package/dist/hooks/use-workspace-sessions.d.ts +27 -5
- package/dist/human-input.d.ts +3 -1
- package/dist/identity-link-accounts.d.ts +11 -0
- package/dist/identity-link-consent.d.ts +18 -0
- package/dist/index.d.ts +60 -17
- package/dist/index.js +2238 -6201
- package/dist/index.js.map +1 -1
- package/dist/interaction.d.ts +1 -1
- package/dist/interaction.js +35 -184
- package/dist/interaction.js.map +1 -1
- package/dist/latest-question-HTRIS4KJ.js +117 -0
- package/dist/latest-question-HTRIS4KJ.js.map +1 -0
- package/dist/lib/error-message.d.ts +7 -0
- package/dist/lib/format.d.ts +36 -2
- package/dist/lib/host-theme.d.ts +70 -0
- package/dist/lib/interaction-errors.d.ts +6 -0
- package/dist/lib/menu-styles.d.ts +22 -0
- package/dist/lib/pierre-diffs-loader.d.ts +20 -0
- package/dist/lib/workbench-peers.d.ts +36 -0
- package/dist/lib/xterm-theme.d.ts +7 -5
- package/dist/machines.d.ts +4 -2
- package/dist/machines.js +14 -4
- package/dist/markdown-table-layout-QXSLK4BY.js +106 -0
- package/dist/markdown-table-layout-QXSLK4BY.js.map +1 -0
- package/dist/mcp-connection-status.d.ts +14 -0
- package/dist/model-policy-picker-menu-M54ISBMN.js +14 -0
- package/dist/model-policy-picker-menu-M54ISBMN.js.map +1 -0
- package/dist/model-policy.d.ts +19 -3
- package/dist/model-policy.js +9 -1
- package/dist/older-history.d.ts +30 -0
- package/dist/platform-activity-row-627BFZ46.js +182 -0
- package/dist/platform-activity-row-627BFZ46.js.map +1 -0
- package/dist/plugin-details.d.ts +14 -0
- package/dist/plugin-discovery.d.ts +25 -0
- package/dist/provider.d.ts +13 -1
- package/dist/{queue-surface-implementation-2KVJTYXH.js → queue-surface-implementation-ZHFI5JBP.js} +131 -44
- package/dist/queue-surface-implementation-ZHFI5JBP.js.map +1 -0
- package/dist/realtime/realtime-control.d.ts +6 -3
- package/dist/realtime.js +133 -74
- package/dist/realtime.js.map +1 -1
- package/dist/sandbox-files-GORZOUUJ.js +20 -0
- package/dist/sandbox-files-GORZOUUJ.js.map +1 -0
- package/dist/session-auth-recommendation.d.ts +5 -0
- package/dist/session-capability-policy.d.ts +12 -0
- package/dist/session-ui.d.ts +30 -2
- package/dist/session-ui.js +85 -7
- package/dist/session-ui.js.map +1 -1
- package/dist/session.d.ts +8 -2
- package/dist/session.js +30 -19
- package/dist/sites-ui.d.ts +34 -0
- package/dist/sites.d.ts +3 -0
- package/dist/sites.js +11 -0
- package/dist/sites.js.map +1 -0
- package/dist/skill-discovery.d.ts +47 -0
- package/dist/terminal.d.ts +8 -0
- package/dist/terminal.js +31 -0
- package/dist/terminal.js.map +1 -0
- package/dist/timeline/activity-rail.d.ts +11 -2
- package/dist/timeline/allowance-exhausted-row.d.ts +24 -0
- package/dist/timeline/compaction-copy.d.ts +10 -0
- package/dist/timeline/entrance.d.ts +13 -1
- package/dist/timeline/genie-loading.d.ts +34 -0
- package/dist/timeline/index.d.ts +6 -2
- package/dist/timeline/knowledge-receipt.d.ts +17 -0
- package/dist/timeline/platform-activity-row.d.ts +14 -0
- package/dist/timeline/presented-image.d.ts +6 -0
- package/dist/timeline/projection.d.ts +31 -2
- package/dist/timeline/registry.d.ts +2 -0
- package/dist/timeline/retained-image.d.ts +18 -0
- package/dist/timeline/rolling-activity.d.ts +11 -0
- package/dist/timeline/screenshot-lightbox.d.ts +16 -1
- package/dist/timeline/shared.d.ts +8 -3
- package/dist/timeline/startup-preference.d.ts +3 -0
- package/dist/timeline/startup-timings.d.ts +4 -0
- package/dist/timeline/tool-display-name.d.ts +2 -1
- package/dist/timeline/turn-summary.d.ts +34 -3
- package/dist/timeline/types.d.ts +147 -7
- package/dist/timeline-annotation-markers-GNDHTGBD.js +165 -0
- package/dist/timeline-annotation-markers-GNDHTGBD.js.map +1 -0
- package/dist/timeline-annotation-selection-DMLMM2TX.js +241 -0
- package/dist/timeline-annotation-selection-DMLMM2TX.js.map +1 -0
- package/dist/timeline-annotations-dialog-ELRDBHTS.js +273 -0
- package/dist/timeline-annotations-dialog-ELRDBHTS.js.map +1 -0
- package/dist/types/machines.d.ts +2 -2
- package/dist/usage/allowance-copy.d.ts +25 -0
- package/dist/usage/summary.d.ts +35 -0
- package/dist/usage.d.ts +13 -0
- package/dist/usage.js +1074 -0
- package/dist/usage.js.map +1 -0
- package/package.json +44 -4
- package/src/accounts.tsx +1072 -0
- package/src/approvals.ts +8 -1
- package/src/artifacts.ts +42 -0
- package/src/assets/README.md +8 -0
- package/src/assets/gmail.ico +0 -0
- package/src/assets/outlook.ico +0 -0
- package/src/capability-catalog-row.tsx +94 -0
- package/src/capability-logo-fallback.ts +22 -0
- package/src/client.ts +22 -13
- package/src/commands/registry.ts +18 -15
- package/src/commands/types.ts +2 -0
- package/src/components/anthropic-mark.tsx +10 -0
- package/src/components/approval-surface.tsx +171 -37
- package/src/components/artifacts/artifact-chrome.tsx +413 -0
- package/src/components/artifacts/artifact-sandbox.tsx +185 -0
- package/src/components/artifacts/artifact-surface.tsx +39 -19
- package/src/components/artifacts/chat-interactive-block.tsx +260 -0
- package/src/components/artifacts/deferred-chat-media.tsx +67 -0
- package/src/components/artifacts/document-editor.tsx +141 -16
- package/src/components/artifacts/editable-artifact-ui.tsx +4 -2
- package/src/components/artifacts/editable-artifact-view.tsx +187 -0
- package/src/components/artifacts/editable-artifact-workbench.tsx +5 -2
- package/src/components/artifacts/editable-document.tsx +37 -36
- package/src/components/artifacts/editable-presentation.tsx +36 -18
- package/src/components/artifacts/editable-spreadsheet.tsx +5 -2
- package/src/components/artifacts/index.ts +44 -0
- package/src/components/artifacts/inline-html-document.ts +24 -0
- package/src/components/artifacts/latest-task-runner.ts +49 -0
- package/src/components/artifacts/presentation-editor.tsx +323 -67
- package/src/components/artifacts/published-html-artifact-frame.tsx +338 -5
- package/src/components/artifacts/session-artifact-viewer.tsx +376 -0
- package/src/components/artifacts/site-view.tsx +116 -0
- package/src/components/artifacts/spreadsheet-canvas.ts +5 -10
- package/src/components/artifacts/spreadsheet-general-display.ts +43 -0
- package/src/components/artifacts/spreadsheet-grid.tsx +12 -13
- package/src/components/artifacts/visualization-assets/base.css +1015 -0
- package/src/components/artifacts/visualization-assets/helpers.html +349 -0
- package/src/components/artifacts/visualization-assets.gen.ts +3 -0
- package/src/components/browser-select-control.tsx +312 -0
- package/src/components/browser-viewer.tsx +1054 -314
- package/src/components/chat-composer.tsx +131 -85
- package/src/components/child-session-link.tsx +27 -0
- package/src/components/claude-mark.tsx +10 -0
- package/src/components/code-editor.tsx +13 -16
- package/src/components/composer-transcription-control.tsx +7 -5
- package/src/components/composer.tsx +376 -49
- package/src/components/computer-viewer.tsx +1041 -329
- package/src/components/copy-button.tsx +13 -5
- package/src/components/desktop-viewer.tsx +1 -1
- package/src/components/enrollment-consent.tsx +65 -7
- package/src/components/enrollment-device-flow.tsx +1 -1
- package/src/components/file-browser.tsx +158 -34
- package/src/components/fleet-tile.tsx +8 -16
- package/src/components/generated-video-player.tsx +4 -2
- package/src/components/grok-mark.tsx +33 -0
- package/src/components/human-input-form.tsx +455 -114
- package/src/components/human-input-surface.tsx +18 -7
- package/src/components/interaction-intervention-banner.tsx +2 -2
- package/src/components/machine-card.tsx +119 -4
- package/src/components/machine-dock-bar.tsx +1 -1
- package/src/components/machine-input-display.ts +23 -2
- package/src/components/machines/machine-detail.tsx +52 -2
- package/src/components/machines/machine-operation-policy.tsx +179 -0
- package/src/components/machines-dashboard.tsx +8 -17
- package/src/components/markdown-table-layout.ts +132 -0
- package/src/components/markdown.tsx +473 -44
- package/src/components/message-timeline.tsx +2754 -665
- package/src/components/model-mark.tsx +90 -0
- package/src/components/model-picker.tsx +15 -4
- package/src/components/model-policy-picker-menu.tsx +424 -0
- package/src/components/model-policy-picker.tsx +337 -381
- package/src/components/open-geni-chat.tsx +338 -0
- package/src/components/open-geni-links.tsx +179 -0
- package/src/components/openrouter-mark.tsx +13 -0
- package/src/components/pierre-diff.tsx +41 -16
- package/src/components/pierre-file.tsx +36 -11
- package/src/components/preview-loading.tsx +154 -0
- package/src/components/queue-item-content.ts +14 -0
- package/src/components/queue-surface-implementation.tsx +132 -42
- package/src/components/queue-surface-state.tsx +3 -1
- package/src/components/sandbox-files.tsx +267 -35
- package/src/components/sandbox-terminal.tsx +48 -11
- package/src/components/sandbox-workspace.tsx +337 -135
- package/src/components/session-capability-frame.tsx +192 -0
- package/src/components/session-chrome.tsx +1027 -328
- package/src/components/session-commands-panel.tsx +126 -0
- package/src/components/session-commands.tsx +18 -0
- package/src/components/session-connection-request.tsx +97 -0
- package/src/components/session-conversation.tsx +526 -0
- package/src/components/session-list.tsx +250 -0
- package/src/components/session-mcp-capability-card.tsx +680 -0
- package/src/components/session-proxy-scope.tsx +92 -0
- package/src/components/session-status.tsx +1 -1
- package/src/components/timeline-anchor.tsx +119 -0
- package/src/components/timeline-annotation-chrome.tsx +196 -0
- package/src/components/timeline-annotation-layout.ts +268 -0
- package/src/components/timeline-annotation-markers.tsx +185 -0
- package/src/components/timeline-annotation-reveal-context.ts +9 -0
- package/src/components/timeline-annotation-selection.tsx +106 -54
- package/src/components/timeline-annotation-shared.ts +245 -0
- package/src/components/timeline-annotations-dialog.tsx +185 -128
- package/src/components/timeline-annotations.tsx +189 -45
- package/src/components/timeline-reading-progress.ts +80 -0
- package/src/components/timeline-search.tsx +168 -0
- package/src/components/timeline-settlement.ts +60 -0
- package/src/components/tip-follow.ts +70 -7
- package/src/components/tooltip.tsx +38 -5
- package/src/components/usage-limit-notice.tsx +179 -0
- package/src/components/usage-member-list.tsx +792 -0
- package/src/components/usage-meter.tsx +382 -0
- package/src/components/use-viewer-menu-dismiss.ts +33 -0
- package/src/components/user-message-body.tsx +194 -49
- package/src/components/workspace-dock.tsx +141 -175
- package/src/composer.ts +6 -1
- package/src/connect-account-identity.tsx +34 -0
- package/src/connect-accounts.tsx +233 -0
- package/src/connect-chooser.tsx +336 -0
- package/src/connect-panel.tsx +99 -0
- package/src/connect-setup.tsx +307 -0
- package/src/connect.ts +60 -0
- package/src/connection-assets.d.ts +4 -0
- package/src/connection-catalog.tsx +162 -0
- package/src/connection-discovery.tsx +235 -0
- package/src/connection-installed.tsx +51 -0
- package/src/connection-logo.tsx +37 -0
- package/src/connection-service-logo.tsx +55 -0
- package/src/connection-service-presentation.ts +46 -0
- package/src/connection-skeleton.tsx +16 -0
- package/src/connection-type-picker.tsx +36 -0
- package/src/conversation-timeline.ts +92 -0
- package/src/desktop.ts +24 -0
- package/src/device-authorization.tsx +98 -0
- package/src/diffs.ts +16 -0
- package/src/discovery-cache.ts +42 -0
- package/src/editor.ts +13 -0
- package/src/embedded-session-client.ts +104 -0
- package/src/file-node-visibility.ts +66 -0
- package/src/hooks/channel-cache.ts +104 -0
- package/src/hooks/internal.ts +3 -2
- package/src/hooks/latest-question.ts +164 -0
- package/src/hooks/shared-machines-list.ts +239 -0
- package/src/hooks/use-attached-browsers.ts +5 -1
- package/src/hooks/use-available-models.ts +20 -14
- package/src/hooks/use-browser-frame-stream.ts +25 -3
- package/src/hooks/use-browser-session.ts +271 -71
- package/src/hooks/use-browser-sessions.ts +7 -1
- package/src/hooks/use-channels.ts +32 -10
- package/src/hooks/use-codex-accounts.ts +78 -21
- package/src/hooks/use-composer.ts +1034 -320
- package/src/hooks/use-computer-frame-stream.ts +39 -16
- package/src/hooks/use-computer-input-posture.ts +94 -0
- package/src/hooks/use-computer-session.ts +110 -32
- package/src/hooks/use-computer-sessions.ts +8 -1
- package/src/hooks/use-connect.ts +23 -0
- package/src/hooks/use-desktop-stream.ts +19 -28
- package/src/hooks/use-file-attachments.ts +118 -10
- package/src/hooks/use-goal.ts +36 -9
- package/src/hooks/use-human-input.ts +31 -4
- package/src/hooks/use-last-started-turn-policy.ts +15 -13
- package/src/hooks/use-machine-chip.ts +23 -6
- package/src/hooks/use-machines.ts +104 -6
- package/src/hooks/use-sandbox-files.ts +253 -150
- package/src/hooks/use-sandbox-git.ts +58 -29
- package/src/hooks/use-session-background-commands.ts +67 -0
- package/src/hooks/use-session-capabilities.ts +21 -2
- package/src/hooks/use-session-events.ts +759 -433
- package/src/hooks/use-session-lineage.ts +28 -6
- package/src/hooks/use-session-mcp-approval-policy.ts +13 -5
- package/src/hooks/use-session.ts +75 -16
- package/src/hooks/use-slash-commands.ts +6 -11
- package/src/hooks/use-turn-queue.ts +113 -13
- package/src/hooks/use-usage.ts +100 -0
- package/src/hooks/use-video-artifact-playback.ts +1 -1
- package/src/hooks/use-voice-input.ts +12 -1
- package/src/hooks/use-workspace-capture.ts +3 -2
- package/src/hooks/use-workspace-edit.ts +23 -5
- package/src/hooks/use-workspace-sessions.ts +99 -11
- package/src/human-input.ts +12 -1
- package/src/identity-link-accounts.tsx +148 -0
- package/src/identity-link-consent.tsx +192 -0
- package/src/index.ts +157 -12
- package/src/interaction.ts +1 -0
- package/src/lib/error-message.ts +37 -0
- package/src/lib/format.ts +150 -14
- package/src/lib/host-theme.ts +511 -0
- package/src/lib/interaction-errors.ts +33 -0
- package/src/lib/menu-styles.ts +44 -0
- package/src/lib/pierre-diffs-loader.ts +53 -0
- package/src/lib/workbench-peers.ts +62 -0
- package/src/lib/xterm-theme.ts +23 -21
- package/src/machines.ts +9 -1
- package/src/mcp-connection-status.ts +35 -0
- package/src/model-policy.ts +223 -69
- package/src/older-history.ts +87 -0
- package/src/plugin-details.tsx +185 -0
- package/src/plugin-discovery.tsx +196 -0
- package/src/provider.tsx +55 -14
- package/src/realtime/dropdown-menu.tsx +19 -12
- package/src/realtime/realtime-control.tsx +133 -46
- package/src/session-auth-recommendation.ts +48 -0
- package/src/session-capability-policy.ts +83 -0
- package/src/session-context.ts +4 -3
- package/src/session-ui.ts +66 -2
- package/src/session.ts +18 -1
- package/src/sites-ui.tsx +402 -0
- package/src/sites.ts +3 -0
- package/src/skill-discovery.tsx +208 -0
- package/src/terminal.ts +26 -0
- package/src/timeline/activity-rail.tsx +171 -80
- package/src/timeline/allowance-exhausted-row.tsx +86 -0
- package/src/timeline/compaction-copy.ts +42 -0
- package/src/timeline/entrance.tsx +28 -3
- package/src/timeline/fleet-decision-projection.ts +2 -1
- package/src/timeline/fleet-decision-row.tsx +1 -0
- package/src/timeline/genie-loading.tsx +136 -0
- package/src/timeline/index.ts +11 -0
- package/src/timeline/knowledge-receipt.tsx +100 -0
- package/src/timeline/parsers.ts +2 -2
- package/src/timeline/platform-activity-row.tsx +216 -0
- package/src/timeline/presented-image.ts +49 -0
- package/src/timeline/projection.ts +1609 -84
- package/src/timeline/registry.ts +15 -3
- package/src/timeline/retained-image.ts +97 -0
- package/src/timeline/rolling-activity.tsx +92 -0
- package/src/timeline/screenshot-lightbox.tsx +115 -17
- package/src/timeline/shared.tsx +47 -15
- package/src/timeline/startup-preference.ts +33 -0
- package/src/timeline/startup-timings.tsx +145 -0
- package/src/timeline/tool-display-name.ts +8 -6
- package/src/timeline/tool-renderers.tsx +497 -128
- package/src/timeline/turn-summary.tsx +218 -44
- package/src/timeline/types.ts +192 -7
- package/src/types/machines.ts +10 -0
- package/src/usage/allowance-copy.ts +64 -0
- package/src/usage/summary.ts +93 -0
- package/src/usage.ts +50 -0
- package/styles/compiled.css +2098 -757
- package/styles/connect.css +284 -0
- package/styles/connect.d.ts +1 -0
- package/styles/effective-tokens.css +1 -0
- package/styles/index.css +201 -9
- package/styles/responsive.css +27 -1
- package/styles/session-capability.css +44 -0
- package/styles/tokens.css +135 -65
- package/dist/chunk-5UQPNLIO.js.map +0 -1
- package/dist/chunk-6KLX2RH5.js.map +0 -1
- package/dist/chunk-7WCLAEFV.js.map +0 -1
- package/dist/chunk-B6WPZSTT.js.map +0 -1
- package/dist/chunk-FK6VG4LL.js +0 -90
- package/dist/chunk-FK6VG4LL.js.map +0 -1
- package/dist/chunk-HA46CYQK.js.map +0 -1
- package/dist/chunk-HUIKIDM5.js.map +0 -1
- package/dist/chunk-IGC6A2ZI.js.map +0 -1
- package/dist/chunk-KCGXPP5V.js.map +0 -1
- package/dist/chunk-KZ73RL76.js.map +0 -1
- package/dist/chunk-LAKLF4PA.js +0 -141
- package/dist/chunk-LAKLF4PA.js.map +0 -1
- package/dist/chunk-LLOLUHVG.js.map +0 -1
- package/dist/chunk-MKPIAGVL.js +0 -465
- package/dist/chunk-MKPIAGVL.js.map +0 -1
- package/dist/chunk-PEI6RANI.js.map +0 -1
- package/dist/chunk-R3AZOAB5.js.map +0 -1
- package/dist/chunk-WSK7G5LE.js +0 -170
- package/dist/chunk-WSK7G5LE.js.map +0 -1
- package/dist/chunk-XBZWOM2K.js +0 -218
- package/dist/chunk-XBZWOM2K.js.map +0 -1
- package/dist/chunk-Y7OEDUJ5.js +0 -8810
- package/dist/chunk-Y7OEDUJ5.js.map +0 -1
- package/dist/fleet-decision-row-GGCAT4E4.js.map +0 -1
- package/dist/hooks/use-packs.d.ts +0 -32
- package/dist/interactive-workbench-viewers-TOHBXJEE.js +0 -15
- package/dist/queue-surface-implementation-2KVJTYXH.js.map +0 -1
- package/dist/timeline-annotation-selection-3L7LHGG2.js +0 -187
- package/dist/timeline-annotation-selection-3L7LHGG2.js.map +0 -1
- package/dist/timeline-annotations-dialog-U7EVLR75.js +0 -196
- package/dist/timeline-annotations-dialog-U7EVLR75.js.map +0 -1
- package/src/hooks/use-packs.ts +0 -157
- /package/dist/{interactive-workbench-viewers-TOHBXJEE.js.map → browser-viewer-SHYKQRNX.js.map} +0 -0
|
@@ -1,15 +1,36 @@
|
|
|
1
|
+
import { type TimelineSearchTarget } from "./timeline-search.js";
|
|
2
|
+
import { type GenieLoadingOptions } from "../timeline/genie-loading.js";
|
|
1
3
|
import type { DraftTimelineAnnotation, SessionEvent, SessionStatus } from "@opengeni/sdk";
|
|
2
4
|
import { type ReactNode } from "react";
|
|
5
|
+
import { type OlderHistoryLoader } from "../older-history.js";
|
|
6
|
+
import { type MarkdownProps } from "./markdown.js";
|
|
7
|
+
import { type OpenGeniLinkResolver } from "./open-geni-links.js";
|
|
8
|
+
import { type UserMessageDisclosureLabels } from "./user-message-body.js";
|
|
3
9
|
import { type AgentMessageItem, type AuthNeededItem, type TimelineGroup, type TimelineItem, type RetainedArtifactLoader, type RetainedScreenshotLoader, type VideoArtifactPlaybackLoader, type ToolRegistry, type TurnSummaryOptions, type UserMessageItem } from "../timeline/index.js";
|
|
10
|
+
import { type RenderAllowanceExhausted } from "../timeline/allowance-exhausted-row.js";
|
|
11
|
+
import type { AllowanceLabels } from "../usage/allowance-copy.js";
|
|
4
12
|
export type MessageTimelineProps = {
|
|
13
|
+
/** Exact durable search hit; clearing it removes highlighting without moving the reader. */
|
|
14
|
+
searchTarget?: TimelineSearchTarget | null | undefined;
|
|
15
|
+
/** Localized user-message disclosure actions, including custom UserMessageBody renderers. */
|
|
16
|
+
userMessageDisclosureLabels?: UserMessageDisclosureLabels | undefined;
|
|
5
17
|
/** Raw session events (projected internally) … */
|
|
6
18
|
events?: SessionEvent[] | undefined;
|
|
7
19
|
/** … or pre-projected items (e.g. from `useSessionEvents().timeline`). */
|
|
8
20
|
items?: TimelineItem[] | undefined;
|
|
9
21
|
/** Current session status (reserved; tip "Working…" chrome removed for now). */
|
|
10
22
|
status?: SessionStatus | null | undefined;
|
|
23
|
+
/** Host-owned controls beside Copy and the timestamp on settled message rows. */
|
|
24
|
+
renderMessageActions?: ((item: AgentMessageItem | UserMessageItem) => ReactNode) | undefined;
|
|
11
25
|
/** Plug a markdown renderer for message bodies (e.g. streamdown). */
|
|
12
|
-
renderMessageText?: ((text: string, item: AgentMessageItem | UserMessageItem
|
|
26
|
+
renderMessageText?: ((text: string, item: AgentMessageItem | UserMessageItem, context: {
|
|
27
|
+
searchTarget: TimelineSearchTarget | null;
|
|
28
|
+
}) => ReactNode) | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Render assistant `opengeni-html` / `opengeni-site` fences in the default
|
|
31
|
+
* message renderer (`SessionConversation` supplies the inline Site preview).
|
|
32
|
+
*/
|
|
33
|
+
renderInteractiveBlock?: MarkdownProps["renderInteractiveBlock"];
|
|
13
34
|
/** Drill into a spawned worker session. */
|
|
14
35
|
onOpenSession?: ((sessionId: string) => void) | undefined;
|
|
15
36
|
/**
|
|
@@ -29,6 +50,17 @@ export type MessageTimelineProps = {
|
|
|
29
50
|
* a Reconnect button without a handler to run it.
|
|
30
51
|
*/
|
|
31
52
|
onReconnect?: ((item: AuthNeededItem) => void | Promise<void>) | undefined;
|
|
53
|
+
/** Host-owned inline connection setup. Return undefined to use the default recovery card. */
|
|
54
|
+
renderAuthNeeded?: ((item: AuthNeededItem) => ReactNode | undefined) | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Replace the "usage limit reached" row shown when a workspace or member
|
|
57
|
+
* usage allowance stops work (an `allowance_exhausted` refusal). Receives the
|
|
58
|
+
* typed refusal (scope, reset time) and the default row; return undefined to
|
|
59
|
+
* keep the default. Use it to point people at your own plan or admin page.
|
|
60
|
+
*/
|
|
61
|
+
renderAllowanceExhausted?: RenderAllowanceExhausted | undefined;
|
|
62
|
+
/** Replace the words of the default "usage limit reached" row. */
|
|
63
|
+
allowanceExhaustedLabels?: Partial<AllowanceLabels> | undefined;
|
|
32
64
|
/**
|
|
33
65
|
* Decide which durable authentication notices this timeline presents.
|
|
34
66
|
* Defaults to showing every notice. Embedded hosts can suppress notices for
|
|
@@ -49,9 +81,19 @@ export type MessageTimelineProps = {
|
|
|
49
81
|
* `createDefaultToolRegistry({ entries })` to add custom tool renderers.
|
|
50
82
|
*/
|
|
51
83
|
toolRegistry?: ToolRegistry | undefined;
|
|
84
|
+
/**
|
|
85
|
+
* Open OpenGeni object links the agent writes in replies and progress notes:
|
|
86
|
+
* `artifact:<file>`, `sandbox:<path>`, editable artifacts, and Sites. Return
|
|
87
|
+
* a host URL (`{ href }`) or action (`{ open }`); unhandled targets render as
|
|
88
|
+
* unavailable text instead of a console link that 404s inside the host.
|
|
89
|
+
* Applies to the default message renderer and to any `Markdown` a custom
|
|
90
|
+
* `renderMessageText` renders. `SessionConversation` supplies file and
|
|
91
|
+
* sandbox downloads by default.
|
|
92
|
+
*/
|
|
93
|
+
resolveLink?: OpenGeniLinkResolver | undefined;
|
|
52
94
|
/** Resolve opaque retained screenshot receipts through the authenticated host SDK. */
|
|
53
95
|
loadRetainedScreenshot?: RetainedScreenshotLoader | undefined;
|
|
54
|
-
/** Resolve permanent
|
|
96
|
+
/** Resolve permanent workspace image/file receipts through the authenticated host SDK. */
|
|
55
97
|
loadRetainedArtifact?: RetainedArtifactLoader | undefined;
|
|
56
98
|
/** Mint short-lived native playback sources for retained generated videos. */
|
|
57
99
|
loadVideoArtifactPlayback?: VideoArtifactPlaybackLoader | undefined;
|
|
@@ -61,17 +103,32 @@ export type MessageTimelineProps = {
|
|
|
61
103
|
*/
|
|
62
104
|
computeLabel?: string | null | undefined;
|
|
63
105
|
/** Customize collapsed turn facets for this timeline instance. */
|
|
106
|
+
genieLoading?: GenieLoadingOptions | undefined;
|
|
64
107
|
turnSummary?: TurnSummaryOptions | undefined;
|
|
65
108
|
/** Follow new events when pinned to the bottom. Defaults to true. */
|
|
66
109
|
autoFollow?: boolean | undefined;
|
|
67
110
|
/** Capture a same-row text selection into the host's canonical composer draft. */
|
|
68
111
|
onAnnotate?: ((annotation: DraftTimelineAnnotation) => void) | undefined;
|
|
112
|
+
/**
|
|
113
|
+
* Hide the floating "Back to your message" pill while the timeline viewport
|
|
114
|
+
* is shorter than this (px), e.g. a narrow embed above a decision card.
|
|
115
|
+
* Defaults to 0 (always available).
|
|
116
|
+
*/
|
|
117
|
+
questionNavMinViewportHeight?: number | undefined;
|
|
118
|
+
/** Composer draft quotes currently attached to the next send. */
|
|
119
|
+
draftAnnotations?: readonly DraftTimelineAnnotation[] | undefined;
|
|
120
|
+
/** Open the composer review list for one numbered draft badge. */
|
|
121
|
+
onDraftAnnotationSelect?: ((id: string) => void) | undefined;
|
|
69
122
|
/** Older durable history exists above the current window (see useSessionEvents). */
|
|
70
123
|
hasOlder?: boolean | undefined;
|
|
71
124
|
/** An older window is being fetched; shows the quiet top shimmer. */
|
|
72
125
|
loadingOlder?: boolean | undefined;
|
|
73
|
-
/**
|
|
74
|
-
|
|
126
|
+
/**
|
|
127
|
+
* Called when older history should backfill. Existing void, synchronous-value,
|
|
128
|
+
* and arbitrary-promise callbacks remain supported. Receipt-aware loaders
|
|
129
|
+
* preserve committed-page direction through wrappers and bounded windows.
|
|
130
|
+
*/
|
|
131
|
+
onLoadOlder?: OlderHistoryLoader | undefined;
|
|
75
132
|
/** Jump to the durable session start (bounded oldest window, no middle). */
|
|
76
133
|
onJumpToStart?: (() => void | Promise<void>) | undefined;
|
|
77
134
|
/** True while the oldest window is loading. */
|
|
@@ -80,13 +137,16 @@ export type MessageTimelineProps = {
|
|
|
80
137
|
hasNewer?: boolean | undefined;
|
|
81
138
|
/** A newer history page is being fetched. */
|
|
82
139
|
loadingNewer?: boolean | undefined;
|
|
83
|
-
/** Page forward through history
|
|
84
|
-
onLoadNewer?: (() =>
|
|
140
|
+
/** Page forward through history. Return the request promise to enable inline error/retry. */
|
|
141
|
+
onLoadNewer?: (() => unknown) | undefined;
|
|
85
142
|
/**
|
|
86
143
|
* Reload the live tip window. When omitted, Jump to latest only re-pins and
|
|
87
144
|
* scrolls the in-memory window.
|
|
88
145
|
*/
|
|
89
146
|
onJumpToLatest?: (() => void | Promise<void>) | undefined;
|
|
147
|
+
/** @deprecated Retained for source compatibility; contextual prompt navigation
|
|
148
|
+
* uses only mounted prompts and never invokes this global resolver. */
|
|
149
|
+
onJumpToLatestQuestion?: (() => Promise<number | null>) | undefined;
|
|
90
150
|
/** Host-owned content appended after timeline groups, such as startup progress. */
|
|
91
151
|
trailingState?: ReactNode | undefined;
|
|
92
152
|
emptyState?: ReactNode | undefined;
|
|
@@ -98,7 +158,7 @@ export type MessageTimelineProps = {
|
|
|
98
158
|
* cards, goal markers, and status transitions. Owns stick-to-bottom scrolling
|
|
99
159
|
* with a "jump to latest" affordance when the reader scrolls back.
|
|
100
160
|
*/
|
|
101
|
-
export declare function MessageTimeline({ events, items, status: _status, renderMessageText, onOpenSession, onMemoryClick, onReconnect, shouldRenderAuthNeeded, resolveProviderLogo, toolRegistry, loadRetainedScreenshot, loadRetainedArtifact, loadVideoArtifactPlayback, computeLabel, turnSummary, autoFollow, onAnnotate, hasOlder, loadingOlder, onLoadOlder, onJumpToStart, loadingOldest, hasNewer, loadingNewer, onLoadNewer, onJumpToLatest, trailingState, emptyState, className, }: MessageTimelineProps): import("react").JSX.Element;
|
|
161
|
+
export declare function MessageTimeline({ resolveLink, renderInteractiveBlock, userMessageDisclosureLabels, searchTarget, events, items, status: _status, renderMessageActions, renderMessageText, onOpenSession, onMemoryClick, onReconnect, renderAuthNeeded, renderAllowanceExhausted, allowanceExhaustedLabels, shouldRenderAuthNeeded, resolveProviderLogo, toolRegistry, loadRetainedScreenshot, loadRetainedArtifact, loadVideoArtifactPlayback, computeLabel, genieLoading, turnSummary, autoFollow, onAnnotate, questionNavMinViewportHeight, draftAnnotations, onDraftAnnotationSelect, hasOlder, loadingOlder, onLoadOlder, onJumpToStart, loadingOldest, hasNewer, loadingNewer, onLoadNewer, onJumpToLatest, trailingState, emptyState, className, }: MessageTimelineProps): import("react").JSX.Element;
|
|
102
162
|
/**
|
|
103
163
|
* Settled turns lift the final agent answer out as a sibling group. Include it
|
|
104
164
|
* in "Copy turn" when present so the chip copies the full assistant reply.
|
|
@@ -110,11 +170,14 @@ export declare function trailingAgentTextAfterTurn(group: TimelineGroup, next: T
|
|
|
110
170
|
* landmark, notice). Exported so the component demo draws the EXACT same rows as
|
|
111
171
|
* the live app — no forked bubble/goal markup.
|
|
112
172
|
*/
|
|
113
|
-
export declare function TimelineRow({ item, renderMessageText, onReconnect, resolveProviderLogo, onOpenSession, loadVideoArtifactPlayback, }: {
|
|
173
|
+
export declare function TimelineRow({ item, renderMessageActions, renderMessageText, onReconnect, renderAuthNeeded, resolveProviderLogo, onOpenSession, loadVideoArtifactPlayback, }: {
|
|
114
174
|
item: TimelineItem;
|
|
175
|
+
renderMessageActions?: ((item: AgentMessageItem | UserMessageItem) => ReactNode) | undefined;
|
|
115
176
|
renderMessageText?: ((text: string, item: AgentMessageItem | UserMessageItem) => ReactNode) | undefined;
|
|
116
177
|
onReconnect?: ((item: AuthNeededItem) => void | Promise<void>) | undefined;
|
|
178
|
+
/** Host-owned inline connection setup. Return undefined to use the default recovery card. */
|
|
179
|
+
renderAuthNeeded?: ((item: AuthNeededItem) => ReactNode | undefined) | undefined;
|
|
117
180
|
resolveProviderLogo?: ((providerDomain: string) => string | null | undefined) | undefined;
|
|
118
181
|
onOpenSession?: ((sessionId: string) => void) | undefined;
|
|
119
182
|
loadVideoArtifactPlayback?: VideoArtifactPlaybackLoader | undefined;
|
|
120
|
-
}): import("react").JSX.Element | null;
|
|
183
|
+
}): 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;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type ModelDisplayInput } from "@opengeni/sdk/model-display";
|
|
2
|
+
import type { ReactNode, SVGProps } from "react";
|
|
3
|
+
/** ChatGPT / OpenAI mark (Simple Icons path), currentColor like the other marks. */
|
|
4
|
+
export declare function ChatGptMark(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
|
|
5
|
+
/** True when `ModelMark` has a real maker logo for this model (not the neutral fallback). */
|
|
6
|
+
export declare function modelHasMark(model: ModelDisplayInput): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* The model maker's logo (OpenAI, Claude, Grok), never the connection that
|
|
9
|
+
* serves it. Makers without a bundled logo get a neutral mark, so an org- and
|
|
10
|
+
* a workspace-connected copy of one model always look the same.
|
|
11
|
+
*/
|
|
12
|
+
export declare function ModelMark(props: {
|
|
13
|
+
model: ModelDisplayInput;
|
|
14
|
+
className?: string | undefined;
|
|
15
|
+
/** Shown when the maker has no bundled logo. Defaults to a neutral sparkle. */
|
|
16
|
+
fallback?: ReactNode;
|
|
17
|
+
"aria-label"?: string | undefined;
|
|
18
|
+
}): import("react").JSX.Element | null;
|
|
19
|
+
/**
|
|
20
|
+
* A model as people should see it outside model settings: the maker's mark and
|
|
21
|
+
* the clean display name. Never a routing prefix, connection id or scope.
|
|
22
|
+
*/
|
|
23
|
+
export declare function ModelName(props: {
|
|
24
|
+
model: ModelDisplayInput;
|
|
25
|
+
/** Hide the maker mark for dense text-only contexts. */
|
|
26
|
+
mark?: boolean | undefined;
|
|
27
|
+
className?: string | undefined;
|
|
28
|
+
markClassName?: string | undefined;
|
|
29
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type RefObject, type CSSProperties } from "react";
|
|
2
|
+
import { type ModelPolicyPickerProps } from "./model-policy-picker.js";
|
|
3
|
+
/** Model selection stays flat; reasoning never becomes a navigation destination. */
|
|
4
|
+
export declare function ModelPolicyPickerMenu(props: ModelPolicyPickerProps): import("react").JSX.Element;
|
|
5
|
+
export declare function ModelPolicyPickerPopover(props: ModelPolicyPickerProps & {
|
|
6
|
+
anchor: RefObject<HTMLButtonElement | null>;
|
|
7
|
+
contentId: string;
|
|
8
|
+
portalStyle: CSSProperties;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
@@ -1,27 +1,44 @@
|
|
|
1
1
|
import type { ClientModel, LatencyMode, ReasoningEffort } from "@opengeni/sdk";
|
|
2
2
|
import { type CSSProperties, type ReactNode } from "react";
|
|
3
3
|
import { type PickerBillingClass, type PickerModelRow } from "../model-policy.js";
|
|
4
|
-
type
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
type ClientPickerModelRow = PickerModelRow<ClientModel>;
|
|
5
|
+
/** Presentation only; never changes model identity, billing or availability. */
|
|
6
|
+
export type ModelPolicyPickerGroupPresentation = Partial<Record<PickerBillingClass, {
|
|
7
|
+
label?: string | undefined;
|
|
8
|
+
/** Omit to preserve the default; null hides the supporting text. */
|
|
9
|
+
description?: string | null | undefined;
|
|
10
|
+
/** Decorative, non-interactive content. Omit for the default; null hides it. */
|
|
11
|
+
icon?: ReactNode | undefined;
|
|
12
|
+
}>>;
|
|
11
13
|
export type ModelPolicyPickerMessages = {
|
|
12
14
|
label: string;
|
|
13
15
|
loading: string;
|
|
14
16
|
noModels: string;
|
|
17
|
+
connectTitle: string;
|
|
18
|
+
connectBody: string;
|
|
19
|
+
connectAction: string;
|
|
15
20
|
thinking: string;
|
|
16
21
|
fast: string;
|
|
17
22
|
fastRateHint: string;
|
|
18
23
|
codexOnly: string;
|
|
24
|
+
searchLabel?: string;
|
|
25
|
+
searchPlaceholder?: string;
|
|
26
|
+
currentModel?: string;
|
|
27
|
+
noMatches?: string;
|
|
28
|
+
unsupportedAttachments?: string;
|
|
29
|
+
thinkingEffort?: string;
|
|
30
|
+
selected?: string;
|
|
31
|
+
free?: string;
|
|
19
32
|
billingHints: Record<PickerBillingClass, string>;
|
|
20
33
|
};
|
|
21
34
|
export declare const defaultModelPolicyPickerMessages: ModelPolicyPickerMessages;
|
|
22
35
|
export type ModelPolicyPickerProps = {
|
|
36
|
+
/** Host branding for payment-source groups, shared by menu and trigger. */
|
|
37
|
+
groupPresentation?: ModelPolicyPickerGroupPresentation | undefined;
|
|
23
38
|
/** Lightweight deployment models. Catalog rows take precedence when supplied. */
|
|
24
39
|
models?: ClientModel[] | undefined;
|
|
40
|
+
/** Warn only when the draft actually contains images this model cannot view. */
|
|
41
|
+
hasImageAttachments?: boolean | undefined;
|
|
25
42
|
/** Catalog-backed rows with availability and billing-class truth. */
|
|
26
43
|
rows?: PickerModelRow[] | undefined;
|
|
27
44
|
model: string;
|
|
@@ -37,15 +54,35 @@ export type ModelPolicyPickerProps = {
|
|
|
37
54
|
onOpenChange?: ((open: boolean) => void) | undefined;
|
|
38
55
|
/** Non-Codex models stay visible but cannot be selected. */
|
|
39
56
|
codexOnly?: boolean | undefined;
|
|
40
|
-
/**
|
|
57
|
+
/** Identity of the current session scope. */
|
|
41
58
|
sessionKey?: string | undefined;
|
|
42
59
|
/** Prefer bottom on new-chat surfaces and top for bottom-docked composers. */
|
|
43
60
|
menuSide?: "top" | "bottom" | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Default true: show models the way people choose them, with clean names,
|
|
63
|
+
* maker marks, one "API keys" group for organization- and workspace-connected
|
|
64
|
+
* keys, and one row for identical copies. Models settings passes false to
|
|
65
|
+
* keep its scope-aware presentation (raw catalog labels, scoped groups).
|
|
66
|
+
*/
|
|
67
|
+
collapseScopes?: boolean | undefined;
|
|
68
|
+
/** Hide latency controls on surfaces whose saved policy does not include latency. */
|
|
69
|
+
allowLatencyMode?: boolean | undefined;
|
|
70
|
+
/** Settings → Models. Shown when the catalog has no model that can run. */
|
|
71
|
+
connectModelsHref?: string | undefined;
|
|
44
72
|
/** Classes for the portalled menu surface. Prefer --og-* tokens for theming. */
|
|
45
73
|
contentClassName?: string | undefined;
|
|
46
74
|
/** Inline styles for the portalled menu, applied after inherited --og-* tokens. */
|
|
47
75
|
contentStyle?: CSSProperties | undefined;
|
|
48
76
|
className?: string | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* "pill" (default) is the composer's quiet rounded trigger with the effort.
|
|
79
|
+
* "field" is a settings control: a bordered rectangle with the model name
|
|
80
|
+
* and `triggerMeta` (for example the payer) in muted text. The effort stays
|
|
81
|
+
* in the menu.
|
|
82
|
+
*/
|
|
83
|
+
triggerStyle?: "pill" | "field" | undefined;
|
|
84
|
+
/** Muted text after the model name in the "field" trigger. */
|
|
85
|
+
triggerMeta?: ReactNode;
|
|
49
86
|
messages?: Partial<ModelPolicyPickerMessages> | undefined;
|
|
50
87
|
onModelChange: (modelId: string) => void;
|
|
51
88
|
onEffortChange: (effort: ReasoningEffort) => void;
|
|
@@ -53,9 +90,18 @@ export type ModelPolicyPickerProps = {
|
|
|
53
90
|
};
|
|
54
91
|
export declare function BillingClassMark(props: {
|
|
55
92
|
billingClass: PickerBillingClass;
|
|
93
|
+
presentation?: ModelPolicyPickerGroupPresentation[PickerBillingClass] | undefined;
|
|
56
94
|
className?: string | undefined;
|
|
57
95
|
"aria-label"?: string | undefined;
|
|
58
|
-
}): import("react").JSX.Element;
|
|
96
|
+
}): import("react").JSX.Element | null;
|
|
97
|
+
/** Models settings keeps naming who is billed for a key. */
|
|
98
|
+
export declare const SCOPED_BILLING_HINTS: Partial<Record<PickerBillingClass, string>>;
|
|
99
|
+
/**
|
|
100
|
+
* Host branding for a payment group. While scopes are collapsed, API keys are
|
|
101
|
+
* one group, so either API-key presentation serves both.
|
|
102
|
+
*/
|
|
103
|
+
export declare function groupPresentationFor(props: Pick<ModelPolicyPickerProps, "groupPresentation" | "collapseScopes">, billingClass: PickerBillingClass): ModelPolicyPickerGroupPresentation[PickerBillingClass];
|
|
104
|
+
export declare function effectiveRows(props: ModelPolicyPickerProps): ClientPickerModelRow[];
|
|
59
105
|
export declare function PickerNavRow(props: {
|
|
60
106
|
label: string;
|
|
61
107
|
hint?: string | undefined;
|
|
@@ -64,6 +110,7 @@ export declare function PickerNavRow(props: {
|
|
|
64
110
|
showChevron?: boolean | undefined;
|
|
65
111
|
disabled?: boolean | undefined;
|
|
66
112
|
title?: string | undefined;
|
|
113
|
+
description?: string | undefined;
|
|
67
114
|
active?: boolean | undefined;
|
|
68
115
|
testId?: string | undefined;
|
|
69
116
|
onClick: () => void;
|
|
@@ -79,9 +126,11 @@ export declare function PickerAnimatedPage(props: {
|
|
|
79
126
|
direction: 1 | -1;
|
|
80
127
|
children: ReactNode;
|
|
81
128
|
}): import("react").JSX.Element;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
129
|
+
/** @internal Shared controlled/uncontrolled state seam. */
|
|
130
|
+
export declare function useModelPolicyPickerState(props: ModelPolicyPickerProps): {
|
|
131
|
+
open: boolean;
|
|
132
|
+
setOpen: (next: boolean) => void;
|
|
133
|
+
rows: ClientPickerModelRow[];
|
|
134
|
+
};
|
|
86
135
|
export declare function ModelPolicyPicker(props: ModelPolicyPickerProps): import("react").JSX.Element;
|
|
87
136
|
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type CSSProperties } from "react";
|
|
2
|
+
import { type HostSurfacePreference, type HostThemePreference } from "../lib/host-theme.js";
|
|
3
|
+
import { type ClientOverride } from "../session-context.js";
|
|
4
|
+
import { type SessionConversationProps } from "./session-conversation.js";
|
|
5
|
+
import { type SessionListLabels, type SessionListProps } from "./session-list.js";
|
|
6
|
+
import { type SessionProxyBaseUrl } from "./session-proxy-scope.js";
|
|
7
|
+
export type OpenGeniChatLabels = SessionListLabels & {
|
|
8
|
+
openChats: string;
|
|
9
|
+
closeChats: string;
|
|
10
|
+
newChatPlaceholder: string;
|
|
11
|
+
/** Heading above the new-chat composer; empty hides it. */
|
|
12
|
+
newChatTitle: string;
|
|
13
|
+
send: string;
|
|
14
|
+
newChatUnavailable: string;
|
|
15
|
+
};
|
|
16
|
+
export type OpenGeniChatProps = ClientOverride & SessionProxyBaseUrl & {
|
|
17
|
+
/** Controlled selection. `null` shows the new-chat composer. */
|
|
18
|
+
sessionId?: string | null | undefined;
|
|
19
|
+
/** Initial selection when uncontrolled. Defaults to a new chat. */
|
|
20
|
+
defaultSessionId?: string | null | undefined;
|
|
21
|
+
onSessionChange?: ((sessionId: string | null) => void) | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Create a chat from its first message. Defaults to `client.createSession`
|
|
24
|
+
* with `{ initialMessage, idempotencyKey }`, which `createSessionProxyHandler`
|
|
25
|
+
* accepts when the server supplies a `createSession` hook. Return the new id.
|
|
26
|
+
*/
|
|
27
|
+
createSession?: ((initialMessage: string, idempotencyKey: string) => Promise<string>) | undefined;
|
|
28
|
+
/** Hide the "New chat" entry point. */
|
|
29
|
+
newChat?: boolean | undefined;
|
|
30
|
+
/** Forwarded to the conversation (message rendering, tool renderers, composer...). */
|
|
31
|
+
conversationProps?: Omit<SessionConversationProps, "sessionId" | "client" | "workspaceId" | "baseUrl">;
|
|
32
|
+
/** Forwarded to the list (rename/archive toggles, page size). */
|
|
33
|
+
listProps?: Pick<SessionListProps, "rename" | "archive" | "pageSize"> | undefined;
|
|
34
|
+
labels?: Partial<OpenGeniChatLabels> | undefined;
|
|
35
|
+
className?: string | undefined;
|
|
36
|
+
/** Defaults to filling the host. */
|
|
37
|
+
height?: CSSProperties["height"];
|
|
38
|
+
/**
|
|
39
|
+
* Light or dark. Defaults to `auto`: follow the host page (an enclosing
|
|
40
|
+
* `data-og-theme`, `class="dark"`/`data-theme` on <html> or <body>, the
|
|
41
|
+
* host's `color-scheme`, then its background), not the OS setting alone.
|
|
42
|
+
*/
|
|
43
|
+
theme?: HostThemePreference | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* `host` (default) derives backgrounds and cards from the host background so
|
|
46
|
+
* the chat blends in; `theme` uses the `--og-color-*` surface tokens as they
|
|
47
|
+
* are. Customized surface tokens are always kept.
|
|
48
|
+
*/
|
|
49
|
+
surface?: HostSurfacePreference | undefined;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* A complete chat experience: the user's chat list plus the conversation.
|
|
53
|
+
* The list is a sidebar when the component is wide and a drawer when narrow
|
|
54
|
+
* (container-based, so it adapts inside panels as well as full pages).
|
|
55
|
+
* `<OpenGeniChat baseUrl="/api/opengeni" />` needs no provider: it talks to
|
|
56
|
+
* your session proxy and uses the workspace the proxy resolves.
|
|
57
|
+
*/
|
|
58
|
+
export declare function OpenGeniChat({ baseUrl, ...props }: OpenGeniChatProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { OpenGeniClient, OpenGeniLinkTarget } from "@opengeni/sdk";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
export type { OpenGeniLinkTarget };
|
|
4
|
+
/**
|
|
5
|
+
* How the host opens one OpenGeni object an agent linked in chat Markdown.
|
|
6
|
+
*
|
|
7
|
+
* - `{ href }` renders a real link (new tab) — use it for a host page URL.
|
|
8
|
+
* - `{ open }` renders a button that runs the action (download, open a panel,
|
|
9
|
+
* client-side navigation) with loading and retry states.
|
|
10
|
+
* - `null` / `undefined` means "not handled here": the next resolver is asked,
|
|
11
|
+
* and when none handles it the text renders as an unavailable reference —
|
|
12
|
+
* never as a navigation that would 404 inside the host.
|
|
13
|
+
*/
|
|
14
|
+
export type OpenGeniLinkResolution = {
|
|
15
|
+
href: string;
|
|
16
|
+
open?: undefined;
|
|
17
|
+
} | {
|
|
18
|
+
open: () => void | Promise<void>;
|
|
19
|
+
href?: undefined;
|
|
20
|
+
};
|
|
21
|
+
export type OpenGeniLinkResolver = (target: OpenGeniLinkTarget) => OpenGeniLinkResolution | null | undefined;
|
|
22
|
+
/** First resolver that handles a target wins. */
|
|
23
|
+
export declare function chainLinkResolvers(...resolvers: ReadonlyArray<OpenGeniLinkResolver | null | undefined>): OpenGeniLinkResolver | null;
|
|
24
|
+
/**
|
|
25
|
+
* Resolve OpenGeni object links (`artifact:`, `sandbox:`, editable artifacts,
|
|
26
|
+
* Sites) for every {@link Markdown} body below. An inner provider is asked
|
|
27
|
+
* before an outer one, so a host can override a single kind and keep defaults.
|
|
28
|
+
*/
|
|
29
|
+
export declare function OpenGeniLinkProvider({ resolveLink, children, }: {
|
|
30
|
+
resolveLink: OpenGeniLinkResolver | null | undefined;
|
|
31
|
+
children: ReactNode;
|
|
32
|
+
}): import("react").JSX.Element;
|
|
33
|
+
/** The effective resolver from the nearest {@link OpenGeniLinkProvider}. */
|
|
34
|
+
export declare function useOpenGeniLinkResolver(): OpenGeniLinkResolver | null;
|
|
35
|
+
type SessionLinkClient = Partial<Pick<OpenGeniClient, "createFileDownloadUrl" | "fsRead">>;
|
|
36
|
+
/**
|
|
37
|
+
* Default resolver for a session conversation that talks to OpenGeni through
|
|
38
|
+
* the normal SDK client (for example behind `createSessionProxyHandler`):
|
|
39
|
+
*
|
|
40
|
+
* - `artifact:<file>` downloads the retained file through a short-lived URL.
|
|
41
|
+
* - `sandbox:<path>` downloads when enabled by the host proxy capability.
|
|
42
|
+
*
|
|
43
|
+
* Editable artifacts and Sites have no default: they need a host surface
|
|
44
|
+
* (see `@opengeni/react/artifacts/*` and `@opengeni/react/sites`), so they stay
|
|
45
|
+
* unavailable until the host resolves them.
|
|
46
|
+
*/
|
|
47
|
+
export declare function sessionLinkResolver(input: {
|
|
48
|
+
client: SessionLinkClient;
|
|
49
|
+
workspaceId: string;
|
|
50
|
+
sessionId: string;
|
|
51
|
+
sandboxFiles?: boolean;
|
|
52
|
+
}): OpenGeniLinkResolver;
|
|
53
|
+
/** An editable artifact or Site to open in a host-mounted viewer. */
|
|
54
|
+
export type OpenGeniViewerTarget = Readonly<{
|
|
55
|
+
kind: "editable-artifact" | "site";
|
|
56
|
+
artifactId: string;
|
|
57
|
+
/** The link text the agent wrote, until the viewer loads the real title. */
|
|
58
|
+
title?: string | undefined;
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* "Open in host viewer": resolve agent links to editable artifacts and Sites
|
|
62
|
+
* in this workspace to `open(target)`, for example to mount
|
|
63
|
+
* `SessionArtifactViewer` beside the conversation. Other targets fall through.
|
|
64
|
+
*/
|
|
65
|
+
export declare function viewerLinkResolver(input: {
|
|
66
|
+
workspaceId: string;
|
|
67
|
+
open: (target: OpenGeniViewerTarget) => void;
|
|
68
|
+
}): OpenGeniLinkResolver;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SVGProps } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Simple Icons, CC0; https://github.com/simple-icons/simple-icons
|
|
4
|
+
* Source: https://raw.githubusercontent.com/simple-icons/simple-icons/develop/icons/openrouter.svg
|
|
5
|
+
*/
|
|
6
|
+
export declare function OpenRouterMark(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
2
|
export type PierreFileProps = {
|
|
3
|
-
/**
|
|
3
|
+
/** Target path (used for the header + language inference). */
|
|
4
4
|
path: string;
|
|
5
5
|
/** The decoded text contents. */
|
|
6
6
|
contents: string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One presentation rule for a queued item, shared by the full queue and the
|
|
3
|
+
* compact session-chrome dock so the two cannot drift. A turn with an empty
|
|
4
|
+
* prompt and timeline annotations is valid content; an item with neither is a
|
|
5
|
+
* malformed or legacy object that gets an explicit fallback, never a blank row.
|
|
6
|
+
*/
|
|
7
|
+
export type QueueItemContent = "text" | "annotations" | "unavailable";
|
|
8
|
+
export declare const QUEUE_ITEM_CONTENT_UNAVAILABLE = "Content unavailable";
|
|
9
|
+
export declare function queueItemContent(text: string, annotationCount: number): QueueItemContent;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type UseSandboxFilesResult } from "../hooks/use-sandbox-files.js";
|
|
2
2
|
import type { UseSandboxGitResult } from "../hooks/use-sandbox-git.js";
|
|
3
|
+
import { type FileNodeVisibilityPredicate } from "../file-node-visibility.js";
|
|
3
4
|
export type SandboxFilesProps = {
|
|
4
5
|
/** From `useSandboxFiles(...)`. */
|
|
5
6
|
files: UseSandboxFilesResult;
|
|
@@ -19,8 +20,16 @@ export type SandboxFilesProps = {
|
|
|
19
20
|
* dock warms the box on this so the save lands fast; opening/reading never fires
|
|
20
21
|
* it. Browsing the tree/diff must not warm a box. */
|
|
21
22
|
onEditIntent?: (() => void) | undefined;
|
|
22
|
-
/**
|
|
23
|
+
/** Restore the file last viewed in this task. Invalid/missing paths still
|
|
24
|
+
* surface the ordinary file-view error instead of changing files silently. */
|
|
25
|
+
initialSelectedPath?: string | null | undefined;
|
|
26
|
+
onSelectedPathChange?: ((path: string | null) => void) | undefined;
|
|
27
|
+
/** Presentation-only node filter shared with the tree and selected-file view. */
|
|
28
|
+
isNodeVisible?: FileNodeVisibilityPredicate | undefined;
|
|
29
|
+
/** A deliberate file-open path routed here by the parent workspace. */
|
|
23
30
|
requestedPath?: string | undefined;
|
|
31
|
+
/** 1-based line to reveal after `requestedPath` opens. */
|
|
32
|
+
requestedLine?: number | null | undefined;
|
|
24
33
|
/** Identity for one guarded-file request. Increment this when the same path is
|
|
25
34
|
* deliberately requested again; it also lets a pending request be consumed
|
|
26
35
|
* without overriding later manual tree navigation. Defaults to the path. */
|
|
@@ -34,6 +43,8 @@ export type SandboxFilesProps = {
|
|
|
34
43
|
workspaceWaking?: boolean | undefined;
|
|
35
44
|
/** Whether live reads are currently authoritative. */
|
|
36
45
|
liveWorkspaceReady?: boolean | undefined;
|
|
46
|
+
/** Failed live negotiation; never present a failure as an ongoing wake. */
|
|
47
|
+
workspaceError?: Error | null | undefined;
|
|
37
48
|
/** Deliberately wake the machine to read content absent from the capture. */
|
|
38
49
|
onWakeWorkspace?: (() => void) | undefined;
|
|
39
50
|
themeType?: "dark" | "light" | undefined;
|
|
@@ -46,4 +57,4 @@ export type SandboxFilesProps = {
|
|
|
46
57
|
* surface deliberately does NOT replicate the changed-files list, and does not
|
|
47
58
|
* diff here — one job per tab). The agent commits; the human reviews.
|
|
48
59
|
*/
|
|
49
|
-
export declare function SandboxFiles({ files, git, fileSystemAvailable, usePierre, editable, onEditIntent, requestedPath, requestedPathRequestId, requestedPathReady, workspaceResting, workspaceWaking, liveWorkspaceReady, onWakeWorkspace, themeType, className, }: SandboxFilesProps): import("react").JSX.Element;
|
|
60
|
+
export declare function SandboxFiles({ files, git, fileSystemAvailable, usePierre, editable, onEditIntent, initialSelectedPath, onSelectedPathChange, isNodeVisible, requestedPath, requestedLine, requestedPathRequestId, requestedPathReady, workspaceResting, workspaceWaking, liveWorkspaceReady, workspaceError, onWakeWorkspace, themeType, className, }: SandboxFilesProps): import("react").JSX.Element;
|
|
@@ -3,6 +3,7 @@ import type { SessionEvent } from "@opengeni/sdk";
|
|
|
3
3
|
import { type ClientOverride } from "../provider.js";
|
|
4
4
|
import type { BrowserFrameWebSocketFactory } from "../hooks/use-browser-frame-stream.js";
|
|
5
5
|
import type { ComputerFrameWebSocketFactory } from "../hooks/use-computer-frame-stream.js";
|
|
6
|
+
import type { FileNodeVisibilityPredicate } from "../file-node-visibility.js";
|
|
6
7
|
import { type MachineChip } from "../hooks/use-machine-chip.js";
|
|
7
8
|
import type { MachineView } from "../types/machines.js";
|
|
8
9
|
import { type WorkspaceDockProps, type WorkspaceTab } from "./workspace-dock.js";
|
|
@@ -38,7 +39,7 @@ export declare function initialWorkspaceTab(events: SessionEvent[] | undefined,
|
|
|
38
39
|
export type WorkspaceMachine = {
|
|
39
40
|
/** Whether at least one built-in workbench surface is enabled. */
|
|
40
41
|
enabled: boolean;
|
|
41
|
-
/** The derived live/waking/offline chip model. */
|
|
42
|
+
/** The derived live/waking/sleeping-or-offline chip model. */
|
|
42
43
|
chip: MachineChip;
|
|
43
44
|
/** The machine these surfaces are bound to (the Modal group box or a
|
|
44
45
|
* self-hosted machine), or null while the fleet is still resolving. */
|
|
@@ -72,14 +73,27 @@ export type UseSandboxWorkspaceTabsOptions = ClientOverride & {
|
|
|
72
73
|
browserWebSocketFactory?: BrowserFrameWebSocketFactory | undefined;
|
|
73
74
|
/** Alternate Computer frame transport for non-browser runtimes and deterministic tests. */
|
|
74
75
|
computerWebSocketFactory?: ComputerFrameWebSocketFactory | undefined;
|
|
76
|
+
/** Host-owned setup page or store listing for attaching an existing Chrome profile. */
|
|
77
|
+
browserExtensionSetupUrl?: string | undefined;
|
|
75
78
|
/** File requested by a Changes guard. The Files surface defers the read until
|
|
76
79
|
* the sandbox is live, then reveals this path. */
|
|
77
80
|
requestedFilePath?: string | null | undefined;
|
|
78
81
|
/** Unique identity for `requestedFilePath`, including repeated requests for the
|
|
79
82
|
* same path. */
|
|
80
83
|
requestedFileRequestId?: string | number | null | undefined;
|
|
84
|
+
/** 1-based line to reveal after `requestedFilePath` opens. */
|
|
85
|
+
requestedFileLine?: number | null | undefined;
|
|
81
86
|
/** Route a guarded diff into the host's Files tab. */
|
|
82
87
|
onOpenFile?: ((path: string) => void) | undefined;
|
|
88
|
+
/** Restore and report navigation inside the built-in workbench surfaces. */
|
|
89
|
+
initialFilePath?: string | null | undefined;
|
|
90
|
+
onFilePathChange?: ((path: string | null) => void) | undefined;
|
|
91
|
+
/** Presentation-only filter for Files tree nodes and selected-file viewing. */
|
|
92
|
+
isFileNodeVisible?: FileNodeVisibilityPredicate | undefined;
|
|
93
|
+
initialBrowserSessionId?: string | null | undefined;
|
|
94
|
+
onBrowserSessionIdChange?: ((browserSessionId: string | null) => void) | undefined;
|
|
95
|
+
initialComputerSessionId?: string | null | undefined;
|
|
96
|
+
onComputerSessionIdChange?: ((computerSessionId: string | null) => void) | undefined;
|
|
83
97
|
/** Navigate the host dock to one exact linked ComputerSession. */
|
|
84
98
|
onOpenComputerSession?: ((computerSessionId: string) => void) | undefined;
|
|
85
99
|
requestedComputerSessionId?: string | null | undefined;
|
|
@@ -89,7 +103,8 @@ export type UseSandboxWorkspaceTabsResult = {
|
|
|
89
103
|
/** Changes | Files | Terminal | Browser | Desktop (capability-gated where noted). */
|
|
90
104
|
tabs: WorkspaceTab[];
|
|
91
105
|
/** The source-driven default tab: Changes when the first authoritative capture
|
|
92
|
-
*
|
|
106
|
+
* has changes, else Files (a host `initialTab` overrides). Choosing a tab
|
|
107
|
+
* never performs hidden live workspace I/O.
|
|
93
108
|
* null while that source resolves, or permanently when neither Changes nor
|
|
94
109
|
* Files is enabled; the choice latches once. */
|
|
95
110
|
defaultTab: string | null;
|
|
@@ -119,14 +134,39 @@ export type SandboxWorkspaceProps = ClientOverride & {
|
|
|
119
134
|
/** Host tabs injected AFTER the workbench tabs (e.g. a "Debug" tab). */
|
|
120
135
|
trailingTabs?: WorkspaceTab[] | undefined;
|
|
121
136
|
/** Override the pre-paint default tab (e.g. a host landing tab id). When
|
|
122
|
-
* omitted the workbench decides from
|
|
137
|
+
* omitted the workbench decides from the durable workspace capture. */
|
|
123
138
|
initialTab?: string | undefined;
|
|
139
|
+
onActiveTabChange?: ((activeTab: string) => void) | undefined;
|
|
140
|
+
/** Open a built-in or host-injected tab. A new requestId reopens the same tab. */
|
|
141
|
+
openTabRequest?: {
|
|
142
|
+
tab: string;
|
|
143
|
+
requestId: number;
|
|
144
|
+
} | null | undefined;
|
|
145
|
+
initialFilePath?: string | null | undefined;
|
|
146
|
+
onFilePathChange?: ((path: string | null) => void) | undefined;
|
|
147
|
+
/** Presentation-only filter for Files tree nodes and selected-file viewing. */
|
|
148
|
+
isFileNodeVisible?: FileNodeVisibilityPredicate | undefined;
|
|
149
|
+
/**
|
|
150
|
+
* Host request to open a workspace file (and optional line) in Files. A new
|
|
151
|
+
* `requestId` re-opens even the same path.
|
|
152
|
+
*/
|
|
153
|
+
openFileRequest?: {
|
|
154
|
+
path: string;
|
|
155
|
+
line?: number | null;
|
|
156
|
+
requestId: number;
|
|
157
|
+
} | null | undefined;
|
|
158
|
+
initialBrowserSessionId?: string | null | undefined;
|
|
159
|
+
onBrowserSessionIdChange?: ((browserSessionId: string | null) => void) | undefined;
|
|
160
|
+
initialComputerSessionId?: string | null | undefined;
|
|
161
|
+
onComputerSessionIdChange?: ((computerSessionId: string | null) => void) | undefined;
|
|
124
162
|
/** Host-routed notifications (no toast dependency in the package). */
|
|
125
163
|
onNotify?: ((notification: WorkspaceNotification) => void) | undefined;
|
|
126
164
|
/** Alternate Browser frame transport for non-browser runtimes and deterministic tests. */
|
|
127
165
|
browserWebSocketFactory?: BrowserFrameWebSocketFactory | undefined;
|
|
128
166
|
/** Alternate Computer frame transport for non-browser runtimes and deterministic tests. */
|
|
129
167
|
computerWebSocketFactory?: ComputerFrameWebSocketFactory | undefined;
|
|
168
|
+
/** Host-owned setup page or store listing for attaching an existing Chrome profile. */
|
|
169
|
+
browserExtensionSetupUrl?: string | undefined;
|
|
130
170
|
/** Controlled collapsed state for hosts with their own dock toggle. */
|
|
131
171
|
collapsed?: boolean | undefined;
|
|
132
172
|
onCollapsedChange?: ((collapsed: boolean) => void) | undefined;
|