@athenaintel/react 0.42.2 → 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 +225 -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/conversation-list-groups.d.ts +74 -0
- 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 +15 -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 -33
- 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 -33
- 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 +572 -134
- package/dist/agent-runtime/src/use-deep-agent-voice.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-voice.d.ts +137 -10
- package/dist/agent-runtime/src/use-deep-agent-voice.js +514 -76
- 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 +60 -38
- package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingCard.d.ts +24 -4
- package/dist/chat/super-grouping/SuperGroupingCard.js +37 -15
- 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 +97 -37
- package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
- package/dist/chat/super-grouping/ToolTimeline.d.ts +14 -2
- package/dist/chat/super-grouping/ToolTimeline.js +94 -34
- 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 +6 -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/timeline-step.cjs +61 -2
- package/dist/chat/super-grouping/timeline-step.cjs.map +1 -1
- package/dist/chat/super-grouping/timeline-step.d.ts +13 -1
- package/dist/chat/super-grouping/timeline-step.js +61 -2
- package/dist/chat/super-grouping/timeline-step.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 +147 -38
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.d.ts +17 -1
- package/dist/chat-ui/mentions/mention-chip.js +146 -37
- package/dist/chat-ui/mentions/mention-chip.js.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 +140 -0
- package/dist/chat-ui/mentions/use-mention-asset.cjs.map +1 -0
- package/dist/chat-ui/mentions/use-mention-asset.d.ts +16 -0
- package/dist/chat-ui/mentions/use-mention-asset.js +140 -0
- package/dist/chat-ui/mentions/use-mention-asset.js.map +1 -0
- 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 +7 -6
- package/dist/chat-ui/rich-text/chat-link.cjs.map +1 -1
- package/dist/chat-ui/rich-text/chat-link.d.ts +2 -3
- package/dist/chat-ui/rich-text/chat-link.js +6 -5
- package/dist/chat-ui/rich-text/chat-link.js.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 +7 -6
- package/dist/chat-ui/rich-text/chat-node-views.cjs.map +1 -1
- package/dist/chat-ui/rich-text/chat-node-views.js +1 -0
- package/dist/chat-ui/rich-text/chat-node-views.js.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/references/src/tool-option-schemas.d.ts +0 -34
- 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 +55 -51
- package/dist/threads/statewire-thread-list.cjs.map +1 -1
- package/dist/threads/statewire-thread-list.js +6 -2
- package/dist/threads/statewire-thread-list.js.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-summary.cjs +0 -2
- package/dist/tools/tool-summary.cjs.map +1 -1
- package/dist/tools/tool-summary.js +0 -2
- package/dist/tools/tool-summary.js.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,19 +335,21 @@ function StatewireThreadListState({
|
|
|
335
335
|
[activeConversation, favoriteOverrides, titleOverrides, readOverrides, readCoveredUpdatedAt]
|
|
336
336
|
);
|
|
337
337
|
const listRefresh = list.refresh;
|
|
338
|
-
const
|
|
338
|
+
const pinnedFetchingRef = require$$0.useRef(pinnedList.isFetching);
|
|
339
|
+
pinnedFetchingRef.current = pinnedList.isFetching;
|
|
340
|
+
const refresh = require$$0.useCallback(() => {
|
|
339
341
|
void listRefresh();
|
|
340
|
-
void pinnedListRefresh();
|
|
342
|
+
if (!pinnedFetchingRef.current) void pinnedListRefresh();
|
|
341
343
|
}, [listRefresh, pinnedListRefresh]);
|
|
342
344
|
const listFetchNextPage = list.fetchNextPage;
|
|
343
|
-
const fetchNextPage =
|
|
345
|
+
const fetchNextPage = require$$0.useCallback(() => {
|
|
344
346
|
void listFetchNextPage();
|
|
345
347
|
}, [listFetchNextPage]);
|
|
346
|
-
const listedThreadIds =
|
|
348
|
+
const listedThreadIds = require$$0.useMemo(
|
|
347
349
|
() => new Set(list.conversations.map((conversation) => conversation.threadId)),
|
|
348
350
|
[list.conversations]
|
|
349
351
|
);
|
|
350
|
-
const unlistedIndexedThreads =
|
|
352
|
+
const unlistedIndexedThreads = require$$0.useMemo(
|
|
351
353
|
() => index.entries === null ? [] : indexedThreadsToRefreshFor({
|
|
352
354
|
entries: index.entries,
|
|
353
355
|
listedThreadIds,
|
|
@@ -378,15 +380,15 @@ function StatewireThreadListState({
|
|
|
378
380
|
tabShare,
|
|
379
381
|
shareKey: listShareKey
|
|
380
382
|
});
|
|
381
|
-
const selectThread =
|
|
383
|
+
const selectThread = require$$0.useCallback((threadId, options) => {
|
|
382
384
|
if (!threadId) return;
|
|
383
385
|
const isNew = (options == null ? void 0 : options.isNew) === true;
|
|
384
386
|
setActive((current) => current.id === threadId ? current : { id: threadId, isNew });
|
|
385
387
|
}, []);
|
|
386
388
|
const prefetchScope = `${backendUrl}::${principal}::${credentialGeneration}`;
|
|
387
|
-
const prefetchScopeRef =
|
|
389
|
+
const prefetchScopeRef = require$$0.useRef(prefetchScope);
|
|
388
390
|
prefetchScopeRef.current = prefetchScope;
|
|
389
|
-
const prefetcher =
|
|
391
|
+
const prefetcher = require$$0.useMemo(() => {
|
|
390
392
|
if (!snapshotCache) return null;
|
|
391
393
|
const scope = prefetchScope;
|
|
392
394
|
return threadPrefetcher.createThreadPrefetcher({
|
|
@@ -398,26 +400,26 @@ function StatewireThreadListState({
|
|
|
398
400
|
isCurrent: () => prefetchScopeRef.current === scope
|
|
399
401
|
});
|
|
400
402
|
}, [snapshotCache, prefetchScope, backendUrl, getAuth]);
|
|
401
|
-
const activeIdRef =
|
|
403
|
+
const activeIdRef = require$$0.useRef(active.id);
|
|
402
404
|
activeIdRef.current = active.id;
|
|
403
|
-
const prefetchThread =
|
|
405
|
+
const prefetchThread = require$$0.useCallback(
|
|
404
406
|
(threadId) => {
|
|
405
407
|
if (!prefetcher || !threadId || threadId === activeIdRef.current) return;
|
|
406
408
|
prefetcher.prefetch(threadId);
|
|
407
409
|
},
|
|
408
410
|
[prefetcher]
|
|
409
411
|
);
|
|
410
|
-
const newThread =
|
|
412
|
+
const newThread = require$$0.useCallback(() => {
|
|
411
413
|
setActive({ id: mintThreadId.mintThreadId(), isNew: true });
|
|
412
414
|
}, []);
|
|
413
415
|
const isPersisted = data.some((thread) => thread.id === active.id) || indexByThread.has(active.id);
|
|
414
|
-
|
|
416
|
+
require$$0.useEffect(() => {
|
|
415
417
|
if (isPersisted) {
|
|
416
418
|
setActive((current) => current.isNew ? { ...current, isNew: false } : current);
|
|
417
419
|
}
|
|
418
420
|
}, [isPersisted]);
|
|
419
421
|
const titleSource = index.entries !== null ? "index" : "poll";
|
|
420
|
-
const value =
|
|
422
|
+
const value = require$$0.useMemo(
|
|
421
423
|
() => ({
|
|
422
424
|
threads: data,
|
|
423
425
|
isLoading,
|
|
@@ -482,7 +484,7 @@ function StatewireThreadListState({
|
|
|
482
484
|
titleSource
|
|
483
485
|
]
|
|
484
486
|
);
|
|
485
|
-
const live =
|
|
487
|
+
const live = require$$0.useMemo(
|
|
486
488
|
() => ({
|
|
487
489
|
backendUrl,
|
|
488
490
|
getAuth,
|
|
@@ -532,7 +534,7 @@ function AthenaStatewireThreadListProvider({
|
|
|
532
534
|
offlineList,
|
|
533
535
|
children
|
|
534
536
|
}) {
|
|
535
|
-
const [queryClient] =
|
|
537
|
+
const [queryClient] = require$$0.useState(() => new reactQuery.QueryClient());
|
|
536
538
|
offlineSessionList.useOfflineSessionList({ queryClient, offlineList });
|
|
537
539
|
return /* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
538
540
|
StatewireThreadListState,
|
|
@@ -558,7 +560,7 @@ function StatewireThreadTitlePoller() {
|
|
|
558
560
|
var _a;
|
|
559
561
|
const list = useAthenaStatewireThreadList();
|
|
560
562
|
const activeThreadId = threadIdContext.useAthenaStatewireThreadId();
|
|
561
|
-
const hasMessages = react
|
|
563
|
+
const hasMessages = react.useAuiState((s) => {
|
|
562
564
|
var _a2;
|
|
563
565
|
return (((_a2 = s.optional.thread) == null ? void 0 : _a2.messages.length) ?? 0) > 0;
|
|
564
566
|
});
|
|
@@ -566,10 +568,12 @@ function StatewireThreadTitlePoller() {
|
|
|
566
568
|
const entry = list == null ? void 0 : list.threads.find((thread) => thread.id === activeThreadId);
|
|
567
569
|
const title$1 = ((_a = entry == null ? void 0 : entry.title) == null ? void 0 : _a.trim()) ?? "";
|
|
568
570
|
const hasTitle = title$1.length > 0 && !title.isSerializedContentPartsTitle(title$1);
|
|
569
|
-
const visitRef =
|
|
570
|
-
const refreshRef =
|
|
571
|
+
const visitRef = require$$0.useRef(null);
|
|
572
|
+
const refreshRef = require$$0.useRef(list == null ? void 0 : list.refresh);
|
|
571
573
|
refreshRef.current = list == null ? void 0 : list.refresh;
|
|
572
|
-
|
|
574
|
+
const fetchingRef = require$$0.useRef((list == null ? void 0 : list.isFetching) ?? false);
|
|
575
|
+
fetchingRef.current = (list == null ? void 0 : list.isFetching) ?? false;
|
|
576
|
+
require$$0.useEffect(() => {
|
|
573
577
|
var _a2;
|
|
574
578
|
if (((_a2 = visitRef.current) == null ? void 0 : _a2.threadId) !== activeThreadId) {
|
|
575
579
|
visitRef.current = { threadId: activeThreadId, polled: false };
|
|
@@ -582,7 +586,7 @@ function StatewireThreadTitlePoller() {
|
|
|
582
586
|
const startId = setTimeout(() => {
|
|
583
587
|
intervalId = setInterval(() => {
|
|
584
588
|
var _a3;
|
|
585
|
-
|
|
589
|
+
if (!fetchingRef.current) (_a3 = refreshRef.current) == null ? void 0 : _a3.call(refreshRef);
|
|
586
590
|
}, TITLE_POLL_INTERVAL_MS);
|
|
587
591
|
}, TITLE_POLL_DELAY_MS);
|
|
588
592
|
const stopId = setTimeout(() => {
|