@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,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require$$0 = require("react");
|
|
4
|
+
const addressedAgents = require("./addressed-agents.cjs");
|
|
5
|
+
const MAX_DEEP_AGENT_NAMED_AGENTS = 8;
|
|
6
|
+
const OWN_ASSISTANT_AGENT_REF = "assistant";
|
|
7
|
+
const COLLAB_AGENT_REF_PREFIX = "collab_agent:";
|
|
8
|
+
const NO_NAMED_AGENTS = Object.freeze([]);
|
|
9
|
+
function normalizeNamedAgents(agents) {
|
|
10
|
+
const seen = /* @__PURE__ */ new Set();
|
|
11
|
+
const normalized = [];
|
|
12
|
+
for (const agent of agents) {
|
|
13
|
+
const ref = agent.ref.trim();
|
|
14
|
+
if (!ref || seen.has(ref)) continue;
|
|
15
|
+
seen.add(ref);
|
|
16
|
+
normalized.push(ref === agent.ref ? agent : { ...agent, ref });
|
|
17
|
+
if (normalized.length === MAX_DEEP_AGENT_NAMED_AGENTS) break;
|
|
18
|
+
}
|
|
19
|
+
return normalized.length === 0 ? NO_NAMED_AGENTS : normalized;
|
|
20
|
+
}
|
|
21
|
+
function sameNamedAgents(a, b) {
|
|
22
|
+
return a.length === b.length && a.every(
|
|
23
|
+
(agent, index) => {
|
|
24
|
+
var _a, _b, _c;
|
|
25
|
+
return agent.ref === ((_a = b[index]) == null ? void 0 : _a.ref) && agent.name === ((_b = b[index]) == null ? void 0 : _b.name) && agent.assetId === ((_c = b[index]) == null ? void 0 : _c.assetId);
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
function namedAgentRefs(agents) {
|
|
30
|
+
const refs = [];
|
|
31
|
+
for (const agent of agents) {
|
|
32
|
+
const ref = agent.ref.trim();
|
|
33
|
+
if (!ref || refs.includes(ref)) continue;
|
|
34
|
+
refs.push(ref);
|
|
35
|
+
if (refs.length === MAX_DEEP_AGENT_NAMED_AGENTS) break;
|
|
36
|
+
}
|
|
37
|
+
return refs;
|
|
38
|
+
}
|
|
39
|
+
function setBounded(map, key, value, limit) {
|
|
40
|
+
map.delete(key);
|
|
41
|
+
map.set(key, value);
|
|
42
|
+
while (map.size > limit) {
|
|
43
|
+
const oldest = map.keys().next();
|
|
44
|
+
if (oldest.done) break;
|
|
45
|
+
map.delete(oldest.value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function createNamedAgentsStore(initial) {
|
|
49
|
+
let state = initial;
|
|
50
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
51
|
+
return {
|
|
52
|
+
get state() {
|
|
53
|
+
return state;
|
|
54
|
+
},
|
|
55
|
+
setState(update) {
|
|
56
|
+
const next = update(state);
|
|
57
|
+
if (Object.is(next, state)) return;
|
|
58
|
+
state = next;
|
|
59
|
+
for (const listener of [...listeners]) listener();
|
|
60
|
+
},
|
|
61
|
+
subscribe(listener) {
|
|
62
|
+
listeners.add(listener);
|
|
63
|
+
return () => {
|
|
64
|
+
listeners.delete(listener);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const deepAgentNamedAgentsStore = createNamedAgentsStore({
|
|
70
|
+
byThread: {}
|
|
71
|
+
});
|
|
72
|
+
const namedAgentsSeen = /* @__PURE__ */ new Map();
|
|
73
|
+
const NAMED_AGENTS_SEEN_KEPT = 200;
|
|
74
|
+
function writeNamedAgents(threadId, agents) {
|
|
75
|
+
for (const agent of agents) setBounded(namedAgentsSeen, agent.ref, agent, NAMED_AGENTS_SEEN_KEPT);
|
|
76
|
+
deepAgentNamedAgentsStore.setState((state) => {
|
|
77
|
+
if (sameNamedAgents(state.byThread[threadId] ?? NO_NAMED_AGENTS, agents)) return state;
|
|
78
|
+
const byThread = { ...state.byThread };
|
|
79
|
+
if (agents.length === 0) delete byThread[threadId];
|
|
80
|
+
else byThread[threadId] = agents;
|
|
81
|
+
return { byThread };
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function useDeepAgentNamedAgents(threadId) {
|
|
85
|
+
const read = () => readDeepAgentNamedAgents(threadId);
|
|
86
|
+
return require$$0.useSyncExternalStore(deepAgentNamedAgentsStore.subscribe, read, read);
|
|
87
|
+
}
|
|
88
|
+
function readDeepAgentNamedAgents(threadId) {
|
|
89
|
+
return deepAgentNamedAgentsStore.state.byThread[threadId] ?? NO_NAMED_AGENTS;
|
|
90
|
+
}
|
|
91
|
+
function addDeepAgentNamedAgent({
|
|
92
|
+
threadId,
|
|
93
|
+
agent
|
|
94
|
+
}) {
|
|
95
|
+
const current = readDeepAgentNamedAgents(threadId);
|
|
96
|
+
const ref = agent.ref.trim();
|
|
97
|
+
if (!threadId || !ref || current.length >= MAX_DEEP_AGENT_NAMED_AGENTS || current.some((named) => named.ref === ref)) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
writeNamedAgents(threadId, normalizeNamedAgents([...current, agent]));
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
function removeDeepAgentNamedAgent({
|
|
104
|
+
threadId,
|
|
105
|
+
ref
|
|
106
|
+
}) {
|
|
107
|
+
const current = readDeepAgentNamedAgents(threadId);
|
|
108
|
+
if (!current.some((agent) => agent.ref === ref)) return;
|
|
109
|
+
writeNamedAgents(threadId, normalizeNamedAgents(current.filter((agent) => agent.ref !== ref)));
|
|
110
|
+
}
|
|
111
|
+
const SENT_TEXTS_KEPT_PER_THREAD = 20;
|
|
112
|
+
const THREADS_WITH_SENT_TEXTS_KEPT = 50;
|
|
113
|
+
const WITHDRAWAL_RESTORES_KEPT = 20;
|
|
114
|
+
const sentTextNamedAgents = /* @__PURE__ */ new Map();
|
|
115
|
+
const withdrawalRestores = /* @__PURE__ */ new Map();
|
|
116
|
+
function rememberDeepAgentSentNamedAgents({
|
|
117
|
+
threadId,
|
|
118
|
+
text,
|
|
119
|
+
agents
|
|
120
|
+
}) {
|
|
121
|
+
if (!threadId) return;
|
|
122
|
+
const named = normalizeNamedAgents(agents);
|
|
123
|
+
const texts = sentTextNamedAgents.get(threadId);
|
|
124
|
+
if (named.length === 0) {
|
|
125
|
+
texts == null ? void 0 : texts.delete(text);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const kept = texts ?? /* @__PURE__ */ new Map();
|
|
129
|
+
setBounded(kept, text, named, SENT_TEXTS_KEPT_PER_THREAD);
|
|
130
|
+
setBounded(sentTextNamedAgents, threadId, kept, THREADS_WITH_SENT_TEXTS_KEPT);
|
|
131
|
+
}
|
|
132
|
+
function restoreDeepAgentSentNamedAgents({
|
|
133
|
+
threadId,
|
|
134
|
+
text,
|
|
135
|
+
withdrawnMessageId
|
|
136
|
+
}) {
|
|
137
|
+
var _a;
|
|
138
|
+
const named = ((_a = sentTextNamedAgents.get(threadId)) == null ? void 0 : _a.get(text)) ?? NO_NAMED_AGENTS;
|
|
139
|
+
const restored = named.filter((agent) => addDeepAgentNamedAgent({ threadId, agent }));
|
|
140
|
+
if (withdrawnMessageId !== void 0 && restored.length > 0) {
|
|
141
|
+
setBounded(
|
|
142
|
+
withdrawalRestores,
|
|
143
|
+
withdrawnMessageId,
|
|
144
|
+
{ threadId, agents: restored },
|
|
145
|
+
WITHDRAWAL_RESTORES_KEPT
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
return restored;
|
|
149
|
+
}
|
|
150
|
+
const NAMED_AGENTS_STAGED_TTL_MS = 1e4;
|
|
151
|
+
const stagedForSend = /* @__PURE__ */ new Map();
|
|
152
|
+
function stageDeepAgentNamedAgentsForSend({
|
|
153
|
+
threadId,
|
|
154
|
+
agents
|
|
155
|
+
}) {
|
|
156
|
+
if (!threadId) return;
|
|
157
|
+
const refs = namedAgentRefs(agents);
|
|
158
|
+
if (refs.length === 0) {
|
|
159
|
+
stagedForSend.delete(threadId);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
stagedForSend.set(threadId, { refs, stagedAt: Date.now() });
|
|
163
|
+
}
|
|
164
|
+
function takeStagedDeepAgentNamedAgents(threadId) {
|
|
165
|
+
const staged = stagedForSend.get(threadId);
|
|
166
|
+
stagedForSend.delete(threadId);
|
|
167
|
+
if (staged === void 0 || Date.now() - staged.stagedAt > NAMED_AGENTS_STAGED_TTL_MS) {
|
|
168
|
+
return void 0;
|
|
169
|
+
}
|
|
170
|
+
return staged.refs;
|
|
171
|
+
}
|
|
172
|
+
function stagedNamedAgentsMessageMetadata(threadId) {
|
|
173
|
+
return addressedAgents.withAddressedAgents(void 0, takeStagedDeepAgentNamedAgents(threadId));
|
|
174
|
+
}
|
|
175
|
+
function deepAgentOutboxAddressedAgents(agents) {
|
|
176
|
+
const refs = namedAgentRefs(agents);
|
|
177
|
+
return refs.length === 0 ? void 0 : refs;
|
|
178
|
+
}
|
|
179
|
+
function namedAgentsForRefsSeen(refs) {
|
|
180
|
+
const agents = [];
|
|
181
|
+
for (const ref of refs) {
|
|
182
|
+
const seen = namedAgentsSeen.get(ref);
|
|
183
|
+
if (seen) agents.push(seen);
|
|
184
|
+
else if (ref === OWN_ASSISTANT_AGENT_REF) {
|
|
185
|
+
agents.push({ ref, name: OWN_ASSISTANT_DISPLAY_NAME, assetId: null });
|
|
186
|
+
} else if (ref.startsWith(COLLAB_AGENT_REF_PREFIX)) {
|
|
187
|
+
agents.push({ ref, name: "Untitled agent", assetId: ref.slice(COLLAB_AGENT_REF_PREFIX.length) });
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return agents;
|
|
191
|
+
}
|
|
192
|
+
function giveBackDeepAgentOutboxNamedAgents(entry, {
|
|
193
|
+
namedAgentsForRefs = namedAgentsForRefsSeen
|
|
194
|
+
} = {}) {
|
|
195
|
+
const refs = addressedAgents.readAddressedAgents(entry.metadata);
|
|
196
|
+
if (!refs || refs.length === 0) return NO_NAMED_AGENTS;
|
|
197
|
+
return namedAgentsForRefs(refs).filter(
|
|
198
|
+
(agent) => addDeepAgentNamedAgent({ threadId: entry.threadId, agent })
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
function chatAgentNamingOffered({ isAdmin }) {
|
|
202
|
+
return isAdmin;
|
|
203
|
+
}
|
|
204
|
+
const OWN_ASSISTANT_DISPLAY_NAME = "Athena";
|
|
205
|
+
const OWN_ASSISTANT_OFFERED_AGENT = Object.freeze({
|
|
206
|
+
ref: OWN_ASSISTANT_AGENT_REF,
|
|
207
|
+
name: OWN_ASSISTANT_DISPLAY_NAME,
|
|
208
|
+
assetId: null,
|
|
209
|
+
icon: "Bot"
|
|
210
|
+
});
|
|
211
|
+
function collabAgentOfferedAgent({
|
|
212
|
+
assetId,
|
|
213
|
+
name,
|
|
214
|
+
icon
|
|
215
|
+
}) {
|
|
216
|
+
return {
|
|
217
|
+
ref: `${COLLAB_AGENT_REF_PREFIX}${assetId}`,
|
|
218
|
+
name: name || "Untitled agent",
|
|
219
|
+
assetId,
|
|
220
|
+
icon: icon || "Bot"
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
function offeredDeepAgentNamedAgents({
|
|
224
|
+
collabAgents,
|
|
225
|
+
named
|
|
226
|
+
}) {
|
|
227
|
+
if (named.length >= MAX_DEEP_AGENT_NAMED_AGENTS) return [];
|
|
228
|
+
const taken = new Set(named.map((agent) => agent.ref));
|
|
229
|
+
const offered = [];
|
|
230
|
+
for (const agent of [OWN_ASSISTANT_OFFERED_AGENT, ...collabAgents]) {
|
|
231
|
+
if (taken.has(agent.ref)) continue;
|
|
232
|
+
taken.add(agent.ref);
|
|
233
|
+
offered.push(agent);
|
|
234
|
+
}
|
|
235
|
+
return offered;
|
|
236
|
+
}
|
|
237
|
+
function namedAgentsLimitMessage(leftOut) {
|
|
238
|
+
const names = new Intl.ListFormat("en", { style: "long", type: "conjunction" }).format(leftOut);
|
|
239
|
+
return `A message names at most ${MAX_DEEP_AGENT_NAMED_AGENTS} agents, so ${names} ${leftOut.length === 1 ? "wasn't" : "weren't"} added.`;
|
|
240
|
+
}
|
|
241
|
+
function nameDeepAgentMentionedAgents({
|
|
242
|
+
threadId,
|
|
243
|
+
agents
|
|
244
|
+
}) {
|
|
245
|
+
const leftOut = [];
|
|
246
|
+
for (const agent of agents) {
|
|
247
|
+
const named = readDeepAgentNamedAgents(threadId);
|
|
248
|
+
if (named.some((entry) => entry.ref === agent.ref.trim())) continue;
|
|
249
|
+
if (named.length >= MAX_DEEP_AGENT_NAMED_AGENTS) {
|
|
250
|
+
leftOut.push(agent.name);
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
addDeepAgentNamedAgent({
|
|
254
|
+
threadId,
|
|
255
|
+
agent: { ref: agent.ref, name: agent.name, assetId: agent.assetId }
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
return leftOut;
|
|
259
|
+
}
|
|
260
|
+
let namedAgentsIdentity = null;
|
|
261
|
+
function forgetAllDeepAgentNamedAgents() {
|
|
262
|
+
stagedForSend.clear();
|
|
263
|
+
sentTextNamedAgents.clear();
|
|
264
|
+
withdrawalRestores.clear();
|
|
265
|
+
namedAgentsSeen.clear();
|
|
266
|
+
namedAgentsIdentity = null;
|
|
267
|
+
deepAgentNamedAgentsStore.setState(() => ({ byThread: {} }));
|
|
268
|
+
}
|
|
269
|
+
function keepDeepAgentNamedAgentsForIdentity(identity) {
|
|
270
|
+
if (namedAgentsIdentity !== null && namedAgentsIdentity !== identity) {
|
|
271
|
+
forgetAllDeepAgentNamedAgents();
|
|
272
|
+
}
|
|
273
|
+
namedAgentsIdentity = identity;
|
|
274
|
+
}
|
|
275
|
+
exports.COLLAB_AGENT_REF_PREFIX = COLLAB_AGENT_REF_PREFIX;
|
|
276
|
+
exports.MAX_DEEP_AGENT_NAMED_AGENTS = MAX_DEEP_AGENT_NAMED_AGENTS;
|
|
277
|
+
exports.NAMED_AGENTS_STAGED_TTL_MS = NAMED_AGENTS_STAGED_TTL_MS;
|
|
278
|
+
exports.OWN_ASSISTANT_AGENT_REF = OWN_ASSISTANT_AGENT_REF;
|
|
279
|
+
exports.OWN_ASSISTANT_DISPLAY_NAME = OWN_ASSISTANT_DISPLAY_NAME;
|
|
280
|
+
exports.OWN_ASSISTANT_OFFERED_AGENT = OWN_ASSISTANT_OFFERED_AGENT;
|
|
281
|
+
exports.addDeepAgentNamedAgent = addDeepAgentNamedAgent;
|
|
282
|
+
exports.chatAgentNamingOffered = chatAgentNamingOffered;
|
|
283
|
+
exports.collabAgentOfferedAgent = collabAgentOfferedAgent;
|
|
284
|
+
exports.deepAgentNamedAgentsStore = deepAgentNamedAgentsStore;
|
|
285
|
+
exports.deepAgentOutboxAddressedAgents = deepAgentOutboxAddressedAgents;
|
|
286
|
+
exports.forgetAllDeepAgentNamedAgents = forgetAllDeepAgentNamedAgents;
|
|
287
|
+
exports.giveBackDeepAgentOutboxNamedAgents = giveBackDeepAgentOutboxNamedAgents;
|
|
288
|
+
exports.keepDeepAgentNamedAgentsForIdentity = keepDeepAgentNamedAgentsForIdentity;
|
|
289
|
+
exports.nameDeepAgentMentionedAgents = nameDeepAgentMentionedAgents;
|
|
290
|
+
exports.namedAgentRefs = namedAgentRefs;
|
|
291
|
+
exports.namedAgentsLimitMessage = namedAgentsLimitMessage;
|
|
292
|
+
exports.offeredDeepAgentNamedAgents = offeredDeepAgentNamedAgents;
|
|
293
|
+
exports.readDeepAgentNamedAgents = readDeepAgentNamedAgents;
|
|
294
|
+
exports.rememberDeepAgentSentNamedAgents = rememberDeepAgentSentNamedAgents;
|
|
295
|
+
exports.removeDeepAgentNamedAgent = removeDeepAgentNamedAgent;
|
|
296
|
+
exports.restoreDeepAgentSentNamedAgents = restoreDeepAgentSentNamedAgents;
|
|
297
|
+
exports.stageDeepAgentNamedAgentsForSend = stageDeepAgentNamedAgentsForSend;
|
|
298
|
+
exports.stagedNamedAgentsMessageMetadata = stagedNamedAgentsMessageMetadata;
|
|
299
|
+
exports.takeStagedDeepAgentNamedAgents = takeStagedDeepAgentNamedAgents;
|
|
300
|
+
exports.useDeepAgentNamedAgents = useDeepAgentNamedAgents;
|
|
301
|
+
//# sourceMappingURL=named-agents.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-agents.cjs","sources":["../../../../agent-runtime/src/named-agents.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\nimport { ADDRESSED_AGENTS_METADATA_KEY, readAddressedAgents, withAddressedAgents } from './addressed-agents';\nimport type { ChatOutboxEntry } from './chat-outbox-entry';\n\n/**\n * The agents a message names (identity v7 D13): one conversation has many participants, and\n * each message goes to the agents it names, each answering in its own turn, in the order named.\n * agora reads the names from the message itself (`message.metadata.addressedAgents`,\n * `addressed-agents.ts`) ahead of the run config's `addressed_agents`, and checks every one of them\n * (the collab overlay's VIEW gate, a colleague's assistant refused, the history re-check), so the\n * client only presents what the person can pick and never gates.\n *\n * Every chat that names agents runs on this one module: Olympus's deep-agent composer (whose\n * `deep-agent-named-agents.ts` re-exports it) and the SDK's `AthenaChat` (and so Athena Desktop),\n * so naming an agent means the same thing, and reaches agora as the same payload, in both. What a\n * composer's `@` menu offers to name is {@link offeredDeepAgentNamedAgents}.\n *\n * - **The chips.** The agents the composer's To line names for each thread, in the order named\n * (`set` / `add` / `remove` / `clear`, read with {@link useDeepAgentNamedAgents}). They stay\n * for every message until the person changes them. Anything may set a thread's chips; its\n * composer shows them. Kept in memory for the page, and dropped when the signed-in identity\n * changes ({@link keepDeepAgentNamedAgentsForIdentity}).\n * - **The send.** statewire captures a new message's metadata once, as it journals it\n * (`getMessageMetadata`), without saying which message it is for. So the composer stages the\n * chips for its next send right before `aui.composer.send`\n * ({@link stageDeepAgentNamedAgentsForSend}), and the runtime's getter takes them for the message\n * that follows ({@link takeStagedDeepAgentNamedAgents}, {@link stagedNamedAgentsMessageMetadata}).\n * The names then travel with the message: a send that waits, is retried after a failure, or is\n * posted again by a page reloaded meanwhile names its own agents, whatever the conversation's\n * context says by then, so no send waits for another's. A slot nobody takes expires.\n * - **The chat outbox.** A message held while Athena can't be reached carries its names on its\n * message the same way (`ChatOutbox.hold({ addressedAgents })`,\n * {@link deepAgentOutboxAddressedAgents}); its Cancel gives them back as chips with its text\n * ({@link giveBackDeepAgentOutboxNamedAgents}).\n *\n * Text a send carried that comes back to the composer (a failed send handed back, an early Stop)\n * brings its chips back ({@link restoreDeepAgentSentNamedAgents}).\n *\n * State is per copy of this module: Olympus runs agent-runtime from source, and the SDK bundles\n * its own copy, whose composer and runtime share it.\n */\n\n/**\n * The message metadata key of the agents a message names (agora:\n * `agent_refs.ADDRESSED_AGENTS_METADATA_KEY`, read in place of the run config's and never kept on\n * the turn the transcript records).\n */\nexport const DEEP_AGENT_MESSAGE_ADDRESSED_AGENTS_KEY = ADDRESSED_AGENTS_METADATA_KEY;\n\nexport interface DeepAgentNamedAgent {\n /** What the send names: `collab_agent:<asset id>`, or `assistant` (the sender's own assistant). */\n ref: string;\n /** What the chip shows. */\n name: string;\n /** The collab agent asset behind `ref`; `null` for the sender's own assistant. */\n assetId: string | null;\n}\n\n/** agora takes at most this many names on one message. */\nexport const MAX_DEEP_AGENT_NAMED_AGENTS = 8;\n\n/** The ref of the sender's own assistant. */\nexport const OWN_ASSISTANT_AGENT_REF = 'assistant';\n\n/** The prefix of a collab agent's ref (`collab_agent:<asset id>`). */\nexport const COLLAB_AGENT_REF_PREFIX = 'collab_agent:';\n\nconst NO_NAMED_AGENTS: readonly DeepAgentNamedAgent[] = Object.freeze([]);\n\n/** Each agent once (by ref, the first kept), in the order named, at most eight; blank refs dropped. */\nfunction normalizeNamedAgents(\n agents: readonly DeepAgentNamedAgent[]\n): readonly DeepAgentNamedAgent[] {\n const seen = new Set<string>();\n const normalized: DeepAgentNamedAgent[] = [];\n for (const agent of agents) {\n const ref = agent.ref.trim();\n if (!ref || seen.has(ref)) continue;\n seen.add(ref);\n normalized.push(ref === agent.ref ? agent : { ...agent, ref });\n if (normalized.length === MAX_DEEP_AGENT_NAMED_AGENTS) break;\n }\n return normalized.length === 0 ? NO_NAMED_AGENTS : normalized;\n}\n\nfunction sameNamedAgents(\n a: readonly DeepAgentNamedAgent[],\n b: readonly DeepAgentNamedAgent[]\n): boolean {\n return (\n a.length === b.length &&\n a.every(\n (agent, index) =>\n agent.ref === b[index]?.ref &&\n agent.name === b[index]?.name &&\n agent.assetId === b[index]?.assetId\n )\n );\n}\n\n/** The refs a message naming `agents` sends: in the order named, each once, at most eight. */\nexport function namedAgentRefs(agents: readonly Pick<DeepAgentNamedAgent, 'ref'>[]): string[] {\n const refs: string[] = [];\n for (const agent of agents) {\n const ref = agent.ref.trim();\n if (!ref || refs.includes(ref)) continue;\n refs.push(ref);\n if (refs.length === MAX_DEEP_AGENT_NAMED_AGENTS) break;\n }\n return refs;\n}\n\n/** What a send naming `agents` names, as one key: two sends name the same agents when equal. */\nexport function namedAgentsKey(agents: readonly Pick<DeepAgentNamedAgent, 'ref'>[]): string {\n return namedAgentRefs(agents).join('\\n');\n}\n\n/**\n * Named agents read back from storage (a draft kept across a reload, a message waiting in the chat\n * outbox): a list of `{ ref, name, assetId }` with a non-empty ref and name and an asset id that is\n * a string or `null`, each agent once, at most eight. Anything else reads as naming none, entry by\n * entry, so a newer build's extra fields never break an older reader.\n */\nexport function parseDeepAgentNamedAgents(value: unknown): readonly DeepAgentNamedAgent[] {\n if (!Array.isArray(value)) return NO_NAMED_AGENTS;\n const agents: DeepAgentNamedAgent[] = [];\n for (const item of value) {\n if (typeof item !== 'object' || item === null) continue;\n const ref: unknown = Reflect.get(item, 'ref');\n const name: unknown = Reflect.get(item, 'name');\n const assetId: unknown = Reflect.get(item, 'assetId');\n if (typeof ref !== 'string' || !ref.trim() || typeof name !== 'string' || !name.trim())\n continue;\n if (assetId !== null && typeof assetId !== 'string') continue;\n agents.push({ ref, name, assetId });\n }\n return normalizeNamedAgents(agents);\n}\n\n/** A small map that keeps its newest `limit` entries (insertion order is age). */\nfunction setBounded<K, V>(map: Map<K, V>, key: K, value: V, limit: number): void {\n map.delete(key);\n map.set(key, value);\n while (map.size > limit) {\n const oldest = map.keys().next();\n if (oldest.done) break;\n map.delete(oldest.value);\n }\n}\n\n// ── The stores ──────────────────────────────────────────────────────────────\n\n/** A value its readers follow: a write that changes it tells every listener, synchronously. */\nexport interface NamedAgentsStore<T> {\n readonly state: T;\n /** Replace the value with what `update` returns; returning the value it was given changes nothing. */\n setState: (update: (state: T) => T) => void;\n /** Called after every change; returns the unsubscribe function. */\n subscribe: (listener: () => void) => () => void;\n}\n\nfunction createNamedAgentsStore<T>(initial: T): NamedAgentsStore<T> {\n let state = initial;\n const listeners = new Set<() => void>();\n return {\n get state() {\n return state;\n },\n setState(update) {\n const next = update(state);\n if (Object.is(next, state)) return;\n state = next;\n for (const listener of [...listeners]) listener();\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n };\n}\n\n// ── The chips ───────────────────────────────────────────────────────────────\n\ninterface DeepAgentNamedAgentsState {\n /** Each thread's named agents (its composer's chips), in the order named. */\n byThread: Readonly<Record<string, readonly DeepAgentNamedAgent[]>>;\n}\n\nexport const deepAgentNamedAgentsStore = createNamedAgentsStore<DeepAgentNamedAgentsState>({\n byThread: {},\n});\n\n// process-local: client-only — the last name and asset this page gave each agent it named, so a\n// message given back with only its refs comes back with the chips it was sent with.\nconst namedAgentsSeen = new Map<string, DeepAgentNamedAgent>();\nconst NAMED_AGENTS_SEEN_KEPT = 200;\n\nfunction writeNamedAgents(threadId: string, agents: readonly DeepAgentNamedAgent[]): void {\n for (const agent of agents) setBounded(namedAgentsSeen, agent.ref, agent, NAMED_AGENTS_SEEN_KEPT);\n deepAgentNamedAgentsStore.setState((state) => {\n if (sameNamedAgents(state.byThread[threadId] ?? NO_NAMED_AGENTS, agents)) return state;\n const byThread = { ...state.byThread };\n if (agents.length === 0) delete byThread[threadId];\n else byThread[threadId] = agents;\n return { byThread };\n });\n}\n\n/** The agents `threadId`'s composer names for its next message, in the order named. */\nexport function useDeepAgentNamedAgents(threadId: string): readonly DeepAgentNamedAgent[] {\n const read = (): readonly DeepAgentNamedAgent[] => readDeepAgentNamedAgents(threadId);\n return useSyncExternalStore(deepAgentNamedAgentsStore.subscribe, read, read);\n}\n\n/** Imperative read of {@link useDeepAgentNamedAgents} (for send paths and handlers). */\nexport function readDeepAgentNamedAgents(threadId: string): readonly DeepAgentNamedAgent[] {\n return deepAgentNamedAgentsStore.state.byThread[threadId] ?? NO_NAMED_AGENTS;\n}\n\n/**\n * Listen for `threadId`'s chips changing (the composer keeps them with its draft). Another\n * thread's change notifies nothing. Returns the unsubscribe function.\n */\nexport function subscribeDeepAgentNamedAgents({\n threadId,\n listener,\n}: {\n threadId: string;\n listener: () => void;\n}): () => void {\n let agents = readDeepAgentNamedAgents(threadId);\n return deepAgentNamedAgentsStore.subscribe(() => {\n const next = readDeepAgentNamedAgents(threadId);\n if (next === agents) return;\n agents = next;\n listener();\n });\n}\n\n/** Name exactly `agents` for `threadId`'s next message (each once, in order, at most eight). */\nexport function setDeepAgentNamedAgents({\n threadId,\n agents,\n}: {\n threadId: string;\n agents: readonly DeepAgentNamedAgent[];\n}): void {\n if (!threadId) return;\n writeNamedAgents(threadId, normalizeNamedAgents(agents));\n}\n\n/**\n * Name one more agent, after those already named. `false` when nothing changed: it is named\n * already, eight are named, or its ref is blank.\n */\nexport function addDeepAgentNamedAgent({\n threadId,\n agent,\n}: {\n threadId: string;\n agent: DeepAgentNamedAgent;\n}): boolean {\n const current = readDeepAgentNamedAgents(threadId);\n const ref = agent.ref.trim();\n if (\n !threadId ||\n !ref ||\n current.length >= MAX_DEEP_AGENT_NAMED_AGENTS ||\n current.some((named) => named.ref === ref)\n ) {\n return false;\n }\n writeNamedAgents(threadId, normalizeNamedAgents([...current, agent]));\n return true;\n}\n\nexport function removeDeepAgentNamedAgent({\n threadId,\n ref,\n}: {\n threadId: string;\n ref: string;\n}): void {\n const current = readDeepAgentNamedAgents(threadId);\n if (!current.some((agent) => agent.ref === ref)) return;\n writeNamedAgents(threadId, normalizeNamedAgents(current.filter((agent) => agent.ref !== ref)));\n}\n\nexport function clearDeepAgentNamedAgents({ threadId }: { threadId: string }): void {\n writeNamedAgents(threadId, NO_NAMED_AGENTS);\n}\n\n/**\n * Clear `threadId`'s chips once the message that named `agents` has left, but only while they\n * still are those agents: names changed since the message was sent (while it waited behind a\n * loading conversation) belong to the next message and stay. Returns whether they were cleared.\n */\nexport function clearDeepAgentNamedAgentsIfUnchanged({\n threadId,\n agents,\n}: {\n threadId: string;\n agents: readonly DeepAgentNamedAgent[];\n}): boolean {\n const current = readDeepAgentNamedAgents(threadId);\n if (current.length === 0) return false;\n if (namedAgentRefs(current).join('\\n') !== namedAgentRefs(agents).join('\\n')) return false;\n clearDeepAgentNamedAgents({ threadId });\n return true;\n}\n\n// ── Text that comes back to the composer ────────────────────────────────────\n\n/** How many sent texts each thread remembers the names of, and how many threads. */\nconst SENT_TEXTS_KEPT_PER_THREAD = 20;\nconst THREADS_WITH_SENT_TEXTS_KEPT = 50;\nconst WITHDRAWAL_RESTORES_KEPT = 20;\n\n// process-local: client-only — the names each recent send carried, per thread by its sent text\n// (the verbatim text the runtime hands back), so text that comes back brings its chips back.\nconst sentTextNamedAgents = new Map<string, Map<string, readonly DeepAgentNamedAgent[]>>();\n\n// process-local: client-only — the chips an early Stop gave back, by the withdrawn message, so a\n// contradicted withdrawal takes them away again.\nconst withdrawalRestores = new Map<\n string,\n { threadId: string; agents: readonly DeepAgentNamedAgent[] }\n>();\n\n/** Remember the names a send of `text` carried (a send naming none forgets earlier ones). */\nexport function rememberDeepAgentSentNamedAgents({\n threadId,\n text,\n agents,\n}: {\n threadId: string;\n text: string;\n agents: readonly DeepAgentNamedAgent[];\n}): void {\n if (!threadId) return;\n const named = normalizeNamedAgents(agents);\n const texts = sentTextNamedAgents.get(threadId);\n if (named.length === 0) {\n texts?.delete(text);\n return;\n }\n const kept = texts ?? new Map<string, readonly DeepAgentNamedAgent[]>();\n setBounded(kept, text, named, SENT_TEXTS_KEPT_PER_THREAD);\n setBounded(sentTextNamedAgents, threadId, kept, THREADS_WITH_SENT_TEXTS_KEPT);\n}\n\n/**\n * Text a send carried came back to `threadId`'s composer (a failed send handed back, an early\n * Stop): the names it carried come back as chips, after any named since (each once, at most\n * eight). `withdrawnMessageId` marks an early Stop's turn, whose chips go again if the run\n * answers it after all ({@link undoDeepAgentWithdrawalNamedAgents}). Returns the agents put back.\n */\nexport function restoreDeepAgentSentNamedAgents({\n threadId,\n text,\n withdrawnMessageId,\n}: {\n threadId: string;\n text: string;\n withdrawnMessageId?: string;\n}): readonly DeepAgentNamedAgent[] {\n const named = sentTextNamedAgents.get(threadId)?.get(text) ?? NO_NAMED_AGENTS;\n const restored = named.filter((agent) => addDeepAgentNamedAgent({ threadId, agent }));\n if (withdrawnMessageId !== undefined && restored.length > 0) {\n setBounded(\n withdrawalRestores,\n withdrawnMessageId,\n { threadId, agents: restored },\n WITHDRAWAL_RESTORES_KEPT\n );\n }\n return restored;\n}\n\n/**\n * The run answered a turn its sender took back after all (an early Stop contradicted): the chips\n * that came back with its text go again, except any taken off since.\n */\nexport function undoDeepAgentWithdrawalNamedAgents({ messageId }: { messageId: string }): void {\n const restore = withdrawalRestores.get(messageId);\n if (!restore) return;\n withdrawalRestores.delete(messageId);\n for (const agent of restore.agents) {\n removeDeepAgentNamedAgent({ threadId: restore.threadId, ref: agent.ref });\n }\n}\n\n/** A withdrawal settled without undoing its restore (the editor changed since): forget it. */\nexport function forgetDeepAgentWithdrawalNamedAgents({ messageId }: { messageId: string }): void {\n withdrawalRestores.delete(messageId);\n}\n\n// ── The send ────────────────────────────────────────────────────────────────\n\n/** How long staged names wait for the message they were staged for before they expire. */\nexport const NAMED_AGENTS_STAGED_TTL_MS = 10_000;\n\n// process-local: client-only — the names each thread's composer staged for the message it submits\n// next, taken once by the runtime's `getMessageMetadata`.\nconst stagedForSend = new Map<string, { refs: readonly string[]; stagedAt: number }>();\n\n/**\n * Stage `agents` as the names of the message `threadId`'s composer submits next. Call right before\n * the send (`aui.composer.send`): the runtime's `getMessageMetadata` takes them for that message\n * ({@link takeStagedDeepAgentNamedAgents}). A send naming none stages nothing and lets an earlier\n * slot go.\n */\nexport function stageDeepAgentNamedAgentsForSend({\n threadId,\n agents,\n}: {\n threadId: string;\n agents: readonly DeepAgentNamedAgent[];\n}): void {\n if (!threadId) return;\n const refs = namedAgentRefs(agents);\n if (refs.length === 0) {\n stagedForSend.delete(threadId);\n return;\n }\n stagedForSend.set(threadId, { refs, stagedAt: Date.now() });\n}\n\n/**\n * The refs staged for the message `threadId` journals now, taking the slot (`undefined`: none\n * staged, or staged more than {@link NAMED_AGENTS_STAGED_TTL_MS} ago).\n */\nexport function takeStagedDeepAgentNamedAgents(threadId: string): readonly string[] | undefined {\n const staged = stagedForSend.get(threadId);\n stagedForSend.delete(threadId);\n if (staged === undefined || Date.now() - staged.stagedAt > NAMED_AGENTS_STAGED_TTL_MS) {\n return undefined;\n }\n return staged.refs;\n}\n\n/**\n * The metadata of the message `threadId` journals now, for a runtime's `getMessageMetadata` (the\n * SDK's): the names staged for it under {@link DEEP_AGENT_MESSAGE_ADDRESSED_AGENTS_KEY}, taking the\n * slot, or `undefined` when none are staged (the message then names none of its own). Olympus's\n * runtime takes the slot itself, falling back to the conversation's default agent.\n */\nexport function stagedNamedAgentsMessageMetadata(\n threadId: string\n): Record<string, unknown> | undefined {\n return withAddressedAgents(undefined, takeStagedDeepAgentNamedAgents(threadId));\n}\n\n// ── The chat outbox ─────────────────────────────────────────────────────────\n\n/**\n * The agents a message held in the chat outbox names (`ChatOutbox.hold`'s `addressedAgents`, kept\n * on its message): its chips' refs, or `undefined` when it names none (it then goes out as a send\n * naming none does).\n */\nexport function deepAgentOutboxAddressedAgents(\n agents: readonly DeepAgentNamedAgent[]\n): string[] | undefined {\n const refs = namedAgentRefs(agents);\n return refs.length === 0 ? undefined : refs;\n}\n\n/**\n * The chips for refs a message carries, named as this page last named those agents: the person's\n * own assistant as the menu names it, a collab agent the page never named as \"Untitled agent\",\n * and any other ref not at all.\n */\nfunction namedAgentsForRefsSeen(refs: readonly string[]): DeepAgentNamedAgent[] {\n const agents: DeepAgentNamedAgent[] = [];\n for (const ref of refs) {\n const seen = namedAgentsSeen.get(ref);\n if (seen) agents.push(seen);\n else if (ref === OWN_ASSISTANT_AGENT_REF) {\n agents.push({ ref, name: OWN_ASSISTANT_DISPLAY_NAME, assetId: null });\n } else if (ref.startsWith(COLLAB_AGENT_REF_PREFIX)) {\n agents.push({ ref, name: 'Untitled agent', assetId: ref.slice(COLLAB_AGENT_REF_PREFIX.length) });\n }\n }\n return agents;\n}\n\n/**\n * A waiting message went back to the composer (Cancel, or the ask's Edit): the agents it named\n * (`message.metadata.addressedAgents`) come back as chips with its text, after any named since.\n * The message keeps only refs, so each chip is named by `namedAgentsForRefs` (a host's agent list,\n * as its `@` menu names them), else as this page last named it. Returns the agents put back.\n */\nexport function giveBackDeepAgentOutboxNamedAgents(\n entry: Pick<ChatOutboxEntry, 'threadId' | 'metadata'>,\n {\n namedAgentsForRefs = namedAgentsForRefsSeen,\n }: { namedAgentsForRefs?: (refs: readonly string[]) => readonly DeepAgentNamedAgent[] } = {}\n): readonly DeepAgentNamedAgent[] {\n const refs = readAddressedAgents(entry.metadata);\n if (!refs || refs.length === 0) return NO_NAMED_AGENTS;\n return namedAgentsForRefs(refs).filter((agent) =>\n addDeepAgentNamedAgent({ threadId: entry.threadId, agent })\n );\n}\n\n// ── What a composer's `@` menu offers ───────────────────────────────────────\n\n/**\n * Whether the `@` menu's Agents section is offered to Athena admins alone, for now (#50245). One\n * switch for every chat that names agents (Olympus's composer, the SDK's `AthenaChat`): while it\n * is `true`, only an admin is offered the section, and only an admin's root search finds an agent.\n * It decides who is offered the menu, nothing more: agora checks every name a message carries.\n */\nexport const CHAT_AGENT_NAMING_ADMIN_ONLY = true;\n\n/** Whether a viewer is offered the `@` menu's Agents section ({@link CHAT_AGENT_NAMING_ADMIN_ONLY}). */\nexport function chatAgentNamingOffered({ isAdmin }: { isAdmin: boolean }): boolean {\n return !CHAT_AGENT_NAMING_ADMIN_ONLY || isAdmin;\n}\n\n/** An agent a composer's `@` menu offers to name. */\nexport interface DeepAgentOfferedAgent extends DeepAgentNamedAgent {\n /** A Lucide icon name for the menu row. */\n icon: string;\n}\n\n/** What the person's own assistant is called in the menu and on its chip. */\nexport const OWN_ASSISTANT_DISPLAY_NAME = 'Athena';\n\n/** The person's own assistant, as the menu offers it. */\nexport const OWN_ASSISTANT_OFFERED_AGENT: DeepAgentOfferedAgent = Object.freeze({\n ref: OWN_ASSISTANT_AGENT_REF,\n name: OWN_ASSISTANT_DISPLAY_NAME,\n assetId: null,\n icon: 'Bot',\n});\n\n/** A collab agent as the menu offers it: its ref, its name (else \"Untitled agent\"), its icon (else a bot). */\nexport function collabAgentOfferedAgent({\n assetId,\n name,\n icon,\n}: {\n assetId: string;\n name: string;\n icon?: string | null;\n}): DeepAgentOfferedAgent {\n return {\n ref: `${COLLAB_AGENT_REF_PREFIX}${assetId}`,\n name: name || 'Untitled agent',\n assetId,\n icon: icon || 'Bot',\n };\n}\n\n/**\n * The agents a composer's `@` menu offers to name: the person's own assistant\n * ({@link OWN_ASSISTANT_OFFERED_AGENT}), then `collabAgents` (the collab agents the composer's agent\n * picker lists) in their order, each once, minus the ones already named; none once eight are named.\n */\nexport function offeredDeepAgentNamedAgents({\n collabAgents,\n named,\n}: {\n collabAgents: readonly DeepAgentOfferedAgent[];\n named: readonly DeepAgentNamedAgent[];\n}): DeepAgentOfferedAgent[] {\n if (named.length >= MAX_DEEP_AGENT_NAMED_AGENTS) return [];\n const taken = new Set(named.map((agent) => agent.ref));\n const offered: DeepAgentOfferedAgent[] = [];\n for (const agent of [OWN_ASSISTANT_OFFERED_AGENT, ...collabAgents]) {\n if (taken.has(agent.ref)) continue;\n taken.add(agent.ref);\n offered.push(agent);\n }\n return offered;\n}\n\n/** What the composer says when a choice would name more agents than one message takes. */\nexport function namedAgentsLimitMessage(leftOut: readonly string[]): string {\n const names = new Intl.ListFormat('en', { style: 'long', type: 'conjunction' }).format(leftOut);\n return `A message names at most ${MAX_DEEP_AGENT_NAMED_AGENTS} agents, so ${names} ${\n leftOut.length === 1 ? \"wasn't\" : \"weren't\"\n } added.`;\n}\n\n/**\n * Name `agents` for `threadId`'s next message, in the order given, after those already named.\n * Returns the names of the ones left out because eight were named; an agent named already is\n * not left out, it simply stays where it is.\n */\nexport function nameDeepAgentMentionedAgents({\n threadId,\n agents,\n}: {\n threadId: string;\n agents: readonly DeepAgentNamedAgent[];\n}): string[] {\n const leftOut: string[] = [];\n for (const agent of agents) {\n const named = readDeepAgentNamedAgents(threadId);\n if (named.some((entry) => entry.ref === agent.ref.trim())) continue;\n if (named.length >= MAX_DEEP_AGENT_NAMED_AGENTS) {\n leftOut.push(agent.name);\n continue;\n }\n addDeepAgentNamedAgent({\n threadId,\n agent: { ref: agent.ref, name: agent.name, assetId: agent.assetId },\n });\n }\n return leftOut;\n}\n\n// ── The signed-in identity ──────────────────────────────────────────────────\n\n// process-local: client-only — the signed-in identity this page's names were made under.\nlet namedAgentsIdentity: string | null = null;\n\n/** Drop every chip, staged send and remembered name in this page. */\nexport function forgetAllDeepAgentNamedAgents(): void {\n stagedForSend.clear();\n sentTextNamedAgents.clear();\n withdrawalRestores.clear();\n namedAgentsSeen.clear();\n namedAgentsIdentity = null;\n deepAgentNamedAgentsStore.setState(() => ({ byThread: {} }));\n}\n\n/**\n * `identity` is signed in (Olympus's `DeepAgentSessionLoginReset`, the SDK's `AthenaChat`): names\n * this page made under another identity (an account switch in the page or another tab, an\n * impersonation starting or ending, someone else signing in without a reload) are not this\n * person's to send, so they all go.\n */\nexport function keepDeepAgentNamedAgentsForIdentity(identity: string): void {\n if (namedAgentsIdentity !== null && namedAgentsIdentity !== identity) {\n forgetAllDeepAgentNamedAgents();\n }\n namedAgentsIdentity = identity;\n}\n"],"names":["useSyncExternalStore","withAddressedAgents","readAddressedAgents"],"mappings":"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"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import type { ChatOutboxEntry } from './chat-outbox-entry';
|
|
2
|
+
/**
|
|
3
|
+
* The agents a message names (identity v7 D13): one conversation has many participants, and
|
|
4
|
+
* each message goes to the agents it names, each answering in its own turn, in the order named.
|
|
5
|
+
* agora reads the names from the message itself (`message.metadata.addressedAgents`,
|
|
6
|
+
* `addressed-agents.ts`) ahead of the run config's `addressed_agents`, and checks every one of them
|
|
7
|
+
* (the collab overlay's VIEW gate, a colleague's assistant refused, the history re-check), so the
|
|
8
|
+
* client only presents what the person can pick and never gates.
|
|
9
|
+
*
|
|
10
|
+
* Every chat that names agents runs on this one module: Olympus's deep-agent composer (whose
|
|
11
|
+
* `deep-agent-named-agents.ts` re-exports it) and the SDK's `AthenaChat` (and so Athena Desktop),
|
|
12
|
+
* so naming an agent means the same thing, and reaches agora as the same payload, in both. What a
|
|
13
|
+
* composer's `@` menu offers to name is {@link offeredDeepAgentNamedAgents}.
|
|
14
|
+
*
|
|
15
|
+
* - **The chips.** The agents the composer's To line names for each thread, in the order named
|
|
16
|
+
* (`set` / `add` / `remove` / `clear`, read with {@link useDeepAgentNamedAgents}). They stay
|
|
17
|
+
* for every message until the person changes them. Anything may set a thread's chips; its
|
|
18
|
+
* composer shows them. Kept in memory for the page, and dropped when the signed-in identity
|
|
19
|
+
* changes ({@link keepDeepAgentNamedAgentsForIdentity}).
|
|
20
|
+
* - **The send.** statewire captures a new message's metadata once, as it journals it
|
|
21
|
+
* (`getMessageMetadata`), without saying which message it is for. So the composer stages the
|
|
22
|
+
* chips for its next send right before `aui.composer.send`
|
|
23
|
+
* ({@link stageDeepAgentNamedAgentsForSend}), and the runtime's getter takes them for the message
|
|
24
|
+
* that follows ({@link takeStagedDeepAgentNamedAgents}, {@link stagedNamedAgentsMessageMetadata}).
|
|
25
|
+
* The names then travel with the message: a send that waits, is retried after a failure, or is
|
|
26
|
+
* posted again by a page reloaded meanwhile names its own agents, whatever the conversation's
|
|
27
|
+
* context says by then, so no send waits for another's. A slot nobody takes expires.
|
|
28
|
+
* - **The chat outbox.** A message held while Athena can't be reached carries its names on its
|
|
29
|
+
* message the same way (`ChatOutbox.hold({ addressedAgents })`,
|
|
30
|
+
* {@link deepAgentOutboxAddressedAgents}); its Cancel gives them back as chips with its text
|
|
31
|
+
* ({@link giveBackDeepAgentOutboxNamedAgents}).
|
|
32
|
+
*
|
|
33
|
+
* Text a send carried that comes back to the composer (a failed send handed back, an early Stop)
|
|
34
|
+
* brings its chips back ({@link restoreDeepAgentSentNamedAgents}).
|
|
35
|
+
*
|
|
36
|
+
* State is per copy of this module: Olympus runs agent-runtime from source, and the SDK bundles
|
|
37
|
+
* its own copy, whose composer and runtime share it.
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* The message metadata key of the agents a message names (agora:
|
|
41
|
+
* `agent_refs.ADDRESSED_AGENTS_METADATA_KEY`, read in place of the run config's and never kept on
|
|
42
|
+
* the turn the transcript records).
|
|
43
|
+
*/
|
|
44
|
+
export declare const DEEP_AGENT_MESSAGE_ADDRESSED_AGENTS_KEY = "addressedAgents";
|
|
45
|
+
export interface DeepAgentNamedAgent {
|
|
46
|
+
/** What the send names: `collab_agent:<asset id>`, or `assistant` (the sender's own assistant). */
|
|
47
|
+
ref: string;
|
|
48
|
+
/** What the chip shows. */
|
|
49
|
+
name: string;
|
|
50
|
+
/** The collab agent asset behind `ref`; `null` for the sender's own assistant. */
|
|
51
|
+
assetId: string | null;
|
|
52
|
+
}
|
|
53
|
+
/** agora takes at most this many names on one message. */
|
|
54
|
+
export declare const MAX_DEEP_AGENT_NAMED_AGENTS = 8;
|
|
55
|
+
/** The ref of the sender's own assistant. */
|
|
56
|
+
export declare const OWN_ASSISTANT_AGENT_REF = "assistant";
|
|
57
|
+
/** The prefix of a collab agent's ref (`collab_agent:<asset id>`). */
|
|
58
|
+
export declare const COLLAB_AGENT_REF_PREFIX = "collab_agent:";
|
|
59
|
+
/** The refs a message naming `agents` sends: in the order named, each once, at most eight. */
|
|
60
|
+
export declare function namedAgentRefs(agents: readonly Pick<DeepAgentNamedAgent, 'ref'>[]): string[];
|
|
61
|
+
/** What a send naming `agents` names, as one key: two sends name the same agents when equal. */
|
|
62
|
+
export declare function namedAgentsKey(agents: readonly Pick<DeepAgentNamedAgent, 'ref'>[]): string;
|
|
63
|
+
/**
|
|
64
|
+
* Named agents read back from storage (a draft kept across a reload, a message waiting in the chat
|
|
65
|
+
* outbox): a list of `{ ref, name, assetId }` with a non-empty ref and name and an asset id that is
|
|
66
|
+
* a string or `null`, each agent once, at most eight. Anything else reads as naming none, entry by
|
|
67
|
+
* entry, so a newer build's extra fields never break an older reader.
|
|
68
|
+
*/
|
|
69
|
+
export declare function parseDeepAgentNamedAgents(value: unknown): readonly DeepAgentNamedAgent[];
|
|
70
|
+
/** A value its readers follow: a write that changes it tells every listener, synchronously. */
|
|
71
|
+
export interface NamedAgentsStore<T> {
|
|
72
|
+
readonly state: T;
|
|
73
|
+
/** Replace the value with what `update` returns; returning the value it was given changes nothing. */
|
|
74
|
+
setState: (update: (state: T) => T) => void;
|
|
75
|
+
/** Called after every change; returns the unsubscribe function. */
|
|
76
|
+
subscribe: (listener: () => void) => () => void;
|
|
77
|
+
}
|
|
78
|
+
interface DeepAgentNamedAgentsState {
|
|
79
|
+
/** Each thread's named agents (its composer's chips), in the order named. */
|
|
80
|
+
byThread: Readonly<Record<string, readonly DeepAgentNamedAgent[]>>;
|
|
81
|
+
}
|
|
82
|
+
export declare const deepAgentNamedAgentsStore: NamedAgentsStore<DeepAgentNamedAgentsState>;
|
|
83
|
+
/** The agents `threadId`'s composer names for its next message, in the order named. */
|
|
84
|
+
export declare function useDeepAgentNamedAgents(threadId: string): readonly DeepAgentNamedAgent[];
|
|
85
|
+
/** Imperative read of {@link useDeepAgentNamedAgents} (for send paths and handlers). */
|
|
86
|
+
export declare function readDeepAgentNamedAgents(threadId: string): readonly DeepAgentNamedAgent[];
|
|
87
|
+
/**
|
|
88
|
+
* Listen for `threadId`'s chips changing (the composer keeps them with its draft). Another
|
|
89
|
+
* thread's change notifies nothing. Returns the unsubscribe function.
|
|
90
|
+
*/
|
|
91
|
+
export declare function subscribeDeepAgentNamedAgents({ threadId, listener, }: {
|
|
92
|
+
threadId: string;
|
|
93
|
+
listener: () => void;
|
|
94
|
+
}): () => void;
|
|
95
|
+
/** Name exactly `agents` for `threadId`'s next message (each once, in order, at most eight). */
|
|
96
|
+
export declare function setDeepAgentNamedAgents({ threadId, agents, }: {
|
|
97
|
+
threadId: string;
|
|
98
|
+
agents: readonly DeepAgentNamedAgent[];
|
|
99
|
+
}): void;
|
|
100
|
+
/**
|
|
101
|
+
* Name one more agent, after those already named. `false` when nothing changed: it is named
|
|
102
|
+
* already, eight are named, or its ref is blank.
|
|
103
|
+
*/
|
|
104
|
+
export declare function addDeepAgentNamedAgent({ threadId, agent, }: {
|
|
105
|
+
threadId: string;
|
|
106
|
+
agent: DeepAgentNamedAgent;
|
|
107
|
+
}): boolean;
|
|
108
|
+
export declare function removeDeepAgentNamedAgent({ threadId, ref, }: {
|
|
109
|
+
threadId: string;
|
|
110
|
+
ref: string;
|
|
111
|
+
}): void;
|
|
112
|
+
export declare function clearDeepAgentNamedAgents({ threadId }: {
|
|
113
|
+
threadId: string;
|
|
114
|
+
}): void;
|
|
115
|
+
/**
|
|
116
|
+
* Clear `threadId`'s chips once the message that named `agents` has left, but only while they
|
|
117
|
+
* still are those agents: names changed since the message was sent (while it waited behind a
|
|
118
|
+
* loading conversation) belong to the next message and stay. Returns whether they were cleared.
|
|
119
|
+
*/
|
|
120
|
+
export declare function clearDeepAgentNamedAgentsIfUnchanged({ threadId, agents, }: {
|
|
121
|
+
threadId: string;
|
|
122
|
+
agents: readonly DeepAgentNamedAgent[];
|
|
123
|
+
}): boolean;
|
|
124
|
+
/** Remember the names a send of `text` carried (a send naming none forgets earlier ones). */
|
|
125
|
+
export declare function rememberDeepAgentSentNamedAgents({ threadId, text, agents, }: {
|
|
126
|
+
threadId: string;
|
|
127
|
+
text: string;
|
|
128
|
+
agents: readonly DeepAgentNamedAgent[];
|
|
129
|
+
}): void;
|
|
130
|
+
/**
|
|
131
|
+
* Text a send carried came back to `threadId`'s composer (a failed send handed back, an early
|
|
132
|
+
* Stop): the names it carried come back as chips, after any named since (each once, at most
|
|
133
|
+
* eight). `withdrawnMessageId` marks an early Stop's turn, whose chips go again if the run
|
|
134
|
+
* answers it after all ({@link undoDeepAgentWithdrawalNamedAgents}). Returns the agents put back.
|
|
135
|
+
*/
|
|
136
|
+
export declare function restoreDeepAgentSentNamedAgents({ threadId, text, withdrawnMessageId, }: {
|
|
137
|
+
threadId: string;
|
|
138
|
+
text: string;
|
|
139
|
+
withdrawnMessageId?: string;
|
|
140
|
+
}): readonly DeepAgentNamedAgent[];
|
|
141
|
+
/**
|
|
142
|
+
* The run answered a turn its sender took back after all (an early Stop contradicted): the chips
|
|
143
|
+
* that came back with its text go again, except any taken off since.
|
|
144
|
+
*/
|
|
145
|
+
export declare function undoDeepAgentWithdrawalNamedAgents({ messageId }: {
|
|
146
|
+
messageId: string;
|
|
147
|
+
}): void;
|
|
148
|
+
/** A withdrawal settled without undoing its restore (the editor changed since): forget it. */
|
|
149
|
+
export declare function forgetDeepAgentWithdrawalNamedAgents({ messageId }: {
|
|
150
|
+
messageId: string;
|
|
151
|
+
}): void;
|
|
152
|
+
/** How long staged names wait for the message they were staged for before they expire. */
|
|
153
|
+
export declare const NAMED_AGENTS_STAGED_TTL_MS = 10000;
|
|
154
|
+
/**
|
|
155
|
+
* Stage `agents` as the names of the message `threadId`'s composer submits next. Call right before
|
|
156
|
+
* the send (`aui.composer.send`): the runtime's `getMessageMetadata` takes them for that message
|
|
157
|
+
* ({@link takeStagedDeepAgentNamedAgents}). A send naming none stages nothing and lets an earlier
|
|
158
|
+
* slot go.
|
|
159
|
+
*/
|
|
160
|
+
export declare function stageDeepAgentNamedAgentsForSend({ threadId, agents, }: {
|
|
161
|
+
threadId: string;
|
|
162
|
+
agents: readonly DeepAgentNamedAgent[];
|
|
163
|
+
}): void;
|
|
164
|
+
/**
|
|
165
|
+
* The refs staged for the message `threadId` journals now, taking the slot (`undefined`: none
|
|
166
|
+
* staged, or staged more than {@link NAMED_AGENTS_STAGED_TTL_MS} ago).
|
|
167
|
+
*/
|
|
168
|
+
export declare function takeStagedDeepAgentNamedAgents(threadId: string): readonly string[] | undefined;
|
|
169
|
+
/**
|
|
170
|
+
* The metadata of the message `threadId` journals now, for a runtime's `getMessageMetadata` (the
|
|
171
|
+
* SDK's): the names staged for it under {@link DEEP_AGENT_MESSAGE_ADDRESSED_AGENTS_KEY}, taking the
|
|
172
|
+
* slot, or `undefined` when none are staged (the message then names none of its own). Olympus's
|
|
173
|
+
* runtime takes the slot itself, falling back to the conversation's default agent.
|
|
174
|
+
*/
|
|
175
|
+
export declare function stagedNamedAgentsMessageMetadata(threadId: string): Record<string, unknown> | undefined;
|
|
176
|
+
/**
|
|
177
|
+
* The agents a message held in the chat outbox names (`ChatOutbox.hold`'s `addressedAgents`, kept
|
|
178
|
+
* on its message): its chips' refs, or `undefined` when it names none (it then goes out as a send
|
|
179
|
+
* naming none does).
|
|
180
|
+
*/
|
|
181
|
+
export declare function deepAgentOutboxAddressedAgents(agents: readonly DeepAgentNamedAgent[]): string[] | undefined;
|
|
182
|
+
/**
|
|
183
|
+
* A waiting message went back to the composer (Cancel, or the ask's Edit): the agents it named
|
|
184
|
+
* (`message.metadata.addressedAgents`) come back as chips with its text, after any named since.
|
|
185
|
+
* The message keeps only refs, so each chip is named by `namedAgentsForRefs` (a host's agent list,
|
|
186
|
+
* as its `@` menu names them), else as this page last named it. Returns the agents put back.
|
|
187
|
+
*/
|
|
188
|
+
export declare function giveBackDeepAgentOutboxNamedAgents(entry: Pick<ChatOutboxEntry, 'threadId' | 'metadata'>, { namedAgentsForRefs, }?: {
|
|
189
|
+
namedAgentsForRefs?: (refs: readonly string[]) => readonly DeepAgentNamedAgent[];
|
|
190
|
+
}): readonly DeepAgentNamedAgent[];
|
|
191
|
+
/**
|
|
192
|
+
* Whether the `@` menu's Agents section is offered to Athena admins alone, for now (#50245). One
|
|
193
|
+
* switch for every chat that names agents (Olympus's composer, the SDK's `AthenaChat`): while it
|
|
194
|
+
* is `true`, only an admin is offered the section, and only an admin's root search finds an agent.
|
|
195
|
+
* It decides who is offered the menu, nothing more: agora checks every name a message carries.
|
|
196
|
+
*/
|
|
197
|
+
export declare const CHAT_AGENT_NAMING_ADMIN_ONLY = true;
|
|
198
|
+
/** Whether a viewer is offered the `@` menu's Agents section ({@link CHAT_AGENT_NAMING_ADMIN_ONLY}). */
|
|
199
|
+
export declare function chatAgentNamingOffered({ isAdmin }: {
|
|
200
|
+
isAdmin: boolean;
|
|
201
|
+
}): boolean;
|
|
202
|
+
/** An agent a composer's `@` menu offers to name. */
|
|
203
|
+
export interface DeepAgentOfferedAgent extends DeepAgentNamedAgent {
|
|
204
|
+
/** A Lucide icon name for the menu row. */
|
|
205
|
+
icon: string;
|
|
206
|
+
}
|
|
207
|
+
/** What the person's own assistant is called in the menu and on its chip. */
|
|
208
|
+
export declare const OWN_ASSISTANT_DISPLAY_NAME = "Athena";
|
|
209
|
+
/** The person's own assistant, as the menu offers it. */
|
|
210
|
+
export declare const OWN_ASSISTANT_OFFERED_AGENT: DeepAgentOfferedAgent;
|
|
211
|
+
/** A collab agent as the menu offers it: its ref, its name (else "Untitled agent"), its icon (else a bot). */
|
|
212
|
+
export declare function collabAgentOfferedAgent({ assetId, name, icon, }: {
|
|
213
|
+
assetId: string;
|
|
214
|
+
name: string;
|
|
215
|
+
icon?: string | null;
|
|
216
|
+
}): DeepAgentOfferedAgent;
|
|
217
|
+
/**
|
|
218
|
+
* The agents a composer's `@` menu offers to name: the person's own assistant
|
|
219
|
+
* ({@link OWN_ASSISTANT_OFFERED_AGENT}), then `collabAgents` (the collab agents the composer's agent
|
|
220
|
+
* picker lists) in their order, each once, minus the ones already named; none once eight are named.
|
|
221
|
+
*/
|
|
222
|
+
export declare function offeredDeepAgentNamedAgents({ collabAgents, named, }: {
|
|
223
|
+
collabAgents: readonly DeepAgentOfferedAgent[];
|
|
224
|
+
named: readonly DeepAgentNamedAgent[];
|
|
225
|
+
}): DeepAgentOfferedAgent[];
|
|
226
|
+
/** What the composer says when a choice would name more agents than one message takes. */
|
|
227
|
+
export declare function namedAgentsLimitMessage(leftOut: readonly string[]): string;
|
|
228
|
+
/**
|
|
229
|
+
* Name `agents` for `threadId`'s next message, in the order given, after those already named.
|
|
230
|
+
* Returns the names of the ones left out because eight were named; an agent named already is
|
|
231
|
+
* not left out, it simply stays where it is.
|
|
232
|
+
*/
|
|
233
|
+
export declare function nameDeepAgentMentionedAgents({ threadId, agents, }: {
|
|
234
|
+
threadId: string;
|
|
235
|
+
agents: readonly DeepAgentNamedAgent[];
|
|
236
|
+
}): string[];
|
|
237
|
+
/** Drop every chip, staged send and remembered name in this page. */
|
|
238
|
+
export declare function forgetAllDeepAgentNamedAgents(): void;
|
|
239
|
+
/**
|
|
240
|
+
* `identity` is signed in (Olympus's `DeepAgentSessionLoginReset`, the SDK's `AthenaChat`): names
|
|
241
|
+
* this page made under another identity (an account switch in the page or another tab, an
|
|
242
|
+
* impersonation starting or ending, someone else signing in without a reload) are not this
|
|
243
|
+
* person's to send, so they all go.
|
|
244
|
+
*/
|
|
245
|
+
export declare function keepDeepAgentNamedAgentsForIdentity(identity: string): void;
|
|
246
|
+
export {};
|