@opengeni/react 3.1.0 → 3.1.3-canary.38890816741001
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 +769 -22
- package/dist/accounts.js +89 -11
- package/dist/accounts.js.map +1 -1
- package/dist/approvals.d.ts +2 -1
- package/dist/artifacts-document.js +5 -3
- package/dist/artifacts-presentation.js +5 -3
- package/dist/artifacts-spreadsheet.d.ts +1 -1
- package/dist/artifacts-spreadsheet.js +5 -3
- package/dist/artifacts.d.ts +5 -1
- package/dist/artifacts.js +536 -42
- package/dist/artifacts.js.map +1 -1
- package/dist/browser-viewer-ZWR6MWJ7.js +19 -0
- package/dist/capability-catalog-row.d.ts +20 -0
- package/dist/capability-logo-fallback.d.ts +3 -0
- package/dist/chat-interactive-block-BO2IWXVK.js +14 -0
- package/dist/chunk-2DDJ6YH6.js +41 -0
- package/dist/chunk-2DDJ6YH6.js.map +1 -0
- package/dist/chunk-2HVLQ26H.js +183 -0
- package/dist/chunk-2HVLQ26H.js.map +1 -0
- package/dist/{chunk-RGALCTWO.js → chunk-2I6R3GCZ.js} +4285 -3980
- package/dist/chunk-2I6R3GCZ.js.map +1 -0
- package/dist/{chunk-D3UIAJKY.js → chunk-2SFFYIH3.js} +1179 -166
- package/dist/chunk-2SFFYIH3.js.map +1 -0
- package/dist/chunk-3PVDYTTB.js +24 -0
- package/dist/chunk-3PVDYTTB.js.map +1 -0
- package/dist/chunk-3UZCWK46.js +298 -0
- package/dist/chunk-3UZCWK46.js.map +1 -0
- package/dist/chunk-47CKUXTW.js +293 -0
- package/dist/chunk-47CKUXTW.js.map +1 -0
- package/dist/chunk-4QYP6QUI.js +109 -0
- package/dist/chunk-4QYP6QUI.js.map +1 -0
- package/dist/chunk-5EY26VZ7.js +1053 -0
- package/dist/chunk-5EY26VZ7.js.map +1 -0
- package/dist/chunk-5I4VRWBB.js +56 -0
- package/dist/chunk-5I4VRWBB.js.map +1 -0
- package/dist/chunk-5WOR7UCL.js +191 -0
- package/dist/chunk-5WOR7UCL.js.map +1 -0
- package/dist/chunk-5YJLGOM5.js +51 -0
- package/dist/chunk-5YJLGOM5.js.map +1 -0
- package/dist/chunk-6JFN3OWG.js +386 -0
- package/dist/chunk-6JFN3OWG.js.map +1 -0
- package/dist/chunk-7QJT5O4S.js +35 -0
- package/dist/chunk-7QJT5O4S.js.map +1 -0
- package/dist/chunk-A55KV72M.js +402 -0
- package/dist/chunk-A55KV72M.js.map +1 -0
- package/dist/chunk-ADWCLI4G.js +2028 -0
- package/dist/chunk-ADWCLI4G.js.map +1 -0
- package/dist/chunk-B27E3V37.js +29 -0
- package/dist/chunk-B27E3V37.js.map +1 -0
- package/dist/chunk-B7TC2A33.js +83 -0
- package/dist/chunk-B7TC2A33.js.map +1 -0
- package/dist/chunk-BLL56F7R.js +385 -0
- package/dist/chunk-BLL56F7R.js.map +1 -0
- package/dist/chunk-BOFEQC6K.js +162 -0
- package/dist/chunk-BOFEQC6K.js.map +1 -0
- package/dist/chunk-CM7LVUKC.js +35 -0
- package/dist/chunk-CM7LVUKC.js.map +1 -0
- package/dist/chunk-CORUP6JB.js +122 -0
- package/dist/chunk-CORUP6JB.js.map +1 -0
- package/dist/chunk-CSX5FFKZ.js +35 -0
- package/dist/chunk-CSX5FFKZ.js.map +1 -0
- package/dist/chunk-EGVHJKGJ.js +3125 -0
- package/dist/chunk-EGVHJKGJ.js.map +1 -0
- package/dist/{chunk-NEXLLTP4.js → chunk-G76LSA76.js} +6 -5
- package/dist/chunk-G76LSA76.js.map +1 -0
- package/dist/{chunk-PEI6RANI.js → chunk-GQMRL52F.js} +311 -75
- package/dist/chunk-GQMRL52F.js.map +1 -0
- package/dist/{chunk-ELIYWBZR.js → chunk-GUUXOISA.js} +1113 -457
- package/dist/chunk-GUUXOISA.js.map +1 -0
- package/dist/{chunk-HUIKIDM5.js → chunk-I7X2P4FU.js} +225 -116
- package/dist/chunk-I7X2P4FU.js.map +1 -0
- package/dist/chunk-IGFZFLI2.js +1390 -0
- package/dist/chunk-IGFZFLI2.js.map +1 -0
- package/dist/{chunk-4MDLEHXL.js → chunk-IMSUVYQB.js} +26 -13
- package/dist/chunk-IMSUVYQB.js.map +1 -0
- package/dist/chunk-IOYHDEP3.js +38 -0
- package/dist/chunk-IOYHDEP3.js.map +1 -0
- package/dist/chunk-IZV5FTJC.js +55 -0
- package/dist/chunk-IZV5FTJC.js.map +1 -0
- package/dist/chunk-KF33GTWN.js +343 -0
- package/dist/chunk-KF33GTWN.js.map +1 -0
- package/dist/chunk-KSGQ5ODA.js +457 -0
- package/dist/chunk-KSGQ5ODA.js.map +1 -0
- package/dist/{chunk-OAM4WAAM.js → chunk-KZC6QRNR.js} +1513 -697
- package/dist/chunk-KZC6QRNR.js.map +1 -0
- package/dist/chunk-LJUMYUBO.js +218 -0
- package/dist/chunk-LJUMYUBO.js.map +1 -0
- package/dist/chunk-LSW2OJVV.js +380 -0
- package/dist/chunk-LSW2OJVV.js.map +1 -0
- package/dist/chunk-M357MHH3.js +2 -0
- package/dist/chunk-M357MHH3.js.map +1 -0
- package/dist/chunk-MK2TQO4Y.js +24 -0
- package/dist/chunk-MK2TQO4Y.js.map +1 -0
- package/dist/chunk-N7S72EXK.js +25 -0
- package/dist/chunk-N7S72EXK.js.map +1 -0
- package/dist/{chunk-XXWH2JLC.js → chunk-NKMYZFHA.js} +616 -621
- package/dist/chunk-NKMYZFHA.js.map +1 -0
- package/dist/chunk-NX4ADH73.js +14 -0
- package/dist/chunk-NX4ADH73.js.map +1 -0
- package/dist/chunk-O7F6UJO4.js +71 -0
- package/dist/chunk-O7F6UJO4.js.map +1 -0
- package/dist/chunk-OVB5WIG5.js +14064 -0
- package/dist/chunk-OVB5WIG5.js.map +1 -0
- package/dist/chunk-OYQQJL3J.js +16 -0
- package/dist/chunk-OYQQJL3J.js.map +1 -0
- package/dist/{chunk-H5YGYNXS.js → chunk-P4BNUO57.js} +60 -17
- package/dist/chunk-P4BNUO57.js.map +1 -0
- package/dist/{chunk-JVYQRRC4.js → chunk-PEHTX3V7.js} +21 -1
- package/dist/chunk-PEHTX3V7.js.map +1 -0
- package/dist/chunk-PMV53IMM.js +26 -0
- package/dist/chunk-PMV53IMM.js.map +1 -0
- package/dist/{chunk-KCGXPP5V.js → chunk-PYEOPA4M.js} +13 -7
- package/dist/chunk-PYEOPA4M.js.map +1 -0
- package/dist/{chunk-KZ73RL76.js → chunk-QHUE7E4N.js} +8 -3
- package/dist/chunk-QHUE7E4N.js.map +1 -0
- package/dist/chunk-QV3DJVRZ.js +11 -0
- package/dist/chunk-QV3DJVRZ.js.map +1 -0
- package/dist/chunk-R5SBNG7S.js +810 -0
- package/dist/chunk-R5SBNG7S.js.map +1 -0
- package/dist/chunk-RI42H5IU.js +326 -0
- package/dist/chunk-RI42H5IU.js.map +1 -0
- package/dist/chunk-S2QH6EZ5.js +211 -0
- package/dist/chunk-S2QH6EZ5.js.map +1 -0
- package/dist/chunk-SHLZMAJN.js +304 -0
- package/dist/chunk-SHLZMAJN.js.map +1 -0
- package/dist/chunk-TGXK4BAZ.js +293 -0
- package/dist/chunk-TGXK4BAZ.js.map +1 -0
- package/dist/{chunk-5YK2ZDIG.js → chunk-TNEZNMSN.js} +4 -10
- package/dist/chunk-TNEZNMSN.js.map +1 -0
- package/dist/{chunk-22KP6LR5.js → chunk-TXS65BB2.js} +3 -1
- package/dist/{chunk-22KP6LR5.js.map → chunk-TXS65BB2.js.map} +1 -1
- package/dist/chunk-UNJPZGNK.js +63 -0
- package/dist/chunk-UNJPZGNK.js.map +1 -0
- package/dist/{chunk-MZ2G2XBA.js → chunk-V5ZUJT2T.js} +205 -45
- package/dist/chunk-V5ZUJT2T.js.map +1 -0
- package/dist/chunk-VIUEOHXY.js +394 -0
- package/dist/chunk-VIUEOHXY.js.map +1 -0
- package/dist/chunk-WIUKB3LD.js +1911 -0
- package/dist/chunk-WIUKB3LD.js.map +1 -0
- package/dist/{chunk-ICA6R6TW.js → chunk-WNN7NO2N.js} +1451 -355
- package/dist/chunk-WNN7NO2N.js.map +1 -0
- package/dist/{chunk-YJFGAFBD.js → chunk-X5UVUIMF.js} +1892 -1223
- package/dist/chunk-X5UVUIMF.js.map +1 -0
- package/dist/chunk-XDA5QJE7.js +402 -0
- package/dist/chunk-XDA5QJE7.js.map +1 -0
- package/dist/{chunk-VZTQ73XT.js → chunk-XEA5BCMA.js} +3 -1
- package/dist/{chunk-VZTQ73XT.js.map → chunk-XEA5BCMA.js.map} +1 -1
- package/dist/chunk-XHF7OYAN.js +1150 -0
- package/dist/chunk-XHF7OYAN.js.map +1 -0
- package/dist/chunk-YSRBFJMQ.js +43 -0
- package/dist/chunk-YSRBFJMQ.js.map +1 -0
- package/dist/chunk-ZOZAPAUO.js +174 -0
- package/dist/chunk-ZOZAPAUO.js.map +1 -0
- package/dist/chunk-ZQV5W7YC.js +809 -0
- package/dist/chunk-ZQV5W7YC.js.map +1 -0
- package/dist/chunk-ZUWF4NF7.js +13 -0
- package/dist/chunk-ZUWF4NF7.js.map +1 -0
- package/dist/client.d.ts +16 -7
- package/dist/clipboard.js +3 -1
- package/dist/commands/types.d.ts +2 -0
- package/dist/components/anthropic-mark.d.ts +3 -0
- package/dist/components/approval-surface.d.ts +19 -6
- package/dist/components/artifacts/artifact-chrome.d.ts +120 -0
- package/dist/components/artifacts/artifact-sandbox.d.ts +30 -0
- package/dist/components/artifacts/artifact-surface.d.ts +4 -2
- 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 +48 -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 +8 -3
- package/dist/components/artifacts/index.d.ts +9 -2
- 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 +23 -3
- package/dist/components/artifacts/session-artifact-viewer.d.ts +39 -0
- package/dist/components/artifacts/site-view.d.ts +26 -0
- package/dist/components/artifacts/spreadsheet-command-queue.d.ts +20 -0
- package/dist/components/artifacts/spreadsheet-download.d.ts +7 -0
- package/dist/components/artifacts/spreadsheet-general-display.d.ts +24 -0
- package/dist/components/artifacts/spreadsheet-grid.d.ts +10 -3
- package/dist/components/artifacts/spreadsheet-resize.d.ts +50 -0
- package/dist/components/artifacts/spreadsheet-submissions.d.ts +9 -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 +11 -2
- package/dist/components/chat-composer.d.ts +21 -3
- package/dist/components/child-session-link.d.ts +9 -0
- package/dist/components/claude-mark.d.ts +3 -0
- package/dist/components/code-editor.d.ts +1 -4
- package/dist/components/composer-transcription-control.d.ts +7 -0
- package/dist/components/composer.d.ts +34 -67
- package/dist/components/computer-viewer.d.ts +1 -1
- package/dist/components/copy-button.d.ts +3 -1
- package/dist/components/desktop-viewer.d.ts +1 -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 +28 -32
- package/dist/components/human-input-surface.d.ts +7 -2
- package/dist/components/linkified-text.d.ts +18 -0
- package/dist/components/machine-input-display.d.ts +22 -1
- package/dist/components/machines/agent-status-icon.d.ts +6 -0
- package/dist/components/machines/machine-detail.d.ts +7 -1
- package/dist/components/machines/machine-status.d.ts +48 -0
- package/dist/components/markdown-table-layout.d.ts +18 -0
- package/dist/components/markdown.d.ts +37 -4
- package/dist/components/message-timeline.d.ts +86 -7
- 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 +41 -25
- package/dist/components/new-conversation.d.ts +32 -0
- package/dist/components/open-geni-chat.d.ts +73 -0
- package/dist/components/open-geni-links.d.ts +68 -0
- package/dist/components/openrouter-mark.d.ts +6 -0
- package/dist/components/opper-mark.d.ts +7 -0
- package/dist/components/preview-loading.d.ts +2 -0
- package/dist/components/provider-recovery-notice.d.ts +16 -0
- package/dist/components/queue-item-content.d.ts +9 -0
- package/dist/components/rehype-secret-refs.d.ts +23 -0
- package/dist/components/remark-soft-line-breaks.d.ts +38 -0
- package/dist/components/sandbox-files.d.ts +3 -1
- package/dist/components/sandbox-workspace.d.ts +18 -0
- package/dist/components/secret-question-field.d.ts +31 -0
- package/dist/components/secret-ref-chip.d.ts +35 -0
- package/dist/components/session-capability-frame.d.ts +37 -0
- package/dist/components/session-chrome.d.ts +57 -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 +157 -0
- package/dist/components/session-list.d.ts +39 -0
- package/dist/components/session-mcp-capability-card.d.ts +41 -0
- package/dist/components/session-proxy-scope.d.ts +35 -0
- package/dist/components/session-status.d.ts +4 -1
- package/dist/components/session-usage-limit-notice.d.ts +39 -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/tool-action-review.d.ts +47 -0
- package/dist/components/tool-review-history.d.ts +25 -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/composer-messages.d.ts +74 -0
- package/dist/composer-messages.js +9 -0
- package/dist/composer-messages.js.map +1 -0
- package/dist/composer-voice-events.d.ts +8 -0
- package/dist/composer.d.ts +5 -4
- package/dist/composer.js +26 -13
- package/dist/computer-viewer-GMLDXPON.js +20 -0
- package/dist/computer-viewer-GMLDXPON.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 +18 -0
- package/dist/connect.d.ts +21 -0
- package/dist/connect.js +2149 -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 +27 -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 +15 -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 +22 -0
- package/dist/editor.js.map +1 -0
- package/dist/embedded-new-voice-OCRNT6U5.js +18 -0
- package/dist/embedded-new-voice-OCRNT6U5.js.map +1 -0
- package/dist/embedded-voice-RPHPYVBT.js +18 -0
- package/dist/embedded-voice-RPHPYVBT.js.map +1 -0
- package/dist/{fleet-decision-row-GGCAT4E4.js → fleet-decision-row-SI63O5V4.js} +4 -1
- package/dist/fleet-decision-row-SI63O5V4.js.map +1 -0
- package/dist/hooks/latest-question.d.ts +25 -0
- package/dist/hooks/shared-machines-list.d.ts +4 -0
- package/dist/hooks/shared-query.d.ts +113 -0
- package/dist/hooks/use-attached-browsers.d.ts +1 -1
- package/dist/hooks/use-auth-runs.d.ts +1 -4
- package/dist/hooks/use-available-models.d.ts +1 -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-client-config-flags.d.ts +49 -0
- package/dist/hooks/use-codex-accounts.d.ts +59 -10
- package/dist/hooks/use-composer.d.ts +24 -2
- 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 +4 -0
- package/dist/hooks/use-connect.d.ts +23 -0
- package/dist/hooks/use-desktop-stream.d.ts +1 -1
- package/dist/hooks/use-file-attachments.d.ts +12 -0
- package/dist/hooks/use-goal.d.ts +2 -1
- package/dist/hooks/use-last-started-turn-policy.d.ts +5 -1
- package/dist/hooks/use-new-conversation.d.ts +56 -0
- package/dist/hooks/use-new-session-draft.d.ts +74 -0
- package/dist/hooks/use-realtime-voice-models.d.ts +7 -0
- package/dist/hooks/use-sandbox-files.d.ts +4 -1
- package/dist/hooks/use-session-conversation.d.ts +49 -0
- package/dist/hooks/use-session-events.d.ts +28 -7
- package/dist/hooks/use-session-mcp-approval-policy.d.ts +2 -2
- package/dist/hooks/use-session-model-account.d.ts +48 -0
- package/dist/hooks/use-supergrok-accounts.d.ts +7 -1
- package/dist/hooks/use-terminal-stream.d.ts +11 -5
- package/dist/hooks/use-usage.d.ts +40 -0
- package/dist/hooks/use-vaults.d.ts +53 -0
- package/dist/hooks/use-voice-input.d.ts +8 -1
- package/dist/hooks/use-workspace-edit.d.ts +4 -0
- package/dist/hooks/use-workspace-sessions.d.ts +22 -5
- package/dist/human-input-model.d.ts +122 -0
- package/dist/identity-link-accounts.d.ts +11 -0
- package/dist/identity-link-consent.d.ts +18 -0
- package/dist/index.d.ts +82 -20
- package/dist/index.js +2350 -6605
- package/dist/index.js.map +1 -1
- package/dist/interaction.d.ts +1 -1
- package/dist/interaction.js +14 -24
- package/dist/interaction.js.map +1 -1
- package/dist/latest-question-R77KWSUP.js +118 -0
- package/dist/latest-question-R77KWSUP.js.map +1 -0
- package/dist/lib/clipboard.d.ts +7 -0
- package/dist/lib/error-message.d.ts +7 -0
- package/dist/lib/format.d.ts +58 -4
- package/dist/lib/host-theme.d.ts +77 -0
- package/dist/lib/interaction-errors.d.ts +3 -0
- package/dist/lib/menu-styles.d.ts +22 -0
- package/dist/lib/notify-observer.d.ts +2 -0
- package/dist/lib/pierre-diffs-loader.d.ts +20 -0
- package/dist/lib/provider-recovery.d.ts +55 -0
- package/dist/lib/scrollbars.d.ts +11 -0
- package/dist/lib/terminal-input-readiness.d.ts +11 -0
- package/dist/lib/transient-retry.d.ts +25 -0
- package/dist/lib/workbench-peers.d.ts +36 -0
- package/dist/lib/xterm-theme.d.ts +7 -5
- package/dist/machines.js +9 -5
- package/dist/markdown-table-layout-3PV2UAAH.js +113 -0
- package/dist/markdown-table-layout-3PV2UAAH.js.map +1 -0
- package/dist/mcp-connection-status.d.ts +14 -0
- package/dist/model-mark-paths.d.ts +34 -0
- package/dist/model-mark-paths.js +16 -0
- package/dist/model-mark-paths.js.map +1 -0
- package/dist/model-picker-model.d.ts +111 -0
- package/dist/model-picker-model.js +25 -0
- package/dist/model-picker-model.js.map +1 -0
- package/dist/model-policy-picker-menu-7GJ5URPR.js +17 -0
- package/dist/model-policy-picker-menu-7GJ5URPR.js.map +1 -0
- package/dist/model-policy.d.ts +30 -3
- package/dist/model-policy.js +14 -1
- package/dist/native-previews.d.ts +28 -0
- package/dist/native-previews.js +82 -0
- package/dist/native-previews.js.map +1 -0
- package/dist/new-session-draft.d.ts +7 -0
- package/dist/new-session-draft.js +639 -0
- package/dist/new-session-draft.js.map +1 -0
- package/dist/notification-text.d.ts +27 -0
- package/dist/{noto-sans-arabic-loader-IA2T4X2A.js → noto-sans-arabic-loader-XSH2KYWJ.js} +3 -1
- package/dist/{noto-sans-arabic-loader-IA2T4X2A.js.map → noto-sans-arabic-loader-XSH2KYWJ.js.map} +1 -1
- package/dist/{noto-sans-jp-loader.generated-HFGLYBR3.js → noto-sans-jp-loader.generated-MR5L6V7K.js} +3 -1
- package/dist/{noto-sans-jp-loader.generated-HFGLYBR3.js.map → noto-sans-jp-loader.generated-MR5L6V7K.js.map} +1 -1
- package/dist/older-history.d.ts +3 -2
- package/dist/organization-model.d.ts +32 -0
- package/dist/organization-model.js +65 -0
- package/dist/organization-model.js.map +1 -0
- package/dist/{platform-activity-row-BJHUHXAT.js → platform-activity-row-5OCKOQWZ.js} +16 -78
- package/dist/platform-activity-row-5OCKOQWZ.js.map +1 -0
- package/dist/plugin-details.d.ts +14 -0
- package/dist/plugin-discovery.d.ts +25 -0
- package/dist/preview-loading-paint.d.ts +20 -0
- package/dist/provider.d.ts +25 -2
- package/dist/queue-presentation-model.d.ts +72 -0
- package/dist/queue-presentation-model.js +38 -0
- package/dist/queue-presentation-model.js.map +1 -0
- package/dist/{queue-surface-implementation-BSKUWHRI.js → queue-surface-implementation-GJBH7NKO.js} +65 -265
- package/dist/queue-surface-implementation-GJBH7NKO.js.map +1 -0
- package/dist/realtime/embedded-new-voice.d.ts +1 -0
- package/dist/realtime/embedded-voice.d.ts +1 -0
- package/dist/realtime/realtime-control.d.ts +4 -65
- package/dist/realtime/session-realtime.d.ts +78 -0
- package/dist/realtime.js +25 -1294
- package/dist/realtime.js.map +1 -1
- package/dist/sandbox-files-O27IPOZW.js +21 -0
- package/dist/sandbox-files-O27IPOZW.js.map +1 -0
- package/dist/sandbox-label-model.d.ts +30 -0
- package/dist/sandbox-label-model.js +20 -0
- package/dist/sandbox-label-model.js.map +1 -0
- package/dist/scrollbars.d.ts +1 -0
- package/dist/scrollbars.js +10 -0
- package/dist/scrollbars.js.map +1 -0
- package/dist/secret-reference-label.d.ts +14 -0
- package/dist/secrets-ui.d.ts +57 -0
- package/dist/session-agents-model.d.ts +10 -0
- package/dist/session-agents-model.js +25 -0
- package/dist/session-agents-model.js.map +1 -0
- package/dist/session-attention-model.d.ts +8 -0
- package/dist/session-attention-model.js +47 -0
- package/dist/session-attention-model.js.map +1 -0
- package/dist/session-auth-recommendation.d.ts +5 -0
- package/dist/session-capability-policy.d.ts +31 -0
- package/dist/session-feedback-model.d.ts +20 -0
- package/dist/session-feedback-model.js +56 -0
- package/dist/session-feedback-model.js.map +1 -0
- package/dist/session-list-model.d.ts +138 -0
- package/dist/session-list-model.js +274 -0
- package/dist/session-list-model.js.map +1 -0
- package/dist/session-realtime-7DJOIHQW.js +21 -0
- package/dist/session-realtime-7DJOIHQW.js.map +1 -0
- package/dist/session-realtime.d.ts +7 -0
- package/dist/session-realtime.js +19 -0
- package/dist/session-realtime.js.map +1 -0
- package/dist/session-status-model.d.ts +36 -0
- package/dist/session-ui.d.ts +39 -1
- package/dist/session-ui.js +126 -12
- package/dist/session-ui.js.map +1 -1
- package/dist/session.d.ts +8 -2
- package/dist/session.js +35 -20
- package/dist/site-snapshot.d.ts +14 -0
- package/dist/sites-ui.d.ts +24 -0
- package/dist/sites.d.ts +3 -0
- package/dist/sites.js +14 -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 +32 -0
- package/dist/terminal.js.map +1 -0
- package/dist/testing/session-scenarios.d.ts +10 -0
- package/dist/testing/session-scenarios.js +367 -0
- package/dist/testing/session-scenarios.js.map +1 -0
- package/dist/timeline/activity-rail.d.ts +11 -2
- package/dist/timeline/agent-identity.d.ts +30 -0
- package/dist/timeline/agent-row.d.ts +31 -0
- package/dist/timeline/allowance-exhausted-row.d.ts +24 -0
- package/dist/timeline/compaction-copy.d.ts +46 -0
- package/dist/timeline/entrance.d.ts +13 -1
- package/dist/timeline/focus-sequence.d.ts +9 -0
- package/dist/timeline/genie-copy.d.ts +3 -0
- package/dist/timeline/genie-loading.d.ts +47 -0
- package/dist/timeline/index.d.ts +10 -5
- package/dist/timeline/knowledge-receipt.d.ts +17 -0
- package/dist/timeline/message-sender.d.ts +19 -0
- package/dist/timeline/notice-presentation.d.ts +13 -0
- package/dist/timeline/parsers.d.ts +11 -0
- package/dist/timeline/patch-apply-command.d.ts +18 -0
- package/dist/timeline/platform-activity-presentation.d.ts +21 -0
- package/dist/timeline/platform-activity-row.d.ts +1 -2
- package/dist/timeline/presented-image.d.ts +11 -0
- package/dist/timeline/projection.d.ts +31 -2
- package/dist/timeline/provider-logo.d.ts +15 -0
- package/dist/timeline/question-nav-model.d.ts +23 -0
- package/dist/timeline/registry.d.ts +12 -1
- package/dist/timeline/retained-image.d.ts +18 -0
- package/dist/timeline/retained-loaders.d.ts +27 -0
- package/dist/timeline/rolling-activity.d.ts +11 -0
- package/dist/timeline/screenshot-lightbox.d.ts +23 -1
- package/dist/timeline/session-usage-limit-row.d.ts +11 -0
- package/dist/timeline/shared.d.ts +4 -1
- package/dist/timeline/startup-dispatch-details.d.ts +5 -0
- 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 +5 -2
- package/dist/timeline/tool-presentation.d.ts +172 -0
- package/dist/timeline/turn-summary-model.d.ts +95 -0
- package/dist/timeline/turn-summary.d.ts +20 -54
- package/dist/timeline/types.d.ts +179 -7
- package/dist/timeline/work-presentation.d.ts +60 -0
- package/dist/timeline-annotation-markers-U3G66KUD.js +166 -0
- package/dist/timeline-annotation-markers-U3G66KUD.js.map +1 -0
- package/dist/timeline-annotation-selection-BI7QTPTZ.js +242 -0
- package/dist/timeline-annotation-selection-BI7QTPTZ.js.map +1 -0
- package/dist/timeline-annotations-dialog-FOMHSDTE.js +274 -0
- package/dist/timeline-annotations-dialog-FOMHSDTE.js.map +1 -0
- package/dist/timeline-model.d.ts +29 -0
- package/dist/timeline-model.js +254 -0
- package/dist/timeline-model.js.map +1 -0
- package/dist/usage/allowance-copy.d.ts +25 -0
- package/dist/usage/session-usage-limit.d.ts +88 -0
- package/dist/usage/summary.d.ts +35 -0
- package/dist/usage.d.ts +17 -0
- package/dist/usage.js +1187 -0
- package/dist/usage.js.map +1 -0
- package/dist/voice-recording-owner.d.ts +7 -0
- package/package.json +107 -7
- package/src/accounts.tsx +116 -14
- package/src/approvals.ts +8 -1
- package/src/artifacts-spreadsheet.ts +1 -0
- package/src/artifacts.ts +44 -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 +20 -31
- 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 +401 -138
- package/src/components/artifacts/artifact-chrome.tsx +413 -0
- package/src/components/artifacts/artifact-sandbox.tsx +189 -0
- package/src/components/artifacts/artifact-surface.tsx +40 -20
- 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 +197 -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 +543 -103
- package/src/components/artifacts/index.ts +45 -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 +122 -5
- package/src/components/artifacts/session-artifact-viewer.tsx +378 -0
- package/src/components/artifacts/site-view.tsx +121 -0
- package/src/components/artifacts/spreadsheet-canvas.ts +5 -10
- package/src/components/artifacts/spreadsheet-command-queue.ts +184 -0
- package/src/components/artifacts/spreadsheet-download.tsx +109 -0
- package/src/components/artifacts/spreadsheet-general-display.ts +43 -0
- package/src/components/artifacts/spreadsheet-grid.tsx +344 -144
- package/src/components/artifacts/spreadsheet-resize.tsx +421 -0
- package/src/components/artifacts/spreadsheet-submissions.tsx +46 -0
- 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 +778 -318
- package/src/components/chat-composer.tsx +47 -5
- package/src/components/child-session-link.tsx +36 -0
- package/src/components/claude-mark.tsx +11 -0
- package/src/components/code-editor.tsx +13 -16
- package/src/components/composer-transcription-control.tsx +128 -30
- package/src/components/composer.tsx +404 -195
- package/src/components/computer-viewer.tsx +880 -253
- package/src/components/copy-button.tsx +13 -5
- package/src/components/desktop-viewer.tsx +1 -1
- package/src/components/enrollment-consent.tsx +1 -1
- package/src/components/enrollment-device-flow.tsx +1 -1
- package/src/components/file-browser.tsx +10 -14
- package/src/components/fleet-tile.tsx +9 -18
- package/src/components/generated-video-player.tsx +4 -2
- package/src/components/grok-mark.tsx +34 -0
- package/src/components/human-input-form.tsx +590 -283
- package/src/components/human-input-surface.tsx +11 -0
- package/src/components/interaction-intervention-banner.tsx +2 -2
- package/src/components/linkified-text.tsx +79 -0
- package/src/components/machine-card.tsx +35 -78
- package/src/components/machine-dock-bar.tsx +1 -1
- package/src/components/machine-input-display.ts +197 -3
- package/src/components/machines/agent-status-icon.tsx +31 -0
- package/src/components/machines/machine-detail.tsx +200 -31
- package/src/components/machines/machine-operation-policy.tsx +1 -1
- package/src/components/machines/machine-status.ts +241 -0
- package/src/components/machines-dashboard.tsx +2 -17
- package/src/components/markdown-table-layout.ts +143 -0
- package/src/components/markdown.tsx +466 -129
- package/src/components/message-timeline.tsx +2567 -728
- package/src/components/model-mark.tsx +102 -0
- package/src/components/model-picker.tsx +15 -4
- package/src/components/model-policy-picker-menu.tsx +371 -0
- package/src/components/model-policy-picker.tsx +256 -412
- package/src/components/new-conversation.tsx +221 -0
- package/src/components/open-geni-chat.tsx +309 -0
- package/src/components/open-geni-links.tsx +179 -0
- package/src/components/openrouter-mark.tsx +13 -0
- package/src/components/opper-mark.tsx +18 -0
- package/src/components/pierre-diff.tsx +41 -16
- package/src/components/pierre-file.tsx +35 -10
- package/src/components/preview-loading.tsx +109 -0
- package/src/components/provider-recovery-notice.tsx +49 -0
- package/src/components/queue-item-content.ts +14 -0
- package/src/components/queue-surface-implementation.tsx +51 -356
- package/src/components/queue-surface-state.tsx +3 -1
- package/src/components/rehype-secret-refs.ts +98 -0
- package/src/components/remark-soft-line-breaks.ts +166 -0
- package/src/components/sandbox-files.tsx +91 -15
- package/src/components/sandbox-terminal.tsx +84 -13
- package/src/components/sandbox-workspace.tsx +147 -51
- package/src/components/secret-question-field.tsx +324 -0
- package/src/components/secret-ref-chip.tsx +185 -0
- package/src/components/session-capability-frame.tsx +197 -0
- package/src/components/session-chrome.tsx +842 -251
- 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 +876 -0
- package/src/components/session-list.tsx +257 -0
- package/src/components/session-mcp-capability-card.tsx +680 -0
- package/src/components/session-proxy-scope.tsx +153 -0
- package/src/components/session-status.tsx +26 -17
- package/src/components/session-usage-limit-notice.tsx +174 -0
- 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 +52 -0
- package/src/components/tool-action-review.tsx +650 -0
- package/src/components/tool-review-history.tsx +88 -0
- 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 +27 -2
- package/src/components/workspace-dock.tsx +18 -1
- package/src/composer-messages.ts +150 -0
- package/src/composer-voice-events.ts +12 -0
- 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 +355 -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 +238 -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/hooks/internal.ts +3 -2
- package/src/hooks/latest-question.ts +164 -0
- package/src/hooks/shared-machines-list.ts +34 -1
- package/src/hooks/shared-query.ts +721 -0
- package/src/hooks/use-attached-browsers.ts +1 -1
- package/src/hooks/use-auth-runs.ts +0 -27
- package/src/hooks/use-available-models.ts +21 -15
- package/src/hooks/use-browser-frame-stream.ts +19 -2
- package/src/hooks/use-browser-session.ts +680 -205
- package/src/hooks/use-browser-sessions.ts +32 -1
- package/src/hooks/use-client-config-flags.ts +118 -0
- package/src/hooks/use-codex-accounts.ts +247 -47
- package/src/hooks/use-composer.ts +276 -47
- package/src/hooks/use-computer-frame-stream.ts +25 -7
- package/src/hooks/use-computer-input-posture.ts +94 -0
- package/src/hooks/use-computer-session.ts +409 -95
- package/src/hooks/use-connect.ts +23 -0
- package/src/hooks/use-desktop-stream.ts +19 -28
- package/src/hooks/use-file-attachments.ts +80 -4
- package/src/hooks/use-goal.ts +107 -13
- package/src/hooks/use-last-started-turn-policy.ts +46 -14
- package/src/hooks/use-machines.ts +4 -0
- package/src/hooks/use-new-conversation.ts +374 -0
- package/src/hooks/use-new-session-draft.ts +813 -0
- package/src/hooks/use-realtime-voice-models.ts +46 -0
- package/src/hooks/use-sandbox-files.ts +68 -20
- package/src/hooks/use-session-background-commands.ts +22 -11
- package/src/hooks/use-session-capabilities.ts +3 -2
- package/src/hooks/use-session-conversation.ts +150 -0
- package/src/hooks/use-session-events.ts +703 -382
- package/src/hooks/use-session-lineage.ts +20 -16
- package/src/hooks/use-session-mcp-approval-policy.ts +13 -5
- package/src/hooks/use-session-model-account.ts +174 -0
- package/src/hooks/use-session.ts +53 -21
- package/src/hooks/use-slash-commands.ts +6 -11
- package/src/hooks/use-supergrok-accounts.ts +22 -8
- package/src/hooks/use-terminal-stream.ts +153 -27
- package/src/hooks/use-transcription.ts +6 -0
- package/src/hooks/use-turn-queue.ts +2 -1
- package/src/hooks/use-usage.ts +100 -0
- package/src/hooks/use-vaults.ts +153 -0
- package/src/hooks/use-video-artifact-playback.ts +1 -1
- package/src/hooks/use-voice-input.ts +127 -19
- 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 +97 -32
- package/src/human-input-model.ts +359 -0
- package/src/identity-link-accounts.tsx +148 -0
- package/src/identity-link-consent.tsx +192 -0
- package/src/index.ts +262 -16
- package/src/interaction.ts +1 -0
- package/src/lib/clipboard.ts +29 -0
- package/src/lib/error-message.ts +37 -0
- package/src/lib/format.ts +213 -16
- package/src/lib/host-theme.ts +529 -0
- package/src/lib/interaction-errors.ts +15 -0
- package/src/lib/menu-styles.ts +44 -0
- package/src/lib/notify-observer.ts +15 -0
- package/src/lib/pierre-diffs-loader.ts +53 -0
- package/src/lib/provider-recovery.ts +243 -0
- package/src/lib/scrollbars.ts +30 -0
- package/src/lib/terminal-input-readiness.ts +51 -0
- package/src/lib/transient-retry.ts +99 -0
- package/src/lib/workbench-peers.ts +62 -0
- package/src/lib/xterm-theme.ts +23 -21
- package/src/mcp-connection-status.ts +35 -0
- package/src/model-mark-paths.ts +53 -0
- package/src/model-picker-model.ts +330 -0
- package/src/model-policy.ts +299 -74
- package/src/native-previews.ts +100 -0
- package/src/new-session-draft.ts +22 -0
- package/src/notification-text.ts +81 -0
- package/src/older-history.ts +22 -4
- package/src/organization-model.ts +118 -0
- package/src/plugin-details.tsx +185 -0
- package/src/plugin-discovery.tsx +196 -0
- package/src/preview-loading-paint.ts +68 -0
- package/src/provider.tsx +74 -15
- package/src/queue-presentation-model.ts +464 -0
- package/src/realtime/dropdown-menu.tsx +19 -12
- package/src/realtime/embedded-new-voice.tsx +1 -0
- package/src/realtime/embedded-voice.tsx +3 -0
- package/src/realtime/realtime-control.tsx +138 -501
- package/src/realtime/session-realtime.ts +566 -0
- package/src/sandbox-label-model.ts +53 -0
- package/src/scrollbars.ts +3 -0
- package/src/secret-reference-label.ts +43 -0
- package/src/secrets-ui.tsx +59 -0
- package/src/session-agents-model.ts +33 -0
- package/src/session-attention-model.ts +62 -0
- package/src/session-auth-recommendation.ts +48 -0
- package/src/session-capability-policy.ts +196 -0
- package/src/session-context.ts +3 -4
- package/src/session-feedback-model.ts +95 -0
- package/src/session-list-model.ts +434 -0
- package/src/session-realtime.ts +18 -0
- package/src/session-status-model.ts +99 -0
- package/src/session-ui.ts +98 -1
- package/src/session.ts +17 -1
- package/src/site-snapshot.ts +74 -0
- package/src/sites-ui.tsx +348 -0
- package/src/sites.ts +3 -0
- package/src/skill-discovery.tsx +208 -0
- package/src/terminal.ts +26 -0
- package/src/testing/session-scenarios.ts +404 -0
- package/src/timeline/activity-rail.tsx +242 -101
- package/src/timeline/agent-identity.tsx +84 -0
- package/src/timeline/agent-row.tsx +231 -0
- package/src/timeline/allowance-exhausted-row.tsx +86 -0
- package/src/timeline/compaction-copy.ts +115 -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/focus-sequence.ts +44 -0
- package/src/timeline/genie-copy.ts +19 -0
- package/src/timeline/genie-loading.tsx +143 -0
- package/src/timeline/index.ts +30 -2
- package/src/timeline/knowledge-receipt.tsx +100 -0
- package/src/timeline/message-sender.tsx +71 -0
- package/src/timeline/notice-presentation.ts +48 -0
- package/src/timeline/parsers.ts +42 -2
- package/src/timeline/patch-apply-command.tsx +135 -0
- package/src/timeline/platform-activity-presentation.ts +166 -0
- package/src/timeline/platform-activity-row.tsx +15 -90
- package/src/timeline/presented-image.ts +63 -0
- package/src/timeline/projection.ts +1746 -76
- package/src/timeline/provider-logo.tsx +53 -0
- package/src/timeline/question-nav-model.ts +28 -0
- package/src/timeline/registry.ts +26 -4
- package/src/timeline/retained-image.ts +97 -0
- package/src/timeline/retained-loaders.ts +91 -0
- package/src/timeline/rolling-activity.tsx +80 -0
- package/src/timeline/screenshot-lightbox.tsx +228 -5
- package/src/timeline/session-usage-limit-row.tsx +42 -0
- package/src/timeline/shared.tsx +42 -15
- package/src/timeline/startup-dispatch-details.tsx +36 -0
- package/src/timeline/startup-preference.ts +33 -0
- package/src/timeline/startup-timings.tsx +145 -0
- package/src/timeline/tool-display-name.ts +19 -7
- package/src/timeline/tool-presentation.ts +1316 -0
- package/src/timeline/tool-renderers.tsx +835 -1138
- package/src/timeline/turn-summary-model.ts +343 -0
- package/src/timeline/turn-summary.tsx +272 -365
- package/src/timeline/types.ts +189 -6
- package/src/timeline/work-presentation.ts +189 -0
- package/src/timeline-model.ts +143 -0
- package/src/usage/allowance-copy.ts +64 -0
- package/src/usage/session-usage-limit.ts +266 -0
- package/src/usage/summary.ts +93 -0
- package/src/usage.ts +70 -0
- package/src/voice-recording-owner.ts +22 -0
- package/styles/compiled.css +2319 -748
- package/styles/connect.css +290 -0
- package/styles/connect.d.ts +1 -0
- package/styles/effective-tokens.css +1 -0
- package/styles/index.css +309 -9
- package/styles/responsive.css +99 -7
- package/styles/session-capability.css +44 -0
- package/styles/tokens.css +134 -66
- package/dist/browser-viewer-AEFHUYZK.js +0 -14
- package/dist/chunk-4MDLEHXL.js.map +0 -1
- package/dist/chunk-5YK2ZDIG.js.map +0 -1
- package/dist/chunk-D3UIAJKY.js.map +0 -1
- package/dist/chunk-ELIYWBZR.js.map +0 -1
- package/dist/chunk-H5YGYNXS.js.map +0 -1
- package/dist/chunk-HQVCKCLG.js +0 -9458
- package/dist/chunk-HQVCKCLG.js.map +0 -1
- package/dist/chunk-HUIKIDM5.js.map +0 -1
- package/dist/chunk-ICA6R6TW.js.map +0 -1
- package/dist/chunk-JVYQRRC4.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-MZ2G2XBA.js.map +0 -1
- package/dist/chunk-NEXLLTP4.js.map +0 -1
- package/dist/chunk-OAM4WAAM.js.map +0 -1
- package/dist/chunk-PEI6RANI.js.map +0 -1
- package/dist/chunk-RGALCTWO.js.map +0 -1
- package/dist/chunk-W6NFJXSA.js +0 -454
- package/dist/chunk-W6NFJXSA.js.map +0 -1
- package/dist/chunk-WSK7G5LE.js +0 -170
- package/dist/chunk-WSK7G5LE.js.map +0 -1
- package/dist/chunk-X4A66EWZ.js +0 -223
- package/dist/chunk-X4A66EWZ.js.map +0 -1
- package/dist/chunk-XXWH2JLC.js.map +0 -1
- package/dist/chunk-YFKJ7VZH.js +0 -268
- package/dist/chunk-YFKJ7VZH.js.map +0 -1
- package/dist/chunk-YJFGAFBD.js.map +0 -1
- package/dist/computer-viewer-FWEZISW4.js +0 -16
- package/dist/fleet-decision-row-GGCAT4E4.js.map +0 -1
- package/dist/hooks/use-environments.d.ts +0 -41
- package/dist/hooks/use-packs.d.ts +0 -32
- package/dist/platform-activity-row-BJHUHXAT.js.map +0 -1
- package/dist/queue-surface-implementation-BSKUWHRI.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-environments.ts +0 -182
- package/src/hooks/use-packs.ts +0 -157
- /package/dist/{browser-viewer-AEFHUYZK.js.map → browser-viewer-ZWR6MWJ7.js.map} +0 -0
- /package/dist/{computer-viewer-FWEZISW4.js.map → chat-interactive-block-BO2IWXVK.js.map} +0 -0
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/testing/session-scenarios.ts
|
|
4
|
+
function recorder(sessionId) {
|
|
5
|
+
const events = [];
|
|
6
|
+
let clock = Date.parse("2026-10-03T09:00:00Z");
|
|
7
|
+
const push = (type, payload, turnId, advanceMs = 2e3) => {
|
|
8
|
+
clock += advanceMs;
|
|
9
|
+
events.push({
|
|
10
|
+
id: `${sessionId}-evt-${events.length + 1}`,
|
|
11
|
+
workspaceId: "lab-workspace",
|
|
12
|
+
sessionId,
|
|
13
|
+
sequence: events.length + 1,
|
|
14
|
+
type,
|
|
15
|
+
payload,
|
|
16
|
+
turnId,
|
|
17
|
+
occurredAt: new Date(clock).toISOString()
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
const tool = (turnId, id, name, args, output, durationMs = 3e3) => {
|
|
21
|
+
push("agent.toolCall.created", { id, name, arguments: args }, turnId, 800);
|
|
22
|
+
if (output !== void 0) push("agent.toolCall.output", { id, output }, turnId, durationMs);
|
|
23
|
+
};
|
|
24
|
+
return { events, push, tool };
|
|
25
|
+
}
|
|
26
|
+
function answer() {
|
|
27
|
+
const r = recorder("lab-answer");
|
|
28
|
+
const t = "turn-answer";
|
|
29
|
+
r.push(
|
|
30
|
+
"user.message",
|
|
31
|
+
{ text: "What's the difference between a retry and a resume for a failed run?" },
|
|
32
|
+
t
|
|
33
|
+
);
|
|
34
|
+
r.push("turn.started", {}, t, 400);
|
|
35
|
+
r.push(
|
|
36
|
+
"agent.reasoning.delta",
|
|
37
|
+
{ text: "The user wants a crisp conceptual distinction, with an example." },
|
|
38
|
+
t,
|
|
39
|
+
1500
|
|
40
|
+
);
|
|
41
|
+
const text = [
|
|
42
|
+
"**Retry** starts the failed step again from its last durable checkpoint. **Resume** continues the whole run from where it paused, keeping everything already done.",
|
|
43
|
+
"",
|
|
44
|
+
"### When to use which",
|
|
45
|
+
"",
|
|
46
|
+
"- **Retry** when a single step failed for a transient reason (timeout, rate limit).",
|
|
47
|
+
"- **Resume** when the run was *waiting* \u2014 for an approval, an answer, or capacity.",
|
|
48
|
+
"",
|
|
49
|
+
"```bash",
|
|
50
|
+
"opengeni sessions retry 7f3c --step build",
|
|
51
|
+
"```",
|
|
52
|
+
"",
|
|
53
|
+
"Neither replays side effects that already succeeded."
|
|
54
|
+
].join("\n");
|
|
55
|
+
r.push("agent.message.delta", { text }, t, 2500);
|
|
56
|
+
r.push("agent.message.completed", { text }, t, 300);
|
|
57
|
+
r.push("turn.completed", { output: text }, t, 200);
|
|
58
|
+
return { id: "answer", title: "Quick answer", events: r.events, running: false };
|
|
59
|
+
}
|
|
60
|
+
function working() {
|
|
61
|
+
const r = recorder("lab-working");
|
|
62
|
+
const t = "turn-working";
|
|
63
|
+
r.push(
|
|
64
|
+
"user.message",
|
|
65
|
+
{
|
|
66
|
+
text: "The checkout tests started failing after the currency change. Can you find out why and fix it?"
|
|
67
|
+
},
|
|
68
|
+
t
|
|
69
|
+
);
|
|
70
|
+
r.push("turn.started", {}, t, 400);
|
|
71
|
+
r.push(
|
|
72
|
+
"agent.reasoning.delta",
|
|
73
|
+
{ text: "Start by reproducing the failure, then narrow to the currency formatting path." },
|
|
74
|
+
t,
|
|
75
|
+
1800
|
|
76
|
+
);
|
|
77
|
+
r.tool(
|
|
78
|
+
t,
|
|
79
|
+
"c1",
|
|
80
|
+
"exec_command",
|
|
81
|
+
{ cmd: "bun test checkout" },
|
|
82
|
+
"3 failed, 41 passed\n\u2717 formats totals in NOK\n\u2717 rounds VAT per line\n\u2717 shows discount",
|
|
83
|
+
6e3
|
|
84
|
+
);
|
|
85
|
+
r.tool(
|
|
86
|
+
t,
|
|
87
|
+
"c2",
|
|
88
|
+
"search_files",
|
|
89
|
+
{ query: "formatCurrency(" },
|
|
90
|
+
"src/money/format.ts:12\nsrc/checkout/summary.tsx:48\nsrc/checkout/line.tsx:31"
|
|
91
|
+
);
|
|
92
|
+
r.push(
|
|
93
|
+
"agent.message.delta",
|
|
94
|
+
{
|
|
95
|
+
text: "Found it: the currency change switched to minor units, but the summary still divides by 100.",
|
|
96
|
+
phase: "commentary"
|
|
97
|
+
},
|
|
98
|
+
t,
|
|
99
|
+
1200
|
|
100
|
+
);
|
|
101
|
+
r.push(
|
|
102
|
+
"agent.message.completed",
|
|
103
|
+
{
|
|
104
|
+
text: "Found it: the currency change switched to minor units, but the summary still divides by 100.",
|
|
105
|
+
phase: "commentary"
|
|
106
|
+
},
|
|
107
|
+
t,
|
|
108
|
+
200
|
|
109
|
+
);
|
|
110
|
+
r.tool(t, "c3", "apply_patch", { path: "src/checkout/summary.tsx" }, "Updated 1 file (+3 \u22125)");
|
|
111
|
+
r.tool(t, "c4", "exec_command", { cmd: "bun test checkout" });
|
|
112
|
+
return { id: "working", title: "Working", events: r.events, running: true };
|
|
113
|
+
}
|
|
114
|
+
function needsYou() {
|
|
115
|
+
const r = recorder("lab-needs-you");
|
|
116
|
+
const t = "turn-needs-you";
|
|
117
|
+
r.push("user.message", { text: "Ship the fix to the preview environment and tell the team." }, t);
|
|
118
|
+
r.push("turn.started", {}, t, 400);
|
|
119
|
+
r.tool(t, "n1", "exec_command", { cmd: "bun run build" }, "Build completed in 41s", 8e3);
|
|
120
|
+
r.tool(t, "n2", "list_channels", { query: "release" }, "#releases, #release-ops");
|
|
121
|
+
r.push(
|
|
122
|
+
"agent.toolCall.created",
|
|
123
|
+
{
|
|
124
|
+
id: "n3",
|
|
125
|
+
name: "deploy_preview",
|
|
126
|
+
arguments: { environment: "preview", ref: "fix/checkout-minor-units" }
|
|
127
|
+
},
|
|
128
|
+
t,
|
|
129
|
+
900
|
|
130
|
+
);
|
|
131
|
+
r.push(
|
|
132
|
+
"session.requiresAction",
|
|
133
|
+
{
|
|
134
|
+
approvals: [
|
|
135
|
+
{
|
|
136
|
+
id: "n3",
|
|
137
|
+
name: "deploy_preview",
|
|
138
|
+
arguments: { environment: "preview", ref: "fix/checkout-minor-units" }
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
t,
|
|
143
|
+
300
|
|
144
|
+
);
|
|
145
|
+
r.push(
|
|
146
|
+
"session.humanInput.requested",
|
|
147
|
+
{
|
|
148
|
+
request: {
|
|
149
|
+
id: "hi-1",
|
|
150
|
+
allowSkip: true,
|
|
151
|
+
questions: [
|
|
152
|
+
{
|
|
153
|
+
id: "channel",
|
|
154
|
+
kind: "single_select",
|
|
155
|
+
prompt: "Where should I announce the preview?",
|
|
156
|
+
label: "Announcement",
|
|
157
|
+
required: true,
|
|
158
|
+
options: [
|
|
159
|
+
{ id: "releases", label: "#releases", description: "Team-wide release notes" },
|
|
160
|
+
{ id: "release-ops", label: "#release-ops", description: "Operators only" }
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
t,
|
|
167
|
+
300
|
|
168
|
+
);
|
|
169
|
+
return { id: "needs-you", title: "Needs you", events: r.events, running: true };
|
|
170
|
+
}
|
|
171
|
+
function history() {
|
|
172
|
+
const r = recorder("lab-history");
|
|
173
|
+
const a = "turn-h1";
|
|
174
|
+
r.push("user.message", { text: "Summarise yesterday's support tickets." }, a);
|
|
175
|
+
r.push("turn.started", {}, a, 400);
|
|
176
|
+
r.tool(a, "h1", "search_tickets", { since: "yesterday" }, "38 tickets", 4e3);
|
|
177
|
+
r.tool(a, "h2", "read_ticket", { id: "T-1182" }, "Customer cannot export invoices to PDF");
|
|
178
|
+
r.tool(a, "h3", "read_ticket", { id: "T-1190" }, "Login loop on Android 15");
|
|
179
|
+
const summary = "38 tickets yesterday. The two themes:\n\n1. **PDF export** fails for invoices with attachments (11 tickets).\n2. **Android login loop** after the last release (7 tickets).\n\nEverything else was routine.";
|
|
180
|
+
r.push("agent.message.delta", { text: summary }, a, 2e3);
|
|
181
|
+
r.push("agent.message.completed", { text: summary }, a, 200);
|
|
182
|
+
r.push("turn.completed", { output: summary }, a, 200);
|
|
183
|
+
const b = "turn-h2";
|
|
184
|
+
r.push(
|
|
185
|
+
"user.message",
|
|
186
|
+
{ text: "Open an issue for the Android one and assign it to mobile." },
|
|
187
|
+
b,
|
|
188
|
+
6e4
|
|
189
|
+
);
|
|
190
|
+
r.push("turn.started", {}, b, 400);
|
|
191
|
+
r.tool(
|
|
192
|
+
b,
|
|
193
|
+
"h4",
|
|
194
|
+
"create_issue",
|
|
195
|
+
{ title: "Android login loop after release", team: "mobile" },
|
|
196
|
+
"Error: tracker token expired",
|
|
197
|
+
2e3
|
|
198
|
+
);
|
|
199
|
+
r.push(
|
|
200
|
+
"turn.failed",
|
|
201
|
+
{ error: "The issue tracker connection needs to be reauthorized." },
|
|
202
|
+
b,
|
|
203
|
+
400
|
|
204
|
+
);
|
|
205
|
+
const c = "turn-h3";
|
|
206
|
+
r.push("user.message", { text: "Reconnected. Try again." }, c, 3e4);
|
|
207
|
+
r.push("turn.started", {}, c, 400);
|
|
208
|
+
r.tool(
|
|
209
|
+
c,
|
|
210
|
+
"h5",
|
|
211
|
+
"create_issue",
|
|
212
|
+
{ title: "Android login loop after release", team: "mobile" },
|
|
213
|
+
"Created MOB-412",
|
|
214
|
+
2e3
|
|
215
|
+
);
|
|
216
|
+
const done = "Created **MOB-412** and assigned it to the mobile team.";
|
|
217
|
+
r.push("agent.message.delta", { text: done }, c, 1e3);
|
|
218
|
+
r.push("agent.message.completed", { text: done }, c, 200);
|
|
219
|
+
r.push("turn.completed", { output: done }, c, 200);
|
|
220
|
+
return { id: "history", title: "History", events: r.events, running: false };
|
|
221
|
+
}
|
|
222
|
+
function failure() {
|
|
223
|
+
const r = recorder("lab-failure");
|
|
224
|
+
const t = "turn-failure";
|
|
225
|
+
r.push("user.message", { text: "Deploy the latest build to staging." }, t);
|
|
226
|
+
r.push("turn.started", {}, t, 400);
|
|
227
|
+
r.tool(t, "f1", "exec_command", { cmd: "bun run build" }, "Build completed in 38s", 7e3);
|
|
228
|
+
r.tool(
|
|
229
|
+
t,
|
|
230
|
+
"f2",
|
|
231
|
+
"exec_command",
|
|
232
|
+
{ cmd: "deploy --env staging" },
|
|
233
|
+
"error: staging cluster unreachable (connection refused after 3 attempts)",
|
|
234
|
+
4e3
|
|
235
|
+
);
|
|
236
|
+
r.push(
|
|
237
|
+
"turn.failed",
|
|
238
|
+
{ error: "The staging cluster refused the connection. Nothing was deployed." },
|
|
239
|
+
t,
|
|
240
|
+
400
|
|
241
|
+
);
|
|
242
|
+
return { id: "failure", title: "Failure", events: r.events, running: false };
|
|
243
|
+
}
|
|
244
|
+
function longContent() {
|
|
245
|
+
const r = recorder("lab-long");
|
|
246
|
+
const t = "turn-long";
|
|
247
|
+
const question = [
|
|
248
|
+
"Here is the incident timeline from the on-call channel. Please turn it into a short postmortem with a summary, impact, root cause, a table of the timeline and the follow-ups.",
|
|
249
|
+
"",
|
|
250
|
+
"09:02 alerts fire for elevated 5xx on the checkout API; 09:05 on-call acknowledges; 09:11 rollback of release 412 starts; 09:19 error rate back to baseline; 09:40 root cause identified as a missing index after the orders migration; 10:15 index added and release 412 redeployed."
|
|
251
|
+
].join("\n");
|
|
252
|
+
r.push("user.message", { text: question }, t);
|
|
253
|
+
r.push("turn.started", {}, t, 400);
|
|
254
|
+
r.push(
|
|
255
|
+
"agent.reasoning.delta",
|
|
256
|
+
{ text: "Structure it as a standard postmortem with a timeline table." },
|
|
257
|
+
t,
|
|
258
|
+
1500
|
|
259
|
+
);
|
|
260
|
+
const text = [
|
|
261
|
+
"## Postmortem: checkout 5xx after release 412",
|
|
262
|
+
"",
|
|
263
|
+
"**Summary.** For 17 minutes the checkout API returned elevated server errors after release 412. Rolling back restored service; the fix shipped the same morning.",
|
|
264
|
+
"",
|
|
265
|
+
"**Impact.** Roughly 6% of checkout attempts failed between 09:02 and 09:19. No orders were lost, but some customers had to retry.",
|
|
266
|
+
"",
|
|
267
|
+
"**Root cause.** The orders migration in release 412 dropped and recreated a table without its `customer_id` index, so a hot query fell back to a sequential scan and timed out under load.",
|
|
268
|
+
"",
|
|
269
|
+
"### Timeline",
|
|
270
|
+
"",
|
|
271
|
+
"| Time | Event |",
|
|
272
|
+
"| --- | --- |",
|
|
273
|
+
"| 09:02 | Alerts fire for elevated 5xx on checkout |",
|
|
274
|
+
"| 09:05 | On-call acknowledges |",
|
|
275
|
+
"| 09:11 | Rollback of release 412 starts |",
|
|
276
|
+
"| 09:19 | Error rate back to baseline |",
|
|
277
|
+
"| 09:40 | Missing index identified |",
|
|
278
|
+
"| 10:15 | Index added, release 412 redeployed |",
|
|
279
|
+
"",
|
|
280
|
+
"### Follow-ups",
|
|
281
|
+
"",
|
|
282
|
+
"1. Add a migration check that fails when an index disappears.",
|
|
283
|
+
"2. Alert on query latency, not only error rate.",
|
|
284
|
+
"3. Document the rollback runbook link in the alert itself.",
|
|
285
|
+
"",
|
|
286
|
+
"```sql",
|
|
287
|
+
"CREATE INDEX CONCURRENTLY orders_customer_id_idx ON orders (customer_id);",
|
|
288
|
+
"```",
|
|
289
|
+
"",
|
|
290
|
+
"> Rollback was the right first move: it bought time to find the cause without pressure."
|
|
291
|
+
].join("\n");
|
|
292
|
+
r.push("agent.message.delta", { text }, t, 3e3);
|
|
293
|
+
r.push("agent.message.completed", { text }, t, 300);
|
|
294
|
+
r.push("turn.completed", { output: text }, t, 200);
|
|
295
|
+
return { id: "long", title: "Long content", events: r.events, running: false };
|
|
296
|
+
}
|
|
297
|
+
var PREVIEW_FENCE_BODY = [
|
|
298
|
+
'<div class="card" style="padding:16px">',
|
|
299
|
+
' <h2 style="margin:0 0 8px">Weekly signups</h2>',
|
|
300
|
+
' <p style="margin:0 0 12px;color:#777">Last 6 weeks, all channels</p>',
|
|
301
|
+
' <div style="display:flex;gap:8px;align-items:flex-end;height:140px">',
|
|
302
|
+
...[42, 58, 51, 73, 88, 96].map(
|
|
303
|
+
(value) => ` <div style="flex:1;height:${value}%;border-radius:6px;background:linear-gradient(#5fb8a3,#2f7d6d)"></div>`
|
|
304
|
+
),
|
|
305
|
+
" </div>",
|
|
306
|
+
"</div>"
|
|
307
|
+
].join("\n");
|
|
308
|
+
function media() {
|
|
309
|
+
const r = recorder("lab-media");
|
|
310
|
+
const t = "turn-media";
|
|
311
|
+
r.push("user.message", { text: "Compare the plans and show me the signup trend." }, t);
|
|
312
|
+
r.push("turn.started", {}, t, 400);
|
|
313
|
+
const text = [
|
|
314
|
+
"Signups are up again. Here is the trend as a live chart:",
|
|
315
|
+
"",
|
|
316
|
+
"```opengeni-html",
|
|
317
|
+
PREVIEW_FENCE_BODY,
|
|
318
|
+
"```",
|
|
319
|
+
"",
|
|
320
|
+
"",
|
|
321
|
+
"",
|
|
322
|
+
"And the comparison across every plan:",
|
|
323
|
+
"",
|
|
324
|
+
"| Plan | Monthly price | Seats included | Storage | Support | Uptime SLA | Overage per seat |",
|
|
325
|
+
"| --- | --- | --- | --- | --- | --- | --- |",
|
|
326
|
+
"| Starter | $0 | 3 | 5 GB | Community forum | None | Not available |",
|
|
327
|
+
"| Team | $49 | 10 | 100 GB | Email, next business day | 99.5% | $6 |",
|
|
328
|
+
"| Business | $199 | 50 | 1 TB | Chat and email, 4 hours | 99.9% | $5 |",
|
|
329
|
+
"| Enterprise | Custom | Unlimited | Custom | Dedicated manager | 99.99% | Negotiated |",
|
|
330
|
+
"",
|
|
331
|
+
"Signups grew every week except week 3."
|
|
332
|
+
].join("\n");
|
|
333
|
+
r.push("agent.message.delta", { text }, t, 2500);
|
|
334
|
+
r.push("agent.message.completed", { text }, t, 300);
|
|
335
|
+
r.push("turn.completed", { output: text }, t, 200);
|
|
336
|
+
return { id: "media", title: "Tables & media", events: r.events, running: false };
|
|
337
|
+
}
|
|
338
|
+
function previewing() {
|
|
339
|
+
const r = recorder("lab-previewing");
|
|
340
|
+
const t = "turn-previewing";
|
|
341
|
+
r.push("user.message", { text: "Make me a quick chart of weekly signups." }, t);
|
|
342
|
+
r.push("turn.started", {}, t, 400);
|
|
343
|
+
const partial = PREVIEW_FENCE_BODY.split("\n").slice(0, 5).join("\n");
|
|
344
|
+
r.push(
|
|
345
|
+
"agent.message.delta",
|
|
346
|
+
{ text: ["Here is the chart:", "", "```opengeni-html", partial].join("\n") },
|
|
347
|
+
t,
|
|
348
|
+
2e3
|
|
349
|
+
);
|
|
350
|
+
return { id: "previewing", title: "Writing a preview", events: r.events, running: true };
|
|
351
|
+
}
|
|
352
|
+
function labScenarios() {
|
|
353
|
+
return [
|
|
354
|
+
answer(),
|
|
355
|
+
working(),
|
|
356
|
+
needsYou(),
|
|
357
|
+
history(),
|
|
358
|
+
failure(),
|
|
359
|
+
longContent(),
|
|
360
|
+
media(),
|
|
361
|
+
previewing()
|
|
362
|
+
];
|
|
363
|
+
}
|
|
364
|
+
export {
|
|
365
|
+
labScenarios
|
|
366
|
+
};
|
|
367
|
+
//# sourceMappingURL=session-scenarios.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/testing/session-scenarios.ts"],"sourcesContent":["// Deterministic session scenarios for visual harnesses (web dev gallery and native lab).\n// They use the same durable event shapes a live session produces, so every renderer\n// replays identical input through the official projection with no model calls.\nimport type { SessionEvent } from \"@opengeni/sdk\";\n\nexport type LabScenarioId =\n | \"answer\"\n | \"working\"\n | \"needs-you\"\n | \"history\"\n | \"failure\"\n | \"long\"\n | \"media\"\n | \"previewing\";\n\nexport interface LabScenario {\n id: LabScenarioId;\n title: string;\n events: SessionEvent[];\n /** Whether the session is currently running a turn. */\n running: boolean;\n}\n\nfunction recorder(sessionId: string) {\n const events: SessionEvent[] = [];\n let clock = Date.parse(\"2026-10-03T09:00:00Z\");\n const push = (type: string, payload: unknown, turnId: string | null, advanceMs = 2_000) => {\n clock += advanceMs;\n events.push({\n id: `${sessionId}-evt-${events.length + 1}`,\n workspaceId: \"lab-workspace\",\n sessionId,\n sequence: events.length + 1,\n type,\n payload,\n turnId,\n occurredAt: new Date(clock).toISOString(),\n } as SessionEvent);\n };\n const tool = (\n turnId: string,\n id: string,\n name: string,\n args: unknown,\n output?: unknown,\n durationMs = 3_000,\n ) => {\n push(\"agent.toolCall.created\", { id, name, arguments: args }, turnId, 800);\n if (output !== undefined) push(\"agent.toolCall.output\", { id, output }, turnId, durationMs);\n };\n return { events, push, tool };\n}\n\nfunction answer(): LabScenario {\n const r = recorder(\"lab-answer\");\n const t = \"turn-answer\";\n r.push(\n \"user.message\",\n { text: \"What's the difference between a retry and a resume for a failed run?\" },\n t,\n );\n r.push(\"turn.started\", {}, t, 400);\n r.push(\n \"agent.reasoning.delta\",\n { text: \"The user wants a crisp conceptual distinction, with an example.\" },\n t,\n 1_500,\n );\n const text = [\n \"**Retry** starts the failed step again from its last durable checkpoint. **Resume** continues the whole run from where it paused, keeping everything already done.\",\n \"\",\n \"### When to use which\",\n \"\",\n \"- **Retry** when a single step failed for a transient reason (timeout, rate limit).\",\n \"- **Resume** when the run was *waiting* — for an approval, an answer, or capacity.\",\n \"\",\n \"```bash\",\n \"opengeni sessions retry 7f3c --step build\",\n \"```\",\n \"\",\n \"Neither replays side effects that already succeeded.\",\n ].join(\"\\n\");\n r.push(\"agent.message.delta\", { text }, t, 2_500);\n r.push(\"agent.message.completed\", { text }, t, 300);\n r.push(\"turn.completed\", { output: text }, t, 200);\n return { id: \"answer\", title: \"Quick answer\", events: r.events, running: false };\n}\n\nfunction working(): LabScenario {\n const r = recorder(\"lab-working\");\n const t = \"turn-working\";\n r.push(\n \"user.message\",\n {\n text: \"The checkout tests started failing after the currency change. Can you find out why and fix it?\",\n },\n t,\n );\n r.push(\"turn.started\", {}, t, 400);\n r.push(\n \"agent.reasoning.delta\",\n { text: \"Start by reproducing the failure, then narrow to the currency formatting path.\" },\n t,\n 1_800,\n );\n r.tool(\n t,\n \"c1\",\n \"exec_command\",\n { cmd: \"bun test checkout\" },\n \"3 failed, 41 passed\\n✗ formats totals in NOK\\n✗ rounds VAT per line\\n✗ shows discount\",\n 6_000,\n );\n r.tool(\n t,\n \"c2\",\n \"search_files\",\n { query: \"formatCurrency(\" },\n \"src/money/format.ts:12\\nsrc/checkout/summary.tsx:48\\nsrc/checkout/line.tsx:31\",\n );\n r.push(\n \"agent.message.delta\",\n {\n text: \"Found it: the currency change switched to minor units, but the summary still divides by 100.\",\n phase: \"commentary\",\n },\n t,\n 1_200,\n );\n r.push(\n \"agent.message.completed\",\n {\n text: \"Found it: the currency change switched to minor units, but the summary still divides by 100.\",\n phase: \"commentary\",\n },\n t,\n 200,\n );\n r.tool(t, \"c3\", \"apply_patch\", { path: \"src/checkout/summary.tsx\" }, \"Updated 1 file (+3 −5)\");\n r.tool(t, \"c4\", \"exec_command\", { cmd: \"bun test checkout\" });\n return { id: \"working\", title: \"Working\", events: r.events, running: true };\n}\n\nfunction needsYou(): LabScenario {\n const r = recorder(\"lab-needs-you\");\n const t = \"turn-needs-you\";\n r.push(\"user.message\", { text: \"Ship the fix to the preview environment and tell the team.\" }, t);\n r.push(\"turn.started\", {}, t, 400);\n r.tool(t, \"n1\", \"exec_command\", { cmd: \"bun run build\" }, \"Build completed in 41s\", 8_000);\n r.tool(t, \"n2\", \"list_channels\", { query: \"release\" }, \"#releases, #release-ops\");\n r.push(\n \"agent.toolCall.created\",\n {\n id: \"n3\",\n name: \"deploy_preview\",\n arguments: { environment: \"preview\", ref: \"fix/checkout-minor-units\" },\n },\n t,\n 900,\n );\n r.push(\n \"session.requiresAction\",\n {\n approvals: [\n {\n id: \"n3\",\n name: \"deploy_preview\",\n arguments: { environment: \"preview\", ref: \"fix/checkout-minor-units\" },\n },\n ],\n },\n t,\n 300,\n );\n r.push(\n \"session.humanInput.requested\",\n {\n request: {\n id: \"hi-1\",\n allowSkip: true,\n questions: [\n {\n id: \"channel\",\n kind: \"single_select\",\n prompt: \"Where should I announce the preview?\",\n label: \"Announcement\",\n required: true,\n options: [\n { id: \"releases\", label: \"#releases\", description: \"Team-wide release notes\" },\n { id: \"release-ops\", label: \"#release-ops\", description: \"Operators only\" },\n ],\n },\n ],\n },\n },\n t,\n 300,\n );\n return { id: \"needs-you\", title: \"Needs you\", events: r.events, running: true };\n}\n\nfunction history(): LabScenario {\n const r = recorder(\"lab-history\");\n const a = \"turn-h1\";\n r.push(\"user.message\", { text: \"Summarise yesterday's support tickets.\" }, a);\n r.push(\"turn.started\", {}, a, 400);\n r.tool(a, \"h1\", \"search_tickets\", { since: \"yesterday\" }, \"38 tickets\", 4_000);\n r.tool(a, \"h2\", \"read_ticket\", { id: \"T-1182\" }, \"Customer cannot export invoices to PDF\");\n r.tool(a, \"h3\", \"read_ticket\", { id: \"T-1190\" }, \"Login loop on Android 15\");\n const summary =\n \"38 tickets yesterday. The two themes:\\n\\n1. **PDF export** fails for invoices with attachments (11 tickets).\\n2. **Android login loop** after the last release (7 tickets).\\n\\nEverything else was routine.\";\n r.push(\"agent.message.delta\", { text: summary }, a, 2_000);\n r.push(\"agent.message.completed\", { text: summary }, a, 200);\n r.push(\"turn.completed\", { output: summary }, a, 200);\n const b = \"turn-h2\";\n r.push(\n \"user.message\",\n { text: \"Open an issue for the Android one and assign it to mobile.\" },\n b,\n 60_000,\n );\n r.push(\"turn.started\", {}, b, 400);\n r.tool(\n b,\n \"h4\",\n \"create_issue\",\n { title: \"Android login loop after release\", team: \"mobile\" },\n \"Error: tracker token expired\",\n 2_000,\n );\n r.push(\n \"turn.failed\",\n { error: \"The issue tracker connection needs to be reauthorized.\" },\n b,\n 400,\n );\n const c = \"turn-h3\";\n r.push(\"user.message\", { text: \"Reconnected. Try again.\" }, c, 30_000);\n r.push(\"turn.started\", {}, c, 400);\n r.tool(\n c,\n \"h5\",\n \"create_issue\",\n { title: \"Android login loop after release\", team: \"mobile\" },\n \"Created MOB-412\",\n 2_000,\n );\n const done = \"Created **MOB-412** and assigned it to the mobile team.\";\n r.push(\"agent.message.delta\", { text: done }, c, 1_000);\n r.push(\"agent.message.completed\", { text: done }, c, 200);\n r.push(\"turn.completed\", { output: done }, c, 200);\n return { id: \"history\", title: \"History\", events: r.events, running: false };\n}\n\nfunction failure(): LabScenario {\n const r = recorder(\"lab-failure\");\n const t = \"turn-failure\";\n r.push(\"user.message\", { text: \"Deploy the latest build to staging.\" }, t);\n r.push(\"turn.started\", {}, t, 400);\n r.tool(t, \"f1\", \"exec_command\", { cmd: \"bun run build\" }, \"Build completed in 38s\", 7_000);\n r.tool(\n t,\n \"f2\",\n \"exec_command\",\n { cmd: \"deploy --env staging\" },\n \"error: staging cluster unreachable (connection refused after 3 attempts)\",\n 4_000,\n );\n r.push(\n \"turn.failed\",\n { error: \"The staging cluster refused the connection. Nothing was deployed.\" },\n t,\n 400,\n );\n return { id: \"failure\", title: \"Failure\", events: r.events, running: false };\n}\n\nfunction longContent(): LabScenario {\n const r = recorder(\"lab-long\");\n const t = \"turn-long\";\n const question = [\n \"Here is the incident timeline from the on-call channel. Please turn it into a short postmortem with a summary, impact, root cause, a table of the timeline and the follow-ups.\",\n \"\",\n \"09:02 alerts fire for elevated 5xx on the checkout API; 09:05 on-call acknowledges; 09:11 rollback of release 412 starts; 09:19 error rate back to baseline; 09:40 root cause identified as a missing index after the orders migration; 10:15 index added and release 412 redeployed.\",\n ].join(\"\\n\");\n r.push(\"user.message\", { text: question }, t);\n r.push(\"turn.started\", {}, t, 400);\n r.push(\n \"agent.reasoning.delta\",\n { text: \"Structure it as a standard postmortem with a timeline table.\" },\n t,\n 1_500,\n );\n const text = [\n \"## Postmortem: checkout 5xx after release 412\",\n \"\",\n \"**Summary.** For 17 minutes the checkout API returned elevated server errors after release 412. Rolling back restored service; the fix shipped the same morning.\",\n \"\",\n \"**Impact.** Roughly 6% of checkout attempts failed between 09:02 and 09:19. No orders were lost, but some customers had to retry.\",\n \"\",\n \"**Root cause.** The orders migration in release 412 dropped and recreated a table without its `customer_id` index, so a hot query fell back to a sequential scan and timed out under load.\",\n \"\",\n \"### Timeline\",\n \"\",\n \"| Time | Event |\",\n \"| --- | --- |\",\n \"| 09:02 | Alerts fire for elevated 5xx on checkout |\",\n \"| 09:05 | On-call acknowledges |\",\n \"| 09:11 | Rollback of release 412 starts |\",\n \"| 09:19 | Error rate back to baseline |\",\n \"| 09:40 | Missing index identified |\",\n \"| 10:15 | Index added, release 412 redeployed |\",\n \"\",\n \"### Follow-ups\",\n \"\",\n \"1. Add a migration check that fails when an index disappears.\",\n \"2. Alert on query latency, not only error rate.\",\n \"3. Document the rollback runbook link in the alert itself.\",\n \"\",\n \"```sql\",\n \"CREATE INDEX CONCURRENTLY orders_customer_id_idx ON orders (customer_id);\",\n \"```\",\n \"\",\n \"> Rollback was the right first move: it bought time to find the cause without pressure.\",\n ].join(\"\\n\");\n r.push(\"agent.message.delta\", { text }, t, 3_000);\n r.push(\"agent.message.completed\", { text }, t, 300);\n r.push(\"turn.completed\", { output: text }, t, 200);\n return { id: \"long\", title: \"Long content\", events: r.events, running: false };\n}\n\nconst PREVIEW_FENCE_BODY = [\n '<div class=\"card\" style=\"padding:16px\">',\n ' <h2 style=\"margin:0 0 8px\">Weekly signups</h2>',\n ' <p style=\"margin:0 0 12px;color:#777\">Last 6 weeks, all channels</p>',\n ' <div style=\"display:flex;gap:8px;align-items:flex-end;height:140px\">',\n ...[42, 58, 51, 73, 88, 96].map(\n (value) =>\n ` <div style=\"flex:1;height:${value}%;border-radius:6px;background:linear-gradient(#5fb8a3,#2f7d6d)\"></div>`,\n ),\n \" </div>\",\n \"</div>\",\n].join(\"\\n\");\n\n/** Wide table, an image and a finished interactive preview. */\nfunction media(): LabScenario {\n const r = recorder(\"lab-media\");\n const t = \"turn-media\";\n r.push(\"user.message\", { text: \"Compare the plans and show me the signup trend.\" }, t);\n r.push(\"turn.started\", {}, t, 400);\n const text = [\n \"Signups are up again. Here is the trend as a live chart:\",\n \"\",\n \"```opengeni-html\",\n PREVIEW_FENCE_BODY,\n \"```\",\n \"\",\n \"\",\n \"\",\n \"And the comparison across every plan:\",\n \"\",\n \"| Plan | Monthly price | Seats included | Storage | Support | Uptime SLA | Overage per seat |\",\n \"| --- | --- | --- | --- | --- | --- | --- |\",\n \"| Starter | $0 | 3 | 5 GB | Community forum | None | Not available |\",\n \"| Team | $49 | 10 | 100 GB | Email, next business day | 99.5% | $6 |\",\n \"| Business | $199 | 50 | 1 TB | Chat and email, 4 hours | 99.9% | $5 |\",\n \"| Enterprise | Custom | Unlimited | Custom | Dedicated manager | 99.99% | Negotiated |\",\n \"\",\n \"Signups grew every week except week 3.\",\n ].join(\"\\n\");\n r.push(\"agent.message.delta\", { text }, t, 2_500);\n r.push(\"agent.message.completed\", { text }, t, 300);\n r.push(\"turn.completed\", { output: text }, t, 200);\n return { id: \"media\", title: \"Tables & media\", events: r.events, running: false };\n}\n\n/** The assistant is still writing an interactive preview. */\nfunction previewing(): LabScenario {\n const r = recorder(\"lab-previewing\");\n const t = \"turn-previewing\";\n r.push(\"user.message\", { text: \"Make me a quick chart of weekly signups.\" }, t);\n r.push(\"turn.started\", {}, t, 400);\n const partial = PREVIEW_FENCE_BODY.split(\"\\n\").slice(0, 5).join(\"\\n\");\n r.push(\n \"agent.message.delta\",\n { text: [\"Here is the chart:\", \"\", \"```opengeni-html\", partial].join(\"\\n\") },\n t,\n 2_000,\n );\n return { id: \"previewing\", title: \"Writing a preview\", events: r.events, running: true };\n}\n\nexport function labScenarios(): LabScenario[] {\n return [\n answer(),\n working(),\n needsYou(),\n history(),\n failure(),\n longContent(),\n media(),\n previewing(),\n ];\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
1
2
|
import type { RetainedArtifactLoader, RetainedScreenshotLoader, ToolRegistry } from "./registry.js";
|
|
2
|
-
import type { ActivityItem } from "./types.js";
|
|
3
|
+
import type { ActivityItem, AgentMessageItem } from "./types.js";
|
|
3
4
|
export type ActivityRailProps = {
|
|
4
5
|
items: ActivityItem[];
|
|
6
|
+
/** The owning turn remains active between individual phase receipts. */
|
|
7
|
+
startupActive?: boolean;
|
|
5
8
|
/** Renderer registry for tool calls. Defaults to {@link defaultToolRegistry}. */
|
|
6
9
|
toolRegistry?: ToolRegistry | undefined;
|
|
7
10
|
/** Drill into a spawned worker session. */
|
|
@@ -19,4 +22,10 @@ export type ActivityRailProps = {
|
|
|
19
22
|
bare?: boolean | undefined;
|
|
20
23
|
className?: string | undefined;
|
|
21
24
|
};
|
|
22
|
-
export declare function ActivityRail({ items, toolRegistry, onOpenSession, onMemoryClick, loadRetainedScreenshot, loadRetainedArtifact, bare, className, }: ActivityRailProps): import("react").JSX.Element;
|
|
25
|
+
export declare function ActivityRail({ items, startupActive, toolRegistry, onOpenSession, onMemoryClick, loadRetainedScreenshot, loadRetainedArtifact, bare, className, }: ActivityRailProps): import("react").JSX.Element;
|
|
26
|
+
/**
|
|
27
|
+
* Host message renderer for progress notes inside a rail, so notes keep the
|
|
28
|
+
* host's links and formatting. Without one, notes render the library Markdown.
|
|
29
|
+
*/
|
|
30
|
+
export declare const ActivityNoteTextContext: import("react").Context<((text: string, item: AgentMessageItem) => ReactNode) | null>;
|
|
31
|
+
export declare function renderActivity(item: ActivityItem, toolRegistry: ToolRegistry, onOpenSession: ((sessionId: string) => void) | undefined, onMemoryClick: ((memoryId: string) => void) | undefined, loadRetainedScreenshot: RetainedScreenshotLoader | undefined, loadRetainedArtifact: RetainedArtifactLoader | undefined): import("react").JSX.Element;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import type { TimelineItem } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Host lookup from a session id to its current display title. Return null or
|
|
5
|
+
* undefined when the session is unknown; the timeline then falls back to the
|
|
6
|
+
* title given at spawn time, then to generic copy.
|
|
7
|
+
*/
|
|
8
|
+
export type ResolveSessionTitle = (sessionId: string) => string | null | undefined;
|
|
9
|
+
type AgentIdentity = {
|
|
10
|
+
/** The best known display title for an agent session, or null. */
|
|
11
|
+
titleFor: (sessionId: string | null | undefined) => string | null;
|
|
12
|
+
onOpenSession?: ((sessionId: string) => void) | undefined;
|
|
13
|
+
};
|
|
14
|
+
/** Typed routing coordinates only: a session reference is always a UUID. */
|
|
15
|
+
export declare function isSessionId(value: string | null | undefined): value is string;
|
|
16
|
+
/** One bounded display line, or null for an empty or non-string title. */
|
|
17
|
+
export declare function displayAgentTitle(value: unknown): string | null;
|
|
18
|
+
export declare function useAgentIdentity(): AgentIdentity;
|
|
19
|
+
/**
|
|
20
|
+
* Names the agents a timeline talks to. The host resolver wins (it follows
|
|
21
|
+
* renames); otherwise the title the manager passed when spawning that session
|
|
22
|
+
* in this same timeline is used.
|
|
23
|
+
*/
|
|
24
|
+
export declare function AgentIdentityProvider({ items, resolveSessionTitle, onOpenSession, children, }: {
|
|
25
|
+
items: readonly TimelineItem[];
|
|
26
|
+
resolveSessionTitle?: ResolveSessionTitle | undefined;
|
|
27
|
+
onOpenSession?: ((sessionId: string) => void) | undefined;
|
|
28
|
+
children: ReactNode;
|
|
29
|
+
}): import("react").JSX.Element;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import type { AgentTitleParts } from "./platform-activity-presentation.js";
|
|
3
|
+
export type AgentRowProps = {
|
|
4
|
+
icon: ReactNode;
|
|
5
|
+
title: AgentTitleParts;
|
|
6
|
+
/** Quiet secondary text shown while collapsed. */
|
|
7
|
+
preview?: string | null | undefined;
|
|
8
|
+
/** Two lines suit inbound messages; spawns and messages use one. */
|
|
9
|
+
previewLines?: 1 | 2 | undefined;
|
|
10
|
+
/** Short trailing note after the title, e.g. "+2 earlier". */
|
|
11
|
+
meta?: string | null | undefined;
|
|
12
|
+
/** The agent session the row deep-links to. */
|
|
13
|
+
sessionId?: string | null | undefined;
|
|
14
|
+
onOpenSession?: ((sessionId: string) => void) | undefined;
|
|
15
|
+
running?: boolean | undefined;
|
|
16
|
+
failed?: boolean | undefined;
|
|
17
|
+
cancelled?: boolean | undefined;
|
|
18
|
+
/** Expanded body; the row is static when absent. */
|
|
19
|
+
children?: ReactNode | undefined;
|
|
20
|
+
};
|
|
21
|
+
export declare function AgentRow({ icon, title, preview, previewLines, meta, sessionId, onOpenSession, running, failed, cancelled, children, }: AgentRowProps): import("react").JSX.Element;
|
|
22
|
+
/** Plain multi-line text for an expanded agent row. */
|
|
23
|
+
export declare function AgentRowText({ children }: {
|
|
24
|
+
children: string;
|
|
25
|
+
}): import("react").JSX.Element;
|
|
26
|
+
/** A labelled section inside an expanded agent row (Brief, Report, Evidence). */
|
|
27
|
+
export declare function AgentRowSection({ label, children, muted, }: {
|
|
28
|
+
label: string;
|
|
29
|
+
children: string;
|
|
30
|
+
muted?: boolean | undefined;
|
|
31
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AllowanceExhaustedRefusal } from "@opengeni/sdk";
|
|
2
|
+
import { type ReactNode } from "react";
|
|
3
|
+
import { type AllowanceLabels } from "../usage/allowance-copy.js";
|
|
4
|
+
/**
|
|
5
|
+
* Replace the built-in "usage limit reached" row. Return `undefined` to keep
|
|
6
|
+
* the default for this refusal (for example, only customize member limits).
|
|
7
|
+
*/
|
|
8
|
+
export type RenderAllowanceExhausted = (refusal: AllowanceExhaustedRefusal, context: {
|
|
9
|
+
labels: AllowanceLabels;
|
|
10
|
+
defaultRow: ReactNode;
|
|
11
|
+
}) => ReactNode | undefined;
|
|
12
|
+
export declare function AllowancePresentationProvider({ render, labels, children, }: {
|
|
13
|
+
render: RenderAllowanceExhausted | undefined;
|
|
14
|
+
labels: Partial<AllowanceLabels> | undefined;
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
}): import("react").JSX.Element;
|
|
17
|
+
/**
|
|
18
|
+
* A usage ceiling stopped further work. Calm by design: nothing failed, the
|
|
19
|
+
* conversation is kept, and the row says who can raise the limit and when it
|
|
20
|
+
* resets. Never the server's prose or a member identifier.
|
|
21
|
+
*/
|
|
22
|
+
export declare function AllowanceExhaustedRow({ refusal }: {
|
|
23
|
+
refusal: AllowanceExhaustedRefusal;
|
|
24
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ContextCompactionItem } from "./types.js";
|
|
2
|
+
/** Headline for a compaction that could not produce a checkpoint. */
|
|
3
|
+
export declare const COMPACTION_FAILURE_TITLE = "Couldn\u2019t compact conversation history";
|
|
4
|
+
/**
|
|
5
|
+
* Headline for a compaction cut short by its own attempt's cancellation (for
|
|
6
|
+
* example a worker restarting during a deploy). Not a failure: the recovered
|
|
7
|
+
* attempt checks again and compacts if the history still needs it.
|
|
8
|
+
*/
|
|
9
|
+
export declare const COMPACTION_INTERRUPTED_TITLE = "Compaction interrupted";
|
|
10
|
+
/** Headline for a settled `skipped` compaction landmark. */
|
|
11
|
+
export declare function compactionSkipTitle(reason: string | null): string;
|
|
12
|
+
/** Why a definitive provider rejection repeats; shown behind Details. */
|
|
13
|
+
export declare const COMPACTION_REJECTION_NOTE = "The provider rejects this request the same way until the conversation changes.";
|
|
14
|
+
/**
|
|
15
|
+
* Subtitle for a settled compaction landmark. Kept short: a definitive provider
|
|
16
|
+
* rejection withholds the generic retry promise, names the one recovery step,
|
|
17
|
+
* and moves its identifiers behind Details ({@link compactionFailureDetails}).
|
|
18
|
+
*/
|
|
19
|
+
export declare function compactionSkipSubtitle(reason: string | null, providerRejection?: ContextCompactionItem["providerRejection"]): string;
|
|
20
|
+
export type CompactionFailureDetails = {
|
|
21
|
+
/** One plain sentence on why it failed, when known. */
|
|
22
|
+
note: string | null;
|
|
23
|
+
/** Provider identifiers or the recorded error text, in display order. */
|
|
24
|
+
facts: Array<{
|
|
25
|
+
label: string;
|
|
26
|
+
value: string;
|
|
27
|
+
}>;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Technical diagnostics for a failed compaction landmark, or null when it has
|
|
31
|
+
* none: a definitive provider rejection lists its content-free identifiers;
|
|
32
|
+
* any other failure shows the turn's recorded error text. Presentation only.
|
|
33
|
+
*/
|
|
34
|
+
export declare function compactionFailureDetails(item: Pick<ContextCompactionItem, "phase" | "skipReason" | "providerRejection" | "failureDetail">): CompactionFailureDetails | null;
|
|
35
|
+
/**
|
|
36
|
+
* Short chip copy for a turn's failure reason. A compaction failure records the
|
|
37
|
+
* raw provider text after a fixed prefix; the chip names the outcome instead
|
|
38
|
+
* and keeps the recorded text as `detail` (a hover title). Every other reason
|
|
39
|
+
* passes through unchanged.
|
|
40
|
+
*/
|
|
41
|
+
export declare function presentTurnFailureText(failureText: string | null | undefined): {
|
|
42
|
+
summary: string;
|
|
43
|
+
detail?: string;
|
|
44
|
+
} | null;
|
|
45
|
+
/** `HTTP 400 invalid_request_error, param input[3].encrypted_content`; identifiers only. */
|
|
46
|
+
export declare function describeCompactionProviderRejection(rejection: NonNullable<ContextCompactionItem["providerRejection"]>): string;
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Freeze the mount-time gate for this subtree while publishing a separate live
|
|
4
|
+
* gate to activity rails that need later appends to animate after a bulk paint.
|
|
5
|
+
* MessageTimeline mounts one provider per durable group, so existing groups do
|
|
6
|
+
* not receive a context invalidation when a prepend toggles bulk mode and new
|
|
7
|
+
* groups still capture the value from the commit that created them.
|
|
8
|
+
*/
|
|
9
|
+
export declare function EntranceAnimationProvider({ value, liveValue, children, }: {
|
|
10
|
+
value: boolean;
|
|
11
|
+
liveValue?: boolean | undefined;
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}): import("react").JSX.Element;
|
|
2
14
|
/**
|
|
3
15
|
* Live entrance gate from the nearest provider. Prefer
|
|
4
16
|
* {@link useEntranceAnimation} for elements that must freeze the decision at
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TimelineGroup } from "./types.js";
|
|
2
|
+
/** Every durable event sequence a group renders, nested work included. */
|
|
3
|
+
export declare function timelineGroupSequences(group: TimelineGroup): number[];
|
|
4
|
+
/**
|
|
5
|
+
* The index of the group to land on for `sequence`: the group that holds it,
|
|
6
|
+
* else the last group that starts before it. -1 when every loaded group is
|
|
7
|
+
* later (the moment is in older history) or nothing is loaded.
|
|
8
|
+
*/
|
|
9
|
+
export declare function timelineGroupIndexAtSequence(groups: readonly TimelineGroup[], sequence: number): number;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export type GenieLoadingRenderProps = {
|
|
3
|
+
startedAt: string;
|
|
4
|
+
phase: "preparing" | "waiting";
|
|
5
|
+
detailsOpen: boolean;
|
|
6
|
+
onShowDetails: () => void;
|
|
7
|
+
};
|
|
8
|
+
export type GenieLoadingOptions = {
|
|
9
|
+
/** Replace the visual while preserving SDK loading visibility and transitions. */
|
|
10
|
+
render?: (props: GenieLoadingRenderProps) => ReactNode;
|
|
11
|
+
phrases?: readonly string[];
|
|
12
|
+
/** Native copy overrides. Omitted messages retain the default English copy. */
|
|
13
|
+
messages?: {
|
|
14
|
+
status?: string;
|
|
15
|
+
slowStatus?: string;
|
|
16
|
+
slowText?: string;
|
|
17
|
+
showDetails?: string;
|
|
18
|
+
hideDetails?: string;
|
|
19
|
+
};
|
|
20
|
+
/** Public adapter options; the renderer dependency's declarations stay private. */
|
|
21
|
+
orb?: {
|
|
22
|
+
state?: "working" | "searching" | "solving" | "listening" | "connecting" | "weaving" | "composing" | "breathing" | "shaping";
|
|
23
|
+
size?: 64 | 20;
|
|
24
|
+
speed?: number;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export declare const GenieLoadingOptionsContext: import("react").Context<GenieLoadingOptions | undefined>;
|
|
28
|
+
/**
|
|
29
|
+
* Neutral defaults for conversations embedded in another product
|
|
30
|
+
* (`SessionConversation`, `OpenGeniChat`), which should not carry Opengeni's
|
|
31
|
+
* own playful copy. The Opengeni app keeps the defaults above.
|
|
32
|
+
*/
|
|
33
|
+
export declare const EMBEDDED_GENIE_LOADING: {
|
|
34
|
+
readonly phrases: readonly ["Thinking…"];
|
|
35
|
+
readonly messages: {
|
|
36
|
+
readonly showDetails: "Show details";
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
/** Decorative copy never substitutes for a failure or claims measurable progress. */
|
|
40
|
+
export declare function GenieLoading({ startedAt, phase, onShowDetails, detailsOpen, notice, }: {
|
|
41
|
+
startedAt: string;
|
|
42
|
+
phase?: GenieLoadingRenderProps["phase"];
|
|
43
|
+
onShowDetails: () => void;
|
|
44
|
+
detailsOpen?: boolean;
|
|
45
|
+
/** An actionable startup problem takes precedence over decorative copy. */
|
|
46
|
+
notice?: string | undefined;
|
|
47
|
+
}): string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
|