@tdesign-react/chat 1.0.0-beta.1
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/CHANGELOG.md +10 -0
- package/LICENSE +9 -0
- package/README.md +74 -0
- package/es/_util/_reactify.d.ts +7 -0
- package/es/_util/_reactify.js +381 -0
- package/es/_util/_reactify.js.map +1 -0
- package/es/_util/reactify.d.ts +7 -0
- package/es/_util/reactify.js +392 -0
- package/es/_util/reactify.js.map +1 -0
- package/es/_util/reactifyLazy.d.ts +16 -0
- package/es/_util/reactifyLazy.js +74 -0
- package/es/_util/reactifyLazy.js.map +1 -0
- package/es/_util/reactify_v2.d.ts +7 -0
- package/es/_util/reactify_v2.js +391 -0
- package/es/_util/reactify_v2.js.map +1 -0
- package/es/_util/useDynamicStyle.d.ts +4 -0
- package/es/_util/useDynamicStyle.js +40 -0
- package/es/_util/useDynamicStyle.js.map +1 -0
- package/es/chat-actionbar/index.d.ts +7 -0
- package/es/chat-actionbar/index.js +26 -0
- package/es/chat-actionbar/index.js.map +1 -0
- package/es/chat-attachments/index.d.ts +5 -0
- package/es/chat-attachments/index.js +26 -0
- package/es/chat-attachments/index.js.map +1 -0
- package/es/chat-filecard/index.d.ts +5 -0
- package/es/chat-filecard/index.js +26 -0
- package/es/chat-filecard/index.js.map +1 -0
- package/es/chat-loading/index.d.ts +5 -0
- package/es/chat-loading/index.js +26 -0
- package/es/chat-loading/index.js.map +1 -0
- package/es/chat-markdown/index.d.ts +6 -0
- package/es/chat-markdown/index.js +28 -0
- package/es/chat-markdown/index.js.map +1 -0
- package/es/chat-message/index.d.ts +5 -0
- package/es/chat-message/index.js +26 -0
- package/es/chat-message/index.js.map +1 -0
- package/es/chat-sender/index.d.ts +5 -0
- package/es/chat-sender/index.js +26 -0
- package/es/chat-sender/index.js.map +1 -0
- package/es/chat-thinking/index.d.ts +5 -0
- package/es/chat-thinking/index.js +27 -0
- package/es/chat-thinking/index.js.map +1 -0
- package/es/chatbot/components/provider/agent-state.d.ts +5 -0
- package/es/chatbot/components/provider/agent-state.js +28 -0
- package/es/chatbot/components/provider/agent-state.js.map +1 -0
- package/es/chatbot/components/toolcall/index.d.ts +3 -0
- package/es/chatbot/components/toolcall/index.js +19 -0
- package/es/chatbot/components/toolcall/index.js.map +1 -0
- package/es/chatbot/components/toolcall/registry.d.ts +35 -0
- package/es/chatbot/components/toolcall/registry.js +75 -0
- package/es/chatbot/components/toolcall/registry.js.map +1 -0
- package/es/chatbot/components/toolcall/render.d.ts +13 -0
- package/es/chatbot/components/toolcall/render.js +207 -0
- package/es/chatbot/components/toolcall/render.js.map +1 -0
- package/es/chatbot/components/toolcall/toolcallRenderer.d.ts +12 -0
- package/es/chatbot/components/toolcall/toolcallRenderer.js +132 -0
- package/es/chatbot/components/toolcall/toolcallRenderer.js.map +1 -0
- package/es/chatbot/components/toolcall/types.d.ts +57 -0
- package/es/chatbot/components/toolcall/types.js +15 -0
- package/es/chatbot/components/toolcall/types.js.map +1 -0
- package/es/chatbot/core/adapters/agui/event-mapper.d.ts +104 -0
- package/es/chatbot/core/adapters/agui/event-mapper.js +342 -0
- package/es/chatbot/core/adapters/agui/event-mapper.js.map +1 -0
- package/es/chatbot/core/adapters/agui/events.d.ts +1394 -0
- package/es/chatbot/core/adapters/agui/events.js +181 -0
- package/es/chatbot/core/adapters/agui/events.js.map +1 -0
- package/es/chatbot/core/adapters/agui/index.d.ts +75 -0
- package/es/chatbot/core/adapters/agui/index.js +165 -0
- package/es/chatbot/core/adapters/agui/index.js.map +1 -0
- package/es/chatbot/core/adapters/agui/state/StateManager.d.ts +60 -0
- package/es/chatbot/core/adapters/agui/state/StateManager.js +160 -0
- package/es/chatbot/core/adapters/agui/state/StateManager.js.map +1 -0
- package/es/chatbot/core/adapters/agui/state/types.d.ts +63 -0
- package/es/chatbot/core/adapters/agui/state/types.js +7 -0
- package/es/chatbot/core/adapters/agui/state/types.js.map +1 -0
- package/es/chatbot/core/adapters/agui/state-manager-fixed.d.ts +107 -0
- package/es/chatbot/core/adapters/agui/state-manager-fixed.js +189 -0
- package/es/chatbot/core/adapters/agui/state-manager-fixed.js.map +1 -0
- package/es/chatbot/core/adapters/agui/state-manager.d.ts +99 -0
- package/es/chatbot/core/adapters/agui/state-manager.js +168 -0
- package/es/chatbot/core/adapters/agui/state-manager.js.map +1 -0
- package/es/chatbot/core/adapters/agui/types.d.ts +760 -0
- package/es/chatbot/core/adapters/agui/types.js +89 -0
- package/es/chatbot/core/adapters/agui/types.js.map +1 -0
- package/es/chatbot/core/adapters/agui/utils.d.ts +188 -0
- package/es/chatbot/core/adapters/agui/utils.js +323 -0
- package/es/chatbot/core/adapters/agui/utils.js.map +1 -0
- package/es/chatbot/core/index.d.ts +131 -0
- package/es/chatbot/core/index.js +585 -0
- package/es/chatbot/core/index.js.map +1 -0
- package/es/chatbot/core/processor/index.d.ts +20 -0
- package/es/chatbot/core/processor/index.js +148 -0
- package/es/chatbot/core/processor/index.js.map +1 -0
- package/es/chatbot/core/server/batch-client.d.ts +20 -0
- package/es/chatbot/core/server/batch-client.js +114 -0
- package/es/chatbot/core/server/batch-client.js.map +1 -0
- package/es/chatbot/core/server/connection-manager.d.ts +39 -0
- package/es/chatbot/core/server/connection-manager.js +84 -0
- package/es/chatbot/core/server/connection-manager.js.map +1 -0
- package/es/chatbot/core/server/errors.d.ts +22 -0
- package/es/chatbot/core/server/errors.js +80 -0
- package/es/chatbot/core/server/errors.js.map +1 -0
- package/es/chatbot/core/server/index.d.ts +11 -0
- package/es/chatbot/core/server/index.js +26 -0
- package/es/chatbot/core/server/index.js.map +1 -0
- package/es/chatbot/core/server/llm-service.d.ts +44 -0
- package/es/chatbot/core/server/llm-service.js +198 -0
- package/es/chatbot/core/server/llm-service.js.map +1 -0
- package/es/chatbot/core/server/sse-client.d.ts +77 -0
- package/es/chatbot/core/server/sse-client.js +362 -0
- package/es/chatbot/core/server/sse-client.js.map +1 -0
- package/es/chatbot/core/server/sse-parser.d.ts +49 -0
- package/es/chatbot/core/server/sse-parser.js +116 -0
- package/es/chatbot/core/server/sse-parser.js.map +1 -0
- package/es/chatbot/core/server/types.d.ts +54 -0
- package/es/chatbot/core/server/types.js +28 -0
- package/es/chatbot/core/server/types.js.map +1 -0
- package/es/chatbot/core/store/message.d.ts +27 -0
- package/es/chatbot/core/store/message.js +263 -0
- package/es/chatbot/core/store/message.js.map +1 -0
- package/es/chatbot/core/store/model.d.ts +8 -0
- package/es/chatbot/core/store/model.js +65 -0
- package/es/chatbot/core/store/model.js.map +1 -0
- package/es/chatbot/core/store/reactiveState.d.ts +52 -0
- package/es/chatbot/core/store/reactiveState.js +1359 -0
- package/es/chatbot/core/store/reactiveState.js.map +1 -0
- package/es/chatbot/core/type.d.ts +238 -0
- package/es/chatbot/core/type.js +7 -0
- package/es/chatbot/core/type.js.map +1 -0
- package/es/chatbot/core/utils/eventEmitter.d.ts +10 -0
- package/es/chatbot/core/utils/eventEmitter.js +67 -0
- package/es/chatbot/core/utils/eventEmitter.js.map +1 -0
- package/es/chatbot/core/utils/index.d.ts +31 -0
- package/es/chatbot/core/utils/index.js +221 -0
- package/es/chatbot/core/utils/index.js.map +1 -0
- package/es/chatbot/core/utils/logger.d.ts +30 -0
- package/es/chatbot/core/utils/logger.js +87 -0
- package/es/chatbot/core/utils/logger.js.map +1 -0
- package/es/chatbot/hooks/useAgentState.d.ts +40 -0
- package/es/chatbot/hooks/useAgentState.js +76 -0
- package/es/chatbot/hooks/useAgentState.js.map +1 -0
- package/es/chatbot/hooks/useAgentStateAction.d.ts +9 -0
- package/es/chatbot/hooks/useAgentStateAction.js +101 -0
- package/es/chatbot/hooks/useAgentStateAction.js.map +1 -0
- package/es/chatbot/hooks/useAgentToolcall.d.ts +28 -0
- package/es/chatbot/hooks/useAgentToolcall.js +78 -0
- package/es/chatbot/hooks/useAgentToolcall.js.map +1 -0
- package/es/chatbot/hooks/useAgentToolcallAction.d.ts +6 -0
- package/es/chatbot/hooks/useAgentToolcallAction.js +29 -0
- package/es/chatbot/hooks/useAgentToolcallAction.js.map +1 -0
- package/es/chatbot/hooks/useChat.d.ts +11 -0
- package/es/chatbot/hooks/useChat.js +66 -0
- package/es/chatbot/hooks/useChat.js.map +1 -0
- package/es/chatbot/index.d.ts +17 -0
- package/es/chatbot/index.js +43 -0
- package/es/chatbot/index.js.map +1 -0
- package/es/chatbot/useChat.d.ts +10 -0
- package/es/chatbot/useChat.js +55 -0
- package/es/chatbot/useChat.js.map +1 -0
- package/es/index.d.ts +11 -0
- package/es/index.js +55 -0
- package/es/index.js.map +1 -0
- package/es/style/index.d.ts +1 -0
- package/es/style/index.js +8 -0
- package/es/style/index.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { AgentToolcallConfig, ToolcallComponentProps } from '../components/toolcall/types';
|
|
2
|
+
export interface UseAgentToolcallReturn {
|
|
3
|
+
register: (config: AgentToolcallConfig | AgentToolcallConfig[]) => void;
|
|
4
|
+
unregister: (names: string | string[]) => void;
|
|
5
|
+
isRegistered: (name: string) => boolean;
|
|
6
|
+
getRegistered: () => string[];
|
|
7
|
+
config: any;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 统一的、智能的 Agent Toolcall 适配器 Hook,
|
|
11
|
+
* 注册管理:负责工具配置的注册、取消注册、状态跟踪;生命周期管理:自动清理、防止内存泄漏
|
|
12
|
+
* 支持两种使用模式:
|
|
13
|
+
* 1. 自动注册模式:传入配置,自动注册和清理
|
|
14
|
+
* 2. 手动注册模式:不传配置或传入null,返回注册方法由业务控制
|
|
15
|
+
*/
|
|
16
|
+
export declare function useAgentToolcall<TArgs extends object = any, TResult = any, TResponse = any>(config?: AgentToolcallConfig<TArgs, TResult, TResponse> | AgentToolcallConfig<TArgs, TResult, TResponse>[] | null | undefined): UseAgentToolcallReturn;
|
|
17
|
+
export interface ToolConfigWithStateOptions<TArgs extends object = any, TResult = any> {
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
parameters: Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
type: string;
|
|
23
|
+
}>;
|
|
24
|
+
subscribeKey?: (props: ToolcallComponentProps<TArgs, TResult>) => string | undefined;
|
|
25
|
+
component: React.ComponentType<ToolcallComponentProps<TArgs, TResult> & {
|
|
26
|
+
agentState?: Record<string, any>;
|
|
27
|
+
}>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.0-beta.1
|
|
3
|
+
* (c) 2025 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
8
|
+
import { useRef, useCallback, useEffect } from 'react';
|
|
9
|
+
import { agentToolcallRegistry } from '../components/toolcall/registry.js';
|
|
10
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
11
|
+
import '@babel/runtime/helpers/createClass';
|
|
12
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
13
|
+
|
|
14
|
+
function useAgentToolcall(config) {
|
|
15
|
+
var registeredNamesRef = useRef(/* @__PURE__ */new Set());
|
|
16
|
+
var autoRegisteredNamesRef = useRef(/* @__PURE__ */new Set());
|
|
17
|
+
var configRef = useRef(config);
|
|
18
|
+
var register = useCallback(function (newConfig) {
|
|
19
|
+
if (!newConfig) {
|
|
20
|
+
console.warn("[useAgentToolcall] \u914D\u7F6E\u4E3A\u7A7A\uFF0C\u8DF3\u8FC7\u6CE8\u518C");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
var configs = Array.isArray(newConfig) ? newConfig : [newConfig];
|
|
24
|
+
configs.forEach(function (cfg) {
|
|
25
|
+
if (agentToolcallRegistry.get(cfg.name)) {
|
|
26
|
+
console.warn("[useAgentToolcall] \u914D\u7F6E\u540D\u79F0 \"".concat(cfg.name, "\" \u5DF2\u5B58\u5728\u4E8E\u6CE8\u518C\u8868\u4E2D\uFF0C\u5C06\u88AB\u8986\u76D6"));
|
|
27
|
+
}
|
|
28
|
+
agentToolcallRegistry.register(cfg);
|
|
29
|
+
registeredNamesRef.current.add(cfg.name);
|
|
30
|
+
});
|
|
31
|
+
}, []);
|
|
32
|
+
var unregister = useCallback(function (names) {
|
|
33
|
+
var nameArray = Array.isArray(names) ? names : [names];
|
|
34
|
+
nameArray.forEach(function (name) {
|
|
35
|
+
agentToolcallRegistry.unregister(name);
|
|
36
|
+
registeredNamesRef.current["delete"](name);
|
|
37
|
+
autoRegisteredNamesRef.current["delete"](name);
|
|
38
|
+
});
|
|
39
|
+
}, []);
|
|
40
|
+
var isRegistered = useCallback(function (name) {
|
|
41
|
+
return registeredNamesRef.current.has(name) || autoRegisteredNamesRef.current.has(name);
|
|
42
|
+
}, []);
|
|
43
|
+
var getRegistered = useCallback(function () {
|
|
44
|
+
return Array.from(/* @__PURE__ */new Set([].concat(_toConsumableArray(registeredNamesRef.current), _toConsumableArray(autoRegisteredNamesRef.current))));
|
|
45
|
+
}, []);
|
|
46
|
+
useEffect(function () {
|
|
47
|
+
if (!config) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
var configs = Array.isArray(config) ? config : [config];
|
|
51
|
+
configs.forEach(function (cfg) {
|
|
52
|
+
if (agentToolcallRegistry.get(cfg.name)) {
|
|
53
|
+
console.warn("[useAgentToolcall] \u914D\u7F6E\u540D\u79F0 \"".concat(cfg.name, "\" \u5DF2\u5B58\u5728\u4E8E\u6CE8\u518C\u8868\u4E2D\uFF0C\u5C06\u88AB\u8986\u76D6"));
|
|
54
|
+
}
|
|
55
|
+
agentToolcallRegistry.register(cfg);
|
|
56
|
+
autoRegisteredNamesRef.current.add(cfg.name);
|
|
57
|
+
});
|
|
58
|
+
return function () {
|
|
59
|
+
configs.forEach(function (cfg) {
|
|
60
|
+
agentToolcallRegistry.unregister(cfg.name);
|
|
61
|
+
autoRegisteredNamesRef.current["delete"](cfg.name);
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
}, [config]);
|
|
65
|
+
useEffect(function () {
|
|
66
|
+
configRef.current = config;
|
|
67
|
+
}, [config]);
|
|
68
|
+
return {
|
|
69
|
+
register: register,
|
|
70
|
+
unregister: unregister,
|
|
71
|
+
isRegistered: isRegistered,
|
|
72
|
+
getRegistered: getRegistered,
|
|
73
|
+
config: configRef.current
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { useAgentToolcall };
|
|
78
|
+
//# sourceMappingURL=useAgentToolcall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgentToolcall.js","sources":["../../../../pro-components/chat/chatbot/hooks/useAgentToolcall.ts"],"sourcesContent":["import { useCallback, useRef, useEffect } from 'react';\nimport type { AgentToolcallConfig, ToolcallComponentProps } from '../components/toolcall/types';\nimport { agentToolcallRegistry } from '../components/toolcall/registry';\n\nexport interface UseAgentToolcallReturn {\n register: (config: AgentToolcallConfig | AgentToolcallConfig[]) => void;\n unregister: (names: string | string[]) => void;\n isRegistered: (name: string) => boolean;\n getRegistered: () => string[];\n config: any;\n}\n\n/**\n * 统一的、智能的 Agent Toolcall 适配器 Hook,\n * 注册管理:负责工具配置的注册、取消注册、状态跟踪;生命周期管理:自动清理、防止内存泄漏\n * 支持两种使用模式:\n * 1. 自动注册模式:传入配置,自动注册和清理\n * 2. 手动注册模式:不传配置或传入null,返回注册方法由业务控制\n */\nexport function useAgentToolcall<TArgs extends object = any, TResult = any, TResponse = any>(\n config?:\n | AgentToolcallConfig<TArgs, TResult, TResponse>\n | AgentToolcallConfig<TArgs, TResult, TResponse>[]\n | null\n | undefined,\n): UseAgentToolcallReturn {\n const registeredNamesRef = useRef<Set<string>>(new Set());\n const autoRegisteredNamesRef = useRef<Set<string>>(new Set());\n const configRef = useRef(config);\n\n // 手动注册方法\n const register = useCallback((newConfig: AgentToolcallConfig | AgentToolcallConfig[]) => {\n if (!newConfig) {\n console.warn('[useAgentToolcall] 配置为空,跳过注册');\n return;\n }\n\n const configs = Array.isArray(newConfig) ? newConfig : [newConfig];\n\n configs.forEach((cfg) => {\n if (agentToolcallRegistry.get(cfg.name)) {\n console.warn(`[useAgentToolcall] 配置名称 \"${cfg.name}\" 已存在于注册表中,将被覆盖`);\n }\n\n agentToolcallRegistry.register(cfg);\n registeredNamesRef.current.add(cfg.name);\n });\n }, []);\n\n // 手动取消注册方法\n const unregister = useCallback((names: string | string[]) => {\n const nameArray = Array.isArray(names) ? names : [names];\n\n nameArray.forEach((name) => {\n agentToolcallRegistry.unregister(name);\n registeredNamesRef.current.delete(name);\n autoRegisteredNamesRef.current.delete(name);\n });\n }, []);\n\n // 检查是否已注册\n const isRegistered = useCallback(\n (name: string) => registeredNamesRef.current.has(name) || autoRegisteredNamesRef.current.has(name),\n [],\n );\n\n // 获取所有已注册的配置名称\n const getRegistered = useCallback(\n () => Array.from(new Set([...registeredNamesRef.current, ...autoRegisteredNamesRef.current])),\n [],\n );\n\n // 自动注册逻辑(当传入配置时)\n useEffect(() => {\n if (!config) {\n return;\n }\n\n const configs = Array.isArray(config) ? config : [config];\n configs.forEach((cfg) => {\n if (agentToolcallRegistry.get(cfg.name)) {\n console.warn(`[useAgentToolcall] 配置名称 \"${cfg.name}\" 已存在于注册表中,将被覆盖`);\n }\n\n agentToolcallRegistry.register(cfg);\n autoRegisteredNamesRef.current.add(cfg.name);\n });\n\n // 清理函数:取消注册自动注册的配置\n return () => {\n configs.forEach((cfg) => {\n agentToolcallRegistry.unregister(cfg.name);\n autoRegisteredNamesRef.current.delete(cfg.name);\n });\n };\n }, [config]);\n\n // 更新配置引用\n useEffect(() => {\n configRef.current = config;\n }, [config]);\n\n return {\n register,\n unregister,\n isRegistered,\n getRegistered,\n config: configRef.current,\n };\n}\n\n// 创建带状态感知的工具配置(带状态变化事件),状态注入,自动为组件注入 agentState\nexport interface ToolConfigWithStateOptions<TArgs extends object = any, TResult = any> {\n name: string;\n description: string;\n parameters: Array<{ name: string; type: string }>;\n subscribeKey?: (props: ToolcallComponentProps<TArgs, TResult>) => string | undefined;\n component: React.ComponentType<ToolcallComponentProps<TArgs, TResult> & { agentState?: Record<string, any> }>;\n}\n"],"names":["useAgentToolcall","config","registeredNamesRef","useRef","Set","autoRegisteredNamesRef","configRef","register","useCallback","newConfig","console","warn","configs","Array","isArray","forEach","cfg","agentToolcallRegistry","get","name","concat","current","add","unregister","names","nameArray","isRegistered","has","getRegistered","from","_toConsumableArray","useEffect"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AgentToolcallConfig } from '../components/toolcall/types';
|
|
2
|
+
/**
|
|
3
|
+
* 统一的、智能的 Agent Toolcall 适配器 Hook
|
|
4
|
+
* 用于注册 Agent Toolcall 配置到全局注册表
|
|
5
|
+
*/
|
|
6
|
+
export declare function useAgentToolcall<TArgs extends object = any, TResult = any, TResponse = any>(config: AgentToolcallConfig<TArgs, TResult, TResponse>): AgentToolcallConfig<TArgs, TResult, TResponse>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.1-beta.18
|
|
3
|
+
* (c) 2025 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { useRef, useEffect } from 'react';
|
|
8
|
+
import { agentToolcallRegistry } from '../components/toolcall/registry.js';
|
|
9
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
10
|
+
import '@babel/runtime/helpers/createClass';
|
|
11
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
12
|
+
|
|
13
|
+
function useAgentToolcall(config) {
|
|
14
|
+
var configRef = useRef(config);
|
|
15
|
+
useEffect(function () {
|
|
16
|
+
agentToolcallRegistry.register(config);
|
|
17
|
+
return function () {
|
|
18
|
+
agentToolcallRegistry.unregister(config.name);
|
|
19
|
+
};
|
|
20
|
+
}, [config.name]);
|
|
21
|
+
useEffect(function () {
|
|
22
|
+
configRef.current = config;
|
|
23
|
+
agentToolcallRegistry.register(config);
|
|
24
|
+
}, [config]);
|
|
25
|
+
return configRef.current;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { useAgentToolcall };
|
|
29
|
+
//# sourceMappingURL=useAgentToolcallAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgentToolcallAction.js","sources":["../../../../pro-components/chat/chatbot/hooks/useAgentToolcallAction.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport type { AgentToolcallConfig } from '../components/toolcall/types';\nimport { agentToolcallRegistry } from '../components/toolcall/registry';\n\n/**\n * 统一的、智能的 Agent Toolcall 适配器 Hook\n * 用于注册 Agent Toolcall 配置到全局注册表\n */\nexport function useAgentToolcall<TArgs extends object = any, TResult = any, TResponse = any>(\n config: AgentToolcallConfig<TArgs, TResult, TResponse>,\n) {\n const configRef = useRef(config);\n\n useEffect(() => {\n // 注册 Agent Toolcall\n agentToolcallRegistry.register(config);\n\n // 清理函数:组件卸载时取消注册\n return () => {\n agentToolcallRegistry.unregister(config.name);\n };\n }, [config.name]);\n\n // 更新配置引用\n useEffect(() => {\n configRef.current = config;\n agentToolcallRegistry.register(config);\n }, [config]);\n\n return configRef.current;\n}\n"],"names":["useAgentToolcall","config","configRef","useRef","useEffect","agentToolcallRegistry","register","unregister","name","current"],"mappings":";;;;;;;;;;;;AAQO,SAASA,iBACdC,MACA,EAAA;AACM,EAAA,IAAAC,SAAA,GAAYC,OAAOF,MAAM,CAAA,CAAA;AAE/BG,EAAAA,SAAA,CAAU,YAAM;AAEdC,IAAAA,qBAAA,CAAsBC,SAASL,MAAM,CAAA,CAAA;AAGrC,IAAA,OAAO,YAAM;AACWI,MAAAA,qBAAA,CAAAE,UAAA,CAAWN,OAAOO,IAAI,CAAA,CAAA;KAC9C,CAAA;AACF,GAAG,EAAA,CAACP,MAAO,CAAAO,IAAI,CAAC,CAAA,CAAA;AAGhBJ,EAAAA,SAAA,CAAU,YAAM;IACdF,SAAA,CAAUO,OAAU,GAAAR,MAAA,CAAA;AACpBI,IAAAA,qBAAA,CAAsBC,SAASL,MAAM,CAAA,CAAA;AACvC,GAAA,EAAG,CAACA,MAAM,CAAC,CAAA,CAAA;EAEX,OAAOC,SAAU,CAAAO,OAAA,CAAA;AACnB;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import ChatEngine from 'tdesign-web-components/lib/chat-engine';
|
|
2
|
+
import type { ChatMessagesData, ChatServiceConfig, ChatStatus } from 'tdesign-web-components/lib/chat-engine';
|
|
3
|
+
export type IUseChat = {
|
|
4
|
+
defaultMessages: ChatMessagesData[];
|
|
5
|
+
chatServiceConfig: ChatServiceConfig;
|
|
6
|
+
};
|
|
7
|
+
export declare const useChat: ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {
|
|
8
|
+
chatEngine: ChatEngine;
|
|
9
|
+
messages: ChatMessagesData[];
|
|
10
|
+
status: ChatStatus;
|
|
11
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.0-beta.1
|
|
3
|
+
* (c) 2025 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
8
|
+
import { useState, useRef, useEffect } from 'react';
|
|
9
|
+
import ChatEngine__default from 'tdesign-web-components/lib/chat-engine';
|
|
10
|
+
|
|
11
|
+
var useChat = function useChat(_ref) {
|
|
12
|
+
var initialMessages = _ref.defaultMessages,
|
|
13
|
+
chatServiceConfig = _ref.chatServiceConfig;
|
|
14
|
+
var _useState = useState([]),
|
|
15
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
16
|
+
messages = _useState2[0],
|
|
17
|
+
setMessage = _useState2[1];
|
|
18
|
+
var _useState3 = useState("idle"),
|
|
19
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
20
|
+
status = _useState4[0],
|
|
21
|
+
setStatus = _useState4[1];
|
|
22
|
+
var chatEngineRef = useRef(new ChatEngine__default());
|
|
23
|
+
var msgSubscribeRef = useRef(null);
|
|
24
|
+
var prevInitialMessagesRef = useRef([]);
|
|
25
|
+
var chatEngine = chatEngineRef.current;
|
|
26
|
+
var syncState = function syncState(state) {
|
|
27
|
+
var _state$at;
|
|
28
|
+
setMessage(state);
|
|
29
|
+
setStatus(((_state$at = state.at(-1)) === null || _state$at === void 0 ? void 0 : _state$at.status) || "idle");
|
|
30
|
+
};
|
|
31
|
+
var subscribeToChat = function subscribeToChat() {
|
|
32
|
+
var _msgSubscribeRef$curr;
|
|
33
|
+
(_msgSubscribeRef$curr = msgSubscribeRef.current) === null || _msgSubscribeRef$curr === void 0 || _msgSubscribeRef$curr.call(msgSubscribeRef);
|
|
34
|
+
msgSubscribeRef.current = chatEngine.messageStore.subscribe(function (state) {
|
|
35
|
+
syncState(state.messages);
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
var initChat = function initChat() {
|
|
39
|
+
chatEngine.init(chatServiceConfig, initialMessages);
|
|
40
|
+
syncState(initialMessages);
|
|
41
|
+
subscribeToChat();
|
|
42
|
+
};
|
|
43
|
+
useEffect(function () {
|
|
44
|
+
initChat();
|
|
45
|
+
return function () {
|
|
46
|
+
var _msgSubscribeRef$curr2;
|
|
47
|
+
return (_msgSubscribeRef$curr2 = msgSubscribeRef.current) === null || _msgSubscribeRef$curr2 === void 0 ? void 0 : _msgSubscribeRef$curr2.call(msgSubscribeRef);
|
|
48
|
+
};
|
|
49
|
+
}, []);
|
|
50
|
+
useEffect(function () {
|
|
51
|
+
var hasChanged = JSON.stringify(prevInitialMessagesRef.current) !== JSON.stringify(initialMessages);
|
|
52
|
+
if (hasChanged && initialMessages && initialMessages.length > 0) {
|
|
53
|
+
prevInitialMessagesRef.current = initialMessages;
|
|
54
|
+
chatEngine.setMessages(initialMessages, "replace");
|
|
55
|
+
syncState(initialMessages);
|
|
56
|
+
}
|
|
57
|
+
}, [initialMessages, chatEngine]);
|
|
58
|
+
return {
|
|
59
|
+
chatEngine: chatEngine,
|
|
60
|
+
messages: messages,
|
|
61
|
+
status: status
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export { useChat };
|
|
66
|
+
//# sourceMappingURL=useChat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChat.js","sources":["../../../../pro-components/chat/chatbot/hooks/useChat.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport ChatEngine from 'tdesign-web-components/lib/chat-engine';\nimport type { ChatMessagesData, ChatServiceConfig, ChatStatus } from 'tdesign-web-components/lib/chat-engine';\n\nexport type IUseChat = {\n defaultMessages: ChatMessagesData[];\n chatServiceConfig: ChatServiceConfig;\n};\n\nexport const useChat = ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {\n const [messages, setMessage] = useState<ChatMessagesData[]>([]);\n const [status, setStatus] = useState<ChatStatus>('idle');\n const chatEngineRef = useRef<ChatEngine>(new ChatEngine());\n const msgSubscribeRef = useRef<null | (() => void)>(null);\n const prevInitialMessagesRef = useRef<ChatMessagesData[]>([]);\n\n const chatEngine = chatEngineRef.current;\n\n const syncState = (state: ChatMessagesData[]) => {\n setMessage(state);\n setStatus(state.at(-1)?.status || 'idle');\n };\n\n const subscribeToChat = () => {\n // 清理之前的订阅\n msgSubscribeRef.current?.();\n\n msgSubscribeRef.current = chatEngine.messageStore.subscribe((state) => {\n syncState(state.messages);\n });\n };\n\n const initChat = () => {\n // @ts-ignore\n chatEngine.init(chatServiceConfig, initialMessages);\n // @ts-ignore\n syncState(initialMessages);\n subscribeToChat();\n };\n\n // 初始化聊天引擎\n useEffect(() => {\n initChat();\n return () => msgSubscribeRef.current?.();\n }, []);\n\n // 监听 defaultMessages 变化\n useEffect(() => {\n // 检查 initialMessages 是否真的发生了变化\n const hasChanged = JSON.stringify(prevInitialMessagesRef.current) !== JSON.stringify(initialMessages);\n\n if (hasChanged && initialMessages && initialMessages.length > 0) {\n // 更新引用\n prevInitialMessagesRef.current = initialMessages;\n\n // 重新初始化聊天引擎或更新消息\n chatEngine.setMessages(initialMessages, 'replace');\n\n // 同步状态\n syncState(initialMessages);\n }\n }, [initialMessages, chatEngine]);\n\n return {\n chatEngine,\n messages,\n status,\n };\n};\n"],"names":["useChat","initialMessages","_ref","defaultMessages","chatServiceConfig","_useState","useState","_useState2","_slicedToArray","messages","setMessage","_useState3","_useState4","status","setStatus","chatEngineRef","useRef","ChatEngine","msgSubscribeRef","prevInitialMessagesRef","chatEngine","current","syncState","state","_state$at","at","subscribeToChat","_msgSubscribeRef$curr","call","messageStore","subscribe","initChat","init","useEffect","_msgSubscribeRef$curr2","hasChanged","JSON","stringify","length","setMessages"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import 'tdesign-web-components/lib/chatbot';
|
|
2
|
+
import 'tdesign-web-components/lib/chat-message/content/reasoning-content';
|
|
3
|
+
import 'tdesign-web-components/lib/chat-message/content/search-content';
|
|
4
|
+
import 'tdesign-web-components/lib/chat-message/content/suggestion-content';
|
|
5
|
+
import type { TdChatbotApi, TdChatListApi, TdChatListProps, TdChatProps, TdChatSearchContentProps, TdChatSuggestionContentProps } from 'tdesign-web-components';
|
|
6
|
+
import ChatEngine from 'tdesign-web-components/lib/chat-engine';
|
|
7
|
+
declare const ChatBot: React.ForwardRefExoticComponent<Omit<TdChatProps & Partial<TdChatbotApi>, 'ref'> & React.RefAttributes<HTMLElement | undefined>>;
|
|
8
|
+
declare const ChatSearchContent: React.ForwardRefExoticComponent<Omit<TdChatSearchContentProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>>;
|
|
9
|
+
declare const ChatSuggestionContent: React.ForwardRefExoticComponent<Omit<TdChatSuggestionContentProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>>;
|
|
10
|
+
declare const ChatList: React.ForwardRefExoticComponent<Omit<TdChatListProps & Partial<TdChatListApi>, 'ref'> & React.RefAttributes<HTMLElement | undefined>>;
|
|
11
|
+
export { ChatBot, ChatSearchContent, ChatSuggestionContent, ChatList, ChatEngine };
|
|
12
|
+
export type * from 'tdesign-web-components/lib/chatbot/type';
|
|
13
|
+
export * from './hooks/useChat';
|
|
14
|
+
export * from './hooks/useAgentToolcall';
|
|
15
|
+
export * from './hooks/useAgentState';
|
|
16
|
+
export * from './components/toolcall';
|
|
17
|
+
export * from './components/provider/agent-state';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.0-beta.1
|
|
3
|
+
* (c) 2025 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import 'tdesign-web-components/lib/chatbot';
|
|
8
|
+
import 'tdesign-web-components/lib/chat-message/content/reasoning-content';
|
|
9
|
+
import 'tdesign-web-components/lib/chat-message/content/search-content';
|
|
10
|
+
import 'tdesign-web-components/lib/chat-message/content/suggestion-content';
|
|
11
|
+
import reactify from '../_util/reactify.js';
|
|
12
|
+
export { default as ChatEngine } from 'tdesign-web-components/lib/chat-engine';
|
|
13
|
+
export { useChat } from './hooks/useChat.js';
|
|
14
|
+
export { useAgentToolcall } from './hooks/useAgentToolcall.js';
|
|
15
|
+
export { AgentStateContext, useAgentState, useAgentStateContext, useAgentStateDataByKey } from './hooks/useAgentState.js';
|
|
16
|
+
import './components/toolcall/index.js';
|
|
17
|
+
export { AgentStateProvider } from './components/provider/agent-state.js';
|
|
18
|
+
export { isNonInteractive, isNonInteractiveConfig } from './components/toolcall/types.js';
|
|
19
|
+
export { agentToolcallRegistry } from './components/toolcall/registry.js';
|
|
20
|
+
export { ToolCallRenderer, withAgentStateToolcall, withAgentStateToolcall1 } from './components/toolcall/render.js';
|
|
21
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
22
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
23
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
24
|
+
import '@babel/runtime/helpers/createClass';
|
|
25
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
26
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
27
|
+
import '@babel/runtime/helpers/inherits';
|
|
28
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
29
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
30
|
+
import '@babel/runtime/helpers/typeof';
|
|
31
|
+
import 'react';
|
|
32
|
+
import 'react-dom';
|
|
33
|
+
import 'react-dom/client';
|
|
34
|
+
import '@babel/runtime/helpers/asyncToGenerator';
|
|
35
|
+
import '@babel/runtime/regenerator';
|
|
36
|
+
|
|
37
|
+
var ChatBot = reactify("t-chatbot");
|
|
38
|
+
var ChatSearchContent = reactify("t-chat-search-content");
|
|
39
|
+
var ChatSuggestionContent = reactify("t-chat-suggestion-content");
|
|
40
|
+
var ChatList = reactify("t-chat-list");
|
|
41
|
+
|
|
42
|
+
export { ChatBot, ChatList, ChatSearchContent, ChatSuggestionContent };
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../pro-components/chat/chatbot/index.ts"],"sourcesContent":["import 'tdesign-web-components/lib/chatbot';\nimport 'tdesign-web-components/lib/chat-message/content/reasoning-content';\nimport 'tdesign-web-components/lib/chat-message/content/search-content';\nimport 'tdesign-web-components/lib/chat-message/content/suggestion-content';\nimport type {\n TdChatbotApi,\n TdChatListApi,\n TdChatListProps,\n TdChatProps,\n TdChatSearchContentProps,\n TdChatSuggestionContentProps,\n} from 'tdesign-web-components';\nimport reactify from '../_util/reactify';\nimport ChatEngine from 'tdesign-web-components/lib/chat-engine';\n\nconst ChatBot: React.ForwardRefExoticComponent<\n Omit<TdChatProps & Partial<TdChatbotApi>, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdChatProps>('t-chatbot');\n\nconst ChatSearchContent: React.ForwardRefExoticComponent<\n Omit<TdChatSearchContentProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdChatSearchContentProps>('t-chat-search-content');\n\nconst ChatSuggestionContent: React.ForwardRefExoticComponent<\n Omit<TdChatSuggestionContentProps, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdChatSuggestionContentProps>('t-chat-suggestion-content');\n\nconst ChatList: React.ForwardRefExoticComponent<\n Omit<TdChatListProps & Partial<TdChatListApi>, 'ref'> & React.RefAttributes<HTMLElement | undefined>\n> = reactify<TdChatListProps>('t-chat-list');\n\n// 导出组件\nexport { ChatBot, ChatSearchContent, ChatSuggestionContent, ChatList, ChatEngine };\n\n// 导出类型和工具\nexport type * from 'tdesign-web-components/lib/chatbot/type';\nexport * from './hooks/useChat';\nexport * from './hooks/useAgentToolcall';\nexport * from './hooks/useAgentState';\nexport * from './components/toolcall';\nexport * from './components/provider/agent-state';\n"],"names":["ChatBot","reactify","ChatSearchContent","ChatSuggestionContent","ChatList"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAMA,OAAA,GAEFC,SAAsB,WAAW,EAAA;AAErC,IAAMC,iBAAA,GAEFD,SAAmC,uBAAuB,EAAA;AAE9D,IAAME,qBAAA,GAEFF,SAAuC,2BAA2B,EAAA;AAEtE,IAAMG,QAAA,GAEFH,SAA0B,aAAa;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ChatMessagesData, ChatStatus } from 'tdesign-web-components/lib/chatbot/core/type';
|
|
2
|
+
import { TdChatProps } from 'tdesign-web-components';
|
|
3
|
+
import ChatEngine from 'tdesign-web-components/lib/chatbot/core';
|
|
4
|
+
export type IUseChat = Pick<TdChatProps, 'defaultMessages' | 'chatServiceConfig'>;
|
|
5
|
+
export type IChatEngine = typeof ChatEngine;
|
|
6
|
+
export declare const useChat: ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {
|
|
7
|
+
chatEngine: ChatEngine;
|
|
8
|
+
messages: ChatMessagesData[];
|
|
9
|
+
status: ChatStatus;
|
|
10
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.1-beta.14
|
|
3
|
+
* (c) 2025 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
8
|
+
import { useState, useRef, useEffect } from 'react';
|
|
9
|
+
import ChatEngine from 'tdesign-web-components/lib/chatbot/core';
|
|
10
|
+
|
|
11
|
+
var useChat = function useChat(_ref) {
|
|
12
|
+
var initialMessages = _ref.defaultMessages,
|
|
13
|
+
chatServiceConfig = _ref.chatServiceConfig;
|
|
14
|
+
var _useState = useState([]),
|
|
15
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
16
|
+
messages = _useState2[0],
|
|
17
|
+
setMessage = _useState2[1];
|
|
18
|
+
var _useState3 = useState("idle"),
|
|
19
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
20
|
+
status = _useState4[0],
|
|
21
|
+
setStatus = _useState4[1];
|
|
22
|
+
var chatEngineRef = useRef(new ChatEngine());
|
|
23
|
+
var msgSubscribeRef = useRef(null);
|
|
24
|
+
var chatEngine = chatEngineRef.current;
|
|
25
|
+
var syncState = function syncState(state) {
|
|
26
|
+
var _state$at;
|
|
27
|
+
setMessage(state);
|
|
28
|
+
setStatus(((_state$at = state.at(-1)) === null || _state$at === void 0 ? void 0 : _state$at.status) || "idle");
|
|
29
|
+
};
|
|
30
|
+
var subscribeToChat = function subscribeToChat() {
|
|
31
|
+
msgSubscribeRef.current = chatEngine.messageStore.subscribe(function (state) {
|
|
32
|
+
syncState(state.messages);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var initChat = function initChat() {
|
|
36
|
+
chatEngine.init(chatServiceConfig, initialMessages);
|
|
37
|
+
syncState(initialMessages);
|
|
38
|
+
subscribeToChat();
|
|
39
|
+
};
|
|
40
|
+
useEffect(function () {
|
|
41
|
+
initChat();
|
|
42
|
+
return function () {
|
|
43
|
+
var _msgSubscribeRef$curr;
|
|
44
|
+
return (_msgSubscribeRef$curr = msgSubscribeRef.current) === null || _msgSubscribeRef$curr === void 0 ? void 0 : _msgSubscribeRef$curr.call(msgSubscribeRef);
|
|
45
|
+
};
|
|
46
|
+
}, []);
|
|
47
|
+
return {
|
|
48
|
+
chatEngine: chatEngine,
|
|
49
|
+
messages: messages,
|
|
50
|
+
status: status
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export { useChat };
|
|
55
|
+
//# sourceMappingURL=useChat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChat.js","sources":["../../../pro-components/chat/chatbot/useChat.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { ChatMessagesData, ChatStatus } from 'tdesign-web-components/lib/chatbot/core/type';\nimport { TdChatProps } from 'tdesign-web-components';\nimport ChatEngine from 'tdesign-web-components/lib/chatbot/core';\n\n// @ts-ignore\nexport type IUseChat = Pick<TdChatProps, 'defaultMessages' | 'chatServiceConfig'>;\nexport type IChatEngine = typeof ChatEngine;\n\nexport const useChat = ({ defaultMessages: initialMessages, chatServiceConfig }: IUseChat) => {\n const [messages, setMessage] = useState<ChatMessagesData[]>([]);\n const [status, setStatus] = useState<ChatStatus>('idle');\n const chatEngineRef = useRef<ChatEngine>(new ChatEngine());\n const msgSubscribeRef = useRef<null | (() => void)>(null);\n\n const chatEngine = chatEngineRef.current;\n\n const syncState = (state: ChatMessagesData[]) => {\n setMessage(state);\n setStatus(state.at(-1)?.status || 'idle');\n };\n\n const subscribeToChat = () => {\n msgSubscribeRef.current = chatEngine.messageStore.subscribe((state) => {\n syncState(state.messages);\n });\n };\n\n const initChat = () => {\n // @ts-ignore\n chatEngine.init(chatServiceConfig, initialMessages);\n // @ts-ignore\n syncState(initialMessages);\n subscribeToChat();\n };\n\n useEffect(() => {\n initChat();\n return () => msgSubscribeRef.current?.();\n }, []);\n\n return {\n chatEngine,\n messages,\n status,\n };\n};\n"],"names":["useChat","initialMessages","_ref","defaultMessages","chatServiceConfig","_useState","useState","_useState2","_slicedToArray","messages","setMessage","_useState3","_useState4","status","setStatus","chatEngineRef","useRef","ChatEngine","msgSubscribeRef","chatEngine","current","syncState","state","_state$at","at","subscribeToChat","messageStore","subscribe","initChat","init","useEffect","_msgSubscribeRef$curr","call"],"mappings":";;;;;;;;;;IASaA,UAAU,SAAVA,cAAiF;AAAA,EAAA,IAAnDC,eAAA,GAAAC,IAAA,CAAjBC,eAAiB;IAAiBC,yBAAAA;AAC1D,EAAA,IAAAC,SAAA,GAA+BC,QAAA,CAA6B,EAAE,CAAA;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvDI,IAAAA,QAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,UAAU,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAC3B,EAAA,IAAAI,UAAA,GAA4BL,SAAqB,MAAM,CAAA;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAhDE,IAAAA,MAAA,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAQE,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;EACxB,IAAMG,aAAgB,GAAAC,MAAA,CAAmB,IAAIC,UAAA,EAAY,CAAA,CAAA;AACnD,EAAA,IAAAC,eAAA,GAAkBF,OAA4B,IAAI,CAAA,CAAA;AAExD,EAAA,IAAMG,aAAaJ,aAAc,CAAAK,OAAA,CAAA;AAE3B,EAAA,IAAAC,SAAA,GAAY,SAAZA,SAAAA,CAAaC,KAA8B,EAAA;AAAA,IAAA,IAAAC,SAAA,CAAA;IAC/Cb,UAAA,CAAWY,KAAK,CAAA,CAAA;AAChBR,IAAAA,SAAA,CAAU,CAAAS,CAAAA,SAAA,GAAAD,KAAM,CAAAE,EAAA,CAAG,CAAE,CAAA,CAAA,MAAA,IAAA,IAAAD,SAAA,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAA,CAAcV,WAAU,MAAM,CAAA,CAAA;GAC1C,CAAA;AAEA,EAAA,IAAMY,kBAAkB,SAAlBA,kBAAwB;IAC5BP,eAAA,CAAgBE,OAAU,GAAAD,UAAA,CAAWO,YAAa,CAAAC,SAAA,CAAU,UAACL,KAAU,EAAA;AACrED,MAAAA,SAAA,CAAUC,MAAMb,QAAQ,CAAA,CAAA;AAC1B,KAAC,CAAA,CAAA;GACH,CAAA;AAEA,EAAA,IAAMmB,WAAW,SAAXA,WAAiB;AAEVT,IAAAA,UAAA,CAAAU,IAAA,CAAKzB,mBAAmBH,eAAe,CAAA,CAAA;IAElDoB,SAAA,CAAUpB,eAAe,CAAA,CAAA;AACTwB,IAAAA,eAAA,EAAA,CAAA;GAClB,CAAA;AAEAK,EAAAA,SAAA,CAAU,YAAM;AACLF,IAAAA,QAAA,EAAA,CAAA;IACF,OAAA,YAAA;AAAA,MAAA,IAAAG,qBAAA,CAAA;AAAA,MAAA,OAAA,CAAAA,qBAAA,GAAMb,gBAAgBE,OAAU,MAAA,IAAA,IAAAW,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA1BA,qBAAA,CAAAC,IAAA,CAAAd,eAA0B,CAAA,CAAA;AAAA,KAAA,CAAA;GACzC,EAAG,EAAE,CAAA,CAAA;EAEE,OAAA;AACLC,IAAAA,UAAA,EAAAA,UAAA;AACAV,IAAAA,QAAA,EAAAA,QAAA;AACAI,IAAAA,MAAA,EAAAA,MAAAA;GACF,CAAA;AACF;;;;"}
|
package/es/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './chatbot';
|
|
2
|
+
export * from './chat-actionbar';
|
|
3
|
+
export * from './chat-attachments';
|
|
4
|
+
export * from './chat-filecard';
|
|
5
|
+
export * from './chat-loading';
|
|
6
|
+
export * from './chat-markdown';
|
|
7
|
+
export * from './chat-message';
|
|
8
|
+
export * from './chat-sender';
|
|
9
|
+
export * from './chat-thinking';
|
|
10
|
+
export * from './chat-markdown';
|
|
11
|
+
export * from 'tdesign-web-components/lib/chat-engine';
|
package/es/index.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.0.0-beta.1
|
|
3
|
+
* (c) 2025 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { ChatBot, ChatList, ChatSearchContent, ChatSuggestionContent } from './chatbot/index.js';
|
|
8
|
+
export { ChatActionBar } from './chat-actionbar/index.js';
|
|
9
|
+
export { Attachments } from './chat-attachments/index.js';
|
|
10
|
+
export { Filecard } from './chat-filecard/index.js';
|
|
11
|
+
export { ChatLoading } from './chat-loading/index.js';
|
|
12
|
+
export { ChatMarkdown, MarkdownEngine } from './chat-markdown/index.js';
|
|
13
|
+
export { ChatMessage } from './chat-message/index.js';
|
|
14
|
+
export { ChatSender } from './chat-sender/index.js';
|
|
15
|
+
export { ChatThinking } from './chat-thinking/index.js';
|
|
16
|
+
export * from 'tdesign-web-components/lib/chat-engine';
|
|
17
|
+
export { default as ChatEngine } from 'tdesign-web-components/lib/chat-engine';
|
|
18
|
+
export { useChat } from './chatbot/hooks/useChat.js';
|
|
19
|
+
export { useAgentToolcall } from './chatbot/hooks/useAgentToolcall.js';
|
|
20
|
+
export { AgentStateContext, useAgentState, useAgentStateContext, useAgentStateDataByKey } from './chatbot/hooks/useAgentState.js';
|
|
21
|
+
export { isNonInteractive, isNonInteractiveConfig } from './chatbot/components/toolcall/types.js';
|
|
22
|
+
export { agentToolcallRegistry } from './chatbot/components/toolcall/registry.js';
|
|
23
|
+
export { ToolCallRenderer, withAgentStateToolcall, withAgentStateToolcall1 } from './chatbot/components/toolcall/render.js';
|
|
24
|
+
export { AgentStateProvider } from './chatbot/components/provider/agent-state.js';
|
|
25
|
+
import 'tdesign-web-components/lib/chatbot';
|
|
26
|
+
import 'tdesign-web-components/lib/chat-message/content/reasoning-content';
|
|
27
|
+
import 'tdesign-web-components/lib/chat-message/content/search-content';
|
|
28
|
+
import 'tdesign-web-components/lib/chat-message/content/suggestion-content';
|
|
29
|
+
import './_util/reactify.js';
|
|
30
|
+
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
31
|
+
import '@babel/runtime/helpers/toConsumableArray';
|
|
32
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
33
|
+
import '@babel/runtime/helpers/createClass';
|
|
34
|
+
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
35
|
+
import '@babel/runtime/helpers/getPrototypeOf';
|
|
36
|
+
import '@babel/runtime/helpers/inherits';
|
|
37
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
38
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
39
|
+
import '@babel/runtime/helpers/typeof';
|
|
40
|
+
import 'react';
|
|
41
|
+
import 'react-dom';
|
|
42
|
+
import 'react-dom/client';
|
|
43
|
+
import './chatbot/components/toolcall/index.js';
|
|
44
|
+
import 'tdesign-web-components/lib/chat-action';
|
|
45
|
+
import 'tdesign-web-components/lib/attachments';
|
|
46
|
+
import 'tdesign-web-components/lib/filecard';
|
|
47
|
+
import 'tdesign-web-components/lib/chat-loading';
|
|
48
|
+
import 'tdesign-web-components';
|
|
49
|
+
import 'tdesign-web-components/lib/chat-message/content/markdown-content';
|
|
50
|
+
import 'tdesign-web-components/lib/chat-message';
|
|
51
|
+
import 'tdesign-web-components/lib/chat-sender';
|
|
52
|
+
import 'tdesign-web-components/lib/chat-message/content/thinking-content';
|
|
53
|
+
import '@babel/runtime/helpers/asyncToGenerator';
|
|
54
|
+
import '@babel/runtime/regenerator';
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
package/es/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tdesign-react/chat",
|
|
3
|
+
"version": "1.0.0-beta.1",
|
|
4
|
+
"title": "@tdesign-react/chat",
|
|
5
|
+
"description": "TDesign Pro Component for AIGC",
|
|
6
|
+
"module": "es/index.js",
|
|
7
|
+
"typings": "es/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"es",
|
|
10
|
+
"LICENSE",
|
|
11
|
+
"README.md",
|
|
12
|
+
"CHANGELOG.md"
|
|
13
|
+
],
|
|
14
|
+
"sideEffects": [
|
|
15
|
+
"site/*",
|
|
16
|
+
"es/**/style/**"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public",
|
|
20
|
+
"registry": "https://registry.npmjs.org/"
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"start": "pnpm dev",
|
|
24
|
+
"dev": "vite",
|
|
25
|
+
"prebuild": "rimraf es/*",
|
|
26
|
+
"build": "cross-env NODE_ENV=production rollup -c script/rollup.config.js && npm run build:tsc",
|
|
27
|
+
"build:tsc": "run-p build:tsc-*",
|
|
28
|
+
"build:tsc-es": "tsc --emitDeclarationOnly -d -p ./tsconfig.build.json --outDir es/",
|
|
29
|
+
"build:jsx-demo": "npm run generate:jsx-demo && npm run format:jsx-demo"
|
|
30
|
+
},
|
|
31
|
+
"config": {
|
|
32
|
+
"commitizen": {
|
|
33
|
+
"path": "./node_modules/cz-conventional-changelog"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"lint-staged": {
|
|
37
|
+
"src/**/*.{ts,tsx}": [
|
|
38
|
+
"prettier --write",
|
|
39
|
+
"npm run lint:fix"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
"keywords": [
|
|
43
|
+
"tdesign",
|
|
44
|
+
"react"
|
|
45
|
+
],
|
|
46
|
+
"author": "tdesign",
|
|
47
|
+
"license": "MIT",
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"react": ">=16.13.1",
|
|
50
|
+
"react-dom": ">=16.13.1"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@babel/runtime": "~7.26.7",
|
|
54
|
+
"tdesign-web-components": "1.2.0-alpha.1",
|
|
55
|
+
"classnames": "~2.5.1",
|
|
56
|
+
"lodash-es": "^4.17.21",
|
|
57
|
+
"zod": "^3.24.2",
|
|
58
|
+
"cherry-markdown": "^0.10.0"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"cors": "^2.8.5",
|
|
62
|
+
"tdesign-icons-react": "0.5.0",
|
|
63
|
+
"tdesign-react": "^1.12.1",
|
|
64
|
+
"tvision-charts-react": "^3.3.12",
|
|
65
|
+
"express": "^4.17.3"
|
|
66
|
+
}
|
|
67
|
+
}
|