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.
- package/dist/{MermaidRenderer-0ef71453.js → MermaidRenderer-07b34bcf.js} +2 -2
- package/dist/{MermaidRenderer-321bfe50.js.map → MermaidRenderer-07b34bcf.js.map} +1 -1
- package/dist/{MermaidRenderer-321bfe50.js → MermaidRenderer-0aacea2f.js} +2 -2
- package/dist/{MermaidRenderer-0ef71453.js.map → MermaidRenderer-0aacea2f.js.map} +1 -1
- package/dist/{MermaidRenderer-4bae11d6.js → MermaidRenderer-1c06834c.js} +2 -2
- package/dist/{MermaidRenderer-325a9dee.js.map → MermaidRenderer-1c06834c.js.map} +1 -1
- package/dist/{MermaidRenderer-325a9dee.js → MermaidRenderer-22b8cb81.js} +2 -2
- package/dist/{MermaidRenderer-4bae11d6.js.map → MermaidRenderer-22b8cb81.js.map} +1 -1
- package/dist/MermaidRenderer-2438ceb1.js +170 -0
- package/dist/MermaidRenderer-2438ceb1.js.map +1 -0
- package/dist/MermaidRenderer-2f6d93a2.js +170 -0
- package/dist/MermaidRenderer-2f6d93a2.js.map +1 -0
- package/dist/MermaidRenderer-447e20f0.js +170 -0
- package/dist/MermaidRenderer-447e20f0.js.map +1 -0
- package/dist/MermaidRenderer-456abbe8.js +170 -0
- package/dist/MermaidRenderer-456abbe8.js.map +1 -0
- package/dist/MermaidRenderer-45a1e235.js +170 -0
- package/dist/MermaidRenderer-45a1e235.js.map +1 -0
- package/dist/{MermaidRenderer-653a4dab.js → MermaidRenderer-4b75a3e5.js} +2 -2
- package/dist/{MermaidRenderer-653a4dab.js.map → MermaidRenderer-4b75a3e5.js.map} +1 -1
- package/dist/{MermaidRenderer-67edae8e.js → MermaidRenderer-59cd2aac.js} +2 -2
- package/dist/{MermaidRenderer-67edae8e.js.map → MermaidRenderer-59cd2aac.js.map} +1 -1
- package/dist/{MermaidRenderer-13e4a89a.js → MermaidRenderer-61954263.js} +2 -2
- package/dist/{MermaidRenderer-75832c15.js.map → MermaidRenderer-61954263.js.map} +1 -1
- package/dist/{MermaidRenderer-a25ae84f.js → MermaidRenderer-62cbf217.js} +1 -1
- package/dist/{MermaidRenderer-13e4a89a.js.map → MermaidRenderer-62cbf217.js.map} +1 -1
- package/dist/MermaidRenderer-6323359c.js +170 -0
- package/dist/MermaidRenderer-6323359c.js.map +1 -0
- package/dist/{MermaidRenderer-d8836800.js → MermaidRenderer-680adac3.js} +1 -1
- package/dist/MermaidRenderer-680adac3.js.map +1 -0
- package/dist/{MermaidRenderer-75832c15.js → MermaidRenderer-771db0f2.js} +2 -2
- package/dist/MermaidRenderer-771db0f2.js.map +1 -0
- package/dist/MermaidRenderer-7a5bd531.js +170 -0
- package/dist/MermaidRenderer-7a5bd531.js.map +1 -0
- package/dist/MermaidRenderer-94fceb26.js +172 -0
- package/dist/MermaidRenderer-94fceb26.js.map +1 -0
- package/dist/MermaidRenderer-a6a464ec.js +172 -0
- package/dist/MermaidRenderer-a6a464ec.js.map +1 -0
- package/dist/MermaidRenderer-a8c58389.js +172 -0
- package/dist/MermaidRenderer-a8c58389.js.map +1 -0
- package/dist/MermaidRenderer-b23c2eec.js +172 -0
- package/dist/MermaidRenderer-b23c2eec.js.map +1 -0
- package/dist/MermaidRenderer-b30dda58.js +170 -0
- package/dist/MermaidRenderer-b30dda58.js.map +1 -0
- package/dist/MermaidRenderer-b65fed60.js +172 -0
- package/dist/MermaidRenderer-b65fed60.js.map +1 -0
- package/dist/MermaidRenderer-c594187b.js +172 -0
- package/dist/MermaidRenderer-c594187b.js.map +1 -0
- package/dist/MermaidRenderer-c5f51ccf.js +172 -0
- package/dist/MermaidRenderer-c5f51ccf.js.map +1 -0
- package/dist/MermaidRenderer-cf69f9fc.js +172 -0
- package/dist/MermaidRenderer-cf69f9fc.js.map +1 -0
- package/dist/MermaidRenderer-fa15e3c7.js +172 -0
- package/dist/MermaidRenderer-fa15e3c7.js.map +1 -0
- package/dist/MermaidRenderer-fc75606f.js +170 -0
- package/dist/MermaidRenderer-fc75606f.js.map +1 -0
- package/dist/index-27d5e758.js +1399 -0
- package/dist/index-27d5e758.js.map +1 -0
- package/dist/{index-922bbd30.js → index-2b2eb026.js} +195 -141
- package/dist/{index-bb96fdaf.js.map → index-2b2eb026.js.map} +1 -1
- package/dist/{index-4592abf8.js → index-34e4d478.js} +31 -53
- package/dist/index-34e4d478.js.map +1 -0
- package/dist/index-4881fdf3.js +1458 -0
- package/dist/index-4881fdf3.js.map +1 -0
- package/dist/{index-283b43ef.js → index-4d8e81d1.js} +97 -118
- package/dist/index-4d8e81d1.js.map +1 -0
- package/dist/{index-3de28f18.js → index-4f25eb16.js} +19 -49
- package/dist/index-4f25eb16.js.map +1 -0
- package/dist/index-53d781f0.js +1476 -0
- package/dist/index-53d781f0.js.map +1 -0
- package/dist/index-543584d8.js +1398 -0
- package/dist/index-543584d8.js.map +1 -0
- package/dist/index-54c78282.js +1474 -0
- package/dist/index-54c78282.js.map +1 -0
- package/dist/index-57a0454a.js +1441 -0
- package/dist/index-57a0454a.js.map +1 -0
- package/dist/index-58ab9759.js +1424 -0
- package/dist/index-58ab9759.js.map +1 -0
- package/dist/index-58ee3084.js +1399 -0
- package/dist/index-58ee3084.js.map +1 -0
- package/dist/{index-bb96fdaf.js → index-5edd5559.js} +20 -53
- package/dist/index-5edd5559.js.map +1 -0
- package/dist/{index-415b51ad.js → index-65168e57.js} +20 -53
- package/dist/index-65168e57.js.map +1 -0
- package/dist/index-66021d90.js +1431 -0
- package/dist/index-66021d90.js.map +1 -0
- package/dist/index-71e57dce.js +1425 -0
- package/dist/index-71e57dce.js.map +1 -0
- package/dist/{index-ae31bd04.js → index-742d8be6.js} +97 -119
- package/dist/index-742d8be6.js.map +1 -0
- package/dist/{index-c0acef6b.js → index-813be4d3.js} +254 -159
- package/dist/index-813be4d3.js.map +1 -0
- package/dist/index-82c906b1.js +1448 -0
- package/dist/index-82c906b1.js.map +1 -0
- package/dist/index-a7fb8ff9.js +1432 -0
- package/dist/index-a7fb8ff9.js.map +1 -0
- package/dist/{index-c6ab333d.js → index-b4765fbd.js} +19 -49
- package/dist/index-b4765fbd.js.map +1 -0
- package/dist/{index-fdaa9757.js → index-b78ff7b5.js} +254 -168
- package/dist/index-b78ff7b5.js.map +1 -0
- package/dist/index-c56180b9.js +1425 -0
- package/dist/index-c56180b9.js.map +1 -0
- package/dist/{index-7e8dc866.js → index-d5855b9f.js} +195 -132
- package/dist/{index-415b51ad.js.map → index-d5855b9f.js.map} +1 -1
- package/dist/{index-1d051ba8.js → index-d63be97b.js} +31 -54
- package/dist/index-d63be97b.js.map +1 -0
- package/dist/index-dd9fe728.js +1457 -0
- package/dist/index-dd9fe728.js.map +1 -0
- package/dist/index-e0ce1691.js +1467 -0
- package/dist/index-e0ce1691.js.map +1 -0
- package/dist/index-fadb7b0b.js +1450 -0
- package/dist/index-fadb7b0b.js.map +1 -0
- package/dist/index.d.ts +30 -9
- package/dist/index.es.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/MermaidRenderer-6237d7da.js +0 -170
- package/dist/MermaidRenderer-6237d7da.js.map +0 -1
- package/dist/MermaidRenderer-6f071d8e.js +0 -170
- package/dist/MermaidRenderer-6f071d8e.js.map +0 -1
- package/dist/MermaidRenderer-7cb138d1.js +0 -170
- package/dist/MermaidRenderer-7cb138d1.js.map +0 -1
- package/dist/MermaidRenderer-8a8fb725.js +0 -172
- package/dist/MermaidRenderer-8a8fb725.js.map +0 -1
- package/dist/MermaidRenderer-91a0a7d8.js +0 -170
- package/dist/MermaidRenderer-91a0a7d8.js.map +0 -1
- package/dist/MermaidRenderer-9ff856f3.js +0 -172
- package/dist/MermaidRenderer-9ff856f3.js.map +0 -1
- package/dist/MermaidRenderer-a25ae84f.js.map +0 -1
- package/dist/MermaidRenderer-c3014102.js +0 -172
- package/dist/MermaidRenderer-c3014102.js.map +0 -1
- package/dist/MermaidRenderer-c664aa66.js +0 -170
- package/dist/MermaidRenderer-c664aa66.js.map +0 -1
- package/dist/MermaidRenderer-d1518f28.js +0 -172
- package/dist/MermaidRenderer-d1518f28.js.map +0 -1
- package/dist/MermaidRenderer-d7545a7e.js +0 -172
- package/dist/MermaidRenderer-d7545a7e.js.map +0 -1
- package/dist/MermaidRenderer-d8836800.js.map +0 -1
- package/dist/MermaidRenderer-d9c8351a.js +0 -172
- package/dist/MermaidRenderer-d9c8351a.js.map +0 -1
- package/dist/MermaidRenderer-dc0ac92e.js +0 -170
- package/dist/MermaidRenderer-dc0ac92e.js.map +0 -1
- package/dist/MermaidRenderer-e549ab85.js +0 -172
- package/dist/MermaidRenderer-e549ab85.js.map +0 -1
- package/dist/MermaidRenderer-e5d81a6f.js +0 -172
- package/dist/MermaidRenderer-e5d81a6f.js.map +0 -1
- package/dist/MermaidRenderer-e82f36e4.js +0 -172
- package/dist/MermaidRenderer-e82f36e4.js.map +0 -1
- package/dist/MermaidRenderer-f04366c1.js +0 -170
- package/dist/MermaidRenderer-f04366c1.js.map +0 -1
- package/dist/MermaidRenderer-f6473da3.js +0 -170
- package/dist/MermaidRenderer-f6473da3.js.map +0 -1
- package/dist/MermaidRenderer-f82d0d11.js +0 -170
- package/dist/MermaidRenderer-f82d0d11.js.map +0 -1
- package/dist/index-02f4473f.js +0 -1313
- package/dist/index-02f4473f.js.map +0 -1
- package/dist/index-172582eb.js +0 -1294
- package/dist/index-172582eb.js.map +0 -1
- package/dist/index-1d051ba8.js.map +0 -1
- package/dist/index-283b43ef.js.map +0 -1
- package/dist/index-2d979ad5.js +0 -1314
- package/dist/index-2d979ad5.js.map +0 -1
- package/dist/index-349401d2.js +0 -1288
- package/dist/index-349401d2.js.map +0 -1
- package/dist/index-398258c5.js +0 -1314
- package/dist/index-398258c5.js.map +0 -1
- package/dist/index-3cf82be4.js +0 -1287
- package/dist/index-3cf82be4.js.map +0 -1
- package/dist/index-3de28f18.js.map +0 -1
- package/dist/index-4592abf8.js.map +0 -1
- package/dist/index-4edeb553.js +0 -1313
- package/dist/index-4edeb553.js.map +0 -1
- package/dist/index-534d3bce.js +0 -1312
- package/dist/index-534d3bce.js.map +0 -1
- package/dist/index-6ceb7256.js +0 -1287
- package/dist/index-6ceb7256.js.map +0 -1
- package/dist/index-7e8dc866.js.map +0 -1
- package/dist/index-896de550.js +0 -1313
- package/dist/index-896de550.js.map +0 -1
- package/dist/index-8dbf398a.js +0 -1313
- package/dist/index-8dbf398a.js.map +0 -1
- package/dist/index-922bbd30.js.map +0 -1
- package/dist/index-a5a2c748.js +0 -1288
- package/dist/index-a5a2c748.js.map +0 -1
- package/dist/index-abed2ed7.js +0 -1286
- package/dist/index-abed2ed7.js.map +0 -1
- package/dist/index-ae31bd04.js.map +0 -1
- package/dist/index-b0cab34f.js +0 -1287
- package/dist/index-b0cab34f.js.map +0 -1
- package/dist/index-c0acef6b.js.map +0 -1
- package/dist/index-c6ab333d.js.map +0 -1
- package/dist/index-d4f12a68.js +0 -1287
- package/dist/index-d4f12a68.js.map +0 -1
- package/dist/index-e07ca144.js +0 -1320
- package/dist/index-e07ca144.js.map +0 -1
- package/dist/index-fdaa9757.js.map +0 -1
|
@@ -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-
|
|
540
|
+
return import('./MermaidRenderer-2f6d93a2.js').catch(function () {
|
|
553
541
|
return {
|
|
554
542
|
default: function () {
|
|
555
543
|
return /*#__PURE__*/jsx("div", {});
|
|
@@ -617,57 +605,239 @@ 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__*/
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
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
|
|
|
656
|
-
var
|
|
657
|
-
var
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
676
|
+
var ToolCall = function (_a) {
|
|
677
|
+
var toolCall = _a.toolCall,
|
|
678
|
+
children = _a.children;
|
|
679
|
+
var _b = __read(useState(false), 2),
|
|
680
|
+
isExpanded = _b[0],
|
|
681
|
+
setIsExpanded = _b[1];
|
|
682
|
+
var getStateIcon = function () {
|
|
683
|
+
switch (toolCall.state) {
|
|
684
|
+
case 'loading':
|
|
685
|
+
return /*#__PURE__*/jsx("div", {
|
|
686
|
+
className: "w-4 h-4 animate-spin border-2 border-blue-500 border-t-transparent rounded-full"
|
|
687
|
+
});
|
|
688
|
+
case 'done':
|
|
689
|
+
return /*#__PURE__*/jsx("div", {
|
|
690
|
+
className: "w-4 h-4 rounded-full bg-green-500 flex items-center justify-center",
|
|
691
|
+
children: /*#__PURE__*/jsx("svg", {
|
|
692
|
+
className: "w-3 h-3 text-white",
|
|
693
|
+
fill: "none",
|
|
694
|
+
stroke: "currentColor",
|
|
695
|
+
viewBox: "0 0 24 24",
|
|
696
|
+
children: /*#__PURE__*/jsx("path", {
|
|
697
|
+
strokeLinecap: "round",
|
|
698
|
+
strokeLinejoin: "round",
|
|
699
|
+
strokeWidth: "2",
|
|
700
|
+
d: "M5 13l4 4L19 7"
|
|
701
|
+
})
|
|
702
|
+
})
|
|
703
|
+
});
|
|
704
|
+
case 'error':
|
|
705
|
+
return /*#__PURE__*/jsx("div", {
|
|
706
|
+
className: "w-4 h-4 rounded-full bg-red-500 flex items-center justify-center",
|
|
707
|
+
children: /*#__PURE__*/jsx("svg", {
|
|
708
|
+
className: "w-3 h-3 text-white",
|
|
709
|
+
fill: "none",
|
|
710
|
+
stroke: "currentColor",
|
|
711
|
+
viewBox: "0 0 24 24",
|
|
712
|
+
children: /*#__PURE__*/jsx("path", {
|
|
713
|
+
strokeLinecap: "round",
|
|
714
|
+
strokeLinejoin: "round",
|
|
715
|
+
strokeWidth: "2",
|
|
716
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
717
|
+
})
|
|
718
|
+
})
|
|
719
|
+
});
|
|
720
|
+
default:
|
|
721
|
+
return /*#__PURE__*/jsx("div", {
|
|
722
|
+
className: "w-4 h-4 animate-spin border-2 border-blue-500 border-t-transparent rounded-full"
|
|
723
|
+
});
|
|
724
|
+
}
|
|
725
|
+
};
|
|
726
|
+
var getStateText = function () {
|
|
727
|
+
switch (toolCall.state) {
|
|
728
|
+
case 'loading':
|
|
729
|
+
return '执行中...';
|
|
730
|
+
case 'done':
|
|
731
|
+
return '执行完成';
|
|
732
|
+
case 'error':
|
|
733
|
+
return '执行出错';
|
|
734
|
+
default:
|
|
735
|
+
return '执行中...';
|
|
736
|
+
}
|
|
737
|
+
};
|
|
738
|
+
var getStateClass = function () {
|
|
739
|
+
switch (toolCall.state) {
|
|
740
|
+
case 'loading':
|
|
741
|
+
return 'bg-blue-50 border-blue-200';
|
|
742
|
+
case 'done':
|
|
743
|
+
return 'bg-green-50 border-green-200';
|
|
744
|
+
case 'error':
|
|
745
|
+
return 'bg-red-50 border-red-200';
|
|
746
|
+
default:
|
|
747
|
+
return 'bg-blue-50 border-blue-200';
|
|
748
|
+
}
|
|
749
|
+
};
|
|
750
|
+
// 解析工具调用结果,如果是JSON字符串则格式化显示
|
|
751
|
+
var formatResult = function (result) {
|
|
752
|
+
if (!result) return result;
|
|
661
753
|
try {
|
|
662
|
-
|
|
754
|
+
// 尝试解析为JSON
|
|
755
|
+
var parsed = JSON.parse(result);
|
|
756
|
+
return JSON.stringify(parsed, null, 2);
|
|
663
757
|
} catch (e) {
|
|
664
|
-
|
|
665
|
-
return
|
|
758
|
+
// 如果不是有效的JSON,直接返回原始字符串
|
|
759
|
+
return result;
|
|
666
760
|
}
|
|
667
|
-
}
|
|
668
|
-
return /*#__PURE__*/
|
|
669
|
-
|
|
670
|
-
children:
|
|
761
|
+
};
|
|
762
|
+
return /*#__PURE__*/jsxs("div", {
|
|
763
|
+
className: "funq-tool-call border rounded-lg p-3 mb-3 ".concat(getStateClass()),
|
|
764
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
765
|
+
className: "flex items-center justify-between cursor-pointer",
|
|
766
|
+
onClick: function () {
|
|
767
|
+
return setIsExpanded(!isExpanded);
|
|
768
|
+
},
|
|
769
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
770
|
+
className: "flex items-center gap-2",
|
|
771
|
+
children: [getStateIcon(), /*#__PURE__*/jsxs("span", {
|
|
772
|
+
className: "font-medium text-sm",
|
|
773
|
+
children: ["\u5DE5\u5177\u8C03\u7528: ", toolCall.toolCallName]
|
|
774
|
+
}), /*#__PURE__*/jsx("span", {
|
|
775
|
+
className: "text-xs text-muted-foreground",
|
|
776
|
+
children: getStateText()
|
|
777
|
+
})]
|
|
778
|
+
}), /*#__PURE__*/jsxs("div", {
|
|
779
|
+
className: "flex items-center gap-2",
|
|
780
|
+
children: [toolCall.startTime && /*#__PURE__*/jsxs("span", {
|
|
781
|
+
className: "text-xs text-muted-foreground",
|
|
782
|
+
children: ["\u5F00\u59CB: ", new Date(toolCall.startTime).toLocaleTimeString()]
|
|
783
|
+
}), toolCall.endTime && toolCall.executionTime && /*#__PURE__*/jsxs("span", {
|
|
784
|
+
className: "text-xs text-muted-foreground",
|
|
785
|
+
children: ["\u8017\u65F6: ", toolCall.executionTime, "ms"]
|
|
786
|
+
}), /*#__PURE__*/jsx("div", {
|
|
787
|
+
className: "w-4 h-4 text-muted-foreground",
|
|
788
|
+
children: isExpanded ? /*#__PURE__*/jsx("svg", {
|
|
789
|
+
fill: "none",
|
|
790
|
+
stroke: "currentColor",
|
|
791
|
+
viewBox: "0 0 24 24",
|
|
792
|
+
children: /*#__PURE__*/jsx("path", {
|
|
793
|
+
strokeLinecap: "round",
|
|
794
|
+
strokeLinejoin: "round",
|
|
795
|
+
strokeWidth: "2",
|
|
796
|
+
d: "M5 15l7-7 7 7"
|
|
797
|
+
})
|
|
798
|
+
}) : /*#__PURE__*/jsx("svg", {
|
|
799
|
+
fill: "none",
|
|
800
|
+
stroke: "currentColor",
|
|
801
|
+
viewBox: "0 0 24 24",
|
|
802
|
+
children: /*#__PURE__*/jsx("path", {
|
|
803
|
+
strokeLinecap: "round",
|
|
804
|
+
strokeLinejoin: "round",
|
|
805
|
+
strokeWidth: "2",
|
|
806
|
+
d: "M19 9l-7 7-7-7"
|
|
807
|
+
})
|
|
808
|
+
})
|
|
809
|
+
})]
|
|
810
|
+
})]
|
|
811
|
+
}), isExpanded && /*#__PURE__*/jsxs("div", {
|
|
812
|
+
className: "mt-3 pt-3 border-t border-border",
|
|
813
|
+
children: [toolCall.toolCallArgs && /*#__PURE__*/jsxs("div", {
|
|
814
|
+
className: "mb-3",
|
|
815
|
+
children: [/*#__PURE__*/jsx("h4", {
|
|
816
|
+
className: "text-sm font-medium mb-1",
|
|
817
|
+
children: "\u53C2\u6570:"
|
|
818
|
+
}), /*#__PURE__*/jsx("pre", {
|
|
819
|
+
className: "text-xs bg-muted p-2 rounded overflow-x-auto break-words whitespace-pre-wrap",
|
|
820
|
+
children: toolCall.toolCallArgs
|
|
821
|
+
})]
|
|
822
|
+
}), (toolCall.delta || toolCall.state === 'error') && /*#__PURE__*/jsxs("div", {
|
|
823
|
+
children: [/*#__PURE__*/jsx("h4", {
|
|
824
|
+
className: "text-sm font-medium mb-1",
|
|
825
|
+
children: "\u7ED3\u679C:"
|
|
826
|
+
}), /*#__PURE__*/jsx("div", {
|
|
827
|
+
className: "text-sm p-2 rounded ".concat(toolCall.state === 'error' ? 'bg-red-100 text-red-800' : 'bg-muted'),
|
|
828
|
+
children: toolCall.state === 'error' ? /*#__PURE__*/jsx("pre", {
|
|
829
|
+
className: "whitespace-pre-wrap break-words overflow-x-auto",
|
|
830
|
+
children: formatResult(toolCall.delta) || '工具执行出错'
|
|
831
|
+
}) : /*#__PURE__*/jsx("pre", {
|
|
832
|
+
className: "whitespace-pre-wrap break-words overflow-x-auto",
|
|
833
|
+
children: formatResult(toolCall.delta)
|
|
834
|
+
})
|
|
835
|
+
})]
|
|
836
|
+
}), children && /*#__PURE__*/jsx("div", {
|
|
837
|
+
className: "mt-2",
|
|
838
|
+
children: children
|
|
839
|
+
})]
|
|
840
|
+
})]
|
|
671
841
|
});
|
|
672
842
|
};
|
|
673
843
|
|
|
@@ -808,14 +978,14 @@ var PreComponent = function (props) {
|
|
|
808
978
|
});
|
|
809
979
|
};
|
|
810
980
|
var BuiltInComponents = {
|
|
811
|
-
|
|
981
|
+
_THINK: Think,
|
|
982
|
+
_TOOL_CALL: ToolCall,
|
|
812
983
|
pre: PreComponent,
|
|
813
984
|
code: CodeComponent,
|
|
814
985
|
p: PComponent,
|
|
815
986
|
a: AComponent,
|
|
816
987
|
video: VideoComponent,
|
|
817
|
-
audio: AudioComponent
|
|
818
|
-
EncodedContent: EncodedContent
|
|
988
|
+
audio: AudioComponent
|
|
819
989
|
};
|
|
820
990
|
|
|
821
991
|
var ErrorBoundary = /** @class */function (_super) {
|
|
@@ -902,6 +1072,15 @@ function remarkThinkUpdate(content) {
|
|
|
902
1072
|
resultContent: resultContent
|
|
903
1073
|
};
|
|
904
1074
|
}
|
|
1075
|
+
/**
|
|
1076
|
+
* 转义流式内容中的特殊字符,防止MDX解析错误
|
|
1077
|
+
* @param content 需要转义的内容
|
|
1078
|
+
* @returns 转义后的内容
|
|
1079
|
+
*/
|
|
1080
|
+
function escapeContentForStream(content) {
|
|
1081
|
+
if (typeof content !== 'string') return content;
|
|
1082
|
+
return content.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''').replace(/{/g, '{').replace(/}/g, '}');
|
|
1083
|
+
}
|
|
905
1084
|
|
|
906
1085
|
var renderTimer = null;
|
|
907
1086
|
// 辅助函数:格式化props
|
|
@@ -923,12 +1102,11 @@ function formatProps(props) {
|
|
|
923
1102
|
}
|
|
924
1103
|
function renderMdx(mdxContent, scope, registeredComponents) {
|
|
925
1104
|
return __awaiter(this, void 0, void 0, function () {
|
|
926
|
-
var componentTagRegex, usedComponents, match,
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
switch (_b.label) {
|
|
1105
|
+
var componentTagRegex, usedComponents, match, vf, XComponent;
|
|
1106
|
+
return __generator(this, function (_a) {
|
|
1107
|
+
switch (_a.label) {
|
|
930
1108
|
case 0:
|
|
931
|
-
|
|
1109
|
+
_a.trys.push([0, 3,, 4]);
|
|
932
1110
|
renderTimer && clearTimeout(renderTimer);
|
|
933
1111
|
componentTagRegex = /<([A-Z][a-zA-Z]*)\b/g;
|
|
934
1112
|
usedComponents = new Set();
|
|
@@ -936,25 +1114,6 @@ function renderMdx(mdxContent, scope, registeredComponents) {
|
|
|
936
1114
|
while ((match = componentTagRegex.exec(mdxContent)) !== null) {
|
|
937
1115
|
usedComponents.add(match[1]);
|
|
938
1116
|
}
|
|
939
|
-
_registeredComponents = new Set(Object.keys(registeredComponents));
|
|
940
|
-
try {
|
|
941
|
-
for (usedComponents_1 = __values(usedComponents), usedComponents_1_1 = usedComponents_1.next(); !usedComponents_1_1.done; usedComponents_1_1 = usedComponents_1.next()) {
|
|
942
|
-
component = usedComponents_1_1.value;
|
|
943
|
-
if (!_registeredComponents.has(component)) {
|
|
944
|
-
throw new Error("Component ".concat(component, " is used but not registered in the components object."));
|
|
945
|
-
}
|
|
946
|
-
}
|
|
947
|
-
} catch (e_2_1) {
|
|
948
|
-
e_2 = {
|
|
949
|
-
error: e_2_1
|
|
950
|
-
};
|
|
951
|
-
} finally {
|
|
952
|
-
try {
|
|
953
|
-
if (usedComponents_1_1 && !usedComponents_1_1.done && (_a = usedComponents_1.return)) _a.call(usedComponents_1);
|
|
954
|
-
} finally {
|
|
955
|
-
if (e_2) throw e_2.error;
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
1117
|
return [4 /*yield*/, compile(mdxContent, {
|
|
959
1118
|
outputFormat: "function-body",
|
|
960
1119
|
remarkPlugins: [[RemarkMath, {
|
|
@@ -967,29 +1126,27 @@ function renderMdx(mdxContent, scope, registeredComponents) {
|
|
|
967
1126
|
}]]
|
|
968
1127
|
})];
|
|
969
1128
|
case 1:
|
|
970
|
-
vf =
|
|
1129
|
+
vf = _a.sent();
|
|
971
1130
|
return [4 /*yield*/, run(vf, __assign(__assign(__assign({}, runtime), scope), {
|
|
972
1131
|
Fragment: MdxLayout
|
|
973
1132
|
}))];
|
|
974
1133
|
case 2:
|
|
975
|
-
XComponent =
|
|
1134
|
+
XComponent = _a.sent().default;
|
|
976
1135
|
return [2 /*return*/, /*#__PURE__*/React.createElement(XComponent, {
|
|
977
1136
|
components: registeredComponents,
|
|
978
1137
|
scope: scope
|
|
979
1138
|
})];
|
|
980
1139
|
case 3:
|
|
981
|
-
|
|
1140
|
+
_a.sent();
|
|
982
1141
|
return [2 /*return*/, new Promise(function (resolve) {
|
|
983
1142
|
renderTimer = setTimeout(function () {
|
|
984
|
-
console.log(e_1, 'e');
|
|
985
|
-
console.log(mdxContent, 'mdxContent');
|
|
986
1143
|
resolve(/*#__PURE__*/React.createElement('div', {
|
|
987
1144
|
style: {
|
|
988
1145
|
backgroundColor: 'transparent'
|
|
989
1146
|
}
|
|
990
1147
|
}, mdxContent));
|
|
991
1148
|
clearTimeout(renderTimer); // 清理定时器
|
|
992
|
-
},
|
|
1149
|
+
}, 2000); // 1秒延迟
|
|
993
1150
|
})];
|
|
994
1151
|
case 4:
|
|
995
1152
|
return [2 /*return*/];
|
|
@@ -1061,14 +1218,7 @@ function parseComponentRecursively(allComponentHandlers, item, scope) {
|
|
|
1061
1218
|
parsedChildren_1 = _a.sent();
|
|
1062
1219
|
item.children.map(function (item, index) {
|
|
1063
1220
|
if (item.type === 'text') {
|
|
1064
|
-
//
|
|
1065
|
-
var textContent = parsedChildren_1[index];
|
|
1066
|
-
if (typeof textContent === 'string' && (textContent.includes('{') || textContent.includes('}'))) {
|
|
1067
|
-
// 使用 encodeURIComponent 编码内容,但需要在组件内部解码
|
|
1068
|
-
childrenContent_1 += encodeURIComponent(textContent);
|
|
1069
|
-
} else {
|
|
1070
|
-
childrenContent_1 += textContent;
|
|
1071
|
-
}
|
|
1221
|
+
childrenContent_1 += escapeContentForStream(parsedChildren_1[index]); // encodeURIComponent(parsedChildren[index]);
|
|
1072
1222
|
} else {
|
|
1073
1223
|
childrenContent_1 += parsedChildren_1[index];
|
|
1074
1224
|
}
|
|
@@ -1153,11 +1303,12 @@ function ReactAIRenderer(_a) {
|
|
|
1153
1303
|
var content = _a.content,
|
|
1154
1304
|
_b = _a.scope,
|
|
1155
1305
|
scope = _b === void 0 ? {} : _b,
|
|
1156
|
-
|
|
1306
|
+
_c = _a.components,
|
|
1307
|
+
components = _c === void 0 ? {} : _c,
|
|
1157
1308
|
children = _a.children,
|
|
1158
|
-
|
|
1159
|
-
componentHandlers =
|
|
1160
|
-
content = content || children;
|
|
1309
|
+
_d = _a.componentHandlers,
|
|
1310
|
+
componentHandlers = _d === void 0 ? [] : _d;
|
|
1311
|
+
content = content || children || '';
|
|
1161
1312
|
var allComponents = __assign(__assign({}, BuiltInComponents), components);
|
|
1162
1313
|
// 修复:确保 components 是一个对象后再使用 Object.entries
|
|
1163
1314
|
var allComponentHandlers = __spreadArray(__spreadArray([], __read(components ? Object.entries(components).filter(function (_a) {
|
|
@@ -1177,11 +1328,11 @@ function ReactAIRenderer(_a) {
|
|
|
1177
1328
|
selfClosing: selfClosing
|
|
1178
1329
|
};
|
|
1179
1330
|
}) : []), false), __read(componentHandlers), false);
|
|
1180
|
-
var
|
|
1181
|
-
component =
|
|
1182
|
-
setComponent =
|
|
1331
|
+
var _e = __read(useState(null), 2),
|
|
1332
|
+
component = _e[0],
|
|
1333
|
+
setComponent = _e[1];
|
|
1183
1334
|
var parser = new MDXStreamingParser(allComponentHandlers);
|
|
1184
|
-
var mdxContent = content;
|
|
1335
|
+
var mdxContent = content || '';
|
|
1185
1336
|
useEffect(function () {
|
|
1186
1337
|
var parseMDX = function () {
|
|
1187
1338
|
return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -1242,72 +1393,7 @@ function ReactAIRenderer(_a) {
|
|
|
1242
1393
|
});
|
|
1243
1394
|
}
|
|
1244
1395
|
|
|
1245
|
-
var ToolCall = function (_a) {
|
|
1246
|
-
var name = _a.name,
|
|
1247
|
-
args = _a.args,
|
|
1248
|
-
children = _a.children;
|
|
1249
|
-
return /*#__PURE__*/jsxs("div", {
|
|
1250
|
-
style: {
|
|
1251
|
-
border: '1px solid #e0e0e0',
|
|
1252
|
-
borderRadius: '4px',
|
|
1253
|
-
margin: '8px 0',
|
|
1254
|
-
backgroundColor: '#fafafa'
|
|
1255
|
-
},
|
|
1256
|
-
children: [/*#__PURE__*/jsxs("div", {
|
|
1257
|
-
style: {
|
|
1258
|
-
padding: '8px',
|
|
1259
|
-
backgroundColor: '#f5f5f5',
|
|
1260
|
-
borderBottom: '1px solid #e0e0e0',
|
|
1261
|
-
fontWeight: 'bold',
|
|
1262
|
-
display: 'flex',
|
|
1263
|
-
alignItems: 'center'
|
|
1264
|
-
},
|
|
1265
|
-
children: [/*#__PURE__*/jsx("span", {
|
|
1266
|
-
style: {
|
|
1267
|
-
marginRight: '8px'
|
|
1268
|
-
},
|
|
1269
|
-
children: "\uD83D\uDD27"
|
|
1270
|
-
}), /*#__PURE__*/jsxs("span", {
|
|
1271
|
-
children: ["\u5DE5\u5177\u8C03\u7528: ", name]
|
|
1272
|
-
})]
|
|
1273
|
-
}), args && /*#__PURE__*/jsxs("div", {
|
|
1274
|
-
style: {
|
|
1275
|
-
padding: '8px'
|
|
1276
|
-
},
|
|
1277
|
-
children: [/*#__PURE__*/jsx("div", {
|
|
1278
|
-
style: {
|
|
1279
|
-
fontWeight: 'bold',
|
|
1280
|
-
marginBottom: '4px'
|
|
1281
|
-
},
|
|
1282
|
-
children: "\u53C2\u6570:"
|
|
1283
|
-
}), /*#__PURE__*/jsx("pre", {
|
|
1284
|
-
style: {
|
|
1285
|
-
backgroundColor: '#f0f0f0',
|
|
1286
|
-
padding: '8px',
|
|
1287
|
-
borderRadius: '4px',
|
|
1288
|
-
overflowX: 'auto',
|
|
1289
|
-
fontSize: '12px'
|
|
1290
|
-
},
|
|
1291
|
-
children: JSON.stringify(args, null, 2)
|
|
1292
|
-
})]
|
|
1293
|
-
}), children && /*#__PURE__*/jsxs("div", {
|
|
1294
|
-
style: {
|
|
1295
|
-
padding: '8px'
|
|
1296
|
-
},
|
|
1297
|
-
children: [/*#__PURE__*/jsx("div", {
|
|
1298
|
-
style: {
|
|
1299
|
-
fontWeight: 'bold',
|
|
1300
|
-
marginBottom: '4px'
|
|
1301
|
-
},
|
|
1302
|
-
children: "\u7ED3\u679C:"
|
|
1303
|
-
}), /*#__PURE__*/jsx("div", {
|
|
1304
|
-
children: children
|
|
1305
|
-
})]
|
|
1306
|
-
})]
|
|
1307
|
-
});
|
|
1308
|
-
};
|
|
1309
|
-
|
|
1310
1396
|
// 导出 MDXStreamingParser 类
|
|
1311
1397
|
|
|
1312
1398
|
export { MDXStreamingParser as M, ReactAIRenderer as R, Think as T, __read as _, __awaiter as a, __generator as b, ToolCall as c };
|
|
1313
|
-
//# sourceMappingURL=index-
|
|
1399
|
+
//# sourceMappingURL=index-b78ff7b5.js.map
|