@assistant-ui/core 0.1.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/dist/adapters/attachment.d.ts +36 -0
- package/dist/adapters/attachment.d.ts.map +1 -0
- package/dist/adapters/attachment.js +148 -0
- package/dist/adapters/attachment.js.map +1 -0
- package/dist/adapters/feedback.d.ts +10 -0
- package/dist/adapters/feedback.d.ts.map +1 -0
- package/dist/adapters/feedback.js +2 -0
- package/dist/adapters/feedback.js.map +1 -0
- package/dist/adapters/index.d.ts +8 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +3 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/speech.d.ts +76 -0
- package/dist/adapters/speech.d.ts.map +1 -0
- package/dist/adapters/speech.js +179 -0
- package/dist/adapters/speech.js.map +1 -0
- package/dist/adapters/suggestion.d.ts +10 -0
- package/dist/adapters/suggestion.d.ts.map +1 -0
- package/dist/adapters/suggestion.js +2 -0
- package/dist/adapters/suggestion.js.map +1 -0
- package/dist/adapters/thread-history.d.ts +43 -0
- package/dist/adapters/thread-history.d.ts.map +1 -0
- package/dist/adapters/thread-history.js +2 -0
- package/dist/adapters/thread-history.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +5 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +7 -0
- package/dist/internal.js.map +1 -0
- package/dist/model-context/frame/host.d.ts +21 -0
- package/dist/model-context/frame/host.d.ts.map +1 -0
- package/dist/model-context/frame/host.js +141 -0
- package/dist/model-context/frame/host.js.map +1 -0
- package/dist/model-context/frame/index.d.ts +5 -0
- package/dist/model-context/frame/index.d.ts.map +1 -0
- package/dist/model-context/frame/index.js +4 -0
- package/dist/model-context/frame/index.js.map +1 -0
- package/dist/model-context/frame/provider.d.ts +18 -0
- package/dist/model-context/frame/provider.d.ts.map +1 -0
- package/dist/model-context/frame/provider.js +133 -0
- package/dist/model-context/frame/provider.js.map +1 -0
- package/dist/model-context/frame/types.d.ts +29 -0
- package/dist/model-context/frame/types.d.ts.map +1 -0
- package/dist/model-context/frame/types.js +2 -0
- package/dist/model-context/frame/types.js.map +1 -0
- package/dist/model-context/index.d.ts +8 -0
- package/dist/model-context/index.d.ts.map +1 -0
- package/dist/model-context/index.js +9 -0
- package/dist/model-context/index.js.map +1 -0
- package/dist/model-context/registry-handles.d.ts +13 -0
- package/dist/model-context/registry-handles.d.ts.map +1 -0
- package/dist/model-context/registry-handles.js +2 -0
- package/dist/model-context/registry-handles.js.map +1 -0
- package/dist/model-context/registry.d.ts +17 -0
- package/dist/model-context/registry.d.ts.map +1 -0
- package/dist/model-context/registry.js +108 -0
- package/dist/model-context/registry.js.map +1 -0
- package/dist/model-context/tool.d.ts +3 -0
- package/dist/model-context/tool.d.ts.map +1 -0
- package/dist/model-context/tool.js +5 -0
- package/dist/model-context/tool.js.map +1 -0
- package/dist/model-context/types.d.ts +37 -0
- package/dist/model-context/types.d.ts.map +1 -0
- package/dist/model-context/types.js +43 -0
- package/dist/model-context/types.js.map +1 -0
- package/dist/runtime/api/assistant-runtime.d.ts +64 -0
- package/dist/runtime/api/assistant-runtime.d.ts.map +1 -0
- package/dist/runtime/api/assistant-runtime.js +46 -0
- package/dist/runtime/api/assistant-runtime.js.map +1 -0
- package/dist/runtime/api/attachment-runtime.d.ts +63 -0
- package/dist/runtime/api/attachment-runtime.d.ts.map +1 -0
- package/dist/runtime/api/attachment-runtime.js +56 -0
- package/dist/runtime/api/attachment-runtime.js.map +1 -0
- package/dist/runtime/api/bindings.d.ts +31 -0
- package/dist/runtime/api/bindings.d.ts.map +1 -0
- package/dist/runtime/api/bindings.js +2 -0
- package/dist/runtime/api/bindings.js.map +1 -0
- package/dist/runtime/api/composer-runtime.d.ts +181 -0
- package/dist/runtime/api/composer-runtime.d.ts.map +1 -0
- package/dist/runtime/api/composer-runtime.js +247 -0
- package/dist/runtime/api/composer-runtime.js.map +1 -0
- package/dist/runtime/api/message-part-runtime.d.ts +31 -0
- package/dist/runtime/api/message-part-runtime.d.ts.map +1 -0
- package/dist/runtime/api/message-part-runtime.js +67 -0
- package/dist/runtime/api/message-part-runtime.js.map +1 -0
- package/dist/runtime/api/message-runtime.d.ts +91 -0
- package/dist/runtime/api/message-runtime.d.ts.map +1 -0
- package/dist/runtime/api/message-runtime.js +199 -0
- package/dist/runtime/api/message-runtime.js.map +1 -0
- package/dist/runtime/api/paths.d.ts +64 -0
- package/dist/runtime/api/paths.d.ts.map +1 -0
- package/dist/runtime/api/paths.js +2 -0
- package/dist/runtime/api/paths.js.map +1 -0
- package/dist/runtime/api/thread-list-item-runtime.d.ts +50 -0
- package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -0
- package/dist/runtime/api/thread-list-item-runtime.js +85 -0
- package/dist/runtime/api/thread-list-item-runtime.js.map +1 -0
- package/dist/runtime/api/thread-list-runtime.d.ts +44 -0
- package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -0
- package/dist/runtime/api/thread-list-runtime.js +136 -0
- package/dist/runtime/api/thread-list-runtime.js.map +1 -0
- package/dist/runtime/api/thread-runtime.d.ts +272 -0
- package/dist/runtime/api/thread-runtime.d.ts.map +1 -0
- package/dist/runtime/api/thread-runtime.js +240 -0
- package/dist/runtime/api/thread-runtime.js.map +1 -0
- package/dist/runtime/base/base-assistant-runtime-core.d.ts +12 -0
- package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -0
- package/dist/runtime/base/base-assistant-runtime-core.js +11 -0
- package/dist/runtime/base/base-assistant-runtime-core.js.map +1 -0
- package/dist/runtime/base/base-composer-runtime-core.d.ts +55 -0
- package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -0
- package/dist/runtime/base/base-composer-runtime-core.js +320 -0
- package/dist/runtime/base/base-composer-runtime-core.js.map +1 -0
- package/dist/runtime/base/base-thread-runtime-core.d.ts +67 -0
- package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -0
- package/dist/runtime/base/base-thread-runtime-core.js +157 -0
- package/dist/runtime/base/base-thread-runtime-core.js.map +1 -0
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts +28 -0
- package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -0
- package/dist/runtime/base/default-edit-composer-runtime-core.js +49 -0
- package/dist/runtime/base/default-edit-composer-runtime-core.js.map +1 -0
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts +24 -0
- package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -0
- package/dist/runtime/base/default-thread-composer-runtime-core.js +41 -0
- package/dist/runtime/base/default-thread-composer-runtime-core.js.map +1 -0
- package/dist/runtime/index.d.ts +20 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +7 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/interfaces/assistant-runtime-core.d.ts +10 -0
- package/dist/runtime/interfaces/assistant-runtime-core.d.ts.map +1 -0
- package/dist/runtime/interfaces/assistant-runtime-core.js +2 -0
- package/dist/runtime/interfaces/assistant-runtime-core.js.map +1 -0
- package/dist/runtime/interfaces/composer-runtime-core.d.ts +38 -0
- package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -0
- package/dist/runtime/interfaces/composer-runtime-core.js +2 -0
- package/dist/runtime/interfaces/composer-runtime-core.js.map +1 -0
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts +37 -0
- package/dist/runtime/interfaces/thread-list-runtime-core.d.ts.map +1 -0
- package/dist/runtime/interfaces/thread-list-runtime-core.js +2 -0
- package/dist/runtime/interfaces/thread-list-runtime-core.js.map +1 -0
- package/dist/runtime/interfaces/thread-runtime-core.d.ts +97 -0
- package/dist/runtime/interfaces/thread-runtime-core.d.ts.map +1 -0
- package/dist/runtime/interfaces/thread-runtime-core.js +2 -0
- package/dist/runtime/interfaces/thread-runtime-core.js.map +1 -0
- package/dist/runtime/internal.d.ts +23 -0
- package/dist/runtime/internal.d.ts.map +1 -0
- package/dist/runtime/internal.js +25 -0
- package/dist/runtime/internal.js.map +1 -0
- package/dist/runtime/utils/auto-status.d.ts +5 -0
- package/dist/runtime/utils/auto-status.d.ts.map +1 -0
- package/dist/runtime/utils/auto-status.js +32 -0
- package/dist/runtime/utils/auto-status.js.map +1 -0
- package/dist/runtime/utils/chat-model-adapter.d.ts +40 -0
- package/dist/runtime/utils/chat-model-adapter.d.ts.map +1 -0
- package/dist/runtime/utils/chat-model-adapter.js +2 -0
- package/dist/runtime/utils/chat-model-adapter.js.map +1 -0
- package/dist/runtime/utils/external-store-message.d.ts +10 -0
- package/dist/runtime/utils/external-store-message.d.ts.map +1 -0
- package/dist/runtime/utils/external-store-message.js +22 -0
- package/dist/runtime/utils/external-store-message.js.map +1 -0
- package/dist/runtime/utils/message-repository.d.ts +43 -0
- package/dist/runtime/utils/message-repository.d.ts.map +1 -0
- package/dist/runtime/utils/message-repository.js +257 -0
- package/dist/runtime/utils/message-repository.js.map +1 -0
- package/dist/runtime/utils/thread-message-like.d.ts +34 -0
- package/dist/runtime/utils/thread-message-like.d.ts.map +1 -0
- package/dist/runtime/utils/thread-message-like.js +129 -0
- package/dist/runtime/utils/thread-message-like.js.map +1 -0
- package/dist/runtimes/assistant-transport/utils.d.ts +11 -0
- package/dist/runtimes/assistant-transport/utils.d.ts.map +1 -0
- package/dist/runtimes/assistant-transport/utils.js +20 -0
- package/dist/runtimes/assistant-transport/utils.js.map +1 -0
- package/dist/runtimes/external-store/external-store-adapter.d.ts +81 -0
- package/dist/runtimes/external-store/external-store-adapter.d.ts.map +1 -0
- package/dist/runtimes/external-store/external-store-adapter.js +2 -0
- package/dist/runtimes/external-store/external-store-adapter.js.map +1 -0
- package/dist/runtimes/external-store/external-store-runtime-core.d.ts +9 -0
- package/dist/runtimes/external-store/external-store-runtime-core.d.ts.map +1 -0
- package/dist/runtimes/external-store/external-store-runtime-core.js +19 -0
- package/dist/runtimes/external-store/external-store-runtime-core.js.map +1 -0
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts +42 -0
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -0
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js +174 -0
- package/dist/runtimes/external-store/external-store-thread-list-runtime-core.js.map +1 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +47 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js +260 -0
- package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -0
- package/dist/runtimes/external-store/index.d.ts +8 -0
- package/dist/runtimes/external-store/index.d.ts.map +1 -0
- package/dist/runtimes/external-store/index.js +5 -0
- package/dist/runtimes/external-store/index.js.map +1 -0
- package/dist/runtimes/external-store/thread-message-converter.d.ts +7 -0
- package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -0
- package/dist/runtimes/external-store/thread-message-converter.js +12 -0
- package/dist/runtimes/external-store/thread-message-converter.js.map +1 -0
- package/dist/runtimes/index.d.ts +6 -0
- package/dist/runtimes/index.d.ts.map +1 -0
- package/dist/runtimes/index.js +4 -0
- package/dist/runtimes/index.js.map +1 -0
- package/dist/runtimes/internal.d.ts +18 -0
- package/dist/runtimes/internal.d.ts.map +1 -0
- package/dist/runtimes/internal.js +15 -0
- package/dist/runtimes/internal.js.map +1 -0
- package/dist/runtimes/local/index.d.ts +7 -0
- package/dist/runtimes/local/index.d.ts.map +1 -0
- package/dist/runtimes/local/index.js +5 -0
- package/dist/runtimes/local/index.js.map +1 -0
- package/dist/runtimes/local/local-runtime-core.d.ts +11 -0
- package/dist/runtimes/local/local-runtime-core.d.ts.map +1 -0
- package/dist/runtimes/local/local-runtime-core.js +22 -0
- package/dist/runtimes/local/local-runtime-core.js.map +1 -0
- package/dist/runtimes/local/local-runtime-options.d.ts +23 -0
- package/dist/runtimes/local/local-runtime-options.d.ts.map +1 -0
- package/dist/runtimes/local/local-runtime-options.js +2 -0
- package/dist/runtimes/local/local-runtime-options.js.map +1 -0
- package/dist/runtimes/local/local-thread-list-runtime-core.d.ts +46 -0
- package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -0
- package/dist/runtimes/local/local-thread-list-runtime-core.js +87 -0
- package/dist/runtimes/local/local-thread-list-runtime-core.js.map +1 -0
- package/dist/runtimes/local/local-thread-runtime-core.d.ts +59 -0
- package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -0
- package/dist/runtimes/local/local-thread-runtime-core.js +423 -0
- package/dist/runtimes/local/local-thread-runtime-core.js.map +1 -0
- package/dist/runtimes/local/should-continue.d.ts +3 -0
- package/dist/runtimes/local/should-continue.d.ts.map +1 -0
- package/dist/runtimes/local/should-continue.js +14 -0
- package/dist/runtimes/local/should-continue.js.map +1 -0
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts +13 -0
- package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -0
- package/dist/runtimes/remote-thread-list/adapter/in-memory.js +29 -0
- package/dist/runtimes/remote-thread-list/adapter/in-memory.js.map +1 -0
- package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts +3 -0
- package/dist/runtimes/remote-thread-list/empty-thread-core.d.ts.map +1 -0
- package/dist/runtimes/remote-thread-list/empty-thread-core.js +146 -0
- package/dist/runtimes/remote-thread-list/empty-thread-core.js.map +1 -0
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts +23 -0
- package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -0
- package/dist/runtimes/remote-thread-list/optimistic-state.js +57 -0
- package/dist/runtimes/remote-thread-list/optimistic-state.js.map +1 -0
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts +37 -0
- package/dist/runtimes/remote-thread-list/remote-thread-state.d.ts.map +1 -0
- package/dist/runtimes/remote-thread-list/remote-thread-state.js +62 -0
- package/dist/runtimes/remote-thread-list/remote-thread-state.js.map +1 -0
- package/dist/runtimes/remote-thread-list/types.d.ts +38 -0
- package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -0
- package/dist/runtimes/remote-thread-list/types.js +2 -0
- package/dist/runtimes/remote-thread-list/types.js.map +1 -0
- package/dist/store/clients/chain-of-thought-client.d.ts +15 -0
- package/dist/store/clients/chain-of-thought-client.d.ts.map +1 -0
- package/dist/store/clients/chain-of-thought-client.js +18 -0
- package/dist/store/clients/chain-of-thought-client.js.map +1 -0
- package/dist/store/clients/index.d.ts +6 -0
- package/dist/store/clients/index.d.ts.map +1 -0
- package/dist/store/clients/index.js +6 -0
- package/dist/store/clients/index.js.map +1 -0
- package/dist/store/clients/model-context-client.d.ts +3 -0
- package/dist/store/clients/model-context-client.d.ts.map +1 -0
- package/dist/store/clients/model-context-client.js +14 -0
- package/dist/store/clients/model-context-client.js.map +1 -0
- package/dist/store/clients/no-op-composer-client.d.ts +7 -0
- package/dist/store/clients/no-op-composer-client.d.ts.map +1 -0
- package/dist/store/clients/no-op-composer-client.js +61 -0
- package/dist/store/clients/no-op-composer-client.js.map +1 -0
- package/dist/store/clients/suggestions.d.ts +11 -0
- package/dist/store/clients/suggestions.d.ts.map +1 -0
- package/dist/store/clients/suggestions.js +37 -0
- package/dist/store/clients/suggestions.js.map +1 -0
- package/dist/store/clients/thread-message-client.d.ts +11 -0
- package/dist/store/clients/thread-message-client.d.ts.map +1 -0
- package/dist/store/clients/thread-message-client.js +112 -0
- package/dist/store/clients/thread-message-client.js.map +1 -0
- package/dist/store/index.d.ts +14 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +14 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/internal.d.ts +11 -0
- package/dist/store/internal.d.ts.map +1 -0
- package/dist/store/internal.js +12 -0
- package/dist/store/internal.js.map +1 -0
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts +8 -0
- package/dist/store/runtime-clients/attachment-runtime-client.d.ts.map +1 -0
- package/dist/store/runtime-clients/attachment-runtime-client.js +11 -0
- package/dist/store/runtime-clients/attachment-runtime-client.js.map +1 -0
- package/dist/store/runtime-clients/composer-runtime-client.d.ts +13 -0
- package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -0
- package/dist/store/runtime-clients/composer-runtime-client.js +83 -0
- package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -0
- package/dist/store/runtime-clients/index.d.ts +8 -0
- package/dist/store/runtime-clients/index.d.ts.map +1 -0
- package/dist/store/runtime-clients/index.js +8 -0
- package/dist/store/runtime-clients/index.js.map +1 -0
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts +8 -0
- package/dist/store/runtime-clients/message-part-runtime-client.d.ts.map +1 -0
- package/dist/store/runtime-clients/message-part-runtime-client.js +12 -0
- package/dist/store/runtime-clients/message-part-runtime-client.js.map +1 -0
- package/dist/store/runtime-clients/message-runtime-client.d.ts +11 -0
- package/dist/store/runtime-clients/message-runtime-client.d.ts.map +1 -0
- package/dist/store/runtime-clients/message-runtime-client.js +78 -0
- package/dist/store/runtime-clients/message-runtime-client.js.map +1 -0
- package/dist/store/runtime-clients/tap-subscribable.d.ts +3 -0
- package/dist/store/runtime-clients/tap-subscribable.d.ts.map +1 -0
- package/dist/store/runtime-clients/tap-subscribable.js +12 -0
- package/dist/store/runtime-clients/tap-subscribable.js.map +1 -0
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts +8 -0
- package/dist/store/runtime-clients/thread-list-item-runtime-client.d.ts.map +1 -0
- package/dist/store/runtime-clients/thread-list-item-runtime-client.js +41 -0
- package/dist/store/runtime-clients/thread-list-item-runtime-client.js.map +1 -0
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts +10 -0
- package/dist/store/runtime-clients/thread-list-runtime-client.d.ts.map +1 -0
- package/dist/store/runtime-clients/thread-list-runtime-client.js +54 -0
- package/dist/store/runtime-clients/thread-list-runtime-client.js.map +1 -0
- package/dist/store/runtime-clients/thread-runtime-client.d.ts +8 -0
- package/dist/store/runtime-clients/thread-runtime-client.d.ts.map +1 -0
- package/dist/store/runtime-clients/thread-runtime-client.js +91 -0
- package/dist/store/runtime-clients/thread-runtime-client.js.map +1 -0
- package/dist/store/scopes/attachment.d.ts +23 -0
- package/dist/store/scopes/attachment.d.ts.map +1 -0
- package/dist/store/scopes/attachment.js +2 -0
- package/dist/store/scopes/attachment.js.map +1 -0
- package/dist/store/scopes/chain-of-thought.d.ts +39 -0
- package/dist/store/scopes/chain-of-thought.d.ts.map +1 -0
- package/dist/store/scopes/chain-of-thought.js +2 -0
- package/dist/store/scopes/chain-of-thought.js.map +1 -0
- package/dist/store/scopes/composer.d.ts +75 -0
- package/dist/store/scopes/composer.d.ts.map +1 -0
- package/dist/store/scopes/composer.js +2 -0
- package/dist/store/scopes/composer.js.map +1 -0
- package/dist/store/scopes/index.d.ts +12 -0
- package/dist/store/scopes/index.d.ts.map +1 -0
- package/dist/store/scopes/index.js +2 -0
- package/dist/store/scopes/index.js.map +1 -0
- package/dist/store/scopes/message.d.ts +86 -0
- package/dist/store/scopes/message.d.ts.map +1 -0
- package/dist/store/scopes/message.js +2 -0
- package/dist/store/scopes/message.js.map +1 -0
- package/dist/store/scopes/model-context.d.ts +11 -0
- package/dist/store/scopes/model-context.d.ts.map +1 -0
- package/dist/store/scopes/model-context.js +2 -0
- package/dist/store/scopes/model-context.js.map +1 -0
- package/dist/store/scopes/part.d.ts +44 -0
- package/dist/store/scopes/part.d.ts.map +1 -0
- package/dist/store/scopes/part.js +2 -0
- package/dist/store/scopes/part.js.map +1 -0
- package/dist/store/scopes/suggestion.d.ts +19 -0
- package/dist/store/scopes/suggestion.d.ts.map +1 -0
- package/dist/store/scopes/suggestion.js +2 -0
- package/dist/store/scopes/suggestion.js.map +1 -0
- package/dist/store/scopes/suggestions.d.ts +19 -0
- package/dist/store/scopes/suggestions.d.ts.map +1 -0
- package/dist/store/scopes/suggestions.js +2 -0
- package/dist/store/scopes/suggestions.js.map +1 -0
- package/dist/store/scopes/thread-list-item.d.ts +50 -0
- package/dist/store/scopes/thread-list-item.d.ts.map +1 -0
- package/dist/store/scopes/thread-list-item.js +2 -0
- package/dist/store/scopes/thread-list-item.js.map +1 -0
- package/dist/store/scopes/thread.d.ts +135 -0
- package/dist/store/scopes/thread.d.ts.map +1 -0
- package/dist/store/scopes/thread.js +2 -0
- package/dist/store/scopes/thread.js.map +1 -0
- package/dist/store/scopes/threads.d.ts +29 -0
- package/dist/store/scopes/threads.d.ts.map +1 -0
- package/dist/store/scopes/threads.js +2 -0
- package/dist/store/scopes/threads.js.map +1 -0
- package/dist/store/types/client.d.ts +137 -0
- package/dist/store/types/client.d.ts.map +1 -0
- package/dist/store/types/client.js +2 -0
- package/dist/store/types/client.js.map +1 -0
- package/dist/store/types/events.d.ts +33 -0
- package/dist/store/types/events.d.ts.map +1 -0
- package/dist/store/types/events.js +8 -0
- package/dist/store/types/events.js.map +1 -0
- package/dist/store/types/index.d.ts +3 -0
- package/dist/store/types/index.d.ts.map +1 -0
- package/dist/store/types/index.js +2 -0
- package/dist/store/types/index.js.map +1 -0
- package/dist/store/utils/attach-transform-scopes.d.ts +11 -0
- package/dist/store/utils/attach-transform-scopes.d.ts.map +1 -0
- package/dist/store/utils/attach-transform-scopes.js +12 -0
- package/dist/store/utils/attach-transform-scopes.js.map +1 -0
- package/dist/store/utils/base-proxy-handler.d.ts +23 -0
- package/dist/store/utils/base-proxy-handler.d.ts.map +1 -0
- package/dist/store/utils/base-proxy-handler.js +46 -0
- package/dist/store/utils/base-proxy-handler.js.map +1 -0
- package/dist/store/utils/derived.d.ts +34 -0
- package/dist/store/utils/derived.d.ts.map +1 -0
- package/dist/store/utils/derived.js +24 -0
- package/dist/store/utils/derived.js.map +1 -0
- package/dist/store/utils/index.d.ts +7 -0
- package/dist/store/utils/index.d.ts.map +1 -0
- package/dist/store/utils/index.js +7 -0
- package/dist/store/utils/index.js.map +1 -0
- package/dist/store/utils/notification-manager.d.ts +11 -0
- package/dist/store/utils/notification-manager.d.ts.map +1 -0
- package/dist/store/utils/notification-manager.js +84 -0
- package/dist/store/utils/notification-manager.js.map +1 -0
- package/dist/store/utils/proxied-assistant-state.d.ts +8 -0
- package/dist/store/utils/proxied-assistant-state.d.ts.map +1 -0
- package/dist/store/utils/proxied-assistant-state.js +33 -0
- package/dist/store/utils/proxied-assistant-state.js.map +1 -0
- package/dist/store/utils/split-clients.d.ts +10 -0
- package/dist/store/utils/split-clients.d.ts.map +1 -0
- package/dist/store/utils/split-clients.js +53 -0
- package/dist/store/utils/split-clients.js.map +1 -0
- package/dist/store/utils/tap-assistant-context.d.ts +19 -0
- package/dist/store/utils/tap-assistant-context.d.ts.map +1 -0
- package/dist/store/utils/tap-assistant-context.js +23 -0
- package/dist/store/utils/tap-assistant-context.js.map +1 -0
- package/dist/store/utils/tap-client-list.d.ts +28 -0
- package/dist/store/utils/tap-client-list.d.ts.map +1 -0
- package/dist/store/utils/tap-client-list.js +68 -0
- package/dist/store/utils/tap-client-list.js.map +1 -0
- package/dist/store/utils/tap-client-lookup.d.ts +15 -0
- package/dist/store/utils/tap-client-lookup.d.ts.map +1 -0
- package/dist/store/utils/tap-client-lookup.js +42 -0
- package/dist/store/utils/tap-client-lookup.js.map +1 -0
- package/dist/store/utils/tap-client-resource.d.ts +13 -0
- package/dist/store/utils/tap-client-resource.d.ts.map +1 -0
- package/dist/store/utils/tap-client-resource.js +114 -0
- package/dist/store/utils/tap-client-resource.js.map +1 -0
- package/dist/store/utils/tap-client-stack-context.d.ts +23 -0
- package/dist/store/utils/tap-client-stack-context.d.ts.map +1 -0
- package/dist/store/utils/tap-client-stack-context.js +28 -0
- package/dist/store/utils/tap-client-stack-context.js.map +1 -0
- package/dist/store/utils/wrapper-resource.d.ts +3 -0
- package/dist/store/utils/wrapper-resource.d.ts.map +1 -0
- package/dist/store/utils/wrapper-resource.js +11 -0
- package/dist/store/utils/wrapper-resource.js.map +1 -0
- package/dist/subscribable/index.d.ts +3 -0
- package/dist/subscribable/index.d.ts.map +1 -0
- package/dist/subscribable/index.js +8 -0
- package/dist/subscribable/index.js.map +1 -0
- package/dist/subscribable/subscribable.d.ts +68 -0
- package/dist/subscribable/subscribable.d.ts.map +1 -0
- package/dist/subscribable/subscribable.js +237 -0
- package/dist/subscribable/subscribable.js.map +1 -0
- package/dist/types/attachment.d.ts +35 -0
- package/dist/types/attachment.d.ts.map +1 -0
- package/dist/types/attachment.js +2 -0
- package/dist/types/attachment.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/message.d.ts +179 -0
- package/dist/types/message.d.ts.map +1 -0
- package/dist/types/message.js +2 -0
- package/dist/types/message.js.map +1 -0
- package/dist/types/quote.d.ts +5 -0
- package/dist/types/quote.d.ts.map +1 -0
- package/dist/types/quote.js +2 -0
- package/dist/types/quote.js.map +1 -0
- package/dist/types/unsubscribe.d.ts +2 -0
- package/dist/types/unsubscribe.d.ts.map +1 -0
- package/dist/types/unsubscribe.js +2 -0
- package/dist/types/unsubscribe.js.map +1 -0
- package/dist/utils/composite-context-provider.d.ts +10 -0
- package/dist/utils/composite-context-provider.d.ts.map +1 -0
- package/dist/utils/composite-context-provider.js +29 -0
- package/dist/utils/composite-context-provider.js.map +1 -0
- package/dist/utils/id.d.ts +6 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +9 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/text.d.ts +3 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +5 -0
- package/dist/utils/text.js.map +1 -0
- package/package.json +85 -0
- package/src/adapters/attachment.ts +209 -0
- package/src/adapters/feedback.ts +10 -0
- package/src/adapters/index.ts +30 -0
- package/src/adapters/speech.ts +338 -0
- package/src/adapters/suggestion.ts +14 -0
- package/src/adapters/thread-history.ts +72 -0
- package/src/index.ts +7 -0
- package/src/internal.ts +7 -0
- package/src/model-context/frame/host.ts +195 -0
- package/src/model-context/frame/index.ts +10 -0
- package/src/model-context/frame/provider.ts +193 -0
- package/src/model-context/frame/types.ts +40 -0
- package/src/model-context/index.ts +35 -0
- package/src/model-context/registry-handles.ts +18 -0
- package/src/model-context/registry.ts +159 -0
- package/src/model-context/tool.ts +9 -0
- package/src/model-context/types.ts +104 -0
- package/src/runtime/api/assistant-runtime.ts +115 -0
- package/src/runtime/api/attachment-runtime.ts +119 -0
- package/src/runtime/api/bindings.ts +49 -0
- package/src/runtime/api/composer-runtime.ts +505 -0
- package/src/runtime/api/message-part-runtime.ts +108 -0
- package/src/runtime/api/message-runtime.ts +335 -0
- package/src/runtime/api/paths.ts +61 -0
- package/src/runtime/api/thread-list-item-runtime.ts +145 -0
- package/src/runtime/api/thread-list-runtime.ts +227 -0
- package/src/runtime/api/thread-runtime.ts +568 -0
- package/src/runtime/base/base-assistant-runtime-core.ts +20 -0
- package/src/runtime/base/base-composer-runtime-core.ts +418 -0
- package/src/runtime/base/base-thread-runtime-core.ts +234 -0
- package/src/runtime/base/default-edit-composer-runtime-core.ts +71 -0
- package/src/runtime/base/default-thread-composer-runtime-core.ts +65 -0
- package/src/runtime/index.ts +108 -0
- package/src/runtime/interfaces/assistant-runtime-core.ts +12 -0
- package/src/runtime/interfaces/composer-runtime-core.ts +64 -0
- package/src/runtime/interfaces/thread-list-runtime-core.ts +49 -0
- package/src/runtime/interfaces/thread-runtime-core.ts +142 -0
- package/src/runtime/internal.ts +64 -0
- package/src/runtime/utils/auto-status.ts +67 -0
- package/src/runtime/utils/chat-model-adapter.ts +66 -0
- package/src/runtime/utils/external-store-message.ts +37 -0
- package/src/runtime/utils/message-repository.ts +390 -0
- package/src/runtime/utils/thread-message-like.ts +225 -0
- package/src/runtimes/assistant-transport/utils.ts +37 -0
- package/src/runtimes/external-store/external-store-adapter.ts +111 -0
- package/src/runtimes/external-store/external-store-runtime-core.ts +26 -0
- package/src/runtimes/external-store/external-store-thread-list-runtime-core.ts +235 -0
- package/src/runtimes/external-store/external-store-thread-runtime-core.ts +368 -0
- package/src/runtimes/external-store/index.ts +15 -0
- package/src/runtimes/external-store/thread-message-converter.ts +23 -0
- package/src/runtimes/index.ts +28 -0
- package/src/runtimes/internal.ts +36 -0
- package/src/runtimes/local/index.ts +6 -0
- package/src/runtimes/local/local-runtime-core.ts +32 -0
- package/src/runtimes/local/local-runtime-options.ts +27 -0
- package/src/runtimes/local/local-thread-list-runtime-core.ts +116 -0
- package/src/runtimes/local/local-thread-runtime-core.ts +534 -0
- package/src/runtimes/local/should-continue.ts +26 -0
- package/src/runtimes/remote-thread-list/adapter/in-memory.ts +43 -0
- package/src/runtimes/remote-thread-list/empty-thread-core.ts +200 -0
- package/src/runtimes/remote-thread-list/optimistic-state.ts +89 -0
- package/src/runtimes/remote-thread-list/remote-thread-state.ts +123 -0
- package/src/runtimes/remote-thread-list/types.ts +48 -0
- package/src/store/clients/chain-of-thought-client.ts +40 -0
- package/src/store/clients/index.ts +8 -0
- package/src/store/clients/model-context-client.ts +20 -0
- package/src/store/clients/no-op-composer-client.ts +66 -0
- package/src/store/clients/suggestions.ts +69 -0
- package/src/store/clients/thread-message-client.ts +170 -0
- package/src/store/index.ts +44 -0
- package/src/store/internal.ts +32 -0
- package/src/store/runtime-clients/attachment-runtime-client.ts +16 -0
- package/src/store/runtime-clients/composer-runtime-client.ts +131 -0
- package/src/store/runtime-clients/index.ts +7 -0
- package/src/store/runtime-clients/message-part-runtime-client.ts +17 -0
- package/src/store/runtime-clients/message-runtime-client.ts +141 -0
- package/src/store/runtime-clients/tap-subscribable.ts +16 -0
- package/src/store/runtime-clients/thread-list-item-runtime-client.ts +53 -0
- package/src/store/runtime-clients/thread-list-runtime-client.ts +86 -0
- package/src/store/runtime-clients/thread-runtime-client.ts +141 -0
- package/src/store/scopes/attachment.ts +20 -0
- package/src/store/scopes/chain-of-thought.ts +38 -0
- package/src/store/scopes/composer.ts +80 -0
- package/src/store/scopes/index.ts +68 -0
- package/src/store/scopes/message.ts +75 -0
- package/src/store/scopes/model-context.ts +13 -0
- package/src/store/scopes/part.ts +47 -0
- package/src/store/scopes/suggestion.ts +19 -0
- package/src/store/scopes/suggestions.ts +20 -0
- package/src/store/scopes/thread-list-item.ts +44 -0
- package/src/store/scopes/thread.ts +135 -0
- package/src/store/scopes/threads.ts +34 -0
- package/src/store/types/client.ts +203 -0
- package/src/store/types/events.ts +77 -0
- package/src/store/types/index.ts +23 -0
- package/src/store/utils/attach-transform-scopes.ts +38 -0
- package/src/store/utils/base-proxy-handler.ts +50 -0
- package/src/store/utils/derived.ts +46 -0
- package/src/store/utils/index.ts +28 -0
- package/src/store/utils/notification-manager.ts +114 -0
- package/src/store/utils/proxied-assistant-state.ts +55 -0
- package/src/store/utils/split-clients.ts +82 -0
- package/src/store/utils/tap-assistant-context.ts +58 -0
- package/src/store/utils/tap-client-list.ts +121 -0
- package/src/store/utils/tap-client-lookup.ts +79 -0
- package/src/store/utils/tap-client-resource.ts +187 -0
- package/src/store/utils/tap-client-stack-context.ts +51 -0
- package/src/store/utils/wrapper-resource.ts +17 -0
- package/src/subscribable/index.ts +21 -0
- package/src/subscribable/subscribable.ts +317 -0
- package/src/tests/BaseSubscribable.test.ts +54 -0
- package/src/tests/MessageRepository.test.ts +607 -0
- package/src/tests/OptimisticState-delete-crash.test.ts +206 -0
- package/src/types/attachment.ts +45 -0
- package/src/types/index.ts +39 -0
- package/src/types/message.ts +248 -0
- package/src/types/quote.ts +4 -0
- package/src/types/unsubscribe.ts +1 -0
- package/src/utils/composite-context-provider.ts +36 -0
- package/src/utils/id.ts +14 -0
- package/src/utils/index.ts +14 -0
- package/src/utils/text.ts +11 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import type { ThreadRuntimeCore } from "../../runtime/interfaces/thread-runtime-core";
|
|
2
|
+
|
|
3
|
+
const EMPTY_THREAD_ERROR = new Error(
|
|
4
|
+
"This is the empty thread, a placeholder for the main thread. You cannot perform any actions on this thread instance. This error is probably because you tried to call a thread method in your render function. Call the method inside a `useEffect` hook instead.",
|
|
5
|
+
);
|
|
6
|
+
export const EMPTY_THREAD_CORE: ThreadRuntimeCore = {
|
|
7
|
+
getMessageById() {
|
|
8
|
+
return undefined;
|
|
9
|
+
},
|
|
10
|
+
|
|
11
|
+
getBranches() {
|
|
12
|
+
return [];
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
switchToBranch() {
|
|
16
|
+
throw EMPTY_THREAD_ERROR;
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
append() {
|
|
20
|
+
throw EMPTY_THREAD_ERROR;
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
startRun() {
|
|
24
|
+
throw EMPTY_THREAD_ERROR;
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
resumeRun() {
|
|
28
|
+
throw EMPTY_THREAD_ERROR;
|
|
29
|
+
},
|
|
30
|
+
|
|
31
|
+
cancelRun() {
|
|
32
|
+
throw EMPTY_THREAD_ERROR;
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
addToolResult() {
|
|
36
|
+
throw EMPTY_THREAD_ERROR;
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
resumeToolCall() {
|
|
40
|
+
throw EMPTY_THREAD_ERROR;
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
speak() {
|
|
44
|
+
throw EMPTY_THREAD_ERROR;
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
stopSpeaking() {
|
|
48
|
+
throw EMPTY_THREAD_ERROR;
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
submitFeedback() {
|
|
52
|
+
throw EMPTY_THREAD_ERROR;
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
getModelContext() {
|
|
56
|
+
return {};
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
exportExternalState() {
|
|
60
|
+
throw EMPTY_THREAD_ERROR;
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
importExternalState() {
|
|
64
|
+
throw EMPTY_THREAD_ERROR;
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
unstable_loadExternalState() {
|
|
68
|
+
throw EMPTY_THREAD_ERROR;
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
composer: {
|
|
72
|
+
attachments: [],
|
|
73
|
+
attachmentAccept: "*",
|
|
74
|
+
|
|
75
|
+
async addAttachment() {
|
|
76
|
+
throw EMPTY_THREAD_ERROR;
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
async removeAttachment() {
|
|
80
|
+
throw EMPTY_THREAD_ERROR;
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
isEditing: true,
|
|
84
|
+
|
|
85
|
+
canCancel: false,
|
|
86
|
+
isEmpty: true,
|
|
87
|
+
|
|
88
|
+
text: "",
|
|
89
|
+
|
|
90
|
+
setText() {
|
|
91
|
+
throw EMPTY_THREAD_ERROR;
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
role: "user",
|
|
95
|
+
|
|
96
|
+
setRole() {
|
|
97
|
+
throw EMPTY_THREAD_ERROR;
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
runConfig: {},
|
|
101
|
+
|
|
102
|
+
setRunConfig() {
|
|
103
|
+
throw EMPTY_THREAD_ERROR;
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
async reset() {
|
|
107
|
+
// noop
|
|
108
|
+
},
|
|
109
|
+
|
|
110
|
+
async clearAttachments() {
|
|
111
|
+
// noop
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
send() {
|
|
115
|
+
throw EMPTY_THREAD_ERROR;
|
|
116
|
+
},
|
|
117
|
+
|
|
118
|
+
cancel() {
|
|
119
|
+
// noop
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
dictation: undefined,
|
|
123
|
+
|
|
124
|
+
startDictation() {
|
|
125
|
+
throw EMPTY_THREAD_ERROR;
|
|
126
|
+
},
|
|
127
|
+
|
|
128
|
+
stopDictation() {
|
|
129
|
+
// noop
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
quote: undefined,
|
|
133
|
+
|
|
134
|
+
setQuote() {
|
|
135
|
+
throw EMPTY_THREAD_ERROR;
|
|
136
|
+
},
|
|
137
|
+
|
|
138
|
+
subscribe() {
|
|
139
|
+
return () => {};
|
|
140
|
+
},
|
|
141
|
+
|
|
142
|
+
unstable_on() {
|
|
143
|
+
return () => {};
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
|
|
147
|
+
getEditComposer() {
|
|
148
|
+
return undefined;
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
beginEdit() {
|
|
152
|
+
throw EMPTY_THREAD_ERROR;
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
speech: undefined,
|
|
156
|
+
|
|
157
|
+
capabilities: {
|
|
158
|
+
switchToBranch: false,
|
|
159
|
+
switchBranchDuringRun: false,
|
|
160
|
+
edit: false,
|
|
161
|
+
reload: false,
|
|
162
|
+
cancel: false,
|
|
163
|
+
unstable_copy: false,
|
|
164
|
+
speech: false,
|
|
165
|
+
dictation: false,
|
|
166
|
+
attachments: false,
|
|
167
|
+
feedback: false,
|
|
168
|
+
},
|
|
169
|
+
|
|
170
|
+
isDisabled: false,
|
|
171
|
+
isLoading: false,
|
|
172
|
+
|
|
173
|
+
messages: [],
|
|
174
|
+
|
|
175
|
+
state: null,
|
|
176
|
+
|
|
177
|
+
suggestions: [],
|
|
178
|
+
|
|
179
|
+
extras: undefined,
|
|
180
|
+
|
|
181
|
+
subscribe() {
|
|
182
|
+
return () => {};
|
|
183
|
+
},
|
|
184
|
+
|
|
185
|
+
import() {
|
|
186
|
+
throw EMPTY_THREAD_ERROR;
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
export() {
|
|
190
|
+
return { messages: [] };
|
|
191
|
+
},
|
|
192
|
+
|
|
193
|
+
reset() {
|
|
194
|
+
throw EMPTY_THREAD_ERROR;
|
|
195
|
+
},
|
|
196
|
+
|
|
197
|
+
unstable_on() {
|
|
198
|
+
return () => {};
|
|
199
|
+
},
|
|
200
|
+
};
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { BaseSubscribable } from "../../subscribable/subscribable";
|
|
2
|
+
|
|
3
|
+
type Transform<TState, TResult> = {
|
|
4
|
+
execute: () => Promise<TResult>;
|
|
5
|
+
|
|
6
|
+
/** transform the state after the promise resolves */
|
|
7
|
+
then?: (state: TState, result: TResult) => TState;
|
|
8
|
+
|
|
9
|
+
/** transform the state during resolution and afterwards */
|
|
10
|
+
optimistic?: (state: TState) => TState;
|
|
11
|
+
|
|
12
|
+
/** transform the state only while loading */
|
|
13
|
+
loading?: (state: TState, task: Promise<TResult>) => TState;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
type PendingTransform<TState, TResult> = Transform<TState, TResult> & {
|
|
17
|
+
task: Promise<TResult>;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const pipeTransforms = <TState, TExtra>(
|
|
21
|
+
initialState: TState,
|
|
22
|
+
extraParam: TExtra,
|
|
23
|
+
transforms: (((state: TState, extra: TExtra) => TState) | undefined)[],
|
|
24
|
+
): TState => {
|
|
25
|
+
return transforms.reduce((state, transform) => {
|
|
26
|
+
return transform?.(state, extraParam) ?? state;
|
|
27
|
+
}, initialState);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export class OptimisticState<TState> extends BaseSubscribable {
|
|
31
|
+
private readonly _pendingTransforms: Array<PendingTransform<TState, any>> =
|
|
32
|
+
[];
|
|
33
|
+
private _baseValue: TState;
|
|
34
|
+
private _cachedValue: TState;
|
|
35
|
+
|
|
36
|
+
public constructor(initialState: TState) {
|
|
37
|
+
super();
|
|
38
|
+
this._baseValue = initialState;
|
|
39
|
+
this._cachedValue = initialState;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private _updateState(): void {
|
|
43
|
+
this._cachedValue = this._pendingTransforms.reduce((state, transform) => {
|
|
44
|
+
return pipeTransforms(state, transform.task, [
|
|
45
|
+
transform.loading,
|
|
46
|
+
transform.optimistic,
|
|
47
|
+
]);
|
|
48
|
+
}, this._baseValue);
|
|
49
|
+
|
|
50
|
+
this._notifySubscribers();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public get baseValue(): TState {
|
|
54
|
+
return this._baseValue;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public get value(): TState {
|
|
58
|
+
return this._cachedValue;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public update(state: TState): void {
|
|
62
|
+
this._baseValue = state;
|
|
63
|
+
this._updateState();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
public async optimisticUpdate<TResult>(
|
|
67
|
+
transform: Transform<TState, TResult>,
|
|
68
|
+
): Promise<TResult> {
|
|
69
|
+
const task = transform.execute();
|
|
70
|
+
const pendingTransform = { ...transform, task };
|
|
71
|
+
try {
|
|
72
|
+
this._pendingTransforms.push(pendingTransform);
|
|
73
|
+
this._updateState();
|
|
74
|
+
|
|
75
|
+
const result = await task;
|
|
76
|
+
this._baseValue = pipeTransforms(this._baseValue, result, [
|
|
77
|
+
transform.optimistic,
|
|
78
|
+
transform.then,
|
|
79
|
+
]);
|
|
80
|
+
return result;
|
|
81
|
+
} finally {
|
|
82
|
+
const index = this._pendingTransforms.indexOf(pendingTransform);
|
|
83
|
+
if (index > -1) {
|
|
84
|
+
this._pendingTransforms.splice(index, 1);
|
|
85
|
+
}
|
|
86
|
+
this._updateState();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { RemoteThreadInitializeResponse } from "./types";
|
|
2
|
+
|
|
3
|
+
export type RemoteThreadData =
|
|
4
|
+
| {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly remoteId: undefined;
|
|
7
|
+
readonly externalId: undefined;
|
|
8
|
+
readonly status: "new";
|
|
9
|
+
readonly title: undefined;
|
|
10
|
+
}
|
|
11
|
+
| {
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly initializeTask: Promise<RemoteThreadInitializeResponse>;
|
|
14
|
+
readonly remoteId: undefined;
|
|
15
|
+
readonly externalId: undefined;
|
|
16
|
+
readonly status: "regular" | "archived";
|
|
17
|
+
readonly title?: string | undefined;
|
|
18
|
+
}
|
|
19
|
+
| {
|
|
20
|
+
readonly id: string;
|
|
21
|
+
readonly initializeTask: Promise<RemoteThreadInitializeResponse>;
|
|
22
|
+
readonly remoteId: string;
|
|
23
|
+
readonly externalId: string | undefined;
|
|
24
|
+
readonly status: "regular" | "archived";
|
|
25
|
+
readonly title?: string | undefined;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export type THREAD_MAPPING_ID = string & { __brand: "THREAD_MAPPING_ID" };
|
|
29
|
+
|
|
30
|
+
export function createThreadMappingId(id: string): THREAD_MAPPING_ID {
|
|
31
|
+
return id as THREAD_MAPPING_ID;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export type RemoteThreadState = {
|
|
35
|
+
readonly isLoading: boolean;
|
|
36
|
+
readonly newThreadId: string | undefined;
|
|
37
|
+
readonly threadIds: readonly string[];
|
|
38
|
+
readonly archivedThreadIds: readonly string[];
|
|
39
|
+
readonly threadIdMap: Readonly<Record<string, THREAD_MAPPING_ID>>;
|
|
40
|
+
readonly threadData: Readonly<Record<THREAD_MAPPING_ID, RemoteThreadData>>;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const getThreadData = (
|
|
44
|
+
state: RemoteThreadState,
|
|
45
|
+
threadIdOrRemoteId: string,
|
|
46
|
+
) => {
|
|
47
|
+
const idx = state.threadIdMap[threadIdOrRemoteId];
|
|
48
|
+
if (idx === undefined) return undefined;
|
|
49
|
+
return state.threadData[idx];
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export const updateStatusReducer = (
|
|
53
|
+
state: RemoteThreadState,
|
|
54
|
+
threadIdOrRemoteId: string,
|
|
55
|
+
newStatus: "regular" | "archived" | "deleted",
|
|
56
|
+
) => {
|
|
57
|
+
const data = getThreadData(state, threadIdOrRemoteId);
|
|
58
|
+
if (!data) return state;
|
|
59
|
+
|
|
60
|
+
const { id, remoteId, status: lastStatus } = data;
|
|
61
|
+
if (lastStatus === newStatus) return state;
|
|
62
|
+
|
|
63
|
+
const newState = { ...state };
|
|
64
|
+
|
|
65
|
+
// lastStatus
|
|
66
|
+
switch (lastStatus) {
|
|
67
|
+
case "new":
|
|
68
|
+
newState.newThreadId = undefined;
|
|
69
|
+
break;
|
|
70
|
+
case "regular":
|
|
71
|
+
newState.threadIds = newState.threadIds.filter((t) => t !== id);
|
|
72
|
+
break;
|
|
73
|
+
case "archived":
|
|
74
|
+
newState.archivedThreadIds = newState.archivedThreadIds.filter(
|
|
75
|
+
(t) => t !== id,
|
|
76
|
+
);
|
|
77
|
+
break;
|
|
78
|
+
|
|
79
|
+
default: {
|
|
80
|
+
const _exhaustiveCheck: never = lastStatus;
|
|
81
|
+
throw new Error(`Unsupported state: ${_exhaustiveCheck}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// newStatus
|
|
86
|
+
switch (newStatus) {
|
|
87
|
+
case "regular":
|
|
88
|
+
newState.threadIds = [id, ...newState.threadIds];
|
|
89
|
+
break;
|
|
90
|
+
|
|
91
|
+
case "archived":
|
|
92
|
+
newState.archivedThreadIds = [id, ...newState.archivedThreadIds];
|
|
93
|
+
break;
|
|
94
|
+
|
|
95
|
+
case "deleted":
|
|
96
|
+
newState.threadData = Object.fromEntries(
|
|
97
|
+
Object.entries(newState.threadData).filter(([key]) => key !== id),
|
|
98
|
+
);
|
|
99
|
+
newState.threadIdMap = Object.fromEntries(
|
|
100
|
+
Object.entries(newState.threadIdMap).filter(
|
|
101
|
+
([key]) => key !== id && key !== remoteId,
|
|
102
|
+
),
|
|
103
|
+
);
|
|
104
|
+
break;
|
|
105
|
+
|
|
106
|
+
default: {
|
|
107
|
+
const _exhaustiveCheck: never = newStatus;
|
|
108
|
+
throw new Error(`Unsupported state: ${_exhaustiveCheck}`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if (newStatus !== "deleted") {
|
|
113
|
+
newState.threadData = {
|
|
114
|
+
...newState.threadData,
|
|
115
|
+
[id]: {
|
|
116
|
+
...data,
|
|
117
|
+
status: newStatus,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return newState;
|
|
123
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ThreadMessage } from "../../types";
|
|
2
|
+
import type { AssistantRuntime } from "../../runtime/api/assistant-runtime";
|
|
3
|
+
import { AssistantStream } from "assistant-stream";
|
|
4
|
+
|
|
5
|
+
export type RemoteThreadInitializeResponse = {
|
|
6
|
+
remoteId: string;
|
|
7
|
+
externalId: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export type RemoteThreadMetadata = {
|
|
11
|
+
readonly status: "regular" | "archived";
|
|
12
|
+
readonly remoteId: string;
|
|
13
|
+
readonly externalId?: string | undefined;
|
|
14
|
+
readonly title?: string | undefined;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export type RemoteThreadListResponse = {
|
|
18
|
+
threads: RemoteThreadMetadata[];
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export type RemoteThreadListAdapter = {
|
|
22
|
+
list(): Promise<RemoteThreadListResponse>;
|
|
23
|
+
|
|
24
|
+
rename(remoteId: string, newTitle: string): Promise<void>;
|
|
25
|
+
archive(remoteId: string): Promise<void>;
|
|
26
|
+
unarchive(remoteId: string): Promise<void>;
|
|
27
|
+
delete(remoteId: string): Promise<void>;
|
|
28
|
+
initialize(threadId: string): Promise<RemoteThreadInitializeResponse>;
|
|
29
|
+
generateTitle(
|
|
30
|
+
remoteId: string,
|
|
31
|
+
unstable_messages: readonly ThreadMessage[],
|
|
32
|
+
): Promise<AssistantStream>;
|
|
33
|
+
fetch(threadId: string): Promise<RemoteThreadMetadata>;
|
|
34
|
+
|
|
35
|
+
unstable_Provider?: ((...args: any[]) => unknown) | undefined;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export type RemoteThreadListOptions = {
|
|
39
|
+
runtimeHook: () => AssistantRuntime;
|
|
40
|
+
adapter: RemoteThreadListAdapter;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* When true, if this runtime is used inside another RemoteThreadListRuntime,
|
|
44
|
+
* it becomes a no-op and simply calls the runtimeHook directly.
|
|
45
|
+
* This allows wrapping runtimes that internally use RemoteThreadListRuntime.
|
|
46
|
+
*/
|
|
47
|
+
allowNesting?: boolean | undefined;
|
|
48
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { resource, tapMemo, tapState } from "@assistant-ui/tap";
|
|
2
|
+
import type { ClientOutput } from "../types/client";
|
|
3
|
+
import type {
|
|
4
|
+
ChainOfThoughtState,
|
|
5
|
+
ChainOfThoughtPart,
|
|
6
|
+
} from "../scopes/chain-of-thought";
|
|
7
|
+
import type { MessagePartStatus } from "../../types";
|
|
8
|
+
import type { PartMethods } from "../scopes/part";
|
|
9
|
+
|
|
10
|
+
const COMPLETE_STATUS: MessagePartStatus = Object.freeze({
|
|
11
|
+
type: "complete",
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export const ChainOfThoughtClient = resource(
|
|
15
|
+
({
|
|
16
|
+
parts,
|
|
17
|
+
getMessagePart,
|
|
18
|
+
}: {
|
|
19
|
+
parts: readonly ChainOfThoughtPart[];
|
|
20
|
+
getMessagePart: (selector: { index: number }) => PartMethods;
|
|
21
|
+
}): ClientOutput<"chainOfThought"> => {
|
|
22
|
+
const [collapsed, setCollapsed] = tapState(true);
|
|
23
|
+
|
|
24
|
+
const status = tapMemo(() => {
|
|
25
|
+
const lastPart = parts[parts.length - 1];
|
|
26
|
+
return lastPart?.status ?? COMPLETE_STATUS;
|
|
27
|
+
}, [parts]);
|
|
28
|
+
|
|
29
|
+
const state = tapMemo<ChainOfThoughtState>(
|
|
30
|
+
() => ({ parts, collapsed, status }),
|
|
31
|
+
[parts, collapsed, status],
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
getState: () => state,
|
|
36
|
+
setCollapsed,
|
|
37
|
+
part: getMessagePart,
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { NoOpComposerClient } from "./no-op-composer-client";
|
|
2
|
+
export { Suggestions, type SuggestionConfig } from "./suggestions";
|
|
3
|
+
export { ChainOfThoughtClient } from "./chain-of-thought-client";
|
|
4
|
+
export {
|
|
5
|
+
ThreadMessageClient,
|
|
6
|
+
type ThreadMessageClientProps,
|
|
7
|
+
} from "./thread-message-client";
|
|
8
|
+
export { ModelContext } from "./model-context-client";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { resource, tapMemo, tapState } from "@assistant-ui/tap";
|
|
2
|
+
import type { ClientOutput } from "../types/client";
|
|
3
|
+
import { CompositeContextProvider } from "../../utils";
|
|
4
|
+
import type { ModelContextState } from "../scopes";
|
|
5
|
+
|
|
6
|
+
const version = 1;
|
|
7
|
+
|
|
8
|
+
export const ModelContext = resource((): ClientOutput<"modelContext"> => {
|
|
9
|
+
const [state] = tapState<ModelContextState>(
|
|
10
|
+
() => ({ version: version + 1 }) as unknown as ModelContextState,
|
|
11
|
+
);
|
|
12
|
+
const composite = tapMemo(() => new CompositeContextProvider(), []);
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
getState: () => state,
|
|
16
|
+
getModelContext: () => composite.getModelContext(),
|
|
17
|
+
subscribe: (callback) => composite.subscribe(callback),
|
|
18
|
+
register: (provider) => composite.registerModelContextProvider(provider),
|
|
19
|
+
};
|
|
20
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { resource, tapMemo } from "@assistant-ui/tap";
|
|
2
|
+
import type { ClientOutput } from "../types/client";
|
|
3
|
+
import type { ComposerState } from "../scopes";
|
|
4
|
+
|
|
5
|
+
export const NoOpComposerClient = resource(
|
|
6
|
+
({ type }: { type: "edit" | "thread" }): ClientOutput<"composer"> => {
|
|
7
|
+
const state = tapMemo<ComposerState>(() => {
|
|
8
|
+
return {
|
|
9
|
+
isEditing: false,
|
|
10
|
+
isEmpty: true,
|
|
11
|
+
text: "",
|
|
12
|
+
attachmentAccept: "*",
|
|
13
|
+
attachments: [],
|
|
14
|
+
role: "user",
|
|
15
|
+
runConfig: {},
|
|
16
|
+
canCancel: false,
|
|
17
|
+
type: type,
|
|
18
|
+
dictation: undefined,
|
|
19
|
+
quote: undefined,
|
|
20
|
+
};
|
|
21
|
+
}, [type]);
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
getState: () => state,
|
|
25
|
+
setText: () => {
|
|
26
|
+
throw new Error("Not supported");
|
|
27
|
+
},
|
|
28
|
+
setRole: () => {
|
|
29
|
+
throw new Error("Not supported");
|
|
30
|
+
},
|
|
31
|
+
setRunConfig: () => {
|
|
32
|
+
throw new Error("Not supported");
|
|
33
|
+
},
|
|
34
|
+
addAttachment: () => {
|
|
35
|
+
throw new Error("Not supported");
|
|
36
|
+
},
|
|
37
|
+
clearAttachments: () => {
|
|
38
|
+
throw new Error("Not supported");
|
|
39
|
+
},
|
|
40
|
+
attachment: () => {
|
|
41
|
+
throw new Error("Not supported");
|
|
42
|
+
},
|
|
43
|
+
reset: () => {
|
|
44
|
+
throw new Error("Not supported");
|
|
45
|
+
},
|
|
46
|
+
send: () => {
|
|
47
|
+
throw new Error("Not supported");
|
|
48
|
+
},
|
|
49
|
+
cancel: () => {
|
|
50
|
+
throw new Error("Not supported");
|
|
51
|
+
},
|
|
52
|
+
startDictation: () => {
|
|
53
|
+
throw new Error("Not supported");
|
|
54
|
+
},
|
|
55
|
+
stopDictation: () => {
|
|
56
|
+
throw new Error("Not supported");
|
|
57
|
+
},
|
|
58
|
+
beginEdit: () => {
|
|
59
|
+
throw new Error("Not supported");
|
|
60
|
+
},
|
|
61
|
+
setQuote: () => {
|
|
62
|
+
throw new Error("Not supported");
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
},
|
|
66
|
+
);
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { resource, tapState, withKey } from "@assistant-ui/tap";
|
|
2
|
+
import type { ClientOutput } from "../types/client";
|
|
3
|
+
import { tapClientLookup } from "../utils/tap-client-lookup";
|
|
4
|
+
import type { SuggestionsState, SuggestionState } from "../scopes";
|
|
5
|
+
|
|
6
|
+
export type SuggestionConfig =
|
|
7
|
+
| string
|
|
8
|
+
| { title: string; label: string; prompt: string };
|
|
9
|
+
|
|
10
|
+
const SuggestionClient = resource(
|
|
11
|
+
(state: SuggestionState): ClientOutput<"suggestion"> => {
|
|
12
|
+
return {
|
|
13
|
+
getState: () => state,
|
|
14
|
+
};
|
|
15
|
+
},
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
const SuggestionsResource = resource(
|
|
19
|
+
(suggestions?: SuggestionConfig[]): ClientOutput<"suggestions"> => {
|
|
20
|
+
const [state] = tapState<SuggestionsState>(() => {
|
|
21
|
+
const normalizedSuggestions = (suggestions ?? []).map((s) => {
|
|
22
|
+
if (typeof s === "string") {
|
|
23
|
+
return {
|
|
24
|
+
title: s,
|
|
25
|
+
label: "",
|
|
26
|
+
prompt: s,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
title: s.title,
|
|
31
|
+
label: s.label,
|
|
32
|
+
prompt: s.prompt,
|
|
33
|
+
};
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
suggestions: normalizedSuggestions,
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const suggestionClients = tapClientLookup(
|
|
42
|
+
() =>
|
|
43
|
+
state.suggestions.map((suggestion, index) =>
|
|
44
|
+
withKey(index, SuggestionClient(suggestion)),
|
|
45
|
+
),
|
|
46
|
+
[state.suggestions],
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
getState: () => state,
|
|
51
|
+
suggestion: ({ index }: { index: number }) => {
|
|
52
|
+
return suggestionClients.get({ index });
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
export const Suggestions: {
|
|
59
|
+
(): import("@assistant-ui/tap").ResourceElement<
|
|
60
|
+
ClientOutput<"suggestions">,
|
|
61
|
+
undefined
|
|
62
|
+
>;
|
|
63
|
+
(
|
|
64
|
+
suggestions: SuggestionConfig[],
|
|
65
|
+
): import("@assistant-ui/tap").ResourceElement<
|
|
66
|
+
ClientOutput<"suggestions">,
|
|
67
|
+
SuggestionConfig[]
|
|
68
|
+
>;
|
|
69
|
+
} = SuggestionsResource as any;
|