@pi-outpost/embed 0.28.2 → 0.30.0

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.
@@ -0,0 +1,71 @@
1
+ const e=require("./conversationHistory-XS2q82ov.cjs"),t=require("./lib-DVuUFI8o.cjs"),n=require("./loadReferencedImage-CNK1LKTU.cjs");var r=/["&'<>`]/g,i=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,a=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,o=/[|\\{}()[\]^$+*?.]/g,s=new WeakMap;function c(e,t){if(e=e.replace(t.subset?l(t.subset):r,o),t.subset||t.escapeOnly)return e;return e.replace(i,n).replace(a,o);function n(e,n,r){return t.format((e.charCodeAt(0)-55296)*1024+e.charCodeAt(1)-56320+65536,r.charCodeAt(n+2),t)}function o(e,n,r){return t.format(e.charCodeAt(0),r.charCodeAt(n+1),t)}}function l(e){let t=s.get(e);return t||(t=u(e),s.set(e,t)),t}function u(e){let t=[],n=-1;for(;++n<e.length;)t.push(e[n].replace(o,`\\$&`));return RegExp(`(?:`+t.join(`|`)+`)`,`g`)}var d=/[\dA-Fa-f]/;function f(e,t,n){let r=`&#x`+e.toString(16).toUpperCase();return n&&t&&!d.test(String.fromCharCode(t))?r:r+`;`}var p=/\d/;function ee(e,t,n){let r=`&#`+String(e);return n&&t&&!p.test(String.fromCharCode(t))?r:r+`;`}var te=`AElig.AMP.Aacute.Acirc.Agrave.Aring.Atilde.Auml.COPY.Ccedil.ETH.Eacute.Ecirc.Egrave.Euml.GT.Iacute.Icirc.Igrave.Iuml.LT.Ntilde.Oacute.Ocirc.Ograve.Oslash.Otilde.Ouml.QUOT.REG.THORN.Uacute.Ucirc.Ugrave.Uuml.Yacute.aacute.acirc.acute.aelig.agrave.amp.aring.atilde.auml.brvbar.ccedil.cedil.cent.copy.curren.deg.divide.eacute.ecirc.egrave.eth.euml.frac12.frac14.frac34.gt.iacute.icirc.iexcl.igrave.iquest.iuml.laquo.lt.macr.micro.middot.nbsp.not.ntilde.oacute.ocirc.ograve.ordf.ordm.oslash.otilde.ouml.para.plusmn.pound.quot.raquo.reg.sect.shy.sup1.sup2.sup3.szlig.thorn.times.uacute.ucirc.ugrave.uml.uuml.yacute.yen.yuml`.split(`.`),m={nbsp:`\xA0`,iexcl:`¡`,cent:`¢`,pound:`£`,curren:`¤`,yen:`¥`,brvbar:`¦`,sect:`§`,uml:`¨`,copy:`©`,ordf:`ª`,laquo:`«`,not:`¬`,shy:`­`,reg:`®`,macr:`¯`,deg:`°`,plusmn:`±`,sup2:`²`,sup3:`³`,acute:`´`,micro:`µ`,para:`¶`,middot:`·`,cedil:`¸`,sup1:`¹`,ordm:`º`,raquo:`»`,frac14:`¼`,frac12:`½`,frac34:`¾`,iquest:`¿`,Agrave:`À`,Aacute:`Á`,Acirc:`Â`,Atilde:`Ã`,Auml:`Ä`,Aring:`Å`,AElig:`Æ`,Ccedil:`Ç`,Egrave:`È`,Eacute:`É`,Ecirc:`Ê`,Euml:`Ë`,Igrave:`Ì`,Iacute:`Í`,Icirc:`Î`,Iuml:`Ï`,ETH:`Ð`,Ntilde:`Ñ`,Ograve:`Ò`,Oacute:`Ó`,Ocirc:`Ô`,Otilde:`Õ`,Ouml:`Ö`,times:`×`,Oslash:`Ø`,Ugrave:`Ù`,Uacute:`Ú`,Ucirc:`Û`,Uuml:`Ü`,Yacute:`Ý`,THORN:`Þ`,szlig:`ß`,agrave:`à`,aacute:`á`,acirc:`â`,atilde:`ã`,auml:`ä`,aring:`å`,aelig:`æ`,ccedil:`ç`,egrave:`è`,eacute:`é`,ecirc:`ê`,euml:`ë`,igrave:`ì`,iacute:`í`,icirc:`î`,iuml:`ï`,eth:`ð`,ntilde:`ñ`,ograve:`ò`,oacute:`ó`,ocirc:`ô`,otilde:`õ`,ouml:`ö`,divide:`÷`,oslash:`ø`,ugrave:`ù`,uacute:`ú`,ucirc:`û`,uuml:`ü`,yacute:`ý`,thorn:`þ`,yuml:`ÿ`,fnof:`ƒ`,Alpha:`Α`,Beta:`Β`,Gamma:`Γ`,Delta:`Δ`,Epsilon:`Ε`,Zeta:`Ζ`,Eta:`Η`,Theta:`Θ`,Iota:`Ι`,Kappa:`Κ`,Lambda:`Λ`,Mu:`Μ`,Nu:`Ν`,Xi:`Ξ`,Omicron:`Ο`,Pi:`Π`,Rho:`Ρ`,Sigma:`Σ`,Tau:`Τ`,Upsilon:`Υ`,Phi:`Φ`,Chi:`Χ`,Psi:`Ψ`,Omega:`Ω`,alpha:`α`,beta:`β`,gamma:`γ`,delta:`δ`,epsilon:`ε`,zeta:`ζ`,eta:`η`,theta:`θ`,iota:`ι`,kappa:`κ`,lambda:`λ`,mu:`μ`,nu:`ν`,xi:`ξ`,omicron:`ο`,pi:`π`,rho:`ρ`,sigmaf:`ς`,sigma:`σ`,tau:`τ`,upsilon:`υ`,phi:`φ`,chi:`χ`,psi:`ψ`,omega:`ω`,thetasym:`ϑ`,upsih:`ϒ`,piv:`ϖ`,bull:`•`,hellip:`…`,prime:`′`,Prime:`″`,oline:`‾`,frasl:`⁄`,weierp:`℘`,image:`ℑ`,real:`ℜ`,trade:`™`,alefsym:`ℵ`,larr:`←`,uarr:`↑`,rarr:`→`,darr:`↓`,harr:`↔`,crarr:`↵`,lArr:`⇐`,uArr:`⇑`,rArr:`⇒`,dArr:`⇓`,hArr:`⇔`,forall:`∀`,part:`∂`,exist:`∃`,empty:`∅`,nabla:`∇`,isin:`∈`,notin:`∉`,ni:`∋`,prod:`∏`,sum:`∑`,minus:`−`,lowast:`∗`,radic:`√`,prop:`∝`,infin:`∞`,ang:`∠`,and:`∧`,or:`∨`,cap:`∩`,cup:`∪`,int:`∫`,there4:`∴`,sim:`∼`,cong:`≅`,asymp:`≈`,ne:`≠`,equiv:`≡`,le:`≤`,ge:`≥`,sub:`⊂`,sup:`⊃`,nsub:`⊄`,sube:`⊆`,supe:`⊇`,oplus:`⊕`,otimes:`⊗`,perp:`⊥`,sdot:`⋅`,lceil:`⌈`,rceil:`⌉`,lfloor:`⌊`,rfloor:`⌋`,lang:`〈`,rang:`〉`,loz:`◊`,spades:`♠`,clubs:`♣`,hearts:`♥`,diams:`♦`,quot:`"`,amp:`&`,lt:`<`,gt:`>`,OElig:`Œ`,oelig:`œ`,Scaron:`Š`,scaron:`š`,Yuml:`Ÿ`,circ:`ˆ`,tilde:`˜`,ensp:` `,emsp:` `,thinsp:` `,zwnj:`‌`,zwj:`‍`,lrm:`‎`,rlm:`‏`,ndash:`–`,mdash:`—`,lsquo:`‘`,rsquo:`’`,sbquo:`‚`,ldquo:`“`,rdquo:`”`,bdquo:`„`,dagger:`†`,Dagger:`‡`,permil:`‰`,lsaquo:`‹`,rsaquo:`›`,euro:`€`},h=[`cent`,`copy`,`divide`,`gt`,`lt`,`not`,`para`,`times`],g={}.hasOwnProperty,_={},v;for(v in m)g.call(m,v)&&(_[m[v]]=v);var ne=/[^\dA-Za-z]/;function re(e,t,n,r){let i=String.fromCharCode(e);if(g.call(_,i)){let e=_[i],a=`&`+e;return n&&te.includes(e)&&!h.includes(e)&&(!r||t&&t!==61&&ne.test(String.fromCharCode(t)))?a:a+`;`}return``}function ie(e,t,n){let r=f(e,t,n.omitOptionalSemicolons),i;if((n.useNamedReferences||n.useShortestReferences)&&(i=re(e,t,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!i)&&n.useShortestReferences){let i=ee(e,t,n.omitOptionalSemicolons);i.length<r.length&&(r=i)}return i&&(!n.useShortestReferences||i.length<r.length)?i:r}function y(e,t){return c(e,Object.assign({format:ie},t))}var ae=/^>|^->|<!--|-->|--!>|<!-$/g,oe=[`>`],se=[`<`,`>`];function ce(e,t,n,r){return r.settings.bogusComments?`<?`+y(e.value,Object.assign({},r.settings.characterReferences,{subset:oe}))+`>`:`<!--`+e.value.replace(ae,i)+`-->`;function i(e){return y(e,Object.assign({},r.settings.characterReferences,{subset:se}))}}function b(e,t,n,r){return`<!`+(r.settings.upperDoctype?`DOCTYPE`:`doctype`)+(r.settings.tightDoctype?``:` `)+`html>`}var x=C(1),S=C(-1),le=[];function C(t){return n;function n(n,r,i){let a=n?n.children:le,o=(r||0)+t,s=a[o];if(!i)for(;s&&e.v(s);)o+=t,s=a[o];return s}}var ue={}.hasOwnProperty;function w(e){return t;function t(t,n,r){return ue.call(e,t.tagName)&&e[t.tagName](t,n,r)}}var T=w({body:O,caption:E,colgroup:E,dd:M,dt:j,head:E,html:D,li:A,optgroup:P,option:F,p:k,rp:N,rt:N,tbody:L,td:B,tfoot:R,th:B,thead:I,tr:z});function E(t,n,r){let i=x(r,n,!0);return!i||i.type!==`comment`&&!(i.type===`text`&&e.v(i.value.charAt(0)))}function D(e,t,n){let r=x(n,t);return!r||r.type!==`comment`}function O(e,t,n){let r=x(n,t);return!r||r.type!==`comment`}function k(e,t,n){let r=x(n,t);return r?r.type===`element`&&(r.tagName===`address`||r.tagName===`article`||r.tagName===`aside`||r.tagName===`blockquote`||r.tagName===`details`||r.tagName===`div`||r.tagName===`dl`||r.tagName===`fieldset`||r.tagName===`figcaption`||r.tagName===`figure`||r.tagName===`footer`||r.tagName===`form`||r.tagName===`h1`||r.tagName===`h2`||r.tagName===`h3`||r.tagName===`h4`||r.tagName===`h5`||r.tagName===`h6`||r.tagName===`header`||r.tagName===`hgroup`||r.tagName===`hr`||r.tagName===`main`||r.tagName===`menu`||r.tagName===`nav`||r.tagName===`ol`||r.tagName===`p`||r.tagName===`pre`||r.tagName===`section`||r.tagName===`table`||r.tagName===`ul`):!n||n.type!==`element`||n.tagName!==`a`&&n.tagName!==`audio`&&n.tagName!==`del`&&n.tagName!==`ins`&&n.tagName!==`map`&&n.tagName!==`noscript`&&n.tagName!==`video`}function A(e,t,n){let r=x(n,t);return!r||r.type===`element`&&r.tagName===`li`}function j(e,t,n){let r=x(n,t);return!!(r&&r.type===`element`&&(r.tagName===`dt`||r.tagName===`dd`))}function M(e,t,n){let r=x(n,t);return!r||r.type===`element`&&(r.tagName===`dt`||r.tagName===`dd`)}function N(e,t,n){let r=x(n,t);return!r||r.type===`element`&&(r.tagName===`rp`||r.tagName===`rt`)}function P(e,t,n){let r=x(n,t);return!r||r.type===`element`&&r.tagName===`optgroup`}function F(e,t,n){let r=x(n,t);return!r||r.type===`element`&&(r.tagName===`option`||r.tagName===`optgroup`)}function I(e,t,n){let r=x(n,t);return!!(r&&r.type===`element`&&(r.tagName===`tbody`||r.tagName===`tfoot`))}function L(e,t,n){let r=x(n,t);return!r||r.type===`element`&&(r.tagName===`tbody`||r.tagName===`tfoot`)}function R(e,t,n){return!x(n,t)}function z(e,t,n){let r=x(n,t);return!r||r.type===`element`&&r.tagName===`tr`}function B(e,t,n){let r=x(n,t);return!r||r.type===`element`&&(r.tagName===`td`||r.tagName===`th`)}var V=w({body:de,colgroup:fe,head:U,html:H,tbody:pe});function H(e){let t=x(e,-1);return!t||t.type!==`comment`}function U(e){let t=new Set;for(let n of e.children)if(n.type===`element`&&(n.tagName===`base`||n.tagName===`title`)){if(t.has(n.tagName))return!1;t.add(n.tagName)}let n=e.children[0];return!n||n.type===`element`}function de(t){let n=x(t,-1,!0);return!n||n.type!==`comment`&&!(n.type===`text`&&e.v(n.value.charAt(0)))&&(n.type!==`element`||n.tagName!==`meta`&&n.tagName!==`link`&&n.tagName!==`script`&&n.tagName!==`style`&&n.tagName!==`template`)}function fe(e,t,n){let r=S(n,t),i=x(e,-1,!0);return n&&r&&r.type===`element`&&r.tagName===`colgroup`&&T(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`col`)}function pe(e,t,n){let r=S(n,t),i=x(e,-1);return n&&r&&r.type===`element`&&(r.tagName===`thead`||r.tagName===`tbody`)&&T(r,n.children.indexOf(r),n)?!1:!!(i&&i.type===`element`&&i.tagName===`tr`)}var W={name:[[`
2
+ \f\r &/=>`.split(``),`
3
+ \f\r "&'/=>\``.split(``)],[`\0
4
+ \f\r "&'/<=>`.split(``),`\0
5
+ \f\r "&'/<=>\``.split(``)]],unquoted:[[`
6
+ \f\r &>`.split(``),`\0
7
+ \f\r "&'<=>\``.split(``)],[`\0
8
+ \f\r "&'<=>\``.split(``),`\0
9
+ \f\r "&'<=>\``.split(``)]],single:[[`&'`.split(``),`"&'\``.split(``)],[`\0&'`.split(``),`\0"&'\``.split(``)]],double:[[`"&`.split(``),`"&'\``.split(``)],[`\0"&`.split(``),`\0"&'\``.split(``)]]};function me(t,n,r,i){let a=i.schema,o=a.space!==`svg`&&i.settings.omitOptionalTags,s=a.space===`svg`?i.settings.closeEmptyElements:i.settings.voids.includes(t.tagName.toLowerCase()),c=[],l;a.space===`html`&&t.tagName===`svg`&&(i.schema=e.g);let u=G(i,t.properties),d=i.all(a.space===`html`&&t.tagName===`template`?t.content:t);return i.schema=a,d&&(s=!1),(u||!o||!V(t,n,r))&&(c.push(`<`,t.tagName,u?` `+u:``),s&&(a.space===`svg`||i.settings.closeSelfClosing)&&(l=u.charAt(u.length-1),(!i.settings.tightSelfClosing||l===`/`||l&&l!==`"`&&l!==`'`)&&c.push(` `),c.push(`/`)),c.push(`>`)),c.push(d),!s&&(!o||!T(t,n,r))&&c.push(`</`+t.tagName+`>`),c.join(``)}function G(e,t){let n=[],r=-1,i;if(t){for(i in t)if(t[i]!==null&&t[i]!==void 0){let r=he(e,i,t[i]);r&&n.push(r)}}for(;++r<n.length;){let t=e.settings.tightAttributes?n[r].charAt(n[r].length-1):void 0;r!==n.length-1&&t!==`"`&&t!==`'`&&(n[r]+=` `)}return n.join(``)}function he(n,r,i){let a=e._(n.schema,r),o=n.settings.allowParseErrors&&n.schema.space===`html`?0:1,s=+!n.settings.allowDangerousCharacters,c=n.quote,l;if(a.overloadedBoolean&&(i===a.attribute||i===``)?i=!0:(a.boolean||a.overloadedBoolean)&&(typeof i!=`string`||i===a.attribute||i===``)&&(i=!!i),i==null||i===!1||typeof i==`number`&&Number.isNaN(i))return``;let u=y(a.attribute,Object.assign({},n.settings.characterReferences,{subset:W.name[o][s]}));return i===!0||(i=Array.isArray(i)?(a.commaSeparated?e.y:e.m)(i,{padLeft:!n.settings.tightCommaSeparatedLists}):String(i),n.settings.collapseEmptyAttributes&&!i)?u:(n.settings.preferUnquoted&&(l=y(i,Object.assign({},n.settings.characterReferences,{attribute:!0,subset:W.unquoted[o][s]}))),l!==i&&(n.settings.quoteSmart&&t.r(i,c)>t.r(i,n.alternative)&&(c=n.alternative),l=c+y(i,Object.assign({},n.settings.characterReferences,{subset:(c===`'`?W.single:W.double)[o][s],attribute:!0}))+c),u+(l&&`=`+l))}var ge=[`<`,`&`];function K(e,t,n,r){return n&&n.type===`element`&&(n.tagName===`script`||n.tagName===`style`)?e.value:y(e.value,Object.assign({},r.settings.characterReferences,{subset:ge}))}function _e(e,t,n,r){return r.settings.allowDangerousHtml?e.value:K(e,t,n,r)}function ve(e,t,n,r){return r.all(e)}var ye=e.u(`type`,{invalid:be,unknown:xe,handlers:{comment:ce,doctype:b,element:me,raw:_e,root:ve,text:K}});function be(e){throw Error("Expected node, not `"+e+"`")}function xe(e){throw Error("Cannot compile unknown node `"+e.type+"`")}var Se={},Ce={},we=[];function Te(t,n){let r=n||Se,i=r.quote||`"`,a=i===`"`?`'`:`"`;if(i!==`"`&&i!==`'`)throw Error("Invalid quote `"+i+"`, expected `'` or `\"`");return{one:Ee,all:De,settings:{omitOptionalTags:r.omitOptionalTags||!1,allowParseErrors:r.allowParseErrors||!1,allowDangerousCharacters:r.allowDangerousCharacters||!1,quoteSmart:r.quoteSmart||!1,preferUnquoted:r.preferUnquoted||!1,tightAttributes:r.tightAttributes||!1,upperDoctype:r.upperDoctype||!1,tightDoctype:r.tightDoctype||!1,bogusComments:r.bogusComments||!1,tightCommaSeparatedLists:r.tightCommaSeparatedLists||!1,tightSelfClosing:r.tightSelfClosing||!1,collapseEmptyAttributes:r.collapseEmptyAttributes||!1,allowDangerousHtml:r.allowDangerousHtml||!1,voids:r.voids||e.l,characterReferences:r.characterReferences||Ce,closeSelfClosing:r.closeSelfClosing||!1,closeEmptyElements:r.closeEmptyElements||!1},schema:r.space===`svg`?e.g:e.h,quote:i,alternative:a}.one(Array.isArray(t)?{type:`root`,children:t}:t,void 0,void 0)}function Ee(e,t,n){return ye(e,t,n,this)}function De(e){let t=[],n=e&&e.children||we,r=-1;for(;++r<n.length;)t[r]=this.one(n[r],r,e);return t.join(``)}var Oe=class extends Error{bytes;budgetBytes;constructor(e,t){super(`the conversation's images come to ${Math.round(e/1024)} kB, over the ${Math.round(t/1024)} kB this export embeds`),this.name=`ExportBudgetError`,this.bytes=e,this.budgetBytes=t}},q=t.i().use(t.u).use(t.n).use(t.t).use(e.p,{allowDangerousHtml:!0}).use(e.c).use(e.s,e.o).use(e.d,{output:`mathml`});function ke(e){let t=e.properties?.className;return(Array.isArray(t)?t.map(String):typeof t==`string`?[t]:[]).find(e=>e.startsWith(`language-`))?.slice(9)}async function J(e,t,n){if(e.tagName===`img`){let r=typeof e.properties?.src==`string`?e.properties.src:``,i=r?await t.loadImage(r):void 0;if(!i)return{type:`element`,tagName:`em`,properties:{},children:[{type:`text`,value:`[image: ${typeof e.properties?.alt==`string`?e.properties.alt:r}]`}]};n.bytes+=i.bytes;let a=t.budgetBytes??41943040;if(n.bytes>a)throw new Oe(n.bytes,a);return{...e,properties:{...e.properties,src:i.dataUrl,loading:`lazy`}}}if(e.tagName===`pre`&&e.children?.length===1&&e.children[0].tagName===`code`){let r=e.children[0];if(ke(r)===`mermaid`&&t.renderDiagram){let e=Y(r);n.diagrams+=1;let i=await t.renderDiagram(e,`pi-export-diagram-${n.diagrams}`);if(i)return{type:`element`,tagName:`figure`,properties:{className:[`diagram`]},children:[{type:`raw`,value:i}]}}}if(!e.children)return e;let r=[];for(let i of e.children)r.push(await J(i,t,n));return{...e,children:r}}function Y(e){return e.type===`text`?e.value??``:(e.children??[]).map(Y).join(``)}async function X(e,n,r){return Te(await J(await q.run(q.parse(t._(e))),n,r),{allowDangerousHtml:!0})}function Z(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}var Ae=`:root {
10
+ --bg: #ffffff; --fg: #18181b; --muted: #71717a; --line: #e4e4e7;
11
+ --user-bg: #eff6ff; --tool-bg: #fafafa; --mark-bg: #fffbeb; --mark-fg: #92400e;
12
+ }
13
+ @media (prefers-color-scheme: dark) {
14
+ :root {
15
+ --bg: #18181b; --fg: #e4e4e7; --muted: #a1a1aa; --line: #3f3f46;
16
+ --user-bg: #1e293b; --tool-bg: #27272a; --mark-bg: #292524; --mark-fg: #fcd34d;
17
+ }
18
+ }
19
+ * { box-sizing: border-box; }
20
+ body {
21
+ margin: 0; padding: 2rem 1rem; background: var(--bg); color: var(--fg);
22
+ font: 16px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
23
+ }
24
+ main { max-width: 46rem; margin: 0 auto; }
25
+ header.doc { border-bottom: 1px solid var(--line); padding-bottom: 1rem; margin-bottom: 2rem; }
26
+ header.doc h1 { font-size: 1.4rem; margin: 0 0 0.35rem; }
27
+ header.doc dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.15rem 0.75rem; margin: 0; font-size: 0.85rem; color: var(--muted); }
28
+ header.doc dt { font-weight: 600; }
29
+ header.doc dd { margin: 0; }
30
+ article { margin: 1.25rem 0; }
31
+ article > .who { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); margin-bottom: 0.3rem; }
32
+ article.user .body { background: var(--user-bg); border-radius: 0.6rem; padding: 0.6rem 0.9rem; }
33
+ article.reasoning .body { border-left: 2px solid var(--line); padding-left: 0.9rem; color: var(--muted); font-style: italic; }
34
+ details.tool { background: var(--tool-bg); border: 1px solid var(--line); border-radius: 0.6rem; padding: 0.4rem 0.7rem; }
35
+ details.tool > summary { cursor: pointer; font-size: 0.85rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
36
+ details.tool pre { white-space: pre-wrap; word-break: break-word; }
37
+ .compaction { display: flex; align-items: center; gap: 0.6rem; margin: 2rem 0; color: var(--mark-fg); font-size: 0.8rem; }
38
+ .compaction::before, .compaction::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: 0.4; }
39
+ .compaction-summary { background: var(--mark-bg); color: var(--fg); border-radius: 0.6rem; padding: 0.6rem 0.9rem; font-size: 0.9rem; }
40
+ pre { background: var(--tool-bg); border-radius: 0.5rem; padding: 0.7rem; overflow-x: auto; }
41
+ code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9em; }
42
+ img, svg { max-width: 100%; height: auto; }
43
+ figure.diagram { margin: 1rem 0; overflow-x: auto; }
44
+ table { border-collapse: collapse; width: 100%; }
45
+ th, td { border: 1px solid var(--line); padding: 0.3rem 0.5rem; text-align: left; }
46
+ blockquote { margin: 0.8rem 0; padding-left: 0.9rem; border-left: 3px solid var(--line); color: var(--muted); }
47
+ footer.doc { margin-top: 3rem; border-top: 1px solid var(--line); padding-top: 0.8rem; font-size: 0.75rem; color: var(--muted); }`,Q={user:`You`,assistant:`Agent`};async function je(e,t,n){switch(e.kind){case`user`:{let r=(e.images??[]).map(e=>`<img src="data:${Z(e.mimeType)};base64,${e.data}" alt="attached image" />`).join(`
48
+ `),i=await X(e.text,t,n);return`<article class="user"><p class="who">${Q.user}</p><div class="body">${i}${r}</div></article>`}case`assistant`:{let r=[];for(let i of e.blocks){let e=await X(i.text,t,n);r.push(i.type===`thinking`?`<div class="body"><p class="who">reasoning</p>${e}</div>`:`<div class="body">${e}</div>`)}let i=e.errorMessage?`<p class="body"><em>${Z(e.errorMessage)}</em></p>`:``;return`<article class="${e.blocks.every(e=>e.type===`thinking`)?`assistant reasoning`:`assistant`}"><p class="who">${Q.assistant}</p>${r.join(`
49
+ `)}${i}</article>`}case`tool`:{let t=typeof e.args==`string`?e.args:JSON.stringify(e.args??{},null,2),n=e.isError?` — failed`:``;return[`<article class="tool"><details class="tool">`,`<summary>${Z(e.toolName)}${n}</summary>`,`<pre><code>${Z(t)}</code></pre>`,`<pre><code>${Z(e.output)}</code></pre>`,`</details></article>`].join(``)}case`custom`:return`<article class="custom"><p class="who">${Z(e.customType)}</p><div class="body"><pre><code>${Z(e.text)}</code></pre></div></article>`;case`compaction`:{let r=e.tokensBefore?` — ${Math.round(e.tokensBefore/1e3)}k tokens summarised`:``,i=e.summary?`<div class="compaction-summary">${await X(e.summary,t,n)}</div>`:``;return`<div class="compaction">conversation compacted here${Z(r)}</div>${i}`}}}async function Me(e,t){let n={bytes:0,diagrams:0},r=[];for(let[i,a]of e.entries())r.push(await je(a,t,n)),t.onProgress?.(i+1,e.length);let{meta:i}=t,a=i.project?`${i.session} — ${i.project}`:i.session,o=[];return i.project&&o.push(`<dt>Project</dt><dd>${Z(i.project)}</dd>`),o.push(`<dt>Session</dt><dd>${Z(i.session)}</dd>`),i.model&&o.push(`<dt>Model</dt><dd>${Z(i.model)}</dd>`),o.push(`<dt>Exported</dt><dd>${Z(i.exportedAt.toISOString().slice(0,10))}</dd>`),o.push(`<dt>Messages</dt><dd>${e.length}</dd>`),`<!doctype html>
50
+ <html lang="en">
51
+ <head>
52
+ <meta charset="utf-8" />
53
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
54
+ <title>${Z(a)}</title>
55
+ <style>
56
+ ${Ae}
57
+ </style>
58
+ </head>
59
+ <body>
60
+ <main>
61
+ <header class="doc">
62
+ <h1>${Z(a)}</h1>
63
+ <dl>${o.join(``)}</dl>
64
+ </header>
65
+ ${r.join(`
66
+ `)}
67
+ <footer class="doc">Exported from pi-outpost. This file is self-contained: it needs no network and no scripting.</footer>
68
+ </main>
69
+ </body>
70
+ </html>
71
+ `}var $=class extends Error{constructor(e){super(e),this.name=`ConversationExportError`}};async function Ne(e){let t=new Map;return async r=>{if(t.has(r))return t.get(r);let i=n.n(``,r,e.serverUrl,e.token),a;if(i!==void 0)try{let e=await fetch(i);if(e.ok){let t=new Uint8Array(await e.arrayBuffer());a={dataUrl:`data:${e.headers.get(`content-type`)??`application/octet-stream`};base64,${Pe(t)}`,bytes:t.byteLength}}}catch{a=void 0}return t.set(r,a),a}}function Pe(e){let t=``,n=32768;for(let r=0;r<e.length;r+=n)t+=String.fromCharCode(...e.subarray(r,r+n));return btoa(t)}async function Fe(e,t){try{let{svg:r}=await n.i(e,t),{width:i,height:a}=n.a(r);return n.r(n.o(r,i,a))}catch{return}}function Ie(e,t){let n=e.normalize(`NFKD`).replace(/[^\p{L}\p{N}\s-]/gu,``).trim().replace(/\s+/g,`-`).slice(0,60),r=t.toISOString().slice(0,10);return`${n||`conversation`}-${r}.html`}async function Le(t){if(t.items.length===0)throw new $(`there is no conversation to export yet`);let n=[];if(t.olderItems>0){if(!t.fetchOlderItems)throw new $(`this conversation has been compacted and the agent runtime cannot read back what it removed, so it cannot be exported in full`);try{n=await e.n(t.fetchOlderItems,e=>t.onProgress?.(`collecting`,e,t.olderItems))}catch(e){throw new $(`the earlier part of the conversation could not be read back, so nothing was exported: ${e instanceof Error?e.message:String(e)}`)}}return Me([...n,...t.items],{meta:t.meta,loadImage:await Ne(t.connection),renderDiagram:Fe,budgetBytes:t.budgetBytes??41943040,onProgress:(e,n)=>t.onProgress?.(`rendering`,e,n)})}async function Re(e){let n=await Le(e);t.h(new Blob([n],{type:`text/html;charset=utf-8`}),Ie(e.meta.session,e.meta.exportedAt))}exports.exportConversation=Re;