@tdesign-react/chat 1.0.2-alpha.5 → 1.0.2-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/es/_util/reactify.js +1 -1
  2. package/es/_util/useDynamicStyle.js +1 -1
  3. package/es/attachments/index.js +1 -1
  4. package/es/chat-actionbar/index.js +1 -1
  5. package/es/chat-attachments/index.js +1 -1
  6. package/es/chat-engine/components/activity/index.d.ts +4 -0
  7. package/es/chat-engine/components/activity/index.js +18 -0
  8. package/es/chat-engine/components/activity/index.js.map +1 -0
  9. package/es/chat-engine/components/activity/registry.d.ts +44 -0
  10. package/es/chat-engine/components/activity/registry.js +85 -0
  11. package/es/chat-engine/components/activity/registry.js.map +1 -0
  12. package/es/chat-engine/components/activity/render.d.ts +11 -0
  13. package/es/chat-engine/components/activity/render.js +107 -0
  14. package/es/chat-engine/components/activity/render.js.map +1 -0
  15. package/es/chat-engine/components/activity/types.d.ts +32 -0
  16. package/es/chat-engine/components/activity/types.js +7 -0
  17. package/es/chat-engine/components/activity/types.js.map +1 -0
  18. package/es/chat-engine/components/index.d.ts +3 -0
  19. package/es/chat-engine/components/index.js +30 -0
  20. package/es/chat-engine/components/index.js.map +1 -0
  21. package/es/chat-engine/components/provider/agent-state.js +6 -2
  22. package/es/chat-engine/components/provider/agent-state.js.map +1 -1
  23. package/es/chat-engine/components/toolcall/index.js +7 -2
  24. package/es/chat-engine/components/toolcall/index.js.map +1 -1
  25. package/es/chat-engine/components/toolcall/registry.js +1 -1
  26. package/es/chat-engine/components/toolcall/render.d.ts +1 -1
  27. package/es/chat-engine/components/toolcall/render.js +57 -13
  28. package/es/chat-engine/components/toolcall/render.js.map +1 -1
  29. package/es/chat-engine/components/toolcall/types.js +1 -1
  30. package/es/chat-engine/core/adapters/agui/event-mapper.d.ts +109 -0
  31. package/es/chat-engine/core/adapters/agui/event-mapper.js +370 -0
  32. package/es/chat-engine/core/adapters/agui/event-mapper.js.map +1 -0
  33. package/es/chat-engine/core/adapters/agui/events.d.ts +1550 -0
  34. package/es/chat-engine/core/adapters/agui/events.js +199 -0
  35. package/es/chat-engine/core/adapters/agui/events.js.map +1 -0
  36. package/es/chat-engine/core/adapters/agui/index.d.ts +75 -0
  37. package/es/chat-engine/core/adapters/agui/index.js +175 -0
  38. package/es/chat-engine/core/adapters/agui/index.js.map +1 -0
  39. package/es/chat-engine/core/adapters/agui/state-manager.d.ts +99 -0
  40. package/es/chat-engine/core/adapters/agui/state-manager.js +168 -0
  41. package/es/chat-engine/core/adapters/agui/state-manager.js.map +1 -0
  42. package/es/chat-engine/core/adapters/agui/types.d.ts +817 -0
  43. package/es/chat-engine/core/adapters/agui/types.js +95 -0
  44. package/es/chat-engine/core/adapters/agui/types.js.map +1 -0
  45. package/es/chat-engine/core/adapters/agui/utils.d.ts +197 -0
  46. package/es/chat-engine/core/adapters/agui/utils.js +311 -0
  47. package/es/chat-engine/core/adapters/agui/utils.js.map +1 -0
  48. package/es/chat-engine/core/index.d.ts +132 -0
  49. package/es/chat-engine/core/index.js +597 -0
  50. package/es/chat-engine/core/index.js.map +1 -0
  51. package/es/chat-engine/core/processor/index.d.ts +20 -0
  52. package/es/chat-engine/core/processor/index.js +146 -0
  53. package/es/chat-engine/core/processor/index.js.map +1 -0
  54. package/es/chat-engine/core/server/batch-client.d.ts +20 -0
  55. package/es/chat-engine/core/server/batch-client.js +114 -0
  56. package/es/chat-engine/core/server/batch-client.js.map +1 -0
  57. package/es/chat-engine/core/server/connection-manager.d.ts +39 -0
  58. package/es/chat-engine/core/server/connection-manager.js +84 -0
  59. package/es/chat-engine/core/server/connection-manager.js.map +1 -0
  60. package/es/chat-engine/core/server/errors.d.ts +22 -0
  61. package/es/chat-engine/core/server/errors.js +80 -0
  62. package/es/chat-engine/core/server/errors.js.map +1 -0
  63. package/es/chat-engine/core/server/index.d.ts +11 -0
  64. package/es/chat-engine/core/server/index.js +26 -0
  65. package/es/chat-engine/core/server/index.js.map +1 -0
  66. package/es/chat-engine/core/server/llm-service.d.ts +44 -0
  67. package/es/chat-engine/core/server/llm-service.js +198 -0
  68. package/es/chat-engine/core/server/llm-service.js.map +1 -0
  69. package/es/chat-engine/core/server/sse-client.d.ts +77 -0
  70. package/es/chat-engine/core/server/sse-client.js +362 -0
  71. package/es/chat-engine/core/server/sse-client.js.map +1 -0
  72. package/es/chat-engine/core/server/sse-parser.d.ts +49 -0
  73. package/es/chat-engine/core/server/sse-parser.js +116 -0
  74. package/es/chat-engine/core/server/sse-parser.js.map +1 -0
  75. package/es/chat-engine/core/server/types.d.ts +54 -0
  76. package/es/chat-engine/core/server/types.js +28 -0
  77. package/es/chat-engine/core/server/types.js.map +1 -0
  78. package/es/chat-engine/core/store/message.d.ts +27 -0
  79. package/es/chat-engine/core/store/message.js +263 -0
  80. package/es/chat-engine/core/store/message.js.map +1 -0
  81. package/es/chat-engine/core/store/model.d.ts +8 -0
  82. package/es/chat-engine/core/store/model.js +65 -0
  83. package/es/chat-engine/core/store/model.js.map +1 -0
  84. package/es/chat-engine/core/store/reactiveState.d.ts +52 -0
  85. package/es/chat-engine/core/store/reactiveState.js +1359 -0
  86. package/es/chat-engine/core/store/reactiveState.js.map +1 -0
  87. package/es/chat-engine/core/type.d.ts +255 -0
  88. package/es/chat-engine/core/type.js +7 -0
  89. package/es/chat-engine/core/type.js.map +1 -0
  90. package/es/chat-engine/core/utils/eventEmitter.d.ts +10 -0
  91. package/es/chat-engine/core/utils/eventEmitter.js +67 -0
  92. package/es/chat-engine/core/utils/eventEmitter.js.map +1 -0
  93. package/es/chat-engine/core/utils/index.d.ts +33 -0
  94. package/es/chat-engine/core/utils/index.js +999 -0
  95. package/es/chat-engine/core/utils/index.js.map +1 -0
  96. package/es/chat-engine/core/utils/logger.d.ts +30 -0
  97. package/es/chat-engine/core/utils/logger.js +87 -0
  98. package/es/chat-engine/core/utils/logger.js.map +1 -0
  99. package/es/chat-engine/hooks/index.d.ts +4 -0
  100. package/es/chat-engine/hooks/index.js +50 -0
  101. package/es/chat-engine/hooks/index.js.map +1 -0
  102. package/es/chat-engine/hooks/useAgentActivity.d.ts +16 -0
  103. package/es/chat-engine/hooks/useAgentActivity.js +73 -0
  104. package/es/chat-engine/hooks/useAgentActivity.js.map +1 -0
  105. package/es/chat-engine/hooks/useAgentState.js +6 -2
  106. package/es/chat-engine/hooks/useAgentState.js.map +1 -1
  107. package/es/chat-engine/hooks/useAgentToolcall.js +1 -1
  108. package/es/chat-engine/hooks/useChat.d.ts +2 -2
  109. package/es/chat-engine/hooks/useChat.js +37 -3
  110. package/es/chat-engine/hooks/useChat.js.map +1 -1
  111. package/es/chat-engine/index.d.ts +3 -1
  112. package/es/chat-engine/index.js +36 -3
  113. package/es/chat-engine/index.js.map +1 -1
  114. package/es/chat-filecard/index.js +1 -1
  115. package/es/chat-loading/index.js +1 -1
  116. package/es/chat-markdown/index.js +1 -1
  117. package/es/chat-message/index.js +1 -1
  118. package/es/chat-sender/index.js +1 -1
  119. package/es/chat-thinking/index.js +1 -1
  120. package/es/chatbot/index.js +1 -1
  121. package/es/index.js +33 -5
  122. package/es/index.js.map +1 -1
  123. package/es/style/index.js +1 -1
  124. package/package.json +2 -2
  125. package/es/chatbot/_example-js/agui-toolcall.d.ts +0 -11
@@ -0,0 +1,80 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.6
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _createClass from '@babel/runtime/helpers/createClass';
8
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
9
+ import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
10
+ import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
11
+ import _inherits from '@babel/runtime/helpers/inherits';
12
+ import _wrapNativeSuper from '@babel/runtime/helpers/wrapNativeSuper';
13
+
14
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
15
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
16
+ var SSEError = /*#__PURE__*/function (_Error) {
17
+ function SSEError(message, code, statusCode) {
18
+ var _this;
19
+ var isRetryable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
20
+ var details = arguments.length > 4 ? arguments[4] : undefined;
21
+ _classCallCheck(this, SSEError);
22
+ _this = _callSuper(this, SSEError, [message]);
23
+ _this.code = code;
24
+ _this.statusCode = statusCode;
25
+ _this.isRetryable = isRetryable;
26
+ _this.details = details;
27
+ _this.name = "SSEError";
28
+ return _this;
29
+ }
30
+ _inherits(SSEError, _Error);
31
+ return _createClass(SSEError);
32
+ }(/*#__PURE__*/_wrapNativeSuper(Error));
33
+ var ConnectionError = /*#__PURE__*/function (_SSEError) {
34
+ function ConnectionError(message, statusCode, details) {
35
+ var _this2;
36
+ _classCallCheck(this, ConnectionError);
37
+ _this2 = _callSuper(this, ConnectionError, [message, "CONNECTION_ERROR", statusCode, true, details]);
38
+ _this2.name = "ConnectionError";
39
+ return _this2;
40
+ }
41
+ _inherits(ConnectionError, _SSEError);
42
+ return _createClass(ConnectionError);
43
+ }(SSEError);
44
+ var TimeoutError = /*#__PURE__*/function (_SSEError2) {
45
+ function TimeoutError(details) {
46
+ var _this3;
47
+ var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "\u8BF7\u6C42\u8D85\u65F6";
48
+ _classCallCheck(this, TimeoutError);
49
+ _this3 = _callSuper(this, TimeoutError, [message, "TIMEOUT_ERROR", void 0, true, details]);
50
+ _this3.name = "TimeoutError";
51
+ return _this3;
52
+ }
53
+ _inherits(TimeoutError, _SSEError2);
54
+ return _createClass(TimeoutError);
55
+ }(SSEError);
56
+ var ParseError = /*#__PURE__*/function (_SSEError3) {
57
+ function ParseError(message, details) {
58
+ var _this4;
59
+ _classCallCheck(this, ParseError);
60
+ _this4 = _callSuper(this, ParseError, [message, "PARSE_ERROR", void 0, false, details]);
61
+ _this4.name = "ParseError";
62
+ return _this4;
63
+ }
64
+ _inherits(ParseError, _SSEError3);
65
+ return _createClass(ParseError);
66
+ }(SSEError);
67
+ var ValidationError = /*#__PURE__*/function (_SSEError4) {
68
+ function ValidationError(message, details) {
69
+ var _this5;
70
+ _classCallCheck(this, ValidationError);
71
+ _this5 = _callSuper(this, ValidationError, [message, "VALIDATION_ERROR", void 0, false, details]);
72
+ _this5.name = "ValidationError";
73
+ return _this5;
74
+ }
75
+ _inherits(ValidationError, _SSEError4);
76
+ return _createClass(ValidationError);
77
+ }(SSEError);
78
+
79
+ export { ConnectionError, ParseError, SSEError, TimeoutError, ValidationError };
80
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sources":["../../../../../pro-components/chat/chat-engine/core/server/errors.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\n/**\n * Enhanced error classes for SSE client\n */\n\n// 基础 SSE 错误类\nexport class SSEError extends Error {\n constructor(\n message: string,\n public readonly code: string,\n public readonly statusCode?: number,\n public readonly isRetryable: boolean = false,\n public readonly details?: any,\n ) {\n super(message);\n this.name = 'SSEError';\n }\n}\n\n// 连接错误\nexport class ConnectionError extends SSEError {\n constructor(message: string, statusCode?: number, details?: any) {\n super(message, 'CONNECTION_ERROR', statusCode, true, details);\n this.name = 'ConnectionError';\n }\n}\n\n// 超时错误\nexport class TimeoutError extends SSEError {\n constructor(details?: any, message = '请求超时') {\n super(message, 'TIMEOUT_ERROR', undefined, true, details);\n this.name = 'TimeoutError';\n }\n}\n\n// 解析错误\nexport class ParseError extends SSEError {\n constructor(message: string, details?: any) {\n super(message, 'PARSE_ERROR', undefined, false, details);\n this.name = 'ParseError';\n }\n}\n\n// 验证错误\nexport class ValidationError extends SSEError {\n constructor(message: string, details?: any) {\n super(message, 'VALIDATION_ERROR', undefined, false, details);\n this.name = 'ValidationError';\n }\n}\n"],"names":["SSEError","message","code","statusCode","_this","isRetryable","arguments","length","undefined","details","_classCallCheck","_callSuper","name","_inherits","_Error","_createClass","_wrapNativeSuper","Error","ConnectionError","_this2","_SSEError","TimeoutError","_this3","_SSEError2","ParseError","_this4","_SSEError3","ValidationError","_this5","_SSEError4"],"mappings":";;;;;;;;;;;;;;;AAMaA,IAAAA;AACX,EAAA,SAAAA,SACEC,OACgB,EAAAC,IAAA,EACAC,UACA,EAEhB;AAAA,IAAA,IAAAC,KAAA,CAAA;AAAA,IAAA,IAFgBC,WAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAuB;QACvBG,OAChB,GAAAH,SAAA,CAAAC,MAAA,GAAAD,CAAAA,GAAAA,SAAA,MAAAE,SAAA,CAAA;AAAAE,IAAAA,eAAA,OAAAV,QAAA,CAAA,CAAA;AACAI,IAAAA,KAAA,GAAAO,UAAA,CAAAX,IAAAA,EAAAA,QAAA,GAAMC,OAAO,CAAA,CAAA,CAAA;IALGG,KAAA,CAAAF,IAAA,GAAAA,IAAA,CAAA;IACAE,KAAA,CAAAD,UAAA,GAAAA,UAAA,CAAA;IACAC,KAAA,CAAAC,WAAA,GAAAA,WAAA,CAAA;IACAD,KAAA,CAAAK,OAAA,GAAAA,OAAA,CAAA;IAGhBL,KAAA,CAAKQ,IAAO,GAAA,UAAA,CAAA;AAAA,IAAA,OAAAR,KAAA,CAAA;AACd,GAAA;EAAAS,SAAA,CAAAb,QAAA,EAAAc,MAAA,CAAA,CAAA;EAAA,OAAAC,YAAA,CAAAf,QAAA,CAAA,CAAA;AAAA,CAAAgB,cAAAA,gBAAA,CAV4BC,KAAM,CAAA,EAAA;AAcvBC,IAAAA;AACX,EAAA,SAAAA,gBAAYjB,OAAiB,EAAAE,UAAA,EAAqBM,OAAe,EAAA;AAAA,IAAA,IAAAU,MAAA,CAAA;AAAAT,IAAAA,eAAA,OAAAQ,eAAA,CAAA,CAAA;AAC/DC,IAAAA,MAAA,GAAAR,UAAA,CAAAO,IAAAA,EAAAA,eAAA,EAAMjB,CAAAA,OAAS,EAAA,kBAAA,EAAoBE,UAAY,EAAA,IAAA,EAAMM,OAAO,CAAA,CAAA,CAAA;IAC5DU,MAAA,CAAKP,IAAO,GAAA,iBAAA,CAAA;AAAA,IAAA,OAAAO,MAAA,CAAA;AACd,GAAA;EAAAN,SAAA,CAAAK,eAAA,EAAAE,SAAA,CAAA,CAAA;EAAA,OAAAL,YAAA,CAAAG,eAAA,CAAA,CAAA;AAAA,CAAA,CAJmClB,QAAS,EAAA;AAQjCqB,IAAAA;EACX,SAAAA,YAAAA,CAAYZ,OAAe,EAAkB;AAAA,IAAA,IAAAa,MAAA,CAAA;AAAA,IAAA,IAAlBrB,OAAA,GAAAK,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAU,0BAAQ,CAAA;AAAAI,IAAAA,eAAA,OAAAW,YAAA,CAAA,CAAA;AAC3CC,IAAAA,MAAA,GAAAX,UAAA,CAAAU,IAAAA,EAAAA,YAAA,GAAMpB,OAAS,EAAA,eAAA,EAAiB,KAAW,CAAA,EAAA,IAAA,EAAMQ,OAAO,CAAA,CAAA,CAAA;IACxDa,MAAA,CAAKV,IAAO,GAAA,cAAA,CAAA;AAAA,IAAA,OAAAU,MAAA,CAAA;AACd,GAAA;EAAAT,SAAA,CAAAQ,YAAA,EAAAE,UAAA,CAAA,CAAA;EAAA,OAAAR,YAAA,CAAAM,YAAA,CAAA,CAAA;AAAA,CAAA,CAJgCrB,QAAS,EAAA;AAQ9BwB,IAAAA;AACX,EAAA,SAAAA,UAAYvB,CAAAA,SAAiBQ,OAAe,EAAA;AAAA,IAAA,IAAAgB,MAAA,CAAA;AAAAf,IAAAA,eAAA,OAAAc,UAAA,CAAA,CAAA;AAC1CC,IAAAA,MAAA,GAAAd,UAAA,CAAAa,IAAAA,EAAAA,UAAA,GAAMvB,OAAS,EAAA,aAAA,EAAe,KAAW,CAAA,EAAA,KAAA,EAAOQ,OAAO,CAAA,CAAA,CAAA;IACvDgB,MAAA,CAAKb,IAAO,GAAA,YAAA,CAAA;AAAA,IAAA,OAAAa,MAAA,CAAA;AACd,GAAA;EAAAZ,SAAA,CAAAW,UAAA,EAAAE,UAAA,CAAA,CAAA;EAAA,OAAAX,YAAA,CAAAS,UAAA,CAAA,CAAA;AAAA,CAAA,CAJ8BxB,QAAS,EAAA;AAQ5B2B,IAAAA;AACX,EAAA,SAAAA,eAAY1B,CAAAA,SAAiBQ,OAAe,EAAA;AAAA,IAAA,IAAAmB,MAAA,CAAA;AAAAlB,IAAAA,eAAA,OAAAiB,eAAA,CAAA,CAAA;AAC1CC,IAAAA,MAAA,GAAAjB,UAAA,CAAAgB,IAAAA,EAAAA,eAAA,GAAM1B,OAAS,EAAA,kBAAA,EAAoB,KAAW,CAAA,EAAA,KAAA,EAAOQ,OAAO,CAAA,CAAA,CAAA;IAC5DmB,MAAA,CAAKhB,IAAO,GAAA,iBAAA,CAAA;AAAA,IAAA,OAAAgB,MAAA,CAAA;AACd,GAAA;EAAAf,SAAA,CAAAc,eAAA,EAAAE,UAAA,CAAA,CAAA;EAAA,OAAAd,YAAA,CAAAY,eAAA,CAAA,CAAA;AAAA,CAAA,CAJmC3B,QAAS;;;;"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * SSE 服务管理模块
3
+ * 提供完整的 SSE 客户端、连接管理和 LLM 服务功能
4
+ */
5
+ import { LLMService } from './llm-service';
6
+ export * from './types';
7
+ export * from './errors';
8
+ export { ConnectionManager } from './connection-manager';
9
+ export { SSEClient } from './sse-client';
10
+ export { LLMService, type ILLMService } from './llm-service';
11
+ export default LLMService;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.6
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import { LLMService } from './llm-service.js';
8
+ export { LLMService, LLMService as default } from './llm-service.js';
9
+ export { DEFAULT_SSE_CONFIG, SSEConnectionState } from './types.js';
10
+ export { ConnectionError, ParseError, SSEError, TimeoutError, ValidationError } from './errors.js';
11
+ export { ConnectionManager } from './connection-manager.js';
12
+ export { SSEClient } from './sse-client.js';
13
+ import '@babel/runtime/helpers/asyncToGenerator';
14
+ import '@babel/runtime/helpers/classCallCheck';
15
+ import '@babel/runtime/helpers/createClass';
16
+ import '@babel/runtime/helpers/defineProperty';
17
+ import '@babel/runtime/regenerator';
18
+ import '../utils/logger.js';
19
+ import './batch-client.js';
20
+ import '@babel/runtime/helpers/possibleConstructorReturn';
21
+ import '@babel/runtime/helpers/getPrototypeOf';
22
+ import '@babel/runtime/helpers/inherits';
23
+ import '../utils/eventEmitter.js';
24
+ import '@babel/runtime/helpers/wrapNativeSuper';
25
+ import './sse-parser.js';
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,44 @@
1
+ import type { AIMessageContent, ChatRequestParams, ChatServiceConfig } from '../type';
2
+ export interface ILLMService {
3
+ /**
4
+ * 处理批量请求(非流式)
5
+ */
6
+ handleBatchRequest(params: ChatRequestParams, config: ChatServiceConfig): Promise<AIMessageContent | AIMessageContent[]>;
7
+ /**
8
+ * 处理流式请求
9
+ */
10
+ handleStreamRequest(params: ChatRequestParams, config: ChatServiceConfig): Promise<void>;
11
+ }
12
+ /**
13
+ * Enhanced LLM Service with error handling and connection management
14
+ */
15
+ export declare class LLMService implements ILLMService {
16
+ private sseClient;
17
+ private batchClient;
18
+ private isDestroyed;
19
+ private logger;
20
+ /**
21
+ * 处理批量请求(非流式)
22
+ */
23
+ handleBatchRequest(params: ChatRequestParams, config: ChatServiceConfig): Promise<AIMessageContent | AIMessageContent[]>;
24
+ /**
25
+ * 处理流式请求
26
+ */
27
+ handleStreamRequest(params: ChatRequestParams, config: ChatServiceConfig): Promise<void>;
28
+ /**
29
+ * 关闭所有客户端连接
30
+ */
31
+ closeConnect(): void;
32
+ /**
33
+ * 获取连接统计
34
+ */
35
+ getSSEStats(): {
36
+ id: string;
37
+ status: string;
38
+ info: any;
39
+ } | null;
40
+ /**
41
+ * 销毁服务
42
+ */
43
+ destroy(): Promise<void>;
44
+ }
@@ -0,0 +1,198 @@
1
+ /**
2
+ * tdesign v1.0.2-alpha.6
3
+ * (c) 2026 tdesign
4
+ * @license MIT
5
+ */
6
+
7
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
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
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
12
+ import { LoggerManager } from '../utils/logger.js';
13
+ import { BatchClient } from './batch-client.js';
14
+ import { SSEClient } from './sse-client.js';
15
+ import '@babel/runtime/helpers/possibleConstructorReturn';
16
+ import '@babel/runtime/helpers/getPrototypeOf';
17
+ import '@babel/runtime/helpers/inherits';
18
+ import '../utils/eventEmitter.js';
19
+ import './errors.js';
20
+ import '@babel/runtime/helpers/wrapNativeSuper';
21
+ import './connection-manager.js';
22
+ import './sse-parser.js';
23
+ import './types.js';
24
+
25
+ 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; }
26
+ 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; }
27
+ var LLMService = /*#__PURE__*/function () {
28
+ function LLMService() {
29
+ _classCallCheck(this, LLMService);
30
+ _defineProperty(this, "sseClient", null);
31
+ _defineProperty(this, "batchClient", null);
32
+ _defineProperty(this, "isDestroyed", false);
33
+ _defineProperty(this, "logger", LoggerManager.getLogger());
34
+ }
35
+ return _createClass(LLMService, [{
36
+ key: "handleBatchRequest",
37
+ value: function () {
38
+ var _handleBatchRequest = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(params, config) {
39
+ var _config$onRequest;
40
+ var req, data, _config$onComplete, result, _config$onError2, _t, _t2;
41
+ return _regeneratorRuntime.wrap(function (_context) {
42
+ while (1) switch (_context.prev = _context.next) {
43
+ case 0:
44
+ this.batchClient = this.batchClient || new BatchClient();
45
+ this.batchClient.on("error", function (error) {
46
+ var _config$onError;
47
+ (_config$onError = config.onError) === null || _config$onError === void 0 || _config$onError.call(config, error);
48
+ });
49
+ _context.next = 1;
50
+ return (_config$onRequest = config.onRequest) === null || _config$onRequest === void 0 ? void 0 : _config$onRequest.call(config, params);
51
+ case 1:
52
+ _t = _context.sent;
53
+ if (_t) {
54
+ _context.next = 2;
55
+ break;
56
+ }
57
+ _t = params;
58
+ case 2:
59
+ req = _t;
60
+ _context.prev = 3;
61
+ _context.next = 4;
62
+ return this.batchClient.request(config.endpoint, {
63
+ method: "POST",
64
+ headers: _objectSpread({
65
+ "Content-Type": "application/json"
66
+ }, req.headers),
67
+ body: req.body
68
+ }, config.timeout);
69
+ case 4:
70
+ data = _context.sent;
71
+ if (!data) {
72
+ _context.next = 5;
73
+ break;
74
+ }
75
+ result = (_config$onComplete = config.onComplete) === null || _config$onComplete === void 0 ? void 0 : _config$onComplete.call(config, false, req, data);
76
+ return _context.abrupt("return", result || data);
77
+ case 5:
78
+ return _context.abrupt("return", []);
79
+ case 6:
80
+ _context.prev = 6;
81
+ _t2 = _context["catch"](3);
82
+ (_config$onError2 = config.onError) === null || _config$onError2 === void 0 || _config$onError2.call(config, _t2);
83
+ throw _t2;
84
+ case 7:
85
+ case "end":
86
+ return _context.stop();
87
+ }
88
+ }, _callee, this, [[3, 6]]);
89
+ }));
90
+ function handleBatchRequest(_x, _x2) {
91
+ return _handleBatchRequest.apply(this, arguments);
92
+ }
93
+ return handleBatchRequest;
94
+ }()
95
+ }, {
96
+ key: "handleStreamRequest",
97
+ value: function () {
98
+ var _handleStreamRequest = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(params, config) {
99
+ var _config$onRequest2;
100
+ var req, _t3;
101
+ return _regeneratorRuntime.wrap(function (_context2) {
102
+ while (1) switch (_context2.prev = _context2.next) {
103
+ case 0:
104
+ if (config.endpoint) {
105
+ _context2.next = 1;
106
+ break;
107
+ }
108
+ return _context2.abrupt("return");
109
+ case 1:
110
+ this.sseClient = new SSEClient(config.endpoint);
111
+ _context2.next = 2;
112
+ return (_config$onRequest2 = config.onRequest) === null || _config$onRequest2 === void 0 ? void 0 : _config$onRequest2.call(config, params);
113
+ case 2:
114
+ _t3 = _context2.sent;
115
+ if (_t3) {
116
+ _context2.next = 3;
117
+ break;
118
+ }
119
+ _t3 = {};
120
+ case 3:
121
+ req = _t3;
122
+ this.sseClient.on("start", function (chunk) {
123
+ var _config$onStart;
124
+ (_config$onStart = config.onStart) === null || _config$onStart === void 0 || _config$onStart.call(config, chunk);
125
+ });
126
+ this.sseClient.on("message", function (msg) {
127
+ var _config$onMessage;
128
+ (_config$onMessage = config.onMessage) === null || _config$onMessage === void 0 || _config$onMessage.call(config, msg);
129
+ });
130
+ this.sseClient.on("error", function (error) {
131
+ var _config$onError3;
132
+ (_config$onError3 = config.onError) === null || _config$onError3 === void 0 || _config$onError3.call(config, error);
133
+ });
134
+ this.sseClient.on("complete", function (isAborted) {
135
+ var _config$onComplete2;
136
+ (_config$onComplete2 = config.onComplete) === null || _config$onComplete2 === void 0 || _config$onComplete2.call(config, isAborted, req);
137
+ });
138
+ _context2.next = 4;
139
+ return this.sseClient.connect(req);
140
+ case 4:
141
+ case "end":
142
+ return _context2.stop();
143
+ }
144
+ }, _callee2, this);
145
+ }));
146
+ function handleStreamRequest(_x3, _x4) {
147
+ return _handleStreamRequest.apply(this, arguments);
148
+ }
149
+ return handleStreamRequest;
150
+ }()
151
+ }, {
152
+ key: "closeConnect",
153
+ value: function closeConnect() {
154
+ if (this.sseClient) {
155
+ this.sseClient.abort();
156
+ this.sseClient = null;
157
+ }
158
+ if (this.batchClient) {
159
+ this.batchClient.abort();
160
+ this.batchClient = null;
161
+ }
162
+ }
163
+ }, {
164
+ key: "getSSEStats",
165
+ value: function getSSEStats() {
166
+ if (!this.sseClient) return null;
167
+ return {
168
+ id: this.sseClient.connectionId,
169
+ status: this.sseClient.getStatus(),
170
+ info: this.sseClient.getInfo()
171
+ };
172
+ }
173
+ }, {
174
+ key: "destroy",
175
+ value: function () {
176
+ var _destroy = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
177
+ return _regeneratorRuntime.wrap(function (_context3) {
178
+ while (1) switch (_context3.prev = _context3.next) {
179
+ case 0:
180
+ this.isDestroyed = true;
181
+ this.closeConnect();
182
+ this.logger.info("Enhanced LLM Service destroyed");
183
+ case 1:
184
+ case "end":
185
+ return _context3.stop();
186
+ }
187
+ }, _callee3, this);
188
+ }));
189
+ function destroy() {
190
+ return _destroy.apply(this, arguments);
191
+ }
192
+ return destroy;
193
+ }()
194
+ }]);
195
+ }();
196
+
197
+ export { LLMService };
198
+ //# sourceMappingURL=llm-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-service.js","sources":["../../../../../pro-components/chat/chat-engine/core/server/llm-service.ts"],"sourcesContent":["import type { AIMessageContent, ChatRequestParams, ChatServiceConfig, SSEChunkData } from '../type';\nimport { LoggerManager } from '../utils/logger';\nimport { BatchClient } from './batch-client';\nimport { SSEClient } from './sse-client';\n\n// 与原有接口保持兼容\nexport interface ILLMService {\n /**\n * 处理批量请求(非流式)\n */\n handleBatchRequest(\n params: ChatRequestParams,\n config: ChatServiceConfig,\n ): Promise<AIMessageContent | AIMessageContent[]>;\n\n /**\n * 处理流式请求\n */\n handleStreamRequest(params: ChatRequestParams, config: ChatServiceConfig): Promise<void>;\n}\n\n/**\n * Enhanced LLM Service with error handling and connection management\n */\nexport class LLMService implements ILLMService {\n private sseClient: SSEClient | null = null;\n\n private batchClient: BatchClient | null = null;\n\n private isDestroyed = false;\n\n private logger = LoggerManager.getLogger();\n\n /**\n * 处理批量请求(非流式)\n */\n async handleBatchRequest(\n params: ChatRequestParams,\n config: ChatServiceConfig,\n ): Promise<AIMessageContent | AIMessageContent[]> {\n // 确保只有一个客户端实例\n this.batchClient = this.batchClient || new BatchClient();\n this.batchClient.on('error', (error) => {\n config.onError?.(error);\n });\n\n const req = (await config.onRequest?.(params)) || params;\n\n try {\n const data = await this.batchClient.request<AIMessageContent>(\n config.endpoint!,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n ...req.headers,\n },\n body: req.body,\n },\n config.timeout, // 现在timeout属性已存在\n );\n if (data) {\n const result = config.onComplete?.(false, req, data);\n // 如果onComplete返回了内容,使用它;否则使用原始data\n return result || data;\n }\n // 如果没有data,返回空数组\n return [];\n } catch (error) {\n config.onError?.(error as Error | Response);\n throw error;\n }\n }\n\n /**\n * 处理流式请求\n */\n async handleStreamRequest(params: ChatRequestParams, config: ChatServiceConfig): Promise<void> {\n if (!config.endpoint) return;\n this.sseClient = new SSEClient(config.endpoint);\n\n const req = (await config.onRequest?.(params)) || {};\n\n // 设置事件处理器\n this.sseClient.on('start', (chunk) => {\n config.onStart?.(chunk);\n });\n\n this.sseClient.on('message', (msg) => {\n config.onMessage?.(msg as SSEChunkData);\n });\n\n this.sseClient.on('error', (error) => {\n config.onError?.(error);\n });\n\n this.sseClient.on('complete', (isAborted) => {\n config.onComplete?.(isAborted, req);\n });\n\n await this.sseClient.connect(req);\n }\n\n /**\n * 关闭所有客户端连接\n */\n closeConnect(): void {\n if (this.sseClient) {\n this.sseClient.abort();\n this.sseClient = null;\n }\n if (this.batchClient) {\n this.batchClient.abort();\n this.batchClient = null;\n }\n }\n\n /**\n * 获取连接统计\n */\n getSSEStats(): { id: string; status: string; info: any } | null {\n if (!this.sseClient) return null;\n\n return {\n id: this.sseClient.connectionId,\n status: this.sseClient.getStatus(),\n info: this.sseClient.getInfo(),\n };\n }\n\n /**\n * 销毁服务\n */\n async destroy(): Promise<void> {\n this.isDestroyed = true;\n this.closeConnect();\n this.logger.info('Enhanced LLM Service destroyed');\n }\n}\n"],"names":["LLMService","_classCallCheck","_defineProperty","LoggerManager","getLogger","_createClass","key","value","_handleBatchRequest","_asyncToGenerator","_regeneratorRuntime","mark","_callee","params","config","_config$onRequest","req","data","_config$onComplete","result","_config$onError2","_t","_t2","wrap","_context","prev","next","batchClient","BatchClient","on","error","_config$onError","onError","call","onRequest","sent","request","endpoint","method","headers","_objectSpread","body","timeout","onComplete","abrupt","stop","handleBatchRequest","_x","_x2","apply","arguments","_handleStreamRequest","_callee2","_config$onRequest2","_t3","_context2","sseClient","SSEClient","chunk","_config$onStart","onStart","msg","_config$onMessage","onMessage","_config$onError3","isAborted","_config$onComplete2","connect","handleStreamRequest","_x3","_x4","closeConnect","abort","getSSEStats","id","connectionId","status","getStatus","info","getInfo","_destroy","_callee3","_context3","isDestroyed","logger","destroy"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import EventEmitter from '../utils/eventEmitter';
2
+ import { type ConnectionInfo, type SSEClientConfig, SSEConnectionState } from './types';
3
+ /**
4
+ * SSE Client
5
+ * 采用分层设计,分离了连接管理、状态管理、事件解析等职责
6
+ */
7
+ export declare class SSEClient extends EventEmitter {
8
+ readonly connectionId: string;
9
+ private state;
10
+ private controller?;
11
+ private reader?;
12
+ private connectionManager;
13
+ private parser;
14
+ private timeoutTimer?;
15
+ private config;
16
+ private logger;
17
+ private url;
18
+ private connectionInfo;
19
+ private firstTokenReceived;
20
+ constructor(url: string);
21
+ /**
22
+ * 连接 SSE 服务
23
+ */
24
+ connect(config: SSEClientConfig): Promise<void>;
25
+ /**
26
+ * 关闭连接
27
+ */
28
+ abort(): Promise<void>;
29
+ /**
30
+ * 获取连接状态
31
+ */
32
+ getStatus(): SSEConnectionState;
33
+ /**
34
+ * 获取连接信息
35
+ */
36
+ getInfo(): ConnectionInfo;
37
+ /**
38
+ * 建立连接
39
+ */
40
+ private establishConnection;
41
+ /**
42
+ * 读取流数据
43
+ */
44
+ private readStream;
45
+ /**
46
+ * 启动统一超时监控
47
+ */
48
+ private startTimeoutMonitor;
49
+ /**
50
+ * 解析SSE数据
51
+ */
52
+ private parseSSEData;
53
+ /**
54
+ * 简化的错误处理
55
+ */
56
+ private handleConnectionError;
57
+ /**
58
+ * 清理超时定时器
59
+ */
60
+ private clearTimeouts;
61
+ /**
62
+ * 设置连接状态
63
+ */
64
+ private setState;
65
+ /**
66
+ * 重置解析器状态
67
+ */
68
+ private resetParser;
69
+ /**
70
+ * 设置内部事件处理器
71
+ */
72
+ private setupInternalEventHandlers;
73
+ /**
74
+ * 生成连接ID
75
+ */
76
+ private generateConnectionId;
77
+ }