@athenaintel/react 0.20.0 → 0.21.1
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 +86 -0
- package/dist/assets/use-asset-embed.cjs +8 -0
- package/dist/assets/use-asset-embed.cjs.map +1 -1
- package/dist/assets/use-asset-embed.js +8 -0
- package/dist/assets/use-asset-embed.js.map +1 -1
- package/dist/chat/StatewireApprovalCard.cjs +22 -4
- package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
- package/dist/chat/StatewireApprovalCard.d.ts +14 -0
- package/dist/chat/StatewireApprovalCard.js +23 -5
- package/dist/chat/StatewireApprovalCard.js.map +1 -1
- package/dist/chat/StatewireClientToolBridge.cjs +2 -1
- package/dist/chat/StatewireClientToolBridge.cjs.map +1 -1
- package/dist/chat/StatewireClientToolBridge.js +2 -1
- package/dist/chat/StatewireClientToolBridge.js.map +1 -1
- package/dist/chat/StatewireQueuedMessages.cjs +2 -1
- package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
- package/dist/chat/StatewireQueuedMessages.js +2 -1
- package/dist/chat/StatewireQueuedMessages.js.map +1 -1
- package/dist/chat/athena-citation-links.cjs +17 -1
- package/dist/chat/athena-citation-links.cjs.map +1 -1
- package/dist/chat/athena-citation-links.js +17 -1
- package/dist/chat/athena-citation-links.js.map +1 -1
- package/dist/chat/statewire-client-tools.cjs +2 -1
- package/dist/chat/statewire-client-tools.cjs.map +1 -1
- package/dist/chat/statewire-client-tools.js +2 -1
- package/dist/chat/statewire-client-tools.js.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingCard.cjs +69 -187
- package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -1
- package/dist/chat/super-grouping/SuperGroupingCard.d.ts +10 -6
- package/dist/chat/super-grouping/SuperGroupingCard.js +73 -191
- package/dist/chat/super-grouping/SuperGroupingCard.js.map +1 -1
- package/dist/chat/super-grouping/ToolTimeline.cjs +131 -0
- package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -0
- package/dist/chat/super-grouping/ToolTimeline.d.ts +16 -0
- package/dist/chat/super-grouping/ToolTimeline.js +131 -0
- package/dist/chat/super-grouping/ToolTimeline.js.map +1 -0
- package/dist/chat/super-grouping/activity-timeline.cjs +14 -8
- package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -1
- package/dist/chat/super-grouping/activity-timeline.d.ts +3 -0
- package/dist/chat/super-grouping/activity-timeline.js +14 -8
- package/dist/chat/super-grouping/activity-timeline.js.map +1 -1
- package/dist/chat/super-grouping/timeline-step.cjs +65 -0
- package/dist/chat/super-grouping/timeline-step.cjs.map +1 -0
- package/dist/chat/super-grouping/timeline-step.d.ts +17 -0
- package/dist/chat/super-grouping/timeline-step.js +65 -0
- package/dist/chat/super-grouping/timeline-step.js.map +1 -0
- package/dist/chat/tiptap-text.cjs +8 -8
- package/dist/chat/tiptap-text.cjs.map +1 -1
- package/dist/chat/use-athena-run-live.cjs +2 -1
- package/dist/chat/use-athena-run-live.cjs.map +1 -1
- package/dist/chat/use-athena-run-live.js +2 -1
- package/dist/chat/use-athena-run-live.js.map +1 -1
- package/dist/chat/use-statewire-approval-request.cjs +7 -2
- package/dist/chat/use-statewire-approval-request.cjs.map +1 -1
- package/dist/chat/use-statewire-approval-request.d.ts +12 -2
- package/dist/chat/use-statewire-approval-request.js +8 -3
- package/dist/chat/use-statewire-approval-request.js.map +1 -1
- package/dist/chat-ui/composer/tiptap-composer.cjs +24 -65
- package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
- package/dist/chat-ui/composer/tiptap-composer.js +24 -65
- package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
- package/dist/chat-ui/index.cjs +2 -1
- package/dist/chat-ui/index.cjs.map +1 -1
- package/dist/chat-ui/index.js +2 -1
- package/dist/chat-ui/index.js.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.cjs +49 -4
- package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
- package/dist/chat-ui/mentions/mention-chip.d.ts +11 -0
- package/dist/chat-ui/mentions/mention-chip.js +50 -5
- package/dist/chat-ui/mentions/mention-chip.js.map +1 -1
- package/dist/chat-ui/mentions/mention-extension.cjs +18 -6
- package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -1
- package/dist/chat-ui/mentions/mention-extension.d.ts +2 -0
- package/dist/chat-ui/mentions/mention-extension.js +18 -6
- package/dist/chat-ui/mentions/mention-extension.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js +1 -1
- package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +9 -6
- package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-item.d.ts +2 -2
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js +10 -7
- package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs +2 -2
- package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/components/menu-list.d.ts +2 -2
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js +2 -2
- package/dist/chat-ui/mentions/suggestions/components/menu-list.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +2 -1
- package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +3 -2
- package/dist/chat-ui/mentions/suggestions/data/api-client.js +2 -1
- package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -1
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs +6 -6
- 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.js +6 -6
- package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js.map +1 -1
- package/dist/chat-ui/messages/message-components.cjs +6 -29
- package/dist/chat-ui/messages/message-components.cjs.map +1 -1
- package/dist/chat-ui/messages/message-components.d.ts +1 -13
- package/dist/chat-ui/messages/message-components.js +8 -31
- package/dist/chat-ui/messages/message-components.js.map +1 -1
- package/dist/chat-ui/messages/runtime-message.cjs +3 -2
- package/dist/chat-ui/messages/runtime-message.cjs.map +1 -1
- package/dist/chat-ui/messages/runtime-message.js +3 -2
- package/dist/chat-ui/messages/runtime-message.js.map +1 -1
- package/dist/chat-ui/messages/statewire-continue-run.cjs +23 -8
- package/dist/chat-ui/messages/statewire-continue-run.cjs.map +1 -1
- package/dist/chat-ui/messages/statewire-continue-run.d.ts +14 -4
- package/dist/chat-ui/messages/statewire-continue-run.js +23 -8
- package/dist/chat-ui/messages/statewire-continue-run.js.map +1 -1
- package/dist/chat-ui/messages/user-edit-composer.cjs +2 -1
- package/dist/chat-ui/messages/user-edit-composer.cjs.map +1 -1
- package/dist/chat-ui/messages/user-edit-composer.js +2 -1
- package/dist/chat-ui/messages/user-edit-composer.js.map +1 -1
- package/dist/chat-ui/rich-text/chat-message-body.cjs +76 -0
- package/dist/chat-ui/rich-text/chat-message-body.cjs.map +1 -0
- package/dist/chat-ui/rich-text/chat-message-body.d.ts +5 -0
- package/dist/chat-ui/rich-text/chat-message-body.js +76 -0
- package/dist/chat-ui/rich-text/chat-message-body.js.map +1 -0
- package/dist/chat-ui/rich-text/chat-node-views.cjs +51 -0
- package/dist/chat-ui/rich-text/chat-node-views.cjs.map +1 -0
- package/dist/chat-ui/rich-text/chat-node-views.d.ts +13 -0
- package/dist/chat-ui/rich-text/chat-node-views.js +51 -0
- package/dist/chat-ui/rich-text/chat-node-views.js.map +1 -0
- package/dist/chat-ui/rich-text/chat-text-schema.cjs +70 -0
- package/dist/chat-ui/rich-text/chat-text-schema.cjs.map +1 -0
- package/dist/chat-ui/rich-text/chat-text-schema.d.ts +7 -0
- package/dist/chat-ui/rich-text/chat-text-schema.js +70 -0
- package/dist/chat-ui/rich-text/chat-text-schema.js.map +1 -0
- package/dist/chat-ui/rich-text/dom-output-spec.cjs +83 -0
- package/dist/chat-ui/rich-text/dom-output-spec.cjs.map +1 -0
- package/dist/chat-ui/rich-text/dom-output-spec.d.ts +11 -0
- package/dist/chat-ui/rich-text/dom-output-spec.js +83 -0
- package/dist/chat-ui/rich-text/dom-output-spec.js.map +1 -0
- package/dist/chat-ui/statewire.cjs +2 -1
- package/dist/chat-ui/statewire.cjs.map +1 -1
- package/dist/chat-ui/statewire.js +2 -1
- package/dist/chat-ui/statewire.js.map +1 -1
- package/dist/chat-ui/thread/statewire-history-edge.cjs +2 -1
- package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
- package/dist/chat-ui/thread/statewire-history-edge.js +2 -1
- package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/node_modules/qrcode-generator/dist/qrcode.cjs +32 -0
- package/dist/node_modules/qrcode-generator/dist/qrcode.cjs.map +1 -0
- package/dist/node_modules/qrcode-generator/dist/qrcode.js +31 -0
- package/dist/node_modules/qrcode-generator/dist/qrcode.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.cjs +44 -0
- package/dist/node_modules/zod/v4/classic/errors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/errors.js +44 -0
- package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.cjs +43 -0
- package/dist/node_modules/zod/v4/classic/iso.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/iso.js +43 -0
- package/dist/node_modules/zod/v4/classic/iso.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.cjs +29 -0
- package/dist/node_modules/zod/v4/classic/parse.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/parse.js +29 -0
- package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.cjs +871 -0
- package/dist/node_modules/zod/v4/classic/schemas.cjs.map +1 -0
- package/dist/node_modules/zod/v4/classic/schemas.js +871 -0
- package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/api.cjs +570 -0
- package/dist/node_modules/zod/v4/core/api.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/api.js +570 -0
- package/dist/node_modules/zod/v4/core/api.js.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.cjs +411 -0
- package/dist/node_modules/zod/v4/core/checks.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/checks.js +411 -0
- package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
- package/dist/node_modules/zod/v4/core/core.cjs +77 -0
- package/dist/node_modules/zod/v4/core/core.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/core.js +77 -0
- package/dist/node_modules/zod/v4/core/core.js.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.cjs +38 -0
- package/dist/node_modules/zod/v4/core/doc.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/doc.js +38 -0
- package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.cjs +76 -0
- package/dist/node_modules/zod/v4/core/errors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/errors.js +76 -0
- package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs +312 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js +312 -0
- package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.cjs +96 -0
- package/dist/node_modules/zod/v4/core/parse.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/parse.js +96 -0
- package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.cjs +86 -0
- package/dist/node_modules/zod/v4/core/regexes.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/regexes.js +86 -0
- package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.cjs +52 -0
- package/dist/node_modules/zod/v4/core/registries.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/registries.js +52 -0
- package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.cjs +1412 -0
- package/dist/node_modules/zod/v4/core/schemas.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/schemas.js +1413 -0
- package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs +370 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js +370 -0
- package/dist/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
- package/dist/node_modules/zod/v4/core/util.cjs +444 -0
- package/dist/node_modules/zod/v4/core/util.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/util.js +444 -0
- package/dist/node_modules/zod/v4/core/util.js.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.cjs +9 -0
- package/dist/node_modules/zod/v4/core/versions.cjs.map +1 -0
- package/dist/node_modules/zod/v4/core/versions.js +9 -0
- package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
- package/dist/packages/agent-runtime/src/client-tool-bridge.cjs +7 -1
- package/dist/packages/agent-runtime/src/client-tool-bridge.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/client-tool-bridge.js +7 -1
- package/dist/packages/agent-runtime/src/client-tool-bridge.js.map +1 -1
- package/dist/packages/agent-runtime/src/conversation-index.cjs +19 -10
- package/dist/packages/agent-runtime/src/conversation-index.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/conversation-index.js +19 -10
- package/dist/packages/agent-runtime/src/conversation-index.js.map +1 -1
- package/dist/packages/agent-runtime/src/conversation-list.cjs +4 -0
- package/dist/packages/agent-runtime/src/conversation-list.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/conversation-list.js +4 -0
- package/dist/packages/agent-runtime/src/conversation-list.js.map +1 -1
- package/dist/packages/agent-runtime/src/edit-command.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/edit-command.js.map +1 -1
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs +2 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.js +2 -0
- package/dist/packages/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
- package/dist/packages/agent-runtime/src/interrupts.cjs +31 -7
- package/dist/packages/agent-runtime/src/interrupts.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/interrupts.js +31 -7
- package/dist/packages/agent-runtime/src/interrupts.js.map +1 -1
- package/dist/packages/agent-runtime/src/messages.cjs +35 -5
- package/dist/packages/agent-runtime/src/messages.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/messages.js +35 -5
- package/dist/packages/agent-runtime/src/messages.js.map +1 -1
- package/dist/packages/agent-runtime/src/protocol.cjs +4 -6
- package/dist/packages/agent-runtime/src/protocol.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/protocol.js +4 -6
- package/dist/packages/agent-runtime/src/protocol.js.map +1 -1
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs +296 -14
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js +293 -11
- package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -1
- package/dist/packages/agent-runtime/src/screen-point.cjs +68 -0
- package/dist/packages/agent-runtime/src/screen-point.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/screen-point.js +68 -0
- package/dist/packages/agent-runtime/src/screen-point.js.map +1 -0
- package/dist/packages/agent-runtime/src/statewire-transport.cjs +6 -1
- package/dist/packages/agent-runtime/src/statewire-transport.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/statewire-transport.js +6 -1
- package/dist/packages/agent-runtime/src/statewire-transport.js.map +1 -1
- package/dist/packages/agent-runtime/src/thread-handoff.cjs +85 -0
- package/dist/packages/agent-runtime/src/thread-handoff.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/thread-handoff.js +85 -0
- package/dist/packages/agent-runtime/src/thread-handoff.js.map +1 -0
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs +1 -1
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.js +1 -1
- package/dist/packages/agent-runtime/src/thread-snapshot-cache.js.map +1 -1
- package/dist/packages/agent-runtime/src/tool-metadata.cjs +0 -8
- package/dist/packages/agent-runtime/src/tool-metadata.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/tool-metadata.js +0 -8
- package/dist/packages/agent-runtime/src/tool-metadata.js.map +1 -1
- package/dist/packages/agent-runtime/src/use-deep-agent-config.cjs +14 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-config.cjs.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-config.js +14 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-config.js.map +1 -0
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs +21 -5
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js +21 -5
- package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js.map +1 -1
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs +13 -3
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js +14 -4
- package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js.map +1 -1
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs +35 -15
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.js +35 -15
- package/dist/packages/agent-runtime/src/use-deep-agent-thread.js.map +1 -1
- package/dist/packages/agent-runtime/src/voice-presentation.cjs.map +1 -1
- package/dist/packages/agent-runtime/src/voice-presentation.js.map +1 -1
- package/dist/packages/react/package.json.cjs +1 -1
- package/dist/packages/react/package.json.js +1 -1
- package/dist/provider/AthenaProvider.cjs +2 -1
- package/dist/provider/AthenaProvider.cjs.map +1 -1
- package/dist/provider/AthenaProvider.js +2 -1
- package/dist/provider/AthenaProvider.js.map +1 -1
- package/dist/runtime/statewire-lifecycle.cjs +2 -1
- package/dist/runtime/statewire-lifecycle.cjs.map +1 -1
- package/dist/runtime/statewire-lifecycle.js +2 -1
- package/dist/runtime/statewire-lifecycle.js.map +1 -1
- package/dist/runtime/useAthenaStatewireRuntime.cjs +2 -1
- package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
- package/dist/runtime/useAthenaStatewireRuntime.js +2 -1
- package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/threads/api.cjs +29 -0
- package/dist/threads/api.cjs.map +1 -1
- package/dist/threads/api.d.ts +15 -0
- package/dist/threads/api.js +29 -0
- package/dist/threads/api.js.map +1 -1
- package/dist/threads/conversation-list-fetcher.cjs +4 -0
- package/dist/threads/conversation-list-fetcher.cjs.map +1 -1
- package/dist/threads/conversation-list-fetcher.js +4 -0
- package/dist/threads/conversation-list-fetcher.js.map +1 -1
- package/dist/threads/credential-shape.cjs +15 -0
- package/dist/threads/credential-shape.cjs.map +1 -0
- package/dist/threads/credential-shape.d.ts +17 -0
- package/dist/threads/credential-shape.js +15 -0
- package/dist/threads/credential-shape.js.map +1 -0
- package/dist/threads/statewire-thread-list.cjs +37 -4
- package/dist/threads/statewire-thread-list.cjs.map +1 -1
- package/dist/threads/statewire-thread-list.js +38 -5
- package/dist/threads/statewire-thread-list.js.map +1 -1
- package/dist/threads/use-rest-conversation-history.cjs +2 -1
- package/dist/threads/use-rest-conversation-history.cjs.map +1 -1
- package/dist/threads/use-rest-conversation-history.js +2 -1
- package/dist/threads/use-rest-conversation-history.js.map +1 -1
- package/dist/threads/use-statewire-conversation-history.cjs +5 -2
- package/dist/threads/use-statewire-conversation-history.cjs.map +1 -1
- package/dist/threads/use-statewire-conversation-history.d.ts +4 -1
- package/dist/threads/use-statewire-conversation-history.js +5 -2
- package/dist/threads/use-statewire-conversation-history.js.map +1 -1
- package/dist/toolkits/index.cjs +0 -7
- package/dist/toolkits/index.cjs.map +1 -1
- package/dist/toolkits/index.d.ts +0 -2
- package/dist/toolkits/index.js +0 -7
- package/dist/toolkits/index.js.map +1 -1
- package/dist/tools/index.cjs +2 -1
- package/dist/tools/index.cjs.map +1 -1
- package/dist/tools/index.js +2 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/misc-tool-uis.cjs +2 -1
- package/dist/tools/misc-tool-uis.cjs.map +1 -1
- package/dist/tools/misc-tool-uis.js +2 -1
- package/dist/tools/misc-tool-uis.js.map +1 -1
- package/dist/tools/primitives.cjs +2 -1
- package/dist/tools/primitives.cjs.map +1 -1
- package/dist/tools/primitives.js +2 -1
- package/dist/tools/primitives.js.map +1 -1
- package/dist/tools/tool-fallback.cjs +2 -1
- package/dist/tools/tool-fallback.cjs.map +1 -1
- package/dist/tools/tool-fallback.js +2 -1
- package/dist/tools/tool-fallback.js.map +1 -1
- package/dist/tools/voice-update-tool-ui.cjs +2 -1
- package/dist/tools/voice-update-tool-ui.cjs.map +1 -1
- package/dist/tools/voice-update-tool-ui.js +2 -1
- package/dist/tools/voice-update-tool-ui.js.map +1 -1
- package/dist/voice/index.cjs +6 -0
- package/dist/voice/index.cjs.map +1 -0
- package/dist/voice/index.d.ts +2 -0
- package/dist/voice/index.js +6 -0
- package/dist/voice/index.js.map +1 -0
- package/dist/voice/use-athena-voice-session.cjs +315 -0
- package/dist/voice/use-athena-voice-session.cjs.map +1 -0
- package/dist/voice/use-athena-voice-session.d.ts +180 -0
- package/dist/voice/use-athena-voice-session.js +315 -0
- package/dist/voice/use-athena-voice-session.js.map +1 -0
- package/package.json +18 -4
package/dist/toolkits/index.js
CHANGED
|
@@ -29,8 +29,6 @@ const Toolkits = {
|
|
|
29
29
|
NOTEBOOK: "notebook_toolkit",
|
|
30
30
|
/** Presentation slide editing. */
|
|
31
31
|
PRESENTATION: "presentation_toolkit",
|
|
32
|
-
/** Presentation slide editing (OnlyOffice, deprecated). */
|
|
33
|
-
PRESENTATION_ONLYOFFICE: "presentation_onlyoffice_toolkit",
|
|
34
32
|
/** PowerPoint presentation creation from templates. */
|
|
35
33
|
POWERPOINT: "powerpoint_deck_toolkit",
|
|
36
34
|
/** PowerPoint presentation creation from templates (pptx-studio). */
|
|
@@ -144,11 +142,6 @@ const TOOLKIT_DISPLAY_INFO = {
|
|
|
144
142
|
description: "Edit presentation slides.",
|
|
145
143
|
icon: "Presentation"
|
|
146
144
|
},
|
|
147
|
-
[Toolkits.PRESENTATION_ONLYOFFICE]: {
|
|
148
|
-
name: "Presentation v0 (deprecated)",
|
|
149
|
-
description: "Edit presentation slides (OnlyOffice, deprecated).",
|
|
150
|
-
icon: "Presentation"
|
|
151
|
-
},
|
|
152
145
|
[Toolkits.POWERPOINT]: {
|
|
153
146
|
name: "PowerPoint",
|
|
154
147
|
description: "Create PowerPoint decks from templates.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/toolkits/index.ts"],"sourcesContent":["/**\n * Backend toolkit IDs.\n *\n * Pass these to the `tools` prop on `<AthenaProvider>` to enable backend toolkits.\n *\n * @example\n * import { Toolkits } from '@athenaintel/react';\n *\n * <AthenaProvider tools={[Toolkits.DOCUMENT, Toolkits.SPREADSHEET, Toolkits.WEB_SEARCH]}>\n */\nexport const Toolkits = {\n /** Web search and page browsing. */\n WEB_SEARCH: 'web_search_browse_toolkit',\n /** SQL query execution. */\n SQL: 'sql_toolkit',\n /** Azure Blob Storage catalog file operations. */\n AZURE_BLOB_STORAGE: 'azure_blob_storage_toolkit',\n /** Document comments and collaboration. */\n COMMENTS: 'comments_toolkit',\n /** Visual canvas creation. */\n CANVAS: 'canvas_toolkit',\n /** PostgreSQL database management. */\n DATABASE: 'database_toolkit',\n /** Asset collections management. */\n COLLECTIONS: 'collections_toolkit',\n /** Charts, dashboards, and figures. */\n VISUALIZATIONS: 'visualizations_toolkit',\n /** Custom UI creation. */\n USER_INTERFACE: 'user_interface_toolkit',\n /** Agent Operating Procedures. */\n AOP: 'aop_toolkit',\n /** Ephemeral compute environments. */\n COMPUTER_ASSET: 'computer_asset_toolkit',\n /** Web browser automation. */\n BROWSER: 'browser_toolkit',\n /** Virtual machine management. */\n VM: 'vm_toolkit',\n /** Jupyter notebook execution. */\n NOTEBOOK: 'notebook_toolkit',\n /** Presentation slide editing. */\n PRESENTATION: 'presentation_toolkit',\n /** Presentation slide editing (OnlyOffice, deprecated). */\n PRESENTATION_ONLYOFFICE: 'presentation_onlyoffice_toolkit',\n /** PowerPoint presentation creation from templates. */\n POWERPOINT: 'powerpoint_deck_toolkit',\n /** PowerPoint presentation creation from templates (pptx-studio). */\n PRESENTATION_PPTX_STUDIO: 'presentation_pptx_studio_toolkit',\n /** Workspace file management (Olympus Drive). */\n DRIVE: 'olympus_drive_toolkit',\n /** Python code execution. */\n PYTHON: 'python_toolkit',\n /** Multi-account email and calendar (Gmail + Outlook). */\n EMAIL: 'unified_email_toolkit',\n /** Legacy email and calendar operations. */\n EMAIL_CALENDAR: 'email_calendar_toolkit',\n /** Spreadsheet operations. */\n SPREADSHEET: 'spreadsheet_toolkit',\n /** Athena document editing. */\n DOCUMENT: 'document_toolkit',\n /** Word document backend operations. */\n WORD_DOCUMENT: 'word_document_be_toolkit',\n /** Go-To-Market management. */\n GTM: 'gtm_toolkit',\n /** Marketing campaign management. */\n MARKETING: 'marketing_toolkit',\n /** FDE implementations and workflows. */\n FDE: 'fde_toolkit',\n /** SharePoint / Google Drive / workspace file access. */\n EXTERNAL_DRIVE: 'external_drive_toolkit',\n /** Reusable playbooks and prompts. */\n PLAYBOOK: 'playbook_toolkit',\n /** Local Chrome browser control via tunnel. */\n DEVICE_TUNNEL: 'device_tunnel_toolkit',\n /** Project management. */\n PROJECTS: 'projects_toolkit',\n /** Task Studio script execution. */\n TASK_STUDIO: 'task_studio_toolkit',\n /** User memory and preferences. */\n PREFERENCES: 'preferences_toolkit',\n} as const;\n\n/** A toolkit ID string. */\nexport type ToolkitId = (typeof Toolkits)[keyof typeof Toolkits];\n\nexport interface ToolkitDisplayInfo {\n id: string;\n name: string;\n description?: string;\n icon?: string;\n}\n\nconst TOOLKIT_DISPLAY_INFO: Record<string, Omit<ToolkitDisplayInfo, 'id'>> = {\n [Toolkits.WEB_SEARCH]: {\n name: 'Web Search',\n description: 'Search the web and inspect pages.',\n icon: 'Globe',\n },\n [Toolkits.SQL]: {\n name: 'SQL',\n description: 'Run structured SQL queries.',\n icon: 'Database',\n },\n [Toolkits.AZURE_BLOB_STORAGE]: {\n name: 'Azure Blob Storage',\n description: 'List, read, and upload Azure Blob Storage catalog files.',\n icon: 'Cloud',\n },\n [Toolkits.COMMENTS]: {\n name: 'Comments',\n description: 'Work with document comments and reviews.',\n icon: 'MessageSquare',\n },\n [Toolkits.CANVAS]: {\n name: 'Canvas',\n description: 'Create and edit visual canvases.',\n icon: 'LayoutGrid',\n },\n [Toolkits.DATABASE]: {\n name: 'Database',\n description: 'Inspect and manage database assets.',\n icon: 'Database',\n },\n [Toolkits.COLLECTIONS]: {\n name: 'Collections',\n description: 'Manage asset collections.',\n icon: 'Boxes',\n },\n [Toolkits.VISUALIZATIONS]: {\n name: 'Visualizations',\n description: 'Create charts, dashboards, and figures.',\n icon: 'ChartBar',\n },\n [Toolkits.USER_INTERFACE]: {\n name: 'User Interface',\n description: 'Build custom user interfaces.',\n icon: 'PanelTop',\n },\n [Toolkits.AOP]: {\n name: 'AOP',\n description: 'Run Agent Operating Procedures.',\n icon: 'Workflow',\n },\n [Toolkits.COMPUTER_ASSET]: {\n name: 'Computer Asset',\n description: 'Provision and operate computer assets.',\n icon: 'Monitor',\n },\n [Toolkits.BROWSER]: {\n name: 'Browser',\n description: 'Control a web browser.',\n icon: 'Globe',\n },\n [Toolkits.VM]: {\n name: 'Virtual Machine',\n description: 'Manage virtual machine environments.',\n icon: 'Server',\n },\n [Toolkits.NOTEBOOK]: {\n name: 'Notebook',\n description: 'Run Jupyter notebook workflows.',\n icon: 'BookOpen',\n },\n [Toolkits.PRESENTATION]: {\n name: 'Presentation',\n description: 'Edit presentation slides.',\n icon: 'Presentation',\n },\n [Toolkits.PRESENTATION_ONLYOFFICE]: {\n name: 'Presentation v0 (deprecated)',\n description: 'Edit presentation slides (OnlyOffice, deprecated).',\n icon: 'Presentation',\n },\n [Toolkits.POWERPOINT]: {\n name: 'PowerPoint',\n description: 'Create PowerPoint decks from templates.',\n icon: 'Presentation',\n },\n [Toolkits.PRESENTATION_PPTX_STUDIO]: {\n name: 'Presentation',\n description: 'Create PowerPoint presentations from templates (pptx-studio).',\n icon: 'Presentation',\n },\n [Toolkits.DRIVE]: {\n name: 'Olympus Drive',\n description: 'Find and manage workspace files.',\n icon: 'Folder',\n },\n [Toolkits.PYTHON]: {\n name: 'Python',\n description: 'Run Python analysis and automation.',\n icon: 'Code2',\n },\n [Toolkits.EMAIL]: {\n name: 'Email',\n description: 'Work across connected email and calendar accounts.',\n icon: 'Mail',\n },\n [Toolkits.EMAIL_CALENDAR]: {\n name: 'Email & Calendar',\n description: 'Use email and calendar operations.',\n icon: 'Calendar',\n },\n [Toolkits.SPREADSHEET]: {\n name: 'Spreadsheet',\n description: 'Create and edit spreadsheets.',\n icon: 'Table2',\n },\n [Toolkits.DOCUMENT]: {\n name: 'Document',\n description: 'Create and edit Athena documents.',\n icon: 'FileText',\n },\n [Toolkits.WORD_DOCUMENT]: {\n name: 'Word Document',\n description: 'Create and edit Word documents.',\n icon: 'FileText',\n },\n [Toolkits.GTM]: {\n name: 'Go-To-Market',\n description: 'Manage go-to-market workflows.',\n icon: 'BriefcaseBusiness',\n },\n [Toolkits.MARKETING]: {\n name: 'Marketing',\n description: 'Manage marketing campaigns.',\n icon: 'Megaphone',\n },\n [Toolkits.FDE]: {\n name: 'FDE',\n description: 'Build FDE implementations and workflows.',\n icon: 'Workflow',\n },\n [Toolkits.EXTERNAL_DRIVE]: {\n name: 'External Drive',\n description: 'Access SharePoint, Google Drive, and other files.',\n icon: 'HardDrive',\n },\n [Toolkits.PLAYBOOK]: {\n name: 'Playbook',\n description: 'Use reusable playbooks and prompts.',\n icon: 'BookOpen',\n },\n [Toolkits.DEVICE_TUNNEL]: {\n name: 'Device Tunnel',\n description: 'Control a local browser through a tunnel.',\n icon: 'Cable',\n },\n [Toolkits.PROJECTS]: {\n name: 'Projects',\n description: 'Manage project work.',\n icon: 'FolderKanban',\n },\n [Toolkits.TASK_STUDIO]: {\n name: 'Task Studio',\n description: 'Run Task Studio scripts.',\n icon: 'Terminal',\n },\n [Toolkits.PREFERENCES]: {\n name: 'Preferences',\n description: 'Use memory and preference tools.',\n icon: 'Settings',\n },\n semantic_model_toolkit: {\n name: 'Semantic Model',\n description: 'Query semantic models and generate analytics.',\n icon: 'ChartBar',\n },\n semantic_model_dev_toolkit: {\n name: 'Semantic Model Development',\n description: 'Create, validate, and deploy semantic model YAML.',\n icon: 'Database',\n },\n};\n\nconst humanizeToolkitId = (id: string): string => {\n const trimmed = id.trim();\n if (!trimmed) {\n return 'Toolkit';\n }\n\n const withoutSuffix = trimmed.replace(/_toolkit$/, '');\n return withoutSuffix\n .split(/[_-]+/)\n .filter(Boolean)\n .map((word) => {\n if (word.length <= 3) {\n return word.toUpperCase();\n }\n return `${word.charAt(0).toUpperCase()}${word.slice(1)}`;\n })\n .join(' ');\n};\n\nexport const getToolkitDisplayInfo = (id: string): ToolkitDisplayInfo => {\n const info = TOOLKIT_DISPLAY_INFO[id];\n\n return {\n id,\n name: info?.name ?? humanizeToolkitId(id),\n description: info?.description,\n icon: info?.icon ?? 'Package',\n };\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/toolkits/index.ts"],"sourcesContent":["/**\n * Backend toolkit IDs.\n *\n * Pass these to the `tools` prop on `<AthenaProvider>` to enable backend toolkits.\n *\n * @example\n * import { Toolkits } from '@athenaintel/react';\n *\n * <AthenaProvider tools={[Toolkits.DOCUMENT, Toolkits.SPREADSHEET, Toolkits.WEB_SEARCH]}>\n */\nexport const Toolkits = {\n /** Web search and page browsing. */\n WEB_SEARCH: 'web_search_browse_toolkit',\n /** SQL query execution. */\n SQL: 'sql_toolkit',\n /** Azure Blob Storage catalog file operations. */\n AZURE_BLOB_STORAGE: 'azure_blob_storage_toolkit',\n /** Document comments and collaboration. */\n COMMENTS: 'comments_toolkit',\n /** Visual canvas creation. */\n CANVAS: 'canvas_toolkit',\n /** PostgreSQL database management. */\n DATABASE: 'database_toolkit',\n /** Asset collections management. */\n COLLECTIONS: 'collections_toolkit',\n /** Charts, dashboards, and figures. */\n VISUALIZATIONS: 'visualizations_toolkit',\n /** Custom UI creation. */\n USER_INTERFACE: 'user_interface_toolkit',\n /** Agent Operating Procedures. */\n AOP: 'aop_toolkit',\n /** Ephemeral compute environments. */\n COMPUTER_ASSET: 'computer_asset_toolkit',\n /** Web browser automation. */\n BROWSER: 'browser_toolkit',\n /** Virtual machine management. */\n VM: 'vm_toolkit',\n /** Jupyter notebook execution. */\n NOTEBOOK: 'notebook_toolkit',\n /** Presentation slide editing. */\n PRESENTATION: 'presentation_toolkit',\n /** PowerPoint presentation creation from templates. */\n POWERPOINT: 'powerpoint_deck_toolkit',\n /** PowerPoint presentation creation from templates (pptx-studio). */\n PRESENTATION_PPTX_STUDIO: 'presentation_pptx_studio_toolkit',\n /** Workspace file management (Olympus Drive). */\n DRIVE: 'olympus_drive_toolkit',\n /** Python code execution. */\n PYTHON: 'python_toolkit',\n /** Multi-account email and calendar (Gmail + Outlook). */\n EMAIL: 'unified_email_toolkit',\n /** Legacy email and calendar operations. */\n EMAIL_CALENDAR: 'email_calendar_toolkit',\n /** Spreadsheet operations. */\n SPREADSHEET: 'spreadsheet_toolkit',\n /** Athena document editing. */\n DOCUMENT: 'document_toolkit',\n /** Word document backend operations. */\n WORD_DOCUMENT: 'word_document_be_toolkit',\n /** Go-To-Market management. */\n GTM: 'gtm_toolkit',\n /** Marketing campaign management. */\n MARKETING: 'marketing_toolkit',\n /** FDE implementations and workflows. */\n FDE: 'fde_toolkit',\n /** SharePoint / Google Drive / workspace file access. */\n EXTERNAL_DRIVE: 'external_drive_toolkit',\n /** Reusable playbooks and prompts. */\n PLAYBOOK: 'playbook_toolkit',\n /** Local Chrome browser control via tunnel. */\n DEVICE_TUNNEL: 'device_tunnel_toolkit',\n /** Project management. */\n PROJECTS: 'projects_toolkit',\n /** Task Studio script execution. */\n TASK_STUDIO: 'task_studio_toolkit',\n /** User memory and preferences. */\n PREFERENCES: 'preferences_toolkit',\n} as const;\n\n/** A toolkit ID string. */\nexport type ToolkitId = (typeof Toolkits)[keyof typeof Toolkits];\n\nexport interface ToolkitDisplayInfo {\n id: string;\n name: string;\n description?: string;\n icon?: string;\n}\n\nconst TOOLKIT_DISPLAY_INFO: Record<string, Omit<ToolkitDisplayInfo, 'id'>> = {\n [Toolkits.WEB_SEARCH]: {\n name: 'Web Search',\n description: 'Search the web and inspect pages.',\n icon: 'Globe',\n },\n [Toolkits.SQL]: {\n name: 'SQL',\n description: 'Run structured SQL queries.',\n icon: 'Database',\n },\n [Toolkits.AZURE_BLOB_STORAGE]: {\n name: 'Azure Blob Storage',\n description: 'List, read, and upload Azure Blob Storage catalog files.',\n icon: 'Cloud',\n },\n [Toolkits.COMMENTS]: {\n name: 'Comments',\n description: 'Work with document comments and reviews.',\n icon: 'MessageSquare',\n },\n [Toolkits.CANVAS]: {\n name: 'Canvas',\n description: 'Create and edit visual canvases.',\n icon: 'LayoutGrid',\n },\n [Toolkits.DATABASE]: {\n name: 'Database',\n description: 'Inspect and manage database assets.',\n icon: 'Database',\n },\n [Toolkits.COLLECTIONS]: {\n name: 'Collections',\n description: 'Manage asset collections.',\n icon: 'Boxes',\n },\n [Toolkits.VISUALIZATIONS]: {\n name: 'Visualizations',\n description: 'Create charts, dashboards, and figures.',\n icon: 'ChartBar',\n },\n [Toolkits.USER_INTERFACE]: {\n name: 'User Interface',\n description: 'Build custom user interfaces.',\n icon: 'PanelTop',\n },\n [Toolkits.AOP]: {\n name: 'AOP',\n description: 'Run Agent Operating Procedures.',\n icon: 'Workflow',\n },\n [Toolkits.COMPUTER_ASSET]: {\n name: 'Computer Asset',\n description: 'Provision and operate computer assets.',\n icon: 'Monitor',\n },\n [Toolkits.BROWSER]: {\n name: 'Browser',\n description: 'Control a web browser.',\n icon: 'Globe',\n },\n [Toolkits.VM]: {\n name: 'Virtual Machine',\n description: 'Manage virtual machine environments.',\n icon: 'Server',\n },\n [Toolkits.NOTEBOOK]: {\n name: 'Notebook',\n description: 'Run Jupyter notebook workflows.',\n icon: 'BookOpen',\n },\n [Toolkits.PRESENTATION]: {\n name: 'Presentation',\n description: 'Edit presentation slides.',\n icon: 'Presentation',\n },\n [Toolkits.POWERPOINT]: {\n name: 'PowerPoint',\n description: 'Create PowerPoint decks from templates.',\n icon: 'Presentation',\n },\n [Toolkits.PRESENTATION_PPTX_STUDIO]: {\n name: 'Presentation',\n description: 'Create PowerPoint presentations from templates (pptx-studio).',\n icon: 'Presentation',\n },\n [Toolkits.DRIVE]: {\n name: 'Olympus Drive',\n description: 'Find and manage workspace files.',\n icon: 'Folder',\n },\n [Toolkits.PYTHON]: {\n name: 'Python',\n description: 'Run Python analysis and automation.',\n icon: 'Code2',\n },\n [Toolkits.EMAIL]: {\n name: 'Email',\n description: 'Work across connected email and calendar accounts.',\n icon: 'Mail',\n },\n [Toolkits.EMAIL_CALENDAR]: {\n name: 'Email & Calendar',\n description: 'Use email and calendar operations.',\n icon: 'Calendar',\n },\n [Toolkits.SPREADSHEET]: {\n name: 'Spreadsheet',\n description: 'Create and edit spreadsheets.',\n icon: 'Table2',\n },\n [Toolkits.DOCUMENT]: {\n name: 'Document',\n description: 'Create and edit Athena documents.',\n icon: 'FileText',\n },\n [Toolkits.WORD_DOCUMENT]: {\n name: 'Word Document',\n description: 'Create and edit Word documents.',\n icon: 'FileText',\n },\n [Toolkits.GTM]: {\n name: 'Go-To-Market',\n description: 'Manage go-to-market workflows.',\n icon: 'BriefcaseBusiness',\n },\n [Toolkits.MARKETING]: {\n name: 'Marketing',\n description: 'Manage marketing campaigns.',\n icon: 'Megaphone',\n },\n [Toolkits.FDE]: {\n name: 'FDE',\n description: 'Build FDE implementations and workflows.',\n icon: 'Workflow',\n },\n [Toolkits.EXTERNAL_DRIVE]: {\n name: 'External Drive',\n description: 'Access SharePoint, Google Drive, and other files.',\n icon: 'HardDrive',\n },\n [Toolkits.PLAYBOOK]: {\n name: 'Playbook',\n description: 'Use reusable playbooks and prompts.',\n icon: 'BookOpen',\n },\n [Toolkits.DEVICE_TUNNEL]: {\n name: 'Device Tunnel',\n description: 'Control a local browser through a tunnel.',\n icon: 'Cable',\n },\n [Toolkits.PROJECTS]: {\n name: 'Projects',\n description: 'Manage project work.',\n icon: 'FolderKanban',\n },\n [Toolkits.TASK_STUDIO]: {\n name: 'Task Studio',\n description: 'Run Task Studio scripts.',\n icon: 'Terminal',\n },\n [Toolkits.PREFERENCES]: {\n name: 'Preferences',\n description: 'Use memory and preference tools.',\n icon: 'Settings',\n },\n semantic_model_toolkit: {\n name: 'Semantic Model',\n description: 'Query semantic models and generate analytics.',\n icon: 'ChartBar',\n },\n semantic_model_dev_toolkit: {\n name: 'Semantic Model Development',\n description: 'Create, validate, and deploy semantic model YAML.',\n icon: 'Database',\n },\n};\n\nconst humanizeToolkitId = (id: string): string => {\n const trimmed = id.trim();\n if (!trimmed) {\n return 'Toolkit';\n }\n\n const withoutSuffix = trimmed.replace(/_toolkit$/, '');\n return withoutSuffix\n .split(/[_-]+/)\n .filter(Boolean)\n .map((word) => {\n if (word.length <= 3) {\n return word.toUpperCase();\n }\n return `${word.charAt(0).toUpperCase()}${word.slice(1)}`;\n })\n .join(' ');\n};\n\nexport const getToolkitDisplayInfo = (id: string): ToolkitDisplayInfo => {\n const info = TOOLKIT_DISPLAY_INFO[id];\n\n return {\n id,\n name: info?.name ?? humanizeToolkitId(id),\n description: info?.description,\n icon: info?.icon ?? 'Package',\n };\n};\n"],"names":[],"mappings":"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"}
|
package/dist/tools/index.cjs
CHANGED
|
@@ -18,10 +18,11 @@ require("../packages/agent-runtime/src/statewire-state.cjs");
|
|
|
18
18
|
require("../packages/agent-runtime/src/messages.cjs");
|
|
19
19
|
require("@assistant-ui/react-statewire");
|
|
20
20
|
require("@assistant-ui/store");
|
|
21
|
-
require("
|
|
21
|
+
require("../packages/agent-runtime/src/quota-safe-local-storage-session.cjs");
|
|
22
22
|
require("../packages/agent-runtime/src/statewire-attach-observer.cjs");
|
|
23
23
|
require("../packages/agent-runtime/src/thread-status.cjs");
|
|
24
24
|
require("@assistant-ui/core");
|
|
25
|
+
require("../packages/agent-runtime/src/thread-handoff.cjs");
|
|
25
26
|
exports.ToolFallback = toolFallback.ToolFallback;
|
|
26
27
|
exports.ToolFallbackArgs = toolFallback.ToolFallbackArgs;
|
|
27
28
|
exports.ToolFallbackContent = toolFallback.ToolFallbackContent;
|
package/dist/tools/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/tools/index.js
CHANGED
|
@@ -16,10 +16,11 @@ import "../packages/agent-runtime/src/statewire-state.js";
|
|
|
16
16
|
import "../packages/agent-runtime/src/messages.js";
|
|
17
17
|
import "@assistant-ui/react-statewire";
|
|
18
18
|
import "@assistant-ui/store";
|
|
19
|
-
import "
|
|
19
|
+
import "../packages/agent-runtime/src/quota-safe-local-storage-session.js";
|
|
20
20
|
import "../packages/agent-runtime/src/statewire-attach-observer.js";
|
|
21
21
|
import "../packages/agent-runtime/src/thread-status.js";
|
|
22
22
|
import "@assistant-ui/core";
|
|
23
|
+
import "../packages/agent-runtime/src/thread-handoff.js";
|
|
23
24
|
export {
|
|
24
25
|
CopyToolSpecButton,
|
|
25
26
|
ExpandableSection,
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -14,10 +14,11 @@ require("../packages/agent-runtime/src/statewire-state.cjs");
|
|
|
14
14
|
require("../packages/agent-runtime/src/messages.cjs");
|
|
15
15
|
require("@assistant-ui/react-statewire");
|
|
16
16
|
require("@assistant-ui/store");
|
|
17
|
-
require("
|
|
17
|
+
require("../packages/agent-runtime/src/quota-safe-local-storage-session.cjs");
|
|
18
18
|
require("../packages/agent-runtime/src/statewire-attach-observer.cjs");
|
|
19
19
|
require("../packages/agent-runtime/src/thread-status.cjs");
|
|
20
20
|
require("@assistant-ui/core");
|
|
21
|
+
require("../packages/agent-runtime/src/thread-handoff.cjs");
|
|
21
22
|
const primitives = require("./primitives.cjs");
|
|
22
23
|
const toolFallback = require("./tool-fallback.cjs");
|
|
23
24
|
const InstallPackageToolUIImpl = (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc-tool-uis.cjs","sources":["../../src/tools/misc-tool-uis.tsx"],"sourcesContent":["/**\n * Small dedicated cards for tools whose generic fallback rendering read\n * poorly: currently the pip installer (Olympus registers it; the SDK's own\n * registry includes it).\n */\nimport { PackageIcon } from \"lucide-react\";\nimport { memo } from \"react\";\nimport type { ToolCallMessagePartComponent } from \"@assistant-ui/react\";\nimport {\n classifyToolResult,\n describePackage,\n isToolResultSuccess,\n} from \"@athenaintel/agent-runtime\";\nimport { ExpandableSection, normalizeResult, ToolCard } from \"./primitives\";\nimport { ToolFallback } from \"./tool-fallback\";\n\nconst InstallPackageToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status } = props;\n // An install the user refused at the approval gate is neither installed\n // nor failed: the generic card owns the rejected treatment.\n if (classifyToolResult({ status, result }).state === \"rejected\") {\n return <ToolFallback {...props} icon={PackageIcon} />;\n }\n const typedArgs = (args ?? {}) as Record<string, unknown>;\n const packageName = describePackage(typedArgs);\n const isRunning = status?.type === \"running\";\n const isFailed =\n status?.type === \"incomplete\" || (status?.type === \"complete\" && !isToolResultSuccess(result));\n const data = normalizeResult(result);\n const detail =\n typeof result === \"string\" ? result : data ? JSON.stringify(data, null, 2) : null;\n\n return (\n <ToolCard\n icon={PackageIcon}\n status={isFailed && status?.type === \"complete\" ? \"incomplete\" : (status?.type ?? \"complete\")}\n title={\n isRunning\n ? \"Installing package...\"\n : isFailed\n ? \"Couldn't install package\"\n : \"Installed package\"\n }\n subtitle={packageName}\n toolName={toolName}\n error={status?.type === \"incomplete\" ? String(status.error ?? \"\") || undefined : undefined}\n args={typedArgs}\n result={result}\n >\n {!isRunning && detail ? (\n <ExpandableSection label=\"Show output\">\n <pre className=\"max-h-64 overflow-auto whitespace-pre-wrap break-all text-[11px] leading-snug text-muted-foreground\">\n {detail}\n </pre>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const InstallPackageToolUI = memo(\n InstallPackageToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nInstallPackageToolUI.displayName = \"InstallPackageToolUI\";\n"],"names":["classifyToolResult","jsx","ToolFallback","PackageIcon","describePackage","isToolResultSuccess","normalizeResult","ToolCard","ExpandableSection","memo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"misc-tool-uis.cjs","sources":["../../src/tools/misc-tool-uis.tsx"],"sourcesContent":["/**\n * Small dedicated cards for tools whose generic fallback rendering read\n * poorly: currently the pip installer (Olympus registers it; the SDK's own\n * registry includes it).\n */\nimport { PackageIcon } from \"lucide-react\";\nimport { memo } from \"react\";\nimport type { ToolCallMessagePartComponent } from \"@assistant-ui/react\";\nimport {\n classifyToolResult,\n describePackage,\n isToolResultSuccess,\n} from \"@athenaintel/agent-runtime\";\nimport { ExpandableSection, normalizeResult, ToolCard } from \"./primitives\";\nimport { ToolFallback } from \"./tool-fallback\";\n\nconst InstallPackageToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status } = props;\n // An install the user refused at the approval gate is neither installed\n // nor failed: the generic card owns the rejected treatment.\n if (classifyToolResult({ status, result }).state === \"rejected\") {\n return <ToolFallback {...props} icon={PackageIcon} />;\n }\n const typedArgs = (args ?? {}) as Record<string, unknown>;\n const packageName = describePackage(typedArgs);\n const isRunning = status?.type === \"running\";\n const isFailed =\n status?.type === \"incomplete\" || (status?.type === \"complete\" && !isToolResultSuccess(result));\n const data = normalizeResult(result);\n const detail =\n typeof result === \"string\" ? result : data ? JSON.stringify(data, null, 2) : null;\n\n return (\n <ToolCard\n icon={PackageIcon}\n status={isFailed && status?.type === \"complete\" ? \"incomplete\" : (status?.type ?? \"complete\")}\n title={\n isRunning\n ? \"Installing package...\"\n : isFailed\n ? \"Couldn't install package\"\n : \"Installed package\"\n }\n subtitle={packageName}\n toolName={toolName}\n error={status?.type === \"incomplete\" ? String(status.error ?? \"\") || undefined : undefined}\n args={typedArgs}\n result={result}\n >\n {!isRunning && detail ? (\n <ExpandableSection label=\"Show output\">\n <pre className=\"max-h-64 overflow-auto whitespace-pre-wrap break-all text-[11px] leading-snug text-muted-foreground\">\n {detail}\n </pre>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const InstallPackageToolUI = memo(\n InstallPackageToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nInstallPackageToolUI.displayName = \"InstallPackageToolUI\";\n"],"names":["classifyToolResult","jsx","ToolFallback","PackageIcon","describePackage","isToolResultSuccess","normalizeResult","ToolCard","ExpandableSection","memo"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,2BAAyD,CAAC,UAAU;AACxE,QAAM,EAAE,UAAU,MAAM,QAAQ,WAAW;AAG3C,MAAIA,WAAAA,mBAAmB,EAAE,QAAQ,QAAQ,EAAE,UAAU,YAAY;AAC/D,WAAOC,2BAAAA,IAACC,aAAAA,cAAA,EAAc,GAAG,OAAO,MAAMC,YAAAA,aAAa;AAAA,EACrD;AACA,QAAM,YAAa,QAAQ,CAAA;AAC3B,QAAM,cAAcC,aAAAA,gBAAgB,SAAS;AAC7C,QAAM,aAAY,iCAAQ,UAAS;AACnC,QAAM,YACJ,iCAAQ,UAAS,iBAAiB,iCAAQ,UAAS,cAAc,CAACC,WAAAA,oBAAoB,MAAM;AAC9F,QAAM,OAAOC,WAAAA,gBAAgB,MAAM;AACnC,QAAM,SACJ,OAAO,WAAW,WAAW,SAAS,OAAO,KAAK,UAAU,MAAM,MAAM,CAAC,IAAI;AAE/E,SACEL,2BAAAA;AAAAA,IAACM,WAAAA;AAAAA,IAAA;AAAA,MACC,MAAMJ,YAAAA;AAAAA,MACN,QAAQ,aAAY,iCAAQ,UAAS,aAAa,gBAAgB,iCAAQ,SAAQ;AAAA,MAClF,OACE,YACI,0BACA,WACE,6BACA;AAAA,MAER,UAAU;AAAA,MACV;AAAA,MACA,QAAO,iCAAQ,UAAS,eAAe,OAAO,OAAO,SAAS,EAAE,KAAK,SAAY;AAAA,MACjF,MAAM;AAAA,MACN;AAAA,MAEC,UAAA,CAAC,aAAa,SACbF,2BAAAA,IAACO,8BAAA,EAAkB,OAAM,eACvB,UAAAP,2BAAAA,IAAC,OAAA,EAAI,WAAU,uGACZ,UAAA,OAAA,CACH,GACF,IACE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEO,MAAM,uBAAuBQ,MAAAA;AAAAA,EAClC;AACF;AACA,qBAAqB,cAAc;;"}
|
|
@@ -12,10 +12,11 @@ import "../packages/agent-runtime/src/statewire-state.js";
|
|
|
12
12
|
import "../packages/agent-runtime/src/messages.js";
|
|
13
13
|
import "@assistant-ui/react-statewire";
|
|
14
14
|
import "@assistant-ui/store";
|
|
15
|
-
import "
|
|
15
|
+
import "../packages/agent-runtime/src/quota-safe-local-storage-session.js";
|
|
16
16
|
import "../packages/agent-runtime/src/statewire-attach-observer.js";
|
|
17
17
|
import "../packages/agent-runtime/src/thread-status.js";
|
|
18
18
|
import "@assistant-ui/core";
|
|
19
|
+
import "../packages/agent-runtime/src/thread-handoff.js";
|
|
19
20
|
import { normalizeResult, ToolCard, ExpandableSection } from "./primitives.js";
|
|
20
21
|
import { ToolFallback } from "./tool-fallback.js";
|
|
21
22
|
const InstallPackageToolUIImpl = (props) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc-tool-uis.js","sources":["../../src/tools/misc-tool-uis.tsx"],"sourcesContent":["/**\n * Small dedicated cards for tools whose generic fallback rendering read\n * poorly: currently the pip installer (Olympus registers it; the SDK's own\n * registry includes it).\n */\nimport { PackageIcon } from \"lucide-react\";\nimport { memo } from \"react\";\nimport type { ToolCallMessagePartComponent } from \"@assistant-ui/react\";\nimport {\n classifyToolResult,\n describePackage,\n isToolResultSuccess,\n} from \"@athenaintel/agent-runtime\";\nimport { ExpandableSection, normalizeResult, ToolCard } from \"./primitives\";\nimport { ToolFallback } from \"./tool-fallback\";\n\nconst InstallPackageToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status } = props;\n // An install the user refused at the approval gate is neither installed\n // nor failed: the generic card owns the rejected treatment.\n if (classifyToolResult({ status, result }).state === \"rejected\") {\n return <ToolFallback {...props} icon={PackageIcon} />;\n }\n const typedArgs = (args ?? {}) as Record<string, unknown>;\n const packageName = describePackage(typedArgs);\n const isRunning = status?.type === \"running\";\n const isFailed =\n status?.type === \"incomplete\" || (status?.type === \"complete\" && !isToolResultSuccess(result));\n const data = normalizeResult(result);\n const detail =\n typeof result === \"string\" ? result : data ? JSON.stringify(data, null, 2) : null;\n\n return (\n <ToolCard\n icon={PackageIcon}\n status={isFailed && status?.type === \"complete\" ? \"incomplete\" : (status?.type ?? \"complete\")}\n title={\n isRunning\n ? \"Installing package...\"\n : isFailed\n ? \"Couldn't install package\"\n : \"Installed package\"\n }\n subtitle={packageName}\n toolName={toolName}\n error={status?.type === \"incomplete\" ? String(status.error ?? \"\") || undefined : undefined}\n args={typedArgs}\n result={result}\n >\n {!isRunning && detail ? (\n <ExpandableSection label=\"Show output\">\n <pre className=\"max-h-64 overflow-auto whitespace-pre-wrap break-all text-[11px] leading-snug text-muted-foreground\">\n {detail}\n </pre>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const InstallPackageToolUI = memo(\n InstallPackageToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nInstallPackageToolUI.displayName = \"InstallPackageToolUI\";\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"misc-tool-uis.js","sources":["../../src/tools/misc-tool-uis.tsx"],"sourcesContent":["/**\n * Small dedicated cards for tools whose generic fallback rendering read\n * poorly: currently the pip installer (Olympus registers it; the SDK's own\n * registry includes it).\n */\nimport { PackageIcon } from \"lucide-react\";\nimport { memo } from \"react\";\nimport type { ToolCallMessagePartComponent } from \"@assistant-ui/react\";\nimport {\n classifyToolResult,\n describePackage,\n isToolResultSuccess,\n} from \"@athenaintel/agent-runtime\";\nimport { ExpandableSection, normalizeResult, ToolCard } from \"./primitives\";\nimport { ToolFallback } from \"./tool-fallback\";\n\nconst InstallPackageToolUIImpl: ToolCallMessagePartComponent = (props) => {\n const { toolName, args, result, status } = props;\n // An install the user refused at the approval gate is neither installed\n // nor failed: the generic card owns the rejected treatment.\n if (classifyToolResult({ status, result }).state === \"rejected\") {\n return <ToolFallback {...props} icon={PackageIcon} />;\n }\n const typedArgs = (args ?? {}) as Record<string, unknown>;\n const packageName = describePackage(typedArgs);\n const isRunning = status?.type === \"running\";\n const isFailed =\n status?.type === \"incomplete\" || (status?.type === \"complete\" && !isToolResultSuccess(result));\n const data = normalizeResult(result);\n const detail =\n typeof result === \"string\" ? result : data ? JSON.stringify(data, null, 2) : null;\n\n return (\n <ToolCard\n icon={PackageIcon}\n status={isFailed && status?.type === \"complete\" ? \"incomplete\" : (status?.type ?? \"complete\")}\n title={\n isRunning\n ? \"Installing package...\"\n : isFailed\n ? \"Couldn't install package\"\n : \"Installed package\"\n }\n subtitle={packageName}\n toolName={toolName}\n error={status?.type === \"incomplete\" ? String(status.error ?? \"\") || undefined : undefined}\n args={typedArgs}\n result={result}\n >\n {!isRunning && detail ? (\n <ExpandableSection label=\"Show output\">\n <pre className=\"max-h-64 overflow-auto whitespace-pre-wrap break-all text-[11px] leading-snug text-muted-foreground\">\n {detail}\n </pre>\n </ExpandableSection>\n ) : null}\n </ToolCard>\n );\n};\n\nexport const InstallPackageToolUI = memo(\n InstallPackageToolUIImpl,\n) as unknown as ToolCallMessagePartComponent;\nInstallPackageToolUI.displayName = \"InstallPackageToolUI\";\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgBA,MAAM,2BAAyD,CAAC,UAAU;AACxE,QAAM,EAAE,UAAU,MAAM,QAAQ,WAAW;AAG3C,MAAI,mBAAmB,EAAE,QAAQ,QAAQ,EAAE,UAAU,YAAY;AAC/D,WAAO,oBAAC,cAAA,EAAc,GAAG,OAAO,MAAM,aAAa;AAAA,EACrD;AACA,QAAM,YAAa,QAAQ,CAAA;AAC3B,QAAM,cAAc,gBAAgB,SAAS;AAC7C,QAAM,aAAY,iCAAQ,UAAS;AACnC,QAAM,YACJ,iCAAQ,UAAS,iBAAiB,iCAAQ,UAAS,cAAc,CAAC,oBAAoB,MAAM;AAC9F,QAAM,OAAO,gBAAgB,MAAM;AACnC,QAAM,SACJ,OAAO,WAAW,WAAW,SAAS,OAAO,KAAK,UAAU,MAAM,MAAM,CAAC,IAAI;AAE/E,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN,QAAQ,aAAY,iCAAQ,UAAS,aAAa,gBAAgB,iCAAQ,SAAQ;AAAA,MAClF,OACE,YACI,0BACA,WACE,6BACA;AAAA,MAER,UAAU;AAAA,MACV;AAAA,MACA,QAAO,iCAAQ,UAAS,eAAe,OAAO,OAAO,SAAS,EAAE,KAAK,SAAY;AAAA,MACjF,MAAM;AAAA,MACN;AAAA,MAEC,UAAA,CAAC,aAAa,SACb,oBAAC,mBAAA,EAAkB,OAAM,eACvB,UAAA,oBAAC,OAAA,EAAI,WAAU,uGACZ,UAAA,OAAA,CACH,GACF,IACE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEO,MAAM,uBAAuB;AAAA,EAClC;AACF;AACA,qBAAqB,cAAc;"}
|
|
@@ -12,10 +12,11 @@ require("../packages/agent-runtime/src/statewire-state.cjs");
|
|
|
12
12
|
require("../packages/agent-runtime/src/messages.cjs");
|
|
13
13
|
require("@assistant-ui/react-statewire");
|
|
14
14
|
require("@assistant-ui/store");
|
|
15
|
-
require("
|
|
15
|
+
require("../packages/agent-runtime/src/quota-safe-local-storage-session.cjs");
|
|
16
16
|
require("../packages/agent-runtime/src/statewire-attach-observer.cjs");
|
|
17
17
|
require("../packages/agent-runtime/src/thread-status.cjs");
|
|
18
18
|
require("@assistant-ui/core");
|
|
19
|
+
require("../packages/agent-runtime/src/thread-handoff.cjs");
|
|
19
20
|
const lucideReact = require("lucide-react");
|
|
20
21
|
const cnfast = require("cnfast");
|
|
21
22
|
function tryParseJson(text) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.cjs","sources":["../../src/tools/primitives.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The shared building blocks every SDK tool card is made of — the card shell\n * (`ToolCard`), the collapsible details section, and the result/text helpers.\n * Kept apart from the tool UI registry so a tool UI module can use them\n * without importing the registry that imports it back.\n */\nimport { useCallback, useState, type ElementType, type ReactNode } from \"react\";\nimport { formatToolName } from \"@athenaintel/agent-runtime\";\nimport {\n AlertCircleIcon,\n CheckCircle2Icon,\n ChevronDownIcon,\n ClipboardCopyIcon,\n LoaderIcon,\n} from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport { formatToolName };\n\n/** Parse JSON text into a record, or `null` when it is not one. */\nexport function tryParseJson(text: string): Record<string, unknown> | null {\n try {\n const parsed: unknown = JSON.parse(text);\n return typeof parsed === \"object\" && parsed !== null\n ? (parsed as Record<string, unknown>)\n : null;\n } catch {\n return null;\n }\n}\n\n/** Parse a tool result (handles nested `.result`, string-encoded JSON) into a record. */\nexport function normalizeResult(result: unknown): Record<string, unknown> | null {\n if (!result) return null;\n if (typeof result === \"string\") return tryParseJson(result);\n if (typeof result === \"object\") {\n const obj = result as Record<string, unknown>;\n if (typeof obj.result === \"string\") return tryParseJson(obj.result) ?? obj;\n return obj;\n }\n return null;\n}\n\n/** Truncate a string with an ellipsis. */\nexport function truncate(text: string, max: number): string {\n return text.length > max ? `${text.slice(0, max)}...` : text;\n}\n\nexport type ToolStatus = \"running\" | \"complete\" | \"incomplete\" | \"requires-action\";\n\nexport function ToolCard({\n icon: Icon,\n status,\n title,\n subtitle,\n toolName,\n badge,\n error,\n children,\n args,\n result,\n}: {\n icon: ElementType;\n status: ToolStatus;\n title: string;\n subtitle?: string;\n toolName?: string;\n badge?: string;\n error?: string | null;\n children?: ReactNode;\n args?: Record<string, unknown>;\n result?: unknown;\n}) {\n const isRunning = status === \"running\";\n const isComplete = status === \"complete\";\n const isError = status === \"incomplete\";\n\n return (\n <div className=\"my-3 w-full overflow-hidden rounded-xl border border-border/60 bg-background shadow-sm\">\n <div className=\"flex items-center gap-3 px-4 py-3\">\n <div\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-lg\",\n isRunning && \"bg-blue-50 text-blue-600\",\n isComplete && \"bg-emerald-50 text-emerald-600\",\n isError && \"bg-destructive/10 text-destructive\",\n )}\n >\n {isRunning ? (\n <LoaderIcon className=\"size-4 animate-spin\" />\n ) : isError ? (\n <AlertCircleIcon className=\"size-4\" />\n ) : (\n <Icon className=\"size-4\" />\n )}\n </div>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-[13px] font-medium text-foreground\">\n {title}\n </span>\n {isComplete && !error && (\n <CheckCircle2Icon className=\"size-3.5 text-emerald-500\" />\n )}\n </div>\n {subtitle && (\n <p className=\"truncate text-[12px] text-muted-foreground\">\n {subtitle}\n </p>\n )}\n </div>\n {toolName && (\n <span className=\"shrink-0 rounded-md bg-muted/60 px-1.5 py-0.5 text-[10px] font-mono text-muted-foreground\">\n {formatToolName(toolName)}\n </span>\n )}\n {badge && (\n <span className=\"shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground\">\n {badge}\n </span>\n )}\n {isRunning && (\n <div className=\"flex items-center gap-1.5\">\n <div className=\"h-1.5 w-10 animate-pulse rounded-full bg-blue-100\" />\n <div className=\"h-1.5 w-6 animate-pulse rounded-full bg-blue-100\" />\n </div>\n )}\n </div>\n\n {error && (\n <div className=\"border-t border-border/40 bg-destructive/10 px-4 py-2.5\">\n <p className=\"text-[12px] leading-relaxed text-destructive\">\n {error}\n </p>\n </div>\n )}\n\n {children}\n\n {/* Copy tool spec — subtle button at the bottom of every tool card */}\n {toolName && isComplete && (\n <CopyToolSpecButton toolName={toolName} args={args} result={result} />\n )}\n </div>\n );\n}\n\n/** Copies `{ tool_name, arguments, result }` as JSON — the tool spec a support ticket needs. */\nexport function CopyToolSpecButton({\n toolName,\n args,\n argsText,\n result,\n className,\n}: {\n toolName: string;\n args?: Record<string, unknown>;\n argsText?: string;\n result?: unknown;\n className?: string;\n}) {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(() => {\n const spec: Record<string, unknown> = { tool_name: toolName };\n if (args) spec.arguments = args;\n else if (argsText) spec.arguments = tryParseJson(argsText) ?? argsText;\n if (result !== undefined) {\n if (typeof result === \"string\") {\n const parsed = tryParseJson(result);\n spec.result = parsed ?? result;\n } else {\n spec.result = result;\n }\n }\n navigator.clipboard.writeText(JSON.stringify(spec, null, 2)).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n }, [toolName, args, argsText, result]);\n\n return (\n <div className={cn(\"flex justify-end px-3 pb-1.5\", className)}>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-muted-foreground/40 transition-colors hover:bg-muted/50 hover:text-muted-foreground\"\n title=\"Copy tool name, arguments, and result as JSON\"\n >\n <ClipboardCopyIcon className=\"size-2.5\" />\n {copied ? \"Copied!\" : toolName}\n </button>\n </div>\n );\n}\n\nexport function ExpandableSection({\n label,\n children,\n defaultOpen = false,\n}: {\n label?: string;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n const [expanded, setExpanded] = useState(defaultOpen);\n\n return (\n <div className=\"border-t border-border/40\">\n <button\n type=\"button\"\n onClick={() => setExpanded(!expanded)}\n className=\"flex w-full items-center gap-2 px-4 py-2 text-left text-[11px] font-medium text-muted-foreground transition-colors hover:bg-muted/30\"\n >\n <ChevronDownIcon\n className={cn(\n \"size-3.5 shrink-0 transition-transform duration-200\",\n !expanded && \"-rotate-90\",\n )}\n />\n <span>{expanded ? \"Hide details\" : (label ?? \"Show details\")}</span>\n </button>\n {expanded && (\n <div className=\"max-h-72 overflow-y-auto border-t border-border/40 bg-muted/10 px-4 py-3\">\n {children}\n </div>\n )}\n </div>\n );\n}\n"],"names":["jsxs","jsx","cn","LoaderIcon","AlertCircleIcon","CheckCircle2Icon","formatToolName","useState","useCallback","ClipboardCopyIcon","ChevronDownIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"primitives.cjs","sources":["../../src/tools/primitives.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The shared building blocks every SDK tool card is made of — the card shell\n * (`ToolCard`), the collapsible details section, and the result/text helpers.\n * Kept apart from the tool UI registry so a tool UI module can use them\n * without importing the registry that imports it back.\n */\nimport { useCallback, useState, type ElementType, type ReactNode } from \"react\";\nimport { formatToolName } from \"@athenaintel/agent-runtime\";\nimport {\n AlertCircleIcon,\n CheckCircle2Icon,\n ChevronDownIcon,\n ClipboardCopyIcon,\n LoaderIcon,\n} from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport { formatToolName };\n\n/** Parse JSON text into a record, or `null` when it is not one. */\nexport function tryParseJson(text: string): Record<string, unknown> | null {\n try {\n const parsed: unknown = JSON.parse(text);\n return typeof parsed === \"object\" && parsed !== null\n ? (parsed as Record<string, unknown>)\n : null;\n } catch {\n return null;\n }\n}\n\n/** Parse a tool result (handles nested `.result`, string-encoded JSON) into a record. */\nexport function normalizeResult(result: unknown): Record<string, unknown> | null {\n if (!result) return null;\n if (typeof result === \"string\") return tryParseJson(result);\n if (typeof result === \"object\") {\n const obj = result as Record<string, unknown>;\n if (typeof obj.result === \"string\") return tryParseJson(obj.result) ?? obj;\n return obj;\n }\n return null;\n}\n\n/** Truncate a string with an ellipsis. */\nexport function truncate(text: string, max: number): string {\n return text.length > max ? `${text.slice(0, max)}...` : text;\n}\n\nexport type ToolStatus = \"running\" | \"complete\" | \"incomplete\" | \"requires-action\";\n\nexport function ToolCard({\n icon: Icon,\n status,\n title,\n subtitle,\n toolName,\n badge,\n error,\n children,\n args,\n result,\n}: {\n icon: ElementType;\n status: ToolStatus;\n title: string;\n subtitle?: string;\n toolName?: string;\n badge?: string;\n error?: string | null;\n children?: ReactNode;\n args?: Record<string, unknown>;\n result?: unknown;\n}) {\n const isRunning = status === \"running\";\n const isComplete = status === \"complete\";\n const isError = status === \"incomplete\";\n\n return (\n <div className=\"my-3 w-full overflow-hidden rounded-xl border border-border/60 bg-background shadow-sm\">\n <div className=\"flex items-center gap-3 px-4 py-3\">\n <div\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-lg\",\n isRunning && \"bg-blue-50 text-blue-600\",\n isComplete && \"bg-emerald-50 text-emerald-600\",\n isError && \"bg-destructive/10 text-destructive\",\n )}\n >\n {isRunning ? (\n <LoaderIcon className=\"size-4 animate-spin\" />\n ) : isError ? (\n <AlertCircleIcon className=\"size-4\" />\n ) : (\n <Icon className=\"size-4\" />\n )}\n </div>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-[13px] font-medium text-foreground\">\n {title}\n </span>\n {isComplete && !error && (\n <CheckCircle2Icon className=\"size-3.5 text-emerald-500\" />\n )}\n </div>\n {subtitle && (\n <p className=\"truncate text-[12px] text-muted-foreground\">\n {subtitle}\n </p>\n )}\n </div>\n {toolName && (\n <span className=\"shrink-0 rounded-md bg-muted/60 px-1.5 py-0.5 text-[10px] font-mono text-muted-foreground\">\n {formatToolName(toolName)}\n </span>\n )}\n {badge && (\n <span className=\"shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground\">\n {badge}\n </span>\n )}\n {isRunning && (\n <div className=\"flex items-center gap-1.5\">\n <div className=\"h-1.5 w-10 animate-pulse rounded-full bg-blue-100\" />\n <div className=\"h-1.5 w-6 animate-pulse rounded-full bg-blue-100\" />\n </div>\n )}\n </div>\n\n {error && (\n <div className=\"border-t border-border/40 bg-destructive/10 px-4 py-2.5\">\n <p className=\"text-[12px] leading-relaxed text-destructive\">\n {error}\n </p>\n </div>\n )}\n\n {children}\n\n {/* Copy tool spec — subtle button at the bottom of every tool card */}\n {toolName && isComplete && (\n <CopyToolSpecButton toolName={toolName} args={args} result={result} />\n )}\n </div>\n );\n}\n\n/** Copies `{ tool_name, arguments, result }` as JSON — the tool spec a support ticket needs. */\nexport function CopyToolSpecButton({\n toolName,\n args,\n argsText,\n result,\n className,\n}: {\n toolName: string;\n args?: Record<string, unknown>;\n argsText?: string;\n result?: unknown;\n className?: string;\n}) {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(() => {\n const spec: Record<string, unknown> = { tool_name: toolName };\n if (args) spec.arguments = args;\n else if (argsText) spec.arguments = tryParseJson(argsText) ?? argsText;\n if (result !== undefined) {\n if (typeof result === \"string\") {\n const parsed = tryParseJson(result);\n spec.result = parsed ?? result;\n } else {\n spec.result = result;\n }\n }\n navigator.clipboard.writeText(JSON.stringify(spec, null, 2)).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n }, [toolName, args, argsText, result]);\n\n return (\n <div className={cn(\"flex justify-end px-3 pb-1.5\", className)}>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-muted-foreground/40 transition-colors hover:bg-muted/50 hover:text-muted-foreground\"\n title=\"Copy tool name, arguments, and result as JSON\"\n >\n <ClipboardCopyIcon className=\"size-2.5\" />\n {copied ? \"Copied!\" : toolName}\n </button>\n </div>\n );\n}\n\nexport function ExpandableSection({\n label,\n children,\n defaultOpen = false,\n}: {\n label?: string;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n const [expanded, setExpanded] = useState(defaultOpen);\n\n return (\n <div className=\"border-t border-border/40\">\n <button\n type=\"button\"\n onClick={() => setExpanded(!expanded)}\n className=\"flex w-full items-center gap-2 px-4 py-2 text-left text-[11px] font-medium text-muted-foreground transition-colors hover:bg-muted/30\"\n >\n <ChevronDownIcon\n className={cn(\n \"size-3.5 shrink-0 transition-transform duration-200\",\n !expanded && \"-rotate-90\",\n )}\n />\n <span>{expanded ? \"Hide details\" : (label ?? \"Show details\")}</span>\n </button>\n {expanded && (\n <div className=\"max-h-72 overflow-y-auto border-t border-border/40 bg-muted/10 px-4 py-3\">\n {children}\n </div>\n )}\n </div>\n );\n}\n"],"names":["jsxs","jsx","cn","LoaderIcon","AlertCircleIcon","CheckCircle2Icon","formatToolName","useState","useCallback","ClipboardCopyIcon","ChevronDownIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsBO,SAAS,aAAa,MAA8C;AACzE,MAAI;AACF,UAAM,SAAkB,KAAK,MAAM,IAAI;AACvC,WAAO,OAAO,WAAW,YAAY,WAAW,OAC3C,SACD;AAAA,EACN,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAGO,SAAS,gBAAgB,QAAiD;AAC/E,MAAI,CAAC,OAAQ,QAAO;AACpB,MAAI,OAAO,WAAW,SAAU,QAAO,aAAa,MAAM;AAC1D,MAAI,OAAO,WAAW,UAAU;AAC9B,UAAM,MAAM;AACZ,QAAI,OAAO,IAAI,WAAW,iBAAiB,aAAa,IAAI,MAAM,KAAK;AACvE,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAGO,SAAS,SAAS,MAAc,KAAqB;AAC1D,SAAO,KAAK,SAAS,MAAM,GAAG,KAAK,MAAM,GAAG,GAAG,CAAC,QAAQ;AAC1D;AAIO,SAAS,SAAS;AAAA,EACvB,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAWG;AACD,QAAM,YAAY,WAAW;AAC7B,QAAM,aAAa,WAAW;AAC9B,QAAM,UAAU,WAAW;AAE3B,SACEA,2BAAAA,KAAC,OAAA,EAAI,WAAU,0FACb,UAAA;AAAA,IAAAA,2BAAAA,KAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,MAAAC,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWC,OAAAA;AAAAA,YACT;AAAA,YACA,aAAa;AAAA,YACb,cAAc;AAAA,YACd,WAAW;AAAA,UAAA;AAAA,UAGZ,UAAA,YACCD,2BAAAA,IAACE,YAAAA,YAAA,EAAW,WAAU,uBAAsB,IAC1C,UACFF,2BAAAA,IAACG,YAAAA,iBAAA,EAAgB,WAAU,UAAS,IAEpCH,2BAAAA,IAAC,MAAA,EAAK,WAAU,SAAA,CAAS;AAAA,QAAA;AAAA,MAAA;AAAA,MAG7BD,2BAAAA,KAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,QAAAA,2BAAAA,KAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,UAAAC,2BAAAA,IAAC,QAAA,EAAK,WAAU,2CACb,UAAA,OACH;AAAA,UACC,cAAc,CAAC,SACdA,2BAAAA,IAACI,YAAAA,kBAAA,EAAiB,WAAU,4BAAA,CAA4B;AAAA,QAAA,GAE5D;AAAA,QACC,YACCJ,2BAAAA,IAAC,KAAA,EAAE,WAAU,8CACV,UAAA,SAAA,CACH;AAAA,MAAA,GAEJ;AAAA,MACC,YACCA,2BAAAA,IAAC,QAAA,EAAK,WAAU,6FACb,UAAAK,aAAAA,eAAe,QAAQ,GAC1B;AAAA,MAED,SACCL,2BAAAA,IAAC,QAAA,EAAK,WAAU,4FACb,UAAA,OACH;AAAA,MAED,aACCD,2BAAAA,KAAC,OAAA,EAAI,WAAU,6BACb,UAAA;AAAA,QAAAC,2BAAAA,IAAC,OAAA,EAAI,WAAU,oDAAA,CAAoD;AAAA,QACnEA,2BAAAA,IAAC,OAAA,EAAI,WAAU,mDAAA,CAAmD;AAAA,MAAA,EAAA,CACpE;AAAA,IAAA,GAEJ;AAAA,IAEC,SACCA,2BAAAA,IAAC,OAAA,EAAI,WAAU,2DACb,yCAAC,KAAA,EAAE,WAAU,gDACV,UAAA,MAAA,CACH,EAAA,CACF;AAAA,IAGD;AAAA,IAGA,YAAY,cACXA,+BAAC,oBAAA,EAAmB,UAAoB,MAAY,OAAA,CAAgB;AAAA,EAAA,GAExE;AAEJ;AAGO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMG;AACD,QAAM,CAAC,QAAQ,SAAS,IAAIM,MAAAA,SAAS,KAAK;AAE1C,QAAM,aAAaC,MAAAA,YAAY,MAAM;AACnC,UAAM,OAAgC,EAAE,WAAW,SAAA;AACnD,QAAI,WAAW,YAAY;AAAA,aAClB,SAAU,MAAK,YAAY,aAAa,QAAQ,KAAK;AAC9D,QAAI,WAAW,QAAW;AACxB,UAAI,OAAO,WAAW,UAAU;AAC9B,cAAM,SAAS,aAAa,MAAM;AAClC,aAAK,SAAS,UAAU;AAAA,MAC1B,OAAO;AACL,aAAK,SAAS;AAAA,MAChB;AAAA,IACF;AACA,cAAU,UAAU,UAAU,KAAK,UAAU,MAAM,MAAM,CAAC,CAAC,EAAE,KAAK,MAAM;AACtE,gBAAU,IAAI;AACd,iBAAW,MAAM,UAAU,KAAK,GAAG,GAAI;AAAA,IACzC,CAAC;AAAA,EACH,GAAG,CAAC,UAAU,MAAM,UAAU,MAAM,CAAC;AAErC,wCACG,OAAA,EAAI,WAAWN,OAAAA,GAAG,gCAAgC,SAAS,GAC1D,UAAAF,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS;AAAA,MACT,WAAU;AAAA,MACV,OAAM;AAAA,MAEN,UAAA;AAAA,QAAAC,2BAAAA,IAACQ,YAAAA,mBAAA,EAAkB,WAAU,WAAA,CAAW;AAAA,QACvC,SAAS,YAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAE1B;AAEJ;AAEO,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA,cAAc;AAChB,GAIG;AACD,QAAM,CAAC,UAAU,WAAW,IAAIF,MAAAA,SAAS,WAAW;AAEpD,SACEP,2BAAAA,KAAC,OAAA,EAAI,WAAU,6BACb,UAAA;AAAA,IAAAA,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS,MAAM,YAAY,CAAC,QAAQ;AAAA,QACpC,WAAU;AAAA,QAEV,UAAA;AAAA,UAAAC,2BAAAA;AAAAA,YAACS,YAAAA;AAAAA,YAAA;AAAA,cACC,WAAWR,OAAAA;AAAAA,gBACT;AAAA,gBACA,CAAC,YAAY;AAAA,cAAA;AAAA,YACf;AAAA,UAAA;AAAA,UAEFD,2BAAAA,IAAC,QAAA,EAAM,UAAA,WAAW,iBAAkB,SAAS,eAAA,CAAgB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAE9D,YACCA,2BAAAA,IAAC,OAAA,EAAI,WAAU,4EACZ,SAAA,CACH;AAAA,EAAA,GAEJ;AAEJ;;;;;;;;"}
|
package/dist/tools/primitives.js
CHANGED
|
@@ -10,10 +10,11 @@ import "../packages/agent-runtime/src/statewire-state.js";
|
|
|
10
10
|
import "../packages/agent-runtime/src/messages.js";
|
|
11
11
|
import "@assistant-ui/react-statewire";
|
|
12
12
|
import "@assistant-ui/store";
|
|
13
|
-
import "
|
|
13
|
+
import "../packages/agent-runtime/src/quota-safe-local-storage-session.js";
|
|
14
14
|
import "../packages/agent-runtime/src/statewire-attach-observer.js";
|
|
15
15
|
import "../packages/agent-runtime/src/thread-status.js";
|
|
16
16
|
import "@assistant-ui/core";
|
|
17
|
+
import "../packages/agent-runtime/src/thread-handoff.js";
|
|
17
18
|
import { ClipboardCopyIcon, ChevronDownIcon, LoaderIcon, AlertCircleIcon, CheckCircle2Icon } from "lucide-react";
|
|
18
19
|
import { cn } from "cnfast";
|
|
19
20
|
function tryParseJson(text) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sources":["../../src/tools/primitives.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The shared building blocks every SDK tool card is made of — the card shell\n * (`ToolCard`), the collapsible details section, and the result/text helpers.\n * Kept apart from the tool UI registry so a tool UI module can use them\n * without importing the registry that imports it back.\n */\nimport { useCallback, useState, type ElementType, type ReactNode } from \"react\";\nimport { formatToolName } from \"@athenaintel/agent-runtime\";\nimport {\n AlertCircleIcon,\n CheckCircle2Icon,\n ChevronDownIcon,\n ClipboardCopyIcon,\n LoaderIcon,\n} from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport { formatToolName };\n\n/** Parse JSON text into a record, or `null` when it is not one. */\nexport function tryParseJson(text: string): Record<string, unknown> | null {\n try {\n const parsed: unknown = JSON.parse(text);\n return typeof parsed === \"object\" && parsed !== null\n ? (parsed as Record<string, unknown>)\n : null;\n } catch {\n return null;\n }\n}\n\n/** Parse a tool result (handles nested `.result`, string-encoded JSON) into a record. */\nexport function normalizeResult(result: unknown): Record<string, unknown> | null {\n if (!result) return null;\n if (typeof result === \"string\") return tryParseJson(result);\n if (typeof result === \"object\") {\n const obj = result as Record<string, unknown>;\n if (typeof obj.result === \"string\") return tryParseJson(obj.result) ?? obj;\n return obj;\n }\n return null;\n}\n\n/** Truncate a string with an ellipsis. */\nexport function truncate(text: string, max: number): string {\n return text.length > max ? `${text.slice(0, max)}...` : text;\n}\n\nexport type ToolStatus = \"running\" | \"complete\" | \"incomplete\" | \"requires-action\";\n\nexport function ToolCard({\n icon: Icon,\n status,\n title,\n subtitle,\n toolName,\n badge,\n error,\n children,\n args,\n result,\n}: {\n icon: ElementType;\n status: ToolStatus;\n title: string;\n subtitle?: string;\n toolName?: string;\n badge?: string;\n error?: string | null;\n children?: ReactNode;\n args?: Record<string, unknown>;\n result?: unknown;\n}) {\n const isRunning = status === \"running\";\n const isComplete = status === \"complete\";\n const isError = status === \"incomplete\";\n\n return (\n <div className=\"my-3 w-full overflow-hidden rounded-xl border border-border/60 bg-background shadow-sm\">\n <div className=\"flex items-center gap-3 px-4 py-3\">\n <div\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-lg\",\n isRunning && \"bg-blue-50 text-blue-600\",\n isComplete && \"bg-emerald-50 text-emerald-600\",\n isError && \"bg-destructive/10 text-destructive\",\n )}\n >\n {isRunning ? (\n <LoaderIcon className=\"size-4 animate-spin\" />\n ) : isError ? (\n <AlertCircleIcon className=\"size-4\" />\n ) : (\n <Icon className=\"size-4\" />\n )}\n </div>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-[13px] font-medium text-foreground\">\n {title}\n </span>\n {isComplete && !error && (\n <CheckCircle2Icon className=\"size-3.5 text-emerald-500\" />\n )}\n </div>\n {subtitle && (\n <p className=\"truncate text-[12px] text-muted-foreground\">\n {subtitle}\n </p>\n )}\n </div>\n {toolName && (\n <span className=\"shrink-0 rounded-md bg-muted/60 px-1.5 py-0.5 text-[10px] font-mono text-muted-foreground\">\n {formatToolName(toolName)}\n </span>\n )}\n {badge && (\n <span className=\"shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground\">\n {badge}\n </span>\n )}\n {isRunning && (\n <div className=\"flex items-center gap-1.5\">\n <div className=\"h-1.5 w-10 animate-pulse rounded-full bg-blue-100\" />\n <div className=\"h-1.5 w-6 animate-pulse rounded-full bg-blue-100\" />\n </div>\n )}\n </div>\n\n {error && (\n <div className=\"border-t border-border/40 bg-destructive/10 px-4 py-2.5\">\n <p className=\"text-[12px] leading-relaxed text-destructive\">\n {error}\n </p>\n </div>\n )}\n\n {children}\n\n {/* Copy tool spec — subtle button at the bottom of every tool card */}\n {toolName && isComplete && (\n <CopyToolSpecButton toolName={toolName} args={args} result={result} />\n )}\n </div>\n );\n}\n\n/** Copies `{ tool_name, arguments, result }` as JSON — the tool spec a support ticket needs. */\nexport function CopyToolSpecButton({\n toolName,\n args,\n argsText,\n result,\n className,\n}: {\n toolName: string;\n args?: Record<string, unknown>;\n argsText?: string;\n result?: unknown;\n className?: string;\n}) {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(() => {\n const spec: Record<string, unknown> = { tool_name: toolName };\n if (args) spec.arguments = args;\n else if (argsText) spec.arguments = tryParseJson(argsText) ?? argsText;\n if (result !== undefined) {\n if (typeof result === \"string\") {\n const parsed = tryParseJson(result);\n spec.result = parsed ?? result;\n } else {\n spec.result = result;\n }\n }\n navigator.clipboard.writeText(JSON.stringify(spec, null, 2)).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n }, [toolName, args, argsText, result]);\n\n return (\n <div className={cn(\"flex justify-end px-3 pb-1.5\", className)}>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-muted-foreground/40 transition-colors hover:bg-muted/50 hover:text-muted-foreground\"\n title=\"Copy tool name, arguments, and result as JSON\"\n >\n <ClipboardCopyIcon className=\"size-2.5\" />\n {copied ? \"Copied!\" : toolName}\n </button>\n </div>\n );\n}\n\nexport function ExpandableSection({\n label,\n children,\n defaultOpen = false,\n}: {\n label?: string;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n const [expanded, setExpanded] = useState(defaultOpen);\n\n return (\n <div className=\"border-t border-border/40\">\n <button\n type=\"button\"\n onClick={() => setExpanded(!expanded)}\n className=\"flex w-full items-center gap-2 px-4 py-2 text-left text-[11px] font-medium text-muted-foreground transition-colors hover:bg-muted/30\"\n >\n <ChevronDownIcon\n className={cn(\n \"size-3.5 shrink-0 transition-transform duration-200\",\n !expanded && \"-rotate-90\",\n )}\n />\n <span>{expanded ? \"Hide details\" : (label ?? \"Show details\")}</span>\n </button>\n {expanded && (\n <div className=\"max-h-72 overflow-y-auto border-t border-border/40 bg-muted/10 px-4 py-3\">\n {children}\n </div>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"primitives.js","sources":["../../src/tools/primitives.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The shared building blocks every SDK tool card is made of — the card shell\n * (`ToolCard`), the collapsible details section, and the result/text helpers.\n * Kept apart from the tool UI registry so a tool UI module can use them\n * without importing the registry that imports it back.\n */\nimport { useCallback, useState, type ElementType, type ReactNode } from \"react\";\nimport { formatToolName } from \"@athenaintel/agent-runtime\";\nimport {\n AlertCircleIcon,\n CheckCircle2Icon,\n ChevronDownIcon,\n ClipboardCopyIcon,\n LoaderIcon,\n} from \"lucide-react\";\nimport { cn } from \"../lib/utils\";\n\nexport { formatToolName };\n\n/** Parse JSON text into a record, or `null` when it is not one. */\nexport function tryParseJson(text: string): Record<string, unknown> | null {\n try {\n const parsed: unknown = JSON.parse(text);\n return typeof parsed === \"object\" && parsed !== null\n ? (parsed as Record<string, unknown>)\n : null;\n } catch {\n return null;\n }\n}\n\n/** Parse a tool result (handles nested `.result`, string-encoded JSON) into a record. */\nexport function normalizeResult(result: unknown): Record<string, unknown> | null {\n if (!result) return null;\n if (typeof result === \"string\") return tryParseJson(result);\n if (typeof result === \"object\") {\n const obj = result as Record<string, unknown>;\n if (typeof obj.result === \"string\") return tryParseJson(obj.result) ?? obj;\n return obj;\n }\n return null;\n}\n\n/** Truncate a string with an ellipsis. */\nexport function truncate(text: string, max: number): string {\n return text.length > max ? `${text.slice(0, max)}...` : text;\n}\n\nexport type ToolStatus = \"running\" | \"complete\" | \"incomplete\" | \"requires-action\";\n\nexport function ToolCard({\n icon: Icon,\n status,\n title,\n subtitle,\n toolName,\n badge,\n error,\n children,\n args,\n result,\n}: {\n icon: ElementType;\n status: ToolStatus;\n title: string;\n subtitle?: string;\n toolName?: string;\n badge?: string;\n error?: string | null;\n children?: ReactNode;\n args?: Record<string, unknown>;\n result?: unknown;\n}) {\n const isRunning = status === \"running\";\n const isComplete = status === \"complete\";\n const isError = status === \"incomplete\";\n\n return (\n <div className=\"my-3 w-full overflow-hidden rounded-xl border border-border/60 bg-background shadow-sm\">\n <div className=\"flex items-center gap-3 px-4 py-3\">\n <div\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-lg\",\n isRunning && \"bg-blue-50 text-blue-600\",\n isComplete && \"bg-emerald-50 text-emerald-600\",\n isError && \"bg-destructive/10 text-destructive\",\n )}\n >\n {isRunning ? (\n <LoaderIcon className=\"size-4 animate-spin\" />\n ) : isError ? (\n <AlertCircleIcon className=\"size-4\" />\n ) : (\n <Icon className=\"size-4\" />\n )}\n </div>\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-[13px] font-medium text-foreground\">\n {title}\n </span>\n {isComplete && !error && (\n <CheckCircle2Icon className=\"size-3.5 text-emerald-500\" />\n )}\n </div>\n {subtitle && (\n <p className=\"truncate text-[12px] text-muted-foreground\">\n {subtitle}\n </p>\n )}\n </div>\n {toolName && (\n <span className=\"shrink-0 rounded-md bg-muted/60 px-1.5 py-0.5 text-[10px] font-mono text-muted-foreground\">\n {formatToolName(toolName)}\n </span>\n )}\n {badge && (\n <span className=\"shrink-0 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground\">\n {badge}\n </span>\n )}\n {isRunning && (\n <div className=\"flex items-center gap-1.5\">\n <div className=\"h-1.5 w-10 animate-pulse rounded-full bg-blue-100\" />\n <div className=\"h-1.5 w-6 animate-pulse rounded-full bg-blue-100\" />\n </div>\n )}\n </div>\n\n {error && (\n <div className=\"border-t border-border/40 bg-destructive/10 px-4 py-2.5\">\n <p className=\"text-[12px] leading-relaxed text-destructive\">\n {error}\n </p>\n </div>\n )}\n\n {children}\n\n {/* Copy tool spec — subtle button at the bottom of every tool card */}\n {toolName && isComplete && (\n <CopyToolSpecButton toolName={toolName} args={args} result={result} />\n )}\n </div>\n );\n}\n\n/** Copies `{ tool_name, arguments, result }` as JSON — the tool spec a support ticket needs. */\nexport function CopyToolSpecButton({\n toolName,\n args,\n argsText,\n result,\n className,\n}: {\n toolName: string;\n args?: Record<string, unknown>;\n argsText?: string;\n result?: unknown;\n className?: string;\n}) {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(() => {\n const spec: Record<string, unknown> = { tool_name: toolName };\n if (args) spec.arguments = args;\n else if (argsText) spec.arguments = tryParseJson(argsText) ?? argsText;\n if (result !== undefined) {\n if (typeof result === \"string\") {\n const parsed = tryParseJson(result);\n spec.result = parsed ?? result;\n } else {\n spec.result = result;\n }\n }\n navigator.clipboard.writeText(JSON.stringify(spec, null, 2)).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n }, [toolName, args, argsText, result]);\n\n return (\n <div className={cn(\"flex justify-end px-3 pb-1.5\", className)}>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] text-muted-foreground/40 transition-colors hover:bg-muted/50 hover:text-muted-foreground\"\n title=\"Copy tool name, arguments, and result as JSON\"\n >\n <ClipboardCopyIcon className=\"size-2.5\" />\n {copied ? \"Copied!\" : toolName}\n </button>\n </div>\n );\n}\n\nexport function ExpandableSection({\n label,\n children,\n defaultOpen = false,\n}: {\n label?: string;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n const [expanded, setExpanded] = useState(defaultOpen);\n\n return (\n <div className=\"border-t border-border/40\">\n <button\n type=\"button\"\n onClick={() => setExpanded(!expanded)}\n className=\"flex w-full items-center gap-2 px-4 py-2 text-left text-[11px] font-medium text-muted-foreground transition-colors hover:bg-muted/30\"\n >\n <ChevronDownIcon\n className={cn(\n \"size-3.5 shrink-0 transition-transform duration-200\",\n !expanded && \"-rotate-90\",\n )}\n />\n <span>{expanded ? \"Hide details\" : (label ?? \"Show details\")}</span>\n </button>\n {expanded && (\n <div className=\"max-h-72 overflow-y-auto border-t border-border/40 bg-muted/10 px-4 py-3\">\n {children}\n </div>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,11 @@ require("../packages/agent-runtime/src/statewire-state.cjs");
|
|
|
15
15
|
require("../packages/agent-runtime/src/messages.cjs");
|
|
16
16
|
require("@assistant-ui/react-statewire");
|
|
17
17
|
require("@assistant-ui/store");
|
|
18
|
-
require("
|
|
18
|
+
require("../packages/agent-runtime/src/quota-safe-local-storage-session.cjs");
|
|
19
19
|
require("../packages/agent-runtime/src/statewire-attach-observer.cjs");
|
|
20
20
|
require("../packages/agent-runtime/src/thread-status.cjs");
|
|
21
21
|
require("@assistant-ui/core");
|
|
22
|
+
require("../packages/agent-runtime/src/thread-handoff.cjs");
|
|
22
23
|
const collapsible = require("../ui/collapsible.cjs");
|
|
23
24
|
const assetPanelStore = require("../assets/asset-panel-store.cjs");
|
|
24
25
|
const NestedPtcMessages = require("./NestedPtcMessages.cjs");
|