@athenaintel/react 0.19.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 +97 -11
- package/dist/assets/AssetPanel.cjs +277 -0
- package/dist/assets/AssetPanel.cjs.map +1 -0
- package/dist/assets/AssetPanel.js +277 -0
- package/dist/assets/AssetPanel.js.map +1 -0
- package/dist/assets/AthenaAssetEmbed.cjs +151 -0
- package/dist/assets/AthenaAssetEmbed.cjs.map +1 -0
- package/dist/assets/AthenaAssetEmbed.js +151 -0
- package/dist/assets/AthenaAssetEmbed.js.map +1 -0
- package/dist/assets/AthenaLayout.cjs +69 -0
- package/dist/assets/AthenaLayout.cjs.map +1 -0
- package/dist/assets/AthenaLayout.js +69 -0
- package/dist/assets/AthenaLayout.js.map +1 -0
- package/dist/assets/asset-embed-messages.cjs +39 -0
- package/dist/assets/asset-embed-messages.cjs.map +1 -0
- package/dist/assets/asset-embed-messages.js +39 -0
- package/dist/assets/asset-embed-messages.js.map +1 -0
- package/dist/assets/asset-panel-store.cjs +124 -0
- package/dist/assets/asset-panel-store.cjs.map +1 -0
- package/dist/assets/asset-panel-store.js +124 -0
- package/dist/assets/asset-panel-store.js.map +1 -0
- package/dist/assets/asset-panel-url.cjs +40 -0
- package/dist/assets/asset-panel-url.cjs.map +1 -0
- package/dist/assets/asset-panel-url.js +40 -0
- package/dist/assets/asset-panel-url.js.map +1 -0
- package/dist/assets/use-asset-embed.cjs +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.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.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 +3 -4
- 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-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.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.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 +4 -1
- 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 +3 -3
- 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.js +55 -0
- package/dist/chat/super-grouping/grouping-function.js.map +1 -0
- package/dist/chat/super-grouping/index.cjs +26 -0
- package/dist/chat/super-grouping/index.cjs.map +1 -0
- package/dist/chat/super-grouping/index.js +26 -0
- package/dist/chat/super-grouping/index.js.map +1 -0
- package/dist/chat/super-grouping/toolkit-map.cjs +96 -0
- package/dist/chat/super-grouping/toolkit-map.cjs.map +1 -0
- package/dist/chat/super-grouping/toolkit-map.js +96 -0
- package/dist/chat/super-grouping/toolkit-map.js.map +1 -0
- package/dist/chat/tiptap-text.cjs +101 -0
- package/dist/chat/tiptap-text.cjs.map +1 -0
- package/dist/chat/tiptap-text.js +101 -0
- package/dist/chat/tiptap-text.js.map +1 -0
- package/dist/chat/tooltip-icon-button.cjs +32 -0
- package/dist/chat/tooltip-icon-button.cjs.map +1 -0
- package/dist/chat/tooltip-icon-button.js +32 -0
- package/dist/chat/tooltip-icon-button.js.map +1 -0
- package/dist/chat/use-athena-run-live.cjs +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.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.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 +4 -3
- 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/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.js +65 -0
- package/dist/chat-ui/messages/runtime-message.js.map +1 -0
- package/dist/{statewire-continue-run-nE9VCKUh.cjs → chat-ui/messages/statewire-continue-run.cjs} +39 -16
- package/dist/chat-ui/messages/statewire-continue-run.cjs.map +1 -0
- package/dist/chat-ui/messages/statewire-continue-run.d.ts +5 -1
- package/dist/{statewire-continue-run-D34gS7_1.js → chat-ui/messages/statewire-continue-run.js} +29 -7
- 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.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.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.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.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.js +329 -0
- package/dist/diagnostics/athena-diagnostics.js.map +1 -0
- package/dist/diagnostics/errors.cjs +89 -0
- package/dist/diagnostics/errors.cjs.map +1 -0
- package/dist/diagnostics/errors.js +89 -0
- package/dist/diagnostics/errors.js.map +1 -0
- package/dist/diagnostics/useAthenaDiagnostics.cjs +16 -0
- package/dist/diagnostics/useAthenaDiagnostics.cjs.map +1 -0
- package/dist/diagnostics/useAthenaDiagnostics.js +16 -0
- package/dist/diagnostics/useAthenaDiagnostics.js.map +1 -0
- package/dist/index.cjs +274 -27882
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +161 -27759
- package/dist/index.js.map +1 -1
- package/dist/lib/athena-urls.cjs +194 -0
- package/dist/lib/athena-urls.cjs.map +1 -0
- package/dist/lib/athena-urls.d.ts +20 -5
- package/dist/lib/athena-urls.js +194 -0
- package/dist/lib/athena-urls.js.map +1 -0
- package/dist/lib/posthog/before-send.cjs +58 -0
- package/dist/lib/posthog/before-send.cjs.map +1 -0
- package/dist/lib/posthog/before-send.js +58 -0
- package/dist/lib/posthog/before-send.js.map +1 -0
- package/dist/lib/posthog/capture-gate.cjs +322 -0
- package/dist/lib/posthog/capture-gate.cjs.map +1 -0
- package/dist/lib/posthog/capture-gate.js +322 -0
- package/dist/lib/posthog/capture-gate.js.map +1 -0
- package/dist/lib/posthog/wrap-posthog-client.cjs +163 -0
- package/dist/lib/posthog/wrap-posthog-client.cjs.map +1 -0
- package/dist/lib/posthog/wrap-posthog-client.js +163 -0
- package/dist/lib/posthog/wrap-posthog-client.js.map +1 -0
- package/dist/lib/utils.cjs +12 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.js +9 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs +77 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js +77 -0
- package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs +181 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs.map +1 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js +181 -0
- package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js.map +1 -0
- package/dist/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.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 +8 -7
- package/dist/provider/statewire-lifecycle-context.cjs +10 -0
- package/dist/provider/statewire-lifecycle-context.cjs.map +1 -0
- package/dist/provider/statewire-lifecycle-context.js +10 -0
- package/dist/provider/statewire-lifecycle-context.js.map +1 -0
- package/dist/provider/statewire-window-context.cjs +10 -0
- package/dist/provider/statewire-window-context.cjs.map +1 -0
- package/dist/provider/statewire-window-context.js +10 -0
- package/dist/provider/statewire-window-context.js.map +1 -0
- package/dist/runtime/auth.cjs +309 -0
- package/dist/runtime/auth.cjs.map +1 -0
- package/dist/runtime/auth.d.ts +19 -18
- package/dist/runtime/auth.js +309 -0
- package/dist/runtime/auth.js.map +1 -0
- package/dist/runtime/statewire-auth-headers.cjs +18 -0
- package/dist/runtime/statewire-auth-headers.cjs.map +1 -0
- package/dist/runtime/statewire-auth-headers.js +18 -0
- package/dist/runtime/statewire-auth-headers.js.map +1 -0
- package/dist/runtime/statewire-lifecycle.cjs +67 -0
- package/dist/runtime/statewire-lifecycle.cjs.map +1 -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.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.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.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.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 +1 -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/{misc-tool-uis-gAiQw0Yl.js → tools/misc-tool-uis.js} +17 -7
- 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.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.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.js +61 -0
- package/dist/tools/tool-icons.js.map +1 -0
- package/dist/tools/tool-uis.cjs +3049 -0
- package/dist/tools/tool-uis.cjs.map +1 -0
- package/dist/tools/tool-uis.js +3049 -0
- package/dist/tools/tool-uis.js.map +1 -0
- package/dist/tools/voice-update-tool-ui.cjs +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 +18 -20
- package/dist/AthenaAuthContext-B3AwLA5Z.cjs.map +0 -1
- package/dist/AthenaAuthContext-DQsdayH2.js.map +0 -1
- package/dist/AthenaContext-B1QMhIP-.cjs.map +0 -1
- package/dist/AthenaContext-MOslgOmE.js.map +0 -1
- package/dist/SuperGroupingCard-BsWbHyV_.js +0 -795
- package/dist/SuperGroupingCard-BsWbHyV_.js.map +0 -1
- package/dist/SuperGroupingCard-CRRFUgjN.cjs +0 -794
- package/dist/SuperGroupingCard-CRRFUgjN.cjs.map +0 -1
- package/dist/auth.cjs.map +0 -1
- package/dist/auth.js.map +0 -1
- package/dist/chat/ComposerEditorContext.d.ts +0 -36
- package/dist/chat/tiptap-composer.d.ts +0 -7
- package/dist/chat-ui-statewire.cjs +0 -25
- package/dist/chat-ui-statewire.cjs.map +0 -1
- package/dist/chat-ui-statewire.js +0 -25
- package/dist/chat-ui-statewire.js.map +0 -1
- package/dist/chat-ui.cjs +0 -2484
- package/dist/chat-ui.cjs.map +0 -1
- package/dist/chat-ui.js +0 -2486
- package/dist/chat-ui.js.map +0 -1
- package/dist/collab.cjs.map +0 -1
- package/dist/collab.js.map +0 -1
- package/dist/mentions/composer-keybinds.d.ts +0 -5
- package/dist/mentions/mention-extension.d.ts +0 -6
- package/dist/mentions/mention-icons.d.ts +0 -4
- package/dist/mentions/mention-node-view.d.ts +0 -2
- package/dist/mentions/mention-suggestion-list.d.ts +0 -14
- package/dist/mentions/mention-suggestion-popup.d.ts +0 -15
- package/dist/mentions/mention-suggestions-extension.d.ts +0 -11
- package/dist/mentions/mention-types.d.ts +0 -21
- package/dist/mentions/mention-utils.d.ts +0 -23
- package/dist/mentions/use-mention-suggestions.d.ts +0 -29
- package/dist/misc-tool-uis-B2e0Okkn.cjs +0 -43
- package/dist/misc-tool-uis-B2e0Okkn.cjs.map +0 -1
- package/dist/misc-tool-uis-gAiQw0Yl.js.map +0 -1
- package/dist/statewire-continue-run-D34gS7_1.js.map +0 -1
- package/dist/statewire-continue-run-nE9VCKUh.cjs.map +0 -1
- package/dist/statewire-history-edge-C8uyTEjX.cjs +0 -1711
- package/dist/statewire-history-edge-C8uyTEjX.cjs.map +0 -1
- package/dist/statewire-history-edge-CPohUKMt.js +0 -1712
- package/dist/statewire-history-edge-CPohUKMt.js.map +0 -1
- package/dist/super-grouping.cjs +0 -22
- package/dist/super-grouping.cjs.map +0 -1
- package/dist/super-grouping.js +0 -22
- package/dist/super-grouping.js.map +0 -1
- package/dist/tool-fallback-DkQ3DLkn.js +0 -4281
- package/dist/tool-fallback-DkQ3DLkn.js.map +0 -1
- package/dist/tool-fallback-kfhpJQZa.cjs +0 -4297
- package/dist/tool-fallback-kfhpJQZa.cjs.map +0 -1
- package/dist/tools.cjs +0 -41
- package/dist/tools.cjs.map +0 -1
- package/dist/tools.js +0 -41
- package/dist/tools.js.map +0 -1
- package/dist/trash-2-B5OaNAL7.cjs +0 -5096
- package/dist/trash-2-B5OaNAL7.cjs.map +0 -1
- package/dist/trash-2-CCwSURL-.js +0 -5081
- package/dist/trash-2-CCwSURL-.js.map +0 -1
- package/dist/use-rest-conversation-history-Cm8qMRxp.cjs +0 -32397
- package/dist/use-rest-conversation-history-Cm8qMRxp.cjs.map +0 -1
- package/dist/use-rest-conversation-history-veDZS-oL.js +0 -32361
- package/dist/use-rest-conversation-history-veDZS-oL.js.map +0 -1
- package/dist/wrench-BEf72cyP.cjs +0 -417
- package/dist/wrench-BEf72cyP.cjs.map +0 -1
- package/dist/wrench-CbrOlVYm.js +0 -418
- package/dist/wrench-CbrOlVYm.js.map +0 -1
- package/dist/x-Dfd2NzK0.cjs +0 -42
- package/dist/x-Dfd2NzK0.cjs.map +0 -1
- package/dist/x-_DntAa_a.js +0 -43
- package/dist/x-_DntAa_a.js.map +0 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback } from "react";
|
|
3
|
+
import "../packages/agent-runtime/src/generated/runconfig-contract.js";
|
|
4
|
+
import "@assistant-ui/tap";
|
|
5
|
+
import "statewire";
|
|
6
|
+
import "../packages/agent-runtime/src/statewire-suspended.js";
|
|
7
|
+
import { formatToolName } from "../packages/agent-runtime/src/tool-metadata.js";
|
|
8
|
+
import "@tanstack/react-query";
|
|
9
|
+
import "../packages/agent-runtime/src/statewire-state.js";
|
|
10
|
+
import "../packages/agent-runtime/src/messages.js";
|
|
11
|
+
import "@assistant-ui/react-statewire";
|
|
12
|
+
import "@assistant-ui/store";
|
|
13
|
+
import "@assistant-ui/react-statewire/local-storage";
|
|
14
|
+
import "../packages/agent-runtime/src/statewire-attach-observer.js";
|
|
15
|
+
import "../packages/agent-runtime/src/thread-status.js";
|
|
16
|
+
import "@assistant-ui/core";
|
|
17
|
+
import { ClipboardCopyIcon, ChevronDownIcon, LoaderIcon, AlertCircleIcon, CheckCircle2Icon } from "lucide-react";
|
|
18
|
+
import { cn } from "cnfast";
|
|
19
|
+
function tryParseJson(text) {
|
|
20
|
+
try {
|
|
21
|
+
const parsed = JSON.parse(text);
|
|
22
|
+
return typeof parsed === "object" && parsed !== null ? parsed : null;
|
|
23
|
+
} catch {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function normalizeResult(result) {
|
|
28
|
+
if (!result) return null;
|
|
29
|
+
if (typeof result === "string") return tryParseJson(result);
|
|
30
|
+
if (typeof result === "object") {
|
|
31
|
+
const obj = result;
|
|
32
|
+
if (typeof obj.result === "string") return tryParseJson(obj.result) ?? obj;
|
|
33
|
+
return obj;
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
function truncate(text, max) {
|
|
38
|
+
return text.length > max ? `${text.slice(0, max)}...` : text;
|
|
39
|
+
}
|
|
40
|
+
function ToolCard({
|
|
41
|
+
icon: Icon,
|
|
42
|
+
status,
|
|
43
|
+
title,
|
|
44
|
+
subtitle,
|
|
45
|
+
toolName,
|
|
46
|
+
badge,
|
|
47
|
+
error,
|
|
48
|
+
children,
|
|
49
|
+
args,
|
|
50
|
+
result
|
|
51
|
+
}) {
|
|
52
|
+
const isRunning = status === "running";
|
|
53
|
+
const isComplete = status === "complete";
|
|
54
|
+
const isError = status === "incomplete";
|
|
55
|
+
return /* @__PURE__ */ jsxs("div", { className: "my-3 w-full overflow-hidden rounded-xl border border-border/60 bg-background shadow-sm", children: [
|
|
56
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 px-4 py-3", children: [
|
|
57
|
+
/* @__PURE__ */ jsx(
|
|
58
|
+
"div",
|
|
59
|
+
{
|
|
60
|
+
className: cn(
|
|
61
|
+
"flex size-8 shrink-0 items-center justify-center rounded-lg",
|
|
62
|
+
isRunning && "bg-blue-50 text-blue-600",
|
|
63
|
+
isComplete && "bg-emerald-50 text-emerald-600",
|
|
64
|
+
isError && "bg-destructive/10 text-destructive"
|
|
65
|
+
),
|
|
66
|
+
children: isRunning ? /* @__PURE__ */ jsx(LoaderIcon, { className: "size-4 animate-spin" }) : isError ? /* @__PURE__ */ jsx(AlertCircleIcon, { className: "size-4" }) : /* @__PURE__ */ jsx(Icon, { className: "size-4" })
|
|
67
|
+
}
|
|
68
|
+
),
|
|
69
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
70
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
71
|
+
/* @__PURE__ */ jsx("span", { className: "text-[13px] font-medium text-foreground", children: title }),
|
|
72
|
+
isComplete && !error && /* @__PURE__ */ jsx(CheckCircle2Icon, { className: "size-3.5 text-emerald-500" })
|
|
73
|
+
] }),
|
|
74
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "truncate text-[12px] text-muted-foreground", children: subtitle })
|
|
75
|
+
] }),
|
|
76
|
+
toolName && /* @__PURE__ */ jsx("span", { className: "shrink-0 rounded-md bg-muted/60 px-1.5 py-0.5 text-[10px] font-mono text-muted-foreground", children: formatToolName(toolName) }),
|
|
77
|
+
badge && /* @__PURE__ */ jsx("span", { className: "shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground", children: badge }),
|
|
78
|
+
isRunning && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
79
|
+
/* @__PURE__ */ jsx("div", { className: "h-1.5 w-10 animate-pulse rounded-full bg-blue-100" }),
|
|
80
|
+
/* @__PURE__ */ jsx("div", { className: "h-1.5 w-6 animate-pulse rounded-full bg-blue-100" })
|
|
81
|
+
] })
|
|
82
|
+
] }),
|
|
83
|
+
error && /* @__PURE__ */ jsx("div", { className: "border-t border-border/40 bg-destructive/10 px-4 py-2.5", children: /* @__PURE__ */ jsx("p", { className: "text-[12px] leading-relaxed text-destructive", children: error }) }),
|
|
84
|
+
children,
|
|
85
|
+
toolName && isComplete && /* @__PURE__ */ jsx(CopyToolSpecButton, { toolName, args, result })
|
|
86
|
+
] });
|
|
87
|
+
}
|
|
88
|
+
function CopyToolSpecButton({
|
|
89
|
+
toolName,
|
|
90
|
+
args,
|
|
91
|
+
argsText,
|
|
92
|
+
result,
|
|
93
|
+
className
|
|
94
|
+
}) {
|
|
95
|
+
const [copied, setCopied] = useState(false);
|
|
96
|
+
const handleCopy = useCallback(() => {
|
|
97
|
+
const spec = { tool_name: toolName };
|
|
98
|
+
if (args) spec.arguments = args;
|
|
99
|
+
else if (argsText) spec.arguments = tryParseJson(argsText) ?? argsText;
|
|
100
|
+
if (result !== void 0) {
|
|
101
|
+
if (typeof result === "string") {
|
|
102
|
+
const parsed = tryParseJson(result);
|
|
103
|
+
spec.result = parsed ?? result;
|
|
104
|
+
} else {
|
|
105
|
+
spec.result = result;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
navigator.clipboard.writeText(JSON.stringify(spec, null, 2)).then(() => {
|
|
109
|
+
setCopied(true);
|
|
110
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
111
|
+
});
|
|
112
|
+
}, [toolName, args, argsText, result]);
|
|
113
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex justify-end px-3 pb-1.5", className), children: /* @__PURE__ */ jsxs(
|
|
114
|
+
"button",
|
|
115
|
+
{
|
|
116
|
+
type: "button",
|
|
117
|
+
onClick: handleCopy,
|
|
118
|
+
className: "flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-muted-foreground/40 transition-colors hover:bg-muted/50 hover:text-muted-foreground",
|
|
119
|
+
title: "Copy tool name, arguments, and result as JSON",
|
|
120
|
+
children: [
|
|
121
|
+
/* @__PURE__ */ jsx(ClipboardCopyIcon, { className: "size-2.5" }),
|
|
122
|
+
copied ? "Copied!" : toolName
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
) });
|
|
126
|
+
}
|
|
127
|
+
function ExpandableSection({
|
|
128
|
+
label,
|
|
129
|
+
children,
|
|
130
|
+
defaultOpen = false
|
|
131
|
+
}) {
|
|
132
|
+
const [expanded, setExpanded] = useState(defaultOpen);
|
|
133
|
+
return /* @__PURE__ */ jsxs("div", { className: "border-t border-border/40", children: [
|
|
134
|
+
/* @__PURE__ */ jsxs(
|
|
135
|
+
"button",
|
|
136
|
+
{
|
|
137
|
+
type: "button",
|
|
138
|
+
onClick: () => setExpanded(!expanded),
|
|
139
|
+
className: "flex w-full items-center gap-2 px-4 py-2 text-left text-[11px] font-medium text-muted-foreground transition-colors hover:bg-muted/30",
|
|
140
|
+
children: [
|
|
141
|
+
/* @__PURE__ */ jsx(
|
|
142
|
+
ChevronDownIcon,
|
|
143
|
+
{
|
|
144
|
+
className: cn(
|
|
145
|
+
"size-3.5 shrink-0 transition-transform duration-200",
|
|
146
|
+
!expanded && "-rotate-90"
|
|
147
|
+
)
|
|
148
|
+
}
|
|
149
|
+
),
|
|
150
|
+
/* @__PURE__ */ jsx("span", { children: expanded ? "Hide details" : label ?? "Show details" })
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
),
|
|
154
|
+
expanded && /* @__PURE__ */ jsx("div", { className: "max-h-72 overflow-y-auto border-t border-border/40 bg-muted/10 px-4 py-3", children })
|
|
155
|
+
] });
|
|
156
|
+
}
|
|
157
|
+
export {
|
|
158
|
+
CopyToolSpecButton,
|
|
159
|
+
ExpandableSection,
|
|
160
|
+
ToolCard,
|
|
161
|
+
formatToolName,
|
|
162
|
+
normalizeResult,
|
|
163
|
+
truncate,
|
|
164
|
+
tryParseJson
|
|
165
|
+
};
|
|
166
|
+
//# sourceMappingURL=primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.js","sources":["../../src/tools/primitives.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The shared building blocks every SDK tool card is made of — the card shell\n * (`ToolCard`), the collapsible details section, and the result/text helpers.\n * Kept apart from the tool UI registry so a tool UI module can use them\n * without importing the registry that imports it back.\n */\nimport { useCallback, useState, type ElementType, type ReactNode } from \"react\";\nimport { formatToolName } from \"@athenaintel/agent-runtime\";\nimport {\n AlertCircleIcon,\n CheckCircle2Icon,\n ChevronDownIcon,\n ClipboardCopyIcon,\n LoaderIcon,\n} from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport { formatToolName };\n\n/** Parse JSON text into a record, or `null` when it is not one. */\nexport function tryParseJson(text: string): Record<string, unknown> | null {\n try {\n const parsed: unknown = JSON.parse(text);\n return typeof parsed === \"object\" && parsed !== null\n ? (parsed as Record<string, unknown>)\n : null;\n } catch {\n return null;\n }\n}\n\n/** Parse a tool result (handles nested `.result`, string-encoded JSON) into a record. */\nexport function normalizeResult(result: unknown): Record<string, unknown> | null {\n if (!result) return null;\n if (typeof result === \"string\") return tryParseJson(result);\n if (typeof result === \"object\") {\n const obj = result as Record<string, unknown>;\n if (typeof obj.result === \"string\") return tryParseJson(obj.result) ?? obj;\n return obj;\n }\n return null;\n}\n\n/** Truncate a string with an ellipsis. */\nexport function truncate(text: string, max: number): string {\n return text.length > max ? `${text.slice(0, max)}...` : text;\n}\n\nexport type ToolStatus = \"running\" | \"complete\" | \"incomplete\" | \"requires-action\";\n\nexport function ToolCard({\n icon: Icon,\n status,\n title,\n subtitle,\n toolName,\n badge,\n error,\n children,\n args,\n result,\n}: {\n icon: ElementType;\n status: ToolStatus;\n title: string;\n subtitle?: string;\n toolName?: string;\n badge?: string;\n error?: string | null;\n children?: ReactNode;\n args?: Record<string, unknown>;\n result?: unknown;\n}) {\n const isRunning = status === \"running\";\n const isComplete = status === \"complete\";\n const isError = status === \"incomplete\";\n\n return (\n <div className=\"my-3 w-full overflow-hidden rounded-xl border border-border/60 bg-background shadow-sm\">\n <div className=\"flex items-center gap-3 px-4 py-3\">\n <div\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-lg\",\n isRunning && \"bg-blue-50 text-blue-600\",\n isComplete && \"bg-emerald-50 text-emerald-600\",\n isError && \"bg-destructive/10 text-destructive\",\n )}\n >\n {isRunning ? (\n <LoaderIcon className=\"size-4 animate-spin\" />\n ) : isError ? (\n <AlertCircleIcon className=\"size-4\" />\n ) : (\n <Icon className=\"size-4\" />\n )}\n </div>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-[13px] font-medium text-foreground\">\n {title}\n </span>\n {isComplete && !error && (\n <CheckCircle2Icon className=\"size-3.5 text-emerald-500\" />\n )}\n </div>\n {subtitle && (\n <p className=\"truncate text-[12px] text-muted-foreground\">\n {subtitle}\n </p>\n )}\n </div>\n {toolName && (\n <span className=\"shrink-0 rounded-md bg-muted/60 px-1.5 py-0.5 text-[10px] font-mono text-muted-foreground\">\n {formatToolName(toolName)}\n </span>\n )}\n {badge && (\n <span className=\"shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground\">\n {badge}\n </span>\n )}\n {isRunning && (\n <div className=\"flex items-center gap-1.5\">\n <div className=\"h-1.5 w-10 animate-pulse rounded-full bg-blue-100\" />\n <div className=\"h-1.5 w-6 animate-pulse rounded-full bg-blue-100\" />\n </div>\n )}\n </div>\n\n {error && (\n <div className=\"border-t border-border/40 bg-destructive/10 px-4 py-2.5\">\n <p className=\"text-[12px] leading-relaxed text-destructive\">\n {error}\n </p>\n </div>\n )}\n\n {children}\n\n {/* Copy tool spec — subtle button at the bottom of every tool card */}\n {toolName && isComplete && (\n <CopyToolSpecButton toolName={toolName} args={args} result={result} />\n )}\n </div>\n );\n}\n\n/** Copies `{ tool_name, arguments, result }` as JSON — the tool spec a support ticket needs. */\nexport function CopyToolSpecButton({\n toolName,\n args,\n argsText,\n result,\n className,\n}: {\n toolName: string;\n args?: Record<string, unknown>;\n argsText?: string;\n result?: unknown;\n className?: string;\n}) {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(() => {\n const spec: Record<string, unknown> = { tool_name: toolName };\n if (args) spec.arguments = args;\n else if (argsText) spec.arguments = tryParseJson(argsText) ?? argsText;\n if (result !== undefined) {\n if (typeof result === \"string\") {\n const parsed = tryParseJson(result);\n spec.result = parsed ?? result;\n } else {\n spec.result = result;\n }\n }\n navigator.clipboard.writeText(JSON.stringify(spec, null, 2)).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n }, [toolName, args, argsText, result]);\n\n return (\n <div className={cn(\"flex justify-end px-3 pb-1.5\", className)}>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-muted-foreground/40 transition-colors hover:bg-muted/50 hover:text-muted-foreground\"\n title=\"Copy tool name, arguments, and result as JSON\"\n >\n <ClipboardCopyIcon className=\"size-2.5\" />\n {copied ? \"Copied!\" : toolName}\n </button>\n </div>\n );\n}\n\nexport function ExpandableSection({\n label,\n children,\n defaultOpen = false,\n}: {\n label?: string;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n const [expanded, setExpanded] = useState(defaultOpen);\n\n return (\n <div className=\"border-t border-border/40\">\n <button\n type=\"button\"\n onClick={() => setExpanded(!expanded)}\n className=\"flex w-full items-center gap-2 px-4 py-2 text-left text-[11px] font-medium text-muted-foreground transition-colors hover:bg-muted/30\"\n >\n <ChevronDownIcon\n className={cn(\n \"size-3.5 shrink-0 transition-transform duration-200\",\n !expanded && \"-rotate-90\",\n )}\n />\n <span>{expanded ? \"Hide details\" : (label ?? \"Show details\")}</span>\n </button>\n {expanded && (\n <div className=\"max-h-72 overflow-y-auto border-t border-border/40 bg-muted/10 px-4 py-3\">\n {children}\n </div>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,284 @@
|
|
|
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 assetUtils = require("./asset-utils.cjs");
|
|
7
|
+
const cnfast = require("cnfast");
|
|
8
|
+
function normalizeResult(result) {
|
|
9
|
+
if (typeof result === "string") return assetUtils.tryParseJson(result) ?? result;
|
|
10
|
+
if (typeof result === "object" && result !== null) {
|
|
11
|
+
const obj = result;
|
|
12
|
+
if (typeof obj.result === "string")
|
|
13
|
+
return assetUtils.tryParseJson(obj.result) ?? obj.result;
|
|
14
|
+
return obj;
|
|
15
|
+
}
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
function isErrorResult(resultText) {
|
|
19
|
+
return resultText.startsWith("Error reading asset") || resultText.startsWith("Error:");
|
|
20
|
+
}
|
|
21
|
+
function isReadAssetResultItem(value) {
|
|
22
|
+
if (!value || typeof value !== "object") return false;
|
|
23
|
+
const item = value;
|
|
24
|
+
return typeof item.asset_id === "string" || typeof item.format === "string" || typeof item.content === "string" || typeof item.success === "boolean" || typeof item.error === "string";
|
|
25
|
+
}
|
|
26
|
+
function getResultItems(value) {
|
|
27
|
+
if (Array.isArray(value)) return value.filter(isReadAssetResultItem);
|
|
28
|
+
if (isReadAssetResultItem(value)) return [value];
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
function getResultAssetIds(items) {
|
|
32
|
+
return items.map((item) => {
|
|
33
|
+
var _a;
|
|
34
|
+
return (_a = item.asset_id) == null ? void 0 : _a.split("?")[0];
|
|
35
|
+
}).filter((assetId) => !!assetId);
|
|
36
|
+
}
|
|
37
|
+
function getReviewedText(items) {
|
|
38
|
+
const textParts = items.filter(
|
|
39
|
+
(item) => item.success !== false && typeof item.content === "string" && item.content
|
|
40
|
+
).map((item) => item.content);
|
|
41
|
+
return textParts.length > 0 ? textParts.join("\n\n---\n\n") : null;
|
|
42
|
+
}
|
|
43
|
+
function getErrorText(items) {
|
|
44
|
+
const firstError = items.find((item) => item.success === false && item.error);
|
|
45
|
+
return (firstError == null ? void 0 : firstError.error) ?? null;
|
|
46
|
+
}
|
|
47
|
+
function isWorkbookFormat(value) {
|
|
48
|
+
if (!value || typeof value !== "object") return false;
|
|
49
|
+
const obj = value;
|
|
50
|
+
if (!obj.workbook || typeof obj.workbook !== "object") return false;
|
|
51
|
+
const workbook = obj.workbook;
|
|
52
|
+
return Array.isArray(workbook.sheets);
|
|
53
|
+
}
|
|
54
|
+
function parseA1Range(range) {
|
|
55
|
+
const match = range.match(/^([A-Z]+)(\d+)(?::([A-Z]+)(\d+))?$/i);
|
|
56
|
+
if (!match) return null;
|
|
57
|
+
const colToNumber = (letters) => letters.toUpperCase().split("").reduce((acc, char) => acc * 26 + (char.charCodeAt(0) - 64), 0);
|
|
58
|
+
return {
|
|
59
|
+
startCol: colToNumber(match[1]),
|
|
60
|
+
startRow: Number.parseInt(match[2], 10),
|
|
61
|
+
endCol: match[3] ? colToNumber(match[3]) : colToNumber(match[1]),
|
|
62
|
+
endRow: match[4] ? Number.parseInt(match[4], 10) : Number.parseInt(match[2], 10)
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function numberToColumn(index) {
|
|
66
|
+
let n = index;
|
|
67
|
+
let output = "";
|
|
68
|
+
while (n > 0) {
|
|
69
|
+
const remainder = (n - 1) % 26;
|
|
70
|
+
output = String.fromCharCode(65 + remainder) + output;
|
|
71
|
+
n = Math.floor((n - 1) / 26);
|
|
72
|
+
}
|
|
73
|
+
return output;
|
|
74
|
+
}
|
|
75
|
+
function formatCellValue(value) {
|
|
76
|
+
if (value === null || value === void 0) return "";
|
|
77
|
+
if (Array.isArray(value)) return String(value[0] ?? "");
|
|
78
|
+
return String(value);
|
|
79
|
+
}
|
|
80
|
+
function WorkbookPreview({ workbook }) {
|
|
81
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: workbook.workbook.sheets.map((sheet) => {
|
|
82
|
+
const parsedRange = parseA1Range(sheet.dimension);
|
|
83
|
+
if (!parsedRange) return null;
|
|
84
|
+
const maxRows = Math.min(
|
|
85
|
+
parsedRange.endRow - parsedRange.startRow + 1,
|
|
86
|
+
12
|
|
87
|
+
);
|
|
88
|
+
const maxCols = Math.min(
|
|
89
|
+
parsedRange.endCol - parsedRange.startCol + 1,
|
|
90
|
+
8
|
|
91
|
+
);
|
|
92
|
+
const header = [
|
|
93
|
+
"",
|
|
94
|
+
...Array.from(
|
|
95
|
+
{ length: maxCols },
|
|
96
|
+
(_, idx) => numberToColumn(parsedRange.startCol + idx)
|
|
97
|
+
)
|
|
98
|
+
];
|
|
99
|
+
const dataRows = [];
|
|
100
|
+
for (let row = 0; row < maxRows; row++) {
|
|
101
|
+
const rowNumber = parsedRange.startRow + row;
|
|
102
|
+
const values = [String(rowNumber)];
|
|
103
|
+
for (let col = 0; col < maxCols; col++) {
|
|
104
|
+
const colLabel = numberToColumn(parsedRange.startCol + col);
|
|
105
|
+
values.push(
|
|
106
|
+
formatCellValue(sheet.cells[`${colLabel}${rowNumber}`])
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
dataRows.push(values);
|
|
110
|
+
}
|
|
111
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
112
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-1 text-xs font-semibold text-muted-foreground", children: sheet.sheetName }),
|
|
113
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-x-auto rounded-md border", children: /* @__PURE__ */ jsxRuntime.jsx("table", { className: "w-full border-collapse text-[11px]", children: /* @__PURE__ */ jsxRuntime.jsxs("tbody", { children: [
|
|
114
|
+
/* @__PURE__ */ jsxRuntime.jsx("tr", { children: header.map((cell, i) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
115
|
+
"th",
|
|
116
|
+
{
|
|
117
|
+
className: "border bg-muted px-2 py-1 text-left font-medium text-muted-foreground",
|
|
118
|
+
children: cell
|
|
119
|
+
},
|
|
120
|
+
i
|
|
121
|
+
)) }),
|
|
122
|
+
dataRows.map((row, rowIdx) => /* @__PURE__ */ jsxRuntime.jsx("tr", { children: row.map(
|
|
123
|
+
(cell, cellIdx) => cellIdx === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
124
|
+
"th",
|
|
125
|
+
{
|
|
126
|
+
className: "border bg-muted px-2 py-1 text-left font-medium text-muted-foreground",
|
|
127
|
+
children: cell
|
|
128
|
+
},
|
|
129
|
+
cellIdx
|
|
130
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("td", { className: "border px-2 py-1", children: cell }, cellIdx)
|
|
131
|
+
) }, rowIdx))
|
|
132
|
+
] }) }) }),
|
|
133
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-1 text-[10px] text-muted-foreground", children: [
|
|
134
|
+
"Showing preview from ",
|
|
135
|
+
sheet.dimension
|
|
136
|
+
] })
|
|
137
|
+
] }, sheet.sheetName);
|
|
138
|
+
}) });
|
|
139
|
+
}
|
|
140
|
+
function TextContentPreview({ text }) {
|
|
141
|
+
const lines = text.split("\n");
|
|
142
|
+
const previewLines = lines.slice(0, 20);
|
|
143
|
+
const hasMore = lines.length > 20;
|
|
144
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("pre", { className: "whitespace-pre-wrap break-words text-[12px] leading-[1.6] text-muted-foreground", children: [
|
|
145
|
+
previewLines.join("\n"),
|
|
146
|
+
hasMore && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/70", children: `
|
|
147
|
+
... ${lines.length - 20} more lines` })
|
|
148
|
+
] });
|
|
149
|
+
}
|
|
150
|
+
const ReadAssetToolUIImpl = ({
|
|
151
|
+
args,
|
|
152
|
+
result,
|
|
153
|
+
status,
|
|
154
|
+
isError: isToolError
|
|
155
|
+
}) => {
|
|
156
|
+
var _a;
|
|
157
|
+
const [expanded, setExpanded] = react.useState(false);
|
|
158
|
+
const typedArgs = args;
|
|
159
|
+
const assetIds = (typedArgs == null ? void 0 : typedArgs.asset_ids) ?? [];
|
|
160
|
+
const firstAssetId = assetIds[0] ?? "";
|
|
161
|
+
const assetCount = assetIds.length;
|
|
162
|
+
const normalizedResult = react.useMemo(() => normalizeResult(result), [result]);
|
|
163
|
+
const resultItems = react.useMemo(
|
|
164
|
+
() => getResultItems(normalizedResult),
|
|
165
|
+
[normalizedResult]
|
|
166
|
+
);
|
|
167
|
+
const isRunning = (status == null ? void 0 : status.type) === "running";
|
|
168
|
+
const isComplete = (status == null ? void 0 : status.type) === "complete";
|
|
169
|
+
const isIncomplete = (status == null ? void 0 : status.type) === "incomplete";
|
|
170
|
+
const reviewedText = react.useMemo(
|
|
171
|
+
() => getReviewedText(resultItems),
|
|
172
|
+
[resultItems]
|
|
173
|
+
);
|
|
174
|
+
const resultText = typeof normalizedResult === "string" ? normalizedResult : reviewedText;
|
|
175
|
+
const workbookData = isWorkbookFormat(normalizedResult) ? normalizedResult : null;
|
|
176
|
+
const failedItems = resultItems.filter((item) => item.success === false);
|
|
177
|
+
const allFailed = resultItems.length > 0 && failedItems.length === resultItems.length;
|
|
178
|
+
const hasPartialIssues = failedItems.length > 0 && !allFailed;
|
|
179
|
+
const resultError = getErrorText(resultItems);
|
|
180
|
+
const hasError = isToolError || isIncomplete || allFailed || resultText != null && isErrorResult(resultText);
|
|
181
|
+
const resultAssetIds = getResultAssetIds(resultItems);
|
|
182
|
+
const resolvedAssetCount = Math.max(assetCount, new Set(resultAssetIds).size);
|
|
183
|
+
const primaryAsset = assetUtils.getAssetInfo(firstAssetId || resultAssetIds[0] || "");
|
|
184
|
+
const resultTitle = (_a = resultItems.find((item) => item.title)) == null ? void 0 : _a.title;
|
|
185
|
+
const isOpaqueId = (label) => /^asset_[0-9a-f-]{8,}/i.test(label);
|
|
186
|
+
const primaryLabel = resultTitle ?? (isOpaqueId(primaryAsset.name) ? "1 document" : primaryAsset.name);
|
|
187
|
+
const sourceList = resolvedAssetCount > 1 ? resultItems.filter((item) => typeof item.title === "string" && item.title !== "").map((item, index) => ({
|
|
188
|
+
key: item.asset_id ?? `${index}-${item.title}`,
|
|
189
|
+
label: item.title,
|
|
190
|
+
failed: item.success === false
|
|
191
|
+
})) : [];
|
|
192
|
+
const assetLabel = resolvedAssetCount > 1 ? `${resolvedAssetCount} documents` : primaryLabel;
|
|
193
|
+
const statusTitle = isRunning ? "Reviewing asset content" : hasError ? "Asset content review failed" : hasPartialIssues ? "Asset content reviewed with issues" : "Asset content review complete";
|
|
194
|
+
const badge = hasPartialIssues ? `${failedItems.length} ${failedItems.length === 1 ? "issue" : "issues"}` : resolvedAssetCount > 1 ? `${resolvedAssetCount} sources` : workbookData ? "Workbook review" : "Content review";
|
|
195
|
+
const hasContent = (isComplete || isIncomplete) && (resultText || workbookData);
|
|
196
|
+
const errorMessage = (status == null ? void 0 : status.type) === "incomplete" ? String(status.error ?? "Content review failed") : resultError ?? (hasError && resultText ? resultText : null);
|
|
197
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "my-1.5 w-full overflow-hidden rounded-xl border bg-background shadow-sm", children: [
|
|
198
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 px-4 py-3", children: [
|
|
199
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
200
|
+
"div",
|
|
201
|
+
{
|
|
202
|
+
className: cnfast.cn(
|
|
203
|
+
"flex size-9 shrink-0 items-center justify-center rounded-lg",
|
|
204
|
+
isRunning && "bg-blue-50 text-blue-600",
|
|
205
|
+
isComplete && !hasError && "bg-emerald-50 text-emerald-600",
|
|
206
|
+
isComplete && hasError && "bg-red-50 text-red-500",
|
|
207
|
+
isIncomplete && "bg-red-50 text-red-500",
|
|
208
|
+
!isRunning && !isComplete && !isIncomplete && "bg-muted text-muted-foreground"
|
|
209
|
+
),
|
|
210
|
+
children: isRunning ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LoaderIcon, { className: "size-4 animate-spin" }) : hasError || isIncomplete ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircleIcon, { className: "size-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.BookOpenIcon, { className: "size-4" })
|
|
211
|
+
}
|
|
212
|
+
),
|
|
213
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
214
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
215
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[13px] font-semibold", children: statusTitle }),
|
|
216
|
+
isComplete && !hasError && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2Icon, { className: "size-3.5 text-emerald-500" }),
|
|
217
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground", children: badge })
|
|
218
|
+
] }),
|
|
219
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
220
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FileTextIcon, { className: "size-4" }),
|
|
221
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "truncate text-[12px] text-muted-foreground", children: [
|
|
222
|
+
"Source: ",
|
|
223
|
+
assetLabel
|
|
224
|
+
] })
|
|
225
|
+
] })
|
|
226
|
+
] }),
|
|
227
|
+
isRunning && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
228
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-1.5 w-12 animate-pulse rounded-full bg-blue-100" }),
|
|
229
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-1.5 w-8 animate-pulse rounded-full bg-blue-100" })
|
|
230
|
+
] })
|
|
231
|
+
] }),
|
|
232
|
+
sourceList.length > 1 && /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "border-t px-4 py-2", children: [
|
|
233
|
+
sourceList.slice(0, 8).map((source) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
234
|
+
"li",
|
|
235
|
+
{
|
|
236
|
+
className: "flex items-center gap-2 py-0.5 text-[12px] text-muted-foreground",
|
|
237
|
+
children: [
|
|
238
|
+
source.failed ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircleIcon, { className: "size-3.5 shrink-0 text-red-400" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2Icon, { className: "size-3.5 shrink-0 text-emerald-500" }),
|
|
239
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children: source.label })
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
source.key
|
|
243
|
+
)),
|
|
244
|
+
sourceList.length > 8 && /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "py-0.5 text-[11px] text-muted-foreground/70", children: [
|
|
245
|
+
"and ",
|
|
246
|
+
sourceList.length - 8,
|
|
247
|
+
" more"
|
|
248
|
+
] })
|
|
249
|
+
] }),
|
|
250
|
+
hasError && errorMessage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t bg-red-50/50 px-4 py-2.5", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] leading-relaxed text-red-600", children: errorMessage }) }),
|
|
251
|
+
hasContent && !hasError && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t", children: [
|
|
252
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
253
|
+
"button",
|
|
254
|
+
{
|
|
255
|
+
type: "button",
|
|
256
|
+
onClick: () => setExpanded(!expanded),
|
|
257
|
+
className: "flex w-full items-center gap-2 px-4 py-2 text-left text-[11px] font-medium text-muted-foreground transition-colors hover:bg-muted/50",
|
|
258
|
+
children: [
|
|
259
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
260
|
+
lucideReact.ChevronDownIcon,
|
|
261
|
+
{
|
|
262
|
+
className: cnfast.cn(
|
|
263
|
+
"size-3.5 shrink-0 transition-transform duration-200",
|
|
264
|
+
!expanded && "-rotate-90"
|
|
265
|
+
)
|
|
266
|
+
}
|
|
267
|
+
),
|
|
268
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: expanded ? "Hide reviewed content" : "Show reviewed content" })
|
|
269
|
+
]
|
|
270
|
+
}
|
|
271
|
+
),
|
|
272
|
+
expanded && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-80 overflow-y-auto border-t bg-muted/30 px-4 py-3", children: [
|
|
273
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground", children: "Reviewed content" }),
|
|
274
|
+
workbookData ? /* @__PURE__ */ jsxRuntime.jsx(WorkbookPreview, { workbook: workbookData }) : resultText ? /* @__PURE__ */ jsxRuntime.jsx(TextContentPreview, { text: resultText }) : null
|
|
275
|
+
] })
|
|
276
|
+
] })
|
|
277
|
+
] });
|
|
278
|
+
};
|
|
279
|
+
const ReadAssetToolUI = react.memo(
|
|
280
|
+
ReadAssetToolUIImpl
|
|
281
|
+
);
|
|
282
|
+
ReadAssetToolUI.displayName = "ReadAssetToolUI";
|
|
283
|
+
exports.ReadAssetToolUI = ReadAssetToolUI;
|
|
284
|
+
//# sourceMappingURL=read-asset-tool-ui.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-asset-tool-ui.cjs","sources":["../../src/tools/read-asset-tool-ui.tsx"],"sourcesContent":["import { memo, useMemo, useState } from \"react\";\nimport type { ToolCallMessagePartComponent } from \"@assistant-ui/react\";\nimport {\n CheckCircle2Icon,\n ChevronDownIcon,\n FileTextIcon,\n LoaderIcon,\n AlertCircleIcon,\n BookOpenIcon,\n} from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\nimport { getAssetInfo, tryParseJson } from \"./asset-utils\";\n\nfunction normalizeResult(result: unknown): unknown {\n if (typeof result === \"string\") return tryParseJson(result) ?? result;\n if (typeof result === \"object\" && result !== null) {\n const obj = result as Record<string, unknown>;\n if (typeof obj.result === \"string\")\n return tryParseJson(obj.result) ?? obj.result;\n return obj;\n }\n return result;\n}\n\nfunction isErrorResult(resultText: string): boolean {\n return (\n resultText.startsWith(\"Error reading asset\") ||\n resultText.startsWith(\"Error:\")\n );\n}\n\ninterface ReadAssetResultItem {\n asset_id?: string;\n format?: string;\n content?: string;\n success?: boolean;\n error?: string;\n title?: string;\n}\n\nfunction isReadAssetResultItem(value: unknown): value is ReadAssetResultItem {\n if (!value || typeof value !== \"object\") return false;\n const item = value as Record<string, unknown>;\n return (\n typeof item.asset_id === \"string\" ||\n typeof item.format === \"string\" ||\n typeof item.content === \"string\" ||\n typeof item.success === \"boolean\" ||\n typeof item.error === \"string\"\n );\n}\n\nfunction getResultItems(value: unknown): ReadAssetResultItem[] {\n if (Array.isArray(value)) return value.filter(isReadAssetResultItem);\n if (isReadAssetResultItem(value)) return [value];\n return [];\n}\n\nfunction getResultAssetIds(items: ReadAssetResultItem[]): string[] {\n return items\n .map((item) => item.asset_id?.split(\"?\")[0])\n .filter((assetId): assetId is string => !!assetId);\n}\n\nfunction getReviewedText(items: ReadAssetResultItem[]): string | null {\n const textParts = items\n .filter(\n (item) =>\n item.success !== false &&\n typeof item.content === \"string\" &&\n item.content,\n )\n .map((item) => item.content as string);\n return textParts.length > 0 ? textParts.join(\"\\n\\n---\\n\\n\") : null;\n}\n\nfunction getErrorText(items: ReadAssetResultItem[]): string | null {\n const firstError = items.find((item) => item.success === false && item.error);\n return firstError?.error ?? null;\n}\n\n// --- Workbook preview ---\n\ntype WorkbookCellValue =\n | string\n | number\n | boolean\n | null\n | [string, unknown]\n | [string, unknown, string];\n\ninterface WorkbookSheet {\n sheetName: string;\n dimension: string;\n cells: Record<string, WorkbookCellValue>;\n}\n\ninterface WorkbookFormat {\n workbook: {\n sheets: WorkbookSheet[];\n };\n}\n\nfunction isWorkbookFormat(value: unknown): value is WorkbookFormat {\n if (!value || typeof value !== \"object\") return false;\n const obj = value as Record<string, unknown>;\n if (!obj.workbook || typeof obj.workbook !== \"object\") return false;\n const workbook = obj.workbook as Record<string, unknown>;\n return Array.isArray(workbook.sheets);\n}\n\nfunction parseA1Range(range: string) {\n const match = range.match(/^([A-Z]+)(\\d+)(?::([A-Z]+)(\\d+))?$/i);\n if (!match) return null;\n const colToNumber = (letters: string) =>\n letters\n .toUpperCase()\n .split(\"\")\n .reduce((acc, char) => acc * 26 + (char.charCodeAt(0) - 64), 0);\n return {\n startCol: colToNumber(match[1]),\n startRow: Number.parseInt(match[2], 10),\n endCol: match[3] ? colToNumber(match[3]) : colToNumber(match[1]),\n endRow: match[4]\n ? Number.parseInt(match[4], 10)\n : Number.parseInt(match[2], 10),\n };\n}\n\nfunction numberToColumn(index: number): string {\n let n = index;\n let output = \"\";\n while (n > 0) {\n const remainder = (n - 1) % 26;\n output = String.fromCharCode(65 + remainder) + output;\n n = Math.floor((n - 1) / 26);\n }\n return output;\n}\n\nfunction formatCellValue(value: WorkbookCellValue): string {\n if (value === null || value === undefined) return \"\";\n if (Array.isArray(value)) return String(value[0] ?? \"\");\n return String(value);\n}\n\nfunction WorkbookPreview({ workbook }: { workbook: WorkbookFormat }) {\n return (\n <div className=\"space-y-3\">\n {workbook.workbook.sheets.map((sheet) => {\n const parsedRange = parseA1Range(sheet.dimension);\n if (!parsedRange) return null;\n\n const maxRows = Math.min(\n parsedRange.endRow - parsedRange.startRow + 1,\n 12,\n );\n const maxCols = Math.min(\n parsedRange.endCol - parsedRange.startCol + 1,\n 8,\n );\n const header = [\n \"\",\n ...Array.from({ length: maxCols }, (_, idx) =>\n numberToColumn(parsedRange.startCol + idx),\n ),\n ];\n const dataRows: string[][] = [];\n for (let row = 0; row < maxRows; row++) {\n const rowNumber = parsedRange.startRow + row;\n const values = [String(rowNumber)];\n for (let col = 0; col < maxCols; col++) {\n const colLabel = numberToColumn(parsedRange.startCol + col);\n values.push(\n formatCellValue(sheet.cells[`${colLabel}${rowNumber}`]),\n );\n }\n dataRows.push(values);\n }\n\n return (\n <div key={sheet.sheetName}>\n <p className=\"mb-1 text-xs font-semibold text-muted-foreground\">\n {sheet.sheetName}\n </p>\n <div className=\"overflow-x-auto rounded-md border\">\n <table className=\"w-full border-collapse text-[11px]\">\n <tbody>\n <tr>\n {header.map((cell, i) => (\n <th\n key={i}\n className=\"border bg-muted px-2 py-1 text-left font-medium text-muted-foreground\"\n >\n {cell}\n </th>\n ))}\n </tr>\n {dataRows.map((row, rowIdx) => (\n <tr key={rowIdx}>\n {row.map((cell, cellIdx) =>\n cellIdx === 0 ? (\n <th\n key={cellIdx}\n className=\"border bg-muted px-2 py-1 text-left font-medium text-muted-foreground\"\n >\n {cell}\n </th>\n ) : (\n <td key={cellIdx} className=\"border px-2 py-1\">\n {cell}\n </td>\n ),\n )}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <p className=\"mt-1 text-[10px] text-muted-foreground\">\n Showing preview from {sheet.dimension}\n </p>\n </div>\n );\n })}\n </div>\n );\n}\n\nfunction TextContentPreview({ text }: { text: string }) {\n const lines = text.split(\"\\n\");\n const previewLines = lines.slice(0, 20);\n const hasMore = lines.length > 20;\n\n return (\n <pre className=\"whitespace-pre-wrap break-words text-[12px] leading-[1.6] text-muted-foreground\">\n {previewLines.join(\"\\n\")}\n {hasMore && (\n <span className=\"text-muted-foreground/70\">{`\\n... ${lines.length - 20} more lines`}</span>\n )}\n </pre>\n );\n}\n\n// --- Main component ---\n\nconst ReadAssetToolUIImpl: ToolCallMessagePartComponent = ({\n args,\n result,\n status,\n isError: isToolError,\n}) => {\n const [expanded, setExpanded] = useState(false);\n\n const typedArgs = args as Record<string, unknown> | undefined;\n const assetIds = (typedArgs?.asset_ids as string[]) ?? [];\n const firstAssetId = assetIds[0] ?? \"\";\n const assetCount = assetIds.length;\n\n const normalizedResult = useMemo(() => normalizeResult(result), [result]);\n const resultItems = useMemo(\n () => getResultItems(normalizedResult),\n [normalizedResult],\n );\n\n const isRunning = status?.type === \"running\";\n const isComplete = status?.type === \"complete\";\n const isIncomplete = status?.type === \"incomplete\";\n\n const reviewedText = useMemo(\n () => getReviewedText(resultItems),\n [resultItems],\n );\n const resultText =\n typeof normalizedResult === \"string\" ? normalizedResult : reviewedText;\n const workbookData = isWorkbookFormat(normalizedResult)\n ? normalizedResult\n : null;\n const failedItems = resultItems.filter((item) => item.success === false);\n const allFailed =\n resultItems.length > 0 && failedItems.length === resultItems.length;\n const hasPartialIssues = failedItems.length > 0 && !allFailed;\n const resultError = getErrorText(resultItems);\n const hasError =\n isToolError ||\n isIncomplete ||\n allFailed ||\n (resultText != null && isErrorResult(resultText));\n\n const resultAssetIds = getResultAssetIds(resultItems);\n const resolvedAssetCount = Math.max(assetCount, new Set(resultAssetIds).size);\n const primaryAsset = getAssetInfo(firstAssetId || resultAssetIds[0] || \"\");\n // Prefer human titles over raw asset ids — an `asset_<uuid>` label reads as\n // garble to non-technical users. Multi-reads get a per-source checklist of\n // titles below the header; when the runtime offloaded the result (no titles\n // survive, only ids), fall back to a plain count rather than a uuid.\n const resultTitle = resultItems.find((item) => item.title)?.title;\n const isOpaqueId = (label: string) => /^asset_[0-9a-f-]{8,}/i.test(label);\n const primaryLabel =\n resultTitle ??\n (isOpaqueId(primaryAsset.name) ? \"1 document\" : primaryAsset.name);\n const sourceList =\n resolvedAssetCount > 1\n ? resultItems\n .filter((item) => typeof item.title === \"string\" && item.title !== \"\")\n .map((item, index) => ({\n key: item.asset_id ?? `${index}-${item.title}`,\n label: item.title as string,\n failed: item.success === false,\n }))\n : [];\n const assetLabel =\n resolvedAssetCount > 1\n ? `${resolvedAssetCount} documents`\n : primaryLabel;\n const statusTitle = isRunning\n ? \"Reviewing asset content\"\n : hasError\n ? \"Asset content review failed\"\n : hasPartialIssues\n ? \"Asset content reviewed with issues\"\n : \"Asset content review complete\";\n const badge = hasPartialIssues\n ? `${failedItems.length} ${failedItems.length === 1 ? \"issue\" : \"issues\"}`\n : resolvedAssetCount > 1\n ? `${resolvedAssetCount} sources`\n : workbookData\n ? \"Workbook review\"\n : \"Content review\";\n\n const hasContent =\n (isComplete || isIncomplete) && (resultText || workbookData);\n const errorMessage =\n status?.type === \"incomplete\"\n ? String(status.error ?? \"Content review failed\")\n : (resultError ?? (hasError && resultText ? resultText : null));\n\n return (\n <div className=\"my-1.5 w-full overflow-hidden rounded-xl border bg-background shadow-sm\">\n {/* Header */}\n <div className=\"flex items-center gap-3 px-4 py-3\">\n <div\n className={cn(\n \"flex size-9 shrink-0 items-center justify-center rounded-lg\",\n isRunning && \"bg-blue-50 text-blue-600\",\n isComplete && !hasError && \"bg-emerald-50 text-emerald-600\",\n isComplete && hasError && \"bg-red-50 text-red-500\",\n isIncomplete && \"bg-red-50 text-red-500\",\n !isRunning &&\n !isComplete &&\n !isIncomplete &&\n \"bg-muted text-muted-foreground\",\n )}\n >\n {isRunning ? (\n <LoaderIcon className=\"size-4 animate-spin\" />\n ) : hasError || isIncomplete ? (\n <AlertCircleIcon className=\"size-4\" />\n ) : (\n <BookOpenIcon className=\"size-4\" />\n )}\n </div>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-[13px] font-semibold\">{statusTitle}</span>\n {isComplete && !hasError && (\n <CheckCircle2Icon className=\"size-3.5 text-emerald-500\" />\n )}\n <span className=\"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground\">\n {badge}\n </span>\n </div>\n <div className=\"flex items-center gap-1.5\">\n <FileTextIcon className=\"size-4\" />\n <span className=\"truncate text-[12px] text-muted-foreground\">\n Source: {assetLabel}\n </span>\n </div>\n </div>\n\n {/* Loading shimmer for streaming */}\n {isRunning && (\n <div className=\"flex items-center gap-1.5\">\n <div className=\"h-1.5 w-12 animate-pulse rounded-full bg-blue-100\" />\n <div className=\"h-1.5 w-8 animate-pulse rounded-full bg-blue-100\" />\n </div>\n )}\n </div>\n\n {/* Per-source checklist — actual titles with checkmarks (multi-read only;\n offloaded results carry no titles, so the header count stands alone) */}\n {sourceList.length > 1 && (\n <ul className=\"border-t px-4 py-2\">\n {sourceList.slice(0, 8).map((source) => (\n <li\n key={source.key}\n className=\"flex items-center gap-2 py-0.5 text-[12px] text-muted-foreground\"\n >\n {source.failed ? (\n <AlertCircleIcon className=\"size-3.5 shrink-0 text-red-400\" />\n ) : (\n <CheckCircle2Icon className=\"size-3.5 shrink-0 text-emerald-500\" />\n )}\n <span className=\"min-w-0 truncate\">{source.label}</span>\n </li>\n ))}\n {sourceList.length > 8 && (\n <li className=\"py-0.5 text-[11px] text-muted-foreground/70\">\n and {sourceList.length - 8} more\n </li>\n )}\n </ul>\n )}\n\n {/* Error message */}\n {hasError && errorMessage && (\n <div className=\"border-t bg-red-50/50 px-4 py-2.5\">\n <p className=\"text-[12px] leading-relaxed text-red-600\">\n {errorMessage}\n </p>\n </div>\n )}\n\n {/* Content preview (non-error) */}\n {hasContent && !hasError && (\n <div className=\"border-t\">\n <button\n type=\"button\"\n onClick={() => setExpanded(!expanded)}\n className=\"flex w-full items-center gap-2 px-4 py-2 text-left text-[11px] font-medium text-muted-foreground transition-colors hover:bg-muted/50\"\n >\n <ChevronDownIcon\n className={cn(\n \"size-3.5 shrink-0 transition-transform duration-200\",\n !expanded && \"-rotate-90\",\n )}\n />\n <span>\n {expanded ? \"Hide reviewed content\" : \"Show reviewed content\"}\n </span>\n </button>\n\n {expanded && (\n <div className=\"max-h-80 overflow-y-auto border-t bg-muted/30 px-4 py-3\">\n <div className=\"mb-2 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground\">\n Reviewed content\n </div>\n {workbookData ? (\n <WorkbookPreview workbook={workbookData} />\n ) : resultText ? (\n <TextContentPreview text={resultText} />\n ) : null}\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport const ReadAssetToolUI = memo(\n ReadAssetToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\n\nReadAssetToolUI.displayName = \"ReadAssetToolUI\";\n"],"names":["tryParseJson","jsx","jsxs","useState","useMemo","getAssetInfo","cn","LoaderIcon","AlertCircleIcon","BookOpenIcon","CheckCircle2Icon","FileTextIcon","ChevronDownIcon","memo"],"mappings":"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"}
|