@athenaintel/react 0.19.0 → 0.21.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 +171 -11
- 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 +370 -0
- package/dist/assets/use-asset-embed.cjs.map +1 -0
- package/dist/assets/use-asset-embed.js +370 -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 +189 -0
- package/dist/chat/StatewireApprovalCard.cjs.map +1 -0
- package/dist/chat/StatewireApprovalCard.d.ts +14 -0
- package/dist/chat/StatewireApprovalCard.js +189 -0
- package/dist/chat/StatewireApprovalCard.js.map +1 -0
- package/dist/chat/StatewireClientToolBridge.cjs +51 -0
- package/dist/chat/StatewireClientToolBridge.cjs.map +1 -0
- package/dist/chat/StatewireClientToolBridge.js +51 -0
- package/dist/chat/StatewireClientToolBridge.js.map +1 -0
- package/dist/chat/StatewireQueuedMessages.cjs +433 -0
- package/dist/chat/StatewireQueuedMessages.cjs.map +1 -0
- package/dist/chat/StatewireQueuedMessages.d.ts +3 -4
- package/dist/chat/StatewireQueuedMessages.js +433 -0
- package/dist/chat/StatewireQueuedMessages.js.map +1 -0
- package/dist/chat/athena-citation-links.cjs +342 -0
- package/dist/chat/athena-citation-links.cjs.map +1 -0
- package/dist/chat/athena-citation-links.js +342 -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-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 +74 -0
- package/dist/chat/statewire-client-tools.cjs.map +1 -0
- package/dist/chat/statewire-client-tools.js +74 -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.js +158 -0
- package/dist/chat/super-grouping/CollapsibleGroup.js.map +1 -0
- package/dist/chat/super-grouping/SuperGroupingCard.cjs +243 -0
- package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -0
- package/dist/chat/super-grouping/SuperGroupingCard.d.ts +14 -7
- package/dist/chat/super-grouping/SuperGroupingCard.js +243 -0
- package/dist/chat/super-grouping/SuperGroupingCard.js.map +1 -0
- package/dist/chat/super-grouping/ToolTimeline.cjs +131 -0
- package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -0
- package/dist/chat/super-grouping/ToolTimeline.d.ts +16 -0
- package/dist/chat/super-grouping/ToolTimeline.js +131 -0
- package/dist/chat/super-grouping/ToolTimeline.js.map +1 -0
- package/dist/chat/super-grouping/activity-timeline.cjs +157 -0
- package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -0
- package/dist/chat/super-grouping/activity-timeline.d.ts +6 -3
- package/dist/chat/super-grouping/activity-timeline.js +157 -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.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.js +26 -0
- package/dist/chat/super-grouping/index.js.map +1 -0
- package/dist/chat/super-grouping/timeline-step.cjs +65 -0
- package/dist/chat/super-grouping/timeline-step.cjs.map +1 -0
- package/dist/chat/super-grouping/timeline-step.d.ts +17 -0
- package/dist/chat/super-grouping/timeline-step.js +65 -0
- package/dist/chat/super-grouping/timeline-step.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.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 +24 -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 +24 -0
- package/dist/chat/use-athena-run-live.js.map +1 -0
- package/dist/chat/use-statewire-approval-request.cjs +51 -0
- package/dist/chat/use-statewire-approval-request.cjs.map +1 -0
- package/dist/chat/use-statewire-approval-request.d.ts +12 -2
- package/dist/chat/use-statewire-approval-request.js +51 -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 +549 -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 +549 -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.js +369 -0
- package/dist/chat-ui/header/conversation-history-panel.js.map +1 -0
- package/dist/chat-ui/index.cjs +140 -0
- package/dist/chat-ui/index.cjs.map +1 -0
- package/dist/chat-ui/index.d.ts +4 -3
- package/dist/chat-ui/index.js +140 -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 +253 -0
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -0
- package/dist/chat-ui/mentions/mention-chip.d.ts +11 -0
- package/dist/chat-ui/mentions/mention-chip.js +253 -0
- package/dist/chat-ui/mentions/mention-chip.js.map +1 -0
- package/dist/chat-ui/mentions/mention-extension.cjs +196 -0
- package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -0
- package/dist/chat-ui/mentions/mention-extension.d.ts +26 -2
- package/dist/chat-ui/mentions/mention-extension.js +196 -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 +65 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.d.ts +2 -2
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js +65 -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.d.ts +2 -2
- 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 +124 -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 +13 -2
- package/dist/chat-ui/mentions/suggestions/data/api-client.js +124 -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/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 +320 -0
- package/dist/chat-ui/messages/message-components.cjs.map +1 -0
- package/dist/chat-ui/messages/message-components.d.ts +1 -1
- package/dist/chat-ui/messages/message-components.js +320 -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 +66 -0
- package/dist/chat-ui/messages/runtime-message.cjs.map +1 -0
- package/dist/chat-ui/messages/runtime-message.js +66 -0
- package/dist/chat-ui/messages/runtime-message.js.map +1 -0
- package/dist/{statewire-continue-run-nE9VCKUh.cjs → chat-ui/messages/statewire-continue-run.cjs} +61 -23
- package/dist/chat-ui/messages/statewire-continue-run.cjs.map +1 -0
- package/dist/chat-ui/messages/statewire-continue-run.d.ts +19 -5
- package/dist/{statewire-continue-run-D34gS7_1.js → chat-ui/messages/statewire-continue-run.js} +51 -14
- package/dist/chat-ui/messages/statewire-continue-run.js.map +1 -0
- package/dist/chat-ui/messages/user-edit-composer.cjs +62 -0
- package/dist/chat-ui/messages/user-edit-composer.cjs.map +1 -0
- package/dist/chat-ui/messages/user-edit-composer.js +62 -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/rich-text/chat-message-body.cjs +76 -0
- package/dist/chat-ui/rich-text/chat-message-body.cjs.map +1 -0
- package/dist/chat-ui/rich-text/chat-message-body.d.ts +5 -0
- package/dist/chat-ui/rich-text/chat-message-body.js +76 -0
- package/dist/chat-ui/rich-text/chat-message-body.js.map +1 -0
- package/dist/chat-ui/rich-text/chat-node-views.cjs +51 -0
- package/dist/chat-ui/rich-text/chat-node-views.cjs.map +1 -0
- package/dist/chat-ui/rich-text/chat-node-views.d.ts +13 -0
- package/dist/chat-ui/rich-text/chat-node-views.js +51 -0
- package/dist/chat-ui/rich-text/chat-node-views.js.map +1 -0
- package/dist/chat-ui/rich-text/chat-text-schema.cjs +70 -0
- package/dist/chat-ui/rich-text/chat-text-schema.cjs.map +1 -0
- package/dist/chat-ui/rich-text/chat-text-schema.d.ts +7 -0
- package/dist/chat-ui/rich-text/chat-text-schema.js +70 -0
- package/dist/chat-ui/rich-text/chat-text-schema.js.map +1 -0
- package/dist/chat-ui/rich-text/dom-output-spec.cjs +83 -0
- package/dist/chat-ui/rich-text/dom-output-spec.cjs.map +1 -0
- package/dist/chat-ui/rich-text/dom-output-spec.d.ts +11 -0
- package/dist/chat-ui/rich-text/dom-output-spec.js +83 -0
- package/dist/chat-ui/rich-text/dom-output-spec.js.map +1 -0
- package/dist/chat-ui/statewire.cjs +40 -0
- package/dist/chat-ui/statewire.cjs.map +1 -0
- package/dist/chat-ui/statewire.js +40 -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.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 +135 -0
- package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -0
- package/dist/chat-ui/thread/statewire-history-edge.js +135 -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.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.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 +275 -27882
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +162 -27759
- 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/node_modules/qrcode-generator/dist/qrcode.cjs +32 -0
- package/dist/node_modules/qrcode-generator/dist/qrcode.cjs.map +1 -0
- package/dist/node_modules/qrcode-generator/dist/qrcode.js +31 -0
- package/dist/node_modules/qrcode-generator/dist/qrcode.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.cjs +44 -0
- package/dist/node_modules/zod/v4/classic/errors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.js +44 -0
- package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.cjs +43 -0
- package/dist/node_modules/zod/v4/classic/iso.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.js +43 -0
- package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.cjs +29 -0
- package/dist/node_modules/zod/v4/classic/parse.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.js +29 -0
- package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.cjs +871 -0
- package/dist/node_modules/zod/v4/classic/schemas.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +871 -0
- package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/api.cjs +570 -0
- package/dist/node_modules/zod/v4/core/api.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/api.js +570 -0
- package/dist/node_modules/zod/v4/core/api.js.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.cjs +411 -0
- package/dist/node_modules/zod/v4/core/checks.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.js +411 -0
- package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
- package/dist/node_modules/zod/v4/core/core.cjs +77 -0
- package/dist/node_modules/zod/v4/core/core.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/core.js +77 -0
- package/dist/node_modules/zod/v4/core/core.js.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.cjs +38 -0
- package/dist/node_modules/zod/v4/core/doc.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.js +38 -0
- package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.cjs +76 -0
- package/dist/node_modules/zod/v4/core/errors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.js +76 -0
- package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs +312 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js +312 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.cjs +96 -0
- package/dist/node_modules/zod/v4/core/parse.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.js +96 -0
- package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.cjs +86 -0
- package/dist/node_modules/zod/v4/core/regexes.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.js +86 -0
- package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.cjs +52 -0
- package/dist/node_modules/zod/v4/core/registries.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.js +52 -0
- package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.cjs +1412 -0
- package/dist/node_modules/zod/v4/core/schemas.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.js +1413 -0
- package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs +370 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js +370 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
- package/dist/node_modules/zod/v4/core/util.cjs +444 -0
- package/dist/node_modules/zod/v4/core/util.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/util.js +444 -0
- package/dist/node_modules/zod/v4/core/util.js.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.cjs +9 -0
- package/dist/node_modules/zod/v4/core/versions.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.js +9 -0
- package/dist/node_modules/zod/v4/core/versions.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 +276 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.js +276 -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 +90 -0
- package/dist/packages/agent-runtime/src/conversation-list.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-list.js +90 -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 +238 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.js +238 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.js.map +1 -0
- package/dist/packages/agent-runtime/src/interrupts.cjs +141 -0
- package/dist/packages/agent-runtime/src/interrupts.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/interrupts.js +141 -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 +463 -0
- package/dist/packages/agent-runtime/src/messages.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/messages.js +463 -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 +31 -0
- package/dist/packages/agent-runtime/src/protocol.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/protocol.js +31 -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 +329 -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 +329 -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/screen-point.cjs +68 -0
- package/dist/packages/agent-runtime/src/screen-point.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/screen-point.js +68 -0
- package/dist/packages/agent-runtime/src/screen-point.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 +11 -0
- package/dist/packages/agent-runtime/src/statewire-transport.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-transport.js +11 -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-handoff.cjs +85 -0
- package/dist/packages/agent-runtime/src/thread-handoff.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-handoff.js +85 -0
- package/dist/packages/agent-runtime/src/thread-handoff.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 +1794 -0
- package/dist/packages/agent-runtime/src/tool-metadata.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/tool-metadata.js +1794 -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-config.cjs +14 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-config.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-config.js +14 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-config.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs +44 -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 +44 -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 +148 -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 +148 -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 +407 -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 +407 -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 +404 -0
- package/dist/provider/AthenaProvider.cjs.map +1 -0
- package/dist/provider/AthenaProvider.js +404 -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 +8 -7
- 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.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.js +18 -0
- package/dist/runtime/statewire-auth-headers.js.map +1 -0
- package/dist/runtime/statewire-lifecycle.cjs +68 -0
- package/dist/runtime/statewire-lifecycle.cjs.map +1 -0
- package/dist/runtime/statewire-lifecycle.js +68 -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.js +11 -0
- package/dist/runtime/statewire-session-key.js.map +1 -0
- package/dist/runtime/useAthenaStatewireRuntime.cjs +180 -0
- package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -0
- package/dist/runtime/useAthenaStatewireRuntime.js +181 -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 +74 -0
- package/dist/threads/conversation-list-fetcher.cjs.map +1 -0
- package/dist/threads/conversation-list-fetcher.js +74 -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.js +7 -0
- package/dist/threads/mint-thread-id.js.map +1 -0
- package/dist/threads/statewire-thread-list.cjs +232 -0
- package/dist/threads/statewire-thread-list.cjs.map +1 -0
- package/dist/threads/statewire-thread-list.js +232 -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 +80 -0
- package/dist/threads/use-rest-conversation-history.cjs.map +1 -0
- package/dist/threads/use-rest-conversation-history.js +80 -0
- package/dist/threads/use-rest-conversation-history.js.map +1 -0
- package/dist/threads/use-statewire-conversation-history.cjs +244 -0
- package/dist/threads/use-statewire-conversation-history.cjs.map +1 -0
- package/dist/threads/use-statewire-conversation-history.d.ts +1 -0
- package/dist/threads/use-statewire-conversation-history.js +244 -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 +57 -0
- package/dist/tools/index.cjs.map +1 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +57 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/misc-tool-uis.cjs +55 -0
- package/dist/tools/misc-tool-uis.cjs.map +1 -0
- package/dist/{misc-tool-uis-gAiQw0Yl.js → tools/misc-tool-uis.js} +18 -7
- package/dist/tools/misc-tool-uis.js.map +1 -0
- package/dist/tools/primitives.cjs +167 -0
- package/dist/tools/primitives.cjs.map +1 -0
- package/dist/tools/primitives.js +167 -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 +668 -0
- package/dist/tools/tool-fallback.cjs.map +1 -0
- package/dist/tools/tool-fallback.js +668 -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.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.js +3049 -0
- package/dist/tools/tool-uis.js.map +1 -0
- package/dist/tools/voice-update-tool-ui.cjs +90 -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 +90 -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/dist/voice/index.cjs +6 -0
- package/dist/voice/index.cjs.map +1 -0
- package/dist/voice/index.d.ts +2 -0
- package/dist/voice/index.js +6 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/use-athena-voice-session.cjs +315 -0
- package/dist/voice/use-athena-voice-session.cjs.map +1 -0
- package/dist/voice/use-athena-voice-session.d.ts +145 -0
- package/dist/voice/use-athena-voice-session.js +315 -0
- package/dist/voice/use-athena-voice-session.js.map +1 -0
- package/package.json +32 -20
- 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/SuperGroupingCard-BsWbHyV_.js +0 -795
- package/dist/SuperGroupingCard-BsWbHyV_.js.map +0 -1
- package/dist/SuperGroupingCard-CRRFUgjN.cjs +0 -794
- package/dist/SuperGroupingCard-CRRFUgjN.cjs.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/tiptap-composer.d.ts +0 -7
- package/dist/chat-ui-statewire.cjs +0 -25
- package/dist/chat-ui-statewire.cjs.map +0 -1
- package/dist/chat-ui-statewire.js +0 -25
- package/dist/chat-ui-statewire.js.map +0 -1
- package/dist/chat-ui.cjs +0 -2484
- package/dist/chat-ui.cjs.map +0 -1
- package/dist/chat-ui.js +0 -2486
- 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/misc-tool-uis-B2e0Okkn.cjs +0 -43
- package/dist/misc-tool-uis-B2e0Okkn.cjs.map +0 -1
- package/dist/misc-tool-uis-gAiQw0Yl.js.map +0 -1
- package/dist/statewire-continue-run-D34gS7_1.js.map +0 -1
- package/dist/statewire-continue-run-nE9VCKUh.cjs.map +0 -1
- package/dist/statewire-history-edge-C8uyTEjX.cjs +0 -1711
- package/dist/statewire-history-edge-C8uyTEjX.cjs.map +0 -1
- package/dist/statewire-history-edge-CPohUKMt.js +0 -1712
- package/dist/statewire-history-edge-CPohUKMt.js.map +0 -1
- package/dist/super-grouping.cjs +0 -22
- package/dist/super-grouping.cjs.map +0 -1
- package/dist/super-grouping.js +0 -22
- package/dist/super-grouping.js.map +0 -1
- package/dist/tool-fallback-DkQ3DLkn.js +0 -4281
- package/dist/tool-fallback-DkQ3DLkn.js.map +0 -1
- package/dist/tool-fallback-kfhpJQZa.cjs +0 -4297
- package/dist/tool-fallback-kfhpJQZa.cjs.map +0 -1
- package/dist/tools.cjs +0 -41
- package/dist/tools.cjs.map +0 -1
- package/dist/tools.js +0 -41
- package/dist/tools.js.map +0 -1
- package/dist/trash-2-B5OaNAL7.cjs +0 -5096
- package/dist/trash-2-B5OaNAL7.cjs.map +0 -1
- package/dist/trash-2-CCwSURL-.js +0 -5081
- package/dist/trash-2-CCwSURL-.js.map +0 -1
- package/dist/use-rest-conversation-history-Cm8qMRxp.cjs +0 -32397
- package/dist/use-rest-conversation-history-Cm8qMRxp.cjs.map +0 -1
- package/dist/use-rest-conversation-history-veDZS-oL.js +0 -32361
- package/dist/use-rest-conversation-history-veDZS-oL.js.map +0 -1
- package/dist/wrench-BEf72cyP.cjs +0 -417
- package/dist/wrench-BEf72cyP.cjs.map +0 -1
- package/dist/wrench-CbrOlVYm.js +0 -418
- package/dist/wrench-CbrOlVYm.js.map +0 -1
- package/dist/x-Dfd2NzK0.cjs +0 -42
- package/dist/x-Dfd2NzK0.cjs.map +0 -1
- package/dist/x-_DntAa_a.js +0 -43
- package/dist/x-_DntAa_a.js.map +0 -1
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const store = require("@tanstack/store");
|
|
4
|
+
const react = require("react");
|
|
5
|
+
const apiClient = require("./api-client.cjs");
|
|
6
|
+
const itemCache = require("./item-cache.cjs");
|
|
7
|
+
const scopeRegistry = require("./scope-registry.cjs");
|
|
8
|
+
const index = require("./sources/index.cjs");
|
|
9
|
+
function webpageMentionFingerprint(webpages) {
|
|
10
|
+
return JSON.stringify(
|
|
11
|
+
webpages.map(({ tabId, title, url, isCurrent }) => [
|
|
12
|
+
tabId,
|
|
13
|
+
title,
|
|
14
|
+
url,
|
|
15
|
+
isCurrent
|
|
16
|
+
])
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
const ROOT_MENTION_CATEGORIES = [
|
|
20
|
+
"favorites",
|
|
21
|
+
"assets",
|
|
22
|
+
"projects",
|
|
23
|
+
"browse_profiles",
|
|
24
|
+
"folders",
|
|
25
|
+
"tools",
|
|
26
|
+
"toolkits",
|
|
27
|
+
"team",
|
|
28
|
+
"drives"
|
|
29
|
+
];
|
|
30
|
+
function providedToolsFingerprint(tools) {
|
|
31
|
+
return JSON.stringify(
|
|
32
|
+
tools.map(({ id, name, type, description, icon }) => [
|
|
33
|
+
id,
|
|
34
|
+
name,
|
|
35
|
+
type,
|
|
36
|
+
description ?? null,
|
|
37
|
+
icon ?? null
|
|
38
|
+
])
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
function buildStore({
|
|
42
|
+
auth,
|
|
43
|
+
getWebpages,
|
|
44
|
+
getTools,
|
|
45
|
+
rootCategories
|
|
46
|
+
}) {
|
|
47
|
+
const registry = scopeRegistry.createScopeRegistry();
|
|
48
|
+
const cache = itemCache.createItemCache();
|
|
49
|
+
scopeRegistry.registerSource(registry, "root", index.transformRootCategories, {
|
|
50
|
+
categories: [...rootCategories],
|
|
51
|
+
getWebpages
|
|
52
|
+
});
|
|
53
|
+
scopeRegistry.registerSource(
|
|
54
|
+
registry,
|
|
55
|
+
"global_search",
|
|
56
|
+
getTools ? index.withProvidedTools(index.fetchGlobalSearch, getTools) : index.fetchGlobalSearch,
|
|
57
|
+
{ auth }
|
|
58
|
+
);
|
|
59
|
+
scopeRegistry.bindScopes(registry, "root", "global_search");
|
|
60
|
+
scopeRegistry.registerSource(registry, "athena_assets", index.fetchAssets, { auth, limit: 50 });
|
|
61
|
+
scopeRegistry.registerSource(registry, "favorites", index.fetchFavorites, { auth, limit: 50 });
|
|
62
|
+
scopeRegistry.registerSource(
|
|
63
|
+
registry,
|
|
64
|
+
"athena_folders",
|
|
65
|
+
index.fetchFolders,
|
|
66
|
+
{ auth, limit: 50 },
|
|
67
|
+
true
|
|
68
|
+
);
|
|
69
|
+
scopeRegistry.registerSource(registry, "internal_drive", index.fetchFolderContents, {
|
|
70
|
+
auth,
|
|
71
|
+
limit: 50
|
|
72
|
+
});
|
|
73
|
+
scopeRegistry.registerSource(registry, "athena_projects", index.fetchTypedAssets, {
|
|
74
|
+
auth,
|
|
75
|
+
includeOnlyTypes: ["project"],
|
|
76
|
+
limit: 50
|
|
77
|
+
});
|
|
78
|
+
scopeRegistry.registerSource(registry, "athena_browse_profiles", index.fetchTypedAssets, {
|
|
79
|
+
auth,
|
|
80
|
+
includeOnlyTypes: ["browse_profile"],
|
|
81
|
+
limit: 50
|
|
82
|
+
});
|
|
83
|
+
if (getTools) {
|
|
84
|
+
scopeRegistry.registerSource(registry, "tools", index.transformProvidedTools, {
|
|
85
|
+
getTools,
|
|
86
|
+
type: "tool"
|
|
87
|
+
});
|
|
88
|
+
scopeRegistry.registerSource(registry, "toolkits", index.transformProvidedTools, {
|
|
89
|
+
getTools,
|
|
90
|
+
type: "toolkit"
|
|
91
|
+
});
|
|
92
|
+
} else {
|
|
93
|
+
scopeRegistry.registerSource(registry, "tools", index.fetchTools, { auth });
|
|
94
|
+
scopeRegistry.registerSource(registry, "toolkits", index.fetchToolkits, { auth });
|
|
95
|
+
}
|
|
96
|
+
scopeRegistry.registerSource(registry, "team", index.fetchTeam, { auth });
|
|
97
|
+
scopeRegistry.registerSource(registry, "drive_catalogs", index.fetchDrives, { auth });
|
|
98
|
+
return new store.Store({ registry, cache });
|
|
99
|
+
}
|
|
100
|
+
function useMentionSuggestions({
|
|
101
|
+
webpages,
|
|
102
|
+
tools,
|
|
103
|
+
rootCategories = ROOT_MENTION_CATEGORIES
|
|
104
|
+
}) {
|
|
105
|
+
const auth = apiClient.useMentionAuth();
|
|
106
|
+
const webpagesRef = react.useRef(webpages);
|
|
107
|
+
webpagesRef.current = webpages;
|
|
108
|
+
const toolsRef = react.useRef(tools);
|
|
109
|
+
toolsRef.current = tools;
|
|
110
|
+
const hasProvidedTools = tools !== void 0;
|
|
111
|
+
const store2 = react.useMemo(
|
|
112
|
+
() => buildStore({
|
|
113
|
+
auth,
|
|
114
|
+
getWebpages: () => webpagesRef.current,
|
|
115
|
+
getTools: hasProvidedTools ? () => toolsRef.current ?? [] : void 0,
|
|
116
|
+
rootCategories
|
|
117
|
+
}),
|
|
118
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
119
|
+
[
|
|
120
|
+
auth.backendUrl,
|
|
121
|
+
auth.accessToken,
|
|
122
|
+
auth.apiKey,
|
|
123
|
+
auth.workspaceId,
|
|
124
|
+
auth.userId,
|
|
125
|
+
hasProvidedTools,
|
|
126
|
+
rootCategories.join(",")
|
|
127
|
+
]
|
|
128
|
+
);
|
|
129
|
+
const invalidate = react.useMemo(
|
|
130
|
+
() => (scope) => {
|
|
131
|
+
const state = store2.state;
|
|
132
|
+
const { registry, cache } = state;
|
|
133
|
+
if (cache.items) {
|
|
134
|
+
for (const item of Object.values(cache.items)) {
|
|
135
|
+
item.visibleInScopes.delete(scope);
|
|
136
|
+
}
|
|
137
|
+
for (const [id, item] of Object.entries(cache.items)) {
|
|
138
|
+
if (item.visibleInScopes.size === 0) {
|
|
139
|
+
delete cache.items[id];
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (registry.entries[scope]) {
|
|
144
|
+
registry.entries[scope].fetchStates = {};
|
|
145
|
+
}
|
|
146
|
+
store2.setState((prev) => ({ ...prev }));
|
|
147
|
+
},
|
|
148
|
+
[store2]
|
|
149
|
+
);
|
|
150
|
+
const webpageFingerprint = webpageMentionFingerprint(webpages);
|
|
151
|
+
const previousWebpageFingerprintRef = react.useRef(null);
|
|
152
|
+
react.useEffect(() => {
|
|
153
|
+
if (previousWebpageFingerprintRef.current === webpageFingerprint) return;
|
|
154
|
+
previousWebpageFingerprintRef.current = webpageFingerprint;
|
|
155
|
+
invalidate("root");
|
|
156
|
+
}, [invalidate, webpageFingerprint]);
|
|
157
|
+
const toolsFingerprint = tools ? providedToolsFingerprint(tools) : null;
|
|
158
|
+
const previousToolsFingerprintRef = react.useRef(null);
|
|
159
|
+
react.useEffect(() => {
|
|
160
|
+
if (previousToolsFingerprintRef.current === toolsFingerprint) return;
|
|
161
|
+
previousToolsFingerprintRef.current = toolsFingerprint;
|
|
162
|
+
if (toolsFingerprint === null) return;
|
|
163
|
+
invalidate("tools");
|
|
164
|
+
invalidate("toolkits");
|
|
165
|
+
invalidate("global_search");
|
|
166
|
+
}, [invalidate, toolsFingerprint]);
|
|
167
|
+
return { store: store2, invalidate };
|
|
168
|
+
}
|
|
169
|
+
exports.ROOT_MENTION_CATEGORIES = ROOT_MENTION_CATEGORIES;
|
|
170
|
+
exports.providedToolsFingerprint = providedToolsFingerprint;
|
|
171
|
+
exports.useMentionSuggestions = useMentionSuggestions;
|
|
172
|
+
exports.webpageMentionFingerprint = webpageMentionFingerprint;
|
|
173
|
+
//# sourceMappingURL=use-mention-suggestions.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mention-suggestions.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/data/use-mention-suggestions.ts"],"sourcesContent":["/**\n * Mention Suggestions Store — shared by every Athena chat host (the Chrome\n * side panel, the Office task pane, the SDK's AthenaChat).\n *\n * Full Olympus-style mention store with all categories:\n * Favorites, Assets, Projects, Browse Profiles, Folders,\n * current/group webpages, Team, Workspace, Drives + Global Search.\n *\n * Uses registry + cache architecture from Olympus with\n * async data fetching via GraphQL. A host may hand the Tools / Toolkits\n * categories its own list instead of the server catalog (`tools`).\n */\n\nimport { Store } from \"@tanstack/store\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport type { MentionAuthContext } from \"./api-client\";\nimport { useMentionAuth } from \"./api-client\";\nimport { createItemCache, type ItemCache } from \"./item-cache\";\nimport {\n createScopeRegistry,\n registerSource,\n bindScopes,\n type ScopeRegistry,\n} from \"./scope-registry\";\nimport {\n transformRootCategories,\n fetchAssets,\n fetchFavorites,\n fetchFolders,\n fetchFolderContents,\n fetchTypedAssets,\n fetchTeam,\n fetchTools,\n fetchToolkits,\n fetchDrives,\n fetchGlobalSearch,\n transformProvidedTools,\n withProvidedTools,\n} from \"./sources\";\nimport type { MentionTool, WebpageMention } from \"./types\";\n\nexport function webpageMentionFingerprint(\n webpages: readonly WebpageMention[],\n): string {\n return JSON.stringify(\n webpages.map(({ tabId, title, url, isCurrent }) => [\n tabId,\n title,\n url,\n isCurrent,\n ]),\n );\n}\n\n// ── Store types ──\n\nexport interface MentionSuggestionsStoreState {\n registry: ScopeRegistry;\n cache: ItemCache;\n}\n\nexport type MentionSuggestionsStore = Store<MentionSuggestionsStoreState>;\n\n// ── Categories ──\n\n/**\n * All mention menu categories, in display order.\n */\nexport const ROOT_MENTION_CATEGORIES = [\n \"favorites\",\n \"assets\",\n \"projects\",\n \"browse_profiles\",\n \"folders\",\n \"tools\",\n \"toolkits\",\n \"team\",\n \"drives\",\n] as const;\n\nexport type MentionRootCategory = (typeof ROOT_MENTION_CATEGORIES)[number];\n\n// ── Store builder ──\n\n/** Stable fingerprint of a host's tool list, for cache invalidation. */\nexport function providedToolsFingerprint(tools: readonly MentionTool[]): string {\n return JSON.stringify(\n tools.map(({ id, name, type, description, icon }) => [\n id,\n name,\n type,\n description ?? null,\n icon ?? null,\n ]),\n );\n}\n\nfunction buildStore({\n auth,\n getWebpages,\n getTools,\n rootCategories,\n}: {\n auth: MentionAuthContext;\n getWebpages: () => readonly WebpageMention[];\n /** Present when the host supplies the Tools / Toolkits list itself. */\n getTools?: () => readonly MentionTool[];\n rootCategories: readonly MentionRootCategory[];\n}): MentionSuggestionsStore {\n const registry = createScopeRegistry();\n const cache = createItemCache();\n\n // ── Root categories ──\n registerSource(registry, \"root\", transformRootCategories, {\n categories: [...rootCategories],\n getWebpages,\n });\n\n // ── Global search (aggregated) ──\n // A host's own tools ride along so a root query finds them beside assets.\n registerSource(\n registry,\n \"global_search\",\n getTools ? withProvidedTools(fetchGlobalSearch, getTools) : fetchGlobalSearch,\n { auth },\n );\n bindScopes(registry, \"root\", \"global_search\");\n\n // ── Assets ──\n registerSource(registry, \"athena_assets\", fetchAssets, { auth, limit: 50 });\n\n // ── Favorites ──\n registerSource(registry, \"favorites\", fetchFavorites, { auth, limit: 50 });\n\n // ── Folders (flat list) ──\n registerSource(\n registry,\n \"athena_folders\",\n fetchFolders,\n { auth, limit: 50 },\n true /* isFlat */,\n );\n\n // ── Internal drive (folder navigation root) ──\n registerSource(registry, \"internal_drive\", fetchFolderContents, {\n auth,\n limit: 50,\n });\n\n // ── Projects ──\n registerSource(registry, \"athena_projects\", fetchTypedAssets, {\n auth,\n includeOnlyTypes: [\"project\"],\n limit: 50,\n });\n\n // ── Browse Profiles ──\n registerSource(registry, \"athena_browse_profiles\", fetchTypedAssets, {\n auth,\n includeOnlyTypes: [\"browse_profile\"],\n limit: 50,\n });\n\n // ── Tools & Toolkits ── the server catalog, or the host's own list\n if (getTools) {\n registerSource(registry, \"tools\", transformProvidedTools, {\n getTools,\n type: \"tool\",\n });\n registerSource(registry, \"toolkits\", transformProvidedTools, {\n getTools,\n type: \"toolkit\",\n });\n } else {\n registerSource(registry, \"tools\", fetchTools, { auth });\n registerSource(registry, \"toolkits\", fetchToolkits, { auth });\n }\n\n // ── Team ──\n registerSource(registry, \"team\", fetchTeam, { auth });\n\n // ── Drives (catalogs) ──\n registerSource(registry, \"drive_catalogs\", fetchDrives, { auth });\n\n return new Store<MentionSuggestionsStoreState>({ registry, cache });\n}\n\n// ── Hook ──\n\n/**\n * Creates a stable MentionSuggestionsStore.\n * Uses MentionAuthCtx for API credentials.\n */\nexport function useMentionSuggestions({\n webpages,\n tools,\n rootCategories = ROOT_MENTION_CATEGORIES,\n}: {\n webpages: readonly WebpageMention[];\n /**\n * Host-provided Tools / Toolkits candidates. When set (even empty) they\n * replace the server tool catalog for those categories and join root\n * search results; omitted, the categories fetch the catalog.\n */\n tools?: readonly MentionTool[];\n /** Categories shown at the top level; hosts can narrow the default set. */\n rootCategories?: readonly MentionRootCategory[];\n}): {\n store: MentionSuggestionsStore;\n invalidate: (scope: string) => void;\n} {\n const auth = useMentionAuth();\n const webpagesRef = useRef(webpages);\n webpagesRef.current = webpages;\n const toolsRef = useRef(tools);\n toolsRef.current = tools;\n const hasProvidedTools = tools !== undefined;\n\n // Depend on primitive values to avoid rebuilding store on object identity changes\n const store = useMemo(\n () =>\n buildStore({\n auth,\n getWebpages: () => webpagesRef.current,\n getTools: hasProvidedTools ? () => toolsRef.current ?? [] : undefined,\n rootCategories,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n auth.backendUrl,\n auth.accessToken,\n auth.apiKey,\n auth.workspaceId,\n auth.userId,\n hasProvidedTools,\n rootCategories.join(\",\"),\n ],\n );\n\n const invalidate = useMemo(\n () => (scope: string) => {\n const state = store.state;\n const { registry, cache } = state;\n\n // Clear scope from cache\n if (cache.items) {\n for (const item of Object.values(cache.items)) {\n item.visibleInScopes.delete(scope);\n }\n // Remove orphaned items\n for (const [id, item] of Object.entries(cache.items)) {\n if (item.visibleInScopes.size === 0) {\n delete cache.items[id];\n }\n }\n }\n\n // Reset fetch states\n if (registry.entries[scope]) {\n registry.entries[scope].fetchStates = {};\n }\n\n store.setState((prev) => ({ ...prev }));\n },\n [store],\n );\n\n const webpageFingerprint = webpageMentionFingerprint(webpages);\n const previousWebpageFingerprintRef = useRef<string | null>(null);\n\n useEffect(() => {\n if (previousWebpageFingerprintRef.current === webpageFingerprint) return;\n previousWebpageFingerprintRef.current = webpageFingerprint;\n invalidate(\"root\");\n }, [invalidate, webpageFingerprint]);\n\n // A changed tool list drops the cached Tools / Toolkits entries (and the\n // root search results they were folded into) so the next open re-reads it.\n const toolsFingerprint = tools ? providedToolsFingerprint(tools) : null;\n const previousToolsFingerprintRef = useRef<string | null>(null);\n\n useEffect(() => {\n if (previousToolsFingerprintRef.current === toolsFingerprint) return;\n previousToolsFingerprintRef.current = toolsFingerprint;\n if (toolsFingerprint === null) return;\n invalidate(\"tools\");\n invalidate(\"toolkits\");\n invalidate(\"global_search\");\n }, [invalidate, toolsFingerprint]);\n\n return { store, invalidate };\n}\n"],"names":["createScopeRegistry","createItemCache","registerSource","transformRootCategories","withProvidedTools","fetchGlobalSearch","bindScopes","fetchAssets","fetchFavorites","fetchFolders","fetchFolderContents","fetchTypedAssets","transformProvidedTools","fetchTools","fetchToolkits","fetchTeam","fetchDrives","Store","useMentionAuth","useRef","store","useMemo","useEffect"],"mappings":"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"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Mention Suggestions Store — shared by every Athena chat host (the Chrome
|
|
3
|
+
* side panel, the Office task pane, the SDK's AthenaChat).
|
|
3
4
|
*
|
|
4
5
|
* Full Olympus-style mention store with all categories:
|
|
5
6
|
* Favorites, Assets, Projects, Browse Profiles, Folders,
|
|
6
7
|
* current/group webpages, Team, Workspace, Drives + Global Search.
|
|
7
8
|
*
|
|
8
9
|
* Uses registry + cache architecture from Olympus with
|
|
9
|
-
* async data fetching via GraphQL.
|
|
10
|
+
* async data fetching via GraphQL. A host may hand the Tools / Toolkits
|
|
11
|
+
* categories its own list instead of the server catalog (`tools`).
|
|
10
12
|
*/
|
|
11
13
|
import { Store } from "@tanstack/store";
|
|
12
14
|
import { type ItemCache } from "./item-cache";
|
|
13
15
|
import { type ScopeRegistry } from "./scope-registry";
|
|
14
|
-
import type { WebpageMention } from "./types";
|
|
16
|
+
import type { MentionTool, WebpageMention } from "./types";
|
|
15
17
|
export declare function webpageMentionFingerprint(webpages: readonly WebpageMention[]): string;
|
|
16
18
|
export interface MentionSuggestionsStoreState {
|
|
17
19
|
registry: ScopeRegistry;
|
|
@@ -23,12 +25,20 @@ export type MentionSuggestionsStore = Store<MentionSuggestionsStoreState>;
|
|
|
23
25
|
*/
|
|
24
26
|
export declare const ROOT_MENTION_CATEGORIES: readonly ["favorites", "assets", "projects", "browse_profiles", "folders", "tools", "toolkits", "team", "drives"];
|
|
25
27
|
export type MentionRootCategory = (typeof ROOT_MENTION_CATEGORIES)[number];
|
|
28
|
+
/** Stable fingerprint of a host's tool list, for cache invalidation. */
|
|
29
|
+
export declare function providedToolsFingerprint(tools: readonly MentionTool[]): string;
|
|
26
30
|
/**
|
|
27
31
|
* Creates a stable MentionSuggestionsStore.
|
|
28
32
|
* Uses MentionAuthCtx for API credentials.
|
|
29
33
|
*/
|
|
30
|
-
export declare function useMentionSuggestions({ webpages, rootCategories, }: {
|
|
34
|
+
export declare function useMentionSuggestions({ webpages, tools, rootCategories, }: {
|
|
31
35
|
webpages: readonly WebpageMention[];
|
|
36
|
+
/**
|
|
37
|
+
* Host-provided Tools / Toolkits candidates. When set (even empty) they
|
|
38
|
+
* replace the server tool catalog for those categories and join root
|
|
39
|
+
* search results; omitted, the categories fetch the catalog.
|
|
40
|
+
*/
|
|
41
|
+
tools?: readonly MentionTool[];
|
|
32
42
|
/** Categories shown at the top level; hosts can narrow the default set. */
|
|
33
43
|
rootCategories?: readonly MentionRootCategory[];
|
|
34
44
|
}): {
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { Store } from "@tanstack/store";
|
|
2
|
+
import { useRef, useMemo, useEffect } from "react";
|
|
3
|
+
import { useMentionAuth } from "./api-client.js";
|
|
4
|
+
import { createItemCache } from "./item-cache.js";
|
|
5
|
+
import { registerSource, bindScopes, createScopeRegistry } from "./scope-registry.js";
|
|
6
|
+
import { transformRootCategories, fetchGlobalSearch, withProvidedTools, fetchAssets, fetchFavorites, fetchFolders, fetchFolderContents, fetchTypedAssets, transformProvidedTools, fetchTools, fetchToolkits, fetchTeam, fetchDrives } from "./sources/index.js";
|
|
7
|
+
function webpageMentionFingerprint(webpages) {
|
|
8
|
+
return JSON.stringify(
|
|
9
|
+
webpages.map(({ tabId, title, url, isCurrent }) => [
|
|
10
|
+
tabId,
|
|
11
|
+
title,
|
|
12
|
+
url,
|
|
13
|
+
isCurrent
|
|
14
|
+
])
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
const ROOT_MENTION_CATEGORIES = [
|
|
18
|
+
"favorites",
|
|
19
|
+
"assets",
|
|
20
|
+
"projects",
|
|
21
|
+
"browse_profiles",
|
|
22
|
+
"folders",
|
|
23
|
+
"tools",
|
|
24
|
+
"toolkits",
|
|
25
|
+
"team",
|
|
26
|
+
"drives"
|
|
27
|
+
];
|
|
28
|
+
function providedToolsFingerprint(tools) {
|
|
29
|
+
return JSON.stringify(
|
|
30
|
+
tools.map(({ id, name, type, description, icon }) => [
|
|
31
|
+
id,
|
|
32
|
+
name,
|
|
33
|
+
type,
|
|
34
|
+
description ?? null,
|
|
35
|
+
icon ?? null
|
|
36
|
+
])
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
function buildStore({
|
|
40
|
+
auth,
|
|
41
|
+
getWebpages,
|
|
42
|
+
getTools,
|
|
43
|
+
rootCategories
|
|
44
|
+
}) {
|
|
45
|
+
const registry = createScopeRegistry();
|
|
46
|
+
const cache = createItemCache();
|
|
47
|
+
registerSource(registry, "root", transformRootCategories, {
|
|
48
|
+
categories: [...rootCategories],
|
|
49
|
+
getWebpages
|
|
50
|
+
});
|
|
51
|
+
registerSource(
|
|
52
|
+
registry,
|
|
53
|
+
"global_search",
|
|
54
|
+
getTools ? withProvidedTools(fetchGlobalSearch, getTools) : fetchGlobalSearch,
|
|
55
|
+
{ auth }
|
|
56
|
+
);
|
|
57
|
+
bindScopes(registry, "root", "global_search");
|
|
58
|
+
registerSource(registry, "athena_assets", fetchAssets, { auth, limit: 50 });
|
|
59
|
+
registerSource(registry, "favorites", fetchFavorites, { auth, limit: 50 });
|
|
60
|
+
registerSource(
|
|
61
|
+
registry,
|
|
62
|
+
"athena_folders",
|
|
63
|
+
fetchFolders,
|
|
64
|
+
{ auth, limit: 50 },
|
|
65
|
+
true
|
|
66
|
+
);
|
|
67
|
+
registerSource(registry, "internal_drive", fetchFolderContents, {
|
|
68
|
+
auth,
|
|
69
|
+
limit: 50
|
|
70
|
+
});
|
|
71
|
+
registerSource(registry, "athena_projects", fetchTypedAssets, {
|
|
72
|
+
auth,
|
|
73
|
+
includeOnlyTypes: ["project"],
|
|
74
|
+
limit: 50
|
|
75
|
+
});
|
|
76
|
+
registerSource(registry, "athena_browse_profiles", fetchTypedAssets, {
|
|
77
|
+
auth,
|
|
78
|
+
includeOnlyTypes: ["browse_profile"],
|
|
79
|
+
limit: 50
|
|
80
|
+
});
|
|
81
|
+
if (getTools) {
|
|
82
|
+
registerSource(registry, "tools", transformProvidedTools, {
|
|
83
|
+
getTools,
|
|
84
|
+
type: "tool"
|
|
85
|
+
});
|
|
86
|
+
registerSource(registry, "toolkits", transformProvidedTools, {
|
|
87
|
+
getTools,
|
|
88
|
+
type: "toolkit"
|
|
89
|
+
});
|
|
90
|
+
} else {
|
|
91
|
+
registerSource(registry, "tools", fetchTools, { auth });
|
|
92
|
+
registerSource(registry, "toolkits", fetchToolkits, { auth });
|
|
93
|
+
}
|
|
94
|
+
registerSource(registry, "team", fetchTeam, { auth });
|
|
95
|
+
registerSource(registry, "drive_catalogs", fetchDrives, { auth });
|
|
96
|
+
return new Store({ registry, cache });
|
|
97
|
+
}
|
|
98
|
+
function useMentionSuggestions({
|
|
99
|
+
webpages,
|
|
100
|
+
tools,
|
|
101
|
+
rootCategories = ROOT_MENTION_CATEGORIES
|
|
102
|
+
}) {
|
|
103
|
+
const auth = useMentionAuth();
|
|
104
|
+
const webpagesRef = useRef(webpages);
|
|
105
|
+
webpagesRef.current = webpages;
|
|
106
|
+
const toolsRef = useRef(tools);
|
|
107
|
+
toolsRef.current = tools;
|
|
108
|
+
const hasProvidedTools = tools !== void 0;
|
|
109
|
+
const store = useMemo(
|
|
110
|
+
() => buildStore({
|
|
111
|
+
auth,
|
|
112
|
+
getWebpages: () => webpagesRef.current,
|
|
113
|
+
getTools: hasProvidedTools ? () => toolsRef.current ?? [] : void 0,
|
|
114
|
+
rootCategories
|
|
115
|
+
}),
|
|
116
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
117
|
+
[
|
|
118
|
+
auth.backendUrl,
|
|
119
|
+
auth.accessToken,
|
|
120
|
+
auth.apiKey,
|
|
121
|
+
auth.workspaceId,
|
|
122
|
+
auth.userId,
|
|
123
|
+
hasProvidedTools,
|
|
124
|
+
rootCategories.join(",")
|
|
125
|
+
]
|
|
126
|
+
);
|
|
127
|
+
const invalidate = useMemo(
|
|
128
|
+
() => (scope) => {
|
|
129
|
+
const state = store.state;
|
|
130
|
+
const { registry, cache } = state;
|
|
131
|
+
if (cache.items) {
|
|
132
|
+
for (const item of Object.values(cache.items)) {
|
|
133
|
+
item.visibleInScopes.delete(scope);
|
|
134
|
+
}
|
|
135
|
+
for (const [id, item] of Object.entries(cache.items)) {
|
|
136
|
+
if (item.visibleInScopes.size === 0) {
|
|
137
|
+
delete cache.items[id];
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (registry.entries[scope]) {
|
|
142
|
+
registry.entries[scope].fetchStates = {};
|
|
143
|
+
}
|
|
144
|
+
store.setState((prev) => ({ ...prev }));
|
|
145
|
+
},
|
|
146
|
+
[store]
|
|
147
|
+
);
|
|
148
|
+
const webpageFingerprint = webpageMentionFingerprint(webpages);
|
|
149
|
+
const previousWebpageFingerprintRef = useRef(null);
|
|
150
|
+
useEffect(() => {
|
|
151
|
+
if (previousWebpageFingerprintRef.current === webpageFingerprint) return;
|
|
152
|
+
previousWebpageFingerprintRef.current = webpageFingerprint;
|
|
153
|
+
invalidate("root");
|
|
154
|
+
}, [invalidate, webpageFingerprint]);
|
|
155
|
+
const toolsFingerprint = tools ? providedToolsFingerprint(tools) : null;
|
|
156
|
+
const previousToolsFingerprintRef = useRef(null);
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
if (previousToolsFingerprintRef.current === toolsFingerprint) return;
|
|
159
|
+
previousToolsFingerprintRef.current = toolsFingerprint;
|
|
160
|
+
if (toolsFingerprint === null) return;
|
|
161
|
+
invalidate("tools");
|
|
162
|
+
invalidate("toolkits");
|
|
163
|
+
invalidate("global_search");
|
|
164
|
+
}, [invalidate, toolsFingerprint]);
|
|
165
|
+
return { store, invalidate };
|
|
166
|
+
}
|
|
167
|
+
export {
|
|
168
|
+
ROOT_MENTION_CATEGORIES,
|
|
169
|
+
providedToolsFingerprint,
|
|
170
|
+
useMentionSuggestions,
|
|
171
|
+
webpageMentionFingerprint
|
|
172
|
+
};
|
|
173
|
+
//# sourceMappingURL=use-mention-suggestions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-mention-suggestions.js","sources":["../../../../../src/chat-ui/mentions/suggestions/data/use-mention-suggestions.ts"],"sourcesContent":["/**\n * Mention Suggestions Store — shared by every Athena chat host (the Chrome\n * side panel, the Office task pane, the SDK's AthenaChat).\n *\n * Full Olympus-style mention store with all categories:\n * Favorites, Assets, Projects, Browse Profiles, Folders,\n * current/group webpages, Team, Workspace, Drives + Global Search.\n *\n * Uses registry + cache architecture from Olympus with\n * async data fetching via GraphQL. A host may hand the Tools / Toolkits\n * categories its own list instead of the server catalog (`tools`).\n */\n\nimport { Store } from \"@tanstack/store\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport type { MentionAuthContext } from \"./api-client\";\nimport { useMentionAuth } from \"./api-client\";\nimport { createItemCache, type ItemCache } from \"./item-cache\";\nimport {\n createScopeRegistry,\n registerSource,\n bindScopes,\n type ScopeRegistry,\n} from \"./scope-registry\";\nimport {\n transformRootCategories,\n fetchAssets,\n fetchFavorites,\n fetchFolders,\n fetchFolderContents,\n fetchTypedAssets,\n fetchTeam,\n fetchTools,\n fetchToolkits,\n fetchDrives,\n fetchGlobalSearch,\n transformProvidedTools,\n withProvidedTools,\n} from \"./sources\";\nimport type { MentionTool, WebpageMention } from \"./types\";\n\nexport function webpageMentionFingerprint(\n webpages: readonly WebpageMention[],\n): string {\n return JSON.stringify(\n webpages.map(({ tabId, title, url, isCurrent }) => [\n tabId,\n title,\n url,\n isCurrent,\n ]),\n );\n}\n\n// ── Store types ──\n\nexport interface MentionSuggestionsStoreState {\n registry: ScopeRegistry;\n cache: ItemCache;\n}\n\nexport type MentionSuggestionsStore = Store<MentionSuggestionsStoreState>;\n\n// ── Categories ──\n\n/**\n * All mention menu categories, in display order.\n */\nexport const ROOT_MENTION_CATEGORIES = [\n \"favorites\",\n \"assets\",\n \"projects\",\n \"browse_profiles\",\n \"folders\",\n \"tools\",\n \"toolkits\",\n \"team\",\n \"drives\",\n] as const;\n\nexport type MentionRootCategory = (typeof ROOT_MENTION_CATEGORIES)[number];\n\n// ── Store builder ──\n\n/** Stable fingerprint of a host's tool list, for cache invalidation. */\nexport function providedToolsFingerprint(tools: readonly MentionTool[]): string {\n return JSON.stringify(\n tools.map(({ id, name, type, description, icon }) => [\n id,\n name,\n type,\n description ?? null,\n icon ?? null,\n ]),\n );\n}\n\nfunction buildStore({\n auth,\n getWebpages,\n getTools,\n rootCategories,\n}: {\n auth: MentionAuthContext;\n getWebpages: () => readonly WebpageMention[];\n /** Present when the host supplies the Tools / Toolkits list itself. */\n getTools?: () => readonly MentionTool[];\n rootCategories: readonly MentionRootCategory[];\n}): MentionSuggestionsStore {\n const registry = createScopeRegistry();\n const cache = createItemCache();\n\n // ── Root categories ──\n registerSource(registry, \"root\", transformRootCategories, {\n categories: [...rootCategories],\n getWebpages,\n });\n\n // ── Global search (aggregated) ──\n // A host's own tools ride along so a root query finds them beside assets.\n registerSource(\n registry,\n \"global_search\",\n getTools ? withProvidedTools(fetchGlobalSearch, getTools) : fetchGlobalSearch,\n { auth },\n );\n bindScopes(registry, \"root\", \"global_search\");\n\n // ── Assets ──\n registerSource(registry, \"athena_assets\", fetchAssets, { auth, limit: 50 });\n\n // ── Favorites ──\n registerSource(registry, \"favorites\", fetchFavorites, { auth, limit: 50 });\n\n // ── Folders (flat list) ──\n registerSource(\n registry,\n \"athena_folders\",\n fetchFolders,\n { auth, limit: 50 },\n true /* isFlat */,\n );\n\n // ── Internal drive (folder navigation root) ──\n registerSource(registry, \"internal_drive\", fetchFolderContents, {\n auth,\n limit: 50,\n });\n\n // ── Projects ──\n registerSource(registry, \"athena_projects\", fetchTypedAssets, {\n auth,\n includeOnlyTypes: [\"project\"],\n limit: 50,\n });\n\n // ── Browse Profiles ──\n registerSource(registry, \"athena_browse_profiles\", fetchTypedAssets, {\n auth,\n includeOnlyTypes: [\"browse_profile\"],\n limit: 50,\n });\n\n // ── Tools & Toolkits ── the server catalog, or the host's own list\n if (getTools) {\n registerSource(registry, \"tools\", transformProvidedTools, {\n getTools,\n type: \"tool\",\n });\n registerSource(registry, \"toolkits\", transformProvidedTools, {\n getTools,\n type: \"toolkit\",\n });\n } else {\n registerSource(registry, \"tools\", fetchTools, { auth });\n registerSource(registry, \"toolkits\", fetchToolkits, { auth });\n }\n\n // ── Team ──\n registerSource(registry, \"team\", fetchTeam, { auth });\n\n // ── Drives (catalogs) ──\n registerSource(registry, \"drive_catalogs\", fetchDrives, { auth });\n\n return new Store<MentionSuggestionsStoreState>({ registry, cache });\n}\n\n// ── Hook ──\n\n/**\n * Creates a stable MentionSuggestionsStore.\n * Uses MentionAuthCtx for API credentials.\n */\nexport function useMentionSuggestions({\n webpages,\n tools,\n rootCategories = ROOT_MENTION_CATEGORIES,\n}: {\n webpages: readonly WebpageMention[];\n /**\n * Host-provided Tools / Toolkits candidates. When set (even empty) they\n * replace the server tool catalog for those categories and join root\n * search results; omitted, the categories fetch the catalog.\n */\n tools?: readonly MentionTool[];\n /** Categories shown at the top level; hosts can narrow the default set. */\n rootCategories?: readonly MentionRootCategory[];\n}): {\n store: MentionSuggestionsStore;\n invalidate: (scope: string) => void;\n} {\n const auth = useMentionAuth();\n const webpagesRef = useRef(webpages);\n webpagesRef.current = webpages;\n const toolsRef = useRef(tools);\n toolsRef.current = tools;\n const hasProvidedTools = tools !== undefined;\n\n // Depend on primitive values to avoid rebuilding store on object identity changes\n const store = useMemo(\n () =>\n buildStore({\n auth,\n getWebpages: () => webpagesRef.current,\n getTools: hasProvidedTools ? () => toolsRef.current ?? [] : undefined,\n rootCategories,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n auth.backendUrl,\n auth.accessToken,\n auth.apiKey,\n auth.workspaceId,\n auth.userId,\n hasProvidedTools,\n rootCategories.join(\",\"),\n ],\n );\n\n const invalidate = useMemo(\n () => (scope: string) => {\n const state = store.state;\n const { registry, cache } = state;\n\n // Clear scope from cache\n if (cache.items) {\n for (const item of Object.values(cache.items)) {\n item.visibleInScopes.delete(scope);\n }\n // Remove orphaned items\n for (const [id, item] of Object.entries(cache.items)) {\n if (item.visibleInScopes.size === 0) {\n delete cache.items[id];\n }\n }\n }\n\n // Reset fetch states\n if (registry.entries[scope]) {\n registry.entries[scope].fetchStates = {};\n }\n\n store.setState((prev) => ({ ...prev }));\n },\n [store],\n );\n\n const webpageFingerprint = webpageMentionFingerprint(webpages);\n const previousWebpageFingerprintRef = useRef<string | null>(null);\n\n useEffect(() => {\n if (previousWebpageFingerprintRef.current === webpageFingerprint) return;\n previousWebpageFingerprintRef.current = webpageFingerprint;\n invalidate(\"root\");\n }, [invalidate, webpageFingerprint]);\n\n // A changed tool list drops the cached Tools / Toolkits entries (and the\n // root search results they were folded into) so the next open re-reads it.\n const toolsFingerprint = tools ? providedToolsFingerprint(tools) : null;\n const previousToolsFingerprintRef = useRef<string | null>(null);\n\n useEffect(() => {\n if (previousToolsFingerprintRef.current === toolsFingerprint) return;\n previousToolsFingerprintRef.current = toolsFingerprint;\n if (toolsFingerprint === null) return;\n invalidate(\"tools\");\n invalidate(\"toolkits\");\n invalidate(\"global_search\");\n }, [invalidate, toolsFingerprint]);\n\n return { store, invalidate };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const reactStore = require("@tanstack/react-store");
|
|
4
|
+
const react = require("react");
|
|
5
|
+
const orchestrator = require("./orchestrator.cjs");
|
|
6
|
+
function useMenuItems(store, options) {
|
|
7
|
+
const { scope, query = "", minItems = 50, parentScope } = options;
|
|
8
|
+
const [targetCount, setTargetCount] = react.useState(minItems);
|
|
9
|
+
react.useEffect(() => {
|
|
10
|
+
setTargetCount(minItems);
|
|
11
|
+
}, [scope, query, minItems]);
|
|
12
|
+
const snapshot = reactStore.useStore(
|
|
13
|
+
store,
|
|
14
|
+
() => orchestrator.selectItems(store, scope, query, targetCount, parentScope)
|
|
15
|
+
);
|
|
16
|
+
react.useEffect(() => {
|
|
17
|
+
if (snapshot.items.length < targetCount && snapshot.hasMore && !snapshot.isFetching) {
|
|
18
|
+
orchestrator.triggerFetchIfNeeded(store, scope, query, targetCount, parentScope);
|
|
19
|
+
}
|
|
20
|
+
}, [
|
|
21
|
+
store,
|
|
22
|
+
scope,
|
|
23
|
+
query,
|
|
24
|
+
targetCount,
|
|
25
|
+
parentScope,
|
|
26
|
+
snapshot.items.length,
|
|
27
|
+
snapshot.hasMore,
|
|
28
|
+
snapshot.isFetching
|
|
29
|
+
]);
|
|
30
|
+
const loadMore = () => {
|
|
31
|
+
if (snapshot.hasMore && !snapshot.isFetching) {
|
|
32
|
+
setTargetCount((prev) => prev + 50);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
return {
|
|
36
|
+
items: snapshot.items,
|
|
37
|
+
isFetching: snapshot.isFetching,
|
|
38
|
+
hasMore: snapshot.hasMore,
|
|
39
|
+
loadMore,
|
|
40
|
+
targetCount
|
|
41
|
+
// Expose for debugging
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
exports.useMenuItems = useMenuItems;
|
|
45
|
+
//# sourceMappingURL=use-menu-items.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-menu-items.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/data/use-menu-items.ts"],"sourcesContent":["import { useStore } from '@tanstack/react-store';\nimport { useEffect, useState } from 'react';\nimport { selectItems, triggerFetchIfNeeded } from './orchestrator';\nimport type { MenuItem, MenuScope } from './types';\nimport type { MentionSuggestionsStore } from './use-mention-suggestions';\n\n/**\n * useMenuItems - Like React Query, but for menu items\n *\n * Clean, automatic hook that:\n * - Reads items from store (reactive!)\n * - Auto-fetches if needed (in useEffect)\n * - Returns clean interface { items, isFetching, hasMore }\n *\n * Usage:\n * ```typescript\n * const { items, isFetching, hasMore } = useMenuItems(store, {\n * scope: 'athena_folders',\n * query: 'doc',\n * minItems: 10,\n * parentScope: 'root'\n * });\n * ```\n */\nexport interface UseMenuItemsOptions {\n scope: MenuScope;\n query?: string;\n minItems?: number;\n parentScope?: MenuScope;\n}\n\nexport interface UseMenuItemsResult {\n items: MenuItem[];\n isFetching: boolean;\n hasMore: boolean;\n loadMore: () => void; // Explicit load more (not automatic!)\n targetCount: number; // Current target for debugging\n}\n\nexport function useMenuItems(\n store: MentionSuggestionsStore,\n options: UseMenuItemsOptions\n): UseMenuItemsResult {\n const { scope, query = '', minItems = 50, parentScope } = options;\n\n // Target item count (increases when user clicks \"Load More\")\n const [targetCount, setTargetCount] = useState(minItems);\n\n // Reset target when scope/query changes\n // biome-ignore lint/correctness/useExhaustiveDependencies: We intentionally reset on scope/query change\n useEffect(() => {\n setTargetCount(minItems);\n }, [scope, query, minItems]);\n\n // Read from store (pure, reactive)\n const snapshot = useStore(store, () =>\n selectItems(store, scope, query, targetCount, parentScope)\n );\n\n // Auto-fetch when: cached < target AND hasMore AND !fetching\n useEffect(() => {\n if (snapshot.items.length < targetCount && snapshot.hasMore && !snapshot.isFetching) {\n triggerFetchIfNeeded(store, scope, query, targetCount, parentScope);\n }\n }, [\n store,\n scope,\n query,\n targetCount,\n parentScope,\n snapshot.items.length,\n snapshot.hasMore,\n snapshot.isFetching,\n ]);\n\n // Explicit load more: Increase target by 50\n const loadMore = () => {\n if (snapshot.hasMore && !snapshot.isFetching) {\n setTargetCount((prev) => prev + 50);\n }\n };\n\n return {\n items: snapshot.items,\n isFetching: snapshot.isFetching,\n hasMore: snapshot.hasMore,\n loadMore,\n targetCount, // Expose for debugging\n };\n}\n"],"names":["useState","useEffect","useStore","selectItems","triggerFetchIfNeeded"],"mappings":";;;;;AAuCO,SAAS,aACd,OACA,SACoB;AACpB,QAAM,EAAE,OAAO,QAAQ,IAAI,WAAW,IAAI,gBAAgB;AAG1D,QAAM,CAAC,aAAa,cAAc,IAAIA,MAAAA,SAAS,QAAQ;AAIvDC,QAAAA,UAAU,MAAM;AACd,mBAAe,QAAQ;AAAA,EACzB,GAAG,CAAC,OAAO,OAAO,QAAQ,CAAC;AAG3B,QAAM,WAAWC,WAAAA;AAAAA,IAAS;AAAA,IAAO,MAC/BC,aAAAA,YAAY,OAAO,OAAO,OAAO,aAAa,WAAW;AAAA,EAAA;AAI3DF,QAAAA,UAAU,MAAM;AACd,QAAI,SAAS,MAAM,SAAS,eAAe,SAAS,WAAW,CAAC,SAAS,YAAY;AACnFG,mBAAAA,qBAAqB,OAAO,OAAO,OAAO,aAAa,WAAW;AAAA,IACpE;AAAA,EACF,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,MAAM;AAAA,IACf,SAAS;AAAA,IACT,SAAS;AAAA,EAAA,CACV;AAGD,QAAM,WAAW,MAAM;AACrB,QAAI,SAAS,WAAW,CAAC,SAAS,YAAY;AAC5C,qBAAe,CAAC,SAAS,OAAO,EAAE;AAAA,IACpC;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO,SAAS;AAAA,IAChB,YAAY,SAAS;AAAA,IACrB,SAAS,SAAS;AAAA,IAClB;AAAA,IACA;AAAA;AAAA,EAAA;AAEJ;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useStore } from "@tanstack/react-store";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
import { selectItems, triggerFetchIfNeeded } from "./orchestrator.js";
|
|
4
|
+
function useMenuItems(store, options) {
|
|
5
|
+
const { scope, query = "", minItems = 50, parentScope } = options;
|
|
6
|
+
const [targetCount, setTargetCount] = useState(minItems);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
setTargetCount(minItems);
|
|
9
|
+
}, [scope, query, minItems]);
|
|
10
|
+
const snapshot = useStore(
|
|
11
|
+
store,
|
|
12
|
+
() => selectItems(store, scope, query, targetCount, parentScope)
|
|
13
|
+
);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
if (snapshot.items.length < targetCount && snapshot.hasMore && !snapshot.isFetching) {
|
|
16
|
+
triggerFetchIfNeeded(store, scope, query, targetCount, parentScope);
|
|
17
|
+
}
|
|
18
|
+
}, [
|
|
19
|
+
store,
|
|
20
|
+
scope,
|
|
21
|
+
query,
|
|
22
|
+
targetCount,
|
|
23
|
+
parentScope,
|
|
24
|
+
snapshot.items.length,
|
|
25
|
+
snapshot.hasMore,
|
|
26
|
+
snapshot.isFetching
|
|
27
|
+
]);
|
|
28
|
+
const loadMore = () => {
|
|
29
|
+
if (snapshot.hasMore && !snapshot.isFetching) {
|
|
30
|
+
setTargetCount((prev) => prev + 50);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
items: snapshot.items,
|
|
35
|
+
isFetching: snapshot.isFetching,
|
|
36
|
+
hasMore: snapshot.hasMore,
|
|
37
|
+
loadMore,
|
|
38
|
+
targetCount
|
|
39
|
+
// Expose for debugging
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
useMenuItems
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=use-menu-items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-menu-items.js","sources":["../../../../../src/chat-ui/mentions/suggestions/data/use-menu-items.ts"],"sourcesContent":["import { useStore } from '@tanstack/react-store';\nimport { useEffect, useState } from 'react';\nimport { selectItems, triggerFetchIfNeeded } from './orchestrator';\nimport type { MenuItem, MenuScope } from './types';\nimport type { MentionSuggestionsStore } from './use-mention-suggestions';\n\n/**\n * useMenuItems - Like React Query, but for menu items\n *\n * Clean, automatic hook that:\n * - Reads items from store (reactive!)\n * - Auto-fetches if needed (in useEffect)\n * - Returns clean interface { items, isFetching, hasMore }\n *\n * Usage:\n * ```typescript\n * const { items, isFetching, hasMore } = useMenuItems(store, {\n * scope: 'athena_folders',\n * query: 'doc',\n * minItems: 10,\n * parentScope: 'root'\n * });\n * ```\n */\nexport interface UseMenuItemsOptions {\n scope: MenuScope;\n query?: string;\n minItems?: number;\n parentScope?: MenuScope;\n}\n\nexport interface UseMenuItemsResult {\n items: MenuItem[];\n isFetching: boolean;\n hasMore: boolean;\n loadMore: () => void; // Explicit load more (not automatic!)\n targetCount: number; // Current target for debugging\n}\n\nexport function useMenuItems(\n store: MentionSuggestionsStore,\n options: UseMenuItemsOptions\n): UseMenuItemsResult {\n const { scope, query = '', minItems = 50, parentScope } = options;\n\n // Target item count (increases when user clicks \"Load More\")\n const [targetCount, setTargetCount] = useState(minItems);\n\n // Reset target when scope/query changes\n // biome-ignore lint/correctness/useExhaustiveDependencies: We intentionally reset on scope/query change\n useEffect(() => {\n setTargetCount(minItems);\n }, [scope, query, minItems]);\n\n // Read from store (pure, reactive)\n const snapshot = useStore(store, () =>\n selectItems(store, scope, query, targetCount, parentScope)\n );\n\n // Auto-fetch when: cached < target AND hasMore AND !fetching\n useEffect(() => {\n if (snapshot.items.length < targetCount && snapshot.hasMore && !snapshot.isFetching) {\n triggerFetchIfNeeded(store, scope, query, targetCount, parentScope);\n }\n }, [\n store,\n scope,\n query,\n targetCount,\n parentScope,\n snapshot.items.length,\n snapshot.hasMore,\n snapshot.isFetching,\n ]);\n\n // Explicit load more: Increase target by 50\n const loadMore = () => {\n if (snapshot.hasMore && !snapshot.isFetching) {\n setTargetCount((prev) => prev + 50);\n }\n };\n\n return {\n items: snapshot.items,\n isFetching: snapshot.isFetching,\n hasMore: snapshot.hasMore,\n loadMore,\n targetCount, // Expose for debugging\n };\n}\n"],"names":[],"mappings":";;;AAuCO,SAAS,aACd,OACA,SACoB;AACpB,QAAM,EAAE,OAAO,QAAQ,IAAI,WAAW,IAAI,gBAAgB;AAG1D,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,QAAQ;AAIvD,YAAU,MAAM;AACd,mBAAe,QAAQ;AAAA,EACzB,GAAG,CAAC,OAAO,OAAO,QAAQ,CAAC;AAG3B,QAAM,WAAW;AAAA,IAAS;AAAA,IAAO,MAC/B,YAAY,OAAO,OAAO,OAAO,aAAa,WAAW;AAAA,EAAA;AAI3D,YAAU,MAAM;AACd,QAAI,SAAS,MAAM,SAAS,eAAe,SAAS,WAAW,CAAC,SAAS,YAAY;AACnF,2BAAqB,OAAO,OAAO,OAAO,aAAa,WAAW;AAAA,IACpE;AAAA,EACF,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,MAAM;AAAA,IACf,SAAS;AAAA,IACT,SAAS;AAAA,EAAA,CACV;AAGD,QAAM,WAAW,MAAM;AACrB,QAAI,SAAS,WAAW,CAAC,SAAS,YAAY;AAC5C,qBAAe,CAAC,SAAS,OAAO,EAAE;AAAA,IACpC;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO,SAAS;AAAA,IAChB,YAAY,SAAS;AAAA,IACrB,SAAS,SAAS;AAAA,IAClB;AAAA,IACA;AAAA;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const matchQuery = require("./match-query.cjs");
|
|
4
|
+
const scoreMatch = require("./score-match.cjs");
|
|
5
|
+
function matchesItemId(itemId, query) {
|
|
6
|
+
if (!query || !itemId) return false;
|
|
7
|
+
const normalizedId = itemId.toLowerCase();
|
|
8
|
+
return normalizedId.includes(query);
|
|
9
|
+
}
|
|
10
|
+
function filterItems(items, query, _scope) {
|
|
11
|
+
if (!items || items.length === 0) return [];
|
|
12
|
+
const normalizedQuery = query.toLowerCase().trim();
|
|
13
|
+
if (!normalizedQuery) {
|
|
14
|
+
return items;
|
|
15
|
+
}
|
|
16
|
+
const filteredResults = items.filter(
|
|
17
|
+
(item) => matchQuery.matchesMultiWordQuery(item.name, normalizedQuery) || matchesItemId(item.id, normalizedQuery)
|
|
18
|
+
);
|
|
19
|
+
if (filteredResults.length > 0) {
|
|
20
|
+
filteredResults.sort((a, b) => {
|
|
21
|
+
const aIsToolkit = a.type === "toolkit";
|
|
22
|
+
const bIsToolkit = b.type === "toolkit";
|
|
23
|
+
if (aIsToolkit && !bIsToolkit) return -1;
|
|
24
|
+
if (!aIsToolkit && bIsToolkit) return 1;
|
|
25
|
+
const aIdMatch = matchesItemId(a.id, normalizedQuery);
|
|
26
|
+
const bIdMatch = matchesItemId(b.id, normalizedQuery);
|
|
27
|
+
if (aIdMatch && !bIdMatch) return -1;
|
|
28
|
+
if (!aIdMatch && bIdMatch) return 1;
|
|
29
|
+
if (aIdMatch && bIdMatch) {
|
|
30
|
+
const aIdScore = a.id.toLowerCase() === normalizedQuery ? 100 : Math.min(normalizedQuery.length / a.id.length * 50, 50);
|
|
31
|
+
const bIdScore = b.id.toLowerCase() === normalizedQuery ? 100 : Math.min(normalizedQuery.length / b.id.length * 50, 50);
|
|
32
|
+
if (aIdScore !== bIdScore) return bIdScore - aIdScore;
|
|
33
|
+
}
|
|
34
|
+
const aScore = scoreMatch.getMatchScore(a.name, normalizedQuery);
|
|
35
|
+
const bScore = scoreMatch.getMatchScore(b.name, normalizedQuery);
|
|
36
|
+
if (aScore !== bScore) return bScore - aScore;
|
|
37
|
+
return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return filteredResults;
|
|
41
|
+
}
|
|
42
|
+
exports.filterItems = filterItems;
|
|
43
|
+
//# sourceMappingURL=filter-items.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-items.cjs","sources":["../../../../../../src/chat-ui/mentions/suggestions/data/utils/filter-items.ts"],"sourcesContent":["import type { MenuItem } from '../types';\nimport { matchesMultiWordQuery } from './match-query';\nimport { getMatchScore } from './score-match';\n\n/**\n * Checks if a query matches an item's ID.\n * This enables looking up assets by their ID (e.g., \"asset_41c91b2d-901f-4844-bdda-f74b9863ba5c\").\n *\n * @param itemId - The item's ID\n * @param query - The normalized search query\n * @returns true if the query matches the item ID\n */\nfunction matchesItemId(itemId: string, query: string): boolean {\n if (!query || !itemId) return false;\n\n const normalizedId: string = itemId.toLowerCase();\n\n // Check if the query is contained in the ID\n // This allows partial ID matching (e.g., typing part of a UUID)\n return normalizedId.includes(query);\n}\n\n/**\n * Filter items by query match and sort by relevance\n *\n * Note: Items are already filtered by scope in getFilteredItems()\n * This function only handles query matching and scoring.\n *\n * @param items - Items already filtered by scope\n * @param query - Search query text\n * @param _scope - Current scope (unused, kept for signature compatibility)\n * @returns Filtered and sorted items\n */\nexport function filterItems(items: MenuItem[], query: string, _scope: string): MenuItem[] {\n if (!items || items.length === 0) return [];\n\n const normalizedQuery: string = query.toLowerCase().trim();\n\n // No query? Return all items (already scope-filtered)\n if (!normalizedQuery) {\n return items;\n }\n\n // Filter by query match (name OR ID)\n const filteredResults: MenuItem[] = items.filter(\n (item) =>\n matchesMultiWordQuery(item.name, normalizedQuery) || matchesItemId(item.id, normalizedQuery)\n );\n\n // Sort by match score\n if (filteredResults.length > 0) {\n filteredResults.sort((a, b) => {\n // Prioritize toolkits at the top of search results\n const aIsToolkit = a.type === 'toolkit';\n const bIsToolkit = b.type === 'toolkit';\n if (aIsToolkit && !bIsToolkit) return -1;\n if (!aIsToolkit && bIsToolkit) return 1;\n\n // Prioritize exact ID matches\n const aIdMatch: boolean = matchesItemId(a.id, normalizedQuery);\n const bIdMatch: boolean = matchesItemId(b.id, normalizedQuery);\n\n // If one has ID match and other doesn't, prioritize ID match\n if (aIdMatch && !bIdMatch) return -1;\n if (!aIdMatch && bIdMatch) return 1;\n\n // If both have ID matches, sort by how closely the ID matches\n // Use ratio-based scoring for better match quality differentiation\n if (aIdMatch && bIdMatch) {\n const aIdScore: number =\n a.id.toLowerCase() === normalizedQuery\n ? 100\n : Math.min((normalizedQuery.length / a.id.length) * 50, 50);\n const bIdScore: number =\n b.id.toLowerCase() === normalizedQuery\n ? 100\n : Math.min((normalizedQuery.length / b.id.length) * 50, 50);\n if (aIdScore !== bIdScore) return bIdScore - aIdScore;\n }\n\n // Fall back to name-based scoring\n const aScore: number = getMatchScore(a.name, normalizedQuery);\n const bScore: number = getMatchScore(b.name, normalizedQuery);\n\n // Sort by score descending, then alphabetically\n if (aScore !== bScore) return bScore - aScore;\n return a.name.toLowerCase().localeCompare(b.name.toLowerCase());\n });\n }\n\n return filteredResults;\n}\n"],"names":["matchesMultiWordQuery","getMatchScore"],"mappings":";;;;AAYA,SAAS,cAAc,QAAgB,OAAwB;AAC7D,MAAI,CAAC,SAAS,CAAC,OAAQ,QAAO;AAE9B,QAAM,eAAuB,OAAO,YAAA;AAIpC,SAAO,aAAa,SAAS,KAAK;AACpC;AAaO,SAAS,YAAY,OAAmB,OAAe,QAA4B;AACxF,MAAI,CAAC,SAAS,MAAM,WAAW,UAAU,CAAA;AAEzC,QAAM,kBAA0B,MAAM,YAAA,EAAc,KAAA;AAGpD,MAAI,CAAC,iBAAiB;AACpB,WAAO;AAAA,EACT;AAGA,QAAM,kBAA8B,MAAM;AAAA,IACxC,CAAC,SACCA,iCAAsB,KAAK,MAAM,eAAe,KAAK,cAAc,KAAK,IAAI,eAAe;AAAA,EAAA;AAI/F,MAAI,gBAAgB,SAAS,GAAG;AAC9B,oBAAgB,KAAK,CAAC,GAAG,MAAM;AAE7B,YAAM,aAAa,EAAE,SAAS;AAC9B,YAAM,aAAa,EAAE,SAAS;AAC9B,UAAI,cAAc,CAAC,WAAY,QAAO;AACtC,UAAI,CAAC,cAAc,WAAY,QAAO;AAGtC,YAAM,WAAoB,cAAc,EAAE,IAAI,eAAe;AAC7D,YAAM,WAAoB,cAAc,EAAE,IAAI,eAAe;AAG7D,UAAI,YAAY,CAAC,SAAU,QAAO;AAClC,UAAI,CAAC,YAAY,SAAU,QAAO;AAIlC,UAAI,YAAY,UAAU;AACxB,cAAM,WACJ,EAAE,GAAG,YAAA,MAAkB,kBACnB,MACA,KAAK,IAAK,gBAAgB,SAAS,EAAE,GAAG,SAAU,IAAI,EAAE;AAC9D,cAAM,WACJ,EAAE,GAAG,YAAA,MAAkB,kBACnB,MACA,KAAK,IAAK,gBAAgB,SAAS,EAAE,GAAG,SAAU,IAAI,EAAE;AAC9D,YAAI,aAAa,SAAU,QAAO,WAAW;AAAA,MAC/C;AAGA,YAAM,SAAiBC,WAAAA,cAAc,EAAE,MAAM,eAAe;AAC5D,YAAM,SAAiBA,WAAAA,cAAc,EAAE,MAAM,eAAe;AAG5D,UAAI,WAAW,OAAQ,QAAO,SAAS;AACvC,aAAO,EAAE,KAAK,YAAA,EAAc,cAAc,EAAE,KAAK,aAAa;AAAA,IAChE,CAAC;AAAA,EACH;AAEA,SAAO;AACT;;"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { matchesMultiWordQuery } from "./match-query.js";
|
|
2
|
+
import { getMatchScore } from "./score-match.js";
|
|
3
|
+
function matchesItemId(itemId, query) {
|
|
4
|
+
if (!query || !itemId) return false;
|
|
5
|
+
const normalizedId = itemId.toLowerCase();
|
|
6
|
+
return normalizedId.includes(query);
|
|
7
|
+
}
|
|
8
|
+
function filterItems(items, query, _scope) {
|
|
9
|
+
if (!items || items.length === 0) return [];
|
|
10
|
+
const normalizedQuery = query.toLowerCase().trim();
|
|
11
|
+
if (!normalizedQuery) {
|
|
12
|
+
return items;
|
|
13
|
+
}
|
|
14
|
+
const filteredResults = items.filter(
|
|
15
|
+
(item) => matchesMultiWordQuery(item.name, normalizedQuery) || matchesItemId(item.id, normalizedQuery)
|
|
16
|
+
);
|
|
17
|
+
if (filteredResults.length > 0) {
|
|
18
|
+
filteredResults.sort((a, b) => {
|
|
19
|
+
const aIsToolkit = a.type === "toolkit";
|
|
20
|
+
const bIsToolkit = b.type === "toolkit";
|
|
21
|
+
if (aIsToolkit && !bIsToolkit) return -1;
|
|
22
|
+
if (!aIsToolkit && bIsToolkit) return 1;
|
|
23
|
+
const aIdMatch = matchesItemId(a.id, normalizedQuery);
|
|
24
|
+
const bIdMatch = matchesItemId(b.id, normalizedQuery);
|
|
25
|
+
if (aIdMatch && !bIdMatch) return -1;
|
|
26
|
+
if (!aIdMatch && bIdMatch) return 1;
|
|
27
|
+
if (aIdMatch && bIdMatch) {
|
|
28
|
+
const aIdScore = a.id.toLowerCase() === normalizedQuery ? 100 : Math.min(normalizedQuery.length / a.id.length * 50, 50);
|
|
29
|
+
const bIdScore = b.id.toLowerCase() === normalizedQuery ? 100 : Math.min(normalizedQuery.length / b.id.length * 50, 50);
|
|
30
|
+
if (aIdScore !== bIdScore) return bIdScore - aIdScore;
|
|
31
|
+
}
|
|
32
|
+
const aScore = getMatchScore(a.name, normalizedQuery);
|
|
33
|
+
const bScore = getMatchScore(b.name, normalizedQuery);
|
|
34
|
+
if (aScore !== bScore) return bScore - aScore;
|
|
35
|
+
return a.name.toLowerCase().localeCompare(b.name.toLowerCase());
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return filteredResults;
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
filterItems
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=filter-items.js.map
|