@assistant-ui/core 0.2.7 → 0.2.8

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.
Files changed (149) hide show
  1. package/dist/adapters/attachment.d.ts.map +1 -1
  2. package/dist/adapters/speech.d.ts.map +1 -1
  3. package/dist/adapters/speech.js.map +1 -1
  4. package/dist/index.d.ts +2 -1
  5. package/dist/index.js +2 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/internal/duplicate-detection.d.ts.map +1 -1
  8. package/dist/internal.d.ts +2 -2
  9. package/dist/internal.js +2 -2
  10. package/dist/model-context/frame/host.d.ts.map +1 -1
  11. package/dist/model-context/frame/host.js.map +1 -1
  12. package/dist/model-context/frame/provider.d.ts.map +1 -1
  13. package/dist/model-context/frame/provider.js.map +1 -1
  14. package/dist/model-context/registry.d.ts.map +1 -1
  15. package/dist/model-context/tool.d.ts.map +1 -1
  16. package/dist/react/client/Interactables.js.map +1 -1
  17. package/dist/react/client/Tools.d.ts.map +1 -1
  18. package/dist/react/client/Tools.js +26 -15
  19. package/dist/react/client/Tools.js.map +1 -1
  20. package/dist/react/index.d.ts +4 -3
  21. package/dist/react/index.js +2 -1
  22. package/dist/react/model-context/toolbox.d.ts +29 -2
  23. package/dist/react/model-context/toolbox.d.ts.map +1 -1
  24. package/dist/react/model-context/toolbox.js +18 -0
  25. package/dist/react/model-context/toolbox.js.map +1 -0
  26. package/dist/react/model-context/useAssistantTool.d.ts.map +1 -1
  27. package/dist/react/model-context/useAssistantTool.js +6 -3
  28. package/dist/react/model-context/useAssistantTool.js.map +1 -1
  29. package/dist/react/model-context/useAssistantToolUI.d.ts +6 -0
  30. package/dist/react/model-context/useAssistantToolUI.d.ts.map +1 -1
  31. package/dist/react/model-context/useAssistantToolUI.js +4 -2
  32. package/dist/react/model-context/useAssistantToolUI.js.map +1 -1
  33. package/dist/react/model-context/useInlineRender.js.map +1 -1
  34. package/dist/react/primitives/message/MessageGroupedParts.d.ts +49 -7
  35. package/dist/react/primitives/message/MessageGroupedParts.d.ts.map +1 -1
  36. package/dist/react/primitives/message/MessageGroupedParts.js +28 -3
  37. package/dist/react/primitives/message/MessageGroupedParts.js.map +1 -1
  38. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  39. package/dist/react/primitives/message/MessageParts.js +2 -7
  40. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  41. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  42. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  43. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -1
  44. package/dist/react/runtimes/RuntimeAdapterProvider.js +6 -5
  45. package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -1
  46. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -1
  47. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -1
  48. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -1
  49. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -1
  50. package/dist/react/runtimes/external-message-converter.js +1 -0
  51. package/dist/react/runtimes/external-message-converter.js.map +1 -1
  52. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts +7 -0
  53. package/dist/react/runtimes/useExternalStoreSharedOptions.d.ts.map +1 -0
  54. package/dist/react/runtimes/useExternalStoreSharedOptions.js +21 -0
  55. package/dist/react/runtimes/useExternalStoreSharedOptions.js.map +1 -0
  56. package/dist/react/runtimes/useLocalRuntime.d.ts.map +1 -1
  57. package/dist/react/runtimes/useLocalRuntime.js.map +1 -1
  58. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  59. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  60. package/dist/react/types/scopes/tools.d.ts +19 -2
  61. package/dist/react/types/scopes/tools.d.ts.map +1 -1
  62. package/dist/react/utils/groupParts.d.ts +32 -11
  63. package/dist/react/utils/groupParts.d.ts.map +1 -1
  64. package/dist/react/utils/groupParts.js +13 -6
  65. package/dist/react/utils/groupParts.js.map +1 -1
  66. package/dist/runtime/api/assistant-runtime.d.ts.map +1 -1
  67. package/dist/runtime/api/attachment-runtime.d.ts.map +1 -1
  68. package/dist/runtime/api/composer-runtime.d.ts.map +1 -1
  69. package/dist/runtime/api/message-part-runtime.d.ts.map +1 -1
  70. package/dist/runtime/api/message-runtime.d.ts.map +1 -1
  71. package/dist/runtime/api/thread-list-item-runtime.d.ts.map +1 -1
  72. package/dist/runtime/api/thread-list-runtime.d.ts.map +1 -1
  73. package/dist/runtime/api/thread-runtime.d.ts.map +1 -1
  74. package/dist/runtime/base/base-assistant-runtime-core.d.ts.map +1 -1
  75. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  76. package/dist/runtime/base/base-thread-runtime-core.d.ts.map +1 -1
  77. package/dist/runtime/base/default-edit-composer-runtime-core.d.ts.map +1 -1
  78. package/dist/runtime/base/default-thread-composer-runtime-core.d.ts.map +1 -1
  79. package/dist/runtime/utils/message-repository.d.ts +9 -1
  80. package/dist/runtime/utils/message-repository.d.ts.map +1 -1
  81. package/dist/runtime/utils/message-repository.js +34 -14
  82. package/dist/runtime/utils/message-repository.js.map +1 -1
  83. package/dist/runtime/utils/thread-message-like.d.ts +1 -0
  84. package/dist/runtime/utils/thread-message-like.d.ts.map +1 -1
  85. package/dist/runtime/utils/thread-message-like.js +2 -1
  86. package/dist/runtime/utils/thread-message-like.js.map +1 -1
  87. package/dist/runtimes/external-store/external-store-shared-options.d.ts +8 -0
  88. package/dist/runtimes/external-store/external-store-shared-options.d.ts.map +1 -0
  89. package/dist/runtimes/external-store/external-store-shared-options.js +11 -0
  90. package/dist/runtimes/external-store/external-store-shared-options.js.map +1 -0
  91. package/dist/runtimes/external-store/external-store-thread-list-runtime-core.d.ts.map +1 -1
  92. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts +0 -2
  93. package/dist/runtimes/external-store/external-store-thread-runtime-core.d.ts.map +1 -1
  94. package/dist/runtimes/external-store/external-store-thread-runtime-core.js +12 -23
  95. package/dist/runtimes/external-store/external-store-thread-runtime-core.js.map +1 -1
  96. package/dist/runtimes/external-store/thread-message-converter.d.ts.map +1 -1
  97. package/dist/runtimes/local/local-thread-list-runtime-core.d.ts.map +1 -1
  98. package/dist/runtimes/local/local-thread-runtime-core.d.ts.map +1 -1
  99. package/dist/runtimes/readonly/ReadonlyThreadRuntimeCore.d.ts.map +1 -1
  100. package/dist/runtimes/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  101. package/dist/runtimes/remote-thread-list/optimistic-state.d.ts.map +1 -1
  102. package/dist/runtimes/tool-invocations/ToolInvocationTracker.d.ts.map +1 -1
  103. package/dist/runtimes/tool-invocations/ToolInvocationTracker.js.map +1 -1
  104. package/dist/subscribable/subscribable.d.ts.map +1 -1
  105. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
  106. package/dist/types/message.d.ts +6 -0
  107. package/dist/types/message.d.ts.map +1 -1
  108. package/dist/types/message.js.map +1 -1
  109. package/dist/utils/composite-context-provider.d.ts.map +1 -1
  110. package/dist/utils/id.d.ts +1 -3
  111. package/dist/utils/id.d.ts.map +1 -1
  112. package/dist/utils/id.js +1 -4
  113. package/dist/utils/id.js.map +1 -1
  114. package/package.json +10 -10
  115. package/src/adapters/speech.ts +0 -1
  116. package/src/index.ts +2 -0
  117. package/src/internal.ts +0 -2
  118. package/src/model-context/frame/host.ts +0 -1
  119. package/src/model-context/frame/provider.ts +0 -1
  120. package/src/react/client/Interactables.ts +0 -1
  121. package/src/react/client/Tools.ts +50 -25
  122. package/src/react/index.ts +8 -2
  123. package/src/react/model-context/toolbox.ts +46 -1
  124. package/src/react/model-context/useAssistantTool.ts +8 -3
  125. package/src/react/model-context/useAssistantToolUI.ts +9 -2
  126. package/src/react/model-context/useInlineRender.ts +0 -1
  127. package/src/react/primitives/message/MessageGroupedParts.tsx +101 -12
  128. package/src/react/primitives/message/MessageParts.tsx +4 -7
  129. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +0 -3
  130. package/src/react/runtimes/RuntimeAdapterProvider.tsx +12 -7
  131. package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +0 -3
  132. package/src/react/runtimes/external-message-converter.ts +4 -0
  133. package/src/react/runtimes/useExternalStoreSharedOptions.ts +23 -0
  134. package/src/react/runtimes/useLocalRuntime.ts +0 -10
  135. package/src/react/runtimes/useRemoteThreadListRuntime.ts +0 -6
  136. package/src/react/types/scopes/tools.ts +20 -1
  137. package/src/react/utils/groupParts.ts +49 -18
  138. package/src/runtime/utils/message-repository.ts +57 -16
  139. package/src/runtime/utils/thread-message-like.ts +2 -0
  140. package/src/runtimes/external-store/external-store-shared-options.ts +18 -0
  141. package/src/runtimes/external-store/external-store-thread-runtime-core.ts +18 -33
  142. package/src/runtimes/tool-invocations/ToolInvocationTracker.ts +0 -1
  143. package/src/tests/MessageRepository.test.ts +83 -52
  144. package/src/tests/OptimisticState-list-race.test.ts +0 -4
  145. package/src/tests/external-store-thread-runtime-core.test.ts +105 -73
  146. package/src/tests/groupParts.test.ts +70 -0
  147. package/src/tests/remote-thread-list-isLoading.test.ts +0 -5
  148. package/src/types/message.ts +6 -0
  149. package/src/utils/id.ts +0 -4
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ //#region src/react/runtimes/useExternalStoreSharedOptions.ts
4
+ const useExternalStoreSharedOptions = (options) => {
5
+ const { isDisabled, isSendDisabled, unstable_capabilities, suggestions } = options;
6
+ return useMemo(() => ({
7
+ isDisabled,
8
+ isSendDisabled,
9
+ unstable_capabilities,
10
+ suggestions
11
+ }), [
12
+ isDisabled,
13
+ isSendDisabled,
14
+ unstable_capabilities,
15
+ suggestions
16
+ ]);
17
+ };
18
+ //#endregion
19
+ export { useExternalStoreSharedOptions };
20
+
21
+ //# sourceMappingURL=useExternalStoreSharedOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useExternalStoreSharedOptions.js","names":[],"sources":["../../../src/react/runtimes/useExternalStoreSharedOptions.ts"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport type { ExternalStoreSharedOptions } from \"../../runtimes/external-store/external-store-shared-options\";\n\nexport const useExternalStoreSharedOptions = (\n options: ExternalStoreSharedOptions,\n): ExternalStoreSharedOptions => {\n const { isDisabled, isSendDisabled, unstable_capabilities, suggestions } =\n options;\n return useMemo(\n () =>\n ({\n isDisabled,\n isSendDisabled,\n unstable_capabilities,\n suggestions,\n }) satisfies {\n [K in keyof Required<ExternalStoreSharedOptions>]: ExternalStoreSharedOptions[K];\n },\n [isDisabled, isSendDisabled, unstable_capabilities, suggestions],\n );\n};\n"],"mappings":";;;AAKA,MAAa,iCACX,YAC+B;CAC/B,MAAM,EAAE,YAAY,gBAAgB,uBAAuB,gBACzD;CACF,OAAO,eAEF;EACC;EACA;EACA;EACA;CACF,IAGF;EAAC;EAAY;EAAgB;EAAuB;CAAW,CACjE;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"mappings":";;;;;;;;;;;;;KAcY,mBAAA,GAAsB,IAAA,CAAK,uBAAA;EACrC,KAAA,GAAQ,cAAA;EACR,eAAA,YAA2B,iBAAA;EAC3B,QAAA,GAAW,IAAA,CAAK,uBAAA;AAAA;AAAA,cAwDL,wBAAA,aAAsC,mBAAA,EACjD,OAAA,EAAS,CAAA;;;;;;;;;;;;;;;;;;;cAuBE,eAAA,GACX,SAAA,EAAW,gBAAA;EACX,KAAA;EAAA,GAAA;AAAA,IAAuB,mBAAA,KACtB,gBAAA"}
1
+ {"version":3,"file":"useLocalRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"mappings":";;;;;;;;;;;;;KAcY,mBAAA,GAAsB,IAAA,CAAK,uBAAA;EACrC,KAAA,GAAQ,cAAA;EACR,eAAA,YAA2B,iBAAA;EAC3B,QAAA,GAAW,IAAA,CAAK,uBAAA;AAAA;AAAA,cA+CL,wBAAA,aAAsC,mBAAA,EACjD,OAAA,EAAS,CAAA;;;;;;;;;;;;;;;;;;;cAuBE,eAAA,GACX,SAAA,EAAW,gBAAA;EACX,KAAA;EAAA,GAAA;AAAA,IAAuB,mBAAA,KACtB,gBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalRuntime.js","names":[],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport type {\n AssistantRuntime,\n ChatModelAdapter,\n ThreadMessageLike,\n} from \"../../index\";\nimport type { LocalRuntimeOptionsBase } from \"../../runtimes/local/local-runtime-options\";\nimport { AssistantRuntimeImpl, LocalRuntimeCore } from \"../../internal\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useRemoteThreadListRuntime } from \"./useRemoteThreadListRuntime\";\nimport { useCloudThreadListAdapter } from \"./cloud/useCloudThreadListAdapter\";\nimport { useRuntimeAdapters } from \"./RuntimeAdapterProvider\";\nimport type { AssistantCloud } from \"assistant-cloud\";\n\nexport type LocalRuntimeOptions = Omit<LocalRuntimeOptionsBase, \"adapters\"> & {\n cloud?: AssistantCloud | undefined;\n initialMessages?: readonly ThreadMessageLike[] | undefined;\n adapters?: Omit<LocalRuntimeOptionsBase[\"adapters\"], \"chatModel\"> | undefined;\n};\n\nconst useLocalThreadRuntime = (\n chatModel: ChatModelAdapter,\n { initialMessages, ...options }: LocalRuntimeOptions,\n): AssistantRuntime => {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const { modelContext, ...threadListAdapters } = useRuntimeAdapters() ?? {};\n const opt = {\n ...options,\n adapters: {\n ...threadListAdapters,\n ...options.adapters,\n chatModel,\n },\n };\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const [runtime] = useState(() => new LocalRuntimeCore(opt, initialMessages));\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const threadIdRef = useRef<string | undefined>(undefined);\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n threadIdRef.current = useAuiState((s) => s.threadListItem.remoteId);\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n useEffect(() => {\n runtime.threads\n .getMainThreadRuntimeCore()\n .__internal_setGetThreadId(() => threadIdRef.current);\n }, [runtime]);\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n useEffect(() => {\n return () => {\n runtime.threads.getMainThreadRuntimeCore().detach();\n };\n }, [runtime]);\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n useEffect(() => {\n runtime.threads.getMainThreadRuntimeCore().__internal_setOptions(opt);\n runtime.threads.getMainThreadRuntimeCore().__internal_load();\n });\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n useEffect(() => {\n if (!modelContext) return undefined;\n return runtime.registerModelContextProvider(modelContext);\n }, [modelContext, runtime]);\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n\nexport const splitLocalRuntimeOptions = <T extends LocalRuntimeOptions>(\n options: T,\n) => {\n const {\n cloud,\n initialMessages,\n maxSteps,\n adapters,\n unstable_humanToolNames,\n ...rest\n } = options;\n\n return {\n localRuntimeOptions: {\n cloud,\n initialMessages,\n maxSteps,\n adapters,\n unstable_humanToolNames,\n },\n otherOptions: rest,\n };\n};\n\nexport const useLocalRuntime = (\n chatModel: ChatModelAdapter,\n { cloud, ...options }: LocalRuntimeOptions = {},\n): AssistantRuntime => {\n const cloudAdapter = useCloudThreadListAdapter({ cloud });\n return useRemoteThreadListRuntime({\n runtimeHook: function RuntimeHook() {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n return useLocalThreadRuntime(chatModel, options);\n },\n adapter: cloudAdapter,\n allowNesting: true,\n });\n};\n"],"mappings":";;;;;;;;AAoBA,MAAM,yBACJ,WACA,EAAE,iBAAiB,GAAG,cACD;CAErB,MAAM,EAAE,cAAc,GAAG,uBAAuB,mBAAmB,KAAK,CAAC;CACzE,MAAM,MAAM;EACV,GAAG;EACH,UAAU;GACR,GAAG;GACH,GAAG,QAAQ;GACX;EACF;CACF;CAGA,MAAM,CAAC,WAAW,eAAe,IAAI,iBAAiB,KAAK,eAAe,CAAC;CAG3E,MAAM,cAAc,OAA2B,KAAA,CAAS;CAExD,YAAY,UAAU,aAAa,MAAM,EAAE,eAAe,QAAQ;CAGlE,gBAAgB;EACd,QAAQ,QACL,yBAAyB,EACzB,gCAAgC,YAAY,OAAO;CACxD,GAAG,CAAC,OAAO,CAAC;CAGZ,gBAAgB;EACd,aAAa;GACX,QAAQ,QAAQ,yBAAyB,EAAE,OAAO;EACpD;CACF,GAAG,CAAC,OAAO,CAAC;CAGZ,gBAAgB;EACd,QAAQ,QAAQ,yBAAyB,EAAE,sBAAsB,GAAG;EACpE,QAAQ,QAAQ,yBAAyB,EAAE,gBAAgB;CAC7D,CAAC;CAGD,gBAAgB;EACd,IAAI,CAAC,cAAc,OAAO,KAAA;EAC1B,OAAO,QAAQ,6BAA6B,YAAY;CAC1D,GAAG,CAAC,cAAc,OAAO,CAAC;CAG1B,OAAO,cAAc,IAAI,qBAAqB,OAAO,GAAG,CAAC,OAAO,CAAC;AACnE;AAEA,MAAa,4BACX,YACG;CACH,MAAM,EACJ,OACA,iBACA,UACA,UACA,yBACA,GAAG,SACD;CAEJ,OAAO;EACL,qBAAqB;GACnB;GACA;GACA;GACA;GACA;EACF;EACA,cAAc;CAChB;AACF;AAEA,MAAa,mBACX,WACA,EAAE,OAAO,GAAG,YAAiC,CAAC,MACzB;CAErB,OAAO,2BAA2B;EAChC,aAAa,SAAS,cAAc;GAElC,OAAO,sBAAsB,WAAW,OAAO;EACjD;EACA,SANmB,0BAA0B,EAAE,MAAM,CAMjC;EACpB,cAAc;CAChB,CAAC;AACH"}
1
+ {"version":3,"file":"useLocalRuntime.js","names":[],"sources":["../../../src/react/runtimes/useLocalRuntime.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from \"react\";\nimport type {\n AssistantRuntime,\n ChatModelAdapter,\n ThreadMessageLike,\n} from \"../../index\";\nimport type { LocalRuntimeOptionsBase } from \"../../runtimes/local/local-runtime-options\";\nimport { AssistantRuntimeImpl, LocalRuntimeCore } from \"../../internal\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport { useRemoteThreadListRuntime } from \"./useRemoteThreadListRuntime\";\nimport { useCloudThreadListAdapter } from \"./cloud/useCloudThreadListAdapter\";\nimport { useRuntimeAdapters } from \"./RuntimeAdapterProvider\";\nimport type { AssistantCloud } from \"assistant-cloud\";\n\nexport type LocalRuntimeOptions = Omit<LocalRuntimeOptionsBase, \"adapters\"> & {\n cloud?: AssistantCloud | undefined;\n initialMessages?: readonly ThreadMessageLike[] | undefined;\n adapters?: Omit<LocalRuntimeOptionsBase[\"adapters\"], \"chatModel\"> | undefined;\n};\n\nconst useLocalThreadRuntime = (\n chatModel: ChatModelAdapter,\n { initialMessages, ...options }: LocalRuntimeOptions,\n): AssistantRuntime => {\n const { modelContext, ...threadListAdapters } = useRuntimeAdapters() ?? {};\n const opt = {\n ...options,\n adapters: {\n ...threadListAdapters,\n ...options.adapters,\n chatModel,\n },\n };\n\n const [runtime] = useState(() => new LocalRuntimeCore(opt, initialMessages));\n\n const threadIdRef = useRef<string | undefined>(undefined);\n threadIdRef.current = useAuiState((s) => s.threadListItem.remoteId);\n\n useEffect(() => {\n runtime.threads\n .getMainThreadRuntimeCore()\n .__internal_setGetThreadId(() => threadIdRef.current);\n }, [runtime]);\n\n useEffect(() => {\n return () => {\n runtime.threads.getMainThreadRuntimeCore().detach();\n };\n }, [runtime]);\n\n useEffect(() => {\n runtime.threads.getMainThreadRuntimeCore().__internal_setOptions(opt);\n runtime.threads.getMainThreadRuntimeCore().__internal_load();\n });\n\n useEffect(() => {\n if (!modelContext) return undefined;\n return runtime.registerModelContextProvider(modelContext);\n }, [modelContext, runtime]);\n\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n\nexport const splitLocalRuntimeOptions = <T extends LocalRuntimeOptions>(\n options: T,\n) => {\n const {\n cloud,\n initialMessages,\n maxSteps,\n adapters,\n unstable_humanToolNames,\n ...rest\n } = options;\n\n return {\n localRuntimeOptions: {\n cloud,\n initialMessages,\n maxSteps,\n adapters,\n unstable_humanToolNames,\n },\n otherOptions: rest,\n };\n};\n\nexport const useLocalRuntime = (\n chatModel: ChatModelAdapter,\n { cloud, ...options }: LocalRuntimeOptions = {},\n): AssistantRuntime => {\n const cloudAdapter = useCloudThreadListAdapter({ cloud });\n return useRemoteThreadListRuntime({\n runtimeHook: function RuntimeHook() {\n return useLocalThreadRuntime(chatModel, options);\n },\n adapter: cloudAdapter,\n allowNesting: true,\n });\n};\n"],"mappings":";;;;;;;;AAoBA,MAAM,yBACJ,WACA,EAAE,iBAAiB,GAAG,cACD;CACrB,MAAM,EAAE,cAAc,GAAG,uBAAuB,mBAAmB,KAAK,CAAC;CACzE,MAAM,MAAM;EACV,GAAG;EACH,UAAU;GACR,GAAG;GACH,GAAG,QAAQ;GACX;EACF;CACF;CAEA,MAAM,CAAC,WAAW,eAAe,IAAI,iBAAiB,KAAK,eAAe,CAAC;CAE3E,MAAM,cAAc,OAA2B,KAAA,CAAS;CACxD,YAAY,UAAU,aAAa,MAAM,EAAE,eAAe,QAAQ;CAElE,gBAAgB;EACd,QAAQ,QACL,yBAAyB,EACzB,gCAAgC,YAAY,OAAO;CACxD,GAAG,CAAC,OAAO,CAAC;CAEZ,gBAAgB;EACd,aAAa;GACX,QAAQ,QAAQ,yBAAyB,EAAE,OAAO;EACpD;CACF,GAAG,CAAC,OAAO,CAAC;CAEZ,gBAAgB;EACd,QAAQ,QAAQ,yBAAyB,EAAE,sBAAsB,GAAG;EACpE,QAAQ,QAAQ,yBAAyB,EAAE,gBAAgB;CAC7D,CAAC;CAED,gBAAgB;EACd,IAAI,CAAC,cAAc,OAAO,KAAA;EAC1B,OAAO,QAAQ,6BAA6B,YAAY;CAC1D,GAAG,CAAC,cAAc,OAAO,CAAC;CAE1B,OAAO,cAAc,IAAI,qBAAqB,OAAO,GAAG,CAAC,OAAO,CAAC;AACnE;AAEA,MAAa,4BACX,YACG;CACH,MAAM,EACJ,OACA,iBACA,UACA,UACA,yBACA,GAAG,SACD;CAEJ,OAAO;EACL,qBAAqB;GACnB;GACA;GACA;GACA;GACA;EACF;EACA,cAAc;CAChB;AACF;AAEA,MAAa,mBACX,WACA,EAAE,OAAO,GAAG,YAAiC,CAAC,MACzB;CAErB,OAAO,2BAA2B;EAChC,aAAa,SAAS,cAAc;GAClC,OAAO,sBAAsB,WAAW,OAAO;EACjD;EACA,SALmB,0BAA0B,EAAE,MAAM,CAKjC;EACpB,cAAc;CAChB,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRemoteThreadListRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"mappings":";;;;cA2Ca,0BAAA,GACX,OAAA,EAAS,uBAAA,KACR,gBAsDF"}
1
+ {"version":3,"file":"useRemoteThreadListRuntime.d.ts","names":[],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"mappings":";;;;cAwCa,0BAAA,GACX,OAAA,EAAS,uBAAA,KACR,gBAmDF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRemoteThreadListRuntime.js","names":[],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"sourcesContent":["import { useState, useEffect, useMemo, useRef, useCallback } from \"react\";\nimport { BaseAssistantRuntimeCore } from \"../../runtime/base/base-assistant-runtime-core\";\nimport { AssistantRuntimeImpl } from \"../../runtime/api/assistant-runtime\";\nimport type { RemoteThreadListOptions } from \"../../runtimes/remote-thread-list/types\";\nimport type { AssistantRuntimeCore } from \"../../runtime/interfaces/assistant-runtime-core\";\nimport type { AssistantRuntime } from \"../../runtime/api/assistant-runtime\";\nimport { RemoteThreadListThreadListRuntimeCore } from \"./RemoteThreadListThreadListRuntimeCore\";\nimport { useAui } from \"@assistant-ui/store\";\n\nclass RemoteThreadListRuntimeCore\n extends BaseAssistantRuntimeCore\n implements AssistantRuntimeCore\n{\n public readonly threads;\n\n constructor(options: RemoteThreadListOptions) {\n super();\n this.threads = new RemoteThreadListThreadListRuntimeCore(\n options,\n this._contextProvider,\n );\n }\n\n public get RenderComponent() {\n return this.threads.__internal_RenderComponent;\n }\n}\n\nconst useRemoteThreadListRuntimeImpl = (\n options: RemoteThreadListOptions,\n): AssistantRuntime => {\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const [runtime] = useState(() => new RemoteThreadListRuntimeCore(options));\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n useEffect(() => {\n runtime.threads.__internal_setOptions(options);\n runtime.threads.__internal_load();\n }, [runtime, options]);\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n\nexport const useRemoteThreadListRuntime = (\n options: RemoteThreadListOptions,\n): AssistantRuntime => {\n const runtimeHookRef = useRef(options.runtimeHook);\n runtimeHookRef.current = options.runtimeHook;\n\n // threadId/initialThreadId only affect the constructor; capture once via ref\n const startThreadIdRef = useRef(options.threadId ?? options.initialThreadId);\n\n const stableRuntimeHook = useCallback(() => {\n return runtimeHookRef.current();\n }, []);\n\n const stableOptions = useMemo<RemoteThreadListOptions>(\n () => ({\n adapter: options.adapter,\n allowNesting: options.allowNesting,\n initialThreadId: startThreadIdRef.current,\n runtimeHook: stableRuntimeHook,\n }),\n [options.adapter, options.allowNesting, stableRuntimeHook],\n );\n\n const aui = useAui();\n const isNested = aui.threadListItem.source !== null;\n\n if (isNested) {\n if (!stableOptions.allowNesting) {\n throw new Error(\n \"useRemoteThreadListRuntime cannot be nested inside another RemoteThreadListRuntime. \" +\n \"Set allowNesting: true to allow nesting (the inner runtime will become a no-op).\",\n );\n }\n\n // If allowNesting is true and already inside a thread list context,\n // just call the runtimeHook directly (no-op behavior)\n return stableRuntimeHook();\n }\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const runtime = useRemoteThreadListRuntimeImpl(stableOptions);\n\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n const prevThreadIdRef = useRef(options.threadId);\n // biome-ignore lint/correctness/useHookAtTopLevel: intentional conditional/nested hook usage\n useEffect(() => {\n if (options.threadId === prevThreadIdRef.current) return;\n prevThreadIdRef.current = options.threadId;\n if (options.threadId) {\n runtime.threads.switchToThread(options.threadId).catch(() => {});\n } else {\n runtime.threads.switchToNewThread().catch(() => {});\n }\n }, [runtime, options.threadId]);\n\n return runtime;\n};\n"],"mappings":";;;;;;AASA,IAAM,8BAAN,cACU,yBAEV;CACE;CAEA,YAAY,SAAkC;EAC5C,MAAM;EACN,KAAK,UAAU,IAAI,sCACjB,SACA,KAAK,gBACP;CACF;CAEA,IAAW,kBAAkB;EAC3B,OAAO,KAAK,QAAQ;CACtB;AACF;AAEA,MAAM,kCACJ,YACqB;CAErB,MAAM,CAAC,WAAW,eAAe,IAAI,4BAA4B,OAAO,CAAC;CAEzE,gBAAgB;EACd,QAAQ,QAAQ,sBAAsB,OAAO;EAC7C,QAAQ,QAAQ,gBAAgB;CAClC,GAAG,CAAC,SAAS,OAAO,CAAC;CAGrB,OAAO,cAAc,IAAI,qBAAqB,OAAO,GAAG,CAAC,OAAO,CAAC;AACnE;AAEA,MAAa,8BACX,YACqB;CACrB,MAAM,iBAAiB,OAAO,QAAQ,WAAW;CACjD,eAAe,UAAU,QAAQ;CAGjC,MAAM,mBAAmB,OAAO,QAAQ,YAAY,QAAQ,eAAe;CAE3E,MAAM,oBAAoB,kBAAkB;EAC1C,OAAO,eAAe,QAAQ;CAChC,GAAG,CAAC,CAAC;CAEL,MAAM,gBAAgB,eACb;EACL,SAAS,QAAQ;EACjB,cAAc,QAAQ;EACtB,iBAAiB,iBAAiB;EAClC,aAAa;CACf,IACA;EAAC,QAAQ;EAAS,QAAQ;EAAc;CAAiB,CAC3D;CAKA,IAHY,OACO,EAAE,eAAe,WAAW,MAEjC;EACZ,IAAI,CAAC,cAAc,cACjB,MAAM,IAAI,MACR,sKAEF;EAKF,OAAO,kBAAkB;CAC3B;CAGA,MAAM,UAAU,+BAA+B,aAAa;CAG5D,MAAM,kBAAkB,OAAO,QAAQ,QAAQ;CAE/C,gBAAgB;EACd,IAAI,QAAQ,aAAa,gBAAgB,SAAS;EAClD,gBAAgB,UAAU,QAAQ;EAClC,IAAI,QAAQ,UACV,QAAQ,QAAQ,eAAe,QAAQ,QAAQ,EAAE,YAAY,CAAC,CAAC;OAE/D,QAAQ,QAAQ,kBAAkB,EAAE,YAAY,CAAC,CAAC;CAEtD,GAAG,CAAC,SAAS,QAAQ,QAAQ,CAAC;CAE9B,OAAO;AACT"}
1
+ {"version":3,"file":"useRemoteThreadListRuntime.js","names":[],"sources":["../../../src/react/runtimes/useRemoteThreadListRuntime.ts"],"sourcesContent":["import { useState, useEffect, useMemo, useRef, useCallback } from \"react\";\nimport { BaseAssistantRuntimeCore } from \"../../runtime/base/base-assistant-runtime-core\";\nimport { AssistantRuntimeImpl } from \"../../runtime/api/assistant-runtime\";\nimport type { RemoteThreadListOptions } from \"../../runtimes/remote-thread-list/types\";\nimport type { AssistantRuntimeCore } from \"../../runtime/interfaces/assistant-runtime-core\";\nimport type { AssistantRuntime } from \"../../runtime/api/assistant-runtime\";\nimport { RemoteThreadListThreadListRuntimeCore } from \"./RemoteThreadListThreadListRuntimeCore\";\nimport { useAui } from \"@assistant-ui/store\";\n\nclass RemoteThreadListRuntimeCore\n extends BaseAssistantRuntimeCore\n implements AssistantRuntimeCore\n{\n public readonly threads;\n\n constructor(options: RemoteThreadListOptions) {\n super();\n this.threads = new RemoteThreadListThreadListRuntimeCore(\n options,\n this._contextProvider,\n );\n }\n\n public get RenderComponent() {\n return this.threads.__internal_RenderComponent;\n }\n}\n\nconst useRemoteThreadListRuntimeImpl = (\n options: RemoteThreadListOptions,\n): AssistantRuntime => {\n const [runtime] = useState(() => new RemoteThreadListRuntimeCore(options));\n useEffect(() => {\n runtime.threads.__internal_setOptions(options);\n runtime.threads.__internal_load();\n }, [runtime, options]);\n\n return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);\n};\n\nexport const useRemoteThreadListRuntime = (\n options: RemoteThreadListOptions,\n): AssistantRuntime => {\n const runtimeHookRef = useRef(options.runtimeHook);\n runtimeHookRef.current = options.runtimeHook;\n\n // threadId/initialThreadId only affect the constructor; capture once via ref\n const startThreadIdRef = useRef(options.threadId ?? options.initialThreadId);\n\n const stableRuntimeHook = useCallback(() => {\n return runtimeHookRef.current();\n }, []);\n\n const stableOptions = useMemo<RemoteThreadListOptions>(\n () => ({\n adapter: options.adapter,\n allowNesting: options.allowNesting,\n initialThreadId: startThreadIdRef.current,\n runtimeHook: stableRuntimeHook,\n }),\n [options.adapter, options.allowNesting, stableRuntimeHook],\n );\n\n const aui = useAui();\n const isNested = aui.threadListItem.source !== null;\n\n if (isNested) {\n if (!stableOptions.allowNesting) {\n throw new Error(\n \"useRemoteThreadListRuntime cannot be nested inside another RemoteThreadListRuntime. \" +\n \"Set allowNesting: true to allow nesting (the inner runtime will become a no-op).\",\n );\n }\n\n // If allowNesting is true and already inside a thread list context,\n // just call the runtimeHook directly (no-op behavior)\n return stableRuntimeHook();\n }\n\n const runtime = useRemoteThreadListRuntimeImpl(stableOptions);\n\n const prevThreadIdRef = useRef(options.threadId);\n useEffect(() => {\n if (options.threadId === prevThreadIdRef.current) return;\n prevThreadIdRef.current = options.threadId;\n if (options.threadId) {\n runtime.threads.switchToThread(options.threadId).catch(() => {});\n } else {\n runtime.threads.switchToNewThread().catch(() => {});\n }\n }, [runtime, options.threadId]);\n\n return runtime;\n};\n"],"mappings":";;;;;;AASA,IAAM,8BAAN,cACU,yBAEV;CACE;CAEA,YAAY,SAAkC;EAC5C,MAAM;EACN,KAAK,UAAU,IAAI,sCACjB,SACA,KAAK,gBACP;CACF;CAEA,IAAW,kBAAkB;EAC3B,OAAO,KAAK,QAAQ;CACtB;AACF;AAEA,MAAM,kCACJ,YACqB;CACrB,MAAM,CAAC,WAAW,eAAe,IAAI,4BAA4B,OAAO,CAAC;CACzE,gBAAgB;EACd,QAAQ,QAAQ,sBAAsB,OAAO;EAC7C,QAAQ,QAAQ,gBAAgB;CAClC,GAAG,CAAC,SAAS,OAAO,CAAC;CAErB,OAAO,cAAc,IAAI,qBAAqB,OAAO,GAAG,CAAC,OAAO,CAAC;AACnE;AAEA,MAAa,8BACX,YACqB;CACrB,MAAM,iBAAiB,OAAO,QAAQ,WAAW;CACjD,eAAe,UAAU,QAAQ;CAGjC,MAAM,mBAAmB,OAAO,QAAQ,YAAY,QAAQ,eAAe;CAE3E,MAAM,oBAAoB,kBAAkB;EAC1C,OAAO,eAAe,QAAQ;CAChC,GAAG,CAAC,CAAC;CAEL,MAAM,gBAAgB,eACb;EACL,SAAS,QAAQ;EACjB,cAAc,QAAQ;EACtB,iBAAiB,iBAAiB;EAClC,aAAa;CACf,IACA;EAAC,QAAQ;EAAS,QAAQ;EAAc;CAAiB,CAC3D;CAKA,IAHY,OACO,EAAE,eAAe,WAAW,MAEjC;EACZ,IAAI,CAAC,cAAc,cACjB,MAAM,IAAI,MACR,sKAEF;EAKF,OAAO,kBAAkB;CAC3B;CAEA,MAAM,UAAU,+BAA+B,aAAa;CAE5D,MAAM,kBAAkB,OAAO,QAAQ,QAAQ;CAC/C,gBAAgB;EACd,IAAI,QAAQ,aAAa,gBAAgB,SAAS;EAClD,gBAAgB,UAAU,QAAQ;EAClC,IAAI,QAAQ,UACV,QAAQ,QAAQ,eAAe,QAAQ,QAAQ,EAAE,YAAY,CAAC,CAAC;OAE/D,QAAQ,QAAQ,kBAAkB,EAAE,YAAY,CAAC,CAAC;CAEtD,GAAG,CAAC,SAAS,QAAQ,QAAQ,CAAC;CAE9B,OAAO;AACT"}
@@ -5,13 +5,30 @@ import { ToolCallMessagePartComponent } from "../MessagePartComponentTypes.js";
5
5
  type McpAppResourceOutput = {
6
6
  readonly render: ToolCallMessagePartComponent;
7
7
  };
8
+ /**
9
+ * A single tool-UI registration: the renderer plus its presentation options.
10
+ * Stored as a per-tool-name list so the name stays registered while any
11
+ * registration of it is mounted.
12
+ */
13
+ type ToolRegistration = {
14
+ readonly render: ToolCallMessagePartComponent; /** Whether this UI renders standalone, outside the chain-of-thought trace. */
15
+ readonly standalone: boolean;
16
+ };
8
17
  type ToolsState = {
9
- tools: Record<string, ToolCallMessagePartComponent[]>;
18
+ /** Registered tool UIs (renderer + presentation options) keyed by tool name. */toolUIs: Record<string, readonly ToolRegistration[]>;
10
19
  mcpApp?: McpAppResourceOutput | undefined;
20
+ /**
21
+ * @deprecated Use {@link toolUIs} instead, whose entries carry the renderer
22
+ * alongside its presentation options. This component-only map is kept for
23
+ * back-compat and will be removed in v0.15.
24
+ */
25
+ tools: Record<string, ToolCallMessagePartComponent[]>;
11
26
  };
12
27
  type ToolsMethods = {
13
28
  getState(): ToolsState;
14
- setToolUI(toolName: string, render: ToolCallMessagePartComponent): Unsubscribe;
29
+ setToolUI(toolName: string, render: ToolCallMessagePartComponent, options?: {
30
+ standalone?: boolean;
31
+ }): Unsubscribe;
15
32
  };
16
33
  type ToolsClientSchema = {
17
34
  methods: ToolsMethods;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","names":[],"sources":["../../../../src/react/types/scopes/tools.ts"],"mappings":";;;;KAGY,oBAAA;EAAA,SACD,MAAA,EAAQ,4BAA4B;AAAA;AAAA,KAGnC,UAAA;EACV,KAAA,EAAO,MAAA,SAAe,4BAAA;EACtB,MAAA,GAAS,oBAAA;AAAA;AAAA,KAGC,YAAA;EACV,QAAA,IAAY,UAAA;EACZ,SAAA,CACE,QAAA,UACA,MAAA,EAAQ,4BAAA,GACP,WAAA;AAAA;AAAA,KAGO,iBAAA;EACV,OAAA,EAAS,YAAY;AAAA"}
1
+ {"version":3,"file":"tools.d.ts","names":[],"sources":["../../../../src/react/types/scopes/tools.ts"],"mappings":";;;;KAGY,oBAAA;EAAA,SACD,MAAA,EAAQ,4BAA4B;AAAA;AAD/C;;;;AAC+C;AAD/C,KASK,gBAAA;EAAA,SACM,MAAA,EAAQ,4BAA4B;WAEpC,UAAA;AAAA;AAAA,KAGC,UAAA;EAHD,gFAKT,OAAA,EAAS,MAAA,kBAAwB,gBAAA;EACjC,MAAA,GAAS,oBAAA;EAHC;;;;;EASV,KAAA,EAAO,MAAA,SAAe,4BAAA;AAAA;AAAA,KAGZ,YAAA;EACV,QAAA,IAAY,UAAA;EACZ,SAAA,CACE,QAAA,UACA,MAAA,EAAQ,4BAAA,EACR,OAAA;IAAY,UAAA;EAAA,IACX,WAAA;AAAA;AAAA,KAGO,iBAAA;EACV,OAAA,EAAS,YAAY;AAAA"}
@@ -1,6 +1,16 @@
1
+ import { ToolsState } from "../types/scopes/tools.js";
1
2
  import { PartState } from "../../store/scopes/part.js";
2
3
 
3
4
  //#region src/react/utils/groupParts.d.ts
5
+ /**
6
+ * Registry context passed to a `groupBy` function as its second argument by
7
+ * `<MessagePrimitive.GroupedParts>`. Carries the live tool-UI registry so a
8
+ * `groupBy` can resolve registry-driven grouping (e.g. standalone tool calls)
9
+ * without the part itself having to carry that information.
10
+ */
11
+ type GroupByContext = {
12
+ /** Tool UIs registered in the tool-UI registry, keyed by tool name. */readonly toolUIs?: ToolsState["toolUIs"];
13
+ };
4
14
  /**
5
15
  * Hierarchical adjacent-coalescing grouping for message parts.
6
16
  *
@@ -21,21 +31,32 @@ import { PartState } from "../../store/scopes/part.js";
21
31
  */
22
32
  declare const GROUPBY_MEMO_KEY: unique symbol;
23
33
  /**
24
- * Synthetic part-type key recognized by {@link groupPartByType}: a
25
- * tool-call whose `mcp.app.resourceUri` points at an assistant-ui MCP
26
- * app. Map this key to control how MCP-app tool calls are grouped —
27
- * separately from regular `"tool-call"` parts.
34
+ * Synthetic part-type keys recognized by {@link groupPartByType}, in
35
+ * addition to real {@link PartState} types:
36
+ *
37
+ * - `"standalone-tool-call"` — a tool-call whose UI should be presented on its
38
+ * own, outside the chain-of-thought grouping. Matches MCP-app tool calls plus
39
+ * any tool-call whose registered UI opts into standalone display (human
40
+ * tools, the built-in generative-UI tool, and tools that set
41
+ * `display: "standalone"`). Resolving the registry-driven cases reads the
42
+ * {@link GroupByContext} passed to the `groupBy` function. Takes precedence
43
+ * over the `"tool-call"` entry.
44
+ * - `"mcp-app"` — **deprecated**, kept for back-compat. Matches only MCP-app
45
+ * tool calls. Prefer `"standalone-tool-call"`, which is a superset.
28
46
  */
29
- type GroupPartType = PartState["type"] | "mcp-app";
47
+ type GroupPartType = PartState["type"] | "standalone-tool-call" | "mcp-app";
30
48
  /**
31
49
  * Build a `groupBy` from a `part.type → group-key path` lookup.
32
50
  * Parts whose type isn't in the map are left ungrouped. The returned
33
51
  * function carries a stable {@link GROUPBY_MEMO_KEY} fingerprint so
34
52
  * `<MessagePrimitive.GroupedParts>` can memoize its tree across renders.
35
53
  *
36
- * Special key `"mcp-app"` matches tool-call parts that point at an
37
- * assistant-ui MCP app resource (`ui://...`) and takes precedence over
38
- * the `"tool-call"` entry for those parts.
54
+ * The synthetic `"standalone-tool-call"` key matches tool calls that should
55
+ * render outside the chain-of-thought grouping. MCP-app calls are detected from
56
+ * the part alone; the registry-driven cases (human tools, the generative-UI
57
+ * tool, `display: "standalone"` opt-ins) are resolved from the
58
+ * {@link GroupByContext} that `<MessagePrimitive.GroupedParts>` passes to the
59
+ * `groupBy` function — the helper needs nothing threaded into it.
39
60
  *
40
61
  * @example
41
62
  * ```tsx
@@ -43,14 +64,14 @@ type GroupPartType = PartState["type"] | "mcp-app";
43
64
  * groupBy={groupPartByType({
44
65
  * reasoning: ["group-thought", "group-reasoning"],
45
66
  * "tool-call": ["group-thought", "group-tool"],
46
- * "mcp-app": [],
67
+ * "standalone-tool-call": [],
47
68
  * })}
48
69
  * >
49
70
  * {({ part, children }) => { ... }}
50
71
  * </MessagePrimitive.GroupedParts>
51
72
  * ```
52
73
  */
53
- declare const groupPartByType: <TKey extends `group-${string}`>(map: Partial<Readonly<Record<GroupPartType, readonly TKey[]>>>) => ((part: PartState) => readonly TKey[]);
74
+ declare const groupPartByType: <TKey extends `group-${string}`>(map: Partial<Readonly<Record<GroupPartType, readonly TKey[]>>>) => ((part: PartState, context?: GroupByContext) => readonly TKey[]);
54
75
  type GroupNode = GroupNodeGroup | GroupNodePart;
55
76
  interface GroupNodeGroup {
56
77
  readonly type: "group";
@@ -76,5 +97,5 @@ interface GroupNodePart {
76
97
  */
77
98
  declare const buildGroupTree: (paths: readonly (readonly string[])[]) => readonly GroupNode[];
78
99
  //#endregion
79
- export { GROUPBY_MEMO_KEY, GroupNode, GroupNodeGroup, GroupNodePart, buildGroupTree, groupPartByType };
100
+ export { GROUPBY_MEMO_KEY, GroupByContext, GroupNode, GroupNodeGroup, GroupNodePart, buildGroupTree, groupPartByType };
80
101
  //# sourceMappingURL=groupParts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"groupParts.d.ts","names":[],"sources":["../../../src/react/utils/groupParts.ts"],"mappings":";;;;;AAsBA;;;;AAEC;AAAC;;;;AAQ4B;AAyB9B;;;;;;AAzB8B,cAVjB,gBAAA;;;;;;;KAUR,aAAA,GAAgB,SAAS;;;;;;;;;;AA2BQ;AAuBtC;;;;AAAsD;AAEtD;;;;;;;;cA3Ba,eAAA,mCACX,GAAA,EAAK,OAAA,CAAQ,QAAA,CAAS,MAAA,CAAO,aAAA,WAAwB,IAAA,YAClD,IAAA,EAAM,SAAA,cAAuB,IAAA;AAAA,KAuBtB,SAAA,GAAY,cAAA,GAAiB,aAAa;AAAA,UAErC,cAAA;EAAA,SACN,IAAA;EAUM;EAAA,SARN,GAAA;;WAEA,OAAA;EAOA;EAAA,SALA,OAAA;EAAA,SACA,QAAA,WAAmB,SAAS;AAAA;AAAA,UAGtB,aAAA;EAAA,SACN,IAAA;EAoGV;EAAA,SAlGU,KAAA;EAwBT;EAAA,SAtBS,OAAA;AAAA;;;;;;cAqBE,cAAA,GACX,KAAA,8CACU,SAAS"}
1
+ {"version":3,"file":"groupParts.d.ts","names":[],"sources":["../../../src/react/utils/groupParts.ts"],"mappings":";;;;;;AAUA;;;;KAAY,cAAA;EAwBC,gFAtBF,OAAA,GAAU,UAAU;AAAA;;AAwB9B;AAAC;;;;AAgB4B;AA4B9B;;;;;;;;;;;cA9Ca,gBAAA;;;;;;;;;;;;;;;KAkBR,aAAA,GAAgB,SAAS;AA6D9B;;;;AAAsD;AAEtD;;;;;;;;;;;AAQuC;AAGvC;;;;;;;;AAKkB;AAlBlB,cAjCa,eAAA,mCACX,GAAA,EAAK,OAAA,CAAQ,QAAA,CAAS,MAAA,CAAO,aAAA,WAAwB,IAAA,YAClD,IAAA,EAAM,SAAA,EAAW,OAAA,GAAU,cAAA,cAA4B,IAAA;AAAA,KA+BhD,SAAA,GAAY,cAAA,GAAiB,aAAa;AAAA,UAErC,cAAA;EAAA,SACN,IAAA;EAsCU;EAAA,SApCV,GAAA;;WAEA,OAAA;;WAEA,OAAA;EAAA,SACA,QAAA,WAAmB,SAAS;AAAA;AAAA,UAGtB,aAAA;EAAA,SACN,IAAA;;WAEA,KAAA;;WAEA,OAAA;AAAA;;;;;;cAqBE,cAAA,GACX,KAAA,8CACU,SAAS"}
@@ -25,9 +25,12 @@ const GROUPBY_MEMO_KEY = Symbol.for("@assistant-ui/groupBy.memoKey");
25
25
  * function carries a stable {@link GROUPBY_MEMO_KEY} fingerprint so
26
26
  * `<MessagePrimitive.GroupedParts>` can memoize its tree across renders.
27
27
  *
28
- * Special key `"mcp-app"` matches tool-call parts that point at an
29
- * assistant-ui MCP app resource (`ui://...`) and takes precedence over
30
- * the `"tool-call"` entry for those parts.
28
+ * The synthetic `"standalone-tool-call"` key matches tool calls that should
29
+ * render outside the chain-of-thought grouping. MCP-app calls are detected from
30
+ * the part alone; the registry-driven cases (human tools, the generative-UI
31
+ * tool, `display: "standalone"` opt-ins) are resolved from the
32
+ * {@link GroupByContext} that `<MessagePrimitive.GroupedParts>` passes to the
33
+ * `groupBy` function — the helper needs nothing threaded into it.
31
34
  *
32
35
  * @example
33
36
  * ```tsx
@@ -35,7 +38,7 @@ const GROUPBY_MEMO_KEY = Symbol.for("@assistant-ui/groupBy.memoKey");
35
38
  * groupBy={groupPartByType({
36
39
  * reasoning: ["group-thought", "group-reasoning"],
37
40
  * "tool-call": ["group-thought", "group-tool"],
38
- * "mcp-app": [],
41
+ * "standalone-tool-call": [],
39
42
  * })}
40
43
  * >
41
44
  * {({ part, children }) => { ... }}
@@ -44,8 +47,12 @@ const GROUPBY_MEMO_KEY = Symbol.for("@assistant-ui/groupBy.memoKey");
44
47
  */
45
48
  const groupPartByType = (map) => {
46
49
  const lookup = map;
47
- const fn = ((part) => {
48
- if (part.type === "tool-call" && lookup["mcp-app"] !== void 0 && isMcpAppUri(part.mcp?.app?.resourceUri)) return lookup["mcp-app"];
50
+ const fn = ((part, context) => {
51
+ if (part.type === "tool-call") {
52
+ const isMcpApp = isMcpAppUri(part.mcp?.app?.resourceUri);
53
+ if ((isMcpApp || (context?.toolUIs?.[part.toolName]?.[0]?.standalone ?? false)) && lookup["standalone-tool-call"] !== void 0) return lookup["standalone-tool-call"];
54
+ if (isMcpApp && lookup["mcp-app"] !== void 0) return lookup["mcp-app"];
55
+ }
49
56
  return lookup[part.type] ?? [];
50
57
  });
51
58
  const sortedEntries = Object.keys(map).sort().map((k) => [k, map[k]]);
@@ -1 +1 @@
1
- {"version":3,"file":"groupParts.js","names":[],"sources":["../../../src/react/utils/groupParts.ts"],"sourcesContent":["import { isMcpAppUri } from \"../../types/message\";\nimport type { PartState } from \"../../store/scopes/part\";\n\n/**\n * Hierarchical adjacent-coalescing grouping for message parts.\n *\n * Given a group path per part (from `groupBy`), builds a tree of group\n * nodes wrapping individual parts. Adjacent parts sharing a path prefix\n * coalesce into the same group; ungrouped parts are direct children of\n * the root.\n *\n * Each node gets a structural `nodeKey` built from sibling indices\n * (`\"0.1.0\"`), stable under append-only streaming.\n */\n\n/**\n * Symbol attached to memoizable `groupBy` functions (e.g. those returned\n * by {@link groupPartByType}). Carries a string fingerprint of the config\n * so `MessagePrimitive.GroupedParts` can memo the tree on\n * `[parts, memoKey]` across renders — even when the helper call site\n * reconstructs the function each render.\n */\nexport const GROUPBY_MEMO_KEY: unique symbol = Symbol.for(\n \"@assistant-ui/groupBy.memoKey\",\n);\n\n/**\n * Synthetic part-type key recognized by {@link groupPartByType}: a\n * tool-call whose `mcp.app.resourceUri` points at an assistant-ui MCP\n * app. Map this key to control how MCP-app tool calls are grouped —\n * separately from regular `\"tool-call\"` parts.\n */\ntype GroupPartType = PartState[\"type\"] | \"mcp-app\";\n\n/**\n * Build a `groupBy` from a `part.type → group-key path` lookup.\n * Parts whose type isn't in the map are left ungrouped. The returned\n * function carries a stable {@link GROUPBY_MEMO_KEY} fingerprint so\n * `<MessagePrimitive.GroupedParts>` can memoize its tree across renders.\n *\n * Special key `\"mcp-app\"` matches tool-call parts that point at an\n * assistant-ui MCP app resource (`ui://...`) and takes precedence over\n * the `\"tool-call\"` entry for those parts.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.GroupedParts\n * groupBy={groupPartByType({\n * reasoning: [\"group-thought\", \"group-reasoning\"],\n * \"tool-call\": [\"group-thought\", \"group-tool\"],\n * \"mcp-app\": [],\n * })}\n * >\n * {({ part, children }) => { ... }}\n * </MessagePrimitive.GroupedParts>\n * ```\n */\nexport const groupPartByType = <TKey extends `group-${string}`>(\n map: Partial<Readonly<Record<GroupPartType, readonly TKey[]>>>,\n): ((part: PartState) => readonly TKey[]) => {\n const lookup = map as Readonly<Record<string, readonly TKey[] | undefined>>;\n const fn = ((part) => {\n if (\n part.type === \"tool-call\" &&\n lookup[\"mcp-app\"] !== undefined &&\n isMcpAppUri(part.mcp?.app?.resourceUri)\n ) {\n return lookup[\"mcp-app\"]!;\n }\n return lookup[part.type] ?? [];\n }) as ((part: PartState) => readonly TKey[]) & {\n [GROUPBY_MEMO_KEY]?: string;\n };\n // Sort keys so the fingerprint is insensitive to map insertion order —\n // two maps with the same key/value pairs but different declaration order\n // would otherwise hash differently and invalidate the memo unnecessarily.\n const sortedKeys = Object.keys(map).sort();\n const sortedEntries = sortedKeys.map((k) => [k, map[k as keyof typeof map]]);\n fn[GROUPBY_MEMO_KEY] = `groupPartByType:${JSON.stringify(sortedEntries)}`;\n return fn;\n};\n\nexport type GroupNode = GroupNodeGroup | GroupNodePart;\n\nexport interface GroupNodeGroup {\n readonly type: \"group\";\n /** Current-level group key (last segment of the path). */\n readonly key: string;\n /** Structural React key: sibling-index path, e.g. `\"0.1.0\"`. */\n readonly nodeKey: string;\n /** Indices of parts in this subtree, in order. */\n readonly indices: readonly number[];\n readonly children: readonly GroupNode[];\n}\n\nexport interface GroupNodePart {\n readonly type: \"part\";\n /** Index of the part in the message. */\n readonly index: number;\n /** Structural React key: sibling-index path within parent. */\n readonly nodeKey: string;\n}\n\ninterface BuildFrame {\n key: string;\n nodeKey: string;\n indices: number[];\n children: GroupNode[];\n nextChildIdx: number;\n}\n\nconst makeChildNodeKey = (parent: BuildFrame): string => {\n const idx = parent.nextChildIdx++;\n return parent.nodeKey === \"\" ? String(idx) : `${parent.nodeKey}.${idx}`;\n};\n\n/**\n * Build the group tree from an array of normalized group paths.\n * `paths[i]` is the path for part `i`. The output tree contains one\n * `part` node per part and one `group` node per coalesced run.\n */\nexport const buildGroupTree = (\n paths: readonly (readonly string[])[],\n): readonly GroupNode[] => {\n const root: BuildFrame = {\n key: \"\",\n nodeKey: \"\",\n indices: [],\n children: [],\n nextChildIdx: 0,\n };\n const stack: BuildFrame[] = [root];\n\n const closeTop = (): void => {\n const closing = stack.pop()!;\n const parent = stack[stack.length - 1]!;\n parent.children.push({\n type: \"group\",\n key: closing.key,\n nodeKey: closing.nodeKey,\n indices: closing.indices,\n children: closing.children,\n });\n };\n\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i]!;\n\n // Find the longest prefix shared between currently-open groups\n // (excluding root) and this part's path.\n let common = 0;\n while (\n common < stack.length - 1 &&\n common < path.length &&\n stack[common + 1]!.key === path[common]\n ) {\n common++;\n }\n\n // Close groups not on this path.\n while (stack.length - 1 > common) {\n closeTop();\n }\n\n // Open new groups down to the part's depth.\n while (stack.length - 1 < path.length) {\n const parent = stack[stack.length - 1]!;\n stack.push({\n key: path[stack.length - 1]!,\n nodeKey: makeChildNodeKey(parent),\n indices: [],\n children: [],\n nextChildIdx: 0,\n });\n }\n\n // Push this part as a leaf in the deepest open group (or root).\n const top = stack[stack.length - 1]!;\n top.children.push({\n type: \"part\",\n index: i,\n nodeKey: makeChildNodeKey(top),\n });\n\n // Record the part index in every open ancestor group.\n for (let s = 1; s < stack.length; s++) {\n stack[s]!.indices.push(i);\n }\n }\n\n // Close any still-open groups.\n while (stack.length > 1) {\n closeTop();\n }\n\n return root.children;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,mBAAkC,OAAO,IACpD,+BACF;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,MAAa,mBACX,QAC2C;CAC3C,MAAM,SAAS;CACf,MAAM,OAAO,SAAS;EACpB,IACE,KAAK,SAAS,eACd,OAAO,eAAe,KAAA,KACtB,YAAY,KAAK,KAAK,KAAK,WAAW,GAEtC,OAAO,OAAO;EAEhB,OAAO,OAAO,KAAK,SAAS,CAAC;CAC/B;CAOA,MAAM,gBADa,OAAO,KAAK,GAAG,EAAE,KACL,EAAE,KAAK,MAAM,CAAC,GAAG,IAAI,EAAsB,CAAC;CAC3E,GAAG,oBAAoB,mBAAmB,KAAK,UAAU,aAAa;CACtE,OAAO;AACT;AA+BA,MAAM,oBAAoB,WAA+B;CACvD,MAAM,MAAM,OAAO;CACnB,OAAO,OAAO,YAAY,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,QAAQ,GAAG;AACpE;;;;;;AAOA,MAAa,kBACX,UACyB;CACzB,MAAM,OAAmB;EACvB,KAAK;EACL,SAAS;EACT,SAAS,CAAC;EACV,UAAU,CAAC;EACX,cAAc;CAChB;CACA,MAAM,QAAsB,CAAC,IAAI;CAEjC,MAAM,iBAAuB;EAC3B,MAAM,UAAU,MAAM,IAAI;EAE1B,MADqB,MAAM,SAAS,GAC7B,SAAS,KAAK;GACnB,MAAM;GACN,KAAK,QAAQ;GACb,SAAS,QAAQ;GACjB,SAAS,QAAQ;GACjB,UAAU,QAAQ;EACpB,CAAC;CACH;CAEA,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,MAAM,OAAO,MAAM;EAInB,IAAI,SAAS;EACb,OACE,SAAS,MAAM,SAAS,KACxB,SAAS,KAAK,UACd,MAAM,SAAS,GAAI,QAAQ,KAAK,SAEhC;EAIF,OAAO,MAAM,SAAS,IAAI,QACxB,SAAS;EAIX,OAAO,MAAM,SAAS,IAAI,KAAK,QAAQ;GACrC,MAAM,SAAS,MAAM,MAAM,SAAS;GACpC,MAAM,KAAK;IACT,KAAK,KAAK,MAAM,SAAS;IACzB,SAAS,iBAAiB,MAAM;IAChC,SAAS,CAAC;IACV,UAAU,CAAC;IACX,cAAc;GAChB,CAAC;EACH;EAGA,MAAM,MAAM,MAAM,MAAM,SAAS;EACjC,IAAI,SAAS,KAAK;GAChB,MAAM;GACN,OAAO;GACP,SAAS,iBAAiB,GAAG;EAC/B,CAAC;EAGD,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAChC,MAAM,GAAI,QAAQ,KAAK,CAAC;CAE5B;CAGA,OAAO,MAAM,SAAS,GACpB,SAAS;CAGX,OAAO,KAAK;AACd"}
1
+ {"version":3,"file":"groupParts.js","names":[],"sources":["../../../src/react/utils/groupParts.ts"],"sourcesContent":["import { isMcpAppUri } from \"../../types/message\";\nimport type { PartState } from \"../../store/scopes/part\";\nimport type { ToolsState } from \"../types/scopes/tools\";\n\n/**\n * Registry context passed to a `groupBy` function as its second argument by\n * `<MessagePrimitive.GroupedParts>`. Carries the live tool-UI registry so a\n * `groupBy` can resolve registry-driven grouping (e.g. standalone tool calls)\n * without the part itself having to carry that information.\n */\nexport type GroupByContext = {\n /** Tool UIs registered in the tool-UI registry, keyed by tool name. */\n readonly toolUIs?: ToolsState[\"toolUIs\"];\n};\n\n/**\n * Hierarchical adjacent-coalescing grouping for message parts.\n *\n * Given a group path per part (from `groupBy`), builds a tree of group\n * nodes wrapping individual parts. Adjacent parts sharing a path prefix\n * coalesce into the same group; ungrouped parts are direct children of\n * the root.\n *\n * Each node gets a structural `nodeKey` built from sibling indices\n * (`\"0.1.0\"`), stable under append-only streaming.\n */\n\n/**\n * Symbol attached to memoizable `groupBy` functions (e.g. those returned\n * by {@link groupPartByType}). Carries a string fingerprint of the config\n * so `MessagePrimitive.GroupedParts` can memo the tree on\n * `[parts, memoKey]` across renders — even when the helper call site\n * reconstructs the function each render.\n */\nexport const GROUPBY_MEMO_KEY: unique symbol = Symbol.for(\n \"@assistant-ui/groupBy.memoKey\",\n);\n\n/**\n * Synthetic part-type keys recognized by {@link groupPartByType}, in\n * addition to real {@link PartState} types:\n *\n * - `\"standalone-tool-call\"` — a tool-call whose UI should be presented on its\n * own, outside the chain-of-thought grouping. Matches MCP-app tool calls plus\n * any tool-call whose registered UI opts into standalone display (human\n * tools, the built-in generative-UI tool, and tools that set\n * `display: \"standalone\"`). Resolving the registry-driven cases reads the\n * {@link GroupByContext} passed to the `groupBy` function. Takes precedence\n * over the `\"tool-call\"` entry.\n * - `\"mcp-app\"` **deprecated**, kept for back-compat. Matches only MCP-app\n * tool calls. Prefer `\"standalone-tool-call\"`, which is a superset.\n */\ntype GroupPartType = PartState[\"type\"] | \"standalone-tool-call\" | \"mcp-app\";\n\n/**\n * Build a `groupBy` from a `part.type → group-key path` lookup.\n * Parts whose type isn't in the map are left ungrouped. The returned\n * function carries a stable {@link GROUPBY_MEMO_KEY} fingerprint so\n * `<MessagePrimitive.GroupedParts>` can memoize its tree across renders.\n *\n * The synthetic `\"standalone-tool-call\"` key matches tool calls that should\n * render outside the chain-of-thought grouping. MCP-app calls are detected from\n * the part alone; the registry-driven cases (human tools, the generative-UI\n * tool, `display: \"standalone\"` opt-ins) are resolved from the\n * {@link GroupByContext} that `<MessagePrimitive.GroupedParts>` passes to the\n * `groupBy` function the helper needs nothing threaded into it.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.GroupedParts\n * groupBy={groupPartByType({\n * reasoning: [\"group-thought\", \"group-reasoning\"],\n * \"tool-call\": [\"group-thought\", \"group-tool\"],\n * \"standalone-tool-call\": [],\n * })}\n * >\n * {({ part, children }) => { ... }}\n * </MessagePrimitive.GroupedParts>\n * ```\n */\nexport const groupPartByType = <TKey extends `group-${string}`>(\n map: Partial<Readonly<Record<GroupPartType, readonly TKey[]>>>,\n): ((part: PartState, context?: GroupByContext) => readonly TKey[]) => {\n const lookup = map as Readonly<Record<string, readonly TKey[] | undefined>>;\n const fn = ((part, context) => {\n if (part.type === \"tool-call\") {\n const isMcpApp = isMcpAppUri(part.mcp?.app?.resourceUri);\n // Read the first registration's flag — the same one `resolveToolRender`\n // renders — so grouping and rendering never disagree for a tool name.\n const isStandalone =\n isMcpApp ||\n (context?.toolUIs?.[part.toolName]?.[0]?.standalone ?? false);\n if (isStandalone && lookup[\"standalone-tool-call\"] !== undefined) {\n return lookup[\"standalone-tool-call\"]!;\n }\n // TODO(v0.15): drop the deprecated \"mcp-app\" key (superseded by \"standalone-tool-call\").\n if (isMcpApp && lookup[\"mcp-app\"] !== undefined) {\n return lookup[\"mcp-app\"]!;\n }\n }\n return lookup[part.type] ?? [];\n }) as ((part: PartState, context?: GroupByContext) => readonly TKey[]) & {\n [GROUPBY_MEMO_KEY]?: string;\n };\n // Sort keys so the fingerprint is insensitive to map insertion order —\n // two maps with the same key/value pairs but different declaration order\n // would otherwise hash differently and invalidate the memo unnecessarily.\n const sortedKeys = Object.keys(map).sort();\n const sortedEntries = sortedKeys.map((k) => [k, map[k as keyof typeof map]]);\n fn[GROUPBY_MEMO_KEY] = `groupPartByType:${JSON.stringify(sortedEntries)}`;\n return fn;\n};\n\nexport type GroupNode = GroupNodeGroup | GroupNodePart;\n\nexport interface GroupNodeGroup {\n readonly type: \"group\";\n /** Current-level group key (last segment of the path). */\n readonly key: string;\n /** Structural React key: sibling-index path, e.g. `\"0.1.0\"`. */\n readonly nodeKey: string;\n /** Indices of parts in this subtree, in order. */\n readonly indices: readonly number[];\n readonly children: readonly GroupNode[];\n}\n\nexport interface GroupNodePart {\n readonly type: \"part\";\n /** Index of the part in the message. */\n readonly index: number;\n /** Structural React key: sibling-index path within parent. */\n readonly nodeKey: string;\n}\n\ninterface BuildFrame {\n key: string;\n nodeKey: string;\n indices: number[];\n children: GroupNode[];\n nextChildIdx: number;\n}\n\nconst makeChildNodeKey = (parent: BuildFrame): string => {\n const idx = parent.nextChildIdx++;\n return parent.nodeKey === \"\" ? String(idx) : `${parent.nodeKey}.${idx}`;\n};\n\n/**\n * Build the group tree from an array of normalized group paths.\n * `paths[i]` is the path for part `i`. The output tree contains one\n * `part` node per part and one `group` node per coalesced run.\n */\nexport const buildGroupTree = (\n paths: readonly (readonly string[])[],\n): readonly GroupNode[] => {\n const root: BuildFrame = {\n key: \"\",\n nodeKey: \"\",\n indices: [],\n children: [],\n nextChildIdx: 0,\n };\n const stack: BuildFrame[] = [root];\n\n const closeTop = (): void => {\n const closing = stack.pop()!;\n const parent = stack[stack.length - 1]!;\n parent.children.push({\n type: \"group\",\n key: closing.key,\n nodeKey: closing.nodeKey,\n indices: closing.indices,\n children: closing.children,\n });\n };\n\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i]!;\n\n // Find the longest prefix shared between currently-open groups\n // (excluding root) and this part's path.\n let common = 0;\n while (\n common < stack.length - 1 &&\n common < path.length &&\n stack[common + 1]!.key === path[common]\n ) {\n common++;\n }\n\n // Close groups not on this path.\n while (stack.length - 1 > common) {\n closeTop();\n }\n\n // Open new groups down to the part's depth.\n while (stack.length - 1 < path.length) {\n const parent = stack[stack.length - 1]!;\n stack.push({\n key: path[stack.length - 1]!,\n nodeKey: makeChildNodeKey(parent),\n indices: [],\n children: [],\n nextChildIdx: 0,\n });\n }\n\n // Push this part as a leaf in the deepest open group (or root).\n const top = stack[stack.length - 1]!;\n top.children.push({\n type: \"part\",\n index: i,\n nodeKey: makeChildNodeKey(top),\n });\n\n // Record the part index in every open ancestor group.\n for (let s = 1; s < stack.length; s++) {\n stack[s]!.indices.push(i);\n }\n }\n\n // Close any still-open groups.\n while (stack.length > 1) {\n closeTop();\n }\n\n return root.children;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCA,MAAa,mBAAkC,OAAO,IACpD,+BACF;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,MAAa,mBACX,QACqE;CACrE,MAAM,SAAS;CACf,MAAM,OAAO,MAAM,YAAY;EAC7B,IAAI,KAAK,SAAS,aAAa;GAC7B,MAAM,WAAW,YAAY,KAAK,KAAK,KAAK,WAAW;GAMvD,KAFE,aACC,SAAS,UAAU,KAAK,YAAY,IAAI,cAAc,WACrC,OAAO,4BAA4B,KAAA,GACrD,OAAO,OAAO;GAGhB,IAAI,YAAY,OAAO,eAAe,KAAA,GACpC,OAAO,OAAO;EAElB;EACA,OAAO,OAAO,KAAK,SAAS,CAAC;CAC/B;CAOA,MAAM,gBADa,OAAO,KAAK,GAAG,EAAE,KACL,EAAE,KAAK,MAAM,CAAC,GAAG,IAAI,EAAsB,CAAC;CAC3E,GAAG,oBAAoB,mBAAmB,KAAK,UAAU,aAAa;CACtE,OAAO;AACT;AA+BA,MAAM,oBAAoB,WAA+B;CACvD,MAAM,MAAM,OAAO;CACnB,OAAO,OAAO,YAAY,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,QAAQ,GAAG;AACpE;;;;;;AAOA,MAAa,kBACX,UACyB;CACzB,MAAM,OAAmB;EACvB,KAAK;EACL,SAAS;EACT,SAAS,CAAC;EACV,UAAU,CAAC;EACX,cAAc;CAChB;CACA,MAAM,QAAsB,CAAC,IAAI;CAEjC,MAAM,iBAAuB;EAC3B,MAAM,UAAU,MAAM,IAAI;EAE1B,MADqB,MAAM,SAAS,GAC7B,SAAS,KAAK;GACnB,MAAM;GACN,KAAK,QAAQ;GACb,SAAS,QAAQ;GACjB,SAAS,QAAQ;GACjB,UAAU,QAAQ;EACpB,CAAC;CACH;CAEA,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,MAAM,OAAO,MAAM;EAInB,IAAI,SAAS;EACb,OACE,SAAS,MAAM,SAAS,KACxB,SAAS,KAAK,UACd,MAAM,SAAS,GAAI,QAAQ,KAAK,SAEhC;EAIF,OAAO,MAAM,SAAS,IAAI,QACxB,SAAS;EAIX,OAAO,MAAM,SAAS,IAAI,KAAK,QAAQ;GACrC,MAAM,SAAS,MAAM,MAAM,SAAS;GACpC,MAAM,KAAK;IACT,KAAK,KAAK,MAAM,SAAS;IACzB,SAAS,iBAAiB,MAAM;IAChC,SAAS,CAAC;IACV,UAAU,CAAC;IACX,cAAc;GAChB,CAAC;EACH;EAGA,MAAM,MAAM,MAAM,MAAM,SAAS;EACjC,IAAI,SAAS,KAAK;GAChB,MAAM;GACN,OAAO;GACP,SAAS,iBAAiB,GAAG;EAC/B,CAAC;EAGD,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAChC,MAAM,GAAI,QAAQ,KAAK,CAAC;CAE5B;CAGA,OAAO,MAAM,SAAS,GACpB,SAAS;CAGX,OAAO,KAAK;AACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/assistant-runtime.ts"],"mappings":";;;;;;;KASY,gBAAA;;AAAZ;;WAIW,OAAA,EAAS,iBAAA;EAAA;;;EAAA,SAKT,MAAA,EAAQ,aAAA;EAOwD;;;;;EAAzE,4BAAA,CAA6B,QAAA,EAAU,oBAAA,GAAuB,WAAA;AAAA;AAAA,cAGnD,oBAAA,YAAgC,gBAAA;EAAA,iBAKP,KAAA;EAAA,SAJpB,OAAA,EAAO,qBAAA;EAAA,SAEP,OAAA,EAAS,aAAA;cAEW,KAAA,EAAO,oBAAA;EAAA,UAOjC,sBAAA,CAAA;EAAA,IAKC,MAAA,CAAA,GAAM,aAAA;EAIV,4BAAA,CAA6B,QAAA,EAAU,oBAAA,GAAoB,WAAA;AAAA"}
1
+ {"version":3,"file":"assistant-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/assistant-runtime.ts"],"mappings":";;;;;;;KASY,gBAAA;;AAAZ;;WAIW,OAAA,EAAS,iBAAA;EAAA;;;EAAA,SAKT,MAAA,EAAQ,aAAA;EAOwD;;;;;EAAzE,4BAAA,CAA6B,QAAA,EAAU,oBAAA,GAAuB,WAAA;AAAA;AAAA,cAGnD,oBAAA,YAAgC,gBAAA;EAAA,iBAKP,KAAA;EAAA,SAJpB,OAAA,EAAO,qBAAA;EAAA,SAEP,OAAA,EAAS,aAAA;cAEW,KAAA,EAAO,oBAAA;EAAA,UAOjC,sBAAA;EAAA,IAKC,MAAA,IAAM,aAAA;EAIV,4BAAA,CAA6B,QAAA,EAAU,oBAAA,GAAoB,WAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"attachment-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/attachment-runtime.ts"],"mappings":";;;;;;;KAOK,sBAAA,GAAyB,kBAAkB;EAAA,SACrC,MAAM;AAAA;AAAA,KAGZ,6BAAA,GAAgC,UAAU;EAAA,SACpC,MAAM;AAAA;AAAA,KAGZ,2BAAA,GAA8B,UAAU;EAAA,SAClC,MAAM;AAAA;AAAA,KAGL,eAAA,GACR,6BAAA,GACA,2BAAA,GACA,sBAAA;AAAA,KAEC,yBAAA,gBAAyC,uBAAA,IAC5C,qBAAA,CACE,eAAA;EAAoB,MAAA,EAAQ,MAAA;AAAA,GAC5B,qBAAA;EAA0B,gBAAA,EAAkB,MAAA;AAAA;AAAA,KAG3C,uBAAA,GAA0B,eAAe;AAAA,KAElC,iBAAA,iBACM,uBAAA,GAA0B,uBAAA;EAAA,SAEjC,IAAA,EAAM,qBAAA;IAA0B,gBAAA,EAAkB,OAAA;EAAA;EAAA,SAClD,MAAA,EAAQ,OAAA;EACjB,QAAA,IAAY,eAAA;IAAoB,MAAA,EAAQ,OAAA;EAAA;EACxC,MAAA,IAAU,OAAA;EACV,SAAA,CAAU,QAAA,eAAuB,WAAA;AAAA;AAAA,uBAGb,qBAAA,gBACL,uBAAA,GAA0B,uBAAA,aAC9B,iBAAA;EAAA,QAOS,KAAA;EAAA,IANT,IAAA,CAAA,GAAI,qBAAA;;;eAIK,MAAA,CAAA,GAAU,MAAA;cAEV,KAAA,EAAO,yBAAA,CAA0B,MAAA;EAAA,UAI3C,sBAAA,CAAA;EAMH,QAAA,CAAA,GAAY,eAAA;IAAoB,MAAA,EAAQ,MAAA;EAAA;EAAA,SAI/B,MAAA,CAAA,GAAU,OAAA;EAEnB,SAAA,CAAU,QAAA,eAAoB,WAAA;AAAA;AAAA,uBAKxB,yBAAA,6DAEL,qBAAA,CAAsB,MAAA;EAAA,QAGpB,YAAA;cADR,IAAA,EAAM,yBAAA,CAA0B,MAAA,GACxB,YAAA,EAAc,0BAAA;EAKjB,MAAA,CAAA,GAAM,OAAA;AAAA;AAAA,cAOF,mCAAA,SAA4C,yBAAyB;EAAA,IACrE,MAAM,CAAA;AAAA;AAAA,cAKN,iCAAA,SAA0C,yBAAyB;EAAA,IACnE,MAAM,CAAA;AAAA;AAAA,cAKN,4BAAA,SAAqC,qBAAqB;EAAA,IAC1D,MAAA,CAAA;EAIJ,MAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"attachment-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/attachment-runtime.ts"],"mappings":";;;;;;;KAOK,sBAAA,GAAyB,kBAAkB;EAAA,SACrC,MAAM;AAAA;AAAA,KAGZ,6BAAA,GAAgC,UAAU;EAAA,SACpC,MAAM;AAAA;AAAA,KAGZ,2BAAA,GAA8B,UAAU;EAAA,SAClC,MAAM;AAAA;AAAA,KAGL,eAAA,GACR,6BAAA,GACA,2BAAA,GACA,sBAAA;AAAA,KAEC,yBAAA,gBAAyC,uBAAA,IAC5C,qBAAA,CACE,eAAA;EAAoB,MAAA,EAAQ,MAAA;AAAA,GAC5B,qBAAA;EAA0B,gBAAA,EAAkB,MAAA;AAAA;AAAA,KAG3C,uBAAA,GAA0B,eAAe;AAAA,KAElC,iBAAA,iBACM,uBAAA,GAA0B,uBAAA;EAAA,SAEjC,IAAA,EAAM,qBAAA;IAA0B,gBAAA,EAAkB,OAAA;EAAA;EAAA,SAClD,MAAA,EAAQ,OAAA;EACjB,QAAA,IAAY,eAAA;IAAoB,MAAA,EAAQ,OAAA;EAAA;EACxC,MAAA,IAAU,OAAA;EACV,SAAA,CAAU,QAAA,eAAuB,WAAA;AAAA;AAAA,uBAGb,qBAAA,gBACL,uBAAA,GAA0B,uBAAA,aAC9B,iBAAA;EAAA,QAOS,KAAA;EAAA,IANT,IAAA,IAAI,qBAAA;;;eAIK,MAAA,IAAU,MAAA;cAEV,KAAA,EAAO,yBAAA,CAA0B,MAAA;EAAA,UAI3C,sBAAA;EAMH,QAAA,IAAY,eAAA;IAAoB,MAAA,EAAQ,MAAA;EAAA;EAAA,SAI/B,MAAA,IAAU,OAAA;EAEnB,SAAA,CAAU,QAAA,eAAoB,WAAA;AAAA;AAAA,uBAKxB,yBAAA,6DAEL,qBAAA,CAAsB,MAAA;EAAA,QAGpB,YAAA;cADR,IAAA,EAAM,yBAAA,CAA0B,MAAA,GACxB,YAAA,EAAc,0BAAA;EAKjB,MAAA,IAAM,OAAA;AAAA;AAAA,cAOF,mCAAA,SAA4C,yBAAyB;EAAA,IACrE,MAAM;AAAA;AAAA,cAKN,iCAAA,SAA0C,yBAAyB;EAAA,IACnE,MAAM;AAAA;AAAA,cAKN,4BAAA,SAAqC,qBAAqB;EAAA,IAC1D,MAAA;EAIJ,MAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"composer-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/composer-runtime.ts"],"mappings":"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"}
1
+ {"version":3,"file":"composer-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/composer-runtime.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"message-part-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/message-part-runtime.ts"],"mappings":";;;;;;;;;KAaY,gBAAA,IACR,qBAAA,GACA,0BAAA;EAAA,SAEO,MAAA,EAAQ,iBAAA,GAAoB,yBAAA;AAAA;AAAA,KAGlC,0BAAA,GAA6B,qBAAA,CAChC,gBAAA,EACA,sBAAA;AAAA,KAGU,kBAAA;EACV,aAAA,CAAc,MAAA,QAAc,YAAA;EAC5B,cAAA,CAAe,OAAA;EACf,qBAAA,CAAsB,QAAA;IAAY,QAAA;IAAmB,MAAA;EAAA;EAAA,SAE5C,IAAA,EAAM,sBAAA;EACf,QAAA,IAAY,gBAAA;EACZ,SAAA,CAAU,QAAA,eAAuB,WAAA;AAAA;AAAA,cAGtB,sBAAA,YAAkC,kBAAA;EAAA,QAMnC,cAAA;EAAA,QACA,UAAA;EAAA,QACA,SAAA;EAAA,IAPC,IAAA,CAAA,GAAI,sBAAA;cAKL,cAAA,EAAgB,0BAAA,EAChB,UAAA,GAAa,mBAAA,cACb,SAAA,GAAY,wBAAA;EAAA,UAKZ,sBAAA,CAAA;EAQH,QAAA,CAAA,GAAQ,gBAAA;EAIR,aAAA,CAAc,MAAA,QAAc,YAAA;EA8B5B,cAAA,CAAe,OAAA;EAgBf,qBAAA,CAAsB,QAAA;IAC3B,QAAA;IACA,MAAA;EAAA;EAsBK,SAAA,CAAU,QAAA,eAAoB,WAAA;AAAA"}
1
+ {"version":3,"file":"message-part-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/message-part-runtime.ts"],"mappings":";;;;;;;;;KAaY,gBAAA,IACR,qBAAA,GACA,0BAAA;EAAA,SAEO,MAAA,EAAQ,iBAAA,GAAoB,yBAAA;AAAA;AAAA,KAGlC,0BAAA,GAA6B,qBAAA,CAChC,gBAAA,EACA,sBAAA;AAAA,KAGU,kBAAA;EACV,aAAA,CAAc,MAAA,QAAc,YAAA;EAC5B,cAAA,CAAe,OAAA;EACf,qBAAA,CAAsB,QAAA;IAAY,QAAA;IAAmB,MAAA;EAAA;EAAA,SAE5C,IAAA,EAAM,sBAAA;EACf,QAAA,IAAY,gBAAA;EACZ,SAAA,CAAU,QAAA,eAAuB,WAAA;AAAA;AAAA,cAGtB,sBAAA,YAAkC,kBAAA;EAAA,QAMnC,cAAA;EAAA,QACA,UAAA;EAAA,QACA,SAAA;EAAA,IAPC,IAAA,IAAI,sBAAA;cAKL,cAAA,EAAgB,0BAAA,EAChB,UAAA,GAAa,mBAAA,cACb,SAAA,GAAY,wBAAA;EAAA,UAKZ,sBAAA;EAQH,QAAA,IAAQ,gBAAA;EAIR,aAAA,CAAc,MAAA,QAAc,YAAA;EA8B5B,cAAA,CAAe,OAAA;EAgBf,qBAAA,CAAsB,QAAA;IAC3B,QAAA;IACA,MAAA;EAAA;EAsBK,SAAA,CAAU,QAAA,eAAoB,WAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"message-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/message-runtime.ts"],"mappings":";;;;;;;;;;;cAsCa,mBAAA,GACX,OAAA,EAAS,aAAA,EACT,SAAA,UACA,IAAA,EAAM,qBAAA,GAAwB,0BAAA,KAC7B,yBAAA;AAAA,KAkCS,YAAA,GAAe,aAAA;EAAA,SAChB,QAAA;WAEA,KAAA;EAAA,SACA,MAAA;EAAA,SAEA,YAAA;EAAA,SACA,WAAA;EA3BV;;;EAAA,SAgCU,MAAA,EAAQ,WAAW;AAAA;AAAA,KAKzB,YAAA;EACH,SAAA,GAAY,SAAS;AAAA;AAAA,KAGX,cAAA;EAAA,SACD,IAAA,EAAM,kBAAA;EAAA,SAEN,QAAA,EAAU,mBAAA;EAEnB,QAAA,IAAY,YAAA;EACZ,MAAA,CAAO,MAAA,GAAS,YAAA;EAfY;;;EAmB5B,KAAA;EA3BS;;;EA+BT,YAAA;EACA,cAAA;IAAiB;EAAA;IAAU,IAAA;EAAA;EAC3B,cAAA;IACE,QAAA;IACA;EAAA;IAEA,QAAA;IACA,QAAA;EAAA;EAEF,oBAAA;EAEA,SAAA,CAAU,QAAA,eAAuB,WAAA;EAEjC,qBAAA,CAAsB,GAAA,WAAc,kBAAA;EACpC,0BAAA,CAA2B,UAAA,WAAqB,kBAAA;EAEhD,oBAAA,CAAqB,GAAA,WAAc,iBAAA;IAAsB,MAAA;EAAA;AAAA;AAAA,cAG9C,kBAAA,YAA8B,cAAA;EAAA,QAM/B,KAAA;EAAA,QACA,cAAA;EAAA,IANC,IAAA,CAAA,GAAI,kBAAA;cAKL,KAAA,EAAO,mBAAA,EACP,cAAA,EAAgB,wBAAA;EAAA,UAkBhB,sBAAA,CAAA;EAAA,SAeM,QAAA,EAAQ,uBAAA;EAAA,QAEhB,2BAAA;EAMD,QAAA,CAAA,GAAQ,aAAA;IAAA;;;;;;;EAIR,MAAA,CAAO,YAAA,GAAc,YAAA;EAkBrB,KAAA,CAAA;EAKA,YAAA,CAAA;EAUA,cAAA,CAAA;IAAiB;EAAA;IAAU,IAAA;EAAA;EAQ3B,cAAA,CAAA;IACL,QAAA;IACA;EAAA;IAEA,QAAA;IACA,QAAA;EAAA;EAsBK,oBAAA,CAAA;EAIA,SAAA,CAAU,QAAA,eAAoB,WAAA;EAI9B,qBAAA,CAAsB,GAAA,WAAW,sBAAA;EAmBjC,0BAAA,CAA2B,UAAA,WAAkB,sBAAA;EA0B7C,oBAAA,CAAqB,GAAA,WAAW,4BAAA;AAAA"}
1
+ {"version":3,"file":"message-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/message-runtime.ts"],"mappings":";;;;;;;;;;;cAsCa,mBAAA,GACX,OAAA,EAAS,aAAA,EACT,SAAA,UACA,IAAA,EAAM,qBAAA,GAAwB,0BAAA,KAC7B,yBAAA;AAAA,KAkCS,YAAA,GAAe,aAAA;EAAA,SAChB,QAAA;WAEA,KAAA;EAAA,SACA,MAAA;EAAA,SAEA,YAAA;EAAA,SACA,WAAA;EA3BV;;;EAAA,SAgCU,MAAA,EAAQ,WAAW;AAAA;AAAA,KAKzB,YAAA;EACH,SAAA,GAAY,SAAS;AAAA;AAAA,KAGX,cAAA;EAAA,SACD,IAAA,EAAM,kBAAA;EAAA,SAEN,QAAA,EAAU,mBAAA;EAEnB,QAAA,IAAY,YAAA;EACZ,MAAA,CAAO,MAAA,GAAS,YAAA;EAfY;;;EAmB5B,KAAA;EA3BS;;;EA+BT,YAAA;EACA,cAAA;IAAiB;EAAA;IAAU,IAAA;EAAA;EAC3B,cAAA;IACE,QAAA;IACA;EAAA;IAEA,QAAA;IACA,QAAA;EAAA;EAEF,oBAAA;EAEA,SAAA,CAAU,QAAA,eAAuB,WAAA;EAEjC,qBAAA,CAAsB,GAAA,WAAc,kBAAA;EACpC,0BAAA,CAA2B,UAAA,WAAqB,kBAAA;EAEhD,oBAAA,CAAqB,GAAA,WAAc,iBAAA;IAAsB,MAAA;EAAA;AAAA;AAAA,cAG9C,kBAAA,YAA8B,cAAA;EAAA,QAM/B,KAAA;EAAA,QACA,cAAA;EAAA,IANC,IAAA,IAAI,kBAAA;cAKL,KAAA,EAAO,mBAAA,EACP,cAAA,EAAgB,wBAAA;EAAA,UAkBhB,sBAAA;EAAA,SAeM,QAAA,EAAQ,uBAAA;EAAA,QAEhB,2BAAA;EAMD,QAAA,IAAQ,aAAA;IAAA;;;;;;;EAIR,MAAA,CAAO,YAAA,GAAc,YAAA;EAkBrB,KAAA;EAKA,YAAA;EAUA,cAAA;IAAiB;EAAA;IAAU,IAAA;EAAA;EAQ3B,cAAA;IACL,QAAA;IACA;EAAA;IAEA,QAAA;IACA,QAAA;EAAA;EAsBK,oBAAA;EAIA,SAAA,CAAU,QAAA,eAAoB,WAAA;EAI9B,qBAAA,CAAsB,GAAA,WAAW,sBAAA;EAmBjC,0BAAA,CAA2B,UAAA,WAAkB,sBAAA;EA0B7C,oBAAA,CAAqB,GAAA,WAAW,4BAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"thread-list-item-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/thread-list-item-runtime.ts"],"mappings":";;;;;;;;KAKY,0BAAA;;;;AAAZ;;EAME,UAAA,EAAY,MAAA;EAMQ;;;;;EAApB,YAAA,EAAc,MAAM;AAAA;AAAA,KAGV,uBAAA,SAAgC,0BAA0B;AAAA,KAE1D,2BAAA,WAAsC,uBAAA,KAChD,OAAA,EAAS,0BAAA,CAA2B,CAAA;AAAA,KAQ1B,qBAAA;EAAA,SACD,IAAA,EAAM,yBAAA;EACf,QAAA,IAAY,mBAAA;EAEZ,UAAA,IAAc,OAAA;IAAU,QAAA;IAAkB,UAAA;EAAA;EAC1C,aAAA,IAAiB,OAAA;EAEjB,QAAA,CAAS,OAAA;IAAY,SAAA;EAAA,IAAwB,OAAA;EAC7C,MAAA,CAAO,QAAA,WAAmB,OAAA;EAC1B,OAAA,IAAW,OAAA;EACX,SAAA,IAAa,OAAA;EACb,MAAA,IAAU,OAAA;EAEV,MAAA;EAEA,SAAA,CAAU,QAAA,eAAuB,WAAA;EAEjC,WAAA,WAAsB,uBAAA,EACpB,KAAA,EAAO,CAAA,EACP,QAAA,EAAU,2BAAA,CAA4B,CAAA,IACrC,WAAA;EAEH,qBAAA,IAAyB,qBAAA;AAAA;AAAA,KAGf,0BAAA,GAA6B,qBAAA,CACvC,mBAAA,EACA,yBAAA;AAAA,cAGW,yBAAA,YAAqC,qBAAA;EAAA,QAMtC,KAAA;EAAA,QACA,kBAAA;EAAA,IANC,IAAA,CAAA,GAAI,yBAAA;cAKL,KAAA,EAAO,0BAAA,EACP,kBAAA,EAAoB,4BAAA;EAAA,UAKpB,sBAAA,CAAA;EAcH,QAAA,CAAA,GAAY,mBAAA;EAIZ,QAAA,CAAS,OAAA;IAAY,SAAA;EAAA,IAAwB,OAAA;EAK7C,MAAA,CAAO,QAAA,WAAmB,OAAA;EAM1B,OAAA,CAAA,GAAW,OAAA;EAMX,SAAA,CAAA,GAAa,OAAA;EAMb,MAAA,CAAA,GAAU,OAAA;EAMV,UAAA,CAAA,GAAc,OAAA;IACnB,QAAA;IACA,UAAA;EAAA;EAMK,aAAA,CAAA,GAAiB,OAAA;EAKjB,WAAA,WAAsB,uBAAA,CAAA,CAC3B,KAAA,EAAO,CAAA,EACP,QAAA,EAAU,2BAAA,CAA4B,CAAA,IAAE,WAAA;EAkBnC,SAAA,CAAU,QAAA,eAAuB,WAAA;EAIjC,MAAA,CAAA;EAMA,qBAAA,CAAA,GAAyB,qBAAA;AAAA"}
1
+ {"version":3,"file":"thread-list-item-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/thread-list-item-runtime.ts"],"mappings":";;;;;;;;KAKY,0BAAA;;;;AAAZ;;EAME,UAAA,EAAY,MAAA;EAMQ;;;;;EAApB,YAAA,EAAc,MAAM;AAAA;AAAA,KAGV,uBAAA,SAAgC,0BAA0B;AAAA,KAE1D,2BAAA,WAAsC,uBAAA,KAChD,OAAA,EAAS,0BAAA,CAA2B,CAAA;AAAA,KAQ1B,qBAAA;EAAA,SACD,IAAA,EAAM,yBAAA;EACf,QAAA,IAAY,mBAAA;EAEZ,UAAA,IAAc,OAAA;IAAU,QAAA;IAAkB,UAAA;EAAA;EAC1C,aAAA,IAAiB,OAAA;EAEjB,QAAA,CAAS,OAAA;IAAY,SAAA;EAAA,IAAwB,OAAA;EAC7C,MAAA,CAAO,QAAA,WAAmB,OAAA;EAC1B,OAAA,IAAW,OAAA;EACX,SAAA,IAAa,OAAA;EACb,MAAA,IAAU,OAAA;EAEV,MAAA;EAEA,SAAA,CAAU,QAAA,eAAuB,WAAA;EAEjC,WAAA,WAAsB,uBAAA,EACpB,KAAA,EAAO,CAAA,EACP,QAAA,EAAU,2BAAA,CAA4B,CAAA,IACrC,WAAA;EAEH,qBAAA,IAAyB,qBAAA;AAAA;AAAA,KAGf,0BAAA,GAA6B,qBAAA,CACvC,mBAAA,EACA,yBAAA;AAAA,cAGW,yBAAA,YAAqC,qBAAA;EAAA,QAMtC,KAAA;EAAA,QACA,kBAAA;EAAA,IANC,IAAA,IAAI,yBAAA;cAKL,KAAA,EAAO,0BAAA,EACP,kBAAA,EAAoB,4BAAA;EAAA,UAKpB,sBAAA;EAcH,QAAA,IAAY,mBAAA;EAIZ,QAAA,CAAS,OAAA;IAAY,SAAA;EAAA,IAAwB,OAAA;EAK7C,MAAA,CAAO,QAAA,WAAmB,OAAA;EAM1B,OAAA,IAAW,OAAA;EAMX,SAAA,IAAa,OAAA;EAMb,MAAA,IAAU,OAAA;EAMV,UAAA,IAAc,OAAA;IACnB,QAAA;IACA,UAAA;EAAA;EAMK,aAAA,IAAiB,OAAA;EAKjB,WAAA,WAAsB,uBAAA,EAC3B,KAAA,EAAO,CAAA,EACP,QAAA,EAAU,2BAAA,CAA4B,CAAA,IAAE,WAAA;EAkBnC,SAAA,CAAU,QAAA,eAAuB,WAAA;EAIjC,MAAA;EAMA,qBAAA,IAAyB,qBAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"thread-list-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/thread-list-runtime.ts"],"mappings":";;;;;;;KAwBY,eAAA;EAAA,SACD,YAAA;EAAA,SACA,WAAA;EAAA,SACA,SAAA;EAAA,SACA,iBAAA;EAAA,SACA,SAAA;EAAA,SACA,aAAA;EAAA,SACA,OAAA;EAAA,SACA,WAAA,EAAa,QAAA,CACpB,MAAA,SAAe,IAAA,CAAK,mBAAA;AAAA;AAAA,KAIZ,iBAAA;EACV,QAAA,IAAY,eAAA;EAEZ,SAAA,CAAU,QAAA,eAAuB,WAAA;EAAA,SAExB,IAAA,EAAM,aAAA;EACf,OAAA,CAAQ,QAAA,WAAmB,aAAA;EAAA,SAElB,QAAA,EAAU,qBAAA;EACnB,WAAA,CAAY,QAAA,WAAmB,qBAAA;EAC/B,cAAA,CAAe,GAAA,WAAc,qBAAA;EAC7B,sBAAA,CAAuB,GAAA,WAAc,qBAAA;EAErC,cAAA,CACE,QAAA,UACA,OAAA;IAAY,SAAA;EAAA,IACX,OAAA;EACH,iBAAA,IAAqB,OAAA;EAErB,qBAAA,IAAyB,OAAA;EACzB,MAAA,IAAU,OAAA;EACV,QAAA,IAAY,OAAA;AAAA;AAAA,KAqCF,4BAAA,GAA+B,qBAAqB;AAAA,cAEnD,qBAAA,YAAiC,iBAAA;EAAA,QAGlC,KAAA;EAAA,QACA,eAAA;EAAA,QAHF,SAAA;cAEE,KAAA,EAAO,4BAAA,EACP,eAAA,QACN,OAAA,EAAS,wBAAA,EACT,qBAAA,EAAuB,4BAAA,KACpB,aAAA;EAAA,UAuCG,sBAAA,CAAA;EAcH,cAAA,CACL,QAAA,UACA,OAAA;IAAY,SAAA;EAAA,IACX,OAAA;EAII,iBAAA,CAAA,GAAqB,OAAA;EAIrB,qBAAA,CAAA,GAAyB,OAAA;EAIzB,MAAA,CAAA,GAAU,OAAA;EAIV,QAAA,CAAA,GAAY,OAAA;EAIZ,QAAA,CAAA,GAAY,eAAA;EAIZ,SAAA,CAAU,QAAA,eAAuB,WAAA;EAAA,QAIhC,0BAAA;EAAA,SAEQ,IAAA,EAAM,aAAA;EAAA,IAEX,QAAA,CAAA,GAAQ,yBAAA;EAIZ,OAAA,CAAQ,QAAA,WAAgB,aAAA;EAcxB,cAAA,CAAe,GAAA,WAAW,yBAAA;EAgB1B,sBAAA,CAAuB,GAAA,WAAW,yBAAA;EAmBlC,WAAA,CAAY,QAAA,WAAgB,yBAAA;AAAA"}
1
+ {"version":3,"file":"thread-list-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/thread-list-runtime.ts"],"mappings":";;;;;;;KAwBY,eAAA;EAAA,SACD,YAAA;EAAA,SACA,WAAA;EAAA,SACA,SAAA;EAAA,SACA,iBAAA;EAAA,SACA,SAAA;EAAA,SACA,aAAA;EAAA,SACA,OAAA;EAAA,SACA,WAAA,EAAa,QAAA,CACpB,MAAA,SAAe,IAAA,CAAK,mBAAA;AAAA;AAAA,KAIZ,iBAAA;EACV,QAAA,IAAY,eAAA;EAEZ,SAAA,CAAU,QAAA,eAAuB,WAAA;EAAA,SAExB,IAAA,EAAM,aAAA;EACf,OAAA,CAAQ,QAAA,WAAmB,aAAA;EAAA,SAElB,QAAA,EAAU,qBAAA;EACnB,WAAA,CAAY,QAAA,WAAmB,qBAAA;EAC/B,cAAA,CAAe,GAAA,WAAc,qBAAA;EAC7B,sBAAA,CAAuB,GAAA,WAAc,qBAAA;EAErC,cAAA,CACE,QAAA,UACA,OAAA;IAAY,SAAA;EAAA,IACX,OAAA;EACH,iBAAA,IAAqB,OAAA;EAErB,qBAAA,IAAyB,OAAA;EACzB,MAAA,IAAU,OAAA;EACV,QAAA,IAAY,OAAA;AAAA;AAAA,KAqCF,4BAAA,GAA+B,qBAAqB;AAAA,cAEnD,qBAAA,YAAiC,iBAAA;EAAA,QAGlC,KAAA;EAAA,QACA,eAAA;EAAA,QAHF,SAAA;cAEE,KAAA,EAAO,4BAAA,EACP,eAAA,QACN,OAAA,EAAS,wBAAA,EACT,qBAAA,EAAuB,4BAAA,KACpB,aAAA;EAAA,UAuCG,sBAAA;EAcH,cAAA,CACL,QAAA,UACA,OAAA;IAAY,SAAA;EAAA,IACX,OAAA;EAII,iBAAA,IAAqB,OAAA;EAIrB,qBAAA,IAAyB,OAAA;EAIzB,MAAA,IAAU,OAAA;EAIV,QAAA,IAAY,OAAA;EAIZ,QAAA,IAAY,eAAA;EAIZ,SAAA,CAAU,QAAA,eAAuB,WAAA;EAAA,QAIhC,0BAAA;EAAA,SAEQ,IAAA,EAAM,aAAA;EAAA,IAEX,QAAA,IAAQ,yBAAA;EAIZ,OAAA,CAAQ,QAAA,WAAgB,aAAA;EAcxB,cAAA,CAAe,GAAA,WAAW,yBAAA;EAgB1B,sBAAA,CAAuB,GAAA,WAAW,yBAAA;EAmBlC,WAAA,CAAY,QAAA,WAAgB,yBAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"thread-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/thread-runtime.ts"],"mappings":"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"}
1
+ {"version":3,"file":"thread-runtime.d.ts","names":[],"sources":["../../../src/runtime/api/thread-runtime.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-assistant-runtime-core.d.ts","names":[],"sources":["../../../src/runtime/base/base-assistant-runtime-core.ts"],"mappings":";;;;;;;uBAMsB,wBAAA,YAAoC,oBAAA;EAAA,mBACrC,gBAAA,EAAgB,wBAAA;EAAA,aACf,OAAA,CAAA,GAAW,qBAAA;EAExB,4BAAA,CACL,QAAA,EAAU,oBAAA,GACT,WAAA;EAII,uBAAA,CAAA,GAA2B,oBAAA;AAAA"}
1
+ {"version":3,"file":"base-assistant-runtime-core.d.ts","names":[],"sources":["../../../src/runtime/base/base-assistant-runtime-core.ts"],"mappings":";;;;;;;uBAMsB,wBAAA,YAAoC,oBAAA;EAAA,mBACrC,gBAAA,EAAgB,wBAAA;EAAA,aACf,OAAA,IAAW,qBAAA;EAExB,4BAAA,CACL,QAAA,EAAU,oBAAA,GACT,WAAA;EAII,uBAAA,IAA2B,oBAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-composer-runtime-core.d.ts","names":[],"sources":["../../../src/runtime/base/base-composer-runtime-core.ts"],"mappings":";;;;;;;;;uBA8BsB,uBAAA,SACZ,gBAAA,YACG,mBAAA;EAAA,SAEK,SAAA;EAAA,mBAEG,oBAAA,CAAA,GAAwB,iBAAA;EAAA,mBACxB,mBAAA,CAAA,GAAuB,gBAAA;EAAA,IAE/B,gBAAA,CAAA;EAAA,QAIH,YAAA;EAAA,IACG,WAAA,CAAA,YAAW,UAAA;EAAA,UAIZ,cAAA,CAAe,KAAA,WAAgB,UAAA;EAAA,aAKrB,SAAA,CAAA;EAAA,aACA,OAAA,CAAA;EAAA,IAET,OAAA,CAAA;EAAA,QAIH,KAAA;EAAA,IAEJ,IAAA,CAAA;EAAA,QAII,KAAA;EAAA,IAEJ,IAAA,CAAA;EAAA,QAII,UAAA;EAAA,IAEJ,SAAA,CAAA,GAAS,SAAA;EAAA,QAIL,MAAA;EAAA,IAEJ,KAAA,CAAA,GAAK,SAAA;EAIF,QAAA,CAAS,KAAA,EAAO,SAAA;EAOhB,OAAA,CAAQ,KAAA;EAaR,OAAA,CAAQ,IAAA,EAAM,WAAA;EAOd,YAAA,CAAa,SAAA,EAAW,SAAA;EAAA,QAOvB,wBAAA;EAAA,QAMM,mBAAA;EAQD,KAAA,CAAA,GAAK,OAAA;EAoBL,gBAAA,CAAA,GAAgB,OAAA;EAOhB,IAAA,CAAK,OAAA,GAAU,WAAA,GAAW,OAAA;EAuChC,MAAA,CAAA;EAAA,mBAIY,UAAA,CACjB,OAAA,EAAS,IAAA,CAAK,aAAA,4BACd,OAAA,GAAU,WAAA;EAAA,mBAEO,YAAA,CAAA;EAEb,aAAA,CAAc,gBAAA,EAAkB,IAAA,GAAO,gBAAA,GAAgB,OAAA;EAAA,QAqHrD,2BAAA;EAqBF,gBAAA,CAAiB,YAAA,WAAoB,OAAA;EAAA,QAenC,UAAA;EAAA,QACA,iBAAA;EAAA,QACA,sBAAA;EAAA,QACA,kBAAA;EAAA,QACA,mBAAA;EAAA,QACA,0BAAA;EAAA,QACA,yBAAA;EAAA,QACA,oBAAA;EAAA,IAEG,SAAA,CAAA,GAAa,cAAA;EAAA,QAIhB,gBAAA;EAUD,cAAA,CAAA;EA6FA,aAAA,CAAA;EAAA,QAUC,iBAAA;EAAA,QAuBA,iBAAA;EAAA,UAKE,uBAAA,WAAkC,wBAAA,CAAA,CAC1C,KAAA,EAAO,CAAA,EACP,OAAA,EAAS,2BAAA,CAA4B,CAAA;EAQhC,WAAA,WAAsB,wBAAA,CAAA,CAC3B,KAAA,EAAO,CAAA,EACP,QAAA,EAAU,4BAAA,CAA6B,CAAA;AAAA"}
1
+ {"version":3,"file":"base-composer-runtime-core.d.ts","names":[],"sources":["../../../src/runtime/base/base-composer-runtime-core.ts"],"mappings":";;;;;;;;;uBA8BsB,uBAAA,SACZ,gBAAA,YACG,mBAAA;EAAA,SAEK,SAAA;EAAA,mBAEG,oBAAA,IAAwB,iBAAA;EAAA,mBACxB,mBAAA,IAAuB,gBAAA;EAAA,IAE/B,gBAAA;EAAA,QAIH,YAAA;EAAA,IACG,WAAA,aAAW,UAAA;EAAA,UAIZ,cAAA,CAAe,KAAA,WAAgB,UAAA;EAAA,aAKrB,SAAA;EAAA,aACA,OAAA;EAAA,IAET,OAAA;EAAA,QAIH,KAAA;EAAA,IAEJ,IAAA;EAAA,QAII,KAAA;EAAA,IAEJ,IAAA;EAAA,QAII,UAAA;EAAA,IAEJ,SAAA,IAAS,SAAA;EAAA,QAIL,MAAA;EAAA,IAEJ,KAAA,IAAK,SAAA;EAIF,QAAA,CAAS,KAAA,EAAO,SAAA;EAOhB,OAAA,CAAQ,KAAA;EAaR,OAAA,CAAQ,IAAA,EAAM,WAAA;EAOd,YAAA,CAAa,SAAA,EAAW,SAAA;EAAA,QAOvB,wBAAA;EAAA,QAMM,mBAAA;EAQD,KAAA,IAAK,OAAA;EAoBL,gBAAA,IAAgB,OAAA;EAOhB,IAAA,CAAK,OAAA,GAAU,WAAA,GAAW,OAAA;EAuChC,MAAA;EAAA,mBAIY,UAAA,CACjB,OAAA,EAAS,IAAA,CAAK,aAAA,4BACd,OAAA,GAAU,WAAA;EAAA,mBAEO,YAAA;EAEb,aAAA,CAAc,gBAAA,EAAkB,IAAA,GAAO,gBAAA,GAAgB,OAAA;EAAA,QAqHrD,2BAAA;EAqBF,gBAAA,CAAiB,YAAA,WAAoB,OAAA;EAAA,QAenC,UAAA;EAAA,QACA,iBAAA;EAAA,QACA,sBAAA;EAAA,QACA,kBAAA;EAAA,QACA,mBAAA;EAAA,QACA,0BAAA;EAAA,QACA,yBAAA;EAAA,QACA,oBAAA;EAAA,IAEG,SAAA,IAAa,cAAA;EAAA,QAIhB,gBAAA;EAUD,cAAA;EA6FA,aAAA;EAAA,QAUC,iBAAA;EAAA,QAuBA,iBAAA;EAAA,UAKE,uBAAA,WAAkC,wBAAA,EAC1C,KAAA,EAAO,CAAA,EACP,OAAA,EAAS,2BAAA,CAA4B,CAAA;EAQhC,WAAA,WAAsB,wBAAA,EAC3B,KAAA,EAAO,CAAA,EACP,QAAA,EAAU,4BAAA,CAA6B,CAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-thread-runtime-core.d.ts","names":[],"sources":["../../../src/runtime/base/base-thread-runtime-core.ts"],"mappings":";;;;;;;;;;;;;KAqCK,kBAAA;EACH,MAAA,GAAS,sBAAA;EACT,QAAA,GAAW,eAAA;EACX,WAAA,GAAc,iBAAA;EACd,KAAA,GAAQ,oBAAA;AAAA;AAAA,uBAGY,qBAAA,YAAiC,iBAAA;EAAA,iBAqExB,gBAAA;EAAA,QApErB,cAAA;EAAA,QACA,cAAA;EAAA,mBAEW,UAAA,EAAU,iBAAA;EAAA,aACT,QAAA,CAAA,GAAY,kBAAA;EAAA,aACZ,UAAA,CAAA;EAAA,aACA,cAAA,CAAA;EAAA,aACA,SAAA,CAAA;EAAA,aACA,WAAA,CAAA,YAAwB,gBAAA;EAAA,aACxB,MAAA,CAAA;EAAA,aAEA,YAAA,CAAA,GAAgB,mBAAA;EAAA,SACpB,MAAA,CAAO,OAAA,EAAS,aAAA;EAAA,SAChB,QAAA,CAAS,MAAA,EAAQ,cAAA;EAAA,SACjB,SAAA,CAAU,MAAA,EAAQ,eAAA;EAAA,SAClB,aAAA,CAAc,OAAA,EAAS,oBAAA;EAAA,SACvB,cAAA,CAAe,OAAA,EAAS,qBAAA;EAAA,SACxB,qBAAA,CACd,OAAA,EAAS,4BAAA;EAAA,SAEK,SAAA,CAAA;EAAA,SACA,mBAAA,CAAA;EAAA,SACA,mBAAA,CAAoB,KAAA;EAAA,UAE1B,cAAA,EAAgB,aAAA;EAAA,UAChB,gBAAA;EAAA,QACF,qBAAA;EAAA,QACA,sBAAA;EAAA,QACA,iBAAA;EAAA,UAEE,uBAAA,CAAA;EAAA,UAKA,gBAAA,CAAA,YAA6B,aAAA;EAAA,IAI5B,QAAA,CAAA,YAAqB,aAAA;EAAA,IAgBrB,KAAA,CAAA,gEAAK,kBAAA,oCAAA,iBAAA;EAAA,SAWA,QAAA,EAAQ,gCAAA;cAEK,gBAAA,EAAkB,oBAAA;EAExC,eAAA,CAAA,GAF4D,YAAA;EAAA,QAM3D,cAAA;EACD,eAAA,CAAgB,SAAA,WAAiB,8BAAA;EAGjC,SAAA,CAAU,SAAA;EAeV,cAAA,CAAe,SAAA;;;;;EAsBf,WAAA,CAAY,SAAA;EAOZ,cAAA,CAAe,QAAA;EAAA,UAKZ,kBAAA,CAAA;EAIH,uBAAA,WAAkC,sBAAA,CAAA,CACvC,KAAA,EAAO,CAAA,EACP,OAAA,EAAS,yBAAA,CAA0B,CAAA;EAQ9B,SAAA,CAAU,QAAA,eAAuB,WAAA;EAKjC,cAAA,CAAA;IAAiB,SAAA;IAAW;EAAA,GAAQ,qBAAA;EAAA,QAqBnC,aAAA;EACD,MAAA,EAAQ,WAAA;EAER,KAAA,CAAM,SAAA;EA8BN,YAAA,CAAA;EAAA,QAMC,aAAA;EAAA,QACA,YAAA;EACD,KAAA,EAAO,iBAAA;EAAA,QAEN,YAAA;EAAA,QACA,uBAAA;EAED,cAAA;EAEA,oBAAA,GAAwB,QAAA,iBAAuB,WAAA;EAK/C,YAAA,CAAA;EAAA,QA+DC,oBAAA;EAAA,QAEA,sBAAA;EAAA,QA8DA,4BAAA;EAaD,eAAA,CAAA;EAeA,SAAA,CAAA;EAUA,WAAA,CAAA;EAAA,UAUG,iBAAA,CAAA;EAOH,MAAA,CAAA,GAAM,yBAAA;EAIN,MAAA,CAAO,IAAA,EAAM,yBAAA;EAOb,KAAA,CAAM,eAAA,YAA2B,iBAAA;EAAA,QAIhC,iBAAA;EAKD,WAAA,WAAsB,sBAAA,CAAA,CAC3B,KAAA,EAAO,CAAA,EACP,QAAA,EAAU,0BAAA,CAA2B,CAAA,IAAE,WAAA;AAAA"}
1
+ {"version":3,"file":"base-thread-runtime-core.d.ts","names":[],"sources":["../../../src/runtime/base/base-thread-runtime-core.ts"],"mappings":";;;;;;;;;;;;;KAqCK,kBAAA;EACH,MAAA,GAAS,sBAAA;EACT,QAAA,GAAW,eAAA;EACX,WAAA,GAAc,iBAAA;EACd,KAAA,GAAQ,oBAAA;AAAA;AAAA,uBAGY,qBAAA,YAAiC,iBAAA;EAAA,iBAqExB,gBAAA;EAAA,QApErB,cAAA;EAAA,QACA,cAAA;EAAA,mBAEW,UAAA,EAAU,iBAAA;EAAA,aACT,QAAA,IAAY,kBAAA;EAAA,aACZ,UAAA;EAAA,aACA,cAAA;EAAA,aACA,SAAA;EAAA,aACA,WAAA,aAAwB,gBAAA;EAAA,aACxB,MAAA;EAAA,aAEA,YAAA,IAAgB,mBAAA;EAAA,SACpB,MAAA,CAAO,OAAA,EAAS,aAAA;EAAA,SAChB,QAAA,CAAS,MAAA,EAAQ,cAAA;EAAA,SACjB,SAAA,CAAU,MAAA,EAAQ,eAAA;EAAA,SAClB,aAAA,CAAc,OAAA,EAAS,oBAAA;EAAA,SACvB,cAAA,CAAe,OAAA,EAAS,qBAAA;EAAA,SACxB,qBAAA,CACd,OAAA,EAAS,4BAAA;EAAA,SAEK,SAAA;EAAA,SACA,mBAAA;EAAA,SACA,mBAAA,CAAoB,KAAA;EAAA,UAE1B,cAAA,EAAgB,aAAA;EAAA,UAChB,gBAAA;EAAA,QACF,qBAAA;EAAA,QACA,sBAAA;EAAA,QACA,iBAAA;EAAA,UAEE,uBAAA;EAAA,UAKA,gBAAA,aAA6B,aAAA;EAAA,IAI5B,QAAA,aAAqB,aAAA;EAAA,IAgBrB,KAAA,iEAAK,kBAAA,oCAAA,iBAAA;EAAA,SAWA,QAAA,EAAQ,gCAAA;cAEK,gBAAA,EAAkB,oBAAA;EAExC,eAAA,IAF4D,YAAA;EAAA,QAM3D,cAAA;EACD,eAAA,CAAgB,SAAA,WAAiB,8BAAA;EAGjC,SAAA,CAAU,SAAA;EAeV,cAAA,CAAe,SAAA;;;;;EAsBf,WAAA,CAAY,SAAA;EAOZ,cAAA,CAAe,QAAA;EAAA,UAKZ,kBAAA;EAIH,uBAAA,WAAkC,sBAAA,EACvC,KAAA,EAAO,CAAA,EACP,OAAA,EAAS,yBAAA,CAA0B,CAAA;EAQ9B,SAAA,CAAU,QAAA,eAAuB,WAAA;EAKjC,cAAA;IAAiB,SAAA;IAAW;EAAA,GAAQ,qBAAA;EAAA,QAqBnC,aAAA;EACD,MAAA,EAAQ,WAAA;EAER,KAAA,CAAM,SAAA;EA8BN,YAAA;EAAA,QAMC,aAAA;EAAA,QACA,YAAA;EACD,KAAA,EAAO,iBAAA;EAAA,QAEN,YAAA;EAAA,QACA,uBAAA;EAED,cAAA;EAEA,oBAAA,GAAwB,QAAA,iBAAuB,WAAA;EAK/C,YAAA;EAAA,QA+DC,oBAAA;EAAA,QAEA,sBAAA;EAAA,QA8DA,4BAAA;EAaD,eAAA;EAeA,SAAA;EAUA,WAAA;EAAA,UAUG,iBAAA;EAOH,MAAA,IAAM,yBAAA;EAIN,MAAA,CAAO,IAAA,EAAM,yBAAA;EAOb,KAAA,CAAM,eAAA,YAA2B,iBAAA;EAAA,QAIhC,iBAAA;EAKD,WAAA,WAAsB,sBAAA,EAC3B,KAAA,EAAO,CAAA,EACP,QAAA,EAAU,0BAAA,CAA2B,CAAA,IAAE,WAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"default-edit-composer-runtime-core.d.ts","names":[],"sources":["../../../src/runtime/base/default-edit-composer-runtime-core.ts"],"mappings":";;;;;;;;cAUa,8BAAA,SAAuC,uBAAA;EAAA,QAuBxC,OAAA;EAAA,QAQA,eAAA;EAAA,IA9BC,SAAA,CAAA;EAAA,IAIA,OAAA,CAAA;EAAA,UAID,oBAAA,CAAA,GAAoB,iBAAA;EAAA,UAIpB,mBAAA,CAAA,GAAmB,gBAAA;EAAA,QAIrB,aAAA;EAAA,QACA,oBAAA;EAAA,QACA,mBAAA;EAAA,QACA,SAAA;EAAA,QACA,SAAA;cAEE,OAAA,EAAS,iBAAA;IACf,QAAA;MAEM,WAAA,GAAc,iBAAA;MACd,SAAA,GAAY,gBAAA;IAAA;EAAA,GAIZ,eAAA;IACN,QAAA;IAAU;EAAA;IAAa,QAAA;IAAyB,OAAA,EAAS,aAAA;EAAA;EAAA,IA2BlD,QAAA,CAAA;EAAA,IAIA,QAAA,CAAA;EAIE,UAAA,CACX,OAAA,EAAS,IAAA,CAAK,aAAA,4BACd,OAAA,GAAU,WAAA,GAAW,OAAA;EAgChB,YAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"default-edit-composer-runtime-core.d.ts","names":[],"sources":["../../../src/runtime/base/default-edit-composer-runtime-core.ts"],"mappings":";;;;;;;;cAUa,8BAAA,SAAuC,uBAAA;EAAA,QAuBxC,OAAA;EAAA,QAQA,eAAA;EAAA,IA9BC,SAAA;EAAA,IAIA,OAAA;EAAA,UAID,oBAAA,IAAoB,iBAAA;EAAA,UAIpB,mBAAA,IAAmB,gBAAA;EAAA,QAIrB,aAAA;EAAA,QACA,oBAAA;EAAA,QACA,mBAAA;EAAA,QACA,SAAA;EAAA,QACA,SAAA;cAEE,OAAA,EAAS,iBAAA;IACf,QAAA;MAEM,WAAA,GAAc,iBAAA;MACd,SAAA,GAAY,gBAAA;IAAA;EAAA,GAIZ,eAAA;IACN,QAAA;IAAU;EAAA;IAAa,QAAA;IAAyB,OAAA,EAAS,aAAA;EAAA;EAAA,IA2BlD,QAAA;EAAA,IAIA,QAAA;EAIE,UAAA,CACX,OAAA,EAAS,IAAA,CAAK,aAAA,4BACd,OAAA,GAAU,WAAA,GAAW,OAAA;EAgChB,YAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"default-thread-composer-runtime-core.d.ts","names":[],"sources":["../../../src/runtime/base/default-thread-composer-runtime-core.ts"],"mappings":";;;;;;;;cAUa,gCAAA,SACH,uBAAA,YACG,yBAAA;EAAA,QAoBD,OAAA;EAAA,QAlBF,UAAA;EAAA,IACG,SAAA,CAAA;EAAA,IAIA,OAAA,CAAA;EAAA,UAID,oBAAA,CAAA,GAAoB,iBAAA;EAAA,UAIpB,mBAAA,CAAA,GAAmB,gBAAA;cAKnB,OAAA,EAAS,IAAA,CAAK,iBAAA;IACpB,QAAA;MAEM,WAAA,GAAc,iBAAA;MACd,SAAA,GAAY,gBAAA;IAAA;EAAA;EASf,OAAA,CAAA,GAT+B,WAAA;EAyBzB,UAAA,CACX,OAAA,EAAS,IAAA,CAAK,aAAA,4BACd,OAAA,GAAU,WAAA,GAAW,OAAA;EAUV,YAAA,CAAA,GAAY,OAAA;AAAA"}
1
+ {"version":3,"file":"default-thread-composer-runtime-core.d.ts","names":[],"sources":["../../../src/runtime/base/default-thread-composer-runtime-core.ts"],"mappings":";;;;;;;;cAUa,gCAAA,SACH,uBAAA,YACG,yBAAA;EAAA,QAoBD,OAAA;EAAA,QAlBF,UAAA;EAAA,IACG,SAAA;EAAA,IAIA,OAAA;EAAA,UAID,oBAAA,IAAoB,iBAAA;EAAA,UAIpB,mBAAA,IAAmB,gBAAA;cAKnB,OAAA,EAAS,IAAA,CAAK,iBAAA;IACpB,QAAA;MAEM,WAAA,GAAc,iBAAA;MACd,SAAA,GAAY,gBAAA;IAAA;EAAA;EASf,OAAA,IAT+B,WAAA;EAyBzB,UAAA,CACX,OAAA,EAAS,IAAA,CAAK,aAAA,4BACd,OAAA,GAAU,WAAA,GAAW,OAAA;EAUV,YAAA,IAAY,OAAA;AAAA"}
@@ -39,9 +39,17 @@ declare class MessageRepository {
39
39
  message: ThreadMessage;
40
40
  index: number;
41
41
  };
42
- appendOptimisticMessage(parentId: string | null, message: ThreadMessageLike): string;
43
42
  deleteMessage(messageId: string, replacementId?: string | null | undefined): void;
44
43
  getBranches(messageId: string): string[];
44
+ /**
45
+ * Evicts optimistic messages (`metadata.isOptimistic`) the head just moved
46
+ * away from. Since eviction runs on every head move, the only optimistic
47
+ * messages in the repository live on the branch the head previously pointed
48
+ * at — so we walk just that branch rather than the whole repository. Keeps a
49
+ * client→server id swap from leaving a phantom sibling, and drops off-branch
50
+ * placeholders.
51
+ */
52
+ private evictOffBranchOptimisticMessages;
45
53
  switchToBranch(messageId: string): void;
46
54
  resetHead(messageId: string | null): void;
47
55
  clear(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"message-repository.d.ts","names":[],"sources":["../../../src/runtime/utils/message-repository.ts"],"mappings":";;;;KAOY,6BAAA;EACV,OAAA,EAAS,aAAA;EACT,QAAA;EACA,SAAA,GAAY,SAAS;AAAA;AAAA,KAGX,yBAAA;EACV,MAAA;EACA,QAAA,EAAU,KAAA;IACR,OAAA,EAAS,aAAA;IACT,QAAA;IACA,SAAA,GAAY,SAAA;EAAA;AAAA;AAAA,cAIH,yBAAA;iCAEU,iBAAA,OAClB,yBAAA;;IAmBC,OAAA,EAAS,iBAAA;IACT,QAAA;EAAA,KACC,OAAA;IACS,MAAA;EAAA,MACX,yBAAA;AAAA;AAAA,cAyDQ,iBAAA;EAAA,QACH,QAAA;EAAA,QACA,IAAA;EAAA,QACA,IAAA;EAAA,QAKA,YAAA;EAAA,QAUA,SAAA;EAAA,QAwDA,SAAA;EAAA,IAQJ,MAAA,CAAA;EAIJ,WAAA,CAAY,MAAA,qBAAe,aAAA;EAuB3B,kBAAA,CAAmB,QAAA,iBAAyB,OAAA,EAAS,aAAA;EAiCrD,UAAA,CAAW,SAAA;;;;;EAcX,uBAAA,CAAwB,QAAA,iBAAyB,OAAA,EAAS,iBAAA;EAc1D,aAAA,CAAc,SAAA,UAAmB,aAAA;EAsCjC,WAAA,CAAY,SAAA;EAWZ,cAAA,CAAe,SAAA;EAef,SAAA,CAAU,SAAA;EA4CV,KAAA,CAAA;EAUA,MAAA,CAAA,GAAU,yBAAA;EAgBV,MAAA,CAAA;IAAS,MAAA;IAAQ;EAAA,GAAY,yBAAA;AAAA"}
1
+ {"version":3,"file":"message-repository.d.ts","names":[],"sources":["../../../src/runtime/utils/message-repository.ts"],"mappings":";;;;KAOY,6BAAA;EACV,OAAA,EAAS,aAAA;EACT,QAAA;EACA,SAAA,GAAY,SAAS;AAAA;AAAA,KAGX,yBAAA;EACV,MAAA;EACA,QAAA,EAAU,KAAA;IACR,OAAA,EAAS,aAAA;IACT,QAAA;IACA,SAAA,GAAY,SAAA;EAAA;AAAA;AAAA,cAIH,yBAAA;iCAEU,iBAAA,OAClB,yBAAA;;IAmBC,OAAA,EAAS,iBAAA;IACT,QAAA;EAAA,KACC,OAAA;IACS,MAAA;EAAA,MACX,yBAAA;AAAA;AAAA,cAyDQ,iBAAA;EAAA,QACH,QAAA;EAAA,QACA,IAAA;EAAA,QACA,IAAA;EAAA,QAKA,YAAA;EAAA,QAUA,SAAA;EAAA,QAwDA,SAAA;EAAA,IAQJ,MAAA;EAIJ,WAAA,CAAY,MAAA,qBAAe,aAAA;EAuB3B,kBAAA,CAAmB,QAAA,iBAAyB,OAAA,EAAS,aAAA;EAiCrD,UAAA,CAAW,SAAA;;;;;EAcX,aAAA,CAAc,SAAA,UAAmB,aAAA;EAsCjC,WAAA,CAAY,SAAA;;;;;;;;;UAmBJ,gCAAA;EA+BR,cAAA,CAAe,SAAA;EAkBf,SAAA,CAAU,SAAA;EAgDV,KAAA;EAUA,MAAA,IAAU,yBAAA;EAyBV,MAAA;IAAS,MAAA;IAAQ;EAAA,GAAY,yBAAA;AAAA"}
@@ -1,4 +1,4 @@
1
- import { generateId, generateOptimisticId } from "../../utils/id.js";
1
+ import { generateId } from "../../utils/id.js";
2
2
  import { getAutoStatus } from "./auto-status.js";
3
3
  import { fromThreadMessageLike } from "./thread-message-like.js";
4
4
  //#region src/runtime/utils/message-repository.ts
@@ -126,14 +126,6 @@ var MessageRepository = class {
126
126
  index: message.level
127
127
  };
128
128
  }
129
- appendOptimisticMessage(parentId, message) {
130
- let optimisticId;
131
- do
132
- optimisticId = generateOptimisticId();
133
- while (this.messages.has(optimisticId));
134
- this.addOrUpdateMessage(parentId, fromThreadMessageLike(message, optimisticId, { type: "running" }));
135
- return optimisticId;
136
- }
137
129
  deleteMessage(messageId, replacementId) {
138
130
  const message = this.messages.get(messageId);
139
131
  if (!message) throw new Error("MessageRepository(deleteMessage): Message not found. This is likely an internal bug in assistant-ui.");
@@ -155,12 +147,33 @@ var MessageRepository = class {
155
147
  const { children } = message.prev ?? this.root;
156
148
  return children;
157
149
  }
150
+ /**
151
+ * Evicts optimistic messages (`metadata.isOptimistic`) the head just moved
152
+ * away from. Since eviction runs on every head move, the only optimistic
153
+ * messages in the repository live on the branch the head previously pointed
154
+ * at — so we walk just that branch rather than the whole repository. Keeps a
155
+ * client→server id swap from leaving a phantom sibling, and drops off-branch
156
+ * placeholders.
157
+ */
158
+ evictOffBranchOptimisticMessages(previousHead, currentHead) {
159
+ if (!previousHead) return;
160
+ const onHeadBranch = /* @__PURE__ */ new Set();
161
+ for (let current = currentHead; current; current = current.prev) onHeadBranch.add(current.current.id);
162
+ const stale = [];
163
+ for (let current = previousHead; current; current = current.prev) {
164
+ if (onHeadBranch.has(current.current.id)) break;
165
+ if (current.current.metadata?.isOptimistic) stale.push(current.current.id);
166
+ }
167
+ for (const id of stale) if (this.messages.has(id)) this.deleteMessage(id);
168
+ }
158
169
  switchToBranch(messageId) {
159
170
  const message = this.messages.get(messageId);
160
171
  if (!message) throw new Error("MessageRepository(switchToBranch): Branch not found. This is likely an internal bug in assistant-ui.");
172
+ const previousHead = this.head;
161
173
  const prevOrRoot = message.prev ?? this.root;
162
174
  prevOrRoot.next = message;
163
175
  this.head = findHead(message);
176
+ this.evictOffBranchOptimisticMessages(previousHead, this.head);
164
177
  this._messages.dirty();
165
178
  }
166
179
  resetHead(messageId) {
@@ -170,6 +183,7 @@ var MessageRepository = class {
170
183
  }
171
184
  const message = this.messages.get(messageId);
172
185
  if (!message) throw new Error("MessageRepository(resetHead): Branch not found. This is likely an internal bug in assistant-ui.");
186
+ const previousHead = this.head;
173
187
  if (message.children.length > 0) {
174
188
  const deleteDescendants = (msg) => {
175
189
  for (const childId of msg.children) {
@@ -187,6 +201,7 @@ var MessageRepository = class {
187
201
  this.head = message;
188
202
  for (let current = message; current; current = current.prev) if (current.prev) current.prev.next = current;
189
203
  else this.root.next = current;
204
+ this.evictOffBranchOptimisticMessages(previousHead, this.head);
190
205
  this._messages.dirty();
191
206
  }
192
207
  clear() {
@@ -200,12 +215,17 @@ var MessageRepository = class {
200
215
  }
201
216
  export() {
202
217
  const exportItems = [];
203
- for (const [, message] of this.messages) exportItems.push({
204
- message: message.current,
205
- parentId: message.prev?.current.id ?? null
206
- });
218
+ for (const [, message] of this.messages) {
219
+ if (message.current.metadata?.isOptimistic) continue;
220
+ exportItems.push({
221
+ message: message.current,
222
+ parentId: message.prev?.current.id ?? null
223
+ });
224
+ }
225
+ let head = this.head;
226
+ while (head?.current.metadata?.isOptimistic) head = head.prev;
207
227
  return {
208
- headId: this.head?.current.id ?? null,
228
+ headId: head?.current.id ?? null,
209
229
  messages: exportItems
210
230
  };
211
231
  }