@athenaintel/react 0.57.2 → 0.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +759 -9
- package/dist/agent-runtime/src/addressed-agents.cjs +16 -0
- package/dist/agent-runtime/src/addressed-agents.cjs.map +1 -0
- package/dist/agent-runtime/src/addressed-agents.d.ts +30 -0
- package/dist/agent-runtime/src/addressed-agents.js +16 -0
- package/dist/agent-runtime/src/addressed-agents.js.map +1 -0
- package/dist/agent-runtime/src/answer-label.cjs +4 -3
- package/dist/agent-runtime/src/answer-label.cjs.map +1 -1
- package/dist/agent-runtime/src/answer-label.d.ts +13 -6
- package/dist/agent-runtime/src/answer-label.js +4 -3
- package/dist/agent-runtime/src/answer-label.js.map +1 -1
- package/dist/agent-runtime/src/chat-outbox-attachments.cjs.map +1 -1
- package/dist/agent-runtime/src/chat-outbox-attachments.d.ts +1 -1
- package/dist/agent-runtime/src/chat-outbox-attachments.js.map +1 -1
- package/dist/agent-runtime/src/chat-outbox-entry.cjs +101 -0
- package/dist/agent-runtime/src/chat-outbox-entry.cjs.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-entry.d.ts +99 -0
- package/dist/agent-runtime/src/chat-outbox-entry.js +101 -0
- package/dist/agent-runtime/src/chat-outbox-entry.js.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-legacy.cjs +252 -0
- package/dist/agent-runtime/src/chat-outbox-legacy.cjs.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-legacy.d.ts +96 -0
- package/dist/agent-runtime/src/chat-outbox-legacy.js +252 -0
- package/dist/agent-runtime/src/chat-outbox-legacy.js.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-policy.cjs +30 -0
- package/dist/agent-runtime/src/chat-outbox-policy.cjs.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-policy.d.ts +42 -0
- package/dist/agent-runtime/src/chat-outbox-policy.js +30 -0
- package/dist/agent-runtime/src/chat-outbox-policy.js.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-storage.cjs +306 -0
- package/dist/agent-runtime/src/chat-outbox-storage.cjs.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-storage.d.ts +194 -0
- package/dist/agent-runtime/src/chat-outbox-storage.js +306 -0
- package/dist/agent-runtime/src/chat-outbox-storage.js.map +1 -0
- package/dist/agent-runtime/src/chat-outbox-thread.cjs +21 -94
- package/dist/agent-runtime/src/chat-outbox-thread.cjs.map +1 -1
- package/dist/agent-runtime/src/chat-outbox-thread.d.ts +22 -18
- package/dist/agent-runtime/src/chat-outbox-thread.js +21 -94
- package/dist/agent-runtime/src/chat-outbox-thread.js.map +1 -1
- package/dist/agent-runtime/src/chat-outbox.cjs +492 -547
- package/dist/agent-runtime/src/chat-outbox.cjs.map +1 -1
- package/dist/agent-runtime/src/chat-outbox.d.ts +110 -142
- package/dist/agent-runtime/src/chat-outbox.js +492 -547
- package/dist/agent-runtime/src/chat-outbox.js.map +1 -1
- package/dist/agent-runtime/src/composer-markdown.cjs.map +1 -1
- package/dist/agent-runtime/src/composer-markdown.d.ts +1 -1
- package/dist/agent-runtime/src/composer-markdown.js.map +1 -1
- package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs +3 -1
- package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -1
- package/dist/agent-runtime/src/deep-agent-transport-recipe.d.ts +8 -1
- package/dist/agent-runtime/src/deep-agent-transport-recipe.js +3 -1
- package/dist/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -1
- package/dist/agent-runtime/src/dictation-preferences.d.ts +356 -0
- package/dist/agent-runtime/src/dictation-record.d.ts +279 -0
- package/dist/agent-runtime/src/dictation-session.d.ts +106 -7
- package/dist/agent-runtime/src/dictation-snippets.d.ts +9 -0
- package/dist/agent-runtime/src/dictation-transfer.d.ts +142 -0
- package/dist/agent-runtime/src/edit-command.cjs.map +1 -1
- package/dist/agent-runtime/src/edit-command.d.ts +1 -1
- package/dist/agent-runtime/src/edit-command.js.map +1 -1
- package/dist/agent-runtime/src/errors.cjs +1 -0
- package/dist/agent-runtime/src/errors.cjs.map +1 -1
- package/dist/agent-runtime/src/errors.js +1 -0
- package/dist/agent-runtime/src/errors.js.map +1 -1
- package/dist/agent-runtime/src/generated/runconfig-contract.cjs +24 -0
- package/dist/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
- package/dist/agent-runtime/src/generated/runconfig-contract.d.ts +3 -3
- package/dist/agent-runtime/src/generated/runconfig-contract.js +24 -0
- package/dist/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
- package/dist/agent-runtime/src/index.d.ts +14 -8
- package/dist/agent-runtime/src/lane-follow.cjs +289 -0
- package/dist/agent-runtime/src/lane-follow.cjs.map +1 -0
- package/dist/agent-runtime/src/lane-follow.js +289 -0
- package/dist/agent-runtime/src/lane-follow.js.map +1 -0
- package/dist/agent-runtime/src/lane-images.cjs +387 -0
- package/dist/agent-runtime/src/lane-images.cjs.map +1 -0
- package/dist/agent-runtime/src/lane-images.js +387 -0
- package/dist/agent-runtime/src/lane-images.js.map +1 -0
- package/dist/agent-runtime/src/message-window.js +1 -1
- package/dist/agent-runtime/src/messages.cjs +19 -1
- package/dist/agent-runtime/src/messages.cjs.map +1 -1
- package/dist/agent-runtime/src/messages.d.ts +8 -0
- package/dist/agent-runtime/src/messages.js +21 -3
- package/dist/agent-runtime/src/messages.js.map +1 -1
- package/dist/agent-runtime/src/named-agents.cjs +301 -0
- package/dist/agent-runtime/src/named-agents.cjs.map +1 -0
- package/dist/agent-runtime/src/named-agents.d.ts +246 -0
- package/dist/agent-runtime/src/named-agents.js +301 -0
- package/dist/agent-runtime/src/named-agents.js.map +1 -0
- package/dist/agent-runtime/src/offline-status.cjs.map +1 -1
- package/dist/agent-runtime/src/offline-status.d.ts +66 -2
- package/dist/agent-runtime/src/offline-status.js.map +1 -1
- package/dist/agent-runtime/src/ptc-subcalls.cjs +41 -0
- package/dist/agent-runtime/src/ptc-subcalls.cjs.map +1 -0
- package/dist/agent-runtime/src/ptc-subcalls.js +41 -0
- package/dist/agent-runtime/src/ptc-subcalls.js.map +1 -0
- package/dist/agent-runtime/src/queue.cjs +2 -2
- package/dist/agent-runtime/src/queue.cjs.map +1 -1
- package/dist/agent-runtime/src/queue.d.ts +20 -25
- package/dist/agent-runtime/src/queue.js +2 -2
- package/dist/agent-runtime/src/queue.js.map +1 -1
- package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs +314 -84
- package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
- package/dist/agent-runtime/src/quota-safe-local-storage-session.d.ts +137 -40
- package/dist/agent-runtime/src/quota-safe-local-storage-session.js +318 -88
- package/dist/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -1
- package/dist/agent-runtime/src/run-send.cjs +54 -0
- package/dist/agent-runtime/src/run-send.cjs.map +1 -0
- package/dist/agent-runtime/src/run-send.d.ts +51 -0
- package/dist/agent-runtime/src/run-send.js +54 -0
- package/dist/agent-runtime/src/run-send.js.map +1 -0
- package/dist/agent-runtime/src/running-tool-placeholder.cjs +6 -0
- package/dist/agent-runtime/src/running-tool-placeholder.cjs.map +1 -1
- package/dist/agent-runtime/src/running-tool-placeholder.js +6 -0
- package/dist/agent-runtime/src/running-tool-placeholder.js.map +1 -1
- package/dist/agent-runtime/src/runtime.d.ts +9 -5
- package/dist/agent-runtime/src/sealed-idb.cjs +64 -0
- package/dist/agent-runtime/src/sealed-idb.cjs.map +1 -1
- package/dist/agent-runtime/src/sealed-idb.d.ts +16 -0
- package/dist/agent-runtime/src/sealed-idb.js +64 -0
- package/dist/agent-runtime/src/sealed-idb.js.map +1 -1
- package/dist/agent-runtime/src/send-recovery.cjs +90 -118
- package/dist/agent-runtime/src/send-recovery.cjs.map +1 -1
- package/dist/agent-runtime/src/send-recovery.d.ts +25 -29
- package/dist/agent-runtime/src/send-recovery.js +90 -118
- package/dist/agent-runtime/src/send-recovery.js.map +1 -1
- package/dist/agent-runtime/src/statewire-diagnostics.d.ts +4 -1
- package/dist/agent-runtime/src/statewire-held-sends.cjs +191 -0
- package/dist/agent-runtime/src/statewire-held-sends.cjs.map +1 -0
- package/dist/agent-runtime/src/statewire-held-sends.d.ts +119 -0
- package/dist/agent-runtime/src/statewire-held-sends.js +191 -0
- package/dist/agent-runtime/src/statewire-held-sends.js.map +1 -0
- package/dist/agent-runtime/src/statewire-state.cjs +4 -0
- package/dist/agent-runtime/src/statewire-state.cjs.map +1 -1
- package/dist/agent-runtime/src/statewire-state.js +4 -0
- package/dist/agent-runtime/src/statewire-state.js.map +1 -1
- package/dist/agent-runtime/src/statewire-transport.cjs +8 -2
- package/dist/agent-runtime/src/statewire-transport.cjs.map +1 -1
- package/dist/agent-runtime/src/statewire-transport.d.ts +14 -5
- package/dist/agent-runtime/src/statewire-transport.js +8 -2
- package/dist/agent-runtime/src/statewire-transport.js.map +1 -1
- package/dist/agent-runtime/src/subagent-transcripts.cjs +1 -23
- package/dist/agent-runtime/src/subagent-transcripts.cjs.map +1 -1
- package/dist/agent-runtime/src/subagent-transcripts.js +3 -25
- package/dist/agent-runtime/src/subagent-transcripts.js.map +1 -1
- package/dist/agent-runtime/src/subagents.cjs +22 -29
- package/dist/agent-runtime/src/subagents.cjs.map +1 -1
- package/dist/agent-runtime/src/subagents.js +23 -30
- package/dist/agent-runtime/src/subagents.js.map +1 -1
- package/dist/agent-runtime/src/thread-extras.cjs +27 -19
- package/dist/agent-runtime/src/thread-extras.cjs.map +1 -1
- package/dist/agent-runtime/src/thread-extras.d.ts +19 -6
- package/dist/agent-runtime/src/thread-extras.js +27 -19
- package/dist/agent-runtime/src/thread-extras.js.map +1 -1
- package/dist/agent-runtime/src/thread-handoff-flow-machine.d.ts +8 -8
- package/dist/agent-runtime/src/tool-metadata.cjs +12 -0
- package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-metadata.js +12 -0
- package/dist/agent-runtime/src/tool-metadata.js.map +1 -1
- package/dist/agent-runtime/src/tool-names.cjs +21 -0
- package/dist/agent-runtime/src/tool-names.cjs.map +1 -1
- package/dist/agent-runtime/src/tool-names.d.ts +8 -0
- package/dist/agent-runtime/src/tool-names.js +21 -0
- package/dist/agent-runtime/src/tool-names.js.map +1 -1
- package/dist/agent-runtime/src/typed-interrupt-kinds.cjs +247 -0
- package/dist/agent-runtime/src/typed-interrupt-kinds.cjs.map +1 -0
- package/dist/agent-runtime/src/typed-interrupt-kinds.d.ts +173 -0
- package/dist/agent-runtime/src/typed-interrupt-kinds.js +247 -0
- package/dist/agent-runtime/src/typed-interrupt-kinds.js.map +1 -0
- package/dist/agent-runtime/src/typed-interrupts.cjs +48 -0
- package/dist/agent-runtime/src/typed-interrupts.cjs.map +1 -0
- package/dist/agent-runtime/src/typed-interrupts.d.ts +75 -0
- package/dist/agent-runtime/src/typed-interrupts.js +48 -0
- package/dist/agent-runtime/src/typed-interrupts.js.map +1 -0
- package/dist/agent-runtime/src/types.d.ts +1 -1
- package/dist/agent-runtime/src/use-conversation-list.cjs +1 -0
- package/dist/agent-runtime/src/use-conversation-list.cjs.map +1 -1
- package/dist/agent-runtime/src/use-conversation-list.d.ts +7 -0
- package/dist/agent-runtime/src/use-conversation-list.js +1 -0
- package/dist/agent-runtime/src/use-conversation-list.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs +46 -29
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.d.ts +14 -22
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js +46 -29
- package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-runtime.cjs +78 -14
- package/dist/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-runtime.d.ts +34 -7
- package/dist/agent-runtime/src/use-deep-agent-runtime.js +79 -15
- package/dist/agent-runtime/src/use-deep-agent-runtime.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-thread.cjs +16 -1
- package/dist/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-thread.d.ts +7 -2
- package/dist/agent-runtime/src/use-deep-agent-thread.js +16 -1
- package/dist/agent-runtime/src/use-deep-agent-thread.js.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-voice.cjs +30 -4
- package/dist/agent-runtime/src/use-deep-agent-voice.cjs.map +1 -1
- package/dist/agent-runtime/src/use-deep-agent-voice.d.ts +22 -4
- package/dist/agent-runtime/src/use-deep-agent-voice.js +30 -4
- package/dist/agent-runtime/src/use-deep-agent-voice.js.map +1 -1
- package/dist/agent-runtime/src/withdrawn-turns.d.ts +5 -4
- package/dist/agent-runtime/src/word-device-fit.d.ts +174 -0
- package/dist/agent-runtime/src/work-in.d.ts +127 -0
- package/dist/assets/AthenaAssetEmbed.cjs.map +1 -1
- package/dist/assets/AthenaAssetEmbed.d.ts +6 -1
- package/dist/assets/AthenaAssetEmbed.js.map +1 -1
- package/dist/assets/asset-panel-store.cjs +13 -5
- package/dist/assets/asset-panel-store.cjs.map +1 -1
- package/dist/assets/asset-panel-store.d.ts +33 -2
- package/dist/assets/asset-panel-store.js +13 -5
- package/dist/assets/asset-panel-store.js.map +1 -1
- package/dist/auth/AthenaCredentialSourceContext.cjs +11 -0
- package/dist/auth/AthenaCredentialSourceContext.cjs.map +1 -1
- package/dist/auth/AthenaCredentialSourceContext.d.ts +6 -0
- package/dist/auth/AthenaCredentialSourceContext.js +11 -0
- package/dist/auth/AthenaCredentialSourceContext.js.map +1 -1
- package/dist/auth/account-identity.cjs +13 -2
- package/dist/auth/account-identity.cjs.map +1 -1
- package/dist/auth/account-identity.d.ts +9 -0
- package/dist/auth/account-identity.js +13 -2
- package/dist/auth/account-identity.js.map +1 -1
- package/dist/auth/credential-source.cjs +20 -4
- package/dist/auth/credential-source.cjs.map +1 -1
- package/dist/auth/credential-source.d.ts +9 -0
- package/dist/auth/credential-source.js +20 -4
- package/dist/auth/credential-source.js.map +1 -1
- package/dist/catalog/chat-pickers.cjs +31 -0
- package/dist/catalog/chat-pickers.cjs.map +1 -1
- package/dist/catalog/chat-pickers.d.ts +17 -0
- package/dist/catalog/chat-pickers.js +33 -2
- package/dist/catalog/chat-pickers.js.map +1 -1
- package/dist/catalog/runtime-catalog.cjs +63 -3
- package/dist/catalog/runtime-catalog.cjs.map +1 -1
- package/dist/catalog/runtime-catalog.d.ts +63 -3
- package/dist/catalog/runtime-catalog.js +64 -4
- package/dist/catalog/runtime-catalog.js.map +1 -1
- package/dist/chat/AthenaChat.cjs +290 -97
- package/dist/chat/AthenaChat.cjs.map +1 -1
- package/dist/chat/AthenaChat.d.ts +80 -4
- package/dist/chat/AthenaChat.js +290 -97
- package/dist/chat/AthenaChat.js.map +1 -1
- package/dist/chat/StatewireApprovalCard.cjs +35 -5
- package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
- package/dist/chat/StatewireApprovalCard.d.ts +55 -2
- package/dist/chat/StatewireApprovalCard.js +37 -7
- package/dist/chat/StatewireApprovalCard.js.map +1 -1
- package/dist/chat/StatewireQueuedMessages.cjs +17 -2
- package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
- package/dist/chat/StatewireQueuedMessages.d.ts +8 -45
- package/dist/chat/StatewireQueuedMessages.js +18 -3
- package/dist/chat/StatewireQueuedMessages.js.map +1 -1
- package/dist/chat/chat-agent-mentions.cjs +70 -0
- package/dist/chat/chat-agent-mentions.cjs.map +1 -0
- package/dist/chat/chat-agent-mentions.d.ts +13 -0
- package/dist/chat/chat-agent-mentions.js +70 -0
- package/dist/chat/chat-agent-mentions.js.map +1 -0
- package/dist/chat/composer-actions.cjs +12 -0
- package/dist/chat/composer-actions.cjs.map +1 -0
- package/dist/chat/composer-actions.d.ts +22 -0
- package/dist/chat/composer-actions.js +12 -0
- package/dist/chat/composer-actions.js.map +1 -0
- package/dist/chat/follow-up-suggestions.cjs +185 -0
- package/dist/chat/follow-up-suggestions.cjs.map +1 -0
- package/dist/chat/follow-up-suggestions.d.ts +64 -0
- package/dist/chat/follow-up-suggestions.js +185 -0
- package/dist/chat/follow-up-suggestions.js.map +1 -0
- package/dist/chat/super-grouping/ToolTimeline.cjs +4 -3
- package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
- package/dist/chat/super-grouping/ToolTimeline.d.ts +7 -3
- package/dist/chat/super-grouping/ToolTimeline.js +4 -3
- package/dist/chat/super-grouping/ToolTimeline.js.map +1 -1
- package/dist/chat/turn-changes.cjs +284 -0
- package/dist/chat/turn-changes.cjs.map +1 -0
- package/dist/chat/turn-changes.d.ts +130 -0
- package/dist/chat/turn-changes.js +284 -0
- package/dist/chat/turn-changes.js.map +1 -0
- package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs +31 -0
- package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs.map +1 -0
- package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.d.ts +31 -0
- package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js +31 -0
- package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js.map +1 -0
- package/dist/chat/typed-interrupts/approval-cards.cjs +250 -0
- package/dist/chat/typed-interrupts/approval-cards.cjs.map +1 -0
- package/dist/chat/typed-interrupts/approval-cards.d.ts +22 -0
- package/dist/chat/typed-interrupts/approval-cards.js +250 -0
- package/dist/chat/typed-interrupts/approval-cards.js.map +1 -0
- package/dist/chat/typed-interrupts/form-cards.cjs +289 -0
- package/dist/chat/typed-interrupts/form-cards.cjs.map +1 -0
- package/dist/chat/typed-interrupts/form-cards.d.ts +6 -0
- package/dist/chat/typed-interrupts/form-cards.js +289 -0
- package/dist/chat/typed-interrupts/form-cards.js.map +1 -0
- package/dist/chat/typed-interrupts/interrupt-card-shell.cjs +182 -0
- package/dist/chat/typed-interrupts/interrupt-card-shell.cjs.map +1 -0
- package/dist/chat/typed-interrupts/interrupt-card-shell.d.ts +47 -0
- package/dist/chat/typed-interrupts/interrupt-card-shell.js +182 -0
- package/dist/chat/typed-interrupts/interrupt-card-shell.js.map +1 -0
- package/dist/chat/typed-interrupts/json-schema-form.cjs +388 -0
- package/dist/chat/typed-interrupts/json-schema-form.cjs.map +1 -0
- package/dist/chat/typed-interrupts/json-schema-form.d.ts +33 -0
- package/dist/chat/typed-interrupts/json-schema-form.js +388 -0
- package/dist/chat/typed-interrupts/json-schema-form.js.map +1 -0
- package/dist/chat/typed-interrupts/questionnaire-card.cjs +449 -0
- package/dist/chat/typed-interrupts/questionnaire-card.cjs.map +1 -0
- package/dist/chat/typed-interrupts/questionnaire-card.d.ts +20 -0
- package/dist/chat/typed-interrupts/questionnaire-card.js +449 -0
- package/dist/chat/typed-interrupts/questionnaire-card.js.map +1 -0
- package/dist/chat/typed-interrupts/request-file-card.cjs +159 -0
- package/dist/chat/typed-interrupts/request-file-card.cjs.map +1 -0
- package/dist/chat/typed-interrupts/request-file-card.d.ts +2 -0
- package/dist/chat/typed-interrupts/request-file-card.js +159 -0
- package/dist/chat/typed-interrupts/request-file-card.js.map +1 -0
- package/dist/chat/typed-interrupts/toolkit-selection-card.cjs +189 -0
- package/dist/chat/typed-interrupts/toolkit-selection-card.cjs.map +1 -0
- package/dist/chat/typed-interrupts/toolkit-selection-card.d.ts +23 -0
- package/dist/chat/typed-interrupts/toolkit-selection-card.js +189 -0
- package/dist/chat/typed-interrupts/toolkit-selection-card.js.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-body.cjs +26 -0
- package/dist/chat/typed-interrupts/typed-interrupt-body.cjs.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-body.d.ts +3 -0
- package/dist/chat/typed-interrupts/typed-interrupt-body.js +26 -0
- package/dist/chat/typed-interrupts/typed-interrupt-body.js.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs +105 -0
- package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-graphql.d.ts +29 -0
- package/dist/chat/typed-interrupts/typed-interrupt-graphql.js +105 -0
- package/dist/chat/typed-interrupts/typed-interrupt-graphql.js.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs +70 -0
- package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-notice.d.ts +45 -0
- package/dist/chat/typed-interrupts/typed-interrupt-notice.js +70 -0
- package/dist/chat/typed-interrupts/typed-interrupt-notice.js.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs +76 -0
- package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-panel.d.ts +11 -0
- package/dist/chat/typed-interrupts/typed-interrupt-panel.js +76 -0
- package/dist/chat/typed-interrupts/typed-interrupt-panel.js.map +1 -0
- package/dist/chat/typed-interrupts/typed-interrupt-types.d.ts +46 -0
- package/dist/chat/typed-interrupts/use-interrupt-draft.cjs +106 -0
- package/dist/chat/typed-interrupts/use-interrupt-draft.cjs.map +1 -0
- package/dist/chat/typed-interrupts/use-interrupt-draft.d.ts +29 -0
- package/dist/chat/typed-interrupts/use-interrupt-draft.js +106 -0
- package/dist/chat/typed-interrupts/use-interrupt-draft.js.map +1 -0
- package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs +231 -0
- package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs.map +1 -0
- package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.d.ts +66 -0
- package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js +231 -0
- package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js.map +1 -0
- package/dist/chat-ui/composer/composer-named-agents.cjs +13 -0
- package/dist/chat-ui/composer/composer-named-agents.cjs.map +1 -0
- package/dist/chat-ui/composer/composer-named-agents.d.ts +20 -0
- package/dist/chat-ui/composer/composer-named-agents.js +13 -0
- package/dist/chat-ui/composer/composer-named-agents.js.map +1 -0
- package/dist/chat-ui/composer/slash-command-menu.cjs +143 -0
- package/dist/chat-ui/composer/slash-command-menu.cjs.map +1 -0
- package/dist/chat-ui/composer/slash-command-menu.d.ts +19 -0
- package/dist/chat-ui/composer/slash-command-menu.js +143 -0
- package/dist/chat-ui/composer/slash-command-menu.js.map +1 -0
- package/dist/chat-ui/composer/slash-commands-extension.cjs +51 -0
- package/dist/chat-ui/composer/slash-commands-extension.cjs.map +1 -0
- package/dist/chat-ui/composer/slash-commands-extension.d.ts +39 -0
- package/dist/chat-ui/composer/slash-commands-extension.js +51 -0
- package/dist/chat-ui/composer/slash-commands-extension.js.map +1 -0
- package/dist/chat-ui/composer/slash-commands.cjs +74 -0
- package/dist/chat-ui/composer/slash-commands.cjs.map +1 -0
- package/dist/chat-ui/composer/slash-commands.d.ts +82 -0
- package/dist/chat-ui/composer/slash-commands.js +74 -0
- package/dist/chat-ui/composer/slash-commands.js.map +1 -0
- package/dist/chat-ui/composer/tiptap-composer.cjs +135 -9
- package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
- package/dist/chat-ui/composer/tiptap-composer.d.ts +61 -2
- package/dist/chat-ui/composer/tiptap-composer.js +135 -9
- package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
- package/dist/chat-ui/index.cjs +3 -0
- package/dist/chat-ui/index.cjs.map +1 -1
- package/dist/chat-ui/index.d.ts +3 -2
- package/dist/chat-ui/index.js +3 -0
- package/dist/chat-ui/index.js.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.cjs +1 -1
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.js +2 -2
- package/dist/chat-ui/mentions/mention-chip.js.map +1 -1
- package/dist/chat-ui/mentions/mention-extension.cjs +8 -1
- package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -1
- package/dist/chat-ui/mentions/mention-extension.js +8 -1
- package/dist/chat-ui/mentions/mention-extension.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +1 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +1 -0
- package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +2 -0
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +3 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +36 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +42 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js +36 -0
- package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +235 -19
- package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +88 -10
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js +236 -20
- package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/types.d.ts +27 -1
- package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +56 -5
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +26 -6
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +57 -6
- package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +34 -17
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.d.ts +19 -1
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +35 -18
- package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -1
- package/dist/chat-ui/statewire.d.ts +1 -1
- package/dist/chat-ui/thread/statewire-history-edge.cjs +15 -0
- package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
- package/dist/chat-ui/thread/statewire-history-edge.d.ts +4 -1
- package/dist/chat-ui/thread/statewire-history-edge.js +15 -0
- package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
- package/dist/collab/client.cjs +17 -5
- package/dist/collab/client.cjs.map +1 -1
- package/dist/collab/client.d.ts +22 -7
- package/dist/collab/client.js +17 -5
- package/dist/collab/client.js.map +1 -1
- package/dist/composer/ComposerAttachedReferences.cjs +119 -0
- package/dist/composer/ComposerAttachedReferences.cjs.map +1 -0
- package/dist/composer/ComposerAttachedReferences.d.ts +26 -0
- package/dist/composer/ComposerAttachedReferences.js +119 -0
- package/dist/composer/ComposerAttachedReferences.js.map +1 -0
- package/dist/composer/ComposerNamedAgents.cjs +63 -0
- package/dist/composer/ComposerNamedAgents.cjs.map +1 -0
- package/dist/composer/ComposerNamedAgents.d.ts +16 -0
- package/dist/composer/ComposerNamedAgents.js +63 -0
- package/dist/composer/ComposerNamedAgents.js.map +1 -0
- package/dist/composer/attached-references.cjs +159 -0
- package/dist/composer/attached-references.cjs.map +1 -0
- package/dist/composer/attached-references.d.ts +86 -0
- package/dist/composer/attached-references.js +159 -0
- package/dist/composer/attached-references.js.map +1 -0
- package/dist/composer/build-composed-message.cjs +14 -7
- package/dist/composer/build-composed-message.cjs.map +1 -1
- package/dist/composer/build-composed-message.d.ts +6 -1
- package/dist/composer/build-composed-message.js +14 -7
- package/dist/composer/build-composed-message.js.map +1 -1
- package/dist/composer/composer-handoff.cjs +6 -2
- package/dist/composer/composer-handoff.cjs.map +1 -1
- package/dist/composer/composer-handoff.d.ts +7 -1
- package/dist/composer/composer-handoff.js +6 -2
- package/dist/composer/composer-handoff.js.map +1 -1
- package/dist/composer/folder-upload.cjs +149 -0
- package/dist/composer/folder-upload.cjs.map +1 -0
- package/dist/composer/folder-upload.d.ts +79 -0
- package/dist/composer/folder-upload.js +149 -0
- package/dist/composer/folder-upload.js.map +1 -0
- package/dist/composer/index.d.ts +1 -1
- package/dist/composer/useAttachToChat.cjs +35 -0
- package/dist/composer/useAttachToChat.cjs.map +1 -0
- package/dist/composer/useAttachToChat.d.ts +54 -0
- package/dist/composer/useAttachToChat.js +35 -0
- package/dist/composer/useAttachToChat.js.map +1 -0
- package/dist/composer/useAttachedReferencesComposerProps.cjs +19 -0
- package/dist/composer/useAttachedReferencesComposerProps.cjs.map +1 -0
- package/dist/composer/useAttachedReferencesComposerProps.d.ts +12 -0
- package/dist/composer/useAttachedReferencesComposerProps.js +19 -0
- package/dist/composer/useAttachedReferencesComposerProps.js.map +1 -0
- package/dist/composer/useFileUpload.cjs +95 -7
- package/dist/composer/useFileUpload.cjs.map +1 -1
- package/dist/composer/useFileUpload.d.ts +21 -2
- package/dist/composer/useFileUpload.js +95 -7
- package/dist/composer/useFileUpload.js.map +1 -1
- package/dist/data/athena-api-error.cjs +125 -0
- package/dist/data/athena-api-error.cjs.map +1 -0
- package/dist/data/athena-api-error.d.ts +96 -0
- package/dist/data/athena-api-error.js +125 -0
- package/dist/data/athena-api-error.js.map +1 -0
- package/dist/data/athena-data-client.cjs +106 -0
- package/dist/data/athena-data-client.cjs.map +1 -0
- package/dist/data/athena-data-client.d.ts +74 -0
- package/dist/data/athena-data-client.js +106 -0
- package/dist/data/athena-data-client.js.map +1 -0
- package/dist/data/athena-member.cjs +93 -0
- package/dist/data/athena-member.cjs.map +1 -0
- package/dist/data/athena-member.d.ts +125 -0
- package/dist/data/athena-member.js +93 -0
- package/dist/data/athena-member.js.map +1 -0
- package/dist/data/athena-request.cjs +458 -0
- package/dist/data/athena-request.cjs.map +1 -0
- package/dist/data/athena-request.d.ts +120 -0
- package/dist/data/athena-request.js +458 -0
- package/dist/data/athena-request.js.map +1 -0
- package/dist/data/use-athena-fetch.cjs +14 -0
- package/dist/data/use-athena-fetch.cjs.map +1 -0
- package/dist/data/use-athena-fetch.d.ts +19 -0
- package/dist/data/use-athena-fetch.js +14 -0
- package/dist/data/use-athena-fetch.js.map +1 -0
- package/dist/data/use-athena-graphql.cjs +66 -0
- package/dist/data/use-athena-graphql.cjs.map +1 -0
- package/dist/data/use-athena-graphql.d.ts +56 -0
- package/dist/data/use-athena-graphql.js +66 -0
- package/dist/data/use-athena-graphql.js.map +1 -0
- package/dist/data/use-athena-rest.cjs +33 -0
- package/dist/data/use-athena-rest.cjs.map +1 -0
- package/dist/data/use-athena-rest.d.ts +21 -0
- package/dist/data/use-athena-rest.js +33 -0
- package/dist/data/use-athena-rest.js.map +1 -0
- package/dist/data/use-semantic-query.cjs +44 -0
- package/dist/data/use-semantic-query.cjs.map +1 -0
- package/dist/data/use-semantic-query.d.ts +92 -0
- package/dist/data/use-semantic-query.js +44 -0
- package/dist/data/use-semantic-query.js.map +1 -0
- package/dist/diagnostics/athena-diagnostics.cjs.map +1 -1
- package/dist/diagnostics/athena-diagnostics.d.ts +5 -1
- package/dist/diagnostics/athena-diagnostics.js.map +1 -1
- package/dist/diagnostics/errors.cjs +7 -0
- package/dist/diagnostics/errors.cjs.map +1 -1
- package/dist/diagnostics/errors.d.ts +7 -0
- package/dist/diagnostics/errors.js +7 -0
- package/dist/diagnostics/errors.js.map +1 -1
- package/dist/index.cjs +155 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +72 -13
- package/dist/index.js +148 -4
- package/dist/index.js.map +1 -1
- package/dist/keryx-http/src/initial-sync.cjs +64 -16
- package/dist/keryx-http/src/initial-sync.cjs.map +1 -1
- package/dist/keryx-http/src/initial-sync.d.ts +31 -1
- package/dist/keryx-http/src/initial-sync.js +64 -16
- package/dist/keryx-http/src/initial-sync.js.map +1 -1
- package/dist/keryx-http/src/own-awareness.cjs +20 -0
- package/dist/keryx-http/src/own-awareness.cjs.map +1 -0
- package/dist/keryx-http/src/own-awareness.d.ts +50 -0
- package/dist/keryx-http/src/own-awareness.js +20 -0
- package/dist/keryx-http/src/own-awareness.js.map +1 -0
- package/dist/keryx-http/src/update-attributions.cjs +26 -1
- package/dist/keryx-http/src/update-attributions.cjs.map +1 -1
- package/dist/keryx-http/src/update-attributions.d.ts +10 -1
- package/dist/keryx-http/src/update-attributions.js +26 -1
- package/dist/keryx-http/src/update-attributions.js.map +1 -1
- package/dist/offline/chat-outbox.cjs +262 -26
- package/dist/offline/chat-outbox.cjs.map +1 -1
- package/dist/offline/chat-outbox.d.ts +90 -12
- package/dist/offline/chat-outbox.js +263 -27
- package/dist/offline/chat-outbox.js.map +1 -1
- package/dist/provider/AthenaProvider.cjs +56 -19
- package/dist/provider/AthenaProvider.cjs.map +1 -1
- package/dist/provider/AthenaProvider.d.ts +24 -8
- package/dist/provider/AthenaProvider.js +57 -20
- package/dist/provider/AthenaProvider.js.map +1 -1
- package/dist/react/package.json.cjs +1 -1
- package/dist/react/package.json.js +1 -1
- package/dist/references/src/anchors/types.cjs +5 -0
- package/dist/references/src/anchors/types.cjs.map +1 -1
- package/dist/references/src/anchors/types.js +5 -0
- package/dist/references/src/anchors/types.js.map +1 -1
- package/dist/references/src/attachable.cjs +149 -0
- package/dist/references/src/attachable.cjs.map +1 -0
- package/dist/references/src/attachable.d.ts +87 -0
- package/dist/references/src/attachable.js +149 -0
- package/dist/references/src/attachable.js.map +1 -0
- package/dist/runtime/StatewirePlanModeLaneSync.cjs +93 -0
- package/dist/runtime/StatewirePlanModeLaneSync.cjs.map +1 -0
- package/dist/runtime/StatewirePlanModeLaneSync.d.ts +34 -0
- package/dist/runtime/StatewirePlanModeLaneSync.js +93 -0
- package/dist/runtime/StatewirePlanModeLaneSync.js.map +1 -0
- package/dist/runtime/StatewireThreadConfigLaneSync.cjs +2 -0
- package/dist/runtime/StatewireThreadConfigLaneSync.cjs.map +1 -1
- package/dist/runtime/StatewireThreadConfigLaneSync.d.ts +4 -0
- package/dist/runtime/StatewireThreadConfigLaneSync.js +2 -0
- package/dist/runtime/StatewireThreadConfigLaneSync.js.map +1 -1
- package/dist/runtime/statewire-plan-mode.cjs +71 -0
- package/dist/runtime/statewire-plan-mode.cjs.map +1 -0
- package/dist/runtime/statewire-plan-mode.d.ts +88 -0
- package/dist/runtime/statewire-plan-mode.js +71 -0
- package/dist/runtime/statewire-plan-mode.js.map +1 -0
- package/dist/runtime/statewire-run-config.cjs +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 +65 -8
- package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
- package/dist/runtime/useAthenaStatewireRuntime.d.ts +26 -10
- package/dist/runtime/useAthenaStatewireRuntime.js +67 -10
- package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
- package/dist/search/useAthenaAssets.cjs +394 -0
- package/dist/search/useAthenaAssets.cjs.map +1 -0
- package/dist/search/useAthenaAssets.d.ts +186 -0
- package/dist/search/useAthenaAssets.js +394 -0
- package/dist/search/useAthenaAssets.js.map +1 -0
- package/dist/sheet-range/index.cjs +4 -0
- package/dist/sheet-range/index.cjs.map +1 -1
- package/dist/sheet-range/index.d.ts +4 -2
- package/dist/sheet-range/index.js +4 -0
- package/dist/sheet-range/index.js.map +1 -1
- package/dist/sheet-range/query-range.cjs +102 -0
- package/dist/sheet-range/query-range.cjs.map +1 -0
- package/dist/sheet-range/query-range.d.ts +46 -0
- package/dist/sheet-range/query-range.js +102 -0
- package/dist/sheet-range/query-range.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/subagents/index.cjs +49 -0
- package/dist/subagents/index.cjs.map +1 -0
- package/dist/subagents/index.d.ts +16 -0
- package/dist/subagents/index.js +49 -0
- package/dist/subagents/index.js.map +1 -0
- package/dist/subagents/lane-follow.cjs +19 -0
- package/dist/subagents/lane-follow.cjs.map +1 -0
- package/dist/subagents/lane-follow.d.ts +9 -0
- package/dist/subagents/lane-follow.js +19 -0
- package/dist/subagents/lane-follow.js.map +1 -0
- package/dist/subagents/lane-model.cjs +178 -0
- package/dist/subagents/lane-model.cjs.map +1 -0
- package/dist/subagents/lane-model.d.ts +140 -0
- package/dist/subagents/lane-model.js +178 -0
- package/dist/subagents/lane-model.js.map +1 -0
- package/dist/subagents/lane-parts.cjs +517 -0
- package/dist/subagents/lane-parts.cjs.map +1 -0
- package/dist/subagents/lane-parts.d.ts +130 -0
- package/dist/subagents/lane-parts.js +517 -0
- package/dist/subagents/lane-parts.js.map +1 -0
- package/dist/subagents/subagent-lane-group.cjs +215 -0
- package/dist/subagents/subagent-lane-group.cjs.map +1 -0
- package/dist/subagents/subagent-lane-group.d.ts +67 -0
- package/dist/subagents/subagent-lane-group.js +215 -0
- package/dist/subagents/subagent-lane-group.js.map +1 -0
- package/dist/subagents/subagent-transcript-drawer.cjs +431 -0
- package/dist/subagents/subagent-transcript-drawer.cjs.map +1 -0
- package/dist/subagents/subagent-transcript-drawer.d.ts +78 -0
- package/dist/subagents/subagent-transcript-drawer.js +431 -0
- package/dist/subagents/subagent-transcript-drawer.js.map +1 -0
- package/dist/subagents/task-subagent-group.cjs +115 -0
- package/dist/subagents/task-subagent-group.cjs.map +1 -0
- package/dist/subagents/task-subagent-group.d.ts +36 -0
- package/dist/subagents/task-subagent-group.js +115 -0
- package/dist/subagents/task-subagent-group.js.map +1 -0
- package/dist/subagents/use-omitted-images-in-view.cjs +68 -0
- package/dist/subagents/use-omitted-images-in-view.cjs.map +1 -0
- package/dist/subagents/use-omitted-images-in-view.d.ts +21 -0
- package/dist/subagents/use-omitted-images-in-view.js +68 -0
- package/dist/subagents/use-omitted-images-in-view.js.map +1 -0
- package/dist/threads/Inbox.cjs +2 -2
- package/dist/threads/Inbox.cjs.map +1 -1
- package/dist/threads/SessionList.cjs +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/use-athena-sessions.cjs +1 -0
- package/dist/threads/use-athena-sessions.cjs.map +1 -1
- package/dist/threads/use-athena-sessions.d.ts +7 -0
- package/dist/threads/use-athena-sessions.js +1 -0
- package/dist/threads/use-athena-sessions.js.map +1 -1
- package/dist/threads/use-athena-thread-agent.cjs +31 -0
- package/dist/threads/use-athena-thread-agent.cjs.map +1 -0
- package/dist/threads/use-athena-thread-agent.d.ts +38 -0
- package/dist/threads/use-athena-thread-agent.js +31 -0
- package/dist/threads/use-athena-thread-agent.js.map +1 -0
- package/dist/threads/use-athena-thread-plan-mode.cjs +18 -0
- package/dist/threads/use-athena-thread-plan-mode.cjs.map +1 -0
- package/dist/threads/use-athena-thread-plan-mode.d.ts +18 -0
- package/dist/threads/use-athena-thread-plan-mode.js +18 -0
- package/dist/threads/use-athena-thread-plan-mode.js.map +1 -0
- package/dist/threads/use-rest-conversation-history.d.ts +1 -0
- package/dist/tools/agent-creations.cjs +97 -0
- package/dist/tools/agent-creations.cjs.map +1 -0
- package/dist/tools/agent-creations.d.ts +38 -0
- package/dist/tools/agent-creations.js +97 -0
- package/dist/tools/agent-creations.js.map +1 -0
- package/dist/tools/agent-highlights.cjs +100 -0
- package/dist/tools/agent-highlights.cjs.map +1 -0
- package/dist/tools/agent-highlights.d.ts +57 -0
- package/dist/tools/agent-highlights.js +100 -0
- package/dist/tools/agent-highlights.js.map +1 -0
- package/dist/tools/append-document-tool-ui.cjs +1 -0
- package/dist/tools/append-document-tool-ui.cjs.map +1 -1
- package/dist/tools/append-document-tool-ui.d.ts +7 -0
- package/dist/tools/append-document-tool-ui.js +2 -1
- package/dist/tools/append-document-tool-ui.js.map +1 -1
- package/dist/tools/auto-open-tools.cjs +144 -71
- package/dist/tools/auto-open-tools.cjs.map +1 -1
- package/dist/tools/auto-open-tools.d.ts +131 -1
- package/dist/tools/auto-open-tools.js +145 -72
- package/dist/tools/auto-open-tools.js.map +1 -1
- package/dist/tools/browser-tool-uis.cjs +594 -0
- package/dist/tools/browser-tool-uis.cjs.map +1 -0
- package/dist/tools/browser-tool-uis.d.ts +8 -0
- package/dist/tools/browser-tool-uis.js +594 -0
- package/dist/tools/browser-tool-uis.js.map +1 -0
- package/dist/tools/computer-asset-tool-uis.cjs +313 -0
- package/dist/tools/computer-asset-tool-uis.cjs.map +1 -0
- package/dist/tools/computer-asset-tool-uis.d.ts +5 -0
- package/dist/tools/computer-asset-tool-uis.js +313 -0
- package/dist/tools/computer-asset-tool-uis.js.map +1 -0
- package/dist/tools/document-edit-tool-uis.cjs +218 -0
- package/dist/tools/document-edit-tool-uis.cjs.map +1 -0
- package/dist/tools/document-edit-tool-uis.d.ts +40 -0
- package/dist/tools/document-edit-tool-uis.js +218 -0
- package/dist/tools/document-edit-tool-uis.js.map +1 -0
- package/dist/tools/drive-tool-uis.cjs +425 -0
- package/dist/tools/drive-tool-uis.cjs.map +1 -0
- package/dist/tools/drive-tool-uis.d.ts +120 -0
- package/dist/tools/drive-tool-uis.js +425 -0
- package/dist/tools/drive-tool-uis.js.map +1 -0
- package/dist/tools/email-calendar-tool-uis.cjs +789 -0
- package/dist/tools/email-calendar-tool-uis.cjs.map +1 -0
- package/dist/tools/email-calendar-tool-uis.d.ts +129 -0
- package/dist/tools/email-calendar-tool-uis.js +789 -0
- package/dist/tools/email-calendar-tool-uis.js.map +1 -0
- package/dist/tools/ontology-tool-uis.cjs +83 -0
- package/dist/tools/ontology-tool-uis.cjs.map +1 -0
- package/dist/tools/ontology-tool-uis.d.ts +9 -0
- package/dist/tools/ontology-tool-uis.js +83 -0
- package/dist/tools/ontology-tool-uis.js.map +1 -0
- package/dist/tools/orchestration-tool-uis.cjs +586 -0
- package/dist/tools/orchestration-tool-uis.cjs.map +1 -0
- package/dist/tools/orchestration-tool-uis.d.ts +141 -0
- package/dist/tools/orchestration-tool-uis.js +586 -0
- package/dist/tools/orchestration-tool-uis.js.map +1 -0
- package/dist/tools/presentation-edit-tool-uis.cjs +516 -0
- package/dist/tools/presentation-edit-tool-uis.cjs.map +1 -0
- package/dist/tools/presentation-edit-tool-uis.d.ts +73 -0
- package/dist/tools/presentation-edit-tool-uis.js +516 -0
- package/dist/tools/presentation-edit-tool-uis.js.map +1 -0
- package/dist/tools/project-tool-uis.cjs +213 -0
- package/dist/tools/project-tool-uis.cjs.map +1 -0
- package/dist/tools/project-tool-uis.d.ts +14 -0
- package/dist/tools/project-tool-uis.js +213 -0
- package/dist/tools/project-tool-uis.js.map +1 -0
- package/dist/tools/sandbox-tool-uis.cjs +491 -0
- package/dist/tools/sandbox-tool-uis.cjs.map +1 -0
- package/dist/tools/sandbox-tool-uis.d.ts +116 -0
- package/dist/tools/sandbox-tool-uis.js +491 -0
- package/dist/tools/sandbox-tool-uis.js.map +1 -0
- package/dist/tools/sheet-query-tool-ui.cjs +138 -0
- package/dist/tools/sheet-query-tool-ui.cjs.map +1 -0
- package/dist/tools/sheet-query-tool-ui.d.ts +15 -0
- package/dist/tools/sheet-query-tool-ui.js +138 -0
- package/dist/tools/sheet-query-tool-ui.js.map +1 -0
- package/dist/tools/studio-screenshot-tool-uis.cjs +262 -0
- package/dist/tools/studio-screenshot-tool-uis.cjs.map +1 -0
- package/dist/tools/studio-screenshot-tool-uis.d.ts +52 -0
- package/dist/tools/studio-screenshot-tool-uis.js +262 -0
- package/dist/tools/studio-screenshot-tool-uis.js.map +1 -0
- package/dist/tools/subagent-task-tool-ui.cjs +24 -475
- package/dist/tools/subagent-task-tool-ui.cjs.map +1 -1
- package/dist/tools/subagent-task-tool-ui.d.ts +19 -103
- package/dist/tools/subagent-task-tool-ui.js +28 -479
- package/dist/tools/subagent-task-tool-ui.js.map +1 -1
- package/dist/tools/tool-summary.cjs +36 -0
- package/dist/tools/tool-summary.cjs.map +1 -1
- package/dist/tools/tool-summary.js +36 -0
- package/dist/tools/tool-summary.js.map +1 -1
- package/dist/tools/tool-uis.cjs +181 -53
- package/dist/tools/tool-uis.cjs.map +1 -1
- package/dist/tools/tool-uis.d.ts +40 -0
- package/dist/tools/tool-uis.js +183 -55
- package/dist/tools/tool-uis.js.map +1 -1
- package/dist/typed-interrupts/index.cjs +15 -0
- package/dist/typed-interrupts/index.cjs.map +1 -0
- package/dist/typed-interrupts/index.d.ts +20 -0
- package/dist/typed-interrupts/index.js +15 -0
- package/dist/typed-interrupts/index.js.map +1 -0
- package/dist/workbench/session-workbench-panes.cjs +6 -6
- package/dist/workbench/session-workbench-panes.cjs.map +1 -1
- package/package.json +28 -6
- package/dist/agent-runtime/src/chat-outbox-store.cjs +0 -510
- package/dist/agent-runtime/src/chat-outbox-store.cjs.map +0 -1
- package/dist/agent-runtime/src/chat-outbox-store.d.ts +0 -210
- package/dist/agent-runtime/src/chat-outbox-store.js +0 -510
- package/dist/agent-runtime/src/chat-outbox-store.js.map +0 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { useQuery, useMutation } from "@tanstack/react-query";
|
|
2
|
+
import { useState, useRef, useCallback, useEffect } from "react";
|
|
3
|
+
import { useAthenaQueryClient } from "../../lib/use-athena-rest-query.js";
|
|
4
|
+
import { readInterruptDraft, saveInterruptDraft } from "./typed-interrupt-graphql.js";
|
|
5
|
+
const DRAFT_SAVE_DEBOUNCE_MS = 2e3;
|
|
6
|
+
function draftQueryKey(conversation, interruptId) {
|
|
7
|
+
return [
|
|
8
|
+
"athena-sdk",
|
|
9
|
+
"interrupt-draft",
|
|
10
|
+
(conversation == null ? void 0 : conversation.auth.backendUrl) ?? "",
|
|
11
|
+
(conversation == null ? void 0 : conversation.principal) ?? "",
|
|
12
|
+
(conversation == null ? void 0 : conversation.threadId) ?? "",
|
|
13
|
+
interruptId
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
function useInterruptDraft({
|
|
17
|
+
conversation,
|
|
18
|
+
interruptId
|
|
19
|
+
}) {
|
|
20
|
+
const queryClient = useAthenaQueryClient();
|
|
21
|
+
const { data, isFetching } = useQuery(
|
|
22
|
+
{
|
|
23
|
+
queryKey: draftQueryKey(conversation, interruptId),
|
|
24
|
+
queryFn: ({ signal }) => conversation ? readInterruptDraft(conversation, interruptId, signal) : null,
|
|
25
|
+
enabled: conversation !== null,
|
|
26
|
+
staleTime: 0,
|
|
27
|
+
refetchOnMount: "always",
|
|
28
|
+
retry: false,
|
|
29
|
+
refetchOnWindowFocus: false
|
|
30
|
+
},
|
|
31
|
+
queryClient
|
|
32
|
+
);
|
|
33
|
+
return { draft: conversation ? data : null, isLoading: conversation !== null && isFetching };
|
|
34
|
+
}
|
|
35
|
+
function useInterruptDraftSave({
|
|
36
|
+
conversation,
|
|
37
|
+
interruptId,
|
|
38
|
+
payload,
|
|
39
|
+
enabled
|
|
40
|
+
}) {
|
|
41
|
+
const queryClient = useAthenaQueryClient();
|
|
42
|
+
const [status, setStatus] = useState("idle");
|
|
43
|
+
const { mutate } = useMutation(
|
|
44
|
+
{
|
|
45
|
+
mutationKey: ["athena-sdk", "interrupt-draft-save"],
|
|
46
|
+
mutationFn: (variables) => saveInterruptDraft(variables.conversation, variables.interruptId, variables.answers),
|
|
47
|
+
retry: false
|
|
48
|
+
},
|
|
49
|
+
queryClient
|
|
50
|
+
);
|
|
51
|
+
const latest = useRef({ conversation, interruptId, payload });
|
|
52
|
+
latest.current = { conversation, interruptId, payload };
|
|
53
|
+
const timerRef = useRef(null);
|
|
54
|
+
const save = useCallback(() => {
|
|
55
|
+
timerRef.current = null;
|
|
56
|
+
const { conversation: target, interruptId: key, payload: answers } = latest.current;
|
|
57
|
+
if (!target) return;
|
|
58
|
+
mutate(
|
|
59
|
+
{ conversation: target, interruptId: key, answers },
|
|
60
|
+
{
|
|
61
|
+
onSuccess: () => {
|
|
62
|
+
setStatus("saved");
|
|
63
|
+
queryClient.setQueryData(draftQueryKey(target, key), answers);
|
|
64
|
+
},
|
|
65
|
+
onError: () => setStatus("error")
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}, [mutate, queryClient]);
|
|
69
|
+
const flush = useCallback(() => {
|
|
70
|
+
if (timerRef.current === null) return;
|
|
71
|
+
clearTimeout(timerRef.current);
|
|
72
|
+
save();
|
|
73
|
+
}, [save]);
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
setStatus("idle");
|
|
76
|
+
return () => {
|
|
77
|
+
if (timerRef.current !== null) clearTimeout(timerRef.current);
|
|
78
|
+
timerRef.current = null;
|
|
79
|
+
};
|
|
80
|
+
}, [interruptId]);
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
if (!enabled || !conversation) return;
|
|
83
|
+
setStatus("saving");
|
|
84
|
+
if (timerRef.current !== null) clearTimeout(timerRef.current);
|
|
85
|
+
timerRef.current = setTimeout(save, DRAFT_SAVE_DEBOUNCE_MS);
|
|
86
|
+
}, [enabled, conversation, payload, save]);
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
if (!enabled) return void 0;
|
|
89
|
+
const onBlur = () => flush();
|
|
90
|
+
const onVisibility = () => {
|
|
91
|
+
if (document.visibilityState === "hidden") flush();
|
|
92
|
+
};
|
|
93
|
+
window.addEventListener("blur", onBlur);
|
|
94
|
+
document.addEventListener("visibilitychange", onVisibility);
|
|
95
|
+
return () => {
|
|
96
|
+
window.removeEventListener("blur", onBlur);
|
|
97
|
+
document.removeEventListener("visibilitychange", onVisibility);
|
|
98
|
+
};
|
|
99
|
+
}, [enabled, flush]);
|
|
100
|
+
return { flush, status };
|
|
101
|
+
}
|
|
102
|
+
export {
|
|
103
|
+
useInterruptDraft,
|
|
104
|
+
useInterruptDraftSave
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=use-interrupt-draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-interrupt-draft.js","sources":["../../../src/chat/typed-interrupts/use-interrupt-draft.ts"],"sourcesContent":["/**\n * A questionnaire's draft, kept on agora as Olympus keeps it: read once when\n * the card mounts, so answers typed on another surface (or before a reload)\n * come back, and saved two seconds after each change, at once when the window\n * loses focus or hides. agora's timer worker reads a draft's presence as \"the\n * person is answering\" and holds the timeout while it exists; its content is\n * never a resume value. Saves are best-effort: a failed one only shows on the\n * card's indicator.\n */\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useAthenaQueryClient } from '../../lib/use-athena-rest-query';\nimport {\n readInterruptDraft,\n saveInterruptDraft,\n type TypedInterruptConversation,\n} from './typed-interrupt-graphql';\n\nconst DRAFT_SAVE_DEBOUNCE_MS = 2000;\n\nexport type DraftSaveStatus = 'idle' | 'saving' | 'saved' | 'error';\n\nfunction draftQueryKey(conversation: TypedInterruptConversation | null, interruptId: string) {\n return [\n 'athena-sdk',\n 'interrupt-draft',\n conversation?.auth.backendUrl ?? '',\n conversation?.principal ?? '',\n conversation?.threadId ?? '',\n interruptId,\n ] as const;\n}\n\n/**\n * The draft agora holds for `interruptId` (`null` without one), read again\n * each time a card mounts: another app may have saved answers since. Loading\n * while that read is in flight, so a card restores the latest draft, not a\n * cached one; a read the network holds (offline) does not keep it waiting.\n */\nexport function useInterruptDraft({\n conversation,\n interruptId,\n}: {\n conversation: TypedInterruptConversation | null;\n interruptId: string;\n}): { draft: unknown; isLoading: boolean } {\n const queryClient = useAthenaQueryClient();\n const { data, isFetching } = useQuery(\n {\n queryKey: draftQueryKey(conversation, interruptId),\n queryFn: ({ signal }) =>\n conversation ? readInterruptDraft(conversation, interruptId, signal) : null,\n enabled: conversation !== null,\n staleTime: 0,\n refetchOnMount: 'always',\n retry: false,\n refetchOnWindowFocus: false,\n },\n queryClient,\n );\n return { draft: conversation ? data : null, isLoading: conversation !== null && isFetching };\n}\n\n/**\n * Saves `payload` under `interruptId` two seconds after it last changed while\n * `enabled`; `flush` saves a pending change at once. A pending save never\n * lands under the next park's key, and none outlives the card.\n */\nexport function useInterruptDraftSave({\n conversation,\n interruptId,\n payload,\n enabled,\n}: {\n conversation: TypedInterruptConversation | null;\n interruptId: string;\n payload: unknown;\n enabled: boolean;\n}): { flush: () => void; status: DraftSaveStatus } {\n const queryClient = useAthenaQueryClient();\n const [status, setStatus] = useState<DraftSaveStatus>('idle');\n const { mutate } = useMutation(\n {\n mutationKey: ['athena-sdk', 'interrupt-draft-save'],\n mutationFn: (variables: { conversation: TypedInterruptConversation; interruptId: string; answers: unknown }) =>\n saveInterruptDraft(variables.conversation, variables.interruptId, variables.answers),\n retry: false,\n },\n queryClient,\n );\n const latest = useRef({ conversation, interruptId, payload });\n latest.current = { conversation, interruptId, payload };\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const save = useCallback(() => {\n timerRef.current = null;\n const { conversation: target, interruptId: key, payload: answers } = latest.current;\n if (!target) return;\n mutate(\n { conversation: target, interruptId: key, answers },\n {\n onSuccess: () => {\n setStatus('saved');\n // A card mounted again for this park restores what was saved last.\n queryClient.setQueryData(draftQueryKey(target, key), answers);\n },\n onError: () => setStatus('error'),\n },\n );\n }, [mutate, queryClient]);\n\n const flush = useCallback(() => {\n if (timerRef.current === null) return;\n clearTimeout(timerRef.current);\n save();\n }, [save]);\n\n // Another park: what was pending belonged to the last one.\n useEffect(() => {\n setStatus('idle');\n return () => {\n if (timerRef.current !== null) clearTimeout(timerRef.current);\n timerRef.current = null;\n };\n }, [interruptId]);\n\n useEffect(() => {\n if (!enabled || !conversation) return;\n setStatus('saving');\n if (timerRef.current !== null) clearTimeout(timerRef.current);\n timerRef.current = setTimeout(save, DRAFT_SAVE_DEBOUNCE_MS);\n }, [enabled, conversation, payload, save]);\n\n useEffect(() => {\n if (!enabled) return undefined;\n const onBlur = () => flush();\n const onVisibility = () => {\n if (document.visibilityState === 'hidden') flush();\n };\n window.addEventListener('blur', onBlur);\n document.addEventListener('visibilitychange', onVisibility);\n return () => {\n window.removeEventListener('blur', onBlur);\n document.removeEventListener('visibilitychange', onVisibility);\n };\n }, [enabled, flush]);\n\n return { flush, status };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const react = require("@assistant-ui/react");
|
|
4
|
+
const typedInterrupts = require("../../agent-runtime/src/typed-interrupts.cjs");
|
|
5
|
+
const typedInterruptKinds = require("../../agent-runtime/src/typed-interrupt-kinds.cjs");
|
|
6
|
+
const reactQuery = require("@tanstack/react-query");
|
|
7
|
+
const require$$0 = require("react");
|
|
8
|
+
const useAthenaRestQuery = require("../../lib/use-athena-rest-query.cjs");
|
|
9
|
+
const useStatewireApprovalRequest = require("../use-statewire-approval-request.cjs");
|
|
10
|
+
const typedInterruptGraphql = require("./typed-interrupt-graphql.cjs");
|
|
11
|
+
const interrupts = require("../../agent-runtime/src/interrupts.cjs");
|
|
12
|
+
const errors = require("../../agent-runtime/src/errors.cjs");
|
|
13
|
+
const TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE = "Your answer could not be sent. Please try again.";
|
|
14
|
+
const TIMEOUT_STATUS_DELAY_MS = 500;
|
|
15
|
+
const CANCEL_TIMEOUT_RETRIES = 2;
|
|
16
|
+
const CANCEL_TIMEOUT_INITIAL_DELAY_MS = 500;
|
|
17
|
+
function refusalMessage(error) {
|
|
18
|
+
if (errors.isConversationArchivedRejection(error)) return errors.CONVERSATION_ARCHIVED_MESSAGE;
|
|
19
|
+
return errors.statewireRejectionDetailMessage(error) ?? TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE;
|
|
20
|
+
}
|
|
21
|
+
function useStatewireTypedInterrupt(options = {}) {
|
|
22
|
+
const { confirmDecision, onResumeRejected, pendingResumeGraceMs } = options;
|
|
23
|
+
const isConversationStreaming = react.useAuiState((state) => state.thread.isRunning);
|
|
24
|
+
const conversation = typedInterruptGraphql.useTypedInterruptConversation();
|
|
25
|
+
const queryClient = useAthenaRestQuery.useAthenaQueryClient();
|
|
26
|
+
const [held, setHeld] = require$$0.useState(null);
|
|
27
|
+
const lastHeldRef = require$$0.useRef(null);
|
|
28
|
+
const [failure, setFailure] = require$$0.useState(null);
|
|
29
|
+
const onResumeRejectedRef = require$$0.useRef(onResumeRejected);
|
|
30
|
+
onResumeRejectedRef.current = onResumeRejected;
|
|
31
|
+
const confirmDecisionRef = require$$0.useRef(confirmDecision);
|
|
32
|
+
confirmDecisionRef.current = confirmDecision;
|
|
33
|
+
const {
|
|
34
|
+
request,
|
|
35
|
+
requestId: liveRequestId,
|
|
36
|
+
pending,
|
|
37
|
+
resume: sendResume
|
|
38
|
+
} = useStatewireApprovalRequest.useStatewireApprovalRequest({
|
|
39
|
+
interruptPredicate: typedInterrupts.isTypedInterruptRequest,
|
|
40
|
+
pendingResumeGraceMs: pendingResumeGraceMs ?? interrupts.HITL_PENDING_RESUME_GRACE_MS,
|
|
41
|
+
// The host refused the answer (or the transport lost it): the fold has
|
|
42
|
+
// rolled back and the request is on screen again; say why on the card.
|
|
43
|
+
onResumeRejected: (error, refusedRequestId) => {
|
|
44
|
+
var _a;
|
|
45
|
+
setHeld(null);
|
|
46
|
+
if (errors.statewireTransportOutcome(error) === "unmount") return;
|
|
47
|
+
setFailure({ requestId: refusedRequestId, message: refusalMessage(error) });
|
|
48
|
+
(_a = onResumeRejectedRef.current) == null ? void 0 : _a.call(onResumeRejectedRef, error, refusedRequestId);
|
|
49
|
+
},
|
|
50
|
+
// The socket dropped with the answer in flight and the lock re-sends it:
|
|
51
|
+
// a fresh hold keeps the card through the re-send.
|
|
52
|
+
onResumeRetry: (_error, retriedRequestId) => {
|
|
53
|
+
const last = lastHeldRef.current;
|
|
54
|
+
if (last && last.requestId === retriedRequestId) setHeld({ ...last });
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
const liveInterrupt = require$$0.useMemo(
|
|
58
|
+
() => request ? typedInterrupts.parseTypedInterruptPayload(request.payload) : null,
|
|
59
|
+
[request]
|
|
60
|
+
);
|
|
61
|
+
require$$0.useEffect(() => {
|
|
62
|
+
if (held && liveRequestId !== void 0) setHeld(null);
|
|
63
|
+
}, [held, liveRequestId]);
|
|
64
|
+
const graceMs = pendingResumeGraceMs ?? interrupts.HITL_PENDING_RESUME_GRACE_MS;
|
|
65
|
+
require$$0.useEffect(() => {
|
|
66
|
+
if (!held) return void 0;
|
|
67
|
+
const timer = setTimeout(() => setHeld(null), graceMs);
|
|
68
|
+
return () => clearTimeout(timer);
|
|
69
|
+
}, [held, graceMs]);
|
|
70
|
+
const holding = held !== null && liveInterrupt === null;
|
|
71
|
+
const interrupt = holding ? held.interrupt : liveInterrupt;
|
|
72
|
+
const requestId = holding ? held.requestId : liveRequestId;
|
|
73
|
+
const [confirming, setConfirming] = require$$0.useState(false);
|
|
74
|
+
const currentRequestIdRef = require$$0.useRef(liveRequestId);
|
|
75
|
+
currentRequestIdRef.current = liveRequestId;
|
|
76
|
+
const isLoading = pending || holding || confirming;
|
|
77
|
+
const instanceKey = interrupt ? requestId ?? null : null;
|
|
78
|
+
const [timeoutRemaining, setTimeoutRemaining] = require$$0.useState(null);
|
|
79
|
+
const [isTimedOut, setIsTimedOut] = require$$0.useState(false);
|
|
80
|
+
const [cancelledInstance, setCancelledInstance] = require$$0.useState(null);
|
|
81
|
+
const isTimeoutCancelled = instanceKey !== null && cancelledInstance === instanceKey;
|
|
82
|
+
const timed = interrupt !== null && typedInterruptKinds.hasInterruptTimeout(interrupt);
|
|
83
|
+
const timeoutSeconds = (interrupt == null ? void 0 : interrupt.timeout_seconds) ?? null;
|
|
84
|
+
const timeoutAt = (interrupt == null ? void 0 : interrupt.timeout_at) ?? null;
|
|
85
|
+
require$$0.useEffect(() => {
|
|
86
|
+
if (!interrupt || !timed || isTimeoutCancelled) {
|
|
87
|
+
setTimeoutRemaining(null);
|
|
88
|
+
setIsTimedOut(false);
|
|
89
|
+
return void 0;
|
|
90
|
+
}
|
|
91
|
+
const tick = () => {
|
|
92
|
+
const remaining = typedInterruptKinds.interruptTimeoutRemaining(interrupt);
|
|
93
|
+
setTimeoutRemaining(remaining);
|
|
94
|
+
setIsTimedOut(remaining !== null && remaining <= 0);
|
|
95
|
+
};
|
|
96
|
+
tick();
|
|
97
|
+
const interval = setInterval(tick, 1e3);
|
|
98
|
+
return () => clearInterval(interval);
|
|
99
|
+
}, [interrupt, timed, isTimeoutCancelled]);
|
|
100
|
+
const [statusReady, setStatusReady] = require$$0.useState(false);
|
|
101
|
+
require$$0.useEffect(() => {
|
|
102
|
+
setStatusReady(false);
|
|
103
|
+
if (!timed || !timeoutAt) return void 0;
|
|
104
|
+
const timer = setTimeout(() => setStatusReady(true), TIMEOUT_STATUS_DELAY_MS);
|
|
105
|
+
return () => clearTimeout(timer);
|
|
106
|
+
}, [timed, timeoutAt]);
|
|
107
|
+
const source = (interrupt == null ? void 0 : interrupt.source) ?? null;
|
|
108
|
+
const statusEnabled = timed && statusReady && !isTimeoutCancelled && conversation !== null && source !== null;
|
|
109
|
+
const { data: cancelledBefore } = reactQuery.useQuery(
|
|
110
|
+
{
|
|
111
|
+
queryKey: [
|
|
112
|
+
"athena-sdk",
|
|
113
|
+
"interrupt-timeout-status",
|
|
114
|
+
(conversation == null ? void 0 : conversation.auth.backendUrl) ?? "",
|
|
115
|
+
(conversation == null ? void 0 : conversation.principal) ?? "",
|
|
116
|
+
(conversation == null ? void 0 : conversation.threadId) ?? "",
|
|
117
|
+
source ?? "",
|
|
118
|
+
timeoutAt ?? ""
|
|
119
|
+
],
|
|
120
|
+
queryFn: ({ signal }) => {
|
|
121
|
+
if (!conversation || !source) return false;
|
|
122
|
+
return typedInterruptGraphql.readInterruptTimeoutCancelled(conversation, source, signal);
|
|
123
|
+
},
|
|
124
|
+
enabled: statusEnabled,
|
|
125
|
+
staleTime: Number.POSITIVE_INFINITY,
|
|
126
|
+
retry: false,
|
|
127
|
+
refetchOnWindowFocus: false
|
|
128
|
+
},
|
|
129
|
+
queryClient
|
|
130
|
+
);
|
|
131
|
+
require$$0.useEffect(() => {
|
|
132
|
+
if (cancelledBefore === true && instanceKey !== null) setCancelledInstance(instanceKey);
|
|
133
|
+
}, [cancelledBefore, instanceKey]);
|
|
134
|
+
const { mutate: sendCancelTimeout } = reactQuery.useMutation(
|
|
135
|
+
{
|
|
136
|
+
mutationKey: ["athena-sdk", "interrupt-timeout-cancel"],
|
|
137
|
+
mutationFn: ({ interruptId }) => {
|
|
138
|
+
if (!conversation) return Promise.reject(new Error("no conversation to stop the timer of"));
|
|
139
|
+
return typedInterruptGraphql.cancelInterruptTimeout(conversation, interruptId);
|
|
140
|
+
},
|
|
141
|
+
// The backend's timer answers at the deadline unless this lands: a
|
|
142
|
+
// blip must not let it fire while the person is answering.
|
|
143
|
+
retry: CANCEL_TIMEOUT_RETRIES,
|
|
144
|
+
retryDelay: (attempt) => {
|
|
145
|
+
const base = CANCEL_TIMEOUT_INITIAL_DELAY_MS * 2 ** attempt;
|
|
146
|
+
return base + Math.random() * base * 0.3;
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
queryClient
|
|
150
|
+
);
|
|
151
|
+
const canCancelTimeout = timed && conversation !== null;
|
|
152
|
+
const cancelRequestedRef = require$$0.useRef(null);
|
|
153
|
+
const cancelTimeout = require$$0.useCallback(() => {
|
|
154
|
+
if (!interrupt || !canCancelTimeout || isTimeoutCancelled || instanceKey === null) return;
|
|
155
|
+
if (cancelRequestedRef.current === instanceKey) return;
|
|
156
|
+
const instance = instanceKey;
|
|
157
|
+
cancelRequestedRef.current = instance;
|
|
158
|
+
setCancelledInstance(instance);
|
|
159
|
+
sendCancelTimeout(
|
|
160
|
+
{ interruptId: interrupt.source },
|
|
161
|
+
{
|
|
162
|
+
// agora did not stop it after the retries: the countdown is true
|
|
163
|
+
// again, and Stop timer may ask once more.
|
|
164
|
+
onError: () => {
|
|
165
|
+
if (cancelRequestedRef.current === instance) cancelRequestedRef.current = null;
|
|
166
|
+
setCancelledInstance((current) => current === instance ? null : current);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
);
|
|
170
|
+
}, [interrupt, canCancelTimeout, isTimeoutCancelled, instanceKey, sendCancelTimeout]);
|
|
171
|
+
const sendAnswer = require$$0.useCallback(
|
|
172
|
+
(kind, value) => {
|
|
173
|
+
if (!interrupt || requestId === void 0) return;
|
|
174
|
+
setFailure(null);
|
|
175
|
+
const answer = typedInterruptKinds.stampTypedInterruptAnswer({ payload: interrupt, value });
|
|
176
|
+
const park = { interrupt, requestId };
|
|
177
|
+
const deliver = (decisionCheck) => {
|
|
178
|
+
const dispatched = sendResume(answer, decisionCheck ? { decisionCheck } : void 0);
|
|
179
|
+
if (!dispatched) return;
|
|
180
|
+
lastHeldRef.current = park;
|
|
181
|
+
setHeld(park);
|
|
182
|
+
dispatched.then(
|
|
183
|
+
() => setHeld(null),
|
|
184
|
+
() => setHeld(null)
|
|
185
|
+
);
|
|
186
|
+
};
|
|
187
|
+
const confirm = confirmDecisionRef.current;
|
|
188
|
+
if (confirm === void 0 || kind !== "resume" || !typedInterruptKinds.isTypedApprovalInterrupt(interrupt) || !typedInterruptKinds.typedAnswerLetsSomethingRun(answer)) {
|
|
189
|
+
deliver();
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
setConfirming(true);
|
|
193
|
+
confirm({ kind: "input", requestId, value: answer }).catch(() => void 0).then((token) => {
|
|
194
|
+
setConfirming(false);
|
|
195
|
+
if (currentRequestIdRef.current !== requestId) return;
|
|
196
|
+
deliver(token);
|
|
197
|
+
});
|
|
198
|
+
},
|
|
199
|
+
[interrupt, requestId, sendResume]
|
|
200
|
+
);
|
|
201
|
+
const resume = require$$0.useCallback((value) => sendAnswer("resume", value), [sendAnswer]);
|
|
202
|
+
const cancel = require$$0.useCallback(() => sendAnswer("cancel", typedInterruptKinds.typedInterruptCancel()), [sendAnswer]);
|
|
203
|
+
const message = interrupt == null ? void 0 : interrupt.message;
|
|
204
|
+
const displayMessage = require$$0.useMemo(() => {
|
|
205
|
+
if (!message) return "";
|
|
206
|
+
return isTimeoutCancelled ? typedInterruptKinds.stripInterruptTimeoutText(message) : message;
|
|
207
|
+
}, [message, isTimeoutCancelled]);
|
|
208
|
+
return {
|
|
209
|
+
interrupt,
|
|
210
|
+
request,
|
|
211
|
+
requestId,
|
|
212
|
+
resume,
|
|
213
|
+
cancel,
|
|
214
|
+
failure: failure !== null && failure.requestId === requestId ? failure.message : null,
|
|
215
|
+
isLoading,
|
|
216
|
+
isConversationStreaming,
|
|
217
|
+
isHiddenByRunning: isConversationStreaming && !isLoading,
|
|
218
|
+
hasTimeout: timed,
|
|
219
|
+
timeoutSeconds,
|
|
220
|
+
timeoutRemaining,
|
|
221
|
+
isTimedOut,
|
|
222
|
+
isTimeoutCancelled,
|
|
223
|
+
canCancelTimeout,
|
|
224
|
+
cancelTimeout,
|
|
225
|
+
displayMessage,
|
|
226
|
+
currentThreadId: (conversation == null ? void 0 : conversation.threadId) ?? null
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
exports.TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE = TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE;
|
|
230
|
+
exports.useStatewireTypedInterrupt = useStatewireTypedInterrupt;
|
|
231
|
+
//# sourceMappingURL=use-statewire-typed-interrupt.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-statewire-typed-interrupt.cjs","sources":["../../../src/chat/typed-interrupts/use-statewire-typed-interrupt.ts"],"sourcesContent":["/**\n * The typed-interrupt engine: everything a typed card renders from, and the\n * two ways it answers. The port of Olympus's `useLangGraphInterrupt` onto the\n * SDK, on the same request machine the approval card runs\n * (`useStatewireApprovalRequest`: selection, the optimistic resume lock and\n * its recovery), with ONE predicate, `isTypedInterruptRequest`, so the request\n * a card renders for is the request its answer is sent under.\n *\n * On top of the lock it adds what the cards need:\n *\n * - the parsed payload, held while the host decides an answer, so the card\n * keeps what the person typed (react-statewire folds `run/input` away the\n * instant it is applied, before any verdict, and a refusal brings the same\n * request back);\n * - the stamps the raiser's stale-resume check reads (`__interrupt_id__`,\n * `__interrupt_instance_id__`) on every answer;\n * - the passkey decision check (identity 0b.9) on an answer that approves a\n * typed approval (`isTypedApprovalInterrupt`), through the host's\n * `confirmDecision`, as the approval card runs it; a question's answer, a\n * reject and a cancel never ask;\n * - the host's reason when it refuses an answer (agora holds an approving\n * answer to a signed-in person: `person_decision_required` names where to\n * answer instead), for the card to show;\n * - the timed-interrupt countdown (display only: the backend's timer answers),\n * whether the person already stopped it, and stopping it.\n *\n * Requires a statewire aui scope (the SDK's statewire hooks throw outside\n * one): `StatewireTypedInterruptCard` mounts it under `StatewireApprovalCard`'s\n * extras gate.\n */\n\nimport { useAuiState } from '@assistant-ui/react';\nimport type { StatewireThread } from '@assistant-ui/react-statewire';\nimport {\n CONVERSATION_ARCHIVED_MESSAGE,\n HITL_PENDING_RESUME_GRACE_MS,\n isConversationArchivedRejection,\n statewireRejectionDetailMessage,\n statewireTransportOutcome,\n} from '@athenaintel/agent-runtime';\nimport {\n isTypedInterruptRequest,\n parseTypedInterruptPayload,\n type TypedInterruptPayload,\n} from '@athenaintel/agent-runtime/typed-interrupts';\nimport {\n hasInterruptTimeout,\n interruptTimeoutRemaining,\n isTypedApprovalInterrupt,\n stampTypedInterruptAnswer,\n stripInterruptTimeoutText,\n typedAnswerLetsSomethingRun,\n typedInterruptCancel,\n} from '@athenaintel/agent-runtime/typed-interrupt-kinds';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport type { ReadonlyJSONObject } from 'assistant-stream/utils';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useAthenaQueryClient } from '../../lib/use-athena-rest-query';\nimport type { StatewireDecisionConfirmer } from '../StatewireApprovalCard';\nimport { useStatewireApprovalRequest } from '../use-statewire-approval-request';\nimport {\n cancelInterruptTimeout,\n readInterruptTimeoutCancelled,\n useTypedInterruptConversation,\n} from './typed-interrupt-graphql';\nimport type { TypedInterruptAnswer, TypedInterruptEngineSlice } from './typed-interrupt-types';\n\n/** What a card says when the host refused an answer without saying why. */\nexport const TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE = 'Your answer could not be sent. Please try again.';\n\n/** The backend registers a park's timer just before it parks: ask about it a moment later. */\nconst TIMEOUT_STATUS_DELAY_MS = 500;\nconst CANCEL_TIMEOUT_RETRIES = 2;\nconst CANCEL_TIMEOUT_INITIAL_DELAY_MS = 500;\n\nexport interface UseStatewireTypedInterruptOptions {\n /**\n * The host's passkey decision check (identity 0b.9), as `StatewireApprovalCard`\n * takes it: an answer that approves a typed approval is handed to it first\n * and sent with the token it resolves.\n */\n confirmDecision?: StatewireDecisionConfirmer;\n /** The host refused an answer (or the transport lost it); the card is back with its controls. */\n onResumeRejected?: (error: unknown, requestId: string) => void;\n /** How long a sent answer keeps the card locked when no resume run ever starts. */\n pendingResumeGraceMs?: number;\n}\n\nexport interface StatewireTypedInterrupt extends TypedInterruptEngineSlice {\n /** The parked typed interrupt (held while the host decides an answer), or `null`. */\n interrupt: TypedInterruptPayload | null;\n /** The live request (absent while an answer is held). */\n request: StatewireThread.CustomInputRequest | undefined;\n /**\n * The thread moved on without this park: running, and no answer of this\n * card's own in flight. The card stands down while it holds.\n */\n isHiddenByRunning: boolean;\n /** Why the host refused this park's last answer, until the next one is sent. */\n failure: string | null;\n /** Answer the park with its kind's resume value. */\n resume: (value: TypedInterruptAnswer) => void;\n /** Answer the park with `{ action: 'cancel' }`. */\n cancel: () => void;\n}\n\ninterface HeldPark {\n interrupt: TypedInterruptPayload;\n requestId: string;\n}\n\nfunction refusalMessage(error: unknown): string {\n if (isConversationArchivedRejection(error)) return CONVERSATION_ARCHIVED_MESSAGE;\n return statewireRejectionDetailMessage(error) ?? TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE;\n}\n\nexport function useStatewireTypedInterrupt(\n options: UseStatewireTypedInterruptOptions = {},\n): StatewireTypedInterrupt {\n const { confirmDecision, onResumeRejected, pendingResumeGraceMs } = options;\n const isConversationStreaming = useAuiState((state) => state.thread.isRunning);\n const conversation = useTypedInterruptConversation();\n const queryClient = useAthenaQueryClient();\n\n const [held, setHeld] = useState<HeldPark | null>(null);\n const lastHeldRef = useRef<HeldPark | null>(null);\n const [failure, setFailure] = useState<{ requestId: string; message: string } | null>(null);\n const onResumeRejectedRef = useRef(onResumeRejected);\n onResumeRejectedRef.current = onResumeRejected;\n const confirmDecisionRef = useRef(confirmDecision);\n confirmDecisionRef.current = confirmDecision;\n\n const {\n request,\n requestId: liveRequestId,\n pending,\n resume: sendResume,\n } = useStatewireApprovalRequest<ReadonlyJSONObject>({\n interruptPredicate: isTypedInterruptRequest,\n pendingResumeGraceMs: pendingResumeGraceMs ?? HITL_PENDING_RESUME_GRACE_MS,\n // The host refused the answer (or the transport lost it): the fold has\n // rolled back and the request is on screen again; say why on the card.\n onResumeRejected: (error, refusedRequestId) => {\n setHeld(null);\n // The surface itself went away mid-flight: nobody to tell.\n if (statewireTransportOutcome(error) === 'unmount') return;\n setFailure({ requestId: refusedRequestId, message: refusalMessage(error) });\n onResumeRejectedRef.current?.(error, refusedRequestId);\n },\n // The socket dropped with the answer in flight and the lock re-sends it:\n // a fresh hold keeps the card through the re-send.\n onResumeRetry: (_error, retriedRequestId) => {\n const last = lastHeldRef.current;\n if (last && last.requestId === retriedRequestId) setHeld({ ...last });\n },\n });\n\n // The predicate parsed the payload already; parse again for its value.\n const liveInterrupt = useMemo(\n () => (request ? parseTypedInterruptPayload(request.payload) : null),\n [request],\n );\n\n // A hold ends with the host's verdict (below), when a park is live again\n // (the refused one, under its id, or a new one), or after the grace window.\n useEffect(() => {\n if (held && liveRequestId !== undefined) setHeld(null);\n }, [held, liveRequestId]);\n const graceMs = pendingResumeGraceMs ?? HITL_PENDING_RESUME_GRACE_MS;\n useEffect(() => {\n if (!held) return undefined;\n const timer = setTimeout(() => setHeld(null), graceMs);\n return () => clearTimeout(timer);\n }, [held, graceMs]);\n const holding = held !== null && liveInterrupt === null;\n const interrupt = holding ? held.interrupt : liveInterrupt;\n const requestId = holding ? held.requestId : liveRequestId;\n\n // A passkey check is open for an answer sent from here.\n const [confirming, setConfirming] = useState(false);\n // The park on screen now, read once a check settles: an answer confirmed for\n // a park that is gone is never sent to whatever parked next.\n const currentRequestIdRef = useRef(liveRequestId);\n currentRequestIdRef.current = liveRequestId;\n const isLoading = pending || holding || confirming;\n\n // ── The timer (display only; the backend's timer answers at the deadline) ──\n // Everything below is per park instance: the request id, never the source,\n // which repeats (every toolkit selection is `toolkit_selection`).\n const instanceKey = interrupt ? (requestId ?? null) : null;\n const [timeoutRemaining, setTimeoutRemaining] = useState<number | null>(null);\n const [isTimedOut, setIsTimedOut] = useState(false);\n const [cancelledInstance, setCancelledInstance] = useState<string | null>(null);\n const isTimeoutCancelled = instanceKey !== null && cancelledInstance === instanceKey;\n const timed = interrupt !== null && hasInterruptTimeout(interrupt);\n const timeoutSeconds = interrupt?.timeout_seconds ?? null;\n const timeoutAt = interrupt?.timeout_at ?? null;\n\n useEffect(() => {\n if (!interrupt || !timed || isTimeoutCancelled) {\n setTimeoutRemaining(null);\n setIsTimedOut(false);\n return undefined;\n }\n const tick = () => {\n const remaining = interruptTimeoutRemaining(interrupt);\n setTimeoutRemaining(remaining);\n setIsTimedOut(remaining !== null && remaining <= 0);\n };\n tick();\n const interval = setInterval(tick, 1000);\n return () => clearInterval(interval);\n }, [interrupt, timed, isTimeoutCancelled]);\n\n // Whether the person stopped this park's timer before (another app, a\n // reload): asked once per instance, a moment after it parks.\n const [statusReady, setStatusReady] = useState(false);\n useEffect(() => {\n setStatusReady(false);\n if (!timed || !timeoutAt) return undefined;\n const timer = setTimeout(() => setStatusReady(true), TIMEOUT_STATUS_DELAY_MS);\n return () => clearTimeout(timer);\n }, [timed, timeoutAt]);\n const source = interrupt?.source ?? null;\n const statusEnabled =\n timed && statusReady && !isTimeoutCancelled && conversation !== null && source !== null;\n const { data: cancelledBefore } = useQuery(\n {\n queryKey: [\n 'athena-sdk',\n 'interrupt-timeout-status',\n conversation?.auth.backendUrl ?? '',\n conversation?.principal ?? '',\n conversation?.threadId ?? '',\n source ?? '',\n timeoutAt ?? '',\n ],\n queryFn: ({ signal }) => {\n if (!conversation || !source) return false;\n return readInterruptTimeoutCancelled(conversation, source, signal);\n },\n enabled: statusEnabled,\n staleTime: Number.POSITIVE_INFINITY,\n retry: false,\n refetchOnWindowFocus: false,\n },\n queryClient,\n );\n useEffect(() => {\n if (cancelledBefore === true && instanceKey !== null) setCancelledInstance(instanceKey);\n }, [cancelledBefore, instanceKey]);\n\n const { mutate: sendCancelTimeout } = useMutation(\n {\n mutationKey: ['athena-sdk', 'interrupt-timeout-cancel'],\n mutationFn: ({ interruptId }: { interruptId: string }) => {\n if (!conversation) return Promise.reject(new Error('no conversation to stop the timer of'));\n return cancelInterruptTimeout(conversation, interruptId);\n },\n // The backend's timer answers at the deadline unless this lands: a\n // blip must not let it fire while the person is answering.\n retry: CANCEL_TIMEOUT_RETRIES,\n retryDelay: (attempt) => {\n const base = CANCEL_TIMEOUT_INITIAL_DELAY_MS * 2 ** attempt;\n return base + Math.random() * base * 0.3;\n },\n },\n queryClient,\n );\n\n // Only agora can stop its timer: without the conversation (a host that\n // names no thread) the countdown stays, and nothing offers to stop it.\n const canCancelTimeout = timed && conversation !== null;\n // One request per park: a press on Stop timer is also the card's first\n // interaction, and both ask in the same tick, before a render says so.\n const cancelRequestedRef = useRef<string | null>(null);\n const cancelTimeout = useCallback(() => {\n if (!interrupt || !canCancelTimeout || isTimeoutCancelled || instanceKey === null) return;\n if (cancelRequestedRef.current === instanceKey) return;\n const instance = instanceKey;\n cancelRequestedRef.current = instance;\n setCancelledInstance(instance);\n sendCancelTimeout(\n { interruptId: interrupt.source },\n {\n // agora did not stop it after the retries: the countdown is true\n // again, and Stop timer may ask once more.\n onError: () => {\n if (cancelRequestedRef.current === instance) cancelRequestedRef.current = null;\n setCancelledInstance((current) => (current === instance ? null : current));\n },\n },\n );\n }, [interrupt, canCancelTimeout, isTimeoutCancelled, instanceKey, sendCancelTimeout]);\n\n // ── Answers ──\n const sendAnswer = useCallback(\n (kind: 'resume' | 'cancel', value: TypedInterruptAnswer) => {\n if (!interrupt || requestId === undefined) return;\n setFailure(null);\n const answer = stampTypedInterruptAnswer({ payload: interrupt, value }) as ReadonlyJSONObject;\n const park: HeldPark = { interrupt, requestId };\n const deliver = (decisionCheck?: string) => {\n const dispatched = sendResume(answer, decisionCheck ? { decisionCheck } : undefined);\n if (!dispatched) return;\n lastHeldRef.current = park;\n setHeld(park);\n // Accepted or refused, the verdict ends the hold (a refusal also\n // brings the request back through the live selection).\n dispatched.then(\n () => setHeld(null),\n () => setHeld(null),\n );\n };\n const confirm = confirmDecisionRef.current;\n if (\n confirm === undefined ||\n kind !== 'resume' ||\n !isTypedApprovalInterrupt(interrupt) ||\n !typedAnswerLetsSomethingRun(answer)\n ) {\n deliver();\n return;\n }\n // Identity 0b.9: approving is confirmed with the person's passkey first,\n // as the approval card does; a check that gave no token sends the\n // answer without one, and agora decides.\n setConfirming(true);\n confirm({ kind: 'input', requestId, value: answer })\n .catch(() => undefined)\n .then((token) => {\n setConfirming(false);\n if (currentRequestIdRef.current !== requestId) return;\n deliver(token);\n });\n },\n [interrupt, requestId, sendResume],\n );\n\n const resume = useCallback((value: TypedInterruptAnswer) => sendAnswer('resume', value), [sendAnswer]);\n const cancel = useCallback(() => sendAnswer('cancel', typedInterruptCancel()), [sendAnswer]);\n\n const message = interrupt?.message;\n const displayMessage = useMemo(() => {\n if (!message) return '';\n return isTimeoutCancelled ? stripInterruptTimeoutText(message) : message;\n }, [message, isTimeoutCancelled]);\n\n return {\n interrupt,\n request,\n requestId,\n resume,\n cancel,\n failure: failure !== null && failure.requestId === requestId ? failure.message : null,\n isLoading,\n isConversationStreaming,\n isHiddenByRunning: isConversationStreaming && !isLoading,\n hasTimeout: timed,\n timeoutSeconds,\n timeoutRemaining,\n isTimedOut,\n isTimeoutCancelled,\n canCancelTimeout,\n cancelTimeout,\n displayMessage,\n currentThreadId: conversation?.threadId ?? null,\n };\n}\n"],"names":["isConversationArchivedRejection","CONVERSATION_ARCHIVED_MESSAGE","statewireRejectionDetailMessage","useAuiState","useTypedInterruptConversation","useAthenaQueryClient","useState","useRef","useStatewireApprovalRequest","isTypedInterruptRequest","HITL_PENDING_RESUME_GRACE_MS","statewireTransportOutcome","useMemo","parseTypedInterruptPayload","useEffect","hasInterruptTimeout","interruptTimeoutRemaining","useQuery","readInterruptTimeoutCancelled","useMutation","cancelInterruptTimeout","useCallback","stampTypedInterruptAnswer","isTypedApprovalInterrupt","typedAnswerLetsSomethingRun","typedInterruptCancel","stripInterruptTimeoutText"],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The typed-interrupt engine: everything a typed card renders from, and the
|
|
3
|
+
* two ways it answers. The port of Olympus's `useLangGraphInterrupt` onto the
|
|
4
|
+
* SDK, on the same request machine the approval card runs
|
|
5
|
+
* (`useStatewireApprovalRequest`: selection, the optimistic resume lock and
|
|
6
|
+
* its recovery), with ONE predicate, `isTypedInterruptRequest`, so the request
|
|
7
|
+
* a card renders for is the request its answer is sent under.
|
|
8
|
+
*
|
|
9
|
+
* On top of the lock it adds what the cards need:
|
|
10
|
+
*
|
|
11
|
+
* - the parsed payload, held while the host decides an answer, so the card
|
|
12
|
+
* keeps what the person typed (react-statewire folds `run/input` away the
|
|
13
|
+
* instant it is applied, before any verdict, and a refusal brings the same
|
|
14
|
+
* request back);
|
|
15
|
+
* - the stamps the raiser's stale-resume check reads (`__interrupt_id__`,
|
|
16
|
+
* `__interrupt_instance_id__`) on every answer;
|
|
17
|
+
* - the passkey decision check (identity 0b.9) on an answer that approves a
|
|
18
|
+
* typed approval (`isTypedApprovalInterrupt`), through the host's
|
|
19
|
+
* `confirmDecision`, as the approval card runs it; a question's answer, a
|
|
20
|
+
* reject and a cancel never ask;
|
|
21
|
+
* - the host's reason when it refuses an answer (agora holds an approving
|
|
22
|
+
* answer to a signed-in person: `person_decision_required` names where to
|
|
23
|
+
* answer instead), for the card to show;
|
|
24
|
+
* - the timed-interrupt countdown (display only: the backend's timer answers),
|
|
25
|
+
* whether the person already stopped it, and stopping it.
|
|
26
|
+
*
|
|
27
|
+
* Requires a statewire aui scope (the SDK's statewire hooks throw outside
|
|
28
|
+
* one): `StatewireTypedInterruptCard` mounts it under `StatewireApprovalCard`'s
|
|
29
|
+
* extras gate.
|
|
30
|
+
*/
|
|
31
|
+
import type { StatewireThread } from '@assistant-ui/react-statewire';
|
|
32
|
+
import { type TypedInterruptPayload } from '../../agent-runtime/src/typed-interrupts';
|
|
33
|
+
import type { StatewireDecisionConfirmer } from '../StatewireApprovalCard';
|
|
34
|
+
import type { TypedInterruptAnswer, TypedInterruptEngineSlice } from './typed-interrupt-types';
|
|
35
|
+
/** What a card says when the host refused an answer without saying why. */
|
|
36
|
+
export declare const TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE = "Your answer could not be sent. Please try again.";
|
|
37
|
+
export interface UseStatewireTypedInterruptOptions {
|
|
38
|
+
/**
|
|
39
|
+
* The host's passkey decision check (identity 0b.9), as `StatewireApprovalCard`
|
|
40
|
+
* takes it: an answer that approves a typed approval is handed to it first
|
|
41
|
+
* and sent with the token it resolves.
|
|
42
|
+
*/
|
|
43
|
+
confirmDecision?: StatewireDecisionConfirmer;
|
|
44
|
+
/** The host refused an answer (or the transport lost it); the card is back with its controls. */
|
|
45
|
+
onResumeRejected?: (error: unknown, requestId: string) => void;
|
|
46
|
+
/** How long a sent answer keeps the card locked when no resume run ever starts. */
|
|
47
|
+
pendingResumeGraceMs?: number;
|
|
48
|
+
}
|
|
49
|
+
export interface StatewireTypedInterrupt extends TypedInterruptEngineSlice {
|
|
50
|
+
/** The parked typed interrupt (held while the host decides an answer), or `null`. */
|
|
51
|
+
interrupt: TypedInterruptPayload | null;
|
|
52
|
+
/** The live request (absent while an answer is held). */
|
|
53
|
+
request: StatewireThread.CustomInputRequest | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* The thread moved on without this park: running, and no answer of this
|
|
56
|
+
* card's own in flight. The card stands down while it holds.
|
|
57
|
+
*/
|
|
58
|
+
isHiddenByRunning: boolean;
|
|
59
|
+
/** Why the host refused this park's last answer, until the next one is sent. */
|
|
60
|
+
failure: string | null;
|
|
61
|
+
/** Answer the park with its kind's resume value. */
|
|
62
|
+
resume: (value: TypedInterruptAnswer) => void;
|
|
63
|
+
/** Answer the park with `{ action: 'cancel' }`. */
|
|
64
|
+
cancel: () => void;
|
|
65
|
+
}
|
|
66
|
+
export declare function useStatewireTypedInterrupt(options?: UseStatewireTypedInterruptOptions): StatewireTypedInterrupt;
|