@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 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-lane-group.js","sources":["../../src/subagents/subagent-lane-group.tsx"],"sourcesContent":["'use client';\n\n/**\n * A fan-out of subagent lanes, drawn as Athena draws it in every app: sibling\n * `task` calls of one turn side by side (a wrapping grid) under the\n * orchestration strip, with fork connectors from the strip to each card; a lone\n * delegation as one card. Above four lanes the group pages, four at a time.\n * A lane's \"View transcript\" opens its transcript drawer.\n *\n * The group reads where each lane is (its own status, and whether the run's\n * approval holds it) and keeps the clocks the wire does not carry (when a lane\n * was first seen, last changed and finished). It only reads: approving is the\n * approval card's, or a host's own controls in a queued lane's card\n * (`renderLaneApproval`).\n */\nimport {\n finalizeOrphanedSubagents,\n isTerminalSubagentStatus,\n type PendingActionRequest,\n type SubagentDiscoverySnapshot,\n subagentAwaitingApproval,\n subagentLaneApprovalWait,\n subagentLanesHoldingUnseenApproval,\n} from '@athenaintel/agent-runtime';\nimport {\n type ComponentType,\n type ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ToolPartPlacementProvider } from '../chat/super-grouping/tool-part-placement';\nimport { useApprovalWaitInScope } from '../chat/use-statewire-approval-request';\nimport { cn } from '../lib/utils';\nimport {\n laneDurationLabel,\n SUBAGENT_LANES_PAGE_SIZE,\n type SubagentTiming,\n subagentLanePageCount,\n} from './lane-model';\nimport {\n SubagentForkConnectors,\n SubagentLaneCard,\n SubagentLanesPager,\n SubagentOrchestrationStrip,\n} from './lane-parts';\nimport {\n SubagentTranscriptDrawer,\n type SubagentTranscriptDrawerProps,\n} from './subagent-transcript-drawer';\n\n// ─── Clocks ──────────────────────────────────────────────────────────\n\nfunction snapshotFingerprint(snap: SubagentDiscoverySnapshot): string {\n return [\n snap.status,\n snap.toolCallCount,\n snap.messageCount,\n snap.currentText.length,\n snap.output?.length ?? 0,\n snap.todos?.length ?? 0,\n snap.todos?.filter((todo) => todo.status === 'completed').length ?? 0,\n ].join('|');\n}\n\n/**\n * When this client saw each lane begin, change (the stall badge's clock) and\n * finish (a duration it witnessed). An every-render effect over a ref, so a\n * streaming re-render stamps its change without a state update of its own; a\n * duration shows only for a lane seen running (`sawActive`), so a session\n * reopened finished never shows a made-up \"0s\".\n *\n * A running lane first seen after its delegation (a reload) counts from when\n * the agent delegated it (`delegatedAtMs`, the server's stamp), not from this\n * mount. A lane `held` on a person (its approval, or a run parked on one)\n * keeps its last-event clock current while the hold lasts, so the time a\n * person takes to answer never counts as the lane's silence.\n */\nfunction useSubagentTimings({\n snapshots,\n isHeld,\n isSettled,\n delegatedAtMs,\n}: {\n snapshots: readonly SubagentDiscoverySnapshot[];\n isHeld: (snap: SubagentDiscoverySnapshot) => boolean;\n /** The lane runs no longer: its own status settled, or its run stopped it. */\n isSettled: (snap: SubagentDiscoverySnapshot) => boolean;\n delegatedAtMs: number | null | undefined;\n}): ReadonlyMap<string, SubagentTiming> {\n const store = useRef(new Map<string, { fingerprint: string; timing: SubagentTiming }>());\n useEffect(() => {\n const now = Date.now();\n for (const snap of snapshots) {\n const settled = isSettled(snap);\n const fingerprint = `${snapshotFingerprint(snap)}|${settled}`;\n const entry = store.current.get(snap.id);\n if (!entry) {\n const startedEarlier =\n snap.status === 'running' && delegatedAtMs != null && delegatedAtMs < now ? delegatedAtMs : now;\n store.current.set(snap.id, {\n fingerprint,\n timing: {\n firstSeenAt: startedEarlier,\n lastEventAt: now,\n completedAt: settled ? now : null,\n sawActive: snap.status === 'running' && !settled,\n },\n });\n continue;\n }\n if (isHeld(snap)) entry.timing.lastEventAt = now;\n if (entry.fingerprint === fingerprint) continue;\n entry.fingerprint = fingerprint;\n entry.timing.lastEventAt = now;\n if (snap.status === 'running' && !settled) entry.timing.sawActive = true;\n if (settled && entry.timing.completedAt == null) {\n entry.timing.completedAt = now;\n }\n }\n });\n return new Map([...store.current].map(([id, entry]) => [id, entry.timing]));\n}\n\n/** A one-second clock while anything is active, so elapsed times and the stall badge tick. */\nfunction useNowTick(active: boolean): number {\n const [now, setNow] = useState(() => Date.now());\n useEffect(() => {\n if (!active) return undefined;\n setNow(Date.now());\n const id = setInterval(() => setNow(Date.now()), 1000);\n return () => clearInterval(id);\n }, [active]);\n return now;\n}\n\n// ─── The group ───────────────────────────────────────────────────────\n\n/** What the run waits on a person for, as the group reads it (`useApprovalWaitInScope`'s shape). */\nexport interface SubagentLaneGroupApprovalWait {\n /** The gated calls still waiting on a decision, by `tool_call_id`. */\n toolCallIds: ReadonlySet<string>;\n /** The run is parked on a request a person answers: no lane's silence is a stall. */\n runParked: boolean;\n /** The approval's gated calls, which name a call a lane's card cannot show. */\n actionRequests?: readonly Pick<PendingActionRequest, 'toolCallId' | 'name' | 'args'>[];\n}\n\nexport interface SubagentLaneGroupProps {\n /** The group's lanes, in the order the agent delegated them. */\n lanes: readonly SubagentDiscoverySnapshot[];\n /**\n * The context that dispatched the lanes has ended (the `eval` call whose\n * in-eval `task()` issued them): a lane still queued or running then never\n * settles, so it reads as interrupted.\n */\n ownerTerminal?: boolean;\n /**\n * Every call of the delegating turn while that turn is still open (running\n * or waiting on a person), `openTurnToolCallIds`: a lane whose steps did not\n * ride (the conversation was opened after its run parked) still reads as\n * waiting on the approval of a call it made. Absent for a settled turn.\n */\n turnToolCallIds?: ReadonlySet<string>;\n /** When the agent delegated the group (the delegating message's server stamp, ms). */\n delegatedAtMs?: number | null;\n /**\n * Lanes whose run ended before they settled (the run was stopped, or the\n * turn is behind the conversation): they read Stopped, not live.\n */\n stoppedLaneIds?: ReadonlySet<string>;\n /** The run's approval wait; the chat's (`useApprovalWaitInScope`) by default. */\n approvalWait?: SubagentLaneGroupApprovalWait;\n /**\n * A host's own approval controls for a queued lane (Athena on the web\n * approves, edits or rejects a dispatch in its card); `undefined` for none.\n * Without them, a lane waiting on its approval says so and the approval\n * card answers.\n */\n renderLaneApproval?: (lane: SubagentDiscoverySnapshot) => ReactNode | undefined;\n /** Shown under the cards (a host's notice about the approvals they hold). */\n footer?: ReactNode;\n /** The drawer \"View transcript\" opens; the SDK's own by default. */\n TranscriptDrawer?: ComponentType<SubagentTranscriptDrawerProps>;\n}\n\nconst NO_LANE_IDS: ReadonlySet<string> = new Set();\n\n/**\n * The lanes of one delegation: a lone card, or the parallel fan-out with its\n * strip, connectors and pager. See the module comment.\n */\nexport function SubagentLaneGroup({\n lanes,\n ownerTerminal = false,\n turnToolCallIds,\n delegatedAtMs,\n stoppedLaneIds = NO_LANE_IDS,\n approvalWait: approvalWaitProp,\n renderLaneApproval,\n footer,\n TranscriptDrawer = SubagentTranscriptDrawer,\n}: SubagentLaneGroupProps) {\n const snapshots = useMemo(() => finalizeOrphanedSubagents(lanes, ownerTerminal), [lanes, ownerTerminal]);\n const scopedWait = useApprovalWaitInScope();\n const approvalWait = approvalWaitProp ?? scopedWait;\n // A lane whose transcript carries the gated call is joined by the call id; a\n // lane opened after its run parked carries no steps, so a gated call none of\n // the turn's calls or transcripts shows is held by the turn's step-less lanes.\n const unseenApproval = useMemo(\n () =>\n turnToolCallIds === undefined\n ? undefined\n : subagentLanesHoldingUnseenApproval({\n lanes: snapshots,\n turnToolCallIds,\n toolCallIds: approvalWait.toolCallIds,\n }),\n [snapshots, turnToolCallIds, approvalWait.toolCallIds],\n );\n const awaitingLaneIds = useMemo(\n () =>\n approvalWait.toolCallIds.size === 0\n ? NO_LANE_IDS\n : new Set(\n snapshots\n .filter(\n (lane) =>\n subagentAwaitingApproval({ lane, toolCallIds: approvalWait.toolCallIds }) ||\n unseenApproval?.laneIds.has(lane.id) === true,\n )\n .map((lane) => lane.id),\n ),\n [snapshots, approvalWait.toolCallIds, unseenApproval],\n );\n const isSettled = (lane: SubagentDiscoverySnapshot) =>\n isTerminalSubagentStatus(lane.status) || stoppedLaneIds.has(lane.id);\n const timings = useSubagentTimings({\n snapshots,\n isHeld: (snap) => approvalWait.runParked || awaitingLaneIds.has(snap.id),\n isSettled,\n delegatedAtMs,\n });\n const anyActive = snapshots.some((lane) => !isSettled(lane));\n const now = useNowTick(anyActive);\n const isParallel = snapshots.length > 1;\n const [page, setPage] = useState(0);\n const [drawerId, setDrawerId] = useState<string | null>(null);\n\n // The page is clamped at render, so a shrinking list never strands an empty page.\n const pageCount = subagentLanePageCount(snapshots.length);\n const currentPage = Math.min(page, pageCount - 1);\n const visibleSnapshots =\n pageCount > 1\n ? snapshots.slice(currentPage * SUBAGENT_LANES_PAGE_SIZE, (currentPage + 1) * SUBAGENT_LANES_PAGE_SIZE)\n : snapshots;\n\n const containerRef = useRef<HTMLDivElement | null>(null);\n const stripRef = useRef<HTMLDivElement | null>(null);\n const cardEls = useRef(new Map<string, HTMLElement>());\n // Stable: an inline callback ref would detach and reattach every card's\n // element on each streamed update (React calls the old ref with null first).\n const registerCardEl = useCallback((id: string, el: HTMLElement | null) => {\n if (el) cardEls.current.set(id, el);\n else cardEls.current.delete(id);\n }, []);\n const closeDrawer = useCallback(() => setDrawerId(null), []);\n\n const drawerSnapshot = drawerId ? snapshots.find((lane) => lane.id === drawerId) : undefined;\n\n return (\n <div ref={containerRef} data-slot=\"subagent-lanes\" className=\"relative my-2\">\n {isParallel ? (\n <div className=\"mb-4\">\n <SubagentOrchestrationStrip\n snapshots={snapshots}\n timings={timings}\n now={now}\n stripRef={stripRef}\n awaitingLaneIds={awaitingLaneIds}\n stoppedLaneIds={stoppedLaneIds}\n />\n </div>\n ) : null}\n {isParallel ? (\n <SubagentForkConnectors\n containerRef={containerRef}\n stripRef={stripRef}\n cardEls={cardEls}\n snapshots={visibleSnapshots}\n stoppedLaneIds={stoppedLaneIds}\n />\n ) : null}\n <div\n data-slot=\"subagent-lane-cards\"\n className={cn(\n 'relative z-10',\n // Lanes sized by the column, not the viewport: a chat column is\n // narrow on any screen, and auto-fit lays out as many lanes side by\n // side as fit at 250px each.\n isParallel && 'grid grid-cols-[repeat(auto-fit,minmax(250px,1fr))] gap-3',\n )}\n >\n {visibleSnapshots.map((snapshot, index) => (\n <SubagentLaneCard\n key={snapshot.id}\n snapshot={snapshot}\n timing={timings.get(snapshot.id)}\n now={now}\n duration={laneDurationLabel({\n snapshot,\n timing: timings.get(snapshot.id),\n now,\n stopped: stoppedLaneIds.has(snapshot.id),\n })}\n stopped={stoppedLaneIds.has(snapshot.id)}\n index={index}\n onOpenTranscript={setDrawerId}\n registerCardEl={registerCardEl}\n wait={{\n ...subagentLaneApprovalWait({\n lane: snapshot,\n toolCallIds: approvalWait.toolCallIds,\n unseenApproval,\n actionRequests: approvalWait.actionRequests,\n }),\n runParked: approvalWait.runParked,\n }}\n approval={renderLaneApproval?.(snapshot)}\n />\n ))}\n </div>\n {footer}\n {pageCount > 1 ? <SubagentLanesPager page={currentPage} pageCount={pageCount} onPageChange={setPage} /> : null}\n {drawerSnapshot ? (\n // The drawer lays its own turns out: the placement of the card it\n // opened from ends here.\n <ToolPartPlacementProvider value={null}>\n <TranscriptDrawer\n snapshot={drawerSnapshot}\n durationLabel={laneDurationLabel({\n snapshot: drawerSnapshot,\n timing: timings.get(drawerSnapshot.id),\n now,\n stopped: stoppedLaneIds.has(drawerSnapshot.id),\n })}\n awaitingApproval={awaitingLaneIds.has(drawerSnapshot.id)}\n stopped={stoppedLaneIds.has(drawerSnapshot.id)}\n onClose={closeDrawer}\n />\n </ToolPartPlacementProvider>\n ) : null}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const react = require("@assistant-ui/react");
|
|
5
|
+
const reactQuery = require("@tanstack/react-query");
|
|
6
|
+
const lucideReact = require("lucide-react");
|
|
7
|
+
const require$$0 = require("react");
|
|
8
|
+
const reactDom = require("react-dom");
|
|
9
|
+
const SuperGroupingCard = require("../chat/super-grouping/SuperGroupingCard.cjs");
|
|
10
|
+
const SuperGroupingTranscript = require("../chat/super-grouping/SuperGroupingTranscript.cjs");
|
|
11
|
+
const useTurnSteps = require("../chat/super-grouping/use-turn-steps.cjs");
|
|
12
|
+
const useStatewireApprovalRequest = require("../chat/use-statewire-approval-request.cjs");
|
|
13
|
+
const athenaDiagnostics = require("../diagnostics/athena-diagnostics.cjs");
|
|
14
|
+
const lib_ownerDocument = require("../lib/owner-document.cjs");
|
|
15
|
+
const useAthenaRestQuery = require("../lib/use-athena-rest-query.cjs");
|
|
16
|
+
const themeStyleContext = require("../provider/theme-style-context.cjs");
|
|
17
|
+
const threadIdContext = require("../threads/thread-id-context.cjs");
|
|
18
|
+
const NestedPtcMessages = require("../tools/NestedPtcMessages.cjs");
|
|
19
|
+
const toolFallback = require("../tools/tool-fallback.cjs");
|
|
20
|
+
const subagents_laneFollow = require("./lane-follow.cjs");
|
|
21
|
+
const laneModel = require("./lane-model.cjs");
|
|
22
|
+
const useOmittedImagesInView = require("./use-omitted-images-in-view.cjs");
|
|
23
|
+
const laneFollow = require("../agent-runtime/src/lane-follow.cjs");
|
|
24
|
+
const laneHistory = require("../agent-runtime/src/lane-history.cjs");
|
|
25
|
+
const laneImages = require("../agent-runtime/src/lane-images.cjs");
|
|
26
|
+
const subagentTranscripts = require("../agent-runtime/src/subagent-transcripts.cjs");
|
|
27
|
+
const subagents = require("../agent-runtime/src/subagents.cjs");
|
|
28
|
+
const messages = require("../agent-runtime/src/messages.cjs");
|
|
29
|
+
const cnfast = require("cnfast");
|
|
30
|
+
const STATUS_TEXT = {
|
|
31
|
+
queued: "Queued",
|
|
32
|
+
running: "Running",
|
|
33
|
+
complete: "Complete",
|
|
34
|
+
error: "Failed",
|
|
35
|
+
stopped: "Stopped"
|
|
36
|
+
};
|
|
37
|
+
const NO_LANE_ENTRIES = [];
|
|
38
|
+
const BACKDROP_STYLE = {
|
|
39
|
+
position: "fixed",
|
|
40
|
+
inset: 0,
|
|
41
|
+
zIndex: 1e3,
|
|
42
|
+
backgroundColor: "rgba(0, 0, 0, 0.2)",
|
|
43
|
+
cursor: "default",
|
|
44
|
+
border: 0,
|
|
45
|
+
padding: 0
|
|
46
|
+
};
|
|
47
|
+
const PANEL_STYLE = {
|
|
48
|
+
position: "fixed",
|
|
49
|
+
top: 0,
|
|
50
|
+
right: 0,
|
|
51
|
+
bottom: 0,
|
|
52
|
+
zIndex: 1e3,
|
|
53
|
+
display: "flex",
|
|
54
|
+
flexDirection: "column",
|
|
55
|
+
width: 600,
|
|
56
|
+
maxWidth: "95vw"
|
|
57
|
+
};
|
|
58
|
+
const FOCUSABLE_SELECTOR = 'button:not([disabled]), a[href], summary, [tabindex]:not([tabindex="-1"]), input:not([disabled]), textarea:not([disabled])';
|
|
59
|
+
const stopPropagation = (event) => event.stopPropagation();
|
|
60
|
+
function DrawerFrame({
|
|
61
|
+
label,
|
|
62
|
+
onClose,
|
|
63
|
+
children
|
|
64
|
+
}) {
|
|
65
|
+
const ownerDocument = lib_ownerDocument.useOwnerDocument();
|
|
66
|
+
const themeStyle = themeStyleContext.useAthenaThemeStyle();
|
|
67
|
+
const panelRef = require$$0.useRef(null);
|
|
68
|
+
const onCloseRef = require$$0.useRef(onClose);
|
|
69
|
+
onCloseRef.current = onClose;
|
|
70
|
+
require$$0.useEffect(() => {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
if (!ownerDocument) return void 0;
|
|
73
|
+
const previouslyFocused = ownerDocument.activeElement;
|
|
74
|
+
(_b = (_a = panelRef.current) == null ? void 0 : _a.querySelector('[data-slot="subagent-transcript-close"]')) == null ? void 0 : _b.focus();
|
|
75
|
+
const onKeyDown = (event) => {
|
|
76
|
+
var _a2, _b2;
|
|
77
|
+
if (event.key === "Escape") {
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
event.stopPropagation();
|
|
80
|
+
onCloseRef.current();
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (event.key !== "Tab") return;
|
|
84
|
+
const focusable = Array.from(((_a2 = panelRef.current) == null ? void 0 : _a2.querySelectorAll(FOCUSABLE_SELECTOR)) ?? []);
|
|
85
|
+
const first = focusable[0];
|
|
86
|
+
const last = focusable.at(-1);
|
|
87
|
+
if (!first || !last) return;
|
|
88
|
+
const active = ownerDocument.activeElement;
|
|
89
|
+
const inside = active instanceof Node && ((_b2 = panelRef.current) == null ? void 0 : _b2.contains(active)) === true;
|
|
90
|
+
if (!inside || (event.shiftKey ? active === first : active === last)) {
|
|
91
|
+
event.preventDefault();
|
|
92
|
+
(event.shiftKey ? last : first).focus();
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
ownerDocument.addEventListener("keydown", onKeyDown, true);
|
|
96
|
+
return () => {
|
|
97
|
+
ownerDocument.removeEventListener("keydown", onKeyDown, true);
|
|
98
|
+
if (previouslyFocused instanceof HTMLElement && previouslyFocused.isConnected) previouslyFocused.focus();
|
|
99
|
+
};
|
|
100
|
+
}, [ownerDocument]);
|
|
101
|
+
if (!ownerDocument) return null;
|
|
102
|
+
return reactDom.createPortal(
|
|
103
|
+
// The SDK's scope classes bring its tokens and scoped reset to the
|
|
104
|
+
// portaled tree; the theme's variables keep the chat's palette.
|
|
105
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "athena-sdk athena-sdk-chrome", "data-slot": "subagent-transcript", style: themeStyle, children: [
|
|
106
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
107
|
+
"button",
|
|
108
|
+
{
|
|
109
|
+
type: "button",
|
|
110
|
+
tabIndex: -1,
|
|
111
|
+
"aria-label": "Close subagent transcript",
|
|
112
|
+
onClick: onClose,
|
|
113
|
+
className: "duration-200 animate-in fade-in-0 motion-reduce:animate-none",
|
|
114
|
+
style: BACKDROP_STYLE,
|
|
115
|
+
"data-slot": "subagent-transcript-backdrop"
|
|
116
|
+
}
|
|
117
|
+
),
|
|
118
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
119
|
+
"div",
|
|
120
|
+
{
|
|
121
|
+
ref: panelRef,
|
|
122
|
+
role: "dialog",
|
|
123
|
+
"aria-modal": "true",
|
|
124
|
+
"aria-label": label,
|
|
125
|
+
"data-slot": "subagent-transcript-panel",
|
|
126
|
+
style: PANEL_STYLE,
|
|
127
|
+
onClick: stopPropagation,
|
|
128
|
+
onPointerDown: stopPropagation,
|
|
129
|
+
onKeyDown: stopPropagation,
|
|
130
|
+
onFocus: stopPropagation,
|
|
131
|
+
onBlur: stopPropagation,
|
|
132
|
+
className: "border-l border-border bg-background text-foreground shadow-xl duration-300 animate-in slide-in-from-right motion-reduce:animate-none",
|
|
133
|
+
children
|
|
134
|
+
}
|
|
135
|
+
)
|
|
136
|
+
] }),
|
|
137
|
+
ownerDocument.body
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
function DrawerName({ name }) {
|
|
141
|
+
return /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "min-w-0 truncate text-sm font-semibold capitalize text-foreground", children: name });
|
|
142
|
+
}
|
|
143
|
+
function DrawerCloseButton({ onClose }) {
|
|
144
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
145
|
+
"button",
|
|
146
|
+
{
|
|
147
|
+
type: "button",
|
|
148
|
+
"aria-label": "Close",
|
|
149
|
+
"data-slot": "subagent-transcript-close",
|
|
150
|
+
onClick: onClose,
|
|
151
|
+
className: "ml-auto flex size-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
152
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { "aria-hidden": "true", className: "size-4" })
|
|
153
|
+
}
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
function DrawerStatusIcon({
|
|
157
|
+
status,
|
|
158
|
+
awaitingApproval,
|
|
159
|
+
stopped
|
|
160
|
+
}) {
|
|
161
|
+
if (status === "complete") {
|
|
162
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2Icon, { "aria-hidden": "true", className: "size-4 shrink-0 text-emerald-600" });
|
|
163
|
+
}
|
|
164
|
+
if (status === "error") return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircleIcon, { "aria-hidden": "true", className: "size-4 shrink-0 text-destructive" });
|
|
165
|
+
if (stopped) return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircleIcon, { "aria-hidden": "true", className: "size-4 shrink-0 text-muted-foreground" });
|
|
166
|
+
if (awaitingApproval) return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldAlertIcon, { "aria-hidden": "true", className: "size-4 shrink-0 text-amber-600" });
|
|
167
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.LoaderIcon, { "aria-hidden": "true", className: "size-4 shrink-0 text-muted-foreground motion-safe:animate-spin" });
|
|
168
|
+
}
|
|
169
|
+
function DiagnosticsRow({ label, value, mono = false }) {
|
|
170
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline gap-2 text-[11px]", children: [
|
|
171
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-20 shrink-0 text-muted-foreground", children: label }),
|
|
172
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cnfast.cn("min-w-0 select-all break-all text-foreground/80", mono && "font-mono"), children: value })
|
|
173
|
+
] });
|
|
174
|
+
}
|
|
175
|
+
function DrawerDiagnostics({
|
|
176
|
+
snapshot,
|
|
177
|
+
durationLabel,
|
|
178
|
+
stopped
|
|
179
|
+
}) {
|
|
180
|
+
const duration = durationLabel ?? (typeof snapshot.durationMs === "number" ? laneModel.formatLaneElapsed(snapshot.durationMs) : void 0);
|
|
181
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("details", { "data-slot": "subagent-transcript-details", className: "shrink-0 border-b border-border px-4 py-2", children: [
|
|
182
|
+
/* @__PURE__ */ jsxRuntime.jsx("summary", { className: "cursor-pointer select-none text-[11px] font-medium text-muted-foreground transition-colors hover:text-foreground", children: "Run details" }),
|
|
183
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1 pt-2 pb-1", children: [
|
|
184
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
185
|
+
DiagnosticsRow,
|
|
186
|
+
{
|
|
187
|
+
label: "Status",
|
|
188
|
+
value: STATUS_TEXT[stopped && snapshot.status !== "complete" && snapshot.status !== "error" ? "stopped" : snapshot.status]
|
|
189
|
+
}
|
|
190
|
+
),
|
|
191
|
+
/* @__PURE__ */ jsxRuntime.jsx(DiagnosticsRow, { label: "Type", value: snapshot.name }),
|
|
192
|
+
snapshot.model ? /* @__PURE__ */ jsxRuntime.jsx(DiagnosticsRow, { label: "Model", value: snapshot.model, mono: true }) : null,
|
|
193
|
+
/* @__PURE__ */ jsxRuntime.jsx(DiagnosticsRow, { label: "Dispatch ID", value: snapshot.id, mono: true }),
|
|
194
|
+
snapshot.evalId ? /* @__PURE__ */ jsxRuntime.jsx(DiagnosticsRow, { label: "Eval ID", value: snapshot.evalId, mono: true }) : null,
|
|
195
|
+
duration ? /* @__PURE__ */ jsxRuntime.jsx(DiagnosticsRow, { label: "Duration", value: duration }) : null,
|
|
196
|
+
/* @__PURE__ */ jsxRuntime.jsx(DiagnosticsRow, { label: "Tool calls", value: String(snapshot.toolCallCount) }),
|
|
197
|
+
/* @__PURE__ */ jsxRuntime.jsx(DiagnosticsRow, { label: "Messages", value: String(snapshot.messageCount + (snapshot.omittedMessageCount ?? 0)) }),
|
|
198
|
+
snapshot.usage ? /* @__PURE__ */ jsxRuntime.jsx(DiagnosticsRow, { label: "Tokens", value: laneModel.laneTokenBreakdown(snapshot.usage) }) : null
|
|
199
|
+
] })
|
|
200
|
+
] });
|
|
201
|
+
}
|
|
202
|
+
const LaneComponentsContext = require$$0.createContext(null);
|
|
203
|
+
const PlainText = ({ text }) => /* @__PURE__ */ jsxRuntime.jsx("p", { className: "whitespace-pre-wrap break-words text-sm leading-relaxed", children: text });
|
|
204
|
+
function laneRenderers(components) {
|
|
205
|
+
var _a, _b;
|
|
206
|
+
const parts = components;
|
|
207
|
+
return {
|
|
208
|
+
Text: (parts == null ? void 0 : parts.Text) ?? PlainText,
|
|
209
|
+
Reasoning: parts == null ? void 0 : parts.Reasoning,
|
|
210
|
+
toolUIs: (_a = parts == null ? void 0 : parts.tools) == null ? void 0 : _a.by_name,
|
|
211
|
+
Fallback: ((_b = parts == null ? void 0 : parts.tools) == null ? void 0 : _b.Fallback) ?? toolFallback.ToolFallback
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
const LaneTurn = () => {
|
|
215
|
+
const role = react.useAuiState((s) => s.message.role);
|
|
216
|
+
const renderers = laneRenderers(require$$0.useContext(LaneComponentsContext));
|
|
217
|
+
const waitingToolCallIds = subagents.useTurnToolCallsAwaitingApproval(useStatewireApprovalRequest.useApprovalWaitInScope().toolCallIds);
|
|
218
|
+
if (role !== "assistant") return null;
|
|
219
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "subagent-transcript-turn", className: "flex min-w-0 flex-col gap-1.5", children: [
|
|
220
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
221
|
+
SuperGroupingTranscript.SuperGroupingTranscript,
|
|
222
|
+
{
|
|
223
|
+
toolUIs: renderers.toolUIs,
|
|
224
|
+
ToolFallback: renderers.Fallback,
|
|
225
|
+
TextComponent: renderers.Text,
|
|
226
|
+
ReasoningComponent: renderers.Reasoning,
|
|
227
|
+
waitingToolCallIds
|
|
228
|
+
}
|
|
229
|
+
),
|
|
230
|
+
/* @__PURE__ */ jsxRuntime.jsx(SuperGroupingCard.SuperGroupingFinalText, { TextComponent: renderers.Text })
|
|
231
|
+
] });
|
|
232
|
+
};
|
|
233
|
+
const LANE_TURN_COMPONENTS = { Message: LaneTurn };
|
|
234
|
+
const ROW_KEY_SEPARATOR = "\0";
|
|
235
|
+
function LaneRows() {
|
|
236
|
+
const joinedKeys = react.useAuiState((s) => s.thread.messages.map((message) => messages.deepAgentRowKey(message)).join(ROW_KEY_SEPARATOR));
|
|
237
|
+
const rowKeys = require$$0.useMemo(() => joinedKeys === "" ? [] : joinedKeys.split(ROW_KEY_SEPARATOR), [joinedKeys]);
|
|
238
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: rowKeys.map((key, index) => /* @__PURE__ */ jsxRuntime.jsx(react.ThreadPrimitive.MessageByIndex, { index, components: LANE_TURN_COMPONENTS }, key)) });
|
|
239
|
+
}
|
|
240
|
+
function SubagentLaneTranscript({ messages: messages2 }) {
|
|
241
|
+
const components = NestedPtcMessages.useNestedPtcComponents(toolFallback.ToolFallback);
|
|
242
|
+
return /* @__PURE__ */ jsxRuntime.jsx(threadIdContext.AthenaStatewireThreadIdContext.Provider, { value: null, children: /* @__PURE__ */ jsxRuntime.jsx(useTurnSteps.TurnStepsControlContext.Provider, { value: null, children: /* @__PURE__ */ jsxRuntime.jsx(LaneComponentsContext.Provider, { value: components, children: /* @__PURE__ */ jsxRuntime.jsx(react.ReadonlyThreadProvider, { messages: messages2, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full overflow-y-auto", children: /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "subagent-transcript-rows", className: "flex min-w-0 flex-col gap-3 px-4 py-3", children: /* @__PURE__ */ jsxRuntime.jsx(LaneRows, {}) }) }) }) }) }) });
|
|
243
|
+
}
|
|
244
|
+
const renderChatTranscript = (props) => /* @__PURE__ */ jsxRuntime.jsx(SubagentLaneTranscript, { ...props });
|
|
245
|
+
function LaneHistoryNote({
|
|
246
|
+
note,
|
|
247
|
+
canLoad,
|
|
248
|
+
loading,
|
|
249
|
+
onLoadEarlier
|
|
250
|
+
}) {
|
|
251
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
252
|
+
"div",
|
|
253
|
+
{
|
|
254
|
+
"data-slot": "subagent-steps-note",
|
|
255
|
+
className: "flex shrink-0 flex-wrap items-center gap-x-2 gap-y-1 border-b border-border px-4 py-1.5 text-[0.7rem] text-muted-foreground",
|
|
256
|
+
children: [
|
|
257
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: note }),
|
|
258
|
+
canLoad ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
259
|
+
"button",
|
|
260
|
+
{
|
|
261
|
+
type: "button",
|
|
262
|
+
onClick: onLoadEarlier,
|
|
263
|
+
disabled: loading,
|
|
264
|
+
className: "rounded font-medium text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-default disabled:no-underline disabled:opacity-60",
|
|
265
|
+
children: loading ? "Loading earlier steps…" : "Load earlier steps"
|
|
266
|
+
}
|
|
267
|
+
) : null
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
function SubagentTranscriptPanel({
|
|
273
|
+
snapshot,
|
|
274
|
+
durationLabel,
|
|
275
|
+
awaitingApproval = false,
|
|
276
|
+
stopped = false,
|
|
277
|
+
onClose,
|
|
278
|
+
renderTranscript = renderChatTranscript,
|
|
279
|
+
renderReport
|
|
280
|
+
}) {
|
|
281
|
+
var _a, _b;
|
|
282
|
+
const isRunning = snapshot.status === "running" && !stopped;
|
|
283
|
+
laneFollow.useDeepAgentLaneFollow(subagents_laneFollow.useDeepAgentLaneFollowRegistry(), snapshot.id, isRunning && snapshot.evalId === void 0);
|
|
284
|
+
const source = snapshot.source;
|
|
285
|
+
const lane = laneHistory.useDeepAgentLaneHistory({
|
|
286
|
+
messageId: source == null ? void 0 : source.messageId,
|
|
287
|
+
lane: source == null ? void 0 : source.lane,
|
|
288
|
+
carried: (source == null ? void 0 : source.transcript) ?? NO_LANE_ENTRIES,
|
|
289
|
+
total: (_a = source == null ? void 0 : source.truncated) == null ? void 0 : _a.messages,
|
|
290
|
+
finished: ((_b = source == null ? void 0 : source.truncated) == null ? void 0 : _b.finished) === true,
|
|
291
|
+
checkpointed: (source == null ? void 0 : source.checkpointed) === true,
|
|
292
|
+
auto: true
|
|
293
|
+
});
|
|
294
|
+
const images = laneImages.useDeepAgentLaneImages({ messageId: source == null ? void 0 : source.messageId, lane: source == null ? void 0 : source.lane, steps: lane.steps });
|
|
295
|
+
const transcriptRef = require$$0.useRef(null);
|
|
296
|
+
useOmittedImagesInView.useOmittedImagesInView({ rootRef: transcriptRef, enabled: images.pending, onSeen: images.request });
|
|
297
|
+
const [convertLane] = require$$0.useState(() => subagentTranscripts.createSubagentLaneConversion());
|
|
298
|
+
const report = snapshot.status === "complete" && (source == null ? void 0 : source.messageId) !== void 0 ? snapshot.output : void 0;
|
|
299
|
+
const messages2 = (source === void 0 ? void 0 : convertLane(subagentTranscripts.withLaneReport(images.steps, report), isRunning)) ?? snapshot.messages;
|
|
300
|
+
const shown = Math.min(lane.steps.length, lane.total ?? lane.steps.length);
|
|
301
|
+
const arrivesLater = isRunning && (source == null ? void 0 : source.messageId) !== void 0 && !lane.available;
|
|
302
|
+
const note = laneModel.laneStepsNote({ shown, total: lane.total, arrivesLater });
|
|
303
|
+
const hasTranscript = messages2.length > 0;
|
|
304
|
+
const plan = laneModel.lanePlanProgress(snapshot);
|
|
305
|
+
const laneTokens = laneModel.formatLaneTokens(snapshot.usage);
|
|
306
|
+
const Text = laneRenderers(NestedPtcMessages.useNestedPtcComponents(toolFallback.ToolFallback)).Text;
|
|
307
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
308
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 flex-col gap-1.5 border-b border-border px-4 py-3", children: [
|
|
309
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
310
|
+
/* @__PURE__ */ jsxRuntime.jsx(DrawerStatusIcon, { status: snapshot.status, awaitingApproval, stopped }),
|
|
311
|
+
/* @__PURE__ */ jsxRuntime.jsx(DrawerName, { name: snapshot.name }),
|
|
312
|
+
awaitingApproval ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
313
|
+
"span",
|
|
314
|
+
{
|
|
315
|
+
"data-slot": "subagent-transcript-state",
|
|
316
|
+
className: "shrink-0 rounded-full bg-amber-500/10 px-2 py-0.5 text-[0.7rem] font-medium text-amber-600",
|
|
317
|
+
children: subagents.SUBAGENT_AWAITING_APPROVAL_LABEL
|
|
318
|
+
}
|
|
319
|
+
) : isRunning ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
320
|
+
"span",
|
|
321
|
+
{
|
|
322
|
+
"data-slot": "subagent-transcript-state",
|
|
323
|
+
className: "shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-[11px] font-medium text-primary",
|
|
324
|
+
children: "Live"
|
|
325
|
+
}
|
|
326
|
+
) : null,
|
|
327
|
+
/* @__PURE__ */ jsxRuntime.jsx(DrawerCloseButton, { onClose })
|
|
328
|
+
] }),
|
|
329
|
+
snapshot.description ? /* @__PURE__ */ jsxRuntime.jsx("p", { "data-slot": "subagent-brief", className: "whitespace-pre-wrap break-words text-xs leading-relaxed text-muted-foreground", children: snapshot.description }) : null,
|
|
330
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-2 text-[11px] tabular-nums text-muted-foreground", children: [
|
|
331
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
332
|
+
snapshot.toolCallCount,
|
|
333
|
+
" tool call",
|
|
334
|
+
snapshot.toolCallCount === 1 ? "" : "s"
|
|
335
|
+
] }),
|
|
336
|
+
plan ? /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
337
|
+
"· ",
|
|
338
|
+
plan.done,
|
|
339
|
+
"/",
|
|
340
|
+
plan.total,
|
|
341
|
+
" plan steps"
|
|
342
|
+
] }) : null,
|
|
343
|
+
durationLabel ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-mono", children: [
|
|
344
|
+
"· ",
|
|
345
|
+
durationLabel
|
|
346
|
+
] }) : null,
|
|
347
|
+
laneTokens ? /* @__PURE__ */ jsxRuntime.jsxs("span", { "data-slot": "lane-tokens", children: [
|
|
348
|
+
"· ",
|
|
349
|
+
laneTokens
|
|
350
|
+
] }) : null
|
|
351
|
+
] })
|
|
352
|
+
] }),
|
|
353
|
+
/* @__PURE__ */ jsxRuntime.jsx(DrawerDiagnostics, { snapshot, durationLabel, stopped }),
|
|
354
|
+
snapshot.status === "error" && snapshot.output && hasTranscript ? /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "subagent-result", className: "shrink-0 border-b border-destructive/20 bg-destructive/5 px-4 py-2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
355
|
+
"p",
|
|
356
|
+
{
|
|
357
|
+
"data-slot": "subagent-result-text",
|
|
358
|
+
className: "max-h-32 overflow-y-auto whitespace-pre-wrap font-mono text-[11px] leading-relaxed text-destructive",
|
|
359
|
+
children: snapshot.output
|
|
360
|
+
}
|
|
361
|
+
) }) : null,
|
|
362
|
+
note ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
363
|
+
LaneHistoryNote,
|
|
364
|
+
{
|
|
365
|
+
note,
|
|
366
|
+
canLoad: lane.hasEarlier && !arrivesLater,
|
|
367
|
+
loading: lane.loading,
|
|
368
|
+
onLoadEarlier: lane.loadEarlier
|
|
369
|
+
}
|
|
370
|
+
) : null,
|
|
371
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { ref: transcriptRef, "data-slot": "subagent-transcript-body", className: "min-h-0 flex-1", children: hasTranscript ? renderTranscript({ messages: messages2, snapshot }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col gap-2 overflow-y-auto px-4 py-4", children: [
|
|
372
|
+
(source == null ? void 0 : source.checkpointed) === true && lane.loading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: "Loading this subagent's steps…" }) : /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-xs text-muted-foreground", children: [
|
|
373
|
+
"No streamed transcript is available for this run — live intermediate steps are not persisted once the session closes. The final ",
|
|
374
|
+
snapshot.status === "error" ? "error" : "output",
|
|
375
|
+
" is shown below."
|
|
376
|
+
] }),
|
|
377
|
+
snapshot.output ? snapshot.status === "error" ? /* @__PURE__ */ jsxRuntime.jsx("p", { "data-slot": "subagent-result-text", className: "whitespace-pre-wrap text-sm leading-relaxed text-destructive", children: snapshot.output }) : /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "subagent-report", className: "min-w-0 text-sm", children: renderReport ? renderReport({ text: snapshot.output }) : /* @__PURE__ */ jsxRuntime.jsx(Text, { type: "text", text: snapshot.output, status: COMPLETE_STATUS }) }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs italic text-muted-foreground", children: "No output was captured for this dispatch." })
|
|
378
|
+
] }) })
|
|
379
|
+
] });
|
|
380
|
+
}
|
|
381
|
+
const COMPLETE_STATUS = { type: "complete" };
|
|
382
|
+
class DrawerBoundary extends require$$0.Component {
|
|
383
|
+
constructor(props) {
|
|
384
|
+
super(props);
|
|
385
|
+
this.state = { failed: false };
|
|
386
|
+
}
|
|
387
|
+
static getDerivedStateFromError() {
|
|
388
|
+
return { failed: true };
|
|
389
|
+
}
|
|
390
|
+
componentDidCatch(error, errorInfo) {
|
|
391
|
+
var _a, _b, _c;
|
|
392
|
+
const componentStack = ((_a = errorInfo.componentStack) == null ? void 0 : _a.slice(0, 2e3)) ?? null;
|
|
393
|
+
athenaDiagnostics.athenaDiagnostics.error(
|
|
394
|
+
"sdk.error",
|
|
395
|
+
error,
|
|
396
|
+
{
|
|
397
|
+
code: "chat_render_crash",
|
|
398
|
+
message: "A subagent's transcript could not be shown",
|
|
399
|
+
hint: "Inspect component_stack: a tool UI that reads the live thread fails inside a subagent's read-only transcript."
|
|
400
|
+
},
|
|
401
|
+
{ surface: "subagent-transcript-drawer", lane_status: this.props.snapshot.status, component_stack: componentStack }
|
|
402
|
+
);
|
|
403
|
+
(_c = (_b = this.props).onError) == null ? void 0 : _c.call(_b, error, { componentStack });
|
|
404
|
+
}
|
|
405
|
+
render() {
|
|
406
|
+
if (!this.state.failed) return this.props.children;
|
|
407
|
+
const { snapshot, onClose } = this.props;
|
|
408
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DrawerFrame, { label: `Subagent transcript: ${snapshot.name}`, onClose, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { role: "alert", className: "flex min-h-0 flex-1 flex-col", children: [
|
|
409
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-2 border-b border-border px-4 py-3", children: [
|
|
410
|
+
/* @__PURE__ */ jsxRuntime.jsx(DrawerName, { name: snapshot.name }),
|
|
411
|
+
/* @__PURE__ */ jsxRuntime.jsx(DrawerCloseButton, { onClose })
|
|
412
|
+
] }),
|
|
413
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "px-4 py-6 text-sm text-muted-foreground", children: "This subagent's transcript could not be shown. The conversation is not affected." })
|
|
414
|
+
] }) });
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
function DrawerQueryScope({ children }) {
|
|
418
|
+
const queryClient = useAthenaRestQuery.useAthenaQueryClient();
|
|
419
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactQuery.QueryClientProvider, { client: queryClient, children });
|
|
420
|
+
}
|
|
421
|
+
function SubagentTranscriptDrawer({
|
|
422
|
+
renderTranscript,
|
|
423
|
+
renderReport,
|
|
424
|
+
onError,
|
|
425
|
+
...props
|
|
426
|
+
}) {
|
|
427
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DrawerBoundary, { snapshot: props.snapshot, onClose: props.onClose, onError, children: /* @__PURE__ */ jsxRuntime.jsx(DrawerQueryScope, { children: /* @__PURE__ */ jsxRuntime.jsx(DrawerFrame, { label: `Subagent transcript: ${props.snapshot.name}`, onClose: props.onClose, children: /* @__PURE__ */ jsxRuntime.jsx(SubagentTranscriptPanel, { ...props, renderTranscript, renderReport }) }) }) }, props.snapshot.id);
|
|
428
|
+
}
|
|
429
|
+
exports.SubagentLaneTranscript = SubagentLaneTranscript;
|
|
430
|
+
exports.SubagentTranscriptDrawer = SubagentTranscriptDrawer;
|
|
431
|
+
//# sourceMappingURL=subagent-transcript-drawer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-transcript-drawer.cjs","sources":["../../src/subagents/subagent-transcript-drawer.tsx"],"sourcesContent":["'use client';\n\n/**\n * One subagent's whole transcript, in a slide-over from the right: the lane's\n * steps as a read-only nested thread under the chat's own tool UIs and text,\n * with what the lane is (its status, brief, tool calls, plan, duration and\n * tokens) above, and its run details (ids, model, volume) behind a disclosure\n * for correlating a failure with the backend's logs.\n *\n * The lane is assistant-ui's native nested thread: the `task` part's\n * `messages` (or an in-eval dispatch's live transcript converted the same\n * way), mounted under `ReadonlyThreadProvider`. A card can be cut to its\n * newest steps (a running card always, a finished one when the chat declared\n * the lane-cut contract, `subagentLaneHistory`): the drawer reads the rest\n * through `history/lane` (`useDeepAgentLaneHistory`), the newest page as it\n * opens and older pages on request, and shows the steps it has meanwhile. It\n * converts the lane itself with one conversion memory while open, so a step\n * keeps its row as the cut slides and pages land. While the lane runs, the\n * drawer follows it (`useDeepAgentLaneFollow`), so its card carries every\n * step. An image a step carries is read once its tile scrolls into view\n * (`history/lane_image`).\n *\n * A nested thread has no statewire thread behind it: a delegation inside it is\n * a static chip, and the drawer is its own error boundary, so a tool UI that\n * throws there never takes the chat (or the run's approval card) down with it.\n * Its panel portals into the document its chat renders in (a pop-out window\n * included), carries the chat's theme, takes focus as it opens and gives it\n * back as it closes; Escape and the backdrop close it.\n */\nimport {\n type ReasoningMessagePartComponent,\n ReadonlyThreadProvider,\n type TextMessagePartComponent,\n type ThreadMessage,\n ThreadPrimitive,\n type ToolCallMessagePartComponent,\n useAuiState,\n} from '@assistant-ui/react';\nimport type { LangChainMessage } from '@assistant-ui/react-langgraph';\nimport {\n createSubagentLaneConversion,\n deepAgentRowKey,\n SUBAGENT_AWAITING_APPROVAL_LABEL,\n type SubagentDiscoverySnapshot,\n useDeepAgentLaneFollow,\n useDeepAgentLaneHistory,\n useDeepAgentLaneImages,\n useTurnToolCallsAwaitingApproval,\n withLaneReport,\n} from '@athenaintel/agent-runtime';\nimport { QueryClientProvider } from '@tanstack/react-query';\nimport { CheckCircle2Icon, LoaderIcon, ShieldAlertIcon, XCircleIcon, XIcon } from 'lucide-react';\nimport {\n Component,\n type CSSProperties,\n createContext,\n type ErrorInfo,\n type FC,\n type ReactNode,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { SuperGroupingFinalText } from '../chat/super-grouping/SuperGroupingCard';\nimport { SuperGroupingTranscript } from '../chat/super-grouping/SuperGroupingTranscript';\nimport { TurnStepsControlContext } from '../chat/super-grouping/use-turn-steps';\nimport { useApprovalWaitInScope } from '../chat/use-statewire-approval-request';\nimport { athenaDiagnostics } from '../diagnostics/athena-diagnostics';\nimport { useOwnerDocument } from '../lib/owner-document';\nimport { useAthenaQueryClient } from '../lib/use-athena-rest-query';\nimport { cn } from '../lib/utils';\nimport { useAthenaThemeStyle } from '../provider/theme-style-context';\nimport { AthenaStatewireThreadIdContext } from '../threads/thread-id-context';\nimport { useNestedPtcComponents } from '../tools/NestedPtcMessages';\nimport { ToolFallback } from '../tools/tool-fallback';\nimport { useDeepAgentLaneFollowRegistry } from './lane-follow';\nimport { formatLaneElapsed, formatLaneTokens, laneStepsNote, laneTokenBreakdown, lanePlanProgress } from './lane-model';\nimport { useOmittedImagesInView } from './use-omitted-images-in-view';\n\n/** What the lane group hands the drawer it opens. */\nexport interface SubagentTranscriptDrawerProps {\n snapshot: SubagentDiscoverySnapshot;\n /** The lane's duration as its card shows it. */\n durationLabel?: string;\n /** The lane is parked on a person's approval: its header says so instead of \"Live\". */\n awaitingApproval?: boolean;\n /** The run that delegated the lane ended before it settled: it is not live. */\n stopped?: boolean;\n onClose: () => void;\n}\n\n/** What a host's own transcript renderer gets (`renderTranscript`). */\nexport interface SubagentTranscriptRenderProps {\n /** The lane's steps as a nested thread, its report or failure last. */\n messages: readonly ThreadMessage[];\n snapshot: SubagentDiscoverySnapshot;\n}\n\nexport interface SubagentTranscriptDrawerOptions {\n /**\n * Renders the lane's steps; the chat's own transcript by default (each turn\n * of the lane as the chat lays a turn out, under the chat's tool UIs).\n */\n renderTranscript?: (props: SubagentTranscriptRenderProps) => ReactNode;\n /**\n * Renders a finished lane's report when no steps rode (a reopened session's\n * summary); the chat's own text by default.\n */\n renderReport?: (props: { text: string }) => ReactNode;\n /** Told when the drawer's content throws; the drawer stays open on a notice. */\n onError?: (error: Error, info: { componentStack: string | null }) => void;\n}\n\n// ─── Words ───────────────────────────────────────────────────────────\n\nconst STATUS_TEXT: Record<SubagentDiscoverySnapshot['status'] | 'stopped', string> = {\n queued: 'Queued',\n running: 'Running',\n complete: 'Complete',\n error: 'Failed',\n stopped: 'Stopped',\n};\n\nconst NO_LANE_ENTRIES: readonly LangChainMessage[] = [];\n\n// ─── The frame ───────────────────────────────────────────────────────\n\n// The backdrop and the panel carry their box inline: no host stylesheet can\n// take a full-height slide-over's position away (lib/portal-surface.ts).\nconst BACKDROP_STYLE: CSSProperties = {\n position: 'fixed',\n inset: 0,\n zIndex: 1000,\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\n cursor: 'default',\n border: 0,\n padding: 0,\n};\nconst PANEL_STYLE: CSSProperties = {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n zIndex: 1000,\n display: 'flex',\n flexDirection: 'column',\n width: 600,\n maxWidth: '95vw',\n};\n\nconst FOCUSABLE_SELECTOR =\n 'button:not([disabled]), a[href], summary, [tabindex]:not([tabindex=\"-1\"]), input:not([disabled]), textarea:not([disabled])';\n\nconst stopPropagation = (event: { stopPropagation: () => void }) => event.stopPropagation();\n\n/**\n * The slide-over: portaled into the chat's own document with the chat's theme\n * and the SDK's scope, dimming what is behind it. Escape (taken before a\n * focused composer's own Escape) and the backdrop close it; focus moves to its\n * close button and returns to the card that opened it; Tab stays inside.\n */\nfunction DrawerFrame({\n label,\n onClose,\n children,\n}: {\n label: string;\n onClose: () => void;\n children: ReactNode;\n}) {\n const ownerDocument = useOwnerDocument();\n const themeStyle = useAthenaThemeStyle();\n const panelRef = useRef<HTMLDivElement | null>(null);\n const onCloseRef = useRef(onClose);\n onCloseRef.current = onClose;\n\n useEffect(() => {\n if (!ownerDocument) return undefined;\n const previouslyFocused = ownerDocument.activeElement;\n panelRef.current?.querySelector<HTMLElement>('[data-slot=\"subagent-transcript-close\"]')?.focus();\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n // Capture phase, before a focused composer's own Escape handling.\n event.preventDefault();\n event.stopPropagation();\n onCloseRef.current();\n return;\n }\n if (event.key !== 'Tab') return;\n const focusable = Array.from(panelRef.current?.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR) ?? []);\n const first = focusable[0];\n const last = focusable.at(-1);\n if (!first || !last) return;\n const active = ownerDocument.activeElement;\n const inside = active instanceof Node && panelRef.current?.contains(active) === true;\n if (!inside || (event.shiftKey ? active === first : active === last)) {\n event.preventDefault();\n (event.shiftKey ? last : first).focus();\n }\n };\n ownerDocument.addEventListener('keydown', onKeyDown, true);\n return () => {\n ownerDocument.removeEventListener('keydown', onKeyDown, true);\n if (previouslyFocused instanceof HTMLElement && previouslyFocused.isConnected) previouslyFocused.focus();\n };\n }, [ownerDocument]);\n\n if (!ownerDocument) return null;\n return createPortal(\n // The SDK's scope classes bring its tokens and scoped reset to the\n // portaled tree; the theme's variables keep the chat's palette.\n <div className=\"athena-sdk athena-sdk-chrome\" data-slot=\"subagent-transcript\" style={themeStyle}>\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label=\"Close subagent transcript\"\n onClick={onClose}\n className=\"duration-200 animate-in fade-in-0 motion-reduce:animate-none\"\n style={BACKDROP_STYLE}\n data-slot=\"subagent-transcript-backdrop\"\n />\n {/* The event boundary: a click, a key or a focus in the drawer bubbles\n through React to the card that opened it (a portal keeps its React\n parent), so it stops here. */}\n {/* biome-ignore lint/a11y/noNoninteractiveElementInteractions: an event boundary for the portaled dialog, not a control */}\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={label}\n data-slot=\"subagent-transcript-panel\"\n style={PANEL_STYLE}\n onClick={stopPropagation}\n onPointerDown={stopPropagation}\n onKeyDown={stopPropagation}\n onFocus={stopPropagation}\n onBlur={stopPropagation}\n className=\"border-l border-border bg-background text-foreground shadow-xl duration-300 animate-in slide-in-from-right motion-reduce:animate-none\"\n >\n {children}\n </div>\n </div>,\n ownerDocument.body,\n );\n}\n\nfunction DrawerName({ name }: { name: string }) {\n return <h2 className=\"min-w-0 truncate text-sm font-semibold capitalize text-foreground\">{name}</h2>;\n}\n\nfunction DrawerCloseButton({ onClose }: { onClose: () => void }) {\n return (\n <button\n type=\"button\"\n aria-label=\"Close\"\n data-slot=\"subagent-transcript-close\"\n onClick={onClose}\n className=\"ml-auto flex size-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <XIcon aria-hidden=\"true\" className=\"size-4\" />\n </button>\n );\n}\n\nfunction DrawerStatusIcon({\n status,\n awaitingApproval,\n stopped,\n}: {\n status: SubagentDiscoverySnapshot['status'];\n awaitingApproval: boolean;\n stopped: boolean;\n}) {\n if (status === 'complete') {\n return <CheckCircle2Icon aria-hidden=\"true\" className=\"size-4 shrink-0 text-emerald-600\" />;\n }\n if (status === 'error') return <XCircleIcon aria-hidden=\"true\" className=\"size-4 shrink-0 text-destructive\" />;\n if (stopped) return <XCircleIcon aria-hidden=\"true\" className=\"size-4 shrink-0 text-muted-foreground\" />;\n if (awaitingApproval) return <ShieldAlertIcon aria-hidden=\"true\" className=\"size-4 shrink-0 text-amber-600\" />;\n return <LoaderIcon aria-hidden=\"true\" className=\"size-4 shrink-0 text-muted-foreground motion-safe:animate-spin\" />;\n}\n\nfunction DiagnosticsRow({ label, value, mono = false }: { label: string; value: string; mono?: boolean }) {\n return (\n <div className=\"flex items-baseline gap-2 text-[11px]\">\n <span className=\"w-20 shrink-0 text-muted-foreground\">{label}</span>\n <span className={cn('min-w-0 select-all break-all text-foreground/80', mono && 'font-mono')}>{value}</span>\n </div>\n );\n}\n\n/**\n * The lane's run details: its status, ids, timing and volume, so a failing\n * subagent can be matched with the backend's traces and logs (the dispatch id\n * is the `task` call's id the backend logs; the eval id ties it to the\n * interpreter call that fanned it out).\n */\nfunction DrawerDiagnostics({\n snapshot,\n durationLabel,\n stopped,\n}: {\n snapshot: SubagentDiscoverySnapshot;\n durationLabel?: string;\n stopped: boolean;\n}) {\n const duration =\n durationLabel ?? (typeof snapshot.durationMs === 'number' ? formatLaneElapsed(snapshot.durationMs) : undefined);\n return (\n <details data-slot=\"subagent-transcript-details\" className=\"shrink-0 border-b border-border px-4 py-2\">\n <summary className=\"cursor-pointer select-none text-[11px] font-medium text-muted-foreground transition-colors hover:text-foreground\">\n Run details\n </summary>\n <div className=\"flex flex-col gap-1 pt-2 pb-1\">\n <DiagnosticsRow\n label=\"Status\"\n value={STATUS_TEXT[stopped && snapshot.status !== 'complete' && snapshot.status !== 'error' ? 'stopped' : snapshot.status]}\n />\n <DiagnosticsRow label=\"Type\" value={snapshot.name} />\n {snapshot.model ? <DiagnosticsRow label=\"Model\" value={snapshot.model} mono /> : null}\n <DiagnosticsRow label=\"Dispatch ID\" value={snapshot.id} mono />\n {snapshot.evalId ? <DiagnosticsRow label=\"Eval ID\" value={snapshot.evalId} mono /> : null}\n {duration ? <DiagnosticsRow label=\"Duration\" value={duration} /> : null}\n <DiagnosticsRow label=\"Tool calls\" value={String(snapshot.toolCallCount)} />\n <DiagnosticsRow label=\"Messages\" value={String(snapshot.messageCount + (snapshot.omittedMessageCount ?? 0))} />\n {snapshot.usage ? <DiagnosticsRow label=\"Tokens\" value={laneTokenBreakdown(snapshot.usage)} /> : null}\n </div>\n </details>\n );\n}\n\n// ─── The chat's own transcript ───────────────────────────────────────\n\ntype NestedComponents = ReturnType<typeof useNestedPtcComponents>;\n\nconst LaneComponentsContext = createContext<NestedComponents | null>(null);\n\nconst PlainText: TextMessagePartComponent = ({ text }) => (\n <p className=\"whitespace-pre-wrap break-words text-sm leading-relaxed\">{text}</p>\n);\n\n/** The renderers `AthenaChat` hands its nested threads (`NestedPtcComponentsProvider`), as read here. */\ninterface LaneRendererParts {\n Text?: TextMessagePartComponent;\n Reasoning?: ReasoningMessagePartComponent;\n tools?: { by_name?: Record<string, ToolCallMessagePartComponent>; Fallback?: ToolCallMessagePartComponent };\n}\n\n/** The chat's text, tool UIs and reasoning; plain text and the generic card where the chat gives none. */\nfunction laneRenderers(components: NestedComponents | null) {\n const parts = components as LaneRendererParts | null;\n return {\n Text: parts?.Text ?? PlainText,\n Reasoning: parts?.Reasoning,\n toolUIs: parts?.tools?.by_name,\n Fallback: parts?.tools?.Fallback ?? ToolFallback,\n };\n}\n\n/**\n * One turn of the lane, laid out as the chat lays out a turn: its steps\n * collapsed under the sentences the subagent wrote, then its answer. The\n * subagent's brief (its user message) is the drawer's header, so it is not\n * repeated.\n */\nconst LaneTurn: FC = () => {\n const role = useAuiState((s) => s.message.role);\n const renderers = laneRenderers(useContext(LaneComponentsContext));\n // A gated call inside the lane reads \"Waiting for your input\", as in the chat.\n const waitingToolCallIds = useTurnToolCallsAwaitingApproval(useApprovalWaitInScope().toolCallIds);\n if (role !== 'assistant') return null;\n return (\n <div data-slot=\"subagent-transcript-turn\" className=\"flex min-w-0 flex-col gap-1.5\">\n <SuperGroupingTranscript\n toolUIs={renderers.toolUIs}\n ToolFallback={renderers.Fallback}\n TextComponent={renderers.Text}\n ReasoningComponent={renderers.Reasoning}\n waitingToolCallIds={waitingToolCallIds}\n />\n <SuperGroupingFinalText TextComponent={renderers.Text} />\n </div>\n );\n};\n\nconst LANE_TURN_COMPONENTS = { Message: LaneTurn };\nconst ROW_KEY_SEPARATOR = '\\u0000';\n\n/**\n * The nested thread's rows, each under its row key (`deepAgentRowKey`), so a\n * turn keeps its row while the card's cut drops its oldest steps and earlier\n * pages land, and what the person opened in it stays open.\n */\nfunction LaneRows() {\n const joinedKeys = useAuiState((s) => s.thread.messages.map((message) => deepAgentRowKey(message)).join(ROW_KEY_SEPARATOR));\n const rowKeys = useMemo(() => (joinedKeys === '' ? [] : joinedKeys.split(ROW_KEY_SEPARATOR)), [joinedKeys]);\n return (\n <>\n {rowKeys.map((key, index) => (\n <ThreadPrimitive.MessageByIndex key={key} index={index} components={LANE_TURN_COMPONENTS} />\n ))}\n </>\n );\n}\n\n/**\n * The lane's steps under the chat's own renderers (`AthenaChat`'s nested\n * components), read-only. The lane is not the chat's thread: older history,\n * summarized turns and the thread's history edge are the chat's, never read\n * from inside a lane.\n */\nexport function SubagentLaneTranscript({ messages }: SubagentTranscriptRenderProps) {\n const components = useNestedPtcComponents(ToolFallback);\n return (\n <AthenaStatewireThreadIdContext.Provider value={null}>\n <TurnStepsControlContext.Provider value={null}>\n <LaneComponentsContext.Provider value={components}>\n <ReadonlyThreadProvider messages={messages}>\n <div className=\"h-full overflow-y-auto\">\n <div data-slot=\"subagent-transcript-rows\" className=\"flex min-w-0 flex-col gap-3 px-4 py-3\">\n <LaneRows />\n </div>\n </div>\n </ReadonlyThreadProvider>\n </LaneComponentsContext.Provider>\n </TurnStepsControlContext.Provider>\n </AthenaStatewireThreadIdContext.Provider>\n );\n}\n\nconst renderChatTranscript = (props: SubagentTranscriptRenderProps) => <SubagentLaneTranscript {...props} />;\n\n// ─── The panel ───────────────────────────────────────────────────────\n\n/** The steps a cut lane's drawer shows of all of them, and the control that reads earlier ones. */\nfunction LaneHistoryNote({\n note,\n canLoad,\n loading,\n onLoadEarlier,\n}: {\n note: string;\n canLoad: boolean;\n loading: boolean;\n onLoadEarlier: () => void;\n}) {\n return (\n <div\n data-slot=\"subagent-steps-note\"\n className=\"flex shrink-0 flex-wrap items-center gap-x-2 gap-y-1 border-b border-border px-4 py-1.5 text-[0.7rem] text-muted-foreground\"\n >\n <span>{note}</span>\n {canLoad ? (\n <button\n type=\"button\"\n onClick={onLoadEarlier}\n disabled={loading}\n className=\"rounded font-medium text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-default disabled:no-underline disabled:opacity-60\"\n >\n {loading ? 'Loading earlier steps…' : 'Load earlier steps'}\n </button>\n ) : null}\n </div>\n );\n}\n\nfunction SubagentTranscriptPanel({\n snapshot,\n durationLabel,\n awaitingApproval = false,\n stopped = false,\n onClose,\n renderTranscript = renderChatTranscript,\n renderReport,\n}: SubagentTranscriptDrawerProps & Pick<SubagentTranscriptDrawerOptions, 'renderTranscript' | 'renderReport'>) {\n const isRunning = snapshot.status === 'running' && !stopped;\n // A running `task` lane rides its card cut to its newest steps; following it\n // brings every step in. An in-eval lane has no card to follow.\n useDeepAgentLaneFollow(useDeepAgentLaneFollowRegistry(), snapshot.id, isRunning && snapshot.evalId === undefined);\n const source = snapshot.source;\n const lane = useDeepAgentLaneHistory({\n messageId: source?.messageId,\n lane: source?.lane,\n carried: source?.transcript ?? NO_LANE_ENTRIES,\n total: source?.truncated?.messages,\n finished: source?.truncated?.finished === true,\n checkpointed: source?.checkpointed === true,\n auto: true,\n });\n const images = useDeepAgentLaneImages({ messageId: source?.messageId, lane: source?.lane, steps: lane.steps });\n const transcriptRef = useRef<HTMLDivElement | null>(null);\n useOmittedImagesInView({ rootRef: transcriptRef, enabled: images.pending, onSeen: images.request });\n const [convertLane] = useState(() => createSubagentLaneConversion());\n // A `task` lane that finished ends on its report, the card's content, even\n // when its stored transcript does not (`withLaneReport`).\n const report = snapshot.status === 'complete' && source?.messageId !== undefined ? snapshot.output : undefined;\n const messages =\n (source === undefined ? undefined : convertLane(withLaneReport(images.steps, report), isRunning)) ??\n snapshot.messages;\n const shown = Math.min(lane.steps.length, lane.total ?? lane.steps.length);\n // A finished in-eval lane stays cut, so only a running `task` card's steps arrive later.\n const arrivesLater = isRunning && source?.messageId !== undefined && !lane.available;\n const note = laneStepsNote({ shown, total: lane.total, arrivesLater });\n const hasTranscript = messages.length > 0;\n const plan = lanePlanProgress(snapshot);\n const laneTokens = formatLaneTokens(snapshot.usage);\n const Text = laneRenderers(useNestedPtcComponents(ToolFallback)).Text;\n\n return (\n <>\n <div className=\"flex shrink-0 flex-col gap-1.5 border-b border-border px-4 py-3\">\n <div className=\"flex items-center gap-2\">\n <DrawerStatusIcon status={snapshot.status} awaitingApproval={awaitingApproval} stopped={stopped} />\n <DrawerName name={snapshot.name} />\n {awaitingApproval ? (\n <span\n data-slot=\"subagent-transcript-state\"\n className=\"shrink-0 rounded-full bg-amber-500/10 px-2 py-0.5 text-[0.7rem] font-medium text-amber-600\"\n >\n {SUBAGENT_AWAITING_APPROVAL_LABEL}\n </span>\n ) : isRunning ? (\n <span\n data-slot=\"subagent-transcript-state\"\n className=\"shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-[11px] font-medium text-primary\"\n >\n Live\n </span>\n ) : null}\n <DrawerCloseButton onClose={onClose} />\n </div>\n {snapshot.description ? (\n <p data-slot=\"subagent-brief\" className=\"whitespace-pre-wrap break-words text-xs leading-relaxed text-muted-foreground\">\n {snapshot.description}\n </p>\n ) : null}\n <div className=\"flex flex-wrap items-center gap-x-2 text-[11px] tabular-nums text-muted-foreground\">\n <span>\n {snapshot.toolCallCount} tool call{snapshot.toolCallCount === 1 ? '' : 's'}\n </span>\n {plan ? (\n <span>\n · {plan.done}/{plan.total} plan steps\n </span>\n ) : null}\n {durationLabel ? <span className=\"font-mono\">· {durationLabel}</span> : null}\n {laneTokens ? <span data-slot=\"lane-tokens\">· {laneTokens}</span> : null}\n </div>\n </div>\n\n <DrawerDiagnostics snapshot={snapshot} durationLabel={durationLabel} stopped={stopped} />\n\n {snapshot.status === 'error' && snapshot.output && hasTranscript ? (\n <div data-slot=\"subagent-result\" className=\"shrink-0 border-b border-destructive/20 bg-destructive/5 px-4 py-2\">\n <p\n data-slot=\"subagent-result-text\"\n className=\"max-h-32 overflow-y-auto whitespace-pre-wrap font-mono text-[11px] leading-relaxed text-destructive\"\n >\n {snapshot.output}\n </p>\n </div>\n ) : null}\n\n {note ? (\n <LaneHistoryNote\n note={note}\n canLoad={lane.hasEarlier && !arrivesLater}\n loading={lane.loading}\n onLoadEarlier={lane.loadEarlier}\n />\n ) : null}\n\n {/* The body takes the panel's height; what it shows scrolls itself (a\n host's own thread shell keeps its own viewport). */}\n <div ref={transcriptRef} data-slot=\"subagent-transcript-body\" className=\"min-h-0 flex-1\">\n {hasTranscript ? (\n renderTranscript({ messages, snapshot })\n ) : (\n <div className=\"flex h-full flex-col gap-2 overflow-y-auto px-4 py-4\">\n {source?.checkpointed === true && lane.loading ? (\n <p className=\"text-xs text-muted-foreground\">Loading this subagent's steps…</p>\n ) : (\n <p className=\"text-xs text-muted-foreground\">\n No streamed transcript is available for this run — live intermediate steps are not persisted once the\n session closes. The final {snapshot.status === 'error' ? 'error' : 'output'} is shown below.\n </p>\n )}\n {snapshot.output ? (\n snapshot.status === 'error' ? (\n <p data-slot=\"subagent-result-text\" className=\"whitespace-pre-wrap text-sm leading-relaxed text-destructive\">\n {snapshot.output}\n </p>\n ) : (\n <div data-slot=\"subagent-report\" className=\"min-w-0 text-sm\">\n {renderReport ? (\n renderReport({ text: snapshot.output })\n ) : (\n <Text type=\"text\" text={snapshot.output} status={COMPLETE_STATUS} />\n )}\n </div>\n )\n ) : (\n <p className=\"text-xs italic text-muted-foreground\">No output was captured for this dispatch.</p>\n )}\n </div>\n )}\n </div>\n </>\n );\n}\n\nconst COMPLETE_STATUS = { type: 'complete' } as const;\n\n// ─── Containment ─────────────────────────────────────────────────────\n\ninterface DrawerBoundaryProps {\n snapshot: SubagentDiscoverySnapshot;\n onClose: () => void;\n onError?: SubagentTranscriptDrawerOptions['onError'];\n children: ReactNode;\n}\n\n/**\n * The drawer's own boundary: its transcript renders the chat's tool UIs (a\n * host's own among them) in a nested thread no statewire thread backs, and a\n * card that throws there must not take the chat or the run's approval card\n * down. The drawer stays open on a notice and closes as it always does;\n * another lane's drawer starts afresh.\n */\nclass DrawerBoundary extends Component<DrawerBoundaryProps, { failed: boolean }> {\n constructor(props: DrawerBoundaryProps) {\n super(props);\n this.state = { failed: false };\n }\n\n static getDerivedStateFromError(): { failed: boolean } {\n return { failed: true };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n const componentStack = errorInfo.componentStack?.slice(0, 2000) ?? null;\n athenaDiagnostics.error(\n 'sdk.error',\n error,\n {\n code: 'chat_render_crash',\n message: \"A subagent's transcript could not be shown\",\n hint: \"Inspect component_stack: a tool UI that reads the live thread fails inside a subagent's read-only transcript.\",\n },\n { surface: 'subagent-transcript-drawer', lane_status: this.props.snapshot.status, component_stack: componentStack },\n );\n this.props.onError?.(error, { componentStack });\n }\n\n render(): ReactNode {\n if (!this.state.failed) return this.props.children;\n const { snapshot, onClose } = this.props;\n return (\n <DrawerFrame label={`Subagent transcript: ${snapshot.name}`} onClose={onClose}>\n <div role=\"alert\" className=\"flex min-h-0 flex-1 flex-col\">\n <div className=\"flex shrink-0 items-center gap-2 border-b border-border px-4 py-3\">\n <DrawerName name={snapshot.name} />\n <DrawerCloseButton onClose={onClose} />\n </div>\n <p className=\"px-4 py-6 text-sm text-muted-foreground\">\n This subagent's transcript could not be shown. The conversation is not affected.\n </p>\n </div>\n </DrawerFrame>\n );\n }\n}\n\n/** The host's `QueryClient` when one is in context, else one of the drawer's own (lane pages are queries). */\nfunction DrawerQueryScope({ children }: { children: ReactNode }) {\n const queryClient = useAthenaQueryClient();\n return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>;\n}\n\n/**\n * The transcript drawer a lane's \"View transcript\" opens (see the module\n * comment). A host draws the steps its own way with `renderTranscript`, and\n * hears of a crash inside with `onError`.\n */\nexport function SubagentTranscriptDrawer({\n renderTranscript,\n renderReport,\n onError,\n ...props\n}: SubagentTranscriptDrawerProps & SubagentTranscriptDrawerOptions) {\n return (\n <DrawerBoundary key={props.snapshot.id} snapshot={props.snapshot} onClose={props.onClose} onError={onError}>\n <DrawerQueryScope>\n <DrawerFrame label={`Subagent transcript: ${props.snapshot.name}`} onClose={props.onClose}>\n <SubagentTranscriptPanel {...props} renderTranscript={renderTranscript} renderReport={renderReport} />\n </DrawerFrame>\n </DrawerQueryScope>\n </DrawerBoundary>\n );\n}\n"],"names":["useOwnerDocument","useAthenaThemeStyle","useRef","useEffect","_a","_b","createPortal","jsx","XIcon","CheckCircle2Icon","XCircleIcon","ShieldAlertIcon","LoaderIcon","jsxs","cn","formatLaneElapsed","laneTokenBreakdown","createContext","ToolFallback","useAuiState","useContext","useTurnToolCallsAwaitingApproval","useApprovalWaitInScope","SuperGroupingTranscript","SuperGroupingFinalText","deepAgentRowKey","useMemo","Fragment","ThreadPrimitive","messages","useNestedPtcComponents","AthenaStatewireThreadIdContext","TurnStepsControlContext","ReadonlyThreadProvider","useDeepAgentLaneFollow","useDeepAgentLaneFollowRegistry","useDeepAgentLaneHistory","useDeepAgentLaneImages","useOmittedImagesInView","useState","createSubagentLaneConversion","withLaneReport","laneStepsNote","lanePlanProgress","formatLaneTokens","SUBAGENT_AWAITING_APPROVAL_LABEL","Component","athenaDiagnostics","useAthenaQueryClient","QueryClientProvider"],"mappings":"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"}
|