@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,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function clearTextAfterTrigger(editor) {
|
|
4
|
+
const { state } = editor;
|
|
5
|
+
const { from: cursorPos } = state.selection;
|
|
6
|
+
const backwardText = state.doc.textBetween(0, cursorPos, void 0, "");
|
|
7
|
+
const triggerIndex = backwardText.lastIndexOf("@");
|
|
8
|
+
if (triggerIndex === -1) return;
|
|
9
|
+
const offset = backwardText.length - triggerIndex;
|
|
10
|
+
const from = cursorPos - offset + 1;
|
|
11
|
+
const to = cursorPos;
|
|
12
|
+
if (from < to) {
|
|
13
|
+
const tr = state.tr.deleteRange(from, to);
|
|
14
|
+
editor.view.dispatch(tr);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.clearTextAfterTrigger = clearTextAfterTrigger;
|
|
18
|
+
//# sourceMappingURL=utils.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/components/utils.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core';\n\n/**\n * Clear text after @ trigger\n *\n * When navigating in the menu, we want to clear the typed query\n * but keep the @ trigger symbol.\n */\nexport function clearTextAfterTrigger(editor: Editor): void {\n const { state } = editor;\n const { from: cursorPos } = state.selection;\n const backwardText = state.doc.textBetween(0, cursorPos, undefined, '\\ufffc');\n const triggerIndex = backwardText.lastIndexOf('@');\n\n if (triggerIndex === -1) return;\n\n const offset = backwardText.length - triggerIndex;\n const from = cursorPos - offset + 1; // +1 to keep the @ symbol\n const to = cursorPos;\n\n if (from < to) {\n // Delete text after @ but keep the @ symbol\n const tr = state.tr.deleteRange(from, to);\n editor.view.dispatch(tr);\n }\n}\n"],"names":[],"mappings":";;AAQO,SAAS,sBAAsB,QAAsB;AAC1D,QAAM,EAAE,UAAU;AAClB,QAAM,EAAE,MAAM,UAAA,IAAc,MAAM;AAClC,QAAM,eAAe,MAAM,IAAI,YAAY,GAAG,WAAW,QAAW,GAAQ;AAC5E,QAAM,eAAe,aAAa,YAAY,GAAG;AAEjD,MAAI,iBAAiB,GAAI;AAEzB,QAAM,SAAS,aAAa,SAAS;AACrC,QAAM,OAAO,YAAY,SAAS;AAClC,QAAM,KAAK;AAEX,MAAI,OAAO,IAAI;AAEb,UAAM,KAAK,MAAM,GAAG,YAAY,MAAM,EAAE;AACxC,WAAO,KAAK,SAAS,EAAE;AAAA,EACzB;AACF;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
function clearTextAfterTrigger(editor) {
|
|
2
|
+
const { state } = editor;
|
|
3
|
+
const { from: cursorPos } = state.selection;
|
|
4
|
+
const backwardText = state.doc.textBetween(0, cursorPos, void 0, "");
|
|
5
|
+
const triggerIndex = backwardText.lastIndexOf("@");
|
|
6
|
+
if (triggerIndex === -1) return;
|
|
7
|
+
const offset = backwardText.length - triggerIndex;
|
|
8
|
+
const from = cursorPos - offset + 1;
|
|
9
|
+
const to = cursorPos;
|
|
10
|
+
if (from < to) {
|
|
11
|
+
const tr = state.tr.deleteRange(from, to);
|
|
12
|
+
editor.view.dispatch(tr);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
clearTextAfterTrigger
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../src/chat-ui/mentions/suggestions/components/utils.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core';\n\n/**\n * Clear text after @ trigger\n *\n * When navigating in the menu, we want to clear the typed query\n * but keep the @ trigger symbol.\n */\nexport function clearTextAfterTrigger(editor: Editor): void {\n const { state } = editor;\n const { from: cursorPos } = state.selection;\n const backwardText = state.doc.textBetween(0, cursorPos, undefined, '\\ufffc');\n const triggerIndex = backwardText.lastIndexOf('@');\n\n if (triggerIndex === -1) return;\n\n const offset = backwardText.length - triggerIndex;\n const from = cursorPos - offset + 1; // +1 to keep the @ symbol\n const to = cursorPos;\n\n if (from < to) {\n // Delete text after @ but keep the @ symbol\n const tr = state.tr.deleteRange(from, to);\n editor.view.dispatch(tr);\n }\n}\n"],"names":[],"mappings":"AAQO,SAAS,sBAAsB,QAAsB;AAC1D,QAAM,EAAE,UAAU;AAClB,QAAM,EAAE,MAAM,UAAA,IAAc,MAAM;AAClC,QAAM,eAAe,MAAM,IAAI,YAAY,GAAG,WAAW,QAAW,GAAQ;AAC5E,QAAM,eAAe,aAAa,YAAY,GAAG;AAEjD,MAAI,iBAAiB,GAAI;AAEzB,QAAM,SAAS,aAAa,SAAS;AACrC,QAAM,OAAO,YAAY,SAAS;AAClC,QAAM,KAAK;AAEX,MAAI,OAAO,IAAI;AAEb,UAAM,KAAK,MAAM,GAAG,YAAY,MAAM,EAAE;AACxC,WAAO,KAAK,SAAS,EAAE;AAAA,EACzB;AACF;"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const react = require("react");
|
|
4
|
+
function mentionRequestInit(auth) {
|
|
5
|
+
if (auth.accessToken) {
|
|
6
|
+
return { headers: { Authorization: `Bearer ${auth.accessToken}` } };
|
|
7
|
+
}
|
|
8
|
+
if (auth.apiKey) return { headers: { "X-API-KEY": auth.apiKey } };
|
|
9
|
+
if (auth.credentials) return { headers: {}, credentials: auth.credentials };
|
|
10
|
+
throw new Error("MentionAuthCtx needs either an accessToken or an apiKey");
|
|
11
|
+
}
|
|
12
|
+
const MentionAuthCtx = react.createContext(null);
|
|
13
|
+
function useMentionAuth() {
|
|
14
|
+
const ctx = react.useContext(MentionAuthCtx);
|
|
15
|
+
if (!ctx) throw new Error("MentionAuthCtx not provided");
|
|
16
|
+
return ctx;
|
|
17
|
+
}
|
|
18
|
+
async function fetchGraphQL(auth, query, variables = {}) {
|
|
19
|
+
var _a;
|
|
20
|
+
const url = `${auth.backendUrl.replace(/\/+$/, "")}/graphql`;
|
|
21
|
+
const requestAuth = auth.getAccessToken ? { ...auth, accessToken: await auth.getAccessToken() } : auth;
|
|
22
|
+
const { headers, credentials } = mentionRequestInit(requestAuth);
|
|
23
|
+
const response = await fetch(url, {
|
|
24
|
+
method: "POST",
|
|
25
|
+
headers: {
|
|
26
|
+
"Content-Type": "application/json",
|
|
27
|
+
...headers
|
|
28
|
+
},
|
|
29
|
+
...credentials ? { credentials } : {},
|
|
30
|
+
body: JSON.stringify({ query, variables })
|
|
31
|
+
});
|
|
32
|
+
if (!response.ok) {
|
|
33
|
+
throw new Error(`GraphQL HTTP ${response.status}: ${response.statusText}`);
|
|
34
|
+
}
|
|
35
|
+
const result = await response.json();
|
|
36
|
+
if ((_a = result.errors) == null ? void 0 : _a.length) {
|
|
37
|
+
throw new Error(`GraphQL error: ${result.errors[0].message}`);
|
|
38
|
+
}
|
|
39
|
+
return result.data;
|
|
40
|
+
}
|
|
41
|
+
const MENTION_ASSET_FIELDS = `
|
|
42
|
+
id
|
|
43
|
+
title
|
|
44
|
+
athenaOriginalType
|
|
45
|
+
athenaConvertedType
|
|
46
|
+
parentFolderId
|
|
47
|
+
updatedAt
|
|
48
|
+
isFavorited
|
|
49
|
+
isArchived
|
|
50
|
+
isHidden
|
|
51
|
+
`;
|
|
52
|
+
const SIMPLE_SEARCH_QUERY = `
|
|
53
|
+
query SimpleSearch($input: SimpleSearchRequestInput!) {
|
|
54
|
+
simpleSearch(input: $input) {
|
|
55
|
+
assets {
|
|
56
|
+
${MENTION_ASSET_FIELDS}
|
|
57
|
+
}
|
|
58
|
+
totalCount
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
`;
|
|
62
|
+
const PAGINATED_ASSETS_QUERY = `
|
|
63
|
+
query GetPaginatedAssetsForWorkspace(
|
|
64
|
+
$limit: Int!
|
|
65
|
+
$offset: Int!
|
|
66
|
+
$parentFolderId: String
|
|
67
|
+
$filterTypes: [String!]
|
|
68
|
+
$filterColumns: ColumnFilter
|
|
69
|
+
) {
|
|
70
|
+
getPaginatedAssetsForWorkspace(
|
|
71
|
+
limit: $limit
|
|
72
|
+
offset: $offset
|
|
73
|
+
parentFolderId: $parentFolderId
|
|
74
|
+
filterTypes: $filterTypes
|
|
75
|
+
filterColumns: $filterColumns
|
|
76
|
+
) {
|
|
77
|
+
${MENTION_ASSET_FIELDS}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
`;
|
|
81
|
+
const WORKSPACE_MEMBERS_QUERY = `
|
|
82
|
+
query GetUsersInWorkspace($workspaceId: String!) {
|
|
83
|
+
getUsersInWorkspace(workspaceId: $workspaceId) {
|
|
84
|
+
id
|
|
85
|
+
email
|
|
86
|
+
firstName
|
|
87
|
+
lastName
|
|
88
|
+
isAdmin
|
|
89
|
+
avatarUrl
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
`;
|
|
93
|
+
const TOOL_CATALOG_QUERY = `
|
|
94
|
+
query MentionToolCatalog {
|
|
95
|
+
getToolkitToToolsMapping {
|
|
96
|
+
tools {
|
|
97
|
+
id
|
|
98
|
+
name
|
|
99
|
+
description
|
|
100
|
+
icon
|
|
101
|
+
adminOnly
|
|
102
|
+
isMentionable
|
|
103
|
+
}
|
|
104
|
+
toolkits {
|
|
105
|
+
name
|
|
106
|
+
displayName
|
|
107
|
+
description
|
|
108
|
+
icon
|
|
109
|
+
onlyAdmin
|
|
110
|
+
hideFromMenu
|
|
111
|
+
isMentionable
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
`;
|
|
116
|
+
exports.MentionAuthCtx = MentionAuthCtx;
|
|
117
|
+
exports.PAGINATED_ASSETS_QUERY = PAGINATED_ASSETS_QUERY;
|
|
118
|
+
exports.SIMPLE_SEARCH_QUERY = SIMPLE_SEARCH_QUERY;
|
|
119
|
+
exports.TOOL_CATALOG_QUERY = TOOL_CATALOG_QUERY;
|
|
120
|
+
exports.WORKSPACE_MEMBERS_QUERY = WORKSPACE_MEMBERS_QUERY;
|
|
121
|
+
exports.fetchGraphQL = fetchGraphQL;
|
|
122
|
+
exports.mentionRequestInit = mentionRequestInit;
|
|
123
|
+
exports.useMentionAuth = useMentionAuth;
|
|
124
|
+
//# sourceMappingURL=api-client.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/data/api-client.ts"],"sourcesContent":["/**\n * API client for mention data fetching.\n *\n * Wraps raw fetch() with GraphQL support. Hosts authenticate with either a\n * bearer token or a workspace API key; agora's /graphql accepts both.\n */\n\nimport { createContext, useContext } from \"react\";\n\n// ── Auth context ──\n\nexport interface MentionAuthContext {\n backendUrl: string;\n appUrl?: string;\n /** Bearer credential; hosts without one authenticate with `apiKey`. */\n accessToken?: string;\n /** Resolve a current bearer before each query (for rotating Office sessions). */\n getAccessToken?: () => Promise<string>;\n apiKey?: string;\n /**\n * With neither credential, ride the browser's same-origin session cookie\n * instead of failing — the SDK's AthenaChat, whose REST helpers make the\n * same choice for a host that configured no token and no API key. Hosts\n * that always hold a credential leave this unset so an accidental anonymous\n * query fails loudly.\n */\n credentials?: \"include\";\n workspaceId?: string;\n userId?: string;\n}\n\n/** Credential headers (or the cookie lane) for a mention fetch. */\nexport function mentionRequestInit(\n auth: MentionAuthContext,\n): Pick<RequestInit, \"headers\" | \"credentials\"> {\n if (auth.accessToken) {\n return { headers: { Authorization: `Bearer ${auth.accessToken}` } };\n }\n if (auth.apiKey) return { headers: { \"X-API-KEY\": auth.apiKey } };\n if (auth.credentials) return { headers: {}, credentials: auth.credentials };\n throw new Error(\"MentionAuthCtx needs either an accessToken or an apiKey\");\n}\n\nexport const MentionAuthCtx = createContext<MentionAuthContext | null>(null);\n\nexport function useMentionAuth(): MentionAuthContext {\n const ctx = useContext(MentionAuthCtx);\n if (!ctx) throw new Error(\"MentionAuthCtx not provided\");\n return ctx;\n}\n\n// ── GraphQL client ──\n\nexport async function fetchGraphQL<T = any>(\n auth: MentionAuthContext,\n query: string,\n variables: Record<string, any> = {},\n): Promise<T> {\n const url = `${auth.backendUrl.replace(/\\/+$/, \"\")}/graphql`;\n const requestAuth = auth.getAccessToken\n ? { ...auth, accessToken: await auth.getAccessToken() }\n : auth;\n const { headers, credentials } = mentionRequestInit(requestAuth);\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n ...(credentials ? { credentials } : {}),\n body: JSON.stringify({ query, variables }),\n });\n\n if (!response.ok) {\n throw new Error(`GraphQL HTTP ${response.status}: ${response.statusText}`);\n }\n\n const result = await response.json();\n if (result.errors?.length) {\n throw new Error(`GraphQL error: ${result.errors[0].message}`);\n }\n\n return result.data as T;\n}\n\n// ── GraphQL Queries ──\n\n/**\n * Lightweight asset fragment for mention menu items.\n * Only fetches fields needed for display + navigation.\n */\nconst MENTION_ASSET_FIELDS = `\n id\n title\n athenaOriginalType\n athenaConvertedType\n parentFolderId\n updatedAt\n isFavorited\n isArchived\n isHidden\n`;\n\nexport const SIMPLE_SEARCH_QUERY = `\n query SimpleSearch($input: SimpleSearchRequestInput!) {\n simpleSearch(input: $input) {\n assets {\n ${MENTION_ASSET_FIELDS}\n }\n totalCount\n }\n }\n`;\n\nexport const PAGINATED_ASSETS_QUERY = `\n query GetPaginatedAssetsForWorkspace(\n $limit: Int!\n $offset: Int!\n $parentFolderId: String\n $filterTypes: [String!]\n $filterColumns: ColumnFilter\n ) {\n getPaginatedAssetsForWorkspace(\n limit: $limit\n offset: $offset\n parentFolderId: $parentFolderId\n filterTypes: $filterTypes\n filterColumns: $filterColumns\n ) {\n ${MENTION_ASSET_FIELDS}\n }\n }\n`;\n\nexport const WORKSPACE_MEMBERS_QUERY = `\n query GetUsersInWorkspace($workspaceId: String!) {\n getUsersInWorkspace(workspaceId: $workspaceId) {\n id\n email\n firstName\n lastName\n isAdmin\n avatarUrl\n }\n }\n`;\n\nexport const TOOL_CATALOG_QUERY = `\n query MentionToolCatalog {\n getToolkitToToolsMapping {\n tools {\n id\n name\n description\n icon\n adminOnly\n isMentionable\n }\n toolkits {\n name\n displayName\n description\n icon\n onlyAdmin\n hideFromMenu\n isMentionable\n }\n }\n }\n`;\n\n// ── Response types ──\n\nexport interface ToolCatalogTool {\n id: string;\n name: string;\n description: string | null;\n icon: string;\n adminOnly: boolean;\n isMentionable: boolean;\n}\n\nexport interface ToolCatalogToolkit {\n name: string;\n displayName: string;\n description: string;\n icon: string;\n onlyAdmin: boolean;\n hideFromMenu: boolean;\n isMentionable: boolean;\n}\n\nexport interface ToolCatalogResult {\n getToolkitToToolsMapping: {\n tools: ToolCatalogTool[];\n toolkits: ToolCatalogToolkit[];\n };\n}\n\nexport interface AssetResult {\n id: string;\n title: string | null;\n athenaOriginalType: string | null;\n athenaConvertedType: string | null;\n parentFolderId: string | null;\n updatedAt: string | null;\n isFavorited: boolean | null;\n isArchived: boolean | null;\n isHidden: boolean | null;\n}\n\nexport interface WorkspaceMember {\n id: string;\n email: string | null;\n firstName: string | null;\n lastName: string | null;\n isAdmin: boolean;\n avatarUrl: string | null;\n}\n"],"names":["createContext","useContext"],"mappings":";;;AAgCO,SAAS,mBACd,MAC8C;AAC9C,MAAI,KAAK,aAAa;AACpB,WAAO,EAAE,SAAS,EAAE,eAAe,UAAU,KAAK,WAAW,KAAG;AAAA,EAClE;AACA,MAAI,KAAK,OAAQ,QAAO,EAAE,SAAS,EAAE,aAAa,KAAK,SAAO;AAC9D,MAAI,KAAK,YAAa,QAAO,EAAE,SAAS,CAAA,GAAI,aAAa,KAAK,YAAA;AAC9D,QAAM,IAAI,MAAM,yDAAyD;AAC3E;AAEO,MAAM,iBAAiBA,MAAAA,cAAyC,IAAI;AAEpE,SAAS,iBAAqC;AACnD,QAAM,MAAMC,MAAAA,WAAW,cAAc;AACrC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,6BAA6B;AACvD,SAAO;AACT;AAIA,eAAsB,aACpB,MACA,OACA,YAAiC,CAAA,GACrB;;AACZ,QAAM,MAAM,GAAG,KAAK,WAAW,QAAQ,QAAQ,EAAE,CAAC;AAClD,QAAM,cAAc,KAAK,iBACrB,EAAE,GAAG,MAAM,aAAa,MAAM,KAAK,eAAA,EAAe,IAClD;AACJ,QAAM,EAAE,SAAS,gBAAgB,mBAAmB,WAAW;AAC/D,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,GAAG;AAAA,IAAA;AAAA,IAEL,GAAI,cAAc,EAAE,YAAA,IAAgB,CAAA;AAAA,IACpC,MAAM,KAAK,UAAU,EAAE,OAAO,WAAW;AAAA,EAAA,CAC1C;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,gBAAgB,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;AAAA,EAC3E;AAEA,QAAM,SAAS,MAAM,SAAS,KAAA;AAC9B,OAAI,YAAO,WAAP,mBAAe,QAAQ;AACzB,UAAM,IAAI,MAAM,kBAAkB,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE;AAAA,EAC9D;AAEA,SAAO,OAAO;AAChB;AAQA,MAAM,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYtB,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA,UAIzB,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvB,MAAM,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAe9B,oBAAoB;AAAA;AAAA;AAAA;AAKrB,MAAM,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAahC,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;"}
|
|
@@ -2,18 +2,29 @@
|
|
|
2
2
|
* API client for mention data fetching.
|
|
3
3
|
*
|
|
4
4
|
* Wraps raw fetch() with GraphQL support. Hosts authenticate with either a
|
|
5
|
-
* bearer token
|
|
6
|
-
* add-in); agora's /graphql accepts both.
|
|
5
|
+
* bearer token or a workspace API key; agora's /graphql accepts both.
|
|
7
6
|
*/
|
|
8
7
|
export interface MentionAuthContext {
|
|
9
8
|
backendUrl: string;
|
|
10
9
|
appUrl?: string;
|
|
11
10
|
/** Bearer credential; hosts without one authenticate with `apiKey`. */
|
|
12
11
|
accessToken?: string;
|
|
12
|
+
/** Resolve a current bearer before each query (for rotating Office sessions). */
|
|
13
|
+
getAccessToken?: () => Promise<string>;
|
|
13
14
|
apiKey?: string;
|
|
15
|
+
/**
|
|
16
|
+
* With neither credential, ride the browser's same-origin session cookie
|
|
17
|
+
* instead of failing — the SDK's AthenaChat, whose REST helpers make the
|
|
18
|
+
* same choice for a host that configured no token and no API key. Hosts
|
|
19
|
+
* that always hold a credential leave this unset so an accidental anonymous
|
|
20
|
+
* query fails loudly.
|
|
21
|
+
*/
|
|
22
|
+
credentials?: "include";
|
|
14
23
|
workspaceId?: string;
|
|
15
24
|
userId?: string;
|
|
16
25
|
}
|
|
26
|
+
/** Credential headers (or the cookie lane) for a mention fetch. */
|
|
27
|
+
export declare function mentionRequestInit(auth: MentionAuthContext): Pick<RequestInit, "headers" | "credentials">;
|
|
17
28
|
export declare const MentionAuthCtx: import("react").Context<MentionAuthContext | null>;
|
|
18
29
|
export declare function useMentionAuth(): MentionAuthContext;
|
|
19
30
|
export declare function fetchGraphQL<T = any>(auth: MentionAuthContext, query: string, variables?: Record<string, any>): Promise<T>;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { createContext, useContext } from "react";
|
|
2
|
+
function mentionRequestInit(auth) {
|
|
3
|
+
if (auth.accessToken) {
|
|
4
|
+
return { headers: { Authorization: `Bearer ${auth.accessToken}` } };
|
|
5
|
+
}
|
|
6
|
+
if (auth.apiKey) return { headers: { "X-API-KEY": auth.apiKey } };
|
|
7
|
+
if (auth.credentials) return { headers: {}, credentials: auth.credentials };
|
|
8
|
+
throw new Error("MentionAuthCtx needs either an accessToken or an apiKey");
|
|
9
|
+
}
|
|
10
|
+
const MentionAuthCtx = createContext(null);
|
|
11
|
+
function useMentionAuth() {
|
|
12
|
+
const ctx = useContext(MentionAuthCtx);
|
|
13
|
+
if (!ctx) throw new Error("MentionAuthCtx not provided");
|
|
14
|
+
return ctx;
|
|
15
|
+
}
|
|
16
|
+
async function fetchGraphQL(auth, query, variables = {}) {
|
|
17
|
+
var _a;
|
|
18
|
+
const url = `${auth.backendUrl.replace(/\/+$/, "")}/graphql`;
|
|
19
|
+
const requestAuth = auth.getAccessToken ? { ...auth, accessToken: await auth.getAccessToken() } : auth;
|
|
20
|
+
const { headers, credentials } = mentionRequestInit(requestAuth);
|
|
21
|
+
const response = await fetch(url, {
|
|
22
|
+
method: "POST",
|
|
23
|
+
headers: {
|
|
24
|
+
"Content-Type": "application/json",
|
|
25
|
+
...headers
|
|
26
|
+
},
|
|
27
|
+
...credentials ? { credentials } : {},
|
|
28
|
+
body: JSON.stringify({ query, variables })
|
|
29
|
+
});
|
|
30
|
+
if (!response.ok) {
|
|
31
|
+
throw new Error(`GraphQL HTTP ${response.status}: ${response.statusText}`);
|
|
32
|
+
}
|
|
33
|
+
const result = await response.json();
|
|
34
|
+
if ((_a = result.errors) == null ? void 0 : _a.length) {
|
|
35
|
+
throw new Error(`GraphQL error: ${result.errors[0].message}`);
|
|
36
|
+
}
|
|
37
|
+
return result.data;
|
|
38
|
+
}
|
|
39
|
+
const MENTION_ASSET_FIELDS = `
|
|
40
|
+
id
|
|
41
|
+
title
|
|
42
|
+
athenaOriginalType
|
|
43
|
+
athenaConvertedType
|
|
44
|
+
parentFolderId
|
|
45
|
+
updatedAt
|
|
46
|
+
isFavorited
|
|
47
|
+
isArchived
|
|
48
|
+
isHidden
|
|
49
|
+
`;
|
|
50
|
+
const SIMPLE_SEARCH_QUERY = `
|
|
51
|
+
query SimpleSearch($input: SimpleSearchRequestInput!) {
|
|
52
|
+
simpleSearch(input: $input) {
|
|
53
|
+
assets {
|
|
54
|
+
${MENTION_ASSET_FIELDS}
|
|
55
|
+
}
|
|
56
|
+
totalCount
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
`;
|
|
60
|
+
const PAGINATED_ASSETS_QUERY = `
|
|
61
|
+
query GetPaginatedAssetsForWorkspace(
|
|
62
|
+
$limit: Int!
|
|
63
|
+
$offset: Int!
|
|
64
|
+
$parentFolderId: String
|
|
65
|
+
$filterTypes: [String!]
|
|
66
|
+
$filterColumns: ColumnFilter
|
|
67
|
+
) {
|
|
68
|
+
getPaginatedAssetsForWorkspace(
|
|
69
|
+
limit: $limit
|
|
70
|
+
offset: $offset
|
|
71
|
+
parentFolderId: $parentFolderId
|
|
72
|
+
filterTypes: $filterTypes
|
|
73
|
+
filterColumns: $filterColumns
|
|
74
|
+
) {
|
|
75
|
+
${MENTION_ASSET_FIELDS}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
`;
|
|
79
|
+
const WORKSPACE_MEMBERS_QUERY = `
|
|
80
|
+
query GetUsersInWorkspace($workspaceId: String!) {
|
|
81
|
+
getUsersInWorkspace(workspaceId: $workspaceId) {
|
|
82
|
+
id
|
|
83
|
+
email
|
|
84
|
+
firstName
|
|
85
|
+
lastName
|
|
86
|
+
isAdmin
|
|
87
|
+
avatarUrl
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
`;
|
|
91
|
+
const TOOL_CATALOG_QUERY = `
|
|
92
|
+
query MentionToolCatalog {
|
|
93
|
+
getToolkitToToolsMapping {
|
|
94
|
+
tools {
|
|
95
|
+
id
|
|
96
|
+
name
|
|
97
|
+
description
|
|
98
|
+
icon
|
|
99
|
+
adminOnly
|
|
100
|
+
isMentionable
|
|
101
|
+
}
|
|
102
|
+
toolkits {
|
|
103
|
+
name
|
|
104
|
+
displayName
|
|
105
|
+
description
|
|
106
|
+
icon
|
|
107
|
+
onlyAdmin
|
|
108
|
+
hideFromMenu
|
|
109
|
+
isMentionable
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
`;
|
|
114
|
+
export {
|
|
115
|
+
MentionAuthCtx,
|
|
116
|
+
PAGINATED_ASSETS_QUERY,
|
|
117
|
+
SIMPLE_SEARCH_QUERY,
|
|
118
|
+
TOOL_CATALOG_QUERY,
|
|
119
|
+
WORKSPACE_MEMBERS_QUERY,
|
|
120
|
+
fetchGraphQL,
|
|
121
|
+
mentionRequestInit,
|
|
122
|
+
useMentionAuth
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sources":["../../../../../src/chat-ui/mentions/suggestions/data/api-client.ts"],"sourcesContent":["/**\n * API client for mention data fetching.\n *\n * Wraps raw fetch() with GraphQL support. Hosts authenticate with either a\n * bearer token or a workspace API key; agora's /graphql accepts both.\n */\n\nimport { createContext, useContext } from \"react\";\n\n// ── Auth context ──\n\nexport interface MentionAuthContext {\n backendUrl: string;\n appUrl?: string;\n /** Bearer credential; hosts without one authenticate with `apiKey`. */\n accessToken?: string;\n /** Resolve a current bearer before each query (for rotating Office sessions). */\n getAccessToken?: () => Promise<string>;\n apiKey?: string;\n /**\n * With neither credential, ride the browser's same-origin session cookie\n * instead of failing — the SDK's AthenaChat, whose REST helpers make the\n * same choice for a host that configured no token and no API key. Hosts\n * that always hold a credential leave this unset so an accidental anonymous\n * query fails loudly.\n */\n credentials?: \"include\";\n workspaceId?: string;\n userId?: string;\n}\n\n/** Credential headers (or the cookie lane) for a mention fetch. */\nexport function mentionRequestInit(\n auth: MentionAuthContext,\n): Pick<RequestInit, \"headers\" | \"credentials\"> {\n if (auth.accessToken) {\n return { headers: { Authorization: `Bearer ${auth.accessToken}` } };\n }\n if (auth.apiKey) return { headers: { \"X-API-KEY\": auth.apiKey } };\n if (auth.credentials) return { headers: {}, credentials: auth.credentials };\n throw new Error(\"MentionAuthCtx needs either an accessToken or an apiKey\");\n}\n\nexport const MentionAuthCtx = createContext<MentionAuthContext | null>(null);\n\nexport function useMentionAuth(): MentionAuthContext {\n const ctx = useContext(MentionAuthCtx);\n if (!ctx) throw new Error(\"MentionAuthCtx not provided\");\n return ctx;\n}\n\n// ── GraphQL client ──\n\nexport async function fetchGraphQL<T = any>(\n auth: MentionAuthContext,\n query: string,\n variables: Record<string, any> = {},\n): Promise<T> {\n const url = `${auth.backendUrl.replace(/\\/+$/, \"\")}/graphql`;\n const requestAuth = auth.getAccessToken\n ? { ...auth, accessToken: await auth.getAccessToken() }\n : auth;\n const { headers, credentials } = mentionRequestInit(requestAuth);\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n ...(credentials ? { credentials } : {}),\n body: JSON.stringify({ query, variables }),\n });\n\n if (!response.ok) {\n throw new Error(`GraphQL HTTP ${response.status}: ${response.statusText}`);\n }\n\n const result = await response.json();\n if (result.errors?.length) {\n throw new Error(`GraphQL error: ${result.errors[0].message}`);\n }\n\n return result.data as T;\n}\n\n// ── GraphQL Queries ──\n\n/**\n * Lightweight asset fragment for mention menu items.\n * Only fetches fields needed for display + navigation.\n */\nconst MENTION_ASSET_FIELDS = `\n id\n title\n athenaOriginalType\n athenaConvertedType\n parentFolderId\n updatedAt\n isFavorited\n isArchived\n isHidden\n`;\n\nexport const SIMPLE_SEARCH_QUERY = `\n query SimpleSearch($input: SimpleSearchRequestInput!) {\n simpleSearch(input: $input) {\n assets {\n ${MENTION_ASSET_FIELDS}\n }\n totalCount\n }\n }\n`;\n\nexport const PAGINATED_ASSETS_QUERY = `\n query GetPaginatedAssetsForWorkspace(\n $limit: Int!\n $offset: Int!\n $parentFolderId: String\n $filterTypes: [String!]\n $filterColumns: ColumnFilter\n ) {\n getPaginatedAssetsForWorkspace(\n limit: $limit\n offset: $offset\n parentFolderId: $parentFolderId\n filterTypes: $filterTypes\n filterColumns: $filterColumns\n ) {\n ${MENTION_ASSET_FIELDS}\n }\n }\n`;\n\nexport const WORKSPACE_MEMBERS_QUERY = `\n query GetUsersInWorkspace($workspaceId: String!) {\n getUsersInWorkspace(workspaceId: $workspaceId) {\n id\n email\n firstName\n lastName\n isAdmin\n avatarUrl\n }\n }\n`;\n\nexport const TOOL_CATALOG_QUERY = `\n query MentionToolCatalog {\n getToolkitToToolsMapping {\n tools {\n id\n name\n description\n icon\n adminOnly\n isMentionable\n }\n toolkits {\n name\n displayName\n description\n icon\n onlyAdmin\n hideFromMenu\n isMentionable\n }\n }\n }\n`;\n\n// ── Response types ──\n\nexport interface ToolCatalogTool {\n id: string;\n name: string;\n description: string | null;\n icon: string;\n adminOnly: boolean;\n isMentionable: boolean;\n}\n\nexport interface ToolCatalogToolkit {\n name: string;\n displayName: string;\n description: string;\n icon: string;\n onlyAdmin: boolean;\n hideFromMenu: boolean;\n isMentionable: boolean;\n}\n\nexport interface ToolCatalogResult {\n getToolkitToToolsMapping: {\n tools: ToolCatalogTool[];\n toolkits: ToolCatalogToolkit[];\n };\n}\n\nexport interface AssetResult {\n id: string;\n title: string | null;\n athenaOriginalType: string | null;\n athenaConvertedType: string | null;\n parentFolderId: string | null;\n updatedAt: string | null;\n isFavorited: boolean | null;\n isArchived: boolean | null;\n isHidden: boolean | null;\n}\n\nexport interface WorkspaceMember {\n id: string;\n email: string | null;\n firstName: string | null;\n lastName: string | null;\n isAdmin: boolean;\n avatarUrl: string | null;\n}\n"],"names":[],"mappings":";AAgCO,SAAS,mBACd,MAC8C;AAC9C,MAAI,KAAK,aAAa;AACpB,WAAO,EAAE,SAAS,EAAE,eAAe,UAAU,KAAK,WAAW,KAAG;AAAA,EAClE;AACA,MAAI,KAAK,OAAQ,QAAO,EAAE,SAAS,EAAE,aAAa,KAAK,SAAO;AAC9D,MAAI,KAAK,YAAa,QAAO,EAAE,SAAS,CAAA,GAAI,aAAa,KAAK,YAAA;AAC9D,QAAM,IAAI,MAAM,yDAAyD;AAC3E;AAEO,MAAM,iBAAiB,cAAyC,IAAI;AAEpE,SAAS,iBAAqC;AACnD,QAAM,MAAM,WAAW,cAAc;AACrC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,6BAA6B;AACvD,SAAO;AACT;AAIA,eAAsB,aACpB,MACA,OACA,YAAiC,CAAA,GACrB;;AACZ,QAAM,MAAM,GAAG,KAAK,WAAW,QAAQ,QAAQ,EAAE,CAAC;AAClD,QAAM,cAAc,KAAK,iBACrB,EAAE,GAAG,MAAM,aAAa,MAAM,KAAK,eAAA,EAAe,IAClD;AACJ,QAAM,EAAE,SAAS,gBAAgB,mBAAmB,WAAW;AAC/D,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,GAAG;AAAA,IAAA;AAAA,IAEL,GAAI,cAAc,EAAE,YAAA,IAAgB,CAAA;AAAA,IACpC,MAAM,KAAK,UAAU,EAAE,OAAO,WAAW;AAAA,EAAA,CAC1C;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,gBAAgB,SAAS,MAAM,KAAK,SAAS,UAAU,EAAE;AAAA,EAC3E;AAEA,QAAM,SAAS,MAAM,SAAS,KAAA;AAC9B,OAAI,YAAO,WAAP,mBAAe,QAAQ;AACzB,UAAM,IAAI,MAAM,kBAAkB,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE;AAAA,EAC9D;AAEA,SAAO,OAAO;AAChB;AAQA,MAAM,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYtB,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA,UAIzB,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvB,MAAM,yBAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAe9B,oBAAoB;AAAA;AAAA;AAAA;AAKrB,MAAM,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAahC,MAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const filterItems = require("./utils/filter-items.cjs");
|
|
4
|
+
function createItemCache() {
|
|
5
|
+
return {
|
|
6
|
+
items: {}
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function addItems(cache, items, scope) {
|
|
10
|
+
for (const item of items) {
|
|
11
|
+
const existing = cache.items[item.id];
|
|
12
|
+
if (existing) {
|
|
13
|
+
existing.visibleInScopes.add(scope);
|
|
14
|
+
cache.items[item.id] = {
|
|
15
|
+
...existing,
|
|
16
|
+
...item,
|
|
17
|
+
visibleInScopes: existing.visibleInScopes
|
|
18
|
+
// Preserve merged scopes!
|
|
19
|
+
};
|
|
20
|
+
} else {
|
|
21
|
+
cache.items[item.id] = { ...item, visibleInScopes: /* @__PURE__ */ new Set([scope]) };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function getAllItems(cache) {
|
|
26
|
+
return Object.values(cache.items);
|
|
27
|
+
}
|
|
28
|
+
function getFilteredItems(cache, scope, query) {
|
|
29
|
+
const allItems = getAllItems(cache);
|
|
30
|
+
const scopedItems = allItems.filter((item) => item.visibleInScopes.has(scope));
|
|
31
|
+
return filterItems.filterItems(scopedItems, query);
|
|
32
|
+
}
|
|
33
|
+
exports.addItems = addItems;
|
|
34
|
+
exports.createItemCache = createItemCache;
|
|
35
|
+
exports.getAllItems = getAllItems;
|
|
36
|
+
exports.getFilteredItems = getFilteredItems;
|
|
37
|
+
//# sourceMappingURL=item-cache.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-cache.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/data/item-cache.ts"],"sourcesContent":["import type { MenuItem, MenuScope } from './types';\nimport { filterItems } from './utils/filter-items';\n\n/**\n * Item Cache\n *\n * Plain object + pure functions for caching menu items.\n * Deduplicates by ID, handles renames/updates automatically.\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Item cache - plain object\n * Stores all fetched items\n */\nexport interface ItemCache {\n items: Record<string, MenuItem>; // itemId → MenuItem\n}\n\n// ============================================================================\n// Utils\n// ============================================================================\n\n/**\n * Create empty cache\n */\nexport function createItemCache(): ItemCache {\n return {\n items: {},\n };\n}\n\n/**\n * Add items to cache with scope tagging (mutates cache)\n *\n * Multi-scope system:\n * - If item exists: ADD scope to existing scopes, update fields\n * - If item new: Create with single scope\n *\n * Deduplication by ID:\n * - ✅ Handles renames: Same ID, new name → updates name, adds scope\n * - ✅ Handles multi-membership: Same ID → adds new scope without removing old ones\n * - ✅ Handles updates: Same ID, new data → updates data, adds scope\n * - ❌ Does NOT handle deletions: Use clearByScope() to remove stale data\n *\n * @param cache - Cache to mutate\n * @param items - Items to add (without visibleInScopes set)\n * @param scope - Scope to tag these items with\n */\nexport function addItems(cache: ItemCache, items: MenuItem[], scope: MenuScope): void {\n for (const item of items) {\n const existing = cache.items[item.id];\n\n if (existing) {\n // Item exists - ADD scope to existing scopes\n existing.visibleInScopes.add(scope);\n // Update other fields (name, thumbnailUrl, etc. may have changed)\n cache.items[item.id] = {\n ...existing,\n ...item,\n visibleInScopes: existing.visibleInScopes, // Preserve merged scopes!\n };\n } else {\n // New item - create with single scope\n cache.items[item.id] = { ...item, visibleInScopes: new Set([scope]) };\n }\n }\n}\n\n/**\n * Get all items (read-only)\n */\nexport function getAllItems(cache: ItemCache): MenuItem[] {\n return Object.values(cache.items);\n}\n\n/**\n * Get filtered items by scope (read-only, no fetching)\n *\n * @param cache - Cache to read from\n * @param scope - Current scope to filter by\n * @param query - Search query\n * @returns Filtered items from cache that belong to this scope\n */\nexport function getFilteredItems(cache: ItemCache, scope: MenuScope, query: string): MenuItem[] {\n const allItems = getAllItems(cache);\n\n // First filter by scope membership\n const scopedItems = allItems.filter((item) => item.visibleInScopes.has(scope));\n\n // Then filter by query\n return filterItems(scopedItems, query, scope);\n}\n\n/**\n * Clear all items\n */\nexport function clearCache(cache: ItemCache): void {\n cache.items = {};\n}\n\n/**\n * Clear scope from all items (mutates cache)\n * Used for invalidation when dynamic data changes\n *\n * Items lose the scope but stay in cache if they have other scopes.\n * Only remove items completely if they have no scopes left.\n *\n * @param cache - Cache to mutate\n * @param scope - Scope to remove from all items\n */\nexport function clearByScope(cache: ItemCache, scope: MenuScope): void {\n const itemsToKeep: Record<string, MenuItem> = {};\n\n for (const [id, item] of Object.entries(cache.items)) {\n // Remove this scope from item\n item.visibleInScopes.delete(scope);\n\n // Keep item only if it still has other scopes\n if (item.visibleInScopes.size > 0) {\n itemsToKeep[id] = item;\n }\n // Otherwise item is removed (no scopes left)\n }\n\n cache.items = itemsToKeep;\n}\n\n/**\n * Remove specific item\n */\nexport function removeItem(cache: ItemCache, itemId: string): void {\n delete cache.items[itemId];\n}\n\n/**\n * Get item by ID\n */\nexport function getItem(cache: ItemCache, itemId: string): MenuItem | undefined {\n return cache.items[itemId];\n}\n\n/**\n * Check if item belongs to a scope\n */\nexport function hasScope(item: MenuItem, scope: MenuScope): boolean {\n return item.visibleInScopes.has(scope);\n}\n"],"names":["filterItems"],"mappings":";;;AA6BO,SAAS,kBAA6B;AAC3C,SAAO;AAAA,IACL,OAAO,CAAA;AAAA,EAAC;AAEZ;AAmBO,SAAS,SAAS,OAAkB,OAAmB,OAAwB;AACpF,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,MAAM,MAAM,KAAK,EAAE;AAEpC,QAAI,UAAU;AAEZ,eAAS,gBAAgB,IAAI,KAAK;AAElC,YAAM,MAAM,KAAK,EAAE,IAAI;AAAA,QACrB,GAAG;AAAA,QACH,GAAG;AAAA,QACH,iBAAiB,SAAS;AAAA;AAAA,MAAA;AAAA,IAE9B,OAAO;AAEL,YAAM,MAAM,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,oBAAI,IAAI,CAAC,KAAK,CAAC,EAAA;AAAA,IACpE;AAAA,EACF;AACF;AAKO,SAAS,YAAY,OAA8B;AACxD,SAAO,OAAO,OAAO,MAAM,KAAK;AAClC;AAUO,SAAS,iBAAiB,OAAkB,OAAkB,OAA2B;AAC9F,QAAM,WAAW,YAAY,KAAK;AAGlC,QAAM,cAAc,SAAS,OAAO,CAAC,SAAS,KAAK,gBAAgB,IAAI,KAAK,CAAC;AAG7E,SAAOA,YAAAA,YAAY,aAAa,KAAY;AAC9C;;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { filterItems } from "./utils/filter-items.js";
|
|
2
|
+
function createItemCache() {
|
|
3
|
+
return {
|
|
4
|
+
items: {}
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
function addItems(cache, items, scope) {
|
|
8
|
+
for (const item of items) {
|
|
9
|
+
const existing = cache.items[item.id];
|
|
10
|
+
if (existing) {
|
|
11
|
+
existing.visibleInScopes.add(scope);
|
|
12
|
+
cache.items[item.id] = {
|
|
13
|
+
...existing,
|
|
14
|
+
...item,
|
|
15
|
+
visibleInScopes: existing.visibleInScopes
|
|
16
|
+
// Preserve merged scopes!
|
|
17
|
+
};
|
|
18
|
+
} else {
|
|
19
|
+
cache.items[item.id] = { ...item, visibleInScopes: /* @__PURE__ */ new Set([scope]) };
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function getAllItems(cache) {
|
|
24
|
+
return Object.values(cache.items);
|
|
25
|
+
}
|
|
26
|
+
function getFilteredItems(cache, scope, query) {
|
|
27
|
+
const allItems = getAllItems(cache);
|
|
28
|
+
const scopedItems = allItems.filter((item) => item.visibleInScopes.has(scope));
|
|
29
|
+
return filterItems(scopedItems, query);
|
|
30
|
+
}
|
|
31
|
+
export {
|
|
32
|
+
addItems,
|
|
33
|
+
createItemCache,
|
|
34
|
+
getAllItems,
|
|
35
|
+
getFilteredItems
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=item-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item-cache.js","sources":["../../../../../src/chat-ui/mentions/suggestions/data/item-cache.ts"],"sourcesContent":["import type { MenuItem, MenuScope } from './types';\nimport { filterItems } from './utils/filter-items';\n\n/**\n * Item Cache\n *\n * Plain object + pure functions for caching menu items.\n * Deduplicates by ID, handles renames/updates automatically.\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Item cache - plain object\n * Stores all fetched items\n */\nexport interface ItemCache {\n items: Record<string, MenuItem>; // itemId → MenuItem\n}\n\n// ============================================================================\n// Utils\n// ============================================================================\n\n/**\n * Create empty cache\n */\nexport function createItemCache(): ItemCache {\n return {\n items: {},\n };\n}\n\n/**\n * Add items to cache with scope tagging (mutates cache)\n *\n * Multi-scope system:\n * - If item exists: ADD scope to existing scopes, update fields\n * - If item new: Create with single scope\n *\n * Deduplication by ID:\n * - ✅ Handles renames: Same ID, new name → updates name, adds scope\n * - ✅ Handles multi-membership: Same ID → adds new scope without removing old ones\n * - ✅ Handles updates: Same ID, new data → updates data, adds scope\n * - ❌ Does NOT handle deletions: Use clearByScope() to remove stale data\n *\n * @param cache - Cache to mutate\n * @param items - Items to add (without visibleInScopes set)\n * @param scope - Scope to tag these items with\n */\nexport function addItems(cache: ItemCache, items: MenuItem[], scope: MenuScope): void {\n for (const item of items) {\n const existing = cache.items[item.id];\n\n if (existing) {\n // Item exists - ADD scope to existing scopes\n existing.visibleInScopes.add(scope);\n // Update other fields (name, thumbnailUrl, etc. may have changed)\n cache.items[item.id] = {\n ...existing,\n ...item,\n visibleInScopes: existing.visibleInScopes, // Preserve merged scopes!\n };\n } else {\n // New item - create with single scope\n cache.items[item.id] = { ...item, visibleInScopes: new Set([scope]) };\n }\n }\n}\n\n/**\n * Get all items (read-only)\n */\nexport function getAllItems(cache: ItemCache): MenuItem[] {\n return Object.values(cache.items);\n}\n\n/**\n * Get filtered items by scope (read-only, no fetching)\n *\n * @param cache - Cache to read from\n * @param scope - Current scope to filter by\n * @param query - Search query\n * @returns Filtered items from cache that belong to this scope\n */\nexport function getFilteredItems(cache: ItemCache, scope: MenuScope, query: string): MenuItem[] {\n const allItems = getAllItems(cache);\n\n // First filter by scope membership\n const scopedItems = allItems.filter((item) => item.visibleInScopes.has(scope));\n\n // Then filter by query\n return filterItems(scopedItems, query, scope);\n}\n\n/**\n * Clear all items\n */\nexport function clearCache(cache: ItemCache): void {\n cache.items = {};\n}\n\n/**\n * Clear scope from all items (mutates cache)\n * Used for invalidation when dynamic data changes\n *\n * Items lose the scope but stay in cache if they have other scopes.\n * Only remove items completely if they have no scopes left.\n *\n * @param cache - Cache to mutate\n * @param scope - Scope to remove from all items\n */\nexport function clearByScope(cache: ItemCache, scope: MenuScope): void {\n const itemsToKeep: Record<string, MenuItem> = {};\n\n for (const [id, item] of Object.entries(cache.items)) {\n // Remove this scope from item\n item.visibleInScopes.delete(scope);\n\n // Keep item only if it still has other scopes\n if (item.visibleInScopes.size > 0) {\n itemsToKeep[id] = item;\n }\n // Otherwise item is removed (no scopes left)\n }\n\n cache.items = itemsToKeep;\n}\n\n/**\n * Remove specific item\n */\nexport function removeItem(cache: ItemCache, itemId: string): void {\n delete cache.items[itemId];\n}\n\n/**\n * Get item by ID\n */\nexport function getItem(cache: ItemCache, itemId: string): MenuItem | undefined {\n return cache.items[itemId];\n}\n\n/**\n * Check if item belongs to a scope\n */\nexport function hasScope(item: MenuItem, scope: MenuScope): boolean {\n return item.visibleInScopes.has(scope);\n}\n"],"names":[],"mappings":";AA6BO,SAAS,kBAA6B;AAC3C,SAAO;AAAA,IACL,OAAO,CAAA;AAAA,EAAC;AAEZ;AAmBO,SAAS,SAAS,OAAkB,OAAmB,OAAwB;AACpF,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,MAAM,MAAM,KAAK,EAAE;AAEpC,QAAI,UAAU;AAEZ,eAAS,gBAAgB,IAAI,KAAK;AAElC,YAAM,MAAM,KAAK,EAAE,IAAI;AAAA,QACrB,GAAG;AAAA,QACH,GAAG;AAAA,QACH,iBAAiB,SAAS;AAAA;AAAA,MAAA;AAAA,IAE9B,OAAO;AAEL,YAAM,MAAM,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,oBAAI,IAAI,CAAC,KAAK,CAAC,EAAA;AAAA,IACpE;AAAA,EACF;AACF;AAKO,SAAS,YAAY,OAA8B;AACxD,SAAO,OAAO,OAAO,MAAM,KAAK;AAClC;AAUO,SAAS,iBAAiB,OAAkB,OAAkB,OAA2B;AAC9F,QAAM,WAAW,YAAY,KAAK;AAGlC,QAAM,cAAc,SAAS,OAAO,CAAC,SAAS,KAAK,gBAAgB,IAAI,KAAK,CAAC;AAG7E,SAAO,YAAY,aAAa,KAAY;AAC9C;"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const athenaDiagnostics = require("../../../../diagnostics/athena-diagnostics.cjs");
|
|
4
|
+
const itemCache = require("./item-cache.cjs");
|
|
5
|
+
const scopeRegistry = require("./scope-registry.cjs");
|
|
6
|
+
const MAX_ERROR_RETRIES = 3;
|
|
7
|
+
function selectItems(store, scope, query, _targetCount, parentScope) {
|
|
8
|
+
const state = store.state;
|
|
9
|
+
const scopeId = typeof scope === "string" ? scope : scope.id;
|
|
10
|
+
const parentScopeId = parentScope ? typeof parentScope === "string" ? parentScope : parentScope.id : void 0;
|
|
11
|
+
const items = itemCache.getFilteredItems(state.cache, scopeId, query);
|
|
12
|
+
let isFetching = false;
|
|
13
|
+
let hasMore = true;
|
|
14
|
+
try {
|
|
15
|
+
const fetchState = scopeRegistry.getFetchState(state.registry, scopeId, query, parentScopeId);
|
|
16
|
+
isFetching = fetchState.isFetching;
|
|
17
|
+
hasMore = fetchState.hasNextPage;
|
|
18
|
+
} catch {
|
|
19
|
+
hasMore = false;
|
|
20
|
+
}
|
|
21
|
+
return { items, isFetching, hasMore };
|
|
22
|
+
}
|
|
23
|
+
function triggerFetchIfNeeded(store, scope, query, _targetCount, parentScope) {
|
|
24
|
+
const scopeId = typeof scope === "string" ? scope : scope.id;
|
|
25
|
+
const parentScopeId = parentScope ? typeof parentScope === "string" ? parentScope : parentScope.id : void 0;
|
|
26
|
+
const state = store.state;
|
|
27
|
+
let entry;
|
|
28
|
+
try {
|
|
29
|
+
entry = scopeRegistry.getEntry(state.registry, scopeId, parentScopeId);
|
|
30
|
+
} catch {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const fetchState = scopeRegistry.getFetchState(state.registry, scopeId, query, parentScopeId);
|
|
34
|
+
if (fetchState.isFetching || !fetchState.hasNextPage || fetchState.error) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const meta = fetchState.meta || {};
|
|
38
|
+
if ((meta.fetchAttempts || 0) >= 10) return;
|
|
39
|
+
scopeRegistry.updateFetchState(state.registry, scopeId, query, { isFetching: true }, parentScopeId);
|
|
40
|
+
store.setState((prev) => ({ ...prev }));
|
|
41
|
+
const sourceFn = entry.sourceFn;
|
|
42
|
+
const sourceConfig = entry.sourceConfig;
|
|
43
|
+
sourceFn({
|
|
44
|
+
scope: scopeId,
|
|
45
|
+
query,
|
|
46
|
+
fetchState,
|
|
47
|
+
sourceConfig
|
|
48
|
+
}).then((result) => {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
const currentState = store.state;
|
|
51
|
+
itemCache.addItems(currentState.cache, result.items, scopeId);
|
|
52
|
+
if (result.sources) {
|
|
53
|
+
for (const src of result.sources) {
|
|
54
|
+
try {
|
|
55
|
+
scopeRegistry.getEntry(currentState.registry, src.scope);
|
|
56
|
+
} catch {
|
|
57
|
+
scopeRegistry.registerSource(
|
|
58
|
+
currentState.registry,
|
|
59
|
+
src.scope,
|
|
60
|
+
src.sourceFn,
|
|
61
|
+
src.sourceConfig,
|
|
62
|
+
src.isFlat
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (result.bindings) {
|
|
68
|
+
for (const binding of result.bindings) {
|
|
69
|
+
scopeRegistry.bindScopes(currentState.registry, binding.browseScope, binding.searchScope);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const currentMeta = fetchState.meta || {};
|
|
73
|
+
const consumed = ((_a = result.pagination) == null ? void 0 : _a.consumedCount) ?? result.items.length;
|
|
74
|
+
const newValidated = (currentMeta.validatedCount || 0) + consumed;
|
|
75
|
+
scopeRegistry.updateFetchState(
|
|
76
|
+
currentState.registry,
|
|
77
|
+
scopeId,
|
|
78
|
+
query,
|
|
79
|
+
{
|
|
80
|
+
isFetching: false,
|
|
81
|
+
hasNextPage: ((_b = result.pagination) == null ? void 0 : _b.hasMore) ?? false,
|
|
82
|
+
error: null,
|
|
83
|
+
meta: {
|
|
84
|
+
...currentMeta,
|
|
85
|
+
...result.meta,
|
|
86
|
+
validatedCount: newValidated,
|
|
87
|
+
fetchAttempts: (currentMeta.fetchAttempts || 0) + 1,
|
|
88
|
+
errorAttempts: 0
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
parentScopeId
|
|
92
|
+
);
|
|
93
|
+
store.setState((prev) => ({ ...prev }));
|
|
94
|
+
}).catch((error) => {
|
|
95
|
+
const currentState = store.state;
|
|
96
|
+
const currentMeta = fetchState.meta || {};
|
|
97
|
+
const errorAttempts = (currentMeta.errorAttempts || 0) + 1;
|
|
98
|
+
const retriable = errorAttempts < MAX_ERROR_RETRIES;
|
|
99
|
+
if (retriable) {
|
|
100
|
+
athenaDiagnostics.athenaDiagnostics.emit("mentions.fetch.error", {
|
|
101
|
+
level: "warn",
|
|
102
|
+
data: {
|
|
103
|
+
scopeId,
|
|
104
|
+
attempt: errorAttempts,
|
|
105
|
+
retriable,
|
|
106
|
+
error: error instanceof Error ? error.message : String(error)
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
} else {
|
|
110
|
+
athenaDiagnostics.athenaDiagnostics.error(
|
|
111
|
+
"mentions.fetch.error",
|
|
112
|
+
error,
|
|
113
|
+
{ code: "mentions_fetch_failed", message: `Mention suggestions failed for ${scopeId}` },
|
|
114
|
+
{ scopeId, attempt: errorAttempts, retriable }
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
scopeRegistry.updateFetchState(
|
|
118
|
+
currentState.registry,
|
|
119
|
+
scopeId,
|
|
120
|
+
query,
|
|
121
|
+
{
|
|
122
|
+
isFetching: false,
|
|
123
|
+
hasNextPage: retriable,
|
|
124
|
+
error: retriable ? null : error instanceof Error ? error : new Error(String(error)),
|
|
125
|
+
meta: { ...currentMeta, errorAttempts }
|
|
126
|
+
},
|
|
127
|
+
parentScopeId
|
|
128
|
+
);
|
|
129
|
+
store.setState((prev) => ({ ...prev }));
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
exports.selectItems = selectItems;
|
|
133
|
+
exports.triggerFetchIfNeeded = triggerFetchIfNeeded;
|
|
134
|
+
//# sourceMappingURL=orchestrator.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.cjs","sources":["../../../../../src/chat-ui/mentions/suggestions/data/orchestrator.ts"],"sourcesContent":["/**\n * Mention Orchestrator — Async data fetching with registry + cache.\n *\n * selectItems (pure read) + triggerFetchIfNeeded (async fetch).\n */\n\nimport { athenaDiagnostics } from \"../../../../diagnostics/athena-diagnostics\";\nimport type { MenuItem, MenuScope, FetchMetadata, SourceToRegister } from \"./types\";\nimport type { MentionSuggestionsStore, MentionSuggestionsStoreState } from \"./use-mention-suggestions\";\nimport { getFilteredItems, addItems } from \"./item-cache\";\nimport {\n getEntry,\n getFetchState,\n updateFetchState,\n registerSource,\n bindScopes,\n} from \"./scope-registry\";\nimport { filterItems } from \"./utils/filter-items\";\n\n/** Consecutive fetch failures tolerated before a scope+query stops retrying. */\nconst MAX_ERROR_RETRIES = 3;\n\n/**\n * Select items for a given scope + query from the cache.\n * Pure, synchronous read — no side effects.\n */\nexport function selectItems(\n store: MentionSuggestionsStore,\n scope: MenuScope | { id: string },\n query: string,\n _targetCount?: number,\n parentScope?: MenuScope | { id: string },\n): { items: MenuItem[]; isFetching: boolean; hasMore: boolean } {\n const state = store.state;\n const scopeId = typeof scope === \"string\" ? scope : scope.id;\n const parentScopeId = parentScope\n ? typeof parentScope === \"string\" ? parentScope : parentScope.id\n : undefined;\n\n // Read from cache\n const items = getFilteredItems(state.cache, scopeId, query);\n\n // Read fetch state from registry\n let isFetching = false;\n let hasMore = true;\n\n try {\n const fetchState = getFetchState(state.registry, scopeId, query, parentScopeId);\n isFetching = fetchState.isFetching;\n hasMore = fetchState.hasNextPage;\n } catch {\n // Scope not registered — no more to fetch\n hasMore = false;\n }\n\n return { items, isFetching, hasMore };\n}\n\n/**\n * Trigger an async fetch if needed.\n * Called by useMenuItems when cache < target AND hasMore AND !fetching.\n */\nexport function triggerFetchIfNeeded(\n store: MentionSuggestionsStore,\n scope: MenuScope | { id: string },\n query: string,\n _targetCount?: number,\n parentScope?: MenuScope | { id: string },\n): void {\n const scopeId = typeof scope === \"string\" ? scope : scope.id;\n const parentScopeId = parentScope\n ? typeof parentScope === \"string\" ? parentScope : parentScope.id\n : undefined;\n\n const state = store.state;\n\n // Check if scope is registered\n let entry;\n try {\n entry = getEntry(state.registry, scopeId, parentScopeId);\n } catch {\n return; // Not registered, nothing to fetch\n }\n\n // Check fetch state\n const fetchState = getFetchState(state.registry, scopeId, query, parentScopeId);\n if (fetchState.isFetching || !fetchState.hasNextPage || fetchState.error) {\n return;\n }\n\n // Safety limit\n const meta = (fetchState.meta as FetchMetadata) || {};\n if ((meta.fetchAttempts || 0) >= 10) return;\n\n // Mark as fetching\n updateFetchState(state.registry, scopeId, query, { isFetching: true }, parentScopeId);\n store.setState((prev) => ({ ...prev }));\n\n // Async fetch\n const sourceFn = entry.sourceFn;\n const sourceConfig = entry.sourceConfig;\n\n sourceFn({\n scope: scopeId,\n query,\n fetchState,\n sourceConfig,\n })\n .then((result) => {\n const currentState = store.state;\n\n // Add items to cache with scope tagging\n addItems(currentState.cache, result.items, scopeId);\n\n // Register dynamically discovered sources\n if (result.sources) {\n for (const src of result.sources) {\n try {\n getEntry(currentState.registry, src.scope);\n } catch {\n // Not registered yet — register it\n registerSource(\n currentState.registry,\n src.scope,\n src.sourceFn,\n src.sourceConfig,\n src.isFlat,\n );\n }\n }\n }\n\n // Register dynamically discovered bindings\n if (result.bindings) {\n for (const binding of result.bindings) {\n bindScopes(currentState.registry, binding.browseScope, binding.searchScope);\n }\n }\n\n // Update fetch state\n const currentMeta = (fetchState.meta as FetchMetadata) || {};\n // Advance the server-side offset by the rows the source consumed, which\n // exceeds `items.length` whenever a source drops rows after fetching.\n const consumed = result.pagination?.consumedCount ?? result.items.length;\n const newValidated = (currentMeta.validatedCount || 0) + consumed;\n\n updateFetchState(\n currentState.registry,\n scopeId,\n query,\n {\n isFetching: false,\n hasNextPage: result.pagination?.hasMore ?? false,\n error: null,\n meta: {\n ...currentMeta,\n ...result.meta,\n validatedCount: newValidated,\n fetchAttempts: (currentMeta.fetchAttempts || 0) + 1,\n errorAttempts: 0,\n },\n },\n parentScopeId,\n );\n\n // Trigger re-render\n store.setState((prev) => ({ ...prev }));\n })\n .catch((error) => {\n const currentState = store.state;\n const currentMeta = (fetchState.meta as FetchMetadata) || {};\n const errorAttempts = ((currentMeta.errorAttempts as number) || 0) + 1;\n const retriable = errorAttempts < MAX_ERROR_RETRIES;\n\n // Retriable failures are a warning on the bus; the final one is an\n // error and also lands in the scope's fetch state below.\n if (retriable) {\n athenaDiagnostics.emit(\"mentions.fetch.error\", {\n level: \"warn\",\n data: {\n scopeId,\n attempt: errorAttempts,\n retriable,\n error: error instanceof Error ? error.message : String(error),\n },\n });\n } else {\n athenaDiagnostics.error(\n \"mentions.fetch.error\",\n error,\n { code: \"mentions_fetch_failed\", message: `Mention suggestions failed for ${scopeId}` },\n { scopeId, attempt: errorAttempts, retriable },\n );\n }\n\n updateFetchState(\n currentState.registry,\n scopeId,\n query,\n {\n isFetching: false,\n hasNextPage: retriable,\n error: retriable\n ? null\n : error instanceof Error\n ? error\n : new Error(String(error)),\n meta: { ...currentMeta, errorAttempts },\n },\n parentScopeId,\n );\n\n store.setState((prev) => ({ ...prev }));\n });\n}\n"],"names":["getFilteredItems","getFetchState","getEntry","updateFetchState","addItems","registerSource","bindScopes","athenaDiagnostics"],"mappings":";;;;;AAoBA,MAAM,oBAAoB;AAMnB,SAAS,YACd,OACA,OACA,OACA,cACA,aAC8D;AAC9D,QAAM,QAAQ,MAAM;AACpB,QAAM,UAAU,OAAO,UAAU,WAAW,QAAQ,MAAM;AAC1D,QAAM,gBAAgB,cAClB,OAAO,gBAAgB,WAAW,cAAc,YAAY,KAC5D;AAGJ,QAAM,QAAQA,UAAAA,iBAAiB,MAAM,OAAO,SAAS,KAAK;AAG1D,MAAI,aAAa;AACjB,MAAI,UAAU;AAEd,MAAI;AACF,UAAM,aAAaC,cAAAA,cAAc,MAAM,UAAU,SAAS,OAAO,aAAa;AAC9E,iBAAa,WAAW;AACxB,cAAU,WAAW;AAAA,EACvB,QAAQ;AAEN,cAAU;AAAA,EACZ;AAEA,SAAO,EAAE,OAAO,YAAY,QAAA;AAC9B;AAMO,SAAS,qBACd,OACA,OACA,OACA,cACA,aACM;AACN,QAAM,UAAU,OAAO,UAAU,WAAW,QAAQ,MAAM;AAC1D,QAAM,gBAAgB,cAClB,OAAO,gBAAgB,WAAW,cAAc,YAAY,KAC5D;AAEJ,QAAM,QAAQ,MAAM;AAGpB,MAAI;AACJ,MAAI;AACF,YAAQC,cAAAA,SAAS,MAAM,UAAU,SAAS,aAAa;AAAA,EACzD,QAAQ;AACN;AAAA,EACF;AAGA,QAAM,aAAaD,cAAAA,cAAc,MAAM,UAAU,SAAS,OAAO,aAAa;AAC9E,MAAI,WAAW,cAAc,CAAC,WAAW,eAAe,WAAW,OAAO;AACxE;AAAA,EACF;AAGA,QAAM,OAAQ,WAAW,QAA0B,CAAA;AACnD,OAAK,KAAK,iBAAiB,MAAM,GAAI;AAGrCE,iCAAiB,MAAM,UAAU,SAAS,OAAO,EAAE,YAAY,KAAA,GAAQ,aAAa;AACpF,QAAM,SAAS,CAAC,UAAU,EAAE,GAAG,OAAO;AAGtC,QAAM,WAAW,MAAM;AACvB,QAAM,eAAe,MAAM;AAE3B,WAAS;AAAA,IACP,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD,EACE,KAAK,CAAC,WAAW;;AAChB,UAAM,eAAe,MAAM;AAG3BC,cAAAA,SAAS,aAAa,OAAO,OAAO,OAAO,OAAO;AAGlD,QAAI,OAAO,SAAS;AAClB,iBAAW,OAAO,OAAO,SAAS;AAChC,YAAI;AACFF,wBAAAA,SAAS,aAAa,UAAU,IAAI,KAAK;AAAA,QAC3C,QAAQ;AAENG,wBAAAA;AAAAA,YACE,aAAa;AAAA,YACb,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,UAAA;AAAA,QAER;AAAA,MACF;AAAA,IACF;AAGA,QAAI,OAAO,UAAU;AACnB,iBAAW,WAAW,OAAO,UAAU;AACrCC,sBAAAA,WAAW,aAAa,UAAU,QAAQ,aAAa,QAAQ,WAAW;AAAA,MAC5E;AAAA,IACF;AAGA,UAAM,cAAe,WAAW,QAA0B,CAAA;AAG1D,UAAM,aAAW,YAAO,eAAP,mBAAmB,kBAAiB,OAAO,MAAM;AAClE,UAAM,gBAAgB,YAAY,kBAAkB,KAAK;AAEzDH,kBAAAA;AAAAA,MACE,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,QACE,YAAY;AAAA,QACZ,eAAa,YAAO,eAAP,mBAAmB,YAAW;AAAA,QAC3C,OAAO;AAAA,QACP,MAAM;AAAA,UACJ,GAAG;AAAA,UACH,GAAG,OAAO;AAAA,UACV,gBAAgB;AAAA,UAChB,gBAAgB,YAAY,iBAAiB,KAAK;AAAA,UAClD,eAAe;AAAA,QAAA;AAAA,MACjB;AAAA,MAEF;AAAA,IAAA;AAIF,UAAM,SAAS,CAAC,UAAU,EAAE,GAAG,OAAO;AAAA,EACxC,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,UAAM,eAAe,MAAM;AAC3B,UAAM,cAAe,WAAW,QAA0B,CAAA;AAC1D,UAAM,iBAAkB,YAAY,iBAA4B,KAAK;AACrE,UAAM,YAAY,gBAAgB;AAIlC,QAAI,WAAW;AACbI,wBAAAA,kBAAkB,KAAK,wBAAwB;AAAA,QAC7C,OAAO;AAAA,QACP,MAAM;AAAA,UACJ;AAAA,UACA,SAAS;AAAA,UACT;AAAA,UACA,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,QAAA;AAAA,MAC9D,CACD;AAAA,IACH,OAAO;AACLA,wBAAAA,kBAAkB;AAAA,QAChB;AAAA,QACA;AAAA,QACA,EAAE,MAAM,yBAAyB,SAAS,kCAAkC,OAAO,GAAA;AAAA,QACnF,EAAE,SAAS,SAAS,eAAe,UAAA;AAAA,MAAU;AAAA,IAEjD;AAEAJ,kBAAAA;AAAAA,MACE,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,QACE,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,OAAO,YACH,OACA,iBAAiB,QACf,QACA,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,QAC7B,MAAM,EAAE,GAAG,aAAa,cAAA;AAAA,MAAc;AAAA,MAExC;AAAA,IAAA;AAGF,UAAM,SAAS,CAAC,UAAU,EAAE,GAAG,OAAO;AAAA,EACxC,CAAC;AACL;;;"}
|