@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,517 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const lucideReact = require("lucide-react");
|
|
5
|
+
const require$$0 = require("react");
|
|
6
|
+
const laneModel = require("./lane-model.cjs");
|
|
7
|
+
const subagents = require("../agent-runtime/src/subagents.cjs");
|
|
8
|
+
const toolNames = require("../agent-runtime/src/tool-names.cjs");
|
|
9
|
+
const cnfast = require("cnfast");
|
|
10
|
+
const RING_RADIUS = 8;
|
|
11
|
+
const RING_CIRCUMFERENCE = 2 * Math.PI * RING_RADIUS;
|
|
12
|
+
function SubagentProgressRing({
|
|
13
|
+
snapshot,
|
|
14
|
+
stalled = false,
|
|
15
|
+
awaitingApproval = false,
|
|
16
|
+
stopped = false,
|
|
17
|
+
sizeClassName = "size-4"
|
|
18
|
+
}) {
|
|
19
|
+
if (snapshot.status === "complete") {
|
|
20
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2Icon, { "aria-hidden": "true", className: cnfast.cn("shrink-0 text-emerald-600", sizeClassName) });
|
|
21
|
+
}
|
|
22
|
+
if (snapshot.status === "error") {
|
|
23
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircleIcon, { "aria-hidden": "true", className: cnfast.cn("shrink-0 text-destructive", sizeClassName) });
|
|
24
|
+
}
|
|
25
|
+
if (stopped) {
|
|
26
|
+
return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XCircleIcon, { "aria-hidden": "true", className: cnfast.cn("shrink-0 text-muted-foreground", sizeClassName) });
|
|
27
|
+
}
|
|
28
|
+
if (awaitingApproval) {
|
|
29
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
30
|
+
lucideReact.ShieldAlertIcon,
|
|
31
|
+
{
|
|
32
|
+
role: "img",
|
|
33
|
+
"aria-label": "Waiting for approval",
|
|
34
|
+
className: cnfast.cn("shrink-0 text-amber-600", sizeClassName)
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
const colorClass = stalled ? "text-amber-600" : "text-foreground/60";
|
|
39
|
+
if (snapshot.status === "queued") {
|
|
40
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cnfast.cn("flex shrink-0 items-center justify-center", sizeClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
41
|
+
"span",
|
|
42
|
+
{
|
|
43
|
+
className: cnfast.cn(
|
|
44
|
+
"h-1/2 w-1/2 rounded-full border-2 motion-safe:animate-pulse",
|
|
45
|
+
colorClass
|
|
46
|
+
)
|
|
47
|
+
}
|
|
48
|
+
) });
|
|
49
|
+
}
|
|
50
|
+
const plan = laneModel.lanePlanProgress(snapshot);
|
|
51
|
+
const fraction = plan ? plan.done / plan.total : null;
|
|
52
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cnfast.cn("flex shrink-0 items-center justify-center", sizeClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
53
|
+
"svg",
|
|
54
|
+
{
|
|
55
|
+
viewBox: "0 0 20 20",
|
|
56
|
+
className: cnfast.cn(
|
|
57
|
+
"h-full w-full",
|
|
58
|
+
fraction == null ? "motion-safe:animate-spin" : "-rotate-90"
|
|
59
|
+
),
|
|
60
|
+
role: "img",
|
|
61
|
+
"aria-label": "Subagent progress",
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ jsxRuntime.jsx("title", { children: plan ? `${plan.done}/${plan.total} plan steps complete` : "Working — no plan written yet" }),
|
|
64
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
65
|
+
"circle",
|
|
66
|
+
{
|
|
67
|
+
cx: "10",
|
|
68
|
+
cy: "10",
|
|
69
|
+
r: RING_RADIUS,
|
|
70
|
+
strokeWidth: "2.5",
|
|
71
|
+
className: "fill-none stroke-current text-border"
|
|
72
|
+
}
|
|
73
|
+
),
|
|
74
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
75
|
+
"circle",
|
|
76
|
+
{
|
|
77
|
+
cx: "10",
|
|
78
|
+
cy: "10",
|
|
79
|
+
r: RING_RADIUS,
|
|
80
|
+
strokeWidth: "2.5",
|
|
81
|
+
strokeLinecap: "round",
|
|
82
|
+
strokeDasharray: RING_CIRCUMFERENCE,
|
|
83
|
+
strokeDashoffset: RING_CIRCUMFERENCE * (1 - (fraction ?? 0.25)),
|
|
84
|
+
className: cnfast.cn(
|
|
85
|
+
"fill-none stroke-current transition-[stroke-dashoffset] duration-500",
|
|
86
|
+
colorClass
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
)
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
) });
|
|
93
|
+
}
|
|
94
|
+
function SubagentStatusLine({
|
|
95
|
+
status,
|
|
96
|
+
awaitingApproval = false,
|
|
97
|
+
stopped = false,
|
|
98
|
+
duration,
|
|
99
|
+
className
|
|
100
|
+
}) {
|
|
101
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
102
|
+
"span",
|
|
103
|
+
{
|
|
104
|
+
"data-slot": "lane-meta",
|
|
105
|
+
className: cnfast.cn("flex min-w-0 items-center gap-1 tabular-nums text-muted-foreground", className),
|
|
106
|
+
children: [
|
|
107
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
108
|
+
"span",
|
|
109
|
+
{
|
|
110
|
+
className: cnfast.cn(
|
|
111
|
+
!stopped && awaitingApproval && "text-amber-600",
|
|
112
|
+
!stopped && !awaitingApproval && status === "error" && "text-destructive"
|
|
113
|
+
),
|
|
114
|
+
children: laneModel.subagentStatusLabel({ status, awaitingApproval, stopped })
|
|
115
|
+
}
|
|
116
|
+
),
|
|
117
|
+
duration ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
118
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: "·" }),
|
|
119
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: duration })
|
|
120
|
+
] }) : null
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
function SubagentSegmentedProgress({
|
|
126
|
+
total,
|
|
127
|
+
complete,
|
|
128
|
+
failed,
|
|
129
|
+
className
|
|
130
|
+
}) {
|
|
131
|
+
const width = (count) => `${total > 0 ? Math.round(count / total * 100) : 0}%`;
|
|
132
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { "aria-hidden": "true", "data-slot": "subagent-progress", className: cnfast.cn("flex overflow-hidden bg-muted", className), children: [
|
|
133
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
134
|
+
"span",
|
|
135
|
+
{
|
|
136
|
+
"data-slot": "subagent-progress-done",
|
|
137
|
+
className: "block h-full bg-foreground/25 transition-all duration-500",
|
|
138
|
+
style: { width: width(complete) }
|
|
139
|
+
}
|
|
140
|
+
),
|
|
141
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
142
|
+
"span",
|
|
143
|
+
{
|
|
144
|
+
"data-slot": "subagent-progress-failed",
|
|
145
|
+
className: "block h-full bg-destructive/60 transition-all duration-500",
|
|
146
|
+
style: { width: width(failed) }
|
|
147
|
+
}
|
|
148
|
+
)
|
|
149
|
+
] });
|
|
150
|
+
}
|
|
151
|
+
function LaneAwaitingApprovalNote({
|
|
152
|
+
gatedCall,
|
|
153
|
+
insideLane = false
|
|
154
|
+
}) {
|
|
155
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": "subagent-lane-awaiting-approval", className: "flex min-w-0 items-center gap-1.5 text-[0.7rem]", children: [
|
|
156
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ShieldAlertIcon, { "aria-hidden": "true", className: "size-3 shrink-0 text-amber-600" }),
|
|
157
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-amber-600", children: subagents.subagentApprovalNoteLabel({ gatedCall, insideLane }) }),
|
|
158
|
+
gatedCall ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
159
|
+
/* @__PURE__ */ jsxRuntime.jsx("code", { className: "shrink-0 font-mono font-medium text-foreground", children: gatedCall.name }),
|
|
160
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-muted-foreground", children: toolNames.salientToolCallDetail(gatedCall) })
|
|
161
|
+
] }) : null
|
|
162
|
+
] });
|
|
163
|
+
}
|
|
164
|
+
const TYPE_BADGE_CLASS = "inline-flex items-center gap-1 whitespace-nowrap rounded-md border border-transparent bg-muted px-1.5 py-0 text-[10px] font-medium leading-4 text-muted-foreground";
|
|
165
|
+
function SubagentLaneCard({
|
|
166
|
+
snapshot,
|
|
167
|
+
timing,
|
|
168
|
+
now,
|
|
169
|
+
duration,
|
|
170
|
+
index,
|
|
171
|
+
onOpenTranscript,
|
|
172
|
+
registerCardEl,
|
|
173
|
+
approval,
|
|
174
|
+
wait,
|
|
175
|
+
stopped = false
|
|
176
|
+
}) {
|
|
177
|
+
const [descriptionExpanded, setDescriptionExpanded] = require$$0.useState(false);
|
|
178
|
+
const running = snapshot.status === "running" && !stopped;
|
|
179
|
+
const editing = !stopped && snapshot.status === "queued" && approval !== void 0 && approval !== null;
|
|
180
|
+
const awaitingApproval = !stopped && wait.awaitingApproval && !editing;
|
|
181
|
+
const settled = stopped || subagents.isTerminalSubagentStatus(snapshot.status);
|
|
182
|
+
const live = running && !awaitingApproval;
|
|
183
|
+
const stalled = live && !wait.runParked && !snapshot.evalId && timing != null && now - timing.lastEventAt > laneModel.SUBAGENT_STALL_THRESHOLD_MS;
|
|
184
|
+
const stallSeconds = timing ? Math.floor((now - timing.lastEventAt) / 1e3) : 0;
|
|
185
|
+
const hasTranscript = snapshot.messages.length > 0 || Boolean(snapshot.output) || snapshot.source !== void 0;
|
|
186
|
+
const lastToolCall = snapshot.lastToolCall;
|
|
187
|
+
const laneTokens = laneModel.formatLaneTokens(snapshot.usage);
|
|
188
|
+
const typeLabel = laneModel.subagentTypeLabel(snapshot.name);
|
|
189
|
+
const title = laneModel.subagentLaneTitle(snapshot);
|
|
190
|
+
const facts = laneModel.laneFacts(snapshot);
|
|
191
|
+
const entrance = { animationDelay: `${index * 60}ms` };
|
|
192
|
+
return (
|
|
193
|
+
// A fieldset: the card is a group named by its lane, which assistive tech
|
|
194
|
+
// announces as one (its implicit role), with no form semantics of its own.
|
|
195
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
196
|
+
"fieldset",
|
|
197
|
+
{
|
|
198
|
+
ref: registerCardEl ? (el) => registerCardEl(snapshot.id, el) : void 0,
|
|
199
|
+
"aria-label": `Subagent: ${title}`,
|
|
200
|
+
"data-testid": "subagent-lane-card",
|
|
201
|
+
"data-status": stopped ? "stopped" : awaitingApproval ? "awaiting-approval" : snapshot.status,
|
|
202
|
+
style: entrance,
|
|
203
|
+
className: "relative z-10 m-0 flex min-w-0 flex-col overflow-hidden rounded-lg border border-border bg-card p-0 text-card-foreground duration-300 ease-out [animation-fill-mode:both] animate-in fade-in-0 slide-in-from-bottom-2 zoom-in-95 motion-reduce:animate-none",
|
|
204
|
+
children: [
|
|
205
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-2 px-3 pt-2.5", children: [
|
|
206
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
207
|
+
SubagentProgressRing,
|
|
208
|
+
{
|
|
209
|
+
snapshot,
|
|
210
|
+
stalled,
|
|
211
|
+
awaitingApproval,
|
|
212
|
+
stopped,
|
|
213
|
+
sizeClassName: "mt-0.5 size-4"
|
|
214
|
+
}
|
|
215
|
+
),
|
|
216
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [
|
|
217
|
+
snapshot.description ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
218
|
+
"button",
|
|
219
|
+
{
|
|
220
|
+
type: "button",
|
|
221
|
+
"data-slot": "lane-title",
|
|
222
|
+
"aria-expanded": descriptionExpanded,
|
|
223
|
+
onClick: () => setDescriptionExpanded(!descriptionExpanded),
|
|
224
|
+
title: descriptionExpanded ? void 0 : snapshot.description,
|
|
225
|
+
className: "rounded-sm text-left text-sm font-medium leading-snug text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
226
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: cnfast.cn("break-words", !descriptionExpanded && "line-clamp-1"), children: snapshot.description })
|
|
227
|
+
}
|
|
228
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("span", { "data-slot": "lane-title", className: "text-sm font-medium leading-snug text-foreground", children: title }),
|
|
229
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
230
|
+
SubagentStatusLine,
|
|
231
|
+
{
|
|
232
|
+
status: snapshot.status,
|
|
233
|
+
awaitingApproval,
|
|
234
|
+
stopped,
|
|
235
|
+
duration: awaitingApproval ? void 0 : duration,
|
|
236
|
+
className: "text-xs"
|
|
237
|
+
}
|
|
238
|
+
)
|
|
239
|
+
] }),
|
|
240
|
+
typeLabel ? /* @__PURE__ */ jsxRuntime.jsx("span", { "data-slot": "lane-type", className: cnfast.cn(TYPE_BADGE_CLASS, "mt-0.5 shrink-0"), children: typeLabel }) : null
|
|
241
|
+
] }),
|
|
242
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-[3.25rem] flex-col gap-1.5 px-3 py-2", children: [
|
|
243
|
+
editing ? approval : null,
|
|
244
|
+
awaitingApproval ? /* @__PURE__ */ jsxRuntime.jsx(LaneAwaitingApprovalNote, { gatedCall: wait.gatedCall, insideLane: wait.insideLane }) : null,
|
|
245
|
+
snapshot.status === "queued" && !stopped && !editing && !awaitingApproval ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-muted-foreground motion-safe:animate-pulse", children: "Queued — waiting for a dispatch slot…" }) : null,
|
|
246
|
+
live && lastToolCall ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
247
|
+
"div",
|
|
248
|
+
{
|
|
249
|
+
"data-slot": "lane-activity",
|
|
250
|
+
className: "flex min-w-0 items-center gap-1.5 duration-300 animate-in fade-in slide-in-from-bottom-1 motion-reduce:animate-none",
|
|
251
|
+
children: [
|
|
252
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ZapIcon, { "aria-hidden": "true", className: "size-3 shrink-0 text-muted-foreground" }),
|
|
253
|
+
/* @__PURE__ */ jsxRuntime.jsx("code", { className: "shrink-0 font-mono text-[0.7rem] font-medium text-foreground/80", children: lastToolCall.name }),
|
|
254
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-[0.7rem] text-muted-foreground", children: toolNames.salientToolCallDetail(lastToolCall) })
|
|
255
|
+
]
|
|
256
|
+
},
|
|
257
|
+
lastToolCall.id ?? `${lastToolCall.name}-${snapshot.toolCallCount}`
|
|
258
|
+
) : null,
|
|
259
|
+
live && snapshot.currentText ? /* @__PURE__ */ jsxRuntime.jsxs("p", { "data-slot": "lane-thought", className: "line-clamp-2 text-xs leading-relaxed text-muted-foreground", children: [
|
|
260
|
+
snapshot.currentText,
|
|
261
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-0.5 inline-block h-3 w-1 rounded-sm bg-muted-foreground/50 align-middle motion-safe:animate-pulse" })
|
|
262
|
+
] }) : null,
|
|
263
|
+
live && !snapshot.currentText && !lastToolCall ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-muted-foreground motion-safe:animate-pulse", children: snapshot.evalId ? "Working… — output arrives when this dispatch completes" : "Working…" }) : null,
|
|
264
|
+
stalled ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
265
|
+
"div",
|
|
266
|
+
{
|
|
267
|
+
"data-slot": "lane-stalled",
|
|
268
|
+
className: "flex w-fit items-center gap-1 rounded-md bg-amber-500/10 px-1.5 py-0.5 text-[0.7rem] text-amber-600 duration-300 animate-in fade-in motion-reduce:animate-none",
|
|
269
|
+
children: [
|
|
270
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertTriangleIcon, { "aria-hidden": "true", className: "size-3 shrink-0" }),
|
|
271
|
+
"No activity for ",
|
|
272
|
+
stallSeconds,
|
|
273
|
+
"s"
|
|
274
|
+
]
|
|
275
|
+
}
|
|
276
|
+
) : null,
|
|
277
|
+
settled ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
278
|
+
"p",
|
|
279
|
+
{
|
|
280
|
+
"data-slot": "lane-output",
|
|
281
|
+
className: cnfast.cn(
|
|
282
|
+
"line-clamp-3 whitespace-pre-line break-words text-xs leading-relaxed",
|
|
283
|
+
snapshot.status === "error" ? "text-destructive" : stopped ? "text-muted-foreground" : "text-foreground/80"
|
|
284
|
+
),
|
|
285
|
+
children: snapshot.output || (stopped ? laneModel.SUBAGENT_STOPPED_OUTPUT : snapshot.status === "complete" && snapshot.evalId ? "Done — result returned to the orchestrator." : "No output.")
|
|
286
|
+
}
|
|
287
|
+
) : null
|
|
288
|
+
] }),
|
|
289
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-auto flex min-h-8 items-center gap-2 border-t border-border px-3 py-1.5", children: [
|
|
290
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "min-w-0 truncate text-[0.7rem] tabular-nums text-muted-foreground", children: [
|
|
291
|
+
facts.join(" · "),
|
|
292
|
+
laneTokens ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
293
|
+
facts.length > 0 ? " · " : null,
|
|
294
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "data-slot": "lane-tokens", children: laneTokens })
|
|
295
|
+
] }) : null
|
|
296
|
+
] }),
|
|
297
|
+
hasTranscript ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
298
|
+
"button",
|
|
299
|
+
{
|
|
300
|
+
type: "button",
|
|
301
|
+
"data-slot": "lane-view-transcript",
|
|
302
|
+
onClick: () => onOpenTranscript(snapshot.id),
|
|
303
|
+
className: "ml-auto flex shrink-0 items-center gap-0.5 rounded px-1 py-0.5 text-[0.7rem] font-medium text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
304
|
+
children: [
|
|
305
|
+
"View transcript",
|
|
306
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { "aria-hidden": "true", className: "size-3" })
|
|
307
|
+
]
|
|
308
|
+
}
|
|
309
|
+
) : null
|
|
310
|
+
] })
|
|
311
|
+
]
|
|
312
|
+
}
|
|
313
|
+
)
|
|
314
|
+
);
|
|
315
|
+
}
|
|
316
|
+
function SubagentOrchestrationStrip({
|
|
317
|
+
snapshots,
|
|
318
|
+
timings,
|
|
319
|
+
now,
|
|
320
|
+
stripRef,
|
|
321
|
+
awaitingLaneIds,
|
|
322
|
+
stoppedLaneIds
|
|
323
|
+
}) {
|
|
324
|
+
let queued = 0;
|
|
325
|
+
let running = 0;
|
|
326
|
+
let complete = 0;
|
|
327
|
+
let failed = 0;
|
|
328
|
+
let stopped = 0;
|
|
329
|
+
let awaiting = 0;
|
|
330
|
+
let calls = 0;
|
|
331
|
+
for (const lane of snapshots) {
|
|
332
|
+
calls += lane.toolCallCount;
|
|
333
|
+
if ((stoppedLaneIds == null ? void 0 : stoppedLaneIds.has(lane.id)) === true && !subagents.isTerminalSubagentStatus(lane.status)) stopped += 1;
|
|
334
|
+
else if (awaitingLaneIds.has(lane.id) && !subagents.isTerminalSubagentStatus(lane.status)) awaiting += 1;
|
|
335
|
+
else if (lane.status === "queued") queued += 1;
|
|
336
|
+
else if (lane.status === "running") running += 1;
|
|
337
|
+
else if (lane.status === "complete") complete += 1;
|
|
338
|
+
else failed += 1;
|
|
339
|
+
}
|
|
340
|
+
const total = snapshots.length;
|
|
341
|
+
const watched = snapshots.some((lane) => {
|
|
342
|
+
var _a;
|
|
343
|
+
return ((_a = timings.get(lane.id)) == null ? void 0 : _a.sawActive) === true;
|
|
344
|
+
});
|
|
345
|
+
const firstSeen = Math.min(
|
|
346
|
+
...snapshots.map((lane) => {
|
|
347
|
+
var _a;
|
|
348
|
+
return ((_a = timings.get(lane.id)) == null ? void 0 : _a.firstSeenAt) ?? Number.POSITIVE_INFINITY;
|
|
349
|
+
})
|
|
350
|
+
);
|
|
351
|
+
const elapsed = watched && Number.isFinite(firstSeen) ? laneModel.formatLaneElapsed(now - firstSeen) : null;
|
|
352
|
+
const parts = laneModel.subagentCountParts({ awaiting, queued, running, complete, failed, stopped });
|
|
353
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
354
|
+
"div",
|
|
355
|
+
{
|
|
356
|
+
ref: stripRef,
|
|
357
|
+
"data-slot": "subagent-strip",
|
|
358
|
+
className: "relative z-10 mx-auto flex w-fit max-w-full items-center gap-2 overflow-hidden rounded-full border border-border bg-card py-1 pr-4 pl-3 duration-300 animate-in fade-in slide-in-from-bottom-1 motion-reduce:animate-none",
|
|
359
|
+
children: [
|
|
360
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.GitForkIcon, { "aria-hidden": "true", className: "size-3.5 rotate-180 text-muted-foreground" }),
|
|
361
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "whitespace-nowrap text-xs font-medium text-foreground", children: [
|
|
362
|
+
total,
|
|
363
|
+
" subagents in parallel"
|
|
364
|
+
] }),
|
|
365
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "truncate whitespace-nowrap text-xs tabular-nums text-muted-foreground", children: [
|
|
366
|
+
parts.join(" · "),
|
|
367
|
+
calls > 0 ? ` · ${calls} tool calls` : null,
|
|
368
|
+
elapsed ? ` · ${elapsed}` : null
|
|
369
|
+
] }),
|
|
370
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
371
|
+
SubagentSegmentedProgress,
|
|
372
|
+
{
|
|
373
|
+
total,
|
|
374
|
+
complete,
|
|
375
|
+
failed: failed + stopped,
|
|
376
|
+
className: "absolute inset-x-0 bottom-0 h-0.5"
|
|
377
|
+
}
|
|
378
|
+
)
|
|
379
|
+
]
|
|
380
|
+
}
|
|
381
|
+
);
|
|
382
|
+
}
|
|
383
|
+
function SubagentForkConnectors({
|
|
384
|
+
containerRef,
|
|
385
|
+
stripRef,
|
|
386
|
+
cardEls,
|
|
387
|
+
snapshots,
|
|
388
|
+
stoppedLaneIds
|
|
389
|
+
}) {
|
|
390
|
+
const [paths, setPaths] = require$$0.useState([]);
|
|
391
|
+
require$$0.useLayoutEffect(() => {
|
|
392
|
+
const container = containerRef.current;
|
|
393
|
+
if (!container) return void 0;
|
|
394
|
+
const measure = () => {
|
|
395
|
+
var _a;
|
|
396
|
+
const strip = stripRef.current;
|
|
397
|
+
if (!strip) {
|
|
398
|
+
setPaths([]);
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
const containerRect = container.getBoundingClientRect();
|
|
402
|
+
const stripRect = strip.getBoundingClientRect();
|
|
403
|
+
const originX = stripRect.left + stripRect.width / 2 - containerRect.left;
|
|
404
|
+
const originY = stripRect.bottom - containerRect.top;
|
|
405
|
+
const next = [];
|
|
406
|
+
for (const snap of snapshots) {
|
|
407
|
+
const el = (_a = cardEls.current) == null ? void 0 : _a.get(snap.id);
|
|
408
|
+
if (!el) continue;
|
|
409
|
+
const rect = el.getBoundingClientRect();
|
|
410
|
+
const cardX = rect.left + rect.width / 2 - containerRect.left;
|
|
411
|
+
const cardY = rect.top - containerRect.top;
|
|
412
|
+
if (cardY <= originY) continue;
|
|
413
|
+
next.push({
|
|
414
|
+
id: snap.id,
|
|
415
|
+
d: `M ${originX} ${originY} C ${originX} ${originY + 14}, ${cardX} ${cardY - 14}, ${cardX} ${cardY}`,
|
|
416
|
+
flowing: (snap.status === "running" || snap.status === "queued") && (stoppedLaneIds == null ? void 0 : stoppedLaneIds.has(snap.id)) !== true
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
setPaths(next);
|
|
420
|
+
};
|
|
421
|
+
measure();
|
|
422
|
+
if (typeof ResizeObserver !== "function") return void 0;
|
|
423
|
+
const observer = new ResizeObserver(measure);
|
|
424
|
+
observer.observe(container);
|
|
425
|
+
return () => observer.disconnect();
|
|
426
|
+
}, [containerRef, stripRef, cardEls, snapshots, stoppedLaneIds]);
|
|
427
|
+
if (paths.length === 0) return null;
|
|
428
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
429
|
+
"svg",
|
|
430
|
+
{
|
|
431
|
+
"data-slot": "subagent-connectors",
|
|
432
|
+
className: "pointer-events-none absolute inset-0 z-0 h-full w-full overflow-visible",
|
|
433
|
+
"aria-hidden": "true",
|
|
434
|
+
children: paths.map((path) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
435
|
+
"path",
|
|
436
|
+
{
|
|
437
|
+
d: path.d,
|
|
438
|
+
strokeWidth: "1.5",
|
|
439
|
+
strokeLinecap: "round",
|
|
440
|
+
strokeDasharray: path.flowing ? "5 5" : void 0,
|
|
441
|
+
className: cnfast.cn("fill-none stroke-current", path.flowing ? "text-muted-foreground/60" : "text-border"),
|
|
442
|
+
children: path.flowing ? /* @__PURE__ */ jsxRuntime.jsx("animate", { attributeName: "stroke-dashoffset", values: "10;0", dur: "0.8s", repeatCount: "indefinite" }) : null
|
|
443
|
+
},
|
|
444
|
+
path.id
|
|
445
|
+
))
|
|
446
|
+
}
|
|
447
|
+
);
|
|
448
|
+
}
|
|
449
|
+
function LanesPagerButton({
|
|
450
|
+
label,
|
|
451
|
+
disabled,
|
|
452
|
+
onClick,
|
|
453
|
+
children
|
|
454
|
+
}) {
|
|
455
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
456
|
+
"button",
|
|
457
|
+
{
|
|
458
|
+
type: "button",
|
|
459
|
+
"aria-label": label,
|
|
460
|
+
disabled,
|
|
461
|
+
onClick,
|
|
462
|
+
className: "flex size-6 items-center justify-center rounded-full border border-border bg-card text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-default disabled:opacity-40 disabled:hover:bg-card disabled:hover:text-muted-foreground",
|
|
463
|
+
children
|
|
464
|
+
}
|
|
465
|
+
);
|
|
466
|
+
}
|
|
467
|
+
function SubagentLanesPager({
|
|
468
|
+
page,
|
|
469
|
+
pageCount,
|
|
470
|
+
onPageChange
|
|
471
|
+
}) {
|
|
472
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "subagent-pager", className: "relative z-10 mt-2 flex items-center justify-center gap-2", children: [
|
|
473
|
+
/* @__PURE__ */ jsxRuntime.jsx(LanesPagerButton, { label: "Previous subagents", disabled: page === 0, onClick: () => onPageChange(page - 1), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeftIcon, { "aria-hidden": "true", className: "size-3.5" }) }),
|
|
474
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs tabular-nums text-muted-foreground", children: [
|
|
475
|
+
"Page ",
|
|
476
|
+
page + 1,
|
|
477
|
+
" of ",
|
|
478
|
+
pageCount
|
|
479
|
+
] }),
|
|
480
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
481
|
+
LanesPagerButton,
|
|
482
|
+
{
|
|
483
|
+
label: "Next subagents",
|
|
484
|
+
disabled: page === pageCount - 1,
|
|
485
|
+
onClick: () => onPageChange(page + 1),
|
|
486
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { "aria-hidden": "true", className: "size-3.5" })
|
|
487
|
+
}
|
|
488
|
+
)
|
|
489
|
+
] });
|
|
490
|
+
}
|
|
491
|
+
function SubagentDelegationChip({
|
|
492
|
+
name,
|
|
493
|
+
description
|
|
494
|
+
}) {
|
|
495
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
496
|
+
"div",
|
|
497
|
+
{
|
|
498
|
+
"data-testid": "subagent-delegation",
|
|
499
|
+
className: "my-2 flex min-w-0 items-center gap-2 rounded-lg border border-border bg-muted/40 px-3 py-2",
|
|
500
|
+
children: [
|
|
501
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.GitForkIcon, { "aria-hidden": "true", className: "size-3.5 shrink-0 rotate-180 text-muted-foreground" }),
|
|
502
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-xs font-medium text-foreground", children: laneModel.subagentTypeLabel(name) ?? "Subagent" }),
|
|
503
|
+
description ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate text-xs text-muted-foreground", children: description }) : null
|
|
504
|
+
]
|
|
505
|
+
}
|
|
506
|
+
);
|
|
507
|
+
}
|
|
508
|
+
exports.LaneAwaitingApprovalNote = LaneAwaitingApprovalNote;
|
|
509
|
+
exports.SubagentDelegationChip = SubagentDelegationChip;
|
|
510
|
+
exports.SubagentForkConnectors = SubagentForkConnectors;
|
|
511
|
+
exports.SubagentLaneCard = SubagentLaneCard;
|
|
512
|
+
exports.SubagentLanesPager = SubagentLanesPager;
|
|
513
|
+
exports.SubagentOrchestrationStrip = SubagentOrchestrationStrip;
|
|
514
|
+
exports.SubagentProgressRing = SubagentProgressRing;
|
|
515
|
+
exports.SubagentSegmentedProgress = SubagentSegmentedProgress;
|
|
516
|
+
exports.SubagentStatusLine = SubagentStatusLine;
|
|
517
|
+
//# sourceMappingURL=lane-parts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane-parts.cjs","sources":["../../src/subagents/lane-parts.tsx"],"sourcesContent":["'use client';\n\n/**\n * The pieces a subagent lane is drawn with: its progress ring, its status\n * line, its card, a fan-out's orchestration strip and fork connectors, the\n * pager, and the chip a delegation inside a transcript shows as. Presentational\n * only: what a lane says comes from `lane-model.ts`, and where it is from the\n * group (`subagent-lane-group.tsx`). Every app that shows lanes draws them\n * with these (Athena on the web, the desktop app, any SDK host).\n */\nimport {\n isTerminalSubagentStatus,\n type SubagentDiscoverySnapshot,\n type SubagentLaneApprovalWait,\n type SubagentStatus,\n salientToolCallDetail,\n subagentApprovalNoteLabel,\n} from '@athenaintel/agent-runtime';\nimport {\n AlertTriangleIcon,\n CheckCircle2Icon,\n ChevronLeftIcon,\n ChevronRightIcon,\n GitForkIcon,\n ShieldAlertIcon,\n XCircleIcon,\n ZapIcon,\n} from 'lucide-react';\nimport { type CSSProperties, type ReactNode, type RefObject, useLayoutEffect, useState } from 'react';\nimport { cn } from '../lib/utils';\nimport {\n formatLaneElapsed,\n formatLaneTokens,\n laneFacts,\n lanePlanProgress,\n SUBAGENT_STALL_THRESHOLD_MS,\n SUBAGENT_STOPPED_OUTPUT,\n subagentCountParts,\n subagentLaneTitle,\n subagentStatusLabel,\n subagentTypeLabel,\n type SubagentTiming,\n} from './lane-model';\n\n// ─── Progress ring ───────────────────────────────────────────────────\n\nconst RING_RADIUS = 8;\nconst RING_CIRCUMFERENCE = 2 * Math.PI * RING_RADIUS;\n\n/**\n * The status dot with the subagent's plan progress drawn as a ring: the share\n * of its own `write_todos` plan it completed (`subgraph_state.todos`); an\n * indeterminate spinning arc while it has written no plan; a pulsing hollow\n * dot while queued; a check or a cross once settled (a muted one for a lane\n * its run stopped). Neutral while it works, amber while stalled, and a shield\n * while it waits for a person's approval. `sizeClassName` sizes it, so a list\n * of lanes can draw it smaller.\n */\nexport function SubagentProgressRing({\n snapshot,\n stalled = false,\n awaitingApproval = false,\n stopped = false,\n sizeClassName = 'size-4',\n}: {\n snapshot: Pick<SubagentDiscoverySnapshot, 'status' | 'todos'>;\n stalled?: boolean;\n awaitingApproval?: boolean;\n /** The run ended before the lane settled. */\n stopped?: boolean;\n sizeClassName?: string;\n}) {\n if (snapshot.status === 'complete') {\n return <CheckCircle2Icon aria-hidden=\"true\" className={cn('shrink-0 text-emerald-600', sizeClassName)} />;\n }\n if (snapshot.status === 'error') {\n return <XCircleIcon aria-hidden=\"true\" className={cn('shrink-0 text-destructive', sizeClassName)} />;\n }\n if (stopped) {\n return <XCircleIcon aria-hidden=\"true\" className={cn('shrink-0 text-muted-foreground', sizeClassName)} />;\n }\n if (awaitingApproval) {\n return (\n <ShieldAlertIcon\n role=\"img\"\n aria-label=\"Waiting for approval\"\n className={cn('shrink-0 text-amber-600', sizeClassName)}\n />\n );\n }\n const colorClass = stalled ? 'text-amber-600' : 'text-foreground/60';\n if (snapshot.status === 'queued') {\n return (\n <span className={cn('flex shrink-0 items-center justify-center', sizeClassName)}>\n <span\n className={cn(\n 'h-1/2 w-1/2 rounded-full border-2 motion-safe:animate-pulse',\n colorClass,\n )}\n />\n </span>\n );\n }\n const plan = lanePlanProgress(snapshot);\n const fraction = plan ? plan.done / plan.total : null;\n return (\n <span className={cn('flex shrink-0 items-center justify-center', sizeClassName)}>\n <svg\n viewBox=\"0 0 20 20\"\n className={cn(\n 'h-full w-full',\n fraction == null ? 'motion-safe:animate-spin' : '-rotate-90',\n )}\n role=\"img\"\n aria-label=\"Subagent progress\"\n >\n {/* The hover hint, as the ring's own: no tooltip library for one line. */}\n <title>{plan ? `${plan.done}/${plan.total} plan steps complete` : 'Working — no plan written yet'}</title>\n <circle\n cx=\"10\"\n cy=\"10\"\n r={RING_RADIUS}\n strokeWidth=\"2.5\"\n className=\"fill-none stroke-current text-border\"\n />\n <circle\n cx=\"10\"\n cy=\"10\"\n r={RING_RADIUS}\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeDasharray={RING_CIRCUMFERENCE}\n strokeDashoffset={RING_CIRCUMFERENCE * (1 - (fraction ?? 0.25))}\n className={cn(\n 'fill-none stroke-current transition-[stroke-dashoffset] duration-500',\n colorClass,\n )}\n />\n </svg>\n </span>\n );\n}\n\n// ─── Status line ─────────────────────────────────────────────────────\n\n/**\n * A lane's muted status line, \"Done · 29s\": its status word and, when known,\n * its duration. Only a failure and a wait for approval take a tone.\n */\nexport function SubagentStatusLine({\n status,\n awaitingApproval = false,\n stopped = false,\n duration,\n className,\n}: {\n status: SubagentStatus;\n awaitingApproval?: boolean;\n /** The run ended before the lane settled. */\n stopped?: boolean;\n duration?: string;\n className?: string;\n}) {\n return (\n <span\n data-slot=\"lane-meta\"\n className={cn('flex min-w-0 items-center gap-1 tabular-nums text-muted-foreground', className)}\n >\n <span\n className={cn(\n !stopped && awaitingApproval && 'text-amber-600',\n !stopped && !awaitingApproval && status === 'error' && 'text-destructive',\n )}\n >\n {subagentStatusLabel({ status, awaitingApproval, stopped })}\n </span>\n {duration ? (\n <>\n <span aria-hidden=\"true\">·</span>\n <span>{duration}</span>\n </>\n ) : null}\n </span>\n );\n}\n\n/**\n * A fan-out's progress as one quiet bar: the finished lanes, then the failed\n * ones, over the queued and running remainder. Placed and sized through\n * `className`.\n */\nexport function SubagentSegmentedProgress({\n total,\n complete,\n failed,\n className,\n}: {\n total: number;\n complete: number;\n failed: number;\n className?: string;\n}) {\n const width = (count: number) => `${total > 0 ? Math.round((count / total) * 100) : 0}%`;\n return (\n <span aria-hidden=\"true\" data-slot=\"subagent-progress\" className={cn('flex overflow-hidden bg-muted', className)}>\n <span\n data-slot=\"subagent-progress-done\"\n className=\"block h-full bg-foreground/25 transition-all duration-500\"\n style={{ width: width(complete) }}\n />\n <span\n data-slot=\"subagent-progress-failed\"\n className=\"block h-full bg-destructive/60 transition-all duration-500\"\n style={{ width: width(failed) }}\n />\n </span>\n );\n}\n\n/**\n * What a lane waiting for approval shows in place of its live activity: the\n * call it waits on (a gated tool its subagent raised), or that it needs\n * approval to start or to continue. Answering is the approval card's.\n */\nexport function LaneAwaitingApprovalNote({\n gatedCall,\n insideLane = false,\n}: Pick<SubagentLaneApprovalWait, 'gatedCall' | 'insideLane'>) {\n return (\n <div data-testid=\"subagent-lane-awaiting-approval\" className=\"flex min-w-0 items-center gap-1.5 text-[0.7rem]\">\n <ShieldAlertIcon aria-hidden=\"true\" className=\"size-3 shrink-0 text-amber-600\" />\n <span className=\"shrink-0 text-amber-600\">{subagentApprovalNoteLabel({ gatedCall, insideLane })}</span>\n {gatedCall ? (\n <>\n <code className=\"shrink-0 font-mono font-medium text-foreground\">{gatedCall.name}</code>\n <span className=\"truncate text-muted-foreground\">{salientToolCallDetail(gatedCall)}</span>\n </>\n ) : null}\n </div>\n );\n}\n\n// ─── The lane card ───────────────────────────────────────────────────\n\n/** Whether a lane waits on a person, and on what; `runParked` when the whole run waits on one. */\nexport interface SubagentLaneWait extends SubagentLaneApprovalWait {\n /** The whole run is parked on a request a person answers: no lane runs until someone does. */\n runParked: boolean;\n}\n\nexport interface SubagentLaneCardProps {\n snapshot: SubagentDiscoverySnapshot;\n timing: SubagentTiming | undefined;\n /** The group's clock. */\n now: number;\n /** The duration the card shows (`laneDurationLabel`). */\n duration: string | undefined;\n /** Its place among the cards shown, which staggers their entrance. */\n index: number;\n /** Opens the lane's transcript. */\n onOpenTranscript: (id: string) => void;\n /** The card's element, for the fork connectors. */\n registerCardEl?: (id: string, el: HTMLElement | null) => void;\n /** A host's in-card approval controls for this queued lane (Athena on the web's lane editor). */\n approval?: ReactNode;\n wait: SubagentLaneWait;\n /** The run that delegated the lane ended before it settled: it reads Stopped, not live. */\n stopped?: boolean;\n}\n\nconst TYPE_BADGE_CLASS =\n 'inline-flex items-center gap-1 whitespace-nowrap rounded-md border border-transparent bg-muted px-1.5 py-0 text-[10px] font-medium leading-4 text-muted-foreground';\n\n/**\n * One subagent lane: its brief (which opens whole), its status and duration,\n * and while it works, the call it made last, the thought it streams, and a\n * badge once it has gone quiet; a settled lane's report or failure; its facts\n * (tool calls, plan steps, tokens) and \"View transcript\".\n */\nexport function SubagentLaneCard({\n snapshot,\n timing,\n now,\n duration,\n index,\n onOpenTranscript,\n registerCardEl,\n approval,\n wait,\n stopped = false,\n}: SubagentLaneCardProps) {\n const [descriptionExpanded, setDescriptionExpanded] = useState(false);\n const running = snapshot.status === 'running' && !stopped;\n // A queued lane offering a host's in-card approval controls already shows\n // what it waits for; every other lane waiting for approval says so, and\n // shows what it waits on in place of live activity.\n const editing = !stopped && snapshot.status === 'queued' && approval !== undefined && approval !== null;\n const awaitingApproval = !stopped && wait.awaitingApproval && !editing;\n const settled = stopped || isTerminalSubagentStatus(snapshot.status);\n const live = running && !awaitingApproval;\n // In-eval dispatches (`evalId`) report their lifecycle only, so a healthy\n // long dispatch would read as stalled; a lane waiting on a person (its\n // approval, or a run parked on one) makes no progress until someone\n // answers, and that is not a stall either.\n const stalled =\n live &&\n !wait.runParked &&\n !snapshot.evalId &&\n timing != null &&\n now - timing.lastEventAt > SUBAGENT_STALL_THRESHOLD_MS;\n const stallSeconds = timing ? Math.floor((now - timing.lastEventAt) / 1000) : 0;\n // A lane with a source pages its steps in the transcript (one left only its summary too).\n const hasTranscript =\n snapshot.messages.length > 0 || Boolean(snapshot.output) || snapshot.source !== undefined;\n const lastToolCall = snapshot.lastToolCall;\n const laneTokens = formatLaneTokens(snapshot.usage);\n const typeLabel = subagentTypeLabel(snapshot.name);\n const title = subagentLaneTitle(snapshot);\n const facts = laneFacts(snapshot);\n const entrance: CSSProperties = { animationDelay: `${index * 60}ms` };\n\n return (\n // A fieldset: the card is a group named by its lane, which assistive tech\n // announces as one (its implicit role), with no form semantics of its own.\n <fieldset\n ref={registerCardEl ? (el) => registerCardEl(snapshot.id, el) : undefined}\n aria-label={`Subagent: ${title}`}\n data-testid=\"subagent-lane-card\"\n data-status={stopped ? 'stopped' : awaitingApproval ? 'awaiting-approval' : snapshot.status}\n style={entrance}\n className=\"relative z-10 m-0 flex min-w-0 flex-col overflow-hidden rounded-lg border border-border bg-card p-0 text-card-foreground duration-300 ease-out [animation-fill-mode:both] animate-in fade-in-0 slide-in-from-bottom-2 zoom-in-95 motion-reduce:animate-none\"\n >\n <div className=\"flex items-start gap-2 px-3 pt-2.5\">\n <SubagentProgressRing\n snapshot={snapshot}\n stalled={stalled}\n awaitingApproval={awaitingApproval}\n stopped={stopped}\n sizeClassName=\"mt-0.5 size-4\"\n />\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n {snapshot.description ? (\n <button\n type=\"button\"\n data-slot=\"lane-title\"\n aria-expanded={descriptionExpanded}\n onClick={() => setDescriptionExpanded(!descriptionExpanded)}\n title={descriptionExpanded ? undefined : snapshot.description}\n className=\"rounded-sm text-left text-sm font-medium leading-snug text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <span className={cn('break-words', !descriptionExpanded && 'line-clamp-1')}>\n {snapshot.description}\n </span>\n </button>\n ) : (\n <span data-slot=\"lane-title\" className=\"text-sm font-medium leading-snug text-foreground\">\n {title}\n </span>\n )}\n <SubagentStatusLine\n status={snapshot.status}\n awaitingApproval={awaitingApproval}\n stopped={stopped}\n // No clock while it waits on a person: it is not running.\n duration={awaitingApproval ? undefined : duration}\n className=\"text-xs\"\n />\n </div>\n {typeLabel ? (\n <span data-slot=\"lane-type\" className={cn(TYPE_BADGE_CLASS, 'mt-0.5 shrink-0')}>\n {typeLabel}\n </span>\n ) : null}\n </div>\n\n <div className=\"flex min-h-[3.25rem] flex-col gap-1.5 px-3 py-2\">\n {editing ? approval : null}\n {awaitingApproval ? (\n <LaneAwaitingApprovalNote gatedCall={wait.gatedCall} insideLane={wait.insideLane} />\n ) : null}\n {snapshot.status === 'queued' && !stopped && !editing && !awaitingApproval ? (\n <div className=\"text-xs text-muted-foreground motion-safe:animate-pulse\">\n Queued — waiting for a dispatch slot…\n </div>\n ) : null}\n\n {live && lastToolCall ? (\n <div\n key={lastToolCall.id ?? `${lastToolCall.name}-${snapshot.toolCallCount}`}\n data-slot=\"lane-activity\"\n className=\"flex min-w-0 items-center gap-1.5 duration-300 animate-in fade-in slide-in-from-bottom-1 motion-reduce:animate-none\"\n >\n <ZapIcon aria-hidden=\"true\" className=\"size-3 shrink-0 text-muted-foreground\" />\n <code className=\"shrink-0 font-mono text-[0.7rem] font-medium text-foreground/80\">\n {lastToolCall.name}\n </code>\n <span className=\"truncate text-[0.7rem] text-muted-foreground\">{salientToolCallDetail(lastToolCall)}</span>\n </div>\n ) : null}\n\n {live && snapshot.currentText ? (\n <p data-slot=\"lane-thought\" className=\"line-clamp-2 text-xs leading-relaxed text-muted-foreground\">\n {snapshot.currentText}\n <span className=\"ml-0.5 inline-block h-3 w-1 rounded-sm bg-muted-foreground/50 align-middle motion-safe:animate-pulse\" />\n </p>\n ) : null}\n {live && !snapshot.currentText && !lastToolCall ? (\n <div className=\"text-xs text-muted-foreground motion-safe:animate-pulse\">\n {snapshot.evalId ? 'Working… — output arrives when this dispatch completes' : 'Working…'}\n </div>\n ) : null}\n\n {stalled ? (\n <div\n data-slot=\"lane-stalled\"\n className=\"flex w-fit items-center gap-1 rounded-md bg-amber-500/10 px-1.5 py-0.5 text-[0.7rem] text-amber-600 duration-300 animate-in fade-in motion-reduce:animate-none\"\n >\n <AlertTriangleIcon aria-hidden=\"true\" className=\"size-3 shrink-0\" />\n No activity for {stallSeconds}s\n </div>\n ) : null}\n\n {settled ? (\n <p\n data-slot=\"lane-output\"\n className={cn(\n 'line-clamp-3 whitespace-pre-line break-words text-xs leading-relaxed',\n snapshot.status === 'error' ? 'text-destructive' : stopped ? 'text-muted-foreground' : 'text-foreground/80',\n )}\n >\n {/* An in-eval dispatch's completion carries no output (the result\n returns into the interpreter, not this lane): say so rather\n than implying the subagent produced nothing. */}\n {snapshot.output ||\n (stopped\n ? SUBAGENT_STOPPED_OUTPUT\n : snapshot.status === 'complete' && snapshot.evalId\n ? 'Done — result returned to the orchestrator.'\n : 'No output.')}\n </p>\n ) : null}\n </div>\n\n <div className=\"mt-auto flex min-h-8 items-center gap-2 border-t border-border px-3 py-1.5\">\n <span className=\"min-w-0 truncate text-[0.7rem] tabular-nums text-muted-foreground\">\n {facts.join(' · ')}\n {laneTokens ? (\n <>\n {facts.length > 0 ? ' · ' : null}\n <span data-slot=\"lane-tokens\">{laneTokens}</span>\n </>\n ) : null}\n </span>\n {hasTranscript ? (\n <button\n type=\"button\"\n data-slot=\"lane-view-transcript\"\n onClick={() => onOpenTranscript(snapshot.id)}\n className=\"ml-auto flex shrink-0 items-center gap-0.5 rounded px-1 py-0.5 text-[0.7rem] font-medium 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 View transcript\n <ChevronRightIcon aria-hidden=\"true\" className=\"size-3\" />\n </button>\n ) : null}\n </div>\n </fieldset>\n );\n}\n\n// ─── Orchestration strip (parallel groups only) ──────────────────────\n\nexport function SubagentOrchestrationStrip({\n snapshots,\n timings,\n now,\n stripRef,\n awaitingLaneIds,\n stoppedLaneIds,\n}: {\n snapshots: readonly SubagentDiscoverySnapshot[];\n timings: ReadonlyMap<string, SubagentTiming>;\n now: number;\n stripRef: RefObject<HTMLDivElement | null>;\n /** Lanes waiting for approval: counted on their own, so a paged-away one is still seen. */\n awaitingLaneIds: ReadonlySet<string>;\n /** Lanes the run stopped before they settled. */\n stoppedLaneIds?: ReadonlySet<string>;\n}) {\n let queued = 0;\n let running = 0;\n let complete = 0;\n let failed = 0;\n let stopped = 0;\n let awaiting = 0;\n let calls = 0;\n for (const lane of snapshots) {\n calls += lane.toolCallCount;\n if (stoppedLaneIds?.has(lane.id) === true && !isTerminalSubagentStatus(lane.status)) stopped += 1;\n else if (awaitingLaneIds.has(lane.id) && !isTerminalSubagentStatus(lane.status)) awaiting += 1;\n else if (lane.status === 'queued') queued += 1;\n else if (lane.status === 'running') running += 1;\n else if (lane.status === 'complete') complete += 1;\n else failed += 1;\n }\n const total = snapshots.length;\n // Wall time only for a run this page watched: a reopened group's lanes were\n // all first seen at mount, so its clock would read \"0s\".\n const watched = snapshots.some((lane) => timings.get(lane.id)?.sawActive === true);\n const firstSeen = Math.min(\n ...snapshots.map((lane) => timings.get(lane.id)?.firstSeenAt ?? Number.POSITIVE_INFINITY),\n );\n const elapsed = watched && Number.isFinite(firstSeen) ? formatLaneElapsed(now - firstSeen) : null;\n const parts = subagentCountParts({ awaiting, queued, running, complete, failed, stopped });\n\n return (\n <div\n ref={stripRef}\n data-slot=\"subagent-strip\"\n className=\"relative z-10 mx-auto flex w-fit max-w-full items-center gap-2 overflow-hidden rounded-full border border-border bg-card py-1 pr-4 pl-3 duration-300 animate-in fade-in slide-in-from-bottom-1 motion-reduce:animate-none\"\n >\n <GitForkIcon aria-hidden=\"true\" className=\"size-3.5 rotate-180 text-muted-foreground\" />\n <span className=\"whitespace-nowrap text-xs font-medium text-foreground\">{total} subagents in parallel</span>\n <span className=\"truncate whitespace-nowrap text-xs tabular-nums text-muted-foreground\">\n {parts.join(' · ')}\n {calls > 0 ? ` · ${calls} tool calls` : null}\n {elapsed ? ` · ${elapsed}` : null}\n </span>\n <SubagentSegmentedProgress\n total={total}\n complete={complete}\n failed={failed + stopped}\n className=\"absolute inset-x-0 bottom-0 h-0.5\"\n />\n </div>\n );\n}\n\n// ─── Fork connectors ─────────────────────────────────────────────────\n\ninterface ConnectorPath {\n id: string;\n d: string;\n flowing: boolean;\n}\n\n/**\n * Curves from the strip's bottom centre to the top centre of each card shown,\n * measured from the layout. A connector to a lane still working carries a\n * flowing dash (SVG's own animation, no stylesheet keyframes); one to a\n * settled lane is a faint solid line. Measured again on every resize, so a\n * reflow keeps the fork attached.\n */\nexport function SubagentForkConnectors({\n containerRef,\n stripRef,\n cardEls,\n snapshots,\n stoppedLaneIds,\n}: {\n containerRef: RefObject<HTMLDivElement | null>;\n stripRef: RefObject<HTMLDivElement | null>;\n cardEls: RefObject<Map<string, HTMLElement>>;\n snapshots: readonly SubagentDiscoverySnapshot[];\n /** Lanes the run stopped before they settled: their connectors settle too. */\n stoppedLaneIds?: ReadonlySet<string>;\n}) {\n const [paths, setPaths] = useState<ConnectorPath[]>([]);\n\n useLayoutEffect(() => {\n const container = containerRef.current;\n if (!container) return undefined;\n const measure = () => {\n const strip = stripRef.current;\n if (!strip) {\n setPaths([]);\n return;\n }\n const containerRect = container.getBoundingClientRect();\n const stripRect = strip.getBoundingClientRect();\n const originX = stripRect.left + stripRect.width / 2 - containerRect.left;\n const originY = stripRect.bottom - containerRect.top;\n const next: ConnectorPath[] = [];\n for (const snap of snapshots) {\n const el = cardEls.current?.get(snap.id);\n if (!el) continue;\n const rect = el.getBoundingClientRect();\n const cardX = rect.left + rect.width / 2 - containerRect.left;\n const cardY = rect.top - containerRect.top;\n if (cardY <= originY) continue;\n next.push({\n id: snap.id,\n d: `M ${originX} ${originY} C ${originX} ${originY + 14}, ${cardX} ${cardY - 14}, ${cardX} ${cardY}`,\n flowing: (snap.status === 'running' || snap.status === 'queued') && stoppedLaneIds?.has(snap.id) !== true,\n });\n }\n setPaths(next);\n };\n measure();\n if (typeof ResizeObserver !== 'function') return undefined;\n const observer = new ResizeObserver(measure);\n observer.observe(container);\n return () => observer.disconnect();\n // `snapshots` gets a fresh identity on every stream update, so status flips\n // re-measure too; the observer covers pure geometry (wrap/resize) changes.\n }, [containerRef, stripRef, cardEls, snapshots, stoppedLaneIds]);\n\n if (paths.length === 0) return null;\n return (\n <svg\n data-slot=\"subagent-connectors\"\n className=\"pointer-events-none absolute inset-0 z-0 h-full w-full overflow-visible\"\n aria-hidden=\"true\"\n >\n {paths.map((path) => (\n <path\n key={path.id}\n d={path.d}\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeDasharray={path.flowing ? '5 5' : undefined}\n className={cn('fill-none stroke-current', path.flowing ? 'text-muted-foreground/60' : 'text-border')}\n >\n {path.flowing ? (\n <animate attributeName=\"stroke-dashoffset\" values=\"10;0\" dur=\"0.8s\" repeatCount=\"indefinite\" />\n ) : null}\n </path>\n ))}\n </svg>\n );\n}\n\n// ─── Pager ───────────────────────────────────────────────────────────\n\nfunction LanesPagerButton({\n label,\n disabled,\n onClick,\n children,\n}: {\n label: string;\n disabled: boolean;\n onClick: () => void;\n children: ReactNode;\n}) {\n return (\n <button\n type=\"button\"\n aria-label={label}\n disabled={disabled}\n onClick={onClick}\n className=\"flex size-6 items-center justify-center rounded-full border border-border bg-card text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-default disabled:opacity-40 disabled:hover:bg-card disabled:hover:text-muted-foreground\"\n >\n {children}\n </button>\n );\n}\n\n/** Prev and next for a fan-out of more lanes than one page shows. */\nexport function SubagentLanesPager({\n page,\n pageCount,\n onPageChange,\n}: {\n /** The page shown, from 0. */\n page: number;\n pageCount: number;\n onPageChange: (page: number) => void;\n}) {\n return (\n <div data-slot=\"subagent-pager\" className=\"relative z-10 mt-2 flex items-center justify-center gap-2\">\n <LanesPagerButton label=\"Previous subagents\" disabled={page === 0} onClick={() => onPageChange(page - 1)}>\n <ChevronLeftIcon aria-hidden=\"true\" className=\"size-3.5\" />\n </LanesPagerButton>\n <span className=\"text-xs tabular-nums text-muted-foreground\">\n Page {page + 1} of {pageCount}\n </span>\n <LanesPagerButton\n label=\"Next subagents\"\n disabled={page === pageCount - 1}\n onClick={() => onPageChange(page + 1)}\n >\n <ChevronRightIcon aria-hidden=\"true\" className=\"size-3.5\" />\n </LanesPagerButton>\n </div>\n );\n}\n\n// ─── A delegation inside a transcript ────────────────────────────────\n\n/**\n * A delegation inside a subagent's own transcript: one static chip. It is not\n * the run's lane to show (its steps live in the subagent's own transcript) and\n * carries no approval.\n */\nexport function SubagentDelegationChip({\n name,\n description,\n}: {\n /** The delegation's `subagent_type`. */\n name: string;\n description?: string;\n}) {\n return (\n <div\n data-testid=\"subagent-delegation\"\n className=\"my-2 flex min-w-0 items-center gap-2 rounded-lg border border-border bg-muted/40 px-3 py-2\"\n >\n <GitForkIcon aria-hidden=\"true\" className=\"size-3.5 shrink-0 rotate-180 text-muted-foreground\" />\n <span className=\"shrink-0 text-xs font-medium text-foreground\">{subagentTypeLabel(name) ?? 'Subagent'}</span>\n {description ? <span className=\"min-w-0 truncate text-xs text-muted-foreground\">{description}</span> : null}\n </div>\n );\n}\n"],"names":["jsx","CheckCircle2Icon","cn","XCircleIcon","ShieldAlertIcon","lanePlanProgress","jsxs","subagentStatusLabel","Fragment","salientToolCallDetail","useState","isTerminalSubagentStatus","SUBAGENT_STALL_THRESHOLD_MS","formatLaneTokens","subagentTypeLabel","subagentLaneTitle","laneFacts","ZapIcon","AlertTriangleIcon","SUBAGENT_STOPPED_OUTPUT","ChevronRightIcon","formatLaneElapsed","subagentCountParts","GitForkIcon","useLayoutEffect","ChevronLeftIcon"],"mappings":"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"}
|