@athenaintel/react 0.18.0 → 0.20.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 +195 -7
- package/dist/assets/AssetPanel.cjs +277 -0
- package/dist/assets/AssetPanel.cjs.map +1 -0
- package/dist/assets/AssetPanel.js +277 -0
- package/dist/assets/AssetPanel.js.map +1 -0
- package/dist/assets/AthenaAssetEmbed.cjs +151 -0
- package/dist/assets/AthenaAssetEmbed.cjs.map +1 -0
- package/dist/assets/AthenaAssetEmbed.js +151 -0
- package/dist/assets/AthenaAssetEmbed.js.map +1 -0
- package/dist/assets/AthenaLayout.cjs +69 -0
- package/dist/assets/AthenaLayout.cjs.map +1 -0
- package/dist/assets/AthenaLayout.js +69 -0
- package/dist/assets/AthenaLayout.js.map +1 -0
- package/dist/assets/asset-embed-messages.cjs +39 -0
- package/dist/assets/asset-embed-messages.cjs.map +1 -0
- package/dist/assets/asset-embed-messages.js +39 -0
- package/dist/assets/asset-embed-messages.js.map +1 -0
- package/dist/assets/asset-panel-store.cjs +124 -0
- package/dist/assets/asset-panel-store.cjs.map +1 -0
- package/dist/assets/asset-panel-store.js +124 -0
- package/dist/assets/asset-panel-store.js.map +1 -0
- package/dist/assets/asset-panel-url.cjs +40 -0
- package/dist/assets/asset-panel-url.cjs.map +1 -0
- package/dist/assets/asset-panel-url.js +40 -0
- package/dist/assets/asset-panel-url.js.map +1 -0
- package/dist/assets/use-asset-embed.cjs +362 -0
- package/dist/assets/use-asset-embed.cjs.map +1 -0
- package/dist/assets/use-asset-embed.js +362 -0
- package/dist/assets/use-asset-embed.js.map +1 -0
- package/dist/{AthenaAuthContext-B3AwLA5Z.cjs → auth/AthenaAuthContext.cjs} +5 -4
- package/dist/auth/AthenaAuthContext.cjs.map +1 -0
- package/dist/{AthenaAuthContext-DQsdayH2.js → auth/AthenaAuthContext.js} +3 -3
- package/dist/auth/AthenaAuthContext.js.map +1 -0
- package/dist/auth/AthenaAuthProvider.cjs +141 -0
- package/dist/auth/AthenaAuthProvider.cjs.map +1 -0
- package/dist/auth/AthenaAuthProvider.js +141 -0
- package/dist/auth/AthenaAuthProvider.js.map +1 -0
- package/dist/{auth.cjs → auth/AthenaSSOProvider.cjs} +14 -151
- package/dist/auth/AthenaSSOProvider.cjs.map +1 -0
- package/dist/{auth.js → auth/AthenaSSOProvider.js} +4 -142
- package/dist/auth/AthenaSSOProvider.js.map +1 -0
- package/dist/auth/index.cjs +10 -0
- package/dist/auth/index.cjs.map +1 -0
- package/dist/auth/index.js +10 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/chat/AthenaChat.cjs +753 -0
- package/dist/chat/AthenaChat.cjs.map +1 -0
- package/dist/chat/AthenaChat.d.ts +3 -2
- package/dist/chat/AthenaChat.js +753 -0
- package/dist/chat/AthenaChat.js.map +1 -0
- package/dist/chat/AthenaChatErrorBoundary.cjs +53 -0
- package/dist/chat/AthenaChatErrorBoundary.cjs.map +1 -0
- package/dist/chat/AthenaChatErrorBoundary.js +53 -0
- package/dist/chat/AthenaChatErrorBoundary.js.map +1 -0
- package/dist/chat/StatewireApprovalCard.cjs +171 -0
- package/dist/chat/StatewireApprovalCard.cjs.map +1 -0
- package/dist/chat/StatewireApprovalCard.d.ts +59 -2
- package/dist/chat/StatewireApprovalCard.js +171 -0
- package/dist/chat/StatewireApprovalCard.js.map +1 -0
- package/dist/chat/StatewireClientToolBridge.cjs +50 -0
- package/dist/chat/StatewireClientToolBridge.cjs.map +1 -0
- package/dist/chat/StatewireClientToolBridge.d.ts +3 -3
- package/dist/chat/StatewireClientToolBridge.js +50 -0
- package/dist/chat/StatewireClientToolBridge.js.map +1 -0
- package/dist/chat/StatewireQueuedMessages.cjs +432 -0
- package/dist/chat/StatewireQueuedMessages.cjs.map +1 -0
- package/dist/chat/StatewireQueuedMessages.d.ts +104 -6
- package/dist/chat/StatewireQueuedMessages.js +432 -0
- package/dist/chat/StatewireQueuedMessages.js.map +1 -0
- package/dist/chat/athena-citation-links.cjs +326 -0
- package/dist/chat/athena-citation-links.cjs.map +1 -0
- package/dist/chat/athena-citation-links.js +326 -0
- package/dist/chat/athena-citation-links.js.map +1 -0
- package/dist/chat/run-activity.cjs +28 -0
- package/dist/chat/run-activity.cjs.map +1 -0
- package/dist/chat/run-activity.js +28 -0
- package/dist/chat/run-activity.js.map +1 -0
- package/dist/chat/statewire-approval.d.ts +1 -1
- package/dist/chat/statewire-banners.cjs +83 -0
- package/dist/chat/statewire-banners.cjs.map +1 -0
- package/dist/chat/statewire-banners.js +83 -0
- package/dist/chat/statewire-banners.js.map +1 -0
- package/dist/chat/statewire-client-tools.cjs +73 -0
- package/dist/chat/statewire-client-tools.cjs.map +1 -0
- package/dist/chat/statewire-client-tools.d.ts +15 -21
- package/dist/chat/statewire-client-tools.js +73 -0
- package/dist/chat/statewire-client-tools.js.map +1 -0
- package/dist/chat/super-grouping/CollapsibleGroup.cjs +158 -0
- package/dist/chat/super-grouping/CollapsibleGroup.cjs.map +1 -0
- package/dist/chat/super-grouping/CollapsibleGroup.d.ts +52 -11
- package/dist/chat/super-grouping/CollapsibleGroup.js +158 -0
- package/dist/chat/super-grouping/CollapsibleGroup.js.map +1 -0
- package/dist/chat/super-grouping/SuperGroupingCard.cjs +361 -0
- package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -0
- package/dist/chat/super-grouping/SuperGroupingCard.d.ts +81 -21
- package/dist/chat/super-grouping/SuperGroupingCard.js +361 -0
- package/dist/chat/super-grouping/SuperGroupingCard.js.map +1 -0
- package/dist/chat/super-grouping/activity-timeline.cjs +151 -0
- package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -0
- package/dist/chat/super-grouping/activity-timeline.d.ts +91 -0
- package/dist/chat/super-grouping/activity-timeline.js +151 -0
- package/dist/chat/super-grouping/activity-timeline.js.map +1 -0
- package/dist/chat/super-grouping/grouping-function.cjs +55 -0
- package/dist/chat/super-grouping/grouping-function.cjs.map +1 -0
- package/dist/chat/super-grouping/grouping-function.d.ts +13 -10
- package/dist/chat/super-grouping/grouping-function.js +55 -0
- package/dist/chat/super-grouping/grouping-function.js.map +1 -0
- package/dist/chat/super-grouping/index.cjs +26 -0
- package/dist/chat/super-grouping/index.cjs.map +1 -0
- package/dist/chat/super-grouping/index.d.ts +12 -0
- package/dist/chat/super-grouping/index.js +26 -0
- package/dist/chat/super-grouping/index.js.map +1 -0
- package/dist/chat/super-grouping/toolkit-map.cjs +96 -0
- package/dist/chat/super-grouping/toolkit-map.cjs.map +1 -0
- package/dist/chat/super-grouping/toolkit-map.d.ts +8 -1
- package/dist/chat/super-grouping/toolkit-map.js +96 -0
- package/dist/chat/super-grouping/toolkit-map.js.map +1 -0
- package/dist/chat/tiptap-text.cjs +101 -0
- package/dist/chat/tiptap-text.cjs.map +1 -0
- package/dist/chat/tiptap-text.js +101 -0
- package/dist/chat/tiptap-text.js.map +1 -0
- package/dist/chat/tooltip-icon-button.cjs +32 -0
- package/dist/chat/tooltip-icon-button.cjs.map +1 -0
- package/dist/chat/tooltip-icon-button.js +32 -0
- package/dist/chat/tooltip-icon-button.js.map +1 -0
- package/dist/chat/use-athena-run-live.cjs +23 -0
- package/dist/chat/use-athena-run-live.cjs.map +1 -0
- package/dist/chat/use-athena-run-live.d.ts +10 -0
- package/dist/chat/use-athena-run-live.js +23 -0
- package/dist/chat/use-athena-run-live.js.map +1 -0
- package/dist/chat/use-statewire-approval-request.cjs +46 -0
- package/dist/chat/use-statewire-approval-request.cjs.map +1 -0
- package/dist/chat/use-statewire-approval-request.d.ts +44 -0
- package/dist/chat/use-statewire-approval-request.js +46 -0
- package/dist/chat/use-statewire-approval-request.js.map +1 -0
- package/dist/chat-ui/auth/sign-in-card.cjs +128 -0
- package/dist/chat-ui/auth/sign-in-card.cjs.map +1 -0
- package/dist/chat-ui/auth/sign-in-card.js +128 -0
- package/dist/chat-ui/auth/sign-in-card.js.map +1 -0
- package/dist/chat-ui/composer/composer-action.cjs +11 -0
- package/dist/chat-ui/composer/composer-action.cjs.map +1 -0
- package/dist/chat-ui/composer/composer-action.d.ts +5 -8
- package/dist/chat-ui/composer/composer-action.js +11 -0
- package/dist/chat-ui/composer/composer-action.js.map +1 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.cjs +25 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.cjs.map +1 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.js +25 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.js.map +1 -0
- package/dist/chat-ui/composer/tiptap-composer.cjs +590 -0
- package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -0
- package/dist/chat-ui/composer/tiptap-composer.d.ts +44 -7
- package/dist/chat-ui/composer/tiptap-composer.js +590 -0
- package/dist/chat-ui/composer/tiptap-composer.js.map +1 -0
- package/dist/chat-ui/header/chat-header.cjs +33 -0
- package/dist/chat-ui/header/chat-header.cjs.map +1 -0
- package/dist/chat-ui/header/chat-header.js +33 -0
- package/dist/chat-ui/header/chat-header.js.map +1 -0
- package/dist/chat-ui/header/conversation-history-panel.cjs +369 -0
- package/dist/chat-ui/header/conversation-history-panel.cjs.map +1 -0
- package/dist/chat-ui/header/conversation-history-panel.d.ts +11 -1
- package/dist/chat-ui/header/conversation-history-panel.js +369 -0
- package/dist/chat-ui/header/conversation-history-panel.js.map +1 -0
- package/dist/chat-ui/index.cjs +139 -0
- package/dist/chat-ui/index.cjs.map +1 -0
- package/dist/chat-ui/index.d.ts +11 -4
- package/dist/chat-ui/index.js +139 -0
- package/dist/chat-ui/index.js.map +1 -0
- package/dist/chat-ui/lib/asset-urls.cjs +18 -0
- package/dist/chat-ui/lib/asset-urls.cjs.map +1 -0
- package/dist/chat-ui/lib/asset-urls.js +18 -0
- package/dist/chat-ui/lib/asset-urls.js.map +1 -0
- package/dist/chat-ui/mentions/mention-chip.cjs +208 -0
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -0
- package/dist/chat-ui/mentions/mention-chip.js +208 -0
- package/dist/chat-ui/mentions/mention-chip.js.map +1 -0
- package/dist/chat-ui/mentions/mention-extension.cjs +184 -0
- package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -0
- package/dist/chat-ui/mentions/mention-extension.d.ts +24 -2
- package/dist/chat-ui/mentions/mention-extension.js +184 -0
- package/dist/chat-ui/mentions/mention-extension.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +35 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +35 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +95 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.d.ts +5 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +95 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs +116 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js +116 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs +31 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js +31 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.cjs +27 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.js +27 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +62 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js +62 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs +63 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js +63 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.cjs +11 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.js +11 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.cjs +33 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.js +33 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs +58 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.js +58 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs +81 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.js +81 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.cjs +18 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.js +18 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +123 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +10 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js +123 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.cjs +37 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.js +37 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs +134 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.js +134 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.cjs +91 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.js +91 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs +137 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js +137 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +375 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +16 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js +375 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/types.cjs +9 -0
- package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/types.d.ts +14 -0
- package/dist/chat-ui/mentions/suggestions/data/types.js +9 -0
- package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +173 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +14 -4
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +173 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs +45 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js +45 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.cjs +43 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.js +43 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.cjs +14 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.js +14 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.cjs +48 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.js +48 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +71 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +71 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/shims.d.ts +0 -4
- package/dist/chat-ui/messages/continue-pill.cjs +54 -0
- package/dist/chat-ui/messages/continue-pill.cjs.map +1 -0
- package/dist/chat-ui/messages/continue-pill.js +54 -0
- package/dist/chat-ui/messages/continue-pill.js.map +1 -0
- package/dist/chat-ui/messages/message-actions-config.cjs +12 -0
- package/dist/chat-ui/messages/message-actions-config.cjs.map +1 -0
- package/dist/chat-ui/messages/message-actions-config.js +12 -0
- package/dist/chat-ui/messages/message-actions-config.js.map +1 -0
- package/dist/chat-ui/messages/message-components.cjs +343 -0
- package/dist/chat-ui/messages/message-components.cjs.map +1 -0
- package/dist/chat-ui/messages/message-components.d.ts +13 -1
- package/dist/chat-ui/messages/message-components.js +343 -0
- package/dist/chat-ui/messages/message-components.js.map +1 -0
- package/dist/chat-ui/messages/running-indicator.cjs +49 -0
- package/dist/chat-ui/messages/running-indicator.cjs.map +1 -0
- package/dist/chat-ui/messages/running-indicator.js +49 -0
- package/dist/chat-ui/messages/running-indicator.js.map +1 -0
- package/dist/chat-ui/messages/runtime-message.cjs +65 -0
- package/dist/chat-ui/messages/runtime-message.cjs.map +1 -0
- package/dist/chat-ui/messages/runtime-message.d.ts +2 -3
- package/dist/chat-ui/messages/runtime-message.js +65 -0
- package/dist/chat-ui/messages/runtime-message.js.map +1 -0
- package/dist/chat-ui/messages/statewire-continue-run.cjs +154 -0
- package/dist/chat-ui/messages/statewire-continue-run.cjs.map +1 -0
- package/dist/chat-ui/messages/statewire-continue-run.d.ts +52 -7
- package/dist/chat-ui/messages/statewire-continue-run.js +154 -0
- package/dist/chat-ui/messages/statewire-continue-run.js.map +1 -0
- package/dist/chat-ui/messages/user-edit-composer.cjs +61 -0
- package/dist/chat-ui/messages/user-edit-composer.cjs.map +1 -0
- package/dist/chat-ui/messages/user-edit-composer.d.ts +5 -2
- package/dist/chat-ui/messages/user-edit-composer.js +61 -0
- package/dist/chat-ui/messages/user-edit-composer.js.map +1 -0
- package/dist/chat-ui/messages/voice-delegation-card.cjs +51 -0
- package/dist/chat-ui/messages/voice-delegation-card.cjs.map +1 -0
- package/dist/chat-ui/messages/voice-delegation-card.d.ts +26 -0
- package/dist/chat-ui/messages/voice-delegation-card.js +51 -0
- package/dist/chat-ui/messages/voice-delegation-card.js.map +1 -0
- package/dist/chat-ui/statewire.cjs +39 -0
- package/dist/chat-ui/statewire.cjs.map +1 -0
- package/dist/chat-ui/statewire.d.ts +19 -0
- package/dist/chat-ui/statewire.js +39 -0
- package/dist/chat-ui/statewire.js.map +1 -0
- package/dist/chat-ui/thread/chat-composer-dock.cjs +37 -0
- package/dist/chat-ui/thread/chat-composer-dock.cjs.map +1 -0
- package/dist/chat-ui/thread/chat-composer-dock.js +37 -0
- package/dist/chat-ui/thread/chat-composer-dock.js.map +1 -0
- package/dist/chat-ui/thread/chat-thread-shell.cjs +102 -0
- package/dist/chat-ui/thread/chat-thread-shell.cjs.map +1 -0
- package/dist/chat-ui/thread/chat-thread-shell.d.ts +7 -1
- package/dist/chat-ui/thread/chat-thread-shell.js +102 -0
- package/dist/chat-ui/thread/chat-thread-shell.js.map +1 -0
- package/dist/chat-ui/thread/composer-send-or-stop.cjs +75 -0
- package/dist/chat-ui/thread/composer-send-or-stop.cjs.map +1 -0
- package/dist/chat-ui/thread/composer-send-or-stop.d.ts +0 -6
- package/dist/chat-ui/thread/composer-send-or-stop.js +75 -0
- package/dist/chat-ui/thread/composer-send-or-stop.js.map +1 -0
- package/dist/chat-ui/thread/statewire-history-edge.cjs +134 -0
- package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -0
- package/dist/chat-ui/thread/statewire-history-edge.d.ts +52 -0
- package/dist/chat-ui/thread/statewire-history-edge.js +134 -0
- package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -0
- package/dist/{collab.cjs → collab/client.cjs} +6 -166
- package/dist/collab/client.cjs.map +1 -0
- package/dist/{collab.js → collab/client.js} +5 -164
- package/dist/collab/client.js.map +1 -0
- package/dist/collab/close-policy.cjs +14 -0
- package/dist/collab/close-policy.cjs.map +1 -0
- package/dist/collab/close-policy.js +14 -0
- package/dist/collab/close-policy.js.map +1 -0
- package/dist/collab/index.cjs +17 -0
- package/dist/collab/index.cjs.map +1 -0
- package/dist/collab/index.js +17 -0
- package/dist/collab/index.js.map +1 -0
- package/dist/collab/mint.cjs +59 -0
- package/dist/collab/mint.cjs.map +1 -0
- package/dist/collab/mint.js +59 -0
- package/dist/collab/mint.js.map +1 -0
- package/dist/collab/react.cjs +58 -0
- package/dist/collab/react.cjs.map +1 -0
- package/dist/collab/react.js +58 -0
- package/dist/collab/react.js.map +1 -0
- package/dist/collab/shape.cjs +45 -0
- package/dist/collab/shape.cjs.map +1 -0
- package/dist/collab/shape.js +45 -0
- package/dist/collab/shape.js.map +1 -0
- package/dist/composer/AttachmentContext.cjs +40 -0
- package/dist/composer/AttachmentContext.cjs.map +1 -0
- package/dist/composer/AttachmentContext.js +40 -0
- package/dist/composer/AttachmentContext.js.map +1 -0
- package/dist/composer/ComposerAttachmentPreview.cjs +39 -0
- package/dist/composer/ComposerAttachmentPreview.cjs.map +1 -0
- package/dist/composer/ComposerAttachmentPreview.js +39 -0
- package/dist/composer/ComposerAttachmentPreview.js.map +1 -0
- package/dist/composer/ComposerDropZone.cjs +61 -0
- package/dist/composer/ComposerDropZone.cjs.map +1 -0
- package/dist/composer/ComposerDropZone.d.ts +1 -1
- package/dist/composer/ComposerDropZone.js +61 -0
- package/dist/composer/ComposerDropZone.js.map +1 -0
- package/dist/composer/ComposerQuotePreview.cjs +42 -0
- package/dist/composer/ComposerQuotePreview.cjs.map +1 -0
- package/dist/composer/ComposerQuotePreview.js +42 -0
- package/dist/composer/ComposerQuotePreview.js.map +1 -0
- package/dist/composer/FileUploadButton.cjs +65 -0
- package/dist/composer/FileUploadButton.cjs.map +1 -0
- package/dist/composer/FileUploadButton.d.ts +1 -1
- package/dist/composer/FileUploadButton.js +65 -0
- package/dist/composer/FileUploadButton.js.map +1 -0
- package/dist/composer/QuoteContext.cjs +68 -0
- package/dist/composer/QuoteContext.cjs.map +1 -0
- package/dist/composer/QuoteContext.js +68 -0
- package/dist/composer/QuoteContext.js.map +1 -0
- package/dist/composer/build-composed-message.cjs +25 -0
- package/dist/composer/build-composed-message.cjs.map +1 -0
- package/dist/composer/build-composed-message.js +25 -0
- package/dist/composer/build-composed-message.js.map +1 -0
- package/dist/composer/clipboard.cjs +62 -0
- package/dist/composer/clipboard.cjs.map +1 -0
- package/dist/composer/clipboard.d.ts +27 -3
- package/dist/composer/clipboard.js +62 -0
- package/dist/composer/clipboard.js.map +1 -0
- package/dist/composer/useAppendToComposer.cjs +21 -0
- package/dist/composer/useAppendToComposer.cjs.map +1 -0
- package/dist/composer/useAppendToComposer.js +21 -0
- package/dist/composer/useAppendToComposer.js.map +1 -0
- package/dist/composer/useAttachFiles.cjs +40 -0
- package/dist/composer/useAttachFiles.cjs.map +1 -0
- package/dist/composer/useAttachFiles.d.ts +24 -0
- package/dist/composer/useAttachFiles.js +40 -0
- package/dist/composer/useAttachFiles.js.map +1 -0
- package/dist/composer/useComposerAttachment.cjs +25 -0
- package/dist/composer/useComposerAttachment.cjs.map +1 -0
- package/dist/composer/useComposerAttachment.js +25 -0
- package/dist/composer/useComposerAttachment.js.map +1 -0
- package/dist/composer/useFileUpload.cjs +123 -0
- package/dist/composer/useFileUpload.cjs.map +1 -0
- package/dist/composer/useFileUpload.js +123 -0
- package/dist/composer/useFileUpload.js.map +1 -0
- package/dist/composer/useSendMessage.cjs +22 -0
- package/dist/composer/useSendMessage.cjs.map +1 -0
- package/dist/composer/useSendMessage.js +22 -0
- package/dist/composer/useSendMessage.js.map +1 -0
- package/dist/diagnostics/athena-diagnostics.cjs +329 -0
- package/dist/diagnostics/athena-diagnostics.cjs.map +1 -0
- package/dist/diagnostics/athena-diagnostics.d.ts +1 -1
- package/dist/diagnostics/athena-diagnostics.js +329 -0
- package/dist/diagnostics/athena-diagnostics.js.map +1 -0
- package/dist/diagnostics/errors.cjs +89 -0
- package/dist/diagnostics/errors.cjs.map +1 -0
- package/dist/diagnostics/errors.d.ts +4 -0
- package/dist/diagnostics/errors.js +89 -0
- package/dist/diagnostics/errors.js.map +1 -0
- package/dist/diagnostics/useAthenaDiagnostics.cjs +16 -0
- package/dist/diagnostics/useAthenaDiagnostics.cjs.map +1 -0
- package/dist/diagnostics/useAthenaDiagnostics.js +16 -0
- package/dist/diagnostics/useAthenaDiagnostics.js.map +1 -0
- package/dist/index.cjs +283 -30852
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +27 -10
- package/dist/index.js +155 -30711
- package/dist/index.js.map +1 -1
- package/dist/lib/athena-urls.cjs +194 -0
- package/dist/lib/athena-urls.cjs.map +1 -0
- package/dist/lib/athena-urls.d.ts +20 -5
- package/dist/lib/athena-urls.js +194 -0
- package/dist/lib/athena-urls.js.map +1 -0
- package/dist/lib/posthog/before-send.cjs +58 -0
- package/dist/lib/posthog/before-send.cjs.map +1 -0
- package/dist/lib/posthog/before-send.js +58 -0
- package/dist/lib/posthog/before-send.js.map +1 -0
- package/dist/lib/posthog/capture-gate.cjs +322 -0
- package/dist/lib/posthog/capture-gate.cjs.map +1 -0
- package/dist/lib/posthog/capture-gate.js +322 -0
- package/dist/lib/posthog/capture-gate.js.map +1 -0
- package/dist/lib/posthog/wrap-posthog-client.cjs +163 -0
- package/dist/lib/posthog/wrap-posthog-client.cjs.map +1 -0
- package/dist/lib/posthog/wrap-posthog-client.js +163 -0
- package/dist/lib/posthog/wrap-posthog-client.js.map +1 -0
- package/dist/lib/utils.cjs +12 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.js +9 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs +77 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js +77 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs +181 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js +181 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js.map +1 -0
- package/dist/packages/agent-runtime/src/asset-attachment.cjs +19 -0
- package/dist/packages/agent-runtime/src/asset-attachment.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/asset-attachment.js +19 -0
- package/dist/packages/agent-runtime/src/asset-attachment.js.map +1 -0
- package/dist/packages/agent-runtime/src/auth-denial.cjs +28 -0
- package/dist/packages/agent-runtime/src/auth-denial.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/auth-denial.js +28 -0
- package/dist/packages/agent-runtime/src/auth-denial.js.map +1 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.cjs +270 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.js +270 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.js.map +1 -0
- package/dist/packages/agent-runtime/src/client-tools.cjs +137 -0
- package/dist/packages/agent-runtime/src/client-tools.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/client-tools.js +137 -0
- package/dist/packages/agent-runtime/src/client-tools.js.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-index.cjs +80 -0
- package/dist/packages/agent-runtime/src/conversation-index.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-index.js +80 -0
- package/dist/packages/agent-runtime/src/conversation-index.js.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-list.cjs +86 -0
- package/dist/packages/agent-runtime/src/conversation-list.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-list.js +86 -0
- package/dist/packages/agent-runtime/src/conversation-list.js.map +1 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs +55 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js +55 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -0
- package/dist/packages/agent-runtime/src/edit-command.cjs +89 -0
- package/dist/packages/agent-runtime/src/edit-command.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/edit-command.js +89 -0
- package/dist/packages/agent-runtime/src/edit-command.js.map +1 -0
- package/dist/packages/agent-runtime/src/errors.cjs +95 -0
- package/dist/packages/agent-runtime/src/errors.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/errors.js +95 -0
- package/dist/packages/agent-runtime/src/errors.js.map +1 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs +236 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.js +236 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.js.map +1 -0
- package/dist/packages/agent-runtime/src/interrupts.cjs +117 -0
- package/dist/packages/agent-runtime/src/interrupts.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/interrupts.js +117 -0
- package/dist/packages/agent-runtime/src/interrupts.js.map +1 -0
- package/dist/packages/agent-runtime/src/message-author.cjs +31 -0
- package/dist/packages/agent-runtime/src/message-author.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/message-author.js +31 -0
- package/dist/packages/agent-runtime/src/message-author.js.map +1 -0
- package/dist/packages/agent-runtime/src/message-window.cjs +85 -0
- package/dist/packages/agent-runtime/src/message-window.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/message-window.js +85 -0
- package/dist/packages/agent-runtime/src/message-window.js.map +1 -0
- package/dist/packages/agent-runtime/src/messages.cjs +433 -0
- package/dist/packages/agent-runtime/src/messages.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/messages.js +433 -0
- package/dist/packages/agent-runtime/src/messages.js.map +1 -0
- package/dist/packages/agent-runtime/src/model-context.cjs +13 -0
- package/dist/packages/agent-runtime/src/model-context.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/model-context.js +13 -0
- package/dist/packages/agent-runtime/src/model-context.js.map +1 -0
- package/dist/packages/agent-runtime/src/optimistic-content.cjs +17 -0
- package/dist/packages/agent-runtime/src/optimistic-content.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/optimistic-content.js +17 -0
- package/dist/packages/agent-runtime/src/optimistic-content.js.map +1 -0
- package/dist/packages/agent-runtime/src/protocol.cjs +33 -0
- package/dist/packages/agent-runtime/src/protocol.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/protocol.js +33 -0
- package/dist/packages/agent-runtime/src/protocol.js.map +1 -0
- package/dist/packages/agent-runtime/src/queue.cjs +67 -0
- package/dist/packages/agent-runtime/src/queue.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/queue.js +67 -0
- package/dist/packages/agent-runtime/src/queue.js.map +1 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs +47 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js +47 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -0
- package/dist/packages/agent-runtime/src/runtime-messages.cjs +187 -0
- package/dist/packages/agent-runtime/src/runtime-messages.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/runtime-messages.js +187 -0
- package/dist/packages/agent-runtime/src/runtime-messages.js.map +1 -0
- package/dist/packages/agent-runtime/src/send-recovery.cjs +128 -0
- package/dist/packages/agent-runtime/src/send-recovery.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/send-recovery.js +128 -0
- package/dist/packages/agent-runtime/src/send-recovery.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs +249 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.js +249 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-state.cjs +16 -0
- package/dist/packages/agent-runtime/src/statewire-state.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-state.js +16 -0
- package/dist/packages/agent-runtime/src/statewire-state.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.cjs +41 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.js +41 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-transport.cjs +6 -0
- package/dist/packages/agent-runtime/src/statewire-transport.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-transport.js +6 -0
- package/dist/packages/agent-runtime/src/statewire-transport.js.map +1 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.cjs +214 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.js +214 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-extras.cjs +38 -0
- package/dist/packages/agent-runtime/src/thread-extras.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-extras.js +38 -0
- package/dist/packages/agent-runtime/src/thread-extras.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs +90 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.js +90 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-status.cjs +49 -0
- package/dist/packages/agent-runtime/src/thread-status.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-status.js +49 -0
- package/dist/packages/agent-runtime/src/thread-status.js.map +1 -0
- package/dist/packages/agent-runtime/src/tool-metadata.cjs +1802 -0
- package/dist/packages/agent-runtime/src/tool-metadata.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/tool-metadata.js +1802 -0
- package/dist/packages/agent-runtime/src/tool-metadata.js.map +1 -0
- package/dist/packages/agent-runtime/src/tool-outputs.cjs +46 -0
- package/dist/packages/agent-runtime/src/tool-outputs.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/tool-outputs.js +46 -0
- package/dist/packages/agent-runtime/src/tool-outputs.js.map +1 -0
- package/dist/packages/agent-runtime/src/tool-result.cjs +151 -0
- package/dist/packages/agent-runtime/src/tool-result.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/tool-result.js +151 -0
- package/dist/packages/agent-runtime/src/tool-result.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.cjs +139 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.js +139 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs +28 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js +28 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs +138 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js +138 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs +387 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.js +387 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs +133 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js +133 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js.map +1 -0
- package/dist/packages/agent-runtime/src/voice-presentation.cjs +37 -0
- package/dist/packages/agent-runtime/src/voice-presentation.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/voice-presentation.js +37 -0
- package/dist/packages/agent-runtime/src/voice-presentation.js.map +1 -0
- package/dist/packages/react/package.json.cjs +9 -0
- package/dist/packages/react/package.json.cjs.map +1 -0
- package/dist/packages/react/package.json.js +9 -0
- package/dist/packages/react/package.json.js.map +1 -0
- package/dist/{AthenaContext-B1QMhIP-.cjs → provider/AthenaContext.cjs} +5 -4
- package/dist/provider/AthenaContext.cjs.map +1 -0
- package/dist/{AthenaContext-MOslgOmE.js → provider/AthenaContext.js} +3 -3
- package/dist/provider/AthenaContext.js.map +1 -0
- package/dist/provider/AthenaProvider.cjs +403 -0
- package/dist/provider/AthenaProvider.cjs.map +1 -0
- package/dist/provider/AthenaProvider.d.ts +4 -2
- package/dist/provider/AthenaProvider.js +403 -0
- package/dist/provider/AthenaProvider.js.map +1 -0
- package/dist/provider/PostHogProvider.cjs +81 -0
- package/dist/provider/PostHogProvider.cjs.map +1 -0
- package/dist/provider/PostHogProvider.js +59 -0
- package/dist/provider/PostHogProvider.js.map +1 -0
- package/dist/provider/config.d.ts +17 -9
- package/dist/provider/statewire-lifecycle-context.cjs +10 -0
- package/dist/provider/statewire-lifecycle-context.cjs.map +1 -0
- package/dist/provider/statewire-lifecycle-context.js +10 -0
- package/dist/provider/statewire-lifecycle-context.js.map +1 -0
- package/dist/provider/statewire-window-context.cjs +10 -0
- package/dist/provider/statewire-window-context.cjs.map +1 -0
- package/dist/provider/statewire-window-context.d.ts +12 -0
- package/dist/provider/statewire-window-context.js +10 -0
- package/dist/provider/statewire-window-context.js.map +1 -0
- package/dist/runtime/auth.cjs +309 -0
- package/dist/runtime/auth.cjs.map +1 -0
- package/dist/runtime/auth.d.ts +19 -18
- package/dist/runtime/auth.js +309 -0
- package/dist/runtime/auth.js.map +1 -0
- package/dist/runtime/statewire-auth-headers.cjs +18 -0
- package/dist/runtime/statewire-auth-headers.cjs.map +1 -0
- package/dist/runtime/statewire-auth-headers.d.ts +38 -0
- package/dist/runtime/statewire-auth-headers.js +18 -0
- package/dist/runtime/statewire-auth-headers.js.map +1 -0
- package/dist/runtime/statewire-lifecycle.cjs +67 -0
- package/dist/runtime/statewire-lifecycle.cjs.map +1 -0
- package/dist/runtime/statewire-lifecycle.d.ts +25 -0
- package/dist/runtime/statewire-lifecycle.js +67 -0
- package/dist/runtime/statewire-lifecycle.js.map +1 -0
- package/dist/runtime/statewire-run-config.cjs +68 -0
- package/dist/runtime/statewire-run-config.cjs.map +1 -0
- package/dist/runtime/statewire-run-config.js +68 -0
- package/dist/runtime/statewire-run-config.js.map +1 -0
- package/dist/runtime/statewire-session-key.cjs +11 -0
- package/dist/runtime/statewire-session-key.cjs.map +1 -0
- package/dist/runtime/statewire-session-key.d.ts +13 -0
- package/dist/runtime/statewire-session-key.js +11 -0
- package/dist/runtime/statewire-session-key.js.map +1 -0
- package/dist/runtime/useAthenaStatewireRuntime.cjs +179 -0
- package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -0
- package/dist/runtime/useAthenaStatewireRuntime.d.ts +36 -5
- package/dist/runtime/useAthenaStatewireRuntime.js +180 -0
- package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/theme/index.cjs +182 -0
- package/dist/theme/index.cjs.map +1 -0
- package/dist/theme/index.js +182 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/threads/ThreadList.cjs +55 -0
- package/dist/threads/ThreadList.cjs.map +1 -0
- package/dist/threads/ThreadList.js +55 -0
- package/dist/threads/ThreadList.js.map +1 -0
- package/dist/threads/api.cjs +208 -0
- package/dist/threads/api.cjs.map +1 -0
- package/dist/threads/api.js +208 -0
- package/dist/threads/api.js.map +1 -0
- package/dist/threads/conversation-list-fetcher.cjs +70 -0
- package/dist/threads/conversation-list-fetcher.cjs.map +1 -0
- package/dist/threads/conversation-list-fetcher.js +70 -0
- package/dist/threads/conversation-list-fetcher.js.map +1 -0
- package/dist/threads/mint-thread-id.cjs +7 -0
- package/dist/threads/mint-thread-id.cjs.map +1 -0
- package/dist/threads/mint-thread-id.d.ts +8 -0
- package/dist/threads/mint-thread-id.js +7 -0
- package/dist/threads/mint-thread-id.js.map +1 -0
- package/dist/threads/statewire-thread-list.cjs +231 -0
- package/dist/threads/statewire-thread-list.cjs.map +1 -0
- package/dist/threads/statewire-thread-list.d.ts +20 -4
- package/dist/threads/statewire-thread-list.js +231 -0
- package/dist/threads/statewire-thread-list.js.map +1 -0
- package/dist/threads/thread-id-context.cjs +22 -0
- package/dist/threads/thread-id-context.cjs.map +1 -0
- package/dist/threads/thread-id-context.d.ts +9 -0
- package/dist/threads/thread-id-context.js +22 -0
- package/dist/threads/thread-id-context.js.map +1 -0
- package/dist/threads/title.cjs +95 -0
- package/dist/threads/title.cjs.map +1 -0
- package/dist/threads/title.js +95 -0
- package/dist/threads/title.js.map +1 -0
- package/dist/threads/use-rest-conversation-history.cjs +79 -0
- package/dist/threads/use-rest-conversation-history.cjs.map +1 -0
- package/dist/threads/use-rest-conversation-history.js +79 -0
- package/dist/threads/use-rest-conversation-history.js.map +1 -0
- package/dist/threads/use-statewire-conversation-history.cjs +243 -0
- package/dist/threads/use-statewire-conversation-history.cjs.map +1 -0
- package/dist/threads/use-statewire-conversation-history.js +243 -0
- package/dist/threads/use-statewire-conversation-history.js.map +1 -0
- package/dist/threads/useAthenaThreadManager.cjs +24 -0
- package/dist/threads/useAthenaThreadManager.cjs.map +1 -0
- package/dist/threads/useAthenaThreadManager.js +24 -0
- package/dist/threads/useAthenaThreadManager.js.map +1 -0
- package/dist/toolkits/index.cjs +279 -0
- package/dist/toolkits/index.cjs.map +1 -0
- package/dist/toolkits/index.js +279 -0
- package/dist/toolkits/index.js.map +1 -0
- package/dist/tools/NestedPtcMessages.cjs +46 -0
- package/dist/tools/NestedPtcMessages.cjs.map +1 -0
- package/dist/tools/NestedPtcMessages.js +46 -0
- package/dist/tools/NestedPtcMessages.js.map +1 -0
- package/dist/tools/append-document-tool-ui.cjs +145 -0
- package/dist/tools/append-document-tool-ui.cjs.map +1 -0
- package/dist/tools/append-document-tool-ui.js +145 -0
- package/dist/tools/append-document-tool-ui.js.map +1 -0
- package/dist/tools/asset-utils.cjs +16 -0
- package/dist/tools/asset-utils.cjs.map +1 -0
- package/dist/tools/asset-utils.js +16 -0
- package/dist/tools/asset-utils.js.map +1 -0
- package/dist/tools/auto-open-tools.cjs +121 -0
- package/dist/tools/auto-open-tools.cjs.map +1 -0
- package/dist/tools/auto-open-tools.js +121 -0
- package/dist/tools/auto-open-tools.js.map +1 -0
- package/dist/tools/file-tool-uis.cjs +108 -0
- package/dist/tools/file-tool-uis.cjs.map +1 -0
- package/dist/tools/file-tool-uis.js +108 -0
- package/dist/tools/file-tool-uis.js.map +1 -0
- package/dist/tools/index.cjs +56 -0
- package/dist/tools/index.cjs.map +1 -0
- package/dist/tools/index.d.ts +15 -0
- package/dist/tools/index.js +56 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/misc-tool-uis.cjs +54 -0
- package/dist/tools/misc-tool-uis.cjs.map +1 -0
- package/dist/tools/misc-tool-uis.d.ts +2 -0
- package/dist/tools/misc-tool-uis.js +54 -0
- package/dist/tools/misc-tool-uis.js.map +1 -0
- package/dist/tools/primitives.cjs +166 -0
- package/dist/tools/primitives.cjs.map +1 -0
- package/dist/tools/primitives.d.ts +41 -0
- package/dist/tools/primitives.js +166 -0
- package/dist/tools/primitives.js.map +1 -0
- package/dist/tools/read-asset-tool-ui.cjs +284 -0
- package/dist/tools/read-asset-tool-ui.cjs.map +1 -0
- package/dist/tools/read-asset-tool-ui.js +284 -0
- package/dist/tools/read-asset-tool-ui.js.map +1 -0
- package/dist/tools/todo-plan-store.cjs +88 -0
- package/dist/tools/todo-plan-store.cjs.map +1 -0
- package/dist/tools/todo-plan-store.js +88 -0
- package/dist/tools/todo-plan-store.js.map +1 -0
- package/dist/tools/tool-fallback.cjs +667 -0
- package/dist/tools/tool-fallback.cjs.map +1 -0
- package/dist/tools/tool-fallback.d.ts +78 -6
- package/dist/tools/tool-fallback.js +667 -0
- package/dist/tools/tool-fallback.js.map +1 -0
- package/dist/tools/tool-icons.cjs +61 -0
- package/dist/tools/tool-icons.cjs.map +1 -0
- package/dist/tools/tool-icons.d.ts +10 -0
- package/dist/tools/tool-icons.js +61 -0
- package/dist/tools/tool-icons.js.map +1 -0
- package/dist/tools/tool-uis.cjs +3049 -0
- package/dist/tools/tool-uis.cjs.map +1 -0
- package/dist/tools/tool-uis.d.ts +1 -23
- package/dist/tools/tool-uis.js +3049 -0
- package/dist/tools/tool-uis.js.map +1 -0
- package/dist/tools/voice-update-tool-ui.cjs +89 -0
- package/dist/tools/voice-update-tool-ui.cjs.map +1 -0
- package/dist/tools/voice-update-tool-ui.d.ts +27 -0
- package/dist/tools/voice-update-tool-ui.js +89 -0
- package/dist/tools/voice-update-tool-ui.js.map +1 -0
- package/dist/tools/write-todos-tool-ui.cjs +270 -0
- package/dist/tools/write-todos-tool-ui.cjs.map +1 -0
- package/dist/tools/write-todos-tool-ui.js +270 -0
- package/dist/tools/write-todos-tool-ui.js.map +1 -0
- package/dist/ui/button.cjs +57 -0
- package/dist/ui/button.cjs.map +1 -0
- package/dist/ui/button.js +57 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/collapsible.cjs +17 -0
- package/dist/ui/collapsible.cjs.map +1 -0
- package/dist/ui/collapsible.js +17 -0
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/tooltip.cjs +48 -0
- package/dist/ui/tooltip.cjs.map +1 -0
- package/dist/ui/tooltip.js +48 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/version.cjs +6 -0
- package/dist/version.cjs.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +35 -19
- package/dist/AthenaAuthContext-B3AwLA5Z.cjs.map +0 -1
- package/dist/AthenaAuthContext-DQsdayH2.js.map +0 -1
- package/dist/AthenaContext-B1QMhIP-.cjs.map +0 -1
- package/dist/AthenaContext-MOslgOmE.js.map +0 -1
- package/dist/auth.cjs.map +0 -1
- package/dist/auth.js.map +0 -1
- package/dist/chat/ComposerEditorContext.d.ts +0 -36
- package/dist/chat/super-grouping/tool-status-labels.d.ts +0 -1
- package/dist/chat/tiptap-composer.d.ts +0 -7
- package/dist/chat-ui.cjs +0 -2667
- package/dist/chat-ui.cjs.map +0 -1
- package/dist/chat-ui.js +0 -2668
- package/dist/chat-ui.js.map +0 -1
- package/dist/collab.cjs.map +0 -1
- package/dist/collab.js.map +0 -1
- package/dist/mentions/composer-keybinds.d.ts +0 -5
- package/dist/mentions/mention-extension.d.ts +0 -6
- package/dist/mentions/mention-icons.d.ts +0 -4
- package/dist/mentions/mention-node-view.d.ts +0 -2
- package/dist/mentions/mention-suggestion-list.d.ts +0 -14
- package/dist/mentions/mention-suggestion-popup.d.ts +0 -15
- package/dist/mentions/mention-suggestions-extension.d.ts +0 -11
- package/dist/mentions/mention-types.d.ts +0 -21
- package/dist/mentions/mention-utils.d.ts +0 -23
- package/dist/mentions/use-mention-suggestions.d.ts +0 -29
- package/dist/use-rest-conversation-history-Bs5qn5G3.js +0 -37322
- package/dist/use-rest-conversation-history-Bs5qn5G3.js.map +0 -1
- package/dist/use-rest-conversation-history-Dm0rdQgT.cjs +0 -37358
- package/dist/use-rest-conversation-history-Dm0rdQgT.cjs.map +0 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const store = require("@tanstack/store");
|
|
4
|
+
const react = require("react");
|
|
5
|
+
function getCurrentScope(state) {
|
|
6
|
+
const lastEntry = state.scopeStack[state.scopeStack.length - 1];
|
|
7
|
+
return (lastEntry == null ? void 0 : lastEntry.scope) ?? "root";
|
|
8
|
+
}
|
|
9
|
+
function getSelectedIndex(state) {
|
|
10
|
+
const lastEntry = state.scopeStack[state.scopeStack.length - 1];
|
|
11
|
+
return (lastEntry == null ? void 0 : lastEntry.selectedIndex) ?? 0;
|
|
12
|
+
}
|
|
13
|
+
function useMenuNavigation() {
|
|
14
|
+
const [store$1] = react.useState(() => {
|
|
15
|
+
const baseStore = new store.Store({
|
|
16
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
17
|
+
query: "",
|
|
18
|
+
isActive: false
|
|
19
|
+
});
|
|
20
|
+
const navigationStore = baseStore;
|
|
21
|
+
navigationStore.navigateTo = (scope, currentSelectedIndex, options) => {
|
|
22
|
+
const state = baseStore.state;
|
|
23
|
+
const updatedStack = [...state.scopeStack];
|
|
24
|
+
if (updatedStack.length > 0) {
|
|
25
|
+
updatedStack[updatedStack.length - 1] = {
|
|
26
|
+
...updatedStack[updatedStack.length - 1],
|
|
27
|
+
selectedIndex: currentSelectedIndex
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const newStack = [
|
|
31
|
+
...updatedStack,
|
|
32
|
+
{
|
|
33
|
+
scope,
|
|
34
|
+
selectedIndex: 0,
|
|
35
|
+
breadcrumbLabel: options == null ? void 0 : options.breadcrumbLabel,
|
|
36
|
+
parentScope: options == null ? void 0 : options.parentScope
|
|
37
|
+
}
|
|
38
|
+
];
|
|
39
|
+
baseStore.setState((prev) => ({
|
|
40
|
+
...prev,
|
|
41
|
+
scopeStack: newStack,
|
|
42
|
+
query: ""
|
|
43
|
+
}));
|
|
44
|
+
};
|
|
45
|
+
navigationStore.navigateBack = () => {
|
|
46
|
+
const state = baseStore.state;
|
|
47
|
+
if (state.scopeStack.length <= 1) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const newStack = state.scopeStack.slice(0, -1);
|
|
51
|
+
baseStore.setState((prev) => ({
|
|
52
|
+
...prev,
|
|
53
|
+
scopeStack: newStack,
|
|
54
|
+
query: ""
|
|
55
|
+
}));
|
|
56
|
+
};
|
|
57
|
+
navigationStore.setQuery = (query) => {
|
|
58
|
+
baseStore.setState((prev) => ({ ...prev, query }));
|
|
59
|
+
};
|
|
60
|
+
navigationStore.open = () => {
|
|
61
|
+
baseStore.setState(() => ({
|
|
62
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
63
|
+
query: "",
|
|
64
|
+
isActive: true
|
|
65
|
+
}));
|
|
66
|
+
};
|
|
67
|
+
navigationStore.close = () => {
|
|
68
|
+
baseStore.setState(() => ({
|
|
69
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
70
|
+
query: "",
|
|
71
|
+
isActive: false
|
|
72
|
+
}));
|
|
73
|
+
};
|
|
74
|
+
return navigationStore;
|
|
75
|
+
});
|
|
76
|
+
return store$1;
|
|
77
|
+
}
|
|
78
|
+
exports.getCurrentScope = getCurrentScope;
|
|
79
|
+
exports.getSelectedIndex = getSelectedIndex;
|
|
80
|
+
exports.useMenuNavigation = useMenuNavigation;
|
|
81
|
+
//# sourceMappingURL=use-menu-navigation.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-menu-navigation.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/components/use-menu-navigation.ts"],"sourcesContent":["import { Store } from '@tanstack/store';\nimport { useState } from 'react';\nimport type { MenuScope } from '../data/types';\n\n/**\n * Stack entry with scope and selected item position\n *\n * When navigating forward, we save the current selectedIndex so we can restore\n * it when navigating back (like browser history).\n */\nexport interface ScopeStackEntry {\n scope: MenuScope;\n selectedIndex: number; // Position of selected item when we left this scope\n breadcrumbLabel?: string; // Display name for this scope, when it isn't a known category\n parentScope?: MenuScope; // Scope we navigated from\n}\n\n/**\n * Menu navigation state - tracks current navigation context\n *\n * This is the \"current UI state\" that changes as user navigates and types.\n * Cleared when menu opens/closes.\n *\n * Uses a navigation stack for proper back button behavior:\n * - Forward navigation: push to stack (with current selectedIndex)\n * - Back navigation: pop from stack (restore selectedIndex)\n * - Current scope: last item in stack\n * - Parent scope: second-to-last item in stack\n */\nexport interface MenuNavigationState {\n // Navigation stack (browser-like history)\n // Example: [{ scope: 'root', selectedIndex: 2 }, { scope: 'folder_123', selectedIndex: 0 }]\n // Current scope = scopeStack[scopeStack.length - 1].scope\n // Parent scope = scopeStack[scopeStack.length - 2].scope\n scopeStack: ScopeStackEntry[];\n\n // Current search query\n query: string;\n\n // Is menu currently active?\n isActive: boolean;\n}\n\n/**\n * Menu navigation store with helper methods\n */\nexport interface MenuNavigationStore extends Store<MenuNavigationState> {\n navigateTo: (\n scope: MenuScope,\n currentSelectedIndex: number,\n options?: { breadcrumbLabel?: string; parentScope?: MenuScope },\n ) => void;\n navigateBack: () => void;\n setQuery: (query: string) => void;\n open: () => void;\n close: () => void;\n}\n\n/**\n * Get current scope from state\n */\nexport function getCurrentScope(state: MenuNavigationState): MenuScope {\n const lastEntry = state.scopeStack[state.scopeStack.length - 1];\n return lastEntry?.scope ?? \"root\";\n}\n\n/**\n * Get parent scope from state (for source inheritance)\n */\nexport function getParentScope(state: MenuNavigationState): MenuScope | undefined {\n if (state.scopeStack.length <= 1) return undefined;\n const parentEntry = state.scopeStack[state.scopeStack.length - 2];\n return parentEntry?.scope;\n}\n\n/**\n * Get selected index from current scope stack entry\n */\nexport function getSelectedIndex(state: MenuNavigationState): number {\n const lastEntry = state.scopeStack[state.scopeStack.length - 1];\n return lastEntry?.selectedIndex ?? 0;\n}\n\n/**\n * useMenuNavigation - Creates per-editor navigation state\n *\n * This is a UI concern - each editor instance gets its own navigation state.\n *\n * Returns a TanStack Store with navigation helper methods.\n */\nexport function useMenuNavigation(): MenuNavigationStore {\n const [store] = useState(() => {\n const baseStore = new Store<MenuNavigationState>({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: false,\n });\n\n // Extend store with navigation methods\n const navigationStore = baseStore as MenuNavigationStore;\n\n navigationStore.navigateTo = (\n scope: MenuScope,\n currentSelectedIndex: number,\n options?: { breadcrumbLabel?: string; parentScope?: MenuScope },\n ) => {\n const state = baseStore.state;\n\n // Save current selectedIndex in the current entry before navigating forward\n const updatedStack = [...state.scopeStack];\n if (updatedStack.length > 0) {\n updatedStack[updatedStack.length - 1] = {\n ...updatedStack[updatedStack.length - 1],\n selectedIndex: currentSelectedIndex,\n };\n }\n\n // Push new scope with selectedIndex = 0 (start at top of new scope)\n const newStack = [\n ...updatedStack,\n {\n scope,\n selectedIndex: 0,\n breadcrumbLabel: options?.breadcrumbLabel,\n parentScope: options?.parentScope,\n },\n ];\n\n baseStore.setState((prev) => ({\n ...prev,\n scopeStack: newStack,\n query: '',\n }));\n };\n\n navigationStore.navigateBack = () => {\n const state = baseStore.state;\n\n if (state.scopeStack.length <= 1) {\n return;\n }\n\n const newStack = state.scopeStack.slice(0, -1);\n\n baseStore.setState((prev) => ({\n ...prev,\n scopeStack: newStack,\n query: '',\n }));\n };\n\n navigationStore.setQuery = (query: string) => {\n baseStore.setState((prev) => ({ ...prev, query }));\n };\n\n navigationStore.open = () => {\n baseStore.setState(() => ({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: true,\n }));\n };\n\n navigationStore.close = () => {\n baseStore.setState(() => ({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: false,\n }));\n };\n\n return navigationStore;\n });\n\n return store;\n}\n"],"names":["store","useState","Store"],"mappings":";;;;AA6DO,SAAS,gBAAgB,OAAuC;AACrE,QAAM,YAAY,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC;AAC9D,UAAO,uCAAW,UAAS;AAC7B;AAcO,SAAS,iBAAiB,OAAoC;AACnE,QAAM,YAAY,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC;AAC9D,UAAO,uCAAW,kBAAiB;AACrC;AASO,SAAS,oBAAyC;AACvD,QAAM,CAACA,OAAK,IAAIC,MAAAA,SAAS,MAAM;AAC7B,UAAM,YAAY,IAAIC,YAA2B;AAAA,MAC/C,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,MAChD,OAAO;AAAA,MACP,UAAU;AAAA,IAAA,CACX;AAGD,UAAM,kBAAkB;AAExB,oBAAgB,aAAa,CAC3B,OACA,sBACA,YACG;AACH,YAAM,QAAQ,UAAU;AAGxB,YAAM,eAAe,CAAC,GAAG,MAAM,UAAU;AACzC,UAAI,aAAa,SAAS,GAAG;AAC3B,qBAAa,aAAa,SAAS,CAAC,IAAI;AAAA,UACtC,GAAG,aAAa,aAAa,SAAS,CAAC;AAAA,UACvC,eAAe;AAAA,QAAA;AAAA,MAEnB;AAGA,YAAM,WAAW;AAAA,QACf,GAAG;AAAA,QACH;AAAA,UACE;AAAA,UACA,eAAe;AAAA,UACf,iBAAiB,mCAAS;AAAA,UAC1B,aAAa,mCAAS;AAAA,QAAA;AAAA,MACxB;AAGF,gBAAU,SAAS,CAAC,UAAU;AAAA,QAC5B,GAAG;AAAA,QACH,YAAY;AAAA,QACZ,OAAO;AAAA,MAAA,EACP;AAAA,IACJ;AAEA,oBAAgB,eAAe,MAAM;AACnC,YAAM,QAAQ,UAAU;AAExB,UAAI,MAAM,WAAW,UAAU,GAAG;AAChC;AAAA,MACF;AAEA,YAAM,WAAW,MAAM,WAAW,MAAM,GAAG,EAAE;AAE7C,gBAAU,SAAS,CAAC,UAAU;AAAA,QAC5B,GAAG;AAAA,QACH,YAAY;AAAA,QACZ,OAAO;AAAA,MAAA,EACP;AAAA,IACJ;AAEA,oBAAgB,WAAW,CAAC,UAAkB;AAC5C,gBAAU,SAAS,CAAC,UAAU,EAAE,GAAG,MAAM,QAAQ;AAAA,IACnD;AAEA,oBAAgB,OAAO,MAAM;AAC3B,gBAAU,SAAS,OAAO;AAAA,QACxB,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,QAChD,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,EACV;AAAA,IACJ;AAEA,oBAAgB,QAAQ,MAAM;AAC5B,gBAAU,SAAS,OAAO;AAAA,QACxB,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,QAChD,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,EACV;AAAA,IACJ;AAEA,WAAO;AAAA,EACT,CAAC;AAED,SAAOF;AACT;;;;"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Store } from "@tanstack/store";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
function getCurrentScope(state) {
|
|
4
|
+
const lastEntry = state.scopeStack[state.scopeStack.length - 1];
|
|
5
|
+
return (lastEntry == null ? void 0 : lastEntry.scope) ?? "root";
|
|
6
|
+
}
|
|
7
|
+
function getSelectedIndex(state) {
|
|
8
|
+
const lastEntry = state.scopeStack[state.scopeStack.length - 1];
|
|
9
|
+
return (lastEntry == null ? void 0 : lastEntry.selectedIndex) ?? 0;
|
|
10
|
+
}
|
|
11
|
+
function useMenuNavigation() {
|
|
12
|
+
const [store] = useState(() => {
|
|
13
|
+
const baseStore = new Store({
|
|
14
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
15
|
+
query: "",
|
|
16
|
+
isActive: false
|
|
17
|
+
});
|
|
18
|
+
const navigationStore = baseStore;
|
|
19
|
+
navigationStore.navigateTo = (scope, currentSelectedIndex, options) => {
|
|
20
|
+
const state = baseStore.state;
|
|
21
|
+
const updatedStack = [...state.scopeStack];
|
|
22
|
+
if (updatedStack.length > 0) {
|
|
23
|
+
updatedStack[updatedStack.length - 1] = {
|
|
24
|
+
...updatedStack[updatedStack.length - 1],
|
|
25
|
+
selectedIndex: currentSelectedIndex
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const newStack = [
|
|
29
|
+
...updatedStack,
|
|
30
|
+
{
|
|
31
|
+
scope,
|
|
32
|
+
selectedIndex: 0,
|
|
33
|
+
breadcrumbLabel: options == null ? void 0 : options.breadcrumbLabel,
|
|
34
|
+
parentScope: options == null ? void 0 : options.parentScope
|
|
35
|
+
}
|
|
36
|
+
];
|
|
37
|
+
baseStore.setState((prev) => ({
|
|
38
|
+
...prev,
|
|
39
|
+
scopeStack: newStack,
|
|
40
|
+
query: ""
|
|
41
|
+
}));
|
|
42
|
+
};
|
|
43
|
+
navigationStore.navigateBack = () => {
|
|
44
|
+
const state = baseStore.state;
|
|
45
|
+
if (state.scopeStack.length <= 1) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const newStack = state.scopeStack.slice(0, -1);
|
|
49
|
+
baseStore.setState((prev) => ({
|
|
50
|
+
...prev,
|
|
51
|
+
scopeStack: newStack,
|
|
52
|
+
query: ""
|
|
53
|
+
}));
|
|
54
|
+
};
|
|
55
|
+
navigationStore.setQuery = (query) => {
|
|
56
|
+
baseStore.setState((prev) => ({ ...prev, query }));
|
|
57
|
+
};
|
|
58
|
+
navigationStore.open = () => {
|
|
59
|
+
baseStore.setState(() => ({
|
|
60
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
61
|
+
query: "",
|
|
62
|
+
isActive: true
|
|
63
|
+
}));
|
|
64
|
+
};
|
|
65
|
+
navigationStore.close = () => {
|
|
66
|
+
baseStore.setState(() => ({
|
|
67
|
+
scopeStack: [{ scope: "root", selectedIndex: 0 }],
|
|
68
|
+
query: "",
|
|
69
|
+
isActive: false
|
|
70
|
+
}));
|
|
71
|
+
};
|
|
72
|
+
return navigationStore;
|
|
73
|
+
});
|
|
74
|
+
return store;
|
|
75
|
+
}
|
|
76
|
+
export {
|
|
77
|
+
getCurrentScope,
|
|
78
|
+
getSelectedIndex,
|
|
79
|
+
useMenuNavigation
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=use-menu-navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-menu-navigation.js","sources":["../../../../../src/chat-ui/mentions/suggestions/components/use-menu-navigation.ts"],"sourcesContent":["import { Store } from '@tanstack/store';\nimport { useState } from 'react';\nimport type { MenuScope } from '../data/types';\n\n/**\n * Stack entry with scope and selected item position\n *\n * When navigating forward, we save the current selectedIndex so we can restore\n * it when navigating back (like browser history).\n */\nexport interface ScopeStackEntry {\n scope: MenuScope;\n selectedIndex: number; // Position of selected item when we left this scope\n breadcrumbLabel?: string; // Display name for this scope, when it isn't a known category\n parentScope?: MenuScope; // Scope we navigated from\n}\n\n/**\n * Menu navigation state - tracks current navigation context\n *\n * This is the \"current UI state\" that changes as user navigates and types.\n * Cleared when menu opens/closes.\n *\n * Uses a navigation stack for proper back button behavior:\n * - Forward navigation: push to stack (with current selectedIndex)\n * - Back navigation: pop from stack (restore selectedIndex)\n * - Current scope: last item in stack\n * - Parent scope: second-to-last item in stack\n */\nexport interface MenuNavigationState {\n // Navigation stack (browser-like history)\n // Example: [{ scope: 'root', selectedIndex: 2 }, { scope: 'folder_123', selectedIndex: 0 }]\n // Current scope = scopeStack[scopeStack.length - 1].scope\n // Parent scope = scopeStack[scopeStack.length - 2].scope\n scopeStack: ScopeStackEntry[];\n\n // Current search query\n query: string;\n\n // Is menu currently active?\n isActive: boolean;\n}\n\n/**\n * Menu navigation store with helper methods\n */\nexport interface MenuNavigationStore extends Store<MenuNavigationState> {\n navigateTo: (\n scope: MenuScope,\n currentSelectedIndex: number,\n options?: { breadcrumbLabel?: string; parentScope?: MenuScope },\n ) => void;\n navigateBack: () => void;\n setQuery: (query: string) => void;\n open: () => void;\n close: () => void;\n}\n\n/**\n * Get current scope from state\n */\nexport function getCurrentScope(state: MenuNavigationState): MenuScope {\n const lastEntry = state.scopeStack[state.scopeStack.length - 1];\n return lastEntry?.scope ?? \"root\";\n}\n\n/**\n * Get parent scope from state (for source inheritance)\n */\nexport function getParentScope(state: MenuNavigationState): MenuScope | undefined {\n if (state.scopeStack.length <= 1) return undefined;\n const parentEntry = state.scopeStack[state.scopeStack.length - 2];\n return parentEntry?.scope;\n}\n\n/**\n * Get selected index from current scope stack entry\n */\nexport function getSelectedIndex(state: MenuNavigationState): number {\n const lastEntry = state.scopeStack[state.scopeStack.length - 1];\n return lastEntry?.selectedIndex ?? 0;\n}\n\n/**\n * useMenuNavigation - Creates per-editor navigation state\n *\n * This is a UI concern - each editor instance gets its own navigation state.\n *\n * Returns a TanStack Store with navigation helper methods.\n */\nexport function useMenuNavigation(): MenuNavigationStore {\n const [store] = useState(() => {\n const baseStore = new Store<MenuNavigationState>({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: false,\n });\n\n // Extend store with navigation methods\n const navigationStore = baseStore as MenuNavigationStore;\n\n navigationStore.navigateTo = (\n scope: MenuScope,\n currentSelectedIndex: number,\n options?: { breadcrumbLabel?: string; parentScope?: MenuScope },\n ) => {\n const state = baseStore.state;\n\n // Save current selectedIndex in the current entry before navigating forward\n const updatedStack = [...state.scopeStack];\n if (updatedStack.length > 0) {\n updatedStack[updatedStack.length - 1] = {\n ...updatedStack[updatedStack.length - 1],\n selectedIndex: currentSelectedIndex,\n };\n }\n\n // Push new scope with selectedIndex = 0 (start at top of new scope)\n const newStack = [\n ...updatedStack,\n {\n scope,\n selectedIndex: 0,\n breadcrumbLabel: options?.breadcrumbLabel,\n parentScope: options?.parentScope,\n },\n ];\n\n baseStore.setState((prev) => ({\n ...prev,\n scopeStack: newStack,\n query: '',\n }));\n };\n\n navigationStore.navigateBack = () => {\n const state = baseStore.state;\n\n if (state.scopeStack.length <= 1) {\n return;\n }\n\n const newStack = state.scopeStack.slice(0, -1);\n\n baseStore.setState((prev) => ({\n ...prev,\n scopeStack: newStack,\n query: '',\n }));\n };\n\n navigationStore.setQuery = (query: string) => {\n baseStore.setState((prev) => ({ ...prev, query }));\n };\n\n navigationStore.open = () => {\n baseStore.setState(() => ({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: true,\n }));\n };\n\n navigationStore.close = () => {\n baseStore.setState(() => ({\n scopeStack: [{ scope: 'root', selectedIndex: 0 }],\n query: '',\n isActive: false,\n }));\n };\n\n return navigationStore;\n });\n\n return store;\n}\n"],"names":[],"mappings":";;AA6DO,SAAS,gBAAgB,OAAuC;AACrE,QAAM,YAAY,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC;AAC9D,UAAO,uCAAW,UAAS;AAC7B;AAcO,SAAS,iBAAiB,OAAoC;AACnE,QAAM,YAAY,MAAM,WAAW,MAAM,WAAW,SAAS,CAAC;AAC9D,UAAO,uCAAW,kBAAiB;AACrC;AASO,SAAS,oBAAyC;AACvD,QAAM,CAAC,KAAK,IAAI,SAAS,MAAM;AAC7B,UAAM,YAAY,IAAI,MAA2B;AAAA,MAC/C,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,MAChD,OAAO;AAAA,MACP,UAAU;AAAA,IAAA,CACX;AAGD,UAAM,kBAAkB;AAExB,oBAAgB,aAAa,CAC3B,OACA,sBACA,YACG;AACH,YAAM,QAAQ,UAAU;AAGxB,YAAM,eAAe,CAAC,GAAG,MAAM,UAAU;AACzC,UAAI,aAAa,SAAS,GAAG;AAC3B,qBAAa,aAAa,SAAS,CAAC,IAAI;AAAA,UACtC,GAAG,aAAa,aAAa,SAAS,CAAC;AAAA,UACvC,eAAe;AAAA,QAAA;AAAA,MAEnB;AAGA,YAAM,WAAW;AAAA,QACf,GAAG;AAAA,QACH;AAAA,UACE;AAAA,UACA,eAAe;AAAA,UACf,iBAAiB,mCAAS;AAAA,UAC1B,aAAa,mCAAS;AAAA,QAAA;AAAA,MACxB;AAGF,gBAAU,SAAS,CAAC,UAAU;AAAA,QAC5B,GAAG;AAAA,QACH,YAAY;AAAA,QACZ,OAAO;AAAA,MAAA,EACP;AAAA,IACJ;AAEA,oBAAgB,eAAe,MAAM;AACnC,YAAM,QAAQ,UAAU;AAExB,UAAI,MAAM,WAAW,UAAU,GAAG;AAChC;AAAA,MACF;AAEA,YAAM,WAAW,MAAM,WAAW,MAAM,GAAG,EAAE;AAE7C,gBAAU,SAAS,CAAC,UAAU;AAAA,QAC5B,GAAG;AAAA,QACH,YAAY;AAAA,QACZ,OAAO;AAAA,MAAA,EACP;AAAA,IACJ;AAEA,oBAAgB,WAAW,CAAC,UAAkB;AAC5C,gBAAU,SAAS,CAAC,UAAU,EAAE,GAAG,MAAM,QAAQ;AAAA,IACnD;AAEA,oBAAgB,OAAO,MAAM;AAC3B,gBAAU,SAAS,OAAO;AAAA,QACxB,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,QAChD,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,EACV;AAAA,IACJ;AAEA,oBAAgB,QAAQ,MAAM;AAC5B,gBAAU,SAAS,OAAO;AAAA,QACxB,YAAY,CAAC,EAAE,OAAO,QAAQ,eAAe,GAAG;AAAA,QAChD,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,EACV;AAAA,IACJ;AAEA,WAAO;AAAA,EACT,CAAC;AAED,SAAO;AACT;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function clearTextAfterTrigger(editor) {
|
|
4
|
+
const { state } = editor;
|
|
5
|
+
const { from: cursorPos } = state.selection;
|
|
6
|
+
const backwardText = state.doc.textBetween(0, cursorPos, void 0, "");
|
|
7
|
+
const triggerIndex = backwardText.lastIndexOf("@");
|
|
8
|
+
if (triggerIndex === -1) return;
|
|
9
|
+
const offset = backwardText.length - triggerIndex;
|
|
10
|
+
const from = cursorPos - offset + 1;
|
|
11
|
+
const to = cursorPos;
|
|
12
|
+
if (from < to) {
|
|
13
|
+
const tr = state.tr.deleteRange(from, to);
|
|
14
|
+
editor.view.dispatch(tr);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.clearTextAfterTrigger = clearTextAfterTrigger;
|
|
18
|
+
//# sourceMappingURL=utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/components/utils.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core';\n\n/**\n * Clear text after @ trigger\n *\n * When navigating in the menu, we want to clear the typed query\n * but keep the @ trigger symbol.\n */\nexport function clearTextAfterTrigger(editor: Editor): void {\n const { state } = editor;\n const { from: cursorPos } = state.selection;\n const backwardText = state.doc.textBetween(0, cursorPos, undefined, '\\ufffc');\n const triggerIndex = backwardText.lastIndexOf('@');\n\n if (triggerIndex === -1) return;\n\n const offset = backwardText.length - triggerIndex;\n const from = cursorPos - offset + 1; // +1 to keep the @ symbol\n const to = cursorPos;\n\n if (from < to) {\n // Delete text after @ but keep the @ symbol\n const tr = state.tr.deleteRange(from, to);\n editor.view.dispatch(tr);\n }\n}\n"],"names":[],"mappings":";;AAQO,SAAS,sBAAsB,QAAsB;AAC1D,QAAM,EAAE,UAAU;AAClB,QAAM,EAAE,MAAM,UAAA,IAAc,MAAM;AAClC,QAAM,eAAe,MAAM,IAAI,YAAY,GAAG,WAAW,QAAW,GAAQ;AAC5E,QAAM,eAAe,aAAa,YAAY,GAAG;AAEjD,MAAI,iBAAiB,GAAI;AAEzB,QAAM,SAAS,aAAa,SAAS;AACrC,QAAM,OAAO,YAAY,SAAS;AAClC,QAAM,KAAK;AAEX,MAAI,OAAO,IAAI;AAEb,UAAM,KAAK,MAAM,GAAG,YAAY,MAAM,EAAE;AACxC,WAAO,KAAK,SAAS,EAAE;AAAA,EACzB;AACF;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
function clearTextAfterTrigger(editor) {
|
|
2
|
+
const { state } = editor;
|
|
3
|
+
const { from: cursorPos } = state.selection;
|
|
4
|
+
const backwardText = state.doc.textBetween(0, cursorPos, void 0, "");
|
|
5
|
+
const triggerIndex = backwardText.lastIndexOf("@");
|
|
6
|
+
if (triggerIndex === -1) return;
|
|
7
|
+
const offset = backwardText.length - triggerIndex;
|
|
8
|
+
const from = cursorPos - offset + 1;
|
|
9
|
+
const to = cursorPos;
|
|
10
|
+
if (from < to) {
|
|
11
|
+
const tr = state.tr.deleteRange(from, to);
|
|
12
|
+
editor.view.dispatch(tr);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
clearTextAfterTrigger
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/chat-ui/mentions/suggestions/components/utils.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core';\n\n/**\n * Clear text after @ trigger\n *\n * When navigating in the menu, we want to clear the typed query\n * but keep the @ trigger symbol.\n */\nexport function clearTextAfterTrigger(editor: Editor): void {\n const { state } = editor;\n const { from: cursorPos } = state.selection;\n const backwardText = state.doc.textBetween(0, cursorPos, undefined, '\\ufffc');\n const triggerIndex = backwardText.lastIndexOf('@');\n\n if (triggerIndex === -1) return;\n\n const offset = backwardText.length - triggerIndex;\n const from = cursorPos - offset + 1; // +1 to keep the @ symbol\n const to = cursorPos;\n\n if (from < to) {\n // Delete text after @ but keep the @ symbol\n const tr = state.tr.deleteRange(from, to);\n editor.view.dispatch(tr);\n }\n}\n"],"names":[],"mappings":"AAQO,SAAS,sBAAsB,QAAsB;AAC1D,QAAM,EAAE,UAAU;AAClB,QAAM,EAAE,MAAM,UAAA,IAAc,MAAM;AAClC,QAAM,eAAe,MAAM,IAAI,YAAY,GAAG,WAAW,QAAW,GAAQ;AAC5E,QAAM,eAAe,aAAa,YAAY,GAAG;AAEjD,MAAI,iBAAiB,GAAI;AAEzB,QAAM,SAAS,aAAa,SAAS;AACrC,QAAM,OAAO,YAAY,SAAS;AAClC,QAAM,KAAK;AAEX,MAAI,OAAO,IAAI;AAEb,UAAM,KAAK,MAAM,GAAG,YAAY,MAAM,EAAE;AACxC,WAAO,KAAK,SAAS,EAAE;AAAA,EACzB;AACF;"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const react = require("react");
|
|
4
|
+
function mentionRequestInit(auth) {
|
|
5
|
+
if (auth.accessToken) {
|
|
6
|
+
return { headers: { Authorization: `Bearer ${auth.accessToken}` } };
|
|
7
|
+
}
|
|
8
|
+
if (auth.apiKey) return { headers: { "X-API-KEY": auth.apiKey } };
|
|
9
|
+
if (auth.credentials) return { headers: {}, credentials: auth.credentials };
|
|
10
|
+
throw new Error("MentionAuthCtx needs either an accessToken or an apiKey");
|
|
11
|
+
}
|
|
12
|
+
const MentionAuthCtx = react.createContext(null);
|
|
13
|
+
function useMentionAuth() {
|
|
14
|
+
const ctx = react.useContext(MentionAuthCtx);
|
|
15
|
+
if (!ctx) throw new Error("MentionAuthCtx not provided");
|
|
16
|
+
return ctx;
|
|
17
|
+
}
|
|
18
|
+
async function fetchGraphQL(auth, query, variables = {}) {
|
|
19
|
+
var _a;
|
|
20
|
+
const url = `${auth.backendUrl.replace(/\/+$/, "")}/graphql`;
|
|
21
|
+
const { headers, credentials } = mentionRequestInit(auth);
|
|
22
|
+
const response = await fetch(url, {
|
|
23
|
+
method: "POST",
|
|
24
|
+
headers: {
|
|
25
|
+
"Content-Type": "application/json",
|
|
26
|
+
...headers
|
|
27
|
+
},
|
|
28
|
+
...credentials ? { credentials } : {},
|
|
29
|
+
body: JSON.stringify({ query, variables })
|
|
30
|
+
});
|
|
31
|
+
if (!response.ok) {
|
|
32
|
+
throw new Error(`GraphQL HTTP ${response.status}: ${response.statusText}`);
|
|
33
|
+
}
|
|
34
|
+
const result = await response.json();
|
|
35
|
+
if ((_a = result.errors) == null ? void 0 : _a.length) {
|
|
36
|
+
throw new Error(`GraphQL error: ${result.errors[0].message}`);
|
|
37
|
+
}
|
|
38
|
+
return result.data;
|
|
39
|
+
}
|
|
40
|
+
const MENTION_ASSET_FIELDS = `
|
|
41
|
+
id
|
|
42
|
+
title
|
|
43
|
+
athenaOriginalType
|
|
44
|
+
athenaConvertedType
|
|
45
|
+
parentFolderId
|
|
46
|
+
updatedAt
|
|
47
|
+
isFavorited
|
|
48
|
+
isArchived
|
|
49
|
+
isHidden
|
|
50
|
+
`;
|
|
51
|
+
const SIMPLE_SEARCH_QUERY = `
|
|
52
|
+
query SimpleSearch($input: SimpleSearchRequestInput!) {
|
|
53
|
+
simpleSearch(input: $input) {
|
|
54
|
+
assets {
|
|
55
|
+
${MENTION_ASSET_FIELDS}
|
|
56
|
+
}
|
|
57
|
+
totalCount
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
`;
|
|
61
|
+
const PAGINATED_ASSETS_QUERY = `
|
|
62
|
+
query GetPaginatedAssetsForWorkspace(
|
|
63
|
+
$limit: Int!
|
|
64
|
+
$offset: Int!
|
|
65
|
+
$parentFolderId: String
|
|
66
|
+
$filterTypes: [String!]
|
|
67
|
+
$filterColumns: ColumnFilter
|
|
68
|
+
) {
|
|
69
|
+
getPaginatedAssetsForWorkspace(
|
|
70
|
+
limit: $limit
|
|
71
|
+
offset: $offset
|
|
72
|
+
parentFolderId: $parentFolderId
|
|
73
|
+
filterTypes: $filterTypes
|
|
74
|
+
filterColumns: $filterColumns
|
|
75
|
+
) {
|
|
76
|
+
${MENTION_ASSET_FIELDS}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
`;
|
|
80
|
+
const WORKSPACE_MEMBERS_QUERY = `
|
|
81
|
+
query GetUsersInWorkspace($workspaceId: String!) {
|
|
82
|
+
getUsersInWorkspace(workspaceId: $workspaceId) {
|
|
83
|
+
id
|
|
84
|
+
email
|
|
85
|
+
firstName
|
|
86
|
+
lastName
|
|
87
|
+
isAdmin
|
|
88
|
+
avatarUrl
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
`;
|
|
92
|
+
const TOOL_CATALOG_QUERY = `
|
|
93
|
+
query MentionToolCatalog {
|
|
94
|
+
getToolkitToToolsMapping {
|
|
95
|
+
tools {
|
|
96
|
+
id
|
|
97
|
+
name
|
|
98
|
+
description
|
|
99
|
+
icon
|
|
100
|
+
adminOnly
|
|
101
|
+
isMentionable
|
|
102
|
+
}
|
|
103
|
+
toolkits {
|
|
104
|
+
name
|
|
105
|
+
displayName
|
|
106
|
+
description
|
|
107
|
+
icon
|
|
108
|
+
onlyAdmin
|
|
109
|
+
hideFromMenu
|
|
110
|
+
isMentionable
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
`;
|
|
115
|
+
exports.MentionAuthCtx = MentionAuthCtx;
|
|
116
|
+
exports.PAGINATED_ASSETS_QUERY = PAGINATED_ASSETS_QUERY;
|
|
117
|
+
exports.SIMPLE_SEARCH_QUERY = SIMPLE_SEARCH_QUERY;
|
|
118
|
+
exports.TOOL_CATALOG_QUERY = TOOL_CATALOG_QUERY;
|
|
119
|
+
exports.WORKSPACE_MEMBERS_QUERY = WORKSPACE_MEMBERS_QUERY;
|
|
120
|
+
exports.fetchGraphQL = fetchGraphQL;
|
|
121
|
+
exports.mentionRequestInit = mentionRequestInit;
|
|
122
|
+
exports.useMentionAuth = useMentionAuth;
|
|
123
|
+
//# sourceMappingURL=api-client.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/data/api-client.ts"],"sourcesContent":["/**\n * API client for mention data fetching.\n *\n * Wraps raw fetch() with GraphQL support. Hosts authenticate with either a\n * bearer token (Chrome extension) or a workspace API key (Microsoft 365\n * add-in); agora's /graphql accepts both.\n */\n\nimport { createContext, useContext } from \"react\";\n\n// ── Auth context ──\n\nexport interface MentionAuthContext {\n backendUrl: string;\n appUrl?: string;\n /** Bearer credential; hosts without one authenticate with `apiKey`. */\n accessToken?: string;\n apiKey?: string;\n /**\n * With neither credential, ride the browser's same-origin session cookie\n * instead of failing — the SDK's AthenaChat, whose REST helpers make the\n * same choice for a host that configured no token and no API key. Hosts\n * that always hold a credential leave this unset so an accidental anonymous\n * query fails loudly.\n */\n credentials?: \"include\";\n workspaceId?: string;\n userId?: string;\n}\n\n/** Credential headers (or the cookie lane) for a mention fetch. */\nexport function mentionRequestInit(\n auth: MentionAuthContext,\n): Pick<RequestInit, \"headers\" | \"credentials\"> {\n if (auth.accessToken) {\n return { headers: { Authorization: `Bearer ${auth.accessToken}` } };\n }\n if (auth.apiKey) return { headers: { \"X-API-KEY\": auth.apiKey } };\n if (auth.credentials) return { headers: {}, credentials: auth.credentials };\n throw new Error(\"MentionAuthCtx needs either an accessToken or an apiKey\");\n}\n\nexport const MentionAuthCtx = createContext<MentionAuthContext | null>(null);\n\nexport function useMentionAuth(): MentionAuthContext {\n const ctx = useContext(MentionAuthCtx);\n if (!ctx) throw new Error(\"MentionAuthCtx not provided\");\n return ctx;\n}\n\n// ── GraphQL client ──\n\nexport async function fetchGraphQL<T = any>(\n auth: MentionAuthContext,\n query: string,\n variables: Record<string, any> = {},\n): Promise<T> {\n const url = `${auth.backendUrl.replace(/\\/+$/, \"\")}/graphql`;\n const { headers, credentials } = mentionRequestInit(auth);\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n ...(credentials ? { credentials } : {}),\n body: JSON.stringify({ query, variables }),\n });\n\n if (!response.ok) {\n throw new Error(`GraphQL HTTP ${response.status}: ${response.statusText}`);\n }\n\n const result = await response.json();\n if (result.errors?.length) {\n throw new Error(`GraphQL error: ${result.errors[0].message}`);\n }\n\n return result.data as T;\n}\n\n// ── GraphQL Queries ──\n\n/**\n * Lightweight asset fragment for mention menu items.\n * Only fetches fields needed for display + navigation.\n */\nconst MENTION_ASSET_FIELDS = `\n id\n title\n athenaOriginalType\n athenaConvertedType\n parentFolderId\n updatedAt\n isFavorited\n isArchived\n isHidden\n`;\n\nexport const SIMPLE_SEARCH_QUERY = `\n query SimpleSearch($input: SimpleSearchRequestInput!) {\n simpleSearch(input: $input) {\n assets {\n ${MENTION_ASSET_FIELDS}\n }\n totalCount\n }\n }\n`;\n\nexport const PAGINATED_ASSETS_QUERY = `\n query GetPaginatedAssetsForWorkspace(\n $limit: Int!\n $offset: Int!\n $parentFolderId: String\n $filterTypes: [String!]\n $filterColumns: ColumnFilter\n ) {\n getPaginatedAssetsForWorkspace(\n limit: $limit\n offset: $offset\n parentFolderId: $parentFolderId\n filterTypes: $filterTypes\n filterColumns: $filterColumns\n ) {\n ${MENTION_ASSET_FIELDS}\n }\n }\n`;\n\nexport const WORKSPACE_MEMBERS_QUERY = `\n query GetUsersInWorkspace($workspaceId: String!) {\n getUsersInWorkspace(workspaceId: $workspaceId) {\n id\n email\n firstName\n lastName\n isAdmin\n avatarUrl\n }\n }\n`;\n\nexport const TOOL_CATALOG_QUERY = `\n query MentionToolCatalog {\n getToolkitToToolsMapping {\n tools {\n id\n name\n description\n icon\n adminOnly\n isMentionable\n }\n toolkits {\n name\n displayName\n description\n icon\n onlyAdmin\n hideFromMenu\n isMentionable\n }\n }\n }\n`;\n\n// ── Response types ──\n\nexport interface ToolCatalogTool {\n id: string;\n name: string;\n description: string | null;\n icon: string;\n adminOnly: boolean;\n isMentionable: boolean;\n}\n\nexport interface ToolCatalogToolkit {\n name: string;\n displayName: string;\n description: string;\n icon: string;\n onlyAdmin: boolean;\n hideFromMenu: boolean;\n isMentionable: boolean;\n}\n\nexport interface ToolCatalogResult {\n getToolkitToToolsMapping: {\n tools: ToolCatalogTool[];\n toolkits: ToolCatalogToolkit[];\n };\n}\n\nexport interface AssetResult {\n id: string;\n title: string | null;\n athenaOriginalType: string | null;\n athenaConvertedType: string | null;\n parentFolderId: string | null;\n updatedAt: string | null;\n isFavorited: boolean | null;\n isArchived: boolean | null;\n isHidden: boolean | null;\n}\n\nexport interface WorkspaceMember {\n id: string;\n email: string | null;\n firstName: string | null;\n lastName: string | null;\n isAdmin: boolean;\n avatarUrl: string | null;\n}\n"],"names":["createContext","useContext"],"mappings":";;;AA+BO,SAAS,mBACd,MAC8C;AAC9C,MAAI,KAAK,aAAa;AACpB,WAAO,EAAE,SAAS,EAAE,eAAe,UAAU,KAAK,WAAW,KAAG;AAAA,EAClE;AACA,MAAI,KAAK,OAAQ,QAAO,EAAE,SAAS,EAAE,aAAa,KAAK,SAAO;AAC9D,MAAI,KAAK,YAAa,QAAO,EAAE,SAAS,CAAA,GAAI,aAAa,KAAK,YAAA;AAC9D,QAAM,IAAI,MAAM,yDAAyD;AAC3E;AAEO,MAAM,iBAAiBA,MAAAA,cAAyC,IAAI;AAEpE,SAAS,iBAAqC;AACnD,QAAM,MAAMC,MAAAA,WAAW,cAAc;AACrC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,6BAA6B;AACvD,SAAO;AACT;AAIA,eAAsB,aACpB,MACA,OACA,YAAiC,CAAA,GACrB;;AACZ,QAAM,MAAM,GAAG,KAAK,WAAW,QAAQ,QAAQ,EAAE,CAAC;AAClD,QAAM,EAAE,SAAS,gBAAgB,mBAAmB,IAAI;AACxD,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,GAAG;AAAA,IAAA;AAAA,IAEL,GAAI,cAAc,EAAE,YAAA,IAAgB,CAAA;AAAA,IACpC,MAAM,KAAK,UAAU,EAAE,OAAO,WAAW;AAAA,EAAA,CAC1C;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,gBAAgB,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;AAAA,EAC3E;AAEA,QAAM,SAAS,MAAM,SAAS,KAAA;AAC9B,OAAI,YAAO,WAAP,mBAAe,QAAQ;AACzB,UAAM,IAAI,MAAM,kBAAkB,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE;AAAA,EAC9D;AAEA,SAAO,OAAO;AAChB;AAQA,MAAM,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYtB,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA,UAIzB,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvB,MAAM,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAe9B,oBAAoB;AAAA;AAAA;AAAA;AAKrB,MAAM,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAahC,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;"}
|
|
@@ -11,9 +11,19 @@ export interface MentionAuthContext {
|
|
|
11
11
|
/** Bearer credential; hosts without one authenticate with `apiKey`. */
|
|
12
12
|
accessToken?: string;
|
|
13
13
|
apiKey?: string;
|
|
14
|
+
/**
|
|
15
|
+
* With neither credential, ride the browser's same-origin session cookie
|
|
16
|
+
* instead of failing — the SDK's AthenaChat, whose REST helpers make the
|
|
17
|
+
* same choice for a host that configured no token and no API key. Hosts
|
|
18
|
+
* that always hold a credential leave this unset so an accidental anonymous
|
|
19
|
+
* query fails loudly.
|
|
20
|
+
*/
|
|
21
|
+
credentials?: "include";
|
|
14
22
|
workspaceId?: string;
|
|
15
23
|
userId?: string;
|
|
16
24
|
}
|
|
25
|
+
/** Credential headers (or the cookie lane) for a mention fetch. */
|
|
26
|
+
export declare function mentionRequestInit(auth: MentionAuthContext): Pick<RequestInit, "headers" | "credentials">;
|
|
17
27
|
export declare const MentionAuthCtx: import("react").Context<MentionAuthContext | null>;
|
|
18
28
|
export declare function useMentionAuth(): MentionAuthContext;
|
|
19
29
|
export declare function fetchGraphQL<T = any>(auth: MentionAuthContext, query: string, variables?: Record<string, any>): Promise<T>;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
function mentionRequestInit(auth) {
|
|
3
|
+
if (auth.accessToken) {
|
|
4
|
+
return { headers: { Authorization: `Bearer ${auth.accessToken}` } };
|
|
5
|
+
}
|
|
6
|
+
if (auth.apiKey) return { headers: { "X-API-KEY": auth.apiKey } };
|
|
7
|
+
if (auth.credentials) return { headers: {}, credentials: auth.credentials };
|
|
8
|
+
throw new Error("MentionAuthCtx needs either an accessToken or an apiKey");
|
|
9
|
+
}
|
|
10
|
+
const MentionAuthCtx = createContext(null);
|
|
11
|
+
function useMentionAuth() {
|
|
12
|
+
const ctx = useContext(MentionAuthCtx);
|
|
13
|
+
if (!ctx) throw new Error("MentionAuthCtx not provided");
|
|
14
|
+
return ctx;
|
|
15
|
+
}
|
|
16
|
+
async function fetchGraphQL(auth, query, variables = {}) {
|
|
17
|
+
var _a;
|
|
18
|
+
const url = `${auth.backendUrl.replace(/\/+$/, "")}/graphql`;
|
|
19
|
+
const { headers, credentials } = mentionRequestInit(auth);
|
|
20
|
+
const response = await fetch(url, {
|
|
21
|
+
method: "POST",
|
|
22
|
+
headers: {
|
|
23
|
+
"Content-Type": "application/json",
|
|
24
|
+
...headers
|
|
25
|
+
},
|
|
26
|
+
...credentials ? { credentials } : {},
|
|
27
|
+
body: JSON.stringify({ query, variables })
|
|
28
|
+
});
|
|
29
|
+
if (!response.ok) {
|
|
30
|
+
throw new Error(`GraphQL HTTP ${response.status}: ${response.statusText}`);
|
|
31
|
+
}
|
|
32
|
+
const result = await response.json();
|
|
33
|
+
if ((_a = result.errors) == null ? void 0 : _a.length) {
|
|
34
|
+
throw new Error(`GraphQL error: ${result.errors[0].message}`);
|
|
35
|
+
}
|
|
36
|
+
return result.data;
|
|
37
|
+
}
|
|
38
|
+
const MENTION_ASSET_FIELDS = `
|
|
39
|
+
id
|
|
40
|
+
title
|
|
41
|
+
athenaOriginalType
|
|
42
|
+
athenaConvertedType
|
|
43
|
+
parentFolderId
|
|
44
|
+
updatedAt
|
|
45
|
+
isFavorited
|
|
46
|
+
isArchived
|
|
47
|
+
isHidden
|
|
48
|
+
`;
|
|
49
|
+
const SIMPLE_SEARCH_QUERY = `
|
|
50
|
+
query SimpleSearch($input: SimpleSearchRequestInput!) {
|
|
51
|
+
simpleSearch(input: $input) {
|
|
52
|
+
assets {
|
|
53
|
+
${MENTION_ASSET_FIELDS}
|
|
54
|
+
}
|
|
55
|
+
totalCount
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
`;
|
|
59
|
+
const PAGINATED_ASSETS_QUERY = `
|
|
60
|
+
query GetPaginatedAssetsForWorkspace(
|
|
61
|
+
$limit: Int!
|
|
62
|
+
$offset: Int!
|
|
63
|
+
$parentFolderId: String
|
|
64
|
+
$filterTypes: [String!]
|
|
65
|
+
$filterColumns: ColumnFilter
|
|
66
|
+
) {
|
|
67
|
+
getPaginatedAssetsForWorkspace(
|
|
68
|
+
limit: $limit
|
|
69
|
+
offset: $offset
|
|
70
|
+
parentFolderId: $parentFolderId
|
|
71
|
+
filterTypes: $filterTypes
|
|
72
|
+
filterColumns: $filterColumns
|
|
73
|
+
) {
|
|
74
|
+
${MENTION_ASSET_FIELDS}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
`;
|
|
78
|
+
const WORKSPACE_MEMBERS_QUERY = `
|
|
79
|
+
query GetUsersInWorkspace($workspaceId: String!) {
|
|
80
|
+
getUsersInWorkspace(workspaceId: $workspaceId) {
|
|
81
|
+
id
|
|
82
|
+
email
|
|
83
|
+
firstName
|
|
84
|
+
lastName
|
|
85
|
+
isAdmin
|
|
86
|
+
avatarUrl
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
`;
|
|
90
|
+
const TOOL_CATALOG_QUERY = `
|
|
91
|
+
query MentionToolCatalog {
|
|
92
|
+
getToolkitToToolsMapping {
|
|
93
|
+
tools {
|
|
94
|
+
id
|
|
95
|
+
name
|
|
96
|
+
description
|
|
97
|
+
icon
|
|
98
|
+
adminOnly
|
|
99
|
+
isMentionable
|
|
100
|
+
}
|
|
101
|
+
toolkits {
|
|
102
|
+
name
|
|
103
|
+
displayName
|
|
104
|
+
description
|
|
105
|
+
icon
|
|
106
|
+
onlyAdmin
|
|
107
|
+
hideFromMenu
|
|
108
|
+
isMentionable
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
`;
|
|
113
|
+
export {
|
|
114
|
+
MentionAuthCtx,
|
|
115
|
+
PAGINATED_ASSETS_QUERY,
|
|
116
|
+
SIMPLE_SEARCH_QUERY,
|
|
117
|
+
TOOL_CATALOG_QUERY,
|
|
118
|
+
WORKSPACE_MEMBERS_QUERY,
|
|
119
|
+
fetchGraphQL,
|
|
120
|
+
mentionRequestInit,
|
|
121
|
+
useMentionAuth
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sources":["../../../../../src/chat-ui/mentions/suggestions/data/api-client.ts"],"sourcesContent":["/**\n * API client for mention data fetching.\n *\n * Wraps raw fetch() with GraphQL support. Hosts authenticate with either a\n * bearer token (Chrome extension) or a workspace API key (Microsoft 365\n * add-in); agora's /graphql accepts both.\n */\n\nimport { createContext, useContext } from \"react\";\n\n// ── Auth context ──\n\nexport interface MentionAuthContext {\n backendUrl: string;\n appUrl?: string;\n /** Bearer credential; hosts without one authenticate with `apiKey`. */\n accessToken?: string;\n apiKey?: string;\n /**\n * With neither credential, ride the browser's same-origin session cookie\n * instead of failing — the SDK's AthenaChat, whose REST helpers make the\n * same choice for a host that configured no token and no API key. Hosts\n * that always hold a credential leave this unset so an accidental anonymous\n * query fails loudly.\n */\n credentials?: \"include\";\n workspaceId?: string;\n userId?: string;\n}\n\n/** Credential headers (or the cookie lane) for a mention fetch. */\nexport function mentionRequestInit(\n auth: MentionAuthContext,\n): Pick<RequestInit, \"headers\" | \"credentials\"> {\n if (auth.accessToken) {\n return { headers: { Authorization: `Bearer ${auth.accessToken}` } };\n }\n if (auth.apiKey) return { headers: { \"X-API-KEY\": auth.apiKey } };\n if (auth.credentials) return { headers: {}, credentials: auth.credentials };\n throw new Error(\"MentionAuthCtx needs either an accessToken or an apiKey\");\n}\n\nexport const MentionAuthCtx = createContext<MentionAuthContext | null>(null);\n\nexport function useMentionAuth(): MentionAuthContext {\n const ctx = useContext(MentionAuthCtx);\n if (!ctx) throw new Error(\"MentionAuthCtx not provided\");\n return ctx;\n}\n\n// ── GraphQL client ──\n\nexport async function fetchGraphQL<T = any>(\n auth: MentionAuthContext,\n query: string,\n variables: Record<string, any> = {},\n): Promise<T> {\n const url = `${auth.backendUrl.replace(/\\/+$/, \"\")}/graphql`;\n const { headers, credentials } = mentionRequestInit(auth);\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n ...(credentials ? { credentials } : {}),\n body: JSON.stringify({ query, variables }),\n });\n\n if (!response.ok) {\n throw new Error(`GraphQL HTTP ${response.status}: ${response.statusText}`);\n }\n\n const result = await response.json();\n if (result.errors?.length) {\n throw new Error(`GraphQL error: ${result.errors[0].message}`);\n }\n\n return result.data as T;\n}\n\n// ── GraphQL Queries ──\n\n/**\n * Lightweight asset fragment for mention menu items.\n * Only fetches fields needed for display + navigation.\n */\nconst MENTION_ASSET_FIELDS = `\n id\n title\n athenaOriginalType\n athenaConvertedType\n parentFolderId\n updatedAt\n isFavorited\n isArchived\n isHidden\n`;\n\nexport const SIMPLE_SEARCH_QUERY = `\n query SimpleSearch($input: SimpleSearchRequestInput!) {\n simpleSearch(input: $input) {\n assets {\n ${MENTION_ASSET_FIELDS}\n }\n totalCount\n }\n }\n`;\n\nexport const PAGINATED_ASSETS_QUERY = `\n query GetPaginatedAssetsForWorkspace(\n $limit: Int!\n $offset: Int!\n $parentFolderId: String\n $filterTypes: [String!]\n $filterColumns: ColumnFilter\n ) {\n getPaginatedAssetsForWorkspace(\n limit: $limit\n offset: $offset\n parentFolderId: $parentFolderId\n filterTypes: $filterTypes\n filterColumns: $filterColumns\n ) {\n ${MENTION_ASSET_FIELDS}\n }\n }\n`;\n\nexport const WORKSPACE_MEMBERS_QUERY = `\n query GetUsersInWorkspace($workspaceId: String!) {\n getUsersInWorkspace(workspaceId: $workspaceId) {\n id\n email\n firstName\n lastName\n isAdmin\n avatarUrl\n }\n }\n`;\n\nexport const TOOL_CATALOG_QUERY = `\n query MentionToolCatalog {\n getToolkitToToolsMapping {\n tools {\n id\n name\n description\n icon\n adminOnly\n isMentionable\n }\n toolkits {\n name\n displayName\n description\n icon\n onlyAdmin\n hideFromMenu\n isMentionable\n }\n }\n }\n`;\n\n// ── Response types ──\n\nexport interface ToolCatalogTool {\n id: string;\n name: string;\n description: string | null;\n icon: string;\n adminOnly: boolean;\n isMentionable: boolean;\n}\n\nexport interface ToolCatalogToolkit {\n name: string;\n displayName: string;\n description: string;\n icon: string;\n onlyAdmin: boolean;\n hideFromMenu: boolean;\n isMentionable: boolean;\n}\n\nexport interface ToolCatalogResult {\n getToolkitToToolsMapping: {\n tools: ToolCatalogTool[];\n toolkits: ToolCatalogToolkit[];\n };\n}\n\nexport interface AssetResult {\n id: string;\n title: string | null;\n athenaOriginalType: string | null;\n athenaConvertedType: string | null;\n parentFolderId: string | null;\n updatedAt: string | null;\n isFavorited: boolean | null;\n isArchived: boolean | null;\n isHidden: boolean | null;\n}\n\nexport interface WorkspaceMember {\n id: string;\n email: string | null;\n firstName: string | null;\n lastName: string | null;\n isAdmin: boolean;\n avatarUrl: string | null;\n}\n"],"names":[],"mappings":";AA+BO,SAAS,mBACd,MAC8C;AAC9C,MAAI,KAAK,aAAa;AACpB,WAAO,EAAE,SAAS,EAAE,eAAe,UAAU,KAAK,WAAW,KAAG;AAAA,EAClE;AACA,MAAI,KAAK,OAAQ,QAAO,EAAE,SAAS,EAAE,aAAa,KAAK,SAAO;AAC9D,MAAI,KAAK,YAAa,QAAO,EAAE,SAAS,CAAA,GAAI,aAAa,KAAK,YAAA;AAC9D,QAAM,IAAI,MAAM,yDAAyD;AAC3E;AAEO,MAAM,iBAAiB,cAAyC,IAAI;AAEpE,SAAS,iBAAqC;AACnD,QAAM,MAAM,WAAW,cAAc;AACrC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,6BAA6B;AACvD,SAAO;AACT;AAIA,eAAsB,aACpB,MACA,OACA,YAAiC,CAAA,GACrB;;AACZ,QAAM,MAAM,GAAG,KAAK,WAAW,QAAQ,QAAQ,EAAE,CAAC;AAClD,QAAM,EAAE,SAAS,gBAAgB,mBAAmB,IAAI;AACxD,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,GAAG;AAAA,IAAA;AAAA,IAEL,GAAI,cAAc,EAAE,YAAA,IAAgB,CAAA;AAAA,IACpC,MAAM,KAAK,UAAU,EAAE,OAAO,WAAW;AAAA,EAAA,CAC1C;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,gBAAgB,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;AAAA,EAC3E;AAEA,QAAM,SAAS,MAAM,SAAS,KAAA;AAC9B,OAAI,YAAO,WAAP,mBAAe,QAAQ;AACzB,UAAM,IAAI,MAAM,kBAAkB,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE;AAAA,EAC9D;AAEA,SAAO,OAAO;AAChB;AAQA,MAAM,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYtB,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA,UAIzB,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvB,MAAM,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAe9B,oBAAoB;AAAA;AAAA;AAAA;AAKrB,MAAM,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAahC,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const filterItems = require("./utils/filter-items.cjs");
|
|
4
|
+
function createItemCache() {
|
|
5
|
+
return {
|
|
6
|
+
items: {}
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function addItems(cache, items, scope) {
|
|
10
|
+
for (const item of items) {
|
|
11
|
+
const existing = cache.items[item.id];
|
|
12
|
+
if (existing) {
|
|
13
|
+
existing.visibleInScopes.add(scope);
|
|
14
|
+
cache.items[item.id] = {
|
|
15
|
+
...existing,
|
|
16
|
+
...item,
|
|
17
|
+
visibleInScopes: existing.visibleInScopes
|
|
18
|
+
// Preserve merged scopes!
|
|
19
|
+
};
|
|
20
|
+
} else {
|
|
21
|
+
cache.items[item.id] = { ...item, visibleInScopes: /* @__PURE__ */ new Set([scope]) };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function getAllItems(cache) {
|
|
26
|
+
return Object.values(cache.items);
|
|
27
|
+
}
|
|
28
|
+
function getFilteredItems(cache, scope, query) {
|
|
29
|
+
const allItems = getAllItems(cache);
|
|
30
|
+
const scopedItems = allItems.filter((item) => item.visibleInScopes.has(scope));
|
|
31
|
+
return filterItems.filterItems(scopedItems, query);
|
|
32
|
+
}
|
|
33
|
+
exports.addItems = addItems;
|
|
34
|
+
exports.createItemCache = createItemCache;
|
|
35
|
+
exports.getAllItems = getAllItems;
|
|
36
|
+
exports.getFilteredItems = getFilteredItems;
|
|
37
|
+
//# sourceMappingURL=item-cache.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-cache.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/data/item-cache.ts"],"sourcesContent":["import type { MenuItem, MenuScope } from './types';\nimport { filterItems } from './utils/filter-items';\n\n/**\n * Item Cache\n *\n * Plain object + pure functions for caching menu items.\n * Deduplicates by ID, handles renames/updates automatically.\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Item cache - plain object\n * Stores all fetched items\n */\nexport interface ItemCache {\n items: Record<string, MenuItem>; // itemId → MenuItem\n}\n\n// ============================================================================\n// Utils\n// ============================================================================\n\n/**\n * Create empty cache\n */\nexport function createItemCache(): ItemCache {\n return {\n items: {},\n };\n}\n\n/**\n * Add items to cache with scope tagging (mutates cache)\n *\n * Multi-scope system:\n * - If item exists: ADD scope to existing scopes, update fields\n * - If item new: Create with single scope\n *\n * Deduplication by ID:\n * - ✅ Handles renames: Same ID, new name → updates name, adds scope\n * - ✅ Handles multi-membership: Same ID → adds new scope without removing old ones\n * - ✅ Handles updates: Same ID, new data → updates data, adds scope\n * - ❌ Does NOT handle deletions: Use clearByScope() to remove stale data\n *\n * @param cache - Cache to mutate\n * @param items - Items to add (without visibleInScopes set)\n * @param scope - Scope to tag these items with\n */\nexport function addItems(cache: ItemCache, items: MenuItem[], scope: MenuScope): void {\n for (const item of items) {\n const existing = cache.items[item.id];\n\n if (existing) {\n // Item exists - ADD scope to existing scopes\n existing.visibleInScopes.add(scope);\n // Update other fields (name, thumbnailUrl, etc. may have changed)\n cache.items[item.id] = {\n ...existing,\n ...item,\n visibleInScopes: existing.visibleInScopes, // Preserve merged scopes!\n };\n } else {\n // New item - create with single scope\n cache.items[item.id] = { ...item, visibleInScopes: new Set([scope]) };\n }\n }\n}\n\n/**\n * Get all items (read-only)\n */\nexport function getAllItems(cache: ItemCache): MenuItem[] {\n return Object.values(cache.items);\n}\n\n/**\n * Get filtered items by scope (read-only, no fetching)\n *\n * @param cache - Cache to read from\n * @param scope - Current scope to filter by\n * @param query - Search query\n * @returns Filtered items from cache that belong to this scope\n */\nexport function getFilteredItems(cache: ItemCache, scope: MenuScope, query: string): MenuItem[] {\n const allItems = getAllItems(cache);\n\n // First filter by scope membership\n const scopedItems = allItems.filter((item) => item.visibleInScopes.has(scope));\n\n // Then filter by query\n return filterItems(scopedItems, query, scope);\n}\n\n/**\n * Clear all items\n */\nexport function clearCache(cache: ItemCache): void {\n cache.items = {};\n}\n\n/**\n * Clear scope from all items (mutates cache)\n * Used for invalidation when dynamic data changes\n *\n * Items lose the scope but stay in cache if they have other scopes.\n * Only remove items completely if they have no scopes left.\n *\n * @param cache - Cache to mutate\n * @param scope - Scope to remove from all items\n */\nexport function clearByScope(cache: ItemCache, scope: MenuScope): void {\n const itemsToKeep: Record<string, MenuItem> = {};\n\n for (const [id, item] of Object.entries(cache.items)) {\n // Remove this scope from item\n item.visibleInScopes.delete(scope);\n\n // Keep item only if it still has other scopes\n if (item.visibleInScopes.size > 0) {\n itemsToKeep[id] = item;\n }\n // Otherwise item is removed (no scopes left)\n }\n\n cache.items = itemsToKeep;\n}\n\n/**\n * Remove specific item\n */\nexport function removeItem(cache: ItemCache, itemId: string): void {\n delete cache.items[itemId];\n}\n\n/**\n * Get item by ID\n */\nexport function getItem(cache: ItemCache, itemId: string): MenuItem | undefined {\n return cache.items[itemId];\n}\n\n/**\n * Check if item belongs to a scope\n */\nexport function hasScope(item: MenuItem, scope: MenuScope): boolean {\n return item.visibleInScopes.has(scope);\n}\n"],"names":["filterItems"],"mappings":";;;AA6BO,SAAS,kBAA6B;AAC3C,SAAO;AAAA,IACL,OAAO,CAAA;AAAA,EAAC;AAEZ;AAmBO,SAAS,SAAS,OAAkB,OAAmB,OAAwB;AACpF,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,MAAM,MAAM,KAAK,EAAE;AAEpC,QAAI,UAAU;AAEZ,eAAS,gBAAgB,IAAI,KAAK;AAElC,YAAM,MAAM,KAAK,EAAE,IAAI;AAAA,QACrB,GAAG;AAAA,QACH,GAAG;AAAA,QACH,iBAAiB,SAAS;AAAA;AAAA,MAAA;AAAA,IAE9B,OAAO;AAEL,YAAM,MAAM,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,oBAAI,IAAI,CAAC,KAAK,CAAC,EAAA;AAAA,IACpE;AAAA,EACF;AACF;AAKO,SAAS,YAAY,OAA8B;AACxD,SAAO,OAAO,OAAO,MAAM,KAAK;AAClC;AAUO,SAAS,iBAAiB,OAAkB,OAAkB,OAA2B;AAC9F,QAAM,WAAW,YAAY,KAAK;AAGlC,QAAM,cAAc,SAAS,OAAO,CAAC,SAAS,KAAK,gBAAgB,IAAI,KAAK,CAAC;AAG7E,SAAOA,YAAAA,YAAY,aAAa,KAAY;AAC9C;;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { filterItems } from "./utils/filter-items.js";
|
|
2
|
+
function createItemCache() {
|
|
3
|
+
return {
|
|
4
|
+
items: {}
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
function addItems(cache, items, scope) {
|
|
8
|
+
for (const item of items) {
|
|
9
|
+
const existing = cache.items[item.id];
|
|
10
|
+
if (existing) {
|
|
11
|
+
existing.visibleInScopes.add(scope);
|
|
12
|
+
cache.items[item.id] = {
|
|
13
|
+
...existing,
|
|
14
|
+
...item,
|
|
15
|
+
visibleInScopes: existing.visibleInScopes
|
|
16
|
+
// Preserve merged scopes!
|
|
17
|
+
};
|
|
18
|
+
} else {
|
|
19
|
+
cache.items[item.id] = { ...item, visibleInScopes: /* @__PURE__ */ new Set([scope]) };
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function getAllItems(cache) {
|
|
24
|
+
return Object.values(cache.items);
|
|
25
|
+
}
|
|
26
|
+
function getFilteredItems(cache, scope, query) {
|
|
27
|
+
const allItems = getAllItems(cache);
|
|
28
|
+
const scopedItems = allItems.filter((item) => item.visibleInScopes.has(scope));
|
|
29
|
+
return filterItems(scopedItems, query);
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
addItems,
|
|
33
|
+
createItemCache,
|
|
34
|
+
getAllItems,
|
|
35
|
+
getFilteredItems
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=item-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-cache.js","sources":["../../../../../src/chat-ui/mentions/suggestions/data/item-cache.ts"],"sourcesContent":["import type { MenuItem, MenuScope } from './types';\nimport { filterItems } from './utils/filter-items';\n\n/**\n * Item Cache\n *\n * Plain object + pure functions for caching menu items.\n * Deduplicates by ID, handles renames/updates automatically.\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Item cache - plain object\n * Stores all fetched items\n */\nexport interface ItemCache {\n items: Record<string, MenuItem>; // itemId → MenuItem\n}\n\n// ============================================================================\n// Utils\n// ============================================================================\n\n/**\n * Create empty cache\n */\nexport function createItemCache(): ItemCache {\n return {\n items: {},\n };\n}\n\n/**\n * Add items to cache with scope tagging (mutates cache)\n *\n * Multi-scope system:\n * - If item exists: ADD scope to existing scopes, update fields\n * - If item new: Create with single scope\n *\n * Deduplication by ID:\n * - ✅ Handles renames: Same ID, new name → updates name, adds scope\n * - ✅ Handles multi-membership: Same ID → adds new scope without removing old ones\n * - ✅ Handles updates: Same ID, new data → updates data, adds scope\n * - ❌ Does NOT handle deletions: Use clearByScope() to remove stale data\n *\n * @param cache - Cache to mutate\n * @param items - Items to add (without visibleInScopes set)\n * @param scope - Scope to tag these items with\n */\nexport function addItems(cache: ItemCache, items: MenuItem[], scope: MenuScope): void {\n for (const item of items) {\n const existing = cache.items[item.id];\n\n if (existing) {\n // Item exists - ADD scope to existing scopes\n existing.visibleInScopes.add(scope);\n // Update other fields (name, thumbnailUrl, etc. may have changed)\n cache.items[item.id] = {\n ...existing,\n ...item,\n visibleInScopes: existing.visibleInScopes, // Preserve merged scopes!\n };\n } else {\n // New item - create with single scope\n cache.items[item.id] = { ...item, visibleInScopes: new Set([scope]) };\n }\n }\n}\n\n/**\n * Get all items (read-only)\n */\nexport function getAllItems(cache: ItemCache): MenuItem[] {\n return Object.values(cache.items);\n}\n\n/**\n * Get filtered items by scope (read-only, no fetching)\n *\n * @param cache - Cache to read from\n * @param scope - Current scope to filter by\n * @param query - Search query\n * @returns Filtered items from cache that belong to this scope\n */\nexport function getFilteredItems(cache: ItemCache, scope: MenuScope, query: string): MenuItem[] {\n const allItems = getAllItems(cache);\n\n // First filter by scope membership\n const scopedItems = allItems.filter((item) => item.visibleInScopes.has(scope));\n\n // Then filter by query\n return filterItems(scopedItems, query, scope);\n}\n\n/**\n * Clear all items\n */\nexport function clearCache(cache: ItemCache): void {\n cache.items = {};\n}\n\n/**\n * Clear scope from all items (mutates cache)\n * Used for invalidation when dynamic data changes\n *\n * Items lose the scope but stay in cache if they have other scopes.\n * Only remove items completely if they have no scopes left.\n *\n * @param cache - Cache to mutate\n * @param scope - Scope to remove from all items\n */\nexport function clearByScope(cache: ItemCache, scope: MenuScope): void {\n const itemsToKeep: Record<string, MenuItem> = {};\n\n for (const [id, item] of Object.entries(cache.items)) {\n // Remove this scope from item\n item.visibleInScopes.delete(scope);\n\n // Keep item only if it still has other scopes\n if (item.visibleInScopes.size > 0) {\n itemsToKeep[id] = item;\n }\n // Otherwise item is removed (no scopes left)\n }\n\n cache.items = itemsToKeep;\n}\n\n/**\n * Remove specific item\n */\nexport function removeItem(cache: ItemCache, itemId: string): void {\n delete cache.items[itemId];\n}\n\n/**\n * Get item by ID\n */\nexport function getItem(cache: ItemCache, itemId: string): MenuItem | undefined {\n return cache.items[itemId];\n}\n\n/**\n * Check if item belongs to a scope\n */\nexport function hasScope(item: MenuItem, scope: MenuScope): boolean {\n return item.visibleInScopes.has(scope);\n}\n"],"names":[],"mappings":";AA6BO,SAAS,kBAA6B;AAC3C,SAAO;AAAA,IACL,OAAO,CAAA;AAAA,EAAC;AAEZ;AAmBO,SAAS,SAAS,OAAkB,OAAmB,OAAwB;AACpF,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,MAAM,MAAM,KAAK,EAAE;AAEpC,QAAI,UAAU;AAEZ,eAAS,gBAAgB,IAAI,KAAK;AAElC,YAAM,MAAM,KAAK,EAAE,IAAI;AAAA,QACrB,GAAG;AAAA,QACH,GAAG;AAAA,QACH,iBAAiB,SAAS;AAAA;AAAA,MAAA;AAAA,IAE9B,OAAO;AAEL,YAAM,MAAM,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,oBAAI,IAAI,CAAC,KAAK,CAAC,EAAA;AAAA,IACpE;AAAA,EACF;AACF;AAKO,SAAS,YAAY,OAA8B;AACxD,SAAO,OAAO,OAAO,MAAM,KAAK;AAClC;AAUO,SAAS,iBAAiB,OAAkB,OAAkB,OAA2B;AAC9F,QAAM,WAAW,YAAY,KAAK;AAGlC,QAAM,cAAc,SAAS,OAAO,CAAC,SAAS,KAAK,gBAAgB,IAAI,KAAK,CAAC;AAG7E,SAAO,YAAY,aAAa,KAAY;AAC9C;"}
|