ai-helper-agent 2.3.1 → 2.4.1

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 (74) hide show
  1. package/README.md +13 -3
  2. package/dist/assets/__vite-browser-external-CM3Eme-n.js +1 -0
  3. package/dist/assets/agent-store-Ce3f4Ya3.js +1 -0
  4. package/dist/assets/background.js +104 -80
  5. package/dist/assets/chat-export-CWSUeOo4.js +37 -0
  6. package/dist/assets/chunk-CMxvf4Kt.js +1 -0
  7. package/dist/assets/content.js +159 -156
  8. package/dist/assets/{dist-BQOFgIxk.js → dist-DhUTa_WT.js} +5 -6
  9. package/dist/assets/dist-LQPh1k0y.js +24 -0
  10. package/dist/assets/i18n-ouMgDZ2t.js +49 -0
  11. package/dist/assets/jszip.min-Bm_16osY.js +2 -0
  12. package/dist/assets/lib-33nIefF6.js +220 -0
  13. package/dist/assets/{marked.min.js-08SGy6CO.js → marked.min.js-D2rXgLAQ.js} +7 -8
  14. package/dist/assets/{marked.min.js-loader-4kRZ9iCP.js → marked.min.js-loader-tKH5SQVQ.js} +1 -1
  15. package/dist/assets/model-profiles-6dzdrSS4.js +24 -0
  16. package/dist/assets/network-scope-CNRYXk74.js +1 -0
  17. package/dist/assets/options-Cp1UMkjK.css +1 -0
  18. package/dist/assets/options.js +108 -102
  19. package/dist/assets/{page-snapshot-renderer-CVL6r6Kf.js → page-snapshot-renderer-j72q92KH.js} +2 -3
  20. package/dist/assets/pdf-DnVqBaAN.js +6 -0
  21. package/dist/assets/session-store-CmGs_rhh.js +76 -0
  22. package/dist/assets/side_panel.css +1 -1
  23. package/dist/assets/side_panel.js +958 -1124
  24. package/dist/assets/theme-BRAX5X2F.css +1 -0
  25. package/dist/assets/{modulepreload-polyfill-P2Xu9kJm.js → theme-CLwYsx9o.js} +1 -1
  26. package/dist/assets/utils-9i9g8vW8.js +112 -0
  27. package/dist/assets/version-BrT5Y9A7.js +1 -0
  28. package/dist/assets/xlsx-DGkz7cnk.js +105 -0
  29. package/dist/manifest.json +2 -5
  30. package/dist/offscreen/offscreen.js +7 -7
  31. package/dist/options.html +151 -75
  32. package/dist/side_panel.html +167 -137
  33. package/package.json +1 -1
  34. package/src/config.js +3 -2
  35. package/src/executor.js +99 -18
  36. package/src/locales/en.json +16 -2
  37. package/src/locales/zh.json +16 -2
  38. package/src/memory/injection.js +12 -2
  39. package/src/memory/routes.js +6 -0
  40. package/src/memory/service.js +57 -2
  41. package/src/rag/manager.js +1 -1
  42. package/src/rag/url-guard.js +27 -12
  43. package/src/security.js +433 -31
  44. package/src/server.js +28 -8
  45. package/dist/assets/agent-store-DcAs6YyA.js +0 -2
  46. package/dist/assets/agent-store-DcAs6YyA.js.map +0 -1
  47. package/dist/assets/background.js.map +0 -1
  48. package/dist/assets/dist-BQOFgIxk.js.map +0 -1
  49. package/dist/assets/i18n-C4jSRoCH.js +0 -50
  50. package/dist/assets/i18n-C4jSRoCH.js.map +0 -1
  51. package/dist/assets/jszip.min-BXqW2-9v.js +0 -3
  52. package/dist/assets/jszip.min-BXqW2-9v.js.map +0 -1
  53. package/dist/assets/lib-Bi7BFuND.js +0 -221
  54. package/dist/assets/lib-Bi7BFuND.js.map +0 -1
  55. package/dist/assets/marked.min.js-08SGy6CO.js.map +0 -1
  56. package/dist/assets/model-profiles-Dl_MsXWa.js +0 -25
  57. package/dist/assets/model-profiles-Dl_MsXWa.js.map +0 -1
  58. package/dist/assets/options-8-nu3P5K.css +0 -1
  59. package/dist/assets/options.js.map +0 -1
  60. package/dist/assets/page-snapshot-renderer-CVL6r6Kf.js.map +0 -1
  61. package/dist/assets/pdf-HiJ0icvU.js +0 -7
  62. package/dist/assets/pdf-HiJ0icvU.js.map +0 -1
  63. package/dist/assets/rolldown-runtime-C0FnF6B9.js +0 -1
  64. package/dist/assets/session-store-CzVQCgQ_.js +0 -77
  65. package/dist/assets/session-store-CzVQCgQ_.js.map +0 -1
  66. package/dist/assets/side_panel.js.map +0 -1
  67. package/dist/assets/version-CNG2KGnJ.js +0 -2
  68. package/dist/assets/version-CNG2KGnJ.js.map +0 -1
  69. package/dist/assets/xlsx-BHKh7vjA.js +0 -106
  70. package/dist/assets/xlsx-BHKh7vjA.js.map +0 -1
  71. package/dist/icons/badges/license-MIT.svg +0 -21
  72. package/dist/icons/badges/platform.svg +0 -21
  73. package/dist/icons/badges/prs-welcome.svg +0 -21
  74. package/dist/icons/badges/version.svg +0 -21
@@ -0,0 +1,37 @@
1
+ import{a as e,c as t,l as n}from"./i18n-ouMgDZ2t.js";import{C as r}from"./utils-9i9g8vW8.js";import{i,n as a,r as o,t as s}from"./side_panel.js";import{BorderStyle as c,Document as l,ExternalHyperlink as u,HeadingLevel as d,ImageRun as f,Packer as p,Paragraph as m,Table as h,TableCell as g,TableRow as _,TextRun as v,WidthType as y,convertInchesToTwip as b}from"./dist-LQPh1k0y.js";e(`zh`,{chatExport:{exportFailed:`导出失败:{message}`,pdfLibNotLoaded:`PDF 库未加载,无法导出`,noContent:`没有可导出的内容`,imageLibNotLoaded:`图片库未加载,无法导出为图片`,imagePlaceholder:`[图片: {name}]`,canvasFailed:`Canvas 转 DataURL 失败:{message}`,svgLoadFailed:`SVG 图片加载失败`}}),e(`en`,{chatExport:{exportFailed:`Export failed: {message}`,pdfLibNotLoaded:`PDF library not loaded, cannot export`,noContent:`No content to export`,imageLibNotLoaded:`Image library not loaded, cannot export as image`,imagePlaceholder:`[Image: {name}]`,canvasFailed:`Canvas to DataURL failed: {message}`,svgLoadFailed:`SVG image loading failed`}});var x=new Map,S=/Mac|iPhone|iPad|iPod/i.test(typeof navigator<`u`?navigator.userAgent:``)?`Apple Color Emoji`:`Segoe UI Emoji`,C=RegExp(`(?:\\p{Emoji_Presentation}|\\p{Extended_Pictographic}\\uFE0F)(?:[\\u{1F3FB}-\\u{1F3FF}]|\\u200D(?:\\p{Emoji_Presentation}|\\p{Extended_Pictographic}\\uFE0F))*`,`gu`);function w(e,t={}){if(!e)return[];let n=[],r=0;for(let i of e.matchAll(C))i.index>r&&n.push(new v({...t,text:e.slice(r,i.index)})),n.push(new v({...t,text:i[0],font:{name:S}})),r=i.index+i[0].length;return r<e.length&&n.push(new v({...t,text:e.slice(r)})),n}function T(e){if(!e)return[];let r=/(\*\*(.+?)\*\*|(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)|__(.+?)__|(?<!_)_(?!_)(.+?)(?<!_)_(?!_)|`([^`]+)`|\[([^\]]+)\]\(([^)]+)\)|!\[([^\]]*)\]\(([^)]+)\))/,i=[],a=e;for(;a.length>0;){let e=a.match(r);if(!e){i.push(...w(a));break}let o=e.index;o>0&&i.push(...w(a.slice(0,o)));let s=e[1];if(e[2]!==void 0)i.push(...w(e[2],{bold:!0}));else if(e[3]!==void 0)i.push(...w(e[3],{italics:!0}));else if(e[4]!==void 0)i.push(...w(e[4],{bold:!0}));else if(e[5]!==void 0)i.push(...w(e[5],{italics:!0}));else if(e[6]!==void 0)i.push(new v({text:e[6],font:`Consolas`,size:20}));else if(e[7]!==void 0)i.push(new u({children:[new v({text:e[7],style:`Hyperlink`})],link:e[8]}));else if(e[9]!==void 0){let r=e[10];if(r.startsWith(`data:`))try{let[e,t]=r.split(`,`),n=e.match(/data:(image\/(\w+))/);if(n&&t){let e=atob(t),r=new Uint8Array(e.length);for(let t=0;t<e.length;t++)r[t]=e.charCodeAt(t);let a=n[2],o=E(r,a),s=o.width,c=o.height;if(s>567){let e=567/s;s=Math.round(s*e),c=Math.round(c*e)}i.push(new f({data:r,transformation:{width:s,height:c},type:a}))}}catch(r){n.warn(`[ChatExport] ImageRun create failed:`,r.message),i.push(new v({text:t(`chatExport.imagePlaceholder`,{name:e[9]||`image`}),italics:!0,color:`999999`}))}else i.push(new v({text:t(`chatExport.imagePlaceholder`,{name:e[9]||r}),italics:!0,color:`999999`}))}a=a.slice(o+s.length)}return i}function E(e,t){if(t===`png`&&e.length>24){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);return{width:t.getUint32(16),height:t.getUint32(20)}}if((t===`jpeg`||t===`jpg`)&&e.length>100){let t=2;for(;t<e.length-9;)if(e[t]===255){let n=e[t+1];if(n>=192&&n<=195){let n=new DataView(e.buffer,e.byteOffset,e.byteLength);return{height:n.getUint16(t+5),width:n.getUint16(t+7)}}t+=2+(e[t+2]<<8|e[t+3])}else t++}return{width:600,height:400}}async function D(e){if(!e||!e.trim())return[new m({children:[new v({text:``})]})];let t=[],n=e,r=[];n=n.replace(/```(\w*)\n([\s\S]*?)```/g,(e,t,n)=>{let i=r.length;return r.push({lang:t||``,code:n.trimEnd()}),`\n\n%%CODEBLOCK_${i}%%\n\n`});let i=[];n=n.replace(/<table[\s\S]*?<\/table>/gi,e=>{let t=i.length;return i.push(e),`\n\n%%HTMLTABLE_${t}%%\n\n`});let a=[];n=n.replace(/(?:^\|.+\|\s*$\n)+^\|[\s\-:|]+\|\s*$\n(?:^\|.+\|\s*$\n?)+/gm,e=>{let t=a.length;return a.push(e),`\n\n%%MDTABLE_${t}%%\n\n`});let o=n.split(/\n{2,}/).filter(e=>e.trim());for(let e of o){let n=e.trim(),o=n.match(/^%%CODEBLOCK_(\d+)%%$/);if(o){let{lang:e,code:n}=r[parseInt(o[1])],i=e?`${e} code`:`code`;t.push(new m({children:[new v({text:i,bold:!0,font:`Consolas`,size:18})]}));let a=n.split(`
2
+ `);for(let e of a)t.push(new m({children:[new v({text:e||` `,font:`Consolas`,size:18})],spacing:{before:0,after:0,line:240},shading:{fill:`F5F5F5`}}));t.push(new m({children:[new v({text:``})]}));continue}let s=n.match(/^%%HTMLTABLE_(\d+)%%$/);if(s){let e=i[parseInt(s[1])],n=O(e);n.length>0&&(t.push(A(n)),t.push(new m({children:[new v({text:``})]})));continue}let l=n.match(/^%%MDTABLE_(\d+)%%$/);if(l){let e=a[parseInt(l[1])],n=k(e);t.push(A(n)),t.push(new m({children:[new v({text:``})]}));continue}let u=n.match(/^(#{1,6})\s+(.+)/);if(u){let e=u[1].length,r=u[2],i={1:d.HEADING_1,2:d.HEADING_2,3:d.HEADING_3,4:d.HEADING_4,5:d.HEADING_5,6:d.HEADING_6};t.push(new m({children:T(r),heading:i[e]||d.HEADING_1,border:{bottom:{style:c.SINGLE,size:6,color:`EAECEF`}}}));let a=n.slice(u[0].length).replace(/^\n+/,``).trim();a&&t.push(new m({children:T(a),spacing:{before:60,after:60}}));continue}if(/^(---|\*\*\*|___)\s*$/.test(n)){t.push(new m({children:[],border:{bottom:{style:c.SINGLE,size:6,color:`CCCCCC`}},spacing:{before:200,after:200}}));continue}if(/^[\-\*\+]\s+/.test(n)){let n=e.split(/\n(?=[\-\*\+]\s+)/);for(let e of n){let n=e.replace(/^[\-\*\+]\s+/,``);t.push(new m({children:T(n),bullet:{level:0},spacing:{before:40,after:40}}))}continue}if(/^\d+\.\s+/.test(n)){let n=e.split(/\n(?=\d+\.\s+)/);for(let e of n){let n=e.replace(/^\d+\.\s+/,``);t.push(new m({children:T(n),numbering:{reference:`default`,level:0},spacing:{before:40,after:40}}))}continue}if(n.startsWith(`>`)){let n=e.split(`
3
+ `).map(e=>e.replace(/^>\s?/,``)).join(`
4
+ `);t.push(new m({children:T(n),indent:{left:b(.5)},border:{left:{style:c.SINGLE,size:12,color:`CCCCCC`}},spacing:{before:60,after:60}}));continue}let f=T(n);t.push(new m({children:f.length>0?f:w(n),spacing:{before:60,after:60}}))}return t}function O(e){let t=new DOMParser().parseFromString(e,`text/html`),n=[];return t.querySelectorAll(`tr`).forEach(e=>{let t=[];e.querySelectorAll(`th, td`).forEach(e=>{t.push(e.textContent.trim())}),t.length>0&&n.push(t)}),n}function k(e){let t=e.trim().split(`
5
+ `),n=[];for(let e of t){if(/^[\s\|:\-]+$/.test(e.replace(/\|/g,``)))continue;let t=a(e).slice(1,-1).map(e=>e.trim());t.length>0&&n.push(t)}return n}function A(e){if(e.length===0)return new m({children:[]});let t=Math.max(...e.map(e=>e.length));return new h({rows:e.map((e,n)=>{let r=[];for(let i=0;i<t;i++){let a=e[i]||``;r.push(new g({children:[new m({children:T(a),spacing:{before:40,after:40}})],shading:n===0?{fill:`F2F2F2`}:void 0,width:{size:100/t,type:y.PERCENTAGE}}))}return new _({children:r})}),width:{size:100,type:y.PERCENTAGE},borders:{top:{style:c.SINGLE,size:1,color:`DDDDDD`},bottom:{style:c.SINGLE,size:1,color:`DDDDDD`},left:{style:c.SINGLE,size:1,color:`DDDDDD`},right:{style:c.SINGLE,size:1,color:`DDDDDD`},insideHorizontal:{style:c.SINGLE,size:1,color:`DDDDDD`},insideVertical:{style:c.SINGLE,size:1,color:`DDDDDD`}}})}function j(e){try{let t=e.toDataURL(`image/jpeg`,.85);if(t&&t.length>100)return{dataUrl:t,format:`JPEG`}}catch(e){n.debug(`[ChatExport] JPEG toDataURL failed, downgrade to PNG:`,e.message)}try{return{dataUrl:e.toDataURL(`image/png`),format:`PNG`}}catch{try{return{dataUrl:e.toDataURL(`image/jpeg`,.5),format:`JPEG`}}catch(e){throw Error(t(`chatExport.canvasFailed`,{message:e.message}))}}}async function M(e){if(typeof mermaid>`u`)return;let t=e.querySelectorAll(`.mermaid`);if(t.length!==0){for(let e of t)if(!e.querySelector(`svg`))try{await mermaid.run({nodes:[e]})}catch(e){n.warn(`[SidePanel] exporthour mermaid render failed:`,e)}}}function N(e){let t=e.closest(`.mermaid`);if(!t)return!1;let n=t.getAttribute(`data-raw-code`);if(!n)return!1;try{let e=decodeURIComponent(n);return/^\s*classDiagram/im.test(e)}catch{return!1}}function P(e){e.querySelectorAll(`foreignObject`).forEach(e=>{let t=e.querySelector(`div`);if(!t){e.remove();return}let n=t.querySelector(`span`),r=(n||t).textContent.trim();if(!r){e.remove();return}let i=parseFloat(e.getAttribute(`width`))||100,a=parseFloat(e.getAttribute(`height`))||30,o=e.getAttribute(`transform`),s=document.createElementNS(`http://www.w3.org/2000/svg`,`text`);s.setAttribute(`x`,String(i/2)),s.setAttribute(`y`,String(a/2)),s.setAttribute(`text-anchor`,`middle`),s.setAttribute(`dominant-baseline`,`central`),o&&s.setAttribute(`transform`,o);let c=n?n.getAttribute(`class`):``;c&&s.setAttribute(`class`,c),s.textContent=r,e.parentNode.replaceChild(s,e)})}async function F(e){let r=e.querySelectorAll(`svg`);if(r.length!==0)for(let e of r)try{let n=e.cloneNode(!0);N(e)?P(n):n.querySelectorAll(`foreignObject`).forEach(e=>{let t=e.querySelector(`div`);if(!t)return;let n=document.createElementNS(`http://www.w3.org/2000/svg`,`text`),r=parseFloat(e.getAttribute(`x`))||0,i=parseFloat(e.getAttribute(`y`))||0,a=parseFloat(e.getAttribute(`width`))||100,o=parseFloat(e.getAttribute(`height`))||30;window.getComputedStyle(t);let s=t.querySelector(`span`)||t,c=window.getComputedStyle(s);n.textContent=s.textContent.trim(),n.setAttribute(`x`,String(r+a/2)),n.setAttribute(`y`,String(i+o/2)),n.setAttribute(`text-anchor`,`middle`),n.setAttribute(`dominant-baseline`,`central`),n.setAttribute(`fill`,c.color||`#333`),n.setAttribute(`font-family`,c.fontFamily||`sans-serif`),n.setAttribute(`font-size`,c.fontSize||`14px`),(c.fontWeight===`bold`||parseInt(c.fontWeight)>=600)&&n.setAttribute(`font-weight`,`bold`),e.parentNode.replaceChild(n,e)});let r=e.getAttribute(`viewBox`),i,a;if(r){let e=r.split(/\s+/);i=Math.ceil(parseFloat(e[2])),a=Math.ceil(parseFloat(e[3]))}else{let t=e.getBoundingClientRect();i=Math.ceil(t.width||e.getAttribute(`width`)||300),a=Math.ceil(t.height||e.getAttribute(`height`)||200)}let o=new XMLSerializer().serializeToString(n),s=new Blob([o],{type:`image/svg+xml;charset=utf-8`}),c=URL.createObjectURL(s),l=await new Promise((e,n)=>{let r=new Image;r.onload=()=>e(r),r.onerror=()=>n(Error(t(`chatExport.svgLoadFailed`))),r.src=c}),u=document.createElement(`canvas`);u.width=i*2,u.height=a*2;let d=u.getContext(`2d`,{willReadFrequently:!0});d.scale(2,2),d.fillStyle=`#ffffff`,d.fillRect(0,0,u.width,u.height),d.drawImage(l,0,0,i,a);let{dataUrl:f,format:p}=j(u);URL.revokeObjectURL(c);let m=document.createElement(`img`);m.src=f,m.style.cssText=`max-width:100%;width:${i}px;height:auto;`,e.parentNode.replaceChild(m,e)}catch(e){n.warn(`[SidePanel] SVG rotationimage failed:`,e.name,e.message)}}function I(e,t,n){if(!e)return;let r=e.dataset.exportBtnKey||Date.now().toString();e.dataset.exportBtnKey=r;let i=e.querySelector(`svg`),a=i?i.outerHTML:``;x.set(r,{originalSvgHTML:a,timer:null,dropdown:n||null}),i&&(i.outerHTML=`
6
+ <svg viewBox="0 0 24 24" fill="none" style="animation: spin 0.8s linear infinite; width: 18px; height: 18px; flex-shrink: 0;">
7
+ <circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-dasharray="31.4" stroke-dashoffset="10" opacity="0.25"/>
8
+ <circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-dasharray="31.4" stroke-dashoffset="10"/>
9
+ </svg>
10
+ `),e.disabled=!0,e.style.opacity=`0.6`,e.style.transition=`all 0.3s ease`}function L(e,t){if(!e)return;let n=e.dataset.exportBtnKey,r=n?x.get(n):null,i=r&&r.dropdown;i&&i.classList.remove(`show`),r&&r.timer&&clearTimeout(r.timer);let a=e.querySelector(`svg`);a&&r&&r.originalSvgHTML&&(a.outerHTML=r.originalSvgHTML),e.disabled=!1,e.style.opacity=`1`,e.style.transition=`all 0.3s ease`,n&&x.delete(n)}function R(e){if(!e)return;let t=e.dataset.exportBtnKey,n=t?x.get(t):null,r=n&&n.dropdown;r&&r.classList.remove(`show`),n&&n.timer&&clearTimeout(n.timer);let i=e.querySelector(`svg`);i&&n&&n.originalSvgHTML&&(i.outerHTML=n.originalSvgHTML),e.disabled=!1,e.style.opacity=`1`,e.style.transition=`all 0.3s ease`,t&&x.delete(t)}async function z(e){if(typeof mermaid>`u`||!/```mermaid/i.test(e))return e;try{let t=s(e),n=document.createElement(`div`);n.style.cssText=`position:fixed;left:-9999px;top:-9999px;`,n.innerHTML=t,document.body.appendChild(n),await M(n),await F(n);let r=n.querySelectorAll(`.mermaid`),i=[];for(let e of r){let t=e.querySelector(`img`);t&&t.src&&t.src.startsWith(`data:`)?i.push(t.src):i.push(null)}if(document.body.removeChild(n),i.length===0)return e;let a=0;return e.replace(/```\s*mermaid\s*[\r\n]+([\s\S]*?)```/gi,e=>{let t=i[a];return a++,t?`![mermaid](${t})`:e})}catch(t){return n.warn(`[ChatExport] Mermaid pre-render failed,will keep ascodeblock:`,t.message),e}}async function B(e,i,a){let o=i.dataset.exportBtnKey;o&&x.has(o)||(I(i,`docx`,a),requestAnimationFrame(()=>{requestAnimationFrame(async()=>{try{let t=e.dataset.rawMarkdown||e.dataset.rawContent||``;if(!t){let n=e.querySelector(`.markdown-body`);t=n?n.innerText:e.innerText}t=await z(t);let r=await D(t),a=new l({styles:{default:{document:{run:{font:`Calibri`,size:22}},heading1:{run:{size:40,bold:!0,color:`333333`},paragraph:{spacing:{before:320,after:160}}},heading2:{run:{size:30,bold:!0,color:`333333`},paragraph:{spacing:{before:280,after:120}}},heading3:{run:{size:26,bold:!0,color:`333333`},paragraph:{spacing:{before:240,after:100}}}}},sections:[{properties:{page:{margin:{top:b(1),right:b(1),bottom:b(1),left:b(1)}}},children:r}]}),o=await p.toBlob(a),s=URL.createObjectURL(o),c=document.createElement(`a`);c.href=s,c.download=`word-${new Date().getTime()}.docx`,document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(s),L(i,`docx`),n.debug(`[SidePanel] Word (docx) document export successful`)}catch(e){n.error(`[SidePanel] export Word failed:`,e),r(t(`chatExport.exportFailed`,{message:e.message}),`error`),R(i)}})}))}function V(e,a,o){let c=a.dataset.exportBtnKey;c&&x.has(c)||(I(a,`pdf`,o),requestAnimationFrame(()=>{requestAnimationFrame(async()=>{try{let{jsPDF:o,html2canvas:c}=await i();if(!o||!c){r(t(`chatExport.pdfLibNotLoaded`),`error`),R(a);return}let l=e.dataset.rawMarkdown||e.dataset.rawContent||``;if(!l){let t=e.querySelector(`.markdown-body`);l=t?t.innerText:e.innerText}let u=`pdf-${new Date().getTime()}.pdf`,d=document.createElement(`div`);d.style.cssText=`
11
+ position: fixed;
12
+ left: -9999px;
13
+ top: -9999px;
14
+ width: 515px;
15
+ padding: 40px;
16
+ background: white;
17
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
18
+ font-size: 12px;
19
+ line-height: 1.6;
20
+ color: #333;
21
+ box-sizing: border-box;
22
+ `;let f=document.createElement(`div`);f.className=`markdown-body`,f.innerHTML=s(l),d.appendChild(f),document.body.appendChild(d),await M(d),await F(d);let p=d.scrollHeight,m=Math.ceil(p/762);c(d,{scale:2,useCORS:!0,logging:!1,backgroundColor:`#ffffff`,willReadFrequently:!0}).then(e=>{let t=new o({orientation:`portrait`,unit:`px`,format:[595,842],compress:!0}),r=e.width,i=e.height,s=i/p,c=762*s;for(let n=0;n<m;n++){n>0&&t.addPage();let a=n*c,o=Math.min(a+c,i)-a,l=document.createElement(`canvas`);l.width=r,l.height=o;let u=l.getContext(`2d`,{willReadFrequently:!0});u.fillStyle=`#ffffff`,u.fillRect(0,0,l.width,l.height),u.drawImage(e,0,a,r,o,0,0,r,o);let{dataUrl:d,format:f}=j(l),p=o/s;t.addImage(d,f,0,0,595,p,void 0,`FAST`)}t.save(u),L(a,`pdf`),document.body.removeChild(d),n.debug(`[SidePanel] PDF export successful:`,u)}).catch(e=>{n.error(`[SidePanel] PDF export failed:`,e),r(t(`chatExport.exportFailed`,{message:e.message}),`error`),document.body.removeChild(d),R(a)})}catch(e){n.error(`[SidePanel] export PDF failed:`,e),r(t(`chatExport.exportFailed`,{message:e.message}),`error`),R(a)}})}))}function H(e,i,a){let o=i.dataset.exportBtnKey;o&&x.has(o)||(I(i,`md`,a),requestAnimationFrame(()=>{requestAnimationFrame(()=>{try{let a=e.dataset.rawMarkdown||e.dataset.rawContent||``;if(!a){let t=e.querySelector(`.assistant-message-content, .message-content`);t&&(a=t.innerText||t.textContent||``)}if(!a.trim()){r(t(`chatExport.noContent`),`error`),R(i);return}a=a.replace(/\r\n/g,`
23
+ `).replace(/\n{3,}/g,`
24
+
25
+ `);let o=`md-${new Date().getTime()}.md`,s=new Blob([a],{type:`text/markdown;charset=utf-8`}),c=URL.createObjectURL(s),l=document.createElement(`a`);l.href=c,l.download=o,document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(c),L(i,`md`),n.debug(`[SidePanel] Markdown export successful:`,o)}catch(e){n.error(`[SidePanel] export Markdown failed:`,e),r(t(`chatExport.exportFailed`,{message:e.message}),`error`),R(i)}})}))}function U(e,i,a){let c=i.dataset.exportBtnKey;c&&x.has(c)||(I(i,`image`,a),requestAnimationFrame(()=>{requestAnimationFrame(async()=>{let a=null;try{let c=await o();if(!c){r(t(`chatExport.imageLibNotLoaded`),`error`),R(i);return}let l=e.dataset.rawMarkdown||e.dataset.rawContent||``;if(!l){let t=e.querySelector(`.markdown-body`);l=t?t.innerText:e.innerText}let u=`image-${new Date().getTime()}.jpg`,d=Math.ceil(e.getBoundingClientRect().width),f=Math.max(595,d);a=document.createElement(`div`),a.style.cssText=`
26
+ position: fixed;
27
+ left: -9999px;
28
+ top: -9999px;
29
+ width: ${f}px;
30
+ padding: 40px;
31
+ background: white;
32
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
33
+ font-size: 14px;
34
+ line-height: 1.6;
35
+ color: #333;
36
+ box-sizing: border-box;
37
+ `;let p=document.createElement(`div`);p.className=`markdown-body`,p.innerHTML=s(l),a.appendChild(p),document.body.appendChild(a),await M(a),await F(a),await new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(e)));let m=(await c(a,{scale:2,useCORS:!0,logging:!1,backgroundColor:`#ffffff`,willReadFrequently:!0})).toDataURL(`image/jpeg`,.92),h=document.createElement(`a`);h.href=m,h.download=u,document.body.appendChild(h),h.click(),document.body.removeChild(h),L(i,`image`),document.body.removeChild(a),a=null,n.debug(`[SidePanel] image export successful:`,u)}catch(e){n.error(`[SidePanel] export image failed:`,e),r(t(`chatExport.exportFailed`,{message:e.message}),`error`),a&&a.parentNode&&document.body.removeChild(a),R(i)}})}))}export{F as convertSvgsToImages,w as createTextRuns,B as exportAssistantMessageToDocx,U as exportAssistantMessageToImage,H as exportAssistantMessageToMarkdown,V as exportAssistantMessageToPdf,M as renderMermaidInContainer};
@@ -0,0 +1 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e),f=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")});export{d as a,f as i,o as n,u as o,c as r,s as t};