@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
package/dist/lib/format.d.ts
CHANGED
|
@@ -17,14 +17,43 @@ export declare function tryParseJson(text: string): unknown;
|
|
|
17
17
|
* must NOT say "send a message to revive": a revive turn burns credits the
|
|
18
18
|
* workspace no longer has.
|
|
19
19
|
*/
|
|
20
|
-
export declare const CREDIT_EXHAUSTION_MESSAGE = "Out of
|
|
20
|
+
export declare const CREDIT_EXHAUSTION_MESSAGE = "Out of credits \u2014 this workspace's balance is empty. Add credits to continue; the conversation is preserved.";
|
|
21
|
+
/** A usage ceiling refused the send; the default allowance wording, plus what is safe. */
|
|
22
|
+
export declare const COMPOSER_MEMBER_ALLOWANCE_MESSAGE = "Usage limit reached. A workspace admin can raise this limit. Your draft is preserved.";
|
|
23
|
+
export declare const COMPOSER_WORKSPACE_ALLOWANCE_MESSAGE = "Workspace usage limit reached. An organization admin can raise the workspace budget. Your draft is preserved.";
|
|
21
24
|
/**
|
|
22
25
|
* Actionable composer copy for an edge rejection before a turn is accepted.
|
|
23
26
|
* Unlike an in-flight credit exhaustion, this path has not consumed the
|
|
24
27
|
* actor-private draft or any finalized attachment.
|
|
25
28
|
*/
|
|
26
|
-
export declare const COMPOSER_PAYMENT_REQUIRED_MESSAGE = "
|
|
29
|
+
export declare const COMPOSER_PAYMENT_REQUIRED_MESSAGE = "Your organization doesn't have enough credits to send this message. Add credits or choose a model with another payment source. Your message and attachments are saved.";
|
|
30
|
+
/** Trusted, composer-owned guidance; unlike remote diagnostic prose, this is UI copy. */
|
|
31
|
+
export declare class ComposerStateError extends Error {
|
|
32
|
+
}
|
|
33
|
+
/** A restored request has omitted credentials and must be reconciled, not replayed. */
|
|
34
|
+
export declare class ComposerReconciliationRequiredError extends ComposerStateError {
|
|
35
|
+
constructor();
|
|
36
|
+
}
|
|
37
|
+
export declare class ComposerWorkspaceControlUnavailableError extends Error {
|
|
38
|
+
constructor();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The send named a model that is no longer in the live catalog (retired or
|
|
42
|
+
* removed). Retrying the same send cannot succeed; the person must choose
|
|
43
|
+
* another model, and the typed message stays recoverable via Edit message.
|
|
44
|
+
*/
|
|
45
|
+
export declare const COMPOSER_MODEL_UNAVAILABLE_MESSAGE = "This chat's model is no longer available. Choose another model to continue. Your message is saved.";
|
|
46
|
+
/** `details.code` the API sets on a 422 for a model missing from the live catalog. */
|
|
47
|
+
export declare const MODEL_UNAVAILABLE_DETAIL_CODE = "model_unavailable";
|
|
48
|
+
/**
|
|
49
|
+
* Is this send refusal "the model is no longer available"? Reads the typed
|
|
50
|
+
* `details.code`, and also the historical message so a refusal persisted
|
|
51
|
+
* before a reload (only its text survives) or from an older API is recognized.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isModelUnavailableSubmissionError(error: Error): boolean;
|
|
27
54
|
export declare function composerSubmissionErrorMessage(error: Error): string;
|
|
55
|
+
/** These definitive refusals need a payment, allowance or model change, not an unchanged retry. */
|
|
56
|
+
export declare function composerSubmissionCanRetry(error: Error): boolean;
|
|
28
57
|
/**
|
|
29
58
|
* Does this failure/completion payload (or raw error string) mean the
|
|
30
59
|
* workspace ran out of OpenGeni credits? Matches the engine's
|
|
@@ -48,3 +77,8 @@ export declare function isCreditExhaustion(input: {
|
|
|
48
77
|
* debug surfaces.
|
|
49
78
|
*/
|
|
50
79
|
export declare function humanizeFailureReason(reason: string | null): string | null;
|
|
80
|
+
/** Project failure diagnostics without changing the stored event, including legacy retry wrappers. */
|
|
81
|
+
export declare function presentFailure(payload: Record<string, unknown>): {
|
|
82
|
+
reason: string | null;
|
|
83
|
+
safetyRefusal: boolean;
|
|
84
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type CSSProperties, type RefObject } from "react";
|
|
2
|
+
/** Marks an embed root that resolves the host theme for its subtree. */
|
|
3
|
+
export declare const HOST_THEME_ROOT_ATTRIBUTE = "data-og-host-theme";
|
|
4
|
+
export type HostThemePreference = "auto" | "light" | "dark";
|
|
5
|
+
export type HostSurfacePreference = "host" | "theme";
|
|
6
|
+
export type ResolvedHostTheme = "light" | "dark";
|
|
7
|
+
/**
|
|
8
|
+
* Stock literal color tokens as `[dark, light]`, mirroring `styles/tokens.css`
|
|
9
|
+
* (a test keeps them in sync). A different value inherited from the host means
|
|
10
|
+
* the host customized that token.
|
|
11
|
+
*/
|
|
12
|
+
export declare const STOCK_COLOR_TOKENS: Readonly<Record<string, readonly [string, string]>>;
|
|
13
|
+
type Rgba = {
|
|
14
|
+
r: number;
|
|
15
|
+
g: number;
|
|
16
|
+
b: number;
|
|
17
|
+
a: number;
|
|
18
|
+
};
|
|
19
|
+
/** Parse the `rgb()/rgba()` strings that `getComputedStyle` returns. */
|
|
20
|
+
export declare function parseComputedColor(value: string | null | undefined): Rgba | null;
|
|
21
|
+
/** WCAG relative luminance, 0 (black) to 1 (white). */
|
|
22
|
+
export declare function relativeLuminance({ r, g, b }: Pick<Rgba, "r" | "g" | "b">): number;
|
|
23
|
+
/** Parse a `#rgb`/`#rrggbb` or `rgb()` token value; null for anything else. */
|
|
24
|
+
export declare function parseTokenColor(value: string): Rgba | null;
|
|
25
|
+
/**
|
|
26
|
+
* The theme whose text reads better on this background: dark when the stock
|
|
27
|
+
* light text has the higher contrast ratio. Mid-tone and saturated brand
|
|
28
|
+
* backgrounds land on whichever text actually stays legible.
|
|
29
|
+
*/
|
|
30
|
+
export declare function themeForBackground(color: Pick<Rgba, "r" | "g" | "b">): ResolvedHostTheme;
|
|
31
|
+
/**
|
|
32
|
+
* The first opaque background the element sits on (its ancestors only), or
|
|
33
|
+
* null when the page paints none of its own and the browser canvas shows.
|
|
34
|
+
*/
|
|
35
|
+
export declare function hostBackground(element: Element): Rgba | null;
|
|
36
|
+
/**
|
|
37
|
+
* Resolve light or dark for an embedded root from its host page. Pure DOM
|
|
38
|
+
* reads; never consults `prefers-color-scheme` on its own.
|
|
39
|
+
*/
|
|
40
|
+
export declare function resolveHostTheme(element: Element): ResolvedHostTheme;
|
|
41
|
+
/**
|
|
42
|
+
* Tokens the host customized on an ancestor, by value. Setting our own
|
|
43
|
+
* `data-og-theme` would otherwise reset them to the theme's stock values.
|
|
44
|
+
*/
|
|
45
|
+
export declare function hostTokenOverrides(element: Element): Record<`--${string}`, string>;
|
|
46
|
+
/** Inline token overrides that blend the stock surfaces into the host background. */
|
|
47
|
+
export declare function hostSurfaceStyle(theme: ResolvedHostTheme, background: Pick<Rgba, "r" | "g" | "b"> | null): Record<`--${string}`, string>;
|
|
48
|
+
export type HostTheme = {
|
|
49
|
+
/** `data-og-theme` to set on the root, or undefined to inherit. */
|
|
50
|
+
attribute: ResolvedHostTheme | undefined;
|
|
51
|
+
theme: ResolvedHostTheme | undefined;
|
|
52
|
+
style: CSSProperties | undefined;
|
|
53
|
+
};
|
|
54
|
+
/** Inline style and theme for one embed root. Pure; exported for tests. */
|
|
55
|
+
export declare function resolveHostThemeState(element: Element, preference: HostThemePreference, surface: HostSurfacePreference): {
|
|
56
|
+
theme: ResolvedHostTheme;
|
|
57
|
+
inherited: boolean;
|
|
58
|
+
style: Record<string, string> | null;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Resolve and track the host theme for an embedded root. Re-resolves when the
|
|
62
|
+
* host flips `class`/`data-*`/`style` on <html>, <body> or an ancestor, and
|
|
63
|
+
* when the OS scheme changes (which only matters for hosts that follow it).
|
|
64
|
+
* A root nested inside another embed root inherits its resolution.
|
|
65
|
+
*/
|
|
66
|
+
export declare function useHostTheme(ref: RefObject<HTMLElement | null>, options: {
|
|
67
|
+
theme?: HostThemePreference | undefined;
|
|
68
|
+
surface?: HostSurfacePreference | undefined;
|
|
69
|
+
}): HostTheme;
|
|
70
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OpenGeniApiError } from "@opengeni/sdk";
|
|
2
|
+
/** Media can remain live when the independent control service is unavailable.
|
|
3
|
+
* A target refusal or an uncertain mutation does not establish a service outage. */
|
|
4
|
+
export declare function isInteractionControlUnavailable(error: unknown, request?: "control" | "observation"): error is OpenGeniApiError;
|
|
5
|
+
export declare function isNonRetryableInteractionError(error: unknown): error is OpenGeniApiError;
|
|
6
|
+
export declare function isSourcePlacementChangedError(error: unknown, resource: "browser_session" | "computer_session"): error is OpenGeniApiError;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** The panel: surface-1, 1px hairline, 16px radius, shadow-md, 6px inset. */
|
|
2
|
+
export declare const MENU_SURFACE_CLASS = "rounded-2xl border border-og-border bg-og-surface-1 p-1.5 text-og-fg shadow-og-md";
|
|
3
|
+
/** One row: 32px (44px on coarse pointers), 10px radius, 16px muted icons, 14/400 label. */
|
|
4
|
+
export declare const MENU_ITEM_BASE_CLASS = "relative flex min-h-8 w-full min-w-0 cursor-default items-center gap-2.5 rounded-og-md px-2.5 py-1.5 text-left text-og-menu font-normal text-og-fg outline-hidden select-none transition-colors duration-[120ms] pointer-coarse:min-h-11 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-og-fg-muted";
|
|
5
|
+
/** Radix menu items: hover and keyboard focus take the hover wash; disabled is 50%. */
|
|
6
|
+
export declare const MENU_ITEM_STATE_CLASS = "focus:bg-og-hover data-[highlighted]:bg-og-hover data-[state=open]:bg-og-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[variant=destructive]:text-og-danger data-[variant=destructive]:focus:bg-og-danger/10 data-[variant=destructive]:*:[svg]:text-og-danger!";
|
|
7
|
+
export declare const MENU_ITEM_CLASS = "relative flex min-h-8 w-full min-w-0 cursor-default items-center gap-2.5 rounded-og-md px-2.5 py-1.5 text-left text-og-menu font-normal text-og-fg outline-hidden select-none transition-colors duration-[120ms] pointer-coarse:min-h-11 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-og-fg-muted focus:bg-og-hover data-[highlighted]:bg-og-hover data-[state=open]:bg-og-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[variant=destructive]:text-og-danger data-[variant=destructive]:focus:bg-og-danger/10 data-[variant=destructive]:*:[svg]:text-og-danger!";
|
|
8
|
+
/** The same row as a plain button inside a hand-built popover. */
|
|
9
|
+
export declare const MENU_BUTTON_STATE_CLASS = "cursor-pointer hover:bg-og-hover focus-visible:bg-og-hover focus-visible:outline-2 focus-visible:-outline-offset-2! focus-visible:outline-og-accent/55 disabled:pointer-events-none disabled:opacity-50";
|
|
10
|
+
export declare const MENU_BUTTON_CLASS = "relative flex min-h-8 w-full min-w-0 cursor-default items-center gap-2.5 rounded-og-md px-2.5 py-1.5 text-left text-og-menu font-normal text-og-fg outline-hidden select-none transition-colors duration-[120ms] pointer-coarse:min-h-11 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-og-fg-muted cursor-pointer hover:bg-og-hover focus-visible:bg-og-hover focus-visible:outline-2 focus-visible:-outline-offset-2! focus-visible:outline-og-accent/55 disabled:pointer-events-none disabled:opacity-50";
|
|
11
|
+
/** A group heading inside a menu: 12/500 fg-muted, sentence case. */
|
|
12
|
+
export declare const MENU_LABEL_CLASS = "px-2.5 pt-2 pb-1 text-og-sm font-medium text-og-fg-muted";
|
|
13
|
+
/** The hairline between groups, inside the panel's 6px inset. */
|
|
14
|
+
export declare const MENU_SEPARATOR_CLASS = "my-1.5 h-px shrink-0 bg-og-border";
|
|
15
|
+
/** Right-side meta on a row (counts, the current value). */
|
|
16
|
+
export declare const MENU_META_CLASS = "ml-auto shrink-0 text-og-sm text-og-fg-muted tabular-nums";
|
|
17
|
+
/** The selected option's mark, always on the right. */
|
|
18
|
+
export declare const MENU_CHECK_CLASS = "size-4 shrink-0 text-og-fg";
|
|
19
|
+
/** "Opens a submenu" chevron on the right. */
|
|
20
|
+
export declare const MENU_CHEVRON_CLASS = "size-4 shrink-0 text-og-fg-muted";
|
|
21
|
+
/** A plain sentence inside a menu (empty, loading, unavailable). Never a box. */
|
|
22
|
+
export declare const MENU_NOTE_CLASS = "px-2.5 py-2 text-og-menu text-og-fg-muted";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@pierre/diffs` is an optional heavy peer. The package never names it in an
|
|
3
|
+
* `import()` that the conversation surfaces can reach: bundlers such as
|
|
4
|
+
* Turbopack resolve every reachable dynamic import at build time, so a host
|
|
5
|
+
* without the peer would fail to build. Hosts that install it opt in once with
|
|
6
|
+
* `enablePierreDiffs()` from `@opengeni/react/diffs` (or register their own
|
|
7
|
+
* loader); otherwise diffs and file views use the plain-text renderer.
|
|
8
|
+
*/
|
|
9
|
+
export type PierreDiffsLoader = () => Promise<unknown>;
|
|
10
|
+
/**
|
|
11
|
+
* Register (or clear with `null`) the loader for `@pierre/diffs/react`.
|
|
12
|
+
* Views already on screen retry with the new loader, so a host may register
|
|
13
|
+
* lazily (for example from the route that renders diffs).
|
|
14
|
+
*/
|
|
15
|
+
export declare function registerPierreDiffs(next: PierreDiffsLoader | null): void;
|
|
16
|
+
/** Changes whenever the registered loader changes (for `useSyncExternalStore`). */
|
|
17
|
+
export declare function pierreDiffsRevision(): number;
|
|
18
|
+
export declare function subscribePierreDiffs(listener: () => void): () => void;
|
|
19
|
+
/** Resolve the registered `@pierre/diffs/react` module; rejects when none is registered. */
|
|
20
|
+
export declare function loadPierreDiffs(): Promise<unknown>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { DesktopRfbFactory } from "@opengeni/sdk";
|
|
2
|
+
/** Host-owned imports keep optional peers outside the root's bundler graph. */
|
|
3
|
+
export type WorkbenchPeerLoader<T = unknown> = () => Promise<T>;
|
|
4
|
+
export type CodeEditorLanguage = "javascript" | "json" | "python" | "markdown" | "css" | "html";
|
|
5
|
+
export type CodeEditorLanguages = Partial<Record<CodeEditorLanguage, WorkbenchPeerLoader>>;
|
|
6
|
+
export type CodeEditorPeers = {
|
|
7
|
+
module: unknown;
|
|
8
|
+
languages?: CodeEditorLanguages | undefined;
|
|
9
|
+
};
|
|
10
|
+
export type SandboxTerminalPeers = {
|
|
11
|
+
Terminal: unknown;
|
|
12
|
+
FitAddon: unknown;
|
|
13
|
+
WebLinksAddon: unknown;
|
|
14
|
+
loadWebgl?: WorkbenchPeerLoader | undefined;
|
|
15
|
+
};
|
|
16
|
+
export declare const sandboxTerminalPeers: {
|
|
17
|
+
register(next: WorkbenchPeerLoader<SandboxTerminalPeers> | null): void;
|
|
18
|
+
revision: () => number;
|
|
19
|
+
subscribe(listener: () => void): () => void;
|
|
20
|
+
load(): Promise<SandboxTerminalPeers>;
|
|
21
|
+
};
|
|
22
|
+
export declare const codeEditorPeers: {
|
|
23
|
+
register(next: WorkbenchPeerLoader<CodeEditorPeers> | null): void;
|
|
24
|
+
revision: () => number;
|
|
25
|
+
subscribe(listener: () => void): () => void;
|
|
26
|
+
load(): Promise<CodeEditorPeers>;
|
|
27
|
+
};
|
|
28
|
+
export declare const desktopViewerPeers: {
|
|
29
|
+
register(next: WorkbenchPeerLoader<DesktopRfbFactory> | null): void;
|
|
30
|
+
revision: () => number;
|
|
31
|
+
subscribe(listener: () => void): () => void;
|
|
32
|
+
load(): Promise<DesktopRfbFactory>;
|
|
33
|
+
};
|
|
34
|
+
export declare const registerSandboxTerminal: (next: WorkbenchPeerLoader<SandboxTerminalPeers> | null) => void;
|
|
35
|
+
export declare const registerCodeEditor: (next: WorkbenchPeerLoader<CodeEditorPeers> | null) => void;
|
|
36
|
+
export declare const registerDesktopViewer: (next: WorkbenchPeerLoader<DesktopRfbFactory> | null) => void;
|
|
@@ -6,11 +6,13 @@ export type TokenReader = (name: string) => string | undefined;
|
|
|
6
6
|
* The 16 ANSI colors + selection/cursor treatment, designed against the og
|
|
7
7
|
* OKLCH palette. Hues are borrowed from the og status ramp so terminal color
|
|
8
8
|
* reads as part of the same system: red≈status-failed(22), green≈status-idle
|
|
9
|
-
* (155), yellow≈status-running(80),
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
9
|
+
* (155), yellow≈status-running(80), magenta(305), cyan≈200. The ANSI blue and
|
|
10
|
+
* magenta slots stay chromatic because program output means them; the app
|
|
11
|
+
* chrome around the terminal is neutral. Dark uses lifted lightness on the
|
|
12
|
+
* dark neutral ground; light uses deeper, more saturated inks on the
|
|
13
|
+
* near-white ground. Bright variants add lightness + a touch of chroma.
|
|
14
|
+
* `black`/`white` and the selection are neutral grey ramp stops (never pure
|
|
15
|
+
* #000/#fff — that clashes with the calm neutral ground).
|
|
14
16
|
*/
|
|
15
17
|
export type AnsiPalette = {
|
|
16
18
|
black: string;
|
package/dist/machines.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { ConnectionStatus, MachineKind, MachineMetricsSeriesResponse, MachineState, MachineView, MachinesResponse, MetricSample, } from "./types/machines.js";
|
|
1
|
+
export type { ConnectionStatus, MachineKind, MachineOperationPolicy, MachineMetricsSeriesResponse, MachineState, MachineView, MachinesResponse, MetricSample, } from "./types/machines.js";
|
|
2
2
|
export { connectionStatusForState } from "./types/machines.js";
|
|
3
3
|
export { ConnectionDot, ConnectionStatusPill, MachineStatusPill, CONNECTION_STATUS_META, MACHINE_STATE_BADGE_META, } from "./components/machine-status-pill.js";
|
|
4
4
|
export type { ConnectionDotProps, ConnectionStatusMeta, ConnectionStatusPillProps, MachineStateBadgeMeta, MachineStatusPillProps, } from "./components/machine-status-pill.js";
|
|
@@ -16,6 +16,8 @@ export { MetricHistoryChart } from "./components/machines/metric-history-chart.j
|
|
|
16
16
|
export type { MetricHistoryChartProps, SeriesPoint, } from "./components/machines/metric-history-chart.js";
|
|
17
17
|
export { MachineDetail } from "./components/machines/machine-detail.js";
|
|
18
18
|
export type { MachineDetailProps } from "./components/machines/machine-detail.js";
|
|
19
|
+
export { MachineOperationPolicyEditor } from "./components/machines/machine-operation-policy.js";
|
|
20
|
+
export type { MachineOperationPolicyEditorProps } from "./components/machines/machine-operation-policy.js";
|
|
19
21
|
export { METRICS, METRIC_WINDOWS, WINDOW_LABEL, pointsFor } from "./components/machines/series.js";
|
|
20
22
|
export type { MetricDef, MetricKey, MetricWindow } from "./components/machines/series.js";
|
|
21
23
|
export { MachinesDashboard } from "./components/machines-dashboard.js";
|
|
@@ -26,5 +28,5 @@ export { EnrollmentDeviceFlow } from "./components/enrollment-device-flow.js";
|
|
|
26
28
|
export type { DeviceFlowPhase, EnrollmentDeviceFlowProps, } from "./components/enrollment-device-flow.js";
|
|
27
29
|
export { EnrollmentConsent } from "./components/enrollment-consent.js";
|
|
28
30
|
export type { EnrollmentConsentMachine, EnrollmentConsentPhase, EnrollmentConsentProps, } from "./components/enrollment-consent.js";
|
|
29
|
-
export { useMachines } from "./hooks/use-machines.js";
|
|
31
|
+
export { useMachines, MACHINES_COMPOSER_POLL_MS, MACHINES_DASHBOARD_POLL_MS, MACHINES_SESSION_POLL_MS, } from "./hooks/use-machines.js";
|
|
30
32
|
export type { MachinesClientLike, UseMachinesOptions, UseMachinesResult, } from "./hooks/use-machines.js";
|
package/dist/machines.js
CHANGED
|
@@ -5,6 +5,9 @@ import {
|
|
|
5
5
|
EnrollmentConsent,
|
|
6
6
|
EnrollmentDeviceFlow,
|
|
7
7
|
HEALTH_TOKEN,
|
|
8
|
+
MACHINES_COMPOSER_POLL_MS,
|
|
9
|
+
MACHINES_DASHBOARD_POLL_MS,
|
|
10
|
+
MACHINES_SESSION_POLL_MS,
|
|
8
11
|
MACHINE_STATE_BADGE_META,
|
|
9
12
|
METRICS,
|
|
10
13
|
METRIC_WINDOWS,
|
|
@@ -13,6 +16,7 @@ import {
|
|
|
13
16
|
MachineDockBar,
|
|
14
17
|
MachineHealthPill,
|
|
15
18
|
MachineMetrics,
|
|
19
|
+
MachineOperationPolicyEditor,
|
|
16
20
|
MachineStatusPill,
|
|
17
21
|
MachinesDashboard,
|
|
18
22
|
MetricHistoryChart,
|
|
@@ -24,10 +28,12 @@ import {
|
|
|
24
28
|
healthPulses,
|
|
25
29
|
pointsFor,
|
|
26
30
|
useMachines
|
|
27
|
-
} from "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
+
} from "./chunk-EESD3PY3.js";
|
|
32
|
+
import "./chunk-3CTRFMAK.js";
|
|
33
|
+
import "./chunk-UTRTG6LH.js";
|
|
34
|
+
import "./chunk-YQEAA6LT.js";
|
|
35
|
+
import "./chunk-UGLEYEMP.js";
|
|
36
|
+
import "./chunk-TKOTKRWY.js";
|
|
31
37
|
import "./chunk-22KP6LR5.js";
|
|
32
38
|
export {
|
|
33
39
|
CONNECTION_STATUS_META,
|
|
@@ -36,6 +42,9 @@ export {
|
|
|
36
42
|
EnrollmentConsent,
|
|
37
43
|
EnrollmentDeviceFlow,
|
|
38
44
|
HEALTH_TOKEN,
|
|
45
|
+
MACHINES_COMPOSER_POLL_MS,
|
|
46
|
+
MACHINES_DASHBOARD_POLL_MS,
|
|
47
|
+
MACHINES_SESSION_POLL_MS,
|
|
39
48
|
MACHINE_STATE_BADGE_META,
|
|
40
49
|
METRICS,
|
|
41
50
|
METRIC_WINDOWS,
|
|
@@ -44,6 +53,7 @@ export {
|
|
|
44
53
|
MachineDockBar,
|
|
45
54
|
MachineHealthPill,
|
|
46
55
|
MachineMetrics,
|
|
56
|
+
MachineOperationPolicyEditor,
|
|
47
57
|
MachineStatusPill,
|
|
48
58
|
MachinesDashboard,
|
|
49
59
|
MetricHistoryChart,
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// src/components/markdown-table-layout.ts
|
|
2
|
+
function markdownTableWidth({
|
|
3
|
+
columnLeft,
|
|
4
|
+
columnWidth,
|
|
5
|
+
contentLeft,
|
|
6
|
+
contentRight,
|
|
7
|
+
preferredWidth
|
|
8
|
+
}) {
|
|
9
|
+
const center = columnLeft + columnWidth / 2;
|
|
10
|
+
const available = 2 * Math.min(center - contentLeft, contentRight - center);
|
|
11
|
+
return Math.max(columnWidth, Math.min(preferredWidth, available));
|
|
12
|
+
}
|
|
13
|
+
function measurementCopy(source, document) {
|
|
14
|
+
if (source.nodeType === Node.ELEMENT_NODE) {
|
|
15
|
+
const element = source;
|
|
16
|
+
if (element.localName.includes("-") || ["iframe", "object", "embed", "video", "audio", "canvas", "script"].includes(
|
|
17
|
+
element.localName
|
|
18
|
+
)) {
|
|
19
|
+
const bounds = element.getBoundingClientRect();
|
|
20
|
+
const placeholder = document.createElement("span");
|
|
21
|
+
placeholder.style.display = "inline-block";
|
|
22
|
+
placeholder.style.width = `${bounds.width}px`;
|
|
23
|
+
placeholder.style.height = `${bounds.height}px`;
|
|
24
|
+
return placeholder;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const copy = document.importNode(source, false);
|
|
28
|
+
if (copy.nodeType === Node.ELEMENT_NODE) {
|
|
29
|
+
const element = copy;
|
|
30
|
+
element.removeAttribute("id");
|
|
31
|
+
for (const attribute of [...element.attributes]) {
|
|
32
|
+
if (attribute.name.startsWith("on")) element.removeAttribute(attribute.name);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
for (const child of source.childNodes) copy.appendChild(measurementCopy(child, document));
|
|
36
|
+
return copy;
|
|
37
|
+
}
|
|
38
|
+
function observeMarkdownTableLayout(wrapper, table) {
|
|
39
|
+
const body = wrapper.parentElement;
|
|
40
|
+
const scroller = body?.closest("[data-og-wide-table-message]")?.closest("[data-og-timeline-scroller]");
|
|
41
|
+
if (!body?.classList.contains("og-markdown-body") || !scroller) return;
|
|
42
|
+
const measurementDocument = table.ownerDocument.implementation.createHTMLDocument("");
|
|
43
|
+
let width = null;
|
|
44
|
+
const reset = () => {
|
|
45
|
+
width = null;
|
|
46
|
+
wrapper.style.width = "";
|
|
47
|
+
wrapper.style.maxWidth = "";
|
|
48
|
+
wrapper.style.marginInline = "";
|
|
49
|
+
};
|
|
50
|
+
const measure = () => {
|
|
51
|
+
for (let ancestor = body; ancestor && ancestor !== scroller; ancestor = ancestor.parentElement) {
|
|
52
|
+
if (getComputedStyle(ancestor).overflowX !== "visible") {
|
|
53
|
+
reset();
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const column = body.getBoundingClientRect();
|
|
58
|
+
const panel = scroller.getBoundingClientRect();
|
|
59
|
+
const panelStyle = getComputedStyle(scroller);
|
|
60
|
+
const left = panel.left + scroller.clientLeft + parseFloat(panelStyle.paddingLeft);
|
|
61
|
+
const right = panel.left + scroller.clientLeft + scroller.clientWidth - parseFloat(panelStyle.paddingRight);
|
|
62
|
+
const probe = table.ownerDocument.createElement("div");
|
|
63
|
+
probe.setAttribute("aria-hidden", "true");
|
|
64
|
+
probe.inert = true;
|
|
65
|
+
probe.style.cssText = "position:absolute;width:0;height:0;overflow:hidden;contain:layout size paint;visibility:hidden;pointer-events:none";
|
|
66
|
+
const copy = measurementCopy(table, measurementDocument);
|
|
67
|
+
copy.style.width = "max-content";
|
|
68
|
+
probe.append(copy);
|
|
69
|
+
let preferred;
|
|
70
|
+
try {
|
|
71
|
+
table.parentElement.append(probe);
|
|
72
|
+
preferred = copy.getBoundingClientRect().width;
|
|
73
|
+
} finally {
|
|
74
|
+
probe.remove();
|
|
75
|
+
}
|
|
76
|
+
const next = markdownTableWidth({
|
|
77
|
+
columnLeft: column.left,
|
|
78
|
+
columnWidth: column.width,
|
|
79
|
+
contentLeft: left,
|
|
80
|
+
contentRight: right,
|
|
81
|
+
preferredWidth: preferred
|
|
82
|
+
});
|
|
83
|
+
if (width !== null && Math.abs(width - next) < 0.5) return;
|
|
84
|
+
width = next;
|
|
85
|
+
wrapper.style.width = `${width}px`;
|
|
86
|
+
wrapper.style.maxWidth = "none";
|
|
87
|
+
wrapper.style.marginInline = `calc((100% - ${width}px) / 2)`;
|
|
88
|
+
};
|
|
89
|
+
measure();
|
|
90
|
+
const observer = typeof ResizeObserver === "undefined" ? void 0 : new ResizeObserver(measure);
|
|
91
|
+
observer?.observe(scroller);
|
|
92
|
+
observer?.observe(body);
|
|
93
|
+
observer?.observe(table);
|
|
94
|
+
return {
|
|
95
|
+
measure,
|
|
96
|
+
disconnect: () => {
|
|
97
|
+
observer?.disconnect();
|
|
98
|
+
reset();
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export {
|
|
103
|
+
markdownTableWidth,
|
|
104
|
+
observeMarkdownTableLayout
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=markdown-table-layout-QXSLK4BY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/markdown-table-layout.ts"],"sourcesContent":["export function markdownTableWidth({\n columnLeft,\n columnWidth,\n contentLeft,\n contentRight,\n preferredWidth,\n}: {\n columnLeft: number;\n columnWidth: number;\n contentLeft: number;\n contentRight: number;\n preferredWidth: number;\n}): number {\n const center = columnLeft + columnWidth / 2;\n const available = 2 * Math.min(center - contentLeft, contentRight - center);\n return Math.max(columnWidth, Math.min(preferredWidth, available));\n}\n\nfunction measurementCopy(source: Node, document: Document): Node {\n if (source.nodeType === Node.ELEMENT_NODE) {\n const element = source as Element;\n // Inert prevents focus, not custom-element construction, media loading or\n // embedded browsing contexts. Do not clone those host-rendered surfaces.\n if (\n element.localName.includes(\"-\") ||\n [\"iframe\", \"object\", \"embed\", \"video\", \"audio\", \"canvas\", \"script\"].includes(\n element.localName,\n )\n ) {\n const bounds = element.getBoundingClientRect();\n const placeholder = document.createElement(\"span\");\n placeholder.style.display = \"inline-block\";\n placeholder.style.width = `${bounds.width}px`;\n placeholder.style.height = `${bounds.height}px`;\n return placeholder;\n }\n }\n const copy = document.importNode(source, false);\n if (copy.nodeType === Node.ELEMENT_NODE) {\n const element = copy as Element;\n element.removeAttribute(\"id\");\n for (const attribute of [...element.attributes]) {\n if (attribute.name.startsWith(\"on\")) element.removeAttribute(attribute.name);\n }\n }\n for (const child of source.childNodes) copy.appendChild(measurementCopy(child, document));\n return copy;\n}\n\n/** Loaded only for assistant tables. Keep prose and nested scroll owners intact. */\nexport function observeMarkdownTableLayout(wrapper: HTMLDivElement, table: HTMLTableElement) {\n const body = wrapper.parentElement;\n const scroller = body\n ?.closest(\"[data-og-wide-table-message]\")\n ?.closest<HTMLElement>(\"[data-og-timeline-scroller]\");\n if (!body?.classList.contains(\"og-markdown-body\") || !scroller) return;\n\n // Build the static copy without a browsing context before inserting its probe.\n const measurementDocument = table.ownerDocument.implementation.createHTMLDocument(\"\");\n let width: number | null = null;\n const reset = () => {\n width = null;\n wrapper.style.width = \"\";\n wrapper.style.maxWidth = \"\";\n wrapper.style.marginInline = \"\";\n };\n const measure = () => {\n // Intermediate clipped/scrollable surfaces own their own content bounds.\n for (\n let ancestor: HTMLElement | null = body;\n ancestor && ancestor !== scroller;\n ancestor = ancestor.parentElement\n ) {\n if (getComputedStyle(ancestor).overflowX !== \"visible\") {\n reset();\n return;\n }\n }\n const column = body.getBoundingClientRect();\n const panel = scroller.getBoundingClientRect();\n const panelStyle = getComputedStyle(scroller);\n const left = panel.left + scroller.clientLeft + parseFloat(panelStyle.paddingLeft);\n const right =\n panel.left + scroller.clientLeft + scroller.clientWidth - parseFloat(panelStyle.paddingRight);\n\n // Even a temporary max-content width on the live table changes its height\n // during forced layout. Browser scroll anchoring can retain that displacement\n // after the width is restored. Measure a copy without touching live geometry.\n const probe = table.ownerDocument.createElement(\"div\");\n probe.setAttribute(\"aria-hidden\", \"true\");\n probe.inert = true;\n // A zero-sized, contained box cannot extend the scroller's overflow area,\n // including inside transformed ancestors. Keep the same inherited styling.\n probe.style.cssText =\n \"position:absolute;width:0;height:0;overflow:hidden;contain:layout size paint;visibility:hidden;pointer-events:none\";\n const copy = measurementCopy(table, measurementDocument) as HTMLTableElement;\n copy.style.width = \"max-content\";\n probe.append(copy);\n let preferred: number;\n try {\n table.parentElement!.append(probe);\n preferred = copy.getBoundingClientRect().width;\n } finally {\n probe.remove();\n }\n const next = markdownTableWidth({\n columnLeft: column.left,\n columnWidth: column.width,\n contentLeft: left,\n contentRight: right,\n preferredWidth: preferred,\n });\n if (width !== null && Math.abs(width - next) < 0.5) return;\n width = next;\n wrapper.style.width = `${width}px`;\n wrapper.style.maxWidth = \"none\";\n wrapper.style.marginInline = `calc((100% - ${width}px) / 2)`;\n };\n\n measure();\n const observer = typeof ResizeObserver === \"undefined\" ? undefined : new ResizeObserver(measure);\n observer?.observe(scroller);\n observer?.observe(body);\n observer?.observe(table);\n return {\n measure,\n disconnect: () => {\n observer?.disconnect();\n reset();\n },\n };\n}\n"],"mappings":";AAAO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMW;AACT,QAAM,SAAS,aAAa,cAAc;AAC1C,QAAM,YAAY,IAAI,KAAK,IAAI,SAAS,aAAa,eAAe,MAAM;AAC1E,SAAO,KAAK,IAAI,aAAa,KAAK,IAAI,gBAAgB,SAAS,CAAC;AAClE;AAEA,SAAS,gBAAgB,QAAc,UAA0B;AAC/D,MAAI,OAAO,aAAa,KAAK,cAAc;AACzC,UAAM,UAAU;AAGhB,QACE,QAAQ,UAAU,SAAS,GAAG,KAC9B,CAAC,UAAU,UAAU,SAAS,SAAS,SAAS,UAAU,QAAQ,EAAE;AAAA,MAClE,QAAQ;AAAA,IACV,GACA;AACA,YAAM,SAAS,QAAQ,sBAAsB;AAC7C,YAAM,cAAc,SAAS,cAAc,MAAM;AACjD,kBAAY,MAAM,UAAU;AAC5B,kBAAY,MAAM,QAAQ,GAAG,OAAO,KAAK;AACzC,kBAAY,MAAM,SAAS,GAAG,OAAO,MAAM;AAC3C,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,OAAO,SAAS,WAAW,QAAQ,KAAK;AAC9C,MAAI,KAAK,aAAa,KAAK,cAAc;AACvC,UAAM,UAAU;AAChB,YAAQ,gBAAgB,IAAI;AAC5B,eAAW,aAAa,CAAC,GAAG,QAAQ,UAAU,GAAG;AAC/C,UAAI,UAAU,KAAK,WAAW,IAAI,EAAG,SAAQ,gBAAgB,UAAU,IAAI;AAAA,IAC7E;AAAA,EACF;AACA,aAAW,SAAS,OAAO,WAAY,MAAK,YAAY,gBAAgB,OAAO,QAAQ,CAAC;AACxF,SAAO;AACT;AAGO,SAAS,2BAA2B,SAAyB,OAAyB;AAC3F,QAAM,OAAO,QAAQ;AACrB,QAAM,WAAW,MACb,QAAQ,8BAA8B,GACtC,QAAqB,6BAA6B;AACtD,MAAI,CAAC,MAAM,UAAU,SAAS,kBAAkB,KAAK,CAAC,SAAU;AAGhE,QAAM,sBAAsB,MAAM,cAAc,eAAe,mBAAmB,EAAE;AACpF,MAAI,QAAuB;AAC3B,QAAM,QAAQ,MAAM;AAClB,YAAQ;AACR,YAAQ,MAAM,QAAQ;AACtB,YAAQ,MAAM,WAAW;AACzB,YAAQ,MAAM,eAAe;AAAA,EAC/B;AACA,QAAM,UAAU,MAAM;AAEpB,aACM,WAA+B,MACnC,YAAY,aAAa,UACzB,WAAW,SAAS,eACpB;AACA,UAAI,iBAAiB,QAAQ,EAAE,cAAc,WAAW;AACtD,cAAM;AACN;AAAA,MACF;AAAA,IACF;AACA,UAAM,SAAS,KAAK,sBAAsB;AAC1C,UAAM,QAAQ,SAAS,sBAAsB;AAC7C,UAAM,aAAa,iBAAiB,QAAQ;AAC5C,UAAM,OAAO,MAAM,OAAO,SAAS,aAAa,WAAW,WAAW,WAAW;AACjF,UAAM,QACJ,MAAM,OAAO,SAAS,aAAa,SAAS,cAAc,WAAW,WAAW,YAAY;AAK9F,UAAM,QAAQ,MAAM,cAAc,cAAc,KAAK;AACrD,UAAM,aAAa,eAAe,MAAM;AACxC,UAAM,QAAQ;AAGd,UAAM,MAAM,UACV;AACF,UAAM,OAAO,gBAAgB,OAAO,mBAAmB;AACvD,SAAK,MAAM,QAAQ;AACnB,UAAM,OAAO,IAAI;AACjB,QAAI;AACJ,QAAI;AACF,YAAM,cAAe,OAAO,KAAK;AACjC,kBAAY,KAAK,sBAAsB,EAAE;AAAA,IAC3C,UAAE;AACA,YAAM,OAAO;AAAA,IACf;AACA,UAAM,OAAO,mBAAmB;AAAA,MAC9B,YAAY,OAAO;AAAA,MACnB,aAAa,OAAO;AAAA,MACpB,aAAa;AAAA,MACb,cAAc;AAAA,MACd,gBAAgB;AAAA,IAClB,CAAC;AACD,QAAI,UAAU,QAAQ,KAAK,IAAI,QAAQ,IAAI,IAAI,IAAK;AACpD,YAAQ;AACR,YAAQ,MAAM,QAAQ,GAAG,KAAK;AAC9B,YAAQ,MAAM,WAAW;AACzB,YAAQ,MAAM,eAAe,gBAAgB,KAAK;AAAA,EACpD;AAEA,UAAQ;AACR,QAAM,WAAW,OAAO,mBAAmB,cAAc,SAAY,IAAI,eAAe,OAAO;AAC/F,YAAU,QAAQ,QAAQ;AAC1B,YAAU,QAAQ,IAAI;AACtB,YAAU,QAAQ,KAAK;AACvB,SAAO;AAAA,IACL;AAAA,IACA,YAAY,MAAM;AAChB,gBAAU,WAAW;AACrB,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CapabilityCatalogItem, ConnectionMetadata } from "@opengeni/sdk";
|
|
2
|
+
/** Status only; runtime use is authorized for the authenticated initiating user. */
|
|
3
|
+
export declare function matchingActiveMcpConnections(item: CapabilityCatalogItem, connections: ConnectionMetadata[]): ConnectionMetadata[];
|
|
4
|
+
/** Installation availability is not account readiness. Revoked history is not actionable. */
|
|
5
|
+
export declare function mcpConnectionDiscoveryState(item: CapabilityCatalogItem, connections: ConnectionMetadata[]): {
|
|
6
|
+
readonly status: "added";
|
|
7
|
+
readonly label: "Connected";
|
|
8
|
+
} | {
|
|
9
|
+
readonly status: "attention";
|
|
10
|
+
readonly label: "Review connection";
|
|
11
|
+
} | {
|
|
12
|
+
readonly status: "available";
|
|
13
|
+
readonly label: "Connect";
|
|
14
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ModelPolicyPickerMenu,
|
|
3
|
+
ModelPolicyPickerPopover
|
|
4
|
+
} from "./chunk-WGXVEJO5.js";
|
|
5
|
+
import "./chunk-26ZNDDLZ.js";
|
|
6
|
+
import "./chunk-K3HQAKQX.js";
|
|
7
|
+
import "./chunk-RLUSC2WA.js";
|
|
8
|
+
import "./chunk-VZTQ73XT.js";
|
|
9
|
+
import "./chunk-22KP6LR5.js";
|
|
10
|
+
export {
|
|
11
|
+
ModelPolicyPickerMenu,
|
|
12
|
+
ModelPolicyPickerPopover
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=model-policy-picker-menu-M54ISBMN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/model-policy.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { type ModelPickerBillingClass } from "@opengeni/sdk/model-picker-order";
|
|
1
2
|
import type { ClientModel, ReasoningEffort, WorkspaceModelCatalogModel } from "@opengeni/sdk";
|
|
2
|
-
export type PickerBillingClass =
|
|
3
|
+
export type PickerBillingClass = ModelPickerBillingClass;
|
|
3
4
|
export type PickerModelRow<TCatalog extends ClientModel = WorkspaceModelCatalogModel> = {
|
|
4
5
|
id: string;
|
|
5
6
|
label: string;
|
|
@@ -16,6 +17,8 @@ export type PickerModelRow<TCatalog extends ClientModel = WorkspaceModelCatalogM
|
|
|
16
17
|
export type LatencyModeId = "standard" | "priority" | "fast";
|
|
17
18
|
export declare function billingClassForModel(model: ClientModel): PickerBillingClass;
|
|
18
19
|
export declare function billingClassLabel(billingClass: PickerBillingClass): string;
|
|
20
|
+
/** The group label that names the connection scope, for Models settings only. */
|
|
21
|
+
export declare function scopedBillingClassLabel(billingClass: PickerBillingClass): string;
|
|
19
22
|
export declare function availabilityReasonLabel(reason: WorkspaceModelCatalogModel["availability"]["reason"]): string | null;
|
|
20
23
|
export declare function effortOptionsForModel(model: ClientModel): ReasoningEffort[];
|
|
21
24
|
export declare function defaultEffortForModel(model: ClientModel): ReasoningEffort;
|
|
@@ -23,6 +26,8 @@ export declare function coerceReasoningEffortForModel(model: ClientModel, effort
|
|
|
23
26
|
export declare function runnableLatencyModesForModel(model: ClientModel): LatencyModeId[];
|
|
24
27
|
export declare function labelLatencyMode(mode: LatencyModeId): string;
|
|
25
28
|
export declare function labelReasoningEffort(effort: ReasoningEffort): string;
|
|
29
|
+
/** Payment prompts must use cost policy, never the presentation group. */
|
|
30
|
+
export declare function modelUsesCredits(model: ClientModel | undefined): boolean;
|
|
26
31
|
export declare function payerSummaryForModel(model: ClientModel): string;
|
|
27
32
|
export declare function advancedSourceSummary(model: ClientModel): string | null;
|
|
28
33
|
export declare function projectPickerRows(models: WorkspaceModelCatalogModel[]): PickerModelRow[];
|
|
@@ -30,13 +35,24 @@ export declare function projectPickerRows(models: WorkspaceModelCatalogModel[]):
|
|
|
30
35
|
export declare function projectClientModelRows(models: ClientModel[]): PickerModelRow<ClientModel>[];
|
|
31
36
|
export declare function sortPickerRows<TCatalog extends ClientModel>(rows: PickerModelRow<TCatalog>[]): PickerModelRow<TCatalog>[];
|
|
32
37
|
export declare function findPickerRow<TCatalog extends ClientModel>(rows: PickerModelRow<TCatalog>[], modelId: string): PickerModelRow<TCatalog> | null;
|
|
33
|
-
export
|
|
38
|
+
export type GroupPickerRowsOptions = {
|
|
39
|
+
codexOnly?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Default true: organization- and workspace-connected keys share one group
|
|
42
|
+
* and identical copies show once. Models settings passes false.
|
|
43
|
+
*/
|
|
44
|
+
collapseScopes?: boolean | undefined;
|
|
45
|
+
/** Kept visible when it has an identical twin (see below). */
|
|
46
|
+
selectedId?: string | undefined;
|
|
47
|
+
};
|
|
48
|
+
export declare function groupPickerRowsByBillingClass(rows: PickerModelRow[], options?: GroupPickerRowsOptions): Array<{
|
|
34
49
|
billingClass: PickerBillingClass;
|
|
35
50
|
label: string;
|
|
36
51
|
rows: PickerModelRow[];
|
|
37
52
|
}>;
|
|
38
|
-
export declare function groupPickerRowsByBillingClass<TCatalog extends ClientModel>(rows: PickerModelRow<TCatalog>[]): Array<{
|
|
53
|
+
export declare function groupPickerRowsByBillingClass<TCatalog extends ClientModel>(rows: PickerModelRow<TCatalog>[], options?: GroupPickerRowsOptions): Array<{
|
|
39
54
|
billingClass: PickerBillingClass;
|
|
40
55
|
label: string;
|
|
41
56
|
rows: PickerModelRow<TCatalog>[];
|
|
42
57
|
}>;
|
|
58
|
+
export { modelDisplayName, modelVendor } from "@opengeni/sdk/model-display";
|
package/dist/model-policy.js
CHANGED
|
@@ -10,12 +10,16 @@ import {
|
|
|
10
10
|
groupPickerRowsByBillingClass,
|
|
11
11
|
labelLatencyMode,
|
|
12
12
|
labelReasoningEffort,
|
|
13
|
+
modelDisplayName,
|
|
14
|
+
modelUsesCredits,
|
|
15
|
+
modelVendor,
|
|
13
16
|
payerSummaryForModel,
|
|
14
17
|
projectClientModelRows,
|
|
15
18
|
projectPickerRows,
|
|
16
19
|
runnableLatencyModesForModel,
|
|
20
|
+
scopedBillingClassLabel,
|
|
17
21
|
sortPickerRows
|
|
18
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-RLUSC2WA.js";
|
|
19
23
|
export {
|
|
20
24
|
advancedSourceSummary,
|
|
21
25
|
availabilityReasonLabel,
|
|
@@ -28,10 +32,14 @@ export {
|
|
|
28
32
|
groupPickerRowsByBillingClass,
|
|
29
33
|
labelLatencyMode,
|
|
30
34
|
labelReasoningEffort,
|
|
35
|
+
modelDisplayName,
|
|
36
|
+
modelUsesCredits,
|
|
37
|
+
modelVendor,
|
|
31
38
|
payerSummaryForModel,
|
|
32
39
|
projectClientModelRows,
|
|
33
40
|
projectPickerRows,
|
|
34
41
|
runnableLatencyModesForModel,
|
|
42
|
+
scopedBillingClassLabel,
|
|
35
43
|
sortPickerRows
|
|
36
44
|
};
|
|
37
45
|
//# sourceMappingURL=model-policy.js.map
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Await-compatible older-history result with a causal commit receipt.
|
|
3
|
+
*
|
|
4
|
+
* `committed` flips synchronously before the accepted older window is exposed
|
|
5
|
+
* to React. Returning this exact object preserves the receipt directly;
|
|
6
|
+
* synchronous wrappers that discard it remain supported through receipt
|
|
7
|
+
* capture, while replacing it asynchronously with a plain promise does not.
|
|
8
|
+
*/
|
|
9
|
+
export type OlderHistoryLoadReceipt = Promise<boolean> & {
|
|
10
|
+
readonly committed: boolean;
|
|
11
|
+
readonly tailPreserved?: boolean;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Source-compatible public callback accepted by MessageTimeline.
|
|
15
|
+
*
|
|
16
|
+
* The callback historically returned `void`, which permits consumers to
|
|
17
|
+
* return any synchronous value or promise. Receipt-aware loaders opt into the
|
|
18
|
+
* stronger runtime contract by returning (or synchronously creating through a
|
|
19
|
+
* wrapper) an {@link OlderHistoryLoadReceipt}.
|
|
20
|
+
*/
|
|
21
|
+
export type OlderHistoryLoader = () => unknown;
|
|
22
|
+
type OlderHistoryReceiptCapture = (receipt: OlderHistoryLoadReceipt) => void;
|
|
23
|
+
/** Bind a receipt before a synchronous forwarding stack can publish state. */
|
|
24
|
+
export declare function invokeOlderHistoryLoaderWithReceiptCapture(load: OlderHistoryLoader, capture: OlderHistoryReceiptCapture, preserveTail?: boolean): unknown;
|
|
25
|
+
/**
|
|
26
|
+
* Build an await-compatible older-history receipt for custom timeline hosts.
|
|
27
|
+
* Call `markCommitted` immediately before publishing an accepted older window.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createOlderHistoryLoadReceipt(load: (markCommitted: () => void, preserveTail: boolean, markTailPreserved: () => void) => boolean | Promise<boolean>): OlderHistoryLoadReceipt;
|
|
30
|
+
export {};
|