@athenaintel/react 0.57.2 → 0.60.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 +795 -12
- 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 +0 -16
- 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 +1 -17
- 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 +93 -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 +19 -0
- package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-metadata.js +19 -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 +301 -98
- package/dist/chat/AthenaChat.cjs.map +1 -1
- package/dist/chat/AthenaChat.d.ts +80 -4
- package/dist/chat/AthenaChat.js +302 -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 +5 -0
- package/dist/chat-ui/index.cjs.map +1 -1
- package/dist/chat-ui/index.d.ts +4 -2
- package/dist/chat-ui/index.js +5 -0
- package/dist/chat-ui/index.js.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.cjs +10 -4
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.js +11 -5
- 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 +20 -2
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.d.ts +10 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +22 -4
- 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 +45 -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 +48 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js +45 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.cjs +89 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.cjs.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.d.ts +8 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.js +89 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.js.map +1 -0
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs +140 -116
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.d.ts +46 -12
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js +141 -117
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +272 -25
- 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 +274 -27
- 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/mentions/use-asset-icon-app-url.cjs +12 -0
- package/dist/chat-ui/mentions/use-asset-icon-app-url.cjs.map +1 -0
- package/dist/chat-ui/mentions/use-asset-icon-app-url.d.ts +8 -0
- package/dist/chat-ui/mentions/use-asset-icon-app-url.js +12 -0
- package/dist/chat-ui/mentions/use-asset-icon-app-url.js.map +1 -0
- 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 +41 -6
- package/dist/collab/client.cjs.map +1 -1
- package/dist/collab/client.d.ts +38 -7
- package/dist/collab/client.js +41 -6
- 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/staged-message-metadata.cjs +12 -0
- package/dist/composer/staged-message-metadata.cjs.map +1 -0
- package/dist/composer/staged-message-metadata.d.ts +15 -0
- package/dist/composer/staged-message-metadata.js +12 -0
- package/dist/composer/staged-message-metadata.js.map +1 -0
- 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 +460 -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 +460 -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 +60 -22
- package/dist/provider/AthenaProvider.cjs.map +1 -1
- package/dist/provider/AthenaProvider.d.ts +24 -8
- package/dist/provider/AthenaProvider.js +61 -23
- 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/parse.cjs +11 -1
- package/dist/references/src/anchors/parse.cjs.map +1 -1
- package/dist/references/src/anchors/parse.js +11 -1
- package/dist/references/src/anchors/parse.js.map +1 -1
- package/dist/references/src/anchors/schemas.d.ts +1 -0
- package/dist/references/src/anchors/serialize.cjs +1 -0
- package/dist/references/src/anchors/serialize.cjs.map +1 -1
- package/dist/references/src/anchors/serialize.js +1 -0
- package/dist/references/src/anchors/serialize.js.map +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.d.ts +9 -0
- 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/references/src/schemas.d.ts +2 -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 +3 -1
- package/dist/runtime/statewire-run-config.cjs.map +1 -1
- package/dist/runtime/statewire-run-config.d.ts +7 -0
- package/dist/runtime/statewire-run-config.js +3 -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 +64 -9
- package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
- package/dist/runtime/useAthenaStatewireRuntime.d.ts +26 -10
- package/dist/runtime/useAthenaStatewireRuntime.js +66 -11
- 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 +6 -6
- package/dist/threads/SessionList.cjs.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/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 +14 -2
- package/dist/threads/statewire-thread-list.cjs.map +1 -1
- package/dist/threads/statewire-thread-list.d.ts +11 -2
- package/dist/threads/statewire-thread-list.js +14 -2
- 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 +429 -0
- package/dist/tools/drive-tool-uis.cjs.map +1 -0
- package/dist/tools/drive-tool-uis.d.ts +121 -0
- package/dist/tools/drive-tool-uis.js +429 -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/version.cjs +4 -0
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.ts +9 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -1
- package/dist/workbench/live-desktop-api.cjs +2 -1
- package/dist/workbench/live-desktop-api.cjs.map +1 -1
- package/dist/workbench/live-desktop-api.js +2 -1
- package/dist/workbench/live-desktop-api.js.map +1 -1
- package/dist/workbench/session-workbench-panes.cjs +6 -6
- package/dist/workbench/session-workbench-panes.cjs.map +1 -1
- package/dist/workbench/session-workspace-api.cjs +7 -2
- package/dist/workbench/session-workspace-api.cjs.map +1 -1
- package/dist/workbench/session-workspace-api.d.ts +10 -0
- package/dist/workbench/session-workspace-api.js +7 -2
- package/dist/workbench/session-workspace-api.js.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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"}
|