react-ai-renderer 0.1.2 → 0.1.3

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 (196) hide show
  1. package/dist/{MermaidRenderer-0ef71453.js → MermaidRenderer-07b34bcf.js} +2 -2
  2. package/dist/{MermaidRenderer-321bfe50.js.map → MermaidRenderer-07b34bcf.js.map} +1 -1
  3. package/dist/{MermaidRenderer-321bfe50.js → MermaidRenderer-0aacea2f.js} +2 -2
  4. package/dist/{MermaidRenderer-0ef71453.js.map → MermaidRenderer-0aacea2f.js.map} +1 -1
  5. package/dist/{MermaidRenderer-4bae11d6.js → MermaidRenderer-1c06834c.js} +2 -2
  6. package/dist/{MermaidRenderer-325a9dee.js.map → MermaidRenderer-1c06834c.js.map} +1 -1
  7. package/dist/{MermaidRenderer-325a9dee.js → MermaidRenderer-22b8cb81.js} +2 -2
  8. package/dist/{MermaidRenderer-4bae11d6.js.map → MermaidRenderer-22b8cb81.js.map} +1 -1
  9. package/dist/MermaidRenderer-2438ceb1.js +170 -0
  10. package/dist/MermaidRenderer-2438ceb1.js.map +1 -0
  11. package/dist/MermaidRenderer-2f6d93a2.js +170 -0
  12. package/dist/MermaidRenderer-2f6d93a2.js.map +1 -0
  13. package/dist/MermaidRenderer-447e20f0.js +170 -0
  14. package/dist/MermaidRenderer-447e20f0.js.map +1 -0
  15. package/dist/MermaidRenderer-456abbe8.js +170 -0
  16. package/dist/MermaidRenderer-456abbe8.js.map +1 -0
  17. package/dist/MermaidRenderer-45a1e235.js +170 -0
  18. package/dist/MermaidRenderer-45a1e235.js.map +1 -0
  19. package/dist/{MermaidRenderer-653a4dab.js → MermaidRenderer-4b75a3e5.js} +2 -2
  20. package/dist/{MermaidRenderer-653a4dab.js.map → MermaidRenderer-4b75a3e5.js.map} +1 -1
  21. package/dist/{MermaidRenderer-67edae8e.js → MermaidRenderer-59cd2aac.js} +2 -2
  22. package/dist/{MermaidRenderer-67edae8e.js.map → MermaidRenderer-59cd2aac.js.map} +1 -1
  23. package/dist/{MermaidRenderer-13e4a89a.js → MermaidRenderer-61954263.js} +2 -2
  24. package/dist/{MermaidRenderer-75832c15.js.map → MermaidRenderer-61954263.js.map} +1 -1
  25. package/dist/{MermaidRenderer-a25ae84f.js → MermaidRenderer-62cbf217.js} +1 -1
  26. package/dist/{MermaidRenderer-13e4a89a.js.map → MermaidRenderer-62cbf217.js.map} +1 -1
  27. package/dist/MermaidRenderer-6323359c.js +170 -0
  28. package/dist/MermaidRenderer-6323359c.js.map +1 -0
  29. package/dist/{MermaidRenderer-d8836800.js → MermaidRenderer-680adac3.js} +1 -1
  30. package/dist/MermaidRenderer-680adac3.js.map +1 -0
  31. package/dist/{MermaidRenderer-75832c15.js → MermaidRenderer-771db0f2.js} +2 -2
  32. package/dist/MermaidRenderer-771db0f2.js.map +1 -0
  33. package/dist/MermaidRenderer-7a5bd531.js +170 -0
  34. package/dist/MermaidRenderer-7a5bd531.js.map +1 -0
  35. package/dist/MermaidRenderer-94fceb26.js +172 -0
  36. package/dist/MermaidRenderer-94fceb26.js.map +1 -0
  37. package/dist/MermaidRenderer-a6a464ec.js +172 -0
  38. package/dist/MermaidRenderer-a6a464ec.js.map +1 -0
  39. package/dist/MermaidRenderer-a8c58389.js +172 -0
  40. package/dist/MermaidRenderer-a8c58389.js.map +1 -0
  41. package/dist/MermaidRenderer-b23c2eec.js +172 -0
  42. package/dist/MermaidRenderer-b23c2eec.js.map +1 -0
  43. package/dist/MermaidRenderer-b30dda58.js +170 -0
  44. package/dist/MermaidRenderer-b30dda58.js.map +1 -0
  45. package/dist/MermaidRenderer-b65fed60.js +172 -0
  46. package/dist/MermaidRenderer-b65fed60.js.map +1 -0
  47. package/dist/MermaidRenderer-c594187b.js +172 -0
  48. package/dist/MermaidRenderer-c594187b.js.map +1 -0
  49. package/dist/MermaidRenderer-c5f51ccf.js +172 -0
  50. package/dist/MermaidRenderer-c5f51ccf.js.map +1 -0
  51. package/dist/MermaidRenderer-cf69f9fc.js +172 -0
  52. package/dist/MermaidRenderer-cf69f9fc.js.map +1 -0
  53. package/dist/MermaidRenderer-fa15e3c7.js +172 -0
  54. package/dist/MermaidRenderer-fa15e3c7.js.map +1 -0
  55. package/dist/MermaidRenderer-fc75606f.js +170 -0
  56. package/dist/MermaidRenderer-fc75606f.js.map +1 -0
  57. package/dist/index-27d5e758.js +1399 -0
  58. package/dist/index-27d5e758.js.map +1 -0
  59. package/dist/{index-922bbd30.js → index-2b2eb026.js} +195 -141
  60. package/dist/{index-bb96fdaf.js.map → index-2b2eb026.js.map} +1 -1
  61. package/dist/{index-4592abf8.js → index-34e4d478.js} +31 -53
  62. package/dist/index-34e4d478.js.map +1 -0
  63. package/dist/index-4881fdf3.js +1458 -0
  64. package/dist/index-4881fdf3.js.map +1 -0
  65. package/dist/{index-283b43ef.js → index-4d8e81d1.js} +97 -118
  66. package/dist/index-4d8e81d1.js.map +1 -0
  67. package/dist/{index-3de28f18.js → index-4f25eb16.js} +19 -49
  68. package/dist/index-4f25eb16.js.map +1 -0
  69. package/dist/index-53d781f0.js +1476 -0
  70. package/dist/index-53d781f0.js.map +1 -0
  71. package/dist/index-543584d8.js +1398 -0
  72. package/dist/index-543584d8.js.map +1 -0
  73. package/dist/index-54c78282.js +1474 -0
  74. package/dist/index-54c78282.js.map +1 -0
  75. package/dist/index-57a0454a.js +1441 -0
  76. package/dist/index-57a0454a.js.map +1 -0
  77. package/dist/index-58ab9759.js +1424 -0
  78. package/dist/index-58ab9759.js.map +1 -0
  79. package/dist/index-58ee3084.js +1399 -0
  80. package/dist/index-58ee3084.js.map +1 -0
  81. package/dist/{index-bb96fdaf.js → index-5edd5559.js} +20 -53
  82. package/dist/index-5edd5559.js.map +1 -0
  83. package/dist/{index-415b51ad.js → index-65168e57.js} +20 -53
  84. package/dist/index-65168e57.js.map +1 -0
  85. package/dist/index-66021d90.js +1431 -0
  86. package/dist/index-66021d90.js.map +1 -0
  87. package/dist/index-71e57dce.js +1425 -0
  88. package/dist/index-71e57dce.js.map +1 -0
  89. package/dist/{index-ae31bd04.js → index-742d8be6.js} +97 -119
  90. package/dist/index-742d8be6.js.map +1 -0
  91. package/dist/{index-c0acef6b.js → index-813be4d3.js} +254 -159
  92. package/dist/index-813be4d3.js.map +1 -0
  93. package/dist/index-82c906b1.js +1448 -0
  94. package/dist/index-82c906b1.js.map +1 -0
  95. package/dist/index-a7fb8ff9.js +1432 -0
  96. package/dist/index-a7fb8ff9.js.map +1 -0
  97. package/dist/{index-c6ab333d.js → index-b4765fbd.js} +19 -49
  98. package/dist/index-b4765fbd.js.map +1 -0
  99. package/dist/{index-fdaa9757.js → index-b78ff7b5.js} +254 -168
  100. package/dist/index-b78ff7b5.js.map +1 -0
  101. package/dist/index-c56180b9.js +1425 -0
  102. package/dist/index-c56180b9.js.map +1 -0
  103. package/dist/{index-7e8dc866.js → index-d5855b9f.js} +195 -132
  104. package/dist/{index-415b51ad.js.map → index-d5855b9f.js.map} +1 -1
  105. package/dist/{index-1d051ba8.js → index-d63be97b.js} +31 -54
  106. package/dist/index-d63be97b.js.map +1 -0
  107. package/dist/index-dd9fe728.js +1457 -0
  108. package/dist/index-dd9fe728.js.map +1 -0
  109. package/dist/index-e0ce1691.js +1467 -0
  110. package/dist/index-e0ce1691.js.map +1 -0
  111. package/dist/index-fadb7b0b.js +1450 -0
  112. package/dist/index-fadb7b0b.js.map +1 -0
  113. package/dist/index.d.ts +30 -9
  114. package/dist/index.es.js +1 -1
  115. package/dist/index.js +1 -1
  116. package/package.json +1 -1
  117. package/dist/MermaidRenderer-6237d7da.js +0 -170
  118. package/dist/MermaidRenderer-6237d7da.js.map +0 -1
  119. package/dist/MermaidRenderer-6f071d8e.js +0 -170
  120. package/dist/MermaidRenderer-6f071d8e.js.map +0 -1
  121. package/dist/MermaidRenderer-7cb138d1.js +0 -170
  122. package/dist/MermaidRenderer-7cb138d1.js.map +0 -1
  123. package/dist/MermaidRenderer-8a8fb725.js +0 -172
  124. package/dist/MermaidRenderer-8a8fb725.js.map +0 -1
  125. package/dist/MermaidRenderer-91a0a7d8.js +0 -170
  126. package/dist/MermaidRenderer-91a0a7d8.js.map +0 -1
  127. package/dist/MermaidRenderer-9ff856f3.js +0 -172
  128. package/dist/MermaidRenderer-9ff856f3.js.map +0 -1
  129. package/dist/MermaidRenderer-a25ae84f.js.map +0 -1
  130. package/dist/MermaidRenderer-c3014102.js +0 -172
  131. package/dist/MermaidRenderer-c3014102.js.map +0 -1
  132. package/dist/MermaidRenderer-c664aa66.js +0 -170
  133. package/dist/MermaidRenderer-c664aa66.js.map +0 -1
  134. package/dist/MermaidRenderer-d1518f28.js +0 -172
  135. package/dist/MermaidRenderer-d1518f28.js.map +0 -1
  136. package/dist/MermaidRenderer-d7545a7e.js +0 -172
  137. package/dist/MermaidRenderer-d7545a7e.js.map +0 -1
  138. package/dist/MermaidRenderer-d8836800.js.map +0 -1
  139. package/dist/MermaidRenderer-d9c8351a.js +0 -172
  140. package/dist/MermaidRenderer-d9c8351a.js.map +0 -1
  141. package/dist/MermaidRenderer-dc0ac92e.js +0 -170
  142. package/dist/MermaidRenderer-dc0ac92e.js.map +0 -1
  143. package/dist/MermaidRenderer-e549ab85.js +0 -172
  144. package/dist/MermaidRenderer-e549ab85.js.map +0 -1
  145. package/dist/MermaidRenderer-e5d81a6f.js +0 -172
  146. package/dist/MermaidRenderer-e5d81a6f.js.map +0 -1
  147. package/dist/MermaidRenderer-e82f36e4.js +0 -172
  148. package/dist/MermaidRenderer-e82f36e4.js.map +0 -1
  149. package/dist/MermaidRenderer-f04366c1.js +0 -170
  150. package/dist/MermaidRenderer-f04366c1.js.map +0 -1
  151. package/dist/MermaidRenderer-f6473da3.js +0 -170
  152. package/dist/MermaidRenderer-f6473da3.js.map +0 -1
  153. package/dist/MermaidRenderer-f82d0d11.js +0 -170
  154. package/dist/MermaidRenderer-f82d0d11.js.map +0 -1
  155. package/dist/index-02f4473f.js +0 -1313
  156. package/dist/index-02f4473f.js.map +0 -1
  157. package/dist/index-172582eb.js +0 -1294
  158. package/dist/index-172582eb.js.map +0 -1
  159. package/dist/index-1d051ba8.js.map +0 -1
  160. package/dist/index-283b43ef.js.map +0 -1
  161. package/dist/index-2d979ad5.js +0 -1314
  162. package/dist/index-2d979ad5.js.map +0 -1
  163. package/dist/index-349401d2.js +0 -1288
  164. package/dist/index-349401d2.js.map +0 -1
  165. package/dist/index-398258c5.js +0 -1314
  166. package/dist/index-398258c5.js.map +0 -1
  167. package/dist/index-3cf82be4.js +0 -1287
  168. package/dist/index-3cf82be4.js.map +0 -1
  169. package/dist/index-3de28f18.js.map +0 -1
  170. package/dist/index-4592abf8.js.map +0 -1
  171. package/dist/index-4edeb553.js +0 -1313
  172. package/dist/index-4edeb553.js.map +0 -1
  173. package/dist/index-534d3bce.js +0 -1312
  174. package/dist/index-534d3bce.js.map +0 -1
  175. package/dist/index-6ceb7256.js +0 -1287
  176. package/dist/index-6ceb7256.js.map +0 -1
  177. package/dist/index-7e8dc866.js.map +0 -1
  178. package/dist/index-896de550.js +0 -1313
  179. package/dist/index-896de550.js.map +0 -1
  180. package/dist/index-8dbf398a.js +0 -1313
  181. package/dist/index-8dbf398a.js.map +0 -1
  182. package/dist/index-922bbd30.js.map +0 -1
  183. package/dist/index-a5a2c748.js +0 -1288
  184. package/dist/index-a5a2c748.js.map +0 -1
  185. package/dist/index-abed2ed7.js +0 -1286
  186. package/dist/index-abed2ed7.js.map +0 -1
  187. package/dist/index-ae31bd04.js.map +0 -1
  188. package/dist/index-b0cab34f.js +0 -1287
  189. package/dist/index-b0cab34f.js.map +0 -1
  190. package/dist/index-c0acef6b.js.map +0 -1
  191. package/dist/index-c6ab333d.js.map +0 -1
  192. package/dist/index-d4f12a68.js +0 -1287
  193. package/dist/index-d4f12a68.js.map +0 -1
  194. package/dist/index-e07ca144.js +0 -1320
  195. package/dist/index-e07ca144.js.map +0 -1
  196. package/dist/index-fdaa9757.js.map +0 -1
@@ -475,18 +475,6 @@ function __generator(thisArg, body) {
475
475
  }
476
476
  }
477
477
 
478
- function __values(o) {
479
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
480
- if (m) return m.call(o);
481
- if (o && typeof o.length === "number") return {
482
- next: function () {
483
- if (o && i >= o.length) o = void 0;
484
- return { value: o && o[i++], done: !o };
485
- }
486
- };
487
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
488
- }
489
-
490
478
  function __read(o, n) {
491
479
  var m = typeof Symbol === "function" && o[Symbol.iterator];
492
480
  if (!m) return o;
@@ -569,7 +557,7 @@ var CodeHighlight = function (_a) {
569
557
  if (language === "mermaid") {
570
558
  // 动态导入 MermaidRenderer 组件
571
559
  var MermaidRenderer = /*#__PURE__*/React.lazy(function () {
572
- return Promise.resolve().then(function () { return require('./MermaidRenderer-8a8fb725.js'); }).catch(function () {
560
+ return Promise.resolve().then(function () { return require('./MermaidRenderer-61954263.js'); }).catch(function () {
573
561
  return {
574
562
  default: function () {
575
563
  return /*#__PURE__*/runtime.jsx("div", {});
@@ -637,57 +625,239 @@ var CodeHighlight = function (_a) {
637
625
  var Think = function (_a) {
638
626
  var content = _a.content,
639
627
  children = _a.children;
628
+ var _b = __read(React.useState(true), 2),
629
+ isExpanded = _b[0],
630
+ setIsExpanded = _b[1];
640
631
  var thinkContent = content || children;
641
632
  if (!thinkContent) {
642
633
  return /*#__PURE__*/runtime.jsx("div", {});
643
634
  }
644
- return /*#__PURE__*/runtime.jsx("div", {
645
- style: {
646
- marginBottom: 12
647
- },
648
- children: /*#__PURE__*/runtime.jsxs("details", {
649
- open: true,
650
- children: [/*#__PURE__*/runtime.jsx("summary", {
651
- style: {
652
- fontWeight: 'bold',
653
- cursor: 'pointer',
654
- padding: '8px',
655
- backgroundColor: '#f0f0f0',
656
- borderRadius: '4px',
657
- marginBottom: '8px'
658
- },
659
- children: "\uD83E\uDDE0 AI \u601D\u8003\u8FC7\u7A0B"
660
- }), /*#__PURE__*/runtime.jsx("blockquote", {
661
- style: {
662
- borderLeft: '3px solid #2196f3',
663
- color: '#666',
664
- paddingLeft: 12,
665
- fontStyle: 'italic',
666
- marginBottom: 0,
667
- backgroundColor: '#f9f9f9',
668
- padding: '8px'
669
- },
670
- children: typeof thinkContent === 'string' ? decodeURIComponent(thinkContent) : thinkContent
635
+ return /*#__PURE__*/runtime.jsxs("div", {
636
+ className: "funq-think border rounded-lg p-3 mb-3 bg-blue-50 border-blue-200",
637
+ children: [/*#__PURE__*/runtime.jsxs("div", {
638
+ className: "flex items-center justify-between cursor-pointer",
639
+ onClick: function () {
640
+ return setIsExpanded(!isExpanded);
641
+ },
642
+ children: [/*#__PURE__*/runtime.jsxs("div", {
643
+ className: "flex items-center gap-2",
644
+ children: [/*#__PURE__*/runtime.jsx("div", {
645
+ className: "w-4 h-4 rounded-full bg-blue-500 flex items-center justify-center",
646
+ children: /*#__PURE__*/runtime.jsx("svg", {
647
+ className: "w-3 h-3 text-white",
648
+ fill: "none",
649
+ stroke: "currentColor",
650
+ viewBox: "0 0 24 24",
651
+ children: /*#__PURE__*/runtime.jsx("path", {
652
+ strokeLinecap: "round",
653
+ strokeLinejoin: "round",
654
+ strokeWidth: "2",
655
+ 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"
656
+ })
657
+ })
658
+ }), /*#__PURE__*/runtime.jsx("span", {
659
+ className: "font-medium text-sm",
660
+ children: "AI \u601D\u8003\u8FC7\u7A0B"
661
+ })]
662
+ }), /*#__PURE__*/runtime.jsx("div", {
663
+ className: "w-4 h-4 text-muted-foreground",
664
+ children: isExpanded ? /*#__PURE__*/runtime.jsx("svg", {
665
+ fill: "none",
666
+ stroke: "currentColor",
667
+ viewBox: "0 0 24 24",
668
+ children: /*#__PURE__*/runtime.jsx("path", {
669
+ strokeLinecap: "round",
670
+ strokeLinejoin: "round",
671
+ strokeWidth: "2",
672
+ d: "M5 15l7-7 7 7"
673
+ })
674
+ }) : /*#__PURE__*/runtime.jsx("svg", {
675
+ fill: "none",
676
+ stroke: "currentColor",
677
+ viewBox: "0 0 24 24",
678
+ children: /*#__PURE__*/runtime.jsx("path", {
679
+ strokeLinecap: "round",
680
+ strokeLinejoin: "round",
681
+ strokeWidth: "2",
682
+ d: "M19 9l-7 7-7-7"
683
+ })
684
+ })
671
685
  })]
672
- })
686
+ }), isExpanded && /*#__PURE__*/runtime.jsx("div", {
687
+ className: "mt-3 pt-3 border-t border-blue-200",
688
+ children: /*#__PURE__*/runtime.jsx("blockquote", {
689
+ className: "text-sm text-blue-800 bg-blue-100 p-2 rounded",
690
+ children: typeof thinkContent === 'string' ? decodeURIComponent(thinkContent) : thinkContent
691
+ })
692
+ })]
673
693
  });
674
694
  };
675
695
 
676
- var EncodedContent = function (_a) {
677
- var encodedContent = _a.encodedContent,
678
- props = __rest(_a, ["encodedContent"]);
679
- // 解码内容
680
- var decodedContent = React.useMemo(function () {
696
+ var ToolCall = function (_a) {
697
+ var toolCall = _a.toolCall,
698
+ children = _a.children;
699
+ var _b = __read(React.useState(false), 2),
700
+ isExpanded = _b[0],
701
+ setIsExpanded = _b[1];
702
+ var getStateIcon = function () {
703
+ switch (toolCall.state) {
704
+ case 'loading':
705
+ return /*#__PURE__*/runtime.jsx("div", {
706
+ className: "w-4 h-4 animate-spin border-2 border-blue-500 border-t-transparent rounded-full"
707
+ });
708
+ case 'done':
709
+ return /*#__PURE__*/runtime.jsx("div", {
710
+ className: "w-4 h-4 rounded-full bg-green-500 flex items-center justify-center",
711
+ children: /*#__PURE__*/runtime.jsx("svg", {
712
+ className: "w-3 h-3 text-white",
713
+ fill: "none",
714
+ stroke: "currentColor",
715
+ viewBox: "0 0 24 24",
716
+ children: /*#__PURE__*/runtime.jsx("path", {
717
+ strokeLinecap: "round",
718
+ strokeLinejoin: "round",
719
+ strokeWidth: "2",
720
+ d: "M5 13l4 4L19 7"
721
+ })
722
+ })
723
+ });
724
+ case 'error':
725
+ return /*#__PURE__*/runtime.jsx("div", {
726
+ className: "w-4 h-4 rounded-full bg-red-500 flex items-center justify-center",
727
+ children: /*#__PURE__*/runtime.jsx("svg", {
728
+ className: "w-3 h-3 text-white",
729
+ fill: "none",
730
+ stroke: "currentColor",
731
+ viewBox: "0 0 24 24",
732
+ children: /*#__PURE__*/runtime.jsx("path", {
733
+ strokeLinecap: "round",
734
+ strokeLinejoin: "round",
735
+ strokeWidth: "2",
736
+ d: "M6 18L18 6M6 6l12 12"
737
+ })
738
+ })
739
+ });
740
+ default:
741
+ return /*#__PURE__*/runtime.jsx("div", {
742
+ className: "w-4 h-4 animate-spin border-2 border-blue-500 border-t-transparent rounded-full"
743
+ });
744
+ }
745
+ };
746
+ var getStateText = function () {
747
+ switch (toolCall.state) {
748
+ case 'loading':
749
+ return '执行中...';
750
+ case 'done':
751
+ return '执行完成';
752
+ case 'error':
753
+ return '执行出错';
754
+ default:
755
+ return '执行中...';
756
+ }
757
+ };
758
+ var getStateClass = function () {
759
+ switch (toolCall.state) {
760
+ case 'loading':
761
+ return 'bg-blue-50 border-blue-200';
762
+ case 'done':
763
+ return 'bg-green-50 border-green-200';
764
+ case 'error':
765
+ return 'bg-red-50 border-red-200';
766
+ default:
767
+ return 'bg-blue-50 border-blue-200';
768
+ }
769
+ };
770
+ // 解析工具调用结果,如果是JSON字符串则格式化显示
771
+ var formatResult = function (result) {
772
+ if (!result) return result;
681
773
  try {
682
- return decodeURIComponent(encodedContent);
774
+ // 尝试解析为JSON
775
+ var parsed = JSON.parse(result);
776
+ return JSON.stringify(parsed, null, 2);
683
777
  } catch (e) {
684
- console.warn('Failed to decode content:', e);
685
- return encodedContent;
778
+ // 如果不是有效的JSON,直接返回原始字符串
779
+ return result;
686
780
  }
687
- }, [encodedContent]);
688
- return /*#__PURE__*/runtime.jsx("span", {
689
- ...props,
690
- children: decodedContent
781
+ };
782
+ return /*#__PURE__*/runtime.jsxs("div", {
783
+ className: "funq-tool-call border rounded-lg p-3 mb-3 ".concat(getStateClass()),
784
+ children: [/*#__PURE__*/runtime.jsxs("div", {
785
+ className: "flex items-center justify-between cursor-pointer",
786
+ onClick: function () {
787
+ return setIsExpanded(!isExpanded);
788
+ },
789
+ children: [/*#__PURE__*/runtime.jsxs("div", {
790
+ className: "flex items-center gap-2",
791
+ children: [getStateIcon(), /*#__PURE__*/runtime.jsxs("span", {
792
+ className: "font-medium text-sm",
793
+ children: ["\u5DE5\u5177\u8C03\u7528: ", toolCall.toolCallName]
794
+ }), /*#__PURE__*/runtime.jsx("span", {
795
+ className: "text-xs text-muted-foreground",
796
+ children: getStateText()
797
+ })]
798
+ }), /*#__PURE__*/runtime.jsxs("div", {
799
+ className: "flex items-center gap-2",
800
+ children: [toolCall.startTime && /*#__PURE__*/runtime.jsxs("span", {
801
+ className: "text-xs text-muted-foreground",
802
+ children: ["\u5F00\u59CB: ", new Date(toolCall.startTime).toLocaleTimeString()]
803
+ }), toolCall.endTime && toolCall.executionTime && /*#__PURE__*/runtime.jsxs("span", {
804
+ className: "text-xs text-muted-foreground",
805
+ children: ["\u8017\u65F6: ", toolCall.executionTime, "ms"]
806
+ }), /*#__PURE__*/runtime.jsx("div", {
807
+ className: "w-4 h-4 text-muted-foreground",
808
+ children: isExpanded ? /*#__PURE__*/runtime.jsx("svg", {
809
+ fill: "none",
810
+ stroke: "currentColor",
811
+ viewBox: "0 0 24 24",
812
+ children: /*#__PURE__*/runtime.jsx("path", {
813
+ strokeLinecap: "round",
814
+ strokeLinejoin: "round",
815
+ strokeWidth: "2",
816
+ d: "M5 15l7-7 7 7"
817
+ })
818
+ }) : /*#__PURE__*/runtime.jsx("svg", {
819
+ fill: "none",
820
+ stroke: "currentColor",
821
+ viewBox: "0 0 24 24",
822
+ children: /*#__PURE__*/runtime.jsx("path", {
823
+ strokeLinecap: "round",
824
+ strokeLinejoin: "round",
825
+ strokeWidth: "2",
826
+ d: "M19 9l-7 7-7-7"
827
+ })
828
+ })
829
+ })]
830
+ })]
831
+ }), isExpanded && /*#__PURE__*/runtime.jsxs("div", {
832
+ className: "mt-3 pt-3 border-t border-border",
833
+ children: [toolCall.toolCallArgs && /*#__PURE__*/runtime.jsxs("div", {
834
+ className: "mb-3",
835
+ children: [/*#__PURE__*/runtime.jsx("h4", {
836
+ className: "text-sm font-medium mb-1",
837
+ children: "\u53C2\u6570:"
838
+ }), /*#__PURE__*/runtime.jsx("pre", {
839
+ className: "text-xs bg-muted p-2 rounded overflow-x-auto break-words whitespace-pre-wrap",
840
+ children: toolCall.toolCallArgs
841
+ })]
842
+ }), (toolCall.delta || toolCall.state === 'error') && /*#__PURE__*/runtime.jsxs("div", {
843
+ children: [/*#__PURE__*/runtime.jsx("h4", {
844
+ className: "text-sm font-medium mb-1",
845
+ children: "\u7ED3\u679C:"
846
+ }), /*#__PURE__*/runtime.jsx("div", {
847
+ className: "text-sm p-2 rounded ".concat(toolCall.state === 'error' ? 'bg-red-100 text-red-800' : 'bg-muted'),
848
+ children: toolCall.state === 'error' ? /*#__PURE__*/runtime.jsx("pre", {
849
+ className: "whitespace-pre-wrap break-words overflow-x-auto",
850
+ children: formatResult(toolCall.delta) || '工具执行出错'
851
+ }) : /*#__PURE__*/runtime.jsx("pre", {
852
+ className: "whitespace-pre-wrap break-words overflow-x-auto",
853
+ children: formatResult(toolCall.delta)
854
+ })
855
+ })]
856
+ }), children && /*#__PURE__*/runtime.jsx("div", {
857
+ className: "mt-2",
858
+ children: children
859
+ })]
860
+ })]
691
861
  });
692
862
  };
693
863
 
@@ -828,14 +998,14 @@ var PreComponent = function (props) {
828
998
  });
829
999
  };
830
1000
  var BuiltInComponents = {
831
- AC_DS_THINK: Think,
1001
+ _THINK: Think,
1002
+ _TOOL_CALL: ToolCall,
832
1003
  pre: PreComponent,
833
1004
  code: CodeComponent,
834
1005
  p: PComponent,
835
1006
  a: AComponent,
836
1007
  video: VideoComponent,
837
- audio: AudioComponent,
838
- EncodedContent: EncodedContent
1008
+ audio: AudioComponent
839
1009
  };
840
1010
 
841
1011
  var ErrorBoundary = /** @class */function (_super) {
@@ -922,6 +1092,15 @@ function remarkThinkUpdate(content) {
922
1092
  resultContent: resultContent
923
1093
  };
924
1094
  }
1095
+ /**
1096
+ * 转义流式内容中的特殊字符,防止MDX解析错误
1097
+ * @param content 需要转义的内容
1098
+ * @returns 转义后的内容
1099
+ */
1100
+ function escapeContentForStream(content) {
1101
+ if (typeof content !== 'string') return content;
1102
+ return content.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#x27;').replace(/{/g, '&#123;').replace(/}/g, '&#125;');
1103
+ }
925
1104
 
926
1105
  var renderTimer = null;
927
1106
  // 辅助函数:格式化props
@@ -943,12 +1122,11 @@ function formatProps(props) {
943
1122
  }
944
1123
  function renderMdx(mdxContent, scope, registeredComponents) {
945
1124
  return __awaiter(this, void 0, void 0, function () {
946
- var componentTagRegex, usedComponents, match, _registeredComponents, usedComponents_1, usedComponents_1_1, component, vf, XComponent;
947
- var e_2, _a;
948
- return __generator(this, function (_b) {
949
- switch (_b.label) {
1125
+ var componentTagRegex, usedComponents, match, vf, XComponent;
1126
+ return __generator(this, function (_a) {
1127
+ switch (_a.label) {
950
1128
  case 0:
951
- _b.trys.push([0, 3,, 4]);
1129
+ _a.trys.push([0, 3,, 4]);
952
1130
  renderTimer && clearTimeout(renderTimer);
953
1131
  componentTagRegex = /<([A-Z][a-zA-Z]*)\b/g;
954
1132
  usedComponents = new Set();
@@ -956,25 +1134,6 @@ function renderMdx(mdxContent, scope, registeredComponents) {
956
1134
  while ((match = componentTagRegex.exec(mdxContent)) !== null) {
957
1135
  usedComponents.add(match[1]);
958
1136
  }
959
- _registeredComponents = new Set(Object.keys(registeredComponents));
960
- try {
961
- for (usedComponents_1 = __values(usedComponents), usedComponents_1_1 = usedComponents_1.next(); !usedComponents_1_1.done; usedComponents_1_1 = usedComponents_1.next()) {
962
- component = usedComponents_1_1.value;
963
- if (!_registeredComponents.has(component)) {
964
- throw new Error("Component ".concat(component, " is used but not registered in the components object."));
965
- }
966
- }
967
- } catch (e_2_1) {
968
- e_2 = {
969
- error: e_2_1
970
- };
971
- } finally {
972
- try {
973
- if (usedComponents_1_1 && !usedComponents_1_1.done && (_a = usedComponents_1.return)) _a.call(usedComponents_1);
974
- } finally {
975
- if (e_2) throw e_2.error;
976
- }
977
- }
978
1137
  return [4 /*yield*/, mdx.compile(mdxContent, {
979
1138
  outputFormat: "function-body",
980
1139
  remarkPlugins: [[RemarkMath, {
@@ -987,18 +1146,18 @@ function renderMdx(mdxContent, scope, registeredComponents) {
987
1146
  }]]
988
1147
  })];
989
1148
  case 1:
990
- vf = _b.sent();
1149
+ vf = _a.sent();
991
1150
  return [4 /*yield*/, mdx.run(vf, __assign(__assign(__assign({}, runtime__namespace), scope), {
992
1151
  Fragment: MdxLayout
993
1152
  }))];
994
1153
  case 2:
995
- XComponent = _b.sent().default;
1154
+ XComponent = _a.sent().default;
996
1155
  return [2 /*return*/, /*#__PURE__*/React__namespace.createElement(XComponent, {
997
1156
  components: registeredComponents,
998
1157
  scope: scope
999
1158
  })];
1000
1159
  case 3:
1001
- _b.sent();
1160
+ _a.sent();
1002
1161
  return [2 /*return*/, new Promise(function (resolve) {
1003
1162
  renderTimer = setTimeout(function () {
1004
1163
  resolve(/*#__PURE__*/React__namespace.createElement('div', {
@@ -1007,7 +1166,7 @@ function renderMdx(mdxContent, scope, registeredComponents) {
1007
1166
  }
1008
1167
  }, mdxContent));
1009
1168
  clearTimeout(renderTimer); // 清理定时器
1010
- }, 1000); // 1秒延迟
1169
+ }, 2000); // 1秒延迟
1011
1170
  })];
1012
1171
  case 4:
1013
1172
  return [2 /*return*/];
@@ -1079,7 +1238,7 @@ function parseComponentRecursively(allComponentHandlers, item, scope) {
1079
1238
  parsedChildren_1 = _a.sent();
1080
1239
  item.children.map(function (item, index) {
1081
1240
  if (item.type === 'text') {
1082
- childrenContent_1 += parsedChildren_1[index]; // encodeURIComponent(parsedChildren[index]);
1241
+ childrenContent_1 += escapeContentForStream(parsedChildren_1[index]); // encodeURIComponent(parsedChildren[index]);
1083
1242
  } else {
1084
1243
  childrenContent_1 += parsedChildren_1[index];
1085
1244
  }
@@ -1164,11 +1323,12 @@ function ReactAIRenderer(_a) {
1164
1323
  var content = _a.content,
1165
1324
  _b = _a.scope,
1166
1325
  scope = _b === void 0 ? {} : _b,
1167
- components = _a.components,
1326
+ _c = _a.components,
1327
+ components = _c === void 0 ? {} : _c,
1168
1328
  children = _a.children,
1169
- _c = _a.componentHandlers,
1170
- componentHandlers = _c === void 0 ? [] : _c;
1171
- content = content || children;
1329
+ _d = _a.componentHandlers,
1330
+ componentHandlers = _d === void 0 ? [] : _d;
1331
+ content = content || children || '';
1172
1332
  var allComponents = __assign(__assign({}, BuiltInComponents), components);
1173
1333
  // 修复:确保 components 是一个对象后再使用 Object.entries
1174
1334
  var allComponentHandlers = __spreadArray(__spreadArray([], __read(components ? Object.entries(components).filter(function (_a) {
@@ -1188,11 +1348,11 @@ function ReactAIRenderer(_a) {
1188
1348
  selfClosing: selfClosing
1189
1349
  };
1190
1350
  }) : []), false), __read(componentHandlers), false);
1191
- var _d = __read(React.useState(null), 2),
1192
- component = _d[0],
1193
- setComponent = _d[1];
1351
+ var _e = __read(React.useState(null), 2),
1352
+ component = _e[0],
1353
+ setComponent = _e[1];
1194
1354
  var parser = new MDXStreamingParser(allComponentHandlers);
1195
- var mdxContent = content;
1355
+ var mdxContent = content || '';
1196
1356
  React.useEffect(function () {
1197
1357
  var parseMDX = function () {
1198
1358
  return __awaiter(_this, void 0, void 0, function () {
@@ -1253,71 +1413,6 @@ function ReactAIRenderer(_a) {
1253
1413
  });
1254
1414
  }
1255
1415
 
1256
- var ToolCall = function (_a) {
1257
- var name = _a.name,
1258
- args = _a.args,
1259
- children = _a.children;
1260
- return /*#__PURE__*/runtime.jsxs("div", {
1261
- style: {
1262
- border: '1px solid #e0e0e0',
1263
- borderRadius: '4px',
1264
- margin: '8px 0',
1265
- backgroundColor: '#fafafa'
1266
- },
1267
- children: [/*#__PURE__*/runtime.jsxs("div", {
1268
- style: {
1269
- padding: '8px',
1270
- backgroundColor: '#f5f5f5',
1271
- borderBottom: '1px solid #e0e0e0',
1272
- fontWeight: 'bold',
1273
- display: 'flex',
1274
- alignItems: 'center'
1275
- },
1276
- children: [/*#__PURE__*/runtime.jsx("span", {
1277
- style: {
1278
- marginRight: '8px'
1279
- },
1280
- children: "\uD83D\uDD27"
1281
- }), /*#__PURE__*/runtime.jsxs("span", {
1282
- children: ["\u5DE5\u5177\u8C03\u7528: ", name]
1283
- })]
1284
- }), args && /*#__PURE__*/runtime.jsxs("div", {
1285
- style: {
1286
- padding: '8px'
1287
- },
1288
- children: [/*#__PURE__*/runtime.jsx("div", {
1289
- style: {
1290
- fontWeight: 'bold',
1291
- marginBottom: '4px'
1292
- },
1293
- children: "\u53C2\u6570:"
1294
- }), /*#__PURE__*/runtime.jsx("pre", {
1295
- style: {
1296
- backgroundColor: '#f0f0f0',
1297
- padding: '8px',
1298
- borderRadius: '4px',
1299
- overflowX: 'auto',
1300
- fontSize: '12px'
1301
- },
1302
- children: JSON.stringify(args, null, 2)
1303
- })]
1304
- }), children && /*#__PURE__*/runtime.jsxs("div", {
1305
- style: {
1306
- padding: '8px'
1307
- },
1308
- children: [/*#__PURE__*/runtime.jsx("div", {
1309
- style: {
1310
- fontWeight: 'bold',
1311
- marginBottom: '4px'
1312
- },
1313
- children: "\u7ED3\u679C:"
1314
- }), /*#__PURE__*/runtime.jsx("div", {
1315
- children: children
1316
- })]
1317
- })]
1318
- });
1319
- };
1320
-
1321
1416
  // 导出 MDXStreamingParser 类
1322
1417
 
1323
1418
  exports.MDXStreamingParser = MDXStreamingParser;
@@ -1327,4 +1422,4 @@ exports.ToolCall = ToolCall;
1327
1422
  exports.__awaiter = __awaiter;
1328
1423
  exports.__generator = __generator;
1329
1424
  exports.__read = __read;
1330
- //# sourceMappingURL=index-c0acef6b.js.map
1425
+ //# sourceMappingURL=index-813be4d3.js.map