@theoremjs/studio 0.3.4-next.431.ge13f488 → 0.3.4-next.433.gf6b4da5
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/compile.js +24 -4
- package/package.json +4 -4
- package/page/assets/{Banner-CnPs4KTr.js → Banner-DqFqeJx4.js} +2 -2
- package/page/assets/{ConsoleFrame-wtGxMrsA.js → ConsoleFrame-CZvaA-nP.js} +1 -1
- package/page/assets/{ContextMenu-DeNXjcz1.js → ContextMenu-DX9Xmroi.js} +2 -2
- package/page/assets/{ToolResultCharts-B8CzXIqT.js → ToolResultCharts-142qwvoG.js} +1 -1
- package/page/assets/{TraceInspector-ZowpFy4M.js → TraceInspector-CiszHOn4.js} +1 -1
- package/page/assets/{TraceOverview-Cqs1E-WL.js → TraceOverview-DpGrlsvE.js} +1 -1
- package/page/assets/{browser-engine-BGts-9-X.js → browser-engine-DhWIzxGh.js} +1 -1
- package/page/assets/browser-transport-CYmonEpj.js +47 -0
- package/page/assets/{export-agent-D914R2_U.js → export-agent-DD3nkkXc.js} +1 -1
- package/page/assets/{guardrail-tester-W5uDWW7h.js → guardrail-tester-CB_zfwu-.js} +1 -1
- package/page/assets/{index-MqEkSrS5.js → index-D3Myde0v.js} +6 -6
- package/page/assets/{studio-code-pane-0D6foJdq.js → studio-code-pane-BEu6fsah.js} +1 -1
- package/page/assets/{studio-console-CE7YLrvN.js → studio-console-C1aZk0Nc.js} +1 -1
- package/page/assets/{studio-decision-D-j5C59K.js → studio-decision-B4Xv1U6i.js} +1 -1
- package/page/assets/{studio-embedding-CzrDbeQs.js → studio-embedding-B88JqYyA.js} +1 -1
- package/page/assets/{studio-host-console-TCCnn8Gq.js → studio-host-console-CV6UmZhm.js} +2 -2
- package/page/assets/{studio-labels-COswYshV.js → studio-labels-W7ubfnI9.js} +1 -1
- package/page/assets/{studio-live-CSEXVOhs.js → studio-live-DsZTO9nf.js} +1 -1
- package/page/assets/{studio-map-BVsqyzJ6.js → studio-map-B8KLLT-0.js} +1 -1
- package/page/assets/{studio-trace-replay-CNW1GAHH.js → studio-trace-replay-CNI1i-QJ.js} +1 -1
- package/page/assets/{use-one-call-DIbYGoc1.js → use-one-call-BDdS64oW.js} +1 -1
- package/page/index.html +5 -5
- package/page/assets/browser-transport-BFjGvFHY.js +0 -47
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/studio-monaco-xfyfezQS.js","assets/editor.api-Cd3ViPQa.js","assets/preload-helper-DpV6A1kQ.js","assets/editor-DjpsE8to.css","assets/studio-monaco-CbKf90i6.css","assets/register-CDgivxvX.js","assets/studio-type-checker-xhy-9-yy.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,u as n}from"./themeProps-3IqahpCr.js";import{t as r}from"./preload-helper-DpV6A1kQ.js";import{Bt as i,D as a,T as o,Vt as s,Wn as c,k as l,pr as u}from"./tool-schema-BlUbzOu9.js";import{En as d,Sn as f,qt as p}from"./shaped-data-0GUF7Al3.js";import{S as m,U as h,_ as g,h as _,m as v,v as y,y as b}from"./tree-6F02tTxC.js";import{r as x}from"./live-ingress-lDUGPwth.js";import{n as S,t as C}from"./types-DN_oZAOJ.js";import{n as w}from"./stub-Bf9DC2iQ.js";import{F as T,M as E,k as ee,r as te}from"./workspace-MlrGUH2-.js";import{U as ne,_ as re}from"./index-
|
|
2
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,u as n}from"./themeProps-3IqahpCr.js";import{t as r}from"./preload-helper-DpV6A1kQ.js";import{Bt as i,D as a,T as o,Vt as s,Wn as c,k as l,pr as u}from"./tool-schema-BlUbzOu9.js";import{En as d,Sn as f,qt as p}from"./shaped-data-0GUF7Al3.js";import{S as m,U as h,_ as g,h as _,m as v,v as y,y as b}from"./tree-6F02tTxC.js";import{r as x}from"./live-ingress-lDUGPwth.js";import{n as S,t as C}from"./types-DN_oZAOJ.js";import{n as w}from"./stub-Bf9DC2iQ.js";import{F as T,M as E,k as ee,r as te}from"./workspace-MlrGUH2-.js";import{U as ne,_ as re}from"./index-D3Myde0v.js";var D=class extends Error{line;column;constructor(e,t,n){super(e),this.line=t,this.column=n}},ie=class{text;of;i=0;line=1;column=1;constructor(e,t=`profile`){this.text=e,this.of=t}get done(){return this.i>=this.text.length}pos(){return{line:this.line,column:this.column}}fail(e){throw new D(e,this.line,this.column)}peek(e=0){return this.text[this.i+e]??``}bump(){let e=this.text[this.i]??``;return this.i+=1,e===`
|
|
3
3
|
`?(this.line+=1,this.column=1):this.column+=1,e}skip(){for(;;){let e=this.peek();if(e===` `||e===` `||e===`
|
|
4
4
|
`||e===`\r`||e===``)this.bump();else if(e===`/`&&this.peek(1)===`/`)for(;!this.done&&this.peek()!==`
|
|
5
5
|
`;)this.bump();else if(e===`/`&&this.peek(1)===`*`){for(this.bump(),this.bump();!this.done&&(this.peek()!==`*`||this.peek(1)!==`/`);)this.bump();this.done&&this.fail(`This comment never closes.`),this.bump(),this.bump()}else return}}starts(e){return this.skip(),this.text.startsWith(e,this.i)}eat(e){if(!this.starts(e))return!1;for(let t=0;t<e.length;t+=1)this.bump();return!0}expect(e){this.eat(e)||this.fail(`Expected '${e}'.`)}ident(){this.skip();let e=this.peek();if(!/^[A-Za-z_$]/.test(e))return;let t=``;for(;/^[A-Za-z0-9_$]/.test(this.peek());)t+=this.bump();return t}expectIdent(){let e=this.ident();return e===void 0&&this.fail(`Expected a name.`),e}peekIdent(){return this.skip(),/^[A-Za-z_$][A-Za-z0-9_$]*/.exec(this.text.slice(this.i))?.[0]}rest(){return this.skip(),this.text.slice(this.i)}};function O(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function k(e){e.skip();let t=e.peek();t!==`'`&&t!==`"`&&e.fail(`Expected a string.`),e.bump();let n=``;for(;!e.done&&e.peek()!==t;){let t=e.bump();if(t!==`\\`){n+=t;continue}let r=e.bump(),i={n:`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{u as t}from"./themeProps-3IqahpCr.js";import{o as n}from"./index-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{u as t}from"./themeProps-3IqahpCr.js";import{o as n}from"./index-D3Myde0v.js";var r=e(t(),1);function i({payload:e,runtime:t=null,traces:i,onActivity:a},o,s){return(0,r.useMemo)(()=>{let r=t?s(e,t,{traces:i}):o(e,{traces:i});return a?n(r,a):r},[e,t,i,a,o,s])}export{i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,u as n}from"./themeProps-3IqahpCr.js";import{n as r,p as i,s as a}from"./browser-transport-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,u as n}from"./themeProps-3IqahpCr.js";import{n as r,p as i,s as a}from"./browser-transport-CYmonEpj.js";import{n as o,t as s}from"./labels-provider-BSiD6Lrb.js";import{a as c,t as l}from"./Banner-DqFqeJx4.js";import{c as u}from"./reader-CVFKFctz.js";import{p as d,u as f}from"./tree-6F02tTxC.js";import{S as p,a as m,f as h,h as g,i as _,o as v,p as y,r as b,s as x,t as S,v as C,x as w}from"./ConsoleFrame-CZvaA-nP.js";import{i as T,t as E}from"./use-one-call-BDdS64oW.js";import{J as D,Y as O,_ as k,h as A,l as j,v as M}from"./index-D3Myde0v.js";import{t as N}from"./studio-console-C1aZk0Nc.js";var P=(e,t,n,r)=>e.decide(n,t,r);function F(e){let{iface:t,describeFailure:n}=A(e),{call:r,...i}=E(e,`deciding`,P);return{iface:t,describeFailure:n,...i,decide:r}}var I=e(n(),1),L=t();function R(e,t){let n;try{n=JSON.parse(e)}catch{return{ok:!1,reason:`invalid_json`}}if(n===null)return{ok:!1,reason:`null_state`,state:n};let r=new TextEncoder().encode(JSON.stringify(n)).byteLength;return t!==void 0&&r>t?{ok:!1,reason:`too_large`,bytes:r,state:n}:{ok:!0,state:n,bytes:r}}function z(e,t,n,r){return t.ok?n===void 0?null:e(`@theorem.decision.state_size`,{size:r(t.bytes),limit:r(n)}):t.reason===`too_large`?e(`@theorem.decision.too_large`,{limit:r(n??0)}):e(t.reason===`invalid_json`?`@theorem.decision.invalid_json`:`@theorem.decision.null_state`)}function B(e){return e.failure||e.result?`settled`:e.status===`deciding`?`waiting`:`idle`}function V(e,t){let[n,r]=(0,I.useState)(e),i=R(n,t),[a,o]=(0,I.useState)(()=>i.state===void 0?`json`:`fields`);return{text:n,setText:r,check:i,shown:i.state===void 0?`json`:a,setView:o}}function H({form:e,iface:t,images:n,onImages:r,note:i,isRunning:a,onRun:s,onStop:c}){let l=o(),{text:u,setText:d,check:f,shown:m,setView:x}=e,S=t.questions.some(e=>e.type===`box`)||Object.keys(n).length>0,w=m===`fields`?f.state:void 0,T=p(w);return(0,L.jsxs)(_,{title:l(`@theorem.decision.state`),view:m,hasFields:f.state!==void 0,onView:x,onRun:s,children:[w===void 0?(0,L.jsx)(b,{label:l(`@theorem.decision.state`),text:u,isInvalid:!f.ok,onChange:d}):(0,L.jsx)(y,{value:{images:n,onImages:r},children:(0,L.jsx)(h,{label:l(`@theorem.decision.state`),value:w,onChange:e=>{d(JSON.stringify(e,null,2))}})}),S&&T?(0,L.jsx)(g,{onImages:e=>{let i=C(e,{images:n,host:t.images,state:T});r(i.images),d(JSON.stringify(i.state,null,2))}}):null,(0,L.jsx)(v,{note:i,isReady:f.ok,isRunning:a,runLabel:l(`@theorem.decision.decide`),runningLabel:l(`@theorem.decision.deciding`),stopLabel:l(`@theorem.decision.stop`),onRun:s,onStop:c})]})}function U({iface:e,decision:t,asked:n,onQuestion:r,questionText:i}){let a=o(),s=t.status===`deciding`;return(0,L.jsxs)(L.Fragment,{children:[t.failure?(0,L.jsx)(l,{status:`error`,role:`alert`,title:t.failure.error}):null,s&&!t.result?(0,L.jsx)(M,{label:a(`@theorem.decision.deciding`),since:t.startedAt}):null,t.result?(0,L.jsx)(T,{iface:e,result:t.result,asked:n,onQuestion:r,questionText:i,elapsedMs:t.elapsedMs,isStale:s}):null]})}function W(e,t,n,r,i){if(t===`idle`)return null;if(!e)return i;let a=t===`waiting`;return(0,L.jsx)(m,{label:n.answers,fill:a,children:a?(0,L.jsx)(M,{label:n.deciding,since:r}):i})}function G({transport:e,iface:t,decision:n,defaultState:r=`{}`,defaultImages:i,onQuestion:a,questionText:s,maxWidth:l=`960px`,trace:u,flush:d,columns:f=!1,className:p,style:m}){let h=o(),g=x(),_=V(r,t.maxStateBytes),{check:v}=_,[y,b]=(0,I.useState)(i??{}),[C,T]=(0,I.useState)(),E=c(t,e.traces,u);return(0,L.jsxs)(S,{inspector:E,maxWidth:l,flush:d,columns:f,requestLabel:h(`@theorem.decision.state`),className:p,style:m,children:[(0,L.jsx)(H,{form:_,iface:t,images:y,onImages:b,note:z(h,v,t.maxStateBytes,g),isRunning:n.status===`deciding`,onRun:()=>{if(!v.ok)return;let e=w(y,v.state);T({images:{...t.images,...e},state:v.state}),n.decide(v.state,Object.keys(e).length>0?e:void 0)},onStop:n.cancel}),W(f,B(n),{answers:h(`@theorem.decision.answers`),deciding:h(`@theorem.decision.deciding`)},n.startedAt,(0,L.jsx)(U,{iface:t,decision:n,asked:C,onQuestion:a,questionText:s}))]})}function K(e){let t=o(),n=F(e.transport);return n.describeFailure?(0,L.jsx)(k,{title:n.describeFailure.error}):n.iface?(0,L.jsx)(G,{...e,iface:n.iface,decision:n}):(0,L.jsx)(M,{label:t(`@theorem.chat.loading`)})}function q({endpoint:e,http:t,transport:n,theme:r,mode:i,labels:o,...c}){let l=(0,I.useRef)(t);l.current=t;let d=(0,I.useMemo)(()=>n??u({...l.current,endpoint:e}),[n,e]);return(0,L.jsx)(a,{theme:r,mode:i,children:(0,L.jsx)(s,{labels:o,children:(0,L.jsx)(K,{...c,transport:d})})})}var J;function Y(e){if(e.agentId===`pantry.jev`)return J??=O(),{defaultState:D,defaultImages:{...(0,I.use)(J)}};let{profile:t}=e;return{defaultState:(t.type===`decision`?Object.values(t.models)[0]:void 0)?.apiId.startsWith(`respan/`)?d:f}}function X(e){return typeof e==`string`?e:Array.isArray(e)?e.map(X).join(` `):Object.entries(e).map(([e,t])=>`${e}: ${X(t)}`).join(` `)}function Z(e){let t=N(e,i,r);return(0,L.jsx)(Q,{...e,transport:t})}function Q({payload:e,transport:t,trace:n,flush:r,columns:i,className:a}){let{open:o}=(0,I.useContext)(j),s=Y(e),{questions:c}=e,l=(0,I.useMemo)(()=>c&&Object.fromEntries(Object.entries(c).map(([e,t])=>[e,X(t.instructions)])),[c]);return(0,L.jsx)(q,{transport:t,...s,trace:n,flush:r,columns:i,className:a,onQuestion:o,questionText:l})}export{Q as DecisionView,Z as StudioDecision};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/embedding-space-view-BU2AjjAx.js","assets/rolldown-runtime-hePW80VL.js","assets/themeProps-3IqahpCr.js","assets/Text-BsiAsowd.js","assets/mergeProps-ptS-gIMz.js","assets/sharedResizeObserver-4U9Xq5Oq.js","assets/preload-helper-DpV6A1kQ.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,l as n,n as r,u as i}from"./themeProps-3IqahpCr.js";import{n as a,t as o}from"./SegmentedControlItem-BLuJOusN.js";import{t as s}from"./VStack-CkVMcNiK.js";import{n as c,t as l}from"./StackItem-CQviqAfM.js";import{M as u,m as d,r as f,s as p,u as m}from"./browser-transport-BFjGvFHY.js";import{t as h}from"./mergeProps-ptS-gIMz.js";import{g}from"./fieldParts-Cs6Amprh.js";import{t as _}from"./Icon-ZfFwTt8n.js";import{r as v,t as y}from"./IconButton-CG5klqF1.js";import{t as b}from"./Text-BsiAsowd.js";import{t as ee}from"./preload-helper-DpV6A1kQ.js";import{n as x,t as te}from"./labels-provider-BSiD6Lrb.js";import{t as ne}from"./Tooltip-CTEuMRLe.js";import{t as S}from"./createReactComponent-CZwsv6DD.js";import{n as re}from"./ScrollableArea-C8AVuqnt.js";import{a as ie,o as ae,s as oe,t as se}from"./Banner-CnPs4KTr.js";import{i as ce,t as le}from"./arrive-DvbqpeRS.js";import{t as ue}from"./IconFileText-6zOFKKrF.js";import{Et as de,It as fe,Rt as C}from"./reader-CVFKFctz.js";import{d as w,f as T}from"./tree-6F02tTxC.js";import{n as E}from"./encode-files-DZ4tVtEQ.js";import{t as pe}from"./useClipboard-B1amtN2V.js";import{a as me,i as D,m as O,n as he,o as k,r as A,s as j,t as ge}from"./ConsoleFrame-wtGxMrsA.js";import{i as _e,r as ve}from"./trace-patterns-CS99kExN.js";import{a as ye,n as be,r as xe,t as Se}from"./use-one-call-DIbYGoc1.js";import{S as Ce,_ as we,h as Te,p as Ee,v as De,x as Oe}from"./index-MqEkSrS5.js";import{t as ke}from"./studio-console-CE7YLrvN.js";var Ae=S(`outline`,`baseline-density-medium`,`BaselineDensityMedium`,[[`path`,{d:`M4 20h16`,key:`svg-0`}],[`path`,{d:`M4 12h16`,key:`svg-1`}],[`path`,{d:`M4 4h16`,key:`svg-2`}]]),je=S(`outline`,`csv`,`Csv`,[[`path`,{d:`M10 15a1 1 0 0 0 1 1h2a1 1 0 0 0 1 -1v-2a1 1 0 0 0 -1 -1h-2a1 1 0 0 1 -1 -1v-2a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1`,key:`svg-0`}],[`path`,{d:`M17 8l2 8l2 -8`,key:`svg-1`}],[`path`,{d:`M7 10a2 2 0 1 0 -4 0v4a2 2 0 1 0 4 0`,key:`svg-2`}]]),Me=S(`outline`,`pilcrow`,`Pilcrow`,[[`path`,{d:`M13 4v16`,key:`svg-0`}],[`path`,{d:`M17 4v16`,key:`svg-1`}],[`path`,{d:`M19 4h-9.5a4.5 4.5 0 0 0 0 9h3.5`,key:`svg-2`}]]),Ne=S(`outline`,`scissors`,`Scissors`,[[`path`,{d:`M3 7a3 3 0 1 0 6 0a3 3 0 1 0 -6 0`,key:`svg-0`}],[`path`,{d:`M3 17a3 3 0 1 0 6 0a3 3 0 1 0 -6 0`,key:`svg-1`}],[`path`,{d:`M8.6 8.6l10.4 10.4`,key:`svg-2`}],[`path`,{d:`M8.6 15.4l10.4 -10.4`,key:`svg-3`}]]);function Pe(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`text`?typeof t.text==`string`:typeof t.mimeType==`string`?t.type===`media`?typeof t.data==`string`:t.type===`media-ref`&&typeof t.uri==`string`:!1}function Fe(e){if(typeof e==`string`)return!0;if(typeof e!=`object`||!e)return!1;let t=e.parts;return Array.isArray(t)&&t.every(Pe)}function M(e){let t;try{t=JSON.parse(e)}catch{return}return Array.isArray(t)&&t.every(Fe)?t:void 0}function N(e){return typeof e==`string`?[{type:`text`,text:e}]:e.parts}function Ie(e){let t;try{t=JSON.parse(e)}catch{return}return Fe(t)?t:void 0}function Le(e){let t=N(e),n=t.filter(e=>e.type===`text`);return n.length>1?null:{text:n[0]?.text??``,media:t.filter(e=>e.type!==`text`)}}function Re(e){return e.media.length===0?e.text:{parts:[...e.text?[{type:`text`,text:e.text}]:[],...e.media]}}function ze(e){return e.type===`media`?{mimeType:e.mimeType,sizeBytes:C(e.data)}:{mimeType:e.mimeType}}function P(e,t){let n=[...e];if(n.length===0)return{ok:!1,reason:`no_inputs`};if(t.maxInputs!==void 0&&n.length>t.maxInputs)return{ok:!1,reason:`too_many_inputs`,max:t.maxInputs,inputs:n};let r=[];for(let[e,i]of n.entries()){let a=N(i);if(a.length===0||a.every(e=>e.type===`text`&&!e.text.trim()))return{ok:!1,reason:`empty_input`,index:e,inputs:n};if(!t.text&&a.some(e=>e.type===`text`&&e.text.trim()))return{ok:!1,reason:`text_off`,index:e,inputs:n};let o=[];for(let e of a)if(e.type!==`text`)try{o.push(ze(e))}catch{return{ok:!1,reason:`invalid_json`}}r.push(o)}let i=de(t,r);return i.length>0?{ok:!1,reason:`attachments`,issues:i,inputs:n}:{ok:!0,inputs:n}}function F(e,t){return(t===`whole`?[e]:t===`lines`?e.split(/\r?\n/):t===`paragraphs`?e.split(/\r?\n[^\S\r\n]*\r?\n/):t===`commas`?e.split(`,`):t.separator?e.split(t.separator):[e]).map(e=>e.trim()).filter(e=>e!==``)}function I(e){return e.type.startsWith(`text/`)||e.type===`application/json`||/\.(txt|md|markdown|csv|tsv|json)$/i.test(e.name)}function L(e,t,n=100){let r=[],i=[];for(let a of e){let e=[...i,a];i.length>0&&(e.length>n||!P(e,t).ok)?(r.push(i),i=[a]):i=e}return i.length>0&&r.push(i),r}function Be(e,t){if(!e||!t)return e??t;let n=(e,t)=>e===void 0&&t===void 0?void 0:(e??0)+(t??0),r=n(e.inputTokens,t.inputTokens),i=n(e.costUsd,t.costUsd);return{...r===void 0?{}:{inputTokens:r},...i===void 0?{}:{costUsd:i},...e.estimated||t.estimated?{estimated:!0}:{}}}function Ve(e,t){let n=0,r=0,i=0;for(let a=0;a<Math.min(e.length,t.length);a+=1)n+=e[a]*t[a],r+=e[a]*e[a],i+=t[a]*t[a];return r===0||i===0?0:n/Math.sqrt(r*i)}function He(e,t){return t.flatMap((t,n)=>t.length===e.length?[{index:n,score:Ve(e,t)}]:[]).sort((e,t)=>t.score-e.score)}var Ue=200,R=[0,0,0],We=3,Ge=1.4826;function z(e,t,n){let r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function B(e,t,n,r){let i=Array.from(r,(e,n)=>e-t[n]);return[0,1,2].map(t=>e[t]&&n[t]>1e-12?z(e[t],i,i.length)/n[t]:0)}function Ke(e,t,n){return[0,1,2].map(r=>{let i=e[r];if(!i||n.length===0)return 0;let a=n.reduce((e,n)=>{let r=z(i,Array.from(n,(e,n)=>e-t[n]),n.length);return e+r*r},0);return Math.sqrt(a/n.length)})}function qe(e,t,n){let r=Math.hypot(e[0],e[1],e[2]);if(r<1e-9||t<=0||n<=0)return R;let i=r/(r+t)/n/r;return[e[0]*i,e[1]*i,e[2]*i]}function Je(e,t){let n=new Float64Array(e.length*t);return e.forEach((e,r)=>{n.set(e,r*t)}),n}function*Ye(e,t,n){let r=new Float64Array(t*t),i=n-n%4;for(let a=0;a<t;a+=1){let o=a*n;for(let s=a;s<t;s+=1){let c=s*n,l=0,u=0,d=0,f=0;for(let t=0;t<i;t+=4)l+=e[o+t]*e[c+t],u+=e[o+t+1]*e[c+t+1],d+=e[o+t+2]*e[c+t+2],f+=e[o+t+3]*e[c+t+3];for(let t=i;t<n;t+=1)l+=e[o+t]*e[c+t];let p=l+u+d+f;r[a*t+s]=p,r[s*t+a]=p}yield}return r}function Xe(e,t){let n=new Float64Array(t),r=0;for(let i=0;i<t;i+=1){for(let r=0;r<t;r+=1)n[i]+=e[i*t+r];n[i]/=t,r+=n[i]}r/=t;let i=new Float64Array(t*t);for(let a=0;a<t;a+=1)for(let o=0;o<t;o+=1)i[a*t+o]=e[a*t+o]-n[a]-n[o]+r;return i}function Ze(e,t,n){let r=new Float64Array(t),i=0;for(let a=0;a<t;a+=1){let o=0;for(let r=0;r<t;r+=1)o+=e[a*t+r]*n[r];r[a]=o,i+=o*o}if(i=Math.sqrt(i),i<1e-12)return{next:n,length:0,moved:0};let a=0;for(let e=0;e<t;e+=1)r[e]/=i,a=Math.max(a,Math.abs(r[e]-n[e]));return{next:r,length:i,moved:a}}function Qe(e){let t=0;for(let n=1;n<e.length;n+=1)Math.abs(e[n])>Math.abs(e[t])&&(t=n);return e[t]<0?e.map(e=>-e):e}function*$e(e,t,n){let r=Float64Array.from({length:t},(e,t)=>1+(t*7919+n*104729)%97/97),i=0;for(let n=0;n<Ue;n+=1){let n=Ze(e,t,r);if(n.length===0||(i=n.length,r=n.next,n.moved<1e-12))break;yield}return{vector:Qe(r),value:i}}function*et(e,t,n){let r=Float64Array.from(e),i=[],a=Math.max(...Array.from({length:t},(e,n)=>Math.abs(r[n*t+n])),0);for(let e=0;e<Math.min(n,t);e+=1){let{vector:n,value:o}=yield*$e(r,t,e);if(o<=a*1e-9)break;i.push({vector:n,value:o});for(let e=0;e<t;e+=1)for(let i=0;i<t;i+=1)r[e*t+i]-=o*n[e]*n[i]}return i}function tt(e,t,n){let r=new Float64Array(n);for(let i=0;i<t;i+=1)for(let t=0;t<n;t+=1)r[t]+=e[i*n+t];for(let e=0;e<n;e+=1)r[e]/=Math.max(t,1);return r}function nt(e,t,n){let r=t.length,i=new Float64Array(r);for(let a=0;a<n.length;a+=1)for(let o=0;o<r;o+=1)i[o]+=n[a]*(e[a*r+o]-t[o]);let a=0;for(let e=0;e<r;e+=1)a+=i[e]*i[e];if(a=Math.sqrt(a),a>0)for(let e=0;e<r;e+=1)i[e]/=a;return i}function rt(e,t){let n=Array.from({length:t},(n,r)=>Math.sqrt(Math.max(e[r*t+r],0))),r=new Float64Array(t*t);for(let i=0;i<t;i+=1)for(let a=0;a<t;a+=1)r[i*t+a]=n[i]===0||n[a]===0?0:e[i*t+a]/(n[i]*n[a]);return r}function V(e){e.sort();let t=e.length>>1;return e.length%2?e[t]:(e[t-1]+e[t])/2}function H(e){let t=Float64Array.from(e);if(t.length===0)return 1/0;let n=V(t.slice()),r=Ge*V(t.map(e=>Math.abs(e-n)));return r>0?n+We*r:1/0}function it(e,t){let n=new Float64Array(t*(t-1)/2),r=0;for(let i=0;i<t;i+=1)for(let a=i+1;a<t;a+=1)n[r++]=e[i*t+a];return n}function*at(e,t,n){let r=[];for(let i=0;i<t;i+=1){for(let a=i+1;a<t;a+=1)e[i*t+a]>n&&r.push({a:i,b:a,similarity:e[i*t+a]});yield}return r}function ot(e,t,n){let r=-1;for(let i=0;i<t;i+=1)i!==n&&(r<0||e[n*t+i]>e[n*t+r])&&(r=i);return r}function*st(e,t,n){let r=new Set,i=[];for(let a=0;a<t;a+=1){let o=ot(e,t,a),[s,c]=a<o?[a,o]:[o,a];o>=0&&e[a*t+o]>n&&!r.has(s*t+c)&&(r.add(s*t+c),i.push({a:s,b:c,similarity:e[a*t+o]})),yield}return i.sort((e,t)=>e.a-t.a||e.b-t.b)}function ct(e,t){let n=Array.from({length:e},(e,t)=>t),r=e=>{for(;n[e]!==e;)n[e]=n[n[e]],e=n[e];return e};for(let e of t)n[r(e.a)]=r(e.b);let i=new Map;for(let t=0;t<e;t+=1){let e=r(t),n=i.get(e);n?n.push(t):i.set(e,[t])}return[...i.values()]}function lt(e,t,n){let r=Array(n).fill(0);for(let i of t)for(let t=0;t<n;t+=1)r[t]+=e[i*n+t];return r.map(e=>e/Math.max(t.length,1))}function U(e){return(Math.atan2(e[1],e[0])/(2*Math.PI)+1)%1}function*ut(e){let t=e[0]?.length??0,n=e.flatMap((e,n)=>e.length===t?[n]:[]),r=n.length,i=Je(n.map(t=>e[t]),t),a=tt(i,r,t),o=yield*Ye(i,r,t),s=(yield*et(Xe(o,r),r,3)).map(({vector:e})=>nt(i,a,e)),c=n.map(t=>e[t]),l=Ke(s,a,c),u=c.map(e=>B(s,a,l,e)),d=Float64Array.from(u,e=>Math.hypot(e[0],e[1],e[2])),f=r>0?V(d.slice()):0,p=f>1e-9?f:d.reduce((e,t)=>Math.max(e,t),0),m={mean:a,axes:s,spreads:l,scale:p,reach:d.reduce((e,t)=>Math.max(e,p>0?t/(t+p):0),0)},h=rt(o,r),g=H(it(h,r)),_=ct(r,yield*at(h,r,g)),v=yield*st(h,r,g),y=_.map(e=>({members:e.map(e=>n[e]),tone:U(W(m,lt(i,e,t)))}));for(let[n,r]of e.entries())r.length!==t&&y.push({members:[n],tone:U(R)});let b=new Map(y.flatMap((e,t)=>e.members.map(e=>[e,t])));return{documents:e.map((e,n)=>({index:n,position:e.length===t?W(m,e):R,cluster:b.get(n)??0})),clusters:y,links:v.map(e=>({...e,a:n[e.a],b:n[e.b]})),threshold:g,basis:m,dimensions:t}}var dt=8;async function ft(e,t){let n=ut(e);for(;;){let e=performance.now()+dt;for(;;){let t=n.next();if(t.done)return t.value;if(performance.now()>=e)break}await new Promise(e=>setTimeout(e,0)),t?.throwIfAborted()}}function pt(e,t){return t.length!==e.dimensions||e.dimensions===0?null:W(e.basis,t)}function W(e,t){return qe(B(e.axes,e.mean,e.spreads,t),e.scale,e.reach)}var G=(e,t)=>({from:e,input:{parts:[{type:`media`,mimeType:`image/png`,data:t}]}}),mt=[...[`Refunds are available within 14 days of a charge, in full and to the original card.`,`After 14 days a refund is made as credit toward the next invoice, not as money back.`,`Refunds take five to ten working days to reach your bank, depending on the card issuer.`].map(e=>({input:e,from:`refund-policy.md`})),G(`empty-trash-dialog.png`,`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`),G(`desktop-stacks.png`,`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`),G(`lisbon-tram-28.png`,`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`)],K=e(i(),1);async function ht(e,t,n,r,i){let a=L(n,r),o=[],s=``,c;i({done:0,total:a.length});for(let[n,r]of a.entries()){let l=await e.embed(r,{task:`document`},t);for(let t of l.traces??[])e.traces?.push(t);o.push(...l.result.embeddings.map(e=>e.values)),s=l.result.model,c=Be(c,l.result.usage),i({done:n+1,total:a.length})}return{result:{inputs:n,vectors:o,model:s,...c?{usage:c}:{},requests:a.length}}}function gt(e){let[t,n]=(0,K.useState)(null),{call:r,...i}=Se(e,`indexing`,ht);return{...i,progress:i.status===`indexing`?t:null,index:(e,t)=>r(e,t,n)}}var _t=(e,t,n,r)=>e.embed(n,r,t);function vt(e){let{iface:t,describeFailure:n}=Te(e),{call:r,...i}=Se(e,`embedding`,_t);return{iface:t,describeFailure:n,...i,embed:r}}var q=t(),yt={span:{k7Eaqz:`xeuugli`,k1xSpc:`xrvj5dj`,kZKoxP:`x5yr21d`,$$css:!0}};function J({columns:e,rows:t,xstyle:i,className:a,style:o,children:s,ref:c,...l}){let u={...e!=null&&{gridColumn:e===`full`?`1 / -1`:`span ${e}`},...t!=null&&{gridRow:`span ${t}`}};return(0,q.jsx)(`div`,{ref:c,...h(r(`grid-span`),n(yt.span,i),a,{...o,...u}),...l,children:s})}J.displayName=`GridSpan`;var bt=[{value:`whole`,icon:(0,q.jsx)(ue,{size:16})},{value:`paragraphs`,icon:(0,q.jsx)(Me,{size:16})},{value:`lines`,icon:(0,q.jsx)(Ae,{size:16})},{value:`commas`,icon:(0,q.jsx)(je,{size:16})},{value:`custom`,icon:(0,q.jsx)(Ne,{size:16})}],xt={invalid_json:`@theorem.embedding.empty`,no_inputs:`@theorem.embedding.empty`,empty_input:`@theorem.embedding.empty`,text_off:`@theorem.embedding.text_off`};function Y(e,t,n){return t.ok?null:t.reason===`attachments`?`${n}: ${t.issues.map(e=>fe(e)).join(` `)}`:t.reason===`too_many_inputs`?e(`@theorem.embedding.too_many`,{max:t.max}):e(xt[t.reason],{name:n})}function St(e,t,n=[]){let r=x(),[i,a]=(0,K.useState)(e),[o,s]=(0,K.useState)(`paragraphs`),[c,l]=(0,K.useState)(``),[u,d]=(0,K.useState)(()=>[...n]),[f,p]=(0,K.useState)(`fields`),[m,h]=(0,K.useState)(null),g=o===`custom`?{separator:c}:o,_=(0,K.useMemo)(()=>[...F(i,o===`custom`?{separator:c}:o).map(e=>({input:e})),...u],[i,o,c,u]),v=(0,K.useMemo)(()=>_.map(e=>e.input),[_]),y=(0,K.useMemo)(()=>f===`json`?m??JSON.stringify(v,null,2):``,[f,m,v]),b=m!==null&&M(m)===void 0;return{text:i,setText:a,choice:o,setChoice:s,separator:c,setSeparator:l,documents:_,inputs:v,issue:(0,K.useMemo)(()=>{for(let[e,n]of v.entries()){let i=Y(r,P([n],t),r(`@theorem.embedding.document`,{number:e+1}));if(i)return i}return null},[v,t,r]),requests:(0,K.useMemo)(()=>L(v,t).length,[v,t]),view:f,setView:e=>{h(null),p(e)},json:y,jsonInvalid:b,setJson:e=>{h(e);let t=M(e);t!==void 0&&(a(``),d(t.map(e=>({input:e}))))},addFiles:async e=>{let t=e.filter(I),n=e.filter(e=>!I(e)),r=await Promise.all(t.map(async e=>F(await e.text(),g).map(t=>({input:t,from:e.name})))),i=await E(n);d(e=>[...e,...r.flat(),...i.map(({name:e,mimeType:t,data:n})=>({input:{parts:[{type:`media`,mimeType:t,data:n}]},from:e}))])},remove:e=>{let t=_.length-u.length;d(n=>n.filter((n,r)=>!e.includes(r+t)))},fromText:_.length-u.length}}function X(e){return typeof e==`string`?void 0:e.parts.find(e=>e.type!==`text`)}function Ct(e){return typeof e==`string`?e:e.parts.flatMap(e=>e.type===`text`?[e.text]:[]).join(` `)}function wt(e,t,n,r){let i=X(n.input),a=Ct(n.input);if(!i)return{label:a,detail:null};let o=i.type===`media`?t(C(i.data)):e(`@theorem.embedding.held_file`);return{label:a||(n.from??e(`@theorem.embedding.document`,{number:r})),detail:`${i.mimeType} · ${o}`}}function Tt({label:e,placeholder:t,accept:n,isMultiple:r=!1,onFiles:i}){let a=x(),[o,s]=(0,K.useState)(null);return(0,q.jsx)(Oe,{label:e,isLabelHidden:!0,mode:`dropzone`,isMultiple:r,accept:n.join(`,`),value:null,placeholder:t,status:o?{type:`error`,message:o}:void 0,onChange:e=>{let t=e===null?[]:Array.isArray(e)?e:[e];t.length!==0&&(s(null),i(t).catch(()=>{s(a(`@theorem.embedding.unreadable`,{name:t.map(e=>e.name).join(`, `)}))}))}})}function Et({form:e}){let t=x();return(0,q.jsxs)(c,{gap:2,vAlign:`center`,wrap:`wrap`,children:[(0,q.jsx)(b,{type:`supporting`,color:`secondary`,children:t(`@theorem.embedding.split`)}),(0,q.jsx)(a,{label:t(`@theorem.embedding.split`),size:`sm`,value:e.choice,onChange:t=>{e.setChoice(t)},children:bt.map(({value:e,icon:n})=>{let r=t(`@theorem.embedding.split_${e}`);return(0,q.jsx)(ne,{content:r,children:(0,q.jsx)(o,{value:e,label:r,icon:n,isLabelHidden:!0})},e)})}),e.choice===`custom`?(0,q.jsx)(l,{size:`fill`,children:(0,q.jsx)(re,{label:t(`@theorem.embedding.separator`),isLabelHidden:!0,placeholder:t(`@theorem.embedding.separator`),size:`sm`,value:e.separator,onChange:e.setSeparator})}):null]})}var Z=3;function Dt(e,t){let n=new Map;for(let[r,i]of e.documents.entries()){if(X(i.input)||r<e.fromText)continue;let a=i.from?t(`@theorem.embedding.from_file`,{name:i.from}):t(`@theorem.embedding.from_json`),o=n.get(a)??{source:a,at:[]};o.at.push(r),n.set(a,o)}return[...n.values()]}function Ot({group:e,form:t}){let n=x();return(0,q.jsxs)(s,{gap:1,children:[(0,q.jsxs)(c,{gap:1,vAlign:`center`,children:[(0,q.jsx)(l,{size:`fill`,children:(0,q.jsx)(b,{type:`supporting`,color:`secondary`,children:n(`@theorem.embedding.group`,{source:e.source,count:e.at.length})})}),(0,q.jsx)(y,{label:n(`@theorem.embedding.remove`,{name:e.source}),size:`sm`,variant:`ghost`,icon:(0,q.jsx)(g,{size:14}),onClick:()=>{t.remove(e.at)}})]}),e.at.slice(0,Z).map(e=>(0,q.jsx)(b,{maxLines:2,children:Ct(t.documents[e]?.input??``)},String(e))),e.at.length>Z?(0,q.jsx)(b,{type:`supporting`,color:`secondary`,children:n(`@theorem.embedding.more`,{count:e.at.length-Z})}):null]})}function kt({part:e,name:t,label:n,onRemove:r}){let i=e.type===`media`&&e.mimeType.startsWith(`image/`);return(0,q.jsxs)(s,{gap:1,hAlign:`center`,style:{width:At,flexShrink:0},children:[(0,q.jsx)(m,{...i&&e.type===`media`?{src:`data:${e.mimeType};base64,${e.data}`}:{},alt:``,label:n,onRemove:r}),(0,q.jsx)(b,{type:`supporting`,color:`secondary`,maxLines:1,style:{width:`100%`,textAlign:`center`},children:t??e.mimeType})]})}var At=72,jt=new WeakMap,Mt=0;function Nt(e){let t=jt.get(e);return t===void 0&&(t=Mt,Mt+=1,jt.set(e,t)),String(t)}function Pt({form:e}){let t=x(),n=j(),r=e.documents.flatMap((e,t)=>{let n=X(e.input);return n?[{document:e,part:n,at:t}]:[]});return r.length===0?null:(0,q.jsx)(c,{gap:2,wrap:`nowrap`,style:{overflowX:`auto`},children:r.map(({document:r,part:i,at:a})=>{let{label:o,detail:s}=wt(t,n,r,a+1);return(0,q.jsx)(kt,{name:r.from,part:i,label:[o,s].filter(Boolean).join(` · `),onRemove:()=>{e.remove([a])}},Nt(r))})})}function Ft({form:e}){let t=Dt(e,x());return t.length===0&&e.documents.length===0?null:(0,q.jsxs)(s,{gap:3,children:[t.map(t=>(0,q.jsx)(Ot,{group:t,form:e},t.source)),(0,q.jsx)(Pt,{form:e})]})}function It({text:e,file:t}){return!e||!t?(0,q.jsx)(q.Fragment,{children:e??t}):(0,q.jsxs)(Ee,{columns:3,gap:3,children:[(0,q.jsx)(J,{columns:2,children:e}),(0,q.jsx)(J,{columns:1,children:t})]})}function Lt(e){let t=e.text?[`text/*`,`.md`,`.csv`,`.json`]:[];return[...e.attachments?.accept??[],...t]}function Rt({form:e}){let t=x();return(0,q.jsxs)(s,{gap:3,children:[(0,q.jsx)(Ce,{label:t(`@theorem.embedding.text`),isLabelHidden:!0,value:e.text,placeholder:t(`@theorem.embedding.text_placeholder`),rows:O(e.text,4,12),onChange:e.setText}),(0,q.jsx)(Et,{form:e})]})}function zt({form:e,rules:t}){let n=x(),r=Lt(t),i=r.length>0?(0,q.jsx)(Tt,{label:n(`@theorem.embedding.files`),placeholder:n(`@theorem.embedding.drop_files`),accept:r,isMultiple:!0,onFiles:e.addFiles}):null;return(0,q.jsxs)(s,{gap:3,children:[(0,q.jsx)(It,{text:t.text?(0,q.jsx)(Rt,{form:e}):null,file:i}),(0,q.jsx)(Ft,{form:e})]})}function Bt(e,t){return t.jsonInvalid?e(`@theorem.embedding.invalid_json`):t.inputs.length===0?e(`@theorem.embedding.no_documents`):t.issue??e(`@theorem.embedding.ready`,{count:t.inputs.length,requests:t.requests})}function Vt({form:e,rules:t,isRunning:n,onRun:r,onStop:i}){let a=x(),o=!e.jsonInvalid&&e.inputs.length>0&&e.issue===null;return(0,q.jsxs)(D,{title:a(`@theorem.embedding.documents`),view:e.view,hasFields:!0,onView:e.setView,onRun:r,children:[e.view===`fields`?(0,q.jsx)(zt,{form:e,rules:t}):(0,q.jsx)(A,{label:a(`@theorem.embedding.documents`),text:e.json,isInvalid:e.jsonInvalid,onChange:e.setJson}),(0,q.jsx)(k,{note:Bt(a,e),isReady:o,isRunning:n,runLabel:a(`@theorem.embedding.index`),runningLabel:a(`@theorem.embedding.indexing`),stopLabel:a(`@theorem.embedding.stop`),onRun:r,onStop:i})]})}function Ht(e,t){let n=x(),[r,i]=(0,K.useState)(()=>JSON.stringify(e)),a=Ie(r),o=a===void 0?null:Le(a),[s,c]=(0,K.useState)(`fields`);return{json:r,setJson:i,input:a,fields:o,issue:a===void 0?n(`@theorem.embedding.query_invalid_json`):Y(n,P([a],t),n(`@theorem.embedding.query`)),shown:o===null?`json`:s,setView:c,setFields:e=>{i(JSON.stringify(Re(e),null,2))}}}function Ut({fields:e,accept:t,onChange:n}){let r=x(),i=j(),a=e.media[0];if(a){let t=a.type===`media`?i(C(a.data)):r(`@theorem.embedding.held_file`);return(0,q.jsx)(kt,{part:a,label:[a.mimeType,t].join(` · `),onRemove:()=>{n({...e,media:[]})}})}return t?(0,q.jsx)(Tt,{label:r(`@theorem.embedding.query_file`),placeholder:r(`@theorem.embedding.query_file`),accept:t,onFiles:async t=>{let r=await E(t);n({...e,media:r.map(({mimeType:e,data:t})=>({type:`media`,mimeType:e,data:t}))})}}):null}function Wt({fields:e,rules:t,onChange:n}){let r=x(),i=t.attachments?.accept,a=t.text?(0,q.jsx)(Ce,{label:r(`@theorem.embedding.query`),isLabelHidden:!0,value:e.text,placeholder:r(`@theorem.embedding.query_placeholder`),rows:O(e.text,2,6),onChange:t=>{n({...e,text:t})}}):null,o=e.media.length>0||i!==void 0?(0,q.jsx)(Ut,{fields:e,accept:i,onChange:n}):null;return(0,q.jsx)(It,{text:a,file:o})}function Gt(e,t,n,r){return r?t.issue?t.issue:n===`stale`?e(`@theorem.embedding.stale`):n===`model`?e(`@theorem.embedding.remodelled`):null:null}function Kt({form:e,rules:t,index:n,isRunning:r,onRun:i,onStop:a}){let o=x(),{input:s}=e,c=e.issue===null&&n===`fresh`&&s!==void 0,[l,u]=(0,K.useState)(!1),d=()=>{u(!0),c&&i(s)};return(0,q.jsxs)(D,{title:o(`@theorem.embedding.query`),view:e.shown,hasFields:e.fields!==null,onView:e.setView,onRun:d,children:[e.shown===`fields`&&e.fields!==null?(0,q.jsx)(Wt,{fields:e.fields,rules:t,onChange:e.setFields}):(0,q.jsx)(A,{label:o(`@theorem.embedding.query`),text:e.json,isInvalid:s===void 0,onChange:e.setJson}),(0,q.jsx)(k,{note:Gt(o,e,n,l),isReady:c||!l,isRunning:r,runLabel:o(`@theorem.embedding.search`),runningLabel:o(`@theorem.embedding.searching`),stopLabel:o(`@theorem.embedding.stop`),onRun:d,onStop:a})]})}var qt=(0,K.lazy)(()=>ee(()=>import(`./embedding-space-view-BU2AjjAx.js`).then(e=>({default:e.EmbeddingSpaceView})),__vite__mapDeps([0,1,2,3,4,5,6]))),Jt=10,Yt=460,Xt=4,Q={listStyle:`none`,margin:0,padding:0,display:`flex`,flexDirection:`column`,gap:12},Zt=`var(--color-background-muted)`;function $({failure:e}){return e?(0,q.jsx)(se,{status:`error`,role:`alert`,title:e.error}):null}function Qt(e,t){let n=x(),r=j();return i=>wt(n,r,t[i]??{input:e[i]},i+1).label}function $t({matches:e,index:t,documents:n,pointing:r}){let i=x(),a=ye(),o=Qt(t.inputs,n),u=e[0];if(!u)return(0,q.jsx)(se,{status:`warning`,title:i(`@theorem.embedding.no_matches`)});let d=e.slice(0,Jt);return(0,q.jsx)(ve,{title:i(`@theorem.embedding.matches`),value:a.decimal.format(u.score),note:e.length>d.length?i(`@theorem.embedding.matches_shown`,{shown:d.length,count:e.length}):i(`@theorem.embedding.best`,{name:o(u.index)}),children:(0,q.jsx)(`ul`,{style:Q,children:d.map((e,t)=>{let n=o(e.index),i=a.decimal.format(e.score);return(0,q.jsx)(`li`,{"aria-label":`${n}: ${i}`,onPointerEnter:()=>r.onHover(e.index),onPointerLeave:()=>r.onHover(null),style:{borderRadius:`var(--radius-container)`,margin:`-4px -8px`,padding:`4px 8px`,background:r.hovered===e.index?Zt:void 0},children:(0,q.jsxs)(s,{gap:1,children:[(0,q.jsxs)(c,{gap:3,vAlign:`start`,"aria-hidden":!0,children:[(0,q.jsx)(l,{size:`fill`,children:(0,q.jsx)(b,{type:`supporting`,maxLines:2,children:n})}),(0,q.jsx)(b,{type:`supporting`,color:`secondary`,hasTabularNumbers:!0,children:i})]}),(0,q.jsx)(xe,{value:Math.max(e.score,0),isLead:t===0})]})},e.index)})})})}function en({text:e,label:t,isIcon:n}){let r=x()(`@theorem.embedding.copied`),{copy:i,isCopied:a}=pe({announce:r}),o=a?r:t;return n?(0,q.jsx)(y,{label:o,tooltip:o,size:`sm`,variant:`ghost`,icon:(0,q.jsx)(_,{icon:a?oe:ae,size:`xsm`,color:`secondary`}),onClick:()=>void i(e)}):(0,q.jsx)(v,{label:o,size:`sm`,variant:`ghost`,onClick:()=>void i(e)})}function tn({vectors:e,name:t,pointing:n}){let r=x(),i=(0,K.useMemo)(()=>JSON.stringify(e),[e]);return(0,q.jsxs)(s,{gap:2,children:[(0,q.jsxs)(c,{gap:2,vAlign:`center`,children:[(0,q.jsx)(l,{size:`fill`,children:(0,q.jsx)(b,{type:`supporting`,color:`secondary`,children:r(`@theorem.embedding.width`,{dimensions:e[0]?.length??0})})}),(0,q.jsx)(en,{text:i,label:r(`@theorem.embedding.copy_vectors`)})]}),(0,q.jsx)(`ul`,{style:{...Q,gap:0,maxHeight:Yt,overflowY:`auto`},children:ce(e,e=>e.slice(0,8).join()).map(({item:e,index:i,key:a})=>(0,q.jsx)(`li`,{onPointerEnter:()=>n.onHover(i),onPointerLeave:()=>n.onHover(null),style:{borderRadius:`var(--radius-container)`,padding:`4px 8px`,background:n.hovered===i?Zt:void 0},children:(0,q.jsxs)(c,{gap:2,vAlign:`center`,children:[(0,q.jsx)(l,{size:`fill`,children:(0,q.jsxs)(s,{gap:0,children:[(0,q.jsx)(b,{type:`supporting`,maxLines:1,children:t(i)}),(0,q.jsx)(b,{type:`supporting`,color:`secondary`,maxLines:1,hasTabularNumbers:!0,children:`[${e.slice(0,Xt).map(e=>e.toFixed(4)).join(`, `)}${e.length>Xt?`, …`:``}]`})]})}),(0,q.jsx)(en,{text:JSON.stringify(e),label:r(`@theorem.embedding.copy_vector`),isIcon:!0})]})},a))})]})}function nn(e){let[t,n]=(0,K.useState)(null);return(0,K.useEffect)(()=>{let t=new AbortController;return ft(e,t.signal).then(t=>n({of:e,space:t}),()=>{}),()=>t.abort()},[e]),t?.of===e?t.space:null}function rn(e){let t=H(e.map(e=>e.score));return e.slice(0,Jt).filter(e=>e.score>t).map(e=>({index:e.index,closeness:t<1?Math.min((e.score-t)/(1-t),1):1}))}var an={width:`100%`,aspectRatio:`1 / 1`,maxHeight:Yt};function on({space:e,query:t,matches:n,name:r,pointing:i,onUnavailable:a}){let o=x(),s=(0,K.useMemo)(()=>e&&t?pt(e,t):null,[e,t]),c=(0,K.useMemo)(()=>s?rn(n):[],[s,n]);if(!e)return(0,q.jsx)(`div`,{style:an});let l=o(`@theorem.embedding.space_label`,{count:e.documents.length});return(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(`div`,{style:an}),children:(0,q.jsx)(qt,{space:e,query:s,matches:c,hovered:i.hovered,onHover:i.onHover,nameOf:r,label:s?`${l} ${o(`@theorem.embedding.space_query`)}`:l,onUnavailable:a})})}function sn({view:e,onChange:t}){let n=x();return(0,q.jsxs)(a,{label:n(`@theorem.embedding.view`),size:`sm`,value:e,onChange:e=>t(e===`list`?`list`:`space`),children:[(0,q.jsx)(o,{value:`space`,label:n(`@theorem.embedding.space`)}),(0,q.jsx)(o,{value:`list`,label:n(`@theorem.embedding.list`)})]})}function cn({vectors:e,name:t,pointing:n,isDrawable:r}){let i=x();return(0,q.jsxs)(s,{gap:2,children:[r?null:(0,q.jsx)(b,{type:`supporting`,color:`secondary`,children:i(`@theorem.embedding.space_off`)}),(0,q.jsx)(tn,{vectors:e,name:t,pointing:n})]})}function ln({run:e,result:t,documents:n,query:r,matches:i,pointing:a}){let o=x(),[c,l]=(0,K.useState)(`space`),[u,d]=(0,K.useState)(!0),f=nn(t.vectors),p=Qt(t.inputs,n);return(0,q.jsxs)(s,{gap:4,children:[(0,q.jsx)($,{failure:e.failure}),(0,q.jsx)(be,{model:t.model,usage:t.usage,elapsedMs:e.elapsedMs,tokens:e=>o(`@theorem.embedding.tokens`,{count:e}),children:(0,q.jsx)(_e,{title:o(`@theorem.embedding.index`),value:o(`@theorem.embedding.indexed`,{count:t.vectors.length}),aside:u?(0,q.jsx)(sn,{view:c,onChange:l}):null,children:u&&c===`space`?(0,q.jsx)(on,{space:f,query:r,matches:i,name:p,pointing:a,onUnavailable:()=>d(!1)}):(0,q.jsx)(cn,{vectors:t.vectors,name:p,pointing:a,isDrawable:u})})})]})}function un(e){let{result:t,failure:n}=e.run;return t?(0,q.jsx)(ln,{...e,result:t}):(0,q.jsx)($,{failure:n})}function dn({index:e,search:t,documents:n,matches:r,pointing:i}){let a=x(),o=t.result?.embeddings[0]?.values;return(0,q.jsxs)(s,{gap:4,children:[(0,q.jsx)($,{failure:t.failure}),o&&e.result?(0,q.jsx)(be,{model:t.result?.model??``,usage:t.result?.usage,elapsedMs:t.elapsedMs,isStale:t.status===`embedding`,tokens:e=>a(`@theorem.embedding.tokens`,{count:e}),children:(0,q.jsx)(le,{children:(0,q.jsx)($t,{matches:r,index:e.result,documents:n,pointing:i})})}):null]})}function fn(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function pn(e,t,n){return e?t&&t.model!==e.model?`model`:fn(e.inputs,n)?`fresh`:`stale`:`fresh`}function mn(e){return e.status===`indexing`?`indexing`:e.result!==null||e.failure!==null?`indexed`:`idle`}function hn(e,t,n,r){return n===`idle`?null:e?(0,q.jsx)(me,{label:t,fill:n===`indexing`,children:r}):r}function gn({index:e}){let t=x(),{progress:n}=e;return(0,q.jsx)(De,{label:n?t(`@theorem.embedding.indexing_progress`,{done:Math.min(n.done+1,n.total),total:n.total}):t(`@theorem.embedding.indexing`),since:e.startedAt})}function _n(e,t,n){let r=pn(e.result,t.result,n);return r===`model`?{state:r,searched:!1,queried:null}:{state:r,searched:t.status!==`idle`||t.result!==null,queried:t.result?.embeddings[0]?.values??null}}function vn({iface:e,index:t,search:n,query:r,indexed:i,state:a,searched:o,matches:c,pointing:l}){return(0,q.jsxs)(he,{children:[(0,q.jsx)(Kt,{form:r,rules:e.inputs,index:a,isRunning:n.status===`embedding`,onRun:e=>{n.embed([e],{task:`query`})},onStop:n.cancel}),o?(0,q.jsx)(s,{padding:4,children:(0,q.jsx)(dn,{index:t,search:n,documents:i,matches:c,pointing:l})}):null]})}function yn({inputs:e,...t}){let{index:n,indexed:r}=t,{state:i,searched:a,queried:o}=_n(n,t.search,e),c=n.result?.vectors,l=(0,K.useMemo)(()=>o&&c?He(o,c):[],[o,c]),[u,d]=(0,K.useState)(null),f=(0,K.useMemo)(()=>({hovered:u,onHover:d}),[u]);return(0,q.jsxs)(s,{gap:3,children:[(0,q.jsx)(un,{run:n,documents:r,query:o,matches:l,pointing:f}),n.result?(0,q.jsx)(vn,{...t,state:i,searched:a,matches:l,pointing:f}):null]})}function bn({transport:e,iface:t,search:n,defaultText:r=``,defaultDocuments:i,defaultQuery:a=``,maxWidth:o=`960px`,trace:s,flush:c,columns:l=!1,className:u,style:d}){let f=x(),p=St(r,t.inputs,i),m=Ht(a,t.inputs),h=gt(e),[g,_]=(0,K.useState)([]),v=ie(t,e.traces,s),y=()=>{p.jsonInvalid||p.issue||p.inputs.length===0||(_(p.documents),h.index(p.inputs,t.inputs))},b=mn(h);return(0,q.jsxs)(ge,{inspector:v,maxWidth:o,flush:c,columns:l,requestLabel:f(`@theorem.embedding.documents`),className:u,style:d,children:[(0,q.jsx)(Vt,{form:p,rules:t.inputs,isRunning:b===`indexing`,onRun:y,onStop:h.cancel}),hn(l,f(`@theorem.embedding.results`),b,b===`indexing`?(0,q.jsx)(gn,{index:h}):(0,q.jsx)(yn,{iface:t,index:h,search:n,query:m,indexed:g,inputs:p.inputs}))]})}function xn(e){let t=x(),n=vt(e.transport);return n.describeFailure?(0,q.jsx)(we,{title:n.describeFailure.error}):n.iface?(0,q.jsx)(bn,{...e,iface:n.iface,search:n}):(0,q.jsx)(De,{label:t(`@theorem.chat.loading`)})}function Sn({endpoint:e,http:t,transport:n,theme:r,mode:i,labels:a,...o}){let s=(0,K.useRef)(t);s.current=t;let c=(0,K.useMemo)(()=>n??u({...s.current,endpoint:e}),[n,e]);return(0,q.jsx)(p,{theme:r,mode:i,children:(0,q.jsx)(te,{labels:a,children:(0,q.jsx)(xn,{...o,transport:c})})})}function Cn(e,t){return e.some(e=>e===t||e.endsWith(`/*`)&&t.startsWith(e.slice(0,-1)))}function wn(e){if(e.type!==`embedding`)return{defaultText:T,defaultQuery:w};let{text:t,attachments:n}=e.inputs,r=mt.filter(({input:e})=>typeof e==`string`?t!==!1:Cn(n?.accept??[],`image/png`));return{defaultText:t===!1?``:T,defaultQuery:t===!1?``:w,defaultDocuments:r}}function Tn(e){let t=ke(e,d,f);return(0,q.jsx)(En,{...e,transport:t})}function En({payload:e,transport:t,trace:n,flush:r,columns:i,className:a}){return(0,q.jsx)(Sn,{transport:t,...wn(e.profile),trace:n,flush:r,columns:i,className:a})}export{En as EmbeddingView,Tn as StudioEmbedding};
|
|
2
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{c as t,l as n,n as r,u as i}from"./themeProps-3IqahpCr.js";import{n as a,t as o}from"./SegmentedControlItem-BLuJOusN.js";import{t as s}from"./VStack-CkVMcNiK.js";import{n as c,t as l}from"./StackItem-CQviqAfM.js";import{M as u,m as d,r as f,s as p,u as m}from"./browser-transport-CYmonEpj.js";import{t as h}from"./mergeProps-ptS-gIMz.js";import{g}from"./fieldParts-Cs6Amprh.js";import{t as _}from"./Icon-ZfFwTt8n.js";import{r as v,t as y}from"./IconButton-CG5klqF1.js";import{t as b}from"./Text-BsiAsowd.js";import{t as ee}from"./preload-helper-DpV6A1kQ.js";import{n as x,t as te}from"./labels-provider-BSiD6Lrb.js";import{t as ne}from"./Tooltip-CTEuMRLe.js";import{t as S}from"./createReactComponent-CZwsv6DD.js";import{n as re}from"./ScrollableArea-C8AVuqnt.js";import{a as ie,o as ae,s as oe,t as se}from"./Banner-DqFqeJx4.js";import{i as ce,t as le}from"./arrive-DvbqpeRS.js";import{t as ue}from"./IconFileText-6zOFKKrF.js";import{Et as de,It as fe,Rt as C}from"./reader-CVFKFctz.js";import{d as w,f as T}from"./tree-6F02tTxC.js";import{n as E}from"./encode-files-DZ4tVtEQ.js";import{t as pe}from"./useClipboard-B1amtN2V.js";import{a as me,i as D,m as O,n as he,o as k,r as A,s as j,t as ge}from"./ConsoleFrame-CZvaA-nP.js";import{i as _e,r as ve}from"./trace-patterns-CS99kExN.js";import{a as ye,n as be,r as xe,t as Se}from"./use-one-call-BDdS64oW.js";import{S as Ce,_ as we,h as Te,p as Ee,v as De,x as Oe}from"./index-D3Myde0v.js";import{t as ke}from"./studio-console-C1aZk0Nc.js";var Ae=S(`outline`,`baseline-density-medium`,`BaselineDensityMedium`,[[`path`,{d:`M4 20h16`,key:`svg-0`}],[`path`,{d:`M4 12h16`,key:`svg-1`}],[`path`,{d:`M4 4h16`,key:`svg-2`}]]),je=S(`outline`,`csv`,`Csv`,[[`path`,{d:`M10 15a1 1 0 0 0 1 1h2a1 1 0 0 0 1 -1v-2a1 1 0 0 0 -1 -1h-2a1 1 0 0 1 -1 -1v-2a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1`,key:`svg-0`}],[`path`,{d:`M17 8l2 8l2 -8`,key:`svg-1`}],[`path`,{d:`M7 10a2 2 0 1 0 -4 0v4a2 2 0 1 0 4 0`,key:`svg-2`}]]),Me=S(`outline`,`pilcrow`,`Pilcrow`,[[`path`,{d:`M13 4v16`,key:`svg-0`}],[`path`,{d:`M17 4v16`,key:`svg-1`}],[`path`,{d:`M19 4h-9.5a4.5 4.5 0 0 0 0 9h3.5`,key:`svg-2`}]]),Ne=S(`outline`,`scissors`,`Scissors`,[[`path`,{d:`M3 7a3 3 0 1 0 6 0a3 3 0 1 0 -6 0`,key:`svg-0`}],[`path`,{d:`M3 17a3 3 0 1 0 6 0a3 3 0 1 0 -6 0`,key:`svg-1`}],[`path`,{d:`M8.6 8.6l10.4 10.4`,key:`svg-2`}],[`path`,{d:`M8.6 15.4l10.4 -10.4`,key:`svg-3`}]]);function Pe(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.type===`text`?typeof t.text==`string`:typeof t.mimeType==`string`?t.type===`media`?typeof t.data==`string`:t.type===`media-ref`&&typeof t.uri==`string`:!1}function Fe(e){if(typeof e==`string`)return!0;if(typeof e!=`object`||!e)return!1;let t=e.parts;return Array.isArray(t)&&t.every(Pe)}function M(e){let t;try{t=JSON.parse(e)}catch{return}return Array.isArray(t)&&t.every(Fe)?t:void 0}function N(e){return typeof e==`string`?[{type:`text`,text:e}]:e.parts}function Ie(e){let t;try{t=JSON.parse(e)}catch{return}return Fe(t)?t:void 0}function Le(e){let t=N(e),n=t.filter(e=>e.type===`text`);return n.length>1?null:{text:n[0]?.text??``,media:t.filter(e=>e.type!==`text`)}}function Re(e){return e.media.length===0?e.text:{parts:[...e.text?[{type:`text`,text:e.text}]:[],...e.media]}}function ze(e){return e.type===`media`?{mimeType:e.mimeType,sizeBytes:C(e.data)}:{mimeType:e.mimeType}}function P(e,t){let n=[...e];if(n.length===0)return{ok:!1,reason:`no_inputs`};if(t.maxInputs!==void 0&&n.length>t.maxInputs)return{ok:!1,reason:`too_many_inputs`,max:t.maxInputs,inputs:n};let r=[];for(let[e,i]of n.entries()){let a=N(i);if(a.length===0||a.every(e=>e.type===`text`&&!e.text.trim()))return{ok:!1,reason:`empty_input`,index:e,inputs:n};if(!t.text&&a.some(e=>e.type===`text`&&e.text.trim()))return{ok:!1,reason:`text_off`,index:e,inputs:n};let o=[];for(let e of a)if(e.type!==`text`)try{o.push(ze(e))}catch{return{ok:!1,reason:`invalid_json`}}r.push(o)}let i=de(t,r);return i.length>0?{ok:!1,reason:`attachments`,issues:i,inputs:n}:{ok:!0,inputs:n}}function F(e,t){return(t===`whole`?[e]:t===`lines`?e.split(/\r?\n/):t===`paragraphs`?e.split(/\r?\n[^\S\r\n]*\r?\n/):t===`commas`?e.split(`,`):t.separator?e.split(t.separator):[e]).map(e=>e.trim()).filter(e=>e!==``)}function I(e){return e.type.startsWith(`text/`)||e.type===`application/json`||/\.(txt|md|markdown|csv|tsv|json)$/i.test(e.name)}function L(e,t,n=100){let r=[],i=[];for(let a of e){let e=[...i,a];i.length>0&&(e.length>n||!P(e,t).ok)?(r.push(i),i=[a]):i=e}return i.length>0&&r.push(i),r}function Be(e,t){if(!e||!t)return e??t;let n=(e,t)=>e===void 0&&t===void 0?void 0:(e??0)+(t??0),r=n(e.inputTokens,t.inputTokens),i=n(e.costUsd,t.costUsd);return{...r===void 0?{}:{inputTokens:r},...i===void 0?{}:{costUsd:i},...e.estimated||t.estimated?{estimated:!0}:{}}}function Ve(e,t){let n=0,r=0,i=0;for(let a=0;a<Math.min(e.length,t.length);a+=1)n+=e[a]*t[a],r+=e[a]*e[a],i+=t[a]*t[a];return r===0||i===0?0:n/Math.sqrt(r*i)}function He(e,t){return t.flatMap((t,n)=>t.length===e.length?[{index:n,score:Ve(e,t)}]:[]).sort((e,t)=>t.score-e.score)}var Ue=200,R=[0,0,0],We=3,Ge=1.4826;function z(e,t,n){let r=0;for(let i=0;i<n;i+=1)r+=e[i]*t[i];return r}function B(e,t,n,r){let i=Array.from(r,(e,n)=>e-t[n]);return[0,1,2].map(t=>e[t]&&n[t]>1e-12?z(e[t],i,i.length)/n[t]:0)}function Ke(e,t,n){return[0,1,2].map(r=>{let i=e[r];if(!i||n.length===0)return 0;let a=n.reduce((e,n)=>{let r=z(i,Array.from(n,(e,n)=>e-t[n]),n.length);return e+r*r},0);return Math.sqrt(a/n.length)})}function qe(e,t,n){let r=Math.hypot(e[0],e[1],e[2]);if(r<1e-9||t<=0||n<=0)return R;let i=r/(r+t)/n/r;return[e[0]*i,e[1]*i,e[2]*i]}function Je(e,t){let n=new Float64Array(e.length*t);return e.forEach((e,r)=>{n.set(e,r*t)}),n}function*Ye(e,t,n){let r=new Float64Array(t*t),i=n-n%4;for(let a=0;a<t;a+=1){let o=a*n;for(let s=a;s<t;s+=1){let c=s*n,l=0,u=0,d=0,f=0;for(let t=0;t<i;t+=4)l+=e[o+t]*e[c+t],u+=e[o+t+1]*e[c+t+1],d+=e[o+t+2]*e[c+t+2],f+=e[o+t+3]*e[c+t+3];for(let t=i;t<n;t+=1)l+=e[o+t]*e[c+t];let p=l+u+d+f;r[a*t+s]=p,r[s*t+a]=p}yield}return r}function Xe(e,t){let n=new Float64Array(t),r=0;for(let i=0;i<t;i+=1){for(let r=0;r<t;r+=1)n[i]+=e[i*t+r];n[i]/=t,r+=n[i]}r/=t;let i=new Float64Array(t*t);for(let a=0;a<t;a+=1)for(let o=0;o<t;o+=1)i[a*t+o]=e[a*t+o]-n[a]-n[o]+r;return i}function Ze(e,t,n){let r=new Float64Array(t),i=0;for(let a=0;a<t;a+=1){let o=0;for(let r=0;r<t;r+=1)o+=e[a*t+r]*n[r];r[a]=o,i+=o*o}if(i=Math.sqrt(i),i<1e-12)return{next:n,length:0,moved:0};let a=0;for(let e=0;e<t;e+=1)r[e]/=i,a=Math.max(a,Math.abs(r[e]-n[e]));return{next:r,length:i,moved:a}}function Qe(e){let t=0;for(let n=1;n<e.length;n+=1)Math.abs(e[n])>Math.abs(e[t])&&(t=n);return e[t]<0?e.map(e=>-e):e}function*$e(e,t,n){let r=Float64Array.from({length:t},(e,t)=>1+(t*7919+n*104729)%97/97),i=0;for(let n=0;n<Ue;n+=1){let n=Ze(e,t,r);if(n.length===0||(i=n.length,r=n.next,n.moved<1e-12))break;yield}return{vector:Qe(r),value:i}}function*et(e,t,n){let r=Float64Array.from(e),i=[],a=Math.max(...Array.from({length:t},(e,n)=>Math.abs(r[n*t+n])),0);for(let e=0;e<Math.min(n,t);e+=1){let{vector:n,value:o}=yield*$e(r,t,e);if(o<=a*1e-9)break;i.push({vector:n,value:o});for(let e=0;e<t;e+=1)for(let i=0;i<t;i+=1)r[e*t+i]-=o*n[e]*n[i]}return i}function tt(e,t,n){let r=new Float64Array(n);for(let i=0;i<t;i+=1)for(let t=0;t<n;t+=1)r[t]+=e[i*n+t];for(let e=0;e<n;e+=1)r[e]/=Math.max(t,1);return r}function nt(e,t,n){let r=t.length,i=new Float64Array(r);for(let a=0;a<n.length;a+=1)for(let o=0;o<r;o+=1)i[o]+=n[a]*(e[a*r+o]-t[o]);let a=0;for(let e=0;e<r;e+=1)a+=i[e]*i[e];if(a=Math.sqrt(a),a>0)for(let e=0;e<r;e+=1)i[e]/=a;return i}function rt(e,t){let n=Array.from({length:t},(n,r)=>Math.sqrt(Math.max(e[r*t+r],0))),r=new Float64Array(t*t);for(let i=0;i<t;i+=1)for(let a=0;a<t;a+=1)r[i*t+a]=n[i]===0||n[a]===0?0:e[i*t+a]/(n[i]*n[a]);return r}function V(e){e.sort();let t=e.length>>1;return e.length%2?e[t]:(e[t-1]+e[t])/2}function H(e){let t=Float64Array.from(e);if(t.length===0)return 1/0;let n=V(t.slice()),r=Ge*V(t.map(e=>Math.abs(e-n)));return r>0?n+We*r:1/0}function it(e,t){let n=new Float64Array(t*(t-1)/2),r=0;for(let i=0;i<t;i+=1)for(let a=i+1;a<t;a+=1)n[r++]=e[i*t+a];return n}function*at(e,t,n){let r=[];for(let i=0;i<t;i+=1){for(let a=i+1;a<t;a+=1)e[i*t+a]>n&&r.push({a:i,b:a,similarity:e[i*t+a]});yield}return r}function ot(e,t,n){let r=-1;for(let i=0;i<t;i+=1)i!==n&&(r<0||e[n*t+i]>e[n*t+r])&&(r=i);return r}function*st(e,t,n){let r=new Set,i=[];for(let a=0;a<t;a+=1){let o=ot(e,t,a),[s,c]=a<o?[a,o]:[o,a];o>=0&&e[a*t+o]>n&&!r.has(s*t+c)&&(r.add(s*t+c),i.push({a:s,b:c,similarity:e[a*t+o]})),yield}return i.sort((e,t)=>e.a-t.a||e.b-t.b)}function ct(e,t){let n=Array.from({length:e},(e,t)=>t),r=e=>{for(;n[e]!==e;)n[e]=n[n[e]],e=n[e];return e};for(let e of t)n[r(e.a)]=r(e.b);let i=new Map;for(let t=0;t<e;t+=1){let e=r(t),n=i.get(e);n?n.push(t):i.set(e,[t])}return[...i.values()]}function lt(e,t,n){let r=Array(n).fill(0);for(let i of t)for(let t=0;t<n;t+=1)r[t]+=e[i*n+t];return r.map(e=>e/Math.max(t.length,1))}function U(e){return(Math.atan2(e[1],e[0])/(2*Math.PI)+1)%1}function*ut(e){let t=e[0]?.length??0,n=e.flatMap((e,n)=>e.length===t?[n]:[]),r=n.length,i=Je(n.map(t=>e[t]),t),a=tt(i,r,t),o=yield*Ye(i,r,t),s=(yield*et(Xe(o,r),r,3)).map(({vector:e})=>nt(i,a,e)),c=n.map(t=>e[t]),l=Ke(s,a,c),u=c.map(e=>B(s,a,l,e)),d=Float64Array.from(u,e=>Math.hypot(e[0],e[1],e[2])),f=r>0?V(d.slice()):0,p=f>1e-9?f:d.reduce((e,t)=>Math.max(e,t),0),m={mean:a,axes:s,spreads:l,scale:p,reach:d.reduce((e,t)=>Math.max(e,p>0?t/(t+p):0),0)},h=rt(o,r),g=H(it(h,r)),_=ct(r,yield*at(h,r,g)),v=yield*st(h,r,g),y=_.map(e=>({members:e.map(e=>n[e]),tone:U(W(m,lt(i,e,t)))}));for(let[n,r]of e.entries())r.length!==t&&y.push({members:[n],tone:U(R)});let b=new Map(y.flatMap((e,t)=>e.members.map(e=>[e,t])));return{documents:e.map((e,n)=>({index:n,position:e.length===t?W(m,e):R,cluster:b.get(n)??0})),clusters:y,links:v.map(e=>({...e,a:n[e.a],b:n[e.b]})),threshold:g,basis:m,dimensions:t}}var dt=8;async function ft(e,t){let n=ut(e);for(;;){let e=performance.now()+dt;for(;;){let t=n.next();if(t.done)return t.value;if(performance.now()>=e)break}await new Promise(e=>setTimeout(e,0)),t?.throwIfAborted()}}function pt(e,t){return t.length!==e.dimensions||e.dimensions===0?null:W(e.basis,t)}function W(e,t){return qe(B(e.axes,e.mean,e.spreads,t),e.scale,e.reach)}var G=(e,t)=>({from:e,input:{parts:[{type:`media`,mimeType:`image/png`,data:t}]}}),mt=[...[`Refunds are available within 14 days of a charge, in full and to the original card.`,`After 14 days a refund is made as credit toward the next invoice, not as money back.`,`Refunds take five to ten working days to reach your bank, depending on the card issuer.`].map(e=>({input:e,from:`refund-policy.md`})),G(`empty-trash-dialog.png`,`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`),G(`desktop-stacks.png`,`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`),G(`lisbon-tram-28.png`,`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`)],K=e(i(),1);async function ht(e,t,n,r,i){let a=L(n,r),o=[],s=``,c;i({done:0,total:a.length});for(let[n,r]of a.entries()){let l=await e.embed(r,{task:`document`},t);for(let t of l.traces??[])e.traces?.push(t);o.push(...l.result.embeddings.map(e=>e.values)),s=l.result.model,c=Be(c,l.result.usage),i({done:n+1,total:a.length})}return{result:{inputs:n,vectors:o,model:s,...c?{usage:c}:{},requests:a.length}}}function gt(e){let[t,n]=(0,K.useState)(null),{call:r,...i}=Se(e,`indexing`,ht);return{...i,progress:i.status===`indexing`?t:null,index:(e,t)=>r(e,t,n)}}var _t=(e,t,n,r)=>e.embed(n,r,t);function vt(e){let{iface:t,describeFailure:n}=Te(e),{call:r,...i}=Se(e,`embedding`,_t);return{iface:t,describeFailure:n,...i,embed:r}}var q=t(),yt={span:{k7Eaqz:`xeuugli`,k1xSpc:`xrvj5dj`,kZKoxP:`x5yr21d`,$$css:!0}};function J({columns:e,rows:t,xstyle:i,className:a,style:o,children:s,ref:c,...l}){let u={...e!=null&&{gridColumn:e===`full`?`1 / -1`:`span ${e}`},...t!=null&&{gridRow:`span ${t}`}};return(0,q.jsx)(`div`,{ref:c,...h(r(`grid-span`),n(yt.span,i),a,{...o,...u}),...l,children:s})}J.displayName=`GridSpan`;var bt=[{value:`whole`,icon:(0,q.jsx)(ue,{size:16})},{value:`paragraphs`,icon:(0,q.jsx)(Me,{size:16})},{value:`lines`,icon:(0,q.jsx)(Ae,{size:16})},{value:`commas`,icon:(0,q.jsx)(je,{size:16})},{value:`custom`,icon:(0,q.jsx)(Ne,{size:16})}],xt={invalid_json:`@theorem.embedding.empty`,no_inputs:`@theorem.embedding.empty`,empty_input:`@theorem.embedding.empty`,text_off:`@theorem.embedding.text_off`};function Y(e,t,n){return t.ok?null:t.reason===`attachments`?`${n}: ${t.issues.map(e=>fe(e)).join(` `)}`:t.reason===`too_many_inputs`?e(`@theorem.embedding.too_many`,{max:t.max}):e(xt[t.reason],{name:n})}function St(e,t,n=[]){let r=x(),[i,a]=(0,K.useState)(e),[o,s]=(0,K.useState)(`paragraphs`),[c,l]=(0,K.useState)(``),[u,d]=(0,K.useState)(()=>[...n]),[f,p]=(0,K.useState)(`fields`),[m,h]=(0,K.useState)(null),g=o===`custom`?{separator:c}:o,_=(0,K.useMemo)(()=>[...F(i,o===`custom`?{separator:c}:o).map(e=>({input:e})),...u],[i,o,c,u]),v=(0,K.useMemo)(()=>_.map(e=>e.input),[_]),y=(0,K.useMemo)(()=>f===`json`?m??JSON.stringify(v,null,2):``,[f,m,v]),b=m!==null&&M(m)===void 0;return{text:i,setText:a,choice:o,setChoice:s,separator:c,setSeparator:l,documents:_,inputs:v,issue:(0,K.useMemo)(()=>{for(let[e,n]of v.entries()){let i=Y(r,P([n],t),r(`@theorem.embedding.document`,{number:e+1}));if(i)return i}return null},[v,t,r]),requests:(0,K.useMemo)(()=>L(v,t).length,[v,t]),view:f,setView:e=>{h(null),p(e)},json:y,jsonInvalid:b,setJson:e=>{h(e);let t=M(e);t!==void 0&&(a(``),d(t.map(e=>({input:e}))))},addFiles:async e=>{let t=e.filter(I),n=e.filter(e=>!I(e)),r=await Promise.all(t.map(async e=>F(await e.text(),g).map(t=>({input:t,from:e.name})))),i=await E(n);d(e=>[...e,...r.flat(),...i.map(({name:e,mimeType:t,data:n})=>({input:{parts:[{type:`media`,mimeType:t,data:n}]},from:e}))])},remove:e=>{let t=_.length-u.length;d(n=>n.filter((n,r)=>!e.includes(r+t)))},fromText:_.length-u.length}}function X(e){return typeof e==`string`?void 0:e.parts.find(e=>e.type!==`text`)}function Ct(e){return typeof e==`string`?e:e.parts.flatMap(e=>e.type===`text`?[e.text]:[]).join(` `)}function wt(e,t,n,r){let i=X(n.input),a=Ct(n.input);if(!i)return{label:a,detail:null};let o=i.type===`media`?t(C(i.data)):e(`@theorem.embedding.held_file`);return{label:a||(n.from??e(`@theorem.embedding.document`,{number:r})),detail:`${i.mimeType} · ${o}`}}function Tt({label:e,placeholder:t,accept:n,isMultiple:r=!1,onFiles:i}){let a=x(),[o,s]=(0,K.useState)(null);return(0,q.jsx)(Oe,{label:e,isLabelHidden:!0,mode:`dropzone`,isMultiple:r,accept:n.join(`,`),value:null,placeholder:t,status:o?{type:`error`,message:o}:void 0,onChange:e=>{let t=e===null?[]:Array.isArray(e)?e:[e];t.length!==0&&(s(null),i(t).catch(()=>{s(a(`@theorem.embedding.unreadable`,{name:t.map(e=>e.name).join(`, `)}))}))}})}function Et({form:e}){let t=x();return(0,q.jsxs)(c,{gap:2,vAlign:`center`,wrap:`wrap`,children:[(0,q.jsx)(b,{type:`supporting`,color:`secondary`,children:t(`@theorem.embedding.split`)}),(0,q.jsx)(a,{label:t(`@theorem.embedding.split`),size:`sm`,value:e.choice,onChange:t=>{e.setChoice(t)},children:bt.map(({value:e,icon:n})=>{let r=t(`@theorem.embedding.split_${e}`);return(0,q.jsx)(ne,{content:r,children:(0,q.jsx)(o,{value:e,label:r,icon:n,isLabelHidden:!0})},e)})}),e.choice===`custom`?(0,q.jsx)(l,{size:`fill`,children:(0,q.jsx)(re,{label:t(`@theorem.embedding.separator`),isLabelHidden:!0,placeholder:t(`@theorem.embedding.separator`),size:`sm`,value:e.separator,onChange:e.setSeparator})}):null]})}var Z=3;function Dt(e,t){let n=new Map;for(let[r,i]of e.documents.entries()){if(X(i.input)||r<e.fromText)continue;let a=i.from?t(`@theorem.embedding.from_file`,{name:i.from}):t(`@theorem.embedding.from_json`),o=n.get(a)??{source:a,at:[]};o.at.push(r),n.set(a,o)}return[...n.values()]}function Ot({group:e,form:t}){let n=x();return(0,q.jsxs)(s,{gap:1,children:[(0,q.jsxs)(c,{gap:1,vAlign:`center`,children:[(0,q.jsx)(l,{size:`fill`,children:(0,q.jsx)(b,{type:`supporting`,color:`secondary`,children:n(`@theorem.embedding.group`,{source:e.source,count:e.at.length})})}),(0,q.jsx)(y,{label:n(`@theorem.embedding.remove`,{name:e.source}),size:`sm`,variant:`ghost`,icon:(0,q.jsx)(g,{size:14}),onClick:()=>{t.remove(e.at)}})]}),e.at.slice(0,Z).map(e=>(0,q.jsx)(b,{maxLines:2,children:Ct(t.documents[e]?.input??``)},String(e))),e.at.length>Z?(0,q.jsx)(b,{type:`supporting`,color:`secondary`,children:n(`@theorem.embedding.more`,{count:e.at.length-Z})}):null]})}function kt({part:e,name:t,label:n,onRemove:r}){let i=e.type===`media`&&e.mimeType.startsWith(`image/`);return(0,q.jsxs)(s,{gap:1,hAlign:`center`,style:{width:At,flexShrink:0},children:[(0,q.jsx)(m,{...i&&e.type===`media`?{src:`data:${e.mimeType};base64,${e.data}`}:{},alt:``,label:n,onRemove:r}),(0,q.jsx)(b,{type:`supporting`,color:`secondary`,maxLines:1,style:{width:`100%`,textAlign:`center`},children:t??e.mimeType})]})}var At=72,jt=new WeakMap,Mt=0;function Nt(e){let t=jt.get(e);return t===void 0&&(t=Mt,Mt+=1,jt.set(e,t)),String(t)}function Pt({form:e}){let t=x(),n=j(),r=e.documents.flatMap((e,t)=>{let n=X(e.input);return n?[{document:e,part:n,at:t}]:[]});return r.length===0?null:(0,q.jsx)(c,{gap:2,wrap:`nowrap`,style:{overflowX:`auto`},children:r.map(({document:r,part:i,at:a})=>{let{label:o,detail:s}=wt(t,n,r,a+1);return(0,q.jsx)(kt,{name:r.from,part:i,label:[o,s].filter(Boolean).join(` · `),onRemove:()=>{e.remove([a])}},Nt(r))})})}function Ft({form:e}){let t=Dt(e,x());return t.length===0&&e.documents.length===0?null:(0,q.jsxs)(s,{gap:3,children:[t.map(t=>(0,q.jsx)(Ot,{group:t,form:e},t.source)),(0,q.jsx)(Pt,{form:e})]})}function It({text:e,file:t}){return!e||!t?(0,q.jsx)(q.Fragment,{children:e??t}):(0,q.jsxs)(Ee,{columns:3,gap:3,children:[(0,q.jsx)(J,{columns:2,children:e}),(0,q.jsx)(J,{columns:1,children:t})]})}function Lt(e){let t=e.text?[`text/*`,`.md`,`.csv`,`.json`]:[];return[...e.attachments?.accept??[],...t]}function Rt({form:e}){let t=x();return(0,q.jsxs)(s,{gap:3,children:[(0,q.jsx)(Ce,{label:t(`@theorem.embedding.text`),isLabelHidden:!0,value:e.text,placeholder:t(`@theorem.embedding.text_placeholder`),rows:O(e.text,4,12),onChange:e.setText}),(0,q.jsx)(Et,{form:e})]})}function zt({form:e,rules:t}){let n=x(),r=Lt(t),i=r.length>0?(0,q.jsx)(Tt,{label:n(`@theorem.embedding.files`),placeholder:n(`@theorem.embedding.drop_files`),accept:r,isMultiple:!0,onFiles:e.addFiles}):null;return(0,q.jsxs)(s,{gap:3,children:[(0,q.jsx)(It,{text:t.text?(0,q.jsx)(Rt,{form:e}):null,file:i}),(0,q.jsx)(Ft,{form:e})]})}function Bt(e,t){return t.jsonInvalid?e(`@theorem.embedding.invalid_json`):t.inputs.length===0?e(`@theorem.embedding.no_documents`):t.issue??e(`@theorem.embedding.ready`,{count:t.inputs.length,requests:t.requests})}function Vt({form:e,rules:t,isRunning:n,onRun:r,onStop:i}){let a=x(),o=!e.jsonInvalid&&e.inputs.length>0&&e.issue===null;return(0,q.jsxs)(D,{title:a(`@theorem.embedding.documents`),view:e.view,hasFields:!0,onView:e.setView,onRun:r,children:[e.view===`fields`?(0,q.jsx)(zt,{form:e,rules:t}):(0,q.jsx)(A,{label:a(`@theorem.embedding.documents`),text:e.json,isInvalid:e.jsonInvalid,onChange:e.setJson}),(0,q.jsx)(k,{note:Bt(a,e),isReady:o,isRunning:n,runLabel:a(`@theorem.embedding.index`),runningLabel:a(`@theorem.embedding.indexing`),stopLabel:a(`@theorem.embedding.stop`),onRun:r,onStop:i})]})}function Ht(e,t){let n=x(),[r,i]=(0,K.useState)(()=>JSON.stringify(e)),a=Ie(r),o=a===void 0?null:Le(a),[s,c]=(0,K.useState)(`fields`);return{json:r,setJson:i,input:a,fields:o,issue:a===void 0?n(`@theorem.embedding.query_invalid_json`):Y(n,P([a],t),n(`@theorem.embedding.query`)),shown:o===null?`json`:s,setView:c,setFields:e=>{i(JSON.stringify(Re(e),null,2))}}}function Ut({fields:e,accept:t,onChange:n}){let r=x(),i=j(),a=e.media[0];if(a){let t=a.type===`media`?i(C(a.data)):r(`@theorem.embedding.held_file`);return(0,q.jsx)(kt,{part:a,label:[a.mimeType,t].join(` · `),onRemove:()=>{n({...e,media:[]})}})}return t?(0,q.jsx)(Tt,{label:r(`@theorem.embedding.query_file`),placeholder:r(`@theorem.embedding.query_file`),accept:t,onFiles:async t=>{let r=await E(t);n({...e,media:r.map(({mimeType:e,data:t})=>({type:`media`,mimeType:e,data:t}))})}}):null}function Wt({fields:e,rules:t,onChange:n}){let r=x(),i=t.attachments?.accept,a=t.text?(0,q.jsx)(Ce,{label:r(`@theorem.embedding.query`),isLabelHidden:!0,value:e.text,placeholder:r(`@theorem.embedding.query_placeholder`),rows:O(e.text,2,6),onChange:t=>{n({...e,text:t})}}):null,o=e.media.length>0||i!==void 0?(0,q.jsx)(Ut,{fields:e,accept:i,onChange:n}):null;return(0,q.jsx)(It,{text:a,file:o})}function Gt(e,t,n,r){return r?t.issue?t.issue:n===`stale`?e(`@theorem.embedding.stale`):n===`model`?e(`@theorem.embedding.remodelled`):null:null}function Kt({form:e,rules:t,index:n,isRunning:r,onRun:i,onStop:a}){let o=x(),{input:s}=e,c=e.issue===null&&n===`fresh`&&s!==void 0,[l,u]=(0,K.useState)(!1),d=()=>{u(!0),c&&i(s)};return(0,q.jsxs)(D,{title:o(`@theorem.embedding.query`),view:e.shown,hasFields:e.fields!==null,onView:e.setView,onRun:d,children:[e.shown===`fields`&&e.fields!==null?(0,q.jsx)(Wt,{fields:e.fields,rules:t,onChange:e.setFields}):(0,q.jsx)(A,{label:o(`@theorem.embedding.query`),text:e.json,isInvalid:s===void 0,onChange:e.setJson}),(0,q.jsx)(k,{note:Gt(o,e,n,l),isReady:c||!l,isRunning:r,runLabel:o(`@theorem.embedding.search`),runningLabel:o(`@theorem.embedding.searching`),stopLabel:o(`@theorem.embedding.stop`),onRun:d,onStop:a})]})}var qt=(0,K.lazy)(()=>ee(()=>import(`./embedding-space-view-BU2AjjAx.js`).then(e=>({default:e.EmbeddingSpaceView})),__vite__mapDeps([0,1,2,3,4,5,6]))),Jt=10,Yt=460,Xt=4,Q={listStyle:`none`,margin:0,padding:0,display:`flex`,flexDirection:`column`,gap:12},Zt=`var(--color-background-muted)`;function $({failure:e}){return e?(0,q.jsx)(se,{status:`error`,role:`alert`,title:e.error}):null}function Qt(e,t){let n=x(),r=j();return i=>wt(n,r,t[i]??{input:e[i]},i+1).label}function $t({matches:e,index:t,documents:n,pointing:r}){let i=x(),a=ye(),o=Qt(t.inputs,n),u=e[0];if(!u)return(0,q.jsx)(se,{status:`warning`,title:i(`@theorem.embedding.no_matches`)});let d=e.slice(0,Jt);return(0,q.jsx)(ve,{title:i(`@theorem.embedding.matches`),value:a.decimal.format(u.score),note:e.length>d.length?i(`@theorem.embedding.matches_shown`,{shown:d.length,count:e.length}):i(`@theorem.embedding.best`,{name:o(u.index)}),children:(0,q.jsx)(`ul`,{style:Q,children:d.map((e,t)=>{let n=o(e.index),i=a.decimal.format(e.score);return(0,q.jsx)(`li`,{"aria-label":`${n}: ${i}`,onPointerEnter:()=>r.onHover(e.index),onPointerLeave:()=>r.onHover(null),style:{borderRadius:`var(--radius-container)`,margin:`-4px -8px`,padding:`4px 8px`,background:r.hovered===e.index?Zt:void 0},children:(0,q.jsxs)(s,{gap:1,children:[(0,q.jsxs)(c,{gap:3,vAlign:`start`,"aria-hidden":!0,children:[(0,q.jsx)(l,{size:`fill`,children:(0,q.jsx)(b,{type:`supporting`,maxLines:2,children:n})}),(0,q.jsx)(b,{type:`supporting`,color:`secondary`,hasTabularNumbers:!0,children:i})]}),(0,q.jsx)(xe,{value:Math.max(e.score,0),isLead:t===0})]})},e.index)})})})}function en({text:e,label:t,isIcon:n}){let r=x()(`@theorem.embedding.copied`),{copy:i,isCopied:a}=pe({announce:r}),o=a?r:t;return n?(0,q.jsx)(y,{label:o,tooltip:o,size:`sm`,variant:`ghost`,icon:(0,q.jsx)(_,{icon:a?oe:ae,size:`xsm`,color:`secondary`}),onClick:()=>void i(e)}):(0,q.jsx)(v,{label:o,size:`sm`,variant:`ghost`,onClick:()=>void i(e)})}function tn({vectors:e,name:t,pointing:n}){let r=x(),i=(0,K.useMemo)(()=>JSON.stringify(e),[e]);return(0,q.jsxs)(s,{gap:2,children:[(0,q.jsxs)(c,{gap:2,vAlign:`center`,children:[(0,q.jsx)(l,{size:`fill`,children:(0,q.jsx)(b,{type:`supporting`,color:`secondary`,children:r(`@theorem.embedding.width`,{dimensions:e[0]?.length??0})})}),(0,q.jsx)(en,{text:i,label:r(`@theorem.embedding.copy_vectors`)})]}),(0,q.jsx)(`ul`,{style:{...Q,gap:0,maxHeight:Yt,overflowY:`auto`},children:ce(e,e=>e.slice(0,8).join()).map(({item:e,index:i,key:a})=>(0,q.jsx)(`li`,{onPointerEnter:()=>n.onHover(i),onPointerLeave:()=>n.onHover(null),style:{borderRadius:`var(--radius-container)`,padding:`4px 8px`,background:n.hovered===i?Zt:void 0},children:(0,q.jsxs)(c,{gap:2,vAlign:`center`,children:[(0,q.jsx)(l,{size:`fill`,children:(0,q.jsxs)(s,{gap:0,children:[(0,q.jsx)(b,{type:`supporting`,maxLines:1,children:t(i)}),(0,q.jsx)(b,{type:`supporting`,color:`secondary`,maxLines:1,hasTabularNumbers:!0,children:`[${e.slice(0,Xt).map(e=>e.toFixed(4)).join(`, `)}${e.length>Xt?`, …`:``}]`})]})}),(0,q.jsx)(en,{text:JSON.stringify(e),label:r(`@theorem.embedding.copy_vector`),isIcon:!0})]})},a))})]})}function nn(e){let[t,n]=(0,K.useState)(null);return(0,K.useEffect)(()=>{let t=new AbortController;return ft(e,t.signal).then(t=>n({of:e,space:t}),()=>{}),()=>t.abort()},[e]),t?.of===e?t.space:null}function rn(e){let t=H(e.map(e=>e.score));return e.slice(0,Jt).filter(e=>e.score>t).map(e=>({index:e.index,closeness:t<1?Math.min((e.score-t)/(1-t),1):1}))}var an={width:`100%`,aspectRatio:`1 / 1`,maxHeight:Yt};function on({space:e,query:t,matches:n,name:r,pointing:i,onUnavailable:a}){let o=x(),s=(0,K.useMemo)(()=>e&&t?pt(e,t):null,[e,t]),c=(0,K.useMemo)(()=>s?rn(n):[],[s,n]);if(!e)return(0,q.jsx)(`div`,{style:an});let l=o(`@theorem.embedding.space_label`,{count:e.documents.length});return(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(`div`,{style:an}),children:(0,q.jsx)(qt,{space:e,query:s,matches:c,hovered:i.hovered,onHover:i.onHover,nameOf:r,label:s?`${l} ${o(`@theorem.embedding.space_query`)}`:l,onUnavailable:a})})}function sn({view:e,onChange:t}){let n=x();return(0,q.jsxs)(a,{label:n(`@theorem.embedding.view`),size:`sm`,value:e,onChange:e=>t(e===`list`?`list`:`space`),children:[(0,q.jsx)(o,{value:`space`,label:n(`@theorem.embedding.space`)}),(0,q.jsx)(o,{value:`list`,label:n(`@theorem.embedding.list`)})]})}function cn({vectors:e,name:t,pointing:n,isDrawable:r}){let i=x();return(0,q.jsxs)(s,{gap:2,children:[r?null:(0,q.jsx)(b,{type:`supporting`,color:`secondary`,children:i(`@theorem.embedding.space_off`)}),(0,q.jsx)(tn,{vectors:e,name:t,pointing:n})]})}function ln({run:e,result:t,documents:n,query:r,matches:i,pointing:a}){let o=x(),[c,l]=(0,K.useState)(`space`),[u,d]=(0,K.useState)(!0),f=nn(t.vectors),p=Qt(t.inputs,n);return(0,q.jsxs)(s,{gap:4,children:[(0,q.jsx)($,{failure:e.failure}),(0,q.jsx)(be,{model:t.model,usage:t.usage,elapsedMs:e.elapsedMs,tokens:e=>o(`@theorem.embedding.tokens`,{count:e}),children:(0,q.jsx)(_e,{title:o(`@theorem.embedding.index`),value:o(`@theorem.embedding.indexed`,{count:t.vectors.length}),aside:u?(0,q.jsx)(sn,{view:c,onChange:l}):null,children:u&&c===`space`?(0,q.jsx)(on,{space:f,query:r,matches:i,name:p,pointing:a,onUnavailable:()=>d(!1)}):(0,q.jsx)(cn,{vectors:t.vectors,name:p,pointing:a,isDrawable:u})})})]})}function un(e){let{result:t,failure:n}=e.run;return t?(0,q.jsx)(ln,{...e,result:t}):(0,q.jsx)($,{failure:n})}function dn({index:e,search:t,documents:n,matches:r,pointing:i}){let a=x(),o=t.result?.embeddings[0]?.values;return(0,q.jsxs)(s,{gap:4,children:[(0,q.jsx)($,{failure:t.failure}),o&&e.result?(0,q.jsx)(be,{model:t.result?.model??``,usage:t.result?.usage,elapsedMs:t.elapsedMs,isStale:t.status===`embedding`,tokens:e=>a(`@theorem.embedding.tokens`,{count:e}),children:(0,q.jsx)(le,{children:(0,q.jsx)($t,{matches:r,index:e.result,documents:n,pointing:i})})}):null]})}function fn(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function pn(e,t,n){return e?t&&t.model!==e.model?`model`:fn(e.inputs,n)?`fresh`:`stale`:`fresh`}function mn(e){return e.status===`indexing`?`indexing`:e.result!==null||e.failure!==null?`indexed`:`idle`}function hn(e,t,n,r){return n===`idle`?null:e?(0,q.jsx)(me,{label:t,fill:n===`indexing`,children:r}):r}function gn({index:e}){let t=x(),{progress:n}=e;return(0,q.jsx)(De,{label:n?t(`@theorem.embedding.indexing_progress`,{done:Math.min(n.done+1,n.total),total:n.total}):t(`@theorem.embedding.indexing`),since:e.startedAt})}function _n(e,t,n){let r=pn(e.result,t.result,n);return r===`model`?{state:r,searched:!1,queried:null}:{state:r,searched:t.status!==`idle`||t.result!==null,queried:t.result?.embeddings[0]?.values??null}}function vn({iface:e,index:t,search:n,query:r,indexed:i,state:a,searched:o,matches:c,pointing:l}){return(0,q.jsxs)(he,{children:[(0,q.jsx)(Kt,{form:r,rules:e.inputs,index:a,isRunning:n.status===`embedding`,onRun:e=>{n.embed([e],{task:`query`})},onStop:n.cancel}),o?(0,q.jsx)(s,{padding:4,children:(0,q.jsx)(dn,{index:t,search:n,documents:i,matches:c,pointing:l})}):null]})}function yn({inputs:e,...t}){let{index:n,indexed:r}=t,{state:i,searched:a,queried:o}=_n(n,t.search,e),c=n.result?.vectors,l=(0,K.useMemo)(()=>o&&c?He(o,c):[],[o,c]),[u,d]=(0,K.useState)(null),f=(0,K.useMemo)(()=>({hovered:u,onHover:d}),[u]);return(0,q.jsxs)(s,{gap:3,children:[(0,q.jsx)(un,{run:n,documents:r,query:o,matches:l,pointing:f}),n.result?(0,q.jsx)(vn,{...t,state:i,searched:a,matches:l,pointing:f}):null]})}function bn({transport:e,iface:t,search:n,defaultText:r=``,defaultDocuments:i,defaultQuery:a=``,maxWidth:o=`960px`,trace:s,flush:c,columns:l=!1,className:u,style:d}){let f=x(),p=St(r,t.inputs,i),m=Ht(a,t.inputs),h=gt(e),[g,_]=(0,K.useState)([]),v=ie(t,e.traces,s),y=()=>{p.jsonInvalid||p.issue||p.inputs.length===0||(_(p.documents),h.index(p.inputs,t.inputs))},b=mn(h);return(0,q.jsxs)(ge,{inspector:v,maxWidth:o,flush:c,columns:l,requestLabel:f(`@theorem.embedding.documents`),className:u,style:d,children:[(0,q.jsx)(Vt,{form:p,rules:t.inputs,isRunning:b===`indexing`,onRun:y,onStop:h.cancel}),hn(l,f(`@theorem.embedding.results`),b,b===`indexing`?(0,q.jsx)(gn,{index:h}):(0,q.jsx)(yn,{iface:t,index:h,search:n,query:m,indexed:g,inputs:p.inputs}))]})}function xn(e){let t=x(),n=vt(e.transport);return n.describeFailure?(0,q.jsx)(we,{title:n.describeFailure.error}):n.iface?(0,q.jsx)(bn,{...e,iface:n.iface,search:n}):(0,q.jsx)(De,{label:t(`@theorem.chat.loading`)})}function Sn({endpoint:e,http:t,transport:n,theme:r,mode:i,labels:a,...o}){let s=(0,K.useRef)(t);s.current=t;let c=(0,K.useMemo)(()=>n??u({...s.current,endpoint:e}),[n,e]);return(0,q.jsx)(p,{theme:r,mode:i,children:(0,q.jsx)(te,{labels:a,children:(0,q.jsx)(xn,{...o,transport:c})})})}function Cn(e,t){return e.some(e=>e===t||e.endsWith(`/*`)&&t.startsWith(e.slice(0,-1)))}function wn(e){if(e.type!==`embedding`)return{defaultText:T,defaultQuery:w};let{text:t,attachments:n}=e.inputs,r=mt.filter(({input:e})=>typeof e==`string`?t!==!1:Cn(n?.accept??[],`image/png`));return{defaultText:t===!1?``:T,defaultQuery:t===!1?``:w,defaultDocuments:r}}function Tn(e){let t=ke(e,d,f);return(0,q.jsx)(En,{...e,transport:t})}function En({payload:e,transport:t,trace:n,flush:r,columns:i,className:a}){return(0,q.jsx)(Sn,{transport:t,...wn(e.profile),trace:n,flush:r,columns:i,className:a})}export{En as EmbeddingView,Tn as StudioEmbedding};
|