@topthink/chat 1.1.23 → 1.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/es/index.js +63 -59
  2. package/package.json +5 -3
package/es/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as n,css as i,formatSize as o,Tooltip as s,useAsync as a,isRequestError as l,Form as c,Toast as d,InfiniteScroller as h,Offcanvas as u,dayjs as m,RequestButton as p,useImmer as g,Lightbox as f,Clipboard as b,isImageUrl as v,request as x}from"@topthink/components";import*as y from"react";import{createContext as k,useContext as w,useRef as N,useEffect as E,useCallback as j,useState as C,forwardRef as M,useMemo as q,useImperativeHandle as z,Fragment as $,memo as S}from"react";import A from"react-textarea-autosize";import*as R from"path";import F from"path";import{Spinner as I,Badge as D,CloseButton as T,OverlayTrigger as L,Popover as P}from"react-bootstrap";import O from"eventemitter3";import B from"lodash/isEqual";import _ from"react-markdown";import"katex/dist/katex.min.css";import U from"remark-math";import H from"remark-breaks";import J from"remark-gfm";import K from"rehype-katex";import Q from"rehype-highlight";import{codes as W,types as X}from"micromark-util-symbol";import{markdownLineEnding as V}from"micromark-util-character";import{createPortal as Y}from"react-dom";import G from"use-resize-observer";const Z=function(e){let{ext:r}=e;const{result:n}=a((async e=>(await function(e){switch(e){case"../../images/file/docx.svg":return import("./docx-nWXnlyT_.js");case"../../images/file/jpg.svg":return import("./jpg-6tBxSzWk.js");case"../../images/file/md.svg":return import("./md-GZ3HJPcw.js");case"../../images/file/pdf.svg":return import("./pdf-pVX1_E6T.js");case"../../images/file/png.svg":return import("./png-u0o1NMqQ.js");case"../../images/file/pptx.svg":return import("./pptx-Hprz0cON.js");case"../../images/file/txt.svg":return import("./txt-eHeCpvNO.js");case"../../images/file/xlsx.svg":return import("./xlsx-uOft-SV2.js");default:return new Promise((function(t,r){("function"==typeof queueMicrotask?queueMicrotask:setTimeout)(r.bind(null,new Error("Unknown variable dynamic import: "+e)))}))}}(`../../images/file/${e}.svg`)).default),[r]);return n?t("img",{width:30,height:30,src:n}):null};function ee(r){let{className:n,name:i,size:a,loading:l,error:c,onRemove:d}=r;const h=F.extname(i).substring(1),u=e(ie,{className:n,$error:!!c,children:[e(ne,{children:[t(Z,{ext:h}),l&&t(I,{variant:"primary"})]}),e(re,{children:[t("h4",{children:i}),t("p",{children:o(a,1)})]}),d&&t(te,{onClick:e=>{e.preventDefault(),d()},children:t("i",{className:"bi bi-trash3"})})]});return c?t(s,{placement:"top",tooltip:c,children:u}):u}const te=n.div`
1
+ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as n,css as i,formatSize as o,Tooltip as s,useAsync as a,isRequestError as l,Form as c,Toast as d,InfiniteScroller as h,Offcanvas as m,dayjs as u,RequestButton as p,useImmer as g,Lightbox as f,Clipboard as b,getAbsoluteUrl as v,isImageUrl as x,request as y}from"@topthink/components";import*as k from"react";import{createContext as w,useContext as N,useRef as E,useEffect as j,useCallback as C,useState as M,forwardRef as $,useMemo as q,useImperativeHandle as z,Fragment as S,memo as R}from"react";import A from"react-textarea-autosize";import*as F from"path";import I from"path";import{Spinner as D,Badge as L,CloseButton as O,OverlayTrigger as T,Popover as P}from"react-bootstrap";import B from"eventemitter3";import _ from"lodash/isEqual";import{toString as U}from"hast-util-to-string";import H from"react-markdown";import"katex/dist/katex.min.css";import J from"rehype-highlight";import K from"rehype-katex";import Q from"remark-breaks";import W from"remark-gfm";import X from"remark-math";import{codes as V,types as Y}from"micromark-util-symbol";import{markdownLineEnding as G}from"micromark-util-character";import{createPortal as Z}from"react-dom";import ee from"use-resize-observer";const te=function(e){let{ext:r}=e;const{result:n}=a((async e=>(await function(e){switch(e){case"../../images/file/docx.svg":return import("./docx-nWXnlyT_.js");case"../../images/file/jpg.svg":return import("./jpg-6tBxSzWk.js");case"../../images/file/md.svg":return import("./md-GZ3HJPcw.js");case"../../images/file/pdf.svg":return import("./pdf-pVX1_E6T.js");case"../../images/file/png.svg":return import("./png-u0o1NMqQ.js");case"../../images/file/pptx.svg":return import("./pptx-Hprz0cON.js");case"../../images/file/txt.svg":return import("./txt-eHeCpvNO.js");case"../../images/file/xlsx.svg":return import("./xlsx-uOft-SV2.js");default:return new Promise((function(t,r){("function"==typeof queueMicrotask?queueMicrotask:setTimeout)(r.bind(null,new Error("Unknown variable dynamic import: "+e)))}))}}(`../../images/file/${e}.svg`)).default),[r]);return n?t("img",{width:30,height:30,src:n}):null};function re(r){let{className:n,name:i,size:a,loading:l,error:c,onRemove:d}=r;const h=I.extname(i).substring(1),m=e(se,{className:n,$error:!!c,children:[e(oe,{children:[t(te,{ext:h}),l&&t(D,{variant:"primary"})]}),e(ie,{children:[t("h4",{children:i}),t("p",{children:o(a,1)})]}),d&&t(ne,{onClick:e=>{e.preventDefault(),d()},children:t("i",{className:"bi bi-trash3"})})]});return c?t(s,{placement:"top",tooltip:c,children:m}):m}const ne=n.div`
2
2
  width: 1.75rem;
3
3
  height: 1.75rem;
4
4
  align-items: center;
@@ -13,7 +13,7 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
13
13
  color: var(--bs-danger);
14
14
  background-color: var(--bs-danger-bg-subtle);
15
15
  }
16
- `,re=n.div`
16
+ `,ie=n.div`
17
17
  flex: 1;
18
18
  overflow: hidden;
19
19
 
@@ -34,7 +34,7 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
34
34
  line-height: 20px;
35
35
  margin-bottom: 0;
36
36
  }
37
- `,ne=n.div`
37
+ `,oe=n.div`
38
38
  position: relative;
39
39
  width: 3rem;
40
40
  height: 3rem;
@@ -48,7 +48,7 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
48
48
  position: absolute;
49
49
  }
50
50
 
51
- `,ie=n.div`
51
+ `,se=n.div`
52
52
  display: flex;
53
53
  gap: .5rem;
54
54
  padding: .5rem;
@@ -64,7 +64,7 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
64
64
  ${e=>e.$error&&i`
65
65
  border-color: var(--bs-danger) !important;
66
66
  `}
67
- `,oe=[".txt",".md",".pdf",".docx",".xlsx",".pptx",".png",".jpg"],se=k(null);function ae(){const e=w(se);if(!e)throw new Error("useContext must be used within a Provider");return e}function le(e){let{children:r,...n}=e;return t(se.Provider,{value:n,children:r})}function ce(e){let{variables:r,values:n,onSubmit:i,onChange:o,children:s}=e;const a={},l=[],d={};return r.forEach((e=>{a[e.key]={type:"string",title:e.label},"textarea"===e.type?d[e.key]={"ui:widget":"textarea"}:"select"===e.type&&e.options&&(a[e.key].enum=e.options,a[e.key].enumNames=e.options,e.options.length>0&&(a[e.key].default=e.options[0])),e.required&&l.push(e.key)})),t(c,{schema:{type:"object",properties:a,required:l},formData:n,omitExtraData:!0,uiSchema:d,submitText:"开始对话",onSubmit:i,onChange:o,children:s})}const de=n.button`
67
+ `,ae=[".txt",".md",".pdf",".docx",".xlsx",".pptx",".png",".jpg"],le=w(null);function ce(){const e=N(le);if(!e)throw new Error("useContext must be used within a Provider");return e}function de(e){let{children:r,...n}=e;return t(le.Provider,{value:n,children:r})}function he(e){let{variables:r,values:n,onSubmit:i,onChange:o,children:s}=e;const a={},l=[],d={};return r.forEach((e=>{a[e.key]={type:"string",title:e.label},"textarea"===e.type?d[e.key]={"ui:widget":"textarea"}:"select"===e.type&&e.options&&(a[e.key].enum=e.options,a[e.key].enumNames=e.options,e.options.length>0&&(a[e.key].default=e.options[0])),e.required&&l.push(e.key)})),t(c,{schema:{type:"object",properties:a,required:l},formData:n,omitExtraData:!0,uiSchema:d,submitText:"开始对话",onSubmit:i,onChange:o,children:s})}const me=n.button`
68
68
  color: var(--bs-secondary);
69
69
  cursor: pointer;
70
70
  display: flex;
@@ -87,12 +87,12 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
87
87
  background-color: var(--bs-gray-200);
88
88
  }
89
89
 
90
- `;let he=class{#e;#t;constructor(){this.#t=new O}onResult(e){this.#t.on("result",e)}onRecording(e){this.#t.on("recording",e)}onTranscribing(e){this.#t.on("transcribing",e)}start(){if(!this.#e){const e=window.SpeechRecognition||window.webkitSpeechRecognition;if(!e)return void d.error("浏览器不支持语音识别");const t=new e;t.continuous=!0,t.lang=navigator.language,t.onresult=e=>{const t=Array.from(e.results).at(-1)?.item(0).transcript;t&&this.#t.emit("result",t)},t.onspeechend=()=>{this.#t.emit("recording",!1)},t.onerror=e=>{this.#t.emit("recording",!1),d.error(e.error)},this.#e=t}this.#t.emit("recording",!0),this.#e.start()}stop(){this.#e?.stop(),this.#t.emit("recording",!1)}},ue=class{#t;#r;#n;#i;constructor(e){this.#r=e,this.#t=new O}async start(){try{this.#n=await navigator.mediaDevices.getUserMedia({audio:!0}),this.#i=new AudioContext;const e=this.#i.createScriptProcessor(0,1,1);this.#i.createMediaStreamSource(this.#n).connect(e),e.connect(this.#i.destination);let t=[],r=0;const n=.01,i=1;e.onaudioprocess=e=>{const o=e.playbackTime,s=e.inputBuffer.getChannelData(0);let a=!0;for(let e=0;e<s.length;e++)if(Math.abs(s[e])>n){a=!1;break}if(a){const e=o-r;e>i&&(t.length>1&&(this.save(t),t=[]),e>10&&this.stop())}else t.push(new Float32Array(s)),r=o},this.#t.emit("recording",!0)}catch(e){d.error(e.message)}}convertBuffer(e){const t=new Float32Array(e),r=new Int16Array(e.length);for(let e=0;e<t.length;e++){const n=Math.max(-1,Math.min(1,t[e]));r[e]=n<0?32768*n:32767*n}return r}async encodeMP3(e){const{Mp3Encoder:t}=await import("@breezystack/lamejs"),r=new t(1,44100,128),n=[];for(const t of e){const e=this.convertBuffer(t),i=1152;let o=e.length;for(let t=0;o>=0;t+=i){const s=e.subarray(t,t+i),a=r.encodeBuffer(s);n.push(new Int8Array(a)),o-=i}}return n.push(r.flush()),new Blob(n,{type:"audio/mp3"})}async save(e){const t=await this.encodeMP3(e);try{this.#t.emit("transcribing",!0);const e=await this.#r(t);e&&this.#t.emit("result",e)}catch(e){}finally{this.#t.emit("transcribing",!1)}}stop(){this.#n&&(this.#n.getTracks().forEach((e=>e.stop())),this.#n=void 0),this.#i&&(this.#i.close(),this.#i=void 0),this.#t.emit("recording",!1)}onResult(e){this.#t.on("result",e)}onRecording(e){this.#t.on("recording",e)}onTranscribing(e){this.#t.on("transcribing",e)}};const me=M(((r,n)=>{let{onResult:i,model:o="builtin"}=r;const{request:a}=ae(),l=q((()=>{if("builtin"!==o)return async e=>{const t=new FormData;t.append("file",e,"audio.mp3"),t.append("model",o);return(await a({url:"/transcriptions",method:"post",data:t})).text}}),[o]),{start:c,stop:d,recording:h,transcribing:u}=function(e){let{onResult:t,loader:r}=e;const n=N(),[i,o]=C(!1),[s,a]=C(!1);return E((()=>()=>{n.current&&(n.current.stop(),n.current=void 0)}),[]),{recording:i,transcribing:s,start:async()=>{n.current||(n.current=r?new ue(r):new he,n.current.onRecording(o),n.current.onTranscribing(a),n.current.onResult(t)),n.current.start()},stop:()=>{n.current&&n.current.stop()}}}({onResult:i,loader:l});return z(n,(()=>({start:c,stop:d})),[c,d]),t(s,{tooltip:h?"停止":"语音输入",placement:"top",children:e(de,{onMouseDown:e=>{e.preventDefault(),h?d():c()},children:[u&&t(pe,{animation:"border",variant:"primary",size:"sm"}),t("i",h?{className:"bi bi-mic-fill text-danger"}:{className:"bi bi-mic"})]})})})),pe=n(I)`
90
+ `;let ue=class{#e;#t;constructor(){this.#t=new B}onResult(e){this.#t.on("result",e)}onRecording(e){this.#t.on("recording",e)}onTranscribing(e){this.#t.on("transcribing",e)}start(){if(!this.#e){const e=window.SpeechRecognition||window.webkitSpeechRecognition;if(!e)return void d.error("浏览器不支持语音识别");const t=new e;t.continuous=!0,t.lang=navigator.language,t.onresult=e=>{const t=Array.from(e.results).at(-1)?.item(0).transcript;t&&this.#t.emit("result",t)},t.onspeechend=()=>{this.#t.emit("recording",!1)},t.onerror=e=>{this.#t.emit("recording",!1),d.error(e.error)},this.#e=t}this.#t.emit("recording",!0),this.#e.start()}stop(){this.#e?.stop(),this.#t.emit("recording",!1)}},pe=class{#t;#r;#n;#i;constructor(e){this.#r=e,this.#t=new B}async start(){try{this.#n=await navigator.mediaDevices.getUserMedia({audio:!0}),this.#i=new AudioContext;const e=this.#i.createScriptProcessor(0,1,1);this.#i.createMediaStreamSource(this.#n).connect(e),e.connect(this.#i.destination);let t=[],r=0;const n=.01,i=1;e.onaudioprocess=e=>{const o=e.playbackTime,s=e.inputBuffer.getChannelData(0);let a=!0;for(let e=0;e<s.length;e++)if(Math.abs(s[e])>n){a=!1;break}if(a){const e=o-r;e>i&&(t.length>1&&(this.save(t),t=[]),e>10&&this.stop())}else t.push(new Float32Array(s)),r=o},this.#t.emit("recording",!0)}catch(e){d.error(e.message)}}convertBuffer(e){const t=new Float32Array(e),r=new Int16Array(e.length);for(let e=0;e<t.length;e++){const n=Math.max(-1,Math.min(1,t[e]));r[e]=n<0?32768*n:32767*n}return r}async encodeMP3(e){const{Mp3Encoder:t}=await import("@breezystack/lamejs"),r=new t(1,44100,128),n=[];for(const t of e){const e=this.convertBuffer(t),i=1152;let o=e.length;for(let t=0;o>=0;t+=i){const s=e.subarray(t,t+i),a=r.encodeBuffer(s);n.push(new Int8Array(a)),o-=i}}return n.push(r.flush()),new Blob(n,{type:"audio/mp3"})}async save(e){const t=await this.encodeMP3(e);try{this.#t.emit("transcribing",!0);const e=await this.#r(t);e&&this.#t.emit("result",e)}catch(e){}finally{this.#t.emit("transcribing",!1)}}stop(){this.#n&&(this.#n.getTracks().forEach((e=>e.stop())),this.#n=void 0),this.#i&&(this.#i.close(),this.#i=void 0),this.#t.emit("recording",!1)}onResult(e){this.#t.on("result",e)}onRecording(e){this.#t.on("recording",e)}onTranscribing(e){this.#t.on("transcribing",e)}};const ge=$(((r,n)=>{let{onResult:i,model:o="builtin"}=r;const{request:a}=ce(),l=q((()=>{if("builtin"!==o)return async e=>{const t=new FormData;t.append("file",e,"audio.mp3"),t.append("model",o);return(await a({url:"/transcriptions",method:"post",data:t})).text}}),[o]),{start:c,stop:d,recording:h,transcribing:m}=function(e){let{onResult:t,loader:r}=e;const n=E(),[i,o]=M(!1),[s,a]=M(!1);return j((()=>()=>{n.current&&(n.current.stop(),n.current=void 0)}),[]),{recording:i,transcribing:s,start:async()=>{n.current||(n.current=r?new pe(r):new ue,n.current.onRecording(o),n.current.onTranscribing(a),n.current.onResult(t)),n.current.start()},stop:()=>{n.current&&n.current.stop()}}}({onResult:i,loader:l});return z(n,(()=>({start:c,stop:d})),[c,d]),t(s,{tooltip:h?"停止":"语音输入",placement:"top",children:e(me,{onMouseDown:e=>{e.preventDefault(),h?d():c()},children:[m&&t(fe,{animation:"border",variant:"primary",size:"sm"}),t("i",h?{className:"bi bi-mic-fill text-danger"}:{className:"bi bi-mic"})]})})})),fe=n(D)`
91
91
  position: absolute;
92
92
  --bs-spinner-width: .75rem;
93
93
  --bs-spinner-height: .75rem;
94
94
  --bs-spinner-border-width: 0.1em;
95
- `,ge=M(((e,r)=>{let{className:n,children:i,size:o,tooltip:a,placement:l,onClick:c,onMouseDown:d}=e;const h=t(fe,{ref:r,className:n,onClick:c,onMouseDown:d,$size:o,children:i});return a?t(s,{tooltip:a,placement:l,children:h}):h})),fe=n.div`
95
+ `,be=$(((e,r)=>{let{className:n,children:i,size:o,tooltip:a,placement:l,onClick:c,onMouseDown:d}=e;const h=t(ve,{ref:r,className:n,onClick:c,onMouseDown:d,$size:o,children:i});return a?t(s,{tooltip:a,placement:l,children:h}):h})),ve=n.div`
96
96
  width: 2rem;
97
97
  height: 2rem;
98
98
  align-items: center;
@@ -116,10 +116,10 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
116
116
  &:hover {
117
117
  background-color: var(--bs-secondary-bg-subtle);
118
118
  }
119
- `;function be(){const{request:n,reset:i,conversationId:o}=ae(),[a,l]=C(!1);return e(r,{children:[t(ge,{tooltip:"历史记录",placement:"top",onClick:()=>l(!0),children:t("i",{className:"bi bi-clock-history"})}),t(u,{show:a,onHide:()=>{l(!1)},placement:"end",header:"聊天历史记录",bodyAs:ve,children:a&&t(Ne,{children:t(we,{useWindow:!1,source:e=>n({url:"/conversation",params:e}),render:r=>{let{data:a,loading:c,setData:d}=r;return a.length||c?a.map(((r,a)=>{const c=r.messages?.reduce(((e,t)=>e+t.chunks.reduce(((e,t)=>e+(t.content||"")),"")),"");return e($,{children:[a>0&&t("hr",{className:"mx-2 my-2"}),e(ke,{onClick:()=>{i(r),l(!1)},children:[e(ye,{children:[o===r.id&&t(D,{bg:"secondary",children:"当前"}),t("span",{className:"fw-bold overflow-hidden text-truncate me-auto",children:r.title||"未命名对话"}),t("span",{className:"text-body text-opacity-50 flex-shrink-0 ms-5",children:m(r.update_time).fromNow()})]}),e(xe,{children:[t("span",{className:"overflow-hidden text-truncate me-auto",children:c||" "}),t("span",{className:"ms-3",children:o!==r.id&&t(s,{tooltip:"删除",children:t(p,{as:"a",confirm:"确定要删除吗?",onRequest:()=>n({url:`/conversation/${r.id}`,method:"DELETE"}),onSuccess:()=>{d((e=>{const t=e.findIndex((e=>e.id===r.id));-1!==t&&e.splice(t,1)}))},children:t("i",{className:"bi bi-trash3"})})})})]})]})]},r.id)})):t("div",{className:"text-muted text-center py-5",children:"暂无对话记录"})}})})})]})}const ve=n.div`
119
+ `;function xe(){const{request:n,reset:i,conversationId:o}=ce(),[a,l]=M(!1);return e(r,{children:[t(be,{tooltip:"历史记录",placement:"top",onClick:()=>l(!0),children:t("i",{className:"bi bi-clock-history"})}),t(m,{show:a,onHide:()=>{l(!1)},placement:"end",header:"聊天历史记录",bodyAs:ye,children:a&&t(je,{children:t(Ee,{useWindow:!1,source:e=>n({url:"/conversation",params:e}),render:r=>{let{data:a,loading:c,setData:d}=r;return a.length||c?a.map(((r,a)=>{const c=r.messages?.reduce(((e,t)=>e+t.chunks.reduce(((e,t)=>e+(t.content||"")),"")),"");return e(S,{children:[a>0&&t("hr",{className:"mx-2 my-2"}),e(Ne,{onClick:()=>{i(r),l(!1)},children:[e(we,{children:[o===r.id&&t(L,{bg:"secondary",children:"当前"}),t("span",{className:"fw-bold overflow-hidden text-truncate me-auto",children:r.title||"未命名对话"}),t("span",{className:"text-body text-opacity-50 flex-shrink-0 ms-5",children:u(r.update_time).fromNow()})]}),e(ke,{children:[t("span",{className:"overflow-hidden text-truncate me-auto",children:c||" "}),t("span",{className:"ms-3",children:o!==r.id&&t(s,{tooltip:"删除",children:t(p,{as:"a",confirm:"确定要删除吗?",onRequest:()=>n({url:`/conversation/${r.id}`,method:"DELETE"}),onSuccess:()=>{d((e=>{const t=e.findIndex((e=>e.id===r.id));-1!==t&&e.splice(t,1)}))},children:t("i",{className:"bi bi-trash3"})})})})]})]})]},r.id)})):t("div",{className:"text-muted text-center py-5",children:"暂无对话记录"})}})})})]})}const ye=n.div`
120
120
  padding: 0;
121
121
  overflow: hidden;
122
- `,xe=n.div`
122
+ `,ke=n.div`
123
123
  color: var(--bs-gray-600);
124
124
  font-weight: 400;
125
125
  line-height: 22px;
@@ -129,11 +129,11 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
129
129
  & :last-child {
130
130
  display: none;
131
131
  }
132
- `,ye=n.div`
132
+ `,we=n.div`
133
133
  display: flex;
134
134
  align-items: center;
135
135
  gap: .25rem;
136
- `,ke=n.div`
136
+ `,Ne=n.div`
137
137
  gap: .5rem;
138
138
  display: flex;
139
139
  flex-direction: column;
@@ -146,34 +146,34 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
146
146
 
147
147
 
148
148
  &:hover {
149
- ${xe} :last-child {
149
+ ${ke} :last-child {
150
150
  display: initial;
151
151
  }
152
152
  }
153
153
  }
154
- `,we=n(h)`
154
+ `,Ee=n(h)`
155
155
  display: flex;
156
156
  flex-direction: column;
157
157
  padding: .5rem;
158
- `,Ne=n.div`
158
+ `,je=n.div`
159
159
  height: 100%;
160
160
  overflow-y: auto;
161
- `;var Ee;function je(){return je=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},je.apply(this,arguments)}const Ce=e=>y.createElement("svg",je({width:"1em",height:"1em",fill:"currentColor",viewBox:"0 0 256 256"},e),Ee||(Ee=y.createElement("path",{fillRule:"evenodd",d:"M128 22C69.458 22 22 69.458 22 128v96c0 5.523 4.477 10 10 10h96c58.542 0 106-47.458 106-106S186.542 22 128 22m0 56c5.523 0 10 4.477 10 10v30h30c5.523 0 10 4.477 10 10s-4.477 10-10 10h-30v30c0 5.523-4.477 10-10 10s-10-4.477-10-10v-30H88c-5.523 0-10-4.477-10-10s4.477-10 10-10h30V88c0-5.523 4.477-10 10-10",clipRule:"evenodd","data-follow-fill":"#000"})));function Me(){const{reset:e}=ae();return t(ge,{className:"text-primary",tooltip:"新会话",placement:"top",onClick:e,children:t(Ce,{})})}function qe(r){let{children:n}=r;return e($e,{children:[n,e(ze,{children:[t(be,{}),t(Me,{})]})]})}const ze=n.div`
161
+ `;var Ce;function Me(){return Me=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Me.apply(this,arguments)}const $e=e=>k.createElement("svg",Me({width:"1em",height:"1em",fill:"currentColor",viewBox:"0 0 256 256"},e),Ce||(Ce=k.createElement("path",{fillRule:"evenodd",d:"M128 22C69.458 22 22 69.458 22 128v96c0 5.523 4.477 10 10 10h96c58.542 0 106-47.458 106-106S186.542 22 128 22m0 56c5.523 0 10 4.477 10 10v30h30c5.523 0 10 4.477 10 10s-4.477 10-10 10h-30v30c0 5.523-4.477 10-10 10s-10-4.477-10-10v-30H88c-5.523 0-10-4.477-10-10s4.477-10 10-10h30V88c0-5.523 4.477-10 10-10",clipRule:"evenodd","data-follow-fill":"#000"})));function qe(){const{reset:e}=ce();return t(be,{className:"text-primary",tooltip:"新会话",placement:"top",onClick:e,children:t($e,{})})}function ze(r){let{children:n}=r;return e(Re,{children:[n,e(Se,{children:[t(xe,{}),t(qe,{})]})]})}const Se=n.div`
162
162
  display: flex;
163
163
  gap: .25rem;
164
164
  margin-left: auto;
165
- `,$e=n.div`
165
+ `,Re=n.div`
166
166
  margin-bottom: .5rem;
167
167
  display: flex;
168
168
  padding: 0 .125rem;
169
- `;var Se=M((function(r,n){let{suggestion:i,fileTypes:o,speech:a,scrollRef:c,variables:h,minRows:u,toolbar:m,disabled:p,autoFocus:f,placeholder:b="请输入你的问题, Enter+Shift换行, Enter发送"}=r;const v=N(null),x=N(null),y=N(null),[k,w]=C(""),[M,q]=C(""),[$,S]=g([]),[F,I]=C(!1),D=o&&o.length>0?o:oe,{messages:L,loading:P,request:O}=ae(),{send:B}=function(e){let{suggestion:t,onSuccess:r}=e;const{setMessages:n,setSuggestions:i,setLoading:o,conversationId:s,setConversationId:a,request:c}=ae(),d=N(null),h=N(s);E((()=>{h.current=s}),[s]);const u=j((async()=>{d.current=new AbortController;try{let e={method:"post",url:"/suggestion",data:{conversation:h.current},signal:d.current.signal};const t=await c(e);i(t)}catch{}finally{d.current=null}}),[c]),m=j((async function(e){if("string"==typeof e){for(var s=arguments.length,m=new Array(s>1?s-1:0),p=1;p<s;p++)m[p-1]=arguments[p];e={query:e,...m}}const{query:g,files:f=[],variables:b={},quote:v}=e;if(g||f.length>0){d.current&&d.current.abort(),o(!0),i([]),n((e=>{e.push({query:g,quote:v,files:f,variables:b,chunks:[],loading:!0})}));try{let e={method:"post",data:{query:g,quote:v,files:f,variables:b,conversation:h.current},onMessage:e=>{if(e.data)if("[DONE]"!=e.data)try{const t=JSON.parse(e.data);t.conversation?(h.current=t.conversation,a(t.conversation)):n((e=>{const r=e[e.length-1];if(r.chunks)if(t.chunks){const e=t.chunks.index;if(r.chunks[e]||(r.chunks[e]={content:"",reasoning:"",tools:[]}),t.chunks.error)r.chunks[e].error=t.chunks.error;else if(t.chunks.tools){const n=t.chunks.tools.index;"response"in t.chunks.tools?(r.chunks[e].tools[n].response=t.chunks.tools.response,r.chunks[e].tools[n].error=t.chunks.tools.error,r.chunks[e].tools[n].content=t.chunks.tools.content):r.chunks[e].tools[n]={name:t.chunks.tools.name,title:t.chunks.tools.title,arguments:t.chunks.tools.arguments}}else if(t.chunks.reasoning)r.chunks[e].reasoning+=t.chunks.reasoning;else if(t.chunks.content)if("object"==typeof t.chunks.content){Array.isArray(r.chunks[e].content)||(r.chunks[e].content=[]);const n=t.chunks.content.index,i=t.chunks.content.value;"string"==typeof i?(r.chunks[e].content[n]||(r.chunks[e].content[n]=""),r.chunks[e].content[n]+=i):r.chunks[e].content[n]=i}else r.chunks[e].content+=t.chunks.content;else t.chunks.node&&(r.chunks[e].node={...r.chunks[e].node,...t.chunks.node})}else t.stats?r.stats=t.stats:t.id&&(r.id=t.id)}))}catch(e){console.error(e)}else n((e=>{e[e.length-1].loading=!1}))}};await c(e),t&&requestAnimationFrame(u)}catch(e){let t="未知错误";l(e)&&(t=401==e.response?.status?"未授权或授权已过期,请刷新页面后重试":"string"==typeof e.errors?e.errors:Object.values(e.errors).join("\n")),n((e=>{const r=e[e.length-1];r.chunks&&(0===r.chunks.length?r.chunks=[{content:`[${t}]`,tools:[]}]:r.chunks[r.chunks.length-1].content=`[${t}]`),r.loading=!1}))}o(!1),r?.()}}),[c]);return{send:m}}({suggestion:i,onSuccess(){requestAnimationFrame((()=>{v.current?.focus()}))}}),[_,U]=C();E((()=>{const e=L.filter((e=>!!e.query));U(e.at(-1)?.variables)}),[L]),E((()=>{!o&&$.length>0&&S([])}),[o]),E((()=>{const e=c.current;if(e&&B){const t=e=>{if(e.target instanceof HTMLAnchorElement&&"#!question"===e.target.hash){e.preventDefault();const t={query:e.target.text};h&&(t.variables={..._,...h.values}),B(t)}};return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}}),[h,_]);const H=j((e=>{let{target:t}=e;if(t.files){const e=Array.from(t.files).filter((e=>!!D.includes(R.extname(e.name))&&(!(e.size>20971520)&&e))).slice(0,6-$.length);S((t=>{t.push(...e.map((e=>({file:e}))))})),e.forEach((async e=>{try{const t=new FormData;t.set("file",e);const r=await O({method:"POST",url:"/upload",data:t});S((t=>{const n=t.find((t=>t.file===e));n&&(n.path=r.path)}))}catch(t){const r=l(t)?t.message:"unknown error";S((t=>{const n=t.find((t=>t.file===e));n&&(n.error=r)}))}}))}t.value=""}),[$,D]),J=$.flatMap((e=>{let{file:t,path:r}=e;return r?[{name:t.name,size:t.size,path:r}]:[]})),K=j((()=>{if(k||J.length>0){const e={query:k,files:J};h&&(e.variables={..._,...h.values}),M&&(e.quote=M),B(e),w(""),q(""),S([]),y.current?.stop(!0)}}),[k,J,h,_,M]);if(z(n,(()=>({setQuery:w,setQuote:q,send:B,focus(){v.current?.focus()}}))),h){const e=h.config.filter((e=>!(e.key in(h.values||{})))),r=function(t){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!!t&&e.every((e=>{const n=!e.required||t?.[e.key];return!n&&r&&d.error("请完善必填信息"),n}))};if(e.length>0&&!r(_))return t(Re,{children:t(Ae,{children:t(ce,{values:_,variables:e,onSubmit:e=>{let{formData:t}=e;if(r(t,!0))return U(t),!0}})})})}return e(Pe,{children:[m&&t(qe,{children:m}),e(Le,{$focused:F&&!P,children:[$.length>0&&t(Ie,{children:$.map(((e,r)=>{let{file:n,error:i,path:o}=e;const s=void 0===i&&void 0===o;return t(Fe,{name:n.name,size:n.size,error:i,loading:s,onRemove:()=>{S((e=>{const t=e.findIndex((e=>e.file===n));-1!==t&&e.splice(t,1)}))}},r)}))}),!!M&&e(Te,{children:[t("i",{className:"bi bi-quote"}),t("p",{children:M}),t(T,{onClick:()=>q("")})]}),e(De,{children:[t(A,{disabled:P||p,ref:v,placeholder:b,minRows:u,maxRows:5,value:k,onChange:e=>w(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),K())},autoFocus:f,onFocus:()=>I(!0),onBlur:()=>I(!1)}),o&&t(s,{tooltip:"可上传不超过6个小于20MB的文件",placement:"top",children:e(de,{disabled:$.length>=6,onClick:()=>x.current?.click(),children:[t("input",{onChange:H,multiple:!0,accept:D.join(","),ref:x,type:"file",hidden:!0}),t("i",{className:"bi bi-file-earmark-arrow-up"})]})}),a&&t(me,{ref:y,model:a.model,onResult:e=>{v.current?.focus(),w((t=>t+e+" "))}}),t(de,{className:"text-primary",disabled:!k&&0===J.length,onClick:e=>{e.preventDefault(),K()},children:t("i",{className:"bi bi-send-fill"})})]})]})]})}));const Ae=n.div`
169
+ `;var Ae=$((function(r,n){let{suggestion:i,fileTypes:o,speech:a,scrollRef:c,variables:h,minRows:m,toolbar:u,disabled:p,autoFocus:f,placeholder:b="请输入你的问题, Enter+Shift换行, Enter发送"}=r;const v=E(null),x=E(null),y=E(null),[k,w]=M(""),[N,$]=M(""),[q,S]=g([]),[R,I]=M(!1),D=o&&o.length>0?o:ae,{messages:L,loading:T,request:P}=ce(),{send:B}=function(e){let{suggestion:t,onSuccess:r}=e;const{setMessages:n,setSuggestions:i,setLoading:o,conversationId:s,setConversationId:a,request:c}=ce(),d=E(null),h=E(s);j((()=>{h.current=s}),[s]);const m=C((async()=>{d.current=new AbortController;try{let e={method:"post",url:"/suggestion",data:{conversation:h.current},signal:d.current.signal};const t=await c(e);i(t)}catch{}finally{d.current=null}}),[c]),u=C((async function(e){if("string"==typeof e){for(var s=arguments.length,u=new Array(s>1?s-1:0),p=1;p<s;p++)u[p-1]=arguments[p];e={query:e,...u}}const{query:g,files:f=[],variables:b={},quote:v}=e;if(g||f.length>0){d.current&&d.current.abort(),o(!0),i([]),n((e=>{e.push({query:g,quote:v,files:f,variables:b,chunks:[],loading:!0})}));try{let e={method:"post",data:{query:g,quote:v,files:f,variables:b,conversation:h.current},onMessage:e=>{if(e.data)if("[DONE]"!=e.data)try{const t=JSON.parse(e.data);t.conversation?(h.current=t.conversation,a(t.conversation)):n((e=>{const r=e[e.length-1];if(r.chunks)if(t.chunks){const e=t.chunks.index;if(r.chunks[e]||(r.chunks[e]={content:"",reasoning:"",tools:[]}),t.chunks.error)r.chunks[e].error=t.chunks.error;else if(t.chunks.tools){const n=t.chunks.tools.index;"response"in t.chunks.tools?(r.chunks[e].tools[n].response=t.chunks.tools.response,r.chunks[e].tools[n].error=t.chunks.tools.error,r.chunks[e].tools[n].content=t.chunks.tools.content):r.chunks[e].tools[n]={name:t.chunks.tools.name,title:t.chunks.tools.title,arguments:t.chunks.tools.arguments}}else if(t.chunks.reasoning)r.chunks[e].reasoning+=t.chunks.reasoning;else if(t.chunks.content)if("object"==typeof t.chunks.content){Array.isArray(r.chunks[e].content)||(r.chunks[e].content=[]);const n=t.chunks.content.index,i=t.chunks.content.value;"string"==typeof i?(r.chunks[e].content[n]||(r.chunks[e].content[n]=""),r.chunks[e].content[n]+=i):r.chunks[e].content[n]=i}else r.chunks[e].content+=t.chunks.content;else t.chunks.node&&(r.chunks[e].node={...r.chunks[e].node,...t.chunks.node})}else t.stats?r.stats=t.stats:t.id&&(r.id=t.id)}))}catch(e){console.error(e)}else n((e=>{e[e.length-1].loading=!1}))}};await c(e),t&&requestAnimationFrame(m)}catch(e){let t="未知错误";l(e)&&(t=401==e.response?.status?"未授权或授权已过期,请刷新页面后重试":"string"==typeof e.errors?e.errors:Object.values(e.errors).join("\n")),n((e=>{const r=e[e.length-1];r.chunks&&(0===r.chunks.length?r.chunks=[{content:`[${t}]`,tools:[]}]:r.chunks[r.chunks.length-1].content=`[${t}]`),r.loading=!1}))}o(!1),r?.()}}),[c]);return{send:u}}({suggestion:i,onSuccess(){requestAnimationFrame((()=>{v.current?.focus()}))}}),[_,U]=M();j((()=>{const e=L.filter((e=>!!e.query));U(e.at(-1)?.variables)}),[L]),j((()=>{!o&&q.length>0&&S([])}),[o]),j((()=>{const e=c.current;if(e&&B){const t=e=>{if(e.target instanceof HTMLAnchorElement&&"#!question"===e.target.hash){e.preventDefault();const t={query:e.target.text};h&&(t.variables={..._,...h.values}),B(t)}};return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}}),[h,_]);const H=C((e=>{let{target:t}=e;if(t.files){const e=Array.from(t.files).filter((e=>!!D.includes(F.extname(e.name))&&(!(e.size>20971520)&&e))).slice(0,6-q.length);S((t=>{t.push(...e.map((e=>({file:e}))))})),e.forEach((async e=>{try{const t=new FormData;t.set("file",e);const r=await P({method:"POST",url:"/upload",data:t});S((t=>{const n=t.find((t=>t.file===e));n&&(n.path=r.path)}))}catch(t){const r=l(t)?t.message:"unknown error";S((t=>{const n=t.find((t=>t.file===e));n&&(n.error=r)}))}}))}t.value=""}),[q,D]),J=q.flatMap((e=>{let{file:t,path:r}=e;return r?[{name:t.name,size:t.size,path:r}]:[]})),K=C((()=>{if(k||J.length>0){const e={query:k,files:J};h&&(e.variables={..._,...h.values}),N&&(e.quote=N),B(e),w(""),$(""),S([]),y.current?.stop(!0)}}),[k,J,h,_,N]);if(z(n,(()=>({setQuery:w,setQuote:$,send:B,focus(){v.current?.focus()}}))),h){const e=h.config.filter((e=>!(e.key in(h.values||{})))),r=function(t){let r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!!t&&e.every((e=>{const n=!e.required||t?.[e.key];return!n&&r&&d.error("请完善必填信息"),n}))};if(e.length>0&&!r(_))return t(Ie,{children:t(Fe,{children:t(he,{values:_,variables:e,onSubmit:e=>{let{formData:t}=e;if(r(t,!0))return U(t),!0}})})})}return e(Be,{children:[u&&t(ze,{children:u}),e(Pe,{$focused:R&&!T,children:[q.length>0&&t(Le,{children:q.map(((e,r)=>{let{file:n,error:i,path:o}=e;const s=void 0===i&&void 0===o;return t(De,{name:n.name,size:n.size,error:i,loading:s,onRemove:()=>{S((e=>{const t=e.findIndex((e=>e.file===n));-1!==t&&e.splice(t,1)}))}},r)}))}),!!N&&e(Te,{children:[t("i",{className:"bi bi-quote"}),t("p",{children:N}),t(O,{onClick:()=>$("")})]}),e(Oe,{children:[t(A,{disabled:T||p,ref:v,placeholder:b,minRows:m,maxRows:5,value:k,onChange:e=>w(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),K())},autoFocus:f,onFocus:()=>I(!0),onBlur:()=>I(!1)}),o&&t(s,{tooltip:"可上传不超过6个小于20MB的文件",placement:"top",children:e(me,{disabled:q.length>=6,onClick:()=>x.current?.click(),children:[t("input",{onChange:H,multiple:!0,accept:D.join(","),ref:x,type:"file",hidden:!0}),t("i",{className:"bi bi-file-earmark-arrow-up"})]})}),a&&t(ge,{ref:y,model:a.model,onResult:e=>{v.current?.focus(),w((t=>t+e+" "))}}),t(me,{className:"text-primary",disabled:!k&&0===J.length,onClick:e=>{e.preventDefault(),K()},children:t("i",{className:"bi bi-send-fill"})})]})]})]})}));const Fe=n.div`
170
170
  border-radius: var(--bs-border-radius-lg);
171
171
  box-shadow: var(--bs-box-shadow-sm);
172
172
  margin: 1rem;
173
173
  padding: 1rem;
174
174
  width: 100%;
175
175
  max-width: 500px;
176
- `,Re=n.div`
176
+ `,Ie=n.div`
177
177
  position: absolute;
178
178
  left: 0;
179
179
  right: 0;
@@ -183,15 +183,15 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
183
183
  display: flex;
184
184
  justify-content: center;
185
185
  align-items: center;
186
- `,Fe=n(ee)`
186
+ `,De=n(re)`
187
187
  width: calc((100% - .75rem) / 2);
188
- `,Ie=n.div`
188
+ `,Le=n.div`
189
189
  display: flex;
190
190
  flex-wrap: wrap;
191
191
  padding: .75rem;
192
192
  gap: .75rem;
193
193
  border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
194
- `,De=n.div`
194
+ `,Oe=n.div`
195
195
  display: flex;
196
196
  padding: .5rem .5rem .5rem 1rem;
197
197
  gap: .25rem;
@@ -229,44 +229,48 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
229
229
  -webkit-box-orient: vertical;
230
230
  display: -webkit-box;
231
231
  }
232
- `,Le=n.div`
232
+ `,Pe=n.div`
233
233
  background: #FFF;
234
234
  border: var(--bs-border-width) var(--bs-border-style) ${e=>e.$focused?"var(--bs-primary)":"var(--bs-border-color)"};
235
235
  border-radius: var(--bs-border-radius-lg);
236
236
  box-shadow: 0.125rem 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
237
- `,Pe=n.div`
237
+ `,Be=n.div`
238
238
  margin: 0 1rem 1rem;
239
- `;function Oe(e){return e.map((e=>({id:e.id,query:e.query,quote:e.quote||void 0,files:e.files||void 0,variables:e.variables,chunks:e.chunks.map((e=>{let{content:t="",node:r,error:n,tools:i=[],reasoning:o}=e;return{content:t,reasoning:o,error:n,tools:i,node:r}})),annotation:e.annotation,stats:{usage:e.usage,latency:e.latency}})))}function Be(e){if((e=e.filter((e=>!!e.trim()))).length>3){const t=[...e];let r=e.length-3;for(;r--;){let e=Math.floor(Math.random()*t.length);t.splice(e,1)}e=t}return e}var _e,Ue,He;function Je(){return Je=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Je.apply(this,arguments)}const Ke=e=>y.createElement("svg",Je({xmlns:"http://www.w3.org/2000/svg",width:20,height:10,fill:"#fff",viewBox:"0 0 120 30"},e),_e||(_e=y.createElement("circle",{cx:15,cy:15,r:15,fill:"#3c60ff"},y.createElement("animate",{attributeName:"r",begin:"0s",calcMode:"linear",dur:"0.8s",from:15,repeatCount:"indefinite",to:15,values:"15;9;15"}),y.createElement("animate",{attributeName:"fill-opacity",begin:"0s",calcMode:"linear",dur:"0.8s",from:1,repeatCount:"indefinite",to:1,values:"1;.5;1"}))),Ue||(Ue=y.createElement("circle",{cx:60,cy:15,r:9,fill:"#3c60ff",fillOpacity:.3},y.createElement("animate",{attributeName:"r",begin:"0s",calcMode:"linear",dur:"0.8s",from:9,repeatCount:"indefinite",to:9,values:"9;15;9"}),y.createElement("animate",{attributeName:"fill-opacity",begin:"0s",calcMode:"linear",dur:"0.8s",from:.5,repeatCount:"indefinite",to:.5,values:".5;1;.5"}))),He||(He=y.createElement("circle",{cx:105,cy:15,r:15,fill:"#3c60ff"},y.createElement("animate",{attributeName:"r",begin:"0s",calcMode:"linear",dur:"0.8s",from:15,repeatCount:"indefinite",to:15,values:"15;9;15"}),y.createElement("animate",{attributeName:"fill-opacity",begin:"0s",calcMode:"linear",dur:"0.8s",from:1,repeatCount:"indefinite",to:1,values:"1;.5;1"})))),Qe=function(e,t,r){function n(t){return t!==W.leftSquareBracket?(e.exit("citeMarker"),e.enter("citeData"),e.enter(X.chunkString,{contentType:"string"}),i(t)):(e.consume(t),n)}function i(n){return n===W.rightSquareBracket?(e.exit(X.chunkString),e.exit("citeData"),e.enter("citeMarker"),function(n){if(n!==W.rightSquareBracket)return r(n);return e.consume(n),e.exit("citeMarker"),e.exit("cite"),t(n)}(n)):V(n)||n===W.eof||n>57||n<48?r(n):(e.consume(n),i)}return function(t){return t!==W.leftSquareBracket?r(t):(e.enter("cite"),e.enter("citeMarker"),n(t))}},We=function(){const e=this.data();e.micromarkExtensions.push({text:{[W.leftSquareBracket]:{tokenize:Qe}}}),e.fromMarkdownExtensions.push({enter:{cite:function(e){this.enter({type:"cite",data:{hName:"cite",hChildren:[{type:"text",value:""}]}},e)},citeData:function(){this.buffer()}},exit:{cite:function(e){this.exit(e)},citeData:function(){const e=this.resume();this.stack[this.stack.length-1].data.hChildren[0].value=e}}})},Xe=f.Image,Ve={pre:r=>{let{children:n}=r;const i=N(null);return e(tt,{ref:i,children:[t(et,{tooltip:!1,content:()=>{const e=i.current?.getElementsByTagName("code");return e?.[0]?.innerText||""}}),n]})},a:e=>{let{node:r,href:n,...i}=e;const o=n?.startsWith("http")?"_blank":"_self";return t("a",{...i,href:n,target:o})},img:e=>{let{node:r,...n}=e;return t(Xe,{...n})}},Ye=[[U,{singleDollarTextMath:!1}],J,H],Ge=[K,[Q,{detect:!1,ignoreMissing:!0}]],Ze=S((e=>{let{content:r,components:n,cite:i}=e;r=r.replace(/\\\(\s(.+?)\s\\\)/g,"$$$$ $1 $$$$");const o=q((()=>{const e={...Ve,...n};return i&&(e.cite=i),e}),[n,i]),s=q((()=>i?[...Ye,We]:Ye),[i]);return t(rt,{remarkPlugins:s,rehypePlugins:Ge,components:o,children:r})}),B),et=n(b)`
240
- position: absolute;
241
- right: 10px;
242
- top: 1em;
239
+ `;function _e(e){return e.map((e=>({id:e.id,query:e.query,quote:e.quote||void 0,files:e.files||void 0,variables:e.variables,chunks:e.chunks.map((e=>{let{content:t="",node:r,error:n,tools:i=[],reasoning:o}=e;return{content:t,reasoning:o,error:n,tools:i,node:r}})),annotation:e.annotation,stats:{usage:e.usage,latency:e.latency}})))}function Ue(e){if((e=e.filter((e=>!!e.trim()))).length>3){const t=[...e];let r=e.length-3;for(;r--;){let e=Math.floor(Math.random()*t.length);t.splice(e,1)}e=t}return e}var He,Je,Ke;function Qe(){return Qe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Qe.apply(this,arguments)}const We=e=>k.createElement("svg",Qe({xmlns:"http://www.w3.org/2000/svg",width:20,height:10,fill:"#fff",viewBox:"0 0 120 30"},e),He||(He=k.createElement("circle",{cx:15,cy:15,r:15,fill:"#3c60ff"},k.createElement("animate",{attributeName:"r",begin:"0s",calcMode:"linear",dur:"0.8s",from:15,repeatCount:"indefinite",to:15,values:"15;9;15"}),k.createElement("animate",{attributeName:"fill-opacity",begin:"0s",calcMode:"linear",dur:"0.8s",from:1,repeatCount:"indefinite",to:1,values:"1;.5;1"}))),Je||(Je=k.createElement("circle",{cx:60,cy:15,r:9,fill:"#3c60ff",fillOpacity:.3},k.createElement("animate",{attributeName:"r",begin:"0s",calcMode:"linear",dur:"0.8s",from:9,repeatCount:"indefinite",to:9,values:"9;15;9"}),k.createElement("animate",{attributeName:"fill-opacity",begin:"0s",calcMode:"linear",dur:"0.8s",from:.5,repeatCount:"indefinite",to:.5,values:".5;1;.5"}))),Ke||(Ke=k.createElement("circle",{cx:105,cy:15,r:15,fill:"#3c60ff"},k.createElement("animate",{attributeName:"r",begin:"0s",calcMode:"linear",dur:"0.8s",from:15,repeatCount:"indefinite",to:15,values:"15;9;15"}),k.createElement("animate",{attributeName:"fill-opacity",begin:"0s",calcMode:"linear",dur:"0.8s",from:1,repeatCount:"indefinite",to:1,values:"1;.5;1"})))),Xe=function(e,t,r){function n(t){return t!==V.leftSquareBracket?(e.exit("citeMarker"),e.enter("citeData"),e.enter(Y.chunkString,{contentType:"string"}),i(t)):(e.consume(t),n)}function i(n){return n===V.rightSquareBracket?(e.exit(Y.chunkString),e.exit("citeData"),e.enter("citeMarker"),function(n){if(n!==V.rightSquareBracket)return r(n);return e.consume(n),e.exit("citeMarker"),e.exit("cite"),t(n)}(n)):G(n)||n===V.eof||n>57||n<48?r(n):(e.consume(n),i)}return function(t){return t!==V.leftSquareBracket?r(t):(e.enter("cite"),e.enter("citeMarker"),n(t))}},Ve=function(){const e=this.data();e.micromarkExtensions.push({text:{[V.leftSquareBracket]:{tokenize:Xe}}}),e.fromMarkdownExtensions.push({enter:{cite:function(e){this.enter({type:"cite",data:{hName:"cite",hChildren:[{type:"text",value:""}]}},e)},citeData:function(){this.buffer()}},exit:{cite:function(e){this.exit(e)},citeData:function(){const e=this.resume();this.stack[this.stack.length-1].data.hChildren[0].value=e}}})},Ye=f.Image,Ge={pre:r=>{let{children:n,node:i}=r;const o=q((()=>{const e=i.children[0];return"element"===(t=e).type&&"code"===t.tagName&&!!e.properties?.className?.includes("language-svg");var t}),[i]),[s,a]=M(o),l=q((()=>U(i)),[i]);return e(it,{children:[e(nt,{children:[!s&&t(b,{tooltip:!1,as:rt,content:l}),o&&s&&t(rt,{onClick:()=>{const e=new Blob([l],{type:"image/svg+xml"}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download="image.svg",r.click(),URL.revokeObjectURL(t)},children:"下载"}),o&&t(rt,{onClick:()=>a(!s),children:s?"源码":"预览"})]}),o&&s?t("div",{dangerouslySetInnerHTML:{__html:l}}):t("pre",{children:n})]})},a:e=>{let{node:r,href:n,...i}=e;const o=n?.startsWith("http")?"_blank":"_self";return t("a",{...i,href:n,target:o})},img:e=>{let{node:r,...n}=e;return t(Ye,{...n})}},Ze=[[X,{singleDollarTextMath:!1}],W,Q],et=[K,[J,{detect:!1,ignoreMissing:!0}]],tt=R((e=>{let{content:r,components:n,cite:i}=e;r=r.replace(/\\\(\s(.+?)\s\\\)/g,"$$$$ $1 $$$$");const o=q((()=>{const e={...Ge,...n};return i&&(e.cite=i),e}),[n,i]),s=q((()=>i?[...Ze,Ve]:Ze),[i]);return t(ot,{remarkPlugins:s,rehypePlugins:et,components:o,children:r})}),_),rt=n.div`
243
240
  cursor: pointer;
244
241
  padding: 2px 10px;
245
242
  background-color: #303030;
246
243
  color: #fff;
247
244
  border: 1px solid #dedede;
248
245
  border-radius: 15px;
246
+ font-size: 12px;
247
+ font-family: initial;
248
+ user-select: none;
249
+ `,nt=n.div`
250
+ position: absolute;
251
+ right: 10px;
252
+ top: 1em;
249
253
  transform: translateX(10px);
250
254
  pointer-events: none;
251
255
  opacity: 0;
252
256
  transition: all ease 0.3s;
253
- font-size: 12px;
254
- font-family: initial;
257
+ display: flex;
258
+ gap: 5px;
255
259
 
256
260
  &:hover {
257
261
  opacity: 1;
258
262
  }
259
- `,tt=n.pre`
263
+ `,it=n.div`
260
264
  position: relative;
261
265
 
262
266
  &:hover {
263
- ${et} {
267
+ ${nt} {
264
268
  pointer-events: all;
265
269
  transform: translateX(0px);
266
- opacity: 0.5;
270
+ opacity: 0.7;
267
271
  }
268
272
  }
269
- `,rt=n(_)`
273
+ `,ot=n(H)`
270
274
  -ms-text-size-adjust: 100%;
271
275
  -webkit-text-size-adjust: 100%;
272
276
  line-height: 1.8;
@@ -536,7 +540,7 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
536
540
  .hljs-strong {
537
541
  font-weight: 700;
538
542
  }
539
- `;var nt=M((function(e,r){let{children:n,tooltip:i,onClick:o,disabled:a,...l}=e;a&&(o=void 0);const c=t(it,{ref:r,onClick:o,$disabled:a,...l,children:n});return i?t(s,{tooltip:i,placement:"top",children:c}):c}));const it=n.div`
543
+ `;var st=$((function(e,r){let{children:n,tooltip:i,onClick:o,disabled:a,...l}=e;a&&(o=void 0);const c=t(at,{ref:r,onClick:o,$disabled:a,...l,children:n});return i?t(s,{tooltip:i,placement:"top",children:c}):c}));const at=n.div`
540
544
  align-items: center;
541
545
  justify-content: center;
542
546
  border-radius: .375rem;
@@ -569,7 +573,7 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
569
573
  `}
570
574
 
571
575
  }
572
- `,ot=f.Image;function st(e){let{src:r,...n}=e;const{imageResolver:i}=ae();return i&&r&&(r=i(r)),t(at,{children:t(ot,{src:r,...n})})}const at=n.div`
576
+ `,lt=f.Image;function ct(e){let{src:r,...n}=e;const{imageResolver:i}=ce();return i&&r&&(r=i(r)),t(dt,{children:t(lt,{src:r,...n})})}const dt=n.div`
573
577
  margin-bottom: .5rem;
574
578
  margin-top: .5rem;
575
579
  border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
@@ -594,7 +598,7 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
594
598
  max-height: 100%;
595
599
  max-width: 100%;
596
600
  }
597
- `;function lt(e){let{value:n,cite:i}=e;const o=e=>"string"==typeof e?t(Ze,{content:e,cite:i}):"image"===e.type?t(st,{src:e.image}):null;return Array.isArray(n)?t(r,{children:n.map(((e,r)=>t($,{children:o(e)},r)))}):o(n)}const ct=S((r=>{let{reasoning:n,loading:i}=r;const[o,s]=C(i);return E((()=>{i||s(!1)}),[i]),t($,{children:t("div",{className:"mb-2",children:e("div",o||i?{className:"shadow-sm rounded bg-white fs-7",children:[e("div",{onClick:()=>s(i),role:"button",className:"d-flex align-items-center p-1 px-2 gap-2",children:[i?t(I,{animation:"border",variant:"primary",size:"sm"}):t("i",{className:"bi bi-check-circle-fill text-success"}),t("span",{className:"text-muted",children:i?"思考中":"已思考"}),t("i",{className:"bi bi-caret-up-fill text-muted"})]}),t("div",{className:"border-top p-2 d-flex flex-column gap-2",children:t("div",{className:"border rounded bg-light p-2",children:t(Ze,{content:n})})})]}:{onClick:()=>s(!0),role:"button",className:"d-inline-flex align-items-center shadow-sm rounded bg-white p-1 px-2 fs-7 gap-2",children:[i?t(I,{animation:"border",variant:"primary",size:"sm"}):t("i",{className:"bi bi-check-circle-fill text-success"}),t("span",{className:"text-muted",children:i?"思考中":"已思考"}),t("i",{className:"bi bi-caret-down-fill text-muted"})]})})})}));class dt{#t;#o=[];#s=0;constructor(){this.#t=new O}speak(){for(this.#t.emit("playing",!0);this.#s<this.#o.length;){const e=this.#o[this.#s],t=new SpeechSynthesisUtterance(e),r=++this.#s;t.onend=()=>{r>=this.#o.length&&this.clear()},t.onerror=()=>{this.clear()},window.speechSynthesis.speak(t)}}clear(){this.#t.emit("playing",!1)}start(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.#o=Array.isArray(e)?e:[e],t||(window.speechSynthesis.cancel(),this.#s=0),this.speak()}stop(){window.speechSynthesis.cancel(),this.clear()}onPlaying(e){this.#t.on("playing",e)}onSpeaking(e){this.#t.on("speaking",e)}}const ht=new Map;class ut{#r;#t;#o=[];#a=new Map;#l=!1;#s=0;#c=!1;constructor(e){this.#r=e,this.#t=new O}createLoader(e){const t=new Promise((async t=>{try{const{type:r,data:n}=await this.#r(e),i=new Audio(`data:${r};base64,${n}`);this.#a.set(e,i),t(i)}catch{this.#a.delete(e),t(void 0)}}));return this.#a.set(e,t),t}async loadAudioData(){this.#c=!0,this.#t.emit("speaking",!0);let e=0;for(;e<this.#o.length;){const t=this.#o[e];!this.#a.has(t)&&this.#c&&await this.createLoader(t),e++}this.#t.emit("speaking",!1),this.#c=!1}waitForAudioLoaded(e){const t=this.#a.get(e);return t instanceof Promise?t:Promise.resolve(t)}async playAudio(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.#l=!0;const t=await this.waitForAudioLoaded(this.#o[e]);this.#t.emit("playing",!0),t?(ht.set(this,t),t.onpause=async()=>{t.ended?(this.#s++,this.#s<this.#o.length?await this.playAudio(this.#s):this.clear()):this.clear()},await t.play()):this.clear()}clear(){this.#l=!1,this.#c=!1,this.#t.emit("playing",!1),this.#t.emit("speaking",!1),ht.delete(this)}start(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];ht.forEach(((e,t)=>{t!==this&&(e.pause(),e.currentTime=0)})),this.#o=Array.isArray(e)?e:[e],t||(this.#s=0),this.#c||this.loadAudioData(),this.#l||this.playAudio()}update(e){this.#o=Array.isArray(e)?e:[e]}stop(){const e=ht.get(this);e&&(e.pause(),e.currentTime=0)}onPlaying(e){this.#t.on("playing",e)}onSpeaking(e){this.#t.on("speaking",e)}}function mt(e){let{text:t,loading:r,loader:n}=e;const i=N(),[o,s]=C(!1),[a,l]=C(!1),c=N(r),d=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];i.current||(i.current=n?new ut(n):new dt,i.current.onSpeaking(s),i.current.onPlaying(l));let o="";"string"==typeof t?o=t:t.current&&(o=function(e){const t=e.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li:not(:has(p,h1, h2, h3, h4, h5, h6))");return Array.from(t).flatMap((e=>e.textContent?[e.textContent]:[]))}(t.current),r&&o.pop()),o&&0!==o.length&&i.current.start(o,e)};return E((()=>{if(c.current&&"string"!=typeof t&&t.current){if(r){const e={childList:!0,subtree:!0},r=new MutationObserver((function(){d(!0)}));return r.observe(t.current,e),d(),()=>{r.disconnect()}}d(!0)}}),[r]),E((()=>()=>{i.current&&(i.current.stop(),i.current=void 0)}),[]),{playing:a,speaking:o,start:d,stop:()=>{i.current&&i.current.stop()}}}function pt(r){let{model:n="builtin",voice:i,loading:o,autoplay:s,contentRef:a,avatarRef:l}=r;const{request:c}=ae(),d=q((()=>{if("builtin"!==n)return async e=>(await c({url:"/speech",method:"post",data:{model:n,voice:i,input:e}})).audio}),[n,i]),{playing:h,speaking:u,start:m,stop:p}=mt({loader:d,text:a,loading:s&&o});let g=null;return l.current&&(u&&(g=Y(t(gt,{children:t(I,{size:"sm",variant:"light"})}),l.current)),h&&(g=Y(t(gt,{children:t(ft,{className:"bi bi-volume-down-fill text-light"})}),l.current))),e(nt,{disabled:o&&!h,onClick:()=>{h?p():m()},children:[h?t(ft,{className:"bi bi-volume-down-fill"}):u?t(I,{size:"sm",variant:"primary"}):t(ft,{className:"bi bi-volume-down"}),g]})}const gt=n.div`
601
+ `;function ht(e){let{value:n,cite:i}=e;const o=e=>"string"==typeof e?t(tt,{content:e,cite:i}):"image"===e.type?t(ct,{src:e.image}):null;return Array.isArray(n)?t(r,{children:n.map(((e,r)=>t(S,{children:o(e)},r)))}):o(n)}const mt=R((r=>{let{reasoning:n,loading:i}=r;const[o,s]=M(i);return j((()=>{i||s(!1)}),[i]),t(S,{children:t("div",{className:"mb-2",children:e("div",o||i?{className:"shadow-sm rounded bg-white fs-7",children:[e("div",{onClick:()=>s(i),role:"button",className:"d-flex align-items-center p-1 px-2 gap-2",children:[i?t(D,{animation:"border",variant:"primary",size:"sm"}):t("i",{className:"bi bi-check-circle-fill text-success"}),t("span",{className:"text-muted",children:i?"思考中":"已思考"}),t("i",{className:"bi bi-caret-up-fill text-muted"})]}),t("div",{className:"border-top p-2 d-flex flex-column gap-2",children:t("div",{className:"border rounded bg-light p-2",children:t(tt,{content:n})})})]}:{onClick:()=>s(!0),role:"button",className:"d-inline-flex align-items-center shadow-sm rounded bg-white p-1 px-2 fs-7 gap-2",children:[i?t(D,{animation:"border",variant:"primary",size:"sm"}):t("i",{className:"bi bi-check-circle-fill text-success"}),t("span",{className:"text-muted",children:i?"思考中":"已思考"}),t("i",{className:"bi bi-caret-down-fill text-muted"})]})})})}));class ut{#t;#o=[];#s=0;constructor(){this.#t=new B}speak(){for(this.#t.emit("playing",!0);this.#s<this.#o.length;){const e=this.#o[this.#s],t=new SpeechSynthesisUtterance(e),r=++this.#s;t.onend=()=>{r>=this.#o.length&&this.clear()},t.onerror=()=>{this.clear()},window.speechSynthesis.speak(t)}}clear(){this.#t.emit("playing",!1)}start(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.#o=Array.isArray(e)?e:[e],t||(window.speechSynthesis.cancel(),this.#s=0),this.speak()}stop(){window.speechSynthesis.cancel(),this.clear()}onPlaying(e){this.#t.on("playing",e)}onSpeaking(e){this.#t.on("speaking",e)}}const pt=new Map;class gt{#r;#t;#o=[];#a=new Map;#l=!1;#s=0;#c=!1;constructor(e){this.#r=e,this.#t=new B}createLoader(e){const t=new Promise((async t=>{try{const{type:r,data:n}=await this.#r(e),i=new Audio(`data:${r};base64,${n}`);this.#a.set(e,i),t(i)}catch{this.#a.delete(e),t(void 0)}}));return this.#a.set(e,t),t}async loadAudioData(){this.#c=!0,this.#t.emit("speaking",!0);let e=0;for(;e<this.#o.length;){const t=this.#o[e];!this.#a.has(t)&&this.#c&&await this.createLoader(t),e++}this.#t.emit("speaking",!1),this.#c=!1}waitForAudioLoaded(e){const t=this.#a.get(e);return t instanceof Promise?t:Promise.resolve(t)}async playAudio(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.#l=!0;const t=await this.waitForAudioLoaded(this.#o[e]);this.#t.emit("playing",!0),t?(pt.set(this,t),t.onpause=async()=>{t.ended?(this.#s++,this.#s<this.#o.length?await this.playAudio(this.#s):this.clear()):this.clear()},await t.play()):this.clear()}clear(){this.#l=!1,this.#c=!1,this.#t.emit("playing",!1),this.#t.emit("speaking",!1),pt.delete(this)}start(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];pt.forEach(((e,t)=>{t!==this&&(e.pause(),e.currentTime=0)})),this.#o=Array.isArray(e)?e:[e],t||(this.#s=0),this.#c||this.loadAudioData(),this.#l||this.playAudio()}update(e){this.#o=Array.isArray(e)?e:[e]}stop(){const e=pt.get(this);e&&(e.pause(),e.currentTime=0)}onPlaying(e){this.#t.on("playing",e)}onSpeaking(e){this.#t.on("speaking",e)}}function ft(e){let{text:t,loading:r,loader:n}=e;const i=E(),[o,s]=M(!1),[a,l]=M(!1),c=E(r),d=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];i.current||(i.current=n?new gt(n):new ut,i.current.onSpeaking(s),i.current.onPlaying(l));let o="";"string"==typeof t?o=t:t.current&&(o=function(e){const t=e.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li:not(:has(p,h1, h2, h3, h4, h5, h6))");return Array.from(t).flatMap((e=>e.textContent?[e.textContent]:[]))}(t.current),r&&o.pop()),o&&0!==o.length&&i.current.start(o,e)};return j((()=>{if(c.current&&"string"!=typeof t&&t.current){if(r){const e={childList:!0,subtree:!0},r=new MutationObserver((function(){d(!0)}));return r.observe(t.current,e),d(),()=>{r.disconnect()}}d(!0)}}),[r]),j((()=>()=>{i.current&&(i.current.stop(),i.current=void 0)}),[]),{playing:a,speaking:o,start:d,stop:()=>{i.current&&i.current.stop()}}}function bt(r){let{model:n="builtin",voice:i,loading:o,autoplay:s,contentRef:a,avatarRef:l}=r;const{request:c}=ce(),d=q((()=>{if("builtin"!==n)return async e=>(await c({url:"/speech",method:"post",data:{model:n,voice:i,input:e}})).audio}),[n,i]),{playing:h,speaking:m,start:u,stop:p}=ft({loader:d,text:a,loading:s&&o});let g=null;return l.current&&(m&&(g=Z(t(vt,{children:t(D,{size:"sm",variant:"light"})}),l.current)),h&&(g=Z(t(vt,{children:t(xt,{className:"bi bi-volume-down-fill text-light"})}),l.current))),e(st,{disabled:o&&!h,onClick:()=>{h?p():u()},children:[h?t(xt,{className:"bi bi-volume-down-fill"}):m?t(D,{size:"sm",variant:"primary"}):t(xt,{className:"bi bi-volume-down"}),g]})}const vt=n.div`
598
602
  position: absolute;
599
603
  top: 0;
600
604
  left: 0;
@@ -604,20 +608,20 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
604
608
  align-items: center;
605
609
  justify-content: center;
606
610
  background-color: rgba(0, 0, 0, .3);
607
- `,ft=n.i`
611
+ `,xt=n.i`
608
612
 
609
613
  &::before {
610
614
  transform: scale(1.4)
611
615
  }
612
- `;function bt(r){let{tool:n}=r;const[i,o]=C(!1),{logLevel:s="none"}=ae(),a="response"in n;return e($,{children:["stats"==s&&t("div",{className:"mb-2",children:e("div",{role:"button",className:"d-inline-flex align-items-center shadow-sm rounded bg-white p-1 px-2 fs-7 gap-2",children:[a?n.error?t("i",{className:"bi bi-x-circle-fill text-danger"}):t("i",{className:"bi bi-check-circle-fill text-success"}):t(I,{animation:"border",variant:"primary",size:"sm"}),t("span",{className:"text-muted",children:a?"已使用":"正在使用"}),t("span",{children:n.title})]})}),"all"==s&&t("div",{className:"mb-2",children:e("div",i&&a?{className:"shadow-sm rounded bg-white fs-7",children:[e("div",{onClick:()=>o(!1),role:"button",className:"d-flex align-items-center p-1 px-2 gap-2",children:[n.error?t("i",{className:"bi bi-x-circle-fill text-danger"}):t("i",{className:"bi bi-check-circle-fill text-success"}),t("span",{className:"text-muted",children:"已使用"}),t("span",{children:n.title}),t("i",{className:"bi bi-caret-up-fill text-muted"})]}),e("div",{className:"border-top p-2 d-flex flex-column gap-2",children:[e("div",{className:"border rounded bg-light",children:[t("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:t("span",{className:"text-muted",children:"参数"})}),t("div",{className:"border-top p-2 overflow-hidden",children:n.arguments})]}),e("div",{className:"border rounded bg-light",children:[t("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:t("span",{className:"text-muted",children:"响应"})}),t(vt,{className:"border-top p-2 overflow-hidden",children:n.response||"None"})]})]})]}:{onClick:()=>o(a),role:"button",className:"d-inline-flex align-items-center shadow-sm rounded bg-white p-1 px-2 fs-7 gap-2",children:[a?n.error?t("i",{className:"bi bi-x-circle-fill text-danger"}):t("i",{className:"bi bi-check-circle-fill text-success"}):t(I,{animation:"border",variant:"primary",size:"sm"}),t("span",{className:"text-muted",children:a?"已使用":"正在使用"}),t("span",{children:n.title}),a&&t("i",{className:"bi bi-caret-down-fill text-muted"})]})}),n.content&&t(lt,{value:n.content})]})}const vt=n.div`
616
+ `;function yt(r){let{tool:n}=r;const[i,o]=M(!1),{logLevel:s="none"}=ce(),a="response"in n;return e(S,{children:["stats"==s&&t("div",{className:"mb-2",children:e("div",{role:"button",className:"d-inline-flex align-items-center shadow-sm rounded bg-white p-1 px-2 fs-7 gap-2",children:[a?n.error?t("i",{className:"bi bi-x-circle-fill text-danger"}):t("i",{className:"bi bi-check-circle-fill text-success"}):t(D,{animation:"border",variant:"primary",size:"sm"}),t("span",{className:"text-muted",children:a?"已使用":"正在使用"}),t("span",{children:n.title})]})}),"all"==s&&t("div",{className:"mb-2",children:e("div",i&&a?{className:"shadow-sm rounded bg-white fs-7",children:[e("div",{onClick:()=>o(!1),role:"button",className:"d-flex align-items-center p-1 px-2 gap-2",children:[n.error?t("i",{className:"bi bi-x-circle-fill text-danger"}):t("i",{className:"bi bi-check-circle-fill text-success"}),t("span",{className:"text-muted",children:"已使用"}),t("span",{children:n.title}),t("i",{className:"bi bi-caret-up-fill text-muted"})]}),e("div",{className:"border-top p-2 d-flex flex-column gap-2",children:[e("div",{className:"border rounded bg-light",children:[t("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:t("span",{className:"text-muted",children:"参数"})}),t("div",{className:"border-top p-2 overflow-hidden",children:n.arguments})]}),e("div",{className:"border rounded bg-light",children:[t("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:t("span",{className:"text-muted",children:"响应"})}),t(kt,{className:"border-top p-2 overflow-hidden",children:n.response||"None"})]})]})]}:{onClick:()=>o(a),role:"button",className:"d-inline-flex align-items-center shadow-sm rounded bg-white p-1 px-2 fs-7 gap-2",children:[a?n.error?t("i",{className:"bi bi-x-circle-fill text-danger"}):t("i",{className:"bi bi-check-circle-fill text-success"}):t(D,{animation:"border",variant:"primary",size:"sm"}),t("span",{className:"text-muted",children:a?"已使用":"正在使用"}),t("span",{children:n.title}),a&&t("i",{className:"bi bi-caret-down-fill text-muted"})]})}),n.content&&t(ht,{value:n.content})]})}const kt=n.div`
613
617
  white-space: pre-wrap;
614
- `;function xt(r){let{node:n}=r;const[i,o]=C(!1),{nodeIconResolver:s}=ae(),a=!("latency"in n),l=a?t(I,{animation:"border",variant:"primary",size:"sm"}):n.error?t("i",{className:"bi bi-x-circle-fill text-danger"}):t("i",{className:"bi bi-check-circle-fill text-success"});return e("div",{className:"shadow-sm rounded bg-white fs-7",children:[e(kt,{onClick:()=>o((e=>!e)),role:"button",className:"d-flex align-items-center p-1 px-2 gap-1",children:[t("i",{className:"bi bi-chevron-down text-muted"}),s?.(n.type),t(wt,{className:"me-2 text-truncate",children:n.title}),t("span",{className:"me-auto"}),!a&&t("span",{className:"text-nowrap text-muted",children:yt(n.latency)}),t("span",{children:l})]}),i&&e("div",{className:"border-top p-2 d-flex flex-column gap-2",children:[e("div",{className:"border rounded bg-light",children:[t("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:t("span",{className:"text-muted",children:"输入"})}),t("div",{className:"border-top p-2 overflow-hidden text-pre-wrap",children:n.input?JSON.stringify(n.input,null,4):"None"})]}),e("div",{className:"border rounded bg-light",children:[t("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:t("span",{className:"text-muted",children:"输出"})}),t("div",{className:"border-top p-2 overflow-hidden text-pre-wrap",children:n.output?JSON.stringify(n.output,null,4):"None"})]})]})]})}const yt=e=>e<1?`${(1e3*e).toFixed(3)} ms`:e>60?`${parseInt(Math.round(e/60).toString())} m ${(e%60).toFixed(3)} s`:`${e.toFixed(3)} s`,kt=n.div`
618
+ `;function wt(r){let{node:n}=r;const[i,o]=M(!1),{nodeIconResolver:s}=ce(),a=!("latency"in n),l=a?t(D,{animation:"border",variant:"primary",size:"sm"}):n.error?t("i",{className:"bi bi-x-circle-fill text-danger"}):t("i",{className:"bi bi-check-circle-fill text-success"});return e("div",{className:"shadow-sm rounded bg-white fs-7",children:[e(Et,{onClick:()=>o((e=>!e)),role:"button",className:"d-flex align-items-center p-1 px-2 gap-1",children:[t("i",{className:"bi bi-chevron-down text-muted"}),s?.(n.type),t(jt,{className:"me-2 text-truncate",children:n.title}),t("span",{className:"me-auto"}),!a&&t("span",{className:"text-nowrap text-muted",children:Nt(n.latency)}),t("span",{children:l})]}),i&&e("div",{className:"border-top p-2 d-flex flex-column gap-2",children:[e("div",{className:"border rounded bg-light",children:[t("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:t("span",{className:"text-muted",children:"输入"})}),t("div",{className:"border-top p-2 overflow-hidden text-pre-wrap",children:n.input?JSON.stringify(n.input,null,4):"None"})]}),e("div",{className:"border rounded bg-light",children:[t("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:t("span",{className:"text-muted",children:"输出"})}),t("div",{className:"border-top p-2 overflow-hidden text-pre-wrap",children:n.output?JSON.stringify(n.output,null,4):"None"})]})]})]})}const Nt=e=>e<1?`${(1e3*e).toFixed(3)} ms`:e>60?`${parseInt(Math.round(e/60).toString())} m ${(e%60).toFixed(3)} s`:`${e.toFixed(3)} s`,Et=n.div`
615
619
  svg {
616
620
  flex-shrink: 0;
617
621
  }
618
- `,wt=n.span`
622
+ `,jt=n.span`
619
623
  display: inline-block;
620
- `;function Nt(r){let{nodes:n,loading:i}=r;const[o,s]=C(!1),a=n.some((e=>"error"in e)),l=i?t(I,{animation:"border",variant:"primary",size:"sm"}):t("i",a?{className:"bi bi-x-circle-fill text-danger"}:{className:"bi bi-check-circle-fill text-success"});return t("div",{className:"mb-2",children:e("div",o?{className:"shadow-sm rounded bg-white fs-7",children:[e("div",{onClick:()=>s(!1),role:"button",className:"d-flex align-items-center p-1 px-2 gap-2",children:[l,t("span",{children:"工作流"}),t("i",{className:"bi bi-caret-up-fill text-muted"})]}),t("div",{className:"border-top p-2 d-flex flex-column gap-1 bg-light bg-opacity-50",children:n.map(((e,r)=>t(xt,{node:e},r)))})]}:{onClick:()=>s(!0),role:"button",className:"d-inline-flex align-items-center shadow-sm rounded bg-white p-1 px-2 fs-7 gap-2",children:[l,t("span",{children:"工作流"}),t("i",{className:"bi bi-caret-down-fill text-muted"})]})})}const Et=S((n=>{let{message:i,actions:o,setMessage:s,cite:a,speech:l}=n;const{query:c,quote:d,files:h=[],chunks:u,annotation:m,loading:p}=i,{user:g,bot:f,logLevel:x="none",messages:y}=ae(),k=q((()=>u?u.reduce((function(e,t){return e+t.content+"\n"+t.tools.reduce(((e,t)=>t.content&&"string"==typeof t.content?e+t.content+"\n":e),"")}),""):""),[u]),w=N(null),E=N(null),j=N(null),C=q((()=>u?.flatMap((e=>e.node?[e.node]:[]))||[]),[u]);return e(r,{children:[(c||h.length>0)&&e(It,{$reverse:!0,children:[g&&t(At,{children:t("img",{src:g.avatar})}),t(Rt,{}),e(Ft,{ref:w,children:[c&&t(Ze,{content:c}),d&&t(L,{trigger:"click",container:w,rootClose:!0,placement:"bottom",overlay:t(jt,{body:!0,children:d}),children:t(Mt,{children:t(Ct,{children:d})})}),h.length>0&&h.map(((e,r)=>{let{name:n,size:i,path:o}=e;return v(o)?t(st,{src:`/uploads/${o}`},r):t(zt,{children:t(ee,{name:n,size:i})},r)}))]})]}),u&&e(It,{children:[t(At,{ref:E,children:t("img",{src:f.avatar})}),t(Rt,{}),e(Ft,{children:[(c||h.length>0)&&!1!==o&&e($t,{children:[t(b,{placement:"top",content:k,as:nt,tooltip:!0}),l&&t(pt,{loading:i.loading,avatarRef:E,contentRef:j,...l}),o?.({Component:nt,message:i,content:k,setMessage:s,messages:y})]}),t(St,{children:["stats","all"].includes(x)&&i.stats&&e(r,{children:[e("span",{children:["耗时 ",i.stats.latency/1e3," 秒"]}),e("span",{children:["花费 Token ",i.stats.usage]})]})}),e(qt,{ref:j,$deleted:!!m,children:["all"===x&&C.length>0&&t(Nt,{loading:p,nodes:C}),u.length>0&&u.map(((r,n)=>e($,{children:[r.reasoning&&["stats","all"].includes(x)&&t(ct,{reasoning:r.reasoning,loading:!r.content}),r.content&&t(lt,{cite:a,value:r.content}),r.tools.map(((e,r)=>t(bt,{tool:e},r))),r.error&&t(Ze,{content:`[${r.error}]`})]},n)))]}),m&&e("div",{children:[e("div",{className:"d-flex align-items-center",children:[t("span",{className:"fs-7 text-secondary me-2",children:"标注的答案"}),t("hr",{className:"flex-fill"})]}),t(Ze,{content:m.answer})]}),i.loading&&t(Ke,{})]})]})]})})),jt=n(P)`
624
+ `;function Ct(r){let{nodes:n,loading:i}=r;const[o,s]=M(!1),a=n.some((e=>"error"in e)),l=i?t(D,{animation:"border",variant:"primary",size:"sm"}):t("i",a?{className:"bi bi-x-circle-fill text-danger"}:{className:"bi bi-check-circle-fill text-success"});return t("div",{className:"mb-2",children:e("div",o?{className:"shadow-sm rounded bg-white fs-7",children:[e("div",{onClick:()=>s(!1),role:"button",className:"d-flex align-items-center p-1 px-2 gap-2",children:[l,t("span",{children:"工作流"}),t("i",{className:"bi bi-caret-up-fill text-muted"})]}),t("div",{className:"border-top p-2 d-flex flex-column gap-1 bg-light bg-opacity-50",children:n.map(((e,r)=>t(wt,{node:e},r)))})]}:{onClick:()=>s(!0),role:"button",className:"d-inline-flex align-items-center shadow-sm rounded bg-white p-1 px-2 fs-7 gap-2",children:[l,t("span",{children:"工作流"}),t("i",{className:"bi bi-caret-down-fill text-muted"})]})})}const Mt=R((n=>{let{message:i,actions:o,setMessage:s,cite:a,speech:l}=n;const{query:c,quote:d,files:h=[],chunks:m,annotation:u,loading:p}=i,{user:g,bot:f,logLevel:y="none",messages:k}=ce(),w=q((()=>m?m.reduce((function(e,t){return e+t.content+"\n"+t.tools.reduce(((e,t)=>{if(t.content){if("string"==typeof t.content)return e+t.content+"\n";if("image"===t.content.type){return e+`![](${v(t.content.image)})\n`}}return e}),"")}),""):""),[m]),N=E(null),j=E(null),C=E(null),M=q((()=>m?.flatMap((e=>e.node?[e.node]:[]))||[]),[m]);return e(r,{children:[(c||h.length>0)&&e(Ot,{$reverse:!0,children:[g&&t(It,{children:t("img",{src:g.avatar})}),t(Dt,{}),e(Lt,{ref:N,children:[c&&t(tt,{content:c}),d&&t(T,{trigger:"click",container:N,rootClose:!0,placement:"bottom",overlay:t($t,{body:!0,children:d}),children:t(zt,{children:t(qt,{children:d})})}),h.length>0&&h.map(((e,r)=>{let{name:n,size:i,path:o}=e;return x(o)?t(ct,{src:`/uploads/${o}`},r):t(Rt,{children:t(re,{name:n,size:i})},r)}))]})]}),m&&e(Ot,{children:[t(It,{ref:j,children:t("img",{src:f.avatar})}),t(Dt,{}),e(Lt,{children:[(c||h.length>0)&&!1!==o&&e(At,{children:[t(b,{placement:"top",content:w,as:st,tooltip:!0}),l&&t(bt,{loading:i.loading,avatarRef:j,contentRef:C,...l}),o?.({Component:st,message:i,content:w,setMessage:s,messages:k})]}),t(Ft,{children:["stats","all"].includes(y)&&i.stats&&e(r,{children:[e("span",{children:["耗时 ",i.stats.latency/1e3," 秒"]}),e("span",{children:["花费 Token ",i.stats.usage]})]})}),e(St,{ref:C,$deleted:!!u,children:["all"===y&&M.length>0&&t(Ct,{loading:p,nodes:M}),m.length>0&&m.map(((r,n)=>e(S,{children:[r.reasoning&&["stats","all"].includes(y)&&t(mt,{reasoning:r.reasoning,loading:!r.content}),r.content&&t(ht,{cite:a,value:r.content}),r.tools.map(((e,r)=>t(yt,{tool:e},r))),r.error&&t(tt,{content:`[${r.error}]`})]},n)))]}),u&&e("div",{children:[e("div",{className:"d-flex align-items-center",children:[t("span",{className:"fs-7 text-secondary me-2",children:"标注的答案"}),t("hr",{className:"flex-fill"})]}),t(tt,{content:u.answer})]}),i.loading&&t(We,{})]})]})]})})),$t=n(P)`
621
625
  max-width: calc(100% - .875rem * 2);
622
626
  width: calc(100% - .875rem * 2);
623
627
  font-size: 1rem;
@@ -626,25 +630,25 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
626
630
  .popover-body {
627
631
  padding: .5rem .75rem;
628
632
  }
629
- `,Ct=n.div`
633
+ `,qt=n.div`
630
634
  overflow: hidden;
631
635
  text-overflow: ellipsis;
632
636
  word-break: break-all;
633
637
  -webkit-line-clamp: 2;
634
638
  -webkit-box-orient: vertical;
635
639
  display: -webkit-box;
636
- `,Mt=n.div`
640
+ `,zt=n.div`
637
641
  padding: .5rem .75rem;
638
642
  color: var(--bs-secondary);
639
643
  border-radius: var(--bs-border-radius-lg);
640
644
  background: #FFFFFF;
641
645
  cursor: pointer;
642
- `,qt=n.div`
646
+ `,St=n.div`
643
647
  ${e=>e.$deleted&&i`
644
648
  text-decoration-line: line-through;
645
649
  color: var(--bs-secondary);
646
650
  `}
647
- `,zt=n.div`
651
+ `,Rt=n.div`
648
652
  width: 100%;
649
653
  margin-bottom: .5rem;
650
654
  margin-top: .5rem;
@@ -656,7 +660,7 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
656
660
  &:last-child {
657
661
  margin-bottom: 0;
658
662
  }
659
- `,$t=n.div`
663
+ `,At=n.div`
660
664
  position: absolute;
661
665
  top: -1.1rem;
662
666
  right: 0;
@@ -664,7 +668,7 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
664
668
  gap: .5rem;
665
669
  opacity: 0;
666
670
  z-index: 1;
667
- `,St=n.div`
671
+ `,Ft=n.div`
668
672
  position: absolute;
669
673
  bottom: -1.4rem;
670
674
  left: 0;
@@ -677,7 +681,7 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
677
681
  display: flex;
678
682
  opacity: 0;
679
683
  z-index: 1;
680
- `,At=n.div`
684
+ `,It=n.div`
681
685
  width: 35px;
682
686
  height: 35px;
683
687
  border-radius: 50%;
@@ -688,14 +692,14 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
688
692
  width: 100%;
689
693
  height: 100%;
690
694
  }
691
- `,Rt=n.div`
695
+ `,Dt=n.div`
692
696
  width: 0;
693
697
  height: 0;
694
698
  content: "";
695
699
  border: 5px solid transparent;
696
700
  border-right-color: #f3f3f3;
697
701
  transform: translateY(10px);
698
- `,Ft=n.div`
702
+ `,Lt=n.div`
699
703
  padding: .875rem;
700
704
  background-color: rgb(243, 243, 243);
701
705
  border-radius: var(--bs-border-radius-lg);
@@ -703,31 +707,31 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
703
707
  position: relative;
704
708
 
705
709
  &:hover {
706
- ${St}, ${$t} {
710
+ ${Ft}, ${At} {
707
711
  opacity: 1;
708
712
  }
709
713
  }
710
- `,It=n.div`
714
+ `,Ot=n.div`
711
715
  display: flex;
712
716
  justify-content: flex-start;
713
717
  padding: 1rem 0 1rem 0;
714
718
  ${e=>e.$reverse&&i`
715
719
  flex-direction: row-reverse;
716
720
 
717
- ${Rt} {
721
+ ${Dt} {
718
722
  border-left-color: rgba(var(--bs-primary-rgb), 0.1);
719
723
  border-right-color: transparent;
720
724
  }
721
725
 
722
- ${Ft} {
726
+ ${Lt} {
723
727
  background: rgba(var(--bs-primary-rgb), 0.1);
724
728
  }
725
729
  `};
726
- `;function Dt(r){const{placeholder:n,actions:i,cite:o,speech:s,renderItem:a,scrollRef:l}=r,{messages:c,setMessages:d,loading:h,suggestions:u,conversationId:m}=ae(),p=N(r.loaded),g=j((()=>{const e=l.current;e&&requestAnimationFrame((()=>{e.scrollTo({top:e.scrollHeight})}))}),[]),f=N(null),{height:b}=G({ref:f});return E((()=>{(h||!p.current)&&c.length>0&&(h&&(p.current=!0),g())}),[b,h,p,c]),E((()=>{u.length>0&&g()}),[u]),E((()=>{p.current=r.loaded}),[m]),E((()=>{const e=f.current;if(e){const t=()=>{p.current=!0};return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}}),[f]),e(Tt,{ref:f,children:[0===c.length&&n,c.slice(-30).map(((e,r)=>{const n={actions:i,cite:o,speech:s,message:e,setMessage:t=>{d((r=>{const n=r.findIndex((t=>t.id===e.id));-1!==n&&t(r[n])}))}};return a?a({Component:Et,props:n},r):t(Et,{...n},r)})),u.length>0&&t(Lt,{children:u.map(((e,r)=>t("a",{href:"#!question",children:e},r)))})]})}const Tt=n.div`
730
+ `;function Tt(r){const{placeholder:n,actions:i,cite:o,speech:s,renderItem:a,scrollRef:l}=r,{messages:c,setMessages:d,loading:h,suggestions:m,conversationId:u}=ce(),p=E(r.loaded),g=C((()=>{const e=l.current;e&&requestAnimationFrame((()=>{e.scrollTo({top:e.scrollHeight})}))}),[]),f=E(null),{height:b}=ee({ref:f});return j((()=>{(h||!p.current)&&c.length>0&&(h&&(p.current=!0),g())}),[b,h,p,c]),j((()=>{m.length>0&&g()}),[m]),j((()=>{p.current=r.loaded}),[u]),j((()=>{const e=f.current;if(e){const t=()=>{p.current=!0};return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}}),[f]),e(Pt,{ref:f,children:[0===c.length&&n,c.slice(-30).map(((e,r)=>{const n={actions:i,cite:o,speech:s,message:e,setMessage:t=>{d((r=>{const n=r.findIndex((t=>t.id===e.id));-1!==n&&t(r[n])}))}};return a?a({Component:Mt,props:n},r):t(Mt,{...n},r)})),m.length>0&&t(Bt,{children:m.map(((e,r)=>t("a",{href:"#!question",children:e},r)))})]})}const Pt=n.div`
727
731
  display: flex;
728
732
  flex-direction: column;
729
733
  flex: 1;
730
- `,Lt=n.div`
734
+ `,Bt=n.div`
731
735
  display: flex;
732
736
  flex-direction: column;
733
737
  align-items: flex-start;
@@ -744,16 +748,16 @@ import{jsxs as e,jsx as t,Fragment as r}from"react/jsx-runtime";import{styled as
744
748
  background: var(--bs-secondary-bg-subtle);
745
749
  }
746
750
  }
747
- `,Pt=S(M(((r,n)=>{let{className:i,bot:o,user:s,input:a,logLevel:l,imageResolver:c,nodeIconResolver:d,placeholder:h,actions:u,onboarding:m,conversation:p,cite:b,speech:v,renderItem:y,messages:k,request:w}=r;const M=j((e=>{const t=[];if(m&&!1!==m.enable){const e=Be(m.questions||[]);t.push({chunks:[{content:[m.prologue,...e.map((e=>`[${e}](#!question)`))].join("\n"),tools:[]}],loading:m.loading})}return e?t.concat(Oe(e.messages||[])):k?t.concat(Oe(k)):t}),[m]),[$,S]=C(p?.id),[A,R]=g([]);E((()=>{R(M(p))}),[m]);const[F,I]=C(!1),D=N(null),[T,L]=C([]),P=j((e=>{F||(S(e?.id),R(M(e)),L([]))}),[F,M]);return z(n,(()=>({reset:P})),[P]),t(le,{request:q((()=>w?"string"==typeof w?x.create({baseURL:w}):w:x),[w]),bot:o,user:s,logLevel:l,imageResolver:c,nodeIconResolver:d,conversationId:$,setConversationId:S,messages:A,setMessages:R,suggestions:T,setSuggestions:L,loading:F,setLoading:I,reset:P,children:t(Bt,{className:i,children:e(f,{children:[t(Ot,{ref:D,children:t(Dt,{placeholder:h,cite:b,actions:u,loaded:!a,speech:v,renderItem:y,scrollRef:D})}),a&&t(Se,{...a,scrollRef:D})]})})})})),B),Ot=n.div`
751
+ `,_t=R($(((r,n)=>{let{className:i,bot:o,user:s,input:a,logLevel:l,imageResolver:c,nodeIconResolver:d,placeholder:h,actions:m,onboarding:u,conversation:p,cite:b,speech:v,renderItem:x,messages:k,request:w}=r;const N=C((e=>{const t=[];if(u&&!1!==u.enable){const e=Ue(u.questions||[]);t.push({chunks:[{content:[u.prologue,...e.map((e=>`[${e}](#!question)`))].join("\n"),tools:[]}],loading:u.loading})}return e?t.concat(_e(e.messages||[])):k?t.concat(_e(k)):t}),[u]),[$,S]=M(p?.id),[R,A]=g([]);j((()=>{A(N(p))}),[u]);const[F,I]=M(!1),D=E(null),[L,O]=M([]),T=C((e=>{F||(S(e?.id),A(N(e)),O([]))}),[F,N]);return z(n,(()=>({reset:T})),[T]),t(de,{request:q((()=>w?"string"==typeof w?y.create({baseURL:w}):w:y),[w]),bot:o,user:s,logLevel:l,imageResolver:c,nodeIconResolver:d,conversationId:$,setConversationId:S,messages:R,setMessages:A,suggestions:L,setSuggestions:O,loading:F,setLoading:I,reset:T,children:t(Ht,{className:i,children:e(f,{children:[t(Ut,{ref:D,children:t(Tt,{placeholder:h,cite:b,actions:m,loaded:!a,speech:v,renderItem:x,scrollRef:D})}),a&&t(Ae,{...a,scrollRef:D})]})})})})),_),Ut=n.div`
748
752
  display: flex;
749
753
  flex-direction: column;
750
754
  flex: 1;
751
755
  overflow-y: auto;
752
756
  padding: 0 1rem;
753
757
  margin-bottom: .5rem;
754
- `,Bt=n.div`
758
+ `,Ht=n.div`
755
759
  display: flex;
756
760
  flex-direction: column;
757
761
  height: 100%;
758
762
  position: relative;
759
- `;export{ge as ActionButton,Ze as Markdown,Pt as MessageBox,ce as VariableForm,Be as pickQuestions,mt as useSynthesis};
763
+ `;export{be as ActionButton,tt as Markdown,_t as MessageBox,he as VariableForm,Ue as pickQuestions,ft as useSynthesis};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topthink/chat",
3
- "version": "1.1.23",
3
+ "version": "1.1.25",
4
4
  "scripts": {
5
5
  "prebuild": "rimraf es types",
6
6
  "build": "rollup -c --environment NODE_ENV:production",
@@ -18,9 +18,11 @@
18
18
  "dependencies": {
19
19
  "@babel/runtime": "^7.11.2",
20
20
  "@breezystack/lamejs": "^1.2.7",
21
- "@topthink/components": "^1.1.16",
21
+ "@topthink/components": "^1.1.18",
22
+ "@types/hast": "^2.0.0",
22
23
  "@types/mdast": "^4.0.4",
23
24
  "eventemitter3": "^5.0.1",
25
+ "hast-util-to-string": "^2.0.0",
24
26
  "katex": "^0.16.9",
25
27
  "mdast-util-from-markdown": "^2.0.1",
26
28
  "micromark-util-character": "^2.1.0",
@@ -65,5 +67,5 @@
65
67
  },
66
68
  "author": "yunwuxin <tzzhangyajun@qq.com> (https://github.com/yunwuxin)",
67
69
  "license": "MIT",
68
- "gitHead": "4d5cdc3114a9c54da772d0afb113afa9f1e2ceee"
70
+ "gitHead": "a38b9428ac0f1e9df5e3306232c1263f2b09c545"
69
71
  }