{"_id":"sg-chat","_rev":"36-4ee239543e1cd0f9d5992380b76c2e1e","name":"sg-chat","dist-tags":{"latest":"2.1.8"},"versions":{"1.0.0":{"name":"sg-chat","version":"1.0.0","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.0.0","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"93103fca816b47821638af6a2de36a56a2db6488","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.0.0.tgz","fileCount":5,"integrity":"sha512-kTPLHHxoK18uG8hNvuFPZplzjebRxKFbxw2TXTx8/Y4XuC7s4lc2UyOi6urmVwXzebTxgBR/wgkhi00DZoszYw==","signatures":[{"sig":"MEUCIBEncXWYT8ili36qgY5V7i1BgOj1LT3p4MmQOEwgJTCBAiEApCz6xPFtXvcYwOWgzG9T9B+ssxB6WG095+nv1mnmBcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5499154},"main":"sg-chat.js","gitHead":"19f2ff90e4f3966a7e2a9aedb87eb1079721d166","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.0.0_1748942230290_0.5050908308607669","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"sg-chat","version":"1.0.1","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.0.1","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"86bbd91a8aaf4c6f9b63253a7ff0dea9c9694cde","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.0.1.tgz","fileCount":5,"integrity":"sha512-63gKywpIB4ZjCV3bFi+KUaweoK37i6NRJrfar9pEuICYbUgjsl3zlwyhok9yIpDriBEFrEAWiL6gH7sjuQ16qQ==","signatures":[{"sig":"MEUCIQCmn+++lUStUf4qs00tZYEazzW2d9FcAe4CtwOkLE3GWQIgLS8d3zQ5ENlF1c+xlZxpiNCykFbBQQ7mzkIpjNW9IJ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5499168},"main":"sg-chat.js","gitHead":"19f2ff90e4f3966a7e2a9aedb87eb1079721d166","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.0.1_1748943128497_0.9594899799022918","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"sg-chat","version":"1.0.2","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.0.2","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"a1bb9cc4067af35dfa9f4e9273413abd7b879464","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.0.2.tgz","fileCount":5,"integrity":"sha512-bwfQil4FedYwVXJtT+BfcG4gr06MtQj+ZAub1mgfZFUkMdRbDGbLkEBkNlYtxYZfmtNcmMKZQ3IUkYfq75H7MQ==","signatures":[{"sig":"MEQCIBgDTyTJdbTvYJiVhPuhGOjRA6E3ogeJ02EcXPMo62GBAiByn2ow8x0t2q60qGaWh+T1SB3z+EviQT6epXt1ceI/dg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5500668},"main":"sg-chat.js","gitHead":"673584626d31e01db20a0d87b6d3a546f5f74bbe","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.0.2_1749021426993_0.17635858918723013","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"sg-chat","version":"1.0.3","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.0.3","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"c24cd758bcc46fb740f7a3981190266d98c74110","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.0.3.tgz","fileCount":5,"integrity":"sha512-I6WXGIV7GYpCi5vdxpX9kBJXG3+6hu61J7yQSoxijHpYhw0JTYHXAU7UCNVYpnkRm5F7AMbqtrT3yQpeZObQUQ==","signatures":[{"sig":"MEUCID//QpyCST47dRVp20DE+seabGgMfgJscTGZj7D6pg86AiEAtZC0J5hvrF/fldYCVSlTcUs+kkIgTaUcZfymbIAKryQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5502984},"main":"sg-chat.js","gitHead":"673584626d31e01db20a0d87b6d3a546f5f74bbe","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.0.3_1749028644533_0.29976403439957866","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"sg-chat","version":"1.0.4","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.0.4","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"d0304676ff6df21a12a8668aac3190b2406e51cf","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.0.4.tgz","fileCount":5,"integrity":"sha512-wGWJGd5YN+Xsd0yc/qHoS9wPCuX3SwA3gW4cRSebBbiUTt+oSjOKrIjd0wpdW2sKZ9/fYywn7NEC95tvill6hQ==","signatures":[{"sig":"MEUCIF7AK6/Y/Y8tovGzIUNXIjsSFqjxIgdFPueirppzjMRbAiEA3sxF75LgVF1X6WXi8Vf/RJyK/czKrtarlJfnTIjlLNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5503054},"main":"sg-chat.js","gitHead":"673584626d31e01db20a0d87b6d3a546f5f74bbe","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.0.4_1749028921877_0.3389622980521858","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"sg-chat","version":"1.0.5","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.0.5","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"601abc9333b229a60fe9b66c79b257a97b849c65","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.0.5.tgz","fileCount":5,"integrity":"sha512-UO4AxISSL0eH2JNW5SzOmJ5S8A4plcTl7GfaXOol+J2acPiCxMDnGrcxP04PMmU7AZS4e9tUlRGT72rH2GGm2Q==","signatures":[{"sig":"MEUCIFqt8clTQHgfiHsrJrXWByLptUZs6LbNO012GMH20WRMAiEAqMhgT2ClGtidq94iG766CRKvWW43TnlQ+706dccYc18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5503371},"main":"sg-chat.js","gitHead":"6deffad22ee1ef7772664aeced295ad881a09b1e","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.0.5_1749198229503_0.44871448548197646","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"sg-chat","version":"1.0.6","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.0.6","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"c1d0a03abc78b649a046723d6b02e6e90d442385","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.0.6.tgz","fileCount":5,"integrity":"sha512-GTxcOCkEw7ZCdaqDwyUcqynW7V3TRrwQCAKA7+MKNC4x8ae+fK1P/xYGpIb80oEugBOVqUU7xCc46mh6hWn5wA==","signatures":[{"sig":"MEUCIQDNF8OMlBaDlGRgG4lZyso8b4frUYxEIz/ikp0Ge8GEnAIgMJ81VB9kaQ5O5xjGtz2FP30QlhRkdswW9xoVgCqqzu4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5503468},"main":"sg-chat.js","gitHead":"f504fc909eaf52df40d49aa27d2dee786942758a","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.0.6_1749201012287_0.8043381128997933","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"sg-chat","version":"1.0.7","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.0.7","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"9684c13735d4667da7bdfc48b65a3010ee236b26","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.0.7.tgz","fileCount":5,"integrity":"sha512-TXMn3UaM1oWWhph3P2fOI+k2N9xOXU5B8QC+kQybSaJNX+pSjW1aDPuifVTElC31I4nauDkwWrt+9pA+U7bHqA==","signatures":[{"sig":"MEUCIQD2ymTSZxDv6S83LP3AS16TWxO9ZBe5qakmFh5ZPo/eYAIgHmtifb3138WN3kzCJImTUvqacbU9VouHtIKEY9lr4/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5504425},"main":"sg-chat.js","gitHead":"30b14c0ed83c14a864294f2081a1865dc2f0d0a2","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.0.7_1749457418561_0.7210406676440437","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"sg-chat","version":"1.0.8","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.0.8","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"9e7d5c1dcbbc215242d0f9500d12709523bbc50d","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.0.8.tgz","fileCount":5,"integrity":"sha512-RmV6oxLCyu8TXcUDI/f8oPdg6KMMKRLcYCbfE8twNS7f3UFVsKd3uXiXsmIPZfaSR4wcqEsq9A+3DK4li/MkvA==","signatures":[{"sig":"MEYCIQCh3NgeKq5vzoLdIrc4nRff0vsx2jpdK/rHD2PwmvkMxwIhAN9QOesD6lyedu0aXZ2Lfa9VsvBWKdX+hL7qciw2kDYZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5699053},"main":"sg-chat.js","gitHead":"809c55e43d8290c1eb08ac075448b96df453086a","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.0.8_1749696791749_0.3173589297034576","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"sg-chat","version":"1.0.9","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.0.9","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"1b4855d0684f1a7d0c71f83f51a9ca05c4f7b61e","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.0.9.tgz","fileCount":5,"integrity":"sha512-6jpxg7RfXOIc6cEDqw15Ry6YAetllY7AWIIaDwnoc3nMFIZc8LrormFYWSmT0iIRC72+qwb2EQoKxHBApBm26w==","signatures":[{"sig":"MEYCIQCkT8Y1hmGvelz8jgE6FM0pB6ph5tGmrv+ZXgRnsXHX5wIhANqNCltY/bPEe59mlObdZ3nO0ileBLrVOsiYkidhF7/G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5699182},"main":"sg-chat.js","gitHead":"a66f431488584c5879f61ad0d7b5512855f82ab5","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.0.9_1749699034755_0.5501984568078602","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"sg-chat","version":"1.1.0","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.1.0","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"86859c5fe695184e14cc456f4da2e4c3139f3bdb","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.1.0.tgz","fileCount":5,"integrity":"sha512-U88Ne7I3iCjURlWQVSm7UhudQ4YnsJ1DaKdt55p6ha2GWtufIqex4QiUzUjuJCGcQD6chiiluOSIC/1AYSizCQ==","signatures":[{"sig":"MEQCIHSP7MZgqBS2GsM3gBwQZSq+JRmcXeMFha6/i3r7gwZIAiB2Tac9tnu1HW42EXJ0BBOxpqepm/RyKu8kRb3KBuGkkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5699143},"main":"sg-chat.js","gitHead":"9868d18684c33dbe773185404d4e38351ab4cc29","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.1.0_1749699437266_0.9549265178099426","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"sg-chat","version":"1.1.1","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.1.1","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"cd08cd5f7ee7456154ecdbee9600992ed48e2c8e","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.1.1.tgz","fileCount":5,"integrity":"sha512-KyvEn5Zz3UWvMd2aJIF2YDyDP3iVCODeYYUhR5xmOAMkAbn2cA3yr6oG3d+m/qz4wVBWZN7mMUg87GDIWOhoqA==","signatures":[{"sig":"MEQCIBKoqSQd7GN8Labhcx8hf4GBTLN8cE7yWcicPAGPzlNFAiBQx0zDB2Ue9GdYbn3vQAyW8Jgr/sUh9wH6BbxQpRPyEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5699531},"main":"sg-chat.js","gitHead":"1b4327ae53826493ca6bf3ab8e4e839fe65c3eb2","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.1.1_1750150438253_0.42916829139213286","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"sg-chat","version":"1.1.2","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.1.2","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"052358122541fbe4b479dc3920d49f8243c06e0f","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.1.2.tgz","fileCount":5,"integrity":"sha512-WXajfzvwivyencWUI9v4R88jM5CmmMDPZBI/HnmpfaZlhqQUsu7VWxbLwu6UjDfRZbGR+Z6+myOsAmodQMZjrw==","signatures":[{"sig":"MEYCIQCl4NUdHVXazg1rgPWSNImSzQAvyWDZsHGUn54qjeZyOwIhAPY3P6Ot37oG1zmUpJ8nAc45Lnw4APB8ozyCHhmJqilD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5706555},"main":"sg-chat.js","gitHead":"fc7da4b129a26271e1749e0b860659903fb0754f","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.1.2_1750296437015_0.31120036722640276","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"sg-chat","version":"1.1.3","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.1.3","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"cdb3c76fa0e834057c80ee79caa9fb0d8a799f30","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.1.3.tgz","fileCount":5,"integrity":"sha512-m+ypDPnQsdqEkLGs5dV3iZNXSrux/1sfRnsE0uBZbj/To9PZx+eiLh33K6XnjALDBRAjFjaHWFf+PdEfifL2nw==","signatures":[{"sig":"MEYCIQDKn2td/xCPhXaHCwyieW5o8YBucDcTl0Qf8H1DN5h/vwIhALAgtbhT6Ydfh2aOXFpOD72HOCpEqdUcjU6NlrwOyJcY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5706661},"main":"sg-chat.js","gitHead":"fc7da4b129a26271e1749e0b860659903fb0754f","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.1.3_1750297138101_0.6645143285701662","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"sg-chat","version":"1.1.4","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.1.4","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"5498b2c41c61e833323d93692833b838477239af","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.1.4.tgz","fileCount":5,"integrity":"sha512-jwRKxdNALlGxiKHdZ89yCc13iqpLSn+TA5+Bv3kQoNovGOjBzp2iSk8RgKEtTcsv1cysaiOx22Q/3nQjNjAN3g==","signatures":[{"sig":"MEYCIQCDyTO//lM9zPXGLZFfq+9dUpQ8f1LwoTnXNV1yipAZMwIhAKR3G6RhzeYDMOtXGTdFjtuYrX0zLd3JAiFaOq3vTZAb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5713689},"main":"sg-chat.js","gitHead":"043bb5f0739b489c8f65a4e75d3bfa1c59f71e1e","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.1.4_1750406477277_0.6076632705696807","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"sg-chat","version":"1.1.5","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.1.5","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"0d5e2476d0236bfd873bdac513d1e16b220b975c","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.1.5.tgz","fileCount":5,"integrity":"sha512-mpaB1nyDVSJwwX/lTJpBCde0tvphCr9F4x5rdrIwfAnVBTbxoZXm/Uz8uZ+FnVswAqrMKsvh6unmMf4zYB+kmw==","signatures":[{"sig":"MEUCIBVu2VaxvxHYvYGfcIDK/Mru7+mAYuICVRoYTGf6tyVLAiEA/7GNx5aw9si1xKU2xVrhwndDBjH3rinDusMWq7ggWy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5715838},"main":"sg-chat.js","gitHead":"043bb5f0739b489c8f65a4e75d3bfa1c59f71e1e","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.1.5_1750645908835_0.7656005590061512","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"sg-chat","version":"1.1.6","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@1.1.6","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"749ccc5d7a76d21e67dfaca34c709a46eef6a0ba","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-1.1.6.tgz","fileCount":5,"integrity":"sha512-24DCqc4oLaC9Wl5f9nuXuKXM8sKdtqTq5L0fFx0pEzI1M/ImiKdlwChz2juaTKqIiq8cMYxp/5QXSBmLFm7Mdg==","signatures":[{"sig":"MEQCIBWnf88XYAGsduu+jha1687SFzMzIf1oq2ogEUKgmQsaAiBEFIanO9iubfmvz/I6tpvphzgtE0ea2hLIoyVh2l7qKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5715877},"main":"sg-chat.js","gitHead":"043bb5f0739b489c8f65a4e75d3bfa1c59f71e1e","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_1.1.6_1750646404909_0.4779460325252074","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"sg-chat","version":"2.0.0","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.0.0","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"1ecad7e108db0030ed4d7cd759bcd13814177ed9","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.0.0.tgz","fileCount":5,"integrity":"sha512-BZqm7/YDzxbQrIvLkd6lYSDTNZ0xDe6gBq+Q7/nb69+qTf629I0h25cVJSsmMhvIGHmlT9TwsV0c2lUd+EdiSA==","signatures":[{"sig":"MEUCIQCvnQpih4O/NKiJgCQd74H5WQykkHgx/t83PFYemBClhQIgcVpUtqqQ/w3/JFv1EacN+YyT4uuaEfLG845qd34kMx0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5715951},"main":"sg-chat.js","gitHead":"043bb5f0739b489c8f65a4e75d3bfa1c59f71e1e","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.0.0_1750648024384_0.06027386636233434","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"sg-chat","version":"2.0.1","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.0.1","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"e604a11d327f694ccecc069ef29846e2c59fa429","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.0.1.tgz","fileCount":5,"integrity":"sha512-jW6ByRsNF3+X05Ou2HTrDlrj16RFvFnS+AE+kmotIVoEZQ6JA3O4AuWQ+RW13RqzKQAXy+d8PK4a5dLnN1Pbew==","signatures":[{"sig":"MEYCIQCskkUOpM2lHXH7UCrbef1+1BF724u2Z7yZgOAX+qZPHwIhAIGt7jQck0+8/vTulKgWn9TbRH2PiO6bHfxJKTdU3zGp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5716303},"main":"sg-chat.js","gitHead":"043bb5f0739b489c8f65a4e75d3bfa1c59f71e1e","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.0.1_1750649150677_0.7096789316367735","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"sg-chat","version":"2.0.2","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.0.2","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"4f9997e20efb7ff06de7a550e7f41f18703fe813","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.0.2.tgz","fileCount":5,"integrity":"sha512-StoSCZTn11YmulzQQJgQsnQMhP6440m8qQfAHl+WoxuzABjn6wn82O7qF8Spts/jHxKrWF/6uf/0cIQvHcJD4g==","signatures":[{"sig":"MEYCIQCLr2MggramzW97Y40P4dYbk9g8d2sRHeEgU24/z6QJ+gIhAKx3F8vt6CHm2tABjC8nhVedFbp9fjhVuGMxhMtsJl+p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5716709},"main":"sg-chat.js","gitHead":"28dac42bd4185d0af47a8b0eb3b4d062931caa28","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","prismjs":"^1.30.0","naive-ui":"^2.41.0","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.0.2_1750734741863_0.45735562251063366","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"sg-chat","version":"2.0.3","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.0.3","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"7a13f090956a7365171977bc93c829a603524157","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.0.3.tgz","fileCount":5,"integrity":"sha512-U9PzhO1Azh4JieqZY85rE4GrTrKNIGoT6eBwpFI+9QKfA6ctJxqqImNd8RrQTnyf23svr4saCRmw+4JmjknZdw==","signatures":[{"sig":"MEQCIFcEGqTF2Twwolz1M/Xs49wyI8Lbv3Qq011BSLQHYLVVAiB4OCPH/bg1I2BieuG4QefWznL4c694pCVMl++oXpftfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8349116},"main":"sg-chat.js","gitHead":"a87b278a37d71e91b0d1bc0b527bc06f408a6b25","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.0.3_1750844226382_0.9378880247318104","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"sg-chat","version":"2.0.4","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.0.4","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"318df6b5a44cc28cb908dfe26bc370ff2f97300f","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.0.4.tgz","fileCount":9,"integrity":"sha512-YpK+qEHtMjSzbIpU/aSPCeOUvBgOI6MLJCMWnuKDBM2xpos23FMg223hdaJQCqRWyhQrikJlxwY2Z+AMWmw+hA==","signatures":[{"sig":"MEYCIQCX2ZCOUkZX39Xvu3wltXwSl+CgVObkSx5qvABseBGsrgIhAOOuHmtbFHDiImtukTK/2mnIwzoYcXS2Zay1qOY/qU2i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8597974},"main":"sg-chat.js","gitHead":"0e9ad9870da44b5f31a0bd0071a8c2988eecdb7d","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.0.4_1751341908940_0.30341502418061816","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"sg-chat","version":"2.0.5","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.0.5","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"45a5d24a60e99bca63c1399bf83aec0865fbde12","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.0.5.tgz","fileCount":5,"integrity":"sha512-sRjeO8wi8q4sK+rsr/LaT6t2XYKaXc911WewAUdvXqJvfUKMXfWXX1e6cAsNeRXipCAni3H0u8GD6en2R8DzNA==","signatures":[{"sig":"MEUCIQCsQCKuMo5Y9yUngE815dTsRq0lDO3q/nGWDNXw6iJOfgIgMr+OUseRFzkQ71+hWupObtbiyLVicq4tUl/njxjZQbM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8364885},"main":"sg-chat.js","gitHead":"0e9ad9870da44b5f31a0bd0071a8c2988eecdb7d","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.0.5_1751355123358_0.889142995098551","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"sg-chat","version":"2.0.6","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.0.6","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"60639765fd4dad75a5d8c51a33ad95a9109ee215","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.0.6.tgz","fileCount":5,"integrity":"sha512-g7j4O8v4qleqnCZU/qtH5ueUudjg9r6ihgFWlRNYikV9HZu/cHVL2Yax0wpGEJT+dhdMHnrNYqVE23TpzmPsFA==","signatures":[{"sig":"MEQCICF8vtf23QDfbUihpuZkAbc/Xqai2fkXVhAFyBM9t2P6AiBTCtvsJLMYPgFlbUWc7Iu50UPts64Y1t0aP2OtK6+q1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8366214},"main":"sg-chat.js","gitHead":"0e9ad9870da44b5f31a0bd0071a8c2988eecdb7d","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.0.6_1751422343778_0.8863795657624154","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"sg-chat","version":"2.0.7","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.0.7","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"8541de85d7b97f76660c0c553d2666140251ca78","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.0.7.tgz","fileCount":5,"integrity":"sha512-8LWo/mQ50UPHAK0aerHJErSgRYvO18qeX/AiomWJ5R4z5LYQa2JoLiRm5OPJfgFETxbplXII3J0h60PDo7Bg4g==","signatures":[{"sig":"MEQCICFdPNq2VCmaJXsXRLOuLCIMifAMawgJ9q5DVnwNS5LEAiANPj8F/92vr9Atw0WuuIo3D/QnfsIvlMwL1Lj92CNUww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8365931},"main":"sg-chat.js","gitHead":"0e9ad9870da44b5f31a0bd0071a8c2988eecdb7d","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.0.7_1751422586183_0.9533971970088877","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"sg-chat","version":"2.0.8","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.0.8","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"d1c129c9d5712be69fd85332f7fa7b9e31d0681b","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.0.8.tgz","fileCount":5,"integrity":"sha512-yfmTM6OS5Hmwjnq6jObXtMpj1LXG4LXs72W4wEj+4JkQsOS5oiyJg4aq0lmHiiso80uuyplTcWC8l1kwWcZYng==","signatures":[{"sig":"MEUCIQCAOqwlZC6EAs2pHc7AJ+QLzYXtpszK0JjKB7MrTr7ljgIgFWz5wA4U7eWrmbjrRBdSY6Taa/VYNwPAmgcqnnxKOps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8365989},"main":"sg-chat.js","gitHead":"0e9ad9870da44b5f31a0bd0071a8c2988eecdb7d","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.0.8_1751424150272_0.2358402475859258","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"sg-chat","version":"2.0.9","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.0.9","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"f7135a0ede284e5728c7f664fb6f0e6a6b7ba9a3","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.0.9.tgz","fileCount":5,"integrity":"sha512-KntGEeIY1jZlvZATo8qxv5zx3wGeFvBTRWOenR8ozOY5wLBTAl314khroH5U4OFq+S5yUb06ylzuBuilzqE5Dg==","signatures":[{"sig":"MEYCIQDkV3vjZiHF8RA8Pu67PPZFzrZ4w0HMx8Nc//om4DXiXgIhANP8kghEp14Y/0AewCg3Rajq9KS3C02sVCl9Bsrzou01","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8368539},"main":"sg-chat.js","gitHead":"2853814795c5cd915bf33d120c3ef3540bf3fadc","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","actor":{"name":"chan.miao","type":"user","email":"446475969@qq.com"},"email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.0.9_1751852659799_0.3690406069639873","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"sg-chat","version":"2.1.0","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.1.0","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"95e9c12ae1daa7c2e497e30416ea666dacf58064","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.1.0.tgz","fileCount":5,"integrity":"sha512-nrQAhP0myxNnthxePPOQ0IOUgik8p20GOw4XDXyHgfWaRCXN8ckXDKuiUF8aIqTzGk4DfYI2AxD4ilYzTA9ZCw==","signatures":[{"sig":"MEUCIQCARErRGf3ur4wS0yZAqGCVMJBmuYTcz0OTYXxsaucgnwIgcZeZzjLR71JtOv+VzN8ZAQzxY6EY7lrRvYb3tL+bqhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8373663},"main":"sg-chat.js","gitHead":"21e5408505611c6791d6af60177d39a8487f0982","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.1.0_1752198756156_0.6687013705597489","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"sg-chat","version":"2.1.1","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.1.1","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"b86e442539290d7bfa65bb309b796e753a88acd8","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.1.1.tgz","fileCount":5,"integrity":"sha512-CLuatHbEUwncSD25T67dMeAk1vVmMM28I6nk7nxtsvBYIeVIvfI4B5BUCjakee5FItjzcoiTbav+NWh9fyqeNg==","signatures":[{"sig":"MEQCICxOm+Xk5XKeo1EiediM7EjrZvdWFwRn3cGqzJ6ThbyXAiArcqS8M1naIt7NJKqnBdiqdeQYpSUvli+PtL+Tk6cWWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8373741},"main":"sg-chat.js","gitHead":"919ce614c07358ac19eeecf108de6e89d1ae4855","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.1.1_1752635587338_0.3508002095134344","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"sg-chat","version":"2.1.2","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.1.2","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"e2d80ae883c145c45973fbf3b0f20ca1cec15c68","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.1.2.tgz","fileCount":5,"integrity":"sha512-ICzoXmTdHFRqtCrd8orIAQh5aqssuuGslH/fimj2snQCsaj31KVJr6GF7cyQ45ofHbvsht2wZJKTWAhxAnLkyw==","signatures":[{"sig":"MEUCIDyeguMrI4o3bE4KJ4X9R73uWp7kBkP4P/vooxmd9cvTAiEAybLPK5B2Z42jQDJdoz93dWMZ6YvptPBhSQ1wfFekr0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8373795},"main":"sg-chat.js","gitHead":"919ce614c07358ac19eeecf108de6e89d1ae4855","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.1.2_1752718896788_0.6923568482889904","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"sg-chat","version":"2.1.3","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.1.3","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"871c479b576718426810bb665762343352546d15","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.1.3.tgz","fileCount":5,"integrity":"sha512-SCsTTc28yrBwvjBgJshshIoXskuBLwQVJW827sSp/kIlEwxHR+e0plizy8jMpj6iaqmaFL2zEDAbwgwms+IfAw==","signatures":[{"sig":"MEUCIFoziss40qql3SeKqXoz4NhjTA3GSEueGX3vG1MGBhpHAiEA6L8gCsbrH6dyeCIJOc0iT/qQtB9i8ooXX2eOqELjrbk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8373906},"main":"sg-chat.js","gitHead":"819d1da54c1290b65769cd220906e54ea9ae70e4","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.1.3_1752740662550_0.5512633814469263","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"sg-chat","version":"2.1.4","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.1.4","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"e361812a4610c846a8b22145495a41a349652722","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.1.4.tgz","fileCount":61,"integrity":"sha512-ebya/E+b+ntH5u4ovas8wlIbgPtiiQelo/qN7PKwps63n/ZhepA8CAS/KvuPar4TDPl7xBPG2FWeLcqV0AdaUA==","signatures":[{"sig":"MEQCICeq7sV7Z//ERjTjg5hEugJWGJgoMx07r55T7V9JCXZGAiAEzMga6n1+sx85d/GqWk6gCeCKEmVSZfnB5Y//+XgdxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14581718},"main":"sg-chat.js","gitHead":"819d1da54c1290b65769cd220906e54ea9ae70e4","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.1.4_1753773084763_0.3731261901313574","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"sg-chat","version":"2.1.5","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.1.5","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"473ff2f9fb5299f52105b6fdcb70ffd356d52bcb","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.1.5.tgz","fileCount":61,"integrity":"sha512-5lvYpBz4/dAkePneuySmpn897ngGbhJXB+lzaE6+xsdzzztm4ZSdox7AH873bWLfMmjtVQLh969baNyviBbD6Q==","signatures":[{"sig":"MEUCIFxhtqs2gmPFeqJMPLZdrukmH9D2/3MDc9kJDx+cdO90AiEA5Z8KTOpkL/p3iVFuMsUAJ0xeQetExl5keorg7I94LQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14582913},"main":"sg-chat.js","gitHead":"af1bbe677751b239f6b806689b45e60d45ef392c","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.1.5_1754459210475_0.19609562643172973","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"sg-chat","version":"2.1.6","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.1.6","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"73b3cd4421475e796b327104b917e5a9d454a61b","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.1.6.tgz","fileCount":61,"integrity":"sha512-MfNEwN1MqbeOxMhLey08ue575HTHY1xZWFId5vI/AiXajBn9tfNQQJLXzyCpeXTaMA5DWNuqh5dYjTB4oOytJQ==","signatures":[{"sig":"MEUCIQDO6cKuJbKolGdtxS9fyX+eN3gkW5JEwVHa9Q2MTPXpWQIgQI0DqIZb2kEMeygCgTFSvhtvys+ygjhQuh8OCzQSH9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14583023},"main":"sg-chat.js","gitHead":"af1bbe677751b239f6b806689b45e60d45ef392c","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.1.6_1754460387330_0.5872611359267739","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"sg-chat","version":"2.1.7","keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","_id":"sg-chat@2.1.7","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"dist":{"shasum":"9a826f22f0b71bd2e9a3f8dd0b14937c592b0c4e","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.1.7.tgz","fileCount":61,"integrity":"sha512-4+0DE6VvlN0lmkoRv4eTrwQYnTEsiAXxAUdPRXhwVroZQS98H5npthNnjmM5Fs0r2DhOJNczCZQsi+kqib7iuw==","signatures":[{"sig":"MEYCIQClfgmeqBjLBCJNhjfjaP2Bv2Qnju3USnihoCURC2Jq0AIhAOFh9MOFRdB6A1v0WkXsxxs4qQW1Y9Tls4Uwqd20gxd3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14586404},"main":"sg-chat.js","gitHead":"beca63715230545fc0bdf724236a22513d0e45ee","private":false,"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"_npmVersion":"10.5.0","description":"简单的智能问答组件","directories":{},"_nodeVersion":"20.12.0","dependencies":{"katex":"^0.16.21","v-wave":"^3.0.2","echarts":"^5.6.0","prismjs":"^1.30.0","naive-ui":"^2.41.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","highlight.js":"^11.11.1","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","@microsoft/fetch-event-source":"^2.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sg-chat_2.1.7_1758678290730_0.5040996659337869","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"sg-chat","version":"2.1.8","description":"简单的智能问答组件","private":false,"main":"sg-chat.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":["sg-chat","chat-ui","chat"],"author":"","license":"ISC","dependencies":{"@microsoft/fetch-event-source":"^2.0.1","echarts":"^5.6.0","highlight.js":"^11.11.1","katex":"^0.16.21","markdown-it":"^14.1.0","markdown-it-container":"^4.0.0","markdown-it-highlightjs":"^4.2.0","markdown-it-link-attributes":"^4.0.1","naive-ui":"^2.41.0","prismjs":"^1.30.0","recordrtc":"^5.6.2","v-wave":"^3.0.2","vue-clipboard3":"^2.0.0","vue3-markdown-it":"^1.0.10"},"_id":"sg-chat@2.1.8","gitHead":"25e6b34115886635cd835e437fb471534b33ac33","_nodeVersion":"20.12.0","_npmVersion":"10.5.0","dist":{"integrity":"sha512-JFWVk+D1890yfCgSZAdirv5kZ/MPLAH0/ZgXNqT8EB6rlg32LhHGmw4zUkGqgck0qnR9Ydz6y6m560vHIyMcqA==","shasum":"8afb270e4f3fc16e0247c30b4bab0bb097690117","tarball":"https://registry.npmjs.org/sg-chat/-/sg-chat-2.1.8.tgz","fileCount":61,"unpackedSize":14586521,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG4846w3yr7K7kvuMwCcg7GP43Embb/7aYi+S7owtCiMAiBAPRLqXGnVILpACKTCWhS6n4itnn3FTTcxcJ6FpLHJKw=="}]},"_npmUser":{"name":"chan.miao","email":"446475969@qq.com"},"directories":{},"maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sg-chat_2.1.8_1760519863697_0.9919782534203883"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-03T09:17:10.289Z","modified":"2025-10-15T09:17:44.108Z","1.0.0":"2025-06-03T09:17:10.531Z","1.0.1":"2025-06-03T09:32:08.729Z","1.0.2":"2025-06-04T07:17:07.243Z","1.0.3":"2025-06-04T09:17:24.770Z","1.0.4":"2025-06-04T09:22:02.077Z","1.0.5":"2025-06-06T08:23:49.728Z","1.0.6":"2025-06-06T09:10:12.554Z","1.0.7":"2025-06-09T08:23:38.789Z","1.0.8":"2025-06-12T02:53:11.961Z","1.0.9":"2025-06-12T03:30:34.966Z","1.1.0":"2025-06-12T03:37:17.526Z","1.1.1":"2025-06-17T08:53:58.463Z","1.1.2":"2025-06-19T01:27:17.242Z","1.1.3":"2025-06-19T01:38:58.284Z","1.1.4":"2025-06-20T08:01:17.581Z","1.1.5":"2025-06-23T02:31:49.075Z","1.1.6":"2025-06-23T02:40:05.108Z","2.0.0":"2025-06-23T03:07:04.590Z","2.0.1":"2025-06-23T03:25:50.849Z","2.0.2":"2025-06-24T03:12:22.089Z","2.0.3":"2025-06-25T09:37:06.639Z","2.0.4":"2025-07-01T03:51:49.264Z","2.0.5":"2025-07-01T07:32:03.640Z","2.0.6":"2025-07-02T02:12:23.969Z","2.0.7":"2025-07-02T02:16:26.442Z","2.0.8":"2025-07-02T02:42:30.478Z","2.0.9":"2025-07-07T01:44:20.033Z","2.1.0":"2025-07-11T01:52:36.350Z","2.1.1":"2025-07-16T03:13:07.602Z","2.1.2":"2025-07-17T02:21:37.062Z","2.1.3":"2025-07-17T08:24:22.787Z","2.1.4":"2025-07-29T07:11:24.992Z","2.1.5":"2025-08-06T05:46:50.749Z","2.1.6":"2025-08-06T06:06:27.571Z","2.1.7":"2025-09-24T01:44:50.963Z","2.1.8":"2025-10-15T09:17:43.935Z"},"license":"ISC","keywords":["sg-chat","chat-ui","chat"],"description":"简单的智能问答组件","maintainers":[{"name":"chan.miao","email":"446475969@qq.com"}],"readme":"# 目录\r\n\r\n- [1 版本更新](#1-版本更新)\r\n- [2 使用说明](#2-使用说明)\r\n  - [2.1 sg-chat 集成说明](#21-sg-chat-集成说明)\r\n    - [2.1.1 下载](#211-下载)\r\n    - [2.1.2 使用](#212-使用)\r\n    - [2.1.3 参数说明](#213-参数说明)\r\n  - [2.2 录音功能集成说明](#22-录音功能集成说明)\r\n    - [2.2.1 开启录音](#221-开启录音)\r\n    - [2.2.2 集成录音失败的原因](#222-集成录音失败的原因)\r\n  - [2.3 数字人虚拟形象集成说明](#23-数字人虚拟形象集成说明)\r\n    - [2.3.1 video 显示](#231-video显示)\r\n    - [2.3.2 WebRTC工具](#232-WebRTC工具)\r\n    - [2.3.3 初始化数字人](#233-初始化数字人)\r\n    - [2.3.4 连接数字人](#234-连接数字人)\r\n    - [2.3.5 去掉绿布](#235-去掉绿布)\r\n\r\n## 1 版本更新\r\n\r\n##### 1.0.0 初版发布，基础的聊天组件\r\n\r\n##### 1.0.1 使用方法修改\r\n\r\n##### 1.0.2 组件文档调用补充\r\n\r\n##### 1.0.3 支持非流式响应\r\n\r\n##### 1.0.4 组件文档调用补充\r\n\r\n##### 1.0.5 优化messages传递方式\r\n\r\n##### 1.0.6 添加重试回调函数\r\n\r\n##### 1.0.7 message参数补充\r\n\r\n##### 1.0.8 增加语音转文字识别功能\r\n\r\n##### 1.0.9 解决输入文本后发送按钮置灰问题\r\n\r\n##### 1.1.0 解决输入框光标置前问题\r\n\r\n##### 1.1.1 解决开始think后数据重复问题\r\n\r\n##### 1.1.2 支持思考过程和详细步骤功能显示\r\n\r\n##### 1.1.3 支持appid切换\r\n\r\n##### 1.1.4 messages结构修改\r\n\r\n##### 1.1.6 解决messages回显失败问题，统一点踩状态字段\r\n\r\n##### 2.0.0 messages逻辑结构修改\r\n\r\n##### 2.0.1 解决详细步骤调用工具结果回显失败问题\r\n\r\n##### 2.0.2 解决非流式接口因结构不同导致失败问题\r\n\r\n##### 2.0.3 echart图表渲染\r\n\r\n##### 2.0.4 详细步骤，思考过程标题增加显示与隐藏功能。详细步骤，思考过程支持输出完成后收起共功能。数字人，录音转文字集成补充\r\n\r\n##### 2.0.5 readme文档补充\r\n\r\n##### 2.0.6 消息状态调整,点菜状态调整，readme文档补充\r\n\r\n##### 2.0.7 readme点踩状态文档修正\r\n\r\n##### 2.0.8 解决点踩失败问题\r\n\r\n##### 2.0.9 解决任务执行失败消息不显示问题\r\n\r\n##### 2.1.0 支持theme主题切换\r\n\r\n##### 2.1.1 修改背景色变量名称\r\n\r\n##### 2.1.2 一次只允许单次问答，修复正在思考时删除问答，未终止回答问题\r\n\r\n##### 2.1.3 修复上一次问答未完成时，按回车键可以继续发送问题\r\n\r\n##### 2.1.4 支持mermaid渲染，支持头像替换\r\n\r\n##### 2.1.5 当数字人形象连接成功后，点击朗读，调用数字人服务朗读，未连接数字人时，调用系统自带的朗读功能\r\n\r\n##### 2.1.6 解决当数字人形象连接成功后，朗读失败问题\r\n\r\n##### 2.1.7 支持ai中台定制化流程渲染及页面跳转\r\n\r\n##### 2.1.8 优化deep-link 字体颜色\r\n\r\n## 2 使用说明：\r\n\r\n### 2.1 sg-chat 集成说明\r\n\r\n#### 2.1.1 下载\r\n\r\n```\r\nnpm install sg-chat\r\n```\r\n\r\n#### 2.1.2 使用\r\n\r\n```\r\n  import { SgChat } from 'sg-chat'\r\n  import 'sg-chat/sg-chat.css'\r\n```\r\n\r\n```\r\n <sg-chat\r\n    :chatId=\"chatId\"\r\n    action=\"/api/v1/chat/completions\"\r\n    v-model=\"state.messages\"\r\n    :stream=\"false\"\r\n    :isRecord=\"true\"\r\n    wssUrl=\"wss://172.20.20.199:10096\"\r\n    :completeCalling=\"true\"\r\n    :variables=\"variables\"\r\n    appId=\"\"\r\n    theme=\"dark\"\r\n    @on-send=\"onSend\"\r\n    @on-receive=\"onReceive\"\r\n    @on-delete=\"onDelete\"\r\n    @on-close=\"onClose\"\r\n    @on-error=\"onError\"\r\n    class=\"right-panel\"\r\n  />\r\n```\r\n\r\n#### 2.1.3 参数说明\r\n\r\n| 名称            | 释义                                                                 | 类型     | 是否必须 |\r\n| :-------------- | :------------------------------------------------------------------- | :------- | :------- |\r\n| chatId          | 会话ID                                                               | String   | 是       |\r\n| isSupportFile   | 是否支持文件,默认false                                               | Boolean  | 否       |\r\n| action          | 服务地址                                                             | String   | 是       |\r\n| stream          | 流式响应，默认true                                                   | Boolean  | 否       |\r\n| value           | 消息                                                                 | Array    | 是       |\r\n| theme           | 主题，支持 light(亮色)，dark(暗色) 默认light                         | String   | 否       |\r\n| completeCalling | 是否完整性                                                           | Boolean  | 否       |\r\n| variables       | 参数                                                                 | Object   | 否       |\r\n| appId           | 智能体id                                                             | String   | 是       |\r\n| isRecord        | 是否支持语音转文字 默认false                                         | Boolean  | 否       |\r\n| wssUrl          | asr服务器地址 isRecord为true时必填                                   | String   | 否       |\r\n| prologue        | 开场白 {text:'开场白',problems:['问题1','问题1']}                    | Object   | 否       |\r\n| aiAvatarUrl     | 智能体头像地址                                                       | String   | 否       |\r\n| aiAvatarStyle   | 智能体头像样式 {width:'30px',height:'30px'}                          | Object   | 否       |\r\n| userAvatarUrl   | 用户头像地址                                                         | String   | 否       |\r\n| userAvatarStyle | 用户头像样式 {width:'30px',height:'30px'}                            | Object   | 否       |\r\n| isConnectDigit  | 是否连接数字人 默认false                                             | Boolean  | 否       |\r\n| on-send         | 发送消息回调函数                                                     | Function | 否       |\r\n| on-receive      | 接受消息回调函数                                                     | Function | 否       |\r\n| on-delete       | 删除消息回调函数                                                     | Function | 否       |\r\n| on-close        | 消息接收完成回调函数                                                 | Function | 否       |\r\n| on-love         | 点赞/踩回到函数 userFeedback default:默认，upvote：点， downvote：踩 | Function | 否       |\r\n| on-jump         | 页面跳转回调函数                                                     | Function | 否       |\r\n\r\n#### Messages 参数\r\n\r\n##### 1.参数说明\r\n\r\n| 名称            | 释义                                                            | 是否必须 |\r\n| :-------------- | :-------------------------------------------------------------- | :------- |\r\n| question        | 用户消息内容                                                    | 是       |\r\n| dataId          | 消息编号                                                        | 是       |\r\n| status          | 消息状态 waiting:等待,running:运行中,finished：完成,failed:失败 | 是       |\r\n| completeDetails | 智能体消息内容                                                  | 是       |\r\n| userFeedback    | 点赞/踩状态 default:默认，upvote：点， downvote：踩             | 否       |\r\n\r\n##### message 结构示例\r\n\r\n```\r\n {\r\n    \"chatId\": \"9762b3a5-509f-4745-9984-2f79c57e176f\",\r\n    \"dataId\": \"BU5NxZjGkNlMG6ZEUFRa\",\r\n    \"question\": \"aaaa\",\r\n    \"completeDetails\": [\r\n        {\r\n            \"event\": \"TextMessage\",\r\n            \"data\": {\r\n                \"id\": \"9762b3a5-509f-4745-9984-2f79c57e176f\",\r\n                \"dataId\": \"BU5NxZjGkNlMG6ZEUFRa\",\r\n                \"object\": \"southgis.chat.completion\",\r\n                \"created\": 1750817401514,\r\n                \"model\": \"Qwen3-30B-A3B-Int4-W4A16\",\r\n                \"choices\": [\r\n                    {\r\n                        \"message\": {\r\n                            \"role\": \"user\",\r\n                            \"content\": \"aaaa\"\r\n                        },\r\n                        \"finish_reason\": null,\r\n                        \"index\": 0\r\n                    }\r\n                ],\r\n                \"usage\": null,\r\n                \"type\": \"OtherResponse\"\r\n            }\r\n        },\r\n        {\r\n            \"event\": \"ThoughtEvent\",\r\n            \"data\": {\r\n                \"id\": \"9762b3a5-509f-4745-9984-2f79c57e176f\",\r\n                \"dataId\": \"BU5NxZjGkNlMG6ZEUFRa\",\r\n                \"object\": \"southgis.chat.completion\",\r\n                \"created\": 1750817401514,\r\n                \"model\": \"Qwen3-30B-A3B-Int4-W4A16\",\r\n                \"choices\": [\r\n                    {\r\n                        \"message\": {\r\n                            \"role\": \"Assistant\",\r\n                            \"content\": \"好的，用户发送了“aaaa”。首先，我需要确定用户的需求是什么。可能的情况有很多种：用户可能是在测试系统，或者误操作发送了多个a，也可能有其他意图。\\n\\n接下来，我要考虑如何回应。如果用户只是随意输入，可能需要友好地询问是否有问题需要帮助。同时，要保持自然，避免让用户感到被质疑。\\n\\n另外，要检查是否有潜在的问题。比如，用户是否在尝试触发某种特定的响应，或者是否有拼写错误。但“aaaa”看起来像是重复的字母，可能没有实际意义。\\n\\n还要注意用户可能的背景。如果是新用户，可能需要更详细的引导；如果是老用户，可能已经了解如何与系统互动。但当前信息不足，无法确定。\\n\\n最后，确保回应符合公司的政策和价值观，保持专业和友好，同时鼓励用户提供更多信息以便更好地帮助他们。\"\r\n                        },\r\n                        \"finish_reason\": null,\r\n                        \"index\": 0\r\n                    }\r\n                ],\r\n                \"usage\": null,\r\n                \"type\": \"FinalResponse\"\r\n            }\r\n        },\r\n        {\r\n            \"event\": \"TextMessage\",\r\n            \"data\": {\r\n                \"id\": \"9762b3a5-509f-4745-9984-2f79c57e176f\",\r\n                \"dataId\": \"BU5NxZjGkNlMG6ZEUFRa\",\r\n                \"object\": \"southgis.chat.completion\",\r\n                \"created\": 1750817401514,\r\n                \"model\": \"Qwen3-30B-A3B-Int4-W4A16\",\r\n                \"choices\": [\r\n                    {\r\n                        \"message\": {\r\n                            \"role\": \"Assistant\",\r\n                            \"content\": \"你好！看起来你可能在测试或随意输入了一些字符。如果有任何问题或需要帮助，请随时告诉我！😊\"\r\n                        },\r\n                        \"finish_reason\": \"stop\",\r\n                        \"index\": 0\r\n                    }\r\n                ],\r\n                \"usage\": {\r\n                    \"prompt_tokens\": 0,\r\n                    \"completion_tokens\": 0,\r\n                    \"total_tokens\": 0\r\n                },\r\n                \"type\": \"FinalResponse\"\r\n            }\r\n        }\r\n    ],\r\n    \"status\": 'finished',\r\n    \"userFeedback\": 'default',\r\n\r\n}\r\n```\r\n\r\n##### 2.completeDetails 说明\r\n\r\n[autogen的消息和事件说明](https://github.com/miaochan94/sg-chat/blob/main/autogen%E7%9A%84%E6%B6%88%E6%81%AF%E5%92%8C%E4%BA%8B%E4%BB%B6.md)\r\n\r\n### 2.2 录音功能集成说明\r\n\r\n#### 2.2.1 开启录音功能\r\n\r\nisRecord为true，并设置wssUrl 录音服务的值，如下\r\n\r\n![alt](https://raw.githubusercontent.com/miaochan94/sg-chat/refs/heads/main/luyin.png)\r\n\r\n#### 2.2.2 集成录音失败的原因\r\n\r\n因为像摄像头和麦克风属于可能涉及重大隐私问题的API，getUserMedia()的规范提出了浏览器必须满足一系列隐私和安全要求。这个方法功能很强大，只能在安全的上下文中使用，在不安全的环境中为undefined\r\n允许的安全环境有：\r\n\r\n- 使用HTTPS\r\n\r\n- file://url方案加载的页面\r\n\r\n- 本地开发者测试用的 localhost、127.0.0.1\r\n\r\n如果想要在服务器使用录音设备，有两种方法：\r\n\r\n- 使用HTTPS\r\n- 浏览器开放某个地址的权限\r\n\r\n1. 打开谷歌浏览器，在地址栏输入：\r\n   chrome://flags/#unsafely-treat-insecure-origin-as-secure\r\n   ![alt](https://raw.githubusercontent.com/miaochan94/sg-chat/refs/heads/main/1.png)\r\n\r\n2. 敲击回车后，配置如下信息，多个地址用英文逗号隔开\r\n\r\n   ![alt](https://raw.githubusercontent.com/miaochan94/sg-chat/refs/heads/main/2.png)\r\n\r\n### 2.3 数字人虚拟形象集成说明\r\n\r\n#### 2.3.1 video 显示\r\n\r\n```\r\n<video ref=\"digitalHumanVideo\" autoplay playsinline @canplay=\"computeFrame\" style=\"opactiy: 0\" width=\"400\" height=\"400\"></video>\r\n<div class=\"bg-content\"><canvas id=\"canvas\" ref=\"videoCanvas\" v-if=\"isConnected\" width=\"400\" height=\"400\"/></div>\r\n```\r\n\r\n#### 2.3.2 WebRTC工具\r\n\r\n```\r\n/**\r\n * WebRTC 服务类，用于处理 WebRTC 连接和流媒体传输\r\n */\r\nclass WebRTCService {\r\n    constructor() {\r\n        // WebRTC 连接对象\r\n        this.peerConnection = null;\r\n        // 远程媒体流\r\n        this.remoteStream = null;\r\n    }\r\n\r\n    /**\r\n     * 初始化 WebRTC 连接\r\n     * @param {Object} configuration - WebRTC 配置项，包含 ICE 服务器等信息\r\n     * @returns {Promise<boolean>} 初始化是否成功\r\n     */\r\n    async initializeConnection(configuration = {\r\n        iceServers: [\r\n            { urls: 'stun:stun.l.google.com:19302' }\r\n        ]\r\n    }) {\r\n        try {\r\n            this.peerConnection = new RTCPeerConnection(configuration);\r\n\r\n            // 添加音视频收发器，设置为仅接收模式\r\n            this.peerConnection.addTransceiver('video', { direction: 'recvonly' });\r\n            this.peerConnection.addTransceiver('audio', { direction: 'recvonly' });\r\n\r\n            this.setupPeerConnectionListeners();\r\n            return true;\r\n        } catch (error) {\r\n            console.error('Failed to initialize WebRTC connection:', error);\r\n            return false;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * 设置 WebRTC 连接的事件监听器\r\n     * 包括 ICE 候选者和远程流接收的处理\r\n     */\r\n    setupPeerConnectionListeners() {\r\n        // 处理 ICE 候选者\r\n        this.peerConnection.onicecandidate = (event) => {\r\n            if (event.candidate) {\r\n                this.onIceCandidate(event.candidate);\r\n            }\r\n        };\r\n\r\n        // 处理接收到的远程媒体流\r\n        this.peerConnection.ontrack = (event) => {\r\n            this.remoteStream = event.streams[0];\r\n            this.onRemoteStreamReceived(this.remoteStream);\r\n        };\r\n    }\r\n\r\n    /**\r\n     * 创建并设置本地 SDP offer\r\n     * @returns {Promise<RTCSessionDescription>} 本地 SDP 描述\r\n     */\r\n    async createOffer() {\r\n        try {\r\n            const offer = await this.peerConnection.createOffer();\r\n            await this.peerConnection.setLocalDescription(offer);\r\n            return this.peerConnection.localDescription;\r\n        } catch (error) {\r\n            console.error('Error creating offer:', error);\r\n            throw error;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * 处理远程 SDP answer\r\n     * @param {RTCSessionDescriptionInit} answer - 远程 SDP 答复\r\n     */\r\n    async handleAnswer(answer) {\r\n        try {\r\n            await this.peerConnection.setRemoteDescription(new RTCSessionDescription(answer));\r\n        } catch (error) {\r\n            console.error('Error handling answer:', error);\r\n            throw error;\r\n        }\r\n    }\r\n\r\n    // 回调函数接口\r\n    onIceCandidate(candidate) {}\r\n    onRemoteStreamReceived(stream) {}\r\n\r\n    /**\r\n     * 关闭并清理 WebRTC 连接\r\n     */\r\n    closeConnection() {\r\n        if (this.peerConnection) {\r\n            this.peerConnection.close();\r\n        }\r\n        this.remoteStream = null;\r\n        this.peerConnection = null;\r\n    }\r\n}\r\n\r\nexport default WebRTCService;\r\n```\r\n\r\n#### 2.3.3 初始化数字人\r\n\r\n```\r\n webRTC.value = new WebRTCService()\r\n    await webRTC.value.initializeConnection({\r\n      sdpSemantics: 'unified-plan',\r\n      iceServers: [{ urls: ['stun:stun.l.google.com:19302'] }]\r\n    })\r\n\r\n    webRTC.value.onRemoteStreamReceived = (stream) => {\r\n      if (digitalHumanVideo.value) {\r\n        digitalHumanVideo.value.srcObject = stream\r\n      }\r\n    }\r\n\r\n    webRTC.value.onIceCandidate = async (candidate) => {\r\n      if (!sessionId.value) return\r\n      try {\r\n        const response = await fetch(`/webrtcApi2/ice`, {\r\n          method: 'POST',\r\n          headers: {\r\n            'Content-Type': 'application/json'\r\n          },\r\n          body: JSON.stringify({\r\n            candidate: candidate,\r\n            sessionid: sessionId.value\r\n          })\r\n        })\r\n        if (!response.ok) {\r\n          throw new Error('Failed to send ICE candidate')\r\n        }\r\n      } catch (error) {\r\n        console.error('Error sending ICE candidate:', error)\r\n      }\r\n    }\r\n```\r\n\r\n#### 2.3.4 连接数字人\r\n\r\n```\r\n const offer = await webRTC.value.createOffer()\r\n      console.log('Creating offer:', offer)\r\n\r\n      const response = await fetch(`/webrtcApi2/offer`, {\r\n        method: 'POST',\r\n        headers: {\r\n          'Content-Type': 'application/json'\r\n        },\r\n        body: JSON.stringify({\r\n          sdp: offer.sdp,\r\n          type: offer.type\r\n        })\r\n      })\r\n\r\n      if (!response.ok) {\r\n        connectToDigitalHuman()\r\n      }\r\n\r\n      const data = await response.json()\r\n      console.log('Server response:', data)\r\n\r\n      if (!data || !data.sdp) {\r\n        throw new Error('Invalid response from server')\r\n      }\r\n\r\n      const answerDescription = {\r\n        type: 'answer',\r\n        sdp: data.sdp\r\n      }\r\n\r\n      sessionId.value = data.sessionid\r\n      await webRTC.value.handleAnswer(answerDescription)\r\n      isConnected.value = true\r\n      isConnecting.value=false\r\n      message.success('连接成功')\r\n    } catch (error) {\r\n      console.error('Error connecting to digital human:', error)\r\n      message.error('连接失败，请联系管理员！')\r\n      isConnected.value = false\r\n      isConnecting.value = false\r\n    }\r\n```\r\n\r\n#### 2.3.5 去掉绿布\r\n\r\nfabric 去掉绿布，支持fabric 5.3.0版本\r\n\r\n##### 2.3.5.1 重构fabric去掉绿布工具\r\n\r\n```\r\nimport { fabric } from 'fabric';\r\n\r\nfabric.Image.filters.RemoveGreen = fabric.util.createClass(fabric.Image.filters.BaseFilter, /** @lends fabric.Image.filters.RemoveGreen.prototype */ {\r\n\r\n  /**\r\n   * Filter type\r\n   * @param {String} type\r\n   * @default\r\n   */\r\n  type: 'RemoveGreen',\r\n\r\n  /**\r\n   * Color to remove, in any format understood by fabric.Color.\r\n   * @param {String} type\r\n   * @default\r\n   */\r\n  color: '#00FF00',\r\n\r\n  /**\r\n   * Fragment source for the brightness program\r\n   */\r\n  fragmentSource: `precision highp float;\r\nvarying vec2 vTexCoord;\r\n\r\nuniform sampler2D uTexture;\r\nuniform vec3 keyColor;\r\n\r\n// 色度的相似度计算\r\nuniform float similarity;\r\n// 透明度的平滑度计算\r\nuniform float smoothness;\r\n// 降低绿幕饱和度，提高抠图准确度\r\nuniform float spill;\r\n\r\nvec2 RGBtoUV(vec3 rgb) {\r\n  return vec2(\r\n    rgb.r * -0.169 + rgb.g * -0.331 + rgb.b *  0.5    + 0.5,\r\n    rgb.r *  0.5   + rgb.g * -0.419 + rgb.b * -0.081  + 0.5\r\n  );\r\n}\r\n\r\nvoid main() {\r\n  // 获取当前像素的rgba值\r\n  vec4 rgba = texture2D(uTexture, vTexCoord);\r\n  // 计算当前像素与绿幕像素的色度差值\r\n  vec2 chromaVec = RGBtoUV(rgba.rgb) - RGBtoUV(keyColor);\r\n  // 计算当前像素与绿幕像素的色度距离（向量长度）, 越相像则色度距离越小\r\n  float chromaDist = sqrt(dot(chromaVec, chromaVec));\r\n  // 设置了一个相似度阈值，baseMask为负，则表明是绿幕，为正则表明不是绿幕\r\n  float baseMask = chromaDist - similarity;\r\n  // 如果baseMask为负数，fullMask等于0；baseMask为正数，越大，则透明度越低\r\n  float fullMask = pow(clamp(baseMask / smoothness, 0., 1.), 1.5);\r\n  rgba.a = fullMask; // 设置透明度\r\n  // 如果baseMask为负数，spillVal等于0；baseMask为整数，越小，饱和度越低\r\n  float spillVal = pow(clamp(baseMask / spill, 0., 1.), 1.5);\r\n  float desat = clamp(rgba.r * 0.2126 + rgba.g * 0.7152 + rgba.b * 0.0722, 0., 1.); // 计算当前像素的灰度值\r\n  rgba.rgb = mix(vec3(desat, desat, desat), rgba.rgb, spillVal);\r\n  gl_FragColor = rgba;\r\n}\r\n`,\r\n  similarity: 0.02,\r\n  smoothness: 0.02,\r\n  spill: 0.02,\r\n\r\n  /**\r\n   * distance to actual color, as value up or down from each r,g,b\r\n   * between 0 and 1\r\n   **/\r\n  distance: 0.02,\r\n\r\n  /**\r\n   * For color to remove inside distance, use alpha channel for a smoother deletion\r\n   * NOT IMPLEMENTED YET\r\n   **/\r\n  useAlpha: false,\r\n\r\n  /**\r\n   * Constructor\r\n   * @memberOf fabric.Image.filters.RemoveWhite.prototype\r\n   * @param {Object} [options] Options object\r\n   * @param {Number} [options.color=#RRGGBB] Threshold value\r\n   * @param {Number} [options.distance=10] Distance value\r\n   */\r\n\r\n  /**\r\n   * Applies filter to canvas element\r\n   * @param {Object} canvasEl Canvas element to apply filter to\r\n   */\r\n  applyTo2d: function(options) {\r\n    var imageData = options.imageData,\r\n        data = imageData.data, i,\r\n        distance = this.distance * 255,\r\n        r, g, b,\r\n        source = new fabric.Color(this.color).getSource(),\r\n        lowC = [\r\n          source[0] - distance,\r\n          source[1] - distance,\r\n          source[2] - distance,\r\n        ],\r\n        highC = [\r\n          source[0] + distance,\r\n          source[1] + distance,\r\n          source[2] + distance,\r\n        ];\r\n\r\n\r\n    for (i = 0; i < data.length; i += 4) {\r\n      r = data[i];\r\n      g = data[i + 1];\r\n      b = data[i + 2];\r\n\r\n      if (r > lowC[0] &&\r\n          g > lowC[1] &&\r\n          b > lowC[2] &&\r\n          r < highC[0] &&\r\n          g < highC[1] &&\r\n          b < highC[2]) {\r\n        data[i + 3] = 0;\r\n      }\r\n    }\r\n  },\r\n\r\n  /**\r\n   * Return WebGL uniform locations for this filter's shader.\r\n   *\r\n   * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\r\n   * @param {WebGLShaderProgram} program This filter's compiled shader program.\r\n   */\r\n  getUniformLocations: function(gl, program) {\r\n    return {\r\n      similarity: gl.getUniformLocation(program, 'similarity'),\r\n      smoothness: gl.getUniformLocation(program, 'smoothness'),\r\n      spill: gl.getUniformLocation(program, 'spill'),\r\n      keyColor: gl.getUniformLocation(program, 'keyColor'),\r\n    };\r\n  },\r\n\r\n  /**\r\n   * Send data from this filter to its shader program's uniforms.\r\n   *\r\n   * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\r\n   * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\r\n   */\r\n  sendUniformData: function(gl, uniformLocations) {\r\n    // var source = new fabric.Color(this.color).getSource(),\r\n    //     distance = parseFloat(this.distance),\r\n    //     lowC = [\r\n    //       0 + source[0] / 255 - distance,\r\n    //       0 + source[1] / 255 - distance,\r\n    //       0 + source[2] / 255 - distance,\r\n    //       1\r\n    //     ],\r\n    //     highC = [\r\n    //       source[0] / 255 + distance,\r\n    //       source[1] / 255 + distance,\r\n    //       source[2] / 255 + distance,\r\n    //       1\r\n    //     ];\r\n    gl.uniform3fv(\r\n      uniformLocations.keyColor,\r\n      (new fabric.Color(this.color).getSource()).slice(0, 3).map((v) => v / 255),\r\n    );\r\n    gl.uniform1f(uniformLocations.similarity, this.similarity);\r\n    gl.uniform1f(uniformLocations.smoothness, this.smoothness);\r\n    gl.uniform1f(uniformLocations.spill, this.spill);\r\n  },\r\n\r\n  /**\r\n   * Returns object representation of an instance\r\n   * @return {Object} Object representation of an instance\r\n   */\r\n  toObject: function() {\r\n    return fabric.util.object.extend(this.callSuper('toObject'), {\r\n      color: this.color,\r\n      similarity: this.similarity,\r\n      smoothness: this.smoothness,\r\n      spill: this.spill,\r\n    });\r\n  }\r\n});\r\n\r\n/**\r\n * Returns filter instance from an object representation\r\n * @static\r\n * @param {Object} object Object to create an instance from\r\n * @param {Function} [callback] to be invoked after filter creation\r\n * @return {fabric.Image.filters.RemoveGreen} Instance of fabric.Image.filters.RemoveWhite\r\n */\r\nfabric.Image.filters.RemoveGreen.fromObject = fabric.Image.filters.BaseFilter.fromObject;\r\n\r\n```\r\n\r\n##### 2.3.5.2 fabric+canvas去掉绿布\r\n\r\n```\r\nconst { width, height } = digitalHumanVideo.value.getBoundingClientRect()\r\n    ctx.value = videoCanvas.value.getContext('2d')\r\n    videoCanvas.value.setAttribute('width', width)\r\n    videoCanvas.value.setAttribute('height', height)\r\n    const canvas = new fabric.Canvas('canvas');\r\n    if (digitalHumanVideo.value) {\r\n      if (digitalHumanVideo.value.paused || digitalHumanVideo.value.ended) return\r\n    }\r\n      let  video = new fabric.Image(digitalHumanVideo.value);\r\n\r\n      video.filters.push(\r\n        new fabric.Image.filters.RemoveGreen({\r\n          similarity: 0.44,\r\n          smoothness: 0.06,\r\n          spill: 0.02\r\n        }),\r\n      )\r\n\r\n      video.applyFilters()\r\n\r\n      // 也可以使用setElement()方法，将已经加载好的视频元素传入\r\n\r\n      canvas.add(video);\r\n\r\n      fabric.util.requestAnimFrame(function render() {\r\n        fabric.filterBackend.evictCachesForKey(video.cacheKey)\r\n        // 应用滤镜\r\n        video.applyFilters()\r\n        // console.log('renderAll')\r\n        canvas.renderAll();\r\n        fabric.util.requestAnimFrame(render);\r\n      });\r\n      // 视频正常加载后，再生成 fabric.Image 对象\r\n\r\n```\r\n","readmeFilename":"README.md"}