@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,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const reactQuery = require("@tanstack/react-query");
|
|
4
|
+
const AthenaContext = require("../provider/AthenaContext.cjs");
|
|
5
|
+
const athenaApiError = require("./athena-api-error.cjs");
|
|
6
|
+
const athenaDataClient = require("./athena-data-client.cjs");
|
|
7
|
+
const athenaRequest = require("./athena-request.cjs");
|
|
8
|
+
function useAthenaGraphQL(document, variables, options = {}) {
|
|
9
|
+
const config = AthenaContext.useAthenaConfig();
|
|
10
|
+
const scope = athenaDataClient.useAthenaDataScope();
|
|
11
|
+
const client = athenaDataClient.useAthenaDataQueryClient();
|
|
12
|
+
const { operationName, timeoutMs, rateLimitRetry, headers, enabled, ...queryOptions } = options;
|
|
13
|
+
const text = String(document);
|
|
14
|
+
return reactQuery.useQuery(
|
|
15
|
+
{
|
|
16
|
+
retry: athenaDataClient.retryAthenaRead,
|
|
17
|
+
retryDelay: athenaDataClient.athenaRetryDelay,
|
|
18
|
+
staleTime: athenaDataClient.ATHENA_DATA_STALE_MS,
|
|
19
|
+
...queryOptions,
|
|
20
|
+
queryKey: [...scope, athenaDataClient.AthenaDataKind.GraphQL, text, variables ?? {}, operationName ?? null],
|
|
21
|
+
queryFn: ({ signal }) => {
|
|
22
|
+
var _a;
|
|
23
|
+
if (((_a = athenaRequest.selectedGraphQLOperation(text, operationName)) == null ? void 0 : _a.type) !== "query") {
|
|
24
|
+
throw new athenaApiError.AthenaApiError({
|
|
25
|
+
kind: athenaApiError.AthenaApiErrorKind.Request,
|
|
26
|
+
message: "useAthenaGraphQL runs one query: name it with operationName when the document holds several, and send a mutation with useAthenaGraphQLMutation",
|
|
27
|
+
method: "POST",
|
|
28
|
+
path: "/graphql"
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
return athenaRequest.athenaGraphQL(config, text, variables, {
|
|
32
|
+
operationName,
|
|
33
|
+
timeoutMs,
|
|
34
|
+
rateLimitRetry,
|
|
35
|
+
headers,
|
|
36
|
+
signal
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
enabled: athenaDataClient.enabledAnd(enabled, config.backendUrl.length > 0)
|
|
40
|
+
},
|
|
41
|
+
client
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
function useAthenaGraphQLMutation(document, options = {}) {
|
|
45
|
+
const config = AthenaContext.useAthenaConfig();
|
|
46
|
+
const client = athenaDataClient.useAthenaDataQueryClient();
|
|
47
|
+
const { operationName, timeoutMs, rateLimitRetry, headers, ...mutationOptions } = options;
|
|
48
|
+
const text = String(document);
|
|
49
|
+
return reactQuery.useMutation(
|
|
50
|
+
{
|
|
51
|
+
...mutationOptions,
|
|
52
|
+
// TODO(#54756): send an Idempotency-Key per call once agora honours one, so
|
|
53
|
+
// a write sent twice (a retry, a double click) applies once.
|
|
54
|
+
mutationFn: (variables) => athenaRequest.athenaGraphQL(config, text, variables, {
|
|
55
|
+
operationName,
|
|
56
|
+
timeoutMs,
|
|
57
|
+
rateLimitRetry,
|
|
58
|
+
headers
|
|
59
|
+
})
|
|
60
|
+
},
|
|
61
|
+
client
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
exports.useAthenaGraphQL = useAthenaGraphQL;
|
|
65
|
+
exports.useAthenaGraphQLMutation = useAthenaGraphQLMutation;
|
|
66
|
+
//# sourceMappingURL=use-athena-graphql.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-athena-graphql.cjs","sources":["../../src/data/use-athena-graphql.ts"],"sourcesContent":["/**\n * GraphQL on agora through TanStack Query, on the SDK's own client: a read\n * (`useAthenaGraphQL`) cached per identity and cancelled when its last reader\n * unmounts, and a write (`useAthenaGraphQLMutation`). Both run on the SDK's\n * transport (`athenaGraphQL`), so a read and a write carry the provider's\n * credential and fail as an `AthenaApiError`.\n */\nimport {\n type UseMutationOptions,\n type UseMutationResult,\n type UseQueryOptions,\n type UseQueryResult,\n useMutation,\n useQuery,\n} from '@tanstack/react-query';\nimport { useAthenaConfig } from '../provider/AthenaContext';\nimport { AthenaApiError, AthenaApiErrorKind } from './athena-api-error';\nimport {\n ATHENA_DATA_STALE_MS,\n AthenaDataKind,\n athenaRetryDelay,\n enabledAnd,\n retryAthenaRead,\n useAthenaDataQueryClient,\n useAthenaDataScope,\n} from './athena-data-client';\nimport {\n type AthenaGraphQLDocument,\n type AthenaGraphQLRequestOptions,\n type AthenaGraphQLVariables,\n athenaGraphQL,\n selectedGraphQLOperation,\n} from './athena-request';\n\n/** Request options of a GraphQL hook (its `signal` is TanStack Query's). */\nexport type AthenaGraphQLHookRequestOptions = Omit<AthenaGraphQLRequestOptions, 'signal'>;\n\n/**\n * `useAthenaGraphQL`'s options: TanStack Query's (`enabled`, `select`,\n * `staleTime`, `refetchInterval`…) and the request's (`timeoutMs`,\n * `rateLimitRetry`, `operationName`, `headers`).\n */\nexport type UseAthenaGraphQLOptions<TData, TSelected = TData> = Omit<\n UseQueryOptions<TData, AthenaApiError, TSelected>,\n 'queryKey' | 'queryFn'\n> &\n AthenaGraphQLHookRequestOptions;\n\n/**\n * Read with one GraphQL query on agora's `/graphql`, as the signed-in person.\n * Keyed by the identity (see `useAthenaDataScope`), the document and its\n * variables. Never retried on a 4xx or a GraphQL error; a failure with no\n * answer or a 5xx is asked twice more. Cancelled when no component reads it\n * any more. A mutation is refused here (it would run again on every refetch):\n * send it with `useAthenaGraphQLMutation`.\n *\n * ```tsx\n * const { data, error } = useAthenaGraphQL<{ asset: { title: string } }, { id: string }>(\n * `query Asset($id: String!) { asset(id: $id) { title } }`,\n * { id },\n * );\n * ```\n */\nexport function useAthenaGraphQL<\n TData = unknown,\n TVariables extends object = AthenaGraphQLVariables,\n TSelected = TData,\n>(\n document: AthenaGraphQLDocument<TData, TVariables>,\n variables?: TVariables,\n options: UseAthenaGraphQLOptions<TData, TSelected> = {},\n): UseQueryResult<TSelected, AthenaApiError> {\n const config = useAthenaConfig();\n const scope = useAthenaDataScope();\n const client = useAthenaDataQueryClient();\n const { operationName, timeoutMs, rateLimitRetry, headers, enabled, ...queryOptions } = options;\n const text = String(document);\n return useQuery(\n {\n retry: retryAthenaRead,\n retryDelay: athenaRetryDelay,\n staleTime: ATHENA_DATA_STALE_MS,\n ...queryOptions,\n queryKey: [...scope, AthenaDataKind.GraphQL, text, variables ?? {}, operationName ?? null],\n queryFn: ({ signal }) => {\n // The operation agora would run (`operationName`'s, else the only\n // one), never just the document's first: a mutation or subscription\n // here would run again on every refetch.\n if (selectedGraphQLOperation(text, operationName)?.type !== 'query') {\n throw new AthenaApiError({\n kind: AthenaApiErrorKind.Request,\n message:\n 'useAthenaGraphQL runs one query: name it with operationName when the document holds several, and send a mutation with useAthenaGraphQLMutation',\n method: 'POST',\n path: '/graphql',\n });\n }\n return athenaGraphQL<TData, TVariables>(config, text, variables, {\n operationName,\n timeoutMs,\n rateLimitRetry,\n headers,\n signal,\n });\n },\n enabled: enabledAnd(enabled, config.backendUrl.length > 0),\n },\n client,\n );\n}\n\n/**\n * `useAthenaGraphQLMutation`'s options: TanStack Query's mutation options\n * (`onSuccess`, `onError`, `onMutate`…) and the request's.\n */\nexport type UseAthenaGraphQLMutationOptions<TData, TVariables, TOnMutateResult = unknown> = Omit<\n UseMutationOptions<TData, AthenaApiError, TVariables, TOnMutateResult>,\n 'mutationFn'\n> &\n AthenaGraphQLHookRequestOptions;\n\n/**\n * Write with one GraphQL mutation on agora's `/graphql`, as the signed-in\n * person: `mutate(variables)` / `mutateAsync(variables)`. Never retried (a 429\n * from agora's limiter is waited out by the transport: it refuses before\n * anything runs). A write already sent is not cancelled when its component\n * unmounts, since agora may have applied it; `timeoutMs` still bounds it.\n * Read the reads it changes again with `useInvalidateAthenaQueries`.\n *\n * ```tsx\n * const invalidate = useInvalidateAthenaQueries();\n * const rename = useAthenaGraphQLMutation<RenameResult, { id: string; title: string }>(RENAME, {\n * onSuccess: () => invalidate({ operationNames: ['Asset'] }),\n * });\n * rename.mutate({ id, title });\n * ```\n */\nexport function useAthenaGraphQLMutation<\n TData = unknown,\n TVariables extends object = AthenaGraphQLVariables,\n TOnMutateResult = unknown,\n>(\n document: AthenaGraphQLDocument<TData, TVariables>,\n options: UseAthenaGraphQLMutationOptions<TData, TVariables, TOnMutateResult> = {},\n): UseMutationResult<TData, AthenaApiError, TVariables, TOnMutateResult> {\n const config = useAthenaConfig();\n const client = useAthenaDataQueryClient();\n const { operationName, timeoutMs, rateLimitRetry, headers, ...mutationOptions } = options;\n const text = String(document);\n return useMutation(\n {\n ...mutationOptions,\n // TODO(#54756): send an Idempotency-Key per call once agora honours one, so\n // a write sent twice (a retry, a double click) applies once.\n mutationFn: (variables: TVariables) =>\n athenaGraphQL<TData, TVariables>(config, text, variables, {\n operationName,\n timeoutMs,\n rateLimitRetry,\n headers,\n }),\n },\n client,\n );\n}\n"],"names":["useAthenaConfig","useAthenaDataScope","useAthenaDataQueryClient","useQuery","retryAthenaRead","athenaRetryDelay","ATHENA_DATA_STALE_MS","AthenaDataKind","selectedGraphQLOperation","AthenaApiError","AthenaApiErrorKind","athenaGraphQL","enabledAnd","useMutation"],"mappings":";;;;;;;AA+DO,SAAS,iBAKd,UACA,WACA,UAAqD,CAAA,GACV;AAC3C,QAAM,SAASA,cAAAA,gBAAA;AACf,QAAM,QAAQC,iBAAAA,mBAAA;AACd,QAAM,SAASC,iBAAAA,yBAAA;AACf,QAAM,EAAE,eAAe,WAAW,gBAAgB,SAAS,SAAS,GAAG,iBAAiB;AACxF,QAAM,OAAO,OAAO,QAAQ;AAC5B,SAAOC,WAAAA;AAAAA,IACL;AAAA,MACE,OAAOC,iBAAAA;AAAAA,MACP,YAAYC,iBAAAA;AAAAA,MACZ,WAAWC,iBAAAA;AAAAA,MACX,GAAG;AAAA,MACH,UAAU,CAAC,GAAG,OAAOC,gCAAe,SAAS,MAAM,aAAa,CAAA,GAAI,iBAAiB,IAAI;AAAA,MACzF,SAAS,CAAC,EAAE,aAAa;;AAIvB,cAAIC,mBAAAA,yBAAyB,MAAM,aAAa,MAA5CA,mBAA+C,UAAS,SAAS;AACnE,gBAAM,IAAIC,eAAAA,eAAe;AAAA,YACvB,MAAMC,eAAAA,mBAAmB;AAAA,YACzB,SACE;AAAA,YACF,QAAQ;AAAA,YACR,MAAM;AAAA,UAAA,CACP;AAAA,QACH;AACA,eAAOC,4BAAiC,QAAQ,MAAM,WAAW;AAAA,UAC/D;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MACH;AAAA,MACA,SAASC,iBAAAA,WAAW,SAAS,OAAO,WAAW,SAAS,CAAC;AAAA,IAAA;AAAA,IAE3D;AAAA,EAAA;AAEJ;AA4BO,SAAS,yBAKd,UACA,UAA+E,IACR;AACvE,QAAM,SAASZ,cAAAA,gBAAA;AACf,QAAM,SAASE,iBAAAA,yBAAA;AACf,QAAM,EAAE,eAAe,WAAW,gBAAgB,SAAS,GAAG,oBAAoB;AAClF,QAAM,OAAO,OAAO,QAAQ;AAC5B,SAAOW,WAAAA;AAAAA,IACL;AAAA,MACE,GAAG;AAAA;AAAA;AAAA,MAGH,YAAY,CAAC,cACXF,cAAAA,cAAiC,QAAQ,MAAM,WAAW;AAAA,QACxD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,IAEL;AAAA,EAAA;AAEJ;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GraphQL on agora through TanStack Query, on the SDK's own client: a read
|
|
3
|
+
* (`useAthenaGraphQL`) cached per identity and cancelled when its last reader
|
|
4
|
+
* unmounts, and a write (`useAthenaGraphQLMutation`). Both run on the SDK's
|
|
5
|
+
* transport (`athenaGraphQL`), so a read and a write carry the provider's
|
|
6
|
+
* credential and fail as an `AthenaApiError`.
|
|
7
|
+
*/
|
|
8
|
+
import { type UseMutationOptions, type UseMutationResult, type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
9
|
+
import { AthenaApiError } from './athena-api-error';
|
|
10
|
+
import { type AthenaGraphQLDocument, type AthenaGraphQLRequestOptions, type AthenaGraphQLVariables } from './athena-request';
|
|
11
|
+
/** Request options of a GraphQL hook (its `signal` is TanStack Query's). */
|
|
12
|
+
export type AthenaGraphQLHookRequestOptions = Omit<AthenaGraphQLRequestOptions, 'signal'>;
|
|
13
|
+
/**
|
|
14
|
+
* `useAthenaGraphQL`'s options: TanStack Query's (`enabled`, `select`,
|
|
15
|
+
* `staleTime`, `refetchInterval`…) and the request's (`timeoutMs`,
|
|
16
|
+
* `rateLimitRetry`, `operationName`, `headers`).
|
|
17
|
+
*/
|
|
18
|
+
export type UseAthenaGraphQLOptions<TData, TSelected = TData> = Omit<UseQueryOptions<TData, AthenaApiError, TSelected>, 'queryKey' | 'queryFn'> & AthenaGraphQLHookRequestOptions;
|
|
19
|
+
/**
|
|
20
|
+
* Read with one GraphQL query on agora's `/graphql`, as the signed-in person.
|
|
21
|
+
* Keyed by the identity (see `useAthenaDataScope`), the document and its
|
|
22
|
+
* variables. Never retried on a 4xx or a GraphQL error; a failure with no
|
|
23
|
+
* answer or a 5xx is asked twice more. Cancelled when no component reads it
|
|
24
|
+
* any more. A mutation is refused here (it would run again on every refetch):
|
|
25
|
+
* send it with `useAthenaGraphQLMutation`.
|
|
26
|
+
*
|
|
27
|
+
* ```tsx
|
|
28
|
+
* const { data, error } = useAthenaGraphQL<{ asset: { title: string } }, { id: string }>(
|
|
29
|
+
* `query Asset($id: String!) { asset(id: $id) { title } }`,
|
|
30
|
+
* { id },
|
|
31
|
+
* );
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function useAthenaGraphQL<TData = unknown, TVariables extends object = AthenaGraphQLVariables, TSelected = TData>(document: AthenaGraphQLDocument<TData, TVariables>, variables?: TVariables, options?: UseAthenaGraphQLOptions<TData, TSelected>): UseQueryResult<TSelected, AthenaApiError>;
|
|
35
|
+
/**
|
|
36
|
+
* `useAthenaGraphQLMutation`'s options: TanStack Query's mutation options
|
|
37
|
+
* (`onSuccess`, `onError`, `onMutate`…) and the request's.
|
|
38
|
+
*/
|
|
39
|
+
export type UseAthenaGraphQLMutationOptions<TData, TVariables, TOnMutateResult = unknown> = Omit<UseMutationOptions<TData, AthenaApiError, TVariables, TOnMutateResult>, 'mutationFn'> & AthenaGraphQLHookRequestOptions;
|
|
40
|
+
/**
|
|
41
|
+
* Write with one GraphQL mutation on agora's `/graphql`, as the signed-in
|
|
42
|
+
* person: `mutate(variables)` / `mutateAsync(variables)`. Never retried (a 429
|
|
43
|
+
* from agora's limiter is waited out by the transport: it refuses before
|
|
44
|
+
* anything runs). A write already sent is not cancelled when its component
|
|
45
|
+
* unmounts, since agora may have applied it; `timeoutMs` still bounds it.
|
|
46
|
+
* Read the reads it changes again with `useInvalidateAthenaQueries`.
|
|
47
|
+
*
|
|
48
|
+
* ```tsx
|
|
49
|
+
* const invalidate = useInvalidateAthenaQueries();
|
|
50
|
+
* const rename = useAthenaGraphQLMutation<RenameResult, { id: string; title: string }>(RENAME, {
|
|
51
|
+
* onSuccess: () => invalidate({ operationNames: ['Asset'] }),
|
|
52
|
+
* });
|
|
53
|
+
* rename.mutate({ id, title });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function useAthenaGraphQLMutation<TData = unknown, TVariables extends object = AthenaGraphQLVariables, TOnMutateResult = unknown>(document: AthenaGraphQLDocument<TData, TVariables>, options?: UseAthenaGraphQLMutationOptions<TData, TVariables, TOnMutateResult>): UseMutationResult<TData, AthenaApiError, TVariables, TOnMutateResult>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { useQuery, useMutation } from "@tanstack/react-query";
|
|
2
|
+
import { useAthenaConfig } from "../provider/AthenaContext.js";
|
|
3
|
+
import { AthenaApiError, AthenaApiErrorKind } from "./athena-api-error.js";
|
|
4
|
+
import { useAthenaDataScope, useAthenaDataQueryClient, AthenaDataKind, ATHENA_DATA_STALE_MS, athenaRetryDelay, retryAthenaRead, enabledAnd } from "./athena-data-client.js";
|
|
5
|
+
import { selectedGraphQLOperation, athenaGraphQL } from "./athena-request.js";
|
|
6
|
+
function useAthenaGraphQL(document, variables, options = {}) {
|
|
7
|
+
const config = useAthenaConfig();
|
|
8
|
+
const scope = useAthenaDataScope();
|
|
9
|
+
const client = useAthenaDataQueryClient();
|
|
10
|
+
const { operationName, timeoutMs, rateLimitRetry, headers, enabled, ...queryOptions } = options;
|
|
11
|
+
const text = String(document);
|
|
12
|
+
return useQuery(
|
|
13
|
+
{
|
|
14
|
+
retry: retryAthenaRead,
|
|
15
|
+
retryDelay: athenaRetryDelay,
|
|
16
|
+
staleTime: ATHENA_DATA_STALE_MS,
|
|
17
|
+
...queryOptions,
|
|
18
|
+
queryKey: [...scope, AthenaDataKind.GraphQL, text, variables ?? {}, operationName ?? null],
|
|
19
|
+
queryFn: ({ signal }) => {
|
|
20
|
+
var _a;
|
|
21
|
+
if (((_a = selectedGraphQLOperation(text, operationName)) == null ? void 0 : _a.type) !== "query") {
|
|
22
|
+
throw new AthenaApiError({
|
|
23
|
+
kind: AthenaApiErrorKind.Request,
|
|
24
|
+
message: "useAthenaGraphQL runs one query: name it with operationName when the document holds several, and send a mutation with useAthenaGraphQLMutation",
|
|
25
|
+
method: "POST",
|
|
26
|
+
path: "/graphql"
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return athenaGraphQL(config, text, variables, {
|
|
30
|
+
operationName,
|
|
31
|
+
timeoutMs,
|
|
32
|
+
rateLimitRetry,
|
|
33
|
+
headers,
|
|
34
|
+
signal
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
enabled: enabledAnd(enabled, config.backendUrl.length > 0)
|
|
38
|
+
},
|
|
39
|
+
client
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
function useAthenaGraphQLMutation(document, options = {}) {
|
|
43
|
+
const config = useAthenaConfig();
|
|
44
|
+
const client = useAthenaDataQueryClient();
|
|
45
|
+
const { operationName, timeoutMs, rateLimitRetry, headers, ...mutationOptions } = options;
|
|
46
|
+
const text = String(document);
|
|
47
|
+
return useMutation(
|
|
48
|
+
{
|
|
49
|
+
...mutationOptions,
|
|
50
|
+
// TODO(#54756): send an Idempotency-Key per call once agora honours one, so
|
|
51
|
+
// a write sent twice (a retry, a double click) applies once.
|
|
52
|
+
mutationFn: (variables) => athenaGraphQL(config, text, variables, {
|
|
53
|
+
operationName,
|
|
54
|
+
timeoutMs,
|
|
55
|
+
rateLimitRetry,
|
|
56
|
+
headers
|
|
57
|
+
})
|
|
58
|
+
},
|
|
59
|
+
client
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
useAthenaGraphQL,
|
|
64
|
+
useAthenaGraphQLMutation
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=use-athena-graphql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-athena-graphql.js","sources":["../../src/data/use-athena-graphql.ts"],"sourcesContent":["/**\n * GraphQL on agora through TanStack Query, on the SDK's own client: a read\n * (`useAthenaGraphQL`) cached per identity and cancelled when its last reader\n * unmounts, and a write (`useAthenaGraphQLMutation`). Both run on the SDK's\n * transport (`athenaGraphQL`), so a read and a write carry the provider's\n * credential and fail as an `AthenaApiError`.\n */\nimport {\n type UseMutationOptions,\n type UseMutationResult,\n type UseQueryOptions,\n type UseQueryResult,\n useMutation,\n useQuery,\n} from '@tanstack/react-query';\nimport { useAthenaConfig } from '../provider/AthenaContext';\nimport { AthenaApiError, AthenaApiErrorKind } from './athena-api-error';\nimport {\n ATHENA_DATA_STALE_MS,\n AthenaDataKind,\n athenaRetryDelay,\n enabledAnd,\n retryAthenaRead,\n useAthenaDataQueryClient,\n useAthenaDataScope,\n} from './athena-data-client';\nimport {\n type AthenaGraphQLDocument,\n type AthenaGraphQLRequestOptions,\n type AthenaGraphQLVariables,\n athenaGraphQL,\n selectedGraphQLOperation,\n} from './athena-request';\n\n/** Request options of a GraphQL hook (its `signal` is TanStack Query's). */\nexport type AthenaGraphQLHookRequestOptions = Omit<AthenaGraphQLRequestOptions, 'signal'>;\n\n/**\n * `useAthenaGraphQL`'s options: TanStack Query's (`enabled`, `select`,\n * `staleTime`, `refetchInterval`…) and the request's (`timeoutMs`,\n * `rateLimitRetry`, `operationName`, `headers`).\n */\nexport type UseAthenaGraphQLOptions<TData, TSelected = TData> = Omit<\n UseQueryOptions<TData, AthenaApiError, TSelected>,\n 'queryKey' | 'queryFn'\n> &\n AthenaGraphQLHookRequestOptions;\n\n/**\n * Read with one GraphQL query on agora's `/graphql`, as the signed-in person.\n * Keyed by the identity (see `useAthenaDataScope`), the document and its\n * variables. Never retried on a 4xx or a GraphQL error; a failure with no\n * answer or a 5xx is asked twice more. Cancelled when no component reads it\n * any more. A mutation is refused here (it would run again on every refetch):\n * send it with `useAthenaGraphQLMutation`.\n *\n * ```tsx\n * const { data, error } = useAthenaGraphQL<{ asset: { title: string } }, { id: string }>(\n * `query Asset($id: String!) { asset(id: $id) { title } }`,\n * { id },\n * );\n * ```\n */\nexport function useAthenaGraphQL<\n TData = unknown,\n TVariables extends object = AthenaGraphQLVariables,\n TSelected = TData,\n>(\n document: AthenaGraphQLDocument<TData, TVariables>,\n variables?: TVariables,\n options: UseAthenaGraphQLOptions<TData, TSelected> = {},\n): UseQueryResult<TSelected, AthenaApiError> {\n const config = useAthenaConfig();\n const scope = useAthenaDataScope();\n const client = useAthenaDataQueryClient();\n const { operationName, timeoutMs, rateLimitRetry, headers, enabled, ...queryOptions } = options;\n const text = String(document);\n return useQuery(\n {\n retry: retryAthenaRead,\n retryDelay: athenaRetryDelay,\n staleTime: ATHENA_DATA_STALE_MS,\n ...queryOptions,\n queryKey: [...scope, AthenaDataKind.GraphQL, text, variables ?? {}, operationName ?? null],\n queryFn: ({ signal }) => {\n // The operation agora would run (`operationName`'s, else the only\n // one), never just the document's first: a mutation or subscription\n // here would run again on every refetch.\n if (selectedGraphQLOperation(text, operationName)?.type !== 'query') {\n throw new AthenaApiError({\n kind: AthenaApiErrorKind.Request,\n message:\n 'useAthenaGraphQL runs one query: name it with operationName when the document holds several, and send a mutation with useAthenaGraphQLMutation',\n method: 'POST',\n path: '/graphql',\n });\n }\n return athenaGraphQL<TData, TVariables>(config, text, variables, {\n operationName,\n timeoutMs,\n rateLimitRetry,\n headers,\n signal,\n });\n },\n enabled: enabledAnd(enabled, config.backendUrl.length > 0),\n },\n client,\n );\n}\n\n/**\n * `useAthenaGraphQLMutation`'s options: TanStack Query's mutation options\n * (`onSuccess`, `onError`, `onMutate`…) and the request's.\n */\nexport type UseAthenaGraphQLMutationOptions<TData, TVariables, TOnMutateResult = unknown> = Omit<\n UseMutationOptions<TData, AthenaApiError, TVariables, TOnMutateResult>,\n 'mutationFn'\n> &\n AthenaGraphQLHookRequestOptions;\n\n/**\n * Write with one GraphQL mutation on agora's `/graphql`, as the signed-in\n * person: `mutate(variables)` / `mutateAsync(variables)`. Never retried (a 429\n * from agora's limiter is waited out by the transport: it refuses before\n * anything runs). A write already sent is not cancelled when its component\n * unmounts, since agora may have applied it; `timeoutMs` still bounds it.\n * Read the reads it changes again with `useInvalidateAthenaQueries`.\n *\n * ```tsx\n * const invalidate = useInvalidateAthenaQueries();\n * const rename = useAthenaGraphQLMutation<RenameResult, { id: string; title: string }>(RENAME, {\n * onSuccess: () => invalidate({ operationNames: ['Asset'] }),\n * });\n * rename.mutate({ id, title });\n * ```\n */\nexport function useAthenaGraphQLMutation<\n TData = unknown,\n TVariables extends object = AthenaGraphQLVariables,\n TOnMutateResult = unknown,\n>(\n document: AthenaGraphQLDocument<TData, TVariables>,\n options: UseAthenaGraphQLMutationOptions<TData, TVariables, TOnMutateResult> = {},\n): UseMutationResult<TData, AthenaApiError, TVariables, TOnMutateResult> {\n const config = useAthenaConfig();\n const client = useAthenaDataQueryClient();\n const { operationName, timeoutMs, rateLimitRetry, headers, ...mutationOptions } = options;\n const text = String(document);\n return useMutation(\n {\n ...mutationOptions,\n // TODO(#54756): send an Idempotency-Key per call once agora honours one, so\n // a write sent twice (a retry, a double click) applies once.\n mutationFn: (variables: TVariables) =>\n athenaGraphQL<TData, TVariables>(config, text, variables, {\n operationName,\n timeoutMs,\n rateLimitRetry,\n headers,\n }),\n },\n client,\n );\n}\n"],"names":[],"mappings":";;;;;AA+DO,SAAS,iBAKd,UACA,WACA,UAAqD,CAAA,GACV;AAC3C,QAAM,SAAS,gBAAA;AACf,QAAM,QAAQ,mBAAA;AACd,QAAM,SAAS,yBAAA;AACf,QAAM,EAAE,eAAe,WAAW,gBAAgB,SAAS,SAAS,GAAG,iBAAiB;AACxF,QAAM,OAAO,OAAO,QAAQ;AAC5B,SAAO;AAAA,IACL;AAAA,MACE,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,GAAG;AAAA,MACH,UAAU,CAAC,GAAG,OAAO,eAAe,SAAS,MAAM,aAAa,CAAA,GAAI,iBAAiB,IAAI;AAAA,MACzF,SAAS,CAAC,EAAE,aAAa;;AAIvB,cAAI,8BAAyB,MAAM,aAAa,MAA5C,mBAA+C,UAAS,SAAS;AACnE,gBAAM,IAAI,eAAe;AAAA,YACvB,MAAM,mBAAmB;AAAA,YACzB,SACE;AAAA,YACF,QAAQ;AAAA,YACR,MAAM;AAAA,UAAA,CACP;AAAA,QACH;AACA,eAAO,cAAiC,QAAQ,MAAM,WAAW;AAAA,UAC/D;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MACH;AAAA,MACA,SAAS,WAAW,SAAS,OAAO,WAAW,SAAS,CAAC;AAAA,IAAA;AAAA,IAE3D;AAAA,EAAA;AAEJ;AA4BO,SAAS,yBAKd,UACA,UAA+E,IACR;AACvE,QAAM,SAAS,gBAAA;AACf,QAAM,SAAS,yBAAA;AACf,QAAM,EAAE,eAAe,WAAW,gBAAgB,SAAS,GAAG,oBAAoB;AAClF,QAAM,OAAO,OAAO,QAAQ;AAC5B,SAAO;AAAA,IACL;AAAA,MACE,GAAG;AAAA;AAAA;AAAA,MAGH,YAAY,CAAC,cACX,cAAiC,QAAQ,MAAM,WAAW;AAAA,QACxD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,IAEL;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const reactQuery = require("@tanstack/react-query");
|
|
4
|
+
const AthenaContext = require("../provider/AthenaContext.cjs");
|
|
5
|
+
const athenaDataClient = require("./athena-data-client.cjs");
|
|
6
|
+
const athenaRequest = require("./athena-request.cjs");
|
|
7
|
+
function useAthenaRest(path, options = {}) {
|
|
8
|
+
const config = AthenaContext.useAthenaConfig();
|
|
9
|
+
const scope = athenaDataClient.useAthenaDataScope();
|
|
10
|
+
const client = athenaDataClient.useAthenaDataQueryClient();
|
|
11
|
+
const { params, timeoutMs, rateLimitRetry, headers, enabled, ...queryOptions } = options;
|
|
12
|
+
return reactQuery.useQuery(
|
|
13
|
+
{
|
|
14
|
+
retry: athenaDataClient.retryAthenaRead,
|
|
15
|
+
retryDelay: athenaDataClient.athenaRetryDelay,
|
|
16
|
+
staleTime: athenaDataClient.ATHENA_DATA_STALE_MS,
|
|
17
|
+
...queryOptions,
|
|
18
|
+
queryKey: [...scope, athenaDataClient.AthenaDataKind.Rest, path, params ?? {}],
|
|
19
|
+
queryFn: ({ signal }) => athenaRequest.athenaFetchJson(config, path ?? "", {
|
|
20
|
+
method: "GET",
|
|
21
|
+
params,
|
|
22
|
+
timeoutMs,
|
|
23
|
+
rateLimitRetry,
|
|
24
|
+
headers,
|
|
25
|
+
signal
|
|
26
|
+
}),
|
|
27
|
+
enabled: athenaDataClient.enabledAnd(enabled, path !== null && config.backendUrl.length > 0)
|
|
28
|
+
},
|
|
29
|
+
client
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
exports.useAthenaRest = useAthenaRest;
|
|
33
|
+
//# sourceMappingURL=use-athena-rest.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-athena-rest.cjs","sources":["../../src/data/use-athena-rest.ts"],"sourcesContent":["import { type UseQueryOptions, type UseQueryResult, useQuery } from '@tanstack/react-query';\nimport { useAthenaConfig } from '../provider/AthenaContext';\nimport type { AthenaApiError } from './athena-api-error';\nimport {\n ATHENA_DATA_STALE_MS,\n AthenaDataKind,\n athenaRetryDelay,\n enabledAnd,\n retryAthenaRead,\n useAthenaDataQueryClient,\n useAthenaDataScope,\n} from './athena-data-client';\nimport { type AthenaRequestOptions, athenaFetchJson } from './athena-request';\n\n/**\n * `useAthenaRest`'s options: TanStack Query's (`enabled`, `select`,\n * `staleTime`…), the query-string `params` (part of the cache key) and the\n * request's (`timeoutMs`, `rateLimitRetry`, `headers`).\n */\nexport type UseAthenaRestOptions<TData, TSelected = TData> = Omit<\n UseQueryOptions<TData, AthenaApiError, TSelected>,\n 'queryKey' | 'queryFn'\n> &\n Pick<AthenaRequestOptions, 'params' | 'timeoutMs' | 'rateLimitRetry' | 'headers'>;\n\n/**\n * Read one of agora's JSON `GET` routes as the signed-in person: `path` under\n * the provider's `backendUrl` (`/api/v0/me`, `/api/v0/assets/{id}`…), `null`\n * to hold the read idle. Cached per identity, path and `params`; retried and\n * cancelled as `useAthenaGraphQL` is. `TData` is the caller's word for what the\n * route answers.\n *\n * ```tsx\n * const me = useAthenaRest<{ user_id: string; workspace_id: string }>('/api/v0/me');\n * ```\n */\nexport function useAthenaRest<TData = unknown, TSelected = TData>(\n path: string | null,\n options: UseAthenaRestOptions<TData, TSelected> = {},\n): UseQueryResult<TSelected, AthenaApiError> {\n const config = useAthenaConfig();\n const scope = useAthenaDataScope();\n const client = useAthenaDataQueryClient();\n const { params, timeoutMs, rateLimitRetry, headers, enabled, ...queryOptions } = options;\n return useQuery(\n {\n retry: retryAthenaRead,\n retryDelay: athenaRetryDelay,\n staleTime: ATHENA_DATA_STALE_MS,\n ...queryOptions,\n queryKey: [...scope, AthenaDataKind.Rest, path, params ?? {}],\n queryFn: ({ signal }) =>\n athenaFetchJson<TData>(config, path ?? '', {\n method: 'GET',\n params,\n timeoutMs,\n rateLimitRetry,\n headers,\n signal,\n }),\n enabled: enabledAnd(enabled, path !== null && config.backendUrl.length > 0),\n },\n client,\n );\n}\n"],"names":["useAthenaConfig","useAthenaDataScope","useAthenaDataQueryClient","useQuery","retryAthenaRead","athenaRetryDelay","ATHENA_DATA_STALE_MS","AthenaDataKind","athenaFetchJson","enabledAnd"],"mappings":";;;;;;AAoCO,SAAS,cACd,MACA,UAAkD,IACP;AAC3C,QAAM,SAASA,cAAAA,gBAAA;AACf,QAAM,QAAQC,iBAAAA,mBAAA;AACd,QAAM,SAASC,iBAAAA,yBAAA;AACf,QAAM,EAAE,QAAQ,WAAW,gBAAgB,SAAS,SAAS,GAAG,iBAAiB;AACjF,SAAOC,WAAAA;AAAAA,IACL;AAAA,MACE,OAAOC,iBAAAA;AAAAA,MACP,YAAYC,iBAAAA;AAAAA,MACZ,WAAWC,iBAAAA;AAAAA,MACX,GAAG;AAAA,MACH,UAAU,CAAC,GAAG,OAAOC,iBAAAA,eAAe,MAAM,MAAM,UAAU,EAAE;AAAA,MAC5D,SAAS,CAAC,EAAE,OAAA,MACVC,cAAAA,gBAAuB,QAAQ,QAAQ,IAAI;AAAA,QACzC,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,MACH,SAASC,iBAAAA,WAAW,SAAS,SAAS,QAAQ,OAAO,WAAW,SAAS,CAAC;AAAA,IAAA;AAAA,IAE5E;AAAA,EAAA;AAEJ;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
2
|
+
import type { AthenaApiError } from './athena-api-error';
|
|
3
|
+
import { type AthenaRequestOptions } from './athena-request';
|
|
4
|
+
/**
|
|
5
|
+
* `useAthenaRest`'s options: TanStack Query's (`enabled`, `select`,
|
|
6
|
+
* `staleTime`…), the query-string `params` (part of the cache key) and the
|
|
7
|
+
* request's (`timeoutMs`, `rateLimitRetry`, `headers`).
|
|
8
|
+
*/
|
|
9
|
+
export type UseAthenaRestOptions<TData, TSelected = TData> = Omit<UseQueryOptions<TData, AthenaApiError, TSelected>, 'queryKey' | 'queryFn'> & Pick<AthenaRequestOptions, 'params' | 'timeoutMs' | 'rateLimitRetry' | 'headers'>;
|
|
10
|
+
/**
|
|
11
|
+
* Read one of agora's JSON `GET` routes as the signed-in person: `path` under
|
|
12
|
+
* the provider's `backendUrl` (`/api/v0/me`, `/api/v0/assets/{id}`…), `null`
|
|
13
|
+
* to hold the read idle. Cached per identity, path and `params`; retried and
|
|
14
|
+
* cancelled as `useAthenaGraphQL` is. `TData` is the caller's word for what the
|
|
15
|
+
* route answers.
|
|
16
|
+
*
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const me = useAthenaRest<{ user_id: string; workspace_id: string }>('/api/v0/me');
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function useAthenaRest<TData = unknown, TSelected = TData>(path: string | null, options?: UseAthenaRestOptions<TData, TSelected>): UseQueryResult<TSelected, AthenaApiError>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useQuery } from "@tanstack/react-query";
|
|
2
|
+
import { useAthenaConfig } from "../provider/AthenaContext.js";
|
|
3
|
+
import { useAthenaDataScope, useAthenaDataQueryClient, AthenaDataKind, ATHENA_DATA_STALE_MS, athenaRetryDelay, retryAthenaRead, enabledAnd } from "./athena-data-client.js";
|
|
4
|
+
import { athenaFetchJson } from "./athena-request.js";
|
|
5
|
+
function useAthenaRest(path, options = {}) {
|
|
6
|
+
const config = useAthenaConfig();
|
|
7
|
+
const scope = useAthenaDataScope();
|
|
8
|
+
const client = useAthenaDataQueryClient();
|
|
9
|
+
const { params, timeoutMs, rateLimitRetry, headers, enabled, ...queryOptions } = options;
|
|
10
|
+
return useQuery(
|
|
11
|
+
{
|
|
12
|
+
retry: retryAthenaRead,
|
|
13
|
+
retryDelay: athenaRetryDelay,
|
|
14
|
+
staleTime: ATHENA_DATA_STALE_MS,
|
|
15
|
+
...queryOptions,
|
|
16
|
+
queryKey: [...scope, AthenaDataKind.Rest, path, params ?? {}],
|
|
17
|
+
queryFn: ({ signal }) => athenaFetchJson(config, path ?? "", {
|
|
18
|
+
method: "GET",
|
|
19
|
+
params,
|
|
20
|
+
timeoutMs,
|
|
21
|
+
rateLimitRetry,
|
|
22
|
+
headers,
|
|
23
|
+
signal
|
|
24
|
+
}),
|
|
25
|
+
enabled: enabledAnd(enabled, path !== null && config.backendUrl.length > 0)
|
|
26
|
+
},
|
|
27
|
+
client
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
useAthenaRest
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=use-athena-rest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-athena-rest.js","sources":["../../src/data/use-athena-rest.ts"],"sourcesContent":["import { type UseQueryOptions, type UseQueryResult, useQuery } from '@tanstack/react-query';\nimport { useAthenaConfig } from '../provider/AthenaContext';\nimport type { AthenaApiError } from './athena-api-error';\nimport {\n ATHENA_DATA_STALE_MS,\n AthenaDataKind,\n athenaRetryDelay,\n enabledAnd,\n retryAthenaRead,\n useAthenaDataQueryClient,\n useAthenaDataScope,\n} from './athena-data-client';\nimport { type AthenaRequestOptions, athenaFetchJson } from './athena-request';\n\n/**\n * `useAthenaRest`'s options: TanStack Query's (`enabled`, `select`,\n * `staleTime`…), the query-string `params` (part of the cache key) and the\n * request's (`timeoutMs`, `rateLimitRetry`, `headers`).\n */\nexport type UseAthenaRestOptions<TData, TSelected = TData> = Omit<\n UseQueryOptions<TData, AthenaApiError, TSelected>,\n 'queryKey' | 'queryFn'\n> &\n Pick<AthenaRequestOptions, 'params' | 'timeoutMs' | 'rateLimitRetry' | 'headers'>;\n\n/**\n * Read one of agora's JSON `GET` routes as the signed-in person: `path` under\n * the provider's `backendUrl` (`/api/v0/me`, `/api/v0/assets/{id}`…), `null`\n * to hold the read idle. Cached per identity, path and `params`; retried and\n * cancelled as `useAthenaGraphQL` is. `TData` is the caller's word for what the\n * route answers.\n *\n * ```tsx\n * const me = useAthenaRest<{ user_id: string; workspace_id: string }>('/api/v0/me');\n * ```\n */\nexport function useAthenaRest<TData = unknown, TSelected = TData>(\n path: string | null,\n options: UseAthenaRestOptions<TData, TSelected> = {},\n): UseQueryResult<TSelected, AthenaApiError> {\n const config = useAthenaConfig();\n const scope = useAthenaDataScope();\n const client = useAthenaDataQueryClient();\n const { params, timeoutMs, rateLimitRetry, headers, enabled, ...queryOptions } = options;\n return useQuery(\n {\n retry: retryAthenaRead,\n retryDelay: athenaRetryDelay,\n staleTime: ATHENA_DATA_STALE_MS,\n ...queryOptions,\n queryKey: [...scope, AthenaDataKind.Rest, path, params ?? {}],\n queryFn: ({ signal }) =>\n athenaFetchJson<TData>(config, path ?? '', {\n method: 'GET',\n params,\n timeoutMs,\n rateLimitRetry,\n headers,\n signal,\n }),\n enabled: enabledAnd(enabled, path !== null && config.backendUrl.length > 0),\n },\n client,\n );\n}\n"],"names":[],"mappings":";;;;AAoCO,SAAS,cACd,MACA,UAAkD,IACP;AAC3C,QAAM,SAAS,gBAAA;AACf,QAAM,QAAQ,mBAAA;AACd,QAAM,SAAS,yBAAA;AACf,QAAM,EAAE,QAAQ,WAAW,gBAAgB,SAAS,SAAS,GAAG,iBAAiB;AACjF,SAAO;AAAA,IACL;AAAA,MACE,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,GAAG;AAAA,MACH,UAAU,CAAC,GAAG,OAAO,eAAe,MAAM,MAAM,UAAU,EAAE;AAAA,MAC5D,SAAS,CAAC,EAAE,OAAA,MACV,gBAAuB,QAAQ,QAAQ,IAAI;AAAA,QACzC,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,MACH,SAAS,WAAW,SAAS,SAAS,QAAQ,OAAO,WAAW,SAAS,CAAC;AAAA,IAAA;AAAA,IAE5E;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const reactQuery = require("@tanstack/react-query");
|
|
4
|
+
const AthenaContext = require("../provider/AthenaContext.cjs");
|
|
5
|
+
const athenaDataClient = require("./athena-data-client.cjs");
|
|
6
|
+
const athenaRequest = require("./athena-request.cjs");
|
|
7
|
+
function semanticQueryPath(semanticModelId) {
|
|
8
|
+
return `/api/v0/semantic-model/${encodeURIComponent(semanticModelId)}/query`;
|
|
9
|
+
}
|
|
10
|
+
const SEMANTIC_QUERY_TIMEOUT_MS = 9e4;
|
|
11
|
+
function useSemanticQuery({
|
|
12
|
+
semanticModelId,
|
|
13
|
+
query,
|
|
14
|
+
timeoutMs = SEMANTIC_QUERY_TIMEOUT_MS,
|
|
15
|
+
rateLimitRetry,
|
|
16
|
+
enabled,
|
|
17
|
+
...queryOptions
|
|
18
|
+
}) {
|
|
19
|
+
const config = AthenaContext.useAthenaConfig();
|
|
20
|
+
const scope = athenaDataClient.useAthenaDataScope();
|
|
21
|
+
const client = athenaDataClient.useAthenaDataQueryClient();
|
|
22
|
+
return reactQuery.useQuery(
|
|
23
|
+
{
|
|
24
|
+
retry: athenaDataClient.retryAthenaRead,
|
|
25
|
+
retryDelay: athenaDataClient.athenaRetryDelay,
|
|
26
|
+
staleTime: athenaDataClient.ATHENA_DATA_STALE_MS,
|
|
27
|
+
...queryOptions,
|
|
28
|
+
queryKey: [...scope, athenaDataClient.AthenaDataKind.SemanticQuery, semanticModelId, query],
|
|
29
|
+
queryFn: ({ signal }) => athenaRequest.athenaFetchJson(config, semanticQueryPath(semanticModelId ?? ""), {
|
|
30
|
+
method: "POST",
|
|
31
|
+
json: query,
|
|
32
|
+
timeoutMs,
|
|
33
|
+
rateLimitRetry,
|
|
34
|
+
signal
|
|
35
|
+
}),
|
|
36
|
+
enabled: athenaDataClient.enabledAnd(enabled, semanticModelId !== null && config.backendUrl.length > 0)
|
|
37
|
+
},
|
|
38
|
+
client
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
exports.SEMANTIC_QUERY_TIMEOUT_MS = SEMANTIC_QUERY_TIMEOUT_MS;
|
|
42
|
+
exports.semanticQueryPath = semanticQueryPath;
|
|
43
|
+
exports.useSemanticQuery = useSemanticQuery;
|
|
44
|
+
//# sourceMappingURL=use-semantic-query.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-semantic-query.cjs","sources":["../../src/data/use-semantic-query.ts"],"sourcesContent":["/**\n * A semantic model's metrics, read through agora's public semantic query API\n * (`POST /api/v0/semantic-model/{asset_id}/query`, `query_semantic_model` in\n * `agora/agora/web/api/public/v0/views/semantic_model.py`). The query runs as\n * the signed-in person: agora checks their access to the model, and to its\n * lakehouse sources, before Cube runs it. The types below are that route's own\n * request and response (`SemanticModelQueryRequestIn`,\n * `SemanticModelQueryResponseOut` in `agora/openapi.json`), field for field.\n */\nimport { type UseQueryOptions, type UseQueryResult, useQuery } from '@tanstack/react-query';\nimport { useAthenaConfig } from '../provider/AthenaContext';\nimport type { AthenaApiError } from './athena-api-error';\nimport {\n ATHENA_DATA_STALE_MS,\n AthenaDataKind,\n athenaRetryDelay,\n enabledAnd,\n retryAthenaRead,\n useAthenaDataQueryClient,\n useAthenaDataScope,\n} from './athena-data-client';\nimport { type AthenaRequestOptions, athenaFetchJson } from './athena-request';\n\n/** An order entry: `[member, direction]`, or `{ member, direction }`. */\nexport type AthenaSemanticOrder =\n | readonly [member: string, direction: 'asc' | 'desc']\n | { member: string; direction?: 'asc' | 'desc' };\n\n/** A metric query (`SemanticModelQueryRequestIn`). */\nexport interface AthenaSemanticQuery {\n /** Measure identifiers, e.g. `[\"orders.total_revenue\"]`. */\n measures: readonly string[];\n /** Dimension identifiers to group by. */\n dimensions?: readonly string[];\n /** Cube filters. */\n filters?: readonly Readonly<Record<string, unknown>>[];\n /**\n * Cube time dimensions, e.g.\n * `[{ dimension: 'orders.created_at', granularity: 'month', dateRange: ['2026-01-01', '2026-06-30'] }]`.\n */\n time_dimensions?: readonly Readonly<Record<string, unknown>>[];\n /** The order applied before `limit` (a server-side top N). */\n order?: readonly AthenaSemanticOrder[];\n /** At most this many rows, 1 to 5000 (agora's default 100); `truncated` says when there were more. */\n limit?: number;\n}\n\n/** One source table's Iceberg state when the query ran (`SemanticModelSourceSnapshotOut`). */\nexport interface AthenaSemanticSourceSnapshot {\n namespace: string;\n table: string;\n table_uuid: string;\n snapshot_id?: string | null;\n committed_at?: string | null;\n}\n\n/**\n * A metric query's answer (`SemanticModelQueryResponseOut`). The fields after\n * `row_count` are optional: an older agora leaves them out.\n */\nexport interface AthenaSemanticQueryResult {\n /** The rows, keyed by member. */\n data: Record<string, unknown>[];\n row_count: number;\n /** True when the query had more rows than `limit`. */\n truncated?: boolean;\n /** How long the semantic layer and its engine took, in ms. */\n elapsed_ms?: number;\n /** When the data is current as of (ISO-8601 UTC); `null` when the engine exposes no snapshot. */\n data_as_of?: string | null;\n /** `'snapshot'` (lakehouse snapshots) or `'query_time'`. */\n as_of_kind?: string | null;\n /** When the engine computed the result (ISO-8601 UTC). */\n queried_at?: string | null;\n source_snapshots?: AthenaSemanticSourceSnapshot[] | null;\n /** The deployed model definition that computed the rows. */\n schema_hash?: string | null;\n schema_version?: number | null;\n}\n\n/** The public semantic query route of a model. */\nexport function semanticQueryPath(semanticModelId: string): string {\n return `/api/v0/semantic-model/${encodeURIComponent(semanticModelId)}/query`;\n}\n\n/**\n * agora waits up to 60 s for the semantic layer before it answers 504 with\n * `Retry-After: 15`, so a semantic query is given longer than other requests.\n */\nexport const SEMANTIC_QUERY_TIMEOUT_MS = 90_000;\n\nexport type UseSemanticQueryOptions<TSelected = AthenaSemanticQueryResult> = Omit<\n UseQueryOptions<AthenaSemanticQueryResult, AthenaApiError, TSelected>,\n 'queryKey' | 'queryFn'\n> &\n Pick<AthenaRequestOptions, 'timeoutMs' | 'rateLimitRetry'> & {\n /** The semantic model asset (`asset_…`); `null` holds the read idle. */\n semanticModelId: string | null;\n query: AthenaSemanticQuery;\n };\n\n/**\n * Run a metric query on a semantic model as the signed-in person. Cached per\n * identity, model and query; a 504 (the engine still computing) is asked again\n * after the `Retry-After` agora sends, which joins the query still running;\n * a refusal (401 / 403 / 404) or an invalid query (400 / 422) is not.\n *\n * ```tsx\n * const revenue = useSemanticQuery({\n * semanticModelId,\n * query: { measures: ['orders.total_revenue'], dimensions: ['orders.region'], limit: 20 },\n * });\n * ```\n */\nexport function useSemanticQuery<TSelected = AthenaSemanticQueryResult>({\n semanticModelId,\n query,\n timeoutMs = SEMANTIC_QUERY_TIMEOUT_MS,\n rateLimitRetry,\n enabled,\n ...queryOptions\n}: UseSemanticQueryOptions<TSelected>): UseQueryResult<TSelected, AthenaApiError> {\n const config = useAthenaConfig();\n const scope = useAthenaDataScope();\n const client = useAthenaDataQueryClient();\n return useQuery(\n {\n retry: retryAthenaRead,\n retryDelay: athenaRetryDelay,\n staleTime: ATHENA_DATA_STALE_MS,\n ...queryOptions,\n queryKey: [...scope, AthenaDataKind.SemanticQuery, semanticModelId, query],\n queryFn: ({ signal }) =>\n athenaFetchJson<AthenaSemanticQueryResult>(config, semanticQueryPath(semanticModelId ?? ''), {\n method: 'POST',\n json: query,\n timeoutMs,\n rateLimitRetry,\n signal,\n }),\n enabled: enabledAnd(enabled, semanticModelId !== null && config.backendUrl.length > 0),\n },\n client,\n );\n}\n"],"names":["useAthenaConfig","useAthenaDataScope","useAthenaDataQueryClient","useQuery","retryAthenaRead","athenaRetryDelay","ATHENA_DATA_STALE_MS","AthenaDataKind","athenaFetchJson","enabledAnd"],"mappings":";;;;;;AAiFO,SAAS,kBAAkB,iBAAiC;AACjE,SAAO,0BAA0B,mBAAmB,eAAe,CAAC;AACtE;AAMO,MAAM,4BAA4B;AAyBlC,SAAS,iBAAwD;AAAA,EACtE;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAkF;AAChF,QAAM,SAASA,cAAAA,gBAAA;AACf,QAAM,QAAQC,iBAAAA,mBAAA;AACd,QAAM,SAASC,iBAAAA,yBAAA;AACf,SAAOC,WAAAA;AAAAA,IACL;AAAA,MACE,OAAOC,iBAAAA;AAAAA,MACP,YAAYC,iBAAAA;AAAAA,MACZ,WAAWC,iBAAAA;AAAAA,MACX,GAAG;AAAA,MACH,UAAU,CAAC,GAAG,OAAOC,iBAAAA,eAAe,eAAe,iBAAiB,KAAK;AAAA,MACzE,SAAS,CAAC,EAAE,aACVC,cAAAA,gBAA2C,QAAQ,kBAAkB,mBAAmB,EAAE,GAAG;AAAA,QAC3F,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,MACH,SAASC,iBAAAA,WAAW,SAAS,oBAAoB,QAAQ,OAAO,WAAW,SAAS,CAAC;AAAA,IAAA;AAAA,IAEvF;AAAA,EAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A semantic model's metrics, read through agora's public semantic query API
|
|
3
|
+
* (`POST /api/v0/semantic-model/{asset_id}/query`, `query_semantic_model` in
|
|
4
|
+
* `agora/agora/web/api/public/v0/views/semantic_model.py`). The query runs as
|
|
5
|
+
* the signed-in person: agora checks their access to the model, and to its
|
|
6
|
+
* lakehouse sources, before Cube runs it. The types below are that route's own
|
|
7
|
+
* request and response (`SemanticModelQueryRequestIn`,
|
|
8
|
+
* `SemanticModelQueryResponseOut` in `agora/openapi.json`), field for field.
|
|
9
|
+
*/
|
|
10
|
+
import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
11
|
+
import type { AthenaApiError } from './athena-api-error';
|
|
12
|
+
import { type AthenaRequestOptions } from './athena-request';
|
|
13
|
+
/** An order entry: `[member, direction]`, or `{ member, direction }`. */
|
|
14
|
+
export type AthenaSemanticOrder = readonly [member: string, direction: 'asc' | 'desc'] | {
|
|
15
|
+
member: string;
|
|
16
|
+
direction?: 'asc' | 'desc';
|
|
17
|
+
};
|
|
18
|
+
/** A metric query (`SemanticModelQueryRequestIn`). */
|
|
19
|
+
export interface AthenaSemanticQuery {
|
|
20
|
+
/** Measure identifiers, e.g. `["orders.total_revenue"]`. */
|
|
21
|
+
measures: readonly string[];
|
|
22
|
+
/** Dimension identifiers to group by. */
|
|
23
|
+
dimensions?: readonly string[];
|
|
24
|
+
/** Cube filters. */
|
|
25
|
+
filters?: readonly Readonly<Record<string, unknown>>[];
|
|
26
|
+
/**
|
|
27
|
+
* Cube time dimensions, e.g.
|
|
28
|
+
* `[{ dimension: 'orders.created_at', granularity: 'month', dateRange: ['2026-01-01', '2026-06-30'] }]`.
|
|
29
|
+
*/
|
|
30
|
+
time_dimensions?: readonly Readonly<Record<string, unknown>>[];
|
|
31
|
+
/** The order applied before `limit` (a server-side top N). */
|
|
32
|
+
order?: readonly AthenaSemanticOrder[];
|
|
33
|
+
/** At most this many rows, 1 to 5000 (agora's default 100); `truncated` says when there were more. */
|
|
34
|
+
limit?: number;
|
|
35
|
+
}
|
|
36
|
+
/** One source table's Iceberg state when the query ran (`SemanticModelSourceSnapshotOut`). */
|
|
37
|
+
export interface AthenaSemanticSourceSnapshot {
|
|
38
|
+
namespace: string;
|
|
39
|
+
table: string;
|
|
40
|
+
table_uuid: string;
|
|
41
|
+
snapshot_id?: string | null;
|
|
42
|
+
committed_at?: string | null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A metric query's answer (`SemanticModelQueryResponseOut`). The fields after
|
|
46
|
+
* `row_count` are optional: an older agora leaves them out.
|
|
47
|
+
*/
|
|
48
|
+
export interface AthenaSemanticQueryResult {
|
|
49
|
+
/** The rows, keyed by member. */
|
|
50
|
+
data: Record<string, unknown>[];
|
|
51
|
+
row_count: number;
|
|
52
|
+
/** True when the query had more rows than `limit`. */
|
|
53
|
+
truncated?: boolean;
|
|
54
|
+
/** How long the semantic layer and its engine took, in ms. */
|
|
55
|
+
elapsed_ms?: number;
|
|
56
|
+
/** When the data is current as of (ISO-8601 UTC); `null` when the engine exposes no snapshot. */
|
|
57
|
+
data_as_of?: string | null;
|
|
58
|
+
/** `'snapshot'` (lakehouse snapshots) or `'query_time'`. */
|
|
59
|
+
as_of_kind?: string | null;
|
|
60
|
+
/** When the engine computed the result (ISO-8601 UTC). */
|
|
61
|
+
queried_at?: string | null;
|
|
62
|
+
source_snapshots?: AthenaSemanticSourceSnapshot[] | null;
|
|
63
|
+
/** The deployed model definition that computed the rows. */
|
|
64
|
+
schema_hash?: string | null;
|
|
65
|
+
schema_version?: number | null;
|
|
66
|
+
}
|
|
67
|
+
/** The public semantic query route of a model. */
|
|
68
|
+
export declare function semanticQueryPath(semanticModelId: string): string;
|
|
69
|
+
/**
|
|
70
|
+
* agora waits up to 60 s for the semantic layer before it answers 504 with
|
|
71
|
+
* `Retry-After: 15`, so a semantic query is given longer than other requests.
|
|
72
|
+
*/
|
|
73
|
+
export declare const SEMANTIC_QUERY_TIMEOUT_MS = 90000;
|
|
74
|
+
export type UseSemanticQueryOptions<TSelected = AthenaSemanticQueryResult> = Omit<UseQueryOptions<AthenaSemanticQueryResult, AthenaApiError, TSelected>, 'queryKey' | 'queryFn'> & Pick<AthenaRequestOptions, 'timeoutMs' | 'rateLimitRetry'> & {
|
|
75
|
+
/** The semantic model asset (`asset_…`); `null` holds the read idle. */
|
|
76
|
+
semanticModelId: string | null;
|
|
77
|
+
query: AthenaSemanticQuery;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Run a metric query on a semantic model as the signed-in person. Cached per
|
|
81
|
+
* identity, model and query; a 504 (the engine still computing) is asked again
|
|
82
|
+
* after the `Retry-After` agora sends, which joins the query still running;
|
|
83
|
+
* a refusal (401 / 403 / 404) or an invalid query (400 / 422) is not.
|
|
84
|
+
*
|
|
85
|
+
* ```tsx
|
|
86
|
+
* const revenue = useSemanticQuery({
|
|
87
|
+
* semanticModelId,
|
|
88
|
+
* query: { measures: ['orders.total_revenue'], dimensions: ['orders.region'], limit: 20 },
|
|
89
|
+
* });
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function useSemanticQuery<TSelected = AthenaSemanticQueryResult>({ semanticModelId, query, timeoutMs, rateLimitRetry, enabled, ...queryOptions }: UseSemanticQueryOptions<TSelected>): UseQueryResult<TSelected, AthenaApiError>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { useQuery } from "@tanstack/react-query";
|
|
2
|
+
import { useAthenaConfig } from "../provider/AthenaContext.js";
|
|
3
|
+
import { useAthenaDataScope, useAthenaDataQueryClient, AthenaDataKind, ATHENA_DATA_STALE_MS, athenaRetryDelay, retryAthenaRead, enabledAnd } from "./athena-data-client.js";
|
|
4
|
+
import { athenaFetchJson } from "./athena-request.js";
|
|
5
|
+
function semanticQueryPath(semanticModelId) {
|
|
6
|
+
return `/api/v0/semantic-model/${encodeURIComponent(semanticModelId)}/query`;
|
|
7
|
+
}
|
|
8
|
+
const SEMANTIC_QUERY_TIMEOUT_MS = 9e4;
|
|
9
|
+
function useSemanticQuery({
|
|
10
|
+
semanticModelId,
|
|
11
|
+
query,
|
|
12
|
+
timeoutMs = SEMANTIC_QUERY_TIMEOUT_MS,
|
|
13
|
+
rateLimitRetry,
|
|
14
|
+
enabled,
|
|
15
|
+
...queryOptions
|
|
16
|
+
}) {
|
|
17
|
+
const config = useAthenaConfig();
|
|
18
|
+
const scope = useAthenaDataScope();
|
|
19
|
+
const client = useAthenaDataQueryClient();
|
|
20
|
+
return useQuery(
|
|
21
|
+
{
|
|
22
|
+
retry: retryAthenaRead,
|
|
23
|
+
retryDelay: athenaRetryDelay,
|
|
24
|
+
staleTime: ATHENA_DATA_STALE_MS,
|
|
25
|
+
...queryOptions,
|
|
26
|
+
queryKey: [...scope, AthenaDataKind.SemanticQuery, semanticModelId, query],
|
|
27
|
+
queryFn: ({ signal }) => athenaFetchJson(config, semanticQueryPath(semanticModelId ?? ""), {
|
|
28
|
+
method: "POST",
|
|
29
|
+
json: query,
|
|
30
|
+
timeoutMs,
|
|
31
|
+
rateLimitRetry,
|
|
32
|
+
signal
|
|
33
|
+
}),
|
|
34
|
+
enabled: enabledAnd(enabled, semanticModelId !== null && config.backendUrl.length > 0)
|
|
35
|
+
},
|
|
36
|
+
client
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
export {
|
|
40
|
+
SEMANTIC_QUERY_TIMEOUT_MS,
|
|
41
|
+
semanticQueryPath,
|
|
42
|
+
useSemanticQuery
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=use-semantic-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-semantic-query.js","sources":["../../src/data/use-semantic-query.ts"],"sourcesContent":["/**\n * A semantic model's metrics, read through agora's public semantic query API\n * (`POST /api/v0/semantic-model/{asset_id}/query`, `query_semantic_model` in\n * `agora/agora/web/api/public/v0/views/semantic_model.py`). The query runs as\n * the signed-in person: agora checks their access to the model, and to its\n * lakehouse sources, before Cube runs it. The types below are that route's own\n * request and response (`SemanticModelQueryRequestIn`,\n * `SemanticModelQueryResponseOut` in `agora/openapi.json`), field for field.\n */\nimport { type UseQueryOptions, type UseQueryResult, useQuery } from '@tanstack/react-query';\nimport { useAthenaConfig } from '../provider/AthenaContext';\nimport type { AthenaApiError } from './athena-api-error';\nimport {\n ATHENA_DATA_STALE_MS,\n AthenaDataKind,\n athenaRetryDelay,\n enabledAnd,\n retryAthenaRead,\n useAthenaDataQueryClient,\n useAthenaDataScope,\n} from './athena-data-client';\nimport { type AthenaRequestOptions, athenaFetchJson } from './athena-request';\n\n/** An order entry: `[member, direction]`, or `{ member, direction }`. */\nexport type AthenaSemanticOrder =\n | readonly [member: string, direction: 'asc' | 'desc']\n | { member: string; direction?: 'asc' | 'desc' };\n\n/** A metric query (`SemanticModelQueryRequestIn`). */\nexport interface AthenaSemanticQuery {\n /** Measure identifiers, e.g. `[\"orders.total_revenue\"]`. */\n measures: readonly string[];\n /** Dimension identifiers to group by. */\n dimensions?: readonly string[];\n /** Cube filters. */\n filters?: readonly Readonly<Record<string, unknown>>[];\n /**\n * Cube time dimensions, e.g.\n * `[{ dimension: 'orders.created_at', granularity: 'month', dateRange: ['2026-01-01', '2026-06-30'] }]`.\n */\n time_dimensions?: readonly Readonly<Record<string, unknown>>[];\n /** The order applied before `limit` (a server-side top N). */\n order?: readonly AthenaSemanticOrder[];\n /** At most this many rows, 1 to 5000 (agora's default 100); `truncated` says when there were more. */\n limit?: number;\n}\n\n/** One source table's Iceberg state when the query ran (`SemanticModelSourceSnapshotOut`). */\nexport interface AthenaSemanticSourceSnapshot {\n namespace: string;\n table: string;\n table_uuid: string;\n snapshot_id?: string | null;\n committed_at?: string | null;\n}\n\n/**\n * A metric query's answer (`SemanticModelQueryResponseOut`). The fields after\n * `row_count` are optional: an older agora leaves them out.\n */\nexport interface AthenaSemanticQueryResult {\n /** The rows, keyed by member. */\n data: Record<string, unknown>[];\n row_count: number;\n /** True when the query had more rows than `limit`. */\n truncated?: boolean;\n /** How long the semantic layer and its engine took, in ms. */\n elapsed_ms?: number;\n /** When the data is current as of (ISO-8601 UTC); `null` when the engine exposes no snapshot. */\n data_as_of?: string | null;\n /** `'snapshot'` (lakehouse snapshots) or `'query_time'`. */\n as_of_kind?: string | null;\n /** When the engine computed the result (ISO-8601 UTC). */\n queried_at?: string | null;\n source_snapshots?: AthenaSemanticSourceSnapshot[] | null;\n /** The deployed model definition that computed the rows. */\n schema_hash?: string | null;\n schema_version?: number | null;\n}\n\n/** The public semantic query route of a model. */\nexport function semanticQueryPath(semanticModelId: string): string {\n return `/api/v0/semantic-model/${encodeURIComponent(semanticModelId)}/query`;\n}\n\n/**\n * agora waits up to 60 s for the semantic layer before it answers 504 with\n * `Retry-After: 15`, so a semantic query is given longer than other requests.\n */\nexport const SEMANTIC_QUERY_TIMEOUT_MS = 90_000;\n\nexport type UseSemanticQueryOptions<TSelected = AthenaSemanticQueryResult> = Omit<\n UseQueryOptions<AthenaSemanticQueryResult, AthenaApiError, TSelected>,\n 'queryKey' | 'queryFn'\n> &\n Pick<AthenaRequestOptions, 'timeoutMs' | 'rateLimitRetry'> & {\n /** The semantic model asset (`asset_…`); `null` holds the read idle. */\n semanticModelId: string | null;\n query: AthenaSemanticQuery;\n };\n\n/**\n * Run a metric query on a semantic model as the signed-in person. Cached per\n * identity, model and query; a 504 (the engine still computing) is asked again\n * after the `Retry-After` agora sends, which joins the query still running;\n * a refusal (401 / 403 / 404) or an invalid query (400 / 422) is not.\n *\n * ```tsx\n * const revenue = useSemanticQuery({\n * semanticModelId,\n * query: { measures: ['orders.total_revenue'], dimensions: ['orders.region'], limit: 20 },\n * });\n * ```\n */\nexport function useSemanticQuery<TSelected = AthenaSemanticQueryResult>({\n semanticModelId,\n query,\n timeoutMs = SEMANTIC_QUERY_TIMEOUT_MS,\n rateLimitRetry,\n enabled,\n ...queryOptions\n}: UseSemanticQueryOptions<TSelected>): UseQueryResult<TSelected, AthenaApiError> {\n const config = useAthenaConfig();\n const scope = useAthenaDataScope();\n const client = useAthenaDataQueryClient();\n return useQuery(\n {\n retry: retryAthenaRead,\n retryDelay: athenaRetryDelay,\n staleTime: ATHENA_DATA_STALE_MS,\n ...queryOptions,\n queryKey: [...scope, AthenaDataKind.SemanticQuery, semanticModelId, query],\n queryFn: ({ signal }) =>\n athenaFetchJson<AthenaSemanticQueryResult>(config, semanticQueryPath(semanticModelId ?? ''), {\n method: 'POST',\n json: query,\n timeoutMs,\n rateLimitRetry,\n signal,\n }),\n enabled: enabledAnd(enabled, semanticModelId !== null && config.backendUrl.length > 0),\n },\n client,\n );\n}\n"],"names":[],"mappings":";;;;AAiFO,SAAS,kBAAkB,iBAAiC;AACjE,SAAO,0BAA0B,mBAAmB,eAAe,CAAC;AACtE;AAMO,MAAM,4BAA4B;AAyBlC,SAAS,iBAAwD;AAAA,EACtE;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAkF;AAChF,QAAM,SAAS,gBAAA;AACf,QAAM,QAAQ,mBAAA;AACd,QAAM,SAAS,yBAAA;AACf,SAAO;AAAA,IACL;AAAA,MACE,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,GAAG;AAAA,MACH,UAAU,CAAC,GAAG,OAAO,eAAe,eAAe,iBAAiB,KAAK;AAAA,MACzE,SAAS,CAAC,EAAE,aACV,gBAA2C,QAAQ,kBAAkB,mBAAmB,EAAE,GAAG;AAAA,QAC3F,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AAAA,MACH,SAAS,WAAW,SAAS,oBAAoB,QAAQ,OAAO,WAAW,SAAS,CAAC;AAAA,IAAA;AAAA,IAEvF;AAAA,EAAA;AAEJ;"}
|