@assistant-ui/react 0.7.25 → 0.7.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +1 -1
  2. package/dist/context/providers/AssistantRuntimeProvider.js +1 -2
  3. package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
  4. package/dist/context/providers/AssistantRuntimeProvider.mjs +2 -3
  5. package/dist/context/providers/AssistantRuntimeProvider.mjs.map +1 -1
  6. package/dist/model-config/useAssistantInstructions.d.ts +6 -1
  7. package/dist/model-config/useAssistantInstructions.d.ts.map +1 -1
  8. package/dist/model-config/useAssistantInstructions.js +9 -3
  9. package/dist/model-config/useAssistantInstructions.js.map +1 -1
  10. package/dist/model-config/useAssistantInstructions.mjs +9 -3
  11. package/dist/model-config/useAssistantInstructions.mjs.map +1 -1
  12. package/dist/runtimes/core/AssistantRuntimeCore.d.ts +9 -2
  13. package/dist/runtimes/core/AssistantRuntimeCore.d.ts.map +1 -1
  14. package/dist/runtimes/core/AssistantRuntimeCore.js.map +1 -1
  15. package/dist/runtimes/core/BaseAssistantRuntimeCore.d.ts +2 -0
  16. package/dist/runtimes/core/BaseAssistantRuntimeCore.d.ts.map +1 -1
  17. package/dist/runtimes/core/BaseAssistantRuntimeCore.js.map +1 -1
  18. package/dist/runtimes/core/BaseAssistantRuntimeCore.mjs.map +1 -1
  19. package/dist/runtimes/core/ThreadRuntimeCore.d.ts +4 -0
  20. package/dist/runtimes/core/ThreadRuntimeCore.d.ts.map +1 -1
  21. package/dist/runtimes/core/ThreadRuntimeCore.js.map +1 -1
  22. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +6 -0
  23. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -1
  24. package/dist/runtimes/external-store/ExternalStoreAdapter.js.map +1 -1
  25. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts +5 -2
  26. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -1
  27. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js +21 -6
  28. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js.map +1 -1
  29. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs +21 -6
  30. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs.map +1 -1
  31. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts +1 -1
  32. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  33. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +2 -2
  34. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  35. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs +2 -2
  36. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs.map +1 -1
  37. package/dist/runtimes/external-store/useExternalStoreRuntime.js +1 -1
  38. package/dist/runtimes/external-store/useExternalStoreRuntime.js.map +1 -1
  39. package/dist/runtimes/external-store/useExternalStoreRuntime.mjs +1 -1
  40. package/dist/runtimes/external-store/useExternalStoreRuntime.mjs.map +1 -1
  41. package/dist/runtimes/local/LocalRuntimeCore.d.ts +1 -0
  42. package/dist/runtimes/local/LocalRuntimeCore.d.ts.map +1 -1
  43. package/dist/runtimes/local/LocalRuntimeCore.js +1 -0
  44. package/dist/runtimes/local/LocalRuntimeCore.js.map +1 -1
  45. package/dist/runtimes/local/LocalRuntimeCore.mjs +1 -0
  46. package/dist/runtimes/local/LocalRuntimeCore.mjs.map +1 -1
  47. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -1
  48. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js +3 -3
  49. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
  50. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.mjs +3 -3
  51. package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.mjs.map +1 -1
  52. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +1 -1
  53. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  54. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +3 -6
  55. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  56. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs +4 -7
  57. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs.map +1 -1
  58. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  59. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.js +1 -2
  60. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.js.map +1 -1
  61. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.mjs +1 -2
  62. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.mjs.map +1 -1
  63. package/dist/runtimes/remote-thread-list/types.d.ts +2 -2
  64. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  65. package/dist/runtimes/remote-thread-list/types.js.map +1 -1
  66. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js +2 -2
  67. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -1
  68. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.mjs +2 -2
  69. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.mjs.map +1 -1
  70. package/dist/styles/index.css +8 -7
  71. package/dist/styles/index.css.map +1 -1
  72. package/dist/styles/tailwindcss/thread.css +7 -7
  73. package/dist/styles/tailwindcss/thread.css.json +7 -7
  74. package/dist/styles/themes/default.css +3 -0
  75. package/dist/styles/themes/default.css.json +2 -1
  76. package/dist/styles/themes/shadcn-extras.css +4 -0
  77. package/dist/styles/themes/shadcn-extras.css.json +5 -0
  78. package/dist/tailwindcss/index.d.ts.map +1 -1
  79. package/dist/tailwindcss/index.js +7 -0
  80. package/dist/tailwindcss/index.js.map +1 -1
  81. package/dist/tailwindcss/index.mjs +7 -0
  82. package/dist/tailwindcss/index.mjs.map +1 -1
  83. package/package.json +2 -2
  84. package/src/context/providers/AssistantRuntimeProvider.tsx +2 -6
  85. package/src/model-config/useAssistantInstructions.tsx +19 -1
  86. package/src/runtimes/core/AssistantRuntimeCore.tsx +9 -2
  87. package/src/runtimes/core/BaseAssistantRuntimeCore.tsx +4 -0
  88. package/src/runtimes/core/ThreadRuntimeCore.tsx +5 -0
  89. package/src/runtimes/external-store/ExternalStoreAdapter.tsx +8 -0
  90. package/src/runtimes/external-store/ExternalStoreRuntimeCore.tsx +26 -6
  91. package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +2 -2
  92. package/src/runtimes/external-store/useExternalStoreRuntime.tsx +1 -1
  93. package/src/runtimes/local/LocalRuntimeCore.tsx +1 -0
  94. package/src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx +7 -3
  95. package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +4 -10
  96. package/src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx +1 -2
  97. package/src/runtimes/remote-thread-list/types.tsx +2 -2
  98. package/src/runtimes/remote-thread-list/useRemoteThreadListRuntime.tsx +2 -2
  99. package/src/styles/tailwindcss/thread.css +7 -7
  100. package/src/styles/themes/default.css +3 -0
  101. package/src/styles/themes/shadcn-extras.css +4 -0
  102. package/src/tailwindcss/index.ts +7 -0
  103. package/dist/primitive-hooks/thread/useThread.d.ts +0 -1
  104. package/dist/primitive-hooks/thread/useThread.d.ts.map +0 -1
  105. package/dist/primitive-hooks/thread/useThread.js +0 -2
  106. package/dist/primitive-hooks/thread/useThread.js.map +0 -1
  107. package/dist/primitive-hooks/thread/useThread.mjs +0 -1
  108. package/dist/primitive-hooks/thread/useThread.mjs.map +0 -1
  109. package/src/primitive-hooks/thread/useThread.tsx +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx"],"sourcesContent":["import { ThreadListRuntimeCore } from \"../core/ThreadListRuntimeCore\";\nimport { generateId } from \"../../internal\";\nimport { RemoteThreadListAdapter } from \"./types\";\nimport { RemoteThreadListHookInstanceManager } from \"./RemoteThreadListHookInstanceManager\";\nimport { BaseSubscribable } from \"./BaseSubscribable\";\nimport { EMPTY_THREAD_CORE } from \"./EMPTY_THREAD_CORE\";\nimport { OptimisticState } from \"./OptimisticState\";\nimport { FC, PropsWithChildren, useEffect, useId } from \"react\";\nimport { create } from \"zustand\";\nimport { CloudInitializeResponse } from \"./cloud/CloudContext\";\n\ntype RemoteThreadData =\n | {\n readonly threadId: string;\n readonly remoteId?: undefined;\n readonly externalId?: undefined;\n readonly status: \"new\";\n readonly title: undefined;\n }\n | {\n readonly threadId: string;\n readonly remoteId: string;\n readonly externalId: string | undefined;\n readonly status: \"regular\" | \"archived\";\n readonly title?: string | undefined;\n };\n\nconst DEFAULT_RENDER_COMPONENT: FC<PropsWithChildren> = ({ children }) => {\n return children;\n};\n\ntype THREAD_MAPPING_ID = string & { __brand: \"THREAD_MAPPING_ID\" };\nfunction createThreadMappingId(id: string): THREAD_MAPPING_ID {\n return id as THREAD_MAPPING_ID;\n}\n\ntype RemoteThreadState = {\n readonly isLoading: boolean;\n readonly newThreadId: string | undefined;\n readonly threadIds: readonly string[];\n readonly archivedThreadIds: readonly string[];\n readonly threadIdMap: Readonly<Record<string, THREAD_MAPPING_ID>>;\n readonly threadData: Readonly<Record<THREAD_MAPPING_ID, RemoteThreadData>>;\n};\n\nconst getThreadData = (\n state: RemoteThreadState,\n threadIdOrRemoteId: string,\n) => {\n const idx = state.threadIdMap[threadIdOrRemoteId];\n if (idx === undefined) return undefined;\n return state.threadData[idx];\n};\n\nconst updateStatusReducer = (\n state: RemoteThreadState,\n threadIdOrRemoteId: string,\n newStatus: \"regular\" | \"archived\" | \"deleted\",\n) => {\n const data = getThreadData(state, threadIdOrRemoteId);\n if (!data) return state;\n\n const { threadId, remoteId, status: lastStatus } = data;\n if (lastStatus === newStatus) return state;\n\n const newState = { ...state };\n\n // lastStatus\n switch (lastStatus) {\n case \"new\":\n newState.newThreadId = undefined;\n break;\n case \"regular\":\n newState.threadIds = newState.threadIds.filter((t) => t !== threadId);\n break;\n case \"archived\":\n newState.archivedThreadIds = newState.archivedThreadIds.filter(\n (t) => t !== threadId,\n );\n break;\n\n default: {\n const _exhaustiveCheck: never = lastStatus;\n throw new Error(`Unsupported state: ${_exhaustiveCheck}`);\n }\n }\n\n // newStatus\n switch (newStatus) {\n case \"regular\":\n newState.threadIds = [...newState.threadIds, threadId];\n break;\n\n case \"archived\":\n newState.archivedThreadIds = [...newState.archivedThreadIds, threadId];\n break;\n\n case \"deleted\":\n newState.threadData = Object.fromEntries(\n Object.entries(newState.threadData).filter(([key]) => key !== threadId),\n );\n newState.threadIdMap = Object.fromEntries(\n Object.entries(newState.threadIdMap).filter(\n ([key]) => key !== threadId && key !== remoteId,\n ),\n );\n break;\n\n default: {\n const _exhaustiveCheck: never = newStatus;\n throw new Error(`Unsupported state: ${_exhaustiveCheck}`);\n }\n }\n\n if (newStatus !== \"deleted\") {\n newState.threadData = {\n ...newState.threadData,\n [threadId]: {\n ...data,\n status: newStatus,\n },\n };\n }\n\n return newState;\n};\n\nexport class RemoteThreadListThreadListRuntimeCore\n extends BaseSubscribable\n implements ThreadListRuntimeCore\n{\n private _adapter!: RemoteThreadListAdapter;\n private _disposeOldAdapter?: () => void;\n private readonly _hookManager: RemoteThreadListHookInstanceManager;\n\n private readonly _loadThreadsPromise: Promise<void>;\n\n private _mainThreadId!: string;\n private readonly _state = new OptimisticState<RemoteThreadState>({\n isLoading: false,\n newThreadId: undefined,\n threadIds: [],\n archivedThreadIds: [],\n threadIdMap: {},\n threadData: {},\n });\n\n public getLoadThreadsPromise() {\n return this._loadThreadsPromise;\n }\n\n constructor(adapter: RemoteThreadListAdapter) {\n super();\n\n this._state.subscribe(() => this._notifySubscribers());\n this._hookManager = new RemoteThreadListHookInstanceManager(\n adapter.runtimeHook,\n );\n this.useRenderComponent = create(() => ({\n RenderComponent:\n adapter.__internal_RenderComponent ?? DEFAULT_RENDER_COMPONENT,\n }));\n this.__internal_setAdapter(adapter);\n\n this._loadThreadsPromise = this._state\n .optimisticUpdate({\n execute: () => adapter.list(),\n loading: (state) => {\n return {\n ...state,\n isLoading: true,\n };\n },\n then: (state, l) => {\n const newThreadIds = [];\n const newArchivedThreadIds = [];\n const newThreadIdMap = {} as Record<string, THREAD_MAPPING_ID>;\n const newThreadData = {} as Record<\n THREAD_MAPPING_ID,\n RemoteThreadData\n >;\n\n for (const thread of l.threads) {\n switch (thread.status) {\n case \"regular\":\n newThreadIds.push(thread.remoteId);\n break;\n case \"archived\":\n newArchivedThreadIds.push(thread.remoteId);\n break;\n default: {\n const _exhaustiveCheck: never = thread.status;\n throw new Error(`Unsupported state: ${_exhaustiveCheck}`);\n }\n }\n\n const mappingId = createThreadMappingId(thread.remoteId);\n newThreadIdMap[thread.remoteId] = mappingId;\n newThreadData[mappingId] = {\n threadId: thread.remoteId,\n remoteId: thread.remoteId,\n externalId: thread.externalId,\n status: thread.status,\n title: thread.title,\n };\n }\n\n return {\n ...state,\n threadIds: newThreadIds,\n archivedThreadIds: newArchivedThreadIds,\n threadIdMap: {\n ...state.threadIdMap,\n ...newThreadIdMap,\n },\n threadData: {\n ...state.threadData,\n ...newThreadData,\n },\n };\n },\n })\n .then(() => {});\n\n this.switchToNewThread();\n }\n\n private useRenderComponent;\n\n public __internal_setAdapter(adapter: RemoteThreadListAdapter) {\n if (this._adapter === adapter) return;\n\n this._adapter = adapter;\n this._disposeOldAdapter?.();\n this._disposeOldAdapter = this._adapter.onInitialize(this._onInitialize);\n\n const RenderComponent =\n adapter.__internal_RenderComponent ?? DEFAULT_RENDER_COMPONENT;\n if (\n RenderComponent !== this.useRenderComponent.getState().RenderComponent\n ) {\n this.useRenderComponent.setState({ RenderComponent }, true);\n }\n\n this._hookManager.setRuntimeHook(adapter.runtimeHook);\n }\n\n public get threadIds() {\n return this._state.value.threadIds;\n }\n\n public get archivedThreadIds() {\n return this._state.value.archivedThreadIds;\n }\n\n public get newThreadId() {\n return this._state.value.newThreadId;\n }\n\n public get mainThreadId(): string {\n return this._mainThreadId;\n }\n\n public getMainThreadRuntimeCore() {\n const result = this._hookManager.getThreadRuntimeCore(this._mainThreadId);\n if (!result) return EMPTY_THREAD_CORE;\n return result;\n }\n\n public getItemById(threadIdOrRemoteId: string) {\n return getThreadData(this._state.value, threadIdOrRemoteId);\n }\n\n public async switchToThread(threadIdOrRemoteId: string): Promise<void> {\n const data = this.getItemById(threadIdOrRemoteId);\n if (!data) throw new Error(\"Thread not found\");\n\n if (this._mainThreadId === data.threadId) return;\n\n const task = this._hookManager.startThreadRuntime(data.threadId);\n if (this.mainThreadId !== undefined) {\n await task;\n } else {\n task.then(() => this._notifySubscribers());\n }\n\n if (data.status === \"archived\") await this.unarchive(data.threadId);\n this._mainThreadId = data.threadId;\n\n this._notifySubscribers();\n }\n\n public async switchToNewThread(): Promise<void> {\n // an initialization transaction is in progress, wait for it to settle\n while (\n this._state.baseValue.newThreadId !== undefined &&\n this._state.value.newThreadId === undefined\n ) {\n await this._state.waitForUpdate();\n }\n\n const state = this._state.value;\n let threadId: string | undefined = this._state.value.newThreadId;\n if (threadId === undefined) {\n do {\n threadId = `__LOCALID_${generateId()}`;\n } while (state.threadIdMap[threadId]);\n\n const mappingId = createThreadMappingId(threadId);\n this._state.update({\n ...state,\n newThreadId: threadId,\n threadIdMap: {\n ...state.threadIdMap,\n [threadId]: mappingId,\n },\n threadData: {\n ...state.threadData,\n [threadId]: {\n status: \"new\",\n threadId,\n },\n },\n });\n }\n\n return this.switchToThread(threadId);\n }\n\n private _onInitialize = async (task: Promise<CloudInitializeResponse>) => {\n const threadId = this._state.value.newThreadId;\n if (!threadId)\n throw new Error(\n \"ThreadListAdapter called onInitialize before switching to new thread\",\n );\n\n await this._state.optimisticUpdate({\n execute: () => {\n return task;\n },\n optimistic: (state) => {\n return updateStatusReducer(state, threadId, \"regular\");\n },\n then: (state, { remoteId, externalId }) => {\n const data = getThreadData(state, threadId);\n if (!data) return state;\n\n const mappingId = createThreadMappingId(remoteId);\n return {\n ...state,\n threadIdMap: {\n ...state.threadIdMap,\n [remoteId]: mappingId,\n },\n threadData: {\n ...state.threadData,\n [threadId]: {\n ...data,\n remoteId,\n externalId,\n },\n },\n };\n },\n });\n };\n\n public rename(threadIdOrRemoteId: string, newTitle: string): Promise<void> {\n const data = this.getItemById(threadIdOrRemoteId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.status === \"new\") throw new Error(\"Thread is not yet initialized\");\n\n return this._state.optimisticUpdate({\n execute: () => {\n return this._adapter.rename(data.remoteId, newTitle);\n },\n optimistic: (state) => {\n const data = getThreadData(state, threadIdOrRemoteId);\n if (!data) return state;\n\n return {\n ...state,\n threadData: {\n ...state.threadData,\n [data.threadId]: {\n ...data,\n title: newTitle,\n },\n },\n };\n },\n });\n }\n\n private async _ensureThreadIsNotMain(threadId: string) {\n // if thread is main thread, switch to another thread\n if (threadId === this._mainThreadId) {\n const lastThreadId = this._state.value.threadIds[0];\n if (lastThreadId) {\n await this.switchToThread(lastThreadId);\n } else {\n await this.switchToNewThread();\n }\n }\n }\n\n public async archive(threadIdOrRemoteId: string) {\n const data = this.getItemById(threadIdOrRemoteId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.status !== \"regular\")\n throw new Error(\"Thread is not yet initialized or already archived\");\n\n return this._state.optimisticUpdate({\n execute: async () => {\n await this._ensureThreadIsNotMain(data.threadId);\n return this._adapter.archive(data.remoteId);\n },\n optimistic: (state) => {\n return updateStatusReducer(state, data.threadId, \"archived\");\n },\n });\n }\n\n public unarchive(threadIdOrRemoteId: string): Promise<void> {\n const data = this.getItemById(threadIdOrRemoteId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.status !== \"archived\") throw new Error(\"Thread is not archived\");\n\n return this._state.optimisticUpdate({\n execute: async () => {\n try {\n return await this._adapter.unarchive(data.remoteId);\n } catch (error) {\n await this._ensureThreadIsNotMain(data.threadId);\n throw error;\n }\n },\n optimistic: (state) => {\n return updateStatusReducer(state, data.threadId, \"regular\");\n },\n });\n }\n\n public async delete(threadIdOrRemoteId: string) {\n const data = this.getItemById(threadIdOrRemoteId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.status !== \"regular\" && data.status !== \"archived\")\n throw new Error(\"Thread is not yet initialized\");\n\n return this._state.optimisticUpdate({\n execute: async () => {\n await this._ensureThreadIsNotMain(data.threadId);\n return await this._adapter.delete(data.remoteId);\n },\n optimistic: (state) => {\n return updateStatusReducer(state, data.threadId, \"deleted\");\n },\n });\n }\n\n private useBoundIds = create<string[]>(() => []);\n\n public __internal_RenderComponent: FC<PropsWithChildren> = ({ children }) => {\n const id = useId();\n useEffect(() => {\n this.useBoundIds.setState((s) => [...s, id], true);\n return () => {\n this.useBoundIds.setState((s) => s.filter((i) => i !== id), true);\n };\n }, []);\n\n const boundIds = this.useBoundIds();\n const { RenderComponent } = this.useRenderComponent();\n\n return (\n <RenderComponent>\n {(boundIds.length === 0 || boundIds[0] === id) && (\n // only render if the component is the first one mounted\n <this._hookManager.__internal_RenderThreadRuntimes />\n )}\n\n {children}\n </RenderComponent>\n );\n };\n}\n"],"mappings":";AACA,SAAS,kBAAkB;AAE3B,SAAS,2CAA2C;AACpD,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAChC,SAAgC,WAAW,aAAa;AACxD,SAAS,cAAc;AAmdjB,SAGI,KAHJ;AAhcN,IAAM,2BAAkD,CAAC,EAAE,SAAS,MAAM;AACxE,SAAO;AACT;AAGA,SAAS,sBAAsB,IAA+B;AAC5D,SAAO;AACT;AAWA,IAAM,gBAAgB,CACpB,OACA,uBACG;AACH,QAAM,MAAM,MAAM,YAAY,kBAAkB;AAChD,MAAI,QAAQ,OAAW,QAAO;AAC9B,SAAO,MAAM,WAAW,GAAG;AAC7B;AAEA,IAAM,sBAAsB,CAC1B,OACA,oBACA,cACG;AACH,QAAM,OAAO,cAAc,OAAO,kBAAkB;AACpD,MAAI,CAAC,KAAM,QAAO;AAElB,QAAM,EAAE,UAAU,UAAU,QAAQ,WAAW,IAAI;AACnD,MAAI,eAAe,UAAW,QAAO;AAErC,QAAM,WAAW,EAAE,GAAG,MAAM;AAG5B,UAAQ,YAAY;AAAA,IAClB,KAAK;AACH,eAAS,cAAc;AACvB;AAAA,IACF,KAAK;AACH,eAAS,YAAY,SAAS,UAAU,OAAO,CAAC,MAAM,MAAM,QAAQ;AACpE;AAAA,IACF,KAAK;AACH,eAAS,oBAAoB,SAAS,kBAAkB;AAAA,QACtD,CAAC,MAAM,MAAM;AAAA,MACf;AACA;AAAA,IAEF,SAAS;AACP,YAAM,mBAA0B;AAChC,YAAM,IAAI,MAAM,sBAAsB,gBAAgB,EAAE;AAAA,IAC1D;AAAA,EACF;AAGA,UAAQ,WAAW;AAAA,IACjB,KAAK;AACH,eAAS,YAAY,CAAC,GAAG,SAAS,WAAW,QAAQ;AACrD;AAAA,IAEF,KAAK;AACH,eAAS,oBAAoB,CAAC,GAAG,SAAS,mBAAmB,QAAQ;AACrE;AAAA,IAEF,KAAK;AACH,eAAS,aAAa,OAAO;AAAA,QAC3B,OAAO,QAAQ,SAAS,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,QAAQ,QAAQ;AAAA,MACxE;AACA,eAAS,cAAc,OAAO;AAAA,QAC5B,OAAO,QAAQ,SAAS,WAAW,EAAE;AAAA,UACnC,CAAC,CAAC,GAAG,MAAM,QAAQ,YAAY,QAAQ;AAAA,QACzC;AAAA,MACF;AACA;AAAA,IAEF,SAAS;AACP,YAAM,mBAA0B;AAChC,YAAM,IAAI,MAAM,sBAAsB,gBAAgB,EAAE;AAAA,IAC1D;AAAA,EACF;AAEA,MAAI,cAAc,WAAW;AAC3B,aAAS,aAAa;AAAA,MACpB,GAAG,SAAS;AAAA,MACZ,CAAC,QAAQ,GAAG;AAAA,QACV,GAAG;AAAA,QACH,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEO,IAAM,wCAAN,cACG,iBAEV;AAAA,EACU;AAAA,EACA;AAAA,EACS;AAAA,EAEA;AAAA,EAET;AAAA,EACS,SAAS,IAAI,gBAAmC;AAAA,IAC/D,WAAW;AAAA,IACX,aAAa;AAAA,IACb,WAAW,CAAC;AAAA,IACZ,mBAAmB,CAAC;AAAA,IACpB,aAAa,CAAC;AAAA,IACd,YAAY,CAAC;AAAA,EACf,CAAC;AAAA,EAEM,wBAAwB;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,YAAY,SAAkC;AAC5C,UAAM;AAEN,SAAK,OAAO,UAAU,MAAM,KAAK,mBAAmB,CAAC;AACrD,SAAK,eAAe,IAAI;AAAA,MACtB,QAAQ;AAAA,IACV;AACA,SAAK,qBAAqB,OAAO,OAAO;AAAA,MACtC,iBACE,QAAQ,8BAA8B;AAAA,IAC1C,EAAE;AACF,SAAK,sBAAsB,OAAO;AAElC,SAAK,sBAAsB,KAAK,OAC7B,iBAAiB;AAAA,MAChB,SAAS,MAAM,QAAQ,KAAK;AAAA,MAC5B,SAAS,CAAC,UAAU;AAClB,eAAO;AAAA,UACL,GAAG;AAAA,UACH,WAAW;AAAA,QACb;AAAA,MACF;AAAA,MACA,MAAM,CAAC,OAAO,MAAM;AAClB,cAAM,eAAe,CAAC;AACtB,cAAM,uBAAuB,CAAC;AAC9B,cAAM,iBAAiB,CAAC;AACxB,cAAM,gBAAgB,CAAC;AAKvB,mBAAW,UAAU,EAAE,SAAS;AAC9B,kBAAQ,OAAO,QAAQ;AAAA,YACrB,KAAK;AACH,2BAAa,KAAK,OAAO,QAAQ;AACjC;AAAA,YACF,KAAK;AACH,mCAAqB,KAAK,OAAO,QAAQ;AACzC;AAAA,YACF,SAAS;AACP,oBAAM,mBAA0B,OAAO;AACvC,oBAAM,IAAI,MAAM,sBAAsB,gBAAgB,EAAE;AAAA,YAC1D;AAAA,UACF;AAEA,gBAAM,YAAY,sBAAsB,OAAO,QAAQ;AACvD,yBAAe,OAAO,QAAQ,IAAI;AAClC,wBAAc,SAAS,IAAI;AAAA,YACzB,UAAU,OAAO;AAAA,YACjB,UAAU,OAAO;AAAA,YACjB,YAAY,OAAO;AAAA,YACnB,QAAQ,OAAO;AAAA,YACf,OAAO,OAAO;AAAA,UAChB;AAAA,QACF;AAEA,eAAO;AAAA,UACL,GAAG;AAAA,UACH,WAAW;AAAA,UACX,mBAAmB;AAAA,UACnB,aAAa;AAAA,YACX,GAAG,MAAM;AAAA,YACT,GAAG;AAAA,UACL;AAAA,UACA,YAAY;AAAA,YACV,GAAG,MAAM;AAAA,YACT,GAAG;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC,EACA,KAAK,MAAM;AAAA,IAAC,CAAC;AAEhB,SAAK,kBAAkB;AAAA,EACzB;AAAA,EAEQ;AAAA,EAED,sBAAsB,SAAkC;AAC7D,QAAI,KAAK,aAAa,QAAS;AAE/B,SAAK,WAAW;AAChB,SAAK,qBAAqB;AAC1B,SAAK,qBAAqB,KAAK,SAAS,aAAa,KAAK,aAAa;AAEvE,UAAM,kBACJ,QAAQ,8BAA8B;AACxC,QACE,oBAAoB,KAAK,mBAAmB,SAAS,EAAE,iBACvD;AACA,WAAK,mBAAmB,SAAS,EAAE,gBAAgB,GAAG,IAAI;AAAA,IAC5D;AAEA,SAAK,aAAa,eAAe,QAAQ,WAAW;AAAA,EACtD;AAAA,EAEA,IAAW,YAAY;AACrB,WAAO,KAAK,OAAO,MAAM;AAAA,EAC3B;AAAA,EAEA,IAAW,oBAAoB;AAC7B,WAAO,KAAK,OAAO,MAAM;AAAA,EAC3B;AAAA,EAEA,IAAW,cAAc;AACvB,WAAO,KAAK,OAAO,MAAM;AAAA,EAC3B;AAAA,EAEA,IAAW,eAAuB;AAChC,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,2BAA2B;AAChC,UAAM,SAAS,KAAK,aAAa,qBAAqB,KAAK,aAAa;AACxE,QAAI,CAAC,OAAQ,QAAO;AACpB,WAAO;AAAA,EACT;AAAA,EAEO,YAAY,oBAA4B;AAC7C,WAAO,cAAc,KAAK,OAAO,OAAO,kBAAkB;AAAA,EAC5D;AAAA,EAEA,MAAa,eAAe,oBAA2C;AACrE,UAAM,OAAO,KAAK,YAAY,kBAAkB;AAChD,QAAI,CAAC,KAAM,OAAM,IAAI,MAAM,kBAAkB;AAE7C,QAAI,KAAK,kBAAkB,KAAK,SAAU;AAE1C,UAAM,OAAO,KAAK,aAAa,mBAAmB,KAAK,QAAQ;AAC/D,QAAI,KAAK,iBAAiB,QAAW;AACnC,YAAM;AAAA,IACR,OAAO;AACL,WAAK,KAAK,MAAM,KAAK,mBAAmB,CAAC;AAAA,IAC3C;AAEA,QAAI,KAAK,WAAW,WAAY,OAAM,KAAK,UAAU,KAAK,QAAQ;AAClE,SAAK,gBAAgB,KAAK;AAE1B,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEA,MAAa,oBAAmC;AAE9C,WACE,KAAK,OAAO,UAAU,gBAAgB,UACtC,KAAK,OAAO,MAAM,gBAAgB,QAClC;AACA,YAAM,KAAK,OAAO,cAAc;AAAA,IAClC;AAEA,UAAM,QAAQ,KAAK,OAAO;AAC1B,QAAI,WAA+B,KAAK,OAAO,MAAM;AACrD,QAAI,aAAa,QAAW;AAC1B,SAAG;AACD,mBAAW,aAAa,WAAW,CAAC;AAAA,MACtC,SAAS,MAAM,YAAY,QAAQ;AAEnC,YAAM,YAAY,sBAAsB,QAAQ;AAChD,WAAK,OAAO,OAAO;AAAA,QACjB,GAAG;AAAA,QACH,aAAa;AAAA,QACb,aAAa;AAAA,UACX,GAAG,MAAM;AAAA,UACT,CAAC,QAAQ,GAAG;AAAA,QACd;AAAA,QACA,YAAY;AAAA,UACV,GAAG,MAAM;AAAA,UACT,CAAC,QAAQ,GAAG;AAAA,YACV,QAAQ;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WAAO,KAAK,eAAe,QAAQ;AAAA,EACrC;AAAA,EAEQ,gBAAgB,OAAO,SAA2C;AACxE,UAAM,WAAW,KAAK,OAAO,MAAM;AACnC,QAAI,CAAC;AACH,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAEF,UAAM,KAAK,OAAO,iBAAiB;AAAA,MACjC,SAAS,MAAM;AACb,eAAO;AAAA,MACT;AAAA,MACA,YAAY,CAAC,UAAU;AACrB,eAAO,oBAAoB,OAAO,UAAU,SAAS;AAAA,MACvD;AAAA,MACA,MAAM,CAAC,OAAO,EAAE,UAAU,WAAW,MAAM;AACzC,cAAM,OAAO,cAAc,OAAO,QAAQ;AAC1C,YAAI,CAAC,KAAM,QAAO;AAElB,cAAM,YAAY,sBAAsB,QAAQ;AAChD,eAAO;AAAA,UACL,GAAG;AAAA,UACH,aAAa;AAAA,YACX,GAAG,MAAM;AAAA,YACT,CAAC,QAAQ,GAAG;AAAA,UACd;AAAA,UACA,YAAY;AAAA,YACV,GAAG,MAAM;AAAA,YACT,CAAC,QAAQ,GAAG;AAAA,cACV,GAAG;AAAA,cACH;AAAA,cACA;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,OAAO,oBAA4B,UAAiC;AACzE,UAAM,OAAO,KAAK,YAAY,kBAAkB;AAChD,QAAI,CAAC,KAAM,OAAM,IAAI,MAAM,kBAAkB;AAC7C,QAAI,KAAK,WAAW,MAAO,OAAM,IAAI,MAAM,+BAA+B;AAE1E,WAAO,KAAK,OAAO,iBAAiB;AAAA,MAClC,SAAS,MAAM;AACb,eAAO,KAAK,SAAS,OAAO,KAAK,UAAU,QAAQ;AAAA,MACrD;AAAA,MACA,YAAY,CAAC,UAAU;AACrB,cAAMA,QAAO,cAAc,OAAO,kBAAkB;AACpD,YAAI,CAACA,MAAM,QAAO;AAElB,eAAO;AAAA,UACL,GAAG;AAAA,UACH,YAAY;AAAA,YACV,GAAG,MAAM;AAAA,YACT,CAACA,MAAK,QAAQ,GAAG;AAAA,cACf,GAAGA;AAAA,cACH,OAAO;AAAA,YACT;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAc,uBAAuB,UAAkB;AAErD,QAAI,aAAa,KAAK,eAAe;AACnC,YAAM,eAAe,KAAK,OAAO,MAAM,UAAU,CAAC;AAClD,UAAI,cAAc;AAChB,cAAM,KAAK,eAAe,YAAY;AAAA,MACxC,OAAO;AACL,cAAM,KAAK,kBAAkB;AAAA,MAC/B;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAa,QAAQ,oBAA4B;AAC/C,UAAM,OAAO,KAAK,YAAY,kBAAkB;AAChD,QAAI,CAAC,KAAM,OAAM,IAAI,MAAM,kBAAkB;AAC7C,QAAI,KAAK,WAAW;AAClB,YAAM,IAAI,MAAM,mDAAmD;AAErE,WAAO,KAAK,OAAO,iBAAiB;AAAA,MAClC,SAAS,YAAY;AACnB,cAAM,KAAK,uBAAuB,KAAK,QAAQ;AAC/C,eAAO,KAAK,SAAS,QAAQ,KAAK,QAAQ;AAAA,MAC5C;AAAA,MACA,YAAY,CAAC,UAAU;AACrB,eAAO,oBAAoB,OAAO,KAAK,UAAU,UAAU;AAAA,MAC7D;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEO,UAAU,oBAA2C;AAC1D,UAAM,OAAO,KAAK,YAAY,kBAAkB;AAChD,QAAI,CAAC,KAAM,OAAM,IAAI,MAAM,kBAAkB;AAC7C,QAAI,KAAK,WAAW,WAAY,OAAM,IAAI,MAAM,wBAAwB;AAExE,WAAO,KAAK,OAAO,iBAAiB;AAAA,MAClC,SAAS,YAAY;AACnB,YAAI;AACF,iBAAO,MAAM,KAAK,SAAS,UAAU,KAAK,QAAQ;AAAA,QACpD,SAAS,OAAO;AACd,gBAAM,KAAK,uBAAuB,KAAK,QAAQ;AAC/C,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,MACA,YAAY,CAAC,UAAU;AACrB,eAAO,oBAAoB,OAAO,KAAK,UAAU,SAAS;AAAA,MAC5D;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,OAAO,oBAA4B;AAC9C,UAAM,OAAO,KAAK,YAAY,kBAAkB;AAChD,QAAI,CAAC,KAAM,OAAM,IAAI,MAAM,kBAAkB;AAC7C,QAAI,KAAK,WAAW,aAAa,KAAK,WAAW;AAC/C,YAAM,IAAI,MAAM,+BAA+B;AAEjD,WAAO,KAAK,OAAO,iBAAiB;AAAA,MAClC,SAAS,YAAY;AACnB,cAAM,KAAK,uBAAuB,KAAK,QAAQ;AAC/C,eAAO,MAAM,KAAK,SAAS,OAAO,KAAK,QAAQ;AAAA,MACjD;AAAA,MACA,YAAY,CAAC,UAAU;AACrB,eAAO,oBAAoB,OAAO,KAAK,UAAU,SAAS;AAAA,MAC5D;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEQ,cAAc,OAAiB,MAAM,CAAC,CAAC;AAAA,EAExC,6BAAoD,CAAC,EAAE,SAAS,MAAM;AAC3E,UAAM,KAAK,MAAM;AACjB,cAAU,MAAM;AACd,WAAK,YAAY,SAAS,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI;AACjD,aAAO,MAAM;AACX,aAAK,YAAY,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,MAAM,EAAE,GAAG,IAAI;AAAA,MAClE;AAAA,IACF,GAAG,CAAC,CAAC;AAEL,UAAM,WAAW,KAAK,YAAY;AAClC,UAAM,EAAE,gBAAgB,IAAI,KAAK,mBAAmB;AAEpD,WACE,qBAAC,mBACG;AAAA,gBAAS,WAAW,KAAK,SAAS,CAAC,MAAM;AAAA,MAEzC,oBAAC,KAAK,aAAa,iCAAlB,EAAkD;AAAA,MAGpD;AAAA,OACH;AAAA,EAEJ;AACF;","names":["data"]}
1
+ {"version":3,"sources":["../../../src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx"],"sourcesContent":["import { ThreadListRuntimeCore } from \"../core/ThreadListRuntimeCore\";\nimport { generateId } from \"../../internal\";\nimport { RemoteThreadListAdapter } from \"./types\";\nimport { RemoteThreadListHookInstanceManager } from \"./RemoteThreadListHookInstanceManager\";\nimport { BaseSubscribable } from \"./BaseSubscribable\";\nimport { EMPTY_THREAD_CORE } from \"./EMPTY_THREAD_CORE\";\nimport { OptimisticState } from \"./OptimisticState\";\nimport { FC, Fragment, PropsWithChildren, useEffect, useId } from \"react\";\nimport { create } from \"zustand\";\nimport { CloudInitializeResponse } from \"./cloud/CloudContext\";\n\ntype RemoteThreadData =\n | {\n readonly threadId: string;\n readonly remoteId?: undefined;\n readonly externalId?: undefined;\n readonly status: \"new\";\n readonly title: undefined;\n }\n | {\n readonly threadId: string;\n readonly remoteId: string;\n readonly externalId: string | undefined;\n readonly status: \"regular\" | \"archived\";\n readonly title?: string | undefined;\n };\n\ntype THREAD_MAPPING_ID = string & { __brand: \"THREAD_MAPPING_ID\" };\nfunction createThreadMappingId(id: string): THREAD_MAPPING_ID {\n return id as THREAD_MAPPING_ID;\n}\n\ntype RemoteThreadState = {\n readonly isLoading: boolean;\n readonly newThreadId: string | undefined;\n readonly threadIds: readonly string[];\n readonly archivedThreadIds: readonly string[];\n readonly threadIdMap: Readonly<Record<string, THREAD_MAPPING_ID>>;\n readonly threadData: Readonly<Record<THREAD_MAPPING_ID, RemoteThreadData>>;\n};\n\nconst getThreadData = (\n state: RemoteThreadState,\n threadIdOrRemoteId: string,\n) => {\n const idx = state.threadIdMap[threadIdOrRemoteId];\n if (idx === undefined) return undefined;\n return state.threadData[idx];\n};\n\nconst updateStatusReducer = (\n state: RemoteThreadState,\n threadIdOrRemoteId: string,\n newStatus: \"regular\" | \"archived\" | \"deleted\",\n) => {\n const data = getThreadData(state, threadIdOrRemoteId);\n if (!data) return state;\n\n const { threadId, remoteId, status: lastStatus } = data;\n if (lastStatus === newStatus) return state;\n\n const newState = { ...state };\n\n // lastStatus\n switch (lastStatus) {\n case \"new\":\n newState.newThreadId = undefined;\n break;\n case \"regular\":\n newState.threadIds = newState.threadIds.filter((t) => t !== threadId);\n break;\n case \"archived\":\n newState.archivedThreadIds = newState.archivedThreadIds.filter(\n (t) => t !== threadId,\n );\n break;\n\n default: {\n const _exhaustiveCheck: never = lastStatus;\n throw new Error(`Unsupported state: ${_exhaustiveCheck}`);\n }\n }\n\n // newStatus\n switch (newStatus) {\n case \"regular\":\n newState.threadIds = [...newState.threadIds, threadId];\n break;\n\n case \"archived\":\n newState.archivedThreadIds = [...newState.archivedThreadIds, threadId];\n break;\n\n case \"deleted\":\n newState.threadData = Object.fromEntries(\n Object.entries(newState.threadData).filter(([key]) => key !== threadId),\n );\n newState.threadIdMap = Object.fromEntries(\n Object.entries(newState.threadIdMap).filter(\n ([key]) => key !== threadId && key !== remoteId,\n ),\n );\n break;\n\n default: {\n const _exhaustiveCheck: never = newStatus;\n throw new Error(`Unsupported state: ${_exhaustiveCheck}`);\n }\n }\n\n if (newStatus !== \"deleted\") {\n newState.threadData = {\n ...newState.threadData,\n [threadId]: {\n ...data,\n status: newStatus,\n },\n };\n }\n\n return newState;\n};\n\nexport class RemoteThreadListThreadListRuntimeCore\n extends BaseSubscribable\n implements ThreadListRuntimeCore\n{\n private _adapter!: RemoteThreadListAdapter;\n private _disposeOldAdapter?: () => void;\n private readonly _hookManager: RemoteThreadListHookInstanceManager;\n\n private readonly _loadThreadsPromise: Promise<void>;\n\n private _mainThreadId!: string;\n private readonly _state = new OptimisticState<RemoteThreadState>({\n isLoading: false,\n newThreadId: undefined,\n threadIds: [],\n archivedThreadIds: [],\n threadIdMap: {},\n threadData: {},\n });\n\n public getLoadThreadsPromise() {\n return this._loadThreadsPromise;\n }\n\n constructor(adapter: RemoteThreadListAdapter) {\n super();\n\n this._state.subscribe(() => this._notifySubscribers());\n this._hookManager = new RemoteThreadListHookInstanceManager(\n adapter.runtimeHook,\n );\n this.useRenderComponent = create(() => ({\n RenderComponent: adapter.unstable_Provider ?? Fragment,\n }));\n this.__internal_setAdapter(adapter);\n\n this._loadThreadsPromise = this._state\n .optimisticUpdate({\n execute: () => adapter.list(),\n loading: (state) => {\n return {\n ...state,\n isLoading: true,\n };\n },\n then: (state, l) => {\n const newThreadIds = [];\n const newArchivedThreadIds = [];\n const newThreadIdMap = {} as Record<string, THREAD_MAPPING_ID>;\n const newThreadData = {} as Record<\n THREAD_MAPPING_ID,\n RemoteThreadData\n >;\n\n for (const thread of l.threads) {\n switch (thread.status) {\n case \"regular\":\n newThreadIds.push(thread.remoteId);\n break;\n case \"archived\":\n newArchivedThreadIds.push(thread.remoteId);\n break;\n default: {\n const _exhaustiveCheck: never = thread.status;\n throw new Error(`Unsupported state: ${_exhaustiveCheck}`);\n }\n }\n\n const mappingId = createThreadMappingId(thread.remoteId);\n newThreadIdMap[thread.remoteId] = mappingId;\n newThreadData[mappingId] = {\n threadId: thread.remoteId,\n remoteId: thread.remoteId,\n externalId: thread.externalId,\n status: thread.status,\n title: thread.title,\n };\n }\n\n return {\n ...state,\n threadIds: newThreadIds,\n archivedThreadIds: newArchivedThreadIds,\n threadIdMap: {\n ...state.threadIdMap,\n ...newThreadIdMap,\n },\n threadData: {\n ...state.threadData,\n ...newThreadData,\n },\n };\n },\n })\n .then(() => {});\n\n this.switchToNewThread();\n }\n\n private useRenderComponent;\n\n public __internal_setAdapter(adapter: RemoteThreadListAdapter) {\n if (this._adapter === adapter) return;\n\n this._adapter = adapter;\n this._disposeOldAdapter?.();\n this._disposeOldAdapter = this._adapter.onInitialize(this._onInitialize);\n\n const RenderComponent = adapter.unstable_Provider ?? Fragment;\n if (\n RenderComponent !== this.useRenderComponent.getState().RenderComponent\n ) {\n this.useRenderComponent.setState({ RenderComponent }, true);\n }\n\n this._hookManager.setRuntimeHook(adapter.runtimeHook);\n }\n\n public get threadIds() {\n return this._state.value.threadIds;\n }\n\n public get archivedThreadIds() {\n return this._state.value.archivedThreadIds;\n }\n\n public get newThreadId() {\n return this._state.value.newThreadId;\n }\n\n public get mainThreadId(): string {\n return this._mainThreadId;\n }\n\n public getMainThreadRuntimeCore() {\n const result = this._hookManager.getThreadRuntimeCore(this._mainThreadId);\n if (!result) return EMPTY_THREAD_CORE;\n return result;\n }\n\n public getItemById(threadIdOrRemoteId: string) {\n return getThreadData(this._state.value, threadIdOrRemoteId);\n }\n\n public async switchToThread(threadIdOrRemoteId: string): Promise<void> {\n const data = this.getItemById(threadIdOrRemoteId);\n if (!data) throw new Error(\"Thread not found\");\n\n if (this._mainThreadId === data.threadId) return;\n\n const task = this._hookManager.startThreadRuntime(data.threadId);\n if (this.mainThreadId !== undefined) {\n await task;\n } else {\n task.then(() => this._notifySubscribers());\n }\n\n if (data.status === \"archived\") await this.unarchive(data.threadId);\n this._mainThreadId = data.threadId;\n\n this._notifySubscribers();\n }\n\n public async switchToNewThread(): Promise<void> {\n // an initialization transaction is in progress, wait for it to settle\n while (\n this._state.baseValue.newThreadId !== undefined &&\n this._state.value.newThreadId === undefined\n ) {\n await this._state.waitForUpdate();\n }\n\n const state = this._state.value;\n let threadId: string | undefined = this._state.value.newThreadId;\n if (threadId === undefined) {\n do {\n threadId = `__LOCALID_${generateId()}`;\n } while (state.threadIdMap[threadId]);\n\n const mappingId = createThreadMappingId(threadId);\n this._state.update({\n ...state,\n newThreadId: threadId,\n threadIdMap: {\n ...state.threadIdMap,\n [threadId]: mappingId,\n },\n threadData: {\n ...state.threadData,\n [threadId]: {\n status: \"new\",\n threadId,\n },\n },\n });\n }\n\n return this.switchToThread(threadId);\n }\n\n private _onInitialize = async (task: Promise<CloudInitializeResponse>) => {\n const threadId = this._state.value.newThreadId;\n if (!threadId)\n throw new Error(\n \"ThreadListAdapter called onInitialize before switching to new thread\",\n );\n\n await this._state.optimisticUpdate({\n execute: () => {\n return task;\n },\n optimistic: (state) => {\n return updateStatusReducer(state, threadId, \"regular\");\n },\n then: (state, { remoteId, externalId }) => {\n const data = getThreadData(state, threadId);\n if (!data) return state;\n\n const mappingId = createThreadMappingId(remoteId);\n return {\n ...state,\n threadIdMap: {\n ...state.threadIdMap,\n [remoteId]: mappingId,\n },\n threadData: {\n ...state.threadData,\n [threadId]: {\n ...data,\n remoteId,\n externalId,\n },\n },\n };\n },\n });\n };\n\n public rename(threadIdOrRemoteId: string, newTitle: string): Promise<void> {\n const data = this.getItemById(threadIdOrRemoteId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.status === \"new\") throw new Error(\"Thread is not yet initialized\");\n\n return this._state.optimisticUpdate({\n execute: () => {\n return this._adapter.rename(data.remoteId, newTitle);\n },\n optimistic: (state) => {\n const data = getThreadData(state, threadIdOrRemoteId);\n if (!data) return state;\n\n return {\n ...state,\n threadData: {\n ...state.threadData,\n [data.threadId]: {\n ...data,\n title: newTitle,\n },\n },\n };\n },\n });\n }\n\n private async _ensureThreadIsNotMain(threadId: string) {\n // if thread is main thread, switch to another thread\n if (threadId === this._mainThreadId) {\n const lastThreadId = this._state.value.threadIds[0];\n if (lastThreadId) {\n await this.switchToThread(lastThreadId);\n } else {\n await this.switchToNewThread();\n }\n }\n }\n\n public async archive(threadIdOrRemoteId: string) {\n const data = this.getItemById(threadIdOrRemoteId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.status !== \"regular\")\n throw new Error(\"Thread is not yet initialized or already archived\");\n\n return this._state.optimisticUpdate({\n execute: async () => {\n await this._ensureThreadIsNotMain(data.threadId);\n return this._adapter.archive(data.remoteId);\n },\n optimistic: (state) => {\n return updateStatusReducer(state, data.threadId, \"archived\");\n },\n });\n }\n\n public unarchive(threadIdOrRemoteId: string): Promise<void> {\n const data = this.getItemById(threadIdOrRemoteId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.status !== \"archived\") throw new Error(\"Thread is not archived\");\n\n return this._state.optimisticUpdate({\n execute: async () => {\n try {\n return await this._adapter.unarchive(data.remoteId);\n } catch (error) {\n await this._ensureThreadIsNotMain(data.threadId);\n throw error;\n }\n },\n optimistic: (state) => {\n return updateStatusReducer(state, data.threadId, \"regular\");\n },\n });\n }\n\n public async delete(threadIdOrRemoteId: string) {\n const data = this.getItemById(threadIdOrRemoteId);\n if (!data) throw new Error(\"Thread not found\");\n if (data.status !== \"regular\" && data.status !== \"archived\")\n throw new Error(\"Thread is not yet initialized\");\n\n return this._state.optimisticUpdate({\n execute: async () => {\n await this._ensureThreadIsNotMain(data.threadId);\n return await this._adapter.delete(data.remoteId);\n },\n optimistic: (state) => {\n return updateStatusReducer(state, data.threadId, \"deleted\");\n },\n });\n }\n\n private useBoundIds = create<string[]>(() => []);\n\n public __internal_Provider: FC<PropsWithChildren> = ({ children }) => {\n const id = useId();\n useEffect(() => {\n this.useBoundIds.setState((s) => [...s, id], true);\n return () => {\n this.useBoundIds.setState((s) => s.filter((i) => i !== id), true);\n };\n }, []);\n\n const boundIds = this.useBoundIds();\n const { RenderComponent } = this.useRenderComponent();\n\n return (\n <RenderComponent>\n {(boundIds.length === 0 || boundIds[0] === id) && (\n // only render if the component is the first one mounted\n <this._hookManager.__internal_RenderThreadRuntimes />\n )}\n\n {children}\n </RenderComponent>\n );\n };\n}\n"],"mappings":"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","names":["data"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useCloudThreadListRuntime.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,cAAc,CAAC;IAEtB,WAAW,EAAE,MAAM,gBAAgB,CAAC;IAEpC,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,yBAAyB,YAAa,sBAAsB,wCA8ExE,CAAC"}
1
+ {"version":3,"file":"useCloudThreadListRuntime.d.ts","sourceRoot":"","sources":["../../../../src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,cAAc,CAAC;IAEtB,WAAW,EAAE,MAAM,gBAAgB,CAAC;IAEpC,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/B,MAAM,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,yBAAyB,YAAa,sBAAsB,wCA6ExE,CAAC"}
@@ -89,8 +89,7 @@ var useCloudThreadListRuntime = (adapter) => {
89
89
  onInitialize: (callback) => {
90
90
  return cloudContextValue.subscribe(callback);
91
91
  },
92
- __internal_RenderComponent: ({ children }) => {
93
- console.log("RENDER COMPONENT");
92
+ unstable_Provider: ({ children }) => {
94
93
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_CloudContext.CloudContext.Provider, { value: cloudContextValue, children });
95
94
  }
96
95
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport { AssistantRuntime } from \"@assistant-ui/react\";\nimport { PropsWithChildren, useEffect, useMemo, useRef } from \"react\";\nimport { useRemoteThreadListRuntime } from \"../useRemoteThreadListRuntime\";\nimport { AssistantCloud } from \"./AssistantCloud\";\nimport { CloudContext, CloudInitializeResponse } from \"./CloudContext\";\n\ntype ThreadData = {\n externalId: string;\n};\n\ntype CloudThreadListAdapter = {\n cloud: AssistantCloud;\n\n runtimeHook: () => AssistantRuntime;\n\n create?(): Promise<ThreadData>;\n delete?(threadId: string): Promise<void>;\n};\n\nexport const useCloudThreadListRuntime = (adapter: CloudThreadListAdapter) => {\n const adapterRef = useRef(adapter);\n useEffect(() => {\n adapterRef.current = adapter;\n }, [adapter]);\n\n const cloudContextValue = useMemo(() => {\n const subscribers = new Set<\n (result: Promise<CloudInitializeResponse>) => void\n >();\n return {\n initialize: async () => {\n const createTask = adapterRef.current.create?.() ?? Promise.resolve();\n const task = createTask.then(async (t) => {\n const external_id = t ? t.externalId : undefined;\n const { thread_id } = await adapterRef.current.cloud.threads.create({\n title: \"New Thread\",\n last_message_at: new Date(),\n external_id,\n });\n return { externalId: external_id, remoteId: thread_id };\n });\n for (const subscriber of subscribers) {\n subscriber(task);\n }\n return task;\n },\n subscribe: (\n callback: (result: Promise<CloudInitializeResponse>) => void,\n ) => {\n subscribers.add(callback);\n return () => {\n subscribers.delete(callback);\n };\n },\n };\n }, []);\n\n const runtime = useRemoteThreadListRuntime({\n runtimeHook: adapter.runtimeHook,\n list: async () => {\n const { threads } = await adapter.cloud.threads.list();\n return {\n threads: threads.map((t) => ({\n status: t.is_archived ? \"archived\" : \"regular\",\n remoteId: t.id,\n title: t.title,\n externalId: t.external_id ?? undefined,\n })),\n };\n },\n rename: async (threadId, newTitle) => {\n return adapter.cloud.threads.update(threadId, { title: newTitle });\n },\n archive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: true });\n },\n unarchive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: false });\n },\n delete: async (threadId) => {\n await adapter.delete?.(threadId);\n return adapter.cloud.threads.delete(threadId);\n },\n onInitialize: (callback) => {\n return cloudContextValue.subscribe(callback);\n },\n __internal_RenderComponent: ({ children }: PropsWithChildren) => {\n console.log(\"RENDER COMPONENT\");\n return (\n <CloudContext.Provider value={cloudContextValue}>\n {children}\n </CloudContext.Provider>\n );\n },\n });\n\n return runtime;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAA8D;AAC9D,wCAA2C;AAE3C,0BAAsD;AAqF9C;AAtED,IAAM,4BAA4B,CAAC,YAAoC;AAC5E,QAAM,iBAAa,qBAAO,OAAO;AACjC,8BAAU,MAAM;AACd,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,wBAAoB,sBAAQ,MAAM;AACtC,UAAM,cAAc,oBAAI,IAEtB;AACF,WAAO;AAAA,MACL,YAAY,YAAY;AACtB,cAAM,aAAa,WAAW,QAAQ,SAAS,KAAK,QAAQ,QAAQ;AACpE,cAAM,OAAO,WAAW,KAAK,OAAO,MAAM;AACxC,gBAAM,cAAc,IAAI,EAAE,aAAa;AACvC,gBAAM,EAAE,UAAU,IAAI,MAAM,WAAW,QAAQ,MAAM,QAAQ,OAAO;AAAA,YAClE,OAAO;AAAA,YACP,iBAAiB,oBAAI,KAAK;AAAA,YAC1B;AAAA,UACF,CAAC;AACD,iBAAO,EAAE,YAAY,aAAa,UAAU,UAAU;AAAA,QACxD,CAAC;AACD,mBAAW,cAAc,aAAa;AACpC,qBAAW,IAAI;AAAA,QACjB;AACA,eAAO;AAAA,MACT;AAAA,MACA,WAAW,CACT,aACG;AACH,oBAAY,IAAI,QAAQ;AACxB,eAAO,MAAM;AACX,sBAAY,OAAO,QAAQ;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,cAAU,8DAA2B;AAAA,IACzC,aAAa,QAAQ;AAAA,IACrB,MAAM,YAAY;AAChB,YAAM,EAAE,QAAQ,IAAI,MAAM,QAAQ,MAAM,QAAQ,KAAK;AACrD,aAAO;AAAA,QACL,SAAS,QAAQ,IAAI,CAAC,OAAO;AAAA,UAC3B,QAAQ,EAAE,cAAc,aAAa;AAAA,UACrC,UAAU,EAAE;AAAA,UACZ,OAAO,EAAE;AAAA,UACT,YAAY,EAAE,eAAe;AAAA,QAC/B,EAAE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,QAAQ,OAAO,UAAU,aAAa;AACpC,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,OAAO,SAAS,CAAC;AAAA,IACnE;AAAA,IACA,SAAS,OAAO,aAAa;AAC3B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,KAAK,CAAC;AAAA,IACrE;AAAA,IACA,WAAW,OAAO,aAAa;AAC7B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,MAAM,CAAC;AAAA,IACtE;AAAA,IACA,QAAQ,OAAO,aAAa;AAC1B,YAAM,QAAQ,SAAS,QAAQ;AAC/B,aAAO,QAAQ,MAAM,QAAQ,OAAO,QAAQ;AAAA,IAC9C;AAAA,IACA,cAAc,CAAC,aAAa;AAC1B,aAAO,kBAAkB,UAAU,QAAQ;AAAA,IAC7C;AAAA,IACA,4BAA4B,CAAC,EAAE,SAAS,MAAyB;AAC/D,cAAQ,IAAI,kBAAkB;AAC9B,aACE,4CAAC,iCAAa,UAAb,EAAsB,OAAO,mBAC3B,UACH;AAAA,IAEJ;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport { AssistantRuntime } from \"@assistant-ui/react\";\nimport { PropsWithChildren, useEffect, useMemo, useRef } from \"react\";\nimport { useRemoteThreadListRuntime } from \"../useRemoteThreadListRuntime\";\nimport { AssistantCloud } from \"./AssistantCloud\";\nimport { CloudContext, CloudInitializeResponse } from \"./CloudContext\";\n\ntype ThreadData = {\n externalId: string;\n};\n\ntype CloudThreadListAdapter = {\n cloud: AssistantCloud;\n\n runtimeHook: () => AssistantRuntime;\n\n create?(): Promise<ThreadData>;\n delete?(threadId: string): Promise<void>;\n};\n\nexport const useCloudThreadListRuntime = (adapter: CloudThreadListAdapter) => {\n const adapterRef = useRef(adapter);\n useEffect(() => {\n adapterRef.current = adapter;\n }, [adapter]);\n\n const cloudContextValue = useMemo(() => {\n const subscribers = new Set<\n (result: Promise<CloudInitializeResponse>) => void\n >();\n return {\n initialize: async () => {\n const createTask = adapterRef.current.create?.() ?? Promise.resolve();\n const task = createTask.then(async (t) => {\n const external_id = t ? t.externalId : undefined;\n const { thread_id } = await adapterRef.current.cloud.threads.create({\n title: \"New Thread\",\n last_message_at: new Date(),\n external_id,\n });\n return { externalId: external_id, remoteId: thread_id };\n });\n for (const subscriber of subscribers) {\n subscriber(task);\n }\n return task;\n },\n subscribe: (\n callback: (result: Promise<CloudInitializeResponse>) => void,\n ) => {\n subscribers.add(callback);\n return () => {\n subscribers.delete(callback);\n };\n },\n };\n }, []);\n\n const runtime = useRemoteThreadListRuntime({\n runtimeHook: adapter.runtimeHook,\n list: async () => {\n const { threads } = await adapter.cloud.threads.list();\n return {\n threads: threads.map((t) => ({\n status: t.is_archived ? \"archived\" : \"regular\",\n remoteId: t.id,\n title: t.title,\n externalId: t.external_id ?? undefined,\n })),\n };\n },\n rename: async (threadId, newTitle) => {\n return adapter.cloud.threads.update(threadId, { title: newTitle });\n },\n archive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: true });\n },\n unarchive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: false });\n },\n delete: async (threadId) => {\n await adapter.delete?.(threadId);\n return adapter.cloud.threads.delete(threadId);\n },\n onInitialize: (callback) => {\n return cloudContextValue.subscribe(callback);\n },\n unstable_Provider: ({ children }: PropsWithChildren) => {\n return (\n <CloudContext.Provider value={cloudContextValue}>\n {children}\n </CloudContext.Provider>\n );\n },\n });\n\n return runtime;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAA8D;AAC9D,wCAA2C;AAE3C,0BAAsD;AAoF9C;AArED,IAAM,4BAA4B,CAAC,YAAoC;AAC5E,QAAM,iBAAa,qBAAO,OAAO;AACjC,8BAAU,MAAM;AACd,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,wBAAoB,sBAAQ,MAAM;AACtC,UAAM,cAAc,oBAAI,IAEtB;AACF,WAAO;AAAA,MACL,YAAY,YAAY;AACtB,cAAM,aAAa,WAAW,QAAQ,SAAS,KAAK,QAAQ,QAAQ;AACpE,cAAM,OAAO,WAAW,KAAK,OAAO,MAAM;AACxC,gBAAM,cAAc,IAAI,EAAE,aAAa;AACvC,gBAAM,EAAE,UAAU,IAAI,MAAM,WAAW,QAAQ,MAAM,QAAQ,OAAO;AAAA,YAClE,OAAO;AAAA,YACP,iBAAiB,oBAAI,KAAK;AAAA,YAC1B;AAAA,UACF,CAAC;AACD,iBAAO,EAAE,YAAY,aAAa,UAAU,UAAU;AAAA,QACxD,CAAC;AACD,mBAAW,cAAc,aAAa;AACpC,qBAAW,IAAI;AAAA,QACjB;AACA,eAAO;AAAA,MACT;AAAA,MACA,WAAW,CACT,aACG;AACH,oBAAY,IAAI,QAAQ;AACxB,eAAO,MAAM;AACX,sBAAY,OAAO,QAAQ;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,cAAU,8DAA2B;AAAA,IACzC,aAAa,QAAQ;AAAA,IACrB,MAAM,YAAY;AAChB,YAAM,EAAE,QAAQ,IAAI,MAAM,QAAQ,MAAM,QAAQ,KAAK;AACrD,aAAO;AAAA,QACL,SAAS,QAAQ,IAAI,CAAC,OAAO;AAAA,UAC3B,QAAQ,EAAE,cAAc,aAAa;AAAA,UACrC,UAAU,EAAE;AAAA,UACZ,OAAO,EAAE;AAAA,UACT,YAAY,EAAE,eAAe;AAAA,QAC/B,EAAE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,QAAQ,OAAO,UAAU,aAAa;AACpC,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,OAAO,SAAS,CAAC;AAAA,IACnE;AAAA,IACA,SAAS,OAAO,aAAa;AAC3B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,KAAK,CAAC;AAAA,IACrE;AAAA,IACA,WAAW,OAAO,aAAa;AAC7B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,MAAM,CAAC;AAAA,IACtE;AAAA,IACA,QAAQ,OAAO,aAAa;AAC1B,YAAM,QAAQ,SAAS,QAAQ;AAC/B,aAAO,QAAQ,MAAM,QAAQ,OAAO,QAAQ;AAAA,IAC9C;AAAA,IACA,cAAc,CAAC,aAAa;AAC1B,aAAO,kBAAkB,UAAU,QAAQ;AAAA,IAC7C;AAAA,IACA,mBAAmB,CAAC,EAAE,SAAS,MAAyB;AACtD,aACE,4CAAC,iCAAa,UAAb,EAAsB,OAAO,mBAC3B,UACH;AAAA,IAEJ;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -66,8 +66,7 @@ var useCloudThreadListRuntime = (adapter) => {
66
66
  onInitialize: (callback) => {
67
67
  return cloudContextValue.subscribe(callback);
68
68
  },
69
- __internal_RenderComponent: ({ children }) => {
70
- console.log("RENDER COMPONENT");
69
+ unstable_Provider: ({ children }) => {
71
70
  return /* @__PURE__ */ jsx(CloudContext.Provider, { value: cloudContextValue, children });
72
71
  }
73
72
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport { AssistantRuntime } from \"@assistant-ui/react\";\nimport { PropsWithChildren, useEffect, useMemo, useRef } from \"react\";\nimport { useRemoteThreadListRuntime } from \"../useRemoteThreadListRuntime\";\nimport { AssistantCloud } from \"./AssistantCloud\";\nimport { CloudContext, CloudInitializeResponse } from \"./CloudContext\";\n\ntype ThreadData = {\n externalId: string;\n};\n\ntype CloudThreadListAdapter = {\n cloud: AssistantCloud;\n\n runtimeHook: () => AssistantRuntime;\n\n create?(): Promise<ThreadData>;\n delete?(threadId: string): Promise<void>;\n};\n\nexport const useCloudThreadListRuntime = (adapter: CloudThreadListAdapter) => {\n const adapterRef = useRef(adapter);\n useEffect(() => {\n adapterRef.current = adapter;\n }, [adapter]);\n\n const cloudContextValue = useMemo(() => {\n const subscribers = new Set<\n (result: Promise<CloudInitializeResponse>) => void\n >();\n return {\n initialize: async () => {\n const createTask = adapterRef.current.create?.() ?? Promise.resolve();\n const task = createTask.then(async (t) => {\n const external_id = t ? t.externalId : undefined;\n const { thread_id } = await adapterRef.current.cloud.threads.create({\n title: \"New Thread\",\n last_message_at: new Date(),\n external_id,\n });\n return { externalId: external_id, remoteId: thread_id };\n });\n for (const subscriber of subscribers) {\n subscriber(task);\n }\n return task;\n },\n subscribe: (\n callback: (result: Promise<CloudInitializeResponse>) => void,\n ) => {\n subscribers.add(callback);\n return () => {\n subscribers.delete(callback);\n };\n },\n };\n }, []);\n\n const runtime = useRemoteThreadListRuntime({\n runtimeHook: adapter.runtimeHook,\n list: async () => {\n const { threads } = await adapter.cloud.threads.list();\n return {\n threads: threads.map((t) => ({\n status: t.is_archived ? \"archived\" : \"regular\",\n remoteId: t.id,\n title: t.title,\n externalId: t.external_id ?? undefined,\n })),\n };\n },\n rename: async (threadId, newTitle) => {\n return adapter.cloud.threads.update(threadId, { title: newTitle });\n },\n archive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: true });\n },\n unarchive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: false });\n },\n delete: async (threadId) => {\n await adapter.delete?.(threadId);\n return adapter.cloud.threads.delete(threadId);\n },\n onInitialize: (callback) => {\n return cloudContextValue.subscribe(callback);\n },\n __internal_RenderComponent: ({ children }: PropsWithChildren) => {\n console.log(\"RENDER COMPONENT\");\n return (\n <CloudContext.Provider value={cloudContextValue}>\n {children}\n </CloudContext.Provider>\n );\n },\n });\n\n return runtime;\n};\n"],"mappings":";;;AAGA,SAA4B,WAAW,SAAS,cAAc;AAC9D,SAAS,kCAAkC;AAE3C,SAAS,oBAA6C;AAqF9C;AAtED,IAAM,4BAA4B,CAAC,YAAoC;AAC5E,QAAM,aAAa,OAAO,OAAO;AACjC,YAAU,MAAM;AACd,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,oBAAoB,QAAQ,MAAM;AACtC,UAAM,cAAc,oBAAI,IAEtB;AACF,WAAO;AAAA,MACL,YAAY,YAAY;AACtB,cAAM,aAAa,WAAW,QAAQ,SAAS,KAAK,QAAQ,QAAQ;AACpE,cAAM,OAAO,WAAW,KAAK,OAAO,MAAM;AACxC,gBAAM,cAAc,IAAI,EAAE,aAAa;AACvC,gBAAM,EAAE,UAAU,IAAI,MAAM,WAAW,QAAQ,MAAM,QAAQ,OAAO;AAAA,YAClE,OAAO;AAAA,YACP,iBAAiB,oBAAI,KAAK;AAAA,YAC1B;AAAA,UACF,CAAC;AACD,iBAAO,EAAE,YAAY,aAAa,UAAU,UAAU;AAAA,QACxD,CAAC;AACD,mBAAW,cAAc,aAAa;AACpC,qBAAW,IAAI;AAAA,QACjB;AACA,eAAO;AAAA,MACT;AAAA,MACA,WAAW,CACT,aACG;AACH,oBAAY,IAAI,QAAQ;AACxB,eAAO,MAAM;AACX,sBAAY,OAAO,QAAQ;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,UAAU,2BAA2B;AAAA,IACzC,aAAa,QAAQ;AAAA,IACrB,MAAM,YAAY;AAChB,YAAM,EAAE,QAAQ,IAAI,MAAM,QAAQ,MAAM,QAAQ,KAAK;AACrD,aAAO;AAAA,QACL,SAAS,QAAQ,IAAI,CAAC,OAAO;AAAA,UAC3B,QAAQ,EAAE,cAAc,aAAa;AAAA,UACrC,UAAU,EAAE;AAAA,UACZ,OAAO,EAAE;AAAA,UACT,YAAY,EAAE,eAAe;AAAA,QAC/B,EAAE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,QAAQ,OAAO,UAAU,aAAa;AACpC,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,OAAO,SAAS,CAAC;AAAA,IACnE;AAAA,IACA,SAAS,OAAO,aAAa;AAC3B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,KAAK,CAAC;AAAA,IACrE;AAAA,IACA,WAAW,OAAO,aAAa;AAC7B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,MAAM,CAAC;AAAA,IACtE;AAAA,IACA,QAAQ,OAAO,aAAa;AAC1B,YAAM,QAAQ,SAAS,QAAQ;AAC/B,aAAO,QAAQ,MAAM,QAAQ,OAAO,QAAQ;AAAA,IAC9C;AAAA,IACA,cAAc,CAAC,aAAa;AAC1B,aAAO,kBAAkB,UAAU,QAAQ;AAAA,IAC7C;AAAA,IACA,4BAA4B,CAAC,EAAE,SAAS,MAAyB;AAC/D,cAAQ,IAAI,kBAAkB;AAC9B,aACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,mBAC3B,UACH;AAAA,IAEJ;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx"],"sourcesContent":["\"use client\";\n\nimport { AssistantRuntime } from \"@assistant-ui/react\";\nimport { PropsWithChildren, useEffect, useMemo, useRef } from \"react\";\nimport { useRemoteThreadListRuntime } from \"../useRemoteThreadListRuntime\";\nimport { AssistantCloud } from \"./AssistantCloud\";\nimport { CloudContext, CloudInitializeResponse } from \"./CloudContext\";\n\ntype ThreadData = {\n externalId: string;\n};\n\ntype CloudThreadListAdapter = {\n cloud: AssistantCloud;\n\n runtimeHook: () => AssistantRuntime;\n\n create?(): Promise<ThreadData>;\n delete?(threadId: string): Promise<void>;\n};\n\nexport const useCloudThreadListRuntime = (adapter: CloudThreadListAdapter) => {\n const adapterRef = useRef(adapter);\n useEffect(() => {\n adapterRef.current = adapter;\n }, [adapter]);\n\n const cloudContextValue = useMemo(() => {\n const subscribers = new Set<\n (result: Promise<CloudInitializeResponse>) => void\n >();\n return {\n initialize: async () => {\n const createTask = adapterRef.current.create?.() ?? Promise.resolve();\n const task = createTask.then(async (t) => {\n const external_id = t ? t.externalId : undefined;\n const { thread_id } = await adapterRef.current.cloud.threads.create({\n title: \"New Thread\",\n last_message_at: new Date(),\n external_id,\n });\n return { externalId: external_id, remoteId: thread_id };\n });\n for (const subscriber of subscribers) {\n subscriber(task);\n }\n return task;\n },\n subscribe: (\n callback: (result: Promise<CloudInitializeResponse>) => void,\n ) => {\n subscribers.add(callback);\n return () => {\n subscribers.delete(callback);\n };\n },\n };\n }, []);\n\n const runtime = useRemoteThreadListRuntime({\n runtimeHook: adapter.runtimeHook,\n list: async () => {\n const { threads } = await adapter.cloud.threads.list();\n return {\n threads: threads.map((t) => ({\n status: t.is_archived ? \"archived\" : \"regular\",\n remoteId: t.id,\n title: t.title,\n externalId: t.external_id ?? undefined,\n })),\n };\n },\n rename: async (threadId, newTitle) => {\n return adapter.cloud.threads.update(threadId, { title: newTitle });\n },\n archive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: true });\n },\n unarchive: async (threadId) => {\n return adapter.cloud.threads.update(threadId, { is_archived: false });\n },\n delete: async (threadId) => {\n await adapter.delete?.(threadId);\n return adapter.cloud.threads.delete(threadId);\n },\n onInitialize: (callback) => {\n return cloudContextValue.subscribe(callback);\n },\n unstable_Provider: ({ children }: PropsWithChildren) => {\n return (\n <CloudContext.Provider value={cloudContextValue}>\n {children}\n </CloudContext.Provider>\n );\n },\n });\n\n return runtime;\n};\n"],"mappings":";;;AAGA,SAA4B,WAAW,SAAS,cAAc;AAC9D,SAAS,kCAAkC;AAE3C,SAAS,oBAA6C;AAoF9C;AArED,IAAM,4BAA4B,CAAC,YAAoC;AAC5E,QAAM,aAAa,OAAO,OAAO;AACjC,YAAU,MAAM;AACd,eAAW,UAAU;AAAA,EACvB,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,oBAAoB,QAAQ,MAAM;AACtC,UAAM,cAAc,oBAAI,IAEtB;AACF,WAAO;AAAA,MACL,YAAY,YAAY;AACtB,cAAM,aAAa,WAAW,QAAQ,SAAS,KAAK,QAAQ,QAAQ;AACpE,cAAM,OAAO,WAAW,KAAK,OAAO,MAAM;AACxC,gBAAM,cAAc,IAAI,EAAE,aAAa;AACvC,gBAAM,EAAE,UAAU,IAAI,MAAM,WAAW,QAAQ,MAAM,QAAQ,OAAO;AAAA,YAClE,OAAO;AAAA,YACP,iBAAiB,oBAAI,KAAK;AAAA,YAC1B;AAAA,UACF,CAAC;AACD,iBAAO,EAAE,YAAY,aAAa,UAAU,UAAU;AAAA,QACxD,CAAC;AACD,mBAAW,cAAc,aAAa;AACpC,qBAAW,IAAI;AAAA,QACjB;AACA,eAAO;AAAA,MACT;AAAA,MACA,WAAW,CACT,aACG;AACH,oBAAY,IAAI,QAAQ;AACxB,eAAO,MAAM;AACX,sBAAY,OAAO,QAAQ;AAAA,QAC7B;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,UAAU,2BAA2B;AAAA,IACzC,aAAa,QAAQ;AAAA,IACrB,MAAM,YAAY;AAChB,YAAM,EAAE,QAAQ,IAAI,MAAM,QAAQ,MAAM,QAAQ,KAAK;AACrD,aAAO;AAAA,QACL,SAAS,QAAQ,IAAI,CAAC,OAAO;AAAA,UAC3B,QAAQ,EAAE,cAAc,aAAa;AAAA,UACrC,UAAU,EAAE;AAAA,UACZ,OAAO,EAAE;AAAA,UACT,YAAY,EAAE,eAAe;AAAA,QAC/B,EAAE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,QAAQ,OAAO,UAAU,aAAa;AACpC,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,OAAO,SAAS,CAAC;AAAA,IACnE;AAAA,IACA,SAAS,OAAO,aAAa;AAC3B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,KAAK,CAAC;AAAA,IACrE;AAAA,IACA,WAAW,OAAO,aAAa;AAC7B,aAAO,QAAQ,MAAM,QAAQ,OAAO,UAAU,EAAE,aAAa,MAAM,CAAC;AAAA,IACtE;AAAA,IACA,QAAQ,OAAO,aAAa;AAC1B,YAAM,QAAQ,SAAS,QAAQ;AAC/B,aAAO,QAAQ,MAAM,QAAQ,OAAO,QAAQ;AAAA,IAC9C;AAAA,IACA,cAAc,CAAC,aAAa;AAC1B,aAAO,kBAAkB,UAAU,QAAQ;AAAA,IAC7C;AAAA,IACA,mBAAmB,CAAC,EAAE,SAAS,MAAyB;AACtD,aACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,mBAC3B,UACH;AAAA,IAEJ;AAAA,EACF,CAAC;AAED,SAAO;AACT;","names":[]}
@@ -1,4 +1,4 @@
1
- import { FC, PropsWithChildren } from "react";
1
+ import { ComponentType, PropsWithChildren } from "react";
2
2
  import { AssistantRuntime } from "../../api";
3
3
  import { Unsubscribe } from "../../types";
4
4
  import { CloudInitializeResponse } from "./cloud/CloudContext";
@@ -20,6 +20,6 @@ export type RemoteThreadListAdapter = {
20
20
  unarchive(remoteId: string): Promise<void>;
21
21
  delete(remoteId: string): Promise<void>;
22
22
  onInitialize(callback: (task: Promise<CloudInitializeResponse>) => Promise<void>): Unsubscribe;
23
- __internal_RenderComponent?: FC<PropsWithChildren>;
23
+ unstable_Provider?: ComponentType<PropsWithChildren>;
24
24
  };
25
25
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtimes/remote-thread-list/types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,gBAAgB,CAAC;AAE1D,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,oBAAoB,CAAC;IAElC,IAAI,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE1C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,YAAY,CACV,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,uBAAuB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAClE,WAAW,CAAC;IAEf,0BAA0B,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC;CACpD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtimes/remote-thread-list/types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,oBAAoB,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,gBAAgB,CAAC;AAE1D,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,oBAAoB,CAAC;IAElC,IAAI,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE1C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,YAAY,CACV,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,uBAAuB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAClE,WAAW,CAAC;IAEf,iBAAiB,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CACtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/remote-thread-list/types.tsx"],"sourcesContent":["import { FC, PropsWithChildren } from \"react\";\nimport { AssistantRuntime } from \"../../api\";\nimport { Unsubscribe } from \"../../types\";\nimport { CloudInitializeResponse } from \"./cloud/CloudContext\";\n\nexport type RemoteThreadMetadata = {\n readonly status: \"regular\" | \"archived\";\n readonly remoteId: string;\n readonly externalId?: string | undefined;\n readonly title?: string | undefined;\n};\n\nexport type RemoteThreadListResponse = {\n threads: RemoteThreadMetadata[];\n};\n\nexport type RemoteThreadListHook = () => AssistantRuntime;\n\nexport type RemoteThreadListAdapter = {\n runtimeHook: RemoteThreadListHook;\n\n list(): Promise<RemoteThreadListResponse>;\n\n rename(remoteId: string, newTitle: string): Promise<void>;\n archive(remoteId: string): Promise<void>;\n unarchive(remoteId: string): Promise<void>;\n delete(remoteId: string): Promise<void>;\n\n onInitialize(\n callback: (task: Promise<CloudInitializeResponse>) => Promise<void>,\n ): Unsubscribe;\n\n __internal_RenderComponent?: FC<PropsWithChildren>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/remote-thread-list/types.tsx"],"sourcesContent":["import { ComponentType, PropsWithChildren } from \"react\";\nimport { AssistantRuntime } from \"../../api\";\nimport { Unsubscribe } from \"../../types\";\nimport { CloudInitializeResponse } from \"./cloud/CloudContext\";\n\nexport type RemoteThreadMetadata = {\n readonly status: \"regular\" | \"archived\";\n readonly remoteId: string;\n readonly externalId?: string | undefined;\n readonly title?: string | undefined;\n};\n\nexport type RemoteThreadListResponse = {\n threads: RemoteThreadMetadata[];\n};\n\nexport type RemoteThreadListHook = () => AssistantRuntime;\n\nexport type RemoteThreadListAdapter = {\n runtimeHook: RemoteThreadListHook;\n\n list(): Promise<RemoteThreadListResponse>;\n\n rename(remoteId: string, newTitle: string): Promise<void>;\n archive(remoteId: string): Promise<void>;\n unarchive(remoteId: string): Promise<void>;\n delete(remoteId: string): Promise<void>;\n\n onInitialize(\n callback: (task: Promise<CloudInitializeResponse>) => Promise<void>,\n ): Unsubscribe;\n\n unstable_Provider?: ComponentType<PropsWithChildren>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -33,8 +33,8 @@ var RemoteThreadListRuntimeCore = class extends import_BaseAssistantRuntimeCore.
33
33
  super();
34
34
  this.threadList = new import_RemoteThreadListThreadListRuntimeCore.RemoteThreadListThreadListRuntimeCore(adapter);
35
35
  }
36
- get __internal_RenderComponent() {
37
- return this.threadList.__internal_RenderComponent;
36
+ get Provider() {
37
+ return this.threadList.__internal_Provider;
38
38
  }
39
39
  };
40
40
  var useRemoteThreadListRuntime = (adapter) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/remote-thread-list/useRemoteThreadListRuntime.tsx"],"sourcesContent":["import { useState, useEffect, useMemo } from \"react\";\nimport { BaseAssistantRuntimeCore } from \"../core/BaseAssistantRuntimeCore\";\nimport { RemoteThreadListThreadListRuntimeCore } from \"./RemoteThreadListThreadListRuntimeCore\";\nimport { RemoteThreadListAdapter } from \"./types\";\nimport { AssistantRuntimeImpl } from \"../../internal\";\n\nclass RemoteThreadListRuntimeCore extends BaseAssistantRuntimeCore {\n public readonly threadList;\n\n constructor(adapter: RemoteThreadListAdapter) {\n super();\n this.threadList = new RemoteThreadListThreadListRuntimeCore(adapter);\n }\n\n public get __internal_RenderComponent() {\n return this.threadList.__internal_RenderComponent;\n }\n}\n\nexport const useRemoteThreadListRuntime = (\n adapter: RemoteThreadListAdapter,\n) => {\n const [runtime] = useState(() => new RemoteThreadListRuntimeCore(adapter));\n useEffect(() => {\n runtime.threadList.__internal_setAdapter(adapter);\n }, [runtime, adapter]);\n return useMemo(() => AssistantRuntimeImpl.create(runtime), [runtime]);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6C;AAC7C,sCAAyC;AACzC,mDAAsD;AAEtD,sBAAqC;AAErC,IAAM,8BAAN,cAA0C,yDAAyB;AAAA,EACjD;AAAA,EAEhB,YAAY,SAAkC;AAC5C,UAAM;AACN,SAAK,aAAa,IAAI,mFAAsC,OAAO;AAAA,EACrE;AAAA,EAEA,IAAW,6BAA6B;AACtC,WAAO,KAAK,WAAW;AAAA,EACzB;AACF;AAEO,IAAM,6BAA6B,CACxC,YACG;AACH,QAAM,CAAC,OAAO,QAAI,uBAAS,MAAM,IAAI,4BAA4B,OAAO,CAAC;AACzE,8BAAU,MAAM;AACd,YAAQ,WAAW,sBAAsB,OAAO;AAAA,EAClD,GAAG,CAAC,SAAS,OAAO,CAAC;AACrB,aAAO,sBAAQ,MAAM,qCAAqB,OAAO,OAAO,GAAG,CAAC,OAAO,CAAC;AACtE;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/remote-thread-list/useRemoteThreadListRuntime.tsx"],"sourcesContent":["import { useState, useEffect, useMemo } from \"react\";\nimport { BaseAssistantRuntimeCore } from \"../core/BaseAssistantRuntimeCore\";\nimport { RemoteThreadListThreadListRuntimeCore } from \"./RemoteThreadListThreadListRuntimeCore\";\nimport { RemoteThreadListAdapter } from \"./types\";\nimport { AssistantRuntimeImpl } from \"../../internal\";\n\nclass RemoteThreadListRuntimeCore extends BaseAssistantRuntimeCore {\n public readonly threadList;\n\n constructor(adapter: RemoteThreadListAdapter) {\n super();\n this.threadList = new RemoteThreadListThreadListRuntimeCore(adapter);\n }\n\n public get Provider() {\n return this.threadList.__internal_Provider;\n }\n}\n\nexport const useRemoteThreadListRuntime = (\n adapter: RemoteThreadListAdapter,\n) => {\n const [runtime] = useState(() => new RemoteThreadListRuntimeCore(adapter));\n useEffect(() => {\n runtime.threadList.__internal_setAdapter(adapter);\n }, [runtime, adapter]);\n return useMemo(() => AssistantRuntimeImpl.create(runtime), [runtime]);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA6C;AAC7C,sCAAyC;AACzC,mDAAsD;AAEtD,sBAAqC;AAErC,IAAM,8BAAN,cAA0C,yDAAyB;AAAA,EACjD;AAAA,EAEhB,YAAY,SAAkC;AAC5C,UAAM;AACN,SAAK,aAAa,IAAI,mFAAsC,OAAO;AAAA,EACrE;AAAA,EAEA,IAAW,WAAW;AACpB,WAAO,KAAK,WAAW;AAAA,EACzB;AACF;AAEO,IAAM,6BAA6B,CACxC,YACG;AACH,QAAM,CAAC,OAAO,QAAI,uBAAS,MAAM,IAAI,4BAA4B,OAAO,CAAC;AACzE,8BAAU,MAAM;AACd,YAAQ,WAAW,sBAAsB,OAAO;AAAA,EAClD,GAAG,CAAC,SAAS,OAAO,CAAC;AACrB,aAAO,sBAAQ,MAAM,qCAAqB,OAAO,OAAO,GAAG,CAAC,OAAO,CAAC;AACtE;","names":[]}
@@ -9,8 +9,8 @@ var RemoteThreadListRuntimeCore = class extends BaseAssistantRuntimeCore {
9
9
  super();
10
10
  this.threadList = new RemoteThreadListThreadListRuntimeCore(adapter);
11
11
  }
12
- get __internal_RenderComponent() {
13
- return this.threadList.__internal_RenderComponent;
12
+ get Provider() {
13
+ return this.threadList.__internal_Provider;
14
14
  }
15
15
  };
16
16
  var useRemoteThreadListRuntime = (adapter) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/runtimes/remote-thread-list/useRemoteThreadListRuntime.tsx"],"sourcesContent":["import { useState, useEffect, useMemo } from \"react\";\nimport { BaseAssistantRuntimeCore } from \"../core/BaseAssistantRuntimeCore\";\nimport { RemoteThreadListThreadListRuntimeCore } from \"./RemoteThreadListThreadListRuntimeCore\";\nimport { RemoteThreadListAdapter } from \"./types\";\nimport { AssistantRuntimeImpl } from \"../../internal\";\n\nclass RemoteThreadListRuntimeCore extends BaseAssistantRuntimeCore {\n public readonly threadList;\n\n constructor(adapter: RemoteThreadListAdapter) {\n super();\n this.threadList = new RemoteThreadListThreadListRuntimeCore(adapter);\n }\n\n public get __internal_RenderComponent() {\n return this.threadList.__internal_RenderComponent;\n }\n}\n\nexport const useRemoteThreadListRuntime = (\n adapter: RemoteThreadListAdapter,\n) => {\n const [runtime] = useState(() => new RemoteThreadListRuntimeCore(adapter));\n useEffect(() => {\n runtime.threadList.__internal_setAdapter(adapter);\n }, [runtime, adapter]);\n return useMemo(() => AssistantRuntimeImpl.create(runtime), [runtime]);\n};\n"],"mappings":";AAAA,SAAS,UAAU,WAAW,eAAe;AAC7C,SAAS,gCAAgC;AACzC,SAAS,6CAA6C;AAEtD,SAAS,4BAA4B;AAErC,IAAM,8BAAN,cAA0C,yBAAyB;AAAA,EACjD;AAAA,EAEhB,YAAY,SAAkC;AAC5C,UAAM;AACN,SAAK,aAAa,IAAI,sCAAsC,OAAO;AAAA,EACrE;AAAA,EAEA,IAAW,6BAA6B;AACtC,WAAO,KAAK,WAAW;AAAA,EACzB;AACF;AAEO,IAAM,6BAA6B,CACxC,YACG;AACH,QAAM,CAAC,OAAO,IAAI,SAAS,MAAM,IAAI,4BAA4B,OAAO,CAAC;AACzE,YAAU,MAAM;AACd,YAAQ,WAAW,sBAAsB,OAAO;AAAA,EAClD,GAAG,CAAC,SAAS,OAAO,CAAC;AACrB,SAAO,QAAQ,MAAM,qBAAqB,OAAO,OAAO,GAAG,CAAC,OAAO,CAAC;AACtE;","names":[]}
1
+ {"version":3,"sources":["../../../src/runtimes/remote-thread-list/useRemoteThreadListRuntime.tsx"],"sourcesContent":["import { useState, useEffect, useMemo } from \"react\";\nimport { BaseAssistantRuntimeCore } from \"../core/BaseAssistantRuntimeCore\";\nimport { RemoteThreadListThreadListRuntimeCore } from \"./RemoteThreadListThreadListRuntimeCore\";\nimport { RemoteThreadListAdapter } from \"./types\";\nimport { AssistantRuntimeImpl } from \"../../internal\";\n\nclass RemoteThreadListRuntimeCore extends BaseAssistantRuntimeCore {\n public readonly threadList;\n\n constructor(adapter: RemoteThreadListAdapter) {\n super();\n this.threadList = new RemoteThreadListThreadListRuntimeCore(adapter);\n }\n\n public get Provider() {\n return this.threadList.__internal_Provider;\n }\n}\n\nexport const useRemoteThreadListRuntime = (\n adapter: RemoteThreadListAdapter,\n) => {\n const [runtime] = useState(() => new RemoteThreadListRuntimeCore(adapter));\n useEffect(() => {\n runtime.threadList.__internal_setAdapter(adapter);\n }, [runtime, adapter]);\n return useMemo(() => AssistantRuntimeImpl.create(runtime), [runtime]);\n};\n"],"mappings":";AAAA,SAAS,UAAU,WAAW,eAAe;AAC7C,SAAS,gCAAgC;AACzC,SAAS,6CAA6C;AAEtD,SAAS,4BAA4B;AAErC,IAAM,8BAAN,cAA0C,yBAAyB;AAAA,EACjD;AAAA,EAEhB,YAAY,SAAkC;AAC5C,UAAM;AACN,SAAK,aAAa,IAAI,sCAAsC,OAAO;AAAA,EACrE;AAAA,EAEA,IAAW,WAAW;AACpB,WAAO,KAAK,WAAW;AAAA,EACzB;AACF;AAEO,IAAM,6BAA6B,CACxC,YACG;AACH,QAAM,CAAC,OAAO,IAAI,SAAS,MAAM,IAAI,4BAA4B,OAAO,CAAC;AACzE,YAAU,MAAM;AACd,YAAQ,WAAW,sBAAsB,OAAO;AAAA,EAClD,GAAG,CAAC,SAAS,OAAO,CAAC;AACrB,SAAO,QAAQ,MAAM,qBAAqB,OAAO,OAAO,GAAG,CAAC,OAAO,CAAC;AACtE;","names":[]}
@@ -606,7 +606,7 @@
606
606
  margin-top: 0.75rem;
607
607
  display: flex;
608
608
  width: 100%;
609
- max-width: 42rem;
609
+ max-width: var(--aui-thread-max-width);
610
610
  flex-direction: column;
611
611
  align-items: center;
612
612
  justify-content: flex-end;
@@ -658,7 +658,7 @@
658
658
  .aui-thread-welcome-root {
659
659
  display: flex;
660
660
  width: 100%;
661
- max-width: 42rem;
661
+ max-width: var(--aui-thread-max-width);
662
662
  flex-grow: 1;
663
663
  flex-direction: column;
664
664
  }
@@ -890,7 +890,7 @@
890
890
  }
891
891
  .aui-user-message-root {
892
892
  width: 100%;
893
- max-width: 42rem;
893
+ max-width: var(--aui-thread-max-width);
894
894
  padding-top: 1rem;
895
895
  padding-bottom: 1rem;
896
896
  }
@@ -918,7 +918,7 @@
918
918
  justify-content: flex-end;
919
919
  }
920
920
  .aui-user-message-content {
921
- max-width: 36rem;
921
+ max-width: calc(var(--aui-thread-max-width) * 0.8);
922
922
  overflow-wrap: break-word;
923
923
  border-radius: 1.5rem;
924
924
  background-color: hsl(var(--aui-muted));
@@ -944,7 +944,7 @@
944
944
  margin-bottom: 1rem;
945
945
  display: flex;
946
946
  width: 100%;
947
- max-width: 42rem;
947
+ max-width: var(--aui-thread-max-width);
948
948
  flex-direction: column;
949
949
  gap: 0.5rem;
950
950
  border-radius: 0.75rem;
@@ -978,7 +978,7 @@
978
978
  grid-template-rows: auto 1fr;
979
979
  position: relative;
980
980
  width: 100%;
981
- max-width: 42rem;
981
+ max-width: var(--aui-thread-max-width);
982
982
  padding-top: 1rem;
983
983
  padding-bottom: 1rem;
984
984
  }
@@ -1007,7 +1007,7 @@
1007
1007
  margin-bottom: 0.375rem;
1008
1008
  }
1009
1009
  .aui-assistant-message-content {
1010
- max-width: 36rem;
1010
+ max-width: calc(var(--aui-thread-max-width) * 0.8);
1011
1011
  overflow-wrap: break-word;
1012
1012
  line-height: 1.75rem;
1013
1013
  color: hsl(var(--aui-foreground));
@@ -1204,6 +1204,7 @@
1204
1204
  --aui-input: 240 5.9% 90%;
1205
1205
  --aui-ring: 240 10% 3.9%;
1206
1206
  --aui-radius: 0.5rem;
1207
+ --aui-thread-max-width: 42rem;
1207
1208
  }
1208
1209
  .dark {
1209
1210
  --aui-background: 0 0% 7%;