@chat-lab/ui 0.1.0-beta.51 → 0.1.0-beta.52

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 (31) hide show
  1. package/dist/components/Chatkit/index.cjs +42 -18
  2. package/dist/components/Chatkit/index.cjs.map +1 -1
  3. package/dist/components/Chatkit/index.d.ts.map +1 -1
  4. package/dist/components/Chatkit/index.js +42 -18
  5. package/dist/components/Chatkit/index.js.map +1 -1
  6. package/dist/components/Chatkit/types.d.ts +1 -0
  7. package/dist/components/Chatkit/types.d.ts.map +1 -1
  8. package/dist/hooks/useSkillAgent/SkillAgentPlugin.cjs +27 -0
  9. package/dist/hooks/useSkillAgent/SkillAgentPlugin.cjs.map +1 -1
  10. package/dist/hooks/useSkillAgent/SkillAgentPlugin.d.ts +4 -0
  11. package/dist/hooks/useSkillAgent/SkillAgentPlugin.d.ts.map +1 -1
  12. package/dist/hooks/useSkillAgent/SkillAgentPlugin.js +27 -0
  13. package/dist/hooks/useSkillAgent/SkillAgentPlugin.js.map +1 -1
  14. package/dist/hooks/useSkillAgent/index.cjs +13 -3
  15. package/dist/hooks/useSkillAgent/index.cjs.map +1 -1
  16. package/dist/hooks/useSkillAgent/index.d.ts +3 -1
  17. package/dist/hooks/useSkillAgent/index.d.ts.map +1 -1
  18. package/dist/hooks/useSkillAgent/index.js +13 -3
  19. package/dist/hooks/useSkillAgent/index.js.map +1 -1
  20. package/dist/hooks/useThread.d.ts +24 -0
  21. package/dist/hooks/useThread.d.ts.map +1 -1
  22. package/dist/packages/core/dist/index.cjs +7 -6
  23. package/dist/packages/core/dist/index.cjs.map +1 -1
  24. package/dist/packages/core/dist/index.js +7 -6
  25. package/dist/packages/core/dist/index.js.map +1 -1
  26. package/dist/utils/convertToAssistantMessage.cjs +0 -1
  27. package/dist/utils/convertToAssistantMessage.cjs.map +1 -1
  28. package/dist/utils/convertToAssistantMessage.d.ts.map +1 -1
  29. package/dist/utils/convertToAssistantMessage.js +0 -1
  30. package/dist/utils/convertToAssistantMessage.js.map +1 -1
  31. package/package.json +1 -1
@@ -182,7 +182,6 @@ const convertToAssistantMessage = (messages, options = {
182
182
  };
183
183
  return uiMessage;
184
184
  });
185
- console.log(uiMessages, messages);
186
185
  return { uiMessages, authors };
187
186
  };
188
187
 
@@ -1 +1 @@
1
- {"version":3,"file":"convertToAssistantMessage.cjs","sources":["../../src/utils/convertToAssistantMessage.ts"],"sourcesContent":["import {\n MessageStatus,\n ReasoningMessagePart,\n ThreadAssistantMessagePart,\n ThreadMessageLike,\n ToolCallMessagePart,\n} from '@assistant-ui/react';\nimport {\n ChatMessage,\n MessageStatus as MessageStatusEnum,\n} from '@chat-lab/core';\nimport { compact, keys, last, uniq, without } from 'lodash-es';\ntype Mutable<T> = {\n -readonly [K in keyof T]: T[K]; // -readonly 表示移除 readonly 修饰符\n};\n\nconst convertToAssistantMessage = (\n messages: Readonly<ChatMessage>[],\n options: { toolDisplay?: 'group' | 'none' | 'step' } = {\n toolDisplay: 'group',\n },\n) => {\n const authors = without(\n uniq(\n messages\n .map(message =>\n compact(\n message.content.map(\n part => part.type === 'text' && (part as any)?.author,\n ),\n ),\n )\n .flat(),\n ),\n 'user',\n );\n\n const uiMessages = messages.map<ThreadMessageLike>(cur => {\n let status: MessageStatus | undefined = undefined;\n if (cur.role === 'assistant') {\n status = ![MessageStatusEnum.PENDING, MessageStatusEnum.SENDING].includes(\n cur.status,\n )\n ? { type: 'complete', reason: 'stop' }\n : { type: 'running' };\n }\n\n const toolGroup: ToolCallMessagePart<Record<string, any>, null> = {\n type: 'tool-call',\n toolCallId: `tool-group-${cur.id}`,\n toolName: 'tool-group',\n args: {},\n argsText: JSON.stringify({}),\n };\n\n const reasoningParts: (Mutable<ReasoningMessagePart> & {\n author: string;\n authorIdx: number;\n })[] = [];\n\n const authorFirstMessage = new Set();\n const content = [...cur.content]\n .sort((a, b) => {\n const aAuthor = (a as any).author;\n const bAuthor = (b as any).author;\n if (aAuthor && bAuthor) {\n return authors.indexOf(aAuthor) - authors.indexOf(bAuthor);\n }\n return 0;\n })\n .reduce((acc, part, index) => {\n const lastPart = last(acc);\n const author = (part as any).author;\n const authorIdx = authors.indexOf(author);\n const showAvatar =\n authors.length >= 2 && !authorFirstMessage.has(author);\n const marginLeft =\n authors.length >= 2 && authorFirstMessage.has(author);\n\n if (author && showAvatar) {\n authorFirstMessage.add(author);\n }\n\n if (part.type === 'text') {\n if (\n lastPart &&\n lastPart.type === 'text' &&\n (lastPart as any).author === author\n ) {\n lastPart.text += '\\n' + part.text;\n } else {\n acc.push({\n type: part.type,\n text: part.text,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n });\n }\n } else if (part.type === 'reasoning') {\n const lastReasoningPart = last(reasoningParts);\n if (\n lastReasoningPart &&\n (lastReasoningPart as any).author === author\n ) {\n lastReasoningPart.text += part.text;\n } else {\n reasoningParts.push({\n type: 'reasoning',\n text: part.text,\n author,\n authorIdx,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n }\n } else if (part.type === 'image') {\n acc.push({\n type: part.type,\n image: part.imageUrl.url,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n } else if (part.type === 'file') {\n const data =\n part.fileUrl ||\n `data:${part.mimeType};base64,${part.fileData}` ||\n '';\n acc.push({\n type: part.type,\n data,\n filename: part.name,\n mimeType: part.mimeType,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n } else if (part.type === 'tool_call') {\n if (options.toolDisplay === 'group') {\n toolGroup.args[part.toolCallId] = {\n type: 'tool-call',\n index,\n toolCallId: part.toolCallId,\n toolName: part.toolCallName,\n args: part.toolCallArgs as Record<string, string>,\n argsText: JSON.stringify(part.toolCallArgs),\n result: part.content,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n };\n } else if (options.toolDisplay === 'step') {\n acc.push({\n type: 'tool-call',\n toolCallId: part.toolCallId,\n toolName: part.toolCallName,\n args: part.toolCallArgs as Record<string, string>,\n argsText: JSON.stringify(part.toolCallArgs),\n result: part.content,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n });\n }\n }\n return acc;\n }, [] as any[]);\n\n if (cur.status === MessageStatusEnum.ERROR || cur.error) {\n return {\n id: cur.id,\n role: cur.role,\n status: {\n type: 'incomplete',\n reason: 'error',\n error:\n (cur.error as { message: string }).message || (cur.error as any),\n },\n content: compact([\n cur.role === 'assistant' &&\n options.toolDisplay === 'group' &&\n keys(toolGroup.args).length > 0\n ? toolGroup\n : undefined,\n ...(content as ThreadAssistantMessagePart[]),\n ]),\n metadata: cur.metadata,\n };\n }\n\n const uiMessage: Mutable<\n Omit<ThreadMessageLike, 'content'> & {\n content: Exclude<ThreadMessageLike['content'], string>;\n }\n > = {\n id: cur.id,\n role: cur.role,\n status,\n attachments: cur.attaches?.map(item => ({\n status: { type: 'complete' },\n id: item.id,\n name: item.id,\n type: 'image',\n contentType: item.mimeType,\n content: [\n {\n type: 'image',\n image: item.url,\n },\n ],\n })),\n content: compact([\n ...reasoningParts,\n cur.role === 'assistant' &&\n options.toolDisplay === 'group' &&\n keys(toolGroup.args).length > 0\n ? toolGroup\n : undefined,\n ...(content as ThreadAssistantMessagePart[]),\n ]),\n metadata: {\n ...cur.metadata,\n invocationIds:\n keys(toolGroup.args).length > 0 ? keys(toolGroup.args) : undefined,\n } as any,\n };\n return uiMessage;\n });\n\n console.log(uiMessages, messages);\n\n return { uiMessages, authors };\n};\n\nexport default convertToAssistantMessage;\n"],"names":["MessageStatusEnum"],"mappings":"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"}
1
+ {"version":3,"file":"convertToAssistantMessage.cjs","sources":["../../src/utils/convertToAssistantMessage.ts"],"sourcesContent":["import {\n MessageStatus,\n ReasoningMessagePart,\n ThreadAssistantMessagePart,\n ThreadMessageLike,\n ToolCallMessagePart,\n} from '@assistant-ui/react';\nimport {\n ChatMessage,\n MessageStatus as MessageStatusEnum,\n} from '@chat-lab/core';\nimport { compact, keys, last, uniq, without } from 'lodash-es';\ntype Mutable<T> = {\n -readonly [K in keyof T]: T[K]; // -readonly 表示移除 readonly 修饰符\n};\n\nconst convertToAssistantMessage = (\n messages: Readonly<ChatMessage>[],\n options: { toolDisplay?: 'group' | 'none' | 'step' } = {\n toolDisplay: 'group',\n },\n) => {\n const authors = without(\n uniq(\n messages\n .map(message =>\n compact(\n message.content.map(\n part => part.type === 'text' && (part as any)?.author,\n ),\n ),\n )\n .flat(),\n ),\n 'user',\n );\n\n const uiMessages = messages.map<ThreadMessageLike>(cur => {\n let status: MessageStatus | undefined = undefined;\n if (cur.role === 'assistant') {\n status = ![MessageStatusEnum.PENDING, MessageStatusEnum.SENDING].includes(\n cur.status,\n )\n ? { type: 'complete', reason: 'stop' }\n : { type: 'running' };\n }\n\n const toolGroup: ToolCallMessagePart<Record<string, any>, null> = {\n type: 'tool-call',\n toolCallId: `tool-group-${cur.id}`,\n toolName: 'tool-group',\n args: {},\n argsText: JSON.stringify({}),\n };\n\n const reasoningParts: (Mutable<ReasoningMessagePart> & {\n author: string;\n authorIdx: number;\n })[] = [];\n\n const authorFirstMessage = new Set();\n const content = [...cur.content]\n .sort((a, b) => {\n const aAuthor = (a as any).author;\n const bAuthor = (b as any).author;\n if (aAuthor && bAuthor) {\n return authors.indexOf(aAuthor) - authors.indexOf(bAuthor);\n }\n return 0;\n })\n .reduce((acc, part, index) => {\n const lastPart = last(acc);\n const author = (part as any).author;\n const authorIdx = authors.indexOf(author);\n const showAvatar =\n authors.length >= 2 && !authorFirstMessage.has(author);\n const marginLeft =\n authors.length >= 2 && authorFirstMessage.has(author);\n\n if (author && showAvatar) {\n authorFirstMessage.add(author);\n }\n\n if (part.type === 'text') {\n if (\n lastPart &&\n lastPart.type === 'text' &&\n (lastPart as any).author === author\n ) {\n lastPart.text += '\\n' + part.text;\n } else {\n acc.push({\n type: part.type,\n text: part.text,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n });\n }\n } else if (part.type === 'reasoning') {\n const lastReasoningPart = last(reasoningParts);\n if (\n lastReasoningPart &&\n (lastReasoningPart as any).author === author\n ) {\n lastReasoningPart.text += part.text;\n } else {\n reasoningParts.push({\n type: 'reasoning',\n text: part.text,\n author,\n authorIdx,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n }\n } else if (part.type === 'image') {\n acc.push({\n type: part.type,\n image: part.imageUrl.url,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n } else if (part.type === 'file') {\n const data =\n part.fileUrl ||\n `data:${part.mimeType};base64,${part.fileData}` ||\n '';\n acc.push({\n type: part.type,\n data,\n filename: part.name,\n mimeType: part.mimeType,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n } else if (part.type === 'tool_call') {\n if (options.toolDisplay === 'group') {\n toolGroup.args[part.toolCallId] = {\n type: 'tool-call',\n index,\n toolCallId: part.toolCallId,\n toolName: part.toolCallName,\n args: part.toolCallArgs as Record<string, string>,\n argsText: JSON.stringify(part.toolCallArgs),\n result: part.content,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n };\n } else if (options.toolDisplay === 'step') {\n acc.push({\n type: 'tool-call',\n toolCallId: part.toolCallId,\n toolName: part.toolCallName,\n args: part.toolCallArgs as Record<string, string>,\n argsText: JSON.stringify(part.toolCallArgs),\n result: part.content,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n });\n }\n }\n return acc;\n }, [] as any[]);\n\n if (cur.status === MessageStatusEnum.ERROR || cur.error) {\n return {\n id: cur.id,\n role: cur.role,\n status: {\n type: 'incomplete',\n reason: 'error',\n error:\n (cur.error as { message: string }).message || (cur.error as any),\n },\n content: compact([\n cur.role === 'assistant' &&\n options.toolDisplay === 'group' &&\n keys(toolGroup.args).length > 0\n ? toolGroup\n : undefined,\n ...(content as ThreadAssistantMessagePart[]),\n ]),\n metadata: cur.metadata,\n };\n }\n\n const uiMessage: Mutable<\n Omit<ThreadMessageLike, 'content'> & {\n content: Exclude<ThreadMessageLike['content'], string>;\n }\n > = {\n id: cur.id,\n role: cur.role,\n status,\n attachments: cur.attaches?.map(item => ({\n status: { type: 'complete' },\n id: item.id,\n name: item.id,\n type: 'image',\n contentType: item.mimeType,\n content: [\n {\n type: 'image',\n image: item.url,\n },\n ],\n })),\n content: compact([\n ...reasoningParts,\n cur.role === 'assistant' &&\n options.toolDisplay === 'group' &&\n keys(toolGroup.args).length > 0\n ? toolGroup\n : undefined,\n ...(content as ThreadAssistantMessagePart[]),\n ]),\n metadata: {\n ...cur.metadata,\n invocationIds:\n keys(toolGroup.args).length > 0 ? keys(toolGroup.args) : undefined,\n } as any,\n };\n return uiMessage;\n });\n\n return { uiMessages, authors };\n};\n\nexport default convertToAssistantMessage;\n"],"names":["MessageStatusEnum"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"convertToAssistantMessage.d.ts","sourceRoot":"","sources":["../../src/utils/convertToAssistantMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAMxB,QAAA,MAAM,yBAAyB,GAC7B,UAAU,QAAQ,CAAC,WAAW,CAAC,EAAE,EACjC,UAAS;IAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;CAEjD;;;CAgNF,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"convertToAssistantMessage.d.ts","sourceRoot":"","sources":["../../src/utils/convertToAssistantMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,WAAW,EAEZ,MAAM,gBAAgB,CAAC;AAMxB,QAAA,MAAM,yBAAyB,GAC7B,UAAU,QAAQ,CAAC,WAAW,CAAC,EAAE,EACjC,UAAS;IAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAA;CAEjD;;;CA8MF,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -180,7 +180,6 @@ const convertToAssistantMessage = (messages, options = {
180
180
  };
181
181
  return uiMessage;
182
182
  });
183
- console.log(uiMessages, messages);
184
183
  return { uiMessages, authors };
185
184
  };
186
185
 
@@ -1 +1 @@
1
- {"version":3,"file":"convertToAssistantMessage.js","sources":["../../src/utils/convertToAssistantMessage.ts"],"sourcesContent":["import {\n MessageStatus,\n ReasoningMessagePart,\n ThreadAssistantMessagePart,\n ThreadMessageLike,\n ToolCallMessagePart,\n} from '@assistant-ui/react';\nimport {\n ChatMessage,\n MessageStatus as MessageStatusEnum,\n} from '@chat-lab/core';\nimport { compact, keys, last, uniq, without } from 'lodash-es';\ntype Mutable<T> = {\n -readonly [K in keyof T]: T[K]; // -readonly 表示移除 readonly 修饰符\n};\n\nconst convertToAssistantMessage = (\n messages: Readonly<ChatMessage>[],\n options: { toolDisplay?: 'group' | 'none' | 'step' } = {\n toolDisplay: 'group',\n },\n) => {\n const authors = without(\n uniq(\n messages\n .map(message =>\n compact(\n message.content.map(\n part => part.type === 'text' && (part as any)?.author,\n ),\n ),\n )\n .flat(),\n ),\n 'user',\n );\n\n const uiMessages = messages.map<ThreadMessageLike>(cur => {\n let status: MessageStatus | undefined = undefined;\n if (cur.role === 'assistant') {\n status = ![MessageStatusEnum.PENDING, MessageStatusEnum.SENDING].includes(\n cur.status,\n )\n ? { type: 'complete', reason: 'stop' }\n : { type: 'running' };\n }\n\n const toolGroup: ToolCallMessagePart<Record<string, any>, null> = {\n type: 'tool-call',\n toolCallId: `tool-group-${cur.id}`,\n toolName: 'tool-group',\n args: {},\n argsText: JSON.stringify({}),\n };\n\n const reasoningParts: (Mutable<ReasoningMessagePart> & {\n author: string;\n authorIdx: number;\n })[] = [];\n\n const authorFirstMessage = new Set();\n const content = [...cur.content]\n .sort((a, b) => {\n const aAuthor = (a as any).author;\n const bAuthor = (b as any).author;\n if (aAuthor && bAuthor) {\n return authors.indexOf(aAuthor) - authors.indexOf(bAuthor);\n }\n return 0;\n })\n .reduce((acc, part, index) => {\n const lastPart = last(acc);\n const author = (part as any).author;\n const authorIdx = authors.indexOf(author);\n const showAvatar =\n authors.length >= 2 && !authorFirstMessage.has(author);\n const marginLeft =\n authors.length >= 2 && authorFirstMessage.has(author);\n\n if (author && showAvatar) {\n authorFirstMessage.add(author);\n }\n\n if (part.type === 'text') {\n if (\n lastPart &&\n lastPart.type === 'text' &&\n (lastPart as any).author === author\n ) {\n lastPart.text += '\\n' + part.text;\n } else {\n acc.push({\n type: part.type,\n text: part.text,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n });\n }\n } else if (part.type === 'reasoning') {\n const lastReasoningPart = last(reasoningParts);\n if (\n lastReasoningPart &&\n (lastReasoningPart as any).author === author\n ) {\n lastReasoningPart.text += part.text;\n } else {\n reasoningParts.push({\n type: 'reasoning',\n text: part.text,\n author,\n authorIdx,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n }\n } else if (part.type === 'image') {\n acc.push({\n type: part.type,\n image: part.imageUrl.url,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n } else if (part.type === 'file') {\n const data =\n part.fileUrl ||\n `data:${part.mimeType};base64,${part.fileData}` ||\n '';\n acc.push({\n type: part.type,\n data,\n filename: part.name,\n mimeType: part.mimeType,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n } else if (part.type === 'tool_call') {\n if (options.toolDisplay === 'group') {\n toolGroup.args[part.toolCallId] = {\n type: 'tool-call',\n index,\n toolCallId: part.toolCallId,\n toolName: part.toolCallName,\n args: part.toolCallArgs as Record<string, string>,\n argsText: JSON.stringify(part.toolCallArgs),\n result: part.content,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n };\n } else if (options.toolDisplay === 'step') {\n acc.push({\n type: 'tool-call',\n toolCallId: part.toolCallId,\n toolName: part.toolCallName,\n args: part.toolCallArgs as Record<string, string>,\n argsText: JSON.stringify(part.toolCallArgs),\n result: part.content,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n });\n }\n }\n return acc;\n }, [] as any[]);\n\n if (cur.status === MessageStatusEnum.ERROR || cur.error) {\n return {\n id: cur.id,\n role: cur.role,\n status: {\n type: 'incomplete',\n reason: 'error',\n error:\n (cur.error as { message: string }).message || (cur.error as any),\n },\n content: compact([\n cur.role === 'assistant' &&\n options.toolDisplay === 'group' &&\n keys(toolGroup.args).length > 0\n ? toolGroup\n : undefined,\n ...(content as ThreadAssistantMessagePart[]),\n ]),\n metadata: cur.metadata,\n };\n }\n\n const uiMessage: Mutable<\n Omit<ThreadMessageLike, 'content'> & {\n content: Exclude<ThreadMessageLike['content'], string>;\n }\n > = {\n id: cur.id,\n role: cur.role,\n status,\n attachments: cur.attaches?.map(item => ({\n status: { type: 'complete' },\n id: item.id,\n name: item.id,\n type: 'image',\n contentType: item.mimeType,\n content: [\n {\n type: 'image',\n image: item.url,\n },\n ],\n })),\n content: compact([\n ...reasoningParts,\n cur.role === 'assistant' &&\n options.toolDisplay === 'group' &&\n keys(toolGroup.args).length > 0\n ? toolGroup\n : undefined,\n ...(content as ThreadAssistantMessagePart[]),\n ]),\n metadata: {\n ...cur.metadata,\n invocationIds:\n keys(toolGroup.args).length > 0 ? keys(toolGroup.args) : undefined,\n } as any,\n };\n return uiMessage;\n });\n\n console.log(uiMessages, messages);\n\n return { uiMessages, authors };\n};\n\nexport default convertToAssistantMessage;\n"],"names":["MessageStatusEnum"],"mappings":"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"}
1
+ {"version":3,"file":"convertToAssistantMessage.js","sources":["../../src/utils/convertToAssistantMessage.ts"],"sourcesContent":["import {\n MessageStatus,\n ReasoningMessagePart,\n ThreadAssistantMessagePart,\n ThreadMessageLike,\n ToolCallMessagePart,\n} from '@assistant-ui/react';\nimport {\n ChatMessage,\n MessageStatus as MessageStatusEnum,\n} from '@chat-lab/core';\nimport { compact, keys, last, uniq, without } from 'lodash-es';\ntype Mutable<T> = {\n -readonly [K in keyof T]: T[K]; // -readonly 表示移除 readonly 修饰符\n};\n\nconst convertToAssistantMessage = (\n messages: Readonly<ChatMessage>[],\n options: { toolDisplay?: 'group' | 'none' | 'step' } = {\n toolDisplay: 'group',\n },\n) => {\n const authors = without(\n uniq(\n messages\n .map(message =>\n compact(\n message.content.map(\n part => part.type === 'text' && (part as any)?.author,\n ),\n ),\n )\n .flat(),\n ),\n 'user',\n );\n\n const uiMessages = messages.map<ThreadMessageLike>(cur => {\n let status: MessageStatus | undefined = undefined;\n if (cur.role === 'assistant') {\n status = ![MessageStatusEnum.PENDING, MessageStatusEnum.SENDING].includes(\n cur.status,\n )\n ? { type: 'complete', reason: 'stop' }\n : { type: 'running' };\n }\n\n const toolGroup: ToolCallMessagePart<Record<string, any>, null> = {\n type: 'tool-call',\n toolCallId: `tool-group-${cur.id}`,\n toolName: 'tool-group',\n args: {},\n argsText: JSON.stringify({}),\n };\n\n const reasoningParts: (Mutable<ReasoningMessagePart> & {\n author: string;\n authorIdx: number;\n })[] = [];\n\n const authorFirstMessage = new Set();\n const content = [...cur.content]\n .sort((a, b) => {\n const aAuthor = (a as any).author;\n const bAuthor = (b as any).author;\n if (aAuthor && bAuthor) {\n return authors.indexOf(aAuthor) - authors.indexOf(bAuthor);\n }\n return 0;\n })\n .reduce((acc, part, index) => {\n const lastPart = last(acc);\n const author = (part as any).author;\n const authorIdx = authors.indexOf(author);\n const showAvatar =\n authors.length >= 2 && !authorFirstMessage.has(author);\n const marginLeft =\n authors.length >= 2 && authorFirstMessage.has(author);\n\n if (author && showAvatar) {\n authorFirstMessage.add(author);\n }\n\n if (part.type === 'text') {\n if (\n lastPart &&\n lastPart.type === 'text' &&\n (lastPart as any).author === author\n ) {\n lastPart.text += '\\n' + part.text;\n } else {\n acc.push({\n type: part.type,\n text: part.text,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n });\n }\n } else if (part.type === 'reasoning') {\n const lastReasoningPart = last(reasoningParts);\n if (\n lastReasoningPart &&\n (lastReasoningPart as any).author === author\n ) {\n lastReasoningPart.text += part.text;\n } else {\n reasoningParts.push({\n type: 'reasoning',\n text: part.text,\n author,\n authorIdx,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n }\n } else if (part.type === 'image') {\n acc.push({\n type: part.type,\n image: part.imageUrl.url,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n } else if (part.type === 'file') {\n const data =\n part.fileUrl ||\n `data:${part.mimeType};base64,${part.fileData}` ||\n '';\n acc.push({\n type: part.type,\n data,\n filename: part.name,\n mimeType: part.mimeType,\n ...(authors.length > 2 && { showAvatar, marginLeft }),\n });\n } else if (part.type === 'tool_call') {\n if (options.toolDisplay === 'group') {\n toolGroup.args[part.toolCallId] = {\n type: 'tool-call',\n index,\n toolCallId: part.toolCallId,\n toolName: part.toolCallName,\n args: part.toolCallArgs as Record<string, string>,\n argsText: JSON.stringify(part.toolCallArgs),\n result: part.content,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n };\n } else if (options.toolDisplay === 'step') {\n acc.push({\n type: 'tool-call',\n toolCallId: part.toolCallId,\n toolName: part.toolCallName,\n args: part.toolCallArgs as Record<string, string>,\n argsText: JSON.stringify(part.toolCallArgs),\n result: part.content,\n author,\n authorIdx,\n ...(authors.length >= 2 && { showAvatar, marginLeft }),\n });\n }\n }\n return acc;\n }, [] as any[]);\n\n if (cur.status === MessageStatusEnum.ERROR || cur.error) {\n return {\n id: cur.id,\n role: cur.role,\n status: {\n type: 'incomplete',\n reason: 'error',\n error:\n (cur.error as { message: string }).message || (cur.error as any),\n },\n content: compact([\n cur.role === 'assistant' &&\n options.toolDisplay === 'group' &&\n keys(toolGroup.args).length > 0\n ? toolGroup\n : undefined,\n ...(content as ThreadAssistantMessagePart[]),\n ]),\n metadata: cur.metadata,\n };\n }\n\n const uiMessage: Mutable<\n Omit<ThreadMessageLike, 'content'> & {\n content: Exclude<ThreadMessageLike['content'], string>;\n }\n > = {\n id: cur.id,\n role: cur.role,\n status,\n attachments: cur.attaches?.map(item => ({\n status: { type: 'complete' },\n id: item.id,\n name: item.id,\n type: 'image',\n contentType: item.mimeType,\n content: [\n {\n type: 'image',\n image: item.url,\n },\n ],\n })),\n content: compact([\n ...reasoningParts,\n cur.role === 'assistant' &&\n options.toolDisplay === 'group' &&\n keys(toolGroup.args).length > 0\n ? toolGroup\n : undefined,\n ...(content as ThreadAssistantMessagePart[]),\n ]),\n metadata: {\n ...cur.metadata,\n invocationIds:\n keys(toolGroup.args).length > 0 ? keys(toolGroup.args) : undefined,\n } as any,\n };\n return uiMessage;\n });\n\n return { uiMessages, authors };\n};\n\nexport default convertToAssistantMessage;\n"],"names":["MessageStatusEnum"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chat-lab/ui",
3
- "version": "0.1.0-beta.51",
3
+ "version": "0.1.0-beta.52",
4
4
  "type": "module",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",