@opengeni/react 3.3.2 → 3.4.1-canary.38960406141001
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 +2 -0
- 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-4EUKJXUO.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-XYRDDSXF.js → chunk-2I6R3GCZ.js} +4285 -3980
- package/dist/chunk-2I6R3GCZ.js.map +1 -0
- package/dist/{chunk-JAQ5K7W6.js → chunk-2SFFYIH3.js} +1178 -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-3RJKUVCA.js +14068 -0
- package/dist/chunk-3RJKUVCA.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-ZPBTI3TE.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-YVCHAQZY.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-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-IOLVN74D.js → chunk-V5ZUJT2T.js} +175 -42
- package/dist/chunk-V5ZUJT2T.js.map +1 -0
- package/dist/chunk-WBJY57A3.js +402 -0
- package/dist/chunk-WBJY57A3.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-3AGBGTRT.js → chunk-X5UVUIMF.js} +1712 -1174
- 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/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 +35 -28
- 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/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 +26 -5
- 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 +24 -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 +2340 -6603
- 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 -1333
- 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/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 +106 -7
- 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 +193 -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 +5 -3
- 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 +2370 -667
- 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 +252 -429
- 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/tool-action-review.tsx +650 -0
- package/src/components/tool-review-history.tsx +88 -0
- 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 +2 -2
- 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 +227 -44
- 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 +79 -9
- package/src/hooks/use-last-started-turn-policy.ts +37 -11
- 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 +531 -335
- 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 +30 -2
- 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 +74 -7
- 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 +205 -10
- 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 -550
- 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/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 +1742 -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-MKKFRRRV.js +0 -14
- package/dist/chunk-2DZVYHVO.js +0 -470
- package/dist/chunk-2DZVYHVO.js.map +0 -1
- package/dist/chunk-3AGBGTRT.js.map +0 -1
- package/dist/chunk-4MDLEHXL.js.map +0 -1
- package/dist/chunk-5YK2ZDIG.js.map +0 -1
- package/dist/chunk-7EAFGICR.js +0 -302
- package/dist/chunk-7EAFGICR.js.map +0 -1
- package/dist/chunk-ELIYWBZR.js.map +0 -1
- package/dist/chunk-H5YGYNXS.js.map +0 -1
- package/dist/chunk-HUIKIDM5.js.map +0 -1
- package/dist/chunk-ICA6R6TW.js.map +0 -1
- package/dist/chunk-IOLVN74D.js.map +0 -1
- package/dist/chunk-JAQ5K7W6.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-NEXLLTP4.js.map +0 -1
- package/dist/chunk-PEI6RANI.js.map +0 -1
- package/dist/chunk-VTOREEXF.js +0 -142
- package/dist/chunk-VTOREEXF.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-XYRDDSXF.js.map +0 -1
- package/dist/chunk-YG4QEQF5.js +0 -9557
- package/dist/chunk-YG4QEQF5.js.map +0 -1
- package/dist/chunk-YVCHAQZY.js.map +0 -1
- package/dist/chunk-ZPBTI3TE.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-MKKFRRRV.js.map → browser-viewer-ZWR6MWJ7.js.map} +0 -0
- /package/dist/{computer-viewer-FWEZISW4.js.map → chat-interactive-block-4EUKJXUO.js.map} +0 -0
package/src/timeline/types.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
AllowanceExhaustedRefusal,
|
|
2
3
|
HumanInputQuestion,
|
|
3
4
|
HumanInputResponse,
|
|
5
|
+
HumanInputSecretAnswerResult,
|
|
4
6
|
MediaGenerationResult,
|
|
5
7
|
ResourceRef,
|
|
6
8
|
SessionStatus,
|
|
9
|
+
Session,
|
|
7
10
|
TimelineAnnotation,
|
|
8
11
|
TimelineAnnotationSource,
|
|
9
12
|
ToolAuthNeededPayload,
|
|
10
13
|
ToolRef,
|
|
14
|
+
ToolDisplayMetadata,
|
|
11
15
|
} from "@opengeni/sdk";
|
|
12
16
|
|
|
13
17
|
/* ----------------------------------------------------------------------------
|
|
@@ -19,6 +23,13 @@ import type {
|
|
|
19
23
|
and the component demo.
|
|
20
24
|
-------------------------------------------------------------------------- */
|
|
21
25
|
|
|
26
|
+
/** The person who sent a message: their subject and the label frozen with it. */
|
|
27
|
+
export type MessageSender = {
|
|
28
|
+
subjectId: string;
|
|
29
|
+
/** What the deployment knew them as when the message was accepted, such as an email. */
|
|
30
|
+
label: string | null;
|
|
31
|
+
};
|
|
32
|
+
|
|
22
33
|
export type TimelineAnnotationSourceDescriptor = Omit<
|
|
23
34
|
TimelineAnnotationSource,
|
|
24
35
|
"startOffset" | "endOffset" | "contextBefore" | "contextAfter"
|
|
@@ -48,6 +59,11 @@ export type UserMessageItem = {
|
|
|
48
59
|
resources: ResourceRef[];
|
|
49
60
|
/** Tools requested for the turn this message starts. */
|
|
50
61
|
tools: ToolRef[];
|
|
62
|
+
/**
|
|
63
|
+
* The person who sent this message, as frozen when it was accepted. Absent
|
|
64
|
+
* for messages from agents, services and schedules, and for older messages.
|
|
65
|
+
*/
|
|
66
|
+
sender?: MessageSender | undefined;
|
|
51
67
|
occurredAt: string;
|
|
52
68
|
/** Local-only delivery projection; absent for authoritative durable events. */
|
|
53
69
|
delivery?:
|
|
@@ -55,6 +71,7 @@ export type UserMessageItem = {
|
|
|
55
71
|
state: "sending" | "queued" | "failed";
|
|
56
72
|
error?: string | undefined;
|
|
57
73
|
onRetry?: (() => void) | undefined;
|
|
74
|
+
onEdit?: (() => void) | undefined;
|
|
58
75
|
onRemove?: (() => void) | undefined;
|
|
59
76
|
}
|
|
60
77
|
| undefined;
|
|
@@ -65,6 +82,8 @@ export type HumanInputAnswerSummary = {
|
|
|
65
82
|
label: string;
|
|
66
83
|
prompt: string;
|
|
67
84
|
values: string[];
|
|
85
|
+
/** A secret question's saved reference (never a value). */
|
|
86
|
+
secret?: HumanInputSecretAnswerResult | undefined;
|
|
68
87
|
};
|
|
69
88
|
|
|
70
89
|
/**
|
|
@@ -88,11 +107,21 @@ export type AgentMessageItem = {
|
|
|
88
107
|
id: string;
|
|
89
108
|
turnId: string | null;
|
|
90
109
|
text: string;
|
|
91
|
-
/**
|
|
110
|
+
/**
|
|
111
|
+
* Assistant channel: provider-declared, or `commentary` when the model asked
|
|
112
|
+
* for tool work in the same response. Absent on legacy events and on
|
|
113
|
+
* undeclared final messages. Known from the first delta for Responses models.
|
|
114
|
+
*/
|
|
92
115
|
phase?: "commentary" | "final_answer" | undefined;
|
|
93
116
|
/** Still receiving deltas (no completed/turn-end seen yet). */
|
|
94
117
|
streaming: boolean;
|
|
95
118
|
occurredAt: string;
|
|
119
|
+
/**
|
|
120
|
+
* When the first streamed text arrived, kept once completion moves
|
|
121
|
+
* `occurredAt` to the completion time. Absent for a message that never
|
|
122
|
+
* streamed.
|
|
123
|
+
*/
|
|
124
|
+
startedAt?: string | undefined;
|
|
96
125
|
/** Available only after the canonical completed event lands. */
|
|
97
126
|
annotationSource?: TimelineAnnotationSourceDescriptor | undefined;
|
|
98
127
|
};
|
|
@@ -129,6 +158,7 @@ export type ToolCallItem = {
|
|
|
129
158
|
turnId: string | null;
|
|
130
159
|
callId: string | null;
|
|
131
160
|
name: string;
|
|
161
|
+
display?: ToolDisplayMetadata;
|
|
132
162
|
arguments: unknown;
|
|
133
163
|
output: unknown;
|
|
134
164
|
truncation?: ToolCallTruncation | null;
|
|
@@ -159,6 +189,12 @@ export type WorkerItem = {
|
|
|
159
189
|
action: "spawn" | "message";
|
|
160
190
|
/** The worker's initial message / the message sent to it, when parseable. */
|
|
161
191
|
prompt: string | null;
|
|
192
|
+
/**
|
|
193
|
+
* The title the manager gave a spawned worker (`session_create` `title`),
|
|
194
|
+
* when present. Hosts can supply a live title for any session id; this is
|
|
195
|
+
* the timeline's own fallback so a spawn names its agent even offline.
|
|
196
|
+
*/
|
|
197
|
+
title?: string | null | undefined;
|
|
162
198
|
/** The target/spawned worker session id, when parseable from args/output. */
|
|
163
199
|
workerSessionId: string | null;
|
|
164
200
|
/** Bounded structured failure retained from session_create/session_send_message. */
|
|
@@ -209,12 +245,22 @@ export type StartupPhaseItem = {
|
|
|
209
245
|
id: string;
|
|
210
246
|
turnId: string | null;
|
|
211
247
|
phase: StartupPhase;
|
|
248
|
+
/** Live presentation only: accepted work waiting for its first worker claim. */
|
|
249
|
+
dispatchWait?: Session["dispatchWait"];
|
|
250
|
+
/** Renderer-only elapsed anchor when acceptance preceded recorded startup spans. */
|
|
251
|
+
loadingStartedAt?: string | undefined;
|
|
212
252
|
status: "running" | "complete" | "failed" | "cancelled";
|
|
213
253
|
startedAt: string;
|
|
214
254
|
completedAt: string | null;
|
|
215
255
|
durationMs: number | null;
|
|
216
256
|
/** Sandbox origin and rig marker outcomes refine the settled label only. */
|
|
217
257
|
outcome: "created" | "restored" | "resumed" | "skipped" | null;
|
|
258
|
+
blockedReason?:
|
|
259
|
+
| "capture_in_progress"
|
|
260
|
+
| "rotation_in_progress"
|
|
261
|
+
| "provider_recovery_in_progress"
|
|
262
|
+
| "compaction_required"
|
|
263
|
+
| undefined;
|
|
218
264
|
occurredAt: string;
|
|
219
265
|
};
|
|
220
266
|
|
|
@@ -227,6 +273,18 @@ export type StartupPhaseItem = {
|
|
|
227
273
|
* `onMemoryClick` handler the row also deep-links to the record in its memory
|
|
228
274
|
* pane; without one it is non-interactive rich content.
|
|
229
275
|
*/
|
|
276
|
+
export type KnowledgeItem = {
|
|
277
|
+
kind: "knowledge";
|
|
278
|
+
id: string;
|
|
279
|
+
turnId: string | null;
|
|
280
|
+
status: "complete" | "failed";
|
|
281
|
+
outcome: "published" | "pending" | "rejected" | "archived" | "failed";
|
|
282
|
+
fileId?: string | undefined;
|
|
283
|
+
filename?: string | undefined;
|
|
284
|
+
entryId?: string | undefined;
|
|
285
|
+
occurredAt: string;
|
|
286
|
+
};
|
|
287
|
+
|
|
230
288
|
export type MemoryItem = {
|
|
231
289
|
kind: "memory";
|
|
232
290
|
id: string;
|
|
@@ -279,7 +337,14 @@ export type FleetDecisionItem = {
|
|
|
279
337
|
policyVersion: "adaptive-shadow-v1";
|
|
280
338
|
actualOutcome: "selected" | "waiting" | "none";
|
|
281
339
|
actualCandidateKey: string | null;
|
|
282
|
-
actualReason:
|
|
340
|
+
actualReason:
|
|
341
|
+
| "lease_reused"
|
|
342
|
+
| "pin"
|
|
343
|
+
| "rotation"
|
|
344
|
+
| "active"
|
|
345
|
+
| "all_capped"
|
|
346
|
+
| "allocator_disabled"
|
|
347
|
+
| "none";
|
|
283
348
|
shadowOutcome: "selected" | "paced" | "none";
|
|
284
349
|
shadowCandidateKey: string | null;
|
|
285
350
|
shadowReason:
|
|
@@ -318,6 +383,13 @@ export type SessionStatusItem = {
|
|
|
318
383
|
kind: "session-status";
|
|
319
384
|
id: string;
|
|
320
385
|
status: SessionStatus;
|
|
386
|
+
/**
|
|
387
|
+
* The runtime refused to start the next turn (an admission block). Nothing
|
|
388
|
+
* is asked of the person, so it reads as stuck, not "waiting on you".
|
|
389
|
+
*/
|
|
390
|
+
blocked?: true;
|
|
391
|
+
/** Presentation-only evidence that this historical attention state resumed. */
|
|
392
|
+
resolvedAt?: string;
|
|
321
393
|
occurredAt: string;
|
|
322
394
|
};
|
|
323
395
|
|
|
@@ -342,12 +414,50 @@ export type NoticeItem = {
|
|
|
342
414
|
id: string;
|
|
343
415
|
tone: "waiting" | "cancelled" | "failed" | "input";
|
|
344
416
|
text: string;
|
|
417
|
+
/** Presentation-only evidence that a historical approval wait resumed. */
|
|
418
|
+
resolvedAt?: string;
|
|
419
|
+
/**
|
|
420
|
+
* A model-capacity wait (no subscription capacity for the turn). Live, the
|
|
421
|
+
* turn's work row carries it as `label` with `detail` as one quiet secondary
|
|
422
|
+
* line; once `resolvedAt` is set it leaves no row, and its span is excluded
|
|
423
|
+
* from the turn's worked duration.
|
|
424
|
+
*/
|
|
425
|
+
capacityWait?: { turnId: string | null; label: string; detail: string };
|
|
426
|
+
/** A preserved turn-end outcome, not a claim about current session state. */
|
|
427
|
+
recordedOutcome?: true;
|
|
428
|
+
/**
|
|
429
|
+
* Recorded agent wait only: delegated worker sessions that had not reported
|
|
430
|
+
* back when the wait began. Best effort from the loaded history; absent when
|
|
431
|
+
* none are known.
|
|
432
|
+
*/
|
|
433
|
+
waitingAgents?: number;
|
|
434
|
+
/** Recorded agent wait only: when later input ended the wait. */
|
|
435
|
+
waitEndedAt?: string;
|
|
345
436
|
/** Optional evidence kept inspectable without overwhelming the main rail. */
|
|
346
437
|
details?: { label: string; value: unknown };
|
|
347
438
|
action?: { label: string; url: string };
|
|
439
|
+
/**
|
|
440
|
+
* A usage ceiling refused further work. `text` keeps the canonical sentence
|
|
441
|
+
* for plain-text consumers; `MessageTimeline` renders this structured row
|
|
442
|
+
* (customizable with `renderAllowanceExhausted` / `allowanceExhaustedLabels`).
|
|
443
|
+
*/
|
|
444
|
+
allowance?: AllowanceExhaustedRefusal;
|
|
445
|
+
/**
|
|
446
|
+
* The task's own usage limit stopped further model requests: a calm,
|
|
447
|
+
* non-failure stop. Amounts are null when the marker carried none.
|
|
448
|
+
* `MessageTimeline` renders it as a "Usage limit reached" row.
|
|
449
|
+
*/
|
|
450
|
+
sessionUsageLimit?: SessionUsageLimitStop;
|
|
348
451
|
occurredAt: string;
|
|
349
452
|
};
|
|
350
453
|
|
|
454
|
+
/** What a timeline row knows about a task usage-limit stop. */
|
|
455
|
+
export type SessionUsageLimitStop = {
|
|
456
|
+
rootSessionId: string | null;
|
|
457
|
+
limitMicros: number | null;
|
|
458
|
+
usedMicros: number | null;
|
|
459
|
+
};
|
|
460
|
+
|
|
351
461
|
/**
|
|
352
462
|
* First-class conversation-memory checkpoint. Stays outside collapsed turns so
|
|
353
463
|
* auto-compaction cannot vanish behind a chevron. Chat bubbles are unchanged.
|
|
@@ -361,16 +471,36 @@ export type ContextCompactionItem = {
|
|
|
361
471
|
estimatedTokensBefore: number | null;
|
|
362
472
|
estimatedTokensAfter: number | null;
|
|
363
473
|
skipReason: string | null;
|
|
474
|
+
/**
|
|
475
|
+
* Present only for a `summarization_failed` skip where the provider
|
|
476
|
+
* definitively rejected the compaction request. Content-free identifiers.
|
|
477
|
+
*/
|
|
478
|
+
providerRejection: ContextCompactionProviderRejection | null;
|
|
479
|
+
/**
|
|
480
|
+
* The same turn's recorded failure text, when that turn failed because this
|
|
481
|
+
* compaction did. Diagnostics shown behind Details only.
|
|
482
|
+
*/
|
|
483
|
+
failureDetail?: string;
|
|
364
484
|
/** Provider implementation id for debug disclosure only. */
|
|
365
485
|
implementation: string | null;
|
|
366
486
|
occurredAt: string;
|
|
367
487
|
};
|
|
368
488
|
|
|
489
|
+
export type ContextCompactionProviderRejection = {
|
|
490
|
+
httpStatus: number;
|
|
491
|
+
type: string | null;
|
|
492
|
+
code: string | null;
|
|
493
|
+
param: string | null;
|
|
494
|
+
requestId: string | null;
|
|
495
|
+
};
|
|
496
|
+
|
|
369
497
|
export type MachineInputMember = {
|
|
370
498
|
id: string;
|
|
371
499
|
kind:
|
|
372
500
|
| "scheduled_occurrence"
|
|
373
501
|
| "goal_continuation"
|
|
502
|
+
| "background_command_result"
|
|
503
|
+
| "session_wait_timeout"
|
|
374
504
|
| "agent_message"
|
|
375
505
|
| "agent_steer_instruction"
|
|
376
506
|
| "child_terminal_result"
|
|
@@ -395,6 +525,8 @@ export type MachineInputBatchItem = {
|
|
|
395
525
|
id: string;
|
|
396
526
|
turnId: string | null;
|
|
397
527
|
members: MachineInputMember[];
|
|
528
|
+
/** Readable-turn presentation keeps machine payload prose inside the disclosure. */
|
|
529
|
+
compact?: boolean;
|
|
398
530
|
occurredAt: string;
|
|
399
531
|
};
|
|
400
532
|
|
|
@@ -414,12 +546,17 @@ export type AuthNeededItem = {
|
|
|
414
546
|
turnId: string | null;
|
|
415
547
|
/** The runtime surface that requested recovery, when the event is an MCP auth signal. */
|
|
416
548
|
serverId: string | null;
|
|
549
|
+
/** Explicit recovery identity; never inferred from an opaque execution alias. */
|
|
550
|
+
canonicalServerId?: string | null;
|
|
551
|
+
connectionSubjectScope?: "workspace" | "subject" | null;
|
|
417
552
|
/** Durable event family that produced this notice. */
|
|
418
553
|
source?: "tool" | "credential" | "capability" | undefined;
|
|
419
554
|
/** The connection's registrable domain, e.g. "linear.app". */
|
|
420
555
|
providerDomain: string;
|
|
421
556
|
/** The lapsed connection to reconnect, when the row survived. */
|
|
422
557
|
connectionId: string | null;
|
|
558
|
+
/** Host-owned bindings must never be routed into Opengeni's native reconnect flow. */
|
|
559
|
+
authoritySource?: ToolAuthNeededPayload["authoritySource"] | null | undefined;
|
|
423
560
|
reason: ToolAuthNeededPayload["reason"] | null;
|
|
424
561
|
/** Scopes the provider now needs; may inform the copy, never shown as a raw label. */
|
|
425
562
|
scopes: string[];
|
|
@@ -431,6 +568,8 @@ export type AuthNeededItem = {
|
|
|
431
568
|
authorizationUrl: string | null;
|
|
432
569
|
/** Agent-selected catalog recommendation. The host still owns authorization. */
|
|
433
570
|
capability?: NonNullable<ToolAuthNeededPayload["capability"]> | null | undefined;
|
|
571
|
+
/** Human-reviewed custom integration proposal. Never treated as catalog authority. */
|
|
572
|
+
setupRequest?: ToolAuthNeededPayload["setupRequest"] | null | undefined;
|
|
434
573
|
occurredAt: string;
|
|
435
574
|
};
|
|
436
575
|
|
|
@@ -438,6 +577,10 @@ export type TurnOutcome = "complete" | "failed" | "cancelled";
|
|
|
438
577
|
|
|
439
578
|
export type TurnEndItem = {
|
|
440
579
|
kind: "turn-end";
|
|
580
|
+
/** A durable Retry reopened this failed logical turn; its failure is history. */
|
|
581
|
+
resumedAt?: string;
|
|
582
|
+
/** Keep an existing answer visible when a recorded input wait ends without final output. */
|
|
583
|
+
preserveWaitResponse?: true;
|
|
441
584
|
id: string;
|
|
442
585
|
turnId: string | null;
|
|
443
586
|
outcome: TurnOutcome;
|
|
@@ -445,7 +588,7 @@ export type TurnEndItem = {
|
|
|
445
588
|
occurredAt: string;
|
|
446
589
|
};
|
|
447
590
|
|
|
448
|
-
export type TimelineItem =
|
|
591
|
+
export type TimelineItem = (
|
|
449
592
|
| UserMessageItem
|
|
450
593
|
| HumanInputItem
|
|
451
594
|
| AgentMessageItem
|
|
@@ -462,10 +605,18 @@ export type TimelineItem =
|
|
|
462
605
|
| MachineInputBatchItem
|
|
463
606
|
| AuthNeededItem
|
|
464
607
|
| MemoryItem
|
|
608
|
+
| KnowledgeItem
|
|
465
609
|
| FleetDecisionItem
|
|
466
|
-
| TurnEndItem
|
|
610
|
+
| TurnEndItem
|
|
611
|
+
) & {
|
|
612
|
+
/** Durable identities, independent of renderer/reconciliation keys. */
|
|
613
|
+
sourceEvents?: readonly { eventId: string; sequence: number }[] | undefined;
|
|
614
|
+
};
|
|
467
615
|
|
|
468
|
-
/**
|
|
616
|
+
/**
|
|
617
|
+
* Activity items cluster between chat messages (reasoning, tools, workers,
|
|
618
|
+
* sandbox, memory). Assistant prose is rendered separately.
|
|
619
|
+
*/
|
|
469
620
|
export type ActivityItem =
|
|
470
621
|
| ReasoningItem
|
|
471
622
|
| ToolCallItem
|
|
@@ -473,7 +624,9 @@ export type ActivityItem =
|
|
|
473
624
|
| SandboxItem
|
|
474
625
|
| StartupPhaseItem
|
|
475
626
|
| MemoryItem
|
|
476
|
-
|
|
|
627
|
+
| KnowledgeItem
|
|
628
|
+
| FleetDecisionItem
|
|
629
|
+
| AgentMessageItem;
|
|
477
630
|
|
|
478
631
|
export type TimelineGroup =
|
|
479
632
|
| { kind: "item"; item: TimelineItem }
|
|
@@ -483,6 +636,36 @@ export type TimelineGroup =
|
|
|
483
636
|
items: ActivityItem[];
|
|
484
637
|
outcome?: TurnOutcome;
|
|
485
638
|
failureText?: string;
|
|
639
|
+
/** One turn's chronological work history, including progress prose after settlement. */
|
|
640
|
+
work?: {
|
|
641
|
+
startedAt: string;
|
|
642
|
+
endedAt?: string;
|
|
643
|
+
responseStartedAt?: string;
|
|
644
|
+
/**
|
|
645
|
+
* A live wait. `untimed` marks a capacity wait, whose row shows no
|
|
646
|
+
* running clock: that span is not work and ends on a quota reset or
|
|
647
|
+
* a person's choice, not after a predictable time.
|
|
648
|
+
*/
|
|
649
|
+
waiting?: { label: string; since: string; detail?: string; untimed?: true };
|
|
650
|
+
/**
|
|
651
|
+
* Settled capacity-wait time inside this work span. It is not work:
|
|
652
|
+
* the worked duration and the live working clock exclude it.
|
|
653
|
+
*/
|
|
654
|
+
pausedMs?: number;
|
|
655
|
+
details: TimelineGroup[];
|
|
656
|
+
/**
|
|
657
|
+
* While the turn is live, its progress notes stay readable above the
|
|
658
|
+
* work row and are also listed in `details`. These are their item ids,
|
|
659
|
+
* so an expanded work disclosure can fold the outside copies away.
|
|
660
|
+
*/
|
|
661
|
+
liveNoteIds?: string[];
|
|
662
|
+
/**
|
|
663
|
+
* Set when this row folds several quiet wake-work-wait cycles (routine
|
|
664
|
+
* input, work without a visible reply, a finished wait) into one row.
|
|
665
|
+
* `summary` is the latest wait reason, shown under the collapsed row.
|
|
666
|
+
*/
|
|
667
|
+
cycles?: { count: number; summary?: string };
|
|
668
|
+
};
|
|
486
669
|
}
|
|
487
670
|
| {
|
|
488
671
|
kind: "turn";
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
// Pure presentation decisions for a timeline turn's work, shared by the web and native
|
|
2
|
+
// timelines. Every function here is extracted verbatim from the web MessageTimeline so both
|
|
3
|
+
// renderers decide identically what a turn shows (preparing, working, waiting, worked).
|
|
4
|
+
import { timelineGroupContainsPresentedImage } from "./presented-image";
|
|
5
|
+
import type { TurnSummaryStatus } from "./turn-summary-model";
|
|
6
|
+
import type { ActivityItem, TimelineGroup, ToolCallItem } from "./types";
|
|
7
|
+
|
|
8
|
+
export type ActivityGroup = Extract<TimelineGroup, { kind: "activity" }>;
|
|
9
|
+
export type TurnGroup = Extract<TimelineGroup, { kind: "turn" }>;
|
|
10
|
+
|
|
11
|
+
export function durationBetween(startedAt: string, endedAt: string): number | undefined {
|
|
12
|
+
const started = Date.parse(startedAt);
|
|
13
|
+
const ended = Date.parse(endedAt);
|
|
14
|
+
if (!Number.isFinite(started) || !Number.isFinite(ended) || ended < started) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return ended - started;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** Compaction landmarks among a fold's groups (secondary summary facet). */
|
|
21
|
+
export function compactedLandmarkCount(groups: readonly TimelineGroup[]): number {
|
|
22
|
+
return groups.filter(
|
|
23
|
+
(group) =>
|
|
24
|
+
group.kind === "item" &&
|
|
25
|
+
group.item.kind === "context-compaction" &&
|
|
26
|
+
group.item.phase === "compacted",
|
|
27
|
+
).length;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function clusterIsSettled(group: ActivityGroup): boolean {
|
|
31
|
+
return group.items.every((item) => {
|
|
32
|
+
if (item.kind === "reasoning" || item.kind === "agent-message") {
|
|
33
|
+
return !item.streaming;
|
|
34
|
+
}
|
|
35
|
+
// Memory writes and fleet observations are discrete, already-settled events.
|
|
36
|
+
if (item.kind === "memory" || item.kind === "fleet-decision") {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return item.status !== "running";
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function flattenActivityItems(groups: readonly TimelineGroup[]): ActivityItem[] {
|
|
44
|
+
const items: ActivityItem[] = [];
|
|
45
|
+
for (const group of groups) {
|
|
46
|
+
if (group.kind === "activity") {
|
|
47
|
+
items.push(...flattenActivityItems(group.work?.details ?? []), ...group.items);
|
|
48
|
+
} else if (group.kind === "turn") {
|
|
49
|
+
items.push(...flattenActivityItems(group.groups));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return items;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export type ReadableWorkOptions = {
|
|
56
|
+
/** Host shows startup phases as ordinary details (web: startup-details context). */
|
|
57
|
+
startupDetails: boolean;
|
|
58
|
+
/** Startup chrome was dismissed by the reader. */
|
|
59
|
+
startupDismissed: boolean;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* A readable turn whose only work so far is environment preparation renders as one quiet
|
|
64
|
+
* preparation surface instead of a "Working" fold.
|
|
65
|
+
*/
|
|
66
|
+
export function isPreparingWork(group: ActivityGroup, options: ReadableWorkOptions): boolean {
|
|
67
|
+
if (!group.work) return false;
|
|
68
|
+
const phases = group.items.filter((item) => item.kind === "startup-phase");
|
|
69
|
+
return (
|
|
70
|
+
!options.startupDetails &&
|
|
71
|
+
!options.startupDismissed &&
|
|
72
|
+
!group.work.endedAt &&
|
|
73
|
+
!group.work.waiting &&
|
|
74
|
+
phases.length > 0 &&
|
|
75
|
+
group.items.every(
|
|
76
|
+
(item) => item.kind === "startup-phase" || (item.kind === "reasoning" && !item.text.trim()),
|
|
77
|
+
) &&
|
|
78
|
+
!phases.some((item) => item.status === "failed" || item.status === "cancelled")
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Whether a readable turn's work row has anything to reveal when expanded.
|
|
84
|
+
* Unless the host shows startup phases as details, the work row's rail only
|
|
85
|
+
* renders failed or cancelled preparation steps, so a detail made only of
|
|
86
|
+
* completed or still-running steps (for example the queue phase before a turn
|
|
87
|
+
* was parked on a usage limit) renders nothing and does not make the row
|
|
88
|
+
* expandable.
|
|
89
|
+
*/
|
|
90
|
+
export function readableWorkHasDetails(
|
|
91
|
+
group: ActivityGroup & { work: NonNullable<ActivityGroup["work"]> },
|
|
92
|
+
options: Pick<ReadableWorkOptions, "startupDetails">,
|
|
93
|
+
): boolean {
|
|
94
|
+
return group.work.details.some(
|
|
95
|
+
(detail) =>
|
|
96
|
+
options.startupDetails ||
|
|
97
|
+
detail.kind !== "activity" ||
|
|
98
|
+
Boolean(detail.work) ||
|
|
99
|
+
!detail.items.every(
|
|
100
|
+
(item) =>
|
|
101
|
+
(item.kind === "startup-phase" &&
|
|
102
|
+
item.status !== "failed" &&
|
|
103
|
+
item.status !== "cancelled") ||
|
|
104
|
+
(item.kind === "reasoning" && !item.text.trim()),
|
|
105
|
+
),
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Status of a readable turn's work row, minus the host-rendered live preview.
|
|
111
|
+
* Time spent waiting for model capacity is not work: the worked duration and
|
|
112
|
+
* the live working clock exclude it, and the wait itself shows no clock. A
|
|
113
|
+
* wait's `detail` is its one quiet secondary line.
|
|
114
|
+
*/
|
|
115
|
+
export function readableWorkStatus(
|
|
116
|
+
group: ActivityGroup & { work: NonNullable<ActivityGroup["work"]> },
|
|
117
|
+
): Omit<TurnSummaryStatus, "preview"> & { detail?: string | undefined } {
|
|
118
|
+
const end = group.work.endedAt;
|
|
119
|
+
const pausedMs = group.work.pausedMs ?? 0;
|
|
120
|
+
if (end) {
|
|
121
|
+
const durationMs = durationBetween(group.work.startedAt, end);
|
|
122
|
+
const cycles = group.work.cycles;
|
|
123
|
+
// Folded quiet cycles report their wall-clock span: waits are the point.
|
|
124
|
+
if (cycles) return { kind: "worked", label: `${cycles.count} updates over`, durationMs };
|
|
125
|
+
return {
|
|
126
|
+
kind: "worked",
|
|
127
|
+
durationMs: durationMs === undefined ? undefined : Math.max(0, durationMs - pausedMs),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
if (group.work.waiting) {
|
|
131
|
+
const { untimed, since, ...waiting } = group.work.waiting;
|
|
132
|
+
return { kind: "waiting", ...waiting, ...(untimed ? {} : { since }) };
|
|
133
|
+
}
|
|
134
|
+
const started = Date.parse(group.work.startedAt);
|
|
135
|
+
return {
|
|
136
|
+
kind: "working",
|
|
137
|
+
since:
|
|
138
|
+
pausedMs > 0 && Number.isFinite(started)
|
|
139
|
+
? new Date(started + pausedMs).toISOString()
|
|
140
|
+
: group.work.startedAt,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/** Whether a readable turn's work fold starts expanded. */
|
|
145
|
+
export function readableWorkDefaultOpen(group: ActivityGroup): true | undefined {
|
|
146
|
+
const phases = group.items.filter((item) => item.kind === "startup-phase");
|
|
147
|
+
return timelineGroupContainsPresentedImage(group) ||
|
|
148
|
+
group.outcome === "failed" ||
|
|
149
|
+
phases.some((item) => item.status === "failed" || item.status === "cancelled")
|
|
150
|
+
? true
|
|
151
|
+
: undefined;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/** Whether the live preview should show (images stay primary output instead). */
|
|
155
|
+
export function readableWorkShowsPreview(group: ActivityGroup): boolean {
|
|
156
|
+
return !timelineGroupContainsPresentedImage(group);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* The step a rolling preview shows: steps advance with event order (progress notes and
|
|
161
|
+
* startup phases have their own surfaces). Mirrors the web RollingActivity selection.
|
|
162
|
+
*/
|
|
163
|
+
export function rollingActivityItem(
|
|
164
|
+
items: readonly ActivityItem[],
|
|
165
|
+
previousItem?: ActivityItem,
|
|
166
|
+
mounted = true,
|
|
167
|
+
): { item: ActivityItem; running: boolean; earlierCount: number } | null {
|
|
168
|
+
const work = items.filter(
|
|
169
|
+
(item) => item.kind !== "startup-phase" && item.kind !== "agent-message",
|
|
170
|
+
);
|
|
171
|
+
const active = work.filter((item) =>
|
|
172
|
+
item.kind === "reasoning" ? item.streaming : "status" in item && item.status === "running",
|
|
173
|
+
);
|
|
174
|
+
const item =
|
|
175
|
+
!mounted && previousItem && previousItem.kind !== "agent-message" ? previousItem : work.at(-1);
|
|
176
|
+
if (!item) return null;
|
|
177
|
+
return {
|
|
178
|
+
item,
|
|
179
|
+
running: active.some((entry) => entry.id === item.id),
|
|
180
|
+
earlierCount: Math.max(
|
|
181
|
+
0,
|
|
182
|
+
work.findIndex((entry) => entry.id === item.id),
|
|
183
|
+
),
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export function isToolCall(item: ActivityItem): item is ToolCallItem {
|
|
188
|
+
return item.kind === "tool-call";
|
|
189
|
+
}
|