@assistant-ui/react 0.11.6 → 0.11.7
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/legacy-runtime/runtime/ThreadRuntime.d.ts +8 -1
- package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime/ThreadRuntime.js +5 -1
- package/dist/legacy-runtime/runtime/ThreadRuntime.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.d.ts +12 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.d.ts.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js +52 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/index.d.ts +3 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/index.d.ts.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/index.js +6 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/index.js.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.d.ts +11 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.d.ts.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.js +55 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.js.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts +66 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/types.js +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/types.js.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts +7 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +185 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.d.ts +3 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.d.ts.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js +12 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.d.ts +4 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.d.ts.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js +13 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.d.ts +13 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.d.ts.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.js +138 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.js.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.d.ts +13 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.d.ts.map +1 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.js +32 -0
- package/dist/legacy-runtime/runtime-cores/assistant-transport/utils.js.map +1 -0
- package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts +1 -0
- package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts +2 -1
- package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts +3 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts +3 -2
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js +9 -2
- package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js +2 -2
- package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/index.d.ts +1 -0
- package/dist/legacy-runtime/runtime-cores/index.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/index.js +1 -0
- package/dist/legacy-runtime/runtime-cores/index.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts +1 -0
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js +5 -0
- package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.js +3 -0
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts +2 -0
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +2 -0
- package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/legacy-runtime/runtime/ThreadRuntime.ts +14 -2
- package/src/legacy-runtime/runtime-cores/assistant-transport/commandQueue.ts +62 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/index.ts +2 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/runManager.ts +67 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/types.ts +96 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransport.spec.md +125 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.tsx +232 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.ts +18 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.ts +9 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/useToolInvocations.ts +173 -0
- package/src/legacy-runtime/runtime-cores/assistant-transport/utils.ts +42 -0
- package/src/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.tsx +1 -0
- package/src/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.tsx +2 -1
- package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.tsx +3 -0
- package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.tsx +13 -2
- package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.tsx +2 -5
- package/src/legacy-runtime/runtime-cores/index.ts +1 -0
- package/src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx +6 -0
- package/src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.tsx +4 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ExternalStoreAdapter.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.tsx"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ExternalStoreAdapter.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.tsx"],"names":[],"mappings":"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"}
|
package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { AddToolResultOptions, StartRunConfig, ThreadSuggestion } from "../core/ThreadRuntimeCore";
|
1
|
+
import { AddToolResultOptions, ResumeRunConfig, StartRunConfig, ThreadSuggestion } from "../core/ThreadRuntimeCore";
|
2
2
|
import { AppendMessage, ThreadMessage } from "../../../types";
|
3
3
|
import { ExternalStoreAdapter } from "./ExternalStoreAdapter";
|
4
4
|
import { ThreadMessageLike } from "./ThreadMessageLike";
|
@@ -31,7 +31,8 @@ export declare class ExternalStoreThreadRuntimeCore extends BaseThreadRuntimeCor
|
|
31
31
|
switchToBranch(branchId: string): void;
|
32
32
|
append(message: AppendMessage): Promise<void>;
|
33
33
|
startRun(config: StartRunConfig): Promise<void>;
|
34
|
-
resumeRun(): Promise<void>;
|
34
|
+
resumeRun(config: ResumeRunConfig): Promise<void>;
|
35
|
+
unstable_loadExternalState(state: any): void;
|
35
36
|
cancelRun(): void;
|
36
37
|
addToolResult(options: AddToolResultOptions): void;
|
37
38
|
reset(initialMessages?: readonly ThreadMessageLike[]): void;
|
package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ExternalStoreThreadRuntimeCore.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAO9D,OAAO,EAAyB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,yBAAyB,EAE1B,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,kBAAkB,GAC7B,WAAW,OAAO,EAClB,UAAU,SAAS,aAAa,EAAE,YAGnC,CAAC;AAEF,qBAAa,8BACX,SAAQ,qBACR,YAAW,iBAAiB;IAE5B,OAAO,CAAC,sBAAsB,CAAuB;IAErD,OAAO,CAAC,aAAa,CASnB;IAEF,IAAW,YAAY,wBAEtB;IAED,OAAO,CAAC,SAAS,CAA4B;IACtC,UAAU,EAAG,OAAO,CAAC;IAC5B,IAAW,SAAS,YAEnB;IAED,IAAoB,QAAQ,6BAE3B;IAED,IAAW,QAAQ;;;;;kBAElB;IAEM,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAM;IAC9C,MAAM,EAAE,OAAO,CAAa;IAEnC,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,MAAM,CAA6B;IAE3B,SAAS,CAAC,SAAS,EAAE,MAAM;gBAQzC,eAAe,EAAE,oBAAoB,EACrC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC;IAM3B,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC;IAgI7C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQzC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,SAAS,
|
1
|
+
{"version":3,"file":"ExternalStoreThreadRuntimeCore.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAO9D,OAAO,EAAyB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/E,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,yBAAyB,EAE1B,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,kBAAkB,GAC7B,WAAW,OAAO,EAClB,UAAU,SAAS,aAAa,EAAE,YAGnC,CAAC;AAEF,qBAAa,8BACX,SAAQ,qBACR,YAAW,iBAAiB;IAE5B,OAAO,CAAC,sBAAsB,CAAuB;IAErD,OAAO,CAAC,aAAa,CASnB;IAEF,IAAW,YAAY,wBAEtB;IAED,OAAO,CAAC,SAAS,CAA4B;IACtC,UAAU,EAAG,OAAO,CAAC;IAC5B,IAAW,SAAS,YAEnB;IAED,IAAoB,QAAQ,6BAE3B;IAED,IAAW,QAAQ;;;;;kBAElB;IAEM,WAAW,EAAE,SAAS,gBAAgB,EAAE,CAAM;IAC9C,MAAM,EAAE,OAAO,CAAa;IAEnC,OAAO,CAAC,UAAU,CAAgC;IAElD,OAAO,CAAC,MAAM,CAA6B;IAE3B,SAAS,CAAC,SAAS,EAAE,MAAM;gBAQzC,eAAe,EAAE,oBAAoB,EACrC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC;IAM3B,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC;IAgI7C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQzC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,0BAA0B,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAO5C,SAAS,IAAI,IAAI;IAiCjB,aAAa,CAAC,OAAO,EAAE,oBAAoB;IAMlC,KAAK,CAAC,eAAe,CAAC,EAAE,SAAS,iBAAiB,EAAE;IAMpD,MAAM,CAAC,IAAI,EAAE,yBAAyB;IAUtD,OAAO,CAAC,cAAc,CAUpB;CACH"}
|
@@ -165,8 +165,15 @@ var ExternalStoreThreadRuntimeCore = class extends BaseThreadRuntimeCore {
|
|
165
165
|
throw new Error("Runtime does not support reloading messages.");
|
166
166
|
await this._store.onReload(config.parentId, config);
|
167
167
|
}
|
168
|
-
async resumeRun() {
|
169
|
-
|
168
|
+
async resumeRun(config) {
|
169
|
+
if (!this._store.onResume)
|
170
|
+
throw new Error("Runtime does not support resuming runs.");
|
171
|
+
await this._store.onResume(config);
|
172
|
+
}
|
173
|
+
unstable_loadExternalState(state) {
|
174
|
+
if (!this._store.onLoadExternalState)
|
175
|
+
throw new Error("Runtime does not support importing states.");
|
176
|
+
this._store.onLoadExternalState(state);
|
170
177
|
}
|
171
178
|
cancelRun() {
|
172
179
|
if (!this._store.onCancel)
|
package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.tsx"],"sourcesContent":["import {\n AddToolResultOptions,\n StartRunConfig,\n ThreadSuggestion,\n} from \"../core/ThreadRuntimeCore\";\n\nimport { AppendMessage, ThreadMessage } from \"../../../types\";\nimport { ExternalStoreAdapter } from \"./ExternalStoreAdapter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { fromThreadMessageLike, ThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getThreadMessageText } from \"../../../utils/getThreadMessageText\";\nimport {\n RuntimeCapabilities,\n ThreadRuntimeCore,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\nimport { ModelContextProvider } from \"../../../model-context\";\nimport {\n ExportedMessageRepository,\n MessageRepository,\n} from \"../utils/MessageRepository\";\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\nexport const hasUpcomingMessage = (\n isRunning: boolean,\n messages: readonly ThreadMessage[],\n) => {\n return isRunning && messages[messages.length - 1]?.role !== \"assistant\";\n};\n\nexport class ExternalStoreThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n private _assistantOptimisticId: string | null = null;\n\n private _capabilities: RuntimeCapabilities = {\n switchToBranch: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n attachments: false,\n feedback: false,\n };\n\n public get capabilities() {\n return this._capabilities;\n }\n\n private _messages!: readonly ThreadMessage[];\n public isDisabled!: boolean;\n public get isLoading() {\n return this._store.isLoading ?? false;\n }\n\n public override get messages() {\n return this._messages;\n }\n\n public get adapters() {\n return this._store.adapters;\n }\n\n public suggestions: readonly ThreadSuggestion[] = [];\n public extras: unknown = undefined;\n\n private _converter = new ThreadMessageConverter();\n\n private _store!: ExternalStoreAdapter<any>;\n\n public override beginEdit(messageId: string) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing.\");\n\n super.beginEdit(messageId);\n }\n\n constructor(\n contextProvider: ModelContextProvider,\n store: ExternalStoreAdapter<any>,\n ) {\n super(contextProvider);\n this.__internal_setAdapter(store);\n }\n\n public __internal_setAdapter(store: ExternalStoreAdapter<any>) {\n if (this._store === store) return;\n\n const isRunning = store.isRunning ?? false;\n this.isDisabled = store.isDisabled ?? false;\n\n const oldStore = this._store as ExternalStoreAdapter<any> | undefined;\n this._store = store;\n this.extras = store.extras;\n this.suggestions = store.suggestions ?? EMPTY_ARRAY;\n this._capabilities = {\n switchToBranch: this._store.setMessages !== undefined,\n edit: this._store.onEdit !== undefined,\n reload: this._store.onReload !== undefined,\n cancel: this._store.onCancel !== undefined,\n speech: this._store.adapters?.speech !== undefined,\n unstable_copy: this._store.unstable_capabilities?.copy !== false, // default true\n attachments: !!this._store.adapters?.attachments,\n feedback: !!this._store.adapters?.feedback,\n };\n\n let messages: readonly ThreadMessage[];\n\n if (store.messageRepository) {\n // Handle messageRepository\n if (\n oldStore &&\n oldStore.isRunning === store.isRunning &&\n oldStore.messageRepository === store.messageRepository\n ) {\n this._notifySubscribers();\n return;\n }\n\n // Clear and import the message repository\n this.repository.clear();\n this._assistantOptimisticId = null;\n this.repository.import(store.messageRepository);\n\n messages = this.repository.getMessages();\n } else if (store.messages) {\n // Handle messages array\n\n if (oldStore) {\n // flush the converter cache when the convertMessage prop changes\n if (oldStore.convertMessage !== store.convertMessage) {\n this._converter = new ThreadMessageConverter();\n } else if (\n oldStore.isRunning === store.isRunning &&\n oldStore.messages === store.messages\n ) {\n this._notifySubscribers();\n // no conversion update\n return;\n }\n }\n\n messages = !store.convertMessage\n ? store.messages\n : this._converter.convertMessages(store.messages, (cache, m, idx) => {\n if (!store.convertMessage) return m;\n\n const isLast = idx === store.messages!.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning, false);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n )\n return cache;\n\n const messageLike = store.convertMessage(m, idx);\n const newMessage = fromThreadMessageLike(\n messageLike,\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = m;\n return newMessage;\n });\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]!;\n const parent = messages[i - 1];\n this.repository.addOrUpdateMessage(parent?.id ?? null, message);\n }\n } else {\n throw new Error(\n \"ExternalStoreAdapter must provide either 'messages' or 'messageRepository'\",\n );\n }\n\n // Common logic for both paths\n if (messages.length > 0) this.ensureInitialized();\n\n if ((oldStore?.isRunning ?? false) !== (store.isRunning ?? false)) {\n if (store.isRunning) {\n this._notifyEventSubscribers(\"run-start\");\n } else {\n this._notifyEventSubscribers(\"run-end\");\n }\n }\n\n if (this._assistantOptimisticId) {\n this.repository.deleteMessage(this._assistantOptimisticId);\n this._assistantOptimisticId = null;\n }\n\n if (hasUpcomingMessage(isRunning, messages)) {\n this._assistantOptimisticId = this.repository.appendOptimisticMessage(\n messages.at(-1)?.id ?? null,\n {\n role: \"assistant\",\n content: [],\n },\n );\n }\n\n this.repository.resetHead(\n this._assistantOptimisticId ?? messages.at(-1)?.id ?? null,\n );\n\n this._messages = this.repository.getMessages();\n this._notifySubscribers();\n }\n\n public override switchToBranch(branchId: string): void {\n if (!this._store.setMessages)\n throw new Error(\"Runtime does not support switching branches.\");\n\n this.repository.switchToBranch(branchId);\n this.updateMessages(this.repository.getMessages());\n }\n\n public async append(message: AppendMessage): Promise<void> {\n if (message.parentId !== (this.messages.at(-1)?.id ?? null)) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing messages.\");\n await this._store.onEdit(message);\n } else {\n await this._store.onNew(message);\n }\n }\n\n public async startRun(config: StartRunConfig): Promise<void> {\n if (!this._store.onReload)\n throw new Error(\"Runtime does not support reloading messages.\");\n\n await this._store.onReload(config.parentId, config);\n }\n\n public async resumeRun(): Promise<void> {\n throw new Error(\"Runtime does not support resuming runs.\");\n }\n\n public cancelRun(): void {\n if (!this._store.onCancel)\n throw new Error(\"Runtime does not support cancelling runs.\");\n\n this._store.onCancel();\n\n if (this._assistantOptimisticId) {\n this.repository.deleteMessage(this._assistantOptimisticId);\n this._assistantOptimisticId = null;\n }\n\n let messages = this.repository.getMessages();\n const previousMessage = messages[messages.length - 1];\n if (\n previousMessage?.role === \"user\" &&\n previousMessage.id === messages.at(-1)?.id // ensure the previous message is a leaf node\n ) {\n this.repository.deleteMessage(previousMessage.id);\n if (!this.composer.text.trim()) {\n this.composer.setText(getThreadMessageText(previousMessage));\n }\n\n messages = this.repository.getMessages();\n } else {\n this._notifySubscribers();\n }\n\n // resync messages (for reloading, to restore the previous branch)\n setTimeout(() => {\n this.updateMessages(messages);\n }, 0);\n }\n\n public addToolResult(options: AddToolResultOptions) {\n if (!this._store.onAddToolResult && !this._store.onAddToolResult)\n throw new Error(\"Runtime does not support tool results.\");\n this._store.onAddToolResult?.(options);\n }\n\n public override reset(initialMessages?: readonly ThreadMessageLike[]) {\n const repo = new MessageRepository();\n repo.import(ExportedMessageRepository.fromArray(initialMessages ?? []));\n this.updateMessages(repo.getMessages());\n }\n\n public override import(data: ExportedMessageRepository) {\n this._assistantOptimisticId = null;\n\n super.import(data);\n\n if (this._store.onImport) {\n this._store.onImport(this.repository.getMessages());\n }\n }\n\n private updateMessages = (messages: readonly ThreadMessage[]) => {\n const hasConverter = this._store.convertMessage !== undefined;\n if (hasConverter) {\n this._store.setMessages?.(\n messages.flatMap(getExternalStoreMessage).filter((m) => m != null),\n );\n } else {\n // TODO mark this as readonly in v0.8.0\n this._store.setMessages?.(messages as ThreadMessage[]);\n }\n };\n}\n"],"mappings":"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","names":[]}
|
1
|
+
{"version":3,"sources":["../../../../src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.tsx"],"sourcesContent":["import {\n AddToolResultOptions,\n ResumeRunConfig,\n StartRunConfig,\n ThreadSuggestion,\n} from \"../core/ThreadRuntimeCore\";\n\nimport { AppendMessage, ThreadMessage } from \"../../../types\";\nimport { ExternalStoreAdapter } from \"./ExternalStoreAdapter\";\nimport {\n getExternalStoreMessage,\n symbolInnerMessage,\n} from \"./getExternalStoreMessage\";\nimport { ThreadMessageConverter } from \"./ThreadMessageConverter\";\nimport { getAutoStatus, isAutoStatus } from \"./auto-status\";\nimport { fromThreadMessageLike, ThreadMessageLike } from \"./ThreadMessageLike\";\nimport { getThreadMessageText } from \"../../../utils/getThreadMessageText\";\nimport {\n RuntimeCapabilities,\n ThreadRuntimeCore,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\nimport { ModelContextProvider } from \"../../../model-context\";\nimport {\n ExportedMessageRepository,\n MessageRepository,\n} from \"../utils/MessageRepository\";\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\nexport const hasUpcomingMessage = (\n isRunning: boolean,\n messages: readonly ThreadMessage[],\n) => {\n return isRunning && messages[messages.length - 1]?.role !== \"assistant\";\n};\n\nexport class ExternalStoreThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n private _assistantOptimisticId: string | null = null;\n\n private _capabilities: RuntimeCapabilities = {\n switchToBranch: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n attachments: false,\n feedback: false,\n };\n\n public get capabilities() {\n return this._capabilities;\n }\n\n private _messages!: readonly ThreadMessage[];\n public isDisabled!: boolean;\n public get isLoading() {\n return this._store.isLoading ?? false;\n }\n\n public override get messages() {\n return this._messages;\n }\n\n public get adapters() {\n return this._store.adapters;\n }\n\n public suggestions: readonly ThreadSuggestion[] = [];\n public extras: unknown = undefined;\n\n private _converter = new ThreadMessageConverter();\n\n private _store!: ExternalStoreAdapter<any>;\n\n public override beginEdit(messageId: string) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing.\");\n\n super.beginEdit(messageId);\n }\n\n constructor(\n contextProvider: ModelContextProvider,\n store: ExternalStoreAdapter<any>,\n ) {\n super(contextProvider);\n this.__internal_setAdapter(store);\n }\n\n public __internal_setAdapter(store: ExternalStoreAdapter<any>) {\n if (this._store === store) return;\n\n const isRunning = store.isRunning ?? false;\n this.isDisabled = store.isDisabled ?? false;\n\n const oldStore = this._store as ExternalStoreAdapter<any> | undefined;\n this._store = store;\n this.extras = store.extras;\n this.suggestions = store.suggestions ?? EMPTY_ARRAY;\n this._capabilities = {\n switchToBranch: this._store.setMessages !== undefined,\n edit: this._store.onEdit !== undefined,\n reload: this._store.onReload !== undefined,\n cancel: this._store.onCancel !== undefined,\n speech: this._store.adapters?.speech !== undefined,\n unstable_copy: this._store.unstable_capabilities?.copy !== false, // default true\n attachments: !!this._store.adapters?.attachments,\n feedback: !!this._store.adapters?.feedback,\n };\n\n let messages: readonly ThreadMessage[];\n\n if (store.messageRepository) {\n // Handle messageRepository\n if (\n oldStore &&\n oldStore.isRunning === store.isRunning &&\n oldStore.messageRepository === store.messageRepository\n ) {\n this._notifySubscribers();\n return;\n }\n\n // Clear and import the message repository\n this.repository.clear();\n this._assistantOptimisticId = null;\n this.repository.import(store.messageRepository);\n\n messages = this.repository.getMessages();\n } else if (store.messages) {\n // Handle messages array\n\n if (oldStore) {\n // flush the converter cache when the convertMessage prop changes\n if (oldStore.convertMessage !== store.convertMessage) {\n this._converter = new ThreadMessageConverter();\n } else if (\n oldStore.isRunning === store.isRunning &&\n oldStore.messages === store.messages\n ) {\n this._notifySubscribers();\n // no conversion update\n return;\n }\n }\n\n messages = !store.convertMessage\n ? store.messages\n : this._converter.convertMessages(store.messages, (cache, m, idx) => {\n if (!store.convertMessage) return m;\n\n const isLast = idx === store.messages!.length - 1;\n const autoStatus = getAutoStatus(isLast, isRunning, false);\n\n if (\n cache &&\n (cache.role !== \"assistant\" ||\n !isAutoStatus(cache.status) ||\n cache.status === autoStatus)\n )\n return cache;\n\n const messageLike = store.convertMessage(m, idx);\n const newMessage = fromThreadMessageLike(\n messageLike,\n idx.toString(),\n autoStatus,\n );\n (newMessage as any)[symbolInnerMessage] = m;\n return newMessage;\n });\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]!;\n const parent = messages[i - 1];\n this.repository.addOrUpdateMessage(parent?.id ?? null, message);\n }\n } else {\n throw new Error(\n \"ExternalStoreAdapter must provide either 'messages' or 'messageRepository'\",\n );\n }\n\n // Common logic for both paths\n if (messages.length > 0) this.ensureInitialized();\n\n if ((oldStore?.isRunning ?? false) !== (store.isRunning ?? false)) {\n if (store.isRunning) {\n this._notifyEventSubscribers(\"run-start\");\n } else {\n this._notifyEventSubscribers(\"run-end\");\n }\n }\n\n if (this._assistantOptimisticId) {\n this.repository.deleteMessage(this._assistantOptimisticId);\n this._assistantOptimisticId = null;\n }\n\n if (hasUpcomingMessage(isRunning, messages)) {\n this._assistantOptimisticId = this.repository.appendOptimisticMessage(\n messages.at(-1)?.id ?? null,\n {\n role: \"assistant\",\n content: [],\n },\n );\n }\n\n this.repository.resetHead(\n this._assistantOptimisticId ?? messages.at(-1)?.id ?? null,\n );\n\n this._messages = this.repository.getMessages();\n this._notifySubscribers();\n }\n\n public override switchToBranch(branchId: string): void {\n if (!this._store.setMessages)\n throw new Error(\"Runtime does not support switching branches.\");\n\n this.repository.switchToBranch(branchId);\n this.updateMessages(this.repository.getMessages());\n }\n\n public async append(message: AppendMessage): Promise<void> {\n if (message.parentId !== (this.messages.at(-1)?.id ?? null)) {\n if (!this._store.onEdit)\n throw new Error(\"Runtime does not support editing messages.\");\n await this._store.onEdit(message);\n } else {\n await this._store.onNew(message);\n }\n }\n\n public async startRun(config: StartRunConfig): Promise<void> {\n if (!this._store.onReload)\n throw new Error(\"Runtime does not support reloading messages.\");\n\n await this._store.onReload(config.parentId, config);\n }\n\n public async resumeRun(config: ResumeRunConfig): Promise<void> {\n if (!this._store.onResume)\n throw new Error(\"Runtime does not support resuming runs.\");\n\n await this._store.onResume(config);\n }\n\n public unstable_loadExternalState(state: any): void {\n if (!this._store.onLoadExternalState)\n throw new Error(\"Runtime does not support importing states.\");\n\n this._store.onLoadExternalState(state);\n }\n\n public cancelRun(): void {\n if (!this._store.onCancel)\n throw new Error(\"Runtime does not support cancelling runs.\");\n\n this._store.onCancel();\n\n if (this._assistantOptimisticId) {\n this.repository.deleteMessage(this._assistantOptimisticId);\n this._assistantOptimisticId = null;\n }\n\n let messages = this.repository.getMessages();\n const previousMessage = messages[messages.length - 1];\n if (\n previousMessage?.role === \"user\" &&\n previousMessage.id === messages.at(-1)?.id // ensure the previous message is a leaf node\n ) {\n this.repository.deleteMessage(previousMessage.id);\n if (!this.composer.text.trim()) {\n this.composer.setText(getThreadMessageText(previousMessage));\n }\n\n messages = this.repository.getMessages();\n } else {\n this._notifySubscribers();\n }\n\n // resync messages (for reloading, to restore the previous branch)\n setTimeout(() => {\n this.updateMessages(messages);\n }, 0);\n }\n\n public addToolResult(options: AddToolResultOptions) {\n if (!this._store.onAddToolResult && !this._store.onAddToolResult)\n throw new Error(\"Runtime does not support tool results.\");\n this._store.onAddToolResult?.(options);\n }\n\n public override reset(initialMessages?: readonly ThreadMessageLike[]) {\n const repo = new MessageRepository();\n repo.import(ExportedMessageRepository.fromArray(initialMessages ?? []));\n this.updateMessages(repo.getMessages());\n }\n\n public override import(data: ExportedMessageRepository) {\n this._assistantOptimisticId = null;\n\n super.import(data);\n\n if (this._store.onImport) {\n this._store.onImport(this.repository.getMessages());\n }\n }\n\n private updateMessages = (messages: readonly ThreadMessage[]) => {\n const hasConverter = this._store.convertMessage !== undefined;\n if (hasConverter) {\n this._store.setMessages?.(\n messages.flatMap(getExternalStoreMessage).filter((m) => m != null),\n );\n } else {\n // TODO mark this as readonly in v0.8.0\n this._store.setMessages?.(messages as ThreadMessage[]);\n }\n };\n}\n"],"mappings":";AASA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,8BAA8B;AACvC,SAAS,eAAe,oBAAoB;AAC5C,SAAS,6BAAgD;AACzD,SAAS,4BAA4B;AAKrC,SAAS,6BAA6B;AAEtC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP,IAAM,cAAc,OAAO,OAAO,CAAC,CAAC;AAE7B,IAAM,qBAAqB,CAChC,WACA,aACG;AACH,SAAO,aAAa,SAAS,SAAS,SAAS,CAAC,GAAG,SAAS;AAC9D;AAEO,IAAM,iCAAN,cACG,sBAEV;AAAA,EACU,yBAAwC;AAAA,EAExC,gBAAqC;AAAA,IAC3C,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EAEA,IAAW,eAAe;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEQ;AAAA,EACD;AAAA,EACP,IAAW,YAAY;AACrB,WAAO,KAAK,OAAO,aAAa;AAAA,EAClC;AAAA,EAEA,IAAoB,WAAW;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAW,WAAW;AACpB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEO,cAA2C,CAAC;AAAA,EAC5C,SAAkB;AAAA,EAEjB,aAAa,IAAI,uBAAuB;AAAA,EAExC;AAAA,EAEQ,UAAU,WAAmB;AAC3C,QAAI,CAAC,KAAK,OAAO;AACf,YAAM,IAAI,MAAM,mCAAmC;AAErD,UAAM,UAAU,SAAS;AAAA,EAC3B;AAAA,EAEA,YACE,iBACA,OACA;AACA,UAAM,eAAe;AACrB,SAAK,sBAAsB,KAAK;AAAA,EAClC;AAAA,EAEO,sBAAsB,OAAkC;AAC7D,QAAI,KAAK,WAAW,MAAO;AAE3B,UAAM,YAAY,MAAM,aAAa;AACrC,SAAK,aAAa,MAAM,cAAc;AAEtC,UAAM,WAAW,KAAK;AACtB,SAAK,SAAS;AACd,SAAK,SAAS,MAAM;AACpB,SAAK,cAAc,MAAM,eAAe;AACxC,SAAK,gBAAgB;AAAA,MACnB,gBAAgB,KAAK,OAAO,gBAAgB;AAAA,MAC5C,MAAM,KAAK,OAAO,WAAW;AAAA,MAC7B,QAAQ,KAAK,OAAO,aAAa;AAAA,MACjC,QAAQ,KAAK,OAAO,aAAa;AAAA,MACjC,QAAQ,KAAK,OAAO,UAAU,WAAW;AAAA,MACzC,eAAe,KAAK,OAAO,uBAAuB,SAAS;AAAA;AAAA,MAC3D,aAAa,CAAC,CAAC,KAAK,OAAO,UAAU;AAAA,MACrC,UAAU,CAAC,CAAC,KAAK,OAAO,UAAU;AAAA,IACpC;AAEA,QAAI;AAEJ,QAAI,MAAM,mBAAmB;AAE3B,UACE,YACA,SAAS,cAAc,MAAM,aAC7B,SAAS,sBAAsB,MAAM,mBACrC;AACA,aAAK,mBAAmB;AACxB;AAAA,MACF;AAGA,WAAK,WAAW,MAAM;AACtB,WAAK,yBAAyB;AAC9B,WAAK,WAAW,OAAO,MAAM,iBAAiB;AAE9C,iBAAW,KAAK,WAAW,YAAY;AAAA,IACzC,WAAW,MAAM,UAAU;AAGzB,UAAI,UAAU;AAEZ,YAAI,SAAS,mBAAmB,MAAM,gBAAgB;AACpD,eAAK,aAAa,IAAI,uBAAuB;AAAA,QAC/C,WACE,SAAS,cAAc,MAAM,aAC7B,SAAS,aAAa,MAAM,UAC5B;AACA,eAAK,mBAAmB;AAExB;AAAA,QACF;AAAA,MACF;AAEA,iBAAW,CAAC,MAAM,iBACd,MAAM,WACN,KAAK,WAAW,gBAAgB,MAAM,UAAU,CAAC,OAAO,GAAG,QAAQ;AACjE,YAAI,CAAC,MAAM,eAAgB,QAAO;AAElC,cAAM,SAAS,QAAQ,MAAM,SAAU,SAAS;AAChD,cAAM,aAAa,cAAc,QAAQ,WAAW,KAAK;AAEzD,YACE,UACC,MAAM,SAAS,eACd,CAAC,aAAa,MAAM,MAAM,KAC1B,MAAM,WAAW;AAEnB,iBAAO;AAET,cAAM,cAAc,MAAM,eAAe,GAAG,GAAG;AAC/C,cAAM,aAAa;AAAA,UACjB;AAAA,UACA,IAAI,SAAS;AAAA,UACb;AAAA,QACF;AACA,QAAC,WAAmB,kBAAkB,IAAI;AAC1C,eAAO;AAAA,MACT,CAAC;AAEL,eAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,cAAM,UAAU,SAAS,CAAC;AAC1B,cAAM,SAAS,SAAS,IAAI,CAAC;AAC7B,aAAK,WAAW,mBAAmB,QAAQ,MAAM,MAAM,OAAO;AAAA,MAChE;AAAA,IACF,OAAO;AACL,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAGA,QAAI,SAAS,SAAS,EAAG,MAAK,kBAAkB;AAEhD,SAAK,UAAU,aAAa,YAAY,MAAM,aAAa,QAAQ;AACjE,UAAI,MAAM,WAAW;AACnB,aAAK,wBAAwB,WAAW;AAAA,MAC1C,OAAO;AACL,aAAK,wBAAwB,SAAS;AAAA,MACxC;AAAA,IACF;AAEA,QAAI,KAAK,wBAAwB;AAC/B,WAAK,WAAW,cAAc,KAAK,sBAAsB;AACzD,WAAK,yBAAyB;AAAA,IAChC;AAEA,QAAI,mBAAmB,WAAW,QAAQ,GAAG;AAC3C,WAAK,yBAAyB,KAAK,WAAW;AAAA,QAC5C,SAAS,GAAG,EAAE,GAAG,MAAM;AAAA,QACvB;AAAA,UACE,MAAM;AAAA,UACN,SAAS,CAAC;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAEA,SAAK,WAAW;AAAA,MACd,KAAK,0BAA0B,SAAS,GAAG,EAAE,GAAG,MAAM;AAAA,IACxD;AAEA,SAAK,YAAY,KAAK,WAAW,YAAY;AAC7C,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEgB,eAAe,UAAwB;AACrD,QAAI,CAAC,KAAK,OAAO;AACf,YAAM,IAAI,MAAM,8CAA8C;AAEhE,SAAK,WAAW,eAAe,QAAQ;AACvC,SAAK,eAAe,KAAK,WAAW,YAAY,CAAC;AAAA,EACnD;AAAA,EAEA,MAAa,OAAO,SAAuC;AACzD,QAAI,QAAQ,cAAc,KAAK,SAAS,GAAG,EAAE,GAAG,MAAM,OAAO;AAC3D,UAAI,CAAC,KAAK,OAAO;AACf,cAAM,IAAI,MAAM,4CAA4C;AAC9D,YAAM,KAAK,OAAO,OAAO,OAAO;AAAA,IAClC,OAAO;AACL,YAAM,KAAK,OAAO,MAAM,OAAO;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,MAAa,SAAS,QAAuC;AAC3D,QAAI,CAAC,KAAK,OAAO;AACf,YAAM,IAAI,MAAM,8CAA8C;AAEhE,UAAM,KAAK,OAAO,SAAS,OAAO,UAAU,MAAM;AAAA,EACpD;AAAA,EAEA,MAAa,UAAU,QAAwC;AAC7D,QAAI,CAAC,KAAK,OAAO;AACf,YAAM,IAAI,MAAM,yCAAyC;AAE3D,UAAM,KAAK,OAAO,SAAS,MAAM;AAAA,EACnC;AAAA,EAEO,2BAA2B,OAAkB;AAClD,QAAI,CAAC,KAAK,OAAO;AACf,YAAM,IAAI,MAAM,4CAA4C;AAE9D,SAAK,OAAO,oBAAoB,KAAK;AAAA,EACvC;AAAA,EAEO,YAAkB;AACvB,QAAI,CAAC,KAAK,OAAO;AACf,YAAM,IAAI,MAAM,2CAA2C;AAE7D,SAAK,OAAO,SAAS;AAErB,QAAI,KAAK,wBAAwB;AAC/B,WAAK,WAAW,cAAc,KAAK,sBAAsB;AACzD,WAAK,yBAAyB;AAAA,IAChC;AAEA,QAAI,WAAW,KAAK,WAAW,YAAY;AAC3C,UAAM,kBAAkB,SAAS,SAAS,SAAS,CAAC;AACpD,QACE,iBAAiB,SAAS,UAC1B,gBAAgB,OAAO,SAAS,GAAG,EAAE,GAAG,IACxC;AACA,WAAK,WAAW,cAAc,gBAAgB,EAAE;AAChD,UAAI,CAAC,KAAK,SAAS,KAAK,KAAK,GAAG;AAC9B,aAAK,SAAS,QAAQ,qBAAqB,eAAe,CAAC;AAAA,MAC7D;AAEA,iBAAW,KAAK,WAAW,YAAY;AAAA,IACzC,OAAO;AACL,WAAK,mBAAmB;AAAA,IAC1B;AAGA,eAAW,MAAM;AACf,WAAK,eAAe,QAAQ;AAAA,IAC9B,GAAG,CAAC;AAAA,EACN;AAAA,EAEO,cAAc,SAA+B;AAClD,QAAI,CAAC,KAAK,OAAO,mBAAmB,CAAC,KAAK,OAAO;AAC/C,YAAM,IAAI,MAAM,wCAAwC;AAC1D,SAAK,OAAO,kBAAkB,OAAO;AAAA,EACvC;AAAA,EAEgB,MAAM,iBAAgD;AACpE,UAAM,OAAO,IAAI,kBAAkB;AACnC,SAAK,OAAO,0BAA0B,UAAU,mBAAmB,CAAC,CAAC,CAAC;AACtE,SAAK,eAAe,KAAK,YAAY,CAAC;AAAA,EACxC;AAAA,EAEgB,OAAO,MAAiC;AACtD,SAAK,yBAAyB;AAE9B,UAAM,OAAO,IAAI;AAEjB,QAAI,KAAK,OAAO,UAAU;AACxB,WAAK,OAAO,SAAS,KAAK,WAAW,YAAY,CAAC;AAAA,IACpD;AAAA,EACF;AAAA,EAEQ,iBAAiB,CAAC,aAAuC;AAC/D,UAAM,eAAe,KAAK,OAAO,mBAAmB;AACpD,QAAI,cAAc;AAChB,WAAK,OAAO;AAAA,QACV,SAAS,QAAQ,uBAAuB,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI;AAAA,MACnE;AAAA,IACF,OAAO;AAEL,WAAK,OAAO,cAAc,QAA2B;AAAA,IACvD;AAAA,EACF;AACF;","names":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ThreadMessageLike.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EAMb,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACX,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,OAAO,EACZ,MAAM,GACN,SAAS,CACL,eAAe,GACf,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,yBAAyB,GACzB;QACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;QAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACxC,CACJ,EAAE,CAAC;IACR,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,QAAQ,CAAC,EACd;QACE,QAAQ,CAAC,cAAc,CAAC,EAAE,iBAAiB,CAAC;QAC5C,QAAQ,CAAC,oBAAoB,CAAC,EAC1B,SAAS,iBAAiB,EAAE,GAC5B,SAAS,CAAC;QACd,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAC;QAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;KACvD,GACD,SAAS,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,iBAAiB,EACvB,YAAY,MAAM,EAClB,gBAAgB,aAAa,KAC5B,
|
1
|
+
{"version":3,"file":"ThreadMessageLike.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EAMb,kBAAkB,EAClB,eAAe,EACf,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACX,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,OAAO,EACZ,MAAM,GACN,SAAS,CACL,eAAe,GACf,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,yBAAyB,GACzB;QACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC;QACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;QACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;QAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACxC,CACJ,EAAE,CAAC;IACR,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,QAAQ,CAAC,EACd;QACE,QAAQ,CAAC,cAAc,CAAC,EAAE,iBAAiB,CAAC;QAC5C,QAAQ,CAAC,oBAAoB,CAAC,EAC1B,SAAS,iBAAiB,EAAE,GAC5B,SAAS,CAAC;QACd,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,GAAG,SAAS,CAAC;QAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,GAAG,SAAS,CAAC;QACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;KACvD,GACD,SAAS,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,iBAAiB,EACvB,YAAY,MAAM,EAClB,gBAAgB,aAAa,KAC5B,aAgJF,CAAC"}
|
@@ -55,12 +55,12 @@ var fromThreadMessageLike = (like, fallbackId, fallbackStatus) => {
|
|
55
55
|
return {
|
56
56
|
...commonProps,
|
57
57
|
args: part.args,
|
58
|
-
argsText: JSON.stringify(part.args)
|
58
|
+
argsText: part.argsText ?? JSON.stringify(part.args)
|
59
59
|
};
|
60
60
|
}
|
61
61
|
return {
|
62
62
|
...commonProps,
|
63
|
-
args:
|
63
|
+
args: parsePartialJsonObject(part.argsText ?? "") ?? {},
|
64
64
|
argsText: part.argsText ?? ""
|
65
65
|
};
|
66
66
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.tsx"],"sourcesContent":["import { parsePartialJsonObject } from \"assistant-stream/utils\";\nimport { generateId } from \"../../../utils/idUtils\";\nimport {\n MessageStatus,\n TextMessagePart,\n ImageMessagePart,\n ThreadMessage,\n ThreadAssistantMessagePart,\n ThreadAssistantMessage,\n ThreadUserMessagePart,\n ThreadUserMessage,\n ThreadSystemMessage,\n CompleteAttachment,\n FileMessagePart,\n Unstable_AudioMessagePart,\n} from \"../../../types\";\nimport {\n ReasoningMessagePart,\n SourceMessagePart,\n ThreadStep,\n} from \"../../../types/AssistantTypes\";\nimport { ReadonlyJSONObject, ReadonlyJSONValue } from \"assistant-stream/utils\";\n\nexport type ThreadMessageLike = {\n readonly role: \"assistant\" | \"user\" | \"system\";\n readonly content:\n | string\n | readonly (\n | TextMessagePart\n | ReasoningMessagePart\n | SourceMessagePart\n | ImageMessagePart\n | FileMessagePart\n | Unstable_AudioMessagePart\n | {\n readonly type: \"tool-call\";\n readonly toolCallId?: string;\n readonly toolName: string;\n readonly args?: ReadonlyJSONObject;\n readonly argsText?: string;\n readonly artifact?: any;\n readonly result?: any | undefined;\n readonly isError?: boolean | undefined;\n readonly parentId?: string | undefined;\n }\n )[];\n readonly id?: string | undefined;\n readonly createdAt?: Date | undefined;\n readonly status?: MessageStatus | undefined;\n readonly attachments?: readonly CompleteAttachment[] | undefined;\n readonly metadata?:\n | {\n readonly unstable_state?: ReadonlyJSONValue;\n readonly unstable_annotations?:\n | readonly ReadonlyJSONValue[]\n | undefined;\n readonly unstable_data?: readonly ReadonlyJSONValue[] | undefined;\n readonly steps?: readonly ThreadStep[] | undefined;\n readonly custom?: Record<string, unknown> | undefined;\n }\n | undefined;\n};\n\nexport const fromThreadMessageLike = (\n like: ThreadMessageLike,\n fallbackId: string,\n fallbackStatus: MessageStatus,\n): ThreadMessage => {\n const { role, id, createdAt, attachments, status, metadata } = like;\n const common = {\n id: id ?? fallbackId,\n createdAt: createdAt ?? new Date(),\n };\n\n const content =\n typeof like.content === \"string\"\n ? [{ type: \"text\" as const, text: like.content }]\n : like.content;\n\n const sanitizeImageContent = ({\n image,\n ...rest\n }: ImageMessagePart): ImageMessagePart | null => {\n const match = image.match(\n /^data:image\\/(png|jpeg|jpg|gif|webp);base64,(.*)$/,\n );\n if (match) {\n return { ...rest, image };\n }\n console.warn(`Invalid image data format detected`);\n return null;\n };\n\n if (role !== \"user\" && attachments?.length)\n throw new Error(\"attachments are only supported for user messages\");\n\n if (role !== \"assistant\" && status)\n throw new Error(\"status is only supported for assistant messages\");\n\n if (role !== \"assistant\" && metadata?.steps)\n throw new Error(\"metadata.steps is only supported for assistant messages\");\n\n switch (role) {\n case \"assistant\":\n return {\n ...common,\n role,\n content: content\n .map((part): ThreadAssistantMessagePart | null => {\n const type = part.type;\n switch (type) {\n case \"text\":\n case \"reasoning\":\n if (part.text.trim().length === 0) return null;\n return part;\n\n case \"file\":\n case \"source\":\n return part;\n\n case \"image\":\n return sanitizeImageContent(part);\n\n case \"tool-call\": {\n const { parentId, ...basePart } = part;\n const commonProps = {\n ...basePart,\n toolCallId: part.toolCallId ?? \"tool-\" + generateId(),\n ...(parentId !== undefined && { parentId }),\n };\n\n if (part.args) {\n return {\n ...commonProps,\n args: part.args,\n argsText: JSON.stringify(part.args),\n };\n }\n return {\n ...commonProps,\n args
|
1
|
+
{"version":3,"sources":["../../../../src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.tsx"],"sourcesContent":["import { parsePartialJsonObject } from \"assistant-stream/utils\";\nimport { generateId } from \"../../../utils/idUtils\";\nimport {\n MessageStatus,\n TextMessagePart,\n ImageMessagePart,\n ThreadMessage,\n ThreadAssistantMessagePart,\n ThreadAssistantMessage,\n ThreadUserMessagePart,\n ThreadUserMessage,\n ThreadSystemMessage,\n CompleteAttachment,\n FileMessagePart,\n Unstable_AudioMessagePart,\n} from \"../../../types\";\nimport {\n ReasoningMessagePart,\n SourceMessagePart,\n ThreadStep,\n} from \"../../../types/AssistantTypes\";\nimport { ReadonlyJSONObject, ReadonlyJSONValue } from \"assistant-stream/utils\";\n\nexport type ThreadMessageLike = {\n readonly role: \"assistant\" | \"user\" | \"system\";\n readonly content:\n | string\n | readonly (\n | TextMessagePart\n | ReasoningMessagePart\n | SourceMessagePart\n | ImageMessagePart\n | FileMessagePart\n | Unstable_AudioMessagePart\n | {\n readonly type: \"tool-call\";\n readonly toolCallId?: string;\n readonly toolName: string;\n readonly args?: ReadonlyJSONObject;\n readonly argsText?: string;\n readonly artifact?: any;\n readonly result?: any | undefined;\n readonly isError?: boolean | undefined;\n readonly parentId?: string | undefined;\n }\n )[];\n readonly id?: string | undefined;\n readonly createdAt?: Date | undefined;\n readonly status?: MessageStatus | undefined;\n readonly attachments?: readonly CompleteAttachment[] | undefined;\n readonly metadata?:\n | {\n readonly unstable_state?: ReadonlyJSONValue;\n readonly unstable_annotations?:\n | readonly ReadonlyJSONValue[]\n | undefined;\n readonly unstable_data?: readonly ReadonlyJSONValue[] | undefined;\n readonly steps?: readonly ThreadStep[] | undefined;\n readonly custom?: Record<string, unknown> | undefined;\n }\n | undefined;\n};\n\nexport const fromThreadMessageLike = (\n like: ThreadMessageLike,\n fallbackId: string,\n fallbackStatus: MessageStatus,\n): ThreadMessage => {\n const { role, id, createdAt, attachments, status, metadata } = like;\n const common = {\n id: id ?? fallbackId,\n createdAt: createdAt ?? new Date(),\n };\n\n const content =\n typeof like.content === \"string\"\n ? [{ type: \"text\" as const, text: like.content }]\n : like.content;\n\n const sanitizeImageContent = ({\n image,\n ...rest\n }: ImageMessagePart): ImageMessagePart | null => {\n const match = image.match(\n /^data:image\\/(png|jpeg|jpg|gif|webp);base64,(.*)$/,\n );\n if (match) {\n return { ...rest, image };\n }\n console.warn(`Invalid image data format detected`);\n return null;\n };\n\n if (role !== \"user\" && attachments?.length)\n throw new Error(\"attachments are only supported for user messages\");\n\n if (role !== \"assistant\" && status)\n throw new Error(\"status is only supported for assistant messages\");\n\n if (role !== \"assistant\" && metadata?.steps)\n throw new Error(\"metadata.steps is only supported for assistant messages\");\n\n switch (role) {\n case \"assistant\":\n return {\n ...common,\n role,\n content: content\n .map((part): ThreadAssistantMessagePart | null => {\n const type = part.type;\n switch (type) {\n case \"text\":\n case \"reasoning\":\n if (part.text.trim().length === 0) return null;\n return part;\n\n case \"file\":\n case \"source\":\n return part;\n\n case \"image\":\n return sanitizeImageContent(part);\n\n case \"tool-call\": {\n const { parentId, ...basePart } = part;\n const commonProps = {\n ...basePart,\n toolCallId: part.toolCallId ?? \"tool-\" + generateId(),\n ...(parentId !== undefined && { parentId }),\n };\n\n if (part.args) {\n return {\n ...commonProps,\n args: part.args,\n argsText: part.argsText ?? JSON.stringify(part.args),\n };\n }\n return {\n ...commonProps,\n args: parsePartialJsonObject(part.argsText ?? \"\") ?? {},\n argsText: part.argsText ?? \"\",\n };\n }\n\n default: {\n const unhandledType: \"audio\" = type;\n throw new Error(\n `Unsupported assistant message part type: ${unhandledType}`,\n );\n }\n }\n })\n .filter((c) => !!c),\n status: status ?? fallbackStatus,\n metadata: {\n unstable_state: metadata?.unstable_state ?? null,\n unstable_annotations: metadata?.unstable_annotations ?? [],\n unstable_data: metadata?.unstable_data ?? [],\n custom: metadata?.custom ?? {},\n steps: metadata?.steps ?? [],\n },\n } satisfies ThreadAssistantMessage;\n\n case \"user\":\n return {\n ...common,\n role,\n content: content.map((part): ThreadUserMessagePart => {\n const type = part.type;\n switch (type) {\n case \"text\":\n case \"image\":\n case \"audio\":\n case \"file\":\n return part;\n\n default: {\n const unhandledType: \"tool-call\" | \"reasoning\" | \"source\" = type;\n throw new Error(\n `Unsupported user message part type: ${unhandledType}`,\n );\n }\n }\n }),\n attachments: attachments ?? [],\n metadata: {\n custom: metadata?.custom ?? {},\n },\n } satisfies ThreadUserMessage;\n\n case \"system\":\n if (content.length !== 1 || content[0]!.type !== \"text\")\n throw new Error(\n \"System messages must have exactly one text message part.\",\n );\n\n return {\n ...common,\n role,\n content: content as [TextMessagePart],\n metadata: {\n custom: metadata?.custom ?? {},\n },\n } satisfies ThreadSystemMessage;\n\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n};\n"],"mappings":"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","names":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/legacy-runtime/runtime-cores/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/legacy-runtime/runtime-cores/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,QAAQ,CAAC;AACvB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/legacy-runtime/runtime-cores/index.ts"],"sourcesContent":["export * from \"./adapters\";\nexport * from \"./core\";\nexport * from \"./external-store\";\nexport * from \"./local\";\nexport * from \"./remote-thread-list\";\n\nexport { ExportedMessageRepository } from \"./utils/MessageRepository\";\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,SAAS,iCAAiC;","names":[]}
|
1
|
+
{"version":3,"sources":["../../../src/legacy-runtime/runtime-cores/index.ts"],"sourcesContent":["export * from \"./adapters\";\nexport * from \"./assistant-transport\";\nexport * from \"./core\";\nexport * from \"./external-store\";\nexport * from \"./local\";\nexport * from \"./remote-thread-list\";\n\nexport { ExportedMessageRepository } from \"./utils/MessageRepository\";\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,SAAS,iCAAiC;","names":[]}
|
@@ -39,6 +39,7 @@ export declare class LocalThreadRuntimeCore extends BaseThreadRuntimeCore implem
|
|
39
39
|
__internal_load(): Promise<void>;
|
40
40
|
append(message: AppendMessage): Promise<void>;
|
41
41
|
resumeRun({ stream, ...startConfig }: ResumeRunConfig): Promise<void>;
|
42
|
+
unstable_loadExternalState(): void;
|
42
43
|
startRun({ parentId, runConfig }: StartRunConfig, runCallback?: ChatModelAdapter["run"]): Promise<void>;
|
43
44
|
private performRoundtrip;
|
44
45
|
detach(): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LocalThreadRuntimeCore.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAA0B,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAY9D,qBAAa,sBACX,SAAQ,qBACR,YAAW,iBAAiB;IAE5B,SAAgB,YAAY;;;;;;;;;MAS1B;IAEF,OAAO,CAAC,eAAe,CAAgC;IAEvD,SAAgB,UAAU,SAAS;IAEnC,OAAO,CAAC,UAAU,CAAS;IAC3B,IAAW,SAAS,YAEnB;IAED,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,sBAAsB,CAAgC;IAC9D,IAAW,WAAW,IAAI,SAAS,gBAAgB,EAAE,CAEpD;IAED,IAAW,QAAQ;;;;;;;MAElB;gBAGC,eAAe,EAAE,oBAAoB,EACrC,OAAO,EAAE,uBAAuB;IAMlC,OAAO,CAAC,QAAQ,CAA2B;IAE3C,OAAO,CAAC,cAAc,CAAiB;IAEvC,IAAW,MAAM,cAEhB;IAEM,qBAAqB,CAAC,OAAO,EAAE,uBAAuB;IA4B7D,OAAO,CAAC,YAAY,CAA4B;IACzC,eAAe;IAoCT,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BnD,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"LocalThreadRuntimeCore.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAA0B,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAY9D,qBAAa,sBACX,SAAQ,qBACR,YAAW,iBAAiB;IAE5B,SAAgB,YAAY;;;;;;;;;MAS1B;IAEF,OAAO,CAAC,eAAe,CAAgC;IAEvD,SAAgB,UAAU,SAAS;IAEnC,OAAO,CAAC,UAAU,CAAS;IAC3B,IAAW,SAAS,YAEnB;IAED,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,sBAAsB,CAAgC;IAC9D,IAAW,WAAW,IAAI,SAAS,gBAAgB,EAAE,CAEpD;IAED,IAAW,QAAQ;;;;;;;MAElB;gBAGC,eAAe,EAAE,oBAAoB,EACrC,OAAO,EAAE,uBAAuB;IAMlC,OAAO,CAAC,QAAQ,CAA2B;IAE3C,OAAO,CAAC,cAAc,CAAiB;IAEvC,IAAW,MAAM,cAEhB;IAEM,qBAAqB,CAAC,OAAO,EAAE,uBAAuB;IA4B7D,OAAO,CAAC,YAAY,CAA4B;IACzC,eAAe;IAoCT,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BnD,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE,0BAA0B,IAAI,IAAI;IAI5B,QAAQ,CACnB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,EACvC,WAAW,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;YAiEF,gBAAgB;IA+JvB,MAAM;IAMN,SAAS;IAMT,aAAa,CAAC,EACnB,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,EACP,QAAQ,GACT,EAAE,oBAAoB;CAuCxB"}
|
@@ -118,8 +118,13 @@ var LocalThreadRuntimeCore = class extends BaseThreadRuntimeCore {
|
|
118
118
|
}
|
119
119
|
}
|
120
120
|
resumeRun({ stream, ...startConfig }) {
|
121
|
+
if (!stream)
|
122
|
+
throw new Error("You must pass a stream parameter to resume runs.");
|
121
123
|
return this.startRun(startConfig, stream);
|
122
124
|
}
|
125
|
+
unstable_loadExternalState() {
|
126
|
+
throw new Error("Runtime does not support importing external states.");
|
127
|
+
}
|
123
128
|
async startRun({ parentId, runConfig }, runCallback) {
|
124
129
|
this.ensureInitialized();
|
125
130
|
this.repository.resetHead(parentId);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx"],"sourcesContent":["import { fromThreadMessageLike, generateId } from \"../../../internal\";\nimport type { AppendMessage, ThreadAssistantMessage } from \"../../../types\";\nimport type { ChatModelAdapter, ChatModelRunResult } from \"./ChatModelAdapter\";\nimport { shouldContinue } from \"./shouldContinue\";\nimport { LocalRuntimeOptionsBase } from \"./LocalRuntimeOptions\";\nimport {\n AddToolResultOptions,\n ThreadSuggestion,\n ThreadRuntimeCore,\n StartRunConfig,\n ResumeRunConfig,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\nimport { RunConfig } from \"../../../types/AssistantTypes\";\nimport { ModelContextProvider } from \"../../../model-context\";\n\nclass AbortError extends Error {\n override name = \"AbortError\";\n detach: boolean;\n\n constructor(detach: boolean, message?: string) {\n super(message);\n this.detach = detach;\n }\n}\n\nexport class LocalThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n public readonly capabilities = {\n switchToBranch: true,\n edit: true,\n reload: true,\n cancel: true,\n unstable_copy: true,\n speech: false,\n attachments: false,\n feedback: false,\n };\n\n private abortController: AbortController | null = null;\n\n public readonly isDisabled = false;\n\n private _isLoading = false;\n public get isLoading() {\n return this._isLoading;\n }\n\n private _suggestions: readonly ThreadSuggestion[] = [];\n private _suggestionsController: AbortController | null = null;\n public get suggestions(): readonly ThreadSuggestion[] {\n return this._suggestions;\n }\n\n public get adapters() {\n return this._options.adapters;\n }\n\n constructor(\n contextProvider: ModelContextProvider,\n options: LocalRuntimeOptionsBase,\n ) {\n super(contextProvider);\n this.__internal_setOptions(options);\n }\n\n private _options!: LocalRuntimeOptionsBase;\n\n private _lastRunConfig: RunConfig = {};\n\n public get extras() {\n return undefined;\n }\n\n public __internal_setOptions(options: LocalRuntimeOptionsBase) {\n if (this._options === options) return;\n\n this._options = options;\n\n let hasUpdates = false;\n\n const canSpeak = options.adapters?.speech !== undefined;\n if (this.capabilities.speech !== canSpeak) {\n this.capabilities.speech = canSpeak;\n hasUpdates = true;\n }\n\n const canAttach = options.adapters?.attachments !== undefined;\n if (this.capabilities.attachments !== canAttach) {\n this.capabilities.attachments = canAttach;\n hasUpdates = true;\n }\n\n const canFeedback = options.adapters?.feedback !== undefined;\n if (this.capabilities.feedback !== canFeedback) {\n this.capabilities.feedback = canFeedback;\n hasUpdates = true;\n }\n\n if (hasUpdates) this._notifySubscribers();\n }\n\n private _loadPromise: Promise<void> | undefined;\n public __internal_load() {\n if (this._loadPromise) return this._loadPromise;\n\n const promise = this.adapters.history?.load() ?? Promise.resolve(null);\n\n this._isLoading = true;\n this._notifySubscribers();\n\n this._loadPromise = promise\n .then((repo) => {\n if (!repo) return;\n this.repository.import(repo);\n this._notifySubscribers();\n\n const resume = this.adapters.history?.resume?.bind(\n this.adapters.history,\n );\n if (repo.unstable_resume && resume) {\n this.startRun(\n {\n parentId: this.repository.headId,\n sourceId: this.repository.headId,\n runConfig: this._lastRunConfig,\n },\n resume,\n );\n }\n })\n .finally(() => {\n this._isLoading = false;\n this._notifySubscribers();\n });\n\n return this._loadPromise;\n }\n\n public async append(message: AppendMessage): Promise<void> {\n this.ensureInitialized();\n\n const newMessage = fromThreadMessageLike(message, generateId(), {\n type: \"complete\",\n reason: \"unknown\",\n });\n this.repository.addOrUpdateMessage(message.parentId, newMessage);\n this._options.adapters.history?.append({\n parentId: message.parentId,\n message: newMessage,\n });\n\n const startRun = message.startRun ?? message.role === \"user\";\n if (startRun) {\n await this.startRun({\n parentId: newMessage.id,\n sourceId: message.sourceId,\n runConfig: message.runConfig ?? {},\n });\n } else {\n this.repository.resetHead(newMessage.id);\n this._notifySubscribers();\n }\n }\n\n public resumeRun({ stream, ...startConfig }: ResumeRunConfig): Promise<void> {\n return this.startRun(startConfig, stream);\n }\n\n public async startRun(\n { parentId, runConfig }: StartRunConfig,\n runCallback?: ChatModelAdapter[\"run\"],\n ): Promise<void> {\n this.ensureInitialized();\n\n this.repository.resetHead(parentId);\n\n // add assistant message\n const id = generateId();\n let message: ThreadAssistantMessage = {\n id,\n role: \"assistant\",\n status: { type: \"running\" },\n content: [],\n metadata: {\n unstable_state: this.state,\n unstable_annotations: [],\n unstable_data: [],\n steps: [],\n custom: {},\n },\n createdAt: new Date(),\n };\n\n this._notifyEventSubscribers(\"run-start\");\n\n try {\n this._suggestions = [];\n this._suggestionsController?.abort();\n this._suggestionsController = null;\n\n do {\n message = await this.performRoundtrip(\n parentId,\n message,\n runConfig,\n runCallback,\n );\n runCallback = undefined;\n } while (shouldContinue(message, this._options.unstable_humanToolNames));\n } finally {\n this._notifyEventSubscribers(\"run-end\");\n }\n\n this._suggestionsController = new AbortController();\n const signal = this._suggestionsController.signal;\n if (\n this.adapters.suggestion &&\n message.status?.type !== \"requires-action\"\n ) {\n const promiseOrGenerator = this.adapters.suggestion?.generate({\n messages: this.messages,\n });\n\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n if (signal.aborted) break;\n this._suggestions = r;\n }\n } else {\n const result = await promiseOrGenerator;\n if (signal.aborted) return;\n this._suggestions = result;\n }\n }\n }\n\n private async performRoundtrip(\n parentId: string | null,\n message: ThreadAssistantMessage,\n runConfig: RunConfig | undefined,\n runCallback?: ChatModelAdapter[\"run\"],\n ) {\n const messages = this.repository.getMessages();\n\n // abort existing run\n this.abortController?.abort();\n this.abortController = new AbortController();\n\n const initialContent = message.content;\n const initialAnnotations = message.metadata?.unstable_annotations;\n const initialData = message.metadata?.unstable_data;\n const initialSteps = message.metadata?.steps;\n const initalCustom = message.metadata?.custom;\n const updateMessage = (m: Partial<ChatModelRunResult>) => {\n const newSteps = m.metadata?.steps;\n const steps = newSteps\n ? [...(initialSteps ?? []), ...newSteps]\n : undefined;\n\n const newAnnotations = m.metadata?.unstable_annotations;\n const newData = m.metadata?.unstable_data;\n const annotations = newAnnotations\n ? [...(initialAnnotations ?? []), ...newAnnotations]\n : undefined;\n const data = newData ? [...(initialData ?? []), ...newData] : undefined;\n\n message = {\n ...message,\n ...(m.content\n ? { content: [...initialContent, ...(m.content ?? [])] }\n : undefined),\n status: m.status ?? message.status,\n ...(m.metadata\n ? {\n metadata: {\n ...message.metadata,\n ...(m.metadata.unstable_state\n ? { unstable_state: m.metadata.unstable_state }\n : undefined),\n ...(annotations\n ? { unstable_annotations: annotations }\n : undefined),\n ...(data ? { unstable_data: data } : undefined),\n ...(steps ? { steps } : undefined),\n ...(m.metadata?.custom\n ? {\n custom: { ...(initalCustom ?? {}), ...m.metadata.custom },\n }\n : undefined),\n },\n }\n : undefined),\n };\n this.repository.addOrUpdateMessage(parentId, message);\n this._notifySubscribers();\n };\n\n const maxSteps = this._options.maxSteps ?? 2;\n\n const steps = message.metadata?.steps?.length ?? 0;\n if (steps >= maxSteps) {\n // reached max tool steps\n updateMessage({\n status: {\n type: \"incomplete\",\n reason: \"tool-calls\",\n },\n });\n return message;\n } else {\n updateMessage({\n status: {\n type: \"running\",\n },\n });\n }\n\n try {\n this._lastRunConfig = runConfig ?? {};\n const context = this.getModelContext();\n\n runCallback =\n runCallback ??\n this.adapters.chatModel.run.bind(this.adapters.chatModel);\n\n const abortSignal = this.abortController.signal;\n const promiseOrGenerator = runCallback({\n messages,\n runConfig: this._lastRunConfig,\n abortSignal,\n context,\n config: context,\n unstable_assistantMessageId: message.id,\n unstable_getMessage() {\n return message;\n },\n });\n\n // handle async iterator for streaming results\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n if (abortSignal.aborted) {\n updateMessage({\n status: { type: \"incomplete\", reason: \"cancelled\" },\n });\n break;\n }\n\n updateMessage(r);\n }\n } else {\n updateMessage(await promiseOrGenerator);\n }\n\n if (message.status.type === \"running\") {\n updateMessage({\n status: { type: \"complete\", reason: \"unknown\" },\n });\n }\n } catch (e) {\n // TODO this should be handled by the run result stream\n if (e instanceof AbortError) {\n updateMessage({\n status: { type: \"incomplete\", reason: \"cancelled\" },\n });\n } else {\n updateMessage({\n status: {\n type: \"incomplete\",\n reason: \"error\",\n error:\n e instanceof Error\n ? e.message\n : `[${typeof e}] ${new String(e).toString()}`,\n },\n });\n\n throw e;\n }\n } finally {\n this.abortController = null;\n\n if (\n message.status.type === \"complete\" ||\n message.status.type === \"incomplete\"\n ) {\n await this._options.adapters.history?.append({\n parentId,\n message: message,\n });\n }\n }\n return message;\n }\n\n public detach() {\n const error = new AbortError(true);\n this.abortController?.abort(error);\n this.abortController = null;\n }\n\n public cancelRun() {\n const error = new AbortError(false);\n this.abortController?.abort(error);\n this.abortController = null;\n }\n\n public addToolResult({\n messageId,\n toolCallId,\n result,\n isError,\n artifact,\n }: AddToolResultOptions) {\n const messageData = this.repository.getMessage(messageId);\n const { parentId } = messageData;\n let { message } = messageData;\n\n if (message.role !== \"assistant\")\n throw new Error(\"Tried to add tool result to non-assistant message\");\n\n let added = false;\n let found = false;\n const newContent = message.content.map((c) => {\n if (c.type !== \"tool-call\") return c;\n if (c.toolCallId !== toolCallId) return c;\n found = true;\n if (!c.result) added = true;\n return {\n ...c,\n result,\n artifact,\n isError,\n };\n });\n\n if (!found)\n throw new Error(\"Tried to add tool result to non-existing tool call\");\n\n message = {\n ...message,\n content: newContent,\n };\n this.repository.addOrUpdateMessage(parentId, message);\n\n if (\n added &&\n shouldContinue(message, this._options.unstable_humanToolNames)\n ) {\n this.performRoundtrip(parentId, message, this._lastRunConfig);\n }\n }\n}\n"],"mappings":"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","names":["steps"]}
|
1
|
+
{"version":3,"sources":["../../../../src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx"],"sourcesContent":["import { fromThreadMessageLike, generateId } from \"../../../internal\";\nimport type { AppendMessage, ThreadAssistantMessage } from \"../../../types\";\nimport type { ChatModelAdapter, ChatModelRunResult } from \"./ChatModelAdapter\";\nimport { shouldContinue } from \"./shouldContinue\";\nimport { LocalRuntimeOptionsBase } from \"./LocalRuntimeOptions\";\nimport {\n AddToolResultOptions,\n ThreadSuggestion,\n ThreadRuntimeCore,\n StartRunConfig,\n ResumeRunConfig,\n} from \"../core/ThreadRuntimeCore\";\nimport { BaseThreadRuntimeCore } from \"../core/BaseThreadRuntimeCore\";\nimport { RunConfig } from \"../../../types/AssistantTypes\";\nimport { ModelContextProvider } from \"../../../model-context\";\n\nclass AbortError extends Error {\n override name = \"AbortError\";\n detach: boolean;\n\n constructor(detach: boolean, message?: string) {\n super(message);\n this.detach = detach;\n }\n}\n\nexport class LocalThreadRuntimeCore\n extends BaseThreadRuntimeCore\n implements ThreadRuntimeCore\n{\n public readonly capabilities = {\n switchToBranch: true,\n edit: true,\n reload: true,\n cancel: true,\n unstable_copy: true,\n speech: false,\n attachments: false,\n feedback: false,\n };\n\n private abortController: AbortController | null = null;\n\n public readonly isDisabled = false;\n\n private _isLoading = false;\n public get isLoading() {\n return this._isLoading;\n }\n\n private _suggestions: readonly ThreadSuggestion[] = [];\n private _suggestionsController: AbortController | null = null;\n public get suggestions(): readonly ThreadSuggestion[] {\n return this._suggestions;\n }\n\n public get adapters() {\n return this._options.adapters;\n }\n\n constructor(\n contextProvider: ModelContextProvider,\n options: LocalRuntimeOptionsBase,\n ) {\n super(contextProvider);\n this.__internal_setOptions(options);\n }\n\n private _options!: LocalRuntimeOptionsBase;\n\n private _lastRunConfig: RunConfig = {};\n\n public get extras() {\n return undefined;\n }\n\n public __internal_setOptions(options: LocalRuntimeOptionsBase) {\n if (this._options === options) return;\n\n this._options = options;\n\n let hasUpdates = false;\n\n const canSpeak = options.adapters?.speech !== undefined;\n if (this.capabilities.speech !== canSpeak) {\n this.capabilities.speech = canSpeak;\n hasUpdates = true;\n }\n\n const canAttach = options.adapters?.attachments !== undefined;\n if (this.capabilities.attachments !== canAttach) {\n this.capabilities.attachments = canAttach;\n hasUpdates = true;\n }\n\n const canFeedback = options.adapters?.feedback !== undefined;\n if (this.capabilities.feedback !== canFeedback) {\n this.capabilities.feedback = canFeedback;\n hasUpdates = true;\n }\n\n if (hasUpdates) this._notifySubscribers();\n }\n\n private _loadPromise: Promise<void> | undefined;\n public __internal_load() {\n if (this._loadPromise) return this._loadPromise;\n\n const promise = this.adapters.history?.load() ?? Promise.resolve(null);\n\n this._isLoading = true;\n this._notifySubscribers();\n\n this._loadPromise = promise\n .then((repo) => {\n if (!repo) return;\n this.repository.import(repo);\n this._notifySubscribers();\n\n const resume = this.adapters.history?.resume?.bind(\n this.adapters.history,\n );\n if (repo.unstable_resume && resume) {\n this.startRun(\n {\n parentId: this.repository.headId,\n sourceId: this.repository.headId,\n runConfig: this._lastRunConfig,\n },\n resume,\n );\n }\n })\n .finally(() => {\n this._isLoading = false;\n this._notifySubscribers();\n });\n\n return this._loadPromise;\n }\n\n public async append(message: AppendMessage): Promise<void> {\n this.ensureInitialized();\n\n const newMessage = fromThreadMessageLike(message, generateId(), {\n type: \"complete\",\n reason: \"unknown\",\n });\n this.repository.addOrUpdateMessage(message.parentId, newMessage);\n this._options.adapters.history?.append({\n parentId: message.parentId,\n message: newMessage,\n });\n\n const startRun = message.startRun ?? message.role === \"user\";\n if (startRun) {\n await this.startRun({\n parentId: newMessage.id,\n sourceId: message.sourceId,\n runConfig: message.runConfig ?? {},\n });\n } else {\n this.repository.resetHead(newMessage.id);\n this._notifySubscribers();\n }\n }\n\n public resumeRun({ stream, ...startConfig }: ResumeRunConfig): Promise<void> {\n if (!stream)\n throw new Error(\"You must pass a stream parameter to resume runs.\");\n return this.startRun(startConfig, stream);\n }\n\n public unstable_loadExternalState(): void {\n throw new Error(\"Runtime does not support importing external states.\");\n }\n\n public async startRun(\n { parentId, runConfig }: StartRunConfig,\n runCallback?: ChatModelAdapter[\"run\"],\n ): Promise<void> {\n this.ensureInitialized();\n\n this.repository.resetHead(parentId);\n\n // add assistant message\n const id = generateId();\n let message: ThreadAssistantMessage = {\n id,\n role: \"assistant\",\n status: { type: \"running\" },\n content: [],\n metadata: {\n unstable_state: this.state,\n unstable_annotations: [],\n unstable_data: [],\n steps: [],\n custom: {},\n },\n createdAt: new Date(),\n };\n\n this._notifyEventSubscribers(\"run-start\");\n\n try {\n this._suggestions = [];\n this._suggestionsController?.abort();\n this._suggestionsController = null;\n\n do {\n message = await this.performRoundtrip(\n parentId,\n message,\n runConfig,\n runCallback,\n );\n runCallback = undefined;\n } while (shouldContinue(message, this._options.unstable_humanToolNames));\n } finally {\n this._notifyEventSubscribers(\"run-end\");\n }\n\n this._suggestionsController = new AbortController();\n const signal = this._suggestionsController.signal;\n if (\n this.adapters.suggestion &&\n message.status?.type !== \"requires-action\"\n ) {\n const promiseOrGenerator = this.adapters.suggestion?.generate({\n messages: this.messages,\n });\n\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n if (signal.aborted) break;\n this._suggestions = r;\n }\n } else {\n const result = await promiseOrGenerator;\n if (signal.aborted) return;\n this._suggestions = result;\n }\n }\n }\n\n private async performRoundtrip(\n parentId: string | null,\n message: ThreadAssistantMessage,\n runConfig: RunConfig | undefined,\n runCallback?: ChatModelAdapter[\"run\"],\n ) {\n const messages = this.repository.getMessages();\n\n // abort existing run\n this.abortController?.abort();\n this.abortController = new AbortController();\n\n const initialContent = message.content;\n const initialAnnotations = message.metadata?.unstable_annotations;\n const initialData = message.metadata?.unstable_data;\n const initialSteps = message.metadata?.steps;\n const initalCustom = message.metadata?.custom;\n const updateMessage = (m: Partial<ChatModelRunResult>) => {\n const newSteps = m.metadata?.steps;\n const steps = newSteps\n ? [...(initialSteps ?? []), ...newSteps]\n : undefined;\n\n const newAnnotations = m.metadata?.unstable_annotations;\n const newData = m.metadata?.unstable_data;\n const annotations = newAnnotations\n ? [...(initialAnnotations ?? []), ...newAnnotations]\n : undefined;\n const data = newData ? [...(initialData ?? []), ...newData] : undefined;\n\n message = {\n ...message,\n ...(m.content\n ? { content: [...initialContent, ...(m.content ?? [])] }\n : undefined),\n status: m.status ?? message.status,\n ...(m.metadata\n ? {\n metadata: {\n ...message.metadata,\n ...(m.metadata.unstable_state\n ? { unstable_state: m.metadata.unstable_state }\n : undefined),\n ...(annotations\n ? { unstable_annotations: annotations }\n : undefined),\n ...(data ? { unstable_data: data } : undefined),\n ...(steps ? { steps } : undefined),\n ...(m.metadata?.custom\n ? {\n custom: { ...(initalCustom ?? {}), ...m.metadata.custom },\n }\n : undefined),\n },\n }\n : undefined),\n };\n this.repository.addOrUpdateMessage(parentId, message);\n this._notifySubscribers();\n };\n\n const maxSteps = this._options.maxSteps ?? 2;\n\n const steps = message.metadata?.steps?.length ?? 0;\n if (steps >= maxSteps) {\n // reached max tool steps\n updateMessage({\n status: {\n type: \"incomplete\",\n reason: \"tool-calls\",\n },\n });\n return message;\n } else {\n updateMessage({\n status: {\n type: \"running\",\n },\n });\n }\n\n try {\n this._lastRunConfig = runConfig ?? {};\n const context = this.getModelContext();\n\n runCallback =\n runCallback ??\n this.adapters.chatModel.run.bind(this.adapters.chatModel);\n\n const abortSignal = this.abortController.signal;\n const promiseOrGenerator = runCallback({\n messages,\n runConfig: this._lastRunConfig,\n abortSignal,\n context,\n config: context,\n unstable_assistantMessageId: message.id,\n unstable_getMessage() {\n return message;\n },\n });\n\n // handle async iterator for streaming results\n if (Symbol.asyncIterator in promiseOrGenerator) {\n for await (const r of promiseOrGenerator) {\n if (abortSignal.aborted) {\n updateMessage({\n status: { type: \"incomplete\", reason: \"cancelled\" },\n });\n break;\n }\n\n updateMessage(r);\n }\n } else {\n updateMessage(await promiseOrGenerator);\n }\n\n if (message.status.type === \"running\") {\n updateMessage({\n status: { type: \"complete\", reason: \"unknown\" },\n });\n }\n } catch (e) {\n // TODO this should be handled by the run result stream\n if (e instanceof AbortError) {\n updateMessage({\n status: { type: \"incomplete\", reason: \"cancelled\" },\n });\n } else {\n updateMessage({\n status: {\n type: \"incomplete\",\n reason: \"error\",\n error:\n e instanceof Error\n ? e.message\n : `[${typeof e}] ${new String(e).toString()}`,\n },\n });\n\n throw e;\n }\n } finally {\n this.abortController = null;\n\n if (\n message.status.type === \"complete\" ||\n message.status.type === \"incomplete\"\n ) {\n await this._options.adapters.history?.append({\n parentId,\n message: message,\n });\n }\n }\n return message;\n }\n\n public detach() {\n const error = new AbortError(true);\n this.abortController?.abort(error);\n this.abortController = null;\n }\n\n public cancelRun() {\n const error = new AbortError(false);\n this.abortController?.abort(error);\n this.abortController = null;\n }\n\n public addToolResult({\n messageId,\n toolCallId,\n result,\n isError,\n artifact,\n }: AddToolResultOptions) {\n const messageData = this.repository.getMessage(messageId);\n const { parentId } = messageData;\n let { message } = messageData;\n\n if (message.role !== \"assistant\")\n throw new Error(\"Tried to add tool result to non-assistant message\");\n\n let added = false;\n let found = false;\n const newContent = message.content.map((c) => {\n if (c.type !== \"tool-call\") return c;\n if (c.toolCallId !== toolCallId) return c;\n found = true;\n if (!c.result) added = true;\n return {\n ...c,\n result,\n artifact,\n isError,\n };\n });\n\n if (!found)\n throw new Error(\"Tried to add tool result to non-existing tool call\");\n\n message = {\n ...message,\n content: newContent,\n };\n this.repository.addOrUpdateMessage(parentId, message);\n\n if (\n added &&\n shouldContinue(message, this._options.unstable_humanToolNames)\n ) {\n this.performRoundtrip(parentId, message, this._lastRunConfig);\n }\n }\n}\n"],"mappings":"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","names":["steps"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"EMPTY_THREAD_CORE.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKtD,eAAO,MAAM,iBAAiB,EAAE,
|
1
|
+
{"version":3,"file":"EMPTY_THREAD_CORE.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKtD,eAAO,MAAM,iBAAiB,EAAE,iBAwK/B,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.tsx"],"sourcesContent":["import { ThreadRuntimeCore } from \"../../../internal\";\n\nconst EMPTY_THREAD_ERROR = new Error(\n \"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.\",\n);\nexport const EMPTY_THREAD_CORE: ThreadRuntimeCore = {\n getMessageById() {\n return undefined;\n },\n\n getBranches() {\n return [];\n },\n\n switchToBranch() {\n throw EMPTY_THREAD_ERROR;\n },\n\n append() {\n throw EMPTY_THREAD_ERROR;\n },\n\n startRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n resumeRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n cancelRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n addToolResult() {\n throw EMPTY_THREAD_ERROR;\n },\n\n speak() {\n throw EMPTY_THREAD_ERROR;\n },\n\n stopSpeaking() {\n throw EMPTY_THREAD_ERROR;\n },\n\n getSubmittedFeedback() {\n return undefined;\n },\n\n submitFeedback() {\n throw EMPTY_THREAD_ERROR;\n },\n\n getModelContext() {\n return {};\n },\n\n composer: {\n attachments: [],\n attachmentAccept: \"*\",\n\n async addAttachment() {\n throw EMPTY_THREAD_ERROR;\n },\n\n async removeAttachment() {\n throw EMPTY_THREAD_ERROR;\n },\n\n isEditing: true,\n\n canCancel: false,\n isEmpty: true,\n\n text: \"\",\n\n setText() {\n throw EMPTY_THREAD_ERROR;\n },\n\n role: \"user\",\n\n setRole() {\n throw EMPTY_THREAD_ERROR;\n },\n\n runConfig: {},\n\n setRunConfig() {\n throw EMPTY_THREAD_ERROR;\n },\n\n async reset() {\n // noop\n },\n\n async clearAttachments() {\n // noop\n },\n\n send() {\n throw EMPTY_THREAD_ERROR;\n },\n\n cancel() {\n // noop\n },\n\n subscribe() {\n return () => {};\n },\n\n unstable_on() {\n return () => {};\n },\n },\n\n getEditComposer() {\n return undefined;\n },\n\n beginEdit() {\n throw EMPTY_THREAD_ERROR;\n },\n\n speech: undefined,\n\n capabilities: {\n switchToBranch: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n attachments: false,\n feedback: false,\n },\n\n isDisabled: false,\n isLoading: false,\n\n messages: [],\n\n state: null,\n\n suggestions: [],\n\n extras: undefined,\n\n subscribe() {\n return () => {};\n },\n\n import() {\n throw EMPTY_THREAD_ERROR;\n },\n\n export() {\n return { messages: [] };\n },\n\n reset() {\n throw EMPTY_THREAD_ERROR;\n },\n\n unstable_on() {\n return () => {};\n },\n};\n"],"mappings":";AAEA,IAAM,qBAAqB,IAAI;AAAA,EAC7B;AACF;AACO,IAAM,oBAAuC;AAAA,EAClD,iBAAiB;AACf,WAAO;AAAA,EACT;AAAA,EAEA,cAAc;AACZ,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,iBAAiB;AACf,UAAM;AAAA,EACR;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,EACR;AAAA,EAEA,WAAW;AACT,UAAM;AAAA,EACR;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,gBAAgB;AACd,UAAM;AAAA,EACR;AAAA,EAEA,QAAQ;AACN,UAAM;AAAA,EACR;AAAA,EAEA,eAAe;AACb,UAAM;AAAA,EACR;AAAA,EAEA,uBAAuB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,UAAM;AAAA,EACR;AAAA,EAEA,kBAAkB;AAChB,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,UAAU;AAAA,IACR,aAAa,CAAC;AAAA,IACd,kBAAkB;AAAA,IAElB,MAAM,gBAAgB;AACpB,YAAM;AAAA,IACR;AAAA,IAEA,MAAM,mBAAmB;AACvB,YAAM;AAAA,IACR;AAAA,IAEA,WAAW;AAAA,IAEX,WAAW;AAAA,IACX,SAAS;AAAA,IAET,MAAM;AAAA,IAEN,UAAU;AACR,YAAM;AAAA,IACR;AAAA,IAEA,MAAM;AAAA,IAEN,UAAU;AACR,YAAM;AAAA,IACR;AAAA,IAEA,WAAW,CAAC;AAAA,IAEZ,eAAe;AACb,YAAM;AAAA,IACR;AAAA,IAEA,MAAM,QAAQ;AAAA,IAEd;AAAA,IAEA,MAAM,mBAAmB;AAAA,IAEzB;AAAA,IAEA,OAAO;AACL,YAAM;AAAA,IACR;AAAA,IAEA,SAAS;AAAA,IAET;AAAA,IAEA,YAAY;AACV,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAAA,IAEA,cAAc;AACZ,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,kBAAkB;AAChB,WAAO;AAAA,EACT;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,QAAQ;AAAA,EAER,cAAc;AAAA,IACZ,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EAEA,YAAY;AAAA,EACZ,WAAW;AAAA,EAEX,UAAU,CAAC;AAAA,EAEX,OAAO;AAAA,EAEP,aAAa,CAAC;AAAA,EAEd,QAAQ;AAAA,EAER,YAAY;AACV,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,EACR;AAAA,EAEA,SAAS;AACP,WAAO,EAAE,UAAU,CAAC,EAAE;AAAA,EACxB;AAAA,EAEA,QAAQ;AACN,UAAM;AAAA,EACR;AAAA,EAEA,cAAc;AACZ,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AACF;","names":[]}
|
1
|
+
{"version":3,"sources":["../../../../src/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.tsx"],"sourcesContent":["import { ThreadRuntimeCore } from \"../../../internal\";\n\nconst EMPTY_THREAD_ERROR = new Error(\n \"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.\",\n);\nexport const EMPTY_THREAD_CORE: ThreadRuntimeCore = {\n getMessageById() {\n return undefined;\n },\n\n getBranches() {\n return [];\n },\n\n switchToBranch() {\n throw EMPTY_THREAD_ERROR;\n },\n\n append() {\n throw EMPTY_THREAD_ERROR;\n },\n\n startRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n resumeRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n cancelRun() {\n throw EMPTY_THREAD_ERROR;\n },\n\n addToolResult() {\n throw EMPTY_THREAD_ERROR;\n },\n\n speak() {\n throw EMPTY_THREAD_ERROR;\n },\n\n stopSpeaking() {\n throw EMPTY_THREAD_ERROR;\n },\n\n getSubmittedFeedback() {\n return undefined;\n },\n\n submitFeedback() {\n throw EMPTY_THREAD_ERROR;\n },\n\n getModelContext() {\n return {};\n },\n\n unstable_loadExternalState() {\n throw EMPTY_THREAD_ERROR;\n },\n\n composer: {\n attachments: [],\n attachmentAccept: \"*\",\n\n async addAttachment() {\n throw EMPTY_THREAD_ERROR;\n },\n\n async removeAttachment() {\n throw EMPTY_THREAD_ERROR;\n },\n\n isEditing: true,\n\n canCancel: false,\n isEmpty: true,\n\n text: \"\",\n\n setText() {\n throw EMPTY_THREAD_ERROR;\n },\n\n role: \"user\",\n\n setRole() {\n throw EMPTY_THREAD_ERROR;\n },\n\n runConfig: {},\n\n setRunConfig() {\n throw EMPTY_THREAD_ERROR;\n },\n\n async reset() {\n // noop\n },\n\n async clearAttachments() {\n // noop\n },\n\n send() {\n throw EMPTY_THREAD_ERROR;\n },\n\n cancel() {\n // noop\n },\n\n subscribe() {\n return () => {};\n },\n\n unstable_on() {\n return () => {};\n },\n },\n\n getEditComposer() {\n return undefined;\n },\n\n beginEdit() {\n throw EMPTY_THREAD_ERROR;\n },\n\n speech: undefined,\n\n capabilities: {\n switchToBranch: false,\n edit: false,\n reload: false,\n cancel: false,\n unstable_copy: false,\n speech: false,\n attachments: false,\n feedback: false,\n },\n\n isDisabled: false,\n isLoading: false,\n\n messages: [],\n\n state: null,\n\n suggestions: [],\n\n extras: undefined,\n\n subscribe() {\n return () => {};\n },\n\n import() {\n throw EMPTY_THREAD_ERROR;\n },\n\n export() {\n return { messages: [] };\n },\n\n reset() {\n throw EMPTY_THREAD_ERROR;\n },\n\n unstable_on() {\n return () => {};\n },\n};\n"],"mappings":";AAEA,IAAM,qBAAqB,IAAI;AAAA,EAC7B;AACF;AACO,IAAM,oBAAuC;AAAA,EAClD,iBAAiB;AACf,WAAO;AAAA,EACT;AAAA,EAEA,cAAc;AACZ,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,iBAAiB;AACf,UAAM;AAAA,EACR;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,EACR;AAAA,EAEA,WAAW;AACT,UAAM;AAAA,EACR;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,gBAAgB;AACd,UAAM;AAAA,EACR;AAAA,EAEA,QAAQ;AACN,UAAM;AAAA,EACR;AAAA,EAEA,eAAe;AACb,UAAM;AAAA,EACR;AAAA,EAEA,uBAAuB;AACrB,WAAO;AAAA,EACT;AAAA,EAEA,iBAAiB;AACf,UAAM;AAAA,EACR;AAAA,EAEA,kBAAkB;AAChB,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,6BAA6B;AAC3B,UAAM;AAAA,EACR;AAAA,EAEA,UAAU;AAAA,IACR,aAAa,CAAC;AAAA,IACd,kBAAkB;AAAA,IAElB,MAAM,gBAAgB;AACpB,YAAM;AAAA,IACR;AAAA,IAEA,MAAM,mBAAmB;AACvB,YAAM;AAAA,IACR;AAAA,IAEA,WAAW;AAAA,IAEX,WAAW;AAAA,IACX,SAAS;AAAA,IAET,MAAM;AAAA,IAEN,UAAU;AACR,YAAM;AAAA,IACR;AAAA,IAEA,MAAM;AAAA,IAEN,UAAU;AACR,YAAM;AAAA,IACR;AAAA,IAEA,WAAW,CAAC;AAAA,IAEZ,eAAe;AACb,YAAM;AAAA,IACR;AAAA,IAEA,MAAM,QAAQ;AAAA,IAEd;AAAA,IAEA,MAAM,mBAAmB;AAAA,IAEzB;AAAA,IAEA,OAAO;AACL,YAAM;AAAA,IACR;AAAA,IAEA,SAAS;AAAA,IAET;AAAA,IAEA,YAAY;AACV,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAAA,IAEA,cAAc;AACZ,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AAAA,EACF;AAAA,EAEA,kBAAkB;AAChB,WAAO;AAAA,EACT;AAAA,EAEA,YAAY;AACV,UAAM;AAAA,EACR;AAAA,EAEA,QAAQ;AAAA,EAER,cAAc;AAAA,IACZ,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,UAAU;AAAA,EACZ;AAAA,EAEA,YAAY;AAAA,EACZ,WAAW;AAAA,EAEX,UAAU,CAAC;AAAA,EAEX,OAAO;AAAA,EAEP,aAAa,CAAC;AAAA,EAEd,QAAQ;AAAA,EAER,YAAY;AACV,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,EACR;AAAA,EAEA,SAAS;AACP,WAAO,EAAE,UAAU,CAAC,EAAE;AAAA,EACxB;AAAA,EAEA,QAAQ;AACN,UAAM;AAAA,EACR;AAAA,EAEA,cAAc;AACZ,WAAO,MAAM;AAAA,IAAC;AAAA,EAChB;AACF;","names":[]}
|
@@ -40,6 +40,7 @@ export declare class RemoteThreadListHookInstanceManager extends BaseSubscribabl
|
|
40
40
|
export(): import("..").ExportedMessageRepository;
|
41
41
|
reset(initialMessages?: readonly import("..").ThreadMessageLike[]): void;
|
42
42
|
unstable_on(event: import("../core/ThreadRuntimeCore").ThreadRuntimeEventType, callback: () => void): import("../../..").Unsubscribe;
|
43
|
+
unstable_loadExternalState: (state: any) => void;
|
43
44
|
}>>;
|
44
45
|
getThreadRuntimeCore(threadId: string): Readonly<{
|
45
46
|
getMessageById: (messageId: string) => {
|
@@ -74,6 +75,7 @@ export declare class RemoteThreadListHookInstanceManager extends BaseSubscribabl
|
|
74
75
|
export(): import("..").ExportedMessageRepository;
|
75
76
|
reset(initialMessages?: readonly import("..").ThreadMessageLike[]): void;
|
76
77
|
unstable_on(event: import("../core/ThreadRuntimeCore").ThreadRuntimeEventType, callback: () => void): import("../../..").Unsubscribe;
|
78
|
+
unstable_loadExternalState: (state: any) => void;
|
77
79
|
}> | undefined;
|
78
80
|
stopThreadRuntime(threadId: string): void;
|
79
81
|
setRuntimeHook(newRuntimeHook: RemoteThreadListHook): void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RemoteThreadListHookInstanceManager.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,EAAE,EAKF,iBAAiB,EACjB,aAAa,EACd,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,KAAK,oBAAoB,GAAG,MAAM,gBAAgB,CAAC;AAKnD,qBAAa,mCAAoC,SAAQ,gBAAgB;IACvE,OAAO,CAAC,cAAc,CAEpB;IACF,OAAO,CAAC,SAAS,CAAmD;IACpE,OAAO,CAAC,0BAA0B,CAAsB;gBAE5C,WAAW,EAAE,oBAAoB;IAKtC,kBAAkB,CAAC,QAAQ,EAAE,MAAM
|
1
|
+
{"version":3,"file":"RemoteThreadListHookInstanceManager.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,EAAE,EAKF,iBAAiB,EACjB,aAAa,EACd,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,KAAK,oBAAoB,GAAG,MAAM,gBAAgB,CAAC;AAKnD,qBAAa,mCAAoC,SAAQ,gBAAgB;IACvE,OAAO,CAAC,cAAc,CAEpB;IACF,OAAO,CAAC,SAAS,CAAmD;IACpE,OAAO,CAAC,0BAA0B,CAAsB;gBAE5C,WAAW,EAAE,oBAAoB;IAKtC,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwBnC,oBAAoB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMrC,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAKlC,cAAc,CAAC,cAAc,EAAE,oBAAoB;IAO1D,OAAO,CAAC,0BAA0B,CAmDhC;IAEF,OAAO,CAAC,0BAA0B,CAc/B;IAEI,+BAA+B,EAAE,EAAE,CAAC;QACzC,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;KAC5C,CAAC,CAUA;CACH"}
|
@@ -78,6 +78,7 @@ export declare class RemoteThreadListThreadListRuntimeCore extends BaseSubscriba
|
|
78
78
|
export(): import("..").ExportedMessageRepository;
|
79
79
|
reset(initialMessages?: readonly import("..").ThreadMessageLike[]): void;
|
80
80
|
unstable_on(event: import("../core/ThreadRuntimeCore").ThreadRuntimeEventType, callback: () => void): import("../../..").Unsubscribe;
|
81
|
+
unstable_loadExternalState: (state: any) => void;
|
81
82
|
}>;
|
82
83
|
getThreadRuntimeCore(threadIdOrRemoteId: string): Readonly<{
|
83
84
|
getMessageById: (messageId: string) => {
|
@@ -112,6 +113,7 @@ export declare class RemoteThreadListThreadListRuntimeCore extends BaseSubscriba
|
|
112
113
|
export(): import("..").ExportedMessageRepository;
|
113
114
|
reset(initialMessages?: readonly import("..").ThreadMessageLike[]): void;
|
114
115
|
unstable_on(event: import("../core/ThreadRuntimeCore").ThreadRuntimeEventType, callback: () => void): import("../../..").Unsubscribe;
|
116
|
+
unstable_loadExternalState: (state: any) => void;
|
115
117
|
}>;
|
116
118
|
getItemById(threadIdOrRemoteId: string): RemoteThreadData | undefined;
|
117
119
|
switchToThread(threadIdOrRemoteId: string): Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RemoteThreadListThreadListRuntimeCore.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EACL,8BAA8B,EAC9B,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,EAAE,EAA8B,MAAM,OAAO,CAAC;AAGvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,KAAK,gBAAgB,GACjB;IACE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACjE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEN,KAAK,iBAAiB,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAgGnE,qBAAa,qCACX,SAAQ,gBACR,YAAW,qBAAqB;IA8F9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IA5FlC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IAEnE,OAAO,CAAC,mBAAmB,CAA4B;IAEvD,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAOpB;IAEH,IAAW,UAAU,0DAEpB;IAEM,qBAAqB;gBAwE1B,OAAO,EAAE,uBAAuB,EACf,eAAe,EAAE,oBAAoB;IAgBxD,OAAO,CAAC,WAAW,CAAC;IAEb,qBAAqB,CAAC,OAAO,EAAE,uBAAuB;IAatD,eAAe;IAItB,IAAW,SAAS,YAEnB;IAED,IAAW,SAAS,sBAEnB;IAED,IAAW,iBAAiB,sBAE3B;IAED,IAAW,WAAW,uBAErB;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAEM,wBAAwB
|
1
|
+
{"version":3,"file":"RemoteThreadListThreadListRuntimeCore.d.ts","sourceRoot":"","sources":["../../../../src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -43,7 +43,7 @@ export type CreateStartRunConfig = {
|
|
43
43
|
};
|
44
44
|
|
45
45
|
export type CreateResumeRunConfig = CreateStartRunConfig & {
|
46
|
-
stream
|
46
|
+
stream?: (
|
47
47
|
options: ChatModelRunOptions,
|
48
48
|
) => AsyncGenerator<ChatModelRunResult, void, unknown>;
|
49
49
|
};
|
@@ -53,7 +53,7 @@ const toResumeRunConfig = (message: CreateResumeRunConfig): ResumeRunConfig => {
|
|
53
53
|
parentId: message.parentId ?? null,
|
54
54
|
sourceId: message.sourceId ?? null,
|
55
55
|
runConfig: message.runConfig ?? {},
|
56
|
-
stream: message.stream,
|
56
|
+
...(message.stream ? { stream: message.stream } : {}),
|
57
57
|
};
|
58
58
|
};
|
59
59
|
|
@@ -256,6 +256,12 @@ export type ThreadRuntime = {
|
|
256
256
|
**/
|
257
257
|
unstable_resumeRun(config: CreateResumeRunConfig): void;
|
258
258
|
|
259
|
+
/**
|
260
|
+
* Load external state into the thread.
|
261
|
+
* @param state The state to load into the thread
|
262
|
+
*/
|
263
|
+
unstable_loadExternalState(state: any): void;
|
264
|
+
|
259
265
|
subscribe(callback: () => void): Unsubscribe;
|
260
266
|
cancelRun(): void;
|
261
267
|
getModelContext(): ModelContext;
|
@@ -346,6 +352,8 @@ export class ThreadRuntimeImpl implements ThreadRuntime {
|
|
346
352
|
protected __internal_bindMethods() {
|
347
353
|
this.append = this.append.bind(this);
|
348
354
|
this.unstable_resumeRun = this.unstable_resumeRun.bind(this);
|
355
|
+
this.unstable_loadExternalState =
|
356
|
+
this.unstable_loadExternalState.bind(this);
|
349
357
|
this.startRun = this.startRun.bind(this);
|
350
358
|
this.cancelRun = this.cancelRun.bind(this);
|
351
359
|
this.stopSpeaking = this.stopSpeaking.bind(this);
|
@@ -399,6 +407,10 @@ export class ThreadRuntimeImpl implements ThreadRuntime {
|
|
399
407
|
return this._threadBinding.getState().resumeRun(toResumeRunConfig(config));
|
400
408
|
}
|
401
409
|
|
410
|
+
public unstable_loadExternalState(state: any) {
|
411
|
+
this._threadBinding.getState().unstable_loadExternalState(state);
|
412
|
+
}
|
413
|
+
|
402
414
|
public cancelRun() {
|
403
415
|
this._threadBinding.getState().cancelRun();
|
404
416
|
}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
import { useState, useCallback, useRef, useEffect } from "react";
|
2
|
+
import {
|
3
|
+
AssistantTransportCommand,
|
4
|
+
CommandQueueState,
|
5
|
+
QueuedCommand,
|
6
|
+
} from "./types";
|
7
|
+
|
8
|
+
export const createInitialQueueState = (): CommandQueueState => ({
|
9
|
+
queued: [],
|
10
|
+
inTransit: [],
|
11
|
+
});
|
12
|
+
|
13
|
+
export const useCommandQueue = (opts: { onQueue: () => void }) => {
|
14
|
+
const onQueueRef = useRef(opts.onQueue);
|
15
|
+
useEffect(() => {
|
16
|
+
onQueueRef.current = opts.onQueue;
|
17
|
+
});
|
18
|
+
|
19
|
+
const [, rerender] = useState(0);
|
20
|
+
const queueStateRef = useRef<CommandQueueState>(createInitialQueueState());
|
21
|
+
|
22
|
+
const enqueue = (command: AssistantTransportCommand) => {
|
23
|
+
queueStateRef.current = {
|
24
|
+
queued: [...queueStateRef.current.queued, command],
|
25
|
+
inTransit: queueStateRef.current.inTransit,
|
26
|
+
};
|
27
|
+
rerender((prev) => prev + 1);
|
28
|
+
|
29
|
+
onQueueRef.current();
|
30
|
+
};
|
31
|
+
|
32
|
+
const flush = (): QueuedCommand[] => {
|
33
|
+
if (queueStateRef.current.queued.length === 0) return [];
|
34
|
+
|
35
|
+
const queued = queueStateRef.current.queued;
|
36
|
+
queueStateRef.current = {
|
37
|
+
queued: [],
|
38
|
+
inTransit: [...queueStateRef.current.inTransit, ...queued],
|
39
|
+
};
|
40
|
+
rerender((prev) => prev + 1);
|
41
|
+
|
42
|
+
return queued;
|
43
|
+
};
|
44
|
+
|
45
|
+
const markDelivered = () => {
|
46
|
+
queueStateRef.current = { ...queueStateRef.current, inTransit: [] };
|
47
|
+
rerender((prev) => prev + 1);
|
48
|
+
};
|
49
|
+
|
50
|
+
const reset = useCallback(() => {
|
51
|
+
queueStateRef.current = createInitialQueueState();
|
52
|
+
rerender((prev) => prev + 1);
|
53
|
+
}, []);
|
54
|
+
|
55
|
+
return {
|
56
|
+
state: queueStateRef.current,
|
57
|
+
enqueue,
|
58
|
+
flush,
|
59
|
+
markDelivered,
|
60
|
+
reset,
|
61
|
+
};
|
62
|
+
};
|