@athenaintel/react 0.43.0 → 0.48.0
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 +215 -3
- package/dist/agent-runtime/src/answer-label.cjs +137 -0
- package/dist/agent-runtime/src/answer-label.cjs.map +1 -0
- package/dist/agent-runtime/src/answer-label.d.ts +104 -0
- package/dist/agent-runtime/src/answer-label.js +137 -0
- package/dist/agent-runtime/src/answer-label.js.map +1 -0
- package/dist/agent-runtime/src/answer-rows.cjs +180 -0
- package/dist/agent-runtime/src/answer-rows.cjs.map +1 -0
- package/dist/agent-runtime/src/answer-rows.d.ts +86 -0
- package/dist/agent-runtime/src/answer-rows.js +180 -0
- package/dist/agent-runtime/src/answer-rows.js.map +1 -0
- package/dist/agent-runtime/src/client-tool-bridge.cjs +15 -15
- package/dist/agent-runtime/src/client-tool-bridge.cjs.map +1 -1
- package/dist/agent-runtime/src/conversation-index.cjs +8 -8
- package/dist/agent-runtime/src/conversation-index.cjs.map +1 -1
- package/dist/agent-runtime/src/decision-checks.cjs +207 -0
- package/dist/agent-runtime/src/decision-checks.cjs.map +1 -0
- package/dist/agent-runtime/src/decision-checks.d.ts +142 -0
- package/dist/agent-runtime/src/decision-checks.js +207 -0
- package/dist/agent-runtime/src/decision-checks.js.map +1 -0
- package/dist/agent-runtime/src/desktop-handoff.d.ts +12 -0
- package/dist/agent-runtime/src/errors.cjs +18 -0
- package/dist/agent-runtime/src/errors.cjs.map +1 -1
- package/dist/agent-runtime/src/errors.d.ts +7 -0
- package/dist/agent-runtime/src/errors.js +18 -0
- package/dist/agent-runtime/src/errors.js.map +1 -1
- package/dist/agent-runtime/src/generated/runconfig-contract.cjs +12 -0
- package/dist/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
- package/dist/agent-runtime/src/generated/runconfig-contract.d.ts +6 -6
- package/dist/agent-runtime/src/generated/runconfig-contract.js +12 -0
- package/dist/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
- package/dist/agent-runtime/src/handoff-arrival.cjs +60 -0
- package/dist/agent-runtime/src/handoff-arrival.cjs.map +1 -0
- package/dist/agent-runtime/src/handoff-arrival.d.ts +46 -0
- package/dist/agent-runtime/src/handoff-arrival.js +60 -0
- package/dist/agent-runtime/src/handoff-arrival.js.map +1 -0
- package/dist/agent-runtime/src/index.d.ts +14 -8
- package/dist/agent-runtime/src/interrupts.cjs +43 -18
- package/dist/agent-runtime/src/interrupts.cjs.map +1 -1
- package/dist/agent-runtime/src/interrupts.d.ts +19 -2
- package/dist/agent-runtime/src/interrupts.js +28 -3
- package/dist/agent-runtime/src/interrupts.js.map +1 -1
- package/dist/agent-runtime/src/lane-history.cjs +8 -8
- package/dist/agent-runtime/src/lane-history.cjs.map +1 -1
- package/dist/agent-runtime/src/messages.cjs +43 -8
- package/dist/agent-runtime/src/messages.cjs.map +1 -1
- package/dist/agent-runtime/src/messages.d.ts +25 -3
- package/dist/agent-runtime/src/messages.js +43 -8
- package/dist/agent-runtime/src/messages.js.map +1 -1
- package/dist/agent-runtime/src/offline-status.cjs +36 -0
- package/dist/agent-runtime/src/offline-status.cjs.map +1 -0
- package/dist/agent-runtime/src/offline-status.d.ts +118 -3
- package/dist/agent-runtime/src/offline-status.js +36 -0
- package/dist/agent-runtime/src/offline-status.js.map +1 -0
- package/dist/agent-runtime/src/queue.cjs +0 -9
- package/dist/agent-runtime/src/queue.cjs.map +1 -1
- package/dist/agent-runtime/src/queue.js +0 -9
- package/dist/agent-runtime/src/queue.js.map +1 -1
- package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs +9 -9
- package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
- package/dist/agent-runtime/src/runtime-catalog.cjs +42 -0
- package/dist/agent-runtime/src/runtime-catalog.cjs.map +1 -0
- package/dist/agent-runtime/src/runtime-catalog.d.ts +35 -0
- package/dist/agent-runtime/src/runtime-catalog.js +42 -0
- package/dist/agent-runtime/src/runtime-catalog.js.map +1 -0
- package/dist/agent-runtime/src/runtime-messages.cjs.map +1 -1
- package/dist/agent-runtime/src/runtime-messages.d.ts +1 -1
- package/dist/agent-runtime/src/runtime-messages.js.map +1 -1
- package/dist/agent-runtime/src/runtime.d.ts +40 -0
- package/dist/agent-runtime/src/statewire-suspended.cjs +3 -3
- package/dist/agent-runtime/src/statewire-suspended.cjs.map +1 -1
- package/dist/agent-runtime/src/subagents.cjs +32 -2
- package/dist/agent-runtime/src/subagents.cjs.map +1 -1
- package/dist/agent-runtime/src/subagents.d.ts +9 -0
- package/dist/agent-runtime/src/subagents.js +30 -0
- package/dist/agent-runtime/src/subagents.js.map +1 -1
- package/dist/agent-runtime/src/thread-driver.cjs +67 -0
- package/dist/agent-runtime/src/thread-driver.cjs.map +1 -0
- package/dist/agent-runtime/src/thread-driver.d.ts +49 -0
- package/dist/agent-runtime/src/thread-driver.js +67 -0
- package/dist/agent-runtime/src/thread-driver.js.map +1 -0
- package/dist/agent-runtime/src/thread-handoff-flow-machine.d.ts +172 -0
- package/dist/agent-runtime/src/thread-handoff-protocol.d.ts +756 -0
- package/dist/agent-runtime/src/thread-handoff-qr.d.ts +11 -0
- package/dist/agent-runtime/src/thread-handoff.d.ts +3 -364
- package/dist/agent-runtime/src/thread-status.cjs +3 -3
- package/dist/agent-runtime/src/thread-status.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-metadata.cjs +210 -25
- package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-metadata.d.ts +12 -0
- package/dist/agent-runtime/src/tool-metadata.js +210 -25
- package/dist/agent-runtime/src/tool-metadata.js.map +1 -1
- package/dist/agent-runtime/src/tool-names.cjs +2 -0
- package/dist/agent-runtime/src/tool-names.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-names.d.ts +2 -0
- package/dist/agent-runtime/src/tool-names.js +2 -0
- package/dist/agent-runtime/src/tool-names.js.map +1 -1
- package/dist/agent-runtime/src/types.d.ts +10 -2
- package/dist/agent-runtime/src/use-conversation-list.cjs +11 -11
- package/dist/agent-runtime/src/use-conversation-list.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs +24 -19
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.d.ts +2 -1
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js +6 -1
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-config.cjs +14 -14
- package/dist/agent-runtime/src/use-deep-agent-config.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-edit-submit.cjs +6 -6
- package/dist/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-runtime.cjs +16 -16
- package/dist/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-thread.cjs +45 -45
- package/dist/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-voice.cjs +547 -124
- package/dist/agent-runtime/src/use-deep-agent-voice.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-voice.d.ts +129 -10
- package/dist/agent-runtime/src/use-deep-agent-voice.js +487 -64
- package/dist/agent-runtime/src/use-deep-agent-voice.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-window-sync.cjs +26 -26
- package/dist/agent-runtime/src/use-deep-agent-window-sync.cjs.map +1 -1
- package/dist/agent-runtime/src/use-historical-edit-attachments.cjs +4 -4
- package/dist/agent-runtime/src/use-historical-edit-attachments.cjs.map +1 -1
- package/dist/agent-runtime/src/use-thread-handoff-flow.d.ts +28 -26
- package/dist/agent-runtime/src/voice-media.cjs +117 -0
- package/dist/agent-runtime/src/voice-media.cjs.map +1 -0
- package/dist/agent-runtime/src/voice-media.d.ts +49 -0
- package/dist/agent-runtime/src/voice-media.js +117 -0
- package/dist/agent-runtime/src/voice-media.js.map +1 -0
- package/dist/agent-runtime/src/voice-wire-types.d.ts +32 -0
- package/dist/assets/AssetPanel.cjs +11 -11
- package/dist/assets/AssetPanel.cjs.map +1 -1
- package/dist/assets/AthenaAssetEmbed.cjs +11 -9
- package/dist/assets/AthenaAssetEmbed.cjs.map +1 -1
- package/dist/assets/AthenaAssetEmbed.d.ts +7 -0
- package/dist/assets/AthenaAssetEmbed.js +4 -2
- package/dist/assets/AthenaAssetEmbed.js.map +1 -1
- package/dist/assets/AthenaLayout.cjs +16 -16
- package/dist/assets/AthenaLayout.cjs.map +1 -1
- package/dist/assets/use-asset-content.cjs +4 -4
- package/dist/assets/use-asset-content.cjs.map +1 -1
- package/dist/assets/use-asset-embed.cjs +14 -7
- package/dist/assets/use-asset-embed.cjs.map +1 -1
- package/dist/assets/use-asset-embed.d.ts +11 -1
- package/dist/assets/use-asset-embed.js +10 -3
- package/dist/assets/use-asset-embed.js.map +1 -1
- package/dist/auth/AthenaAuthContext.cjs +3 -3
- package/dist/auth/AthenaAuthContext.cjs.map +1 -1
- package/dist/auth/AthenaAuthProvider.cjs +8 -8
- package/dist/auth/AthenaAuthProvider.cjs.map +1 -1
- package/dist/auth/AthenaCredentialSourceContext.cjs +5 -5
- package/dist/auth/AthenaCredentialSourceContext.cjs.map +1 -1
- package/dist/auth/AthenaSSOProvider.cjs +14 -14
- package/dist/auth/AthenaSSOProvider.cjs.map +1 -1
- package/dist/auth/credential-source.cjs +26 -13
- package/dist/auth/credential-source.cjs.map +1 -1
- package/dist/auth/credential-source.d.ts +8 -0
- package/dist/auth/credential-source.js +26 -13
- package/dist/auth/credential-source.js.map +1 -1
- package/dist/catalog/agent-model-options.cjs +25 -17
- package/dist/catalog/agent-model-options.cjs.map +1 -1
- package/dist/catalog/agent-model-options.d.ts +38 -5
- package/dist/catalog/agent-model-options.js +25 -17
- package/dist/catalog/agent-model-options.js.map +1 -1
- package/dist/catalog/channel-refusal.cjs +36 -0
- package/dist/catalog/channel-refusal.cjs.map +1 -0
- package/dist/catalog/channel-refusal.d.ts +29 -0
- package/dist/catalog/channel-refusal.js +36 -0
- package/dist/catalog/channel-refusal.js.map +1 -0
- package/dist/catalog/chat-pickers.cjs +60 -24
- package/dist/catalog/chat-pickers.cjs.map +1 -1
- package/dist/catalog/chat-pickers.d.ts +12 -2
- package/dist/catalog/chat-pickers.js +56 -20
- package/dist/catalog/chat-pickers.js.map +1 -1
- package/dist/catalog/runtime-catalog.cjs +89 -23
- package/dist/catalog/runtime-catalog.cjs.map +1 -1
- package/dist/catalog/runtime-catalog.d.ts +8 -2
- package/dist/catalog/runtime-catalog.js +83 -17
- package/dist/catalog/runtime-catalog.js.map +1 -1
- package/dist/catalog/use-athena-chat-mode.cjs +12 -12
- package/dist/catalog/use-athena-chat-mode.cjs.map +1 -1
- package/dist/chat/AthenaChat.cjs +155 -67
- package/dist/chat/AthenaChat.cjs.map +1 -1
- package/dist/chat/AthenaChat.d.ts +42 -2
- package/dist/chat/AthenaChat.js +106 -18
- package/dist/chat/AthenaChat.js.map +1 -1
- package/dist/chat/AthenaChatErrorBoundary.cjs +3 -3
- package/dist/chat/AthenaChatErrorBoundary.cjs.map +1 -1
- package/dist/chat/DrivingOnChip.cjs +23 -0
- package/dist/chat/DrivingOnChip.cjs.map +1 -0
- package/dist/chat/DrivingOnChip.d.ts +17 -0
- package/dist/chat/DrivingOnChip.js +23 -0
- package/dist/chat/DrivingOnChip.js.map +1 -0
- package/dist/chat/StatewireApprovalCard.cjs +125 -31
- package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
- package/dist/chat/StatewireApprovalCard.d.ts +73 -1
- package/dist/chat/StatewireApprovalCard.js +115 -21
- package/dist/chat/StatewireApprovalCard.js.map +1 -1
- package/dist/chat/StatewireClientToolBridge.cjs +2 -2
- package/dist/chat/StatewireClientToolBridge.cjs.map +1 -1
- package/dist/chat/StatewireQueuedMessages.cjs +25 -63
- package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
- package/dist/chat/StatewireQueuedMessages.d.ts +11 -13
- package/dist/chat/StatewireQueuedMessages.js +16 -54
- package/dist/chat/StatewireQueuedMessages.js.map +1 -1
- package/dist/chat/WaitingOnYouBanner.cjs +3 -3
- package/dist/chat/WaitingOnYouBanner.cjs.map +1 -1
- package/dist/chat/athena-chat-welcome.cjs +2 -2
- package/dist/chat/athena-chat-welcome.cjs.map +1 -1
- package/dist/chat/athena-citation-links.cjs +5 -5
- package/dist/chat/athena-citation-links.cjs.map +1 -1
- package/dist/chat/athena-composer-controls.cjs +26 -16
- package/dist/chat/athena-composer-controls.cjs.map +1 -1
- package/dist/chat/athena-composer-controls.d.ts +6 -0
- package/dist/chat/athena-composer-controls.js +26 -16
- package/dist/chat/athena-composer-controls.js.map +1 -1
- package/dist/chat/athena-turn-end-status.cjs +42 -0
- package/dist/chat/athena-turn-end-status.cjs.map +1 -0
- package/dist/chat/athena-turn-end-status.d.ts +24 -0
- package/dist/chat/athena-turn-end-status.js +42 -0
- package/dist/chat/athena-turn-end-status.js.map +1 -0
- package/dist/chat/browser-decision-check.cjs +131 -0
- package/dist/chat/browser-decision-check.cjs.map +1 -0
- package/dist/chat/browser-decision-check.d.ts +61 -0
- package/dist/chat/browser-decision-check.js +131 -0
- package/dist/chat/browser-decision-check.js.map +1 -0
- package/dist/chat/chat-outbox-rows.cjs +3 -3
- package/dist/chat/chat-outbox-rows.cjs.map +1 -1
- package/dist/chat/chat-voice-controls.cjs +93 -28
- package/dist/chat/chat-voice-controls.cjs.map +1 -1
- package/dist/chat/chat-voice-controls.d.ts +36 -2
- package/dist/chat/chat-voice-controls.js +89 -24
- package/dist/chat/chat-voice-controls.js.map +1 -1
- package/dist/chat/composer-keyboard-hint.cjs +5 -5
- package/dist/chat/composer-keyboard-hint.cjs.map +1 -1
- package/dist/chat/device-operation.cjs +29 -0
- package/dist/chat/device-operation.cjs.map +1 -0
- package/dist/chat/device-operation.d.ts +34 -0
- package/dist/chat/device-operation.js +29 -0
- package/dist/chat/device-operation.js.map +1 -0
- package/dist/chat/super-grouping/CollapsibleGroup.cjs +14 -14
- package/dist/chat/super-grouping/CollapsibleGroup.cjs.map +1 -1
- package/dist/chat/super-grouping/GroupedMessageParts.cjs +4 -4
- package/dist/chat/super-grouping/GroupedMessageParts.cjs.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingCard.cjs +52 -36
- package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingCard.d.ts +19 -4
- package/dist/chat/super-grouping/SuperGroupingCard.js +29 -13
- package/dist/chat/super-grouping/SuperGroupingCard.js.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingTranscript.cjs +32 -32
- package/dist/chat/super-grouping/SuperGroupingTranscript.cjs.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingTranscript.js +3 -3
- package/dist/chat/super-grouping/SuperGroupingTranscript.js.map +1 -1
- package/dist/chat/super-grouping/ToolTimeline.cjs +73 -40
- package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
- package/dist/chat/super-grouping/ToolTimeline.d.ts +10 -2
- package/dist/chat/super-grouping/ToolTimeline.js +69 -36
- package/dist/chat/super-grouping/ToolTimeline.js.map +1 -1
- package/dist/chat/super-grouping/activity-timeline.cjs +47 -12
- package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -1
- package/dist/chat/super-grouping/activity-timeline.d.ts +21 -0
- package/dist/chat/super-grouping/activity-timeline.js +47 -12
- package/dist/chat/super-grouping/activity-timeline.js.map +1 -1
- package/dist/chat/super-grouping/grouping-function.cjs +4 -0
- package/dist/chat/super-grouping/grouping-function.cjs.map +1 -1
- package/dist/chat/super-grouping/grouping-function.d.ts +7 -0
- package/dist/chat/super-grouping/grouping-function.js +5 -1
- package/dist/chat/super-grouping/grouping-function.js.map +1 -1
- package/dist/chat/super-grouping/index.cjs +6 -0
- package/dist/chat/super-grouping/index.cjs.map +1 -1
- package/dist/chat/super-grouping/index.d.ts +5 -2
- package/dist/chat/super-grouping/index.js +7 -1
- package/dist/chat/super-grouping/index.js.map +1 -1
- package/dist/chat/super-grouping/tool-part-placement.cjs +17 -0
- package/dist/chat/super-grouping/tool-part-placement.cjs.map +1 -0
- package/dist/chat/super-grouping/tool-part-placement.d.ts +22 -0
- package/dist/chat/super-grouping/tool-part-placement.js +17 -0
- package/dist/chat/super-grouping/tool-part-placement.js.map +1 -0
- package/dist/chat/thread-scroll-to-bottom.cjs +2 -2
- package/dist/chat/thread-scroll-to-bottom.cjs.map +1 -1
- package/dist/chat/thread-scroll-to-bottom.d.ts +10 -7
- package/dist/chat/thread-scroll-to-bottom.js +2 -2
- package/dist/chat/thread-scroll-to-bottom.js.map +1 -1
- package/dist/chat/tooltip-icon-button.cjs +2 -2
- package/dist/chat/tooltip-icon-button.cjs.map +1 -1
- package/dist/chat/use-athena-voice-live.cjs +11 -0
- package/dist/chat/use-athena-voice-live.cjs.map +1 -0
- package/dist/chat/use-athena-voice-live.d.ts +11 -0
- package/dist/chat/use-athena-voice-live.js +11 -0
- package/dist/chat/use-athena-voice-live.js.map +1 -0
- package/dist/chat/use-statewire-approval-request.cjs +56 -24
- package/dist/chat/use-statewire-approval-request.cjs.map +1 -1
- package/dist/chat/use-statewire-approval-request.d.ts +33 -4
- package/dist/chat/use-statewire-approval-request.js +41 -9
- package/dist/chat/use-statewire-approval-request.js.map +1 -1
- package/dist/chat-ui/auth/sign-in-card.cjs +2 -2
- package/dist/chat-ui/auth/sign-in-card.cjs.map +1 -1
- package/dist/chat-ui/composer/tiptap-composer.cjs +138 -107
- package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
- package/dist/chat-ui/composer/tiptap-composer.d.ts +20 -4
- package/dist/chat-ui/composer/tiptap-composer.js +85 -54
- package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
- package/dist/chat-ui/header/conversation-history-panel.cjs +49 -23
- package/dist/chat-ui/header/conversation-history-panel.cjs.map +1 -1
- package/dist/chat-ui/header/conversation-history-panel.d.ts +12 -1
- package/dist/chat-ui/header/conversation-history-panel.js +38 -12
- package/dist/chat-ui/header/conversation-history-panel.js.map +1 -1
- package/dist/chat-ui/index.cjs +18 -0
- package/dist/chat-ui/index.cjs.map +1 -1
- package/dist/chat-ui/index.d.ts +7 -1
- package/dist/chat-ui/index.js +18 -0
- package/dist/chat-ui/index.js.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.cjs +4 -4
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs +10 -9
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js +3 -2
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs +2 -2
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs +29 -6
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-list.d.ts +7 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js +25 -2
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs +2 -2
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs +2 -2
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +3 -3
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs +56 -2
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.d.ts +12 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.js +56 -2
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +24 -3
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +7 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js +24 -3
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +35 -13
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +15 -1
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +28 -6
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs +9 -6
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.d.ts +3 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js +5 -2
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js.map +1 -1
- package/dist/chat-ui/mentions/use-account-workspace-id.cjs +45 -10
- package/dist/chat-ui/mentions/use-account-workspace-id.cjs.map +1 -1
- package/dist/chat-ui/mentions/use-account-workspace-id.d.ts +24 -1
- package/dist/chat-ui/mentions/use-account-workspace-id.js +46 -11
- package/dist/chat-ui/mentions/use-account-workspace-id.js.map +1 -1
- package/dist/chat-ui/mentions/use-member-avatar.cjs +4 -4
- package/dist/chat-ui/mentions/use-member-avatar.cjs.map +1 -1
- package/dist/chat-ui/mentions/use-mention-asset.cjs +3 -3
- package/dist/chat-ui/mentions/use-mention-asset.cjs.map +1 -1
- package/dist/chat-ui/messages/answer-label.cjs +42 -0
- package/dist/chat-ui/messages/answer-label.cjs.map +1 -0
- package/dist/chat-ui/messages/answer-label.d.ts +33 -0
- package/dist/chat-ui/messages/answer-label.js +42 -0
- package/dist/chat-ui/messages/answer-label.js.map +1 -0
- package/dist/chat-ui/messages/arrival-animation.cjs +13 -0
- package/dist/chat-ui/messages/arrival-animation.cjs.map +1 -0
- package/dist/chat-ui/messages/arrival-animation.d.ts +14 -0
- package/dist/chat-ui/messages/arrival-animation.js +13 -0
- package/dist/chat-ui/messages/arrival-animation.js.map +1 -0
- package/dist/chat-ui/messages/continue-pill.cjs +5 -5
- package/dist/chat-ui/messages/continue-pill.cjs.map +1 -1
- package/dist/chat-ui/messages/handoff-arrival-divider.cjs +44 -0
- package/dist/chat-ui/messages/handoff-arrival-divider.cjs.map +1 -0
- package/dist/chat-ui/messages/handoff-arrival-divider.d.ts +17 -0
- package/dist/chat-ui/messages/handoff-arrival-divider.js +44 -0
- package/dist/chat-ui/messages/handoff-arrival-divider.js.map +1 -0
- package/dist/chat-ui/messages/message-actions-config.cjs +3 -3
- package/dist/chat-ui/messages/message-actions-config.cjs.map +1 -1
- package/dist/chat-ui/messages/message-components.cjs +8 -4
- package/dist/chat-ui/messages/message-components.cjs.map +1 -1
- package/dist/chat-ui/messages/message-components.js +5 -1
- package/dist/chat-ui/messages/message-components.js.map +1 -1
- package/dist/chat-ui/messages/message-images.cjs +66 -0
- package/dist/chat-ui/messages/message-images.cjs.map +1 -0
- package/dist/chat-ui/messages/message-images.d.ts +16 -0
- package/dist/chat-ui/messages/message-images.js +66 -0
- package/dist/chat-ui/messages/message-images.js.map +1 -0
- package/dist/chat-ui/messages/user-edit-composer.cjs +2 -2
- package/dist/chat-ui/messages/user-edit-composer.cjs.map +1 -1
- package/dist/chat-ui/messages/wake-marker.cjs +3 -3
- package/dist/chat-ui/messages/wake-marker.cjs.map +1 -1
- package/dist/chat-ui/rich-text/chat-link.cjs +2 -2
- package/dist/chat-ui/rich-text/chat-link.cjs.map +1 -1
- package/dist/chat-ui/rich-text/chat-message-body.cjs +8 -8
- package/dist/chat-ui/rich-text/chat-message-body.cjs.map +1 -1
- package/dist/chat-ui/rich-text/chat-node-views.cjs +6 -6
- package/dist/chat-ui/rich-text/chat-node-views.cjs.map +1 -1
- package/dist/chat-ui/rich-text/dom-output-spec.cjs +2 -2
- package/dist/chat-ui/rich-text/dom-output-spec.cjs.map +1 -1
- package/dist/chat-ui/statewire.cjs +3 -0
- package/dist/chat-ui/statewire.cjs.map +1 -1
- package/dist/chat-ui/statewire.d.ts +2 -1
- package/dist/chat-ui/statewire.js +3 -0
- package/dist/chat-ui/statewire.js.map +1 -1
- package/dist/chat-ui/thread/chat-thread-shell.cjs +43 -14
- package/dist/chat-ui/thread/chat-thread-shell.cjs.map +1 -1
- package/dist/chat-ui/thread/chat-thread-shell.d.ts +16 -2
- package/dist/chat-ui/thread/chat-thread-shell.js +35 -6
- package/dist/chat-ui/thread/chat-thread-shell.js.map +1 -1
- package/dist/chat-ui/thread/composer-send-or-stop.cjs +30 -20
- package/dist/chat-ui/thread/composer-send-or-stop.cjs.map +1 -1
- package/dist/chat-ui/thread/composer-send-or-stop.d.ts +8 -0
- package/dist/chat-ui/thread/composer-send-or-stop.js +29 -19
- package/dist/chat-ui/thread/composer-send-or-stop.js.map +1 -1
- package/dist/chat-ui/thread/statewire-history-edge.cjs +20 -21
- package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
- package/dist/chat-ui/thread/statewire-history-edge.js +3 -4
- package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
- package/dist/chat-ui/thread/thread-loading-overlay.cjs +5 -5
- package/dist/chat-ui/thread/thread-loading-overlay.cjs.map +1 -1
- package/dist/collab/client.cjs +40 -3
- package/dist/collab/client.cjs.map +1 -1
- package/dist/collab/client.d.ts +25 -0
- package/dist/collab/client.js +40 -3
- package/dist/collab/client.js.map +1 -1
- package/dist/collab/document-status.cjs +150 -0
- package/dist/collab/document-status.cjs.map +1 -0
- package/dist/collab/document-status.d.ts +68 -0
- package/dist/collab/document-status.js +150 -0
- package/dist/collab/document-status.js.map +1 -0
- package/dist/collab/index.cjs +7 -0
- package/dist/collab/index.cjs.map +1 -1
- package/dist/collab/index.d.ts +6 -1
- package/dist/collab/index.js +7 -0
- package/dist/collab/index.js.map +1 -1
- package/dist/collab/presence-react.cjs +11 -11
- package/dist/collab/presence-react.cjs.map +1 -1
- package/dist/collab/react.cjs +6 -6
- package/dist/collab/react.cjs.map +1 -1
- package/dist/composer/AttachmentContext.cjs +24 -11
- package/dist/composer/AttachmentContext.cjs.map +1 -1
- package/dist/composer/AttachmentContext.js +18 -5
- package/dist/composer/AttachmentContext.js.map +1 -1
- package/dist/composer/ComposerAttachmentPreview.cjs +78 -23
- package/dist/composer/ComposerAttachmentPreview.cjs.map +1 -1
- package/dist/composer/ComposerAttachmentPreview.d.ts +5 -3
- package/dist/composer/ComposerAttachmentPreview.js +79 -24
- package/dist/composer/ComposerAttachmentPreview.js.map +1 -1
- package/dist/composer/ComposerDropZone.cjs +7 -7
- package/dist/composer/ComposerDropZone.cjs.map +1 -1
- package/dist/composer/FileUploadButton.cjs +37 -22
- package/dist/composer/FileUploadButton.cjs.map +1 -1
- package/dist/composer/FileUploadButton.d.ts +6 -0
- package/dist/composer/FileUploadButton.js +34 -19
- package/dist/composer/FileUploadButton.js.map +1 -1
- package/dist/composer/QuoteContext.cjs +8 -8
- package/dist/composer/QuoteContext.cjs.map +1 -1
- package/dist/composer/composer-handoff.cjs +4 -4
- package/dist/composer/composer-handoff.cjs.map +1 -1
- package/dist/composer/useAppendToComposer.cjs +4 -4
- package/dist/composer/useAppendToComposer.cjs.map +1 -1
- package/dist/composer/useAttachFiles.cjs +23 -6
- package/dist/composer/useAttachFiles.cjs.map +1 -1
- package/dist/composer/useAttachFiles.d.ts +15 -7
- package/dist/composer/useAttachFiles.js +22 -5
- package/dist/composer/useAttachFiles.js.map +1 -1
- package/dist/composer/useComposerAttachment.cjs +4 -4
- package/dist/composer/useComposerAttachment.cjs.map +1 -1
- package/dist/composer/useFileUpload.cjs +21 -16
- package/dist/composer/useFileUpload.cjs.map +1 -1
- package/dist/composer/useFileUpload.d.ts +12 -0
- package/dist/composer/useFileUpload.js +12 -7
- package/dist/composer/useFileUpload.js.map +1 -1
- package/dist/composer/useReadComposerDraft.cjs +2 -2
- package/dist/composer/useReadComposerDraft.cjs.map +1 -1
- package/dist/composer/useSendMessage.cjs +4 -4
- package/dist/composer/useSendMessage.cjs.map +1 -1
- package/dist/diagnostics/useAthenaDiagnostics.cjs +4 -4
- package/dist/diagnostics/useAthenaDiagnostics.cjs.map +1 -1
- package/dist/dictation/audio-level-history.cjs +3 -3
- package/dist/dictation/audio-level-history.cjs.map +1 -1
- package/dist/dictation/dictation-controls.cjs +24 -20
- package/dist/dictation/dictation-controls.cjs.map +1 -1
- package/dist/dictation/dictation-controls.d.ts +6 -1
- package/dist/dictation/dictation-controls.js +24 -20
- package/dist/dictation/dictation-controls.js.map +1 -1
- package/dist/dictation/use-athena-dictation-engine.cjs +3 -3
- package/dist/dictation/use-athena-dictation-engine.cjs.map +1 -1
- package/dist/dictation/use-dictation.cjs +22 -22
- package/dist/dictation/use-dictation.cjs.map +1 -1
- package/dist/index.cjs +26 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +15 -3
- package/dist/index.js +26 -2
- package/dist/index.js.map +1 -1
- package/dist/keryx-http/src/receive-only-socket.cjs +40 -0
- package/dist/keryx-http/src/receive-only-socket.cjs.map +1 -0
- package/dist/keryx-http/src/receive-only-socket.d.ts +27 -0
- package/dist/keryx-http/src/receive-only-socket.js +40 -0
- package/dist/keryx-http/src/receive-only-socket.js.map +1 -0
- package/dist/keryx-http/src/update-attributions.cjs +111 -0
- package/dist/keryx-http/src/update-attributions.cjs.map +1 -0
- package/dist/keryx-http/src/update-attributions.d.ts +75 -0
- package/dist/keryx-http/src/update-attributions.js +111 -0
- package/dist/keryx-http/src/update-attributions.js.map +1 -0
- package/dist/lib/owner-document.cjs +6 -6
- package/dist/lib/owner-document.cjs.map +1 -1
- package/dist/lib/use-athena-rest-query.cjs +4 -4
- package/dist/lib/use-athena-rest-query.cjs.map +1 -1
- package/dist/lib/use-document-active.cjs +4 -4
- package/dist/lib/use-document-active.cjs.map +1 -1
- package/dist/lib/use-prefers-reduced-motion.cjs +2 -2
- package/dist/lib/use-prefers-reduced-motion.cjs.map +1 -1
- package/dist/offline/offline-history.cjs +7 -7
- package/dist/offline/offline-history.cjs.map +1 -1
- package/dist/provider/AthenaContext.cjs +3 -3
- package/dist/provider/AthenaContext.cjs.map +1 -1
- package/dist/provider/AthenaProvider.cjs +116 -79
- package/dist/provider/AthenaProvider.cjs.map +1 -1
- package/dist/provider/AthenaProvider.js +40 -3
- package/dist/provider/AthenaProvider.js.map +1 -1
- package/dist/provider/PostHogProvider.cjs +2 -2
- package/dist/provider/PostHogProvider.cjs.map +1 -1
- package/dist/provider/agent-selection-context.cjs +2 -2
- package/dist/provider/agent-selection-context.cjs.map +1 -1
- package/dist/provider/chat-mode-context.cjs +2 -2
- package/dist/provider/chat-mode-context.cjs.map +1 -1
- package/dist/provider/session-persistence-context.cjs +10 -0
- package/dist/provider/session-persistence-context.cjs.map +1 -0
- package/dist/provider/session-persistence-context.d.ts +15 -0
- package/dist/provider/session-persistence-context.js +10 -0
- package/dist/provider/session-persistence-context.js.map +1 -0
- package/dist/provider/statewire-history-context.cjs +4 -4
- package/dist/provider/statewire-history-context.cjs.map +1 -1
- package/dist/provider/statewire-lifecycle-context.cjs +3 -3
- package/dist/provider/statewire-lifecycle-context.cjs.map +1 -1
- package/dist/provider/statewire-window-context.cjs +3 -3
- package/dist/provider/statewire-window-context.cjs.map +1 -1
- package/dist/provider/theme-style-context.cjs +3 -3
- package/dist/provider/theme-style-context.cjs.map +1 -1
- package/dist/react/package.json.cjs +1 -1
- package/dist/react/package.json.js +1 -1
- package/dist/runtime/StatewireThreadConfigLaneSync.cjs +10 -10
- package/dist/runtime/StatewireThreadConfigLaneSync.cjs.map +1 -1
- package/dist/runtime/auth-refusal-restart.cjs +7 -7
- package/dist/runtime/auth-refusal-restart.cjs.map +1 -1
- package/dist/runtime/auth.cjs +13 -13
- package/dist/runtime/auth.cjs.map +1 -1
- package/dist/runtime/statewire-lifecycle.cjs +1 -0
- package/dist/runtime/statewire-lifecycle.cjs.map +1 -1
- package/dist/runtime/statewire-lifecycle.d.ts +3 -1
- package/dist/runtime/statewire-lifecycle.js +2 -1
- package/dist/runtime/statewire-lifecycle.js.map +1 -1
- package/dist/runtime/statewire-server-lane-context.cjs +2 -2
- package/dist/runtime/statewire-server-lane-context.cjs.map +1 -1
- package/dist/runtime/statewire-session-lane.cjs +4 -4
- package/dist/runtime/statewire-session-lane.cjs.map +1 -1
- package/dist/runtime/useAthenaStatewireRuntime.cjs +10 -8
- package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
- package/dist/runtime/useAthenaStatewireRuntime.d.ts +2 -0
- package/dist/runtime/useAthenaStatewireRuntime.js +2 -0
- package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/threads/Inbox.cjs +8 -8
- package/dist/threads/Inbox.cjs.map +1 -1
- package/dist/threads/SessionList.cjs +9 -9
- package/dist/threads/SessionList.cjs.map +1 -1
- package/dist/threads/SessionsPage.cjs +11 -11
- package/dist/threads/SessionsPage.cjs.map +1 -1
- package/dist/threads/index-triggered-refresh.cjs +10 -10
- package/dist/threads/index-triggered-refresh.cjs.map +1 -1
- package/dist/threads/mark-viewed-thread-read.cjs +12 -12
- package/dist/threads/mark-viewed-thread-read.cjs.map +1 -1
- package/dist/threads/offline-session-list.cjs +3 -3
- package/dist/threads/offline-session-list.cjs.map +1 -1
- package/dist/threads/session-list-tab-share.cjs +5 -5
- package/dist/threads/session-list-tab-share.cjs.map +1 -1
- package/dist/threads/statewire-thread-list.cjs +51 -51
- package/dist/threads/statewire-thread-list.cjs.map +1 -1
- package/dist/threads/thread-id-context.cjs +5 -5
- package/dist/threads/thread-id-context.cjs.map +1 -1
- package/dist/threads/use-athena-session-attention.cjs +2 -2
- package/dist/threads/use-athena-session-attention.cjs.map +1 -1
- package/dist/threads/use-athena-sessions.cjs +10 -10
- package/dist/threads/use-athena-sessions.cjs.map +1 -1
- package/dist/threads/use-athena-thread-model.cjs +3 -3
- package/dist/threads/use-athena-thread-model.cjs.map +1 -1
- package/dist/threads/use-rest-conversation-history.cjs +3 -3
- package/dist/threads/use-rest-conversation-history.cjs.map +1 -1
- package/dist/threads/use-statewire-conversation-history.cjs +8 -8
- package/dist/threads/use-statewire-conversation-history.cjs.map +1 -1
- package/dist/threads/use-thread-archive.cjs +9 -9
- package/dist/threads/use-thread-archive.cjs.map +1 -1
- package/dist/threads/use-thread-favorite.cjs +2 -2
- package/dist/threads/use-thread-favorite.cjs.map +1 -1
- package/dist/threads/use-thread-field-override.cjs +20 -20
- package/dist/threads/use-thread-field-override.cjs.map +1 -1
- package/dist/threads/use-thread-read-state.cjs +4 -4
- package/dist/threads/use-thread-read-state.cjs.map +1 -1
- package/dist/threads/use-thread-rename.cjs +2 -2
- package/dist/threads/use-thread-rename.cjs.map +1 -1
- package/dist/threads/useAthenaThreadManager.cjs +2 -2
- package/dist/threads/useAthenaThreadManager.cjs.map +1 -1
- package/dist/tools/NestedPtcMessages.cjs +6 -6
- package/dist/tools/NestedPtcMessages.cjs.map +1 -1
- package/dist/tools/append-document-tool-ui.cjs +7 -7
- package/dist/tools/append-document-tool-ui.cjs.map +1 -1
- package/dist/tools/file-tool-uis.cjs +2 -2
- package/dist/tools/file-tool-uis.cjs.map +1 -1
- package/dist/tools/misc-tool-uis.cjs +2 -2
- package/dist/tools/misc-tool-uis.cjs.map +1 -1
- package/dist/tools/primitives.cjs +6 -6
- package/dist/tools/primitives.cjs.map +1 -1
- package/dist/tools/read-asset-tool-ui.cjs +6 -6
- package/dist/tools/read-asset-tool-ui.cjs.map +1 -1
- package/dist/tools/subagent-task-tool-ui.cjs +21 -21
- package/dist/tools/subagent-task-tool-ui.cjs.map +1 -1
- package/dist/tools/test-recording-tool-uis.cjs +16 -16
- package/dist/tools/test-recording-tool-uis.cjs.map +1 -1
- package/dist/tools/todo-plan-store.cjs +4 -4
- package/dist/tools/todo-plan-store.cjs.map +1 -1
- package/dist/tools/tool-appearance.cjs +3 -3
- package/dist/tools/tool-appearance.cjs.map +1 -1
- package/dist/tools/tool-fallback.cjs +14 -14
- package/dist/tools/tool-fallback.cjs.map +1 -1
- package/dist/tools/tool-uis.cjs +74 -74
- package/dist/tools/tool-uis.cjs.map +1 -1
- package/dist/tools/use-elapsed-seconds.cjs +3 -3
- package/dist/tools/use-elapsed-seconds.cjs.map +1 -1
- package/dist/tools/write-todos-tool-ui.cjs +9 -9
- package/dist/tools/write-todos-tool-ui.cjs.map +1 -1
- package/dist/ui/image-viewer.cjs +382 -0
- package/dist/ui/image-viewer.cjs.map +1 -0
- package/dist/ui/image-viewer.d.ts +50 -0
- package/dist/ui/image-viewer.js +382 -0
- package/dist/ui/image-viewer.js.map +1 -0
- package/dist/voice/chat.cjs +6 -0
- package/dist/voice/chat.cjs.map +1 -1
- package/dist/voice/chat.d.ts +1 -1
- package/dist/voice/chat.js +8 -2
- package/dist/voice/livekit-join.cjs +52 -101
- package/dist/voice/livekit-join.cjs.map +1 -1
- package/dist/voice/livekit-join.d.ts +1 -6
- package/dist/voice/livekit-join.js +52 -101
- package/dist/voice/livekit-join.js.map +1 -1
- package/dist/voice/livekit.cjs.map +1 -1
- package/dist/voice/livekit.d.ts +11 -1
- package/dist/voice/livekit.js.map +1 -1
- package/dist/voice/use-athena-voice-session.cjs +34 -34
- package/dist/voice/use-athena-voice-session.cjs.map +1 -1
- package/dist/workbench/ComputerLiveDesktop.cjs +13 -13
- package/dist/workbench/ComputerLiveDesktop.cjs.map +1 -1
- package/dist/workbench/SessionWorkbench.cjs +22 -22
- package/dist/workbench/SessionWorkbench.cjs.map +1 -1
- package/dist/workbench/session-workbench-context.cjs +3 -3
- package/dist/workbench/session-workbench-context.cjs.map +1 -1
- package/dist/workbench/session-workbench-panes.cjs +8 -8
- package/dist/workbench/session-workbench-panes.cjs.map +1 -1
- package/dist/workbench/workbench-layout-context.cjs +3 -3
- package/dist/workbench/workbench-layout-context.cjs.map +1 -1
- package/package.json +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const
|
|
3
|
+
const require$$0 = require("react");
|
|
4
4
|
const useAthenaRestQuery = require("../lib/use-athena-rest-query.cjs");
|
|
5
5
|
const conversationList = require("../agent-runtime/src/conversation-list.cjs");
|
|
6
6
|
const TAB_SHARE_CLAIM_MS = 5e3;
|
|
@@ -52,10 +52,10 @@ function useSessionListTabShare({
|
|
|
52
52
|
const channelName = identity ? `${CHANNEL_PREFIX}${useAthenaRestQuery.keyPartFingerprint(
|
|
53
53
|
[identity.backendUrl, identity.userId, identity.workspaceId].join("\0")
|
|
54
54
|
)}` : null;
|
|
55
|
-
const claims =
|
|
56
|
-
const channelRef =
|
|
55
|
+
const claims = require$$0.useMemo(() => /* @__PURE__ */ new Map(), [channelName]);
|
|
56
|
+
const channelRef = require$$0.useRef(null);
|
|
57
57
|
const isSupported = channelName !== null && typeof BroadcastChannel !== "undefined";
|
|
58
|
-
|
|
58
|
+
require$$0.useEffect(() => {
|
|
59
59
|
if (!channelName || typeof BroadcastChannel === "undefined") return;
|
|
60
60
|
let channel;
|
|
61
61
|
try {
|
|
@@ -116,7 +116,7 @@ function useSessionListTabShare({
|
|
|
116
116
|
channel.close();
|
|
117
117
|
};
|
|
118
118
|
}, [channelName, claims, queryClient]);
|
|
119
|
-
return
|
|
119
|
+
return require$$0.useMemo(() => {
|
|
120
120
|
if (!isSupported) return NO_SHARE;
|
|
121
121
|
return {
|
|
122
122
|
claimedUntil: (key) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-list-tab-share.cjs","sources":["../../src/threads/session-list-tab-share.ts"],"sourcesContent":["/**\n * Open tabs of one signed-in user share their session-list reads.\n *\n * A pushed conversation-index change reaches every open tab at once, and each\n * one used to re-read the same lists. With this in place:\n *\n * - **Pages are shared.** Whenever a tab reads a list's first page, it posts\n * the page on a `BroadcastChannel` named for the backend, the user and the\n * workspace. A tab that holds the same list (same query key) and has an\n * older copy takes it, so the new row appears there without a request.\n * - **One tab reads for the others.** Before an index-triggered refresh, a tab\n * claims the list on the channel. The other tabs hold their own refresh for\n * that list for {@link TAB_SHARE_CLAIM_MS}; the claimer's page normally\n * lands well before then. If it does not (the claimer failed or closed),\n * they refresh themselves.\n *\n * Only same-origin tabs can hear a `BroadcastChannel`, and only tabs signed in\n * as the same user to the same workspace and backend use the same channel, so\n * a page never reaches another account. Without a signed-in user, a\n * workspace, or `BroadcastChannel` (older browsers, SSR, tests), every call is\n * a no-op and each tab reads for itself, as before.\n */\nimport {\n type ConversationListPage,\n CONVERSATION_LIST_QUERY_KEY_ROOT,\n} from '@athenaintel/agent-runtime';\nimport type { QueryClient, QueryKey } from '@tanstack/react-query';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { keyPartFingerprint } from '../lib/use-athena-rest-query';\n\n/** How long a claim by another tab holds this tab's own refresh of that list. */\nexport const TAB_SHARE_CLAIM_MS = 5_000;\n\nconst CHANNEL_PREFIX = 'athena-sdk:session-list:';\nconst MESSAGE_VERSION = 1;\n\ntype TabShareMessage =\n | { v: number; kind: 'page'; key: string; queryKey: QueryKey; data: ConversationListPage; updatedAt: number }\n | { v: number; kind: 'claim'; key: string };\n\nexport interface SessionListTabShare {\n /**\n * Whether another tab has claimed the list with this query key and its\n * claim still stands: when it lapses (epoch ms), or `null`.\n */\n claimedUntil(key: string): number | null;\n /** Tell the other tabs this one is reading the list now. */\n claim(key: string): void;\n}\n\nconst NO_SHARE: SessionListTabShare = {\n claimedUntil: () => null,\n claim: () => undefined,\n};\n\n/** A list's first-page query key, as the stable string the channel names it by. */\nexport function sessionListShareKey(queryKey: QueryKey): string {\n return JSON.stringify(queryKey);\n}\n\nfunction isFirstPageKey(queryKey: unknown): queryKey is QueryKey {\n return (\n Array.isArray(queryKey) &&\n queryKey[0] === CONVERSATION_LIST_QUERY_KEY_ROOT &&\n queryKey[queryKey.length - 1] === 'first-page'\n );\n}\n\nfunction isPage(value: unknown): value is ConversationListPage {\n if (typeof value !== 'object' || value === null) return false;\n const { items, hasMore } = value as Record<string, unknown>;\n return Array.isArray(items) && typeof hasMore === 'boolean';\n}\n\n/** Parse a channel message, or `null` for anything this version does not send. Exported for tests. */\nexport function parseTabShareMessage(raw: unknown): TabShareMessage | null {\n if (typeof raw !== 'object' || raw === null) return null;\n const message = raw as Record<string, unknown>;\n if (message.v !== MESSAGE_VERSION || typeof message.key !== 'string') return null;\n if (message.kind === 'claim') return { v: MESSAGE_VERSION, kind: 'claim', key: message.key };\n if (\n message.kind === 'page' &&\n isFirstPageKey(message.queryKey) &&\n sessionListShareKey(message.queryKey) === message.key &&\n isPage(message.data) &&\n typeof message.updatedAt === 'number'\n ) {\n return {\n v: MESSAGE_VERSION,\n kind: 'page',\n key: message.key,\n queryKey: message.queryKey,\n data: message.data,\n updatedAt: message.updatedAt,\n };\n }\n return null;\n}\n\n/**\n * Take a page another tab read: only into a list this tab holds, and only\n * when it is newer than this tab's copy. Returns whether it was taken.\n * Exported for tests.\n */\nexport function applySharedPage(\n queryClient: QueryClient,\n message: Extract<TabShareMessage, { kind: 'page' }>,\n): boolean {\n const state = queryClient.getQueryState(message.queryKey);\n if (!state) return false;\n if (state.dataUpdatedAt >= message.updatedAt) return false;\n queryClient.setQueryData(message.queryKey, message.data, { updatedAt: message.updatedAt });\n return true;\n}\n\n/**\n * Share this provider's session-list first pages with the user's other open\n * tabs, and hear theirs. `identity` is `null` when sharing must stay off (no\n * signed-in user or workspace known yet).\n */\nexport function useSessionListTabShare({\n queryClient,\n identity,\n}: {\n queryClient: QueryClient;\n identity: { backendUrl: string; userId: string; workspaceId: string } | null;\n}): SessionListTabShare {\n const channelName = identity\n ? `${CHANNEL_PREFIX}${keyPartFingerprint(\n [identity.backendUrl, identity.userId, identity.workspaceId].join('\\u0000'),\n )}`\n : null;\n const claims = useMemo(() => new Map<string, number>(), [channelName]);\n // The channel is opened by the effect that closes it, so each setup has its\n // own (StrictMode's setup, cleanup, setup included), and `claim` posts on\n // whichever one is open now.\n const channelRef = useRef<BroadcastChannel | null>(null);\n const isSupported = channelName !== null && typeof BroadcastChannel !== 'undefined';\n\n useEffect(() => {\n if (!channelName || typeof BroadcastChannel === 'undefined') return;\n let channel: BroadcastChannel;\n try {\n channel = new BroadcastChannel(channelName);\n } catch {\n return;\n }\n channelRef.current = channel;\n const post = (message: TabShareMessage) => {\n try {\n channel.postMessage(message);\n } catch {\n // A page that cannot be cloned or a closed channel: the other tabs read for themselves.\n }\n };\n channel.onmessage = (event: MessageEvent) => {\n const message = parseTabShareMessage(event.data);\n if (!message) return;\n if (message.kind === 'claim') {\n claims.set(message.key, Date.now() + TAB_SHARE_CLAIM_MS);\n return;\n }\n // The claim stands until it lapses: a tab whose rows the page still\n // leaves out reads for itself once it does, not all of them at once.\n applySharedPage(queryClient, message);\n };\n // Only a read that STARTED while this channel was open is shared on it.\n // The channel is named for the workspace the current credential resolved\n // to; a read started before (under the previous credential, perhaps for\n // another workspace) may still land after the switch, and its rows must\n // never reach this workspace's tabs.\n const startedHere = new Set<string>();\n const unsubscribe = queryClient.getQueryCache().subscribe((event) => {\n if (event.type === 'removed') {\n startedHere.delete(event.query.queryHash);\n return;\n }\n if (event.type !== 'updated') return;\n const { queryKey, queryHash } = event.query;\n if (!isFirstPageKey(queryKey)) return;\n if (event.action.type === 'fetch') {\n startedHere.add(queryHash);\n return;\n }\n if (event.action.type === 'error') {\n startedHere.delete(queryHash);\n return;\n }\n if (event.action.type !== 'success') return;\n // A page set by hand (one another tab shared, an optimistic patch) is not news to them.\n if ((event.action as { manual?: boolean }).manual) return;\n if (!startedHere.delete(queryHash)) return;\n if (!isPage(event.query.state.data)) return;\n post({\n v: MESSAGE_VERSION,\n kind: 'page',\n key: sessionListShareKey(queryKey),\n queryKey,\n data: event.query.state.data,\n updatedAt: event.query.state.dataUpdatedAt,\n });\n });\n return () => {\n unsubscribe();\n if (channelRef.current === channel) channelRef.current = null;\n channel.onmessage = null;\n channel.close();\n };\n }, [channelName, claims, queryClient]);\n\n return useMemo<SessionListTabShare>(() => {\n if (!isSupported) return NO_SHARE;\n return {\n claimedUntil: (key) => {\n const until = claims.get(key);\n if (until === undefined) return null;\n if (until <= Date.now()) {\n claims.delete(key);\n return null;\n }\n return until;\n },\n claim: (key) => {\n try {\n channelRef.current?.postMessage({\n v: MESSAGE_VERSION,\n kind: 'claim',\n key,\n } satisfies TabShareMessage);\n } catch {\n // Closed: nothing to coordinate with.\n }\n },\n };\n }, [isSupported, claims]);\n}\n"],"names":["CONVERSATION_LIST_QUERY_KEY_ROOT","keyPartFingerprint","useMemo","useRef","useEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-list-tab-share.cjs","sources":["../../src/threads/session-list-tab-share.ts"],"sourcesContent":["/**\n * Open tabs of one signed-in user share their session-list reads.\n *\n * A pushed conversation-index change reaches every open tab at once, and each\n * one used to re-read the same lists. With this in place:\n *\n * - **Pages are shared.** Whenever a tab reads a list's first page, it posts\n * the page on a `BroadcastChannel` named for the backend, the user and the\n * workspace. A tab that holds the same list (same query key) and has an\n * older copy takes it, so the new row appears there without a request.\n * - **One tab reads for the others.** Before an index-triggered refresh, a tab\n * claims the list on the channel. The other tabs hold their own refresh for\n * that list for {@link TAB_SHARE_CLAIM_MS}; the claimer's page normally\n * lands well before then. If it does not (the claimer failed or closed),\n * they refresh themselves.\n *\n * Only same-origin tabs can hear a `BroadcastChannel`, and only tabs signed in\n * as the same user to the same workspace and backend use the same channel, so\n * a page never reaches another account. Without a signed-in user, a\n * workspace, or `BroadcastChannel` (older browsers, SSR, tests), every call is\n * a no-op and each tab reads for itself, as before.\n */\nimport {\n type ConversationListPage,\n CONVERSATION_LIST_QUERY_KEY_ROOT,\n} from '@athenaintel/agent-runtime';\nimport type { QueryClient, QueryKey } from '@tanstack/react-query';\nimport { useEffect, useMemo, useRef } from 'react';\nimport { keyPartFingerprint } from '../lib/use-athena-rest-query';\n\n/** How long a claim by another tab holds this tab's own refresh of that list. */\nexport const TAB_SHARE_CLAIM_MS = 5_000;\n\nconst CHANNEL_PREFIX = 'athena-sdk:session-list:';\nconst MESSAGE_VERSION = 1;\n\ntype TabShareMessage =\n | { v: number; kind: 'page'; key: string; queryKey: QueryKey; data: ConversationListPage; updatedAt: number }\n | { v: number; kind: 'claim'; key: string };\n\nexport interface SessionListTabShare {\n /**\n * Whether another tab has claimed the list with this query key and its\n * claim still stands: when it lapses (epoch ms), or `null`.\n */\n claimedUntil(key: string): number | null;\n /** Tell the other tabs this one is reading the list now. */\n claim(key: string): void;\n}\n\nconst NO_SHARE: SessionListTabShare = {\n claimedUntil: () => null,\n claim: () => undefined,\n};\n\n/** A list's first-page query key, as the stable string the channel names it by. */\nexport function sessionListShareKey(queryKey: QueryKey): string {\n return JSON.stringify(queryKey);\n}\n\nfunction isFirstPageKey(queryKey: unknown): queryKey is QueryKey {\n return (\n Array.isArray(queryKey) &&\n queryKey[0] === CONVERSATION_LIST_QUERY_KEY_ROOT &&\n queryKey[queryKey.length - 1] === 'first-page'\n );\n}\n\nfunction isPage(value: unknown): value is ConversationListPage {\n if (typeof value !== 'object' || value === null) return false;\n const { items, hasMore } = value as Record<string, unknown>;\n return Array.isArray(items) && typeof hasMore === 'boolean';\n}\n\n/** Parse a channel message, or `null` for anything this version does not send. Exported for tests. */\nexport function parseTabShareMessage(raw: unknown): TabShareMessage | null {\n if (typeof raw !== 'object' || raw === null) return null;\n const message = raw as Record<string, unknown>;\n if (message.v !== MESSAGE_VERSION || typeof message.key !== 'string') return null;\n if (message.kind === 'claim') return { v: MESSAGE_VERSION, kind: 'claim', key: message.key };\n if (\n message.kind === 'page' &&\n isFirstPageKey(message.queryKey) &&\n sessionListShareKey(message.queryKey) === message.key &&\n isPage(message.data) &&\n typeof message.updatedAt === 'number'\n ) {\n return {\n v: MESSAGE_VERSION,\n kind: 'page',\n key: message.key,\n queryKey: message.queryKey,\n data: message.data,\n updatedAt: message.updatedAt,\n };\n }\n return null;\n}\n\n/**\n * Take a page another tab read: only into a list this tab holds, and only\n * when it is newer than this tab's copy. Returns whether it was taken.\n * Exported for tests.\n */\nexport function applySharedPage(\n queryClient: QueryClient,\n message: Extract<TabShareMessage, { kind: 'page' }>,\n): boolean {\n const state = queryClient.getQueryState(message.queryKey);\n if (!state) return false;\n if (state.dataUpdatedAt >= message.updatedAt) return false;\n queryClient.setQueryData(message.queryKey, message.data, { updatedAt: message.updatedAt });\n return true;\n}\n\n/**\n * Share this provider's session-list first pages with the user's other open\n * tabs, and hear theirs. `identity` is `null` when sharing must stay off (no\n * signed-in user or workspace known yet).\n */\nexport function useSessionListTabShare({\n queryClient,\n identity,\n}: {\n queryClient: QueryClient;\n identity: { backendUrl: string; userId: string; workspaceId: string } | null;\n}): SessionListTabShare {\n const channelName = identity\n ? `${CHANNEL_PREFIX}${keyPartFingerprint(\n [identity.backendUrl, identity.userId, identity.workspaceId].join('\\u0000'),\n )}`\n : null;\n const claims = useMemo(() => new Map<string, number>(), [channelName]);\n // The channel is opened by the effect that closes it, so each setup has its\n // own (StrictMode's setup, cleanup, setup included), and `claim` posts on\n // whichever one is open now.\n const channelRef = useRef<BroadcastChannel | null>(null);\n const isSupported = channelName !== null && typeof BroadcastChannel !== 'undefined';\n\n useEffect(() => {\n if (!channelName || typeof BroadcastChannel === 'undefined') return;\n let channel: BroadcastChannel;\n try {\n channel = new BroadcastChannel(channelName);\n } catch {\n return;\n }\n channelRef.current = channel;\n const post = (message: TabShareMessage) => {\n try {\n channel.postMessage(message);\n } catch {\n // A page that cannot be cloned or a closed channel: the other tabs read for themselves.\n }\n };\n channel.onmessage = (event: MessageEvent) => {\n const message = parseTabShareMessage(event.data);\n if (!message) return;\n if (message.kind === 'claim') {\n claims.set(message.key, Date.now() + TAB_SHARE_CLAIM_MS);\n return;\n }\n // The claim stands until it lapses: a tab whose rows the page still\n // leaves out reads for itself once it does, not all of them at once.\n applySharedPage(queryClient, message);\n };\n // Only a read that STARTED while this channel was open is shared on it.\n // The channel is named for the workspace the current credential resolved\n // to; a read started before (under the previous credential, perhaps for\n // another workspace) may still land after the switch, and its rows must\n // never reach this workspace's tabs.\n const startedHere = new Set<string>();\n const unsubscribe = queryClient.getQueryCache().subscribe((event) => {\n if (event.type === 'removed') {\n startedHere.delete(event.query.queryHash);\n return;\n }\n if (event.type !== 'updated') return;\n const { queryKey, queryHash } = event.query;\n if (!isFirstPageKey(queryKey)) return;\n if (event.action.type === 'fetch') {\n startedHere.add(queryHash);\n return;\n }\n if (event.action.type === 'error') {\n startedHere.delete(queryHash);\n return;\n }\n if (event.action.type !== 'success') return;\n // A page set by hand (one another tab shared, an optimistic patch) is not news to them.\n if ((event.action as { manual?: boolean }).manual) return;\n if (!startedHere.delete(queryHash)) return;\n if (!isPage(event.query.state.data)) return;\n post({\n v: MESSAGE_VERSION,\n kind: 'page',\n key: sessionListShareKey(queryKey),\n queryKey,\n data: event.query.state.data,\n updatedAt: event.query.state.dataUpdatedAt,\n });\n });\n return () => {\n unsubscribe();\n if (channelRef.current === channel) channelRef.current = null;\n channel.onmessage = null;\n channel.close();\n };\n }, [channelName, claims, queryClient]);\n\n return useMemo<SessionListTabShare>(() => {\n if (!isSupported) return NO_SHARE;\n return {\n claimedUntil: (key) => {\n const until = claims.get(key);\n if (until === undefined) return null;\n if (until <= Date.now()) {\n claims.delete(key);\n return null;\n }\n return until;\n },\n claim: (key) => {\n try {\n channelRef.current?.postMessage({\n v: MESSAGE_VERSION,\n kind: 'claim',\n key,\n } satisfies TabShareMessage);\n } catch {\n // Closed: nothing to coordinate with.\n }\n },\n };\n }, [isSupported, claims]);\n}\n"],"names":["CONVERSATION_LIST_QUERY_KEY_ROOT","keyPartFingerprint","useMemo","useRef","useEffect"],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const offlineSessionList = require("./offline-session-list.cjs");
|
|
5
5
|
const reactQuery = require("@tanstack/react-query");
|
|
6
|
-
const react
|
|
7
|
-
const
|
|
6
|
+
const react = require("@assistant-ui/react");
|
|
7
|
+
const require$$0 = require("react");
|
|
8
8
|
const AthenaAuthContext = require("../auth/AthenaAuthContext.cjs");
|
|
9
9
|
const statewireAuthHeaders = require("../runtime/statewire-auth-headers.cjs");
|
|
10
10
|
const api = require("./api.cjs");
|
|
@@ -25,9 +25,9 @@ const useThreadRename = require("./use-thread-rename.cjs");
|
|
|
25
25
|
const conversationList = require("../agent-runtime/src/conversation-list.cjs");
|
|
26
26
|
const useConversationList = require("../agent-runtime/src/use-conversation-list.cjs");
|
|
27
27
|
const conversationIndex = require("../agent-runtime/src/conversation-index.cjs");
|
|
28
|
-
const AthenaStatewireThreadListContext =
|
|
28
|
+
const AthenaStatewireThreadListContext = require$$0.createContext(null);
|
|
29
29
|
function useAthenaStatewireThreadList() {
|
|
30
|
-
return
|
|
30
|
+
return require$$0.useContext(AthenaStatewireThreadListContext);
|
|
31
31
|
}
|
|
32
32
|
function useRefreshThreadList() {
|
|
33
33
|
var _a;
|
|
@@ -85,7 +85,7 @@ function withPinnedConversations({
|
|
|
85
85
|
);
|
|
86
86
|
return unlisted.length === 0 ? conversations : [...conversations, ...unlisted];
|
|
87
87
|
}
|
|
88
|
-
const AthenaSessionsLiveContext =
|
|
88
|
+
const AthenaSessionsLiveContext = require$$0.createContext(null);
|
|
89
89
|
const THREAD_LIST_PAGE_SIZE = 50;
|
|
90
90
|
const EMPTY_THREAD_IDS = /* @__PURE__ */ new Set();
|
|
91
91
|
const MAX_PINNED_PAGES = 10;
|
|
@@ -103,20 +103,20 @@ function StatewireThreadListState({
|
|
|
103
103
|
children
|
|
104
104
|
}) {
|
|
105
105
|
var _a, _b, _c;
|
|
106
|
-
const [active, setActive] =
|
|
106
|
+
const [active, setActive] = require$$0.useState(
|
|
107
107
|
() => initialThreadId ? { id: initialThreadId, isNew: false } : { id: mintThreadId.mintThreadId(), isNew: true }
|
|
108
108
|
);
|
|
109
|
-
const [search, setSearch] =
|
|
110
|
-
const tokenRef =
|
|
109
|
+
const [search, setSearch] = require$$0.useState("");
|
|
110
|
+
const tokenRef = require$$0.useRef(token);
|
|
111
111
|
tokenRef.current = token;
|
|
112
|
-
const apiKeyRef =
|
|
112
|
+
const apiKeyRef = require$$0.useRef(apiKey);
|
|
113
113
|
apiKeyRef.current = apiKey;
|
|
114
|
-
const getTokenRef =
|
|
114
|
+
const getTokenRef = require$$0.useRef(getToken);
|
|
115
115
|
getTokenRef.current = getToken;
|
|
116
|
-
const authContext =
|
|
116
|
+
const authContext = require$$0.useContext(AthenaAuthContext.AthenaAuthContext);
|
|
117
117
|
const principal = ((_a = authContext == null ? void 0 : authContext.user) == null ? void 0 : _a.userId) ?? "";
|
|
118
118
|
const hasAuth = !!(apiKey || token || getToken);
|
|
119
|
-
const getAuth =
|
|
119
|
+
const getAuth = require$$0.useCallback(
|
|
120
120
|
async (options) => ({
|
|
121
121
|
apiKey: apiKeyRef.current,
|
|
122
122
|
token: await statewireAuthHeaders.resolveStatewireAuthToken(
|
|
@@ -126,17 +126,17 @@ function StatewireThreadListState({
|
|
|
126
126
|
}),
|
|
127
127
|
[]
|
|
128
128
|
);
|
|
129
|
-
const fetchPage =
|
|
129
|
+
const fetchPage = require$$0.useMemo(
|
|
130
130
|
() => conversationListFetcher.createRestConversationListFetcher({ backendUrl, includePullRequests, getAuth }),
|
|
131
131
|
[backendUrl, includePullRequests, getAuth]
|
|
132
132
|
);
|
|
133
133
|
const trimmedSearch = search.trim();
|
|
134
134
|
const additionalListAppIdsKey = JSON.stringify(additionalListAppIds ?? []);
|
|
135
|
-
const listedAppIds =
|
|
135
|
+
const listedAppIds = require$$0.useMemo(
|
|
136
136
|
() => JSON.parse(additionalListAppIdsKey),
|
|
137
137
|
[additionalListAppIdsKey]
|
|
138
138
|
);
|
|
139
|
-
const filter =
|
|
139
|
+
const filter = require$$0.useMemo(
|
|
140
140
|
() => ({
|
|
141
141
|
...appId ? { appId } : {},
|
|
142
142
|
...listedAppIds.length > 0 ? { appIds: listedAppIds } : {},
|
|
@@ -152,7 +152,7 @@ function StatewireThreadListState({
|
|
|
152
152
|
scopeKey: listScopeKey,
|
|
153
153
|
enabled: hasAuth
|
|
154
154
|
});
|
|
155
|
-
const fetchPinnedPage =
|
|
155
|
+
const fetchPinnedPage = require$$0.useMemo(
|
|
156
156
|
() => conversationListFetcher.createRestConversationListFetcher({
|
|
157
157
|
backendUrl,
|
|
158
158
|
includePullRequests,
|
|
@@ -169,7 +169,7 @@ function StatewireThreadListState({
|
|
|
169
169
|
scopeKey: pinnedScopeKey,
|
|
170
170
|
enabled: hasAuth
|
|
171
171
|
});
|
|
172
|
-
const pinnedPagesRequested =
|
|
172
|
+
const pinnedPagesRequested = require$$0.useRef({ key: "", count: 0 });
|
|
173
173
|
const pinnedRequestKey = `${pinnedScopeKey}::${JSON.stringify(filter)}`;
|
|
174
174
|
if (pinnedPagesRequested.current.key !== pinnedRequestKey) {
|
|
175
175
|
pinnedPagesRequested.current = { key: pinnedRequestKey, count: 0 };
|
|
@@ -178,28 +178,28 @@ function StatewireThreadListState({
|
|
|
178
178
|
const pinnedIsFetchingNextPage = pinnedList.isFetchingNextPage;
|
|
179
179
|
const pinnedNextPageFailed = pinnedList.isFetchNextPageError;
|
|
180
180
|
const pinnedFetchNextPage = pinnedList.fetchNextPage;
|
|
181
|
-
|
|
181
|
+
require$$0.useEffect(() => {
|
|
182
182
|
if (!pinnedHasNextPage || pinnedIsFetchingNextPage || pinnedNextPageFailed) return;
|
|
183
183
|
if (pinnedPagesRequested.current.count >= MAX_PINNED_PAGES - 1) return;
|
|
184
184
|
pinnedPagesRequested.current.count += 1;
|
|
185
185
|
void pinnedFetchNextPage();
|
|
186
186
|
}, [pinnedHasNextPage, pinnedIsFetchingNextPage, pinnedNextPageFailed, pinnedFetchNextPage]);
|
|
187
|
-
const listedConversations =
|
|
187
|
+
const listedConversations = require$$0.useMemo(
|
|
188
188
|
() => withPinnedConversations({
|
|
189
189
|
conversations: list.conversations,
|
|
190
190
|
pinned: pinnedList.conversations
|
|
191
191
|
}),
|
|
192
192
|
[list.conversations, pinnedList.conversations]
|
|
193
193
|
);
|
|
194
|
-
const indexHeaders =
|
|
194
|
+
const indexHeaders = require$$0.useCallback(
|
|
195
195
|
(ctx) => statewireAuthHeaders.resolveStatewireAuthHeaders(
|
|
196
196
|
{ apiKey: apiKeyRef.current, token: tokenRef.current, getToken: getTokenRef.current },
|
|
197
197
|
ctx
|
|
198
198
|
),
|
|
199
199
|
[]
|
|
200
200
|
);
|
|
201
|
-
const credentialsRef =
|
|
202
|
-
const credentialGenerationRef =
|
|
201
|
+
const credentialsRef = require$$0.useRef(credentialShape.credentialShape({ apiKey, token, getToken }));
|
|
202
|
+
const credentialGenerationRef = require$$0.useRef(0);
|
|
203
203
|
const currentCredentials = credentialShape.credentialShape({ apiKey, token, getToken });
|
|
204
204
|
if (!credentialShape.sameCredentialShape(credentialsRef.current, currentCredentials)) {
|
|
205
205
|
credentialsRef.current = currentCredentials;
|
|
@@ -229,17 +229,17 @@ function StatewireThreadListState({
|
|
|
229
229
|
connection: index.connection,
|
|
230
230
|
reconnect: index.connection.reconnect
|
|
231
231
|
});
|
|
232
|
-
const indexByThread =
|
|
232
|
+
const indexByThread = require$$0.useMemo(() => {
|
|
233
233
|
const entries = /* @__PURE__ */ new Map();
|
|
234
234
|
for (const entry of index.entries ?? []) entries.set(entry.thread_id, entry);
|
|
235
235
|
return entries;
|
|
236
236
|
}, [index.entries]);
|
|
237
|
-
const mergedConversations =
|
|
237
|
+
const mergedConversations = require$$0.useMemo(
|
|
238
238
|
() => foldConversationIndex(listedConversations, indexByThread),
|
|
239
239
|
[listedConversations, indexByThread]
|
|
240
240
|
);
|
|
241
241
|
const queryClient = reactQuery.useQueryClient();
|
|
242
|
-
const patchEveryList =
|
|
242
|
+
const patchEveryList = require$$0.useCallback(
|
|
243
243
|
(threadId, patch) => conversationList.patchConversationListCaches(queryClient, {
|
|
244
244
|
match: (item) => item.threadId === threadId,
|
|
245
245
|
patch
|
|
@@ -288,14 +288,14 @@ function StatewireThreadListState({
|
|
|
288
288
|
});
|
|
289
289
|
const hiddenThreadIds = archive.hiddenThreadIds;
|
|
290
290
|
const archiveRelease = archive.release;
|
|
291
|
-
|
|
291
|
+
require$$0.useEffect(() => {
|
|
292
292
|
if (hiddenThreadIds.size === 0) return;
|
|
293
293
|
const forgotten = [...hiddenThreadIds].filter(
|
|
294
294
|
(threadId) => !mergedConversations.some((conversation) => conversation.threadId === threadId) && !indexByThread.has(threadId)
|
|
295
295
|
);
|
|
296
296
|
if (forgotten.length > 0) archiveRelease(forgotten);
|
|
297
297
|
}, [hiddenThreadIds, mergedConversations, indexByThread, archiveRelease]);
|
|
298
|
-
const applyOverrides =
|
|
298
|
+
const applyOverrides = require$$0.useCallback(
|
|
299
299
|
(rows) => useThreadReadState.withReadStateOverrides(
|
|
300
300
|
useThreadRename.withTitleOverrides(useThreadFavorite.withFavoriteOverrides(rows, favoriteOverrides), titleOverrides),
|
|
301
301
|
readOverrides,
|
|
@@ -303,13 +303,13 @@ function StatewireThreadListState({
|
|
|
303
303
|
).filter((conversation) => !hiddenThreadIds.has(conversation.threadId)),
|
|
304
304
|
[favoriteOverrides, titleOverrides, readOverrides, readCoveredUpdatedAt, hiddenThreadIds]
|
|
305
305
|
);
|
|
306
|
-
const data =
|
|
306
|
+
const data = require$$0.useMemo(
|
|
307
307
|
() => applyOverrides(mergedConversations).map(threadSummaryFromConversation),
|
|
308
308
|
[applyOverrides, mergedConversations]
|
|
309
309
|
);
|
|
310
310
|
const isLoading = list.isLoading;
|
|
311
|
-
const lastActiveConversationRef =
|
|
312
|
-
const activeConversation =
|
|
311
|
+
const lastActiveConversationRef = require$$0.useRef(null);
|
|
312
|
+
const activeConversation = require$$0.useMemo(() => {
|
|
313
313
|
var _a2;
|
|
314
314
|
const listed = mergedConversations.find((conversation) => conversation.threadId === active.id);
|
|
315
315
|
if (listed) return listed;
|
|
@@ -319,7 +319,7 @@ function StatewireThreadListState({
|
|
|
319
319
|
return remembered ?? null;
|
|
320
320
|
}, [mergedConversations, indexByThread, active.id]);
|
|
321
321
|
if (activeConversation !== null) lastActiveConversationRef.current = activeConversation;
|
|
322
|
-
const activeThread =
|
|
322
|
+
const activeThread = require$$0.useMemo(
|
|
323
323
|
() => activeConversation ? threadSummaryFromConversation(
|
|
324
324
|
useThreadReadState.withReadStateOverrides(
|
|
325
325
|
[
|
|
@@ -335,21 +335,21 @@ function StatewireThreadListState({
|
|
|
335
335
|
[activeConversation, favoriteOverrides, titleOverrides, readOverrides, readCoveredUpdatedAt]
|
|
336
336
|
);
|
|
337
337
|
const listRefresh = list.refresh;
|
|
338
|
-
const pinnedFetchingRef =
|
|
338
|
+
const pinnedFetchingRef = require$$0.useRef(pinnedList.isFetching);
|
|
339
339
|
pinnedFetchingRef.current = pinnedList.isFetching;
|
|
340
|
-
const refresh =
|
|
340
|
+
const refresh = require$$0.useCallback(() => {
|
|
341
341
|
void listRefresh();
|
|
342
342
|
if (!pinnedFetchingRef.current) void pinnedListRefresh();
|
|
343
343
|
}, [listRefresh, pinnedListRefresh]);
|
|
344
344
|
const listFetchNextPage = list.fetchNextPage;
|
|
345
|
-
const fetchNextPage =
|
|
345
|
+
const fetchNextPage = require$$0.useCallback(() => {
|
|
346
346
|
void listFetchNextPage();
|
|
347
347
|
}, [listFetchNextPage]);
|
|
348
|
-
const listedThreadIds =
|
|
348
|
+
const listedThreadIds = require$$0.useMemo(
|
|
349
349
|
() => new Set(list.conversations.map((conversation) => conversation.threadId)),
|
|
350
350
|
[list.conversations]
|
|
351
351
|
);
|
|
352
|
-
const unlistedIndexedThreads =
|
|
352
|
+
const unlistedIndexedThreads = require$$0.useMemo(
|
|
353
353
|
() => index.entries === null ? [] : indexedThreadsToRefreshFor({
|
|
354
354
|
entries: index.entries,
|
|
355
355
|
listedThreadIds,
|
|
@@ -380,15 +380,15 @@ function StatewireThreadListState({
|
|
|
380
380
|
tabShare,
|
|
381
381
|
shareKey: listShareKey
|
|
382
382
|
});
|
|
383
|
-
const selectThread =
|
|
383
|
+
const selectThread = require$$0.useCallback((threadId, options) => {
|
|
384
384
|
if (!threadId) return;
|
|
385
385
|
const isNew = (options == null ? void 0 : options.isNew) === true;
|
|
386
386
|
setActive((current) => current.id === threadId ? current : { id: threadId, isNew });
|
|
387
387
|
}, []);
|
|
388
388
|
const prefetchScope = `${backendUrl}::${principal}::${credentialGeneration}`;
|
|
389
|
-
const prefetchScopeRef =
|
|
389
|
+
const prefetchScopeRef = require$$0.useRef(prefetchScope);
|
|
390
390
|
prefetchScopeRef.current = prefetchScope;
|
|
391
|
-
const prefetcher =
|
|
391
|
+
const prefetcher = require$$0.useMemo(() => {
|
|
392
392
|
if (!snapshotCache) return null;
|
|
393
393
|
const scope = prefetchScope;
|
|
394
394
|
return threadPrefetcher.createThreadPrefetcher({
|
|
@@ -400,26 +400,26 @@ function StatewireThreadListState({
|
|
|
400
400
|
isCurrent: () => prefetchScopeRef.current === scope
|
|
401
401
|
});
|
|
402
402
|
}, [snapshotCache, prefetchScope, backendUrl, getAuth]);
|
|
403
|
-
const activeIdRef =
|
|
403
|
+
const activeIdRef = require$$0.useRef(active.id);
|
|
404
404
|
activeIdRef.current = active.id;
|
|
405
|
-
const prefetchThread =
|
|
405
|
+
const prefetchThread = require$$0.useCallback(
|
|
406
406
|
(threadId) => {
|
|
407
407
|
if (!prefetcher || !threadId || threadId === activeIdRef.current) return;
|
|
408
408
|
prefetcher.prefetch(threadId);
|
|
409
409
|
},
|
|
410
410
|
[prefetcher]
|
|
411
411
|
);
|
|
412
|
-
const newThread =
|
|
412
|
+
const newThread = require$$0.useCallback(() => {
|
|
413
413
|
setActive({ id: mintThreadId.mintThreadId(), isNew: true });
|
|
414
414
|
}, []);
|
|
415
415
|
const isPersisted = data.some((thread) => thread.id === active.id) || indexByThread.has(active.id);
|
|
416
|
-
|
|
416
|
+
require$$0.useEffect(() => {
|
|
417
417
|
if (isPersisted) {
|
|
418
418
|
setActive((current) => current.isNew ? { ...current, isNew: false } : current);
|
|
419
419
|
}
|
|
420
420
|
}, [isPersisted]);
|
|
421
421
|
const titleSource = index.entries !== null ? "index" : "poll";
|
|
422
|
-
const value =
|
|
422
|
+
const value = require$$0.useMemo(
|
|
423
423
|
() => ({
|
|
424
424
|
threads: data,
|
|
425
425
|
isLoading,
|
|
@@ -484,7 +484,7 @@ function StatewireThreadListState({
|
|
|
484
484
|
titleSource
|
|
485
485
|
]
|
|
486
486
|
);
|
|
487
|
-
const live =
|
|
487
|
+
const live = require$$0.useMemo(
|
|
488
488
|
() => ({
|
|
489
489
|
backendUrl,
|
|
490
490
|
getAuth,
|
|
@@ -534,7 +534,7 @@ function AthenaStatewireThreadListProvider({
|
|
|
534
534
|
offlineList,
|
|
535
535
|
children
|
|
536
536
|
}) {
|
|
537
|
-
const [queryClient] =
|
|
537
|
+
const [queryClient] = require$$0.useState(() => new reactQuery.QueryClient());
|
|
538
538
|
offlineSessionList.useOfflineSessionList({ queryClient, offlineList });
|
|
539
539
|
return /* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
540
540
|
StatewireThreadListState,
|
|
@@ -560,7 +560,7 @@ function StatewireThreadTitlePoller() {
|
|
|
560
560
|
var _a;
|
|
561
561
|
const list = useAthenaStatewireThreadList();
|
|
562
562
|
const activeThreadId = threadIdContext.useAthenaStatewireThreadId();
|
|
563
|
-
const hasMessages = react
|
|
563
|
+
const hasMessages = react.useAuiState((s) => {
|
|
564
564
|
var _a2;
|
|
565
565
|
return (((_a2 = s.optional.thread) == null ? void 0 : _a2.messages.length) ?? 0) > 0;
|
|
566
566
|
});
|
|
@@ -568,12 +568,12 @@ function StatewireThreadTitlePoller() {
|
|
|
568
568
|
const entry = list == null ? void 0 : list.threads.find((thread) => thread.id === activeThreadId);
|
|
569
569
|
const title$1 = ((_a = entry == null ? void 0 : entry.title) == null ? void 0 : _a.trim()) ?? "";
|
|
570
570
|
const hasTitle = title$1.length > 0 && !title.isSerializedContentPartsTitle(title$1);
|
|
571
|
-
const visitRef =
|
|
572
|
-
const refreshRef =
|
|
571
|
+
const visitRef = require$$0.useRef(null);
|
|
572
|
+
const refreshRef = require$$0.useRef(list == null ? void 0 : list.refresh);
|
|
573
573
|
refreshRef.current = list == null ? void 0 : list.refresh;
|
|
574
|
-
const fetchingRef =
|
|
574
|
+
const fetchingRef = require$$0.useRef((list == null ? void 0 : list.isFetching) ?? false);
|
|
575
575
|
fetchingRef.current = (list == null ? void 0 : list.isFetching) ?? false;
|
|
576
|
-
|
|
576
|
+
require$$0.useEffect(() => {
|
|
577
577
|
var _a2;
|
|
578
578
|
if (((_a2 = visitRef.current) == null ? void 0 : _a2.threadId) !== activeThreadId) {
|
|
579
579
|
visitRef.current = { threadId: activeThreadId, polled: false };
|