react-ai-renderer 0.1.2 → 0.1.4

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 (118) hide show
  1. package/dist/{MermaidRenderer-a25ae84f.js → MermaidRenderer-62cbf217.js} +1 -1
  2. package/dist/{MermaidRenderer-d8836800.js → MermaidRenderer-680adac3.js} +1 -1
  3. package/dist/{index-415b51ad.js → index-543584d8.js} +237 -135
  4. package/dist/{index-bb96fdaf.js → index-58ab9759.js} +237 -135
  5. package/dist/index.d.ts +30 -9
  6. package/dist/index.es.js +1 -1
  7. package/dist/index.js +1 -1
  8. package/package.json +1 -1
  9. package/dist/MermaidRenderer-0ef71453.js +0 -170
  10. package/dist/MermaidRenderer-0ef71453.js.map +0 -1
  11. package/dist/MermaidRenderer-13e4a89a.js +0 -172
  12. package/dist/MermaidRenderer-13e4a89a.js.map +0 -1
  13. package/dist/MermaidRenderer-321bfe50.js +0 -170
  14. package/dist/MermaidRenderer-321bfe50.js.map +0 -1
  15. package/dist/MermaidRenderer-325a9dee.js +0 -170
  16. package/dist/MermaidRenderer-325a9dee.js.map +0 -1
  17. package/dist/MermaidRenderer-4bae11d6.js +0 -170
  18. package/dist/MermaidRenderer-4bae11d6.js.map +0 -1
  19. package/dist/MermaidRenderer-6237d7da.js +0 -170
  20. package/dist/MermaidRenderer-6237d7da.js.map +0 -1
  21. package/dist/MermaidRenderer-653a4dab.js +0 -172
  22. package/dist/MermaidRenderer-653a4dab.js.map +0 -1
  23. package/dist/MermaidRenderer-67edae8e.js +0 -172
  24. package/dist/MermaidRenderer-67edae8e.js.map +0 -1
  25. package/dist/MermaidRenderer-6f071d8e.js +0 -170
  26. package/dist/MermaidRenderer-6f071d8e.js.map +0 -1
  27. package/dist/MermaidRenderer-75832c15.js +0 -172
  28. package/dist/MermaidRenderer-75832c15.js.map +0 -1
  29. package/dist/MermaidRenderer-7cb138d1.js +0 -170
  30. package/dist/MermaidRenderer-7cb138d1.js.map +0 -1
  31. package/dist/MermaidRenderer-8a8fb725.js +0 -172
  32. package/dist/MermaidRenderer-8a8fb725.js.map +0 -1
  33. package/dist/MermaidRenderer-91a0a7d8.js +0 -170
  34. package/dist/MermaidRenderer-91a0a7d8.js.map +0 -1
  35. package/dist/MermaidRenderer-9ff856f3.js +0 -172
  36. package/dist/MermaidRenderer-9ff856f3.js.map +0 -1
  37. package/dist/MermaidRenderer-a25ae84f.js.map +0 -1
  38. package/dist/MermaidRenderer-c3014102.js +0 -172
  39. package/dist/MermaidRenderer-c3014102.js.map +0 -1
  40. package/dist/MermaidRenderer-c664aa66.js +0 -170
  41. package/dist/MermaidRenderer-c664aa66.js.map +0 -1
  42. package/dist/MermaidRenderer-d1518f28.js +0 -172
  43. package/dist/MermaidRenderer-d1518f28.js.map +0 -1
  44. package/dist/MermaidRenderer-d7545a7e.js +0 -172
  45. package/dist/MermaidRenderer-d7545a7e.js.map +0 -1
  46. package/dist/MermaidRenderer-d8836800.js.map +0 -1
  47. package/dist/MermaidRenderer-d9c8351a.js +0 -172
  48. package/dist/MermaidRenderer-d9c8351a.js.map +0 -1
  49. package/dist/MermaidRenderer-dc0ac92e.js +0 -170
  50. package/dist/MermaidRenderer-dc0ac92e.js.map +0 -1
  51. package/dist/MermaidRenderer-e549ab85.js +0 -172
  52. package/dist/MermaidRenderer-e549ab85.js.map +0 -1
  53. package/dist/MermaidRenderer-e5d81a6f.js +0 -172
  54. package/dist/MermaidRenderer-e5d81a6f.js.map +0 -1
  55. package/dist/MermaidRenderer-e82f36e4.js +0 -172
  56. package/dist/MermaidRenderer-e82f36e4.js.map +0 -1
  57. package/dist/MermaidRenderer-f04366c1.js +0 -170
  58. package/dist/MermaidRenderer-f04366c1.js.map +0 -1
  59. package/dist/MermaidRenderer-f6473da3.js +0 -170
  60. package/dist/MermaidRenderer-f6473da3.js.map +0 -1
  61. package/dist/MermaidRenderer-f82d0d11.js +0 -170
  62. package/dist/MermaidRenderer-f82d0d11.js.map +0 -1
  63. package/dist/index-02f4473f.js +0 -1313
  64. package/dist/index-02f4473f.js.map +0 -1
  65. package/dist/index-172582eb.js +0 -1294
  66. package/dist/index-172582eb.js.map +0 -1
  67. package/dist/index-1d051ba8.js +0 -1286
  68. package/dist/index-1d051ba8.js.map +0 -1
  69. package/dist/index-283b43ef.js +0 -1285
  70. package/dist/index-283b43ef.js.map +0 -1
  71. package/dist/index-2d979ad5.js +0 -1314
  72. package/dist/index-2d979ad5.js.map +0 -1
  73. package/dist/index-349401d2.js +0 -1288
  74. package/dist/index-349401d2.js.map +0 -1
  75. package/dist/index-398258c5.js +0 -1314
  76. package/dist/index-398258c5.js.map +0 -1
  77. package/dist/index-3cf82be4.js +0 -1287
  78. package/dist/index-3cf82be4.js.map +0 -1
  79. package/dist/index-3de28f18.js +0 -1319
  80. package/dist/index-3de28f18.js.map +0 -1
  81. package/dist/index-415b51ad.js.map +0 -1
  82. package/dist/index-4592abf8.js +0 -1311
  83. package/dist/index-4592abf8.js.map +0 -1
  84. package/dist/index-4edeb553.js +0 -1313
  85. package/dist/index-4edeb553.js.map +0 -1
  86. package/dist/index-534d3bce.js +0 -1312
  87. package/dist/index-534d3bce.js.map +0 -1
  88. package/dist/index-6ceb7256.js +0 -1287
  89. package/dist/index-6ceb7256.js.map +0 -1
  90. package/dist/index-7e8dc866.js +0 -1304
  91. package/dist/index-7e8dc866.js.map +0 -1
  92. package/dist/index-896de550.js +0 -1313
  93. package/dist/index-896de550.js.map +0 -1
  94. package/dist/index-8dbf398a.js +0 -1313
  95. package/dist/index-8dbf398a.js.map +0 -1
  96. package/dist/index-922bbd30.js +0 -1339
  97. package/dist/index-922bbd30.js.map +0 -1
  98. package/dist/index-a5a2c748.js +0 -1288
  99. package/dist/index-a5a2c748.js.map +0 -1
  100. package/dist/index-abed2ed7.js +0 -1286
  101. package/dist/index-abed2ed7.js.map +0 -1
  102. package/dist/index-ae31bd04.js +0 -1312
  103. package/dist/index-ae31bd04.js.map +0 -1
  104. package/dist/index-b0cab34f.js +0 -1287
  105. package/dist/index-b0cab34f.js.map +0 -1
  106. package/dist/index-bb96fdaf.js.map +0 -1
  107. package/dist/index-c0acef6b.js +0 -1330
  108. package/dist/index-c0acef6b.js.map +0 -1
  109. package/dist/index-c6ab333d.js +0 -1293
  110. package/dist/index-c6ab333d.js.map +0 -1
  111. package/dist/index-d4f12a68.js +0 -1287
  112. package/dist/index-d4f12a68.js.map +0 -1
  113. package/dist/index-e07ca144.js +0 -1320
  114. package/dist/index-e07ca144.js.map +0 -1
  115. package/dist/index-fdaa9757.js +0 -1313
  116. package/dist/index-fdaa9757.js.map +0 -1
  117. package/dist/index.es.js.map +0 -1
  118. package/dist/index.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-3de28f18.js');
3
+ var index = require('./index-58ab9759.js');
4
4
  var React = require('react');
5
5
  var runtime = require('react/jsx-runtime');
6
6
  require('remark-math');
@@ -1,4 +1,4 @@
1
- import { _ as __read, a as __awaiter, b as __generator } from './index-c6ab333d.js';
1
+ import { _ as __read, a as __awaiter, b as __generator } from './index-543584d8.js';
2
2
  import { useRef, useState, useMemo, useCallback, useEffect } from 'react';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
  import 'remark-math';
@@ -455,18 +455,6 @@ function __generator(thisArg, body) {
455
455
  }
456
456
  }
457
457
 
458
- function __values(o) {
459
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
460
- if (m) return m.call(o);
461
- if (o && typeof o.length === "number") return {
462
- next: function () {
463
- if (o && i >= o.length) o = void 0;
464
- return { value: o && o[i++], done: !o };
465
- }
466
- };
467
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
468
- }
469
-
470
458
  function __read(o, n) {
471
459
  var m = typeof Symbol === "function" && o[Symbol.iterator];
472
460
  if (!m) return o;
@@ -549,7 +537,7 @@ var CodeHighlight = function (_a) {
549
537
  if (language === "mermaid") {
550
538
  // 动态导入 MermaidRenderer 组件
551
539
  var MermaidRenderer = /*#__PURE__*/React__default.lazy(function () {
552
- return import('./MermaidRenderer-6f071d8e.js').catch(function () {
540
+ return import('./MermaidRenderer-680adac3.js').catch(function () {
553
541
  return {
554
542
  default: function () {
555
543
  return /*#__PURE__*/jsx("div", {});
@@ -617,39 +605,71 @@ var CodeHighlight = function (_a) {
617
605
  var Think = function (_a) {
618
606
  var content = _a.content,
619
607
  children = _a.children;
608
+ var _b = __read(useState(true), 2),
609
+ isExpanded = _b[0],
610
+ setIsExpanded = _b[1];
620
611
  var thinkContent = content || children;
621
612
  if (!thinkContent) {
622
613
  return /*#__PURE__*/jsx("div", {});
623
614
  }
624
- return /*#__PURE__*/jsx("div", {
625
- style: {
626
- marginBottom: 12
627
- },
628
- children: /*#__PURE__*/jsxs("details", {
629
- open: true,
630
- children: [/*#__PURE__*/jsx("summary", {
631
- style: {
632
- fontWeight: 'bold',
633
- cursor: 'pointer',
634
- padding: '8px',
635
- backgroundColor: '#f0f0f0',
636
- borderRadius: '4px',
637
- marginBottom: '8px'
638
- },
639
- children: "\uD83E\uDDE0 AI \u601D\u8003\u8FC7\u7A0B"
640
- }), /*#__PURE__*/jsx("blockquote", {
641
- style: {
642
- borderLeft: '3px solid #2196f3',
643
- color: '#666',
644
- paddingLeft: 12,
645
- fontStyle: 'italic',
646
- marginBottom: 0,
647
- backgroundColor: '#f9f9f9',
648
- padding: '8px'
649
- },
650
- children: typeof thinkContent === 'string' ? decodeURIComponent(thinkContent) : thinkContent
615
+ return /*#__PURE__*/jsxs("div", {
616
+ className: "funq-think border rounded-lg p-3 mb-3 bg-blue-50 border-blue-200",
617
+ children: [/*#__PURE__*/jsxs("div", {
618
+ className: "flex items-center justify-between cursor-pointer",
619
+ onClick: function () {
620
+ return setIsExpanded(!isExpanded);
621
+ },
622
+ children: [/*#__PURE__*/jsxs("div", {
623
+ className: "flex items-center gap-2",
624
+ children: [/*#__PURE__*/jsx("div", {
625
+ className: "w-4 h-4 rounded-full bg-blue-500 flex items-center justify-center",
626
+ children: /*#__PURE__*/jsx("svg", {
627
+ className: "w-3 h-3 text-white",
628
+ fill: "none",
629
+ stroke: "currentColor",
630
+ viewBox: "0 0 24 24",
631
+ children: /*#__PURE__*/jsx("path", {
632
+ strokeLinecap: "round",
633
+ strokeLinejoin: "round",
634
+ strokeWidth: "2",
635
+ d: "M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"
636
+ })
637
+ })
638
+ }), /*#__PURE__*/jsx("span", {
639
+ className: "font-medium text-sm",
640
+ children: "AI \u601D\u8003\u8FC7\u7A0B"
641
+ })]
642
+ }), /*#__PURE__*/jsx("div", {
643
+ className: "w-4 h-4 text-muted-foreground",
644
+ children: isExpanded ? /*#__PURE__*/jsx("svg", {
645
+ fill: "none",
646
+ stroke: "currentColor",
647
+ viewBox: "0 0 24 24",
648
+ children: /*#__PURE__*/jsx("path", {
649
+ strokeLinecap: "round",
650
+ strokeLinejoin: "round",
651
+ strokeWidth: "2",
652
+ d: "M5 15l7-7 7 7"
653
+ })
654
+ }) : /*#__PURE__*/jsx("svg", {
655
+ fill: "none",
656
+ stroke: "currentColor",
657
+ viewBox: "0 0 24 24",
658
+ children: /*#__PURE__*/jsx("path", {
659
+ strokeLinecap: "round",
660
+ strokeLinejoin: "round",
661
+ strokeWidth: "2",
662
+ d: "M19 9l-7 7-7-7"
663
+ })
664
+ })
651
665
  })]
652
- })
666
+ }), isExpanded && /*#__PURE__*/jsx("div", {
667
+ className: "mt-3 pt-3 border-t border-blue-200",
668
+ children: /*#__PURE__*/jsx("blockquote", {
669
+ className: "text-sm text-blue-800 bg-blue-100 p-2 rounded",
670
+ children: typeof thinkContent === 'string' ? decodeURIComponent(thinkContent) : thinkContent
671
+ })
672
+ })]
653
673
  });
654
674
  };
655
675
 
@@ -790,7 +810,8 @@ var PreComponent = function (props) {
790
810
  });
791
811
  };
792
812
  var BuiltInComponents = {
793
- AC_DS_THINK: Think,
813
+ _THINK: Think,
814
+ // _TOOL_CALL: ToolCall,
794
815
  pre: PreComponent,
795
816
  code: CodeComponent,
796
817
  p: PComponent,
@@ -836,7 +857,7 @@ function MdxLayout(_a) {
836
857
 
837
858
  var THINK_BEGIN_TAG = '<think>';
838
859
  var THINK_END_TAG = '</think>';
839
- var CUSTOMER_THINK_COMPONENT_DISPLAY = 'AC_DS_THINK';
860
+ var CUSTOMER_THINK_COMPONENT_DISPLAY = '_THINK';
840
861
  function fixMDXContent(content) {
841
862
  // 替换中文括号为英文括号
842
863
  return content.replace(/\\\[/g, '$$').replace(/\\\]/g, '$$')
@@ -913,12 +934,11 @@ function formatProps(props) {
913
934
  }
914
935
  function renderMdx(mdxContent, scope, registeredComponents) {
915
936
  return __awaiter(this, void 0, void 0, function () {
916
- var componentTagRegex, usedComponents, match, _registeredComponents, usedComponents_1, usedComponents_1_1, component, vf, XComponent, e_1;
917
- var e_2, _a;
918
- return __generator(this, function (_b) {
919
- switch (_b.label) {
937
+ var componentTagRegex, usedComponents, match, vf, XComponent;
938
+ return __generator(this, function (_a) {
939
+ switch (_a.label) {
920
940
  case 0:
921
- _b.trys.push([0, 3,, 4]);
941
+ _a.trys.push([0, 3,, 4]);
922
942
  renderTimer && clearTimeout(renderTimer);
923
943
  componentTagRegex = /<([A-Z][a-zA-Z]*)\b/g;
924
944
  usedComponents = new Set();
@@ -926,25 +946,6 @@ function renderMdx(mdxContent, scope, registeredComponents) {
926
946
  while ((match = componentTagRegex.exec(mdxContent)) !== null) {
927
947
  usedComponents.add(match[1]);
928
948
  }
929
- _registeredComponents = new Set(Object.keys(registeredComponents));
930
- try {
931
- for (usedComponents_1 = __values(usedComponents), usedComponents_1_1 = usedComponents_1.next(); !usedComponents_1_1.done; usedComponents_1_1 = usedComponents_1.next()) {
932
- component = usedComponents_1_1.value;
933
- if (!_registeredComponents.has(component)) {
934
- throw new Error("Component ".concat(component, " is used but not registered in the components object."));
935
- }
936
- }
937
- } catch (e_2_1) {
938
- e_2 = {
939
- error: e_2_1
940
- };
941
- } finally {
942
- try {
943
- if (usedComponents_1_1 && !usedComponents_1_1.done && (_a = usedComponents_1.return)) _a.call(usedComponents_1);
944
- } finally {
945
- if (e_2) throw e_2.error;
946
- }
947
- }
948
949
  return [4 /*yield*/, compile(mdxContent, {
949
950
  outputFormat: "function-body",
950
951
  remarkPlugins: [[RemarkMath, {
@@ -957,29 +958,27 @@ function renderMdx(mdxContent, scope, registeredComponents) {
957
958
  }]]
958
959
  })];
959
960
  case 1:
960
- vf = _b.sent();
961
+ vf = _a.sent();
961
962
  return [4 /*yield*/, run(vf, __assign(__assign(__assign({}, runtime), scope), {
962
963
  Fragment: MdxLayout
963
964
  }))];
964
965
  case 2:
965
- XComponent = _b.sent().default;
966
+ XComponent = _a.sent().default;
966
967
  return [2 /*return*/, /*#__PURE__*/React.createElement(XComponent, {
967
968
  components: registeredComponents,
968
969
  scope: scope
969
970
  })];
970
971
  case 3:
971
- e_1 = _b.sent();
972
+ _a.sent();
972
973
  return [2 /*return*/, new Promise(function (resolve) {
973
974
  renderTimer = setTimeout(function () {
974
- console.log(e_1, 'e');
975
- console.log(mdxContent, 'mdxContent');
976
975
  resolve(/*#__PURE__*/React.createElement('div', {
977
976
  style: {
978
977
  backgroundColor: 'transparent'
979
978
  }
980
979
  }, mdxContent));
981
980
  clearTimeout(renderTimer); // 清理定时器
982
- }, 1000); // 1秒延迟
981
+ }, 2000); // 1秒延迟
983
982
  })];
984
983
  case 4:
985
984
  return [2 /*return*/];
@@ -1136,11 +1135,12 @@ function ReactAIRenderer(_a) {
1136
1135
  var content = _a.content,
1137
1136
  _b = _a.scope,
1138
1137
  scope = _b === void 0 ? {} : _b,
1139
- components = _a.components,
1138
+ _c = _a.components,
1139
+ components = _c === void 0 ? {} : _c,
1140
1140
  children = _a.children,
1141
- _c = _a.componentHandlers,
1142
- componentHandlers = _c === void 0 ? [] : _c;
1143
- content = content || children;
1141
+ _d = _a.componentHandlers,
1142
+ componentHandlers = _d === void 0 ? [] : _d;
1143
+ content = content || children || '';
1144
1144
  var allComponents = __assign(__assign({}, BuiltInComponents), components);
1145
1145
  // 修复:确保 components 是一个对象后再使用 Object.entries
1146
1146
  var allComponentHandlers = __spreadArray(__spreadArray([], __read(components ? Object.entries(components).filter(function (_a) {
@@ -1160,11 +1160,11 @@ function ReactAIRenderer(_a) {
1160
1160
  selfClosing: selfClosing
1161
1161
  };
1162
1162
  }) : []), false), __read(componentHandlers), false);
1163
- var _d = __read(useState(null), 2),
1164
- component = _d[0],
1165
- setComponent = _d[1];
1163
+ var _e = __read(useState(null), 2),
1164
+ component = _e[0],
1165
+ setComponent = _e[1];
1166
1166
  var parser = new MDXStreamingParser(allComponentHandlers);
1167
- var mdxContent = content;
1167
+ var mdxContent = content || '';
1168
1168
  useEffect(function () {
1169
1169
  var parseMDX = function () {
1170
1170
  return __awaiter(_this, void 0, void 0, function () {
@@ -1226,64 +1226,167 @@ function ReactAIRenderer(_a) {
1226
1226
  }
1227
1227
 
1228
1228
  var ToolCall = function (_a) {
1229
- var name = _a.name,
1230
- args = _a.args,
1229
+ var toolCall = _a.toolCall,
1231
1230
  children = _a.children;
1231
+ var _b = __read(useState(false), 2),
1232
+ isExpanded = _b[0],
1233
+ setIsExpanded = _b[1];
1234
+ var getStateIcon = function () {
1235
+ switch (toolCall.state) {
1236
+ case 'loading':
1237
+ return /*#__PURE__*/jsx("div", {
1238
+ className: "w-4 h-4 animate-spin border-2 border-blue-500 border-t-transparent rounded-full"
1239
+ });
1240
+ case 'done':
1241
+ return /*#__PURE__*/jsx("div", {
1242
+ className: "w-4 h-4 rounded-full bg-green-500 flex items-center justify-center",
1243
+ children: /*#__PURE__*/jsx("svg", {
1244
+ className: "w-3 h-3 text-white",
1245
+ fill: "none",
1246
+ stroke: "currentColor",
1247
+ viewBox: "0 0 24 24",
1248
+ children: /*#__PURE__*/jsx("path", {
1249
+ strokeLinecap: "round",
1250
+ strokeLinejoin: "round",
1251
+ strokeWidth: "2",
1252
+ d: "M5 13l4 4L19 7"
1253
+ })
1254
+ })
1255
+ });
1256
+ case 'error':
1257
+ return /*#__PURE__*/jsx("div", {
1258
+ className: "w-4 h-4 rounded-full bg-red-500 flex items-center justify-center",
1259
+ children: /*#__PURE__*/jsx("svg", {
1260
+ className: "w-3 h-3 text-white",
1261
+ fill: "none",
1262
+ stroke: "currentColor",
1263
+ viewBox: "0 0 24 24",
1264
+ children: /*#__PURE__*/jsx("path", {
1265
+ strokeLinecap: "round",
1266
+ strokeLinejoin: "round",
1267
+ strokeWidth: "2",
1268
+ d: "M6 18L18 6M6 6l12 12"
1269
+ })
1270
+ })
1271
+ });
1272
+ default:
1273
+ return /*#__PURE__*/jsx("div", {
1274
+ className: "w-4 h-4 animate-spin border-2 border-blue-500 border-t-transparent rounded-full"
1275
+ });
1276
+ }
1277
+ };
1278
+ var getStateText = function () {
1279
+ switch (toolCall.state) {
1280
+ case 'loading':
1281
+ return '执行中...';
1282
+ case 'done':
1283
+ return '执行完成';
1284
+ case 'error':
1285
+ return '执行出错';
1286
+ default:
1287
+ return '执行中...';
1288
+ }
1289
+ };
1290
+ var getStateClass = function () {
1291
+ switch (toolCall.state) {
1292
+ case 'loading':
1293
+ return 'bg-blue-50 border-blue-200';
1294
+ case 'done':
1295
+ return 'bg-green-50 border-green-200';
1296
+ case 'error':
1297
+ return 'bg-red-50 border-red-200';
1298
+ default:
1299
+ return 'bg-blue-50 border-blue-200';
1300
+ }
1301
+ };
1302
+ // 解析工具调用结果,如果是JSON字符串则格式化显示
1303
+ var formatResult = function (result) {
1304
+ if (!result) return result;
1305
+ try {
1306
+ // 尝试解析为JSON
1307
+ var parsed = JSON.parse(result);
1308
+ return JSON.stringify(parsed, null, 2);
1309
+ } catch (e) {
1310
+ // 如果不是有效的JSON,直接返回原始字符串
1311
+ return result;
1312
+ }
1313
+ };
1232
1314
  return /*#__PURE__*/jsxs("div", {
1233
- style: {
1234
- border: '1px solid #e0e0e0',
1235
- borderRadius: '4px',
1236
- margin: '8px 0',
1237
- backgroundColor: '#fafafa'
1238
- },
1315
+ className: "funq-tool-call border rounded-lg p-3 mb-3 ".concat(getStateClass()),
1239
1316
  children: [/*#__PURE__*/jsxs("div", {
1240
- style: {
1241
- padding: '8px',
1242
- backgroundColor: '#f5f5f5',
1243
- borderBottom: '1px solid #e0e0e0',
1244
- fontWeight: 'bold',
1245
- display: 'flex',
1246
- alignItems: 'center'
1317
+ className: "flex items-center justify-between cursor-pointer",
1318
+ onClick: function () {
1319
+ return setIsExpanded(!isExpanded);
1247
1320
  },
1248
- children: [/*#__PURE__*/jsx("span", {
1249
- style: {
1250
- marginRight: '8px'
1251
- },
1252
- children: "\uD83D\uDD27"
1253
- }), /*#__PURE__*/jsxs("span", {
1254
- children: ["\u5DE5\u5177\u8C03\u7528: ", name]
1321
+ children: [/*#__PURE__*/jsxs("div", {
1322
+ className: "flex items-center gap-2",
1323
+ children: [getStateIcon(), /*#__PURE__*/jsxs("span", {
1324
+ className: "font-medium text-sm",
1325
+ children: ["\u5DE5\u5177\u8C03\u7528: ", toolCall.toolCallName]
1326
+ }), /*#__PURE__*/jsx("span", {
1327
+ className: "text-xs text-muted-foreground",
1328
+ children: getStateText()
1329
+ })]
1330
+ }), /*#__PURE__*/jsxs("div", {
1331
+ className: "flex items-center gap-2",
1332
+ children: [toolCall.startTime && /*#__PURE__*/jsxs("span", {
1333
+ className: "text-xs text-muted-foreground",
1334
+ children: ["\u5F00\u59CB: ", new Date(toolCall.startTime).toLocaleTimeString()]
1335
+ }), toolCall.endTime && toolCall.executionTime && /*#__PURE__*/jsxs("span", {
1336
+ className: "text-xs text-muted-foreground",
1337
+ children: ["\u8017\u65F6: ", toolCall.executionTime, "ms"]
1338
+ }), /*#__PURE__*/jsx("div", {
1339
+ className: "w-4 h-4 text-muted-foreground",
1340
+ children: isExpanded ? /*#__PURE__*/jsx("svg", {
1341
+ fill: "none",
1342
+ stroke: "currentColor",
1343
+ viewBox: "0 0 24 24",
1344
+ children: /*#__PURE__*/jsx("path", {
1345
+ strokeLinecap: "round",
1346
+ strokeLinejoin: "round",
1347
+ strokeWidth: "2",
1348
+ d: "M5 15l7-7 7 7"
1349
+ })
1350
+ }) : /*#__PURE__*/jsx("svg", {
1351
+ fill: "none",
1352
+ stroke: "currentColor",
1353
+ viewBox: "0 0 24 24",
1354
+ children: /*#__PURE__*/jsx("path", {
1355
+ strokeLinecap: "round",
1356
+ strokeLinejoin: "round",
1357
+ strokeWidth: "2",
1358
+ d: "M19 9l-7 7-7-7"
1359
+ })
1360
+ })
1361
+ })]
1255
1362
  })]
1256
- }), args && /*#__PURE__*/jsxs("div", {
1257
- style: {
1258
- padding: '8px'
1259
- },
1260
- children: [/*#__PURE__*/jsx("div", {
1261
- style: {
1262
- fontWeight: 'bold',
1263
- marginBottom: '4px'
1264
- },
1265
- children: "\u53C2\u6570:"
1266
- }), /*#__PURE__*/jsx("pre", {
1267
- style: {
1268
- backgroundColor: '#f0f0f0',
1269
- padding: '8px',
1270
- borderRadius: '4px',
1271
- overflowX: 'auto',
1272
- fontSize: '12px'
1273
- },
1274
- children: JSON.stringify(args, null, 2)
1275
- })]
1276
- }), children && /*#__PURE__*/jsxs("div", {
1277
- style: {
1278
- padding: '8px'
1279
- },
1280
- children: [/*#__PURE__*/jsx("div", {
1281
- style: {
1282
- fontWeight: 'bold',
1283
- marginBottom: '4px'
1284
- },
1285
- children: "\u7ED3\u679C:"
1286
- }), /*#__PURE__*/jsx("div", {
1363
+ }), isExpanded && /*#__PURE__*/jsxs("div", {
1364
+ className: "mt-3 pt-3 border-t border-border",
1365
+ children: [toolCall.toolCallArgs && /*#__PURE__*/jsxs("div", {
1366
+ className: "mb-3",
1367
+ children: [/*#__PURE__*/jsx("h4", {
1368
+ className: "text-sm font-medium mb-1",
1369
+ children: "\u53C2\u6570:"
1370
+ }), /*#__PURE__*/jsx("pre", {
1371
+ className: "text-xs bg-muted p-2 rounded overflow-x-auto break-words whitespace-pre-wrap",
1372
+ children: toolCall.toolCallArgs
1373
+ })]
1374
+ }), (toolCall.delta || toolCall.state === 'error') && /*#__PURE__*/jsxs("div", {
1375
+ children: [/*#__PURE__*/jsx("h4", {
1376
+ className: "text-sm font-medium mb-1",
1377
+ children: "\u7ED3\u679C:"
1378
+ }), /*#__PURE__*/jsx("div", {
1379
+ className: "text-sm p-2 rounded ".concat(toolCall.state === 'error' ? 'bg-red-100 text-red-800' : 'bg-muted'),
1380
+ children: toolCall.state === 'error' ? /*#__PURE__*/jsx("pre", {
1381
+ className: "whitespace-pre-wrap break-words overflow-x-auto",
1382
+ children: formatResult(toolCall.delta) || '工具执行出错'
1383
+ }) : /*#__PURE__*/jsx("pre", {
1384
+ className: "whitespace-pre-wrap break-words overflow-x-auto",
1385
+ children: formatResult(toolCall.delta)
1386
+ })
1387
+ })]
1388
+ }), children && /*#__PURE__*/jsx("div", {
1389
+ className: "mt-2",
1287
1390
  children: children
1288
1391
  })]
1289
1392
  })]
@@ -1293,4 +1396,3 @@ var ToolCall = function (_a) {
1293
1396
  // 导出 MDXStreamingParser 类
1294
1397
 
1295
1398
  export { MDXStreamingParser as M, ReactAIRenderer as R, Think as T, __read as _, __awaiter as a, __generator as b, ToolCall as c };
1296
- //# sourceMappingURL=index-415b51ad.js.map