@athenaintel/react 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +195 -7
- package/dist/assets/AssetPanel.cjs +277 -0
- package/dist/assets/AssetPanel.cjs.map +1 -0
- package/dist/assets/AssetPanel.js +277 -0
- package/dist/assets/AssetPanel.js.map +1 -0
- package/dist/assets/AthenaAssetEmbed.cjs +151 -0
- package/dist/assets/AthenaAssetEmbed.cjs.map +1 -0
- package/dist/assets/AthenaAssetEmbed.js +151 -0
- package/dist/assets/AthenaAssetEmbed.js.map +1 -0
- package/dist/assets/AthenaLayout.cjs +69 -0
- package/dist/assets/AthenaLayout.cjs.map +1 -0
- package/dist/assets/AthenaLayout.js +69 -0
- package/dist/assets/AthenaLayout.js.map +1 -0
- package/dist/assets/asset-embed-messages.cjs +39 -0
- package/dist/assets/asset-embed-messages.cjs.map +1 -0
- package/dist/assets/asset-embed-messages.js +39 -0
- package/dist/assets/asset-embed-messages.js.map +1 -0
- package/dist/assets/asset-panel-store.cjs +124 -0
- package/dist/assets/asset-panel-store.cjs.map +1 -0
- package/dist/assets/asset-panel-store.js +124 -0
- package/dist/assets/asset-panel-store.js.map +1 -0
- package/dist/assets/asset-panel-url.cjs +40 -0
- package/dist/assets/asset-panel-url.cjs.map +1 -0
- package/dist/assets/asset-panel-url.js +40 -0
- package/dist/assets/asset-panel-url.js.map +1 -0
- package/dist/assets/use-asset-embed.cjs +362 -0
- package/dist/assets/use-asset-embed.cjs.map +1 -0
- package/dist/assets/use-asset-embed.js +362 -0
- package/dist/assets/use-asset-embed.js.map +1 -0
- package/dist/{AthenaAuthContext-B3AwLA5Z.cjs → auth/AthenaAuthContext.cjs} +5 -4
- package/dist/auth/AthenaAuthContext.cjs.map +1 -0
- package/dist/{AthenaAuthContext-DQsdayH2.js → auth/AthenaAuthContext.js} +3 -3
- package/dist/auth/AthenaAuthContext.js.map +1 -0
- package/dist/auth/AthenaAuthProvider.cjs +141 -0
- package/dist/auth/AthenaAuthProvider.cjs.map +1 -0
- package/dist/auth/AthenaAuthProvider.js +141 -0
- package/dist/auth/AthenaAuthProvider.js.map +1 -0
- package/dist/{auth.cjs → auth/AthenaSSOProvider.cjs} +14 -151
- package/dist/auth/AthenaSSOProvider.cjs.map +1 -0
- package/dist/{auth.js → auth/AthenaSSOProvider.js} +4 -142
- package/dist/auth/AthenaSSOProvider.js.map +1 -0
- package/dist/auth/index.cjs +10 -0
- package/dist/auth/index.cjs.map +1 -0
- package/dist/auth/index.js +10 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/chat/AthenaChat.cjs +753 -0
- package/dist/chat/AthenaChat.cjs.map +1 -0
- package/dist/chat/AthenaChat.d.ts +3 -2
- package/dist/chat/AthenaChat.js +753 -0
- package/dist/chat/AthenaChat.js.map +1 -0
- package/dist/chat/AthenaChatErrorBoundary.cjs +53 -0
- package/dist/chat/AthenaChatErrorBoundary.cjs.map +1 -0
- package/dist/chat/AthenaChatErrorBoundary.js +53 -0
- package/dist/chat/AthenaChatErrorBoundary.js.map +1 -0
- package/dist/chat/StatewireApprovalCard.cjs +171 -0
- package/dist/chat/StatewireApprovalCard.cjs.map +1 -0
- package/dist/chat/StatewireApprovalCard.d.ts +59 -2
- package/dist/chat/StatewireApprovalCard.js +171 -0
- package/dist/chat/StatewireApprovalCard.js.map +1 -0
- package/dist/chat/StatewireClientToolBridge.cjs +50 -0
- package/dist/chat/StatewireClientToolBridge.cjs.map +1 -0
- package/dist/chat/StatewireClientToolBridge.d.ts +3 -3
- package/dist/chat/StatewireClientToolBridge.js +50 -0
- package/dist/chat/StatewireClientToolBridge.js.map +1 -0
- package/dist/chat/StatewireQueuedMessages.cjs +432 -0
- package/dist/chat/StatewireQueuedMessages.cjs.map +1 -0
- package/dist/chat/StatewireQueuedMessages.d.ts +104 -6
- package/dist/chat/StatewireQueuedMessages.js +432 -0
- package/dist/chat/StatewireQueuedMessages.js.map +1 -0
- package/dist/chat/athena-citation-links.cjs +326 -0
- package/dist/chat/athena-citation-links.cjs.map +1 -0
- package/dist/chat/athena-citation-links.js +326 -0
- package/dist/chat/athena-citation-links.js.map +1 -0
- package/dist/chat/run-activity.cjs +28 -0
- package/dist/chat/run-activity.cjs.map +1 -0
- package/dist/chat/run-activity.js +28 -0
- package/dist/chat/run-activity.js.map +1 -0
- package/dist/chat/statewire-approval.d.ts +1 -1
- package/dist/chat/statewire-banners.cjs +83 -0
- package/dist/chat/statewire-banners.cjs.map +1 -0
- package/dist/chat/statewire-banners.js +83 -0
- package/dist/chat/statewire-banners.js.map +1 -0
- package/dist/chat/statewire-client-tools.cjs +73 -0
- package/dist/chat/statewire-client-tools.cjs.map +1 -0
- package/dist/chat/statewire-client-tools.d.ts +15 -21
- package/dist/chat/statewire-client-tools.js +73 -0
- package/dist/chat/statewire-client-tools.js.map +1 -0
- package/dist/chat/super-grouping/CollapsibleGroup.cjs +158 -0
- package/dist/chat/super-grouping/CollapsibleGroup.cjs.map +1 -0
- package/dist/chat/super-grouping/CollapsibleGroup.d.ts +52 -11
- package/dist/chat/super-grouping/CollapsibleGroup.js +158 -0
- package/dist/chat/super-grouping/CollapsibleGroup.js.map +1 -0
- package/dist/chat/super-grouping/SuperGroupingCard.cjs +361 -0
- package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -0
- package/dist/chat/super-grouping/SuperGroupingCard.d.ts +81 -21
- package/dist/chat/super-grouping/SuperGroupingCard.js +361 -0
- package/dist/chat/super-grouping/SuperGroupingCard.js.map +1 -0
- package/dist/chat/super-grouping/activity-timeline.cjs +151 -0
- package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -0
- package/dist/chat/super-grouping/activity-timeline.d.ts +91 -0
- package/dist/chat/super-grouping/activity-timeline.js +151 -0
- package/dist/chat/super-grouping/activity-timeline.js.map +1 -0
- package/dist/chat/super-grouping/grouping-function.cjs +55 -0
- package/dist/chat/super-grouping/grouping-function.cjs.map +1 -0
- package/dist/chat/super-grouping/grouping-function.d.ts +13 -10
- package/dist/chat/super-grouping/grouping-function.js +55 -0
- package/dist/chat/super-grouping/grouping-function.js.map +1 -0
- package/dist/chat/super-grouping/index.cjs +26 -0
- package/dist/chat/super-grouping/index.cjs.map +1 -0
- package/dist/chat/super-grouping/index.d.ts +12 -0
- package/dist/chat/super-grouping/index.js +26 -0
- package/dist/chat/super-grouping/index.js.map +1 -0
- package/dist/chat/super-grouping/toolkit-map.cjs +96 -0
- package/dist/chat/super-grouping/toolkit-map.cjs.map +1 -0
- package/dist/chat/super-grouping/toolkit-map.d.ts +8 -1
- package/dist/chat/super-grouping/toolkit-map.js +96 -0
- package/dist/chat/super-grouping/toolkit-map.js.map +1 -0
- package/dist/chat/tiptap-text.cjs +101 -0
- package/dist/chat/tiptap-text.cjs.map +1 -0
- package/dist/chat/tiptap-text.js +101 -0
- package/dist/chat/tiptap-text.js.map +1 -0
- package/dist/chat/tooltip-icon-button.cjs +32 -0
- package/dist/chat/tooltip-icon-button.cjs.map +1 -0
- package/dist/chat/tooltip-icon-button.js +32 -0
- package/dist/chat/tooltip-icon-button.js.map +1 -0
- package/dist/chat/use-athena-run-live.cjs +23 -0
- package/dist/chat/use-athena-run-live.cjs.map +1 -0
- package/dist/chat/use-athena-run-live.d.ts +10 -0
- package/dist/chat/use-athena-run-live.js +23 -0
- package/dist/chat/use-athena-run-live.js.map +1 -0
- package/dist/chat/use-statewire-approval-request.cjs +46 -0
- package/dist/chat/use-statewire-approval-request.cjs.map +1 -0
- package/dist/chat/use-statewire-approval-request.d.ts +44 -0
- package/dist/chat/use-statewire-approval-request.js +46 -0
- package/dist/chat/use-statewire-approval-request.js.map +1 -0
- package/dist/chat-ui/auth/sign-in-card.cjs +128 -0
- package/dist/chat-ui/auth/sign-in-card.cjs.map +1 -0
- package/dist/chat-ui/auth/sign-in-card.js +128 -0
- package/dist/chat-ui/auth/sign-in-card.js.map +1 -0
- package/dist/chat-ui/composer/composer-action.cjs +11 -0
- package/dist/chat-ui/composer/composer-action.cjs.map +1 -0
- package/dist/chat-ui/composer/composer-action.d.ts +5 -8
- package/dist/chat-ui/composer/composer-action.js +11 -0
- package/dist/chat-ui/composer/composer-action.js.map +1 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.cjs +25 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.cjs.map +1 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.js +25 -0
- package/dist/chat-ui/composer/pending-attachment-uploads.js.map +1 -0
- package/dist/chat-ui/composer/tiptap-composer.cjs +590 -0
- package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -0
- package/dist/chat-ui/composer/tiptap-composer.d.ts +44 -7
- package/dist/chat-ui/composer/tiptap-composer.js +590 -0
- package/dist/chat-ui/composer/tiptap-composer.js.map +1 -0
- package/dist/chat-ui/header/chat-header.cjs +33 -0
- package/dist/chat-ui/header/chat-header.cjs.map +1 -0
- package/dist/chat-ui/header/chat-header.js +33 -0
- package/dist/chat-ui/header/chat-header.js.map +1 -0
- package/dist/chat-ui/header/conversation-history-panel.cjs +369 -0
- package/dist/chat-ui/header/conversation-history-panel.cjs.map +1 -0
- package/dist/chat-ui/header/conversation-history-panel.d.ts +11 -1
- package/dist/chat-ui/header/conversation-history-panel.js +369 -0
- package/dist/chat-ui/header/conversation-history-panel.js.map +1 -0
- package/dist/chat-ui/index.cjs +139 -0
- package/dist/chat-ui/index.cjs.map +1 -0
- package/dist/chat-ui/index.d.ts +11 -4
- package/dist/chat-ui/index.js +139 -0
- package/dist/chat-ui/index.js.map +1 -0
- package/dist/chat-ui/lib/asset-urls.cjs +18 -0
- package/dist/chat-ui/lib/asset-urls.cjs.map +1 -0
- package/dist/chat-ui/lib/asset-urls.js +18 -0
- package/dist/chat-ui/lib/asset-urls.js.map +1 -0
- package/dist/chat-ui/mentions/mention-chip.cjs +208 -0
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -0
- package/dist/chat-ui/mentions/mention-chip.js +208 -0
- package/dist/chat-ui/mentions/mention-chip.js.map +1 -0
- package/dist/chat-ui/mentions/mention-extension.cjs +184 -0
- package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -0
- package/dist/chat-ui/mentions/mention-extension.d.ts +24 -2
- package/dist/chat-ui/mentions/mention-extension.js +184 -0
- package/dist/chat-ui/mentions/mention-extension.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +35 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +35 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +95 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.d.ts +5 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +95 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs +116 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js +116 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs +31 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js +31 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.cjs +27 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.js +27 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +62 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js +62 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs +63 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js +63 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.cjs +11 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.js +11 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.cjs +33 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.js +33 -0
- package/dist/chat-ui/mentions/suggestions/components/menu-summary.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs +58 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.js +58 -0
- package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs +81 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.js +81 -0
- package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.cjs +18 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.js +18 -0
- package/dist/chat-ui/mentions/suggestions/components/utils.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +123 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +10 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js +123 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.cjs +37 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.js +37 -0
- package/dist/chat-ui/mentions/suggestions/data/item-cache.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs +134 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.js +134 -0
- package/dist/chat-ui/mentions/suggestions/data/orchestrator.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.cjs +91 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.js +91 -0
- package/dist/chat-ui/mentions/suggestions/data/scope-registry.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs +137 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js +137 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +375 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +16 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js +375 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/types.cjs +9 -0
- package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/types.d.ts +14 -0
- package/dist/chat-ui/mentions/suggestions/data/types.js +9 -0
- package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +173 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +14 -4
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +173 -0
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs +45 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js +45 -0
- package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.cjs +43 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.js +43 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.cjs +14 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.js +14 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/match-query.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.cjs +48 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.js +48 -0
- package/dist/chat-ui/mentions/suggestions/data/utils/score-match.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +71 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +71 -0
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/shims.d.ts +0 -4
- package/dist/chat-ui/messages/continue-pill.cjs +54 -0
- package/dist/chat-ui/messages/continue-pill.cjs.map +1 -0
- package/dist/chat-ui/messages/continue-pill.js +54 -0
- package/dist/chat-ui/messages/continue-pill.js.map +1 -0
- package/dist/chat-ui/messages/message-actions-config.cjs +12 -0
- package/dist/chat-ui/messages/message-actions-config.cjs.map +1 -0
- package/dist/chat-ui/messages/message-actions-config.js +12 -0
- package/dist/chat-ui/messages/message-actions-config.js.map +1 -0
- package/dist/chat-ui/messages/message-components.cjs +343 -0
- package/dist/chat-ui/messages/message-components.cjs.map +1 -0
- package/dist/chat-ui/messages/message-components.d.ts +13 -1
- package/dist/chat-ui/messages/message-components.js +343 -0
- package/dist/chat-ui/messages/message-components.js.map +1 -0
- package/dist/chat-ui/messages/running-indicator.cjs +49 -0
- package/dist/chat-ui/messages/running-indicator.cjs.map +1 -0
- package/dist/chat-ui/messages/running-indicator.js +49 -0
- package/dist/chat-ui/messages/running-indicator.js.map +1 -0
- package/dist/chat-ui/messages/runtime-message.cjs +65 -0
- package/dist/chat-ui/messages/runtime-message.cjs.map +1 -0
- package/dist/chat-ui/messages/runtime-message.d.ts +2 -3
- package/dist/chat-ui/messages/runtime-message.js +65 -0
- package/dist/chat-ui/messages/runtime-message.js.map +1 -0
- package/dist/chat-ui/messages/statewire-continue-run.cjs +154 -0
- package/dist/chat-ui/messages/statewire-continue-run.cjs.map +1 -0
- package/dist/chat-ui/messages/statewire-continue-run.d.ts +52 -7
- package/dist/chat-ui/messages/statewire-continue-run.js +154 -0
- package/dist/chat-ui/messages/statewire-continue-run.js.map +1 -0
- package/dist/chat-ui/messages/user-edit-composer.cjs +61 -0
- package/dist/chat-ui/messages/user-edit-composer.cjs.map +1 -0
- package/dist/chat-ui/messages/user-edit-composer.d.ts +5 -2
- package/dist/chat-ui/messages/user-edit-composer.js +61 -0
- package/dist/chat-ui/messages/user-edit-composer.js.map +1 -0
- package/dist/chat-ui/messages/voice-delegation-card.cjs +51 -0
- package/dist/chat-ui/messages/voice-delegation-card.cjs.map +1 -0
- package/dist/chat-ui/messages/voice-delegation-card.d.ts +26 -0
- package/dist/chat-ui/messages/voice-delegation-card.js +51 -0
- package/dist/chat-ui/messages/voice-delegation-card.js.map +1 -0
- package/dist/chat-ui/statewire.cjs +39 -0
- package/dist/chat-ui/statewire.cjs.map +1 -0
- package/dist/chat-ui/statewire.d.ts +19 -0
- package/dist/chat-ui/statewire.js +39 -0
- package/dist/chat-ui/statewire.js.map +1 -0
- package/dist/chat-ui/thread/chat-composer-dock.cjs +37 -0
- package/dist/chat-ui/thread/chat-composer-dock.cjs.map +1 -0
- package/dist/chat-ui/thread/chat-composer-dock.js +37 -0
- package/dist/chat-ui/thread/chat-composer-dock.js.map +1 -0
- package/dist/chat-ui/thread/chat-thread-shell.cjs +102 -0
- package/dist/chat-ui/thread/chat-thread-shell.cjs.map +1 -0
- package/dist/chat-ui/thread/chat-thread-shell.d.ts +7 -1
- package/dist/chat-ui/thread/chat-thread-shell.js +102 -0
- package/dist/chat-ui/thread/chat-thread-shell.js.map +1 -0
- package/dist/chat-ui/thread/composer-send-or-stop.cjs +75 -0
- package/dist/chat-ui/thread/composer-send-or-stop.cjs.map +1 -0
- package/dist/chat-ui/thread/composer-send-or-stop.d.ts +0 -6
- package/dist/chat-ui/thread/composer-send-or-stop.js +75 -0
- package/dist/chat-ui/thread/composer-send-or-stop.js.map +1 -0
- package/dist/chat-ui/thread/statewire-history-edge.cjs +134 -0
- package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -0
- package/dist/chat-ui/thread/statewire-history-edge.d.ts +52 -0
- package/dist/chat-ui/thread/statewire-history-edge.js +134 -0
- package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -0
- package/dist/{collab.cjs → collab/client.cjs} +6 -166
- package/dist/collab/client.cjs.map +1 -0
- package/dist/{collab.js → collab/client.js} +5 -164
- package/dist/collab/client.js.map +1 -0
- package/dist/collab/close-policy.cjs +14 -0
- package/dist/collab/close-policy.cjs.map +1 -0
- package/dist/collab/close-policy.js +14 -0
- package/dist/collab/close-policy.js.map +1 -0
- package/dist/collab/index.cjs +17 -0
- package/dist/collab/index.cjs.map +1 -0
- package/dist/collab/index.js +17 -0
- package/dist/collab/index.js.map +1 -0
- package/dist/collab/mint.cjs +59 -0
- package/dist/collab/mint.cjs.map +1 -0
- package/dist/collab/mint.js +59 -0
- package/dist/collab/mint.js.map +1 -0
- package/dist/collab/react.cjs +58 -0
- package/dist/collab/react.cjs.map +1 -0
- package/dist/collab/react.js +58 -0
- package/dist/collab/react.js.map +1 -0
- package/dist/collab/shape.cjs +45 -0
- package/dist/collab/shape.cjs.map +1 -0
- package/dist/collab/shape.js +45 -0
- package/dist/collab/shape.js.map +1 -0
- package/dist/composer/AttachmentContext.cjs +40 -0
- package/dist/composer/AttachmentContext.cjs.map +1 -0
- package/dist/composer/AttachmentContext.js +40 -0
- package/dist/composer/AttachmentContext.js.map +1 -0
- package/dist/composer/ComposerAttachmentPreview.cjs +39 -0
- package/dist/composer/ComposerAttachmentPreview.cjs.map +1 -0
- package/dist/composer/ComposerAttachmentPreview.js +39 -0
- package/dist/composer/ComposerAttachmentPreview.js.map +1 -0
- package/dist/composer/ComposerDropZone.cjs +61 -0
- package/dist/composer/ComposerDropZone.cjs.map +1 -0
- package/dist/composer/ComposerDropZone.d.ts +1 -1
- package/dist/composer/ComposerDropZone.js +61 -0
- package/dist/composer/ComposerDropZone.js.map +1 -0
- package/dist/composer/ComposerQuotePreview.cjs +42 -0
- package/dist/composer/ComposerQuotePreview.cjs.map +1 -0
- package/dist/composer/ComposerQuotePreview.js +42 -0
- package/dist/composer/ComposerQuotePreview.js.map +1 -0
- package/dist/composer/FileUploadButton.cjs +65 -0
- package/dist/composer/FileUploadButton.cjs.map +1 -0
- package/dist/composer/FileUploadButton.d.ts +1 -1
- package/dist/composer/FileUploadButton.js +65 -0
- package/dist/composer/FileUploadButton.js.map +1 -0
- package/dist/composer/QuoteContext.cjs +68 -0
- package/dist/composer/QuoteContext.cjs.map +1 -0
- package/dist/composer/QuoteContext.js +68 -0
- package/dist/composer/QuoteContext.js.map +1 -0
- package/dist/composer/build-composed-message.cjs +25 -0
- package/dist/composer/build-composed-message.cjs.map +1 -0
- package/dist/composer/build-composed-message.js +25 -0
- package/dist/composer/build-composed-message.js.map +1 -0
- package/dist/composer/clipboard.cjs +62 -0
- package/dist/composer/clipboard.cjs.map +1 -0
- package/dist/composer/clipboard.d.ts +27 -3
- package/dist/composer/clipboard.js +62 -0
- package/dist/composer/clipboard.js.map +1 -0
- package/dist/composer/useAppendToComposer.cjs +21 -0
- package/dist/composer/useAppendToComposer.cjs.map +1 -0
- package/dist/composer/useAppendToComposer.js +21 -0
- package/dist/composer/useAppendToComposer.js.map +1 -0
- package/dist/composer/useAttachFiles.cjs +40 -0
- package/dist/composer/useAttachFiles.cjs.map +1 -0
- package/dist/composer/useAttachFiles.d.ts +24 -0
- package/dist/composer/useAttachFiles.js +40 -0
- package/dist/composer/useAttachFiles.js.map +1 -0
- package/dist/composer/useComposerAttachment.cjs +25 -0
- package/dist/composer/useComposerAttachment.cjs.map +1 -0
- package/dist/composer/useComposerAttachment.js +25 -0
- package/dist/composer/useComposerAttachment.js.map +1 -0
- package/dist/composer/useFileUpload.cjs +123 -0
- package/dist/composer/useFileUpload.cjs.map +1 -0
- package/dist/composer/useFileUpload.js +123 -0
- package/dist/composer/useFileUpload.js.map +1 -0
- package/dist/composer/useSendMessage.cjs +22 -0
- package/dist/composer/useSendMessage.cjs.map +1 -0
- package/dist/composer/useSendMessage.js +22 -0
- package/dist/composer/useSendMessage.js.map +1 -0
- package/dist/diagnostics/athena-diagnostics.cjs +329 -0
- package/dist/diagnostics/athena-diagnostics.cjs.map +1 -0
- package/dist/diagnostics/athena-diagnostics.d.ts +1 -1
- package/dist/diagnostics/athena-diagnostics.js +329 -0
- package/dist/diagnostics/athena-diagnostics.js.map +1 -0
- package/dist/diagnostics/errors.cjs +89 -0
- package/dist/diagnostics/errors.cjs.map +1 -0
- package/dist/diagnostics/errors.d.ts +4 -0
- package/dist/diagnostics/errors.js +89 -0
- package/dist/diagnostics/errors.js.map +1 -0
- package/dist/diagnostics/useAthenaDiagnostics.cjs +16 -0
- package/dist/diagnostics/useAthenaDiagnostics.cjs.map +1 -0
- package/dist/diagnostics/useAthenaDiagnostics.js +16 -0
- package/dist/diagnostics/useAthenaDiagnostics.js.map +1 -0
- package/dist/index.cjs +283 -30852
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +27 -10
- package/dist/index.js +155 -30711
- package/dist/index.js.map +1 -1
- package/dist/lib/athena-urls.cjs +194 -0
- package/dist/lib/athena-urls.cjs.map +1 -0
- package/dist/lib/athena-urls.d.ts +20 -5
- package/dist/lib/athena-urls.js +194 -0
- package/dist/lib/athena-urls.js.map +1 -0
- package/dist/lib/posthog/before-send.cjs +58 -0
- package/dist/lib/posthog/before-send.cjs.map +1 -0
- package/dist/lib/posthog/before-send.js +58 -0
- package/dist/lib/posthog/before-send.js.map +1 -0
- package/dist/lib/posthog/capture-gate.cjs +322 -0
- package/dist/lib/posthog/capture-gate.cjs.map +1 -0
- package/dist/lib/posthog/capture-gate.js +322 -0
- package/dist/lib/posthog/capture-gate.js.map +1 -0
- package/dist/lib/posthog/wrap-posthog-client.cjs +163 -0
- package/dist/lib/posthog/wrap-posthog-client.cjs.map +1 -0
- package/dist/lib/posthog/wrap-posthog-client.js +163 -0
- package/dist/lib/posthog/wrap-posthog-client.js.map +1 -0
- package/dist/lib/utils.cjs +12 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.js +9 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs +77 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js +77 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs +181 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js +181 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js.map +1 -0
- package/dist/packages/agent-runtime/src/asset-attachment.cjs +19 -0
- package/dist/packages/agent-runtime/src/asset-attachment.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/asset-attachment.js +19 -0
- package/dist/packages/agent-runtime/src/asset-attachment.js.map +1 -0
- package/dist/packages/agent-runtime/src/auth-denial.cjs +28 -0
- package/dist/packages/agent-runtime/src/auth-denial.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/auth-denial.js +28 -0
- package/dist/packages/agent-runtime/src/auth-denial.js.map +1 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.cjs +270 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.js +270 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.js.map +1 -0
- package/dist/packages/agent-runtime/src/client-tools.cjs +137 -0
- package/dist/packages/agent-runtime/src/client-tools.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/client-tools.js +137 -0
- package/dist/packages/agent-runtime/src/client-tools.js.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-index.cjs +80 -0
- package/dist/packages/agent-runtime/src/conversation-index.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-index.js +80 -0
- package/dist/packages/agent-runtime/src/conversation-index.js.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-list.cjs +86 -0
- package/dist/packages/agent-runtime/src/conversation-list.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/conversation-list.js +86 -0
- package/dist/packages/agent-runtime/src/conversation-list.js.map +1 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs +55 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js +55 -0
- package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -0
- package/dist/packages/agent-runtime/src/edit-command.cjs +89 -0
- package/dist/packages/agent-runtime/src/edit-command.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/edit-command.js +89 -0
- package/dist/packages/agent-runtime/src/edit-command.js.map +1 -0
- package/dist/packages/agent-runtime/src/errors.cjs +95 -0
- package/dist/packages/agent-runtime/src/errors.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/errors.js +95 -0
- package/dist/packages/agent-runtime/src/errors.js.map +1 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs +236 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.js +236 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.js.map +1 -0
- package/dist/packages/agent-runtime/src/interrupts.cjs +117 -0
- package/dist/packages/agent-runtime/src/interrupts.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/interrupts.js +117 -0
- package/dist/packages/agent-runtime/src/interrupts.js.map +1 -0
- package/dist/packages/agent-runtime/src/message-author.cjs +31 -0
- package/dist/packages/agent-runtime/src/message-author.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/message-author.js +31 -0
- package/dist/packages/agent-runtime/src/message-author.js.map +1 -0
- package/dist/packages/agent-runtime/src/message-window.cjs +85 -0
- package/dist/packages/agent-runtime/src/message-window.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/message-window.js +85 -0
- package/dist/packages/agent-runtime/src/message-window.js.map +1 -0
- package/dist/packages/agent-runtime/src/messages.cjs +433 -0
- package/dist/packages/agent-runtime/src/messages.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/messages.js +433 -0
- package/dist/packages/agent-runtime/src/messages.js.map +1 -0
- package/dist/packages/agent-runtime/src/model-context.cjs +13 -0
- package/dist/packages/agent-runtime/src/model-context.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/model-context.js +13 -0
- package/dist/packages/agent-runtime/src/model-context.js.map +1 -0
- package/dist/packages/agent-runtime/src/optimistic-content.cjs +17 -0
- package/dist/packages/agent-runtime/src/optimistic-content.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/optimistic-content.js +17 -0
- package/dist/packages/agent-runtime/src/optimistic-content.js.map +1 -0
- package/dist/packages/agent-runtime/src/protocol.cjs +33 -0
- package/dist/packages/agent-runtime/src/protocol.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/protocol.js +33 -0
- package/dist/packages/agent-runtime/src/protocol.js.map +1 -0
- package/dist/packages/agent-runtime/src/queue.cjs +67 -0
- package/dist/packages/agent-runtime/src/queue.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/queue.js +67 -0
- package/dist/packages/agent-runtime/src/queue.js.map +1 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs +47 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js +47 -0
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -0
- package/dist/packages/agent-runtime/src/runtime-messages.cjs +187 -0
- package/dist/packages/agent-runtime/src/runtime-messages.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/runtime-messages.js +187 -0
- package/dist/packages/agent-runtime/src/runtime-messages.js.map +1 -0
- package/dist/packages/agent-runtime/src/send-recovery.cjs +128 -0
- package/dist/packages/agent-runtime/src/send-recovery.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/send-recovery.js +128 -0
- package/dist/packages/agent-runtime/src/send-recovery.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs +249 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.js +249 -0
- package/dist/packages/agent-runtime/src/statewire-attach-observer.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-state.cjs +16 -0
- package/dist/packages/agent-runtime/src/statewire-state.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-state.js +16 -0
- package/dist/packages/agent-runtime/src/statewire-state.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.cjs +41 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.js +41 -0
- package/dist/packages/agent-runtime/src/statewire-suspended.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-transport.cjs +6 -0
- package/dist/packages/agent-runtime/src/statewire-transport.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-transport.js +6 -0
- package/dist/packages/agent-runtime/src/statewire-transport.js.map +1 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.cjs +214 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.js +214 -0
- package/dist/packages/agent-runtime/src/streaming-markdown.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-extras.cjs +38 -0
- package/dist/packages/agent-runtime/src/thread-extras.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-extras.js +38 -0
- package/dist/packages/agent-runtime/src/thread-extras.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs +90 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.js +90 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-status.cjs +49 -0
- package/dist/packages/agent-runtime/src/thread-status.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-status.js +49 -0
- package/dist/packages/agent-runtime/src/thread-status.js.map +1 -0
- package/dist/packages/agent-runtime/src/tool-metadata.cjs +1802 -0
- package/dist/packages/agent-runtime/src/tool-metadata.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/tool-metadata.js +1802 -0
- package/dist/packages/agent-runtime/src/tool-metadata.js.map +1 -0
- package/dist/packages/agent-runtime/src/tool-outputs.cjs +46 -0
- package/dist/packages/agent-runtime/src/tool-outputs.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/tool-outputs.js +46 -0
- package/dist/packages/agent-runtime/src/tool-outputs.js.map +1 -0
- package/dist/packages/agent-runtime/src/tool-result.cjs +151 -0
- package/dist/packages/agent-runtime/src/tool-result.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/tool-result.js +151 -0
- package/dist/packages/agent-runtime/src/tool-result.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.cjs +139 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.js +139 -0
- package/dist/packages/agent-runtime/src/use-conversation-list.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs +28 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js +28 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs +138 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js +138 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs +387 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.js +387 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs +133 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js +133 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js.map +1 -0
- package/dist/packages/agent-runtime/src/voice-presentation.cjs +37 -0
- package/dist/packages/agent-runtime/src/voice-presentation.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/voice-presentation.js +37 -0
- package/dist/packages/agent-runtime/src/voice-presentation.js.map +1 -0
- package/dist/packages/react/package.json.cjs +9 -0
- package/dist/packages/react/package.json.cjs.map +1 -0
- package/dist/packages/react/package.json.js +9 -0
- package/dist/packages/react/package.json.js.map +1 -0
- package/dist/{AthenaContext-B1QMhIP-.cjs → provider/AthenaContext.cjs} +5 -4
- package/dist/provider/AthenaContext.cjs.map +1 -0
- package/dist/{AthenaContext-MOslgOmE.js → provider/AthenaContext.js} +3 -3
- package/dist/provider/AthenaContext.js.map +1 -0
- package/dist/provider/AthenaProvider.cjs +403 -0
- package/dist/provider/AthenaProvider.cjs.map +1 -0
- package/dist/provider/AthenaProvider.d.ts +4 -2
- package/dist/provider/AthenaProvider.js +403 -0
- package/dist/provider/AthenaProvider.js.map +1 -0
- package/dist/provider/PostHogProvider.cjs +81 -0
- package/dist/provider/PostHogProvider.cjs.map +1 -0
- package/dist/provider/PostHogProvider.js +59 -0
- package/dist/provider/PostHogProvider.js.map +1 -0
- package/dist/provider/config.d.ts +17 -9
- package/dist/provider/statewire-lifecycle-context.cjs +10 -0
- package/dist/provider/statewire-lifecycle-context.cjs.map +1 -0
- package/dist/provider/statewire-lifecycle-context.js +10 -0
- package/dist/provider/statewire-lifecycle-context.js.map +1 -0
- package/dist/provider/statewire-window-context.cjs +10 -0
- package/dist/provider/statewire-window-context.cjs.map +1 -0
- package/dist/provider/statewire-window-context.d.ts +12 -0
- package/dist/provider/statewire-window-context.js +10 -0
- package/dist/provider/statewire-window-context.js.map +1 -0
- package/dist/runtime/auth.cjs +309 -0
- package/dist/runtime/auth.cjs.map +1 -0
- package/dist/runtime/auth.d.ts +19 -18
- package/dist/runtime/auth.js +309 -0
- package/dist/runtime/auth.js.map +1 -0
- package/dist/runtime/statewire-auth-headers.cjs +18 -0
- package/dist/runtime/statewire-auth-headers.cjs.map +1 -0
- package/dist/runtime/statewire-auth-headers.d.ts +38 -0
- package/dist/runtime/statewire-auth-headers.js +18 -0
- package/dist/runtime/statewire-auth-headers.js.map +1 -0
- package/dist/runtime/statewire-lifecycle.cjs +67 -0
- package/dist/runtime/statewire-lifecycle.cjs.map +1 -0
- package/dist/runtime/statewire-lifecycle.d.ts +25 -0
- package/dist/runtime/statewire-lifecycle.js +67 -0
- package/dist/runtime/statewire-lifecycle.js.map +1 -0
- package/dist/runtime/statewire-run-config.cjs +68 -0
- package/dist/runtime/statewire-run-config.cjs.map +1 -0
- package/dist/runtime/statewire-run-config.js +68 -0
- package/dist/runtime/statewire-run-config.js.map +1 -0
- package/dist/runtime/statewire-session-key.cjs +11 -0
- package/dist/runtime/statewire-session-key.cjs.map +1 -0
- package/dist/runtime/statewire-session-key.d.ts +13 -0
- package/dist/runtime/statewire-session-key.js +11 -0
- package/dist/runtime/statewire-session-key.js.map +1 -0
- package/dist/runtime/useAthenaStatewireRuntime.cjs +179 -0
- package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -0
- package/dist/runtime/useAthenaStatewireRuntime.d.ts +36 -5
- package/dist/runtime/useAthenaStatewireRuntime.js +180 -0
- package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/theme/index.cjs +182 -0
- package/dist/theme/index.cjs.map +1 -0
- package/dist/theme/index.js +182 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/threads/ThreadList.cjs +55 -0
- package/dist/threads/ThreadList.cjs.map +1 -0
- package/dist/threads/ThreadList.js +55 -0
- package/dist/threads/ThreadList.js.map +1 -0
- package/dist/threads/api.cjs +208 -0
- package/dist/threads/api.cjs.map +1 -0
- package/dist/threads/api.js +208 -0
- package/dist/threads/api.js.map +1 -0
- package/dist/threads/conversation-list-fetcher.cjs +70 -0
- package/dist/threads/conversation-list-fetcher.cjs.map +1 -0
- package/dist/threads/conversation-list-fetcher.js +70 -0
- package/dist/threads/conversation-list-fetcher.js.map +1 -0
- package/dist/threads/mint-thread-id.cjs +7 -0
- package/dist/threads/mint-thread-id.cjs.map +1 -0
- package/dist/threads/mint-thread-id.d.ts +8 -0
- package/dist/threads/mint-thread-id.js +7 -0
- package/dist/threads/mint-thread-id.js.map +1 -0
- package/dist/threads/statewire-thread-list.cjs +231 -0
- package/dist/threads/statewire-thread-list.cjs.map +1 -0
- package/dist/threads/statewire-thread-list.d.ts +20 -4
- package/dist/threads/statewire-thread-list.js +231 -0
- package/dist/threads/statewire-thread-list.js.map +1 -0
- package/dist/threads/thread-id-context.cjs +22 -0
- package/dist/threads/thread-id-context.cjs.map +1 -0
- package/dist/threads/thread-id-context.d.ts +9 -0
- package/dist/threads/thread-id-context.js +22 -0
- package/dist/threads/thread-id-context.js.map +1 -0
- package/dist/threads/title.cjs +95 -0
- package/dist/threads/title.cjs.map +1 -0
- package/dist/threads/title.js +95 -0
- package/dist/threads/title.js.map +1 -0
- package/dist/threads/use-rest-conversation-history.cjs +79 -0
- package/dist/threads/use-rest-conversation-history.cjs.map +1 -0
- package/dist/threads/use-rest-conversation-history.js +79 -0
- package/dist/threads/use-rest-conversation-history.js.map +1 -0
- package/dist/threads/use-statewire-conversation-history.cjs +243 -0
- package/dist/threads/use-statewire-conversation-history.cjs.map +1 -0
- package/dist/threads/use-statewire-conversation-history.js +243 -0
- package/dist/threads/use-statewire-conversation-history.js.map +1 -0
- package/dist/threads/useAthenaThreadManager.cjs +24 -0
- package/dist/threads/useAthenaThreadManager.cjs.map +1 -0
- package/dist/threads/useAthenaThreadManager.js +24 -0
- package/dist/threads/useAthenaThreadManager.js.map +1 -0
- package/dist/toolkits/index.cjs +279 -0
- package/dist/toolkits/index.cjs.map +1 -0
- package/dist/toolkits/index.js +279 -0
- package/dist/toolkits/index.js.map +1 -0
- package/dist/tools/NestedPtcMessages.cjs +46 -0
- package/dist/tools/NestedPtcMessages.cjs.map +1 -0
- package/dist/tools/NestedPtcMessages.js +46 -0
- package/dist/tools/NestedPtcMessages.js.map +1 -0
- package/dist/tools/append-document-tool-ui.cjs +145 -0
- package/dist/tools/append-document-tool-ui.cjs.map +1 -0
- package/dist/tools/append-document-tool-ui.js +145 -0
- package/dist/tools/append-document-tool-ui.js.map +1 -0
- package/dist/tools/asset-utils.cjs +16 -0
- package/dist/tools/asset-utils.cjs.map +1 -0
- package/dist/tools/asset-utils.js +16 -0
- package/dist/tools/asset-utils.js.map +1 -0
- package/dist/tools/auto-open-tools.cjs +121 -0
- package/dist/tools/auto-open-tools.cjs.map +1 -0
- package/dist/tools/auto-open-tools.js +121 -0
- package/dist/tools/auto-open-tools.js.map +1 -0
- package/dist/tools/file-tool-uis.cjs +108 -0
- package/dist/tools/file-tool-uis.cjs.map +1 -0
- package/dist/tools/file-tool-uis.js +108 -0
- package/dist/tools/file-tool-uis.js.map +1 -0
- package/dist/tools/index.cjs +56 -0
- package/dist/tools/index.cjs.map +1 -0
- package/dist/tools/index.d.ts +15 -0
- package/dist/tools/index.js +56 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/misc-tool-uis.cjs +54 -0
- package/dist/tools/misc-tool-uis.cjs.map +1 -0
- package/dist/tools/misc-tool-uis.d.ts +2 -0
- package/dist/tools/misc-tool-uis.js +54 -0
- package/dist/tools/misc-tool-uis.js.map +1 -0
- package/dist/tools/primitives.cjs +166 -0
- package/dist/tools/primitives.cjs.map +1 -0
- package/dist/tools/primitives.d.ts +41 -0
- package/dist/tools/primitives.js +166 -0
- package/dist/tools/primitives.js.map +1 -0
- package/dist/tools/read-asset-tool-ui.cjs +284 -0
- package/dist/tools/read-asset-tool-ui.cjs.map +1 -0
- package/dist/tools/read-asset-tool-ui.js +284 -0
- package/dist/tools/read-asset-tool-ui.js.map +1 -0
- package/dist/tools/todo-plan-store.cjs +88 -0
- package/dist/tools/todo-plan-store.cjs.map +1 -0
- package/dist/tools/todo-plan-store.js +88 -0
- package/dist/tools/todo-plan-store.js.map +1 -0
- package/dist/tools/tool-fallback.cjs +667 -0
- package/dist/tools/tool-fallback.cjs.map +1 -0
- package/dist/tools/tool-fallback.d.ts +78 -6
- package/dist/tools/tool-fallback.js +667 -0
- package/dist/tools/tool-fallback.js.map +1 -0
- package/dist/tools/tool-icons.cjs +61 -0
- package/dist/tools/tool-icons.cjs.map +1 -0
- package/dist/tools/tool-icons.d.ts +10 -0
- package/dist/tools/tool-icons.js +61 -0
- package/dist/tools/tool-icons.js.map +1 -0
- package/dist/tools/tool-uis.cjs +3049 -0
- package/dist/tools/tool-uis.cjs.map +1 -0
- package/dist/tools/tool-uis.d.ts +1 -23
- package/dist/tools/tool-uis.js +3049 -0
- package/dist/tools/tool-uis.js.map +1 -0
- package/dist/tools/voice-update-tool-ui.cjs +89 -0
- package/dist/tools/voice-update-tool-ui.cjs.map +1 -0
- package/dist/tools/voice-update-tool-ui.d.ts +27 -0
- package/dist/tools/voice-update-tool-ui.js +89 -0
- package/dist/tools/voice-update-tool-ui.js.map +1 -0
- package/dist/tools/write-todos-tool-ui.cjs +270 -0
- package/dist/tools/write-todos-tool-ui.cjs.map +1 -0
- package/dist/tools/write-todos-tool-ui.js +270 -0
- package/dist/tools/write-todos-tool-ui.js.map +1 -0
- package/dist/ui/button.cjs +57 -0
- package/dist/ui/button.cjs.map +1 -0
- package/dist/ui/button.js +57 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/collapsible.cjs +17 -0
- package/dist/ui/collapsible.cjs.map +1 -0
- package/dist/ui/collapsible.js +17 -0
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/tooltip.cjs +48 -0
- package/dist/ui/tooltip.cjs.map +1 -0
- package/dist/ui/tooltip.js +48 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/version.cjs +6 -0
- package/dist/version.cjs.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +35 -19
- package/dist/AthenaAuthContext-B3AwLA5Z.cjs.map +0 -1
- package/dist/AthenaAuthContext-DQsdayH2.js.map +0 -1
- package/dist/AthenaContext-B1QMhIP-.cjs.map +0 -1
- package/dist/AthenaContext-MOslgOmE.js.map +0 -1
- package/dist/auth.cjs.map +0 -1
- package/dist/auth.js.map +0 -1
- package/dist/chat/ComposerEditorContext.d.ts +0 -36
- package/dist/chat/super-grouping/tool-status-labels.d.ts +0 -1
- package/dist/chat/tiptap-composer.d.ts +0 -7
- package/dist/chat-ui.cjs +0 -2667
- package/dist/chat-ui.cjs.map +0 -1
- package/dist/chat-ui.js +0 -2668
- package/dist/chat-ui.js.map +0 -1
- package/dist/collab.cjs.map +0 -1
- package/dist/collab.js.map +0 -1
- package/dist/mentions/composer-keybinds.d.ts +0 -5
- package/dist/mentions/mention-extension.d.ts +0 -6
- package/dist/mentions/mention-icons.d.ts +0 -4
- package/dist/mentions/mention-node-view.d.ts +0 -2
- package/dist/mentions/mention-suggestion-list.d.ts +0 -14
- package/dist/mentions/mention-suggestion-popup.d.ts +0 -15
- package/dist/mentions/mention-suggestions-extension.d.ts +0 -11
- package/dist/mentions/mention-types.d.ts +0 -21
- package/dist/mentions/mention-utils.d.ts +0 -23
- package/dist/mentions/use-mention-suggestions.d.ts +0 -29
- package/dist/use-rest-conversation-history-Bs5qn5G3.js +0 -37322
- package/dist/use-rest-conversation-history-Bs5qn5G3.js.map +0 -1
- package/dist/use-rest-conversation-history-Dm0rdQgT.cjs +0 -37358
- package/dist/use-rest-conversation-history-Dm0rdQgT.cjs.map +0 -1
package/README.md
CHANGED
|
@@ -41,7 +41,7 @@ function App() {
|
|
|
41
41
|
|
|
42
42
|
<AthenaProvider
|
|
43
43
|
config={{
|
|
44
|
-
apiUrl: 'https://
|
|
44
|
+
apiUrl: 'https://iris.example.com',
|
|
45
45
|
backendUrl: 'https://api.example.com',
|
|
46
46
|
appUrl: 'https://app.example.com',
|
|
47
47
|
}}
|
|
@@ -81,6 +81,11 @@ back to an Athena default — credentials are never sent to a host you didn't
|
|
|
81
81
|
configure. Hosts that predate the minted statewire fields keep working through
|
|
82
82
|
the `apiUrl` derivation. Auth reuses the provider's existing credential
|
|
83
83
|
plumbing: tokens ride `Authorization: Bearer` and API keys ride `X-API-KEY`.
|
|
84
|
+
A `getToken` resolver is called with `{ force: true }` right after the sync
|
|
85
|
+
host refuses a credential, so a caching getter must mint a fresh token then;
|
|
86
|
+
the persisted command lane is scoped to the signed-in user as well as the
|
|
87
|
+
host, so a shared browser never resends one user's pending sends under the
|
|
88
|
+
next user's token.
|
|
84
89
|
|
|
85
90
|
What the statewire transport wires up in `AthenaChat`:
|
|
86
91
|
|
|
@@ -89,14 +94,52 @@ What the statewire transport wires up in `AthenaChat`:
|
|
|
89
94
|
(or Continue for a generic pause) and resumes the run through the statewire
|
|
90
95
|
`run/input` command. Hosts that build their own thread UI should mount the
|
|
91
96
|
exported `StatewireApprovalCard` themselves — without it an approval-gated
|
|
92
|
-
run stays parked with no way to answer it.
|
|
97
|
+
run stays parked with no way to answer it. Its `renderDetails`,
|
|
98
|
+
`isHandledElsewhere`, and `readOnly` seams take host-specific review UIs,
|
|
99
|
+
requests another surface answers, and viewers without edit rights; the
|
|
100
|
+
headless `useStatewireApprovalRequest` behind it is exported for hosts with
|
|
101
|
+
their own decision UI.
|
|
93
102
|
- **Frontend tools:** tools in `frontendTools` with a local `execute` are
|
|
94
103
|
declared to the backend as `client_tools` and executed by the mounted
|
|
95
104
|
client-tool bridge, which resumes the run with each tool's result.
|
|
96
105
|
- **Mid-run sends and the queue:** a message sent while a run is active
|
|
97
|
-
queues on the server. The queue panel above the composer
|
|
98
|
-
entries with remove
|
|
99
|
-
run
|
|
106
|
+
queues on the server. The queue panel above the composer
|
|
107
|
+
(`StatewireQueuedMessages`) lists queued entries with remove, "Send now"
|
|
108
|
+
(steer), Prioritize (`run/prioritize`), inline edit, and failed sends with
|
|
109
|
+
Retry/Discard, plus Continue for a stopped run's queue head; hosts can opt
|
|
110
|
+
into `autoContinue` for stranded queues and slot their own row renderer and
|
|
111
|
+
editor.
|
|
112
|
+
- **Lean entries for hosts with their own composer:** `@athenaintel/react/chat-ui/statewire`
|
|
113
|
+
exports just the approval card, the queue tray, and the continue/run-ended
|
|
114
|
+
affordances (plus the runtime-message card and Continue pill they render),
|
|
115
|
+
and `@athenaintel/react/tools` exports the generic `ToolFallback` card with
|
|
116
|
+
its primitives (`ToolCard`, `ExpandableSection`, `NestedPtcMessages`) — so a
|
|
117
|
+
host that already ships its own composer and mention stack (Olympus) never
|
|
118
|
+
pulls the SDK's Tiptap graph into its build. Tool names, icons, categories,
|
|
119
|
+
and running copy come from the shared registry in
|
|
120
|
+
`@athenaintel/agent-runtime` (`getToolDisplayMeta`), and success/failure from
|
|
121
|
+
its `classifyToolResult`; the fallback takes host seams (`displayName`,
|
|
122
|
+
`icon`, `extraAction`, `notice`, `renderResult`, `onOpenAsset`,
|
|
123
|
+
`hideInternalIdArgs`) instead of being copied. `@athenaintel/react/super-grouping`
|
|
124
|
+
exports the grouped ("conversational") view of an assistant turn —
|
|
125
|
+
`SuperGroupingCard`, `SuperGroupingFinalText`, `CollapsibleGroup`, the
|
|
126
|
+
activity-timeline derivation, and the tool-based grouping function — with
|
|
127
|
+
slots for the host's text/tool renderers and controls (`renderHeaderActions`,
|
|
128
|
+
`renderRunningMeta`, `summaryDetails`, `waitingTools`, `expansionKey`), so
|
|
129
|
+
Olympus and the Chrome extension mount one card instead of copies.
|
|
130
|
+
- **In-repo hosts consume the package, not the source.** `@athenaintel/react`
|
|
131
|
+
is a workspace dependency of Olympus, the Chrome extension, and the Office
|
|
132
|
+
add-in, resolved through this package's `exports` to the built `dist/` (the
|
|
133
|
+
guarded `prepare` script builds it on a cold `bun install`;
|
|
134
|
+
`scripts/prepare-react-sdk.ts` rebuilds a missing or stale dist in front of
|
|
135
|
+
each host's typecheck, test, and build scripts, and `scripts/typecheck-all.ts`
|
|
136
|
+
runs it once before the repo typecheck). While editing the SDK against a
|
|
137
|
+
running host (`next dev`, the extension's `bun run dev`, the add-in's
|
|
138
|
+
`vite`), run `bun run dev` here so the dist follows your edits. Because the
|
|
139
|
+
dist inlines the private `@athenaintel/agent-runtime`, a host that also
|
|
140
|
+
imports agent-runtime directly runs two copies of it; any agent-runtime
|
|
141
|
+
state shared between the SDK's components and the host has to live on
|
|
142
|
+
`globalThis` (see `registerChatAssetMentionHandler`).
|
|
100
143
|
- **Errors and connection state:** transport errors (send rejections,
|
|
101
144
|
paywall refusals) render as a dismissible banner; a degraded connection
|
|
102
145
|
shows a reconnect strip; a send into a thread created by the retired legacy
|
|
@@ -114,6 +157,151 @@ silently ignored selector would let a deployment answer as the wrong agent.
|
|
|
114
157
|
`model` defaults to the deep-agent default model (`DEFAULT_STATEWIRE_MODEL`)
|
|
115
158
|
unless a collab agent supplies one.
|
|
116
159
|
|
|
160
|
+
## What's new in 0.20.0
|
|
161
|
+
|
|
162
|
+
0.20.0 finishes the composer unification and retires the last chat-wire URL
|
|
163
|
+
shapes. It is a minor release with **breaking changes** for consumers of the
|
|
164
|
+
retired root-entry composer, the parent-bridge URL fields, and the URL
|
|
165
|
+
defaults; `<AthenaProvider>` and `<AthenaChat>` accept the same props.
|
|
166
|
+
|
|
167
|
+
- **One composer, one mention stack.** `<AthenaChat>` renders the shared
|
|
168
|
+
`chat-ui` Tiptap composer and `@` mention menu — the ones the Chrome
|
|
169
|
+
extension and the Office add-in mount — so its menu offers the asset library
|
|
170
|
+
(Favorites, Assets, Projects, Folders) beside the Tools / Toolkits list, with
|
|
171
|
+
the same Enter-to-send / Shift-Enter behaviour on every surface. The
|
|
172
|
+
`mentionTools` prop keeps its shape (`MentionTool[]`, still exported from
|
|
173
|
+
the root entry; it defaults to the provider's enabled toolkits). Quote
|
|
174
|
+
(Cmd+L) and attachment pills compose into the send as before; a draft that
|
|
175
|
+
is only a quote or attachments sends from Enter and the send button alike,
|
|
176
|
+
and a submit during an attachment upload waits for the upload to land.
|
|
177
|
+
- Removed root exports: `TiptapComposer`, `TiptapComposerProps`,
|
|
178
|
+
`useMentionSuggestions`. Import the composer from
|
|
179
|
+
`@athenaintel/react/chat-ui` (`TiptapComposer`, `useMentionSuggestions`,
|
|
180
|
+
`MentionTool`, `MentionRootCategory`).
|
|
181
|
+
- **Outgoing text is Markdown on every surface.** The shared composer
|
|
182
|
+
serializes the draft with `tiptap-markdown` configured as the Olympus chat
|
|
183
|
+
composer configures it, so `<AthenaChat>` keeps what 0.19 kept — a pasted
|
|
184
|
+
hyperlink sends as `[text](url)`, bold / italic / code marks and paragraph
|
|
185
|
+
breaks survive, a Shift-Enter break is a backslash-newline — and the
|
|
186
|
+
Chrome extension and Office add-in gain the same (they sent plain text
|
|
187
|
+
before). A bare URL autolinks. Mentions serialize as the chat-ui stack
|
|
188
|
+
does: tools are `[@Name](mention://tool?name=<tool_id>&description=…)`
|
|
189
|
+
(was `?tool=`), toolkits
|
|
190
|
+
`[@Name](mention://toolkit?name=<toolkit_id>&description=…)` (was
|
|
191
|
+
`?id=…&icon=…`), and assets
|
|
192
|
+
`[@Title](/dashboard/spaces?asset_ids=<id>&assetType=<type>)`. A host that
|
|
193
|
+
parses the outgoing text for the old query keys must read `name`. The
|
|
194
|
+
draft mirrored into the composer runtime is that Markdown too, and a
|
|
195
|
+
restore (a send refused during reconnect, `useAppendToComposer`) parses
|
|
196
|
+
it back — mention links become chips again. `serializeDraft(editor)`
|
|
197
|
+
is exported from `@athenaintel/react/chat-ui`; `plainTextToTiptapContent`
|
|
198
|
+
is gone (the restore path parses Markdown now).
|
|
199
|
+
- `@athenaintel/react/chat-ui`: `TiptapComposer` gains `tools` (a host's own
|
|
200
|
+
Tools / Toolkits list in place of the server catalog), `fileIntake`
|
|
201
|
+
(`{ onPaste, onDrop? }` — a host's own intake for pasted and dropped
|
|
202
|
+
files; without `onDrop` the composer leaves drops to an enclosing drop
|
|
203
|
+
zone) and `waitForHostUploads` (awaited before every submit, so a
|
|
204
|
+
host-owned upload lands before the send); `useMentionSuggestions` gains
|
|
205
|
+
`tools`. `interceptSubmit` now runs before the empty-draft check and may
|
|
206
|
+
receive an empty string (a host composing extras of its own into the
|
|
207
|
+
send) — an interceptor that only handles text returns `false` for it. A
|
|
208
|
+
paste that carries meaningful text beside a bitmap (an Excel, Sheets or
|
|
209
|
+
Word copy) now pastes the text on every surface instead of attaching the
|
|
210
|
+
screenshot; a copied image file's own name (Finder, Explorer) is not such
|
|
211
|
+
text. `resolveComposerAction` and `ComposerSendOrStop` drop the `canQueue`
|
|
212
|
+
option — statewire always hosts a queue, so a mid-run draft always queues.
|
|
213
|
+
- `@athenaintel/react/styles.css` styles the `@` chips (`.mention-chip`) from
|
|
214
|
+
the theme tokens, so they follow a dark theme and render in message text
|
|
215
|
+
without a mounted composer.
|
|
216
|
+
- **Bare-origin URL defaults.** The `environment` presets are origins:
|
|
217
|
+
`apiUrl` is the Iris host (`https://iris.prd.athenaintel.com`,
|
|
218
|
+
`https://iris.stg.athenaintel.com`; its origin derives the `/v2/threads`
|
|
219
|
+
statewire mount) and `backendUrl` is the Agora REST base
|
|
220
|
+
(`https://api.athenaintel.com`, `https://staging-api.athenaintel.com`).
|
|
221
|
+
`deriveAthenaApiUrl` returns the Iris origin without `/api/chat`;
|
|
222
|
+
`deriveAthenaAppUrl` no longer recognizes the retired
|
|
223
|
+
`sync.athenaintel.com` / `staging-sync.athenaintel.com` hosts; and
|
|
224
|
+
`useAthenaConfig().backendUrl` is the bare base — the provider trims a
|
|
225
|
+
historical `…/api/assistant-ui` or `…/api/v0` value you pass explicitly
|
|
226
|
+
before publishing it.
|
|
227
|
+
- **Parent bridge.** `useParentBridge()` / `ParentBridgeState` drop the
|
|
228
|
+
chat-wire `apiUrl` and `backendUrl`; a host mints `statewireSyncUrl`,
|
|
229
|
+
`backendBaseUrl` and `appUrl` (Marathon has since 0.17). Those two fields
|
|
230
|
+
in an `athena-config` message or a `/_athena/auth` body are ignored. The new
|
|
231
|
+
`hostAnswered` field reports that a host answered the bridge at all, and
|
|
232
|
+
`<AthenaProvider>` throws when a host answered without minting
|
|
233
|
+
`statewireSyncUrl` and neither `statewireSyncUrl` nor `apiUrl` is
|
|
234
|
+
configured — a host's credential is never sent to the environment preset.
|
|
235
|
+
Deploy order: a Marathon older than 2026-08-29 (#32053) mints no statewire
|
|
236
|
+
mount; update it before an app on 0.20.0 is served from it.
|
|
237
|
+
- **Dependencies.** `@assistant-ui/react-langgraph` and `zod` are no longer
|
|
238
|
+
dependencies (nothing in the SDK imported them after the retired composer
|
|
239
|
+
and transport went).
|
|
240
|
+
|
|
241
|
+
## What's new in 0.19.0
|
|
242
|
+
|
|
243
|
+
0.19.0 is a minor release with **no breaking changes**: every export that
|
|
244
|
+
shipped in 0.18.0 is still exported under the same name from the same entry,
|
|
245
|
+
and `<AthenaProvider>` / `<AthenaChat>` accept the same props. Bump the pin
|
|
246
|
+
and re-install; there is nothing to migrate.
|
|
247
|
+
|
|
248
|
+
- **Windowed history on every surface.** Each attach now declares a message
|
|
249
|
+
window (`ATHENA_SDK_MESSAGE_WINDOW`, 40 messages, sent as the
|
|
250
|
+
`x-athena-deep-agent-window` hello), so a long thread's first snapshot
|
|
251
|
+
carries the transcript's tail instead of every message. `<AthenaChat>`
|
|
252
|
+
mounts the new `StatewireHistoryEdge` row above the messages — "N earlier
|
|
253
|
+
messages", paged in as you scroll near the top (or on click) while the
|
|
254
|
+
reading position is kept — and cut tool outputs are fetched back for the
|
|
255
|
+
cards that show them. Hosts composing their own thread mount
|
|
256
|
+
`StatewireHistoryEdge` in `ChatThreadShell`'s `beforeMessages` slot (also
|
|
257
|
+
exported from `@athenaintel/react/chat-ui` and `/chat-ui/statewire`) and
|
|
258
|
+
read the tool-output store through `useStatewireToolOutputs`. Editing a
|
|
259
|
+
message below the loaded window resubmits with an anchored `run/edit`.
|
|
260
|
+
- **One approval card, queue tray, and continue affordance.**
|
|
261
|
+
`StatewireApprovalCard` (`renderDetails`, `isHandledElsewhere`, `readOnly`),
|
|
262
|
+
`StatewireQueuedMessages` (`renderContent`, `renderEditor`, `autoContinue`,
|
|
263
|
+
`onEvent`), and the continue / run-ended affordances are the single
|
|
264
|
+
implementations Olympus, the Chrome extension, and the Office add-in mount;
|
|
265
|
+
the headless `useStatewireApprovalRequest` and `HITL_PENDING_RESUME_GRACE_MS`
|
|
266
|
+
are exported for hosts with their own decision UI. New lean entry:
|
|
267
|
+
`@athenaintel/react/chat-ui/statewire`.
|
|
268
|
+
- **One tool display registry, result classifier, and fallback.**
|
|
269
|
+
`getToolDisplayMeta`, `classifyToolResult`, `isToolResultSuccess`,
|
|
270
|
+
`describeToolArgs`, `resultMessage`, `toolActiveLabel`, `toolCompletedLabel`
|
|
271
|
+
(re-exported from `@athenaintel/agent-runtime`), `TOOL_ICONS` / `toolIcon`,
|
|
272
|
+
the `ToolFallback` host seams (`ToolFallbackNotice`, `ToolFallbackOptions`,
|
|
273
|
+
`ToolFallbackContext`, …), `CopyToolSpecButton`, `InstallPackageToolUI`,
|
|
274
|
+
and `NestedPtcComponentsProvider` / `useNestedPtcComponents`. New lean
|
|
275
|
+
entry: `@athenaintel/react/tools`.
|
|
276
|
+
- **Grouped activity card and timeline.** `SuperGroupingCard`,
|
|
277
|
+
`SuperGroupingFinalText`, `SuperGroupingProvider`, `CollapsibleGroup`,
|
|
278
|
+
`buildActivityTimeline`, `useActivityExpansion`,
|
|
279
|
+
`createToolBasedGroupingFunction`, `TOOLKIT_THEMES`, and their types are
|
|
280
|
+
exported; `<AthenaChat groupToolCalls>` renders through them. New lean
|
|
281
|
+
entry: `@athenaintel/react/super-grouping`.
|
|
282
|
+
- **`rejected` is a first-class tool-result state.** A gated tool call the
|
|
283
|
+
user refused classifies as `{ state: 'rejected' }` (`ToolResultClassification`)
|
|
284
|
+
instead of an error, and reads as rejected on the tool card and in the
|
|
285
|
+
grouped timeline.
|
|
286
|
+
- **Diagnostics instead of console noise.** Composer, tool-UI, and mention
|
|
287
|
+
failures now emit `composer.attachment.error`, `composer.cancel.error`,
|
|
288
|
+
`tools.schema.warning`, `tools.debug`, and `mentions.fetch.error` on the
|
|
289
|
+
diagnostics bus (`onDiagnostic` / `onError`, `__ATHENA_SDK__.diagnostics`)
|
|
290
|
+
rather than through `console.*`.
|
|
291
|
+
- **`config.getToken` may be called with `{ force: true }`**
|
|
292
|
+
(`AthenaStatewireTokenGetter`) right after the statewire host refused the
|
|
293
|
+
previous credential; a getter that caches should mint a fresh token then.
|
|
294
|
+
Existing zero-argument getters keep working unchanged.
|
|
295
|
+
- **Dependencies.** The assistant-ui family is pinned exactly on one release
|
|
296
|
+
train (`@assistant-ui/react` 0.15.17, `@assistant-ui/react-statewire`
|
|
297
|
+
0.24.0, `assistant-stream` 0.3.41, `statewire` 0.14.0); the SDK's internal
|
|
298
|
+
`zod` moved to v4 (it is not part of the public types).
|
|
299
|
+
|
|
300
|
+
Moved, not renamed: `ToolCard`, `ExpandableSection`, `normalizeResult`,
|
|
301
|
+
`truncate`, `formatToolName`, and `ToolStatus` now live in the tool
|
|
302
|
+
primitives module and are exported from both `@athenaintel/react` (as before)
|
|
303
|
+
and `@athenaintel/react/tools`.
|
|
304
|
+
|
|
117
305
|
## Migrating from 0.17
|
|
118
306
|
|
|
119
307
|
0.18.0 deletes the legacy assistant-transport leg. Every Athena chat client
|
|
@@ -267,8 +455,8 @@ import { AthenaSSOProvider } from '@athenaintel/react/auth';
|
|
|
267
455
|
<AthenaSSOProvider ssoBaseUrl="https://api.example.com">
|
|
268
456
|
<AthenaProvider
|
|
269
457
|
config={{
|
|
270
|
-
backendUrl: 'https://api.example.com
|
|
271
|
-
apiUrl: 'https://
|
|
458
|
+
backendUrl: 'https://api.example.com',
|
|
459
|
+
apiUrl: 'https://iris.example.com',
|
|
272
460
|
trustedParentOrigins: ['https://app.example.com'],
|
|
273
461
|
}}
|
|
274
462
|
enableThreadList
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const react = require("react");
|
|
5
|
+
const lucideReact = require("lucide-react");
|
|
6
|
+
const useAssetEmbed = require("./use-asset-embed.cjs");
|
|
7
|
+
const assetPanelStore = require("./asset-panel-store.cjs");
|
|
8
|
+
const assetPanelUrl = require("./asset-panel-url.cjs");
|
|
9
|
+
const AthenaContext = require("../provider/AthenaContext.cjs");
|
|
10
|
+
const ASSET_TYPE_CONFIG = {
|
|
11
|
+
presentation: { icon: lucideReact.Presentation, label: "Presentation" },
|
|
12
|
+
spreadsheet: { icon: lucideReact.FileSpreadsheet, label: "Spreadsheet" },
|
|
13
|
+
document: { icon: lucideReact.FileText, label: "Document" },
|
|
14
|
+
notebook: { icon: lucideReact.BookOpen, label: "Notebook" },
|
|
15
|
+
unknown: { icon: lucideReact.File, label: "Asset" }
|
|
16
|
+
};
|
|
17
|
+
const AssetIframe = react.memo(
|
|
18
|
+
({ tab }) => {
|
|
19
|
+
const iframeRef = react.useRef(null);
|
|
20
|
+
const { backendUrl, appUrl, apiKey, token } = AthenaContext.useAthenaConfig();
|
|
21
|
+
const { embedUrl, isLoading, error } = useAssetEmbed.useAssetEmbed(tab.id, {
|
|
22
|
+
backendUrl,
|
|
23
|
+
appUrl,
|
|
24
|
+
apiKey,
|
|
25
|
+
token
|
|
26
|
+
});
|
|
27
|
+
const initialSlideRef = react.useRef({
|
|
28
|
+
assetId: tab.id,
|
|
29
|
+
slideNumber: tab.slideNumber
|
|
30
|
+
});
|
|
31
|
+
if (initialSlideRef.current.assetId !== tab.id) {
|
|
32
|
+
initialSlideRef.current = {
|
|
33
|
+
assetId: tab.id,
|
|
34
|
+
slideNumber: tab.slideNumber
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const initialSlideNumber = initialSlideRef.current.slideNumber;
|
|
38
|
+
const iframeSrc = react.useMemo(() => {
|
|
39
|
+
if (!embedUrl) return null;
|
|
40
|
+
const base = assetPanelUrl.buildAssetIframeSrc({
|
|
41
|
+
embedUrl,
|
|
42
|
+
assetType: tab.type,
|
|
43
|
+
slideNumber: initialSlideNumber
|
|
44
|
+
});
|
|
45
|
+
try {
|
|
46
|
+
const url = new URL(base, window.location.href);
|
|
47
|
+
useAssetEmbed.appendCitationReferenceParams({ params: url.searchParams, reference: tab.reference });
|
|
48
|
+
return url.toString();
|
|
49
|
+
} catch {
|
|
50
|
+
return base;
|
|
51
|
+
}
|
|
52
|
+
}, [embedUrl, initialSlideNumber, tab.type, tab.reference]);
|
|
53
|
+
const navigationMessage = react.useMemo(
|
|
54
|
+
() => assetPanelUrl.buildPresentationNavigationMessage({
|
|
55
|
+
assetId: tab.id,
|
|
56
|
+
assetType: tab.type,
|
|
57
|
+
slideNumber: tab.slideNumber
|
|
58
|
+
}),
|
|
59
|
+
[tab.id, tab.slideNumber, tab.type]
|
|
60
|
+
);
|
|
61
|
+
const navigationTargetOrigin = react.useMemo(() => {
|
|
62
|
+
if (!iframeSrc) return null;
|
|
63
|
+
try {
|
|
64
|
+
return new URL(iframeSrc, window.location.href).origin;
|
|
65
|
+
} catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}, [iframeSrc]);
|
|
69
|
+
const postNavigationMessage = react.useCallback(() => {
|
|
70
|
+
var _a, _b;
|
|
71
|
+
if (!navigationMessage || !navigationTargetOrigin) return;
|
|
72
|
+
(_b = (_a = iframeRef.current) == null ? void 0 : _a.contentWindow) == null ? void 0 : _b.postMessage(
|
|
73
|
+
navigationMessage,
|
|
74
|
+
navigationTargetOrigin
|
|
75
|
+
);
|
|
76
|
+
}, [navigationMessage, navigationTargetOrigin]);
|
|
77
|
+
react.useEffect(() => {
|
|
78
|
+
postNavigationMessage();
|
|
79
|
+
}, [postNavigationMessage]);
|
|
80
|
+
if (isLoading) {
|
|
81
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
|
|
82
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "mx-auto size-6 animate-spin text-muted-foreground" }),
|
|
83
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-xs text-muted-foreground", children: "Loading..." })
|
|
84
|
+
] }) });
|
|
85
|
+
}
|
|
86
|
+
if (error) {
|
|
87
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center justify-center p-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-sm text-center", children: [
|
|
88
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "mx-auto size-5 text-red-400" }),
|
|
89
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1.5 text-xs font-medium text-foreground", children: "Failed to load" }),
|
|
90
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 line-clamp-2 break-words text-[10px] text-muted-foreground", children: error })
|
|
91
|
+
] }) });
|
|
92
|
+
}
|
|
93
|
+
if (!iframeSrc) return null;
|
|
94
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
95
|
+
"iframe",
|
|
96
|
+
{
|
|
97
|
+
ref: iframeRef,
|
|
98
|
+
src: iframeSrc,
|
|
99
|
+
width: "100%",
|
|
100
|
+
height: "100%",
|
|
101
|
+
frameBorder: "0",
|
|
102
|
+
allow: "fullscreen",
|
|
103
|
+
title: tab.name ?? `Asset ${tab.id}`,
|
|
104
|
+
className: "h-full w-full",
|
|
105
|
+
onLoad: postNavigationMessage
|
|
106
|
+
}
|
|
107
|
+
);
|
|
108
|
+
},
|
|
109
|
+
(prev, next) => prev.tab.id === next.tab.id && prev.tab.name === next.tab.name && prev.tab.type === next.tab.type && prev.tab.slideNumber === next.tab.slideNumber
|
|
110
|
+
);
|
|
111
|
+
AssetIframe.displayName = "AssetIframe";
|
|
112
|
+
const PanelContent = ({
|
|
113
|
+
manageAssetPanelHostRegistration
|
|
114
|
+
}) => {
|
|
115
|
+
const {
|
|
116
|
+
tabs,
|
|
117
|
+
activeTabId,
|
|
118
|
+
viewMode,
|
|
119
|
+
closeTab,
|
|
120
|
+
registerAssetPanelHost,
|
|
121
|
+
unregisterAssetPanelHost
|
|
122
|
+
} = assetPanelStore.useAssetPanelStore();
|
|
123
|
+
const isTiled = viewMode === "tiled" && tabs.length >= 2;
|
|
124
|
+
react.useEffect(() => {
|
|
125
|
+
if (!manageAssetPanelHostRegistration) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
registerAssetPanelHost();
|
|
129
|
+
return () => {
|
|
130
|
+
unregisterAssetPanelHost();
|
|
131
|
+
};
|
|
132
|
+
}, [manageAssetPanelHostRegistration, registerAssetPanelHost, unregisterAssetPanelHost]);
|
|
133
|
+
const gridClass = react.useMemo(() => {
|
|
134
|
+
const n = tabs.length;
|
|
135
|
+
if (n <= 1) return "";
|
|
136
|
+
if (n === 2) return "grid grid-cols-2 grid-rows-1";
|
|
137
|
+
if (n <= 4) return "grid grid-cols-2 grid-rows-2";
|
|
138
|
+
if (n <= 6) return "grid grid-cols-3 grid-rows-2";
|
|
139
|
+
return "grid grid-cols-3 grid-rows-3";
|
|
140
|
+
}, [tabs.length]);
|
|
141
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
142
|
+
"div",
|
|
143
|
+
{
|
|
144
|
+
className: `flex-1 overflow-hidden ${isTiled ? `${gridClass} gap-px bg-border/60` : ""}`,
|
|
145
|
+
children: tabs.map((tab) => {
|
|
146
|
+
const isActive = tab.id === activeTabId;
|
|
147
|
+
const config = ASSET_TYPE_CONFIG[tab.type];
|
|
148
|
+
const TypeIcon = config.icon;
|
|
149
|
+
if (isTiled) {
|
|
150
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
151
|
+
"div",
|
|
152
|
+
{
|
|
153
|
+
className: "flex min-h-0 min-w-0 flex-col bg-background",
|
|
154
|
+
children: [
|
|
155
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-1.5 border-b px-2 py-1", children: [
|
|
156
|
+
/* @__PURE__ */ jsxRuntime.jsx(TypeIcon, { className: "size-3 shrink-0 text-muted-foreground" }),
|
|
157
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate text-[11px] font-medium text-foreground", children: tab.name ?? config.label }),
|
|
158
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
159
|
+
"button",
|
|
160
|
+
{
|
|
161
|
+
onClick: () => closeTab(tab.id),
|
|
162
|
+
className: "shrink-0 rounded p-0.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",
|
|
163
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-2.5" })
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
] }),
|
|
167
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(AssetIframe, { tab }) })
|
|
168
|
+
]
|
|
169
|
+
},
|
|
170
|
+
tab.id
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
174
|
+
"div",
|
|
175
|
+
{
|
|
176
|
+
className: isActive ? "h-full w-full" : "hidden",
|
|
177
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(AssetIframe, { tab })
|
|
178
|
+
},
|
|
179
|
+
tab.id
|
|
180
|
+
);
|
|
181
|
+
})
|
|
182
|
+
}
|
|
183
|
+
);
|
|
184
|
+
};
|
|
185
|
+
const TabBar = () => {
|
|
186
|
+
const { tabs, activeTabId, setActiveTab, closeTab, viewMode } = assetPanelStore.useAssetPanelStore();
|
|
187
|
+
if (tabs.length <= 1 || viewMode === "tiled") return null;
|
|
188
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-0 overflow-x-auto border-b bg-muted/30", children: tabs.map((tab) => {
|
|
189
|
+
const config = ASSET_TYPE_CONFIG[tab.type];
|
|
190
|
+
const TypeIcon = config.icon;
|
|
191
|
+
const isActive = tab.id === activeTabId;
|
|
192
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
193
|
+
"div",
|
|
194
|
+
{
|
|
195
|
+
className: `group flex max-w-[180px] shrink-0 cursor-pointer items-center gap-1.5 border-r border-border/40 px-3 py-1.5 text-xs ${isActive ? "border-b-2 border-b-primary bg-background text-foreground" : "text-muted-foreground hover:bg-background/50 hover:text-foreground"}`,
|
|
196
|
+
onClick: () => setActiveTab(tab.id),
|
|
197
|
+
children: [
|
|
198
|
+
/* @__PURE__ */ jsxRuntime.jsx(TypeIcon, { className: "size-3 shrink-0" }),
|
|
199
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: tab.name ?? config.label }),
|
|
200
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
201
|
+
"button",
|
|
202
|
+
{
|
|
203
|
+
onClick: (e) => {
|
|
204
|
+
e.stopPropagation();
|
|
205
|
+
closeTab(tab.id);
|
|
206
|
+
},
|
|
207
|
+
className: "ml-auto shrink-0 rounded p-0.5 opacity-0 transition-opacity hover:bg-muted group-hover:opacity-100",
|
|
208
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-2.5" })
|
|
209
|
+
}
|
|
210
|
+
)
|
|
211
|
+
]
|
|
212
|
+
},
|
|
213
|
+
tab.id
|
|
214
|
+
);
|
|
215
|
+
}) });
|
|
216
|
+
};
|
|
217
|
+
const PanelHeader = ({ fullscreen }) => {
|
|
218
|
+
const {
|
|
219
|
+
closePanel,
|
|
220
|
+
toggleFullscreen,
|
|
221
|
+
tabs,
|
|
222
|
+
activeTabId,
|
|
223
|
+
viewMode,
|
|
224
|
+
setViewMode
|
|
225
|
+
} = assetPanelStore.useAssetPanelStore();
|
|
226
|
+
const activeTab = tabs.find((t) => t.id === activeTabId);
|
|
227
|
+
const config = ASSET_TYPE_CONFIG[(activeTab == null ? void 0 : activeTab.type) ?? "unknown"];
|
|
228
|
+
const TypeIcon = config.icon;
|
|
229
|
+
const isTiled = viewMode === "tiled";
|
|
230
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2 border-b px-4 py-2.5", children: [
|
|
231
|
+
!isTiled && /* @__PURE__ */ jsxRuntime.jsx(TypeIcon, { className: "size-4 shrink-0 text-muted-foreground" }),
|
|
232
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "flex-1 truncate text-sm font-semibold text-foreground", children: isTiled ? `${tabs.length} Assets` : (activeTab == null ? void 0 : activeTab.name) ?? config.label }),
|
|
233
|
+
tabs.length >= 2 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
234
|
+
"button",
|
|
235
|
+
{
|
|
236
|
+
onClick: () => setViewMode(isTiled ? "tabs" : "tiled"),
|
|
237
|
+
className: `flex size-7 items-center justify-center rounded-lg transition-colors ${isTiled ? "bg-primary/10 text-primary" : "text-muted-foreground hover:bg-accent hover:text-foreground"}`,
|
|
238
|
+
title: isTiled ? "Switch to tabs" : "Tile all assets",
|
|
239
|
+
children: isTiled ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Layers, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LayoutGrid, { className: "size-3.5" })
|
|
240
|
+
}
|
|
241
|
+
),
|
|
242
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
243
|
+
"button",
|
|
244
|
+
{
|
|
245
|
+
onClick: toggleFullscreen,
|
|
246
|
+
className: "flex size-7 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
247
|
+
title: fullscreen ? "Exit fullscreen" : "Fullscreen",
|
|
248
|
+
children: fullscreen ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Minimize2, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Maximize2, { className: "size-3.5" })
|
|
249
|
+
}
|
|
250
|
+
),
|
|
251
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
252
|
+
"button",
|
|
253
|
+
{
|
|
254
|
+
onClick: closePanel,
|
|
255
|
+
className: "flex size-7 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",
|
|
256
|
+
title: "Close all",
|
|
257
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-4" })
|
|
258
|
+
}
|
|
259
|
+
)
|
|
260
|
+
] });
|
|
261
|
+
};
|
|
262
|
+
const AssetPanel = ({
|
|
263
|
+
manageAssetPanelHostRegistration = true
|
|
264
|
+
}) => {
|
|
265
|
+
const isFullscreen = assetPanelStore.useAssetPanelStore((s) => s.isFullscreen);
|
|
266
|
+
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
267
|
+
/* @__PURE__ */ jsxRuntime.jsx(PanelHeader, { fullscreen: isFullscreen }),
|
|
268
|
+
/* @__PURE__ */ jsxRuntime.jsx(TabBar, {}),
|
|
269
|
+
/* @__PURE__ */ jsxRuntime.jsx(PanelContent, { manageAssetPanelHostRegistration })
|
|
270
|
+
] });
|
|
271
|
+
if (isFullscreen) {
|
|
272
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "fixed inset-0 z-50 flex flex-col bg-background", children: content });
|
|
273
|
+
}
|
|
274
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full flex-col bg-background", children: content });
|
|
275
|
+
};
|
|
276
|
+
exports.AssetPanel = AssetPanel;
|
|
277
|
+
//# sourceMappingURL=AssetPanel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetPanel.cjs","sources":["../../src/assets/AssetPanel.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, memo, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport {\n X,\n Loader2,\n AlertCircle,\n Maximize2,\n Minimize2,\n FileText,\n FileSpreadsheet,\n Presentation,\n File,\n BookOpen,\n LayoutGrid,\n Layers,\n} from \"lucide-react\";\nimport { appendCitationReferenceParams, useAssetEmbed } from \"./use-asset-embed\";\nimport {\n useAssetPanelStore,\n type AssetTab,\n type AssetType,\n} from \"./asset-panel-store\";\nimport {\n buildAssetIframeSrc,\n buildPresentationNavigationMessage,\n} from \"./asset-panel-url\";\nimport { useAthenaConfig } from \"../provider/AthenaContext\";\n\nconst ASSET_TYPE_CONFIG: Record<\n AssetType,\n { icon: typeof File; label: string }\n> = {\n presentation: { icon: Presentation, label: \"Presentation\" },\n spreadsheet: { icon: FileSpreadsheet, label: \"Spreadsheet\" },\n document: { icon: FileText, label: \"Document\" },\n notebook: { icon: BookOpen, label: \"Notebook\" },\n unknown: { icon: File, label: \"Asset\" },\n};\n\n/** Memoized iframe for a single asset — only re-renders when iframe inputs change. */\nconst AssetIframe = memo<{ tab: AssetTab }>(\n ({ tab }) => {\n const iframeRef = useRef<HTMLIFrameElement | null>(null);\n const { backendUrl, appUrl, apiKey, token } = useAthenaConfig();\n const { embedUrl, isLoading, error } = useAssetEmbed(tab.id, {\n backendUrl,\n appUrl,\n apiKey,\n token,\n });\n const initialSlideRef = useRef<{\n assetId: string;\n slideNumber?: number;\n }>({\n assetId: tab.id,\n slideNumber: tab.slideNumber,\n });\n if (initialSlideRef.current.assetId !== tab.id) {\n initialSlideRef.current = {\n assetId: tab.id,\n slideNumber: tab.slideNumber,\n };\n }\n const initialSlideNumber = initialSlideRef.current.slideNumber;\n // The citation target rides the embed URL: the embed page parses the\n // anchor params and navigates (sheet range scroll/flash, PDF page). A\n // repeat click with a DIFFERENT target updates the tab's reference ->\n // new src -> the iframe reloads at the new range. Same target twice is a\n // no-op (already there).\n //\n // Deliberately does NOT set `athena_sdk_bridge=1` (buildSdkAssetEmbedUrl\n // is for AthenaAssetEmbed): that flag makes the embed page wait\n // indefinitely for a host config handshake that only AthenaAssetEmbed\n // implements — the panel's bare iframe never replies, so the embed would\n // hang on its loading bar forever.\n const iframeSrc = useMemo(() => {\n if (!embedUrl) return null;\n const base = buildAssetIframeSrc({\n embedUrl,\n assetType: tab.type,\n slideNumber: initialSlideNumber,\n });\n try {\n const url = new URL(base, window.location.href);\n appendCitationReferenceParams({ params: url.searchParams, reference: tab.reference });\n return url.toString();\n } catch {\n return base;\n }\n }, [embedUrl, initialSlideNumber, tab.type, tab.reference]);\n const navigationMessage = useMemo(\n () =>\n buildPresentationNavigationMessage({\n assetId: tab.id,\n assetType: tab.type,\n slideNumber: tab.slideNumber,\n }),\n [tab.id, tab.slideNumber, tab.type],\n );\n const navigationTargetOrigin = useMemo(() => {\n if (!iframeSrc) return null;\n\n try {\n return new URL(iframeSrc, window.location.href).origin;\n } catch {\n return null;\n }\n }, [iframeSrc]);\n const postNavigationMessage = useCallback(() => {\n if (!navigationMessage || !navigationTargetOrigin) return;\n iframeRef.current?.contentWindow?.postMessage(\n navigationMessage,\n navigationTargetOrigin,\n );\n }, [navigationMessage, navigationTargetOrigin]);\n\n useEffect(() => {\n postNavigationMessage();\n }, [postNavigationMessage]);\n\n if (isLoading) {\n return (\n <div className=\"flex h-full items-center justify-center\">\n <div className=\"text-center\">\n <Loader2 className=\"mx-auto size-6 animate-spin text-muted-foreground\" />\n <p className=\"mt-2 text-xs text-muted-foreground\">Loading...</p>\n </div>\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"flex h-full items-center justify-center p-4\">\n <div className=\"max-w-sm text-center\">\n <AlertCircle className=\"mx-auto size-5 text-red-400\" />\n <p className=\"mt-1.5 text-xs font-medium text-foreground\">\n Failed to load\n </p>\n <p className=\"mt-0.5 line-clamp-2 break-words text-[10px] text-muted-foreground\">\n {error}\n </p>\n </div>\n </div>\n );\n }\n\n if (!iframeSrc) return null;\n\n return (\n <iframe\n ref={iframeRef}\n src={iframeSrc}\n width=\"100%\"\n height=\"100%\"\n frameBorder=\"0\"\n allow=\"fullscreen\"\n title={tab.name ?? `Asset ${tab.id}`}\n className=\"h-full w-full\"\n onLoad={postNavigationMessage}\n />\n );\n },\n (prev, next) =>\n prev.tab.id === next.tab.id &&\n prev.tab.name === next.tab.name &&\n prev.tab.type === next.tab.type &&\n prev.tab.slideNumber === next.tab.slideNumber,\n);\n\nAssetIframe.displayName = \"AssetIframe\";\n\nexport interface AssetPanelProps {\n /** Register this panel as an asset-panel host when used outside AthenaLayout. */\n manageAssetPanelHostRegistration?: boolean;\n}\n\n/**\n * Content area — renders all iframes in the same tree.\n * Tab mode: only active tab visible via CSS. Tiled mode: CSS grid. Iframes never unmount on switch.\n */\nconst PanelContent: FC<{ manageAssetPanelHostRegistration: boolean }> = ({\n manageAssetPanelHostRegistration,\n}) => {\n const {\n tabs,\n activeTabId,\n viewMode,\n closeTab,\n registerAssetPanelHost,\n unregisterAssetPanelHost,\n } =\n useAssetPanelStore();\n const isTiled = viewMode === \"tiled\" && tabs.length >= 2;\n\n useEffect(() => {\n if (!manageAssetPanelHostRegistration) {\n return;\n }\n\n registerAssetPanelHost();\n return () => {\n unregisterAssetPanelHost();\n };\n }, [manageAssetPanelHostRegistration, registerAssetPanelHost, unregisterAssetPanelHost]);\n\n const gridClass = useMemo(() => {\n const n = tabs.length;\n if (n <= 1) return \"\";\n if (n === 2) return \"grid grid-cols-2 grid-rows-1\";\n if (n <= 4) return \"grid grid-cols-2 grid-rows-2\";\n if (n <= 6) return \"grid grid-cols-3 grid-rows-2\";\n return \"grid grid-cols-3 grid-rows-3\";\n }, [tabs.length]);\n\n return (\n <div\n className={`flex-1 overflow-hidden ${isTiled ? `${gridClass} gap-px bg-border/60` : \"\"}`}\n >\n {tabs.map((tab) => {\n const isActive = tab.id === activeTabId;\n const config = ASSET_TYPE_CONFIG[tab.type];\n const TypeIcon = config.icon;\n\n if (isTiled) {\n return (\n <div\n key={tab.id}\n className=\"flex min-h-0 min-w-0 flex-col bg-background\"\n >\n <div className=\"flex shrink-0 items-center gap-1.5 border-b px-2 py-1\">\n <TypeIcon className=\"size-3 shrink-0 text-muted-foreground\" />\n <span className=\"flex-1 truncate text-[11px] font-medium text-foreground\">\n {tab.name ?? config.label}\n </span>\n <button\n onClick={() => closeTab(tab.id)}\n className=\"shrink-0 rounded p-0.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n >\n <X className=\"size-2.5\" />\n </button>\n </div>\n <div className=\"flex-1 overflow-hidden\">\n <AssetIframe tab={tab} />\n </div>\n </div>\n );\n }\n\n return (\n <div\n key={tab.id}\n className={isActive ? \"h-full w-full\" : \"hidden\"}\n >\n <AssetIframe tab={tab} />\n </div>\n );\n })}\n </div>\n );\n};\n\n/** Tab bar for tab mode — scrollable row of tabs. */\nconst TabBar: FC = () => {\n const { tabs, activeTabId, setActiveTab, closeTab, viewMode } =\n useAssetPanelStore();\n\n if (tabs.length <= 1 || viewMode === \"tiled\") return null;\n\n return (\n <div className=\"flex shrink-0 items-center gap-0 overflow-x-auto border-b bg-muted/30\">\n {tabs.map((tab) => {\n const config = ASSET_TYPE_CONFIG[tab.type];\n const TypeIcon = config.icon;\n const isActive = tab.id === activeTabId;\n\n return (\n <div\n key={tab.id}\n className={`group flex max-w-[180px] shrink-0 cursor-pointer items-center gap-1.5 border-r border-border/40 px-3 py-1.5 text-xs ${\n isActive\n ? \"border-b-2 border-b-primary bg-background text-foreground\"\n : \"text-muted-foreground hover:bg-background/50 hover:text-foreground\"\n }`}\n onClick={() => setActiveTab(tab.id)}\n >\n <TypeIcon className=\"size-3 shrink-0\" />\n <span className=\"truncate\">{tab.name ?? config.label}</span>\n <button\n onClick={(e) => {\n e.stopPropagation();\n closeTab(tab.id);\n }}\n className=\"ml-auto shrink-0 rounded p-0.5 opacity-0 transition-opacity hover:bg-muted group-hover:opacity-100\"\n >\n <X className=\"size-2.5\" />\n </button>\n </div>\n );\n })}\n </div>\n );\n};\n\n/** Header with active tab info + panel controls. */\nconst PanelHeader: FC<{ fullscreen?: boolean }> = ({ fullscreen }) => {\n const {\n closePanel,\n toggleFullscreen,\n tabs,\n activeTabId,\n viewMode,\n setViewMode,\n } = useAssetPanelStore();\n const activeTab = tabs.find((t) => t.id === activeTabId);\n const config = ASSET_TYPE_CONFIG[activeTab?.type ?? \"unknown\"];\n const TypeIcon = config.icon;\n const isTiled = viewMode === \"tiled\";\n\n return (\n <div className=\"flex shrink-0 items-center gap-2 border-b px-4 py-2.5\">\n {!isTiled && (\n <TypeIcon className=\"size-4 shrink-0 text-muted-foreground\" />\n )}\n <p className=\"flex-1 truncate text-sm font-semibold text-foreground\">\n {isTiled\n ? `${tabs.length} Assets`\n : activeTab?.name ?? config.label}\n </p>\n\n {tabs.length >= 2 && (\n <button\n onClick={() => setViewMode(isTiled ? \"tabs\" : \"tiled\")}\n className={`flex size-7 items-center justify-center rounded-lg transition-colors ${\n isTiled\n ? \"bg-primary/10 text-primary\"\n : \"text-muted-foreground hover:bg-accent hover:text-foreground\"\n }`}\n title={isTiled ? \"Switch to tabs\" : \"Tile all assets\"}\n >\n {isTiled ? (\n <Layers className=\"size-3.5\" />\n ) : (\n <LayoutGrid className=\"size-3.5\" />\n )}\n </button>\n )}\n\n <button\n onClick={toggleFullscreen}\n className=\"flex size-7 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-accent hover:text-foreground\"\n title={fullscreen ? \"Exit fullscreen\" : \"Fullscreen\"}\n >\n {fullscreen ? (\n <Minimize2 className=\"size-3.5\" />\n ) : (\n <Maximize2 className=\"size-3.5\" />\n )}\n </button>\n <button\n onClick={closePanel}\n className=\"flex size-7 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:bg-accent hover:text-foreground\"\n title=\"Close all\"\n >\n <X className=\"size-4\" />\n </button>\n </div>\n );\n};\n\nexport const AssetPanel: FC<AssetPanelProps> = ({\n manageAssetPanelHostRegistration = true,\n}) => {\n const isFullscreen = useAssetPanelStore((s) => s.isFullscreen);\n\n const content = (\n <>\n <PanelHeader fullscreen={isFullscreen} />\n <TabBar />\n <PanelContent manageAssetPanelHostRegistration={manageAssetPanelHostRegistration} />\n </>\n );\n\n if (isFullscreen) {\n return (\n <div className=\"fixed inset-0 z-50 flex flex-col bg-background\">\n {content}\n </div>\n );\n }\n\n return (\n <div className=\"flex h-full flex-col bg-background\">{content}</div>\n );\n};\n"],"names":["Presentation","FileSpreadsheet","FileText","BookOpen","File","memo","useRef","useAthenaConfig","useAssetEmbed","useMemo","buildAssetIframeSrc","appendCitationReferenceParams","buildPresentationNavigationMessage","useCallback","useEffect","jsxs","jsx","Loader2","AlertCircle","useAssetPanelStore","X","Layers","LayoutGrid","Minimize2","Maximize2","Fragment"],"mappings":"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"}
|