@topthink/chat 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.js +82 -84
- package/package.json +3 -3
package/es/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as e,jsxs 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,
|
|
1
|
+
import{jsx as e,jsxs 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,isCancel as l,isRequestError as c,Form as d,Toast as u,InfiniteScroller as m,useDebounce as h,Offcanvas as p,ModalForm as g,RequestButton as f,Loader as b,useImmer as v,createGlobalStyle as y,getAbsoluteUrl as x,Lightbox as k,Clipboard as w,Button as E,isImageUrl as N,request as j}from"@topthink/components";import*as $ from"react";import{createContext as C,useContext as M,useEffect as S,useState as q,useRef as R,useCallback as z,forwardRef as I,useMemo as F,useImperativeHandle as A,Fragment as D,memo as L}from"react";import*as T from"path";import P from"path";import{Spinner as O,Badge as _,Dropdown as B,FormControl as U,CloseButton as H,OverlayTrigger as J,Popover as Q}from"react-bootstrap";import W from"eventemitter3";import{Editor as X,Delta as G,SKILL_KEY as K,VARS_KEY as V,SEL_VALUE_KEY as Y,SEL_KEY as Z,EditableInputPlugin as ee,SelectorInputPlugin as te,SkillInputPlugin as re,BlockKit as ne,Editable as ie,VARS_VALUE_KEY as oe}from"@block-kit/variable";import"@block-kit/variable/dist/style/index.css";import se from"lodash/isEqual";import{toString as ae}from"hast-util-to-string";import le from"react-markdown";import"katex/dist/katex.min.css";import ce from"rehype-highlight";import de from"rehype-katex";import ue from"remark-breaks";import me from"remark-gfm";import he from"remark-math";import{codes as pe,types as ge}from"micromark-util-symbol";import{markdownLineEnding as fe}from"micromark-util-character";import{createPortal as be}from"react-dom";import ve from"use-resize-observer";import{unified as ye}from"unified";import xe from"rehype-stringify";import ke from"remark-parse";import we from"remark-rehype";function Ee(e,t){return e.name===t}const Ne=C(null);function je(e){const t=M(Ne);if(!t)throw new Error("useContext must be used within a Provider");const{setHandles:r}=t;return S(()=>{if(e)return r(e),()=>{r({})}},[e]),t}function $e({children:t,...r}){const[n,i]=q({});return e(Ne.Provider,{value:{...r,handles:n,setHandles:i},children:t})}const Ce=function({ext:t}){const{result:r}=a(async e=>{try{return(await function(e){switch(e){case"../../images/file/docx.svg":return import("./docx-2LwnwWwv.js");case"../../images/file/html.svg":return import("./html-BSKTzJZQ.js");case"../../images/file/jpg.svg":return import("./jpg-muicsKjX.js");case"../../images/file/md.svg":return import("./md-DRS7QmE8.js");case"../../images/file/mp3.svg":return import("./mp3-HhP1Gk4B.js");case"../../images/file/mp4.svg":return import("./mp4-CWxSyjdn.js");case"../../images/file/pdf.svg":return import("./pdf-CWBi2u4Z.js");case"../../images/file/png.svg":return import("./png-DNwbFeJk.js");case"../../images/file/pptx.svg":return import("./pptx-Bv4V_F_3.js");case"../../images/file/py.svg":return import("./py-D30pRTJN.js");case"../../images/file/txt.svg":return import("./txt-CsqmEKjF.js");case"../../images/file/unknown.svg":return import("./unknown-DW8znerP.js");case"../../images/file/xlsx.svg":return import("./xlsx-CmkshfKZ.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}catch{return(await import("./unknown-DW8znerP.js")).default}},[t]);return r?e("img",{width:30,height:30,src:r}):null},Me=function({className:r,name:n,size:i=0,loading:a,error:l,onRemove:c,onClick:d}){const u=P.extname(n).substring(1),m=t(Ie,{className:r,$error:!!l,onClick:d,children:[t(ze,{children:[e(Ce,{ext:u}),a&&e(O,{variant:"primary"})]}),t(Re,{children:[e("h4",{children:n}),i>0&&e("p",{children:o(i,1)})]}),c&&e(qe,{onClick:e=>{e.preventDefault(),c()},children:e("i",{className:"bi bi-trash3"})})]});return l?e(s,{placement:"top",tooltip:l,children:m}):m};function Se(t){const{renderFileItem:r}=je();return r?r({Component:Me,props:t}):e(Me,{...t})}const qe=n.div`
|
|
2
2
|
width: 1.75rem;
|
|
3
3
|
height: 1.75rem;
|
|
4
4
|
align-items: center;
|
|
@@ -13,7 +13,7 @@ import{jsx as e,jsxs 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
|
-
|
|
16
|
+
`,Re=n.div`
|
|
17
17
|
flex: 1;
|
|
18
18
|
overflow: hidden;
|
|
19
19
|
|
|
@@ -34,7 +34,7 @@ import{jsx as e,jsxs 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
|
-
`,
|
|
37
|
+
`,ze=n.div`
|
|
38
38
|
position: relative;
|
|
39
39
|
width: 3rem;
|
|
40
40
|
height: 3rem;
|
|
@@ -48,7 +48,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
48
48
|
position: absolute;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
`,
|
|
51
|
+
`,Ie=n.div`
|
|
52
52
|
display: flex;
|
|
53
53
|
gap: .5rem;
|
|
54
54
|
padding: .5rem;
|
|
@@ -65,7 +65,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
65
65
|
${e=>e.$error&&i`
|
|
66
66
|
border-color: var(--bs-danger) !important;
|
|
67
67
|
`}
|
|
68
|
-
`,
|
|
68
|
+
`,Fe=[".txt",".md",".pdf",".docx",".xlsx",".pptx",".png",".jpg"];function Ae(){const{setMessages:e,setSuggestions:t,setLoading:r,conversationId:n,setConversationId:i,request:o,handles:s,messages:a}=je(),d=R(null),u=R(!1),m=R(n),h=()=>(d.current&&d.current.abort(),d.current=new AbortController,d.current.signal),{onSuccess:p,onComplete:g,onEvent:f}=s,b=z(t=>{if(t.data)if("[DONE]"!=t.data)try{const r=JSON.parse(t.data);r.conversation?(m.current=r.conversation,i(r.conversation)):r.suspend?u.current=!0:r.event?f?.(r.event):e(e=>{const t=e[e.length-1];if(r.chunks){if(t.chunks){const e=r.chunks.index;if(t.chunks[e]||(t.chunks[e]={content:"",reasoning:"",tools:[]}),r.chunks.error)t.chunks[e].error=r.chunks.error;else if(r.chunks.tools){t.chunks[e].tools||(t.chunks[e].tools=[]);const n=r.chunks.tools.index;delete r.chunks.tools.index,t.chunks[e].tools[n]&&"arguments"in r.chunks.tools?t.chunks[e].tools[n].arguments+=r.chunks.tools.arguments:t.chunks[e].tools[n]={...t.chunks[e].tools[n],...r.chunks.tools}}else if(r.chunks.reasoning)t.chunks[e].reasoning+=r.chunks.reasoning;else if(r.chunks.content)if("object"==typeof r.chunks.content){Array.isArray(t.chunks[e].content)||(t.chunks[e].content=[]);const n=r.chunks.content.index,i=r.chunks.content.value;"string"==typeof i?(t.chunks[e].content[n]||(t.chunks[e].content[n]=""),t.chunks[e].content[n]+=i):t.chunks[e].content[n]=i}else t.chunks[e].content+=r.chunks.content;else r.chunks.node&&(t.chunks[e].node={...t.chunks[e].node,...r.chunks.node})}}else r.stats?t.stats=r.stats:r.id&&(t.id=r.id)})}catch(e){console.error(e)}else e(e=>{e[e.length-1].loading=!1})},[s]),v=z(t=>{if(l(t))e(e=>{const t=e[e.length-1];t&&(t.loading=!1)});else{let r="未知错误";c(t)&&(r=401==t.response?.status?"未授权或授权已过期,请刷新页面后重试":"string"==typeof t.errors?t.errors:Object.values(t.errors).join("\n")),e(e=>{const t=e[e.length-1];t.chunks&&(0===t.chunks.length?t.chunks=[{error:r}]:t.chunks[t.chunks.length-1].error=r),t.loading=!1})}},[]),y=z(async()=>{try{const t=h();u.current=!1,r(!0),e(e=>{e[e.length-1].loading=!0,delete e[e.length-1].stats});let n={url:"message",method:"get",params:{conversation:m.current},onMessage:b,signal:t};await o(n),u.current||p?.()}catch(e){v(e)}finally{d.current=null}r(!1),g?.()},[]),x=z(async(n,...i)=>{"string"==typeof n&&(n={query:n,...i});const{query:s,files:a=[],variables:l={},quote:c}=n;if(s||a.length>0){const n=h();u.current=!1,r(!0),t([]),e(e=>{e.push({query:s,quote:c,files:a,variables:l,chunks:[],loading:!0})});try{let e={method:"post",data:{query:s,quote:c,files:a,variables:l,conversation:m.current},onMessage:b,signal:n};await o(e),u.current||p?.()}catch(e){v(e)}finally{d.current=null}r(!1),g?.()}},[o,s]),k=z(async t=>{try{const n=h();u.current=!1,r(!0),e(e=>{e[e.length-1].loading=!0});let i={url:"resume",method:"post",data:{conversation:m.current,chunk:t.chunk,tool:t.tool,payload:t.payload},onMessage:b,signal:n};await o(i),u.current||p?.()}catch(e){v(e)}finally{d.current=null}r(!1),g?.()},[o,s]),w=z(async()=>{try{const e=h();let r={method:"post",url:"/suggestion",data:{conversation:m.current},signal:e};const n=await o(r);t(n)}catch{}finally{d.current=null}},[o]);return S(()=>{if(n!=m.current){m.current=n,d.current&&d.current.abort();const e=a[a.length-1];e&&0==e.chunks?.length&&!e.loading&&y()}},[n]),{send:x,resume:k,suggest:w}}function De({variables:t,values:r,onSubmit:n,onChange:i,children:o}){const s={},a=[],l={};return t.forEach(e=>{s[e.key]={type:"string",title:e.label},"textarea"===e.type?l[e.key]={"ui:widget":"textarea"}:"select"===e.type&&e.options&&(s[e.key].enum=e.options,s[e.key].enumNames=e.options,e.options.length>0&&(s[e.key].default=e.options[0])),e.required&&a.push(e.key)}),e(d,{schema:{type:"object",properties:s,required:a},formData:r,omitExtraData:!0,uiSchema:l,submitText:"开始对话",onSubmit:n,onChange:i,children:o})}const Le=n.button`
|
|
69
69
|
color: var(--bs-secondary);
|
|
70
70
|
cursor: pointer;
|
|
71
71
|
display: flex;
|
|
@@ -88,12 +88,12 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
88
88
|
background-color: var(--bs-gray-200);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
`;let
|
|
91
|
+
`;let Te=class{#e;#t;constructor(){this.#t=new W}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 u.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),u.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 W}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){u.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 Oe=I(({onResult:r,model:n="builtin"},i)=>{const{request:o}=je(),a=F(()=>{if("builtin"!==n)return async e=>{const t=new FormData;t.append("file",e,"audio.mp3"),t.append("model",n);return(await o({url:"/transcriptions",method:"post",data:t})).text}},[n]),{start:l,stop:c,recording:d,transcribing:u}=function({onResult:e,loader:t}){const r=R(),[n,i]=q(!1),[o,s]=q(!1);return S(()=>()=>{r.current&&(r.current.stop(),r.current=void 0)},[]),{recording:n,transcribing:o,start:async()=>{r.current||(r.current=t?new Pe(t):new Te,r.current.onRecording(i),r.current.onTranscribing(s),r.current.onResult(e)),r.current.start()},stop:()=>{r.current&&r.current.stop()}}}({onResult:r,loader:a});return A(i,()=>({start:l,stop:c}),[l,c]),e(s,{tooltip:d?"停止":"语音输入",placement:"top",children:t(Le,{onMouseDown:e=>{e.preventDefault(),d?c():l()},children:[u&&e(_e,{animation:"border",variant:"primary",size:"sm"}),e("i",d?{className:"bi bi-mic-fill text-danger"}:{className:"bi bi-mic"})]})})}),_e=n(O)`
|
|
92
92
|
position: absolute;
|
|
93
93
|
--bs-spinner-width: .75rem;
|
|
94
94
|
--bs-spinner-height: .75rem;
|
|
95
95
|
--bs-spinner-border-width: 0.1em;
|
|
96
|
-
`,
|
|
96
|
+
`,Be=I(({className:t,children:r,size:n,tooltip:i,placement:o,onClick:a,onMouseDown:l},c)=>{const d=e(Ue,{ref:c,className:t,onClick:a,onMouseDown:l,$size:n,children:r});return i?e(s,{tooltip:i,placement:o,children:d}):d}),Ue=n.div`
|
|
97
97
|
width: 2rem;
|
|
98
98
|
height: 2rem;
|
|
99
99
|
align-items: center;
|
|
@@ -117,64 +117,62 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
117
117
|
&:hover {
|
|
118
118
|
background-color: var(--bs-secondary-bg-subtle);
|
|
119
119
|
}
|
|
120
|
-
`;function
|
|
120
|
+
`;function He(){const{request:n,reset:i,conversationId:o}=je(),[s,a]=q(!1),[l,c]=q(""),[d,u]=q(""),m=h(e=>{u(e)},500);return S(()=>{m(l)},[l]),t(r,{children:[e(Be,{tooltip:"历史记录",placement:"top",onClick:()=>a(!0),children:e("i",{className:"bi bi-clock-history"})}),e(p,{show:s,onHide:()=>{a(!1)},placement:"end",headerAs:Ge,header:t(r,{children:[e("span",{children:"聊天历史记录"}),e(Ke,{children:e(U,{type:"search",placeholder:"搜索聊天记录...",value:l,onChange:e=>c(e.target.value),autoFocus:!0})})]}),bodyAs:Je,children:s&&e(Xe,{children:e(We,{useWindow:!1,source:e=>n({url:"/conversation",params:{...e,...d&&{keyword:d}}}),render:({data:s,loading:l,setData:c})=>s.length||l?t(r,{children:[s.map((s,l)=>t(D,{children:[l>0&&e("hr",{className:"mx-2 my-2"}),t(Qe,{children:[o===s.id&&e(_,{bg:"secondary",children:"当前"}),e("span",{className:"overflow-hidden text-truncate flex-fill",onClick:()=>{i(s),a(!1)},children:s.title||"未命名对话"}),t(B,{align:"end",children:[e(B.Toggle,{size:"sm",className:"no-caret",as:Be,children:e("i",{className:"bi bi-three-dots-vertical"})}),t(B.Menu,{children:[e(g,{buttonProps:{as:B.Item},text:t(r,{children:[e("i",{className:"bi bi-pencil me-2"}),"重命名"]}),modalProps:{header:"编辑对话名称"},schema:{type:"object",properties:{title:{type:"string"}}},uiSchema:{title:{"ui:label":!1,"ui:autofocus":!0}},formData:{title:s.title},onRequest:e=>n({url:`/conversation/${s.id}`,method:"PUT",data:e}),onSuccess:(e,t)=>{c(e=>{const r=e.findIndex(e=>e.id===s.id);-1!==r&&Object.assign(e[r],t)})}}),t(f,{as:B.Item,confirm:"确定要删除吗?",onRequest:()=>n({url:`/conversation/${s.id}`,method:"DELETE"}),onSuccess:()=>{c(e=>{const t=e.findIndex(e=>e.id===s.id);-1!==t&&e.splice(t,1)})},children:[e("i",{className:"bi bi-trash3 me-2"}),"删除"]})]})]})]})]},s.id)),l&&e(b,{wrap:!0})]}):e("div",{className:"text-muted text-center py-5",children:d?"未找到匹配的聊天记录":"暂无对话记录"})},d)})})]})}const Je=n.div`
|
|
121
121
|
padding: 0;
|
|
122
122
|
overflow: hidden;
|
|
123
|
-
`,
|
|
124
|
-
color: var(--bs-gray-600);
|
|
125
|
-
font-weight: 400;
|
|
126
|
-
line-height: 22px;
|
|
127
|
-
display: flex;
|
|
128
|
-
align-items: center;
|
|
129
|
-
|
|
130
|
-
& :last-child {
|
|
131
|
-
display: none;
|
|
132
|
-
}
|
|
133
|
-
`,Be=n.div`
|
|
134
|
-
display: flex;
|
|
135
|
-
align-items: center;
|
|
136
|
-
gap: .25rem;
|
|
137
|
-
`,Ue=n.div`
|
|
123
|
+
`,Qe=n.div`
|
|
138
124
|
gap: .5rem;
|
|
139
125
|
display: flex;
|
|
140
|
-
flex-direction: column;
|
|
141
126
|
cursor: pointer;
|
|
142
127
|
padding: .5rem;
|
|
128
|
+
align-items: center;
|
|
143
129
|
border-radius: var(--bs-border-radius-lg);
|
|
144
130
|
|
|
131
|
+
& > .dropdown {
|
|
132
|
+
display: none;
|
|
133
|
+
}
|
|
134
|
+
|
|
145
135
|
&:hover {
|
|
146
136
|
background-color: var(--bs-gray-200);
|
|
147
137
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
${_e} :last-child {
|
|
151
|
-
display: initial;
|
|
152
|
-
}
|
|
138
|
+
& > .dropdown {
|
|
139
|
+
display: block;
|
|
153
140
|
}
|
|
154
141
|
}
|
|
155
|
-
`,
|
|
142
|
+
`,We=n(m)`
|
|
156
143
|
display: flex;
|
|
157
144
|
flex-direction: column;
|
|
158
145
|
padding: .5rem;
|
|
159
|
-
`,
|
|
146
|
+
`,Xe=n.div`
|
|
160
147
|
height: 100%;
|
|
161
148
|
overflow-y: auto;
|
|
162
|
-
|
|
149
|
+
`,Ge=n.div`
|
|
150
|
+
display: flex;
|
|
151
|
+
align-items: center;
|
|
152
|
+
justify-content: space-between;
|
|
153
|
+
gap: 0.5rem;
|
|
154
|
+
flex: 1;
|
|
155
|
+
margin-right: .5rem;
|
|
156
|
+
`,Ke=n.div`
|
|
157
|
+
display: flex;
|
|
158
|
+
align-items: center;
|
|
159
|
+
gap: 0.5rem;
|
|
160
|
+
`;var Ve;function Ye(){return Ye=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ye.apply(null,arguments)}const Ze=e=>$.createElement("svg",Ye({width:"1em",height:"1em",fill:"currentColor",viewBox:"0 0 256 256"},e),Ve||(Ve=$.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 et(){const{reset:t}=je();return e(Be,{className:"text-primary",tooltip:"新会话",placement:"top",onClick:t,children:e(Ze,{})})}function tt({children:r}){return t(nt,{children:[r,t(rt,{children:[e(He,{}),e(et,{})]})]})}const rt=n.div`
|
|
163
161
|
display: flex;
|
|
164
162
|
gap: .25rem;
|
|
165
163
|
margin-left: auto;
|
|
166
|
-
`,
|
|
164
|
+
`,nt=n.div`
|
|
167
165
|
margin-bottom: .5rem;
|
|
168
166
|
display: flex;
|
|
169
167
|
padding: 0 .125rem;
|
|
170
|
-
`,
|
|
168
|
+
`,it=function(e){return e.ops.map(e=>e.attributes?.[oe]||e.attributes?.[Y]||e.insert||"").join("")};var ot=I(function({suggestion:r,fileTypes:n,speech:i,scrollRef:o,variables:a,minRows:l=1,maxRows:d=5,toolbar:m,disabled:h,autoFocus:p,placeholder:g="请输入你的问题, Enter+Shift换行, Enter发送",onEvent:f},b){const y=R(null),x=R(null),k=R(),[w,E]=q(""),[N,j]=q(""),[$,C]=v([]),[M,I]=q(!1),D=n&&n.length>0?n:Fe,{send:L,resume:P,suggest:O}=Ae(),_=F(()=>{const e=new X({schema:{[V]:{void:!0,inline:!0},[Z]:{void:!0,inline:!0},[K]:{void:!0,inline:!0}}});return e.event.on("focus_capture",()=>I(!0)),e.event.on("blur_capture",()=>I(!1)),e.event.on("keydown_capture",t=>{if("Escape"===t.key){const{ops:t}=e.state.toBlock();t.some(e=>"skill-key"in(e.attributes||{}))&&e.state.setContent(new G)}else"Enter"!==t.key||t.shiftKey||(t.preventDefault(),t.stopPropagation(),k.current?.())}),e.event.on("CONTENT_CHANGE",e=>{E(it(e.current).trim())}),e},[]),B=F(()=>({onSuccess(){r&&O()},onComplete(){requestAnimationFrame(()=>{_.selection.focus()})},onEvent:f}),[r,f]),{messages:U,loading:J,request:Q,setInput:W}=je(B),[ie,oe]=q();S(()=>{const e=U.filter(e=>!!e.query);oe(e.at(-1)?.variables)},[U]),S(()=>{!n&&$.length>0&&C([])},[n]),S(()=>{const e=o.current;if(e&&L){const t=e=>{if(e.target instanceof HTMLAnchorElement&&"#!question"===e.target.hash){e.preventDefault();const t={query:e.target.text};a&&(t.variables={...ie,...a.values}),L(t)}};return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}},[a,ie]);const se=z(({target:e})=>{if(e.files){const t=Array.from(e.files).filter(e=>!!D.includes(T.extname(e.name))&&(!(e.size>20971520)&&e)).slice(0,6-$.length);C(e=>{e.push(...t.map(e=>({file:e})))}),t.forEach(async e=>{try{const t=new FormData;t.set("file",e);const r=await Q({method:"POST",url:"/upload",data:t});C(t=>{const n=t.find(t=>t.file===e);n&&(n.path=r.path)})}catch(t){const r=c(t)?t.message:"unknown error";C(t=>{const n=t.find(t=>t.file===e);n&&(n.error=r)})}})}e.value=""},[$,D]),ae=$.flatMap(({file:e,path:t})=>t?[{name:e.name,size:e.size,path:t}]:[]),le=z(()=>{if(w||ae.length>0){const e={query:w,files:ae};a&&(e.variables={...ie,...a.values}),N&&(e.quote=N),L(e),de(""),j(""),C([]),x.current?.stop(!0)}},[w,ae,a,ie,N]);S(()=>{k.current=le},[le]);const ce=z(e=>{const t={},r={},n=new G;let i=1,o=1,s=0;const a=/\(([^)]+)\)|\[([^\]]+)\]|\{([^}]+)\}/g;let l;for(;null!==(l=a.exec(e));){if(l.index>s){const t=e.substring(s,l.index);t&&n.insert(t)}if(l[1])n.insert(" ",{[K]:l[1].trim()});else if(l[2]){const e=`var-${i}`;t[e]=l[0],n.insert(" ",{[V]:e}),i++}else if(l[3]){const e=l[3].split("|").map(e=>e.trim()),t=`sel-${o}`;r[t]=e,n.insert(" ",{[Z]:t,[Y]:e[0]}),o++}s=a.lastIndex}if(s<e.length){const t=e.substring(s);t&&n.insert(t)}return{delta:n,placeholders:t,selector:r}},[]),de=z(e=>{let t;t="string"==typeof e?e:e(it(_.state.block.toDelta()));const{delta:r,placeholders:n,selector:i}=ce(t);_.plugin.register([new ee({placeholders:n}),new te({selector:i}),new re]),_.state.setContent(r),requestAnimationFrame(()=>{_.selection.focus()})},[_,ce]),ue=F(()=>({setQuery:de,setQuote:j,send:L,resume:P,editor:_,focus(){_.selection.focus()}}),[de,j,L,P,_]);if(S(()=>{W(ue)},[ue]),A(b,()=>ue,[ue]),a){const t=a.config.filter(e=>!(e.key in(a.values||{}))),r=(e,r=!1)=>!!e&&t.every(t=>{const n=!t.required||e?.[t.key];return!n&&r&&u.error("请完善必填信息"),n});if(t.length>0&&!r(ie))return e(at,{children:e(st,{children:e(De,{values:ie,variables:t,onSubmit:({formData:e})=>{if(r(e,!0))return oe(e),!0}})})})}return t(gt,{children:[e(ct,{}),m&&e(tt,{children:m}),t(pt,{$focused:M&&!J,children:[$.length>0&&e(ut,{children:$.map(({file:t,error:r,path:n},i)=>{const o=void 0===r&&void 0===n;return e(lt,{name:t.name,size:t.size,error:r,loading:o,onRemove:()=>{C(e=>{const r=e.findIndex(e=>e.file===t);-1!==r&&e.splice(r,1)})}},i)})}),!!N&&t(ht,{children:[e("i",{className:"bi bi-quote"}),e("p",{children:N}),e(H,{onClick:()=>j("")})]}),t(mt,{children:[e(ne,{editor:_,readonly:J||h,children:e(dt,{className:"block-kit-editable",autoFocus:p,placeholder:g,$minRows:l,$maxRows:d})}),n&&e(s,{tooltip:"可上传不超过6个小于20MB的文件",placement:"top",children:t(Le,{disabled:$.length>=6,onClick:()=>y.current?.click(),children:[e("input",{onChange:se,multiple:!0,accept:D.join(","),ref:y,type:"file",hidden:!0}),e("i",{className:"bi bi-file-earmark-arrow-up"})]})}),i&&e(Oe,{ref:x,model:i.model,onResult:e=>{de(t=>t+e+" ")}}),e(Le,{className:"text-primary",disabled:!w&&0===ae.length,onClick:e=>{e.preventDefault(),le()},children:e("i",{className:"bi bi-send-fill"})})]})]})]})});const st=n.div`
|
|
171
169
|
border-radius: var(--bs-border-radius-lg);
|
|
172
170
|
box-shadow: var(--bs-box-shadow-sm);
|
|
173
171
|
margin: 1rem;
|
|
174
172
|
padding: 1rem;
|
|
175
173
|
width: 100%;
|
|
176
174
|
max-width: 500px;
|
|
177
|
-
`,
|
|
175
|
+
`,at=n.div`
|
|
178
176
|
position: absolute;
|
|
179
177
|
left: 0;
|
|
180
178
|
right: 0;
|
|
@@ -184,9 +182,9 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
184
182
|
display: flex;
|
|
185
183
|
justify-content: center;
|
|
186
184
|
align-items: center;
|
|
187
|
-
`,
|
|
185
|
+
`,lt=n(Se)`
|
|
188
186
|
width: calc((100% - 0.75rem) / 2);
|
|
189
|
-
`,
|
|
187
|
+
`,ct=y`
|
|
190
188
|
.editable-selector-options {
|
|
191
189
|
border-radius: var(--bs-border-radius) !important;
|
|
192
190
|
border: none !important;
|
|
@@ -205,7 +203,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
205
203
|
}
|
|
206
204
|
}
|
|
207
205
|
}
|
|
208
|
-
`,
|
|
206
|
+
`,dt=n(ie)`
|
|
209
207
|
min-height: calc(${e=>1.5*e.$minRows}em + 1rem);
|
|
210
208
|
max-height: calc(${e=>1.5*e.$maxRows}em + 1rem);
|
|
211
209
|
overflow-y: auto;
|
|
@@ -230,18 +228,18 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
230
228
|
.editable-selector {
|
|
231
229
|
color: var(--bs-primary);
|
|
232
230
|
}
|
|
233
|
-
`,
|
|
231
|
+
`,ut=n.div`
|
|
234
232
|
display: flex;
|
|
235
233
|
flex-wrap: wrap;
|
|
236
234
|
padding: 0.75rem;
|
|
237
235
|
gap: 0.75rem;
|
|
238
236
|
border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
|
|
239
|
-
`,
|
|
237
|
+
`,mt=n.div`
|
|
240
238
|
display: flex;
|
|
241
239
|
padding: 0.5rem 0.5rem 0.5rem 0.75rem;
|
|
242
240
|
gap: 0.25rem;
|
|
243
241
|
align-items: end;
|
|
244
|
-
`,
|
|
242
|
+
`,ht=n.div`
|
|
245
243
|
margin: 0.75rem 0.75rem 0 0.75rem;
|
|
246
244
|
padding: 4px 8px;
|
|
247
245
|
display: flex;
|
|
@@ -262,14 +260,14 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
262
260
|
-webkit-box-orient: vertical;
|
|
263
261
|
display: -webkit-box;
|
|
264
262
|
}
|
|
265
|
-
`,
|
|
263
|
+
`,pt=n.div`
|
|
266
264
|
background: #fff;
|
|
267
265
|
border: var(--bs-border-width) var(--bs-border-style) ${e=>e.$focused?"var(--bs-primary)":"var(--bs-border-color)"};
|
|
268
266
|
border-radius: var(--bs-border-radius-lg);
|
|
269
267
|
box-shadow: 0.125rem 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
|
|
270
|
-
`,
|
|
268
|
+
`,gt=n.div`
|
|
271
269
|
margin: 0 1rem 1rem;
|
|
272
|
-
`;function
|
|
270
|
+
`;function ft(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(({content:e="",node:t,error:r,tools:n=[],reasoning:i})=>({content:e,reasoning:i,error:r,tools:n,node:t})),annotation:e.annotation,stats:{usage:e.usage,latency:e.latency}}))}function bt(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 vt,yt,xt;function kt(){return kt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},kt.apply(null,arguments)}const wt=e=>$.createElement("svg",kt({xmlns:"http://www.w3.org/2000/svg",width:20,height:10,fill:"#fff",viewBox:"0 0 120 30"},e),vt||(vt=$.createElement("circle",{cx:15,cy:15,r:15,fill:"#3c60ff"},$.createElement("animate",{attributeName:"r",begin:"0s",calcMode:"linear",dur:"0.8s",from:15,repeatCount:"indefinite",to:15,values:"15;9;15"}),$.createElement("animate",{attributeName:"fill-opacity",begin:"0s",calcMode:"linear",dur:"0.8s",from:1,repeatCount:"indefinite",to:1,values:"1;.5;1"}))),yt||(yt=$.createElement("circle",{cx:60,cy:15,r:9,fill:"#3c60ff",fillOpacity:.3},$.createElement("animate",{attributeName:"r",begin:"0s",calcMode:"linear",dur:"0.8s",from:9,repeatCount:"indefinite",to:9,values:"9;15;9"}),$.createElement("animate",{attributeName:"fill-opacity",begin:"0s",calcMode:"linear",dur:"0.8s",from:.5,repeatCount:"indefinite",to:.5,values:".5;1;.5"}))),xt||(xt=$.createElement("circle",{cx:105,cy:15,r:15,fill:"#3c60ff"},$.createElement("animate",{attributeName:"r",begin:"0s",calcMode:"linear",dur:"0.8s",from:15,repeatCount:"indefinite",to:15,values:"15;9;15"}),$.createElement("animate",{attributeName:"fill-opacity",begin:"0s",calcMode:"linear",dur:"0.8s",from:1,repeatCount:"indefinite",to:1,values:"1;.5;1"}))));function Et(e){if(!e)return"";if("string"==typeof e)return e;if("image"===e.type){return`})`}return""}const Nt=function(e,t,r){function n(t){return t!==pe.leftSquareBracket?(e.exit("citeMarker"),e.enter("citeData"),e.enter(ge.chunkString,{contentType:"string"}),i(t)):(e.consume(t),n)}function i(n){return n===pe.rightSquareBracket?(e.exit(ge.chunkString),e.exit("citeData"),e.enter("citeMarker"),function(n){if(n!==pe.rightSquareBracket)return r(n);return e.consume(n),e.exit("citeMarker"),e.exit("cite"),t(n)}(n)):fe(n)||n===pe.eof||n>57||n<48?r(n):(e.consume(n),i)}return function(t){return t!==pe.leftSquareBracket?r(t):(e.enter("cite"),e.enter("citeMarker"),n(t))}},jt=function(){const e=this.data();e.micromarkExtensions.push({text:{[pe.leftSquareBracket]:{tokenize:Nt}}}),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}}})},$t=k.Image,Ct={pre:({children:r,node:n})=>{if(!n)return null;const[i,o]=q(!1),s=F(()=>{const e=n.children[0];return"element"===(t=e).type&&"code"===t.tagName&&!!e.properties?.className?.includes("language-svg");var t},[n]);S(()=>{s&&o(s)},[s]);const a=F(()=>ae(n),[n]);return t(It,{children:[t(zt,{children:[!i&&e(w,{tooltip:!1,as:Rt,content:a}),s&&i&&e(Rt,{onClick:()=>{const e=new Blob([a],{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:"下载"}),s&&e(Rt,{onClick:()=>o(!i),children:i?"源码":"预览"})]}),s&&i?e("div",{dangerouslySetInnerHTML:{__html:a}}):e("pre",{children:r})]})},a:({node:t,href:r,...n})=>{const i=r?.startsWith("http")?"_blank":"_self";return e("a",{...n,href:r,target:i})},img:({node:t,...r})=>e($t,{...r})},Mt=[[he,{singleDollarTextMath:!1}],me,ue],St=[de,[ce,{detect:!1,ignoreMissing:!0}]],qt=L(I(({content:t,components:r,cite:n},i)=>{t=t.replace(/\\\(\s(.+?)\s\\\)/g,"$$$$ $1 $$$$");const o=F(()=>{const e={...Ct,...r};return n&&(e.cite=n),e},[r,n]),s=F(()=>n?[...Mt,jt]:Mt,[n]);return e(Ft,{ref:i,children:e(le,{remarkPlugins:s,rehypePlugins:St,components:o,children:t})})}),se),Rt=n.div`
|
|
273
271
|
cursor: pointer;
|
|
274
272
|
padding: 2px 10px;
|
|
275
273
|
background-color: #303030;
|
|
@@ -279,7 +277,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
279
277
|
font-size: 12px;
|
|
280
278
|
font-family: initial;
|
|
281
279
|
user-select: none;
|
|
282
|
-
`,
|
|
280
|
+
`,zt=n.div`
|
|
283
281
|
position: absolute;
|
|
284
282
|
right: 10px;
|
|
285
283
|
top: 1em;
|
|
@@ -293,17 +291,17 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
293
291
|
&:hover {
|
|
294
292
|
opacity: 1;
|
|
295
293
|
}
|
|
296
|
-
`,
|
|
294
|
+
`,It=n.div`
|
|
297
295
|
position: relative;
|
|
298
296
|
|
|
299
297
|
&:hover {
|
|
300
|
-
${
|
|
298
|
+
${zt} {
|
|
301
299
|
pointer-events: all;
|
|
302
300
|
transform: translateX(0px);
|
|
303
301
|
opacity: 0.7;
|
|
304
302
|
}
|
|
305
303
|
}
|
|
306
|
-
`,
|
|
304
|
+
`,Ft=n.div`
|
|
307
305
|
-ms-text-size-adjust: 100%;
|
|
308
306
|
-webkit-text-size-adjust: 100%;
|
|
309
307
|
line-height: 1.8;
|
|
@@ -573,7 +571,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
573
571
|
.hljs-strong {
|
|
574
572
|
font-weight: 700;
|
|
575
573
|
}
|
|
576
|
-
`;var
|
|
574
|
+
`;var At=I(function({children:t,tooltip:r,onClick:n,disabled:i,...o},a){i&&(n=void 0);const l=e(Dt,{ref:a,onClick:n,$disabled:i,...o,children:t});return r?e(s,{tooltip:r,placement:"top",children:l}):l});const Dt=n.div`
|
|
577
575
|
align-items: center;
|
|
578
576
|
justify-content: center;
|
|
579
577
|
border-radius: .375rem;
|
|
@@ -606,7 +604,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
606
604
|
`}
|
|
607
605
|
|
|
608
606
|
}
|
|
609
|
-
`,
|
|
607
|
+
`,Lt=C(null);var Tt=Lt.Provider;const Pt=k.Image;function Ot({src:t,...r}){const{imageResolver:n}=je();return n&&t&&(t=n(t)),e(_t,{children:e(Pt,{src:t,...r})})}const _t=n.div`
|
|
610
608
|
margin-bottom: .5rem;
|
|
611
609
|
margin-top: .5rem;
|
|
612
610
|
border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color);
|
|
@@ -631,7 +629,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
631
629
|
max-height: 100%;
|
|
632
630
|
max-width: 100%;
|
|
633
631
|
}
|
|
634
|
-
`,
|
|
632
|
+
`,Bt=C(null);function Ut(){const e=M(Bt);if(!e)throw new Error("useContext must be used within a Provider");return e}function Ht({children:t,...r}){return e(Bt.Provider,{value:r,children:t})}function Jt({description:r,options:n}){const{resume:i,disabled:o,response:s}=Ut(),[a,l]=q(s?.result),c=o||void 0!==a;return t(Qt,{children:[r&&e(Wt,{children:r}),n.map((t,r)=>e(Xt,{$selected:a===t,$disabled:c,onClick:()=>(e=>{c||(l(e),i(e))})(t),children:t},r))]})}const Qt=n.div`
|
|
635
633
|
display: flex;
|
|
636
634
|
flex-direction: column;
|
|
637
635
|
gap: 0.5rem;
|
|
@@ -644,10 +642,10 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
644
642
|
&:last-child {
|
|
645
643
|
margin-bottom: 0;
|
|
646
644
|
}
|
|
647
|
-
`,
|
|
645
|
+
`,Wt=n.div`
|
|
648
646
|
color: var(--bs-secondary);
|
|
649
647
|
line-height: 1.5;
|
|
650
|
-
`,
|
|
648
|
+
`,Xt=n.div`
|
|
651
649
|
padding: 0.375rem 0.75rem;
|
|
652
650
|
background-color: ${e=>e.$selected?"rgba(var(--bs-primary-rgb), 0.1)":"#FFFFFF"};
|
|
653
651
|
border: 1px solid ${e=>e.$selected?"rgba(var(--bs-primary-rgb), 0.3)":"var(--bs-border-color)"};
|
|
@@ -666,7 +664,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
666
664
|
&:active {
|
|
667
665
|
transform: ${e=>e.$disabled?"none":"scale(0.98)"};
|
|
668
666
|
}
|
|
669
|
-
`;function
|
|
667
|
+
`;function Gt({description:r,fields:n}){const{resume:i,disabled:o,response:s}=Ut(),[a,l]=q(void 0!==s),c=o||a,{schema:u,uiSchema:m}=F(()=>{const e={},t=[],r={};for(const i of n)e[i.name]={type:"number"===i.type?"number":"string",title:i.label},i.placeholder&&(r[i.name]={"ui:placeholder":i.placeholder}),"textarea"===i.type?r[i.name]={...r[i.name],"ui:widget":"textarea"}:"select"!==i.type&&"radio"!==i.type||!i.options?"checkbox"===i.type&&i.options?(e[i.name].type="array",e[i.name].uniqueItems=!0,e[i.name].items={type:"string",enum:i.options},r[i.name]={...r[i.name],"ui:widget":"checkboxes","ui:enumNames":i.options,"ui:inline":!0}):"email"===i.type?e[i.name].format="email":"date"===i.type?e[i.name].format="date":"tel"===i.type&&(r[i.name]={...r[i.name],"ui:options":{inputType:"tel"}}):(r[i.name]={...r[i.name],"ui:widget":i.type},e[i.name].enum=i.options,e[i.name].enumNames=i.options),i.required&&t.push(i.name);return{schema:{type:"object",properties:e,required:t},uiSchema:r}},[n]);return t(Vt,{className:"rounded bg-white shadow-sm",children:[r&&e(Yt,{children:r}),e(d,{schema:u,uiSchema:m,formData:s,onSubmit:({formData:e})=>{c||(l(!0),i(e))},disabled:c,validate:!0,showErrorList:!1,submitText:a?"已提交":"提交",omitExtraData:!0,children:({submit:t})=>e(Kt,{children:t})})]})}const Kt=n.div`
|
|
670
668
|
display: flex;
|
|
671
669
|
justify-content: flex-end;
|
|
672
670
|
border-top: 1px solid var(--bs-border-color);
|
|
@@ -674,7 +672,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
674
672
|
button {
|
|
675
673
|
padding: .25rem;
|
|
676
674
|
}
|
|
677
|
-
`,
|
|
675
|
+
`,Vt=n.div`
|
|
678
676
|
display: flex;
|
|
679
677
|
flex-direction: column;
|
|
680
678
|
gap: 0.5rem;
|
|
@@ -692,10 +690,10 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
692
690
|
&:last-child {
|
|
693
691
|
margin-bottom: 0;
|
|
694
692
|
}
|
|
695
|
-
`,
|
|
693
|
+
`,Yt=n.div`
|
|
696
694
|
color: var(--bs-secondary);
|
|
697
695
|
line-height: 1.5;
|
|
698
|
-
`;function
|
|
696
|
+
`;function Zt({content:r}){const{resume:n,disabled:i,response:o}=Ut(),[s,a]=q(void 0!==o),l=i||s;return t(er,{className:"rounded bg-white shadow-sm",children:[r&&e(tr,{children:e(qt,{content:r})}),e(rr,{children:e(E,{disabled:l,onClick:()=>{l||(a(!0),n("已确认"))},children:s?"已确认":"确认"})})]})}const er=n.div`
|
|
699
697
|
display: flex;
|
|
700
698
|
flex-direction: column;
|
|
701
699
|
gap: .5rem;
|
|
@@ -709,10 +707,10 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
709
707
|
&:last-child {
|
|
710
708
|
margin-bottom: 0;
|
|
711
709
|
}
|
|
712
|
-
`,
|
|
710
|
+
`,tr=n.div`
|
|
713
711
|
line-height: 1.6;
|
|
714
712
|
color: var(--bs-body-color);
|
|
715
|
-
`,
|
|
713
|
+
`,rr=n.div`
|
|
716
714
|
display: flex;
|
|
717
715
|
justify-content: flex-end;
|
|
718
716
|
border-top: 1px solid var(--bs-border-color);
|
|
@@ -721,7 +719,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
721
719
|
button {
|
|
722
720
|
padding: .25rem 1.5rem;
|
|
723
721
|
}
|
|
724
|
-
`;function
|
|
722
|
+
`;function nr({suspend:t}){const{readonly:r}=je(),{chunkIndex:n,chunk:i,toolIndex:o,tool:s,isLastMessage:a}=function(){const e=M(Lt);if(!e)throw new Error("useContext must be used within a Provider");return e}(),{resume:l}=Ae(),c=z(e=>{l({chunk:n,tool:o,payload:e})},[]);let d=null;switch(t.type){case"select":d=e(Jt,{...t.select});break;case"form":d=e(Gt,{...t.form});break;case"confirm":d=e(Zt,{...t.confirm})}const u=s?.response||i.node?.output;return e(Ht,{resume:c,disabled:r||!!i.error||!a,response:"(Empty)"===u?void 0:u,children:d})}function ir({value:t,cite:n}){const i=t=>"string"==typeof t?e(qt,{content:t,cite:n}):"image"===t.type?e(Ot,{src:t.image}):"suspend"===t.type?e(nr,{suspend:t.suspend}):null;return Array.isArray(t)?e(r,{children:t.map((t,r)=>e(D,{children:i(t)},r))}):i(t)}const or=({reasoning:r,loading:n})=>{const[i,o]=q(!1);return S(()=>{n||o(!1)},[n]),e(D,{children:e("div",{className:"mb-2",children:t("div",i?{className:"shadow-sm rounded bg-white fs-7",children:[t("div",{onClick:()=>o(!1),role:"button",className:"d-flex align-items-center p-1 px-2 gap-2",children:[n?e(O,{animation:"border",variant:"primary",size:"sm"}):e("i",{className:"bi bi-check-circle-fill text-success"}),e("span",{className:"text-muted",children:n?"思考中":"已思考"}),e("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 p-2",children:e(qt,{content:r})})})]}:{onClick:()=>o(!0),role:"button",className:"d-inline-flex align-items-center shadow-sm rounded bg-white p-1 px-2 fs-7 gap-2",children:[n?e(O,{animation:"border",variant:"primary",size:"sm"}):e("i",{className:"bi bi-check-circle-fill text-success"}),e("span",{className:"text-muted",children:n?"思考中":"已思考"}),e("i",{className:"bi bi-caret-down-fill text-muted"})]})})})},sr=L(t=>{const{renderReasoning:r}=je();return r?r({Component:or,props:t}):e(or,{...t})});class ar{#t;#o=[];#s=0;constructor(){this.#t=new W}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,t=!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 lr=new Map;class cr{#r;#t;#o=[];#a=new Map;#l=!1;#s=0;#c=!1;constructor(e){this.#r=e,this.#t=new W}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(e=0){this.#l=!0;const t=await this.waitForAudioLoaded(this.#o[e]);this.#t.emit("playing",!0),t?(lr.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),lr.delete(this)}start(e,t=!1){lr.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=lr.get(this);e&&(e.pause(),e.currentTime=0)}onPlaying(e){this.#t.on("playing",e)}onSpeaking(e){this.#t.on("speaking",e)}}function dr({text:e,loading:t,loader:r}){const n=R(),[i,o]=q(!1),[s,a]=q(!1),l=R(t),c=async(i=!1)=>{n.current||(n.current=r?new cr(r):new ar,n.current.onSpeaking(o),n.current.onPlaying(a));let s="";"string"==typeof e?s=e:e.current&&(s=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]:[])}(e.current),t&&s.pop()),s&&0!==s.length&&n.current.start(s,i)};return S(()=>{if(l.current&&"string"!=typeof e&&e.current){if(t){const t={childList:!0,subtree:!0},r=new MutationObserver(function(){c(!0)});return r.observe(e.current,t),c(),()=>{r.disconnect()}}c(!0)}},[t]),S(()=>()=>{n.current&&(n.current.stop(),n.current=void 0)},[]),{playing:s,speaking:i,start:c,stop:()=>{n.current&&n.current.stop()}}}function ur({model:r="builtin",voice:n,loading:i,autoplay:o,contentRef:s,avatarRef:a}){const{request:l}=je(),c=F(()=>{if("builtin"!==r)return async e=>(await l({url:"/speech",method:"post",data:{model:r,voice:n,input:e}})).audio},[r,n]),{playing:d,speaking:u,start:m,stop:h}=dr({loader:c,text:s,loading:o&&i});let p=null;return a.current&&(u&&(p=be(e(mr,{children:e(O,{size:"sm",variant:"light"})}),a.current)),d&&(p=be(e(mr,{children:e(hr,{className:"bi bi-volume-down-fill text-light"})}),a.current))),t(At,{disabled:i&&!d,onClick:()=>{d?h():m()},children:[d?e(hr,{className:"bi bi-volume-down-fill"}):u?e(O,{size:"sm",variant:"primary"}):e(hr,{className:"bi bi-volume-down"}),p]})}const mr=n.div`
|
|
725
723
|
position: absolute;
|
|
726
724
|
top: 0;
|
|
727
725
|
left: 0;
|
|
@@ -731,27 +729,27 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
731
729
|
align-items: center;
|
|
732
730
|
justify-content: center;
|
|
733
731
|
background-color: rgba(0, 0, 0, .3);
|
|
734
|
-
`,
|
|
732
|
+
`,hr=n.i`
|
|
735
733
|
|
|
736
734
|
&::before {
|
|
737
735
|
transform: scale(1.4)
|
|
738
736
|
}
|
|
739
|
-
`;function
|
|
737
|
+
`;function pr({tool:r,loading:n}){const{logLevel:i="none",renderToolContent:o}=je(),s="response"in r,a=!s&&!n,{response:l,title:c,content:d,showStatus:u,defaultExpanded:m}=F(()=>{const n=(e=>{try{return JSON.parse(e.arguments)}catch(e){return null}})(r),i=e("span",{className:"text-truncate",children:r.title}),a=t("div",{className:"border-top p-2 d-flex flex-column gap-2",children:[t("div",{className:"border rounded bg-light",children:[e("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:e("span",{className:"text-muted",children:"参数"})}),e(fr,{className:"border-top p-2",children:r.arguments})]}),s&&t("div",{className:"border rounded bg-light",children:[e("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:e("span",{className:"text-muted",children:"响应"})}),e(fr,{className:"border-top p-2",children:r.response||"None"})]})]}),l=r.content&&e(ir,{value:r.content});if(o){const e=o({tool:r,args:n});if(e)return{title:null===e.title?null:e.title??i,response:null===e.response?null:e.response??a,content:null===e.content?null:e.content??l,showStatus:e.showStatus??!0,defaultExpanded:e.defaultExpanded??!1}}return{title:i,response:a,content:l,showStatus:!0,defaultExpanded:!1}},[r,o]),[h,p]=q(m),g="all"==i&&null!==l;return t(D,{children:[c&&e("div",{className:"mb-2",children:t(gr,{className:"shadow-sm rounded bg-white fs-7",$open:h,children:[t("div",{onClick:()=>p(g&&!h),role:"button",className:"d-flex align-items-center flex-nowrap p-1 px-2 gap-2",children:[a?e("i",{className:"bi bi-dash-circle-fill text-muted"}):s?r.error?e("i",{className:"bi bi-x-circle-fill text-danger"}):e("i",{className:"bi bi-check-circle-fill text-success"}):e(O,{animation:"border",variant:"primary",size:"sm"}),u&&e("span",{className:"text-muted",children:a?"已取消":s?"已使用":"正在使用"}),c,g&&e("i",h?{className:"bi bi-caret-up-fill text-muted"}:{className:"bi bi-caret-down-fill text-muted"})]}),h&&l]})}),d]})}const gr=n.div`
|
|
740
738
|
width: ${e=>e.$open?"auto":"fit-content"};
|
|
741
739
|
max-width: 100%;
|
|
742
740
|
overflow:hidden;
|
|
743
|
-
`,
|
|
741
|
+
`,fr=n.div`
|
|
744
742
|
white-space: pre-wrap;
|
|
745
743
|
overflow-y: auto;
|
|
746
744
|
overflow-x: hidden;
|
|
747
745
|
max-height: 150px;
|
|
748
|
-
`;function
|
|
746
|
+
`;function br({node:r}){const[n,i]=q(!1),{nodeIconResolver:o}=je(),s=!("latency"in r),a=s?e(O,{animation:"border",variant:"primary",size:"sm"}):r.error?e("i",{className:"bi bi-x-circle-fill text-danger"}):e("i",{className:"bi bi-check-circle-fill text-success"});return t("div",{className:"shadow-sm rounded bg-white fs-7",children:[t(yr,{onClick:()=>i(e=>!e),role:"button",className:"d-flex align-items-center p-1 px-2 gap-1",children:[e("i",{className:"bi bi-chevron-down text-muted"}),o?.(r.type),e(xr,{className:"me-2 text-truncate",children:r.title}),e("span",{className:"me-auto"}),!s&&e("span",{className:"text-nowrap text-muted",children:vr(r.latency)}),e("span",{children:a})]}),n&&t("div",{className:"border-top p-2 d-flex flex-column gap-2",children:[t("div",{className:"border rounded bg-light",children:[e("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:e("span",{className:"text-muted",children:"输入"})}),e("div",{className:"border-top p-2 overflow-hidden text-pre-wrap",children:r.input?JSON.stringify(r.input,null,4):"None"})]}),t("div",{className:"border rounded bg-light",children:[e("div",{className:"d-flex align-items-center p-1 px-2 fs-7 gap-2",children:e("span",{className:"text-muted",children:"输出"})}),e("div",{className:"border-top p-2 overflow-hidden text-pre-wrap",children:r.output?JSON.stringify(r.output,null,4):"None"})]})]})]})}const vr=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`,yr=n.div`
|
|
749
747
|
svg {
|
|
750
748
|
flex-shrink: 0;
|
|
751
749
|
}
|
|
752
|
-
`,
|
|
750
|
+
`,xr=n.span`
|
|
753
751
|
display: inline-block;
|
|
754
|
-
`;function
|
|
752
|
+
`;function kr({nodes:r,loading:n}){const[i,o]=q(!1),s=r.some(e=>"error"in e),a=n?e(O,{animation:"border",variant:"primary",size:"sm"}):e("i",s?{className:"bi bi-x-circle-fill text-danger"}:{className:"bi bi-check-circle-fill text-success"});return e("div",{className:"mb-2",children:t("div",i?{className:"shadow-sm rounded bg-white fs-7",children:[t("div",{onClick:()=>o(!1),role:"button",className:"d-flex align-items-center p-1 px-2 gap-2",children:[a,e("span",{children:"工作流"}),e("i",{className:"bi bi-caret-up-fill text-muted"})]}),e("div",{className:"border-top p-2 d-flex flex-column gap-1 bg-light bg-opacity-50",children:r.map((t,r)=>e(br,{node:t},r))})]}:{onClick:()=>o(!0),role:"button",className:"d-inline-flex align-items-center shadow-sm rounded bg-white p-1 px-2 fs-7 gap-2",children:[a,e("span",{children:"工作流"}),e("i",{className:"bi bi-caret-down-fill text-muted"})]})})}const wr=L(({message:n,actions:i,setMessage:o,cite:s,speech:a,isLast:l})=>{const{query:c,quote:d,files:u=[],chunks:m,annotation:h,loading:p}=n,{user:g,bot:f,logLevel:b="none",messages:v}=je(),y=F(()=>m?m.reduce(function(e,t){const r=Array.isArray(t.content)?t.content.reduce((e,t)=>{const r=Et(t);return r?e+r+"\n":e},""):Et(t.content);return e+r+"\n"+(t.tools||[]).reduce((e,t)=>{if(t.content){const r=Et(t.content);if(r)return e+r+"\n"}return e},"")},""):"",[m]),x=R(null),k=R(null),E=R(null),j=F(()=>m?.flatMap(e=>e.node?[e.node]:[])||[],[m]),$=c||u.length>0;return t(r,{children:[$&&t(Ir,{$reverse:!0,children:[g&&e(qr,{children:e("img",{src:g.avatar})}),e(Rr,{}),t(zr,{ref:x,children:[c&&e(qt,{content:c}),d&&e(J,{trigger:"click",container:x,rootClose:!0,placement:"bottom",overlay:e(Er,{body:!0,children:d}),children:e(jr,{children:e(Nr,{children:d})})}),u.length>0&&u.map(({name:t,size:r,path:n},i)=>N(n)?e(Ot,{src:`/uploads/${n}`},i):e(Cr,{children:e(Se,{name:t,url:`/uploads/${n}`,size:r})},i))]})]}),m&&t(Ir,{children:[f&&e(qr,{ref:k,children:e("img",{src:f.avatar})}),e(Rr,{}),t(zr,{children:[$&&!1!==i&&t(Mr,{children:[e(w,{placement:"top",content:y,as:At,tooltip:!0}),a&&e(ur,{loading:n.loading,avatarRef:k,contentRef:E,...a}),i?.({Component:At,message:n,content:y,setMessage:o,messages:v})]}),e(Sr,{children:["stats","all"].includes(b)&&n.stats&&t(r,{children:[t("span",{children:["耗时 ",n.stats.latency/1e3," 秒"]}),t("span",{children:["花费 Token ",n.stats.usage]})]})}),t($r,{ref:E,$deleted:!!h,children:["all"===b&&j.length>0&&e(kr,{loading:p,nodes:j}),m.map((r,n)=>t(D,{children:[r.reasoning&&["stats","all"].includes(b)&&e(sr,{reasoning:r.reasoning,loading:!r.content&&0===(r.tools||[]).length}),r.content&&e(Tt,{value:{chunkIndex:n,chunk:r,isLastMessage:l},children:e(ir,{cite:s,value:r.content})}),(r.tools||[]).map((t,i)=>e(Tt,{value:{chunkIndex:n,chunk:r,toolIndex:i,tool:t,isLastMessage:l},children:e(pr,{tool:t,loading:p})},i)),r.error&&e(qt,{content:`[${r.error}]`})]},n))]}),h&&t("div",{children:[t("div",{className:"d-flex align-items-center",children:[e("span",{className:"fs-7 text-secondary me-2",children:"标注的答案"}),e("hr",{className:"flex-fill"})]}),e(qt,{content:h.answer})]}),n.loading&&e(wt,{})]})]})]})}),Er=n(Q)`
|
|
755
753
|
max-width: calc(100% - .875rem * 2);
|
|
756
754
|
width: calc(100% - .875rem * 2);
|
|
757
755
|
font-size: 1rem;
|
|
@@ -760,25 +758,25 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
760
758
|
.popover-body {
|
|
761
759
|
padding: .5rem .75rem;
|
|
762
760
|
}
|
|
763
|
-
`,
|
|
761
|
+
`,Nr=n.div`
|
|
764
762
|
overflow: hidden;
|
|
765
763
|
text-overflow: ellipsis;
|
|
766
764
|
word-break: break-all;
|
|
767
765
|
-webkit-line-clamp: 2;
|
|
768
766
|
-webkit-box-orient: vertical;
|
|
769
767
|
display: -webkit-box;
|
|
770
|
-
`,
|
|
768
|
+
`,jr=n.div`
|
|
771
769
|
padding: .5rem .75rem;
|
|
772
770
|
color: var(--bs-secondary);
|
|
773
771
|
border-radius: var(--bs-border-radius-lg);
|
|
774
772
|
background: #FFFFFF;
|
|
775
773
|
cursor: pointer;
|
|
776
|
-
|
|
774
|
+
`,$r=n.div`
|
|
777
775
|
${e=>e.$deleted&&i`
|
|
778
776
|
text-decoration-line: line-through;
|
|
779
777
|
color: var(--bs-secondary);
|
|
780
778
|
`}
|
|
781
|
-
`,
|
|
779
|
+
`,Cr=n.div`
|
|
782
780
|
width: 100%;
|
|
783
781
|
margin-bottom: .5rem;
|
|
784
782
|
margin-top: .5rem;
|
|
@@ -790,7 +788,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
790
788
|
&:last-child {
|
|
791
789
|
margin-bottom: 0;
|
|
792
790
|
}
|
|
793
|
-
`,
|
|
791
|
+
`,Mr=n.div`
|
|
794
792
|
position: absolute;
|
|
795
793
|
top: -1.1rem;
|
|
796
794
|
right: 0;
|
|
@@ -798,7 +796,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
798
796
|
gap: .5rem;
|
|
799
797
|
opacity: 0;
|
|
800
798
|
z-index: 1;
|
|
801
|
-
`,
|
|
799
|
+
`,Sr=n.div`
|
|
802
800
|
position: absolute;
|
|
803
801
|
bottom: -1.4rem;
|
|
804
802
|
left: 0;
|
|
@@ -811,7 +809,7 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
811
809
|
display: flex;
|
|
812
810
|
opacity: 0;
|
|
813
811
|
z-index: 1;
|
|
814
|
-
`,
|
|
812
|
+
`,qr=n.div`
|
|
815
813
|
width: 35px;
|
|
816
814
|
height: 35px;
|
|
817
815
|
border-radius: 50%;
|
|
@@ -822,14 +820,14 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
822
820
|
width: 100%;
|
|
823
821
|
height: 100%;
|
|
824
822
|
}
|
|
825
|
-
|
|
823
|
+
`,Rr=n.div`
|
|
826
824
|
width: 0;
|
|
827
825
|
height: 0;
|
|
828
826
|
content: "";
|
|
829
827
|
border: 5px solid transparent;
|
|
830
828
|
border-right-color: #f3f3f3;
|
|
831
829
|
transform: translateY(10px);
|
|
832
|
-
`,
|
|
830
|
+
`,zr=n.div`
|
|
833
831
|
padding: .875rem;
|
|
834
832
|
background-color: rgb(243, 243, 243);
|
|
835
833
|
border-radius: var(--bs-border-radius-lg);
|
|
@@ -837,31 +835,31 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
837
835
|
position: relative;
|
|
838
836
|
|
|
839
837
|
&:hover {
|
|
840
|
-
${
|
|
838
|
+
${Sr}, ${Mr} {
|
|
841
839
|
opacity: 1;
|
|
842
840
|
}
|
|
843
841
|
}
|
|
844
|
-
`,
|
|
842
|
+
`,Ir=n.div`
|
|
845
843
|
display: flex;
|
|
846
844
|
justify-content: flex-start;
|
|
847
845
|
padding: 1rem 0 1rem 0;
|
|
848
846
|
${e=>e.$reverse&&i`
|
|
849
847
|
flex-direction: row-reverse;
|
|
850
848
|
|
|
851
|
-
${
|
|
849
|
+
${Rr} {
|
|
852
850
|
border-left-color: rgba(var(--bs-primary-rgb), 0.1);
|
|
853
851
|
border-right-color: transparent;
|
|
854
852
|
}
|
|
855
853
|
|
|
856
|
-
${
|
|
854
|
+
${zr} {
|
|
857
855
|
background: rgba(var(--bs-primary-rgb), 0.1);
|
|
858
856
|
}
|
|
859
857
|
`};
|
|
860
|
-
`;function
|
|
858
|
+
`;function Fr(r){const{placeholder:n,actions:i,cite:o,speech:s,renderItem:a,scrollRef:l}=r,{messages:c,setMessages:d,loading:u,suggestions:m,conversationId:h}=je(),p=R(r.loaded),g=z(()=>{const e=l.current;e&&requestAnimationFrame(()=>{e.scrollTo({top:e.scrollHeight})})},[]),f=R(null),{height:b}=ve({ref:f});S(()=>{(u||!p.current)&&c.length>0&&(u&&(p.current=!0),g())},[b,u,p,c]),S(()=>{m.length>0&&g()},[m]),S(()=>{p.current=r.loaded},[h]),S(()=>{const e=f.current;if(e){const t=()=>{p.current=!0};return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}}},[f]);const v=c.slice(-30);return t(Ar,{ref:f,children:[0===v.length&&n,v.map((t,r)=>{const n={actions:i,cite:o,speech:s,message:t,setMessage:e=>{d(r=>{const n=r.findIndex(e=>e.id===t.id);-1!==n&&e(r[n])})},isLast:r===v.length-1};return a?a({Component:wr,props:n},r):e(wr,{...n},r)}),m.length>0&&e(Dr,{children:m.map((t,r)=>e("a",{href:"#!question",children:t},r))})]})}const Ar=n.div`
|
|
861
859
|
display: flex;
|
|
862
860
|
flex-direction: column;
|
|
863
861
|
flex: 1;
|
|
864
|
-
`,
|
|
862
|
+
`,Dr=n.div`
|
|
865
863
|
display: flex;
|
|
866
864
|
flex-direction: column;
|
|
867
865
|
align-items: flex-start;
|
|
@@ -878,16 +876,16 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{styled as
|
|
|
878
876
|
background: var(--bs-secondary-bg-subtle);
|
|
879
877
|
}
|
|
880
878
|
}
|
|
881
|
-
`,
|
|
879
|
+
`,Lr=L(I(({className:r,bot:n,user:i,input:o,logLevel:s,imageResolver:a,nodeIconResolver:l,placeholder:c,actions:d,onboarding:u,conversation:m,cite:h,speech:p,renderItem:g,renderFileItem:f,renderToolContent:b,renderReasoning:y,messages:x,request:w,onReset:E,transformMessages:N=ft},$)=>{const C=z(e=>{const t=[];if(u&&!1!==u.enable){const e=bt(u.questions||[]);t.push({chunks:[{content:[u.prologue,...e.map(e=>`[${e}](#!question)`)].join("\n"),tools:[]}],loading:u.loading})}return e?t.concat(N(e.messages||[])):x?t.concat(N(x)):t},[u]),[M,I]=q(m?.id),[D,L]=q(),[T,P]=v([]);S(()=>{P(C(m))},[u]);const[O,_]=q(!1),B=R(null),[U,H]=q([]),J=z(e=>{I(e?.id),P(C(e)),H([]),_(!1),E?.(e)},[O,C,E]);return A($,()=>({reset:J}),[J]),e($e,{request:F(()=>w?"string"==typeof w?j.create({baseURL:w}):w:j,[w]),bot:n,user:i,logLevel:s,imageResolver:a,nodeIconResolver:l,conversationId:M,setConversationId:I,input:D,setInput:L,messages:T,setMessages:P,suggestions:U,setSuggestions:H,loading:O,setLoading:_,renderFileItem:f,reset:J,readonly:!o,renderToolContent:b,renderReasoning:y,children:e(Pr,{className:r,children:t(k,{children:[e(Tr,{ref:B,children:e(Fr,{placeholder:c,cite:h,actions:d,loaded:!o,speech:p,renderItem:g,scrollRef:B})}),o&&e(ot,{...o,scrollRef:B})]})})})}),se),Tr=n.div`
|
|
882
880
|
display: flex;
|
|
883
881
|
flex-direction: column;
|
|
884
882
|
flex: 1;
|
|
885
883
|
overflow-y: auto;
|
|
886
884
|
padding: 0 1rem;
|
|
887
885
|
margin-bottom: .5rem;
|
|
888
|
-
`,
|
|
886
|
+
`,Pr=n.div`
|
|
889
887
|
display: flex;
|
|
890
888
|
flex-direction: column;
|
|
891
889
|
height: 100%;
|
|
892
890
|
position: relative;
|
|
893
|
-
`;async function
|
|
891
|
+
`;async function Or(e){const t=await ye().use(ke).use(ue).use(me).use(he).use(we).use(xe).process(e);return String(t)}export{Be as ActionButton,Se as FileItem,qt as Markdown,Lr as MessageBox,De as VariableForm,Ee as isToolMessage,Or as md2html,bt as pickQuestions,je as useMessageContext,dr as useSynthesis};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topthink/chat",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"module": "es/index.js",
|
|
5
5
|
"types": "types/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"@block-kit/core": "^1.0.22",
|
|
14
14
|
"@block-kit/variable": "^1.0.21",
|
|
15
15
|
"@breezystack/lamejs": "^1.2.7",
|
|
16
|
-
"@topthink/components": "1.2.
|
|
16
|
+
"@topthink/components": "1.2.2",
|
|
17
17
|
"@types/hast": "^3.0.4",
|
|
18
18
|
"@types/mdast": "^4.0.4",
|
|
19
19
|
"eventemitter3": "^5.0.1",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
},
|
|
65
65
|
"author": "yunwuxin <tzzhangyajun@qq.com> (https://github.com/yunwuxin)",
|
|
66
66
|
"license": "MIT",
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "778fe5ab4ec3f66db112c3b3cd1dee5051f67e2a",
|
|
68
68
|
"scripts": {
|
|
69
69
|
"prebuild": "rimraf es types",
|
|
70
70
|
"build": "rollup -c --environment NODE_ENV:production",
|