@athenaintel/react 0.57.1 → 0.59.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 +778 -9
- package/dist/agent-runtime/src/addressed-agents.cjs +16 -0
- package/dist/agent-runtime/src/addressed-agents.cjs.map +1 -0
- package/dist/agent-runtime/src/addressed-agents.d.ts +30 -0
- package/dist/agent-runtime/src/addressed-agents.js +16 -0
- package/dist/agent-runtime/src/addressed-agents.js.map +1 -0
- package/dist/agent-runtime/src/answer-label.cjs +4 -3
- package/dist/agent-runtime/src/answer-label.cjs.map +1 -1
- package/dist/agent-runtime/src/answer-label.d.ts +13 -6
- package/dist/agent-runtime/src/answer-label.js +4 -3
- package/dist/agent-runtime/src/answer-label.js.map +1 -1
- package/dist/agent-runtime/src/chat-outbox-attachments.cjs.map +1 -1
- package/dist/agent-runtime/src/chat-outbox-attachments.d.ts +1 -1
- package/dist/agent-runtime/src/chat-outbox-attachments.js.map +1 -1
- package/dist/agent-runtime/src/chat-outbox-entry.cjs +101 -0
- package/dist/agent-runtime/src/chat-outbox-entry.cjs.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-entry.d.ts +99 -0
- package/dist/agent-runtime/src/chat-outbox-entry.js +101 -0
- package/dist/agent-runtime/src/chat-outbox-entry.js.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-legacy.cjs +252 -0
- package/dist/agent-runtime/src/chat-outbox-legacy.cjs.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-legacy.d.ts +96 -0
- package/dist/agent-runtime/src/chat-outbox-legacy.js +252 -0
- package/dist/agent-runtime/src/chat-outbox-legacy.js.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-policy.cjs +30 -0
- package/dist/agent-runtime/src/chat-outbox-policy.cjs.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-policy.d.ts +42 -0
- package/dist/agent-runtime/src/chat-outbox-policy.js +30 -0
- package/dist/agent-runtime/src/chat-outbox-policy.js.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-storage.cjs +306 -0
- package/dist/agent-runtime/src/chat-outbox-storage.cjs.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-storage.d.ts +194 -0
- package/dist/agent-runtime/src/chat-outbox-storage.js +306 -0
- package/dist/agent-runtime/src/chat-outbox-storage.js.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-thread.cjs +21 -94
- package/dist/agent-runtime/src/chat-outbox-thread.cjs.map +1 -1
- package/dist/agent-runtime/src/chat-outbox-thread.d.ts +22 -18
- package/dist/agent-runtime/src/chat-outbox-thread.js +21 -94
- package/dist/agent-runtime/src/chat-outbox-thread.js.map +1 -1
- package/dist/agent-runtime/src/chat-outbox.cjs +492 -547
- package/dist/agent-runtime/src/chat-outbox.cjs.map +1 -1
- package/dist/agent-runtime/src/chat-outbox.d.ts +110 -142
- package/dist/agent-runtime/src/chat-outbox.js +492 -547
- package/dist/agent-runtime/src/chat-outbox.js.map +1 -1
- package/dist/agent-runtime/src/composer-markdown.cjs.map +1 -1
- package/dist/agent-runtime/src/composer-markdown.d.ts +1 -1
- package/dist/agent-runtime/src/composer-markdown.js.map +1 -1
- package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs +3 -1
- package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -1
- package/dist/agent-runtime/src/deep-agent-transport-recipe.d.ts +8 -1
- package/dist/agent-runtime/src/deep-agent-transport-recipe.js +3 -1
- package/dist/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -1
- package/dist/agent-runtime/src/dictation-preferences.d.ts +356 -0
- package/dist/agent-runtime/src/dictation-record.d.ts +279 -0
- package/dist/agent-runtime/src/dictation-session.d.ts +106 -7
- package/dist/agent-runtime/src/dictation-snippets.d.ts +9 -0
- package/dist/agent-runtime/src/dictation-transfer.d.ts +142 -0
- package/dist/agent-runtime/src/edit-command.cjs.map +1 -1
- package/dist/agent-runtime/src/edit-command.d.ts +1 -1
- package/dist/agent-runtime/src/edit-command.js.map +1 -1
- package/dist/agent-runtime/src/errors.cjs +1 -0
- package/dist/agent-runtime/src/errors.cjs.map +1 -1
- package/dist/agent-runtime/src/errors.js +1 -0
- package/dist/agent-runtime/src/errors.js.map +1 -1
- package/dist/agent-runtime/src/generated/runconfig-contract.cjs +24 -0
- package/dist/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
- package/dist/agent-runtime/src/generated/runconfig-contract.d.ts +3 -3
- package/dist/agent-runtime/src/generated/runconfig-contract.js +24 -0
- package/dist/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
- package/dist/agent-runtime/src/index.d.ts +14 -8
- package/dist/agent-runtime/src/lane-follow.cjs +289 -0
- package/dist/agent-runtime/src/lane-follow.cjs.map +1 -0
- package/dist/agent-runtime/src/lane-follow.js +289 -0
- package/dist/agent-runtime/src/lane-follow.js.map +1 -0
- package/dist/agent-runtime/src/lane-images.cjs +387 -0
- package/dist/agent-runtime/src/lane-images.cjs.map +1 -0
- package/dist/agent-runtime/src/lane-images.js +387 -0
- package/dist/agent-runtime/src/lane-images.js.map +1 -0
- package/dist/agent-runtime/src/message-window.js +1 -1
- package/dist/agent-runtime/src/messages.cjs +19 -1
- package/dist/agent-runtime/src/messages.cjs.map +1 -1
- package/dist/agent-runtime/src/messages.d.ts +8 -0
- package/dist/agent-runtime/src/messages.js +21 -3
- package/dist/agent-runtime/src/messages.js.map +1 -1
- package/dist/agent-runtime/src/named-agents.cjs +301 -0
- package/dist/agent-runtime/src/named-agents.cjs.map +1 -0
- package/dist/agent-runtime/src/named-agents.d.ts +246 -0
- package/dist/agent-runtime/src/named-agents.js +301 -0
- package/dist/agent-runtime/src/named-agents.js.map +1 -0
- package/dist/agent-runtime/src/offline-status.cjs.map +1 -1
- package/dist/agent-runtime/src/offline-status.d.ts +66 -2
- package/dist/agent-runtime/src/offline-status.js.map +1 -1
- package/dist/agent-runtime/src/ptc-subcalls.cjs +41 -0
- package/dist/agent-runtime/src/ptc-subcalls.cjs.map +1 -0
- package/dist/agent-runtime/src/ptc-subcalls.js +41 -0
- package/dist/agent-runtime/src/ptc-subcalls.js.map +1 -0
- package/dist/agent-runtime/src/queue.cjs +2 -2
- package/dist/agent-runtime/src/queue.cjs.map +1 -1
- package/dist/agent-runtime/src/queue.d.ts +20 -25
- package/dist/agent-runtime/src/queue.js +2 -2
- package/dist/agent-runtime/src/queue.js.map +1 -1
- package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs +314 -84
- package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
- package/dist/agent-runtime/src/quota-safe-local-storage-session.d.ts +137 -40
- package/dist/agent-runtime/src/quota-safe-local-storage-session.js +318 -88
- package/dist/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -1
- package/dist/agent-runtime/src/run-send.cjs +54 -0
- package/dist/agent-runtime/src/run-send.cjs.map +1 -0
- package/dist/agent-runtime/src/run-send.d.ts +51 -0
- package/dist/agent-runtime/src/run-send.js +54 -0
- package/dist/agent-runtime/src/run-send.js.map +1 -0
- package/dist/agent-runtime/src/running-tool-placeholder.cjs +6 -0
- package/dist/agent-runtime/src/running-tool-placeholder.cjs.map +1 -1
- package/dist/agent-runtime/src/running-tool-placeholder.js +6 -0
- package/dist/agent-runtime/src/running-tool-placeholder.js.map +1 -1
- package/dist/agent-runtime/src/runtime.d.ts +9 -5
- package/dist/agent-runtime/src/sealed-idb.cjs +64 -0
- package/dist/agent-runtime/src/sealed-idb.cjs.map +1 -1
- package/dist/agent-runtime/src/sealed-idb.d.ts +16 -0
- package/dist/agent-runtime/src/sealed-idb.js +64 -0
- package/dist/agent-runtime/src/sealed-idb.js.map +1 -1
- package/dist/agent-runtime/src/send-recovery.cjs +90 -118
- package/dist/agent-runtime/src/send-recovery.cjs.map +1 -1
- package/dist/agent-runtime/src/send-recovery.d.ts +25 -29
- package/dist/agent-runtime/src/send-recovery.js +90 -118
- package/dist/agent-runtime/src/send-recovery.js.map +1 -1
- package/dist/agent-runtime/src/statewire-diagnostics.d.ts +4 -1
- package/dist/agent-runtime/src/statewire-held-sends.cjs +191 -0
- package/dist/agent-runtime/src/statewire-held-sends.cjs.map +1 -0
- package/dist/agent-runtime/src/statewire-held-sends.d.ts +119 -0
- package/dist/agent-runtime/src/statewire-held-sends.js +191 -0
- package/dist/agent-runtime/src/statewire-held-sends.js.map +1 -0
- package/dist/agent-runtime/src/statewire-state.cjs +4 -0
- package/dist/agent-runtime/src/statewire-state.cjs.map +1 -1
- package/dist/agent-runtime/src/statewire-state.js +4 -0
- package/dist/agent-runtime/src/statewire-state.js.map +1 -1
- package/dist/agent-runtime/src/statewire-transport.cjs +8 -2
- package/dist/agent-runtime/src/statewire-transport.cjs.map +1 -1
- package/dist/agent-runtime/src/statewire-transport.d.ts +14 -5
- package/dist/agent-runtime/src/statewire-transport.js +8 -2
- package/dist/agent-runtime/src/statewire-transport.js.map +1 -1
- package/dist/agent-runtime/src/subagent-transcripts.cjs +1 -23
- package/dist/agent-runtime/src/subagent-transcripts.cjs.map +1 -1
- package/dist/agent-runtime/src/subagent-transcripts.js +3 -25
- package/dist/agent-runtime/src/subagent-transcripts.js.map +1 -1
- package/dist/agent-runtime/src/subagents.cjs +22 -29
- package/dist/agent-runtime/src/subagents.cjs.map +1 -1
- package/dist/agent-runtime/src/subagents.js +23 -30
- package/dist/agent-runtime/src/subagents.js.map +1 -1
- package/dist/agent-runtime/src/thread-extras.cjs +27 -19
- package/dist/agent-runtime/src/thread-extras.cjs.map +1 -1
- package/dist/agent-runtime/src/thread-extras.d.ts +19 -6
- package/dist/agent-runtime/src/thread-extras.js +27 -19
- package/dist/agent-runtime/src/thread-extras.js.map +1 -1
- package/dist/agent-runtime/src/thread-handoff-flow-machine.d.ts +8 -8
- package/dist/agent-runtime/src/tool-metadata.cjs +12 -0
- package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-metadata.js +12 -0
- package/dist/agent-runtime/src/tool-metadata.js.map +1 -1
- package/dist/agent-runtime/src/tool-names.cjs +21 -0
- package/dist/agent-runtime/src/tool-names.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-names.d.ts +8 -0
- package/dist/agent-runtime/src/tool-names.js +21 -0
- package/dist/agent-runtime/src/tool-names.js.map +1 -1
- package/dist/agent-runtime/src/typed-interrupt-kinds.cjs +247 -0
- package/dist/agent-runtime/src/typed-interrupt-kinds.cjs.map +1 -0
- package/dist/agent-runtime/src/typed-interrupt-kinds.d.ts +173 -0
- package/dist/agent-runtime/src/typed-interrupt-kinds.js +247 -0
- package/dist/agent-runtime/src/typed-interrupt-kinds.js.map +1 -0
- package/dist/agent-runtime/src/typed-interrupts.cjs +48 -0
- package/dist/agent-runtime/src/typed-interrupts.cjs.map +1 -0
- package/dist/agent-runtime/src/typed-interrupts.d.ts +75 -0
- package/dist/agent-runtime/src/typed-interrupts.js +48 -0
- package/dist/agent-runtime/src/typed-interrupts.js.map +1 -0
- package/dist/agent-runtime/src/types.d.ts +1 -1
- package/dist/agent-runtime/src/use-conversation-list.cjs +1 -0
- package/dist/agent-runtime/src/use-conversation-list.cjs.map +1 -1
- package/dist/agent-runtime/src/use-conversation-list.d.ts +7 -0
- package/dist/agent-runtime/src/use-conversation-list.js +1 -0
- package/dist/agent-runtime/src/use-conversation-list.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs +46 -29
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.d.ts +14 -22
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js +46 -29
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-runtime.cjs +78 -14
- package/dist/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-runtime.d.ts +34 -7
- package/dist/agent-runtime/src/use-deep-agent-runtime.js +79 -15
- package/dist/agent-runtime/src/use-deep-agent-runtime.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-thread.cjs +16 -1
- package/dist/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-thread.d.ts +7 -2
- package/dist/agent-runtime/src/use-deep-agent-thread.js +16 -1
- package/dist/agent-runtime/src/use-deep-agent-thread.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-voice.cjs +30 -4
- package/dist/agent-runtime/src/use-deep-agent-voice.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-voice.d.ts +22 -4
- package/dist/agent-runtime/src/use-deep-agent-voice.js +30 -4
- package/dist/agent-runtime/src/use-deep-agent-voice.js.map +1 -1
- package/dist/agent-runtime/src/withdrawn-turns.d.ts +5 -4
- package/dist/agent-runtime/src/word-device-fit.d.ts +174 -0
- package/dist/agent-runtime/src/work-in.d.ts +127 -0
- package/dist/assets/AthenaAssetEmbed.cjs.map +1 -1
- package/dist/assets/AthenaAssetEmbed.d.ts +6 -1
- package/dist/assets/AthenaAssetEmbed.js.map +1 -1
- package/dist/assets/asset-panel-store.cjs +13 -5
- package/dist/assets/asset-panel-store.cjs.map +1 -1
- package/dist/assets/asset-panel-store.d.ts +33 -2
- package/dist/assets/asset-panel-store.js +13 -5
- package/dist/assets/asset-panel-store.js.map +1 -1
- package/dist/auth/AthenaCredentialSourceContext.cjs +11 -0
- package/dist/auth/AthenaCredentialSourceContext.cjs.map +1 -1
- package/dist/auth/AthenaCredentialSourceContext.d.ts +6 -0
- package/dist/auth/AthenaCredentialSourceContext.js +11 -0
- package/dist/auth/AthenaCredentialSourceContext.js.map +1 -1
- package/dist/auth/account-identity.cjs +13 -2
- package/dist/auth/account-identity.cjs.map +1 -1
- package/dist/auth/account-identity.d.ts +9 -0
- package/dist/auth/account-identity.js +13 -2
- package/dist/auth/account-identity.js.map +1 -1
- package/dist/auth/credential-source.cjs +20 -4
- package/dist/auth/credential-source.cjs.map +1 -1
- package/dist/auth/credential-source.d.ts +9 -0
- package/dist/auth/credential-source.js +20 -4
- package/dist/auth/credential-source.js.map +1 -1
- package/dist/catalog/chat-pickers.cjs +31 -0
- package/dist/catalog/chat-pickers.cjs.map +1 -1
- package/dist/catalog/chat-pickers.d.ts +17 -0
- package/dist/catalog/chat-pickers.js +33 -2
- package/dist/catalog/chat-pickers.js.map +1 -1
- package/dist/catalog/runtime-catalog.cjs +63 -3
- package/dist/catalog/runtime-catalog.cjs.map +1 -1
- package/dist/catalog/runtime-catalog.d.ts +63 -3
- package/dist/catalog/runtime-catalog.js +64 -4
- package/dist/catalog/runtime-catalog.js.map +1 -1
- package/dist/chat/AthenaChat.cjs +337 -99
- package/dist/chat/AthenaChat.cjs.map +1 -1
- package/dist/chat/AthenaChat.d.ts +80 -4
- package/dist/chat/AthenaChat.js +337 -99
- package/dist/chat/AthenaChat.js.map +1 -1
- package/dist/chat/StatewireApprovalCard.cjs +35 -5
- package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
- package/dist/chat/StatewireApprovalCard.d.ts +55 -2
- package/dist/chat/StatewireApprovalCard.js +37 -7
- package/dist/chat/StatewireApprovalCard.js.map +1 -1
- package/dist/chat/StatewireQueuedMessages.cjs +17 -2
- package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
- package/dist/chat/StatewireQueuedMessages.d.ts +8 -45
- package/dist/chat/StatewireQueuedMessages.js +18 -3
- package/dist/chat/StatewireQueuedMessages.js.map +1 -1
- package/dist/chat/chat-agent-mentions.cjs +70 -0
- package/dist/chat/chat-agent-mentions.cjs.map +1 -0
- package/dist/chat/chat-agent-mentions.d.ts +13 -0
- package/dist/chat/chat-agent-mentions.js +70 -0
- package/dist/chat/chat-agent-mentions.js.map +1 -0
- package/dist/chat/composer-actions.cjs +12 -0
- package/dist/chat/composer-actions.cjs.map +1 -0
- package/dist/chat/composer-actions.d.ts +22 -0
- package/dist/chat/composer-actions.js +12 -0
- package/dist/chat/composer-actions.js.map +1 -0
- package/dist/chat/follow-up-suggestions.cjs +185 -0
- package/dist/chat/follow-up-suggestions.cjs.map +1 -0
- package/dist/chat/follow-up-suggestions.d.ts +64 -0
- package/dist/chat/follow-up-suggestions.js +185 -0
- package/dist/chat/follow-up-suggestions.js.map +1 -0
- package/dist/chat/super-grouping/ToolTimeline.cjs +4 -3
- package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
- package/dist/chat/super-grouping/ToolTimeline.d.ts +7 -3
- package/dist/chat/super-grouping/ToolTimeline.js +4 -3
- package/dist/chat/super-grouping/ToolTimeline.js.map +1 -1
- package/dist/chat/turn-changes.cjs +284 -0
- package/dist/chat/turn-changes.cjs.map +1 -0
- package/dist/chat/turn-changes.d.ts +130 -0
- package/dist/chat/turn-changes.js +284 -0
- package/dist/chat/turn-changes.js.map +1 -0
- package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs +31 -0
- package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs.map +1 -0
- package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.d.ts +31 -0
- package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js +31 -0
- package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js.map +1 -0
- package/dist/chat/typed-interrupts/approval-cards.cjs +250 -0
- package/dist/chat/typed-interrupts/approval-cards.cjs.map +1 -0
- package/dist/chat/typed-interrupts/approval-cards.d.ts +22 -0
- package/dist/chat/typed-interrupts/approval-cards.js +250 -0
- package/dist/chat/typed-interrupts/approval-cards.js.map +1 -0
- package/dist/chat/typed-interrupts/form-cards.cjs +289 -0
- package/dist/chat/typed-interrupts/form-cards.cjs.map +1 -0
- package/dist/chat/typed-interrupts/form-cards.d.ts +6 -0
- package/dist/chat/typed-interrupts/form-cards.js +289 -0
- package/dist/chat/typed-interrupts/form-cards.js.map +1 -0
- package/dist/chat/typed-interrupts/interrupt-card-shell.cjs +182 -0
- package/dist/chat/typed-interrupts/interrupt-card-shell.cjs.map +1 -0
- package/dist/chat/typed-interrupts/interrupt-card-shell.d.ts +47 -0
- package/dist/chat/typed-interrupts/interrupt-card-shell.js +182 -0
- package/dist/chat/typed-interrupts/interrupt-card-shell.js.map +1 -0
- package/dist/chat/typed-interrupts/json-schema-form.cjs +388 -0
- package/dist/chat/typed-interrupts/json-schema-form.cjs.map +1 -0
- package/dist/chat/typed-interrupts/json-schema-form.d.ts +33 -0
- package/dist/chat/typed-interrupts/json-schema-form.js +388 -0
- package/dist/chat/typed-interrupts/json-schema-form.js.map +1 -0
- package/dist/chat/typed-interrupts/questionnaire-card.cjs +449 -0
- package/dist/chat/typed-interrupts/questionnaire-card.cjs.map +1 -0
- package/dist/chat/typed-interrupts/questionnaire-card.d.ts +20 -0
- package/dist/chat/typed-interrupts/questionnaire-card.js +449 -0
- package/dist/chat/typed-interrupts/questionnaire-card.js.map +1 -0
- package/dist/chat/typed-interrupts/request-file-card.cjs +159 -0
- package/dist/chat/typed-interrupts/request-file-card.cjs.map +1 -0
- package/dist/chat/typed-interrupts/request-file-card.d.ts +2 -0
- package/dist/chat/typed-interrupts/request-file-card.js +159 -0
- package/dist/chat/typed-interrupts/request-file-card.js.map +1 -0
- package/dist/chat/typed-interrupts/toolkit-selection-card.cjs +189 -0
- package/dist/chat/typed-interrupts/toolkit-selection-card.cjs.map +1 -0
- package/dist/chat/typed-interrupts/toolkit-selection-card.d.ts +23 -0
- package/dist/chat/typed-interrupts/toolkit-selection-card.js +189 -0
- package/dist/chat/typed-interrupts/toolkit-selection-card.js.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-body.cjs +26 -0
- package/dist/chat/typed-interrupts/typed-interrupt-body.cjs.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-body.d.ts +3 -0
- package/dist/chat/typed-interrupts/typed-interrupt-body.js +26 -0
- package/dist/chat/typed-interrupts/typed-interrupt-body.js.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs +105 -0
- package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-graphql.d.ts +29 -0
- package/dist/chat/typed-interrupts/typed-interrupt-graphql.js +105 -0
- package/dist/chat/typed-interrupts/typed-interrupt-graphql.js.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs +70 -0
- package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-notice.d.ts +45 -0
- package/dist/chat/typed-interrupts/typed-interrupt-notice.js +70 -0
- package/dist/chat/typed-interrupts/typed-interrupt-notice.js.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs +76 -0
- package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-panel.d.ts +11 -0
- package/dist/chat/typed-interrupts/typed-interrupt-panel.js +76 -0
- package/dist/chat/typed-interrupts/typed-interrupt-panel.js.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-types.d.ts +46 -0
- package/dist/chat/typed-interrupts/use-interrupt-draft.cjs +106 -0
- package/dist/chat/typed-interrupts/use-interrupt-draft.cjs.map +1 -0
- package/dist/chat/typed-interrupts/use-interrupt-draft.d.ts +29 -0
- package/dist/chat/typed-interrupts/use-interrupt-draft.js +106 -0
- package/dist/chat/typed-interrupts/use-interrupt-draft.js.map +1 -0
- package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs +231 -0
- package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs.map +1 -0
- package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.d.ts +66 -0
- package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js +231 -0
- package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js.map +1 -0
- package/dist/chat-ui/composer/composer-named-agents.cjs +13 -0
- package/dist/chat-ui/composer/composer-named-agents.cjs.map +1 -0
- package/dist/chat-ui/composer/composer-named-agents.d.ts +20 -0
- package/dist/chat-ui/composer/composer-named-agents.js +13 -0
- package/dist/chat-ui/composer/composer-named-agents.js.map +1 -0
- package/dist/chat-ui/composer/slash-command-menu.cjs +143 -0
- package/dist/chat-ui/composer/slash-command-menu.cjs.map +1 -0
- package/dist/chat-ui/composer/slash-command-menu.d.ts +19 -0
- package/dist/chat-ui/composer/slash-command-menu.js +143 -0
- package/dist/chat-ui/composer/slash-command-menu.js.map +1 -0
- package/dist/chat-ui/composer/slash-commands-extension.cjs +51 -0
- package/dist/chat-ui/composer/slash-commands-extension.cjs.map +1 -0
- package/dist/chat-ui/composer/slash-commands-extension.d.ts +39 -0
- package/dist/chat-ui/composer/slash-commands-extension.js +51 -0
- package/dist/chat-ui/composer/slash-commands-extension.js.map +1 -0
- package/dist/chat-ui/composer/slash-commands.cjs +74 -0
- package/dist/chat-ui/composer/slash-commands.cjs.map +1 -0
- package/dist/chat-ui/composer/slash-commands.d.ts +82 -0
- package/dist/chat-ui/composer/slash-commands.js +74 -0
- package/dist/chat-ui/composer/slash-commands.js.map +1 -0
- package/dist/chat-ui/composer/tiptap-composer.cjs +135 -9
- package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
- package/dist/chat-ui/composer/tiptap-composer.d.ts +61 -2
- package/dist/chat-ui/composer/tiptap-composer.js +135 -9
- package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
- package/dist/chat-ui/index.cjs +3 -0
- package/dist/chat-ui/index.cjs.map +1 -1
- package/dist/chat-ui/index.d.ts +3 -2
- package/dist/chat-ui/index.js +3 -0
- package/dist/chat-ui/index.js.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.cjs +1 -1
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.js +2 -2
- package/dist/chat-ui/mentions/mention-chip.js.map +1 -1
- package/dist/chat-ui/mentions/mention-extension.cjs +8 -1
- package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -1
- package/dist/chat-ui/mentions/mention-extension.js +8 -1
- package/dist/chat-ui/mentions/mention-extension.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +1 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +1 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +2 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +3 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +36 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +42 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js +36 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +235 -19
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +88 -10
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js +236 -20
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/types.d.ts +27 -1
- package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +56 -5
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +26 -6
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +57 -6
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +34 -17
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.d.ts +19 -1
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +35 -18
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -1
- package/dist/chat-ui/statewire.d.ts +1 -1
- package/dist/chat-ui/thread/statewire-history-edge.cjs +15 -0
- package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
- package/dist/chat-ui/thread/statewire-history-edge.d.ts +4 -1
- package/dist/chat-ui/thread/statewire-history-edge.js +15 -0
- package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
- package/dist/collab/client.cjs +17 -5
- package/dist/collab/client.cjs.map +1 -1
- package/dist/collab/client.d.ts +22 -7
- package/dist/collab/client.js +17 -5
- package/dist/collab/client.js.map +1 -1
- package/dist/composer/ComposerAttachedReferences.cjs +119 -0
- package/dist/composer/ComposerAttachedReferences.cjs.map +1 -0
- package/dist/composer/ComposerAttachedReferences.d.ts +26 -0
- package/dist/composer/ComposerAttachedReferences.js +119 -0
- package/dist/composer/ComposerAttachedReferences.js.map +1 -0
- package/dist/composer/ComposerNamedAgents.cjs +63 -0
- package/dist/composer/ComposerNamedAgents.cjs.map +1 -0
- package/dist/composer/ComposerNamedAgents.d.ts +16 -0
- package/dist/composer/ComposerNamedAgents.js +63 -0
- package/dist/composer/ComposerNamedAgents.js.map +1 -0
- package/dist/composer/attached-references.cjs +159 -0
- package/dist/composer/attached-references.cjs.map +1 -0
- package/dist/composer/attached-references.d.ts +86 -0
- package/dist/composer/attached-references.js +159 -0
- package/dist/composer/attached-references.js.map +1 -0
- package/dist/composer/build-composed-message.cjs +14 -7
- package/dist/composer/build-composed-message.cjs.map +1 -1
- package/dist/composer/build-composed-message.d.ts +6 -1
- package/dist/composer/build-composed-message.js +14 -7
- package/dist/composer/build-composed-message.js.map +1 -1
- package/dist/composer/composer-handoff.cjs +6 -2
- package/dist/composer/composer-handoff.cjs.map +1 -1
- package/dist/composer/composer-handoff.d.ts +7 -1
- package/dist/composer/composer-handoff.js +6 -2
- package/dist/composer/composer-handoff.js.map +1 -1
- package/dist/composer/folder-upload.cjs +149 -0
- package/dist/composer/folder-upload.cjs.map +1 -0
- package/dist/composer/folder-upload.d.ts +79 -0
- package/dist/composer/folder-upload.js +149 -0
- package/dist/composer/folder-upload.js.map +1 -0
- package/dist/composer/index.d.ts +1 -1
- package/dist/composer/useAttachToChat.cjs +35 -0
- package/dist/composer/useAttachToChat.cjs.map +1 -0
- package/dist/composer/useAttachToChat.d.ts +54 -0
- package/dist/composer/useAttachToChat.js +35 -0
- package/dist/composer/useAttachToChat.js.map +1 -0
- package/dist/composer/useAttachedReferencesComposerProps.cjs +19 -0
- package/dist/composer/useAttachedReferencesComposerProps.cjs.map +1 -0
- package/dist/composer/useAttachedReferencesComposerProps.d.ts +12 -0
- package/dist/composer/useAttachedReferencesComposerProps.js +19 -0
- package/dist/composer/useAttachedReferencesComposerProps.js.map +1 -0
- package/dist/composer/useFileUpload.cjs +95 -7
- package/dist/composer/useFileUpload.cjs.map +1 -1
- package/dist/composer/useFileUpload.d.ts +21 -2
- package/dist/composer/useFileUpload.js +95 -7
- package/dist/composer/useFileUpload.js.map +1 -1
- package/dist/data/athena-api-error.cjs +125 -0
- package/dist/data/athena-api-error.cjs.map +1 -0
- package/dist/data/athena-api-error.d.ts +96 -0
- package/dist/data/athena-api-error.js +125 -0
- package/dist/data/athena-api-error.js.map +1 -0
- package/dist/data/athena-data-client.cjs +106 -0
- package/dist/data/athena-data-client.cjs.map +1 -0
- package/dist/data/athena-data-client.d.ts +74 -0
- package/dist/data/athena-data-client.js +106 -0
- package/dist/data/athena-data-client.js.map +1 -0
- package/dist/data/athena-member.cjs +93 -0
- package/dist/data/athena-member.cjs.map +1 -0
- package/dist/data/athena-member.d.ts +125 -0
- package/dist/data/athena-member.js +93 -0
- package/dist/data/athena-member.js.map +1 -0
- package/dist/data/athena-request.cjs +458 -0
- package/dist/data/athena-request.cjs.map +1 -0
- package/dist/data/athena-request.d.ts +120 -0
- package/dist/data/athena-request.js +458 -0
- package/dist/data/athena-request.js.map +1 -0
- package/dist/data/use-athena-fetch.cjs +14 -0
- package/dist/data/use-athena-fetch.cjs.map +1 -0
- package/dist/data/use-athena-fetch.d.ts +19 -0
- package/dist/data/use-athena-fetch.js +14 -0
- package/dist/data/use-athena-fetch.js.map +1 -0
- package/dist/data/use-athena-graphql.cjs +66 -0
- package/dist/data/use-athena-graphql.cjs.map +1 -0
- package/dist/data/use-athena-graphql.d.ts +56 -0
- package/dist/data/use-athena-graphql.js +66 -0
- package/dist/data/use-athena-graphql.js.map +1 -0
- package/dist/data/use-athena-rest.cjs +33 -0
- package/dist/data/use-athena-rest.cjs.map +1 -0
- package/dist/data/use-athena-rest.d.ts +21 -0
- package/dist/data/use-athena-rest.js +33 -0
- package/dist/data/use-athena-rest.js.map +1 -0
- package/dist/data/use-semantic-query.cjs +44 -0
- package/dist/data/use-semantic-query.cjs.map +1 -0
- package/dist/data/use-semantic-query.d.ts +92 -0
- package/dist/data/use-semantic-query.js +44 -0
- package/dist/data/use-semantic-query.js.map +1 -0
- package/dist/diagnostics/athena-diagnostics.cjs.map +1 -1
- package/dist/diagnostics/athena-diagnostics.d.ts +5 -1
- package/dist/diagnostics/athena-diagnostics.js.map +1 -1
- package/dist/diagnostics/errors.cjs +7 -0
- package/dist/diagnostics/errors.cjs.map +1 -1
- package/dist/diagnostics/errors.d.ts +7 -0
- package/dist/diagnostics/errors.js +7 -0
- package/dist/diagnostics/errors.js.map +1 -1
- package/dist/index.cjs +155 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +72 -13
- package/dist/index.js +148 -4
- package/dist/index.js.map +1 -1
- package/dist/keryx-http/src/initial-sync.cjs +64 -16
- package/dist/keryx-http/src/initial-sync.cjs.map +1 -1
- package/dist/keryx-http/src/initial-sync.d.ts +31 -1
- package/dist/keryx-http/src/initial-sync.js +64 -16
- package/dist/keryx-http/src/initial-sync.js.map +1 -1
- package/dist/keryx-http/src/own-awareness.cjs +20 -0
- package/dist/keryx-http/src/own-awareness.cjs.map +1 -0
- package/dist/keryx-http/src/own-awareness.d.ts +50 -0
- package/dist/keryx-http/src/own-awareness.js +20 -0
- package/dist/keryx-http/src/own-awareness.js.map +1 -0
- package/dist/keryx-http/src/update-attributions.cjs +26 -1
- package/dist/keryx-http/src/update-attributions.cjs.map +1 -1
- package/dist/keryx-http/src/update-attributions.d.ts +10 -1
- package/dist/keryx-http/src/update-attributions.js +26 -1
- package/dist/keryx-http/src/update-attributions.js.map +1 -1
- package/dist/offline/chat-outbox.cjs +262 -26
- package/dist/offline/chat-outbox.cjs.map +1 -1
- package/dist/offline/chat-outbox.d.ts +90 -12
- package/dist/offline/chat-outbox.js +263 -27
- package/dist/offline/chat-outbox.js.map +1 -1
- package/dist/provider/AthenaProvider.cjs +63 -19
- package/dist/provider/AthenaProvider.cjs.map +1 -1
- package/dist/provider/AthenaProvider.d.ts +24 -8
- package/dist/provider/AthenaProvider.js +66 -22
- package/dist/provider/AthenaProvider.js.map +1 -1
- package/dist/react/package.json.cjs +1 -1
- package/dist/react/package.json.js +1 -1
- package/dist/references/src/anchors/types.cjs +5 -0
- package/dist/references/src/anchors/types.cjs.map +1 -1
- package/dist/references/src/anchors/types.js +5 -0
- package/dist/references/src/anchors/types.js.map +1 -1
- package/dist/references/src/attachable.cjs +149 -0
- package/dist/references/src/attachable.cjs.map +1 -0
- package/dist/references/src/attachable.d.ts +87 -0
- package/dist/references/src/attachable.js +149 -0
- package/dist/references/src/attachable.js.map +1 -0
- package/dist/runtime/StatewirePlanModeLaneSync.cjs +93 -0
- package/dist/runtime/StatewirePlanModeLaneSync.cjs.map +1 -0
- package/dist/runtime/StatewirePlanModeLaneSync.d.ts +34 -0
- package/dist/runtime/StatewirePlanModeLaneSync.js +93 -0
- package/dist/runtime/StatewirePlanModeLaneSync.js.map +1 -0
- package/dist/runtime/StatewireThreadConfigLaneSync.cjs +2 -0
- package/dist/runtime/StatewireThreadConfigLaneSync.cjs.map +1 -1
- package/dist/runtime/StatewireThreadConfigLaneSync.d.ts +4 -0
- package/dist/runtime/StatewireThreadConfigLaneSync.js +2 -0
- package/dist/runtime/StatewireThreadConfigLaneSync.js.map +1 -1
- package/dist/runtime/statewire-plan-mode.cjs +71 -0
- package/dist/runtime/statewire-plan-mode.cjs.map +1 -0
- package/dist/runtime/statewire-plan-mode.d.ts +88 -0
- package/dist/runtime/statewire-plan-mode.js +71 -0
- package/dist/runtime/statewire-plan-mode.js.map +1 -0
- package/dist/runtime/statewire-run-config.cjs +18 -1
- package/dist/runtime/statewire-run-config.cjs.map +1 -1
- package/dist/runtime/statewire-run-config.d.ts +20 -0
- package/dist/runtime/statewire-run-config.js +18 -1
- package/dist/runtime/statewire-run-config.js.map +1 -1
- package/dist/runtime/statewire-session-key.cjs +11 -5
- package/dist/runtime/statewire-session-key.cjs.map +1 -1
- package/dist/runtime/statewire-session-key.d.ts +22 -10
- package/dist/runtime/statewire-session-key.js +11 -5
- package/dist/runtime/statewire-session-key.js.map +1 -1
- package/dist/runtime/useAthenaStatewireRuntime.cjs +65 -8
- package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
- package/dist/runtime/useAthenaStatewireRuntime.d.ts +26 -10
- package/dist/runtime/useAthenaStatewireRuntime.js +67 -10
- package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
- package/dist/search/useAthenaAssets.cjs +394 -0
- package/dist/search/useAthenaAssets.cjs.map +1 -0
- package/dist/search/useAthenaAssets.d.ts +186 -0
- package/dist/search/useAthenaAssets.js +394 -0
- package/dist/search/useAthenaAssets.js.map +1 -0
- package/dist/sheet-range/index.cjs +4 -0
- package/dist/sheet-range/index.cjs.map +1 -1
- package/dist/sheet-range/index.d.ts +4 -2
- package/dist/sheet-range/index.js +4 -0
- package/dist/sheet-range/index.js.map +1 -1
- package/dist/sheet-range/query-range.cjs +102 -0
- package/dist/sheet-range/query-range.cjs.map +1 -0
- package/dist/sheet-range/query-range.d.ts +46 -0
- package/dist/sheet-range/query-range.js +102 -0
- package/dist/sheet-range/query-range.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/subagents/index.cjs +49 -0
- package/dist/subagents/index.cjs.map +1 -0
- package/dist/subagents/index.d.ts +16 -0
- package/dist/subagents/index.js +49 -0
- package/dist/subagents/index.js.map +1 -0
- package/dist/subagents/lane-follow.cjs +19 -0
- package/dist/subagents/lane-follow.cjs.map +1 -0
- package/dist/subagents/lane-follow.d.ts +9 -0
- package/dist/subagents/lane-follow.js +19 -0
- package/dist/subagents/lane-follow.js.map +1 -0
- package/dist/subagents/lane-model.cjs +178 -0
- package/dist/subagents/lane-model.cjs.map +1 -0
- package/dist/subagents/lane-model.d.ts +140 -0
- package/dist/subagents/lane-model.js +178 -0
- package/dist/subagents/lane-model.js.map +1 -0
- package/dist/subagents/lane-parts.cjs +517 -0
- package/dist/subagents/lane-parts.cjs.map +1 -0
- package/dist/subagents/lane-parts.d.ts +130 -0
- package/dist/subagents/lane-parts.js +517 -0
- package/dist/subagents/lane-parts.js.map +1 -0
- package/dist/subagents/subagent-lane-group.cjs +215 -0
- package/dist/subagents/subagent-lane-group.cjs.map +1 -0
- package/dist/subagents/subagent-lane-group.d.ts +67 -0
- package/dist/subagents/subagent-lane-group.js +215 -0
- package/dist/subagents/subagent-lane-group.js.map +1 -0
- package/dist/subagents/subagent-transcript-drawer.cjs +431 -0
- package/dist/subagents/subagent-transcript-drawer.cjs.map +1 -0
- package/dist/subagents/subagent-transcript-drawer.d.ts +78 -0
- package/dist/subagents/subagent-transcript-drawer.js +431 -0
- package/dist/subagents/subagent-transcript-drawer.js.map +1 -0
- package/dist/subagents/task-subagent-group.cjs +115 -0
- package/dist/subagents/task-subagent-group.cjs.map +1 -0
- package/dist/subagents/task-subagent-group.d.ts +36 -0
- package/dist/subagents/task-subagent-group.js +115 -0
- package/dist/subagents/task-subagent-group.js.map +1 -0
- package/dist/subagents/use-omitted-images-in-view.cjs +68 -0
- package/dist/subagents/use-omitted-images-in-view.cjs.map +1 -0
- package/dist/subagents/use-omitted-images-in-view.d.ts +21 -0
- package/dist/subagents/use-omitted-images-in-view.js +68 -0
- package/dist/subagents/use-omitted-images-in-view.js.map +1 -0
- package/dist/threads/Inbox.cjs +2 -2
- package/dist/threads/Inbox.cjs.map +1 -1
- package/dist/threads/SessionList.cjs +27 -24
- package/dist/threads/SessionList.cjs.map +1 -1
- package/dist/threads/SessionList.js +22 -19
- package/dist/threads/SessionList.js.map +1 -1
- package/dist/threads/SessionsPage.cjs +13 -7
- package/dist/threads/SessionsPage.cjs.map +1 -1
- package/dist/threads/SessionsPage.d.ts +10 -1
- package/dist/threads/SessionsPage.js +9 -3
- package/dist/threads/SessionsPage.js.map +1 -1
- package/dist/threads/live-session-rows.cjs +207 -0
- package/dist/threads/live-session-rows.cjs.map +1 -0
- package/dist/threads/live-session-rows.d.ts +175 -0
- package/dist/threads/live-session-rows.js +207 -0
- package/dist/threads/live-session-rows.js.map +1 -0
- package/dist/threads/session-list-model.cjs.map +1 -1
- package/dist/threads/session-list-model.d.ts +2 -1
- package/dist/threads/session-list-model.js.map +1 -1
- package/dist/threads/session-row-parts.cjs +3 -3
- package/dist/threads/session-row-parts.cjs.map +1 -1
- package/dist/threads/sessions-page-model.cjs +13 -5
- package/dist/threads/sessions-page-model.cjs.map +1 -1
- package/dist/threads/sessions-page-model.d.ts +7 -0
- package/dist/threads/sessions-page-model.js +11 -3
- package/dist/threads/sessions-page-model.js.map +1 -1
- package/dist/threads/sessions-page-storage.cjs +8 -8
- package/dist/threads/sessions-page-storage.cjs.map +1 -1
- package/dist/threads/sessions-page-storage.d.ts +5 -1
- package/dist/threads/sessions-page-storage.js +8 -8
- package/dist/threads/sessions-page-storage.js.map +1 -1
- package/dist/threads/statewire-thread-list.cjs +173 -20
- package/dist/threads/statewire-thread-list.cjs.map +1 -1
- package/dist/threads/statewire-thread-list.d.ts +44 -1
- package/dist/threads/statewire-thread-list.js +174 -21
- package/dist/threads/statewire-thread-list.js.map +1 -1
- package/dist/threads/use-athena-sessions.cjs +1 -0
- package/dist/threads/use-athena-sessions.cjs.map +1 -1
- package/dist/threads/use-athena-sessions.d.ts +7 -0
- package/dist/threads/use-athena-sessions.js +1 -0
- package/dist/threads/use-athena-sessions.js.map +1 -1
- package/dist/threads/use-athena-thread-agent.cjs +31 -0
- package/dist/threads/use-athena-thread-agent.cjs.map +1 -0
- package/dist/threads/use-athena-thread-agent.d.ts +38 -0
- package/dist/threads/use-athena-thread-agent.js +31 -0
- package/dist/threads/use-athena-thread-agent.js.map +1 -0
- package/dist/threads/use-athena-thread-plan-mode.cjs +18 -0
- package/dist/threads/use-athena-thread-plan-mode.cjs.map +1 -0
- package/dist/threads/use-athena-thread-plan-mode.d.ts +18 -0
- package/dist/threads/use-athena-thread-plan-mode.js +18 -0
- package/dist/threads/use-athena-thread-plan-mode.js.map +1 -0
- package/dist/threads/use-rest-conversation-history.d.ts +1 -0
- package/dist/tools/agent-creations.cjs +97 -0
- package/dist/tools/agent-creations.cjs.map +1 -0
- package/dist/tools/agent-creations.d.ts +38 -0
- package/dist/tools/agent-creations.js +97 -0
- package/dist/tools/agent-creations.js.map +1 -0
- package/dist/tools/agent-highlights.cjs +100 -0
- package/dist/tools/agent-highlights.cjs.map +1 -0
- package/dist/tools/agent-highlights.d.ts +57 -0
- package/dist/tools/agent-highlights.js +100 -0
- package/dist/tools/agent-highlights.js.map +1 -0
- package/dist/tools/append-document-tool-ui.cjs +1 -0
- package/dist/tools/append-document-tool-ui.cjs.map +1 -1
- package/dist/tools/append-document-tool-ui.d.ts +7 -0
- package/dist/tools/append-document-tool-ui.js +2 -1
- package/dist/tools/append-document-tool-ui.js.map +1 -1
- package/dist/tools/auto-open-tools.cjs +144 -71
- package/dist/tools/auto-open-tools.cjs.map +1 -1
- package/dist/tools/auto-open-tools.d.ts +131 -1
- package/dist/tools/auto-open-tools.js +145 -72
- package/dist/tools/auto-open-tools.js.map +1 -1
- package/dist/tools/browser-tool-uis.cjs +594 -0
- package/dist/tools/browser-tool-uis.cjs.map +1 -0
- package/dist/tools/browser-tool-uis.d.ts +8 -0
- package/dist/tools/browser-tool-uis.js +594 -0
- package/dist/tools/browser-tool-uis.js.map +1 -0
- package/dist/tools/computer-asset-tool-uis.cjs +313 -0
- package/dist/tools/computer-asset-tool-uis.cjs.map +1 -0
- package/dist/tools/computer-asset-tool-uis.d.ts +5 -0
- package/dist/tools/computer-asset-tool-uis.js +313 -0
- package/dist/tools/computer-asset-tool-uis.js.map +1 -0
- package/dist/tools/document-edit-tool-uis.cjs +218 -0
- package/dist/tools/document-edit-tool-uis.cjs.map +1 -0
- package/dist/tools/document-edit-tool-uis.d.ts +40 -0
- package/dist/tools/document-edit-tool-uis.js +218 -0
- package/dist/tools/document-edit-tool-uis.js.map +1 -0
- package/dist/tools/drive-tool-uis.cjs +425 -0
- package/dist/tools/drive-tool-uis.cjs.map +1 -0
- package/dist/tools/drive-tool-uis.d.ts +120 -0
- package/dist/tools/drive-tool-uis.js +425 -0
- package/dist/tools/drive-tool-uis.js.map +1 -0
- package/dist/tools/email-calendar-tool-uis.cjs +789 -0
- package/dist/tools/email-calendar-tool-uis.cjs.map +1 -0
- package/dist/tools/email-calendar-tool-uis.d.ts +129 -0
- package/dist/tools/email-calendar-tool-uis.js +789 -0
- package/dist/tools/email-calendar-tool-uis.js.map +1 -0
- package/dist/tools/ontology-tool-uis.cjs +83 -0
- package/dist/tools/ontology-tool-uis.cjs.map +1 -0
- package/dist/tools/ontology-tool-uis.d.ts +9 -0
- package/dist/tools/ontology-tool-uis.js +83 -0
- package/dist/tools/ontology-tool-uis.js.map +1 -0
- package/dist/tools/orchestration-tool-uis.cjs +586 -0
- package/dist/tools/orchestration-tool-uis.cjs.map +1 -0
- package/dist/tools/orchestration-tool-uis.d.ts +141 -0
- package/dist/tools/orchestration-tool-uis.js +586 -0
- package/dist/tools/orchestration-tool-uis.js.map +1 -0
- package/dist/tools/presentation-edit-tool-uis.cjs +516 -0
- package/dist/tools/presentation-edit-tool-uis.cjs.map +1 -0
- package/dist/tools/presentation-edit-tool-uis.d.ts +73 -0
- package/dist/tools/presentation-edit-tool-uis.js +516 -0
- package/dist/tools/presentation-edit-tool-uis.js.map +1 -0
- package/dist/tools/project-tool-uis.cjs +213 -0
- package/dist/tools/project-tool-uis.cjs.map +1 -0
- package/dist/tools/project-tool-uis.d.ts +14 -0
- package/dist/tools/project-tool-uis.js +213 -0
- package/dist/tools/project-tool-uis.js.map +1 -0
- package/dist/tools/sandbox-tool-uis.cjs +491 -0
- package/dist/tools/sandbox-tool-uis.cjs.map +1 -0
- package/dist/tools/sandbox-tool-uis.d.ts +116 -0
- package/dist/tools/sandbox-tool-uis.js +491 -0
- package/dist/tools/sandbox-tool-uis.js.map +1 -0
- package/dist/tools/sheet-query-tool-ui.cjs +138 -0
- package/dist/tools/sheet-query-tool-ui.cjs.map +1 -0
- package/dist/tools/sheet-query-tool-ui.d.ts +15 -0
- package/dist/tools/sheet-query-tool-ui.js +138 -0
- package/dist/tools/sheet-query-tool-ui.js.map +1 -0
- package/dist/tools/studio-screenshot-tool-uis.cjs +262 -0
- package/dist/tools/studio-screenshot-tool-uis.cjs.map +1 -0
- package/dist/tools/studio-screenshot-tool-uis.d.ts +52 -0
- package/dist/tools/studio-screenshot-tool-uis.js +262 -0
- package/dist/tools/studio-screenshot-tool-uis.js.map +1 -0
- package/dist/tools/subagent-task-tool-ui.cjs +24 -475
- package/dist/tools/subagent-task-tool-ui.cjs.map +1 -1
- package/dist/tools/subagent-task-tool-ui.d.ts +19 -103
- package/dist/tools/subagent-task-tool-ui.js +28 -479
- package/dist/tools/subagent-task-tool-ui.js.map +1 -1
- package/dist/tools/tool-summary.cjs +36 -0
- package/dist/tools/tool-summary.cjs.map +1 -1
- package/dist/tools/tool-summary.js +36 -0
- package/dist/tools/tool-summary.js.map +1 -1
- package/dist/tools/tool-uis.cjs +181 -53
- package/dist/tools/tool-uis.cjs.map +1 -1
- package/dist/tools/tool-uis.d.ts +40 -0
- package/dist/tools/tool-uis.js +183 -55
- package/dist/tools/tool-uis.js.map +1 -1
- package/dist/typed-interrupts/index.cjs +15 -0
- package/dist/typed-interrupts/index.cjs.map +1 -0
- package/dist/typed-interrupts/index.d.ts +20 -0
- package/dist/typed-interrupts/index.js +15 -0
- package/dist/typed-interrupts/index.js.map +1 -0
- package/dist/workbench/session-workbench-panes.cjs +6 -6
- package/dist/workbench/session-workbench-panes.cjs.map +1 -1
- package/package.json +28 -6
- package/dist/agent-runtime/src/chat-outbox-store.cjs +0 -510
- package/dist/agent-runtime/src/chat-outbox-store.cjs.map +0 -1
- package/dist/agent-runtime/src/chat-outbox-store.d.ts +0 -210
- package/dist/agent-runtime/src/chat-outbox-store.js +0 -510
- package/dist/agent-runtime/src/chat-outbox-store.js.map +0 -1
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const lucideReact = require("lucide-react");
|
|
5
|
+
const require$$0 = require("react");
|
|
6
|
+
const assetPanelStore = require("../assets/asset-panel-store.cjs");
|
|
7
|
+
const mentionChip = require("../chat-ui/mentions/mention-chip.cjs");
|
|
8
|
+
const mentionIcon = require("../chat-ui/mentions/suggestions/components/mention-icon.cjs");
|
|
9
|
+
const assetTypeIcons = require("../chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs");
|
|
10
|
+
const primitives = require("./primitives.cjs");
|
|
11
|
+
const toolFallback = require("./tool-fallback.cjs");
|
|
12
|
+
const toolResult = require("../agent-runtime/src/tool-result.cjs");
|
|
13
|
+
const cnfast = require("cnfast");
|
|
14
|
+
function withoutEllipsis(title) {
|
|
15
|
+
return title.replace(/(?:\.{3}|…)\s*$/u, "");
|
|
16
|
+
}
|
|
17
|
+
function toolCardOutcome({
|
|
18
|
+
status,
|
|
19
|
+
classification,
|
|
20
|
+
resultFailure = null
|
|
21
|
+
}) {
|
|
22
|
+
if ((status == null ? void 0 : status.type) === "running") return { status: "running", failure: null };
|
|
23
|
+
const classified = classification.state === "error" ? classification.failure.message : null;
|
|
24
|
+
const failure = (status == null ? void 0 : status.type) === "incomplete" ? classified : resultFailure ?? classified;
|
|
25
|
+
if (failure) return { status: "incomplete", failure };
|
|
26
|
+
return { status: (status == null ? void 0 : status.type) ?? "complete", failure: null };
|
|
27
|
+
}
|
|
28
|
+
function panelAssetType(assetType) {
|
|
29
|
+
switch (assetType) {
|
|
30
|
+
case "presentation":
|
|
31
|
+
case "spreadsheet":
|
|
32
|
+
case "document":
|
|
33
|
+
case "notebook":
|
|
34
|
+
return assetType;
|
|
35
|
+
default:
|
|
36
|
+
return void 0;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const ASSET_ICON_TILE = {
|
|
40
|
+
md: { box: "size-8", icon: "size-4" },
|
|
41
|
+
sm: { box: "size-6", icon: "size-3.5" }
|
|
42
|
+
};
|
|
43
|
+
function AssetTypeIcon({
|
|
44
|
+
assetType,
|
|
45
|
+
size
|
|
46
|
+
}) {
|
|
47
|
+
const tile = ASSET_ICON_TILE[size];
|
|
48
|
+
const thumbnailUrl = assetTypeIcons.assetTypeToThumb(assetType);
|
|
49
|
+
if (thumbnailUrl) {
|
|
50
|
+
return /* @__PURE__ */ jsxRuntime.jsx(mentionIcon.MentionIcon, { thumbnailUrl, className: cnfast.cn("shrink-0", tile.box) });
|
|
51
|
+
}
|
|
52
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
53
|
+
"span",
|
|
54
|
+
{
|
|
55
|
+
"aria-hidden": "true",
|
|
56
|
+
className: cnfast.cn(
|
|
57
|
+
"flex shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground",
|
|
58
|
+
tile.box
|
|
59
|
+
),
|
|
60
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(mentionIcon.MentionIcon, { fallbackIcon: assetTypeIcons.assetTypeToIcon(assetType), className: tile.icon })
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
function AssetChip({
|
|
65
|
+
assetId,
|
|
66
|
+
title,
|
|
67
|
+
fallbackLabel,
|
|
68
|
+
assetType
|
|
69
|
+
}) {
|
|
70
|
+
const openAsset = assetPanelStore.useAssetPanelStore((s) => s.openAsset);
|
|
71
|
+
const label = title ?? fallbackLabel;
|
|
72
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
73
|
+
"button",
|
|
74
|
+
{
|
|
75
|
+
type: "button",
|
|
76
|
+
"data-asset-id": assetId,
|
|
77
|
+
title: `Open ${label}`,
|
|
78
|
+
onClick: () => openAsset(assetId, { name: title, type: panelAssetType(assetType) }),
|
|
79
|
+
className: cnfast.cn(mentionChip.CHIP_PILL_CLASS, mentionChip.CHIP_LINK_CLASS, "max-w-[275px] text-xs"),
|
|
80
|
+
children: [
|
|
81
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
82
|
+
mentionIcon.MentionIcon,
|
|
83
|
+
{
|
|
84
|
+
thumbnailUrl: assetTypeIcons.assetTypeToThumb(assetType),
|
|
85
|
+
fallbackIcon: assetTypeIcons.assetTypeToIcon(assetType),
|
|
86
|
+
className: mentionChip.CHIP_ICON_CLASS
|
|
87
|
+
}
|
|
88
|
+
),
|
|
89
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 max-w-[180px] overflow-hidden text-ellipsis", children: label })
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
function AssetChipLine({ children }) {
|
|
95
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-1.5 border-t border-border/40 px-4 py-2 text-xs text-muted-foreground", children });
|
|
96
|
+
}
|
|
97
|
+
function argsRecord(args) {
|
|
98
|
+
return toolResult.isRecord(args) ? args : {};
|
|
99
|
+
}
|
|
100
|
+
function numberField(record, key) {
|
|
101
|
+
const value = record == null ? void 0 : record[key];
|
|
102
|
+
return typeof value === "number" && Number.isFinite(value) ? value : void 0;
|
|
103
|
+
}
|
|
104
|
+
function searchAssetCreator(asset) {
|
|
105
|
+
const user = toolResult.isRecord(asset.created_by_user) ? asset.created_by_user : null;
|
|
106
|
+
const fullName = [toolResult.stringField(user, ["first_name"]), toolResult.stringField(user, ["last_name"])].filter(Boolean).join(" ");
|
|
107
|
+
return toolResult.stringField(user, ["email"]) ?? (fullName || null) ?? toolResult.stringField(user, ["id"]) ?? "Unknown";
|
|
108
|
+
}
|
|
109
|
+
function readSearchAssetsResult(result) {
|
|
110
|
+
const data = primitives.normalizeResult(result);
|
|
111
|
+
if (!data || !Array.isArray(data.assets)) return null;
|
|
112
|
+
const rows = data.assets.flatMap((raw) => {
|
|
113
|
+
if (!toolResult.isRecord(raw)) return [];
|
|
114
|
+
const id = toolResult.stringField(raw, ["id"]);
|
|
115
|
+
if (!id) return [];
|
|
116
|
+
return [
|
|
117
|
+
{
|
|
118
|
+
id,
|
|
119
|
+
title: toolResult.stringField(raw, ["title"]) ?? "Untitled",
|
|
120
|
+
assetType: toolResult.stringField(raw, ["athena_converted_type", "athena_original_type", "asset_type"]) ?? void 0,
|
|
121
|
+
creator: searchAssetCreator(raw),
|
|
122
|
+
updatedAt: toolResult.stringField(raw, ["updated_at"]) ?? void 0,
|
|
123
|
+
workspaceAccess: toolResult.stringField(raw, ["workspace_access"]) ?? void 0
|
|
124
|
+
}
|
|
125
|
+
];
|
|
126
|
+
});
|
|
127
|
+
return {
|
|
128
|
+
rows,
|
|
129
|
+
count: numberField(data, "returned_count") ?? rows.length,
|
|
130
|
+
errorMessage: toolResult.stringField(data, ["error_message"])
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
function updatedDate(updatedAt) {
|
|
134
|
+
if (!updatedAt) return null;
|
|
135
|
+
const date = new Date(updatedAt);
|
|
136
|
+
return Number.isNaN(date.getTime()) ? null : date.toLocaleDateString();
|
|
137
|
+
}
|
|
138
|
+
function SearchAssetResultRow({ row, divided }) {
|
|
139
|
+
const openAsset = assetPanelStore.useAssetPanelStore((s) => s.openAsset);
|
|
140
|
+
const updated = updatedDate(row.updatedAt);
|
|
141
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("li", { children: [
|
|
142
|
+
divided ? /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: "ml-11 border-t border-border/60" }) : null,
|
|
143
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
144
|
+
"button",
|
|
145
|
+
{
|
|
146
|
+
type: "button",
|
|
147
|
+
"data-asset-id": row.id,
|
|
148
|
+
onClick: () => openAsset(row.id, { name: row.title, type: panelAssetType(row.assetType) }),
|
|
149
|
+
className: "flex w-full items-start gap-2 rounded-md px-1 py-3 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",
|
|
150
|
+
children: [
|
|
151
|
+
/* @__PURE__ */ jsxRuntime.jsx(AssetTypeIcon, { assetType: row.assetType, size: "md" }),
|
|
152
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-col gap-0.5", children: [
|
|
153
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "break-words text-[13px] font-medium text-foreground", children: row.title }),
|
|
154
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[11px] text-muted-foreground", children: [
|
|
155
|
+
"Created by ",
|
|
156
|
+
row.creator
|
|
157
|
+
] }),
|
|
158
|
+
updated ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[11px] text-muted-foreground", children: [
|
|
159
|
+
"Updated ",
|
|
160
|
+
updated
|
|
161
|
+
] }) : null,
|
|
162
|
+
row.workspaceAccess ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] text-muted-foreground", children: row.workspaceAccess }) : null
|
|
163
|
+
] })
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
)
|
|
167
|
+
] });
|
|
168
|
+
}
|
|
169
|
+
const SearchAssetsToolUIImpl = (props) => {
|
|
170
|
+
const { toolName, args, result, status, isError } = props;
|
|
171
|
+
const classification = toolResult.classifyToolResult({ status, result, isError });
|
|
172
|
+
if (classification.state === "rejected" || classification.state === "paused") {
|
|
173
|
+
return /* @__PURE__ */ jsxRuntime.jsx(toolFallback.ToolFallback, { ...props, icon: lucideReact.SearchIcon });
|
|
174
|
+
}
|
|
175
|
+
const typedArgs = argsRecord(args);
|
|
176
|
+
const keyword = toolResult.stringField(typedArgs, ["title_contains_keyword"]);
|
|
177
|
+
const data = readSearchAssetsResult(result);
|
|
178
|
+
const card = toolCardOutcome({
|
|
179
|
+
status,
|
|
180
|
+
classification,
|
|
181
|
+
resultFailure: (data == null ? void 0 : data.errorMessage) ? `Search failed: ${data.errorMessage}` : null
|
|
182
|
+
});
|
|
183
|
+
const running = keyword ? `Searching assets for "${keyword}"...` : "Searching assets...";
|
|
184
|
+
const found = data ? `Found ${data.count === 1 ? "1 asset" : `${data.count} assets`}${keyword ? ` for "${keyword}"` : ""}` : `Search complete${keyword ? ` for "${keyword}"` : ""}`;
|
|
185
|
+
const title = card.status === "running" ? running : card.status === "complete" ? found : withoutEllipsis(running);
|
|
186
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
187
|
+
primitives.ToolCard,
|
|
188
|
+
{
|
|
189
|
+
icon: lucideReact.SearchIcon,
|
|
190
|
+
status: card.status,
|
|
191
|
+
title,
|
|
192
|
+
toolName,
|
|
193
|
+
args: typedArgs,
|
|
194
|
+
result,
|
|
195
|
+
error: card.failure,
|
|
196
|
+
children: card.status === "complete" && data && data.rows.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { label: "Show assets", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col", children: data.rows.map((row, index) => /* @__PURE__ */ jsxRuntime.jsx(SearchAssetResultRow, { row, divided: index > 0 }, `${row.id}:${index}`)) }) }) : null
|
|
197
|
+
}
|
|
198
|
+
);
|
|
199
|
+
};
|
|
200
|
+
const SearchAssetsToolUI = require$$0.memo(
|
|
201
|
+
SearchAssetsToolUIImpl
|
|
202
|
+
);
|
|
203
|
+
SearchAssetsToolUI.displayName = "SearchAssetsToolUI";
|
|
204
|
+
const LISTED_NODE_ID = /(?:^|\s)id='([^']+)'/;
|
|
205
|
+
const LISTED_NODE_KIND = /(?:^|\s)type='([^']+)'/;
|
|
206
|
+
const LISTED_NODE_MEDIA_TYPE = /(?:^|\s)media_type='([^']+)'/;
|
|
207
|
+
function readListedNode(raw) {
|
|
208
|
+
var _a, _b, _c;
|
|
209
|
+
if (typeof raw === "string") {
|
|
210
|
+
return {
|
|
211
|
+
id: (_a = LISTED_NODE_ID.exec(raw)) == null ? void 0 : _a[1],
|
|
212
|
+
kind: (_b = LISTED_NODE_KIND.exec(raw)) == null ? void 0 : _b[1],
|
|
213
|
+
mediaType: (_c = LISTED_NODE_MEDIA_TYPE.exec(raw)) == null ? void 0 : _c[1]
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
if (!toolResult.isRecord(raw)) return {};
|
|
217
|
+
return {
|
|
218
|
+
id: toolResult.stringField(raw, ["id"]) ?? void 0,
|
|
219
|
+
kind: toolResult.stringField(raw, ["type"]) ?? void 0,
|
|
220
|
+
mediaType: toolResult.stringField(raw, ["media_type"]) ?? void 0
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
function listedAssetType({ kind, mediaType }) {
|
|
224
|
+
if (mediaType == null ? void 0 : mediaType.startsWith("athena/")) return mediaType.slice("athena/".length);
|
|
225
|
+
if (kind === "folder") return "folder";
|
|
226
|
+
if (mediaType === "application/pdf") return "pdf";
|
|
227
|
+
const family = mediaType == null ? void 0 : mediaType.split("/")[0];
|
|
228
|
+
return family === "image" || family === "video" || family === "audio" ? family : void 0;
|
|
229
|
+
}
|
|
230
|
+
function readListContentsResult(result) {
|
|
231
|
+
const data = primitives.normalizeResult(result);
|
|
232
|
+
if (!data) return null;
|
|
233
|
+
const treeData = toolResult.isRecord(data.tree_data) ? data.tree_data : null;
|
|
234
|
+
const pagination = toolResult.isRecord(data.pagination) ? data.pagination : null;
|
|
235
|
+
const currentPage = numberField(pagination, "current_page");
|
|
236
|
+
const totalPages = numberField(pagination, "total_pages");
|
|
237
|
+
return {
|
|
238
|
+
tree: toolResult.stringField(data, ["structure_tree_ascii"]),
|
|
239
|
+
entries: treeData ? Object.entries(treeData).map(([title, raw]) => {
|
|
240
|
+
const node = readListedNode(raw);
|
|
241
|
+
return { title, assetId: node.id, assetType: listedAssetType(node) };
|
|
242
|
+
}) : null,
|
|
243
|
+
pagination: currentPage !== void 0 && totalPages !== void 0 ? { currentPage, totalPages } : null
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
function ListedEntryRow({ entry, divided }) {
|
|
247
|
+
const openAsset = assetPanelStore.useAssetPanelStore((s) => s.openAsset);
|
|
248
|
+
const { assetId } = entry;
|
|
249
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("li", { children: [
|
|
250
|
+
divided ? /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: "ml-10 border-t border-border/60" }) : null,
|
|
251
|
+
assetId ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
252
|
+
"button",
|
|
253
|
+
{
|
|
254
|
+
type: "button",
|
|
255
|
+
"data-asset-id": assetId,
|
|
256
|
+
onClick: () => openAsset(assetId, { name: entry.title, type: panelAssetType(entry.assetType) }),
|
|
257
|
+
className: "flex w-full items-center gap-4 rounded-md py-2 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",
|
|
258
|
+
children: [
|
|
259
|
+
/* @__PURE__ */ jsxRuntime.jsx(AssetTypeIcon, { assetType: entry.assetType, size: "sm" }),
|
|
260
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate text-[13px] font-medium text-foreground", children: entry.title })
|
|
261
|
+
]
|
|
262
|
+
}
|
|
263
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-1 pl-10 text-[11px] text-muted-foreground", children: entry.title })
|
|
264
|
+
] });
|
|
265
|
+
}
|
|
266
|
+
const ListContentsToolUIImpl = (props) => {
|
|
267
|
+
var _a, _b;
|
|
268
|
+
const { toolName, args, result, status, isError } = props;
|
|
269
|
+
const classification = toolResult.classifyToolResult({ status, result, isError });
|
|
270
|
+
if (classification.state === "rejected" || classification.state === "paused") {
|
|
271
|
+
return /* @__PURE__ */ jsxRuntime.jsx(toolFallback.ToolFallback, { ...props, icon: lucideReact.FolderIcon });
|
|
272
|
+
}
|
|
273
|
+
const typedArgs = argsRecord(args);
|
|
274
|
+
const target = toolResult.stringField(typedArgs, ["asset_id"]) ? "" : " for workspace";
|
|
275
|
+
const data = readListContentsResult(result);
|
|
276
|
+
const card = toolCardOutcome({ status, classification });
|
|
277
|
+
const running = "Listing contents...";
|
|
278
|
+
const listed = data ? `Contents listed - Page ${((_a = data.pagination) == null ? void 0 : _a.currentPage) ?? 1} of ${((_b = data.pagination) == null ? void 0 : _b.totalPages) ?? 1}${target}` : `Contents listed${target}`;
|
|
279
|
+
const title = card.status === "running" ? running : card.status === "complete" ? listed : withoutEllipsis(running);
|
|
280
|
+
const entries = (data == null ? void 0 : data.entries) ?? [];
|
|
281
|
+
const hasListing = Boolean(data && (data.tree || entries.length > 0 || data.pagination));
|
|
282
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
283
|
+
primitives.ToolCard,
|
|
284
|
+
{
|
|
285
|
+
icon: lucideReact.FolderIcon,
|
|
286
|
+
status: card.status,
|
|
287
|
+
title,
|
|
288
|
+
toolName,
|
|
289
|
+
args: typedArgs,
|
|
290
|
+
result,
|
|
291
|
+
error: card.failure,
|
|
292
|
+
children: card.status === "complete" && data && hasListing ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { label: "Show contents", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-3", children: [
|
|
293
|
+
data.tree ? /* @__PURE__ */ jsxRuntime.jsx("pre", { className: "overflow-x-auto whitespace-pre-wrap rounded bg-muted/50 p-2 text-[11px] leading-4 text-foreground", children: data.tree }) : null,
|
|
294
|
+
entries.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-60 overflow-y-auto pr-0.5", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col", children: entries.map((entry, index) => {
|
|
295
|
+
var _a2;
|
|
296
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
297
|
+
ListedEntryRow,
|
|
298
|
+
{
|
|
299
|
+
entry,
|
|
300
|
+
divided: index > 0 && ((_a2 = entries[index - 1]) == null ? void 0 : _a2.assetId) !== void 0
|
|
301
|
+
},
|
|
302
|
+
`${entry.title}:${index}`
|
|
303
|
+
);
|
|
304
|
+
}) }) }) : null,
|
|
305
|
+
data.pagination ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-[10px] text-muted-foreground", children: [
|
|
306
|
+
"Page ",
|
|
307
|
+
data.pagination.currentPage,
|
|
308
|
+
" of ",
|
|
309
|
+
data.pagination.totalPages
|
|
310
|
+
] }) : null
|
|
311
|
+
] }) }) : null
|
|
312
|
+
}
|
|
313
|
+
);
|
|
314
|
+
};
|
|
315
|
+
const ListContentsToolUI = require$$0.memo(
|
|
316
|
+
ListContentsToolUIImpl
|
|
317
|
+
);
|
|
318
|
+
ListContentsToolUI.displayName = "ListContentsToolUI";
|
|
319
|
+
function normalizeProjectLinksAssetIds(value) {
|
|
320
|
+
if (Array.isArray(value)) {
|
|
321
|
+
return value.filter((id) => typeof id === "string" && id.length > 0);
|
|
322
|
+
}
|
|
323
|
+
if (typeof value === "string") {
|
|
324
|
+
return value.split(",").map((id) => id.trim()).filter((id) => id.length > 0);
|
|
325
|
+
}
|
|
326
|
+
return [];
|
|
327
|
+
}
|
|
328
|
+
function projectLinksRunningTitle({ operation, count }) {
|
|
329
|
+
const links = `${count} asset link${count !== 1 ? "s" : ""}`;
|
|
330
|
+
switch (operation) {
|
|
331
|
+
case "read":
|
|
332
|
+
return "Reading project links...";
|
|
333
|
+
case "add":
|
|
334
|
+
return `Adding ${links} to project...`;
|
|
335
|
+
case "remove":
|
|
336
|
+
return `Removing ${links} from project...`;
|
|
337
|
+
case "set":
|
|
338
|
+
return `Setting ${links} on project...`;
|
|
339
|
+
default:
|
|
340
|
+
return "Managing project links...";
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
const PROJECT_LINKS_DETAIL_LABEL = {
|
|
344
|
+
read: "Linked",
|
|
345
|
+
add: "Added",
|
|
346
|
+
remove: "Removed",
|
|
347
|
+
set: "Set to"
|
|
348
|
+
};
|
|
349
|
+
const ProjectLinksToolUIImpl = (props) => {
|
|
350
|
+
const { toolName, args, result, status, isError } = props;
|
|
351
|
+
const classification = toolResult.classifyToolResult({ status, result, isError });
|
|
352
|
+
if (classification.state === "rejected" || classification.state === "paused") {
|
|
353
|
+
return /* @__PURE__ */ jsxRuntime.jsx(toolFallback.ToolFallback, { ...props, icon: lucideReact.LinkIcon });
|
|
354
|
+
}
|
|
355
|
+
const typedArgs = argsRecord(args);
|
|
356
|
+
const operation = toolResult.stringField(typedArgs, ["type"]) ?? "read";
|
|
357
|
+
const projectId = toolResult.stringField(typedArgs, ["project_id"]);
|
|
358
|
+
const argAssetIds = normalizeProjectLinksAssetIds(typedArgs.asset_ids);
|
|
359
|
+
const data = primitives.normalizeResult(result);
|
|
360
|
+
const prose = typeof result === "string" && !data ? result.trim() : "";
|
|
361
|
+
const card = toolCardOutcome({ status, classification, resultFailure: prose || null });
|
|
362
|
+
const assetIds = operation === "read" && Array.isArray(data == null ? void 0 : data.asset_ids) ? normalizeProjectLinksAssetIds(data.asset_ids) : argAssetIds;
|
|
363
|
+
const singleAsset = assetIds.length === 1 ? assetIds[0] : void 0;
|
|
364
|
+
const changesOneAsset = singleAsset !== void 0 && operation !== "read";
|
|
365
|
+
const message = toolResult.stringField(data, ["message"]);
|
|
366
|
+
const projectTitle = toolResult.stringField(data, ["project_title"]) ?? void 0;
|
|
367
|
+
const running = projectLinksRunningTitle({ operation, count: argAssetIds.length });
|
|
368
|
+
const title = card.status === "running" ? running : card.status === "complete" ? message ?? withoutEllipsis(running) : withoutEllipsis(running);
|
|
369
|
+
const isDone = card.status === "complete";
|
|
370
|
+
const projectChip = projectId ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
371
|
+
AssetChip,
|
|
372
|
+
{
|
|
373
|
+
assetId: projectId,
|
|
374
|
+
title: projectTitle,
|
|
375
|
+
fallbackLabel: "Project",
|
|
376
|
+
assetType: "project"
|
|
377
|
+
}
|
|
378
|
+
) : null;
|
|
379
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
380
|
+
primitives.ToolCard,
|
|
381
|
+
{
|
|
382
|
+
icon: lucideReact.LinkIcon,
|
|
383
|
+
status: card.status,
|
|
384
|
+
title,
|
|
385
|
+
toolName,
|
|
386
|
+
args: typedArgs,
|
|
387
|
+
result,
|
|
388
|
+
error: card.failure,
|
|
389
|
+
children: [
|
|
390
|
+
isDone && changesOneAsset ? /* @__PURE__ */ jsxRuntime.jsxs(AssetChipLine, { children: [
|
|
391
|
+
/* @__PURE__ */ jsxRuntime.jsx(AssetChip, { assetId: singleAsset, fallbackLabel: singleAsset }),
|
|
392
|
+
projectChip ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
393
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRightIcon, { "aria-hidden": "true", className: "size-3.5 shrink-0" }),
|
|
394
|
+
projectChip
|
|
395
|
+
] }) : null
|
|
396
|
+
] }) : isDone && message && projectChip ? /* @__PURE__ */ jsxRuntime.jsxs(AssetChipLine, { children: [
|
|
397
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "on" }),
|
|
398
|
+
projectChip
|
|
399
|
+
] }) : null,
|
|
400
|
+
isDone && !changesOneAsset && assetIds.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(primitives.ExpandableSection, { label: "Show assets", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
|
|
401
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "py-1 text-[11px] font-semibold text-muted-foreground", children: PROJECT_LINKS_DETAIL_LABEL[operation] ?? operation }),
|
|
402
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col divide-y divide-border/60", children: assetIds.map((assetId, index) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "py-1", children: /* @__PURE__ */ jsxRuntime.jsx(AssetChip, { assetId, fallbackLabel: assetId }) }, `${assetId}:${index}`)) })
|
|
403
|
+
] }) }) : null
|
|
404
|
+
]
|
|
405
|
+
}
|
|
406
|
+
);
|
|
407
|
+
};
|
|
408
|
+
const ProjectLinksToolUI = require$$0.memo(
|
|
409
|
+
ProjectLinksToolUIImpl
|
|
410
|
+
);
|
|
411
|
+
ProjectLinksToolUI.displayName = "ProjectLinksToolUI";
|
|
412
|
+
exports.AssetChip = AssetChip;
|
|
413
|
+
exports.AssetChipLine = AssetChipLine;
|
|
414
|
+
exports.AssetTypeIcon = AssetTypeIcon;
|
|
415
|
+
exports.ListContentsToolUI = ListContentsToolUI;
|
|
416
|
+
exports.ProjectLinksToolUI = ProjectLinksToolUI;
|
|
417
|
+
exports.SearchAssetsToolUI = SearchAssetsToolUI;
|
|
418
|
+
exports.argsRecord = argsRecord;
|
|
419
|
+
exports.normalizeProjectLinksAssetIds = normalizeProjectLinksAssetIds;
|
|
420
|
+
exports.numberField = numberField;
|
|
421
|
+
exports.readListContentsResult = readListContentsResult;
|
|
422
|
+
exports.readSearchAssetsResult = readSearchAssetsResult;
|
|
423
|
+
exports.toolCardOutcome = toolCardOutcome;
|
|
424
|
+
exports.withoutEllipsis = withoutEllipsis;
|
|
425
|
+
//# sourceMappingURL=drive-tool-uis.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drive-tool-uis.cjs","sources":["../../src/tools/drive-tool-uis.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The Athena Drive cards, as Athena on the web draws them: `search_assets`\n * (the matches, each opening its asset), `list_contents` (a folder's tree and\n * the assets in it) and `project_links` (a project's links as asset chips).\n *\n * Olympus reads each asset's title and thumbnail from its asset cache; these\n * cards draw only what the call's arguments and result carry. An asset shows\n * its type's icon when the result names its type, and an asset the result\n * names by id alone shows its id.\n */\nimport type {\n ToolCallMessagePartComponent,\n ToolCallMessagePartStatus,\n} from \"@assistant-ui/react\";\nimport {\n classifyToolResult,\n isRecord,\n stringField,\n type ToolResultClassification,\n} from \"@athenaintel/agent-runtime\";\nimport { ArrowRightIcon, FolderIcon, LinkIcon, SearchIcon } from \"lucide-react\";\nimport { memo, type ReactNode } from \"react\";\nimport { type AssetType, useAssetPanelStore } from \"../assets/asset-panel-store\";\nimport {\n CHIP_ICON_CLASS,\n CHIP_LINK_CLASS,\n CHIP_PILL_CLASS,\n} from \"../chat-ui/mentions/mention-chip\";\nimport { MentionIcon } from \"../chat-ui/mentions/suggestions/components/mention-icon\";\nimport {\n assetTypeToIcon,\n assetTypeToThumb,\n} from \"../chat-ui/mentions/suggestions/data/sources/asset-type-icons\";\nimport { cn } from \"../lib/utils\";\nimport { ExpandableSection, normalizeResult, ToolCard, type ToolStatus } from \"./primitives\";\nimport { ToolFallback } from \"./tool-fallback\";\n\n// ─── Shared by the Drive and project manager cards ───────────────────\n\n/** A running title without its trailing \"...\": what a stopped or waiting call was doing. */\nexport function withoutEllipsis(title: string): string {\n return title.replace(/(?:\\.{3}|…)\\s*$/u, \"\");\n}\n\n/** How a card shows its call: the status it renders with, and why the call failed when it did. */\nexport interface ToolCardOutcome {\n status: ToolStatus;\n failure: string | null;\n}\n\n/**\n * The card's status. A call the runtime stopped reads as failed with the\n * runtime's reason; a settled call reads as failed when its result reports a\n * failure in the tool's own words (`resultFailure`, as Olympus words it) or\n * the shared classifier reads one. A refusal at the approval gate never gets\n * here: the generic card draws it.\n */\nexport function toolCardOutcome({\n status,\n classification,\n resultFailure = null,\n}: {\n status: ToolCallMessagePartStatus | undefined;\n classification: ToolResultClassification;\n resultFailure?: string | null;\n}): ToolCardOutcome {\n if (status?.type === \"running\") return { status: \"running\", failure: null };\n const classified = classification.state === \"error\" ? classification.failure.message : null;\n const failure = status?.type === \"incomplete\" ? classified : (resultFailure ?? classified);\n if (failure) return { status: \"incomplete\", failure };\n return { status: status?.type ?? \"complete\", failure: null };\n}\n\n/** The asset panel's name for an asset type, when it has one; the panel opens any other as a plain asset. */\nfunction panelAssetType(assetType: string | undefined): AssetType | undefined {\n switch (assetType) {\n case \"presentation\":\n case \"spreadsheet\":\n case \"document\":\n case \"notebook\":\n return assetType;\n default:\n return undefined;\n }\n}\n\nconst ASSET_ICON_TILE = {\n md: { box: \"size-8\", icon: \"size-4\" },\n sm: { box: \"size-6\", icon: \"size-3.5\" },\n} as const;\n\n/**\n * An asset's type icon, as the `@` menu draws it: the host's asset-type SVG\n * when it serves them (`configureAssetIconBasePath`), else the type's Lucide\n * icon on a muted tile. Olympus draws the asset's own thumbnail, which needs\n * the asset read; its type is what a result carries.\n */\nexport function AssetTypeIcon({\n assetType,\n size,\n}: {\n assetType: string | undefined;\n size: keyof typeof ASSET_ICON_TILE;\n}) {\n const tile = ASSET_ICON_TILE[size];\n const thumbnailUrl = assetTypeToThumb(assetType);\n if (thumbnailUrl) {\n return <MentionIcon thumbnailUrl={thumbnailUrl} className={cn(\"shrink-0\", tile.box)} />;\n }\n return (\n <span\n aria-hidden=\"true\"\n className={cn(\n \"flex shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground\",\n tile.box,\n )}\n >\n <MentionIcon fallbackIcon={assetTypeToIcon(assetType)} className={tile.icon} />\n </span>\n );\n}\n\n/**\n * An asset as the chip a chat message draws, opening the asset on click.\n * `title` is the asset's title when the call carried one; without it the\n * chip shows `fallbackLabel` and the asset opens unnamed, for whatever opens\n * it to name.\n */\nexport function AssetChip({\n assetId,\n title,\n fallbackLabel,\n assetType,\n}: {\n assetId: string;\n title?: string;\n fallbackLabel: string;\n assetType?: string;\n}) {\n const openAsset = useAssetPanelStore((s) => s.openAsset);\n const label = title ?? fallbackLabel;\n return (\n <button\n type=\"button\"\n data-asset-id={assetId}\n title={`Open ${label}`}\n onClick={() => openAsset(assetId, { name: title, type: panelAssetType(assetType) })}\n className={cn(CHIP_PILL_CLASS, CHIP_LINK_CLASS, \"max-w-[275px] text-xs\")}\n >\n <MentionIcon\n thumbnailUrl={assetTypeToThumb(assetType)}\n fallbackIcon={assetTypeToIcon(assetType)}\n className={CHIP_ICON_CLASS}\n />\n <span className=\"min-w-0 max-w-[180px] overflow-hidden text-ellipsis\">{label}</span>\n </button>\n );\n}\n\n/** The line under a card's title that finishes its sentence with chips (\"for [project]\"). */\nexport function AssetChipLine({ children }: { children: ReactNode }) {\n return (\n <div className=\"flex flex-wrap items-center gap-1.5 border-t border-border/40 px-4 py-2 text-xs text-muted-foreground\">\n {children}\n </div>\n );\n}\n\n/** The record a tool call's arguments are, or an empty one while they stream. */\nexport function argsRecord(args: unknown): Record<string, unknown> {\n return isRecord(args) ? args : {};\n}\n\n/** A number field of a result record, when it is one. */\nexport function numberField(\n record: Record<string, unknown> | null | undefined,\n key: string,\n): number | undefined {\n const value = record?.[key];\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\n// ─── search_assets ───────────────────────────────────────────────────\n\n/** One match, as the card lists it. */\nexport interface SearchAssetRow {\n id: string;\n title: string;\n /** The type its icon is drawn for (`athena_converted_type`, else `athena_original_type`). */\n assetType: string | undefined;\n creator: string;\n updatedAt: string | undefined;\n workspaceAccess: string | undefined;\n}\n\nexport interface SearchAssetsResult {\n rows: SearchAssetRow[];\n /** `returned_count`: this page's matches. */\n count: number;\n /** The reason a search failed (`error_message`). */\n errorMessage: string | null;\n}\n\nfunction searchAssetCreator(asset: Record<string, unknown>): string {\n const user = isRecord(asset.created_by_user) ? asset.created_by_user : null;\n const fullName = [stringField(user, [\"first_name\"]), stringField(user, [\"last_name\"])]\n .filter(Boolean)\n .join(\" \");\n return stringField(user, [\"email\"]) ?? (fullName || null) ?? stringField(user, [\"id\"]) ?? \"Unknown\";\n}\n\n/** The page of matches agora's `search_assets` returned, or `null` for a result that is not one. */\nexport function readSearchAssetsResult(result: unknown): SearchAssetsResult | null {\n const data = normalizeResult(result);\n if (!data || !Array.isArray(data.assets)) return null;\n const rows = data.assets.flatMap((raw): SearchAssetRow[] => {\n if (!isRecord(raw)) return [];\n const id = stringField(raw, [\"id\"]);\n if (!id) return [];\n return [\n {\n id,\n title: stringField(raw, [\"title\"]) ?? \"Untitled\",\n assetType:\n stringField(raw, [\"athena_converted_type\", \"athena_original_type\", \"asset_type\"]) ??\n undefined,\n creator: searchAssetCreator(raw),\n updatedAt: stringField(raw, [\"updated_at\"]) ?? undefined,\n workspaceAccess: stringField(raw, [\"workspace_access\"]) ?? undefined,\n },\n ];\n });\n return {\n rows,\n count: numberField(data, \"returned_count\") ?? rows.length,\n errorMessage: stringField(data, [\"error_message\"]),\n };\n}\n\nfunction updatedDate(updatedAt: string | undefined): string | null {\n if (!updatedAt) return null;\n const date = new Date(updatedAt);\n return Number.isNaN(date.getTime()) ? null : date.toLocaleDateString();\n}\n\nfunction SearchAssetResultRow({ row, divided }: { row: SearchAssetRow; divided: boolean }) {\n const openAsset = useAssetPanelStore((s) => s.openAsset);\n const updated = updatedDate(row.updatedAt);\n return (\n <li>\n {divided ? <div aria-hidden=\"true\" className=\"ml-11 border-t border-border/60\" /> : null}\n <button\n type=\"button\"\n data-asset-id={row.id}\n onClick={() => openAsset(row.id, { name: row.title, type: panelAssetType(row.assetType) })}\n className=\"flex w-full items-start gap-2 rounded-md px-1 py-3 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\"\n >\n <AssetTypeIcon assetType={row.assetType} size=\"md\" />\n <span className=\"flex min-w-0 flex-col gap-0.5\">\n <span className=\"break-words text-[13px] font-medium text-foreground\">{row.title}</span>\n <span className=\"text-[11px] text-muted-foreground\">Created by {row.creator}</span>\n {updated ? (\n <span className=\"text-[11px] text-muted-foreground\">Updated {updated}</span>\n ) : null}\n {row.workspaceAccess ? (\n <span className=\"text-[11px] text-muted-foreground\">{row.workspaceAccess}</span>\n ) : null}\n </span>\n </button>\n </li>\n );\n}\n\nconst SearchAssetsToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status, isError } = props;\n const classification = classifyToolResult({ status, result, isError });\n // A search refused at the approval gate or parked by the runtime is the\n // generic card's to draw: it is neither a result nor a failure.\n if (classification.state === \"rejected\" || classification.state === \"paused\") {\n return <ToolFallback {...props} icon={SearchIcon} />;\n }\n const typedArgs = argsRecord(args);\n const keyword = stringField(typedArgs, [\"title_contains_keyword\"]);\n const data = readSearchAssetsResult(result);\n const card = toolCardOutcome({\n status,\n classification,\n resultFailure: data?.errorMessage ? `Search failed: ${data.errorMessage}` : null,\n });\n\n const running = keyword ? `Searching assets for \"${keyword}\"...` : \"Searching assets...\";\n const found = data\n ? `Found ${data.count === 1 ? \"1 asset\" : `${data.count} assets`}${keyword ? ` for \"${keyword}\"` : \"\"}`\n : `Search complete${keyword ? ` for \"${keyword}\"` : \"\"}`;\n const title =\n card.status === \"running\" ? running : card.status === \"complete\" ? found : withoutEllipsis(running);\n\n return (\n <ToolCard\n icon={SearchIcon}\n status={card.status}\n title={title}\n toolName={toolName}\n args={typedArgs}\n result={result}\n error={card.failure}\n >\n {card.status === \"complete\" && data && data.rows.length > 0 ? (\n <ExpandableSection label=\"Show assets\">\n <ul className=\"flex flex-col\">\n {data.rows.map((row, index) => (\n <SearchAssetResultRow key={`${row.id}:${index}`} row={row} divided={index > 0} />\n ))}\n </ul>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const SearchAssetsToolUI = memo(\n SearchAssetsToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nSearchAssetsToolUI.displayName = \"SearchAssetsToolUI\";\n\n// ─── list_contents ───────────────────────────────────────────────────\n\n/** One top-level entry of a listing: its title, and the asset it is when the listing names one. */\nexport interface ListedEntry {\n title: string;\n assetId: string | undefined;\n /** The type its icon is drawn for. */\n assetType: string | undefined;\n}\n\nexport interface ListContentsResult {\n /** `structure_tree_ascii`: the whole tree as text. */\n tree: string | null;\n /** `tree_data`'s top level (this page of it), or `null` when the result has none. */\n entries: ListedEntry[] | null;\n pagination: { currentPage: number; totalPages: number } | null;\n}\n\nconst LISTED_NODE_ID = /(?:^|\\s)id='([^']+)'/;\nconst LISTED_NODE_KIND = /(?:^|\\s)type='([^']+)'/;\nconst LISTED_NODE_MEDIA_TYPE = /(?:^|\\s)media_type='([^']+)'/;\n\n/**\n * One listed node's id, kind (`file` / `folder`) and media type. agora\n * serializes the listing with `default=str`, so a node usually arrives as its\n * pydantic text (`name='Q3' type='folder' id='asset_…' media_type='athena/folder'\n * children={…}`, its own fields ahead of its children's); a node can also\n * arrive as an object.\n */\nfunction readListedNode(raw: unknown): { id?: string; kind?: string; mediaType?: string } {\n if (typeof raw === \"string\") {\n return {\n id: LISTED_NODE_ID.exec(raw)?.[1],\n kind: LISTED_NODE_KIND.exec(raw)?.[1],\n mediaType: LISTED_NODE_MEDIA_TYPE.exec(raw)?.[1],\n };\n }\n if (!isRecord(raw)) return {};\n return {\n id: stringField(raw, [\"id\"]) ?? undefined,\n kind: stringField(raw, [\"type\"]) ?? undefined,\n mediaType: stringField(raw, [\"media_type\"]) ?? undefined,\n };\n}\n\n/** The asset type a listed node's icon is drawn for: an Athena asset's type, a folder, or an upload's kind of file. */\nfunction listedAssetType({ kind, mediaType }: { kind?: string; mediaType?: string }): string | undefined {\n if (mediaType?.startsWith(\"athena/\")) return mediaType.slice(\"athena/\".length);\n if (kind === \"folder\") return \"folder\";\n if (mediaType === \"application/pdf\") return \"pdf\";\n const family = mediaType?.split(\"/\")[0];\n return family === \"image\" || family === \"video\" || family === \"audio\" ? family : undefined;\n}\n\n/** The listing agora's `list_contents` returned, or `null` for a result that is not a record. */\nexport function readListContentsResult(result: unknown): ListContentsResult | null {\n const data = normalizeResult(result);\n if (!data) return null;\n const treeData = isRecord(data.tree_data) ? data.tree_data : null;\n const pagination = isRecord(data.pagination) ? data.pagination : null;\n const currentPage = numberField(pagination, \"current_page\");\n const totalPages = numberField(pagination, \"total_pages\");\n return {\n tree: stringField(data, [\"structure_tree_ascii\"]),\n entries: treeData\n ? Object.entries(treeData).map(([title, raw]) => {\n const node = readListedNode(raw);\n return { title, assetId: node.id, assetType: listedAssetType(node) };\n })\n : null,\n pagination:\n currentPage !== undefined && totalPages !== undefined ? { currentPage, totalPages } : null,\n };\n}\n\nfunction ListedEntryRow({ entry, divided }: { entry: ListedEntry; divided: boolean }) {\n const openAsset = useAssetPanelStore((s) => s.openAsset);\n const { assetId } = entry;\n return (\n <li>\n {divided ? <div aria-hidden=\"true\" className=\"ml-10 border-t border-border/60\" /> : null}\n {assetId ? (\n <button\n type=\"button\"\n data-asset-id={assetId}\n onClick={() =>\n openAsset(assetId, { name: entry.title, type: panelAssetType(entry.assetType) })\n }\n className=\"flex w-full items-center gap-4 rounded-md py-2 text-left transition-colors hover:bg-muted/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\"\n >\n <AssetTypeIcon assetType={entry.assetType} size=\"sm\" />\n <span className=\"min-w-0 truncate text-[13px] font-medium text-foreground\">\n {entry.title}\n </span>\n </button>\n ) : (\n <p className=\"py-1 pl-10 text-[11px] text-muted-foreground\">{entry.title}</p>\n )}\n </li>\n );\n}\n\nconst ListContentsToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status, isError } = props;\n const classification = classifyToolResult({ status, result, isError });\n if (classification.state === \"rejected\" || classification.state === \"paused\") {\n return <ToolFallback {...props} icon={FolderIcon} />;\n }\n const typedArgs = argsRecord(args);\n // Olympus names the listed asset by its title, read from its asset cache;\n // the call carries only its id, so the card names the workspace alone.\n const target = stringField(typedArgs, [\"asset_id\"]) ? \"\" : \" for workspace\";\n const data = readListContentsResult(result);\n const card = toolCardOutcome({ status, classification });\n\n const running = \"Listing contents...\";\n const listed = data\n ? `Contents listed - Page ${data.pagination?.currentPage ?? 1} of ${data.pagination?.totalPages ?? 1}${target}`\n : `Contents listed${target}`;\n const title =\n card.status === \"running\" ? running : card.status === \"complete\" ? listed : withoutEllipsis(running);\n const entries = data?.entries ?? [];\n const hasListing = Boolean(data && (data.tree || entries.length > 0 || data.pagination));\n\n return (\n <ToolCard\n icon={FolderIcon}\n status={card.status}\n title={title}\n toolName={toolName}\n args={typedArgs}\n result={result}\n error={card.failure}\n >\n {card.status === \"complete\" && data && hasListing ? (\n <ExpandableSection label=\"Show contents\">\n <div className=\"flex flex-col gap-3\">\n {data.tree ? (\n <pre className=\"overflow-x-auto whitespace-pre-wrap rounded bg-muted/50 p-2 text-[11px] leading-4 text-foreground\">\n {data.tree}\n </pre>\n ) : null}\n {entries.length > 0 ? (\n <div className=\"max-h-60 overflow-y-auto pr-0.5\">\n <ul className=\"flex flex-col\">\n {entries.map((entry, index) => (\n <ListedEntryRow\n key={`${entry.title}:${index}`}\n entry={entry}\n divided={index > 0 && entries[index - 1]?.assetId !== undefined}\n />\n ))}\n </ul>\n </div>\n ) : null}\n {data.pagination ? (\n <span className=\"text-[10px] text-muted-foreground\">\n Page {data.pagination.currentPage} of {data.pagination.totalPages}\n </span>\n ) : null}\n </div>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const ListContentsToolUI = memo(\n ListContentsToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nListContentsToolUI.displayName = \"ListContentsToolUI\";\n\n// ─── project_links ───────────────────────────────────────────────────\n\n/**\n * Streamed or model-written `asset_ids` are not always an array: a single id\n * or a comma-separated string arrives as a string.\n */\nexport function normalizeProjectLinksAssetIds(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.filter((id): id is string => typeof id === \"string\" && id.length > 0);\n }\n if (typeof value === \"string\") {\n return value\n .split(\",\")\n .map((id) => id.trim())\n .filter((id) => id.length > 0);\n }\n return [];\n}\n\nfunction projectLinksRunningTitle({ operation, count }: { operation: string; count: number }): string {\n const links = `${count} asset link${count !== 1 ? \"s\" : \"\"}`;\n switch (operation) {\n case \"read\":\n return \"Reading project links...\";\n case \"add\":\n return `Adding ${links} to project...`;\n case \"remove\":\n return `Removing ${links} from project...`;\n case \"set\":\n return `Setting ${links} on project...`;\n default:\n return \"Managing project links...\";\n }\n}\n\nconst PROJECT_LINKS_DETAIL_LABEL: Record<string, string> = {\n read: \"Linked\",\n add: \"Added\",\n remove: \"Removed\",\n set: \"Set to\",\n};\n\nconst ProjectLinksToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status, isError } = props;\n const classification = classifyToolResult({ status, result, isError });\n if (classification.state === \"rejected\" || classification.state === \"paused\") {\n return <ToolFallback {...props} icon={LinkIcon} />;\n }\n const typedArgs = argsRecord(args);\n const operation = stringField(typedArgs, [\"type\"]) ?? \"read\";\n const projectId = stringField(typedArgs, [\"project_id\"]);\n const argAssetIds = normalizeProjectLinksAssetIds(typedArgs.asset_ids);\n const data = normalizeResult(result);\n // Every answer agora writes in prose (\"Project with ID … not found\",\n // \"Error: …\") is a refusal; a change or a read answers in JSON.\n const prose = typeof result === \"string\" && !data ? result.trim() : \"\";\n const card = toolCardOutcome({ status, classification, resultFailure: prose || null });\n\n const assetIds =\n operation === \"read\" && Array.isArray(data?.asset_ids)\n ? normalizeProjectLinksAssetIds(data.asset_ids)\n : argAssetIds;\n const singleAsset = assetIds.length === 1 ? assetIds[0] : undefined;\n const changesOneAsset = singleAsset !== undefined && operation !== \"read\";\n const message = stringField(data, [\"message\"]);\n const projectTitle = stringField(data, [\"project_title\"]) ?? undefined;\n\n const running = projectLinksRunningTitle({ operation, count: argAssetIds.length });\n const title =\n card.status === \"running\"\n ? running\n : card.status === \"complete\"\n ? (message ?? withoutEllipsis(running))\n : withoutEllipsis(running);\n const isDone = card.status === \"complete\";\n const projectChip = projectId ? (\n <AssetChip\n assetId={projectId}\n title={projectTitle}\n fallbackLabel=\"Project\"\n assetType=\"project\"\n />\n ) : null;\n\n return (\n <ToolCard\n icon={LinkIcon}\n status={card.status}\n title={title}\n toolName={toolName}\n args={typedArgs}\n result={result}\n error={card.failure}\n >\n {isDone && changesOneAsset ? (\n <AssetChipLine>\n <AssetChip assetId={singleAsset} fallbackLabel={singleAsset} />\n {projectChip ? (\n <>\n <ArrowRightIcon aria-hidden=\"true\" className=\"size-3.5 shrink-0\" />\n {projectChip}\n </>\n ) : null}\n </AssetChipLine>\n ) : isDone && message && projectChip ? (\n <AssetChipLine>\n <span>on</span>\n {projectChip}\n </AssetChipLine>\n ) : null}\n {isDone && !changesOneAsset && assetIds.length > 0 ? (\n <ExpandableSection label=\"Show assets\">\n <div className=\"flex flex-col\">\n <p className=\"py-1 text-[11px] font-semibold text-muted-foreground\">\n {PROJECT_LINKS_DETAIL_LABEL[operation] ?? operation}\n </p>\n <ul className=\"flex flex-col divide-y divide-border/60\">\n {assetIds.map((assetId, index) => (\n <li key={`${assetId}:${index}`} className=\"py-1\">\n <AssetChip assetId={assetId} fallbackLabel={assetId} />\n </li>\n ))}\n </ul>\n </div>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const ProjectLinksToolUI = memo(\n ProjectLinksToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nProjectLinksToolUI.displayName = \"ProjectLinksToolUI\";\n"],"names":["assetTypeToThumb","jsx","MentionIcon","cn","assetTypeToIcon","useAssetPanelStore","jsxs","CHIP_PILL_CLASS","CHIP_LINK_CLASS","CHIP_ICON_CLASS","isRecord","stringField","normalizeResult","classifyToolResult","ToolFallback","SearchIcon","ToolCard","ExpandableSection","memo","FolderIcon","_a","LinkIcon","Fragment","ArrowRightIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Athena Drive cards, as Athena on the web draws them: `search_assets`
|
|
3
|
+
* (the matches, each opening its asset), `list_contents` (a folder's tree and
|
|
4
|
+
* the assets in it) and `project_links` (a project's links as asset chips).
|
|
5
|
+
*
|
|
6
|
+
* Olympus reads each asset's title and thumbnail from its asset cache; these
|
|
7
|
+
* cards draw only what the call's arguments and result carry. An asset shows
|
|
8
|
+
* its type's icon when the result names its type, and an asset the result
|
|
9
|
+
* names by id alone shows its id.
|
|
10
|
+
*/
|
|
11
|
+
import type { ToolCallMessagePartComponent, ToolCallMessagePartStatus } from "@assistant-ui/react";
|
|
12
|
+
import { type ToolResultClassification } from "../agent-runtime/src/index";
|
|
13
|
+
import { type ReactNode } from "react";
|
|
14
|
+
import { type ToolStatus } from "./primitives";
|
|
15
|
+
/** A running title without its trailing "...": what a stopped or waiting call was doing. */
|
|
16
|
+
export declare function withoutEllipsis(title: string): string;
|
|
17
|
+
/** How a card shows its call: the status it renders with, and why the call failed when it did. */
|
|
18
|
+
export interface ToolCardOutcome {
|
|
19
|
+
status: ToolStatus;
|
|
20
|
+
failure: string | null;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The card's status. A call the runtime stopped reads as failed with the
|
|
24
|
+
* runtime's reason; a settled call reads as failed when its result reports a
|
|
25
|
+
* failure in the tool's own words (`resultFailure`, as Olympus words it) or
|
|
26
|
+
* the shared classifier reads one. A refusal at the approval gate never gets
|
|
27
|
+
* here: the generic card draws it.
|
|
28
|
+
*/
|
|
29
|
+
export declare function toolCardOutcome({ status, classification, resultFailure, }: {
|
|
30
|
+
status: ToolCallMessagePartStatus | undefined;
|
|
31
|
+
classification: ToolResultClassification;
|
|
32
|
+
resultFailure?: string | null;
|
|
33
|
+
}): ToolCardOutcome;
|
|
34
|
+
declare const ASSET_ICON_TILE: {
|
|
35
|
+
readonly md: {
|
|
36
|
+
readonly box: "size-8";
|
|
37
|
+
readonly icon: "size-4";
|
|
38
|
+
};
|
|
39
|
+
readonly sm: {
|
|
40
|
+
readonly box: "size-6";
|
|
41
|
+
readonly icon: "size-3.5";
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* An asset's type icon, as the `@` menu draws it: the host's asset-type SVG
|
|
46
|
+
* when it serves them (`configureAssetIconBasePath`), else the type's Lucide
|
|
47
|
+
* icon on a muted tile. Olympus draws the asset's own thumbnail, which needs
|
|
48
|
+
* the asset read; its type is what a result carries.
|
|
49
|
+
*/
|
|
50
|
+
export declare function AssetTypeIcon({ assetType, size, }: {
|
|
51
|
+
assetType: string | undefined;
|
|
52
|
+
size: keyof typeof ASSET_ICON_TILE;
|
|
53
|
+
}): import("react").JSX.Element;
|
|
54
|
+
/**
|
|
55
|
+
* An asset as the chip a chat message draws, opening the asset on click.
|
|
56
|
+
* `title` is the asset's title when the call carried one; without it the
|
|
57
|
+
* chip shows `fallbackLabel` and the asset opens unnamed, for whatever opens
|
|
58
|
+
* it to name.
|
|
59
|
+
*/
|
|
60
|
+
export declare function AssetChip({ assetId, title, fallbackLabel, assetType, }: {
|
|
61
|
+
assetId: string;
|
|
62
|
+
title?: string;
|
|
63
|
+
fallbackLabel: string;
|
|
64
|
+
assetType?: string;
|
|
65
|
+
}): import("react").JSX.Element;
|
|
66
|
+
/** The line under a card's title that finishes its sentence with chips ("for [project]"). */
|
|
67
|
+
export declare function AssetChipLine({ children }: {
|
|
68
|
+
children: ReactNode;
|
|
69
|
+
}): import("react").JSX.Element;
|
|
70
|
+
/** The record a tool call's arguments are, or an empty one while they stream. */
|
|
71
|
+
export declare function argsRecord(args: unknown): Record<string, unknown>;
|
|
72
|
+
/** A number field of a result record, when it is one. */
|
|
73
|
+
export declare function numberField(record: Record<string, unknown> | null | undefined, key: string): number | undefined;
|
|
74
|
+
/** One match, as the card lists it. */
|
|
75
|
+
export interface SearchAssetRow {
|
|
76
|
+
id: string;
|
|
77
|
+
title: string;
|
|
78
|
+
/** The type its icon is drawn for (`athena_converted_type`, else `athena_original_type`). */
|
|
79
|
+
assetType: string | undefined;
|
|
80
|
+
creator: string;
|
|
81
|
+
updatedAt: string | undefined;
|
|
82
|
+
workspaceAccess: string | undefined;
|
|
83
|
+
}
|
|
84
|
+
export interface SearchAssetsResult {
|
|
85
|
+
rows: SearchAssetRow[];
|
|
86
|
+
/** `returned_count`: this page's matches. */
|
|
87
|
+
count: number;
|
|
88
|
+
/** The reason a search failed (`error_message`). */
|
|
89
|
+
errorMessage: string | null;
|
|
90
|
+
}
|
|
91
|
+
/** The page of matches agora's `search_assets` returned, or `null` for a result that is not one. */
|
|
92
|
+
export declare function readSearchAssetsResult(result: unknown): SearchAssetsResult | null;
|
|
93
|
+
export declare const SearchAssetsToolUI: ToolCallMessagePartComponent;
|
|
94
|
+
/** One top-level entry of a listing: its title, and the asset it is when the listing names one. */
|
|
95
|
+
export interface ListedEntry {
|
|
96
|
+
title: string;
|
|
97
|
+
assetId: string | undefined;
|
|
98
|
+
/** The type its icon is drawn for. */
|
|
99
|
+
assetType: string | undefined;
|
|
100
|
+
}
|
|
101
|
+
export interface ListContentsResult {
|
|
102
|
+
/** `structure_tree_ascii`: the whole tree as text. */
|
|
103
|
+
tree: string | null;
|
|
104
|
+
/** `tree_data`'s top level (this page of it), or `null` when the result has none. */
|
|
105
|
+
entries: ListedEntry[] | null;
|
|
106
|
+
pagination: {
|
|
107
|
+
currentPage: number;
|
|
108
|
+
totalPages: number;
|
|
109
|
+
} | null;
|
|
110
|
+
}
|
|
111
|
+
/** The listing agora's `list_contents` returned, or `null` for a result that is not a record. */
|
|
112
|
+
export declare function readListContentsResult(result: unknown): ListContentsResult | null;
|
|
113
|
+
export declare const ListContentsToolUI: ToolCallMessagePartComponent;
|
|
114
|
+
/**
|
|
115
|
+
* Streamed or model-written `asset_ids` are not always an array: a single id
|
|
116
|
+
* or a comma-separated string arrives as a string.
|
|
117
|
+
*/
|
|
118
|
+
export declare function normalizeProjectLinksAssetIds(value: unknown): string[];
|
|
119
|
+
export declare const ProjectLinksToolUI: ToolCallMessagePartComponent;
|
|
120
|
+
export {};
|