@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/src/timeline/types.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
AllowanceExhaustedRefusal,
|
|
3
|
+
HumanInputQuestion,
|
|
4
|
+
HumanInputResponse,
|
|
2
5
|
MediaGenerationResult,
|
|
3
6
|
ResourceRef,
|
|
4
7
|
SessionStatus,
|
|
@@ -6,6 +9,7 @@ import type {
|
|
|
6
9
|
TimelineAnnotationSource,
|
|
7
10
|
ToolAuthNeededPayload,
|
|
8
11
|
ToolRef,
|
|
12
|
+
ToolDisplayMetadata,
|
|
9
13
|
} from "@opengeni/sdk";
|
|
10
14
|
|
|
11
15
|
/* ----------------------------------------------------------------------------
|
|
@@ -27,6 +31,13 @@ export type TimelineAnnotationSourceDescriptor = Omit<
|
|
|
27
31
|
export type UserMessageItem = {
|
|
28
32
|
kind: "user-message";
|
|
29
33
|
id: string;
|
|
34
|
+
/**
|
|
35
|
+
* Renderer-only identity shared by a locally acknowledged message and the
|
|
36
|
+
* durable event that replaces it. The canonical event id remains `id`; this
|
|
37
|
+
* key only prevents the optimistic-to-durable handoff from remounting and
|
|
38
|
+
* replaying the row entrance animation.
|
|
39
|
+
*/
|
|
40
|
+
reconciliationKey?: string | undefined;
|
|
30
41
|
text: string;
|
|
31
42
|
annotations?: TimelineAnnotation[] | undefined;
|
|
32
43
|
annotationSource?: TimelineAnnotationSourceDescriptor | undefined;
|
|
@@ -46,19 +57,55 @@ export type UserMessageItem = {
|
|
|
46
57
|
state: "sending" | "queued" | "failed";
|
|
47
58
|
error?: string | undefined;
|
|
48
59
|
onRetry?: (() => void) | undefined;
|
|
60
|
+
onEdit?: (() => void) | undefined;
|
|
49
61
|
onRemove?: (() => void) | undefined;
|
|
50
62
|
}
|
|
51
63
|
| undefined;
|
|
52
64
|
};
|
|
53
65
|
|
|
66
|
+
export type HumanInputAnswerSummary = {
|
|
67
|
+
questionId: string;
|
|
68
|
+
label: string;
|
|
69
|
+
prompt: string;
|
|
70
|
+
values: string[];
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* One resolved structured question in the conversation. The live pending form
|
|
75
|
+
* is rendered at the timeline tip by the host; after settlement this item keeps
|
|
76
|
+
* both the agent's question and the human's answer visible as chat history.
|
|
77
|
+
*/
|
|
78
|
+
export type HumanInputItem = {
|
|
79
|
+
kind: "human-input";
|
|
80
|
+
id: string;
|
|
81
|
+
turnId: string | null;
|
|
82
|
+
requestId: string;
|
|
83
|
+
questions: HumanInputQuestion[];
|
|
84
|
+
response: HumanInputResponse;
|
|
85
|
+
answers: HumanInputAnswerSummary[];
|
|
86
|
+
occurredAt: string;
|
|
87
|
+
};
|
|
88
|
+
|
|
54
89
|
export type AgentMessageItem = {
|
|
55
90
|
kind: "agent-message";
|
|
56
91
|
id: string;
|
|
57
92
|
turnId: string | null;
|
|
58
93
|
text: string;
|
|
94
|
+
/**
|
|
95
|
+
* Assistant channel: provider-declared, or `commentary` when the model asked
|
|
96
|
+
* for tool work in the same response. Absent on legacy events and on
|
|
97
|
+
* undeclared final messages. Known from the first delta for Responses models.
|
|
98
|
+
*/
|
|
99
|
+
phase?: "commentary" | "final_answer" | undefined;
|
|
59
100
|
/** Still receiving deltas (no completed/turn-end seen yet). */
|
|
60
101
|
streaming: boolean;
|
|
61
102
|
occurredAt: string;
|
|
103
|
+
/**
|
|
104
|
+
* When the first streamed text arrived, kept once completion moves
|
|
105
|
+
* `occurredAt` to the completion time. Absent for a message that never
|
|
106
|
+
* streamed.
|
|
107
|
+
*/
|
|
108
|
+
startedAt?: string | undefined;
|
|
62
109
|
/** Available only after the canonical completed event lands. */
|
|
63
110
|
annotationSource?: TimelineAnnotationSourceDescriptor | undefined;
|
|
64
111
|
};
|
|
@@ -95,6 +142,7 @@ export type ToolCallItem = {
|
|
|
95
142
|
turnId: string | null;
|
|
96
143
|
callId: string | null;
|
|
97
144
|
name: string;
|
|
145
|
+
display?: ToolDisplayMetadata;
|
|
98
146
|
arguments: unknown;
|
|
99
147
|
output: unknown;
|
|
100
148
|
truncation?: ToolCallTruncation | null;
|
|
@@ -159,6 +207,36 @@ export type SandboxItem = {
|
|
|
159
207
|
occurredAt: string;
|
|
160
208
|
};
|
|
161
209
|
|
|
210
|
+
export type StartupPhase =
|
|
211
|
+
| "queue"
|
|
212
|
+
| "sandbox"
|
|
213
|
+
| "rig"
|
|
214
|
+
| "repository"
|
|
215
|
+
| "files"
|
|
216
|
+
| "tools"
|
|
217
|
+
| "model_preparation"
|
|
218
|
+
| "provider_first_byte";
|
|
219
|
+
|
|
220
|
+
/** A compact user-visible critical-path span reconstructed from durable events. */
|
|
221
|
+
export type StartupPhaseItem = {
|
|
222
|
+
kind: "startup-phase";
|
|
223
|
+
id: string;
|
|
224
|
+
turnId: string | null;
|
|
225
|
+
phase: StartupPhase;
|
|
226
|
+
status: "running" | "complete" | "failed" | "cancelled";
|
|
227
|
+
startedAt: string;
|
|
228
|
+
completedAt: string | null;
|
|
229
|
+
durationMs: number | null;
|
|
230
|
+
/** Sandbox origin and rig marker outcomes refine the settled label only. */
|
|
231
|
+
outcome: "created" | "restored" | "resumed" | "skipped" | null;
|
|
232
|
+
blockedReason?:
|
|
233
|
+
| "capture_in_progress"
|
|
234
|
+
| "rotation_in_progress"
|
|
235
|
+
| "provider_recovery_in_progress"
|
|
236
|
+
| undefined;
|
|
237
|
+
occurredAt: string;
|
|
238
|
+
};
|
|
239
|
+
|
|
162
240
|
/**
|
|
163
241
|
* A first-party workspace-memory write the agent made mid-turn — a `memory.saved`
|
|
164
242
|
* (it committed a new preference / fact / procedure / decision / history) or a
|
|
@@ -168,6 +246,18 @@ export type SandboxItem = {
|
|
|
168
246
|
* `onMemoryClick` handler the row also deep-links to the record in its memory
|
|
169
247
|
* pane; without one it is non-interactive rich content.
|
|
170
248
|
*/
|
|
249
|
+
export type KnowledgeItem = {
|
|
250
|
+
kind: "knowledge";
|
|
251
|
+
id: string;
|
|
252
|
+
turnId: string | null;
|
|
253
|
+
status: "complete" | "failed";
|
|
254
|
+
outcome: "published" | "pending" | "rejected" | "archived" | "failed";
|
|
255
|
+
fileId?: string | undefined;
|
|
256
|
+
filename?: string | undefined;
|
|
257
|
+
entryId?: string | undefined;
|
|
258
|
+
occurredAt: string;
|
|
259
|
+
};
|
|
260
|
+
|
|
171
261
|
export type MemoryItem = {
|
|
172
262
|
kind: "memory";
|
|
173
263
|
id: string;
|
|
@@ -220,7 +310,14 @@ export type FleetDecisionItem = {
|
|
|
220
310
|
policyVersion: "adaptive-shadow-v1";
|
|
221
311
|
actualOutcome: "selected" | "waiting" | "none";
|
|
222
312
|
actualCandidateKey: string | null;
|
|
223
|
-
actualReason:
|
|
313
|
+
actualReason:
|
|
314
|
+
| "lease_reused"
|
|
315
|
+
| "pin"
|
|
316
|
+
| "rotation"
|
|
317
|
+
| "active"
|
|
318
|
+
| "all_capped"
|
|
319
|
+
| "allocator_disabled"
|
|
320
|
+
| "none";
|
|
224
321
|
shadowOutcome: "selected" | "paced" | "none";
|
|
225
322
|
shadowCandidateKey: string | null;
|
|
226
323
|
shadowReason:
|
|
@@ -259,13 +356,23 @@ export type SessionStatusItem = {
|
|
|
259
356
|
kind: "session-status";
|
|
260
357
|
id: string;
|
|
261
358
|
status: SessionStatus;
|
|
359
|
+
/** Presentation-only evidence that this historical attention state resumed. */
|
|
360
|
+
resolvedAt?: string;
|
|
262
361
|
occurredAt: string;
|
|
263
362
|
};
|
|
264
363
|
|
|
265
364
|
export type GoalItem = {
|
|
266
365
|
kind: "goal";
|
|
267
366
|
id: string;
|
|
268
|
-
action:
|
|
367
|
+
action:
|
|
368
|
+
| "set"
|
|
369
|
+
| "updated"
|
|
370
|
+
| "completed"
|
|
371
|
+
| "paused"
|
|
372
|
+
| "resumed"
|
|
373
|
+
| "cleared"
|
|
374
|
+
| "held"
|
|
375
|
+
| "continuation";
|
|
269
376
|
text: string | null;
|
|
270
377
|
occurredAt: string;
|
|
271
378
|
};
|
|
@@ -275,9 +382,27 @@ export type NoticeItem = {
|
|
|
275
382
|
id: string;
|
|
276
383
|
tone: "waiting" | "cancelled" | "failed" | "input";
|
|
277
384
|
text: string;
|
|
385
|
+
/** Presentation-only evidence that a historical approval wait resumed. */
|
|
386
|
+
resolvedAt?: string;
|
|
387
|
+
/** A preserved turn-end outcome, not a claim about current session state. */
|
|
388
|
+
recordedOutcome?: true;
|
|
389
|
+
/**
|
|
390
|
+
* Recorded agent wait only: delegated worker sessions that had not reported
|
|
391
|
+
* back when the wait began. Best effort from the loaded history; absent when
|
|
392
|
+
* none are known.
|
|
393
|
+
*/
|
|
394
|
+
waitingAgents?: number;
|
|
395
|
+
/** Recorded agent wait only: when later input ended the wait. */
|
|
396
|
+
waitEndedAt?: string;
|
|
278
397
|
/** Optional evidence kept inspectable without overwhelming the main rail. */
|
|
279
398
|
details?: { label: string; value: unknown };
|
|
280
399
|
action?: { label: string; url: string };
|
|
400
|
+
/**
|
|
401
|
+
* A usage ceiling refused further work. `text` keeps the canonical sentence
|
|
402
|
+
* for plain-text consumers; `MessageTimeline` renders this structured row
|
|
403
|
+
* (customizable with `renderAllowanceExhausted` / `allowanceExhaustedLabels`).
|
|
404
|
+
*/
|
|
405
|
+
allowance?: AllowanceExhaustedRefusal;
|
|
281
406
|
occurredAt: string;
|
|
282
407
|
};
|
|
283
408
|
|
|
@@ -294,20 +419,40 @@ export type ContextCompactionItem = {
|
|
|
294
419
|
estimatedTokensBefore: number | null;
|
|
295
420
|
estimatedTokensAfter: number | null;
|
|
296
421
|
skipReason: string | null;
|
|
422
|
+
/**
|
|
423
|
+
* Present only for a `summarization_failed` skip where the provider
|
|
424
|
+
* definitively rejected the compaction request. Content-free identifiers.
|
|
425
|
+
*/
|
|
426
|
+
providerRejection: ContextCompactionProviderRejection | null;
|
|
297
427
|
/** Provider implementation id for debug disclosure only. */
|
|
298
428
|
implementation: string | null;
|
|
299
429
|
occurredAt: string;
|
|
300
430
|
};
|
|
301
431
|
|
|
432
|
+
export type ContextCompactionProviderRejection = {
|
|
433
|
+
httpStatus: number;
|
|
434
|
+
type: string | null;
|
|
435
|
+
code: string | null;
|
|
436
|
+
param: string | null;
|
|
437
|
+
requestId: string | null;
|
|
438
|
+
};
|
|
439
|
+
|
|
302
440
|
export type MachineInputMember = {
|
|
303
441
|
id: string;
|
|
304
442
|
kind:
|
|
305
443
|
| "scheduled_occurrence"
|
|
306
444
|
| "goal_continuation"
|
|
445
|
+
| "background_command_result"
|
|
446
|
+
| "session_wait_timeout"
|
|
307
447
|
| "agent_message"
|
|
308
448
|
| "agent_steer_instruction"
|
|
309
449
|
| "child_terminal_result"
|
|
310
|
-
| "media_generation_result"
|
|
450
|
+
| "media_generation_result"
|
|
451
|
+
| "child_requires_action"
|
|
452
|
+
| "child_requires_action_resolved"
|
|
453
|
+
| "child_paused"
|
|
454
|
+
| "child_waiting_capacity"
|
|
455
|
+
| "child_progress";
|
|
311
456
|
classification: "success" | "failure" | "action_required" | "info";
|
|
312
457
|
sourceId: string;
|
|
313
458
|
summary: string;
|
|
@@ -323,6 +468,8 @@ export type MachineInputBatchItem = {
|
|
|
323
468
|
id: string;
|
|
324
469
|
turnId: string | null;
|
|
325
470
|
members: MachineInputMember[];
|
|
471
|
+
/** Readable-turn presentation keeps machine payload prose inside the disclosure. */
|
|
472
|
+
compact?: boolean;
|
|
326
473
|
occurredAt: string;
|
|
327
474
|
};
|
|
328
475
|
|
|
@@ -342,12 +489,17 @@ export type AuthNeededItem = {
|
|
|
342
489
|
turnId: string | null;
|
|
343
490
|
/** The runtime surface that requested recovery, when the event is an MCP auth signal. */
|
|
344
491
|
serverId: string | null;
|
|
492
|
+
/** Explicit recovery identity; never inferred from an opaque execution alias. */
|
|
493
|
+
canonicalServerId?: string | null;
|
|
494
|
+
connectionSubjectScope?: "workspace" | "subject" | null;
|
|
345
495
|
/** Durable event family that produced this notice. */
|
|
346
496
|
source?: "tool" | "credential" | "capability" | undefined;
|
|
347
497
|
/** The connection's registrable domain, e.g. "linear.app". */
|
|
348
498
|
providerDomain: string;
|
|
349
499
|
/** The lapsed connection to reconnect, when the row survived. */
|
|
350
500
|
connectionId: string | null;
|
|
501
|
+
/** Host-owned bindings must never be routed into OpenGeni's native reconnect flow. */
|
|
502
|
+
authoritySource?: ToolAuthNeededPayload["authoritySource"] | null | undefined;
|
|
351
503
|
reason: ToolAuthNeededPayload["reason"] | null;
|
|
352
504
|
/** Scopes the provider now needs; may inform the copy, never shown as a raw label. */
|
|
353
505
|
scopes: string[];
|
|
@@ -359,6 +511,8 @@ export type AuthNeededItem = {
|
|
|
359
511
|
authorizationUrl: string | null;
|
|
360
512
|
/** Agent-selected catalog recommendation. The host still owns authorization. */
|
|
361
513
|
capability?: NonNullable<ToolAuthNeededPayload["capability"]> | null | undefined;
|
|
514
|
+
/** Human-reviewed custom integration proposal. Never treated as catalog authority. */
|
|
515
|
+
setupRequest?: ToolAuthNeededPayload["setupRequest"] | null | undefined;
|
|
362
516
|
occurredAt: string;
|
|
363
517
|
};
|
|
364
518
|
|
|
@@ -366,6 +520,10 @@ export type TurnOutcome = "complete" | "failed" | "cancelled";
|
|
|
366
520
|
|
|
367
521
|
export type TurnEndItem = {
|
|
368
522
|
kind: "turn-end";
|
|
523
|
+
/** A durable Retry reopened this failed logical turn; its failure is history. */
|
|
524
|
+
resumedAt?: string;
|
|
525
|
+
/** Keep an existing answer visible when a recorded input wait ends without final output. */
|
|
526
|
+
preserveWaitResponse?: true;
|
|
369
527
|
id: string;
|
|
370
528
|
turnId: string | null;
|
|
371
529
|
outcome: TurnOutcome;
|
|
@@ -373,14 +531,16 @@ export type TurnEndItem = {
|
|
|
373
531
|
occurredAt: string;
|
|
374
532
|
};
|
|
375
533
|
|
|
376
|
-
export type TimelineItem =
|
|
534
|
+
export type TimelineItem = (
|
|
377
535
|
| UserMessageItem
|
|
536
|
+
| HumanInputItem
|
|
378
537
|
| AgentMessageItem
|
|
379
538
|
| ReasoningItem
|
|
380
539
|
| ToolCallItem
|
|
381
540
|
| WorkerItem
|
|
382
541
|
| WorkerCompletionItem
|
|
383
542
|
| SandboxItem
|
|
543
|
+
| StartupPhaseItem
|
|
384
544
|
| SessionStatusItem
|
|
385
545
|
| GoalItem
|
|
386
546
|
| NoticeItem
|
|
@@ -388,17 +548,28 @@ export type TimelineItem =
|
|
|
388
548
|
| MachineInputBatchItem
|
|
389
549
|
| AuthNeededItem
|
|
390
550
|
| MemoryItem
|
|
551
|
+
| KnowledgeItem
|
|
391
552
|
| FleetDecisionItem
|
|
392
|
-
| TurnEndItem
|
|
553
|
+
| TurnEndItem
|
|
554
|
+
) & {
|
|
555
|
+
/** Durable identities, independent of renderer/reconciliation keys. */
|
|
556
|
+
sourceEvents?: readonly { eventId: string; sequence: number }[] | undefined;
|
|
557
|
+
};
|
|
393
558
|
|
|
394
|
-
/**
|
|
559
|
+
/**
|
|
560
|
+
* Activity items cluster between chat messages (reasoning, tools, workers,
|
|
561
|
+
* sandbox, memory). Assistant prose is rendered separately.
|
|
562
|
+
*/
|
|
395
563
|
export type ActivityItem =
|
|
396
564
|
| ReasoningItem
|
|
397
565
|
| ToolCallItem
|
|
398
566
|
| WorkerItem
|
|
399
567
|
| SandboxItem
|
|
568
|
+
| StartupPhaseItem
|
|
400
569
|
| MemoryItem
|
|
401
|
-
|
|
|
570
|
+
| KnowledgeItem
|
|
571
|
+
| FleetDecisionItem
|
|
572
|
+
| AgentMessageItem;
|
|
402
573
|
|
|
403
574
|
export type TimelineGroup =
|
|
404
575
|
| { kind: "item"; item: TimelineItem }
|
|
@@ -408,6 +579,20 @@ export type TimelineGroup =
|
|
|
408
579
|
items: ActivityItem[];
|
|
409
580
|
outcome?: TurnOutcome;
|
|
410
581
|
failureText?: string;
|
|
582
|
+
/** One turn's chronological work history, including progress prose after settlement. */
|
|
583
|
+
work?: {
|
|
584
|
+
startedAt: string;
|
|
585
|
+
endedAt?: string;
|
|
586
|
+
responseStartedAt?: string;
|
|
587
|
+
waiting?: { label: string; since: string };
|
|
588
|
+
details: TimelineGroup[];
|
|
589
|
+
/**
|
|
590
|
+
* While the turn is live, its progress notes stay readable above the
|
|
591
|
+
* work row and are also listed in `details`. These are their item ids,
|
|
592
|
+
* so an expanded work disclosure can fold the outside copies away.
|
|
593
|
+
*/
|
|
594
|
+
liveNoteIds?: string[];
|
|
595
|
+
};
|
|
411
596
|
}
|
|
412
597
|
| {
|
|
413
598
|
kind: "turn";
|
package/src/types/machines.ts
CHANGED
|
@@ -23,6 +23,11 @@ import type {
|
|
|
23
23
|
MachinesResponse,
|
|
24
24
|
MachineState,
|
|
25
25
|
MachineView,
|
|
26
|
+
MachineRuntime,
|
|
27
|
+
MachineRuntimeCapabilities,
|
|
28
|
+
MachineOperationPolicy,
|
|
29
|
+
MachineUpdateState,
|
|
30
|
+
MachineUpdateStatus,
|
|
26
31
|
MetricSample,
|
|
27
32
|
} from "@opengeni/sdk";
|
|
28
33
|
|
|
@@ -32,6 +37,11 @@ export type {
|
|
|
32
37
|
MachinesResponse,
|
|
33
38
|
MachineState,
|
|
34
39
|
MachineView,
|
|
40
|
+
MachineRuntime,
|
|
41
|
+
MachineRuntimeCapabilities,
|
|
42
|
+
MachineOperationPolicy,
|
|
43
|
+
MachineUpdateState,
|
|
44
|
+
MachineUpdateStatus,
|
|
35
45
|
MetricSample,
|
|
36
46
|
};
|
|
37
47
|
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Shared, replaceable words for usage allowances. The timeline refusal row
|
|
2
|
+
// (session graph) and the opt-in `@opengeni/react/usage` surfaces both read
|
|
3
|
+
// these, so a host that renames "workspace" or "admin" does it once.
|
|
4
|
+
//
|
|
5
|
+
// Product rule: never show raw credit amounts here. Hosts that want money or
|
|
6
|
+
// plan multiples opt in with `formatAmount` on the meter components.
|
|
7
|
+
|
|
8
|
+
/** Which ceiling ran out: the shared workspace pool, or one member's share of it. */
|
|
9
|
+
export type AllowanceScope = "workspace" | "member";
|
|
10
|
+
|
|
11
|
+
export type AllowanceLabels = {
|
|
12
|
+
/** "Usage limit reached" for a member ceiling. */
|
|
13
|
+
memberLimitReachedTitle: string;
|
|
14
|
+
/** "Workspace usage limit reached" for the shared pool. */
|
|
15
|
+
workspaceLimitReachedTitle: string;
|
|
16
|
+
/** Who can fix a member ceiling. */
|
|
17
|
+
memberRemedy: string;
|
|
18
|
+
/** Who can fix the workspace pool. */
|
|
19
|
+
workspaceRemedy: string;
|
|
20
|
+
/** "Resets Nov 1". `date` is already formatted by `formatDate`. */
|
|
21
|
+
resets: (date: string) => string;
|
|
22
|
+
/** Shown when a ceiling has no automatic reset. */
|
|
23
|
+
noReset: string;
|
|
24
|
+
/** Formats a reset instant for `resets`. Defaults to a short local date. */
|
|
25
|
+
formatDate: (iso: string) => string;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export function formatAllowanceDate(iso: string, now: Date = new Date()): string {
|
|
29
|
+
const date = new Date(iso);
|
|
30
|
+
if (Number.isNaN(date.getTime())) return iso;
|
|
31
|
+
return new Intl.DateTimeFormat(undefined, {
|
|
32
|
+
month: "short",
|
|
33
|
+
day: "numeric",
|
|
34
|
+
...(date.getFullYear() === now.getFullYear() ? {} : { year: "numeric" }),
|
|
35
|
+
}).format(date);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Full local date and time, for a title/tooltip next to the short date. */
|
|
39
|
+
export function formatAllowanceInstant(iso: string): string {
|
|
40
|
+
const date = new Date(iso);
|
|
41
|
+
if (Number.isNaN(date.getTime())) return iso;
|
|
42
|
+
return new Intl.DateTimeFormat(undefined, { dateStyle: "medium", timeStyle: "short" }).format(
|
|
43
|
+
date,
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export const DEFAULT_ALLOWANCE_LABELS: AllowanceLabels = {
|
|
48
|
+
memberLimitReachedTitle: "Usage limit reached",
|
|
49
|
+
workspaceLimitReachedTitle: "Workspace usage limit reached",
|
|
50
|
+
memberRemedy: "A workspace admin can raise this limit.",
|
|
51
|
+
workspaceRemedy: "An organization admin can raise the workspace budget.",
|
|
52
|
+
resets: (date) => `Resets ${date}.`,
|
|
53
|
+
noReset: "It doesn't reset automatically.",
|
|
54
|
+
formatDate: (iso) => formatAllowanceDate(iso),
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export function allowanceLabels(overrides?: Partial<AllowanceLabels>): AllowanceLabels {
|
|
58
|
+
return overrides ? { ...DEFAULT_ALLOWANCE_LABELS, ...overrides } : DEFAULT_ALLOWANCE_LABELS;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** "Resets Nov 1." or the no-reset sentence. */
|
|
62
|
+
export function allowanceResetSentence(labels: AllowanceLabels, resetsAt: string | null): string {
|
|
63
|
+
return resetsAt === null ? labels.noReset : labels.resets(labels.formatDate(resetsAt));
|
|
64
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
MemberAllowanceUsage,
|
|
3
|
+
UsageAllowanceStatus,
|
|
4
|
+
WorkspaceAllowanceUsage,
|
|
5
|
+
WorkspaceUsageResponse,
|
|
6
|
+
} from "@opengeni/sdk/usage-allowances";
|
|
7
|
+
|
|
8
|
+
import type { AllowanceScope } from "./allowance-copy";
|
|
9
|
+
|
|
10
|
+
/** One ceiling as a person reads it: how much of it is used, and when it resets. */
|
|
11
|
+
export type UsageReading = {
|
|
12
|
+
scope: AllowanceScope;
|
|
13
|
+
/** Used share of the ceiling. Can exceed 1 after post-call overshoot. */
|
|
14
|
+
fraction: number;
|
|
15
|
+
status: UsageAllowanceStatus;
|
|
16
|
+
resetsAt: string | null;
|
|
17
|
+
/** USD micros. Only shown when a host opts in with `formatAmount`. */
|
|
18
|
+
used: number;
|
|
19
|
+
limit: number;
|
|
20
|
+
remaining: number;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* What a member can still do: `unlimited` when no ceiling applies, otherwise
|
|
25
|
+
* the state of whichever ceiling stops them first (`binding`).
|
|
26
|
+
*/
|
|
27
|
+
export type UsageSummary = {
|
|
28
|
+
state: "unlimited" | "ok" | "warning" | "exhausted";
|
|
29
|
+
/** The ceiling a person would ask to raise; null when unlimited. */
|
|
30
|
+
binding: UsageReading | null;
|
|
31
|
+
/** Their own ceiling, when one applies. */
|
|
32
|
+
member: UsageReading | null;
|
|
33
|
+
/** The shared workspace pool, when one is set. */
|
|
34
|
+
workspace: UsageReading | null;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
function reading(
|
|
38
|
+
scope: AllowanceScope,
|
|
39
|
+
usage: Pick<
|
|
40
|
+
WorkspaceAllowanceUsage | MemberAllowanceUsage,
|
|
41
|
+
"limit" | "used" | "remaining" | "fraction" | "status" | "resetsAt"
|
|
42
|
+
>,
|
|
43
|
+
): UsageReading | null {
|
|
44
|
+
if (usage.limit === null) return null;
|
|
45
|
+
return {
|
|
46
|
+
scope,
|
|
47
|
+
fraction: usage.fraction ?? (usage.limit === 0 ? 1 : usage.used / usage.limit),
|
|
48
|
+
status: usage.status,
|
|
49
|
+
resetsAt: usage.resetsAt,
|
|
50
|
+
used: usage.used,
|
|
51
|
+
limit: usage.limit,
|
|
52
|
+
remaining: Math.max(0, usage.remaining ?? usage.limit - usage.used),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Fold a usage response (normally `/usage/me`) into what to tell one member.
|
|
58
|
+
* The server's `status` decides warning/exhausted (it applies the configured
|
|
59
|
+
* thresholds); when both ceilings apply, the one with less room left binds.
|
|
60
|
+
*/
|
|
61
|
+
export function summarizeUsage(
|
|
62
|
+
usage: WorkspaceUsageResponse,
|
|
63
|
+
subjectId?: string | undefined,
|
|
64
|
+
): UsageSummary {
|
|
65
|
+
const row =
|
|
66
|
+
subjectId === undefined
|
|
67
|
+
? usage.members[0]
|
|
68
|
+
: usage.members.find((member) => member.subjectId === subjectId);
|
|
69
|
+
const member = row ? reading("member", row) : null;
|
|
70
|
+
const workspace = reading("workspace", usage.workspace);
|
|
71
|
+
const readings = [member, workspace].filter((value): value is UsageReading => value !== null);
|
|
72
|
+
if (readings.length === 0) return { state: "unlimited", binding: null, member, workspace };
|
|
73
|
+
// Raising a member ceiling cannot help while the shared pool is spent, so an
|
|
74
|
+
// exhausted workspace binds first.
|
|
75
|
+
const exhausted =
|
|
76
|
+
(workspace?.status === "exhausted" ? workspace : null) ??
|
|
77
|
+
(member?.status === "exhausted" ? member : null);
|
|
78
|
+
if (exhausted) return { state: "exhausted", binding: exhausted, member, workspace };
|
|
79
|
+
const warnings = readings.filter((value) => value.status === "warning");
|
|
80
|
+
const candidates = warnings.length > 0 ? warnings : readings;
|
|
81
|
+
const binding = candidates.reduce((tightest, value) =>
|
|
82
|
+
value.remaining < tightest.remaining ? value : tightest,
|
|
83
|
+
);
|
|
84
|
+
return { state: warnings.length > 0 ? "warning" : "ok", binding, member, workspace };
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/** A whole-number percentage for display: "<1" for a sliver, never "0" for some use. */
|
|
88
|
+
export function usagePercentLabel(fraction: number): string {
|
|
89
|
+
if (!Number.isFinite(fraction) || fraction <= 0) return "0";
|
|
90
|
+
if (fraction < 0.01) return "<1";
|
|
91
|
+
if (fraction < 1 && Math.round(fraction * 100) === 100) return "99";
|
|
92
|
+
return String(Math.round(fraction * 100));
|
|
93
|
+
}
|
package/src/usage.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// @opengeni/react/usage — usage allowances for people, kept out of the package
|
|
2
|
+
// root and the session entry so hosts that don't meter usage never load it.
|
|
3
|
+
//
|
|
4
|
+
// Member-facing: `useUsage` + `<UsageMeter>` read the signed-in member's own
|
|
5
|
+
// `/usage/me` (the session proxy serves exactly that route) and
|
|
6
|
+
// `<UsageLimitNotice>` is the calm near/at-limit line for a composer header.
|
|
7
|
+
// Admin-facing: `<UsageMemberList>` shows every member against their limit and
|
|
8
|
+
// edits it with a share-of-budget slider; your backend saves the rule.
|
|
9
|
+
//
|
|
10
|
+
// Shares and percentages only by default. Pass `formatAmount` / `amounts` to
|
|
11
|
+
// show money, credits, or plan multiples in your own unit.
|
|
12
|
+
export { useUsage } from "./hooks/use-usage";
|
|
13
|
+
export type { UsageClientLike, UseUsageOptions, UseUsageResult } from "./hooks/use-usage";
|
|
14
|
+
export { summarizeUsage, usagePercentLabel } from "./usage/summary";
|
|
15
|
+
export type { UsageReading, UsageSummary } from "./usage/summary";
|
|
16
|
+
export {
|
|
17
|
+
DEFAULT_ALLOWANCE_LABELS,
|
|
18
|
+
allowanceLabels,
|
|
19
|
+
allowanceResetSentence,
|
|
20
|
+
formatAllowanceDate,
|
|
21
|
+
} from "./usage/allowance-copy";
|
|
22
|
+
export type { AllowanceLabels, AllowanceScope } from "./usage/allowance-copy";
|
|
23
|
+
export { DEFAULT_USAGE_METER_LABELS, UsageMeter, UsageMeterView } from "./components/usage-meter";
|
|
24
|
+
export type {
|
|
25
|
+
UsageMeterBaseProps,
|
|
26
|
+
UsageMeterLabels,
|
|
27
|
+
UsageMeterProps,
|
|
28
|
+
UsageMeterViewProps,
|
|
29
|
+
} from "./components/usage-meter";
|
|
30
|
+
export {
|
|
31
|
+
DEFAULT_USAGE_LIMIT_NOTICE_LABELS,
|
|
32
|
+
UsageLimitNotice,
|
|
33
|
+
UsageLimitNoticeView,
|
|
34
|
+
} from "./components/usage-limit-notice";
|
|
35
|
+
export type {
|
|
36
|
+
UsageLimitNoticeLabels,
|
|
37
|
+
UsageLimitNoticeProps,
|
|
38
|
+
} from "./components/usage-limit-notice";
|
|
39
|
+
export {
|
|
40
|
+
DEFAULT_USAGE_MEMBER_LIST_LABELS,
|
|
41
|
+
UsageMemberList,
|
|
42
|
+
describeMemberLimit,
|
|
43
|
+
} from "./components/usage-member-list";
|
|
44
|
+
export type {
|
|
45
|
+
UsageAmountFormat,
|
|
46
|
+
UsageMemberIdentity,
|
|
47
|
+
UsageMemberListLabels,
|
|
48
|
+
UsageMemberListProps,
|
|
49
|
+
} from "./components/usage-member-list";
|
|
50
|
+
export type { RenderAllowanceExhausted } from "./timeline/allowance-exhausted-row";
|