@tdesign-react/chat 1.1.0-alpha.5 → 1.1.0-alpha.7
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/es/_chunks/dep-1007ac80.js +205 -0
- package/es/_chunks/dep-1007ac80.js.map +1 -0
- package/es/_chunks/dep-16520c2b.js +1247 -0
- package/es/_chunks/dep-16520c2b.js.map +1 -0
- package/es/_chunks/dep-1743bd61.js +438 -0
- package/es/_chunks/dep-1743bd61.js.map +1 -0
- package/es/_chunks/dep-3e40d789.js +169 -0
- package/es/_chunks/dep-3e40d789.js.map +1 -0
- package/es/_chunks/dep-4dedfbef.js +438 -0
- package/es/_chunks/dep-4dedfbef.js.map +1 -0
- package/es/_chunks/dep-56f5e08e.js +448 -0
- package/es/_chunks/dep-56f5e08e.js.map +1 -0
- package/es/_chunks/dep-96eca06f.js +169 -0
- package/es/_chunks/dep-96eca06f.js.map +1 -0
- package/es/_chunks/dep-ebc4cf30.js +1247 -0
- package/es/_chunks/dep-ebc4cf30.js.map +1 -0
- package/es/_util/reactify.js +33 -13
- package/es/_util/reactify.js.map +1 -1
- package/es/_util/useDynamicStyle.js +1 -1
- package/es/attachments/index.js +1 -1
- package/es/chat-actionbar/index.d.ts +13 -4
- package/es/chat-actionbar/index.js +35 -5
- package/es/chat-actionbar/index.js.map +1 -1
- package/es/chat-engine/components/activity/index.js +3 -1
- package/es/chat-engine/components/activity/index.js.map +1 -1
- package/es/chat-engine/components/activity/registry.js +1 -1
- package/es/chat-engine/components/activity/render.d.ts +4 -0
- package/es/chat-engine/components/activity/render.js +14 -2
- package/es/chat-engine/components/activity/render.js.map +1 -1
- package/es/chat-engine/components/activity/types.js +1 -1
- package/es/chat-engine/components/index.js +28 -20
- package/es/chat-engine/components/index.js.map +1 -1
- package/es/chat-engine/components/json-render/catalog/atomic/button.d.ts +14 -0
- package/es/chat-engine/components/json-render/catalog/atomic/button.js +71 -0
- package/es/chat-engine/components/json-render/catalog/atomic/button.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.js +57 -0
- package/es/chat-engine/components/json-render/catalog/atomic/card.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.d.ts +20 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.js +76 -0
- package/es/chat-engine/components/json-render/catalog/atomic/input.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.d.ts +44 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.js +129 -0
- package/es/chat-engine/components/json-render/catalog/atomic/layout.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.d.ts +11 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.js +31 -0
- package/es/chat-engine/components/json-render/catalog/atomic/text.js.map +1 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.d.ts +614 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js +779 -0
- package/es/chat-engine/components/json-render/catalog/catalog-to-prompt.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/actions.d.ts +5 -0
- package/es/chat-engine/components/json-render/contexts/actions.js +39 -16
- package/es/chat-engine/components/json-render/contexts/actions.js.map +1 -1
- package/es/chat-engine/components/json-render/contexts/data.d.ts +99 -7
- package/es/chat-engine/components/json-render/contexts/data.js +155 -76
- package/es/chat-engine/components/json-render/contexts/data.js.map +1 -1
- package/es/chat-engine/components/json-render/contexts/index.d.ts +4 -0
- package/es/chat-engine/components/json-render/contexts/index.js +27 -0
- package/es/chat-engine/components/json-render/contexts/index.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/store.d.ts +67 -0
- package/es/chat-engine/components/json-render/contexts/store.js +104 -0
- package/es/chat-engine/components/json-render/contexts/store.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/tree.d.ts +44 -0
- package/es/chat-engine/components/json-render/contexts/tree.js +78 -0
- package/es/chat-engine/components/json-render/contexts/tree.js.map +1 -0
- package/es/chat-engine/components/json-render/contexts/validation.js +13 -5
- package/es/chat-engine/components/json-render/contexts/validation.js.map +1 -1
- package/es/chat-engine/components/json-render/contexts/visibility.d.ts +12 -2
- package/es/chat-engine/components/json-render/contexts/visibility.js +32 -22
- package/es/chat-engine/components/json-render/contexts/visibility.js.map +1 -1
- package/es/chat-engine/components/json-render/index.d.ts +9 -32
- package/es/chat-engine/components/json-render/index.js +59 -19
- package/es/chat-engine/components/json-render/index.js.map +1 -1
- package/es/chat-engine/components/json-render/registry/a2ui-binding.d.ts +64 -0
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js +76 -0
- package/es/chat-engine/components/json-render/registry/a2ui-binding.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.d.ts +78 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js +76 -0
- package/es/chat-engine/components/json-render/registry/a2ui-registry.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/config.d.ts +142 -0
- package/es/chat-engine/components/json-render/registry/config.js +76 -0
- package/es/chat-engine/components/json-render/registry/config.js.map +1 -0
- package/es/chat-engine/components/json-render/registry/index.d.ts +137 -0
- package/es/chat-engine/components/json-render/registry/index.js +76 -0
- package/es/chat-engine/components/json-render/registry/index.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.d.ts +35 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js +271 -0
- package/es/chat-engine/components/json-render/renderer/A2UIJsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.d.ts +44 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js +63 -0
- package/es/chat-engine/components/json-render/renderer/JsonRenderActivityRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.d.ts +44 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js +131 -0
- package/es/chat-engine/components/json-render/renderer/JsonUIRenderer.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/_index.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer/_index.js +133 -0
- package/es/chat-engine/components/json-render/renderer/_index.js.map +1 -0
- package/es/chat-engine/components/json-render/renderer/index.d.ts +71 -0
- package/es/chat-engine/components/json-render/renderer/index.js +125 -0
- package/es/chat-engine/components/json-render/renderer/index.js.map +1 -0
- package/es/chat-engine/components/json-render/types.d.ts +37 -19
- package/es/chat-engine/components/json-render/types.js +1 -1
- package/es/chat-engine/components/provider/agent-state.js +14 -7
- package/es/chat-engine/components/provider/agent-state.js.map +1 -1
- package/es/chat-engine/components/toolcall/index.js +14 -7
- package/es/chat-engine/components/toolcall/index.js.map +1 -1
- package/es/chat-engine/components/toolcall/registry.js +1 -1
- package/es/chat-engine/components/toolcall/render.js +16 -9
- package/es/chat-engine/components/toolcall/render.js.map +1 -1
- package/es/chat-engine/components/toolcall/types.js +1 -1
- package/es/chat-engine/core/adapters/a2ui/index.d.ts +10 -0
- package/es/chat-engine/core/adapters/a2ui/index.js +24 -0
- package/es/chat-engine/core/adapters/a2ui/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.d.ts +197 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js +438 -0
- package/es/chat-engine/core/adapters/a2ui/processor/A2uiMessageProcessor.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.d.ts +53 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js +158 -0
- package/es/chat-engine/core/adapters/a2ui/processor/ComponentTree.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.d.ts +63 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js +172 -0
- package/es/chat-engine/core/adapters/a2ui/processor/DataStore.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.d.ts +47 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js +99 -0
- package/es/chat-engine/core/adapters/a2ui/processor/PathResolver.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.d.ts +4 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.js +9 -0
- package/es/chat-engine/core/adapters/a2ui/types/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.d.ts +770 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.js +104 -0
- package/es/chat-engine/core/adapters/a2ui/types/types.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.d.ts +34 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.js +1784 -0
- package/es/chat-engine/core/adapters/a2ui/utils/binding.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.js +13 -0
- package/es/chat-engine/core/adapters/a2ui/utils/index.js.map +1 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.d.ts +70 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.js +333 -0
- package/es/chat-engine/core/adapters/a2ui/utils/validation.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.d.ts +93 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.js +148 -0
- package/es/chat-engine/core/adapters/agui/ActivityManager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/StateManager.d.ts +99 -0
- package/es/chat-engine/core/adapters/agui/StateManager.js +172 -0
- package/es/chat-engine/core/adapters/agui/StateManager.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +1 -1
- package/es/chat-engine/core/adapters/agui/event-mapper.js +7 -7
- package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/index.d.ts +4 -7
- package/es/chat-engine/core/adapters/agui/index.js +11 -16
- package/es/chat-engine/core/adapters/agui/index.js.map +1 -1
- package/es/chat-engine/core/adapters/agui/types/events.d.ts +1550 -0
- package/es/chat-engine/core/adapters/agui/types/events.js +15 -0
- package/es/chat-engine/core/adapters/agui/types/events.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/types/index.d.ts +818 -0
- package/es/chat-engine/core/adapters/agui/types/index.js +277 -0
- package/es/chat-engine/core/adapters/agui/types/index.js.map +1 -0
- package/es/chat-engine/core/adapters/agui/utils.js +1 -1
- package/es/chat-engine/core/adapters/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/index.js +34 -0
- package/es/chat-engine/core/adapters/index.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.d.ts +114 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js +194 -0
- package/es/chat-engine/core/adapters/json-render/SurfaceStateManager.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.d.ts +49 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js +307 -0
- package/es/chat-engine/core/adapters/json-render/a2ui-to-jsonrender.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/engine.d.ts +58 -0
- package/es/chat-engine/core/adapters/json-render/engine.js +88 -0
- package/es/chat-engine/core/adapters/json-render/engine.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/index.d.ts +8 -0
- package/es/chat-engine/core/adapters/json-render/index.js +18 -0
- package/es/chat-engine/core/adapters/json-render/index.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.d.ts +96 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.js +7 -0
- package/es/chat-engine/core/adapters/json-render/types/a2ui.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/core.d.ts +49 -0
- package/es/chat-engine/core/adapters/json-render/types/core.js +7 -0
- package/es/chat-engine/core/adapters/json-render/types/core.js.map +1 -0
- package/es/chat-engine/core/adapters/json-render/types/index.d.ts +5 -0
- package/es/chat-engine/core/adapters/json-render/types/index.js +9 -0
- package/es/chat-engine/core/adapters/json-render/types/index.js.map +1 -0
- package/es/chat-engine/core/event-bus/ChatEventBus.js +1 -1
- package/es/chat-engine/core/event-bus/index.js +1 -1
- package/es/chat-engine/core/event-bus/types.js +1 -1
- package/es/chat-engine/core/index.d.ts +2 -3
- package/es/chat-engine/core/index.js +16 -8
- package/es/chat-engine/core/index.js.map +1 -1
- package/es/chat-engine/core/processor/index.js +1 -1
- package/es/chat-engine/core/server/batch-client.js +1 -1
- package/es/chat-engine/core/server/connection-manager.js +1 -1
- package/es/chat-engine/core/server/errors.js +1 -1
- package/es/chat-engine/core/server/index.js +1 -1
- package/es/chat-engine/core/server/llm-service.js +15 -17
- package/es/chat-engine/core/server/llm-service.js.map +1 -1
- package/es/chat-engine/core/server/sse-client.js +1 -1
- package/es/chat-engine/core/server/sse-parser.js +1 -1
- package/es/chat-engine/core/server/types.js +1 -1
- package/es/chat-engine/core/store/message.js +6 -4
- package/es/chat-engine/core/store/message.js.map +1 -1
- package/es/chat-engine/core/store/model.js +2 -1
- package/es/chat-engine/core/store/model.js.map +1 -1
- package/es/chat-engine/core/store/reactiveState.d.ts +4 -0
- package/es/chat-engine/core/store/reactiveState.js +15 -1235
- package/es/chat-engine/core/store/reactiveState.js.map +1 -1
- package/es/chat-engine/core/type.d.ts +8 -19
- package/es/chat-engine/core/type.js +1 -1
- package/es/chat-engine/core/utils/eventEmitter.js +1 -1
- package/es/chat-engine/core/utils/immutable-patch.d.ts +61 -0
- package/es/chat-engine/core/utils/immutable-patch.js +147 -0
- package/es/chat-engine/core/utils/immutable-patch.js.map +1 -0
- package/es/chat-engine/core/utils/index.d.ts +7 -2
- package/es/chat-engine/core/utils/index.js +8 -12
- package/es/chat-engine/core/utils/index.js.map +1 -1
- package/es/chat-engine/core/utils/json-patch/helpers.js +1 -1
- package/es/chat-engine/core/utils/json-patch/index.js +1 -1
- package/es/chat-engine/core/utils/logger.js +1 -1
- package/es/chat-engine/core/utils/performance.d.ts +94 -0
- package/es/chat-engine/core/utils/performance.js +205 -0
- package/es/chat-engine/core/utils/performance.js.map +1 -0
- package/es/chat-engine/hooks/index.js +14 -7
- package/es/chat-engine/hooks/index.js.map +1 -1
- package/es/chat-engine/hooks/useAgentActivity.js +1 -1
- package/es/chat-engine/hooks/useAgentState.js +14 -7
- package/es/chat-engine/hooks/useAgentState.js.map +1 -1
- package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
- package/es/chat-engine/hooks/useChat.js +14 -7
- package/es/chat-engine/hooks/useChat.js.map +1 -1
- package/es/chat-engine/index.js +28 -20
- package/es/chat-engine/index.js.map +1 -1
- package/es/chat-filecard/index.js +1 -1
- package/es/chat-loading/index.js +1 -1
- package/es/chat-markdown/index.js +1 -1
- package/es/chat-message/index.js +1 -1
- package/es/chat-sender/index.js +1 -1
- package/es/chat-thinking/index.js +1 -1
- package/es/chatbot/index.js +1 -1
- package/es/index.js +28 -20
- package/es/index.js.map +1 -1
- package/es/style/index.js +1 -1
- package/package.json +2 -4
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* json-render 性能监控和优化工具(框架无关)
|
|
3
|
+
*/
|
|
4
|
+
import type { PerformanceMetrics, PerformanceThresholds } from '../adapters/json-render/types/core';
|
|
5
|
+
/**
|
|
6
|
+
* 性能监控器
|
|
7
|
+
* 框架无关,可在任何 JavaScript 环境中使用
|
|
8
|
+
*/
|
|
9
|
+
export declare class PerformanceMonitor {
|
|
10
|
+
private metrics;
|
|
11
|
+
private maxMetricsCount;
|
|
12
|
+
/**
|
|
13
|
+
* 开始性能测量
|
|
14
|
+
*/
|
|
15
|
+
start(): (elementCount: number, deltaInfo?: {
|
|
16
|
+
fromIndex: number;
|
|
17
|
+
toIndex: number;
|
|
18
|
+
}) => PerformanceMetrics;
|
|
19
|
+
/**
|
|
20
|
+
* 测量更新性能
|
|
21
|
+
*/
|
|
22
|
+
measureUpdate<T>(fn: () => T): {
|
|
23
|
+
result: T;
|
|
24
|
+
metric: PerformanceMetrics;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* 获取内存使用情况(MB)
|
|
28
|
+
*/
|
|
29
|
+
private getMemoryUsage;
|
|
30
|
+
/**
|
|
31
|
+
* 添加性能指标
|
|
32
|
+
*/
|
|
33
|
+
private addMetric;
|
|
34
|
+
/**
|
|
35
|
+
* 获取所有指标
|
|
36
|
+
*/
|
|
37
|
+
getMetrics(): PerformanceMetrics[];
|
|
38
|
+
/**
|
|
39
|
+
* 获取平均渲染时间
|
|
40
|
+
*/
|
|
41
|
+
getAverageRenderTime(): number;
|
|
42
|
+
/**
|
|
43
|
+
* 获取平均更新时间
|
|
44
|
+
*/
|
|
45
|
+
getAverageUpdateTime(): number;
|
|
46
|
+
/**
|
|
47
|
+
* 获取最近 N 次操作的平均时间
|
|
48
|
+
*/
|
|
49
|
+
getRecentAverageTime(count?: number, type?: 'render' | 'update'): number;
|
|
50
|
+
/**
|
|
51
|
+
* 获取性能统计摘要
|
|
52
|
+
*/
|
|
53
|
+
getSummary(): {
|
|
54
|
+
totalOperations: number;
|
|
55
|
+
renderOperations: number;
|
|
56
|
+
updateOperations: number;
|
|
57
|
+
avgRenderTime: number;
|
|
58
|
+
avgUpdateTime: number;
|
|
59
|
+
recentAvgRenderTime: number;
|
|
60
|
+
recentAvgUpdateTime: number;
|
|
61
|
+
avgMemoryUsage: number;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* 获取平均内存使用
|
|
65
|
+
*/
|
|
66
|
+
private getAverageMemoryUsage;
|
|
67
|
+
/**
|
|
68
|
+
* 重置所有指标
|
|
69
|
+
*/
|
|
70
|
+
reset(): void;
|
|
71
|
+
/**
|
|
72
|
+
* 打印性能摘要
|
|
73
|
+
*/
|
|
74
|
+
printSummary(): void;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 全局性能监控实例
|
|
78
|
+
*/
|
|
79
|
+
export declare const globalPerformanceMonitor: PerformanceMonitor;
|
|
80
|
+
/**
|
|
81
|
+
* 性能警告阈值(ms)
|
|
82
|
+
*/
|
|
83
|
+
export declare const PERFORMANCE_THRESHOLDS: PerformanceThresholds;
|
|
84
|
+
/**
|
|
85
|
+
* 检查性能并发出警告
|
|
86
|
+
*/
|
|
87
|
+
export declare function checkPerformance(metric: PerformanceMetrics, thresholds?: PerformanceThresholds): void;
|
|
88
|
+
declare const _default: {
|
|
89
|
+
PerformanceMonitor: typeof PerformanceMonitor;
|
|
90
|
+
globalPerformanceMonitor: PerformanceMonitor;
|
|
91
|
+
checkPerformance: typeof checkPerformance;
|
|
92
|
+
PERFORMANCE_THRESHOLDS: PerformanceThresholds;
|
|
93
|
+
};
|
|
94
|
+
export default _default;
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v1.1.0-alpha.7
|
|
3
|
+
* (c) 2026 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
8
|
+
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
9
|
+
import _createClass from '@babel/runtime/helpers/createClass';
|
|
10
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
11
|
+
|
|
12
|
+
var PerformanceMonitor = /*#__PURE__*/function () {
|
|
13
|
+
function PerformanceMonitor() {
|
|
14
|
+
_classCallCheck(this, PerformanceMonitor);
|
|
15
|
+
_defineProperty(this, "metrics", []);
|
|
16
|
+
_defineProperty(this, "maxMetricsCount", 100);
|
|
17
|
+
}
|
|
18
|
+
return _createClass(PerformanceMonitor, [{
|
|
19
|
+
key: "start",
|
|
20
|
+
value: function start() {
|
|
21
|
+
var _this = this;
|
|
22
|
+
var startTime = performance.now();
|
|
23
|
+
return function (elementCount) {
|
|
24
|
+
var endTime = performance.now();
|
|
25
|
+
var renderTime = endTime - startTime;
|
|
26
|
+
var metric = {
|
|
27
|
+
renderTime: renderTime,
|
|
28
|
+
updateTime: 0,
|
|
29
|
+
memoryUsage: _this.getMemoryUsage(),
|
|
30
|
+
componentCount: elementCount,
|
|
31
|
+
timestamp: Date.now()
|
|
32
|
+
};
|
|
33
|
+
_this.addMetric(metric);
|
|
34
|
+
return metric;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}, {
|
|
38
|
+
key: "measureUpdate",
|
|
39
|
+
value: function measureUpdate(fn) {
|
|
40
|
+
var startTime = performance.now();
|
|
41
|
+
var result = fn();
|
|
42
|
+
var endTime = performance.now();
|
|
43
|
+
var updateTime = endTime - startTime;
|
|
44
|
+
var metric = {
|
|
45
|
+
renderTime: 0,
|
|
46
|
+
updateTime: updateTime,
|
|
47
|
+
memoryUsage: this.getMemoryUsage(),
|
|
48
|
+
componentCount: 0,
|
|
49
|
+
timestamp: Date.now()
|
|
50
|
+
};
|
|
51
|
+
this.addMetric(metric);
|
|
52
|
+
return {
|
|
53
|
+
result: result,
|
|
54
|
+
metric: metric
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}, {
|
|
58
|
+
key: "getMemoryUsage",
|
|
59
|
+
value: function getMemoryUsage() {
|
|
60
|
+
if (typeof performance !== "undefined" && "memory" in performance) {
|
|
61
|
+
var _performance$memory;
|
|
62
|
+
return (((_performance$memory = performance.memory) === null || _performance$memory === void 0 ? void 0 : _performance$memory.usedJSHeapSize) || 0) / 1024 / 1024;
|
|
63
|
+
}
|
|
64
|
+
return 0;
|
|
65
|
+
}
|
|
66
|
+
}, {
|
|
67
|
+
key: "addMetric",
|
|
68
|
+
value: function addMetric(metric) {
|
|
69
|
+
this.metrics.push(metric);
|
|
70
|
+
if (this.metrics.length > this.maxMetricsCount) {
|
|
71
|
+
this.metrics.shift();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}, {
|
|
75
|
+
key: "getMetrics",
|
|
76
|
+
value: function getMetrics() {
|
|
77
|
+
return _toConsumableArray(this.metrics);
|
|
78
|
+
}
|
|
79
|
+
}, {
|
|
80
|
+
key: "getAverageRenderTime",
|
|
81
|
+
value: function getAverageRenderTime() {
|
|
82
|
+
var renderMetrics = this.metrics.filter(function (m) {
|
|
83
|
+
return m.renderTime > 0;
|
|
84
|
+
});
|
|
85
|
+
if (renderMetrics.length === 0) return 0;
|
|
86
|
+
var totalTime = renderMetrics.reduce(function (sum, m) {
|
|
87
|
+
return sum + m.renderTime;
|
|
88
|
+
}, 0);
|
|
89
|
+
return totalTime / renderMetrics.length;
|
|
90
|
+
}
|
|
91
|
+
}, {
|
|
92
|
+
key: "getAverageUpdateTime",
|
|
93
|
+
value: function getAverageUpdateTime() {
|
|
94
|
+
var updateMetrics = this.metrics.filter(function (m) {
|
|
95
|
+
return m.updateTime > 0;
|
|
96
|
+
});
|
|
97
|
+
if (updateMetrics.length === 0) return 0;
|
|
98
|
+
var totalTime = updateMetrics.reduce(function (sum, m) {
|
|
99
|
+
return sum + m.updateTime;
|
|
100
|
+
}, 0);
|
|
101
|
+
return totalTime / updateMetrics.length;
|
|
102
|
+
}
|
|
103
|
+
}, {
|
|
104
|
+
key: "getRecentAverageTime",
|
|
105
|
+
value: function getRecentAverageTime() {
|
|
106
|
+
var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
|
|
107
|
+
var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "render";
|
|
108
|
+
var recentMetrics = this.metrics.slice(-count);
|
|
109
|
+
if (recentMetrics.length === 0) return 0;
|
|
110
|
+
var timeField = type === "render" ? "renderTime" : "updateTime";
|
|
111
|
+
var validMetrics = recentMetrics.filter(function (m) {
|
|
112
|
+
return m[timeField] > 0;
|
|
113
|
+
});
|
|
114
|
+
if (validMetrics.length === 0) return 0;
|
|
115
|
+
var totalTime = validMetrics.reduce(function (sum, m) {
|
|
116
|
+
return sum + m[timeField];
|
|
117
|
+
}, 0);
|
|
118
|
+
return totalTime / validMetrics.length;
|
|
119
|
+
}
|
|
120
|
+
}, {
|
|
121
|
+
key: "getSummary",
|
|
122
|
+
value: function getSummary() {
|
|
123
|
+
var renderMetrics = this.metrics.filter(function (m) {
|
|
124
|
+
return m.renderTime > 0;
|
|
125
|
+
});
|
|
126
|
+
var updateMetrics = this.metrics.filter(function (m) {
|
|
127
|
+
return m.updateTime > 0;
|
|
128
|
+
});
|
|
129
|
+
return {
|
|
130
|
+
totalOperations: this.metrics.length,
|
|
131
|
+
renderOperations: renderMetrics.length,
|
|
132
|
+
updateOperations: updateMetrics.length,
|
|
133
|
+
avgRenderTime: this.getAverageRenderTime(),
|
|
134
|
+
avgUpdateTime: this.getAverageUpdateTime(),
|
|
135
|
+
recentAvgRenderTime: this.getRecentAverageTime(10, "render"),
|
|
136
|
+
recentAvgUpdateTime: this.getRecentAverageTime(10, "update"),
|
|
137
|
+
avgMemoryUsage: this.getAverageMemoryUsage()
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}, {
|
|
141
|
+
key: "getAverageMemoryUsage",
|
|
142
|
+
value: function getAverageMemoryUsage() {
|
|
143
|
+
if (this.metrics.length === 0) return 0;
|
|
144
|
+
var totalMemory = this.metrics.reduce(function (sum, m) {
|
|
145
|
+
return sum + m.memoryUsage;
|
|
146
|
+
}, 0);
|
|
147
|
+
return totalMemory / this.metrics.length;
|
|
148
|
+
}
|
|
149
|
+
}, {
|
|
150
|
+
key: "reset",
|
|
151
|
+
value: function reset() {
|
|
152
|
+
this.metrics = [];
|
|
153
|
+
}
|
|
154
|
+
}, {
|
|
155
|
+
key: "printSummary",
|
|
156
|
+
value: function printSummary() {
|
|
157
|
+
var summary = this.getSummary();
|
|
158
|
+
console.log("[json-render Performance Summary]", {
|
|
159
|
+
"\u603B\u64CD\u4F5C\u6B21\u6570": summary.totalOperations,
|
|
160
|
+
"\u6E32\u67D3\u64CD\u4F5C": summary.renderOperations,
|
|
161
|
+
"\u66F4\u65B0\u64CD\u4F5C": summary.updateOperations,
|
|
162
|
+
"\u5E73\u5747\u6E32\u67D3\u65F6\u95F4(ms)": summary.avgRenderTime.toFixed(2),
|
|
163
|
+
"\u5E73\u5747\u66F4\u65B0\u65F6\u95F4(ms)": summary.avgUpdateTime.toFixed(2),
|
|
164
|
+
"\u6700\u8FD110\u6B21\u6E32\u67D3\u65F6\u95F4(ms)": summary.recentAvgRenderTime.toFixed(2),
|
|
165
|
+
"\u6700\u8FD110\u6B21\u66F4\u65B0\u65F6\u95F4(ms)": summary.recentAvgUpdateTime.toFixed(2),
|
|
166
|
+
"\u5E73\u5747\u5185\u5B58\u4F7F\u7528(MB)": summary.avgMemoryUsage.toFixed(2)
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}]);
|
|
170
|
+
}();
|
|
171
|
+
var globalPerformanceMonitor = new PerformanceMonitor();
|
|
172
|
+
var PERFORMANCE_THRESHOLDS = {
|
|
173
|
+
renderTime: 50,
|
|
174
|
+
updateTime: 16,
|
|
175
|
+
memoryUsage: 100
|
|
176
|
+
};
|
|
177
|
+
function checkPerformance(metric) {
|
|
178
|
+
var thresholds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : PERFORMANCE_THRESHOLDS;
|
|
179
|
+
if (metric.renderTime > thresholds.renderTime) {
|
|
180
|
+
console.warn("[json-render Performance Warning] \u6E32\u67D3\u8017\u65F6 ".concat(metric.renderTime.toFixed(2), "ms\uFF0C\u8D85\u8FC7\u9608\u503C ").concat(thresholds.renderTime, "ms"), {
|
|
181
|
+
componentCount: metric.componentCount,
|
|
182
|
+
memoryUsage: metric.memoryUsage.toFixed(2) + "MB"
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
if (metric.updateTime > thresholds.updateTime) {
|
|
186
|
+
console.warn("[json-render Performance Warning] \u66F4\u65B0\u8017\u65F6 ".concat(metric.updateTime.toFixed(2), "ms\uFF0C\u8D85\u8FC7\u9608\u503C ").concat(thresholds.updateTime, "ms"), {
|
|
187
|
+
componentCount: metric.componentCount,
|
|
188
|
+
memoryUsage: metric.memoryUsage.toFixed(2) + "MB"
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
if (metric.memoryUsage > thresholds.memoryUsage) {
|
|
192
|
+
console.warn("[json-render Performance Warning] \u5185\u5B58\u4F7F\u7528 ".concat(metric.memoryUsage.toFixed(2), "MB\uFF0C\u8D85\u8FC7\u9608\u503C ").concat(thresholds.memoryUsage, "MB"), {
|
|
193
|
+
componentCount: metric.componentCount
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
var performance$1 = {
|
|
198
|
+
PerformanceMonitor: PerformanceMonitor,
|
|
199
|
+
globalPerformanceMonitor: globalPerformanceMonitor,
|
|
200
|
+
checkPerformance: checkPerformance,
|
|
201
|
+
PERFORMANCE_THRESHOLDS: PERFORMANCE_THRESHOLDS
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
export { PERFORMANCE_THRESHOLDS, PerformanceMonitor, checkPerformance, performance$1 as default, globalPerformanceMonitor };
|
|
205
|
+
//# sourceMappingURL=performance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.js","sources":["../../../../../pro-components/chat/chat-engine/core/utils/performance.ts"],"sourcesContent":["/**\n * json-render 性能监控和优化工具(框架无关)\n */\n\nimport type { PerformanceMetrics, PerformanceThresholds } from '../adapters/json-render/types/core';\n\n/**\n * 性能监控器\n * 框架无关,可在任何 JavaScript 环境中使用\n */\nexport class PerformanceMonitor {\n private metrics: PerformanceMetrics[] = [];\n private maxMetricsCount = 100; // 最多保留 100 条记录\n\n /**\n * 开始性能测量\n */\n start(): (elementCount: number, deltaInfo?: { fromIndex: number; toIndex: number }) => PerformanceMetrics {\n const startTime = performance.now();\n \n return (\n elementCount: number,\n ): PerformanceMetrics => {\n const endTime = performance.now();\n const renderTime = endTime - startTime;\n\n const metric: PerformanceMetrics = {\n renderTime,\n updateTime: 0, // 这里只测量渲染时间,更新时间由调用方设置\n memoryUsage: this.getMemoryUsage(),\n componentCount: elementCount,\n timestamp: Date.now(),\n };\n\n this.addMetric(metric);\n return metric;\n };\n }\n\n /**\n * 测量更新性能\n */\n measureUpdate<T>(fn: () => T): { result: T; metric: PerformanceMetrics } {\n const startTime = performance.now();\n const result = fn();\n const endTime = performance.now();\n const updateTime = endTime - startTime;\n\n const metric: PerformanceMetrics = {\n renderTime: 0,\n updateTime,\n memoryUsage: this.getMemoryUsage(),\n componentCount: 0, // 更新操作不涉及组件数量\n timestamp: Date.now(),\n };\n\n this.addMetric(metric);\n return { result, metric };\n }\n\n /**\n * 获取内存使用情况(MB)\n */\n private getMemoryUsage(): number {\n if (typeof performance !== 'undefined' && 'memory' in performance) {\n // @ts-ignore - performance.memory 在某些环境中可用\n return (performance.memory?.usedJSHeapSize || 0) / 1024 / 1024;\n }\n return 0;\n }\n\n /**\n * 添加性能指标\n */\n private addMetric(metric: PerformanceMetrics): void {\n this.metrics.push(metric);\n\n // 限制记录数量\n if (this.metrics.length > this.maxMetricsCount) {\n this.metrics.shift();\n }\n }\n\n /**\n * 获取所有指标\n */\n getMetrics(): PerformanceMetrics[] {\n return [...this.metrics];\n }\n\n /**\n * 获取平均渲染时间\n */\n getAverageRenderTime(): number {\n const renderMetrics = this.metrics.filter(m => m.renderTime > 0);\n if (renderMetrics.length === 0) return 0;\n\n const totalTime = renderMetrics.reduce((sum, m) => sum + m.renderTime, 0);\n return totalTime / renderMetrics.length;\n }\n\n /**\n * 获取平均更新时间\n */\n getAverageUpdateTime(): number {\n const updateMetrics = this.metrics.filter(m => m.updateTime > 0);\n if (updateMetrics.length === 0) return 0;\n\n const totalTime = updateMetrics.reduce((sum, m) => sum + m.updateTime, 0);\n return totalTime / updateMetrics.length;\n }\n\n /**\n * 获取最近 N 次操作的平均时间\n */\n getRecentAverageTime(count: number = 10, type: 'render' | 'update' = 'render'): number {\n const recentMetrics = this.metrics.slice(-count);\n if (recentMetrics.length === 0) return 0;\n\n const timeField = type === 'render' ? 'renderTime' : 'updateTime';\n const validMetrics = recentMetrics.filter(m => m[timeField] > 0);\n if (validMetrics.length === 0) return 0;\n\n const totalTime = validMetrics.reduce((sum, m) => sum + m[timeField], 0);\n return totalTime / validMetrics.length;\n }\n\n /**\n * 获取性能统计摘要\n */\n getSummary() {\n const renderMetrics = this.metrics.filter(m => m.renderTime > 0);\n const updateMetrics = this.metrics.filter(m => m.updateTime > 0);\n\n return {\n totalOperations: this.metrics.length,\n renderOperations: renderMetrics.length,\n updateOperations: updateMetrics.length,\n avgRenderTime: this.getAverageRenderTime(),\n avgUpdateTime: this.getAverageUpdateTime(),\n recentAvgRenderTime: this.getRecentAverageTime(10, 'render'),\n recentAvgUpdateTime: this.getRecentAverageTime(10, 'update'),\n avgMemoryUsage: this.getAverageMemoryUsage(),\n };\n }\n\n /**\n * 获取平均内存使用\n */\n private getAverageMemoryUsage(): number {\n if (this.metrics.length === 0) return 0;\n const totalMemory = this.metrics.reduce((sum, m) => sum + m.memoryUsage, 0);\n return totalMemory / this.metrics.length;\n }\n\n /**\n * 重置所有指标\n */\n reset(): void {\n this.metrics = [];\n }\n\n /**\n * 打印性能摘要\n */\n printSummary(): void {\n const summary = this.getSummary();\n console.log('[json-render Performance Summary]', {\n '总操作次数': summary.totalOperations,\n '渲染操作': summary.renderOperations,\n '更新操作': summary.updateOperations,\n '平均渲染时间(ms)': summary.avgRenderTime.toFixed(2),\n '平均更新时间(ms)': summary.avgUpdateTime.toFixed(2),\n '最近10次渲染时间(ms)': summary.recentAvgRenderTime.toFixed(2),\n '最近10次更新时间(ms)': summary.recentAvgUpdateTime.toFixed(2),\n '平均内存使用(MB)': summary.avgMemoryUsage.toFixed(2),\n });\n }\n}\n\n/**\n * 全局性能监控实例\n */\nexport const globalPerformanceMonitor = new PerformanceMonitor();\n\n/**\n * 性能警告阈值(ms)\n */\nexport const PERFORMANCE_THRESHOLDS: PerformanceThresholds = {\n renderTime: 50, // 渲染超过 50ms 发出警告\n updateTime: 16, // 更新超过 16ms 发出警告(1帧)\n memoryUsage: 100, // 内存使用超过 100MB 发出警告\n};\n\n/**\n * 检查性能并发出警告\n */\nexport function checkPerformance(metric: PerformanceMetrics, thresholds: PerformanceThresholds = PERFORMANCE_THRESHOLDS): void {\n if (metric.renderTime > thresholds.renderTime) {\n console.warn(\n `[json-render Performance Warning] 渲染耗时 ${metric.renderTime.toFixed(2)}ms,超过阈值 ${thresholds.renderTime}ms`,\n {\n componentCount: metric.componentCount,\n memoryUsage: metric.memoryUsage.toFixed(2) + 'MB',\n },\n );\n }\n\n if (metric.updateTime > thresholds.updateTime) {\n console.warn(\n `[json-render Performance Warning] 更新耗时 ${metric.updateTime.toFixed(2)}ms,超过阈值 ${thresholds.updateTime}ms`,\n {\n componentCount: metric.componentCount,\n memoryUsage: metric.memoryUsage.toFixed(2) + 'MB',\n },\n );\n }\n\n if (metric.memoryUsage > thresholds.memoryUsage) {\n console.warn(\n `[json-render Performance Warning] 内存使用 ${metric.memoryUsage.toFixed(2)}MB,超过阈值 ${thresholds.memoryUsage}MB`,\n {\n componentCount: metric.componentCount,\n },\n );\n }\n}\n\nexport default {\n PerformanceMonitor,\n globalPerformanceMonitor,\n checkPerformance,\n PERFORMANCE_THRESHOLDS,\n};"],"names":["PerformanceMonitor","_classCallCheck","_defineProperty","_createClass","key","value","start","_this","startTime","performance","now","elementCount","endTime","renderTime","metric","updateTime","memoryUsage","getMemoryUsage","componentCount","timestamp","Date","addMetric","measureUpdate","fn","result","_performance$memory","memory","usedJSHeapSize","metrics","push","length","maxMetricsCount","shift","getMetrics","_toConsumableArray","getAverageRenderTime","renderMetrics","filter","m","totalTime","reduce","sum","getAverageUpdateTime","updateMetrics","getRecentAverageTime","count","arguments","undefined","type","recentMetrics","slice","timeField","validMetrics","getSummary","totalOperations","renderOperations","updateOperations","avgRenderTime","avgUpdateTime","recentAvgRenderTime","recentAvgUpdateTime","avgMemoryUsage","getAverageMemoryUsage","totalMemory","reset","printSummary","summary","console","log","toFixed","globalPerformanceMonitor","PERFORMANCE_THRESHOLDS","checkPerformance","thresholds","warn","concat"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* tdesign v1.1.0-alpha.
|
|
2
|
+
* tdesign v1.1.0-alpha.7
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -20,19 +20,18 @@ import '@babel/runtime/regenerator';
|
|
|
20
20
|
import '../core/adapters/agui/index.js';
|
|
21
21
|
import '@babel/runtime/helpers/toConsumableArray';
|
|
22
22
|
import '../core/adapters/agui/event-mapper.js';
|
|
23
|
-
import '../core/adapters/agui/
|
|
23
|
+
import '../core/adapters/agui/types/index.js';
|
|
24
24
|
import 'zod';
|
|
25
|
-
import '../core/adapters/agui/types.js';
|
|
26
25
|
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
27
26
|
import '@babel/runtime/helpers/getPrototypeOf';
|
|
28
27
|
import '@babel/runtime/helpers/inherits';
|
|
29
28
|
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
30
|
-
import '../core/adapters/agui/
|
|
29
|
+
import '../core/adapters/agui/StateManager.js';
|
|
31
30
|
import '@babel/runtime/helpers/typeof';
|
|
32
31
|
import '../core/utils/index.js';
|
|
33
|
-
import '../core/utils/
|
|
34
|
-
import '
|
|
35
|
-
import '../core/adapters/agui/
|
|
32
|
+
import '../core/utils/immutable-patch.js';
|
|
33
|
+
import '@babel/runtime/helpers/toArray';
|
|
34
|
+
import '../core/adapters/agui/ActivityManager.js';
|
|
36
35
|
import '../core/adapters/agui/utils.js';
|
|
37
36
|
import '../core/event-bus/index.js';
|
|
38
37
|
import '../core/event-bus/ChatEventBus.js';
|
|
@@ -40,6 +39,7 @@ import '../core/event-bus/types.js';
|
|
|
40
39
|
import '../core/store/message.js';
|
|
41
40
|
import '@babel/runtime/helpers/get';
|
|
42
41
|
import '../core/store/reactiveState.js';
|
|
42
|
+
import '../../_chunks/dep-ebc4cf30.js';
|
|
43
43
|
import '../core/processor/index.js';
|
|
44
44
|
import '../core/server/index.js';
|
|
45
45
|
import '../core/server/llm-service.js';
|
|
@@ -51,6 +51,13 @@ import '../core/server/sse-client.js';
|
|
|
51
51
|
import '../core/server/connection-manager.js';
|
|
52
52
|
import '../core/server/sse-parser.js';
|
|
53
53
|
import '../core/server/types.js';
|
|
54
|
+
import '../core/adapters/index.js';
|
|
55
|
+
import '../core/adapters/json-render/index.js';
|
|
56
|
+
import '../core/adapters/json-render/a2ui-to-jsonrender.js';
|
|
57
|
+
import '../core/adapters/json-render/types/a2ui.js';
|
|
58
|
+
import '../core/adapters/json-render/SurfaceStateManager.js';
|
|
59
|
+
import '../core/adapters/json-render/types/index.js';
|
|
60
|
+
import '../core/adapters/json-render/types/core.js';
|
|
54
61
|
import '../components/toolcall/registry.js';
|
|
55
62
|
import '../components/activity/registry.js';
|
|
56
63
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* tdesign v1.1.0-alpha.
|
|
2
|
+
* tdesign v1.1.0-alpha.7
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -8,7 +8,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
8
8
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
9
9
|
import { useState, useRef, useEffect, createContext, useContext, useMemo } from 'react';
|
|
10
10
|
import '../core/index.js';
|
|
11
|
-
import { stateManager } from '../core/adapters/agui/
|
|
11
|
+
import { stateManager } from '../core/adapters/agui/StateManager.js';
|
|
12
12
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
13
13
|
import '@babel/runtime/helpers/asyncToGenerator';
|
|
14
14
|
import '@babel/runtime/helpers/classCallCheck';
|
|
@@ -17,18 +17,17 @@ import '@babel/runtime/regenerator';
|
|
|
17
17
|
import '../core/adapters/agui/index.js';
|
|
18
18
|
import '@babel/runtime/helpers/toConsumableArray';
|
|
19
19
|
import '../core/adapters/agui/event-mapper.js';
|
|
20
|
-
import '../core/adapters/agui/
|
|
20
|
+
import '../core/adapters/agui/types/index.js';
|
|
21
21
|
import 'zod';
|
|
22
|
-
import '../core/adapters/agui/types.js';
|
|
23
22
|
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
24
23
|
import '@babel/runtime/helpers/getPrototypeOf';
|
|
25
24
|
import '@babel/runtime/helpers/inherits';
|
|
26
25
|
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
27
|
-
import '../core/adapters/agui/
|
|
26
|
+
import '../core/adapters/agui/ActivityManager.js';
|
|
28
27
|
import '../core/utils/index.js';
|
|
29
|
-
import '../core/utils/
|
|
28
|
+
import '../core/utils/immutable-patch.js';
|
|
30
29
|
import '@babel/runtime/helpers/typeof';
|
|
31
|
-
import '
|
|
30
|
+
import '@babel/runtime/helpers/toArray';
|
|
32
31
|
import '../core/adapters/agui/utils.js';
|
|
33
32
|
import '../core/event-bus/index.js';
|
|
34
33
|
import '../core/event-bus/ChatEventBus.js';
|
|
@@ -36,6 +35,7 @@ import '../core/event-bus/types.js';
|
|
|
36
35
|
import '../core/store/message.js';
|
|
37
36
|
import '@babel/runtime/helpers/get';
|
|
38
37
|
import '../core/store/reactiveState.js';
|
|
38
|
+
import '../../_chunks/dep-ebc4cf30.js';
|
|
39
39
|
import '../core/processor/index.js';
|
|
40
40
|
import '../core/server/index.js';
|
|
41
41
|
import '../core/server/llm-service.js';
|
|
@@ -47,6 +47,13 @@ import '../core/server/sse-client.js';
|
|
|
47
47
|
import '../core/server/connection-manager.js';
|
|
48
48
|
import '../core/server/sse-parser.js';
|
|
49
49
|
import '../core/server/types.js';
|
|
50
|
+
import '../core/adapters/index.js';
|
|
51
|
+
import '../core/adapters/json-render/index.js';
|
|
52
|
+
import '../core/adapters/json-render/a2ui-to-jsonrender.js';
|
|
53
|
+
import '../core/adapters/json-render/types/a2ui.js';
|
|
54
|
+
import '../core/adapters/json-render/SurfaceStateManager.js';
|
|
55
|
+
import '../core/adapters/json-render/types/index.js';
|
|
56
|
+
import '../core/adapters/json-render/types/core.js';
|
|
50
57
|
|
|
51
58
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
52
59
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAgentState.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useAgentState.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { useState, useEffect, useRef, createContext, useContext, useMemo } from 'react';\n// import { stateManager } from 'tdesign-web-components/lib/chat-engine';\nimport { stateManager } from '../core';\n\n/**\n * 状态订阅相关类型定义\n */\n\nexport interface StateActionOptions {\n /**\n * 初始状态\n */\n initialState?: Record<string, any>;\n /**\n * 只订阅特定key的变化\n */\n subscribeKey?: string;\n}\n\nexport interface UseStateActionReturn {\n /**\n * 全量状态Map - 包含所有stateKey的状态\n * 格式: { [stateKey]: stateData }\n */\n stateMap: Record<string, any>;\n /**\n * 当前最新的状态key\n */\n currentStateKey: string | null;\n /**\n * 设置状态Map,用于加载历史对话消息中的state数据\n */\n setStateMap: (stateMap: Record<string, any> | ((prev: Record<string, any>) => Record<string, any>)) => void;\n /**\n * 获取当前完整状态的方法\n */\n getCurrentState: () => Record<string, any>;\n /**\n * 获取特定 key 状态的方法\n */\n getStateByKey: (key: string) => any;\n}\n\nexport const useAgentState = <T = any>(options: StateActionOptions = {}): UseStateActionReturn => {\n const { initialState, subscribeKey } = options;\n const [stateMap, setStateMap] = useState<Record<string, any>>(initialState || {});\n const [currentStateKey, setCurrentStateKey] = useState<string | null>(null);\n\n // 使用 ref 来避免不必要的重新渲染\n const stateMapRef = useRef(stateMap);\n stateMapRef.current = stateMap;\n\n useEffect(\n () =>\n stateManager.subscribeToLatest((newState: T, newStateKey: string) => {\n // 如果指定了 subscribeKey,只有匹配时才更新状态\n if (subscribeKey && newStateKey !== subscribeKey) {\n // 仍然更新内部状态,但不触发重新渲染\n stateMapRef.current = {\n ...stateMapRef.current,\n [newStateKey]: newState,\n };\n return;\n }\n\n setStateMap((prev) => ({\n ...prev,\n [newStateKey]: newState,\n }));\n setCurrentStateKey(newStateKey);\n }),\n [subscribeKey],\n );\n\n return {\n stateMap: stateMapRef.current,\n currentStateKey,\n setStateMap,\n getCurrentState: () => stateMapRef.current,\n getStateByKey: (key: string) => stateMapRef.current[key],\n };\n};\n\n// 创建 AgentState Context\nexport const AgentStateContext = createContext<UseStateActionReturn | null>(null);\n\n// 简化的状态选择器\nexport const useAgentStateDataByKey = (stateKey?: string) => {\n const contextState = useContext(AgentStateContext);\n const independentState = useAgentState({ subscribeKey: stateKey });\n\n return useMemo(() => {\n if (contextState) {\n // 有 Provider,使用 Context 状态\n const { stateMap } = contextState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }\n\n // 没有 Provider,使用独立状态\n const { stateMap } = independentState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }, [\n stateKey,\n // 关键:添加和 useAgentStateByKey 相同的深度依赖逻辑\n contextState && (stateKey ? contextState.stateMap[stateKey] : JSON.stringify(contextState.stateMap)),\n independentState && (stateKey ? independentState.stateMap[stateKey] : JSON.stringify(independentState.stateMap)),\n ]);\n};\n\n// 导出 Context Hook\nexport const useAgentStateContext = (): UseStateActionReturn => {\n const context = useContext(AgentStateContext);\n\n if (!context) {\n throw new Error('useAgentState must be used within AgentStateProvider');\n }\n\n return context;\n};\n"],"names":["useAgentState","options","arguments","length","undefined","initialState","subscribeKey","_useState","useState","_useState2","_slicedToArray","stateMap","setStateMap","_useState3","_useState4","currentStateKey","setCurrentStateKey","stateMapRef","useRef","current","useEffect","stateManager","subscribeToLatest","newState","newStateKey","_objectSpread","_defineProperty","prev","getCurrentState","getStateByKey","key","AgentStateContext","createContext","useAgentStateDataByKey","stateKey","contextState","useContext","independentState","useMemo","JSON","stringify","useAgentStateContext","context","Error"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAgentState.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useAgentState.ts"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport { useState, useEffect, useRef, createContext, useContext, useMemo } from 'react';\n// import { stateManager } from 'tdesign-web-components/lib/chat-engine';\nimport { stateManager } from '../core';\n\n/**\n * 状态订阅相关类型定义\n */\n\nexport interface StateActionOptions {\n /**\n * 初始状态\n */\n initialState?: Record<string, any>;\n /**\n * 只订阅特定key的变化\n */\n subscribeKey?: string;\n}\n\nexport interface UseStateActionReturn {\n /**\n * 全量状态Map - 包含所有stateKey的状态\n * 格式: { [stateKey]: stateData }\n */\n stateMap: Record<string, any>;\n /**\n * 当前最新的状态key\n */\n currentStateKey: string | null;\n /**\n * 设置状态Map,用于加载历史对话消息中的state数据\n */\n setStateMap: (stateMap: Record<string, any> | ((prev: Record<string, any>) => Record<string, any>)) => void;\n /**\n * 获取当前完整状态的方法\n */\n getCurrentState: () => Record<string, any>;\n /**\n * 获取特定 key 状态的方法\n */\n getStateByKey: (key: string) => any;\n}\n\nexport const useAgentState = <T = any>(options: StateActionOptions = {}): UseStateActionReturn => {\n const { initialState, subscribeKey } = options;\n const [stateMap, setStateMap] = useState<Record<string, any>>(initialState || {});\n const [currentStateKey, setCurrentStateKey] = useState<string | null>(null);\n\n // 使用 ref 来避免不必要的重新渲染\n const stateMapRef = useRef(stateMap);\n stateMapRef.current = stateMap;\n\n useEffect(\n () =>\n stateManager.subscribeToLatest((newState: T, newStateKey: string) => {\n // 如果指定了 subscribeKey,只有匹配时才更新状态\n if (subscribeKey && newStateKey !== subscribeKey) {\n // 仍然更新内部状态,但不触发重新渲染\n stateMapRef.current = {\n ...stateMapRef.current,\n [newStateKey]: newState,\n };\n return;\n }\n\n setStateMap((prev) => ({\n ...prev,\n [newStateKey]: newState,\n }));\n setCurrentStateKey(newStateKey);\n }),\n [subscribeKey],\n );\n\n return {\n stateMap: stateMapRef.current,\n currentStateKey,\n setStateMap,\n getCurrentState: () => stateMapRef.current,\n getStateByKey: (key: string) => stateMapRef.current[key],\n };\n};\n\n// 创建 AgentState Context\nexport const AgentStateContext = createContext<UseStateActionReturn | null>(null);\n\n// 简化的状态选择器\nexport const useAgentStateDataByKey = (stateKey?: string) => {\n const contextState = useContext(AgentStateContext);\n const independentState = useAgentState({ subscribeKey: stateKey });\n\n return useMemo(() => {\n if (contextState) {\n // 有 Provider,使用 Context 状态\n const { stateMap } = contextState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }\n\n // 没有 Provider,使用独立状态\n const { stateMap } = independentState;\n return stateKey ? stateMap[stateKey] : stateMap;\n }, [\n stateKey,\n // 关键:添加和 useAgentStateByKey 相同的深度依赖逻辑\n contextState && (stateKey ? contextState.stateMap[stateKey] : JSON.stringify(contextState.stateMap)),\n independentState && (stateKey ? independentState.stateMap[stateKey] : JSON.stringify(independentState.stateMap)),\n ]);\n};\n\n// 导出 Context Hook\nexport const useAgentStateContext = (): UseStateActionReturn => {\n const context = useContext(AgentStateContext);\n\n if (!context) {\n throw new Error('useAgentState must be used within AgentStateProvider');\n }\n\n return context;\n};\n"],"names":["useAgentState","options","arguments","length","undefined","initialState","subscribeKey","_useState","useState","_useState2","_slicedToArray","stateMap","setStateMap","_useState3","_useState4","currentStateKey","setCurrentStateKey","stateMapRef","useRef","current","useEffect","stateManager","subscribeToLatest","newState","newStateKey","_objectSpread","_defineProperty","prev","getCurrentState","getStateByKey","key","AgentStateContext","createContext","useAgentStateDataByKey","stateKey","contextState","useContext","independentState","useMemo","JSON","stringify","useAgentStateContext","context","Error"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* tdesign v1.1.0-alpha.
|
|
2
|
+
* tdesign v1.1.0-alpha.7
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
5
5
|
*/
|
|
@@ -16,19 +16,18 @@ import '@babel/runtime/regenerator';
|
|
|
16
16
|
import '../core/adapters/agui/index.js';
|
|
17
17
|
import '@babel/runtime/helpers/toConsumableArray';
|
|
18
18
|
import '../core/adapters/agui/event-mapper.js';
|
|
19
|
-
import '../core/adapters/agui/
|
|
19
|
+
import '../core/adapters/agui/types/index.js';
|
|
20
20
|
import 'zod';
|
|
21
|
-
import '../core/adapters/agui/types.js';
|
|
22
21
|
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
23
22
|
import '@babel/runtime/helpers/getPrototypeOf';
|
|
24
23
|
import '@babel/runtime/helpers/inherits';
|
|
25
24
|
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
26
|
-
import '../core/adapters/agui/
|
|
25
|
+
import '../core/adapters/agui/StateManager.js';
|
|
27
26
|
import '@babel/runtime/helpers/typeof';
|
|
28
27
|
import '../core/utils/index.js';
|
|
29
|
-
import '../core/utils/
|
|
30
|
-
import '
|
|
31
|
-
import '../core/adapters/agui/
|
|
28
|
+
import '../core/utils/immutable-patch.js';
|
|
29
|
+
import '@babel/runtime/helpers/toArray';
|
|
30
|
+
import '../core/adapters/agui/ActivityManager.js';
|
|
32
31
|
import '../core/adapters/agui/utils.js';
|
|
33
32
|
import '../core/event-bus/index.js';
|
|
34
33
|
import '../core/event-bus/ChatEventBus.js';
|
|
@@ -36,6 +35,7 @@ import '../core/event-bus/types.js';
|
|
|
36
35
|
import '../core/store/message.js';
|
|
37
36
|
import '@babel/runtime/helpers/get';
|
|
38
37
|
import '../core/store/reactiveState.js';
|
|
38
|
+
import '../../_chunks/dep-ebc4cf30.js';
|
|
39
39
|
import '../core/processor/index.js';
|
|
40
40
|
import '../core/server/index.js';
|
|
41
41
|
import '../core/server/llm-service.js';
|
|
@@ -47,6 +47,13 @@ import '../core/server/sse-client.js';
|
|
|
47
47
|
import '../core/server/connection-manager.js';
|
|
48
48
|
import '../core/server/sse-parser.js';
|
|
49
49
|
import '../core/server/types.js';
|
|
50
|
+
import '../core/adapters/index.js';
|
|
51
|
+
import '../core/adapters/json-render/index.js';
|
|
52
|
+
import '../core/adapters/json-render/a2ui-to-jsonrender.js';
|
|
53
|
+
import '../core/adapters/json-render/types/a2ui.js';
|
|
54
|
+
import '../core/adapters/json-render/SurfaceStateManager.js';
|
|
55
|
+
import '../core/adapters/json-render/types/index.js';
|
|
56
|
+
import '../core/adapters/json-render/types/core.js';
|
|
50
57
|
|
|
51
58
|
var useChat = function useChat(_ref) {
|
|
52
59
|
var initialMessages = _ref.defaultMessages,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChat.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useChat.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport ChatEngine from '../core';\nimport type { ChatMessagesData, ChatServiceConfig, ChatStatus } from '../core';\n// import ChatEngine from 'tdesign-web-components/lib/chat-engine';\n// import type { ChatMessagesData, ChatServiceConfig, ChatStatus } from 'tdesign-web-components/lib/chat-engine';\n\n\nexport type IUseChat = {\n defaultMessages?: ChatMessagesData[];\n chatServiceConfig: 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 // eslint-disable-next-line react-hooks/exhaustive-deps\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":"
|
|
1
|
+
{"version":3,"file":"useChat.js","sources":["../../../../pro-components/chat/chat-engine/hooks/useChat.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport ChatEngine from '../core';\nimport type { ChatMessagesData, ChatServiceConfig, ChatStatus } from '../core';\n// import ChatEngine from 'tdesign-web-components/lib/chat-engine';\n// import type { ChatMessagesData, ChatServiceConfig, ChatStatus } from 'tdesign-web-components/lib/chat-engine';\n\n\nexport type IUseChat = {\n defaultMessages?: ChatMessagesData[];\n chatServiceConfig: 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 // eslint-disable-next-line react-hooks/exhaustive-deps\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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"}
|