@assistant-ui/react 0.10.24 → 0.10.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/{ContentPartRuntime.d.ts → MessagePartRuntime.d.ts} +14 -14
- package/dist/api/{ContentPartRuntime.d.ts.map → MessagePartRuntime.d.ts.map} +1 -1
- package/dist/api/{ContentPartRuntime.js → MessagePartRuntime.js} +6 -6
- package/dist/api/{ContentPartRuntime.js.map → MessagePartRuntime.js.map} +1 -1
- package/dist/api/MessageRuntime.d.ts +8 -8
- package/dist/api/MessageRuntime.js +17 -17
- package/dist/api/MessageRuntime.js.map +1 -1
- package/dist/api/RuntimePathTypes.d.ts +2 -2
- package/dist/api/ThreadListRuntime.d.ts +3 -0
- package/dist/api/ThreadListRuntime.d.ts.map +1 -1
- package/dist/api/ThreadListRuntime.js +5 -1
- package/dist/api/ThreadListRuntime.js.map +1 -1
- package/dist/api/ThreadRuntime.d.ts +5 -0
- package/dist/api/ThreadRuntime.d.ts.map +1 -1
- package/dist/api/ThreadRuntime.js +1 -0
- package/dist/api/ThreadRuntime.js.map +1 -1
- package/dist/api/index.d.ts +2 -1
- package/dist/api/index.d.ts.map +1 -1
- package/dist/cloud/auiV0.d.ts +2 -2
- package/dist/cloud/auiV0.js +1 -1
- package/dist/cloud/auiV0.js.map +1 -1
- package/dist/context/providers/MessagePartRuntimeProvider.d.ts +9 -0
- package/dist/context/providers/{ContentPartRuntimeProvider.d.ts.map → MessagePartRuntimeProvider.d.ts.map} +1 -1
- package/dist/context/providers/{ContentPartRuntimeProvider.js → MessagePartRuntimeProvider.js} +9 -9
- package/dist/context/providers/MessagePartRuntimeProvider.js.map +1 -0
- package/dist/context/providers/{TextContentPartProvider.d.ts → TextMessagePartProvider.d.ts} +3 -3
- package/dist/context/providers/{TextContentPartProvider.d.ts.map → TextMessagePartProvider.d.ts.map} +1 -1
- package/dist/context/providers/{TextContentPartProvider.js → TextMessagePartProvider.js} +19 -19
- package/dist/context/providers/{TextContentPartProvider.js.map → TextMessagePartProvider.js.map} +1 -1
- package/dist/context/providers/index.d.ts +2 -1
- package/dist/context/providers/index.d.ts.map +1 -1
- package/dist/context/providers/index.js +4 -2
- package/dist/context/providers/index.js.map +1 -1
- package/dist/context/react/AttachmentContext.d.ts +72 -72
- package/dist/context/react/MessagePartContext.d.ts +41 -0
- package/dist/context/react/{ContentPartContext.d.ts.map → MessagePartContext.d.ts.map} +1 -1
- package/dist/context/react/MessagePartContext.js +25 -0
- package/dist/context/react/MessagePartContext.js.map +1 -0
- package/dist/context/react/index.d.ts +1 -1
- package/dist/context/react/index.js +3 -3
- package/dist/context/react/index.js.map +1 -1
- package/dist/context/stores/AssistantToolUIs.d.ts +3 -3
- package/dist/context/stores/AssistantToolUIs.js.map +1 -1
- package/dist/model-context/useAssistantTool.d.ts +2 -2
- package/dist/model-context/useAssistantTool.js.map +1 -1
- package/dist/model-context/useAssistantToolUI.d.ts +2 -2
- package/dist/model-context/useAssistantToolUI.js.map +1 -1
- package/dist/model-context/useInlineRender.d.ts +2 -2
- package/dist/model-context/useInlineRender.js.map +1 -1
- package/dist/primitives/assistantModal/AssistantModalContent.d.ts +2 -0
- package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -1
- package/dist/primitives/assistantModal/AssistantModalContent.js +2 -1
- package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
- package/dist/primitives/index.d.ts +12 -6
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +23 -11
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/message/MessageParts.d.ts +116 -0
- package/dist/primitives/message/MessageParts.d.ts.map +1 -0
- package/dist/primitives/message/MessageParts.js +208 -0
- package/dist/primitives/message/MessageParts.js.map +1 -0
- package/dist/primitives/message/index.d.ts +2 -1
- package/dist/primitives/message/index.d.ts.map +1 -1
- package/dist/primitives/message/index.js +4 -2
- package/dist/primitives/message/index.js.map +1 -1
- package/dist/primitives/{contentPart/ContentPartImage.d.ts → messagePart/MessagePartImage.d.ts} +8 -8
- package/dist/primitives/{contentPart/ContentPartImage.d.ts.map → messagePart/MessagePartImage.d.ts.map} +1 -1
- package/dist/primitives/messagePart/MessagePartImage.js +16 -0
- package/dist/primitives/messagePart/MessagePartImage.js.map +1 -0
- package/dist/primitives/messagePart/MessagePartInProgress.d.ts +6 -0
- package/dist/primitives/{contentPart/ContentPartInProgress.d.ts.map → messagePart/MessagePartInProgress.d.ts.map} +1 -1
- package/dist/primitives/messagePart/MessagePartInProgress.js +13 -0
- package/dist/primitives/messagePart/MessagePartInProgress.js.map +1 -0
- package/dist/primitives/{contentPart/ContentPartText.d.ts → messagePart/MessagePartText.d.ts} +6 -6
- package/dist/primitives/{contentPart/ContentPartText.d.ts.map → messagePart/MessagePartText.d.ts.map} +1 -1
- package/dist/primitives/messagePart/MessagePartText.js +18 -0
- package/dist/primitives/{contentPart/ContentPartText.js.map → messagePart/MessagePartText.js.map} +1 -1
- package/dist/primitives/messagePart/index.d.ts +4 -0
- package/dist/primitives/{contentPart → messagePart}/index.d.ts.map +1 -1
- package/dist/primitives/messagePart/index.js +10 -0
- package/dist/primitives/messagePart/index.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartFile.d.ts +5 -0
- package/dist/primitives/messagePart/useMessagePartFile.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartFile.js +18 -0
- package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartImage.d.ts +5 -0
- package/dist/primitives/messagePart/useMessagePartImage.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartImage.js +18 -0
- package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartReasoning.d.ts +5 -0
- package/dist/primitives/messagePart/useMessagePartReasoning.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartReasoning.js +18 -0
- package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartSource.d.ts +5 -0
- package/dist/primitives/messagePart/useMessagePartSource.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartSource.js +18 -0
- package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -0
- package/dist/primitives/messagePart/useMessagePartText.d.ts +7 -0
- package/dist/primitives/messagePart/useMessagePartText.d.ts.map +1 -0
- package/dist/primitives/messagePart/useMessagePartText.js +18 -0
- package/dist/primitives/messagePart/useMessagePartText.js.map +1 -0
- package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts +1 -0
- package/dist/runtimes/core/BaseThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/core/BaseThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/core/ThreadListRuntimeCore.d.ts +1 -0
- package/dist/runtimes/core/ThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/core/ThreadRuntimeCore.d.ts +1 -0
- package/dist/runtimes/core/ThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +2 -0
- package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts +1 -0
- package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js +3 -0
- package/dist/runtimes/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts +1 -0
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +3 -8
- package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.d.ts +3 -3
- package/dist/runtimes/external-store/ThreadMessageLike.js +4 -4
- package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
- package/dist/runtimes/external-store/createMessageConverter.js +3 -3
- package/dist/runtimes/external-store/createMessageConverter.js.map +1 -1
- package/dist/runtimes/external-store/external-message-converter.js.map +1 -1
- package/dist/runtimes/local/ChatModelAdapter.d.ts +4 -4
- package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts +1 -0
- package/dist/runtimes/local/LocalThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/local/LocalThreadListRuntimeCore.js +3 -0
- package/dist/runtimes/local/LocalThreadListRuntimeCore.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +2 -0
- package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js +12 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js +1 -0
- package/dist/runtimes/remote-thread-list/EMPTY_THREAD_CORE.js.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts +2 -0
- package/dist/runtimes/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +3 -0
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +3 -0
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/runtimes/utils/MessageRepository.js +1 -1
- package/dist/runtimes/utils/MessageRepository.js.map +1 -1
- package/dist/tests/setup.js +8 -8
- package/dist/tests/setup.js.map +1 -1
- package/dist/types/AssistantTypes.d.ts +15 -15
- package/dist/types/AttachmentTypes.d.ts +3 -3
- package/dist/types/MessagePartComponentTypes.d.ts +25 -0
- package/dist/types/{ContentPartComponentTypes.d.ts.map → MessagePartComponentTypes.d.ts.map} +1 -1
- package/dist/types/MessagePartComponentTypes.js +1 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/getThreadMessageText.js.map +1 -1
- package/dist/utils/smooth/SmoothContext.js +3 -3
- package/dist/utils/smooth/SmoothContext.js.map +1 -1
- package/dist/utils/smooth/useSmooth.d.ts +3 -3
- package/dist/utils/smooth/useSmooth.js.map +1 -1
- package/dist/utils/useToolArgsFieldStatus.js +3 -3
- package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
- package/package.json +8 -8
- package/src/api/{ContentPartRuntime.ts → MessagePartRuntime.ts} +20 -20
- package/src/api/MessageRuntime.ts +32 -32
- package/src/api/RuntimePathTypes.ts +2 -2
- package/src/api/ThreadListRuntime.ts +8 -0
- package/src/api/ThreadRuntime.ts +6 -0
- package/src/api/index.ts +11 -3
- package/src/cloud/auiV0.ts +3 -3
- package/src/context/providers/MessagePartRuntimeProvider.tsx +42 -0
- package/src/context/providers/{TextContentPartProvider.tsx → TextMessagePartProvider.tsx} +27 -27
- package/src/context/providers/index.ts +4 -1
- package/src/context/react/MessagePartContext.ts +37 -0
- package/src/context/react/index.ts +1 -1
- package/src/context/stores/AssistantToolUIs.ts +4 -4
- package/src/model-context/useAssistantTool.tsx +2 -2
- package/src/model-context/useAssistantToolUI.tsx +2 -2
- package/src/model-context/useInlineRender.tsx +3 -3
- package/src/primitives/assistantModal/AssistantModalContent.tsx +5 -1
- package/src/primitives/index.ts +14 -6
- package/src/primitives/message/MessageParts.tsx +423 -0
- package/src/primitives/message/index.ts +2 -1
- package/src/primitives/messagePart/MessagePartImage.tsx +39 -0
- package/src/primitives/messagePart/MessagePartInProgress.tsx +19 -0
- package/src/primitives/{contentPart/ContentPartText.tsx → messagePart/MessagePartText.tsx} +10 -10
- package/src/primitives/messagePart/index.ts +3 -0
- package/src/primitives/messagePart/useMessagePartFile.tsx +18 -0
- package/src/primitives/messagePart/useMessagePartImage.tsx +18 -0
- package/src/primitives/messagePart/useMessagePartReasoning.tsx +18 -0
- package/src/primitives/messagePart/useMessagePartSource.tsx +18 -0
- package/src/primitives/messagePart/useMessagePartText.tsx +18 -0
- package/src/runtimes/core/BaseThreadRuntimeCore.tsx +1 -0
- package/src/runtimes/core/ThreadListRuntimeCore.tsx +1 -0
- package/src/runtimes/core/ThreadRuntimeCore.tsx +1 -0
- package/src/runtimes/external-store/ExternalStoreAdapter.tsx +2 -0
- package/src/runtimes/external-store/ExternalStoreThreadListRuntimeCore.tsx +4 -0
- package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +3 -8
- package/src/runtimes/external-store/ThreadMessageLike.tsx +21 -21
- package/src/runtimes/external-store/createMessageConverter.tsx +3 -3
- package/src/runtimes/external-store/external-message-converter.tsx +2 -2
- package/src/runtimes/local/ChatModelAdapter.tsx +13 -13
- package/src/runtimes/local/LocalThreadListRuntimeCore.tsx +4 -0
- package/src/runtimes/local/LocalThreadRuntimeCore.tsx +30 -15
- package/src/runtimes/remote-thread-list/EMPTY_THREAD_CORE.tsx +1 -0
- package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +4 -0
- package/src/runtimes/utils/MessageRepository.tsx +1 -1
- package/src/tests/MessageRepository.test.ts +6 -6
- package/src/types/AssistantTypes.ts +24 -24
- package/src/types/AttachmentTypes.ts +3 -3
- package/src/types/MessagePartComponentTypes.tsx +52 -0
- package/src/types/index.ts +69 -28
- package/src/utils/getThreadMessageText.tsx +2 -2
- package/src/utils/smooth/SmoothContext.tsx +7 -7
- package/src/utils/smooth/useSmooth.tsx +7 -7
- package/src/utils/useToolArgsFieldStatus.tsx +3 -3
- package/dist/context/providers/ContentPartRuntimeProvider.d.ts +0 -9
- package/dist/context/providers/ContentPartRuntimeProvider.js.map +0 -1
- package/dist/context/react/ContentPartContext.d.ts +0 -41
- package/dist/context/react/ContentPartContext.js +0 -25
- package/dist/context/react/ContentPartContext.js.map +0 -1
- package/dist/primitives/contentPart/ContentPartImage.js +0 -16
- package/dist/primitives/contentPart/ContentPartImage.js.map +0 -1
- package/dist/primitives/contentPart/ContentPartInProgress.d.ts +0 -6
- package/dist/primitives/contentPart/ContentPartInProgress.js +0 -13
- package/dist/primitives/contentPart/ContentPartInProgress.js.map +0 -1
- package/dist/primitives/contentPart/ContentPartText.js +0 -18
- package/dist/primitives/contentPart/index.d.ts +0 -4
- package/dist/primitives/contentPart/index.js +0 -10
- package/dist/primitives/contentPart/index.js.map +0 -1
- package/dist/primitives/contentPart/useContentPartFile.d.ts +0 -5
- package/dist/primitives/contentPart/useContentPartFile.d.ts.map +0 -1
- package/dist/primitives/contentPart/useContentPartFile.js +0 -18
- package/dist/primitives/contentPart/useContentPartFile.js.map +0 -1
- package/dist/primitives/contentPart/useContentPartImage.d.ts +0 -5
- package/dist/primitives/contentPart/useContentPartImage.d.ts.map +0 -1
- package/dist/primitives/contentPart/useContentPartImage.js +0 -18
- package/dist/primitives/contentPart/useContentPartImage.js.map +0 -1
- package/dist/primitives/contentPart/useContentPartReasoning.d.ts +0 -5
- package/dist/primitives/contentPart/useContentPartReasoning.d.ts.map +0 -1
- package/dist/primitives/contentPart/useContentPartReasoning.js +0 -18
- package/dist/primitives/contentPart/useContentPartReasoning.js.map +0 -1
- package/dist/primitives/contentPart/useContentPartSource.d.ts +0 -5
- package/dist/primitives/contentPart/useContentPartSource.d.ts.map +0 -1
- package/dist/primitives/contentPart/useContentPartSource.js +0 -18
- package/dist/primitives/contentPart/useContentPartSource.js.map +0 -1
- package/dist/primitives/contentPart/useContentPartText.d.ts +0 -7
- package/dist/primitives/contentPart/useContentPartText.d.ts.map +0 -1
- package/dist/primitives/contentPart/useContentPartText.js +0 -18
- package/dist/primitives/contentPart/useContentPartText.js.map +0 -1
- package/dist/primitives/message/MessageContent.d.ts +0 -64
- package/dist/primitives/message/MessageContent.d.ts.map +0 -1
- package/dist/primitives/message/MessageContent.js +0 -141
- package/dist/primitives/message/MessageContent.js.map +0 -1
- package/dist/types/ContentPartComponentTypes.d.ts +0 -25
- package/dist/types/ContentPartComponentTypes.js +0 -1
- package/src/context/providers/ContentPartRuntimeProvider.tsx +0 -42
- package/src/context/react/ContentPartContext.ts +0 -37
- package/src/primitives/contentPart/ContentPartImage.tsx +0 -39
- package/src/primitives/contentPart/ContentPartInProgress.tsx +0 -19
- package/src/primitives/contentPart/index.ts +0 -3
- package/src/primitives/contentPart/useContentPartFile.tsx +0 -18
- package/src/primitives/contentPart/useContentPartImage.tsx +0 -18
- package/src/primitives/contentPart/useContentPartReasoning.tsx +0 -18
- package/src/primitives/contentPart/useContentPartSource.tsx +0 -18
- package/src/primitives/contentPart/useContentPartText.tsx +0 -18
- package/src/primitives/message/MessageContent.tsx +0 -277
- package/src/types/ContentPartComponentTypes.tsx +0 -52
- /package/dist/types/{ContentPartComponentTypes.js.map → MessagePartComponentTypes.js.map} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/context/stores/AssistantToolUIs.ts"],"sourcesContent":["import { create } from \"zustand\";\nimport type {
|
1
|
+
{"version":3,"sources":["../../../src/context/stores/AssistantToolUIs.ts"],"sourcesContent":["import { create } from \"zustand\";\nimport type { ToolCallMessagePartComponent } from \"../../types/MessagePartComponentTypes\";\nimport { Unsubscribe } from \"../../types\";\n\nexport type AssistantToolUIsState = {\n /**\n * Get the tool UI configured for a given tool name.\n */\n getToolUI: (toolName: string) => ToolCallMessagePartComponent | null;\n\n /**\n * Registers a tool UI for a given tool name. Returns an unsubscribe function to remove the tool UI.\n */\n setToolUI: (\n toolName: string,\n render: ToolCallMessagePartComponent,\n ) => Unsubscribe;\n};\n\nexport const makeAssistantToolUIsStore = () =>\n create<AssistantToolUIsState>((set) => {\n const renderers = new Map<string, ToolCallMessagePartComponent[]>();\n\n return Object.freeze({\n getToolUI: (name) => {\n const arr = renderers.get(name);\n const last = arr?.at(-1);\n if (last) return last;\n return null;\n },\n setToolUI: (name, render) => {\n let arr = renderers.get(name);\n if (!arr) {\n arr = [];\n renderers.set(name, arr);\n }\n arr.push(render);\n set({}); // notify the store listeners\n\n return () => {\n const index = arr.indexOf(render);\n if (index !== -1) {\n arr.splice(index, 1);\n }\n if (index === arr.length) {\n set({}); // notify the store listeners\n }\n };\n },\n }) satisfies AssistantToolUIsState;\n });\n"],"mappings":";AAAA,SAAS,cAAc;AAmBhB,IAAM,4BAA4B,MACvC,OAA8B,CAAC,QAAQ;AACrC,QAAM,YAAY,oBAAI,IAA4C;AAElE,SAAO,OAAO,OAAO;AAAA,IACnB,WAAW,CAAC,SAAS;AACnB,YAAM,MAAM,UAAU,IAAI,IAAI;AAC9B,YAAM,OAAO,KAAK,GAAG,EAAE;AACvB,UAAI,KAAM,QAAO;AACjB,aAAO;AAAA,IACT;AAAA,IACA,WAAW,CAAC,MAAM,WAAW;AAC3B,UAAI,MAAM,UAAU,IAAI,IAAI;AAC5B,UAAI,CAAC,KAAK;AACR,cAAM,CAAC;AACP,kBAAU,IAAI,MAAM,GAAG;AAAA,MACzB;AACA,UAAI,KAAK,MAAM;AACf,UAAI,CAAC,CAAC;AAEN,aAAO,MAAM;AACX,cAAM,QAAQ,IAAI,QAAQ,MAAM;AAChC,YAAI,UAAU,IAAI;AAChB,cAAI,OAAO,OAAO,CAAC;AAAA,QACrB;AACA,YAAI,UAAU,IAAI,QAAQ;AACxB,cAAI,CAAC,CAAC;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import type {
|
1
|
+
import type { ToolCallMessagePartComponent } from "../types/MessagePartComponentTypes";
|
2
2
|
import type { Tool } from "assistant-stream";
|
3
3
|
export type AssistantToolProps<TArgs extends Record<string, unknown>, TResult> = Tool<TArgs, TResult> & {
|
4
4
|
toolName: string;
|
5
|
-
render?:
|
5
|
+
render?: ToolCallMessagePartComponent<TArgs, TResult> | undefined;
|
6
6
|
};
|
7
7
|
export declare const useAssistantTool: <TArgs extends Record<string, unknown>, TResult>(tool: AssistantToolProps<TArgs, TResult>) => void;
|
8
8
|
//# sourceMappingURL=useAssistantTool.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/model-context/useAssistantTool.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport {\n useAssistantRuntime,\n useToolUIsStore,\n} from \"../context/react/AssistantContext\";\nimport type {
|
1
|
+
{"version":3,"sources":["../../src/model-context/useAssistantTool.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport {\n useAssistantRuntime,\n useToolUIsStore,\n} from \"../context/react/AssistantContext\";\nimport type { ToolCallMessagePartComponent } from \"../types/MessagePartComponentTypes\";\nimport type { Tool } from \"assistant-stream\";\n\nexport type AssistantToolProps<\n TArgs extends Record<string, unknown>,\n TResult,\n> = Tool<TArgs, TResult> & {\n toolName: string;\n render?: ToolCallMessagePartComponent<TArgs, TResult> | undefined;\n};\n\nexport const useAssistantTool = <\n TArgs extends Record<string, unknown>,\n TResult,\n>(\n tool: AssistantToolProps<TArgs, TResult>,\n) => {\n const assistantRuntime = useAssistantRuntime();\n const toolUIsStore = useToolUIsStore();\n\n useEffect(() => {\n return tool.render\n ? toolUIsStore.getState().setToolUI(tool.toolName, tool.render)\n : undefined;\n }, [toolUIsStore, tool.toolName, tool.render]);\n\n useEffect(() => {\n const { toolName, render, ...rest } = tool;\n const context = {\n tools: {\n [toolName]: rest,\n },\n };\n return assistantRuntime.registerModelContextProvider({\n getModelContext: () => context,\n });\n }, [assistantRuntime, tool]);\n};\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAYA,IAAM,mBAAmB,CAI9B,SACG;AACH,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,eAAe,gBAAgB;AAErC,YAAU,MAAM;AACd,WAAO,KAAK,SACR,aAAa,SAAS,EAAE,UAAU,KAAK,UAAU,KAAK,MAAM,IAC5D;AAAA,EACN,GAAG,CAAC,cAAc,KAAK,UAAU,KAAK,MAAM,CAAC;AAE7C,YAAU,MAAM;AACd,UAAM,EAAE,UAAU,QAAQ,GAAG,KAAK,IAAI;AACtC,UAAM,UAAU;AAAA,MACd,OAAO;AAAA,QACL,CAAC,QAAQ,GAAG;AAAA,MACd;AAAA,IACF;AACA,WAAO,iBAAiB,6BAA6B;AAAA,MACnD,iBAAiB,MAAM;AAAA,IACzB,CAAC;AAAA,EACH,GAAG,CAAC,kBAAkB,IAAI,CAAC;AAC7B;","names":[]}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import type {
|
1
|
+
import type { ToolCallMessagePartComponent } from "../types/MessagePartComponentTypes";
|
2
2
|
export type AssistantToolUIProps<TArgs, TResult> = {
|
3
3
|
toolName: string;
|
4
|
-
render:
|
4
|
+
render: ToolCallMessagePartComponent<TArgs, TResult>;
|
5
5
|
};
|
6
6
|
export declare const useAssistantToolUI: (tool: AssistantToolUIProps<any, any> | null) => void;
|
7
7
|
//# sourceMappingURL=useAssistantToolUI.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/model-context/useAssistantToolUI.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { useToolUIsStore } from \"../context/react/AssistantContext\";\nimport type {
|
1
|
+
{"version":3,"sources":["../../src/model-context/useAssistantToolUI.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect } from \"react\";\nimport { useToolUIsStore } from \"../context/react/AssistantContext\";\nimport type { ToolCallMessagePartComponent } from \"../types/MessagePartComponentTypes\";\n\nexport type AssistantToolUIProps<TArgs, TResult> = {\n toolName: string;\n render: ToolCallMessagePartComponent<TArgs, TResult>;\n};\n\nexport const useAssistantToolUI = (\n tool: AssistantToolUIProps<any, any> | null,\n) => {\n const toolUIsStore = useToolUIsStore();\n useEffect(() => {\n if (!tool?.toolName || !tool?.render) return;\n return toolUIsStore.getState().setToolUI(tool.toolName, tool.render);\n }, [toolUIsStore, tool?.toolName, tool?.render]);\n};\n"],"mappings":";;;AAEA,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAQzB,IAAM,qBAAqB,CAChC,SACG;AACH,QAAM,eAAe,gBAAgB;AACrC,YAAU,MAAM;AACd,QAAI,CAAC,MAAM,YAAY,CAAC,MAAM,OAAQ;AACtC,WAAO,aAAa,SAAS,EAAE,UAAU,KAAK,UAAU,KAAK,MAAM;AAAA,EACrE,GAAG,CAAC,cAAc,MAAM,UAAU,MAAM,MAAM,CAAC;AACjD;","names":[]}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import { FC } from "react";
|
2
|
-
import {
|
3
|
-
export declare const useInlineRender: <TArgs, TResult>(toolUI: FC<
|
2
|
+
import { ToolCallMessagePartProps } from "../types";
|
3
|
+
export declare const useInlineRender: <TArgs, TResult>(toolUI: FC<ToolCallMessagePartProps<TArgs, TResult>>) => FC<ToolCallMessagePartProps<TArgs, TResult>>;
|
4
4
|
//# sourceMappingURL=useInlineRender.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/model-context/useInlineRender.tsx"],"sourcesContent":["\"use client\";\n\nimport { FC, useCallback, useEffect, useState } from \"react\";\nimport {
|
1
|
+
{"version":3,"sources":["../../src/model-context/useInlineRender.tsx"],"sourcesContent":["\"use client\";\n\nimport { FC, useCallback, useEffect, useState } from \"react\";\nimport { ToolCallMessagePartProps } from \"../types\";\nimport { create } from \"zustand\";\n\nexport const useInlineRender = <TArgs, TResult>(\n toolUI: FC<ToolCallMessagePartProps<TArgs, TResult>>,\n): FC<ToolCallMessagePartProps<TArgs, TResult>> => {\n const [useToolUIStore] = useState(() =>\n create(() => ({\n toolUI,\n })),\n );\n\n useEffect(() => {\n useToolUIStore.setState({ toolUI });\n }, [toolUI, useToolUIStore]);\n\n return useCallback(\n function ToolUI(args) {\n const store = useToolUIStore();\n return store.toolUI(args);\n },\n [useToolUIStore],\n );\n};\n"],"mappings":";;;AAEA,SAAa,aAAa,WAAW,gBAAgB;AAErD,SAAS,cAAc;AAEhB,IAAM,kBAAkB,CAC7B,WACiD;AACjD,QAAM,CAAC,cAAc,IAAI;AAAA,IAAS,MAChC,OAAO,OAAO;AAAA,MACZ;AAAA,IACF,EAAE;AAAA,EACJ;AAEA,YAAU,MAAM;AACd,mBAAe,SAAS,EAAE,OAAO,CAAC;AAAA,EACpC,GAAG,CAAC,QAAQ,cAAc,CAAC;AAE3B,SAAO;AAAA,IACL,SAAS,OAAO,MAAM;AACpB,YAAM,QAAQ,eAAe;AAC7B,aAAO,MAAM,OAAO,IAAI;AAAA,IAC1B;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AACF;","names":[]}
|
@@ -3,10 +3,12 @@ import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
3
3
|
export declare namespace AssistantModalPrimitiveContent {
|
4
4
|
type Element = ComponentRef<typeof PopoverPrimitive.Content>;
|
5
5
|
type Props = ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {
|
6
|
+
portalProps?: ComponentPropsWithoutRef<typeof PopoverPrimitive.Portal> | undefined;
|
6
7
|
dissmissOnInteractOutside?: boolean | undefined;
|
7
8
|
};
|
8
9
|
}
|
9
10
|
export declare const AssistantModalPrimitiveContent: import("react").ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
11
|
+
portalProps?: ComponentPropsWithoutRef<typeof PopoverPrimitive.Portal> | undefined;
|
10
12
|
dissmissOnInteractOutside?: boolean | undefined;
|
11
13
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
12
14
|
//# sourceMappingURL=AssistantModalContent.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssistantModalContent.d.ts","sourceRoot":"","sources":["../../../src/primitives/assistantModal/AssistantModalContent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAc,MAAM,OAAO,CAAC;AAC3E,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAI5D,yBAAiB,8BAA8B,CAAC;IAC9C,KAAY,OAAO,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpE,KAAY,KAAK,GAAG,wBAAwB,CAC1C,OAAO,gBAAgB,CAAC,OAAO,CAChC,GAAG;QACF,yBAAyB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACjD,CAAC;CACH;AAED,eAAO,MAAM,8BAA8B;
|
1
|
+
{"version":3,"file":"AssistantModalContent.d.ts","sourceRoot":"","sources":["../../../src/primitives/assistantModal/AssistantModalContent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAc,MAAM,OAAO,CAAC;AAC3E,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAI5D,yBAAiB,8BAA8B,CAAC;IAC9C,KAAY,OAAO,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACpE,KAAY,KAAK,GAAG,wBAAwB,CAC1C,OAAO,gBAAgB,CAAC,OAAO,CAChC,GAAG;QACF,WAAW,CAAC,EACR,wBAAwB,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,GACxD,SAAS,CAAC;QACd,yBAAyB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KACjD,CAAC;CACH;AAED,eAAO,MAAM,8BAA8B;kBANnC,wBAAwB,CAAC,OAAO,gBAAgB,CAAC,MAAM,CAAC,GACxD,SAAS;gCACe,OAAO,GAAG,SAAS;kDAsClD,CAAC"}
|
@@ -13,10 +13,11 @@ var AssistantModalPrimitiveContent = forwardRef(
|
|
13
13
|
align,
|
14
14
|
onInteractOutside,
|
15
15
|
dissmissOnInteractOutside = false,
|
16
|
+
portalProps,
|
16
17
|
...props
|
17
18
|
}, forwardedRef) => {
|
18
19
|
const scope = usePopoverScope(__scopeAssistantModal);
|
19
|
-
return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { ...scope, children: /* @__PURE__ */ jsx(
|
20
|
+
return /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { ...scope, ...portalProps, children: /* @__PURE__ */ jsx(
|
20
21
|
PopoverPrimitive.Content,
|
21
22
|
{
|
22
23
|
...scope,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/primitives/assistantModal/AssistantModalContent.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, ComponentRef, forwardRef } from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { ScopedProps, usePopoverScope } from \"./scope\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\nexport namespace AssistantModalPrimitiveContent {\n export type Element = ComponentRef<typeof PopoverPrimitive.Content>;\n export type Props = ComponentPropsWithoutRef<\n typeof PopoverPrimitive.Content\n > & {\n dissmissOnInteractOutside?: boolean | undefined;\n };\n}\n\nexport const AssistantModalPrimitiveContent = forwardRef<\n AssistantModalPrimitiveContent.Element,\n AssistantModalPrimitiveContent.Props\n>(\n (\n {\n __scopeAssistantModal,\n side,\n align,\n onInteractOutside,\n dissmissOnInteractOutside = false,\n ...props\n }: ScopedProps<AssistantModalPrimitiveContent.Props>,\n forwardedRef,\n ) => {\n const scope = usePopoverScope(__scopeAssistantModal);\n\n return (\n <PopoverPrimitive.Portal {...scope}>\n <PopoverPrimitive.Content\n {...scope}\n {...props}\n ref={forwardedRef}\n side={side ?? \"top\"}\n align={align ?? \"end\"}\n onInteractOutside={composeEventHandlers(\n onInteractOutside,\n dissmissOnInteractOutside ? undefined : (e) => e.preventDefault(),\n )}\n />\n </PopoverPrimitive.Portal>\n );\n },\n);\n\nAssistantModalPrimitiveContent.displayName = \"AssistantModalPrimitive.Content\";\n"],"mappings":";;;AAEA,SAAiD,kBAAkB;AACnE,YAAY,sBAAsB;AAClC,SAAsB,uBAAuB;AAC7C,SAAS,4BAA4B;
|
1
|
+
{"version":3,"sources":["../../../src/primitives/assistantModal/AssistantModalContent.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, ComponentRef, forwardRef } from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { ScopedProps, usePopoverScope } from \"./scope\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\n\nexport namespace AssistantModalPrimitiveContent {\n export type Element = ComponentRef<typeof PopoverPrimitive.Content>;\n export type Props = ComponentPropsWithoutRef<\n typeof PopoverPrimitive.Content\n > & {\n portalProps?:\n | ComponentPropsWithoutRef<typeof PopoverPrimitive.Portal>\n | undefined;\n dissmissOnInteractOutside?: boolean | undefined;\n };\n}\n\nexport const AssistantModalPrimitiveContent = forwardRef<\n AssistantModalPrimitiveContent.Element,\n AssistantModalPrimitiveContent.Props\n>(\n (\n {\n __scopeAssistantModal,\n side,\n align,\n onInteractOutside,\n dissmissOnInteractOutside = false,\n portalProps,\n ...props\n }: ScopedProps<AssistantModalPrimitiveContent.Props>,\n forwardedRef,\n ) => {\n const scope = usePopoverScope(__scopeAssistantModal);\n\n return (\n <PopoverPrimitive.Portal {...scope} {...portalProps}>\n <PopoverPrimitive.Content\n {...scope}\n {...props}\n ref={forwardedRef}\n side={side ?? \"top\"}\n align={align ?? \"end\"}\n onInteractOutside={composeEventHandlers(\n onInteractOutside,\n dissmissOnInteractOutside ? undefined : (e) => e.preventDefault(),\n )}\n />\n </PopoverPrimitive.Portal>\n );\n },\n);\n\nAssistantModalPrimitiveContent.displayName = \"AssistantModalPrimitive.Content\";\n"],"mappings":";;;AAEA,SAAiD,kBAAkB;AACnE,YAAY,sBAAsB;AAClC,SAAsB,uBAAuB;AAC7C,SAAS,4BAA4B;AAkC7B;AApBD,IAAM,iCAAiC;AAAA,EAI5C,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,4BAA4B;AAAA,IAC5B;AAAA,IACA,GAAG;AAAA,EACL,GACA,iBACG;AACH,UAAM,QAAQ,gBAAgB,qBAAqB;AAEnD,WACE,oBAAkB,yBAAjB,EAAyB,GAAG,OAAQ,GAAG,aACtC;AAAA,MAAkB;AAAA,MAAjB;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACJ,KAAK;AAAA,QACL,MAAM,QAAQ;AAAA,QACd,OAAO,SAAS;AAAA,QAChB,mBAAmB;AAAA,UACjB;AAAA,UACA,4BAA4B,SAAY,CAAC,MAAM,EAAE,eAAe;AAAA,QAClE;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AACF;AAEA,+BAA+B,cAAc;","names":[]}
|
@@ -3,16 +3,22 @@ export * as AssistantModalPrimitive from "./assistantModal";
|
|
3
3
|
export * as AttachmentPrimitive from "./attachment";
|
4
4
|
export * as BranchPickerPrimitive from "./branchPicker";
|
5
5
|
export * as ComposerPrimitive from "./composer";
|
6
|
-
export * as
|
6
|
+
export * as MessagePartPrimitive from "./messagePart";
|
7
7
|
export * as ErrorPrimitive from "./error";
|
8
8
|
export * as MessagePrimitive from "./message";
|
9
9
|
export * as ThreadPrimitive from "./thread";
|
10
10
|
export * as ThreadListPrimitive from "./threadList";
|
11
11
|
export * as ThreadListItemPrimitive from "./threadListItem";
|
12
|
-
export {
|
13
|
-
export {
|
14
|
-
export {
|
15
|
-
export {
|
16
|
-
export {
|
12
|
+
export { useMessagePartText } from "./messagePart/useMessagePartText";
|
13
|
+
export { useMessagePartReasoning } from "./messagePart/useMessagePartReasoning";
|
14
|
+
export { useMessagePartSource } from "./messagePart/useMessagePartSource";
|
15
|
+
export { useMessagePartFile } from "./messagePart/useMessagePartFile";
|
16
|
+
export { useMessagePartImage } from "./messagePart/useMessagePartImage";
|
17
17
|
export { useThreadViewportAutoScroll } from "./thread/useThreadViewportAutoScroll";
|
18
|
+
export * as ContentPartPrimitive from "./messagePart";
|
19
|
+
export { useMessagePartText as useContentPartText } from "./messagePart/useMessagePartText";
|
20
|
+
export { useMessagePartReasoning as useContentPartReasoning } from "./messagePart/useMessagePartReasoning";
|
21
|
+
export { useMessagePartSource as useContentPartSource } from "./messagePart/useMessagePartSource";
|
22
|
+
export { useMessagePartFile as useContentPartFile } from "./messagePart/useMessagePartFile";
|
23
|
+
export { useMessagePartImage as useContentPartImage } from "./messagePart/useMessagePartImage";
|
18
24
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,uBAAuB,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,mBAAmB,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,qBAAqB,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,iBAAiB,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,oBAAoB,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,cAAc,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,gBAAgB,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,eAAe,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,mBAAmB,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,uBAAuB,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,uBAAuB,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,mBAAmB,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,qBAAqB,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,iBAAiB,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,oBAAoB,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,cAAc,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,gBAAgB,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,eAAe,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,mBAAmB,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,uBAAuB,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAGnF,OAAO,KAAK,oBAAoB,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,uBAAuB,IAAI,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAC3G,OAAO,EAAE,oBAAoB,IAAI,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAClG,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EAAE,mBAAmB,IAAI,mBAAmB,EAAE,MAAM,mCAAmC,CAAC"}
|
package/dist/primitives/index.js
CHANGED
@@ -4,18 +4,24 @@ import * as AssistantModalPrimitive from "./assistantModal/index.js";
|
|
4
4
|
import * as AttachmentPrimitive from "./attachment/index.js";
|
5
5
|
import * as BranchPickerPrimitive from "./branchPicker/index.js";
|
6
6
|
import * as ComposerPrimitive from "./composer/index.js";
|
7
|
-
import * as
|
7
|
+
import * as MessagePartPrimitive from "./messagePart/index.js";
|
8
8
|
import * as ErrorPrimitive from "./error/index.js";
|
9
9
|
import * as MessagePrimitive from "./message/index.js";
|
10
10
|
import * as ThreadPrimitive from "./thread/index.js";
|
11
11
|
import * as ThreadListPrimitive from "./threadList/index.js";
|
12
12
|
import * as ThreadListItemPrimitive from "./threadListItem/index.js";
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
import {
|
17
|
-
import {
|
13
|
+
import { useMessagePartText } from "./messagePart/useMessagePartText.js";
|
14
|
+
import { useMessagePartReasoning } from "./messagePart/useMessagePartReasoning.js";
|
15
|
+
import { useMessagePartSource } from "./messagePart/useMessagePartSource.js";
|
16
|
+
import { useMessagePartFile } from "./messagePart/useMessagePartFile.js";
|
17
|
+
import { useMessagePartImage } from "./messagePart/useMessagePartImage.js";
|
18
18
|
import { useThreadViewportAutoScroll } from "./thread/useThreadViewportAutoScroll.js";
|
19
|
+
import * as ContentPartPrimitive from "./messagePart/index.js";
|
20
|
+
import { useMessagePartText as useMessagePartText2 } from "./messagePart/useMessagePartText.js";
|
21
|
+
import { useMessagePartReasoning as useMessagePartReasoning2 } from "./messagePart/useMessagePartReasoning.js";
|
22
|
+
import { useMessagePartSource as useMessagePartSource2 } from "./messagePart/useMessagePartSource.js";
|
23
|
+
import { useMessagePartFile as useMessagePartFile2 } from "./messagePart/useMessagePartFile.js";
|
24
|
+
import { useMessagePartImage as useMessagePartImage2 } from "./messagePart/useMessagePartImage.js";
|
19
25
|
export {
|
20
26
|
ActionBarPrimitive,
|
21
27
|
AssistantModalPrimitive,
|
@@ -24,15 +30,21 @@ export {
|
|
24
30
|
ComposerPrimitive,
|
25
31
|
ContentPartPrimitive,
|
26
32
|
ErrorPrimitive,
|
33
|
+
MessagePartPrimitive,
|
27
34
|
MessagePrimitive,
|
28
35
|
ThreadListItemPrimitive,
|
29
36
|
ThreadListPrimitive,
|
30
37
|
ThreadPrimitive,
|
31
|
-
useContentPartFile,
|
32
|
-
useContentPartImage,
|
33
|
-
useContentPartReasoning,
|
34
|
-
useContentPartSource,
|
35
|
-
useContentPartText,
|
38
|
+
useMessagePartFile2 as useContentPartFile,
|
39
|
+
useMessagePartImage2 as useContentPartImage,
|
40
|
+
useMessagePartReasoning2 as useContentPartReasoning,
|
41
|
+
useMessagePartSource2 as useContentPartSource,
|
42
|
+
useMessagePartText2 as useContentPartText,
|
43
|
+
useMessagePartFile,
|
44
|
+
useMessagePartImage,
|
45
|
+
useMessagePartReasoning,
|
46
|
+
useMessagePartSource,
|
47
|
+
useMessagePartText,
|
36
48
|
useThreadViewportAutoScroll
|
37
49
|
};
|
38
50
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/primitives/index.ts"],"sourcesContent":["export * as ActionBarPrimitive from \"./actionBar\";\nexport * as AssistantModalPrimitive from \"./assistantModal\";\nexport * as AttachmentPrimitive from \"./attachment\";\nexport * as BranchPickerPrimitive from \"./branchPicker\";\nexport * as ComposerPrimitive from \"./composer\";\nexport * as
|
1
|
+
{"version":3,"sources":["../../src/primitives/index.ts"],"sourcesContent":["export * as ActionBarPrimitive from \"./actionBar\";\nexport * as AssistantModalPrimitive from \"./assistantModal\";\nexport * as AttachmentPrimitive from \"./attachment\";\nexport * as BranchPickerPrimitive from \"./branchPicker\";\nexport * as ComposerPrimitive from \"./composer\";\nexport * as MessagePartPrimitive from \"./messagePart\";\nexport * as ErrorPrimitive from \"./error\";\nexport * as MessagePrimitive from \"./message\";\nexport * as ThreadPrimitive from \"./thread\";\nexport * as ThreadListPrimitive from \"./threadList\";\nexport * as ThreadListItemPrimitive from \"./threadListItem\";\n\nexport { useMessagePartText } from \"./messagePart/useMessagePartText\";\nexport { useMessagePartReasoning } from \"./messagePart/useMessagePartReasoning\";\nexport { useMessagePartSource } from \"./messagePart/useMessagePartSource\";\nexport { useMessagePartFile } from \"./messagePart/useMessagePartFile\";\nexport { useMessagePartImage } from \"./messagePart/useMessagePartImage\";\nexport { useThreadViewportAutoScroll } from \"./thread/useThreadViewportAutoScroll\";\n\n// TODO remove in v0.11\nexport * as ContentPartPrimitive from \"./messagePart\";\nexport { useMessagePartText as useContentPartText } from \"./messagePart/useMessagePartText\";\nexport { useMessagePartReasoning as useContentPartReasoning } from \"./messagePart/useMessagePartReasoning\";\nexport { useMessagePartSource as useContentPartSource } from \"./messagePart/useMessagePartSource\";\nexport { useMessagePartFile as useContentPartFile } from \"./messagePart/useMessagePartFile\";\nexport { useMessagePartImage as useContentPartImage } from \"./messagePart/useMessagePartImage\";\n"],"mappings":";AAAA,YAAY,wBAAwB;AACpC,YAAY,6BAA6B;AACzC,YAAY,yBAAyB;AACrC,YAAY,2BAA2B;AACvC,YAAY,uBAAuB;AACnC,YAAY,0BAA0B;AACtC,YAAY,oBAAoB;AAChC,YAAY,sBAAsB;AAClC,YAAY,qBAAqB;AACjC,YAAY,yBAAyB;AACrC,YAAY,6BAA6B;AAEzC,SAAS,0BAA0B;AACnC,SAAS,+BAA+B;AACxC,SAAS,4BAA4B;AACrC,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC,SAAS,mCAAmC;AAG5C,YAAY,0BAA0B;AACtC,SAA+B,sBAAtBA,2BAAgD;AACzD,SAAoC,2BAA3BC,gCAA0D;AACnE,SAAiC,wBAAxBC,6BAAoD;AAC7D,SAA+B,sBAAtBC,2BAAgD;AACzD,SAAgC,uBAAvBC,4BAAkD;","names":["useMessagePartText","useMessagePartReasoning","useMessagePartSource","useMessagePartFile","useMessagePartImage"]}
|
@@ -0,0 +1,116 @@
|
|
1
|
+
import { type ComponentType, type FC, PropsWithChildren } from "react";
|
2
|
+
import type { Unstable_AudioMessagePartComponent, EmptyMessagePartComponent, TextMessagePartComponent, ImageMessagePartComponent, SourceMessagePartComponent, ToolCallMessagePartComponent, ToolCallMessagePartProps, FileMessagePartComponent, ReasoningMessagePartComponent } from "../../types/MessagePartComponentTypes";
|
3
|
+
export declare namespace MessagePrimitiveParts {
|
4
|
+
type Props = {
|
5
|
+
/**
|
6
|
+
* Component configuration for rendering different types of message content.
|
7
|
+
*
|
8
|
+
* You can provide custom components for each content type (text, image, file, etc.)
|
9
|
+
* and configure tool rendering behavior. If not provided, default components will be used.
|
10
|
+
*/
|
11
|
+
components?: {
|
12
|
+
/** Component for rendering empty messages */
|
13
|
+
Empty?: EmptyMessagePartComponent | undefined;
|
14
|
+
/** Component for rendering text content */
|
15
|
+
Text?: TextMessagePartComponent | undefined;
|
16
|
+
/** Component for rendering reasoning content (typically hidden) */
|
17
|
+
Reasoning?: ReasoningMessagePartComponent | undefined;
|
18
|
+
/** Component for rendering source content */
|
19
|
+
Source?: SourceMessagePartComponent | undefined;
|
20
|
+
/** Component for rendering image content */
|
21
|
+
Image?: ImageMessagePartComponent | undefined;
|
22
|
+
/** Component for rendering file content */
|
23
|
+
File?: FileMessagePartComponent | undefined;
|
24
|
+
/** Component for rendering audio content (experimental) */
|
25
|
+
Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;
|
26
|
+
/** Configuration for tool call rendering */
|
27
|
+
tools?: {
|
28
|
+
/** Map of tool names to their specific components */
|
29
|
+
by_name?: Record<string, ToolCallMessagePartComponent | undefined> | undefined;
|
30
|
+
/** Fallback component for unregistered tools */
|
31
|
+
Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;
|
32
|
+
} | {
|
33
|
+
/** Override component that handles all tool calls */
|
34
|
+
Override: ComponentType<ToolCallMessagePartProps>;
|
35
|
+
} | undefined;
|
36
|
+
/**
|
37
|
+
* Component for rendering grouped consecutive tool calls.
|
38
|
+
*
|
39
|
+
* When provided, this component will automatically wrap consecutive tool-call
|
40
|
+
* message parts, allowing you to create collapsible sections, custom styling,
|
41
|
+
* or other grouped presentations for multiple tool calls.
|
42
|
+
*
|
43
|
+
* The component receives:
|
44
|
+
* - `startIndex`: The index of the first tool call in the group
|
45
|
+
* - `endIndex`: The index of the last tool call in the group
|
46
|
+
* - `children`: The rendered tool call components
|
47
|
+
*
|
48
|
+
* @example
|
49
|
+
* ```tsx
|
50
|
+
* // Collapsible tool group
|
51
|
+
* ToolGroup: ({ startIndex, endIndex, children }) => (
|
52
|
+
* <details className="tool-group">
|
53
|
+
* <summary>
|
54
|
+
* {endIndex - startIndex + 1} tool calls
|
55
|
+
* </summary>
|
56
|
+
* <div className="tool-group-content">
|
57
|
+
* {children}
|
58
|
+
* </div>
|
59
|
+
* </details>
|
60
|
+
* )
|
61
|
+
* ```
|
62
|
+
*
|
63
|
+
* @example
|
64
|
+
* ```tsx
|
65
|
+
* // Custom styled tool group with header
|
66
|
+
* ToolGroup: ({ startIndex, endIndex, children }) => (
|
67
|
+
* <div className="border rounded-lg p-4 my-2">
|
68
|
+
* <div className="text-sm text-gray-600 mb-2">
|
69
|
+
* Tool execution #{startIndex + 1}-{endIndex + 1}
|
70
|
+
* </div>
|
71
|
+
* <div className="space-y-2">
|
72
|
+
* {children}
|
73
|
+
* </div>
|
74
|
+
* </div>
|
75
|
+
* )
|
76
|
+
* ```
|
77
|
+
*
|
78
|
+
* @param startIndex - Index of the first tool call in the group
|
79
|
+
* @param endIndex - Index of the last tool call in the group
|
80
|
+
* @param children - Rendered tool call components to display within the group
|
81
|
+
*
|
82
|
+
* @deprecated This feature is still experimental and subject to change.
|
83
|
+
*/
|
84
|
+
ToolGroup?: ComponentType<PropsWithChildren<{
|
85
|
+
startIndex: number;
|
86
|
+
endIndex: number;
|
87
|
+
}>>;
|
88
|
+
} | undefined;
|
89
|
+
};
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* Renders the parts of a message with support for multiple content types.
|
93
|
+
*
|
94
|
+
* This component automatically handles different types of message content including
|
95
|
+
* text, images, files, tool calls, and more. It provides a flexible component
|
96
|
+
* system for customizing how each content type is rendered.
|
97
|
+
*
|
98
|
+
* @example
|
99
|
+
* ```tsx
|
100
|
+
* <MessagePrimitive.Parts
|
101
|
+
* components={{
|
102
|
+
* Text: ({ text }) => <p className="message-text">{text}</p>,
|
103
|
+
* Image: ({ image }) => <img src={image} alt="Message image" />,
|
104
|
+
* tools: {
|
105
|
+
* by_name: {
|
106
|
+
* calculator: CalculatorTool,
|
107
|
+
* weather: WeatherTool,
|
108
|
+
* },
|
109
|
+
* Fallback: DefaultToolComponent
|
110
|
+
* }
|
111
|
+
* }}
|
112
|
+
* />
|
113
|
+
* ```
|
114
|
+
*/
|
115
|
+
export declare const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props>;
|
116
|
+
//# sourceMappingURL=MessageParts.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MessageParts.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/MessageParts.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,EAAE,EAEP,iBAAiB,EAElB,MAAM,OAAO,CAAC;AAcf,OAAO,KAAK,EACV,kCAAkC,EAClC,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,uCAAuC,CAAC;AAoE/C,yBAAiB,qBAAqB,CAAC;IACrC,KAAY,KAAK,GAAG;QAClB;;;;;WAKG;QACH,UAAU,CAAC,EACP;YACE,6CAA6C;YAC7C,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;YAC9C,2CAA2C;YAC3C,IAAI,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;YAC5C,mEAAmE;YACnE,SAAS,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;YACtD,6CAA6C;YAC7C,MAAM,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;YAChD,4CAA4C;YAC5C,KAAK,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;YAC9C,2CAA2C;YAC3C,IAAI,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;YAC5C,2DAA2D;YAC3D,cAAc,CAAC,EAAE,kCAAkC,GAAG,SAAS,CAAC;YAChE,4CAA4C;YAC5C,KAAK,CAAC,EACF;gBACE,qDAAqD;gBACrD,OAAO,CAAC,EACJ,MAAM,CAAC,MAAM,EAAE,4BAA4B,GAAG,SAAS,CAAC,GACxD,SAAS,CAAC;gBACd,gDAAgD;gBAChD,QAAQ,CAAC,EAAE,aAAa,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;aAChE,GACD;gBACE,qDAAqD;gBACrD,QAAQ,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC;aACnD,GACD,SAAS,CAAC;YAEd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA+CG;YACH,SAAS,CAAC,EAAE,aAAa,CACvB,iBAAiB,CAAC;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAA;aAAE,CAAC,CAC5D,CAAC;SACH,GACD,SAAS,CAAC;KACf,CAAC;CACH;AA4JD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CA8CjE,CAAC"}
|
@@ -0,0 +1,208 @@
|
|
1
|
+
"use client";
|
2
|
+
|
3
|
+
// src/primitives/message/MessageParts.tsx
|
4
|
+
import {
|
5
|
+
memo,
|
6
|
+
useMemo
|
7
|
+
} from "react";
|
8
|
+
import {
|
9
|
+
TextMessagePartProvider,
|
10
|
+
useMessagePart,
|
11
|
+
useMessagePartRuntime,
|
12
|
+
useToolUIs
|
13
|
+
} from "../../context/index.js";
|
14
|
+
import {
|
15
|
+
useMessage,
|
16
|
+
useMessageRuntime
|
17
|
+
} from "../../context/react/MessageContext.js";
|
18
|
+
import { MessagePartRuntimeProvider } from "../../context/providers/MessagePartRuntimeProvider.js";
|
19
|
+
import { MessagePartPrimitiveText } from "../messagePart/MessagePartText.js";
|
20
|
+
import { MessagePartPrimitiveImage } from "../messagePart/MessagePartImage.js";
|
21
|
+
import { MessagePartPrimitiveInProgress } from "../messagePart/MessagePartInProgress.js";
|
22
|
+
import { useShallow } from "zustand/shallow";
|
23
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
24
|
+
var groupMessageParts = (messageTypes) => {
|
25
|
+
const ranges = [];
|
26
|
+
let currentToolGroupStart = -1;
|
27
|
+
for (let i = 0; i < messageTypes.length; i++) {
|
28
|
+
const type = messageTypes[i];
|
29
|
+
if (type === "tool-call") {
|
30
|
+
if (currentToolGroupStart === -1) {
|
31
|
+
currentToolGroupStart = i;
|
32
|
+
}
|
33
|
+
} else {
|
34
|
+
if (currentToolGroupStart !== -1) {
|
35
|
+
ranges.push({
|
36
|
+
type: "toolGroup",
|
37
|
+
startIndex: currentToolGroupStart,
|
38
|
+
endIndex: i - 1
|
39
|
+
});
|
40
|
+
currentToolGroupStart = -1;
|
41
|
+
}
|
42
|
+
ranges.push({ type: "single", index: i });
|
43
|
+
}
|
44
|
+
}
|
45
|
+
if (currentToolGroupStart !== -1) {
|
46
|
+
ranges.push({
|
47
|
+
type: "toolGroup",
|
48
|
+
startIndex: currentToolGroupStart,
|
49
|
+
endIndex: messageTypes.length - 1
|
50
|
+
});
|
51
|
+
}
|
52
|
+
return ranges;
|
53
|
+
};
|
54
|
+
var useMessagePartsGroups = () => {
|
55
|
+
const messageTypes = useMessage(
|
56
|
+
useShallow((m) => m.content.map((c) => c.type))
|
57
|
+
);
|
58
|
+
return useMemo(() => {
|
59
|
+
if (messageTypes.length === 0) {
|
60
|
+
return [];
|
61
|
+
}
|
62
|
+
return groupMessageParts(messageTypes);
|
63
|
+
}, [messageTypes]);
|
64
|
+
};
|
65
|
+
var ToolUIDisplay = ({
|
66
|
+
Fallback,
|
67
|
+
...props
|
68
|
+
}) => {
|
69
|
+
const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? Fallback;
|
70
|
+
if (!Render) return null;
|
71
|
+
return /* @__PURE__ */ jsx(Render, { ...props });
|
72
|
+
};
|
73
|
+
var defaultComponents = {
|
74
|
+
Text: () => /* @__PURE__ */ jsxs("p", { style: { whiteSpace: "pre-line" }, children: [
|
75
|
+
/* @__PURE__ */ jsx(MessagePartPrimitiveText, {}),
|
76
|
+
/* @__PURE__ */ jsx(MessagePartPrimitiveInProgress, { children: /* @__PURE__ */ jsx("span", { style: { fontFamily: "revert" }, children: " \u25CF" }) })
|
77
|
+
] }),
|
78
|
+
Reasoning: () => null,
|
79
|
+
Source: () => null,
|
80
|
+
Image: () => /* @__PURE__ */ jsx(MessagePartPrimitiveImage, {}),
|
81
|
+
File: () => null,
|
82
|
+
Unstable_Audio: () => null,
|
83
|
+
ToolGroup: ({ children }) => children
|
84
|
+
};
|
85
|
+
var MessagePartComponent = ({
|
86
|
+
components: {
|
87
|
+
Text = defaultComponents.Text,
|
88
|
+
Reasoning = defaultComponents.Reasoning,
|
89
|
+
Image = defaultComponents.Image,
|
90
|
+
Source = defaultComponents.Source,
|
91
|
+
File = defaultComponents.File,
|
92
|
+
Unstable_Audio: Audio = defaultComponents.Unstable_Audio,
|
93
|
+
tools = {}
|
94
|
+
} = {}
|
95
|
+
}) => {
|
96
|
+
const MessagePartRuntime = useMessagePartRuntime();
|
97
|
+
const part = useMessagePart();
|
98
|
+
const type = part.type;
|
99
|
+
if (type === "tool-call") {
|
100
|
+
const addResult = (result) => MessagePartRuntime.addToolResult(result);
|
101
|
+
if ("Override" in tools)
|
102
|
+
return /* @__PURE__ */ jsx(tools.Override, { ...part, addResult });
|
103
|
+
const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;
|
104
|
+
return /* @__PURE__ */ jsx(ToolUIDisplay, { ...part, Fallback: Tool, addResult });
|
105
|
+
}
|
106
|
+
if (part.status.type === "requires-action")
|
107
|
+
throw new Error("Encountered unexpected requires-action status");
|
108
|
+
switch (type) {
|
109
|
+
case "text":
|
110
|
+
return /* @__PURE__ */ jsx(Text, { ...part });
|
111
|
+
case "reasoning":
|
112
|
+
return /* @__PURE__ */ jsx(Reasoning, { ...part });
|
113
|
+
case "source":
|
114
|
+
return /* @__PURE__ */ jsx(Source, { ...part });
|
115
|
+
case "image":
|
116
|
+
return /* @__PURE__ */ jsx(Image, { ...part });
|
117
|
+
case "file":
|
118
|
+
return /* @__PURE__ */ jsx(File, { ...part });
|
119
|
+
case "audio":
|
120
|
+
return /* @__PURE__ */ jsx(Audio, { ...part });
|
121
|
+
default:
|
122
|
+
const unhandledType = type;
|
123
|
+
throw new Error(`Unknown message part type: ${unhandledType}`);
|
124
|
+
}
|
125
|
+
};
|
126
|
+
var MessagePartImpl = ({ partIndex, components }) => {
|
127
|
+
const messageRuntime = useMessageRuntime();
|
128
|
+
const runtime = useMemo(
|
129
|
+
() => messageRuntime.getMessagePartByIndex(partIndex),
|
130
|
+
[messageRuntime, partIndex]
|
131
|
+
);
|
132
|
+
return /* @__PURE__ */ jsx(MessagePartRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx(MessagePartComponent, { components }) });
|
133
|
+
};
|
134
|
+
var MessagePart = memo(
|
135
|
+
MessagePartImpl,
|
136
|
+
(prev, next) => prev.partIndex === next.partIndex && prev.components?.Text === next.components?.Text && prev.components?.Reasoning === next.components?.Reasoning && prev.components?.Source === next.components?.Source && prev.components?.Image === next.components?.Image && prev.components?.File === next.components?.File && prev.components?.Unstable_Audio === next.components?.Unstable_Audio && prev.components?.tools === next.components?.tools && prev.components?.ToolGroup === next.components?.ToolGroup
|
137
|
+
);
|
138
|
+
var COMPLETE_STATUS = Object.freeze({
|
139
|
+
type: "complete"
|
140
|
+
});
|
141
|
+
var EmptyPartFallback = ({ status, component: Component }) => {
|
142
|
+
return /* @__PURE__ */ jsx(TextMessagePartProvider, { text: "", isRunning: status.type === "running", children: /* @__PURE__ */ jsx(Component, { type: "text", text: "", status }) });
|
143
|
+
};
|
144
|
+
var EmptyPartsImpl = ({ components }) => {
|
145
|
+
const status = useMessage((s) => s.status) ?? COMPLETE_STATUS;
|
146
|
+
if (components?.Empty) return /* @__PURE__ */ jsx(components.Empty, { status });
|
147
|
+
return /* @__PURE__ */ jsx(
|
148
|
+
EmptyPartFallback,
|
149
|
+
{
|
150
|
+
status,
|
151
|
+
component: components?.Text ?? defaultComponents.Text
|
152
|
+
}
|
153
|
+
);
|
154
|
+
};
|
155
|
+
var EmptyParts = memo(
|
156
|
+
EmptyPartsImpl,
|
157
|
+
(prev, next) => prev.components?.Empty === next.components?.Empty && prev.components?.Text === next.components?.Text
|
158
|
+
);
|
159
|
+
var MessagePrimitiveParts = ({
|
160
|
+
components
|
161
|
+
}) => {
|
162
|
+
const contentLength = useMessage((s) => s.content.length);
|
163
|
+
const messageRanges = useMessagePartsGroups();
|
164
|
+
const partsElements = useMemo(() => {
|
165
|
+
if (contentLength === 0) {
|
166
|
+
return /* @__PURE__ */ jsx(EmptyParts, { components });
|
167
|
+
}
|
168
|
+
return messageRanges.map((range) => {
|
169
|
+
if (range.type === "single") {
|
170
|
+
return /* @__PURE__ */ jsx(
|
171
|
+
MessagePart,
|
172
|
+
{
|
173
|
+
partIndex: range.index,
|
174
|
+
components
|
175
|
+
},
|
176
|
+
range.index
|
177
|
+
);
|
178
|
+
} else {
|
179
|
+
const ToolGroupComponent = components.ToolGroup ?? defaultComponents.ToolGroup;
|
180
|
+
return /* @__PURE__ */ jsx(
|
181
|
+
ToolGroupComponent,
|
182
|
+
{
|
183
|
+
startIndex: range.startIndex,
|
184
|
+
endIndex: range.endIndex,
|
185
|
+
children: Array.from(
|
186
|
+
{ length: range.endIndex - range.startIndex + 1 },
|
187
|
+
(_, i) => /* @__PURE__ */ jsx(
|
188
|
+
MessagePart,
|
189
|
+
{
|
190
|
+
partIndex: range.startIndex + i,
|
191
|
+
components
|
192
|
+
},
|
193
|
+
i
|
194
|
+
)
|
195
|
+
)
|
196
|
+
},
|
197
|
+
range.startIndex
|
198
|
+
);
|
199
|
+
}
|
200
|
+
});
|
201
|
+
}, [messageRanges, components, contentLength]);
|
202
|
+
return /* @__PURE__ */ jsx(Fragment, { children: partsElements });
|
203
|
+
};
|
204
|
+
MessagePrimitiveParts.displayName = "MessagePrimitive.Parts";
|
205
|
+
export {
|
206
|
+
MessagePrimitiveParts
|
207
|
+
};
|
208
|
+
//# sourceMappingURL=MessageParts.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../src/primitives/message/MessageParts.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ComponentType,\n type FC,\n memo,\n PropsWithChildren,\n useMemo,\n} from \"react\";\nimport {\n TextMessagePartProvider,\n useMessagePart,\n useMessagePartRuntime,\n useToolUIs,\n} from \"../../context\";\nimport {\n useMessage,\n useMessageRuntime,\n} from \"../../context/react/MessageContext\";\nimport { MessagePartRuntimeProvider } from \"../../context/providers/MessagePartRuntimeProvider\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport type {\n Unstable_AudioMessagePartComponent,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n} from \"../../types/MessagePartComponentTypes\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\nimport { MessagePartStatus } from \"../../types/AssistantTypes\";\nimport { useShallow } from \"zustand/shallow\";\n\ntype MessagePartRange =\n | { type: \"single\"; index: number }\n | { type: \"toolGroup\"; startIndex: number; endIndex: number };\n\n/**\n * Groups consecutive tool-call message parts into ranges.\n * Always groups tool calls, even if there's only one.\n */\nconst groupMessageParts = (\n messageTypes: readonly string[],\n): MessagePartRange[] => {\n const ranges: MessagePartRange[] = [];\n let currentToolGroupStart = -1;\n\n for (let i = 0; i < messageTypes.length; i++) {\n const type = messageTypes[i];\n\n if (type === \"tool-call\") {\n // Start a new tool group if we haven't started one\n if (currentToolGroupStart === -1) {\n currentToolGroupStart = i;\n }\n } else {\n // End current tool group if it exists\n if (currentToolGroupStart !== -1) {\n ranges.push({\n type: \"toolGroup\",\n startIndex: currentToolGroupStart,\n endIndex: i - 1,\n });\n currentToolGroupStart = -1;\n }\n\n // Add non-tool-call part individually\n ranges.push({ type: \"single\", index: i });\n }\n }\n\n // Handle any remaining tool group at the end\n if (currentToolGroupStart !== -1) {\n ranges.push({\n type: \"toolGroup\",\n startIndex: currentToolGroupStart,\n endIndex: messageTypes.length - 1,\n });\n }\n\n return ranges;\n};\n\nconst useMessagePartsGroups = (): MessagePartRange[] => {\n const messageTypes = useMessage(\n useShallow((m) => m.content.map((c) => c.type)),\n );\n\n return useMemo(() => {\n if (messageTypes.length === 0) {\n return [];\n }\n return groupMessageParts(messageTypes);\n }, [messageTypes]);\n};\n\nexport namespace MessagePrimitiveParts {\n export type Props = {\n /**\n * Component configuration for rendering different types of message content.\n *\n * You can provide custom components for each content type (text, image, file, etc.)\n * and configure tool rendering behavior. If not provided, default components will be used.\n */\n components?:\n | {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /** Component for rendering audio content (experimental) */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for tool call rendering */\n tools?:\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n }\n | undefined;\n\n /**\n * Component for rendering grouped consecutive tool calls.\n *\n * When provided, this component will automatically wrap consecutive tool-call\n * message parts, allowing you to create collapsible sections, custom styling,\n * or other grouped presentations for multiple tool calls.\n *\n * The component receives:\n * - `startIndex`: The index of the first tool call in the group\n * - `endIndex`: The index of the last tool call in the group\n * - `children`: The rendered tool call components\n *\n * @example\n * ```tsx\n * // Collapsible tool group\n * ToolGroup: ({ startIndex, endIndex, children }) => (\n * <details className=\"tool-group\">\n * <summary>\n * {endIndex - startIndex + 1} tool calls\n * </summary>\n * <div className=\"tool-group-content\">\n * {children}\n * </div>\n * </details>\n * )\n * ```\n *\n * @example\n * ```tsx\n * // Custom styled tool group with header\n * ToolGroup: ({ startIndex, endIndex, children }) => (\n * <div className=\"border rounded-lg p-4 my-2\">\n * <div className=\"text-sm text-gray-600 mb-2\">\n * Tool execution #{startIndex + 1}-{endIndex + 1}\n * </div>\n * <div className=\"space-y-2\">\n * {children}\n * </div>\n * </div>\n * )\n * ```\n *\n * @param startIndex - Index of the first tool call in the group\n * @param endIndex - Index of the last tool call in the group\n * @param children - Rendered tool call components to display within the group\n *\n * @deprecated This feature is still experimental and subject to change.\n */\n ToolGroup?: ComponentType<\n PropsWithChildren<{ startIndex: number; endIndex: number }>\n >;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useToolUIs((s) => s.getToolUI(props.toolName)) ?? Fallback;\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <MessagePartPrimitiveText />\n <MessagePartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </MessagePartPrimitiveInProgress>\n </p>\n ),\n Reasoning: () => null,\n Source: () => null,\n Image: () => <MessagePartPrimitiveImage />,\n File: () => null,\n Unstable_Audio: () => null,\n ToolGroup: ({ children }) => children,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveParts.Props[\"components\"];\n};\n\nconst MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n } = {},\n}) => {\n const MessagePartRuntime = useMessagePartRuntime();\n\n const part = useMessagePart();\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = (result: any) => MessagePartRuntime.addToolResult(result);\n if (\"Override\" in tools)\n return <tools.Override {...part} addResult={addResult} />;\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return <ToolUIDisplay {...part} Fallback={Tool} addResult={addResult} />;\n }\n\n if (part.status.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n // eslint-disable-next-line jsx-a11y/alt-text\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n default:\n const unhandledType: never = type;\n throw new Error(`Unknown message part type: ${unhandledType}`);\n }\n};\n\ntype MessagePartProps = {\n partIndex: number;\n components: MessagePrimitiveParts.Props[\"components\"];\n};\n\nconst MessagePartImpl: FC<MessagePartProps> = ({ partIndex, components }) => {\n const messageRuntime = useMessageRuntime();\n const runtime = useMemo(\n () => messageRuntime.getMessagePartByIndex(partIndex),\n [messageRuntime, partIndex],\n );\n\n return (\n <MessagePartRuntimeProvider runtime={runtime}>\n <MessagePartComponent components={components} />\n </MessagePartRuntimeProvider>\n );\n};\n\nconst MessagePart = memo(\n MessagePartImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.ToolGroup === next.components?.ToolGroup,\n);\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status =\n useMessage((s) => s.status as MessagePartStatus) ?? COMPLETE_STATUS;\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\n/**\n * Renders the parts of a message with support for multiple content types.\n *\n * This component automatically handles different types of message content including\n * text, images, files, tool calls, and more. It provides a flexible component\n * system for customizing how each content type is rendered.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.Parts\n * components={{\n * Text: ({ text }) => <p className=\"message-text\">{text}</p>,\n * Image: ({ image }) => <img src={image} alt=\"Message image\" />,\n * tools: {\n * by_name: {\n * calculator: CalculatorTool,\n * weather: WeatherTool,\n * },\n * Fallback: DefaultToolComponent\n * }\n * }}\n * />\n * ```\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = ({\n components,\n}) => {\n const contentLength = useMessage((s) => s.content.length);\n const messageRanges = useMessagePartsGroups();\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n return messageRanges.map((range) => {\n if (range.type === \"single\") {\n return (\n <MessagePart\n key={range.index}\n partIndex={range.index}\n components={components}\n />\n );\n } else {\n const ToolGroupComponent =\n components!.ToolGroup ?? defaultComponents.ToolGroup;\n return (\n <ToolGroupComponent\n key={range.startIndex}\n startIndex={range.startIndex}\n endIndex={range.endIndex}\n >\n {Array.from(\n { length: range.endIndex - range.startIndex + 1 },\n (_, i) => (\n <MessagePart\n key={i}\n partIndex={range.startIndex + i}\n components={components}\n />\n ),\n )}\n </ToolGroupComponent>\n );\n }\n });\n }, [messageRanges, components, contentLength]);\n\n return <>{partsElements}</>;\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n"],"mappings":"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","names":[]}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
export { MessagePrimitiveRoot as Root } from "./MessageRoot";
|
2
|
+
export { MessagePrimitiveParts as Parts } from "./MessageParts";
|
3
|
+
export { MessagePrimitiveParts as Content } from "./MessageParts";
|
2
4
|
export { MessagePrimitiveIf as If } from "./MessageIf";
|
3
|
-
export { MessagePrimitiveContent as Content } from "./MessageContent";
|
4
5
|
export { MessagePrimitiveAttachments as Attachments } from "./MessageAttachments";
|
5
6
|
export { MessagePrimitiveError as Error } from "./MessageError";
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,qBAAqB,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,kBAAkB,IAAI,EAAE,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,2BAA2B,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,qBAAqB,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
|