@chat-lab/ui 0.1.0-beta.82 → 0.1.0-beta.84

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.
@@ -20,7 +20,6 @@ export interface ChatkitProps {
20
20
  placeholder?: string;
21
21
  tools?: React.ElementType[];
22
22
  plugins?: React.ReactNode[];
23
- chatController?: ChatController;
24
23
  chatControllerPlugins?: ChatkitPlugin[];
25
24
  onError?: (error: any) => void;
26
25
  welcome?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Chatkit/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Chatkit/types.ts"],"names":[],"mappings":"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"}
@@ -135,6 +135,8 @@ const useClawChat = ({ onAction, onAbort, }) => {
135
135
  const currentThread = controllerRef.current.getCurrentThread();
136
136
  if (currentThread) {
137
137
  controllerRef.current.abortMessage();
138
+ controllerRef.current.setSending(currentThread.id, false);
139
+ controllerRef.current.setLoading(currentThread.id, false);
138
140
  }
139
141
  }
140
142
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/hooks/useClawChat/index.ts"],"sourcesContent":["import {\n ChatController,\n createThreadManagerStateWithDefault,\n ThreadMessageManager,\n ProtocolEnum,\n createMetaData,\n MessageStatus,\n} from '@chat-lab/core';\nimport { useRef, useState } from 'react';\nimport { useMemoizedFn } from 'ahooks';\nimport { uniq, without } from 'lodash-es';\nimport { v4 as uuid } from 'uuid';\nimport {\n UseClawChatReturn,\n OnAction,\n ClawChatStatus,\n PushMessageImpl,\n PushHistory,\n isPushStreamStart,\n isPushStreamDone,\n isPushStreamError,\n isPushStreamAborted,\n isPushGatewayEvent,\n} from './types';\nimport { createClawCompletion } from './clawCompletion';\nimport ClawProtocolAdaptor from './ClawProtocolAdaptor';\nimport convertHistoryMessage from './convertHistoryMessage';\nimport { ClawPlugin } from './clawPlugin';\n\nexport * from './types';\nexport { default as ClawProtocolAdaptor } from './ClawProtocolAdaptor';\nexport * from './ClawProtocolAdaptor';\n\n/**\n * useClawChat Hook\n * 用于与 ClawClient 进行双向通信\n *\n * @param onAction - 处理来自 Chat 组件的用户操作\n * @returns {UseClawChatReturn} - 包含 controller、pushMessage 和 setClawChatStatus\n */\n\nexport const useClawChat = ({\n onAction,\n onAbort,\n}: {\n onAction: OnAction;\n onAbort: (runId: string) => void;\n}): UseClawChatReturn => {\n const controllerRef = useRef<ChatController | null>(null);\n const currentRunIdRef = useRef<string[]>([]);\n\n const clawPluginRef = useRef<ClawPlugin>();\n\n const pushMessageImplRef = useRef<(msg: PushMessageImpl) => void>(() => {});\n /**\n * 推送消息到 Chat 组件\n * 由 ClawClient 调用\n */\n const pushMessage = useMemoizedFn((msg: PushMessageImpl) => {\n // 获取当前线程\n const thread = controllerRef.current?.getCurrentThread();\n // 更新整个消息历史\n if (isPushStreamStart(msg)) {\n currentRunIdRef.current = uniq([\n ...currentRunIdRef.current,\n msg.payload.runId,\n ]);\n // 手动设置 sending 状态,显示小圆圈\n if (thread) {\n controllerRef.current?.setSending(thread.id, true);\n }\n controllerRef.current?.triggerCompletion({\n extraRequestOptions: {\n meta: {\n shouldSendMessage: false,\n runId: msg.payload.runId,\n },\n },\n abortControllerId: msg.payload.runId,\n });\n }\n if (isPushGatewayEvent(msg)) {\n controllerRef.current?.addMessage(thread?.id, {\n id: uuid(),\n content: msg.payload.message.content,\n role: 'assistant',\n threadId: thread?.id,\n metadata: {},\n status: MessageStatus.SUCCESS,\n });\n }\n if (\n isPushStreamAborted(msg)\n || isPushStreamDone(msg)\n || isPushStreamError(msg)\n ) {\n currentRunIdRef.current = without(\n currentRunIdRef.current,\n msg.payload.runId,\n );\n // 手动设置 sending 状态,显示小圆圈\n if (thread && currentRunIdRef.current.length === 0) {\n controllerRef.current?.setSending(thread.id, false);\n controllerRef.current?.setLoading(thread.id, false);\n }\n }\n\n pushMessageImplRef.current(msg);\n });\n\n const pushHistory = useMemoizedFn((msg: PushHistory) => {\n // 更新整个消息历史\n // pushMessageImplRef.current(msg);\n const thread = controllerRef.current?.getCurrentThread();\n if (thread) {\n controllerRef.current?.updateThread(thread.id, {\n messages: convertHistoryMessage(msg),\n });\n }\n });\n\n // 初始化 ChatController\n if (!controllerRef.current) {\n const state = createThreadManagerStateWithDefault();\n const storeManager = new ThreadMessageManager(state);\n const clawPlugin = new ClawPlugin({\n onSend: async (text) => {\n await onAction({\n message: text,\n });\n },\n getRunIds: () => currentRunIdRef.current,\n onAbort,\n });\n clawPluginRef.current = clawPlugin;\n // 创建 completion 函数\n const { clawCompletion, pushMessageImpl } = createClawCompletion(\n onAction,\n onAbort,\n );\n pushMessageImplRef.current = pushMessageImpl;\n\n // 创建 Claw Protocol Adaptor\n const clawProtocolAdaptor = new ClawProtocolAdaptor({\n protocol: ProtocolEnum.CUSTOM,\n protocolName: 'Claw',\n } as any);\n\n controllerRef.current = new ChatController({\n requestOptions: {\n api: 'default',\n headers: {\n Authorization: 'Bearer ',\n },\n meta: {\n shouldSendMessage: true,\n shouldReceived: false,\n },\n // 使用自定义 completion\n completions: clawCompletion,\n },\n protocolOptions: {\n protocol: ProtocolEnum.CUSTOM,\n protocolName: 'Claw',\n protocolAdaptor: clawProtocolAdaptor,\n } as any,\n storeManager,\n metaData: createMetaData({\n clawStatus: { status: false, reason: 'uninitialized' },\n }),\n plugins: [clawPlugin],\n });\n }\n\n const handleClawChatStatus = useMemoizedFn((status: ClawChatStatus) => {\n if (controllerRef.current) {\n controllerRef.current.metaData.clawStatus = status;\n const currentThread = controllerRef.current.getCurrentThread();\n if (currentThread) {\n controllerRef.current.abortMessage();\n }\n }\n });\n\n return {\n controllerRef,\n pushMessage,\n pushHistory,\n setClawChatStatus: handleClawChatStatus,\n };\n};\n"],"names":["useRef","useMemoizedFn","isPushStreamStart","uniq","isPushGatewayEvent","uuid","MessageStatus","isPushStreamAborted","isPushStreamDone","isPushStreamError","without","createThreadManagerStateWithDefault","ThreadMessageManager","clawPlugin","ClawPlugin","clawCompletion","createClawCompletion","ProtocolEnum","ChatController","createMetaData"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/hooks/useClawChat/index.ts"],"sourcesContent":["import {\n ChatController,\n createThreadManagerStateWithDefault,\n ThreadMessageManager,\n ProtocolEnum,\n createMetaData,\n MessageStatus,\n} from '@chat-lab/core';\nimport { useRef, useState } from 'react';\nimport { useMemoizedFn } from 'ahooks';\nimport { uniq, without } from 'lodash-es';\nimport { v4 as uuid } from 'uuid';\nimport {\n UseClawChatReturn,\n OnAction,\n ClawChatStatus,\n PushMessageImpl,\n PushHistory,\n isPushStreamStart,\n isPushStreamDone,\n isPushStreamError,\n isPushStreamAborted,\n isPushGatewayEvent,\n} from './types';\nimport { createClawCompletion } from './clawCompletion';\nimport ClawProtocolAdaptor from './ClawProtocolAdaptor';\nimport convertHistoryMessage from './convertHistoryMessage';\nimport { ClawPlugin } from './clawPlugin';\n\nexport * from './types';\nexport { default as ClawProtocolAdaptor } from './ClawProtocolAdaptor';\nexport * from './ClawProtocolAdaptor';\n\n/**\n * useClawChat Hook\n * 用于与 ClawClient 进行双向通信\n *\n * @param onAction - 处理来自 Chat 组件的用户操作\n * @returns {UseClawChatReturn} - 包含 controller、pushMessage 和 setClawChatStatus\n */\n\nexport const useClawChat = ({\n onAction,\n onAbort,\n}: {\n onAction: OnAction;\n onAbort: (runId: string) => void;\n}): UseClawChatReturn => {\n const controllerRef = useRef<ChatController | null>(null);\n const currentRunIdRef = useRef<string[]>([]);\n\n const clawPluginRef = useRef<ClawPlugin>();\n\n const pushMessageImplRef = useRef<(msg: PushMessageImpl) => void>(() => {});\n /**\n * 推送消息到 Chat 组件\n * 由 ClawClient 调用\n */\n const pushMessage = useMemoizedFn((msg: PushMessageImpl) => {\n // 获取当前线程\n const thread = controllerRef.current?.getCurrentThread();\n // 更新整个消息历史\n if (isPushStreamStart(msg)) {\n currentRunIdRef.current = uniq([\n ...currentRunIdRef.current,\n msg.payload.runId,\n ]);\n // 手动设置 sending 状态,显示小圆圈\n if (thread) {\n controllerRef.current?.setSending(thread.id, true);\n }\n controllerRef.current?.triggerCompletion({\n extraRequestOptions: {\n meta: {\n shouldSendMessage: false,\n runId: msg.payload.runId,\n },\n },\n abortControllerId: msg.payload.runId,\n });\n }\n if (isPushGatewayEvent(msg)) {\n controllerRef.current?.addMessage(thread?.id, {\n id: uuid(),\n content: msg.payload.message.content,\n role: 'assistant',\n threadId: thread?.id,\n metadata: {},\n status: MessageStatus.SUCCESS,\n });\n }\n if (\n isPushStreamAborted(msg)\n || isPushStreamDone(msg)\n || isPushStreamError(msg)\n ) {\n currentRunIdRef.current = without(\n currentRunIdRef.current,\n msg.payload.runId,\n );\n // 手动设置 sending 状态,显示小圆圈\n if (thread && currentRunIdRef.current.length === 0) {\n controllerRef.current?.setSending(thread.id, false);\n controllerRef.current?.setLoading(thread.id, false);\n }\n }\n\n pushMessageImplRef.current(msg);\n });\n\n const pushHistory = useMemoizedFn((msg: PushHistory) => {\n // 更新整个消息历史\n // pushMessageImplRef.current(msg);\n const thread = controllerRef.current?.getCurrentThread();\n if (thread) {\n controllerRef.current?.updateThread(thread.id, {\n messages: convertHistoryMessage(msg),\n });\n }\n });\n\n // 初始化 ChatController\n if (!controllerRef.current) {\n const state = createThreadManagerStateWithDefault();\n const storeManager = new ThreadMessageManager(state);\n const clawPlugin = new ClawPlugin({\n onSend: async (text) => {\n await onAction({\n message: text,\n });\n },\n getRunIds: () => currentRunIdRef.current,\n onAbort,\n });\n clawPluginRef.current = clawPlugin;\n // 创建 completion 函数\n const { clawCompletion, pushMessageImpl } = createClawCompletion(\n onAction,\n onAbort,\n );\n pushMessageImplRef.current = pushMessageImpl;\n\n // 创建 Claw Protocol Adaptor\n const clawProtocolAdaptor = new ClawProtocolAdaptor({\n protocol: ProtocolEnum.CUSTOM,\n protocolName: 'Claw',\n } as any);\n\n controllerRef.current = new ChatController({\n requestOptions: {\n api: 'default',\n headers: {\n Authorization: 'Bearer ',\n },\n meta: {\n shouldSendMessage: true,\n shouldReceived: false,\n },\n // 使用自定义 completion\n completions: clawCompletion,\n },\n protocolOptions: {\n protocol: ProtocolEnum.CUSTOM,\n protocolName: 'Claw',\n protocolAdaptor: clawProtocolAdaptor,\n } as any,\n storeManager,\n metaData: createMetaData({\n clawStatus: { status: false, reason: 'uninitialized' },\n }),\n plugins: [clawPlugin],\n });\n }\n\n const handleClawChatStatus = useMemoizedFn((status: ClawChatStatus) => {\n if (controllerRef.current) {\n controllerRef.current.metaData.clawStatus = status;\n const currentThread = controllerRef.current.getCurrentThread();\n if (currentThread) {\n controllerRef.current.abortMessage();\n controllerRef.current.setSending(currentThread.id, false);\n controllerRef.current.setLoading(currentThread.id, false);\n }\n }\n });\n\n return {\n controllerRef,\n pushMessage,\n pushHistory,\n setClawChatStatus: handleClawChatStatus,\n };\n};\n"],"names":["useRef","useMemoizedFn","isPushStreamStart","uniq","isPushGatewayEvent","uuid","MessageStatus","isPushStreamAborted","isPushStreamDone","isPushStreamError","without","createThreadManagerStateWithDefault","ThreadMessageManager","clawPlugin","ClawPlugin","clawCompletion","createClawCompletion","ProtocolEnum","ChatController","createMetaData"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useClawChat/index.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,iBAAiB,EACjB,QAAQ,EAST,MAAM,SAAS,CAAC;AAMjB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,cAAc,uBAAuB,CAAC;AAEtC;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW,GAAI,wBAGzB;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,KAAG,iBA+IH,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useClawChat/index.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,iBAAiB,EACjB,QAAQ,EAST,MAAM,SAAS,CAAC;AAMjB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,cAAc,uBAAuB,CAAC;AAEtC;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW,GAAI,wBAGzB;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC,KAAG,iBAiJH,CAAC"}
@@ -134,6 +134,8 @@ const useClawChat = ({ onAction, onAbort, }) => {
134
134
  const currentThread = controllerRef.current.getCurrentThread();
135
135
  if (currentThread) {
136
136
  controllerRef.current.abortMessage();
137
+ controllerRef.current.setSending(currentThread.id, false);
138
+ controllerRef.current.setLoading(currentThread.id, false);
137
139
  }
138
140
  }
139
141
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/hooks/useClawChat/index.ts"],"sourcesContent":["import {\n ChatController,\n createThreadManagerStateWithDefault,\n ThreadMessageManager,\n ProtocolEnum,\n createMetaData,\n MessageStatus,\n} from '@chat-lab/core';\nimport { useRef, useState } from 'react';\nimport { useMemoizedFn } from 'ahooks';\nimport { uniq, without } from 'lodash-es';\nimport { v4 as uuid } from 'uuid';\nimport {\n UseClawChatReturn,\n OnAction,\n ClawChatStatus,\n PushMessageImpl,\n PushHistory,\n isPushStreamStart,\n isPushStreamDone,\n isPushStreamError,\n isPushStreamAborted,\n isPushGatewayEvent,\n} from './types';\nimport { createClawCompletion } from './clawCompletion';\nimport ClawProtocolAdaptor from './ClawProtocolAdaptor';\nimport convertHistoryMessage from './convertHistoryMessage';\nimport { ClawPlugin } from './clawPlugin';\n\nexport * from './types';\nexport { default as ClawProtocolAdaptor } from './ClawProtocolAdaptor';\nexport * from './ClawProtocolAdaptor';\n\n/**\n * useClawChat Hook\n * 用于与 ClawClient 进行双向通信\n *\n * @param onAction - 处理来自 Chat 组件的用户操作\n * @returns {UseClawChatReturn} - 包含 controller、pushMessage 和 setClawChatStatus\n */\n\nexport const useClawChat = ({\n onAction,\n onAbort,\n}: {\n onAction: OnAction;\n onAbort: (runId: string) => void;\n}): UseClawChatReturn => {\n const controllerRef = useRef<ChatController | null>(null);\n const currentRunIdRef = useRef<string[]>([]);\n\n const clawPluginRef = useRef<ClawPlugin>();\n\n const pushMessageImplRef = useRef<(msg: PushMessageImpl) => void>(() => {});\n /**\n * 推送消息到 Chat 组件\n * 由 ClawClient 调用\n */\n const pushMessage = useMemoizedFn((msg: PushMessageImpl) => {\n // 获取当前线程\n const thread = controllerRef.current?.getCurrentThread();\n // 更新整个消息历史\n if (isPushStreamStart(msg)) {\n currentRunIdRef.current = uniq([\n ...currentRunIdRef.current,\n msg.payload.runId,\n ]);\n // 手动设置 sending 状态,显示小圆圈\n if (thread) {\n controllerRef.current?.setSending(thread.id, true);\n }\n controllerRef.current?.triggerCompletion({\n extraRequestOptions: {\n meta: {\n shouldSendMessage: false,\n runId: msg.payload.runId,\n },\n },\n abortControllerId: msg.payload.runId,\n });\n }\n if (isPushGatewayEvent(msg)) {\n controllerRef.current?.addMessage(thread?.id, {\n id: uuid(),\n content: msg.payload.message.content,\n role: 'assistant',\n threadId: thread?.id,\n metadata: {},\n status: MessageStatus.SUCCESS,\n });\n }\n if (\n isPushStreamAborted(msg)\n || isPushStreamDone(msg)\n || isPushStreamError(msg)\n ) {\n currentRunIdRef.current = without(\n currentRunIdRef.current,\n msg.payload.runId,\n );\n // 手动设置 sending 状态,显示小圆圈\n if (thread && currentRunIdRef.current.length === 0) {\n controllerRef.current?.setSending(thread.id, false);\n controllerRef.current?.setLoading(thread.id, false);\n }\n }\n\n pushMessageImplRef.current(msg);\n });\n\n const pushHistory = useMemoizedFn((msg: PushHistory) => {\n // 更新整个消息历史\n // pushMessageImplRef.current(msg);\n const thread = controllerRef.current?.getCurrentThread();\n if (thread) {\n controllerRef.current?.updateThread(thread.id, {\n messages: convertHistoryMessage(msg),\n });\n }\n });\n\n // 初始化 ChatController\n if (!controllerRef.current) {\n const state = createThreadManagerStateWithDefault();\n const storeManager = new ThreadMessageManager(state);\n const clawPlugin = new ClawPlugin({\n onSend: async (text) => {\n await onAction({\n message: text,\n });\n },\n getRunIds: () => currentRunIdRef.current,\n onAbort,\n });\n clawPluginRef.current = clawPlugin;\n // 创建 completion 函数\n const { clawCompletion, pushMessageImpl } = createClawCompletion(\n onAction,\n onAbort,\n );\n pushMessageImplRef.current = pushMessageImpl;\n\n // 创建 Claw Protocol Adaptor\n const clawProtocolAdaptor = new ClawProtocolAdaptor({\n protocol: ProtocolEnum.CUSTOM,\n protocolName: 'Claw',\n } as any);\n\n controllerRef.current = new ChatController({\n requestOptions: {\n api: 'default',\n headers: {\n Authorization: 'Bearer ',\n },\n meta: {\n shouldSendMessage: true,\n shouldReceived: false,\n },\n // 使用自定义 completion\n completions: clawCompletion,\n },\n protocolOptions: {\n protocol: ProtocolEnum.CUSTOM,\n protocolName: 'Claw',\n protocolAdaptor: clawProtocolAdaptor,\n } as any,\n storeManager,\n metaData: createMetaData({\n clawStatus: { status: false, reason: 'uninitialized' },\n }),\n plugins: [clawPlugin],\n });\n }\n\n const handleClawChatStatus = useMemoizedFn((status: ClawChatStatus) => {\n if (controllerRef.current) {\n controllerRef.current.metaData.clawStatus = status;\n const currentThread = controllerRef.current.getCurrentThread();\n if (currentThread) {\n controllerRef.current.abortMessage();\n }\n }\n });\n\n return {\n controllerRef,\n pushMessage,\n pushHistory,\n setClawChatStatus: handleClawChatStatus,\n };\n};\n"],"names":["uuid"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/hooks/useClawChat/index.ts"],"sourcesContent":["import {\n ChatController,\n createThreadManagerStateWithDefault,\n ThreadMessageManager,\n ProtocolEnum,\n createMetaData,\n MessageStatus,\n} from '@chat-lab/core';\nimport { useRef, useState } from 'react';\nimport { useMemoizedFn } from 'ahooks';\nimport { uniq, without } from 'lodash-es';\nimport { v4 as uuid } from 'uuid';\nimport {\n UseClawChatReturn,\n OnAction,\n ClawChatStatus,\n PushMessageImpl,\n PushHistory,\n isPushStreamStart,\n isPushStreamDone,\n isPushStreamError,\n isPushStreamAborted,\n isPushGatewayEvent,\n} from './types';\nimport { createClawCompletion } from './clawCompletion';\nimport ClawProtocolAdaptor from './ClawProtocolAdaptor';\nimport convertHistoryMessage from './convertHistoryMessage';\nimport { ClawPlugin } from './clawPlugin';\n\nexport * from './types';\nexport { default as ClawProtocolAdaptor } from './ClawProtocolAdaptor';\nexport * from './ClawProtocolAdaptor';\n\n/**\n * useClawChat Hook\n * 用于与 ClawClient 进行双向通信\n *\n * @param onAction - 处理来自 Chat 组件的用户操作\n * @returns {UseClawChatReturn} - 包含 controller、pushMessage 和 setClawChatStatus\n */\n\nexport const useClawChat = ({\n onAction,\n onAbort,\n}: {\n onAction: OnAction;\n onAbort: (runId: string) => void;\n}): UseClawChatReturn => {\n const controllerRef = useRef<ChatController | null>(null);\n const currentRunIdRef = useRef<string[]>([]);\n\n const clawPluginRef = useRef<ClawPlugin>();\n\n const pushMessageImplRef = useRef<(msg: PushMessageImpl) => void>(() => {});\n /**\n * 推送消息到 Chat 组件\n * 由 ClawClient 调用\n */\n const pushMessage = useMemoizedFn((msg: PushMessageImpl) => {\n // 获取当前线程\n const thread = controllerRef.current?.getCurrentThread();\n // 更新整个消息历史\n if (isPushStreamStart(msg)) {\n currentRunIdRef.current = uniq([\n ...currentRunIdRef.current,\n msg.payload.runId,\n ]);\n // 手动设置 sending 状态,显示小圆圈\n if (thread) {\n controllerRef.current?.setSending(thread.id, true);\n }\n controllerRef.current?.triggerCompletion({\n extraRequestOptions: {\n meta: {\n shouldSendMessage: false,\n runId: msg.payload.runId,\n },\n },\n abortControllerId: msg.payload.runId,\n });\n }\n if (isPushGatewayEvent(msg)) {\n controllerRef.current?.addMessage(thread?.id, {\n id: uuid(),\n content: msg.payload.message.content,\n role: 'assistant',\n threadId: thread?.id,\n metadata: {},\n status: MessageStatus.SUCCESS,\n });\n }\n if (\n isPushStreamAborted(msg)\n || isPushStreamDone(msg)\n || isPushStreamError(msg)\n ) {\n currentRunIdRef.current = without(\n currentRunIdRef.current,\n msg.payload.runId,\n );\n // 手动设置 sending 状态,显示小圆圈\n if (thread && currentRunIdRef.current.length === 0) {\n controllerRef.current?.setSending(thread.id, false);\n controllerRef.current?.setLoading(thread.id, false);\n }\n }\n\n pushMessageImplRef.current(msg);\n });\n\n const pushHistory = useMemoizedFn((msg: PushHistory) => {\n // 更新整个消息历史\n // pushMessageImplRef.current(msg);\n const thread = controllerRef.current?.getCurrentThread();\n if (thread) {\n controllerRef.current?.updateThread(thread.id, {\n messages: convertHistoryMessage(msg),\n });\n }\n });\n\n // 初始化 ChatController\n if (!controllerRef.current) {\n const state = createThreadManagerStateWithDefault();\n const storeManager = new ThreadMessageManager(state);\n const clawPlugin = new ClawPlugin({\n onSend: async (text) => {\n await onAction({\n message: text,\n });\n },\n getRunIds: () => currentRunIdRef.current,\n onAbort,\n });\n clawPluginRef.current = clawPlugin;\n // 创建 completion 函数\n const { clawCompletion, pushMessageImpl } = createClawCompletion(\n onAction,\n onAbort,\n );\n pushMessageImplRef.current = pushMessageImpl;\n\n // 创建 Claw Protocol Adaptor\n const clawProtocolAdaptor = new ClawProtocolAdaptor({\n protocol: ProtocolEnum.CUSTOM,\n protocolName: 'Claw',\n } as any);\n\n controllerRef.current = new ChatController({\n requestOptions: {\n api: 'default',\n headers: {\n Authorization: 'Bearer ',\n },\n meta: {\n shouldSendMessage: true,\n shouldReceived: false,\n },\n // 使用自定义 completion\n completions: clawCompletion,\n },\n protocolOptions: {\n protocol: ProtocolEnum.CUSTOM,\n protocolName: 'Claw',\n protocolAdaptor: clawProtocolAdaptor,\n } as any,\n storeManager,\n metaData: createMetaData({\n clawStatus: { status: false, reason: 'uninitialized' },\n }),\n plugins: [clawPlugin],\n });\n }\n\n const handleClawChatStatus = useMemoizedFn((status: ClawChatStatus) => {\n if (controllerRef.current) {\n controllerRef.current.metaData.clawStatus = status;\n const currentThread = controllerRef.current.getCurrentThread();\n if (currentThread) {\n controllerRef.current.abortMessage();\n controllerRef.current.setSending(currentThread.id, false);\n controllerRef.current.setLoading(currentThread.id, false);\n }\n }\n });\n\n return {\n controllerRef,\n pushMessage,\n pushHistory,\n setClawChatStatus: handleClawChatStatus,\n };\n};\n"],"names":["uuid"],"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.82",
3
+ "version": "0.1.0-beta.84",
4
4
  "type": "module",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",