From 6103a599d7413b9bbac4a21a29485c4a6535e678 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 15 Nov 2024 09:45:06 +0000 Subject: [PATCH] Auto update silverbullet-ai.plug.js [skip ci] --- silverbullet-ai.plug.js | 68 ++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/silverbullet-ai.plug.js b/silverbullet-ai.plug.js index 89820c7..28f74d9 100644 --- a/silverbullet-ai.plug.js +++ b/silverbullet-ai.plug.js @@ -1,35 +1,35 @@ -var An=Object.defineProperty;var U=(e,t)=>{for(var r in t)An(e,r,{get:t[r],enumerable:!0})};var ge=e=>{throw new Error("Not initialized yet")},ot=typeof window>"u"&&typeof globalThis.WebSocketPair>"u";typeof Deno>"u"&&(self.Deno={args:[],build:{arch:"x86_64"},env:{get(){}}});var nt=new Map,rt=0;ot&&(globalThis.syscall=async(e,...t)=>await new Promise((r,o)=>{rt++,nt.set(rt,{resolve:r,reject:o}),ge({type:"sys",id:rt,name:e,args:t})}));function nr(e,t,r){ot&&(ge=r,self.addEventListener("message",o=>{(async()=>{let n=o.data;switch(n.type){case"inv":{let i=e[n.name];if(!i)throw new Error(`Function not loaded: ${n.name}`);try{let s=await Promise.resolve(i(...n.args||[]));ge({type:"invr",id:n.id,result:s})}catch(s){console.error("An exception was thrown as a result of invoking function",n.name,"error:",s.message),ge({type:"invr",id:n.id,error:s.message})}}break;case"sysr":{let i=n.id,s=nt.get(i);if(!s)throw Error("Invalid request id");nt.delete(i),n.error?s.reject(new Error(n.error)):s.resolve(n.result)}break}})().catch(console.error)}),ge({type:"manifest",manifest:t}))}function Sn(e){let t=atob(e),r=t.length,o=new Uint8Array(r);for(let n=0;n0?or(r):void 0;t={method:e.method,headers:Object.fromEntries(e.headers.entries()),base64Body:o},e=e.url}return syscall("sandboxFetch.fetch",e,t)}globalThis.nativeFetch=globalThis.fetch;function En(){globalThis.fetch=async function(e,t){let r=t&&t.body?or(new Uint8Array(await new Response(t.body).arrayBuffer())):void 0,o=await vn(e,t&&{method:t.method,headers:t.headers,base64Body:r});return new Response(o.base64Body?Sn(o.base64Body):null,{status:o.status,headers:o.headers})}}ot&&En();function it(e){if(e.children)for(let t of e.children){if(t.parent)return;t.parent=e,it(t)}}function Tn(e,t){return st(e,r=>r.type===t)}function st(e,t){if(t(e))return[e];let r=[];if(e.children)for(let o of e.children)r=[...r,...st(o,t)];return r}async function ir(e,t){if(await t(e))return[e];let r=[];if(e.children)for(let o of e.children)r=[...r,...await ir(o,t)];return r}async function at(e,t){if(e.children){let r=e.children.slice();for(let o of r){let n=await t(o);if(n!==void 0){let i=e.children.indexOf(o);n?e.children.splice(i,1,n):e.children.splice(i,1)}else await at(o,t)}}}function ct(e,t){return st(e,r=>r.type===t)[0]}async function Ce(e,t){await ir(e,t)}function R(e){if(!e)return"";let t=[];if(e.text!==void 0)return e.text;for(let r of e.children)t.push(R(r));return t.join("")}function lt(e,t=!0){if(Tn(e,"\u26A0").length>0)throw new Error(`Parse error in: ${R(e)}`);if(e.text!==void 0)return e.text;let o=[e.type];for(let n of e.children)n.type&&!n.type.endsWith("Mark")&&n.type!=="Comment"&&o.push(lt(n,t)),n.text&&(t&&n.text.trim()||!t)&&o.push(n.text);return o}function Cn(e){return e.getUTCHours()===0&&e.getUTCMinutes()===0&&e.getUTCSeconds()===0?e.getFullYear()+"-"+String(e.getMonth()+1).padStart(2,"0")+"-"+String(e.getDate()).padStart(2,"0"):e.toISOString()}function ce(e){if(!e||typeof e!="object")return e;if(Array.isArray(e))return e.map(ce);if(e instanceof Date)return Cn(e);let t={};for(let r of Object.keys(e)){let o=r.split("."),n=t;for(let i=0;ino,copyToClipboard:()=>go,deleteLine:()=>ho,dispatch:()=>to,downloadFile:()=>Gn,filterBox:()=>Wn,flashNotification:()=>Yn,fold:()=>so,foldAll:()=>lo,getCurrentPage:()=>Mn,getCursor:()=>kn,getSelection:()=>Nn,getText:()=>In,getUiOption:()=>oo,goHistory:()=>Kn,hidePanel:()=>Vn,insertAtCursor:()=>eo,insertAtPos:()=>zn,moveCursor:()=>Xn,moveCursorToLine:()=>Zn,navigate:()=>Ln,newWindow:()=>Bn,openCommandPalette:()=>_n,openPageNavigator:()=>$n,openSearchPanel:()=>fo,openUrl:()=>qn,prompt:()=>ro,redo:()=>mo,reloadConfigAndCommands:()=>jn,reloadPage:()=>Dn,reloadUI:()=>Un,replaceRange:()=>Jn,save:()=>Rn,setSelection:()=>Fn,setText:()=>On,setUiOption:()=>io,showPanel:()=>Qn,toggleFold:()=>co,undo:()=>po,unfold:()=>ao,unfoldAll:()=>uo,uploadFile:()=>Hn,vimEx:()=>yo});typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function l(e,...t){return globalThis.syscall(e,...t)}function Mn(){return l("editor.getCurrentPage")}function In(){return l("editor.getText")}function On(e,t=!1){return l("editor.setText",e,t)}function kn(){return l("editor.getCursor")}function Nn(){return l("editor.getSelection")}function Fn(e,t){return l("editor.setSelection",e,t)}function Rn(){return l("editor.save")}function Ln(e,t=!1,r=!1){return l("editor.navigate",e,t,r)}function $n(e="page"){return l("editor.openPageNavigator",e)}function _n(){return l("editor.openCommandPalette")}function Dn(){return l("editor.reloadPage")}function Un(){return l("editor.reloadUI")}function jn(){return l("editor.reloadConfigAndCommands")}function qn(e,t=!1){return l("editor.openUrl",e,t)}function Bn(){return l("editor.newWindow")}function Kn(e){return l("editor.goHistory",e)}function Gn(e,t){return l("editor.downloadFile",e,t)}function Hn(e,t){return l("editor.uploadFile",e,t)}function Yn(e,t="info"){return l("editor.flashNotification",e,t)}function Wn(e,t,r="",o=""){return l("editor.filterBox",e,t,r,o)}function Qn(e,t,r,o=""){return l("editor.showPanel",e,t,r,o)}function Vn(e){return l("editor.hidePanel",e)}function zn(e,t){return l("editor.insertAtPos",e,t)}function Jn(e,t,r){return l("editor.replaceRange",e,t,r)}function Xn(e,t=!1){return l("editor.moveCursor",e,t)}function Zn(e,t=1,r=!1){return l("editor.moveCursorToLine",e,t,r)}function eo(e){return l("editor.insertAtCursor",e)}function to(e){return l("editor.dispatch",e)}function ro(e,t=""){return l("editor.prompt",e,t)}function no(e){return l("editor.confirm",e)}function oo(e){return l("editor.getUiOption",e)}function io(e,t){return l("editor.setUiOption",e,t)}function so(){return l("editor.fold")}function ao(){return l("editor.unfold")}function co(){return l("editor.toggleFold")}function lo(){return l("editor.foldAll")}function uo(){return l("editor.unfoldAll")}function po(){return l("editor.undo")}function mo(){return l("editor.redo")}function fo(){return l("editor.openSearchPanel")}function go(e){return l("editor.copyToClipboard",e)}function ho(){return l("editor.deleteLine")}function yo(e){return l("editor.vimEx",e)}var N={};U(N,{parseMarkdown:()=>xo,renderParseTree:()=>bo});function xo(e){return l("markdown.parseMarkdown",e)}function bo(e){return l("markdown.renderParseTree",e)}var $={};U($,{deleteAttachment:()=>Oo,deleteFile:()=>Lo,deletePage:()=>vo,fileExists:()=>$o,getAttachmentMeta:()=>Co,getFileMeta:()=>Fo,getPageMeta:()=>Po,listAttachments:()=>To,listFiles:()=>ko,listPages:()=>wo,listPlugs:()=>Eo,readAttachment:()=>Mo,readFile:()=>No,readPage:()=>Ao,writeAttachment:()=>Io,writeFile:()=>Ro,writePage:()=>So});function wo(){return l("space.listPages")}function Po(e){return l("space.getPageMeta",e)}function Ao(e){return l("space.readPage",e)}function So(e,t){return l("space.writePage",e,t)}function vo(e){return l("space.deletePage",e)}function Eo(){return l("space.listPlugs")}function To(){return l("space.listAttachments")}function Co(e){return l("space.getAttachmentMeta",e)}function Mo(e){return l("space.readAttachment",e)}function Io(e,t){return l("space.writeAttachment",e,t)}function Oo(e){return l("space.deleteAttachment",e)}function ko(){return l("space.listFiles")}function No(e){return l("space.readFile",e)}function Fo(e){return l("space.getFileMeta",e)}function Ro(e,t){return l("space.writeFile",e,t)}function Lo(e){return l("space.deleteFile",e)}function $o(e){return l("space.fileExists",e)}var S={};U(S,{applyAttributeExtractors:()=>Bo,getEnv:()=>Yo,getMode:()=>Wo,getSpaceConfig:()=>Ko,getVersion:()=>Qo,invokeCommand:()=>Do,invokeFunction:()=>_o,invokeSpaceFunction:()=>qo,listCommands:()=>Uo,listSyscalls:()=>jo,reloadConfig:()=>Ho,reloadPlugs:()=>Go});function _o(e,...t){return l("system.invokeFunction",e,...t)}function Do(e,t){return l("system.invokeCommand",e,t)}function Uo(){return l("system.listCommands")}function jo(){return l("system.listSyscalls")}function qo(e,...t){return l("system.invokeSpaceFunction",e,...t)}function Bo(e,t,r){return l("system.applyAttributeExtractors",e,t,r)}async function Ko(e,t){return await l("system.getSpaceConfig",e)??t}function Go(){return l("system.reloadPlugs")}function Ho(){return l("system.reloadConfig")}function Yo(){return l("system.getEnv")}function Wo(){return l("system.getMode")}function Qo(){return l("system.getVersion")}var Q={};U(Q,{del:()=>Jo,get:()=>zo,set:()=>Vo});function Vo(e,t){return l("clientStore.set",e,t)}function zo(e){return l("clientStore.get",e)}function Jo(e){return l("clientStore.delete",e)}var Me={};U(Me,{listLanguages:()=>ti,parseLanguage:()=>ei});function ei(e,t){return l("language.parseLanguage",e,t)}function ti(){return l("language.listLanguages")}var ne={};U(ne,{parseTemplate:()=>ni,renderTemplate:()=>ri});function ri(e,t,r={}){return l("template.renderTemplate",e,t,r)}function ni(e){return l("template.parseTemplate",e)}var he={};U(he,{dispatchEvent:()=>si,listEvents:()=>ai});function si(e,t,r){return new Promise((o,n)=>{let i=-1;r&&(i=setTimeout(()=>{console.log("Timeout!"),n("timeout")},r)),l("event.dispatch",e,t).then(s=>{i!==-1&&clearTimeout(i),o(s)}).catch(n)})}function ai(){return l("event.list")}var B={};U(B,{parse:()=>li,stringify:()=>ui});function li(e){return l("yaml.parse",e)}function ui(e){return l("yaml.stringify",e)}var oe={};U(oe,{ack:()=>di,batchAck:()=>fi,batchSend:()=>mi,getQueueStats:()=>gi,send:()=>pi});function pi(e,t){return l("mq.send",e,t)}function mi(e,t){return l("mq.batchSend",e,t)}function di(e,t){return l("mq.ack",e,t)}function fi(e,t){return l("mq.batchAck",e,t)}function gi(e){return l("mq.getQueueStats",e)}var bi=/(!?\[\[)([^\]\|]+)(?:\|([^\]]+))?(\]\])/g;var Qa=new RegExp("^"+bi.source);function sr(e){return e[0]!=="#"?(console.error("extractHashtag called on already clean string",e),e):e[1]==="<"?e.slice(-1)!==">"?e.slice(2):e.slice(2,-1):e.slice(1)}async function V(e,t={}){let r={tags:[]},o=[];it(e),await at(e,async n=>{if(n.type==="Paragraph"&&n.parent?.type==="Document"){let i=!0,s=new Set;for(let c of n.children)if(c.text){if(c.text.startsWith(` +var An=Object.defineProperty;var U=(e,t)=>{for(var r in t)An(e,r,{get:t[r],enumerable:!0})};var ge=e=>{throw new Error("Not initialized yet")},ot=typeof window>"u"&&typeof globalThis.WebSocketPair>"u";typeof Deno>"u"&&(self.Deno={args:[],build:{arch:"x86_64"},env:{get(){}}});var nt=new Map,rt=0;ot&&(globalThis.syscall=async(e,...t)=>await new Promise((r,o)=>{rt++,nt.set(rt,{resolve:r,reject:o}),ge({type:"sys",id:rt,name:e,args:t})}));function nr(e,t,r){ot&&(ge=r,self.addEventListener("message",o=>{(async()=>{let n=o.data;switch(n.type){case"inv":{let i=e[n.name];if(!i)throw new Error(`Function not loaded: ${n.name}`);try{let s=await Promise.resolve(i(...n.args||[]));ge({type:"invr",id:n.id,result:s})}catch(s){console.error("An exception was thrown as a result of invoking function",n.name,"error:",s.message),ge({type:"invr",id:n.id,error:s.message})}}break;case"sysr":{let i=n.id,s=nt.get(i);if(!s)throw Error("Invalid request id");nt.delete(i),n.error?s.reject(new Error(n.error)):s.resolve(n.result)}break}})().catch(console.error)}),ge({type:"manifest",manifest:t}))}function Sn(e){let t=atob(e),r=t.length,o=new Uint8Array(r);for(let n=0;n0?or(r):void 0;t={method:e.method,headers:Object.fromEntries(e.headers.entries()),base64Body:o},e=e.url}return syscall("sandboxFetch.fetch",e,t)}globalThis.nativeFetch=globalThis.fetch;function vn(){globalThis.fetch=async function(e,t){let r=t&&t.body?or(new Uint8Array(await new Response(t.body).arrayBuffer())):void 0,o=await En(e,t&&{method:t.method,headers:t.headers,base64Body:r});return new Response(o.base64Body?Sn(o.base64Body):null,{status:o.status,headers:o.headers})}}ot&&vn();function it(e){if(e.children)for(let t of e.children){if(t.parent)return;t.parent=e,it(t)}}function Tn(e,t){return st(e,r=>r.type===t)}function st(e,t){if(t(e))return[e];let r=[];if(e.children)for(let o of e.children)r=[...r,...st(o,t)];return r}async function ir(e,t){if(await t(e))return[e];let r=[];if(e.children)for(let o of e.children)r=[...r,...await ir(o,t)];return r}async function at(e,t){if(e.children){let r=e.children.slice();for(let o of r){let n=await t(o);if(n!==void 0){let i=e.children.indexOf(o);n?e.children.splice(i,1,n):e.children.splice(i,1)}else await at(o,t)}}}function ct(e,t){return st(e,r=>r.type===t)[0]}async function Ce(e,t){await ir(e,t)}function R(e){if(!e)return"";let t=[];if(e.text!==void 0)return e.text;for(let r of e.children)t.push(R(r));return t.join("")}function lt(e,t=!0){if(Tn(e,"\u26A0").length>0)throw new Error(`Parse error in: ${R(e)}`);if(e.text!==void 0)return e.text;let o=[e.type];for(let n of e.children)n.type&&!n.type.endsWith("Mark")&&n.type!=="Comment"&&o.push(lt(n,t)),n.text&&(t&&n.text.trim()||!t)&&o.push(n.text);return o}function Cn(e){return e.getUTCHours()===0&&e.getUTCMinutes()===0&&e.getUTCSeconds()===0?e.getFullYear()+"-"+String(e.getMonth()+1).padStart(2,"0")+"-"+String(e.getDate()).padStart(2,"0"):e.toISOString()}function ce(e){if(!e||typeof e!="object")return e;if(Array.isArray(e))return e.map(ce);if(e instanceof Date)return Cn(e);let t={};for(let r of Object.keys(e)){let o=r.split("."),n=t;for(let i=0;ino,copyToClipboard:()=>go,deleteLine:()=>ho,dispatch:()=>to,downloadFile:()=>Kn,filterBox:()=>Wn,flashNotification:()=>Yn,fold:()=>so,foldAll:()=>lo,getCurrentPage:()=>Mn,getCursor:()=>Nn,getSelection:()=>kn,getText:()=>In,getUiOption:()=>oo,goHistory:()=>Hn,hidePanel:()=>Vn,insertAtCursor:()=>eo,insertAtPos:()=>zn,moveCursor:()=>Xn,moveCursorToLine:()=>Zn,navigate:()=>Ln,newWindow:()=>Bn,openCommandPalette:()=>_n,openPageNavigator:()=>$n,openSearchPanel:()=>fo,openUrl:()=>qn,prompt:()=>ro,redo:()=>mo,reloadConfigAndCommands:()=>jn,reloadPage:()=>Dn,reloadUI:()=>Un,replaceRange:()=>Jn,save:()=>Rn,setSelection:()=>Fn,setText:()=>On,setUiOption:()=>io,showPanel:()=>Qn,toggleFold:()=>co,undo:()=>po,unfold:()=>ao,unfoldAll:()=>uo,uploadFile:()=>Gn,vimEx:()=>yo});typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function l(e,...t){return globalThis.syscall(e,...t)}function Mn(){return l("editor.getCurrentPage")}function In(){return l("editor.getText")}function On(e,t=!1){return l("editor.setText",e,t)}function Nn(){return l("editor.getCursor")}function kn(){return l("editor.getSelection")}function Fn(e,t){return l("editor.setSelection",e,t)}function Rn(){return l("editor.save")}function Ln(e,t=!1,r=!1){return l("editor.navigate",e,t,r)}function $n(e="page"){return l("editor.openPageNavigator",e)}function _n(){return l("editor.openCommandPalette")}function Dn(){return l("editor.reloadPage")}function Un(){return l("editor.reloadUI")}function jn(){return l("editor.reloadConfigAndCommands")}function qn(e,t=!1){return l("editor.openUrl",e,t)}function Bn(){return l("editor.newWindow")}function Hn(e){return l("editor.goHistory",e)}function Kn(e,t){return l("editor.downloadFile",e,t)}function Gn(e,t){return l("editor.uploadFile",e,t)}function Yn(e,t="info"){return l("editor.flashNotification",e,t)}function Wn(e,t,r="",o=""){return l("editor.filterBox",e,t,r,o)}function Qn(e,t,r,o=""){return l("editor.showPanel",e,t,r,o)}function Vn(e){return l("editor.hidePanel",e)}function zn(e,t){return l("editor.insertAtPos",e,t)}function Jn(e,t,r){return l("editor.replaceRange",e,t,r)}function Xn(e,t=!1){return l("editor.moveCursor",e,t)}function Zn(e,t=1,r=!1){return l("editor.moveCursorToLine",e,t,r)}function eo(e){return l("editor.insertAtCursor",e)}function to(e){return l("editor.dispatch",e)}function ro(e,t=""){return l("editor.prompt",e,t)}function no(e){return l("editor.confirm",e)}function oo(e){return l("editor.getUiOption",e)}function io(e,t){return l("editor.setUiOption",e,t)}function so(){return l("editor.fold")}function ao(){return l("editor.unfold")}function co(){return l("editor.toggleFold")}function lo(){return l("editor.foldAll")}function uo(){return l("editor.unfoldAll")}function po(){return l("editor.undo")}function mo(){return l("editor.redo")}function fo(){return l("editor.openSearchPanel")}function go(e){return l("editor.copyToClipboard",e)}function ho(){return l("editor.deleteLine")}function yo(e){return l("editor.vimEx",e)}var k={};U(k,{parseMarkdown:()=>xo,renderParseTree:()=>bo});function xo(e){return l("markdown.parseMarkdown",e)}function bo(e){return l("markdown.renderParseTree",e)}var $={};U($,{deleteAttachment:()=>Oo,deleteFile:()=>Lo,deletePage:()=>Eo,fileExists:()=>$o,getAttachmentMeta:()=>Co,getFileMeta:()=>Fo,getPageMeta:()=>Po,listAttachments:()=>To,listFiles:()=>No,listPages:()=>wo,listPlugs:()=>vo,readAttachment:()=>Mo,readFile:()=>ko,readPage:()=>Ao,writeAttachment:()=>Io,writeFile:()=>Ro,writePage:()=>So});function wo(){return l("space.listPages")}function Po(e){return l("space.getPageMeta",e)}function Ao(e){return l("space.readPage",e)}function So(e,t){return l("space.writePage",e,t)}function Eo(e){return l("space.deletePage",e)}function vo(){return l("space.listPlugs")}function To(){return l("space.listAttachments")}function Co(e){return l("space.getAttachmentMeta",e)}function Mo(e){return l("space.readAttachment",e)}function Io(e,t){return l("space.writeAttachment",e,t)}function Oo(e){return l("space.deleteAttachment",e)}function No(){return l("space.listFiles")}function ko(e){return l("space.readFile",e)}function Fo(e){return l("space.getFileMeta",e)}function Ro(e,t){return l("space.writeFile",e,t)}function Lo(e){return l("space.deleteFile",e)}function $o(e){return l("space.fileExists",e)}var S={};U(S,{applyAttributeExtractors:()=>Bo,getEnv:()=>Yo,getMode:()=>Wo,getSpaceConfig:()=>Ho,getVersion:()=>Qo,invokeCommand:()=>Do,invokeFunction:()=>_o,invokeSpaceFunction:()=>qo,listCommands:()=>Uo,listSyscalls:()=>jo,reloadConfig:()=>Go,reloadPlugs:()=>Ko});function _o(e,...t){return l("system.invokeFunction",e,...t)}function Do(e,t){return l("system.invokeCommand",e,t)}function Uo(){return l("system.listCommands")}function jo(){return l("system.listSyscalls")}function qo(e,...t){return l("system.invokeSpaceFunction",e,...t)}function Bo(e,t,r){return l("system.applyAttributeExtractors",e,t,r)}async function Ho(e,t){return await l("system.getSpaceConfig",e)??t}function Ko(){return l("system.reloadPlugs")}function Go(){return l("system.reloadConfig")}function Yo(){return l("system.getEnv")}function Wo(){return l("system.getMode")}function Qo(){return l("system.getVersion")}var Q={};U(Q,{del:()=>Jo,get:()=>zo,set:()=>Vo});function Vo(e,t){return l("clientStore.set",e,t)}function zo(e){return l("clientStore.get",e)}function Jo(e){return l("clientStore.delete",e)}var Me={};U(Me,{listLanguages:()=>ti,parseLanguage:()=>ei});function ei(e,t){return l("language.parseLanguage",e,t)}function ti(){return l("language.listLanguages")}var ne={};U(ne,{parseTemplate:()=>ni,renderTemplate:()=>ri});function ri(e,t,r={}){return l("template.renderTemplate",e,t,r)}function ni(e){return l("template.parseTemplate",e)}var he={};U(he,{dispatchEvent:()=>si,listEvents:()=>ai});function si(e,t,r){return new Promise((o,n)=>{let i=-1;r&&(i=setTimeout(()=>{console.log("Timeout!"),n("timeout")},r)),l("event.dispatch",e,t).then(s=>{i!==-1&&clearTimeout(i),o(s)}).catch(n)})}function ai(){return l("event.list")}var B={};U(B,{parse:()=>li,stringify:()=>ui});function li(e){return l("yaml.parse",e)}function ui(e){return l("yaml.stringify",e)}var oe={};U(oe,{ack:()=>di,batchAck:()=>fi,batchSend:()=>mi,getQueueStats:()=>gi,send:()=>pi});function pi(e,t){return l("mq.send",e,t)}function mi(e,t){return l("mq.batchSend",e,t)}function di(e,t){return l("mq.ack",e,t)}function fi(e,t){return l("mq.batchAck",e,t)}function gi(e){return l("mq.getQueueStats",e)}var bi=/(!?\[\[)([^\]\|]+)(?:\|([^\]]+))?(\]\])/g;var Qa=new RegExp("^"+bi.source);function sr(e){return e[0]!=="#"?(console.error("extractHashtag called on already clean string",e),e):e[1]==="<"?e.slice(-1)!==">"?e.slice(2):e.slice(2,-1):e.slice(1)}async function V(e,t={}){let r={tags:[]},o=[];it(e),await at(e,async n=>{if(n.type==="Paragraph"&&n.parent?.type==="Document"){let i=!0,s=new Set;for(let c of n.children)if(c.text){if(c.text.startsWith(` `)&&c.text!==` `)break;if(c.text.trim()){i=!1;break}}else if(c.type==="Hashtag"){let a=sr(c.children[0].text);s.add(a),(t.removeTags===!0||t.removeTags?.includes(a))&&(c.children[0].text="")}else if(c.type){i=!1;break}i&&o.push(...s)}if(n.type==="FrontMatter"){let i=n.children[1].children[0],s=R(i);try{let c=await B.parse(s),a={...c};if(r={...r,...c},r.tags||(r.tags=[]),typeof r.tags=="string"&&o.push(...r.tags.split(/,\s*|\s+/)),Array.isArray(r.tags)&&o.push(...r.tags),t.removeKeys&&t.removeKeys.length>0){let p=!1;for(let m of t.removeKeys)m in a&&(delete a[m],p=!0);p&&(i.text=await B.stringify(a))}if(Object.keys(a).length===0||t.removeFrontmatterSection)return null}catch{}}});try{r.tags=[...new Set([...o.map(n=>String(n).replace(/^#/,""))])]}catch(n){console.error("Error while processing tags",n)}return r=ce(r),r}async function ut(e,t){let r=null;if(await Ce(e,async o=>{if(o.type==="FrontMatter"){let n=o.children[1].children[0],i=R(n);try{let s="";if(typeof t=="string")s=i+t+` `;else{let a={...await B.parse(i),...t};s=await B.stringify(a)}r={changes:{from:n.from,to:n.to,insert:s}}}catch(s){console.error("Error parsing YAML",s)}return!0}return!1}),!r){let o="";typeof t=="string"?o=t+` `:o=await B.stringify(t),r={changes:{from:0,to:0,insert:`--- `+o+`--- -`}}}return r}function ar(e){let t={querySource:""},[r,o,...n]=e;if(r!=="Query")throw new Error(`Expected query type, got ${r}`);t.querySource=o[1];for(let i of n){let[s]=i;switch(s){case"WhereClause":{t.filter?t.filter=["and",t.filter,M(i[2])]:t.filter=M(i[2]);break}case"OrderClause":{t.orderBy||(t.orderBy=[]);for(let c of i.slice(2))if(c[0]==="OrderBy"){let a=c[1][1];c[2]?t.orderBy.push({expr:M(a),desc:c[2][1][1]==="desc"}):t.orderBy.push({expr:M(a),desc:!1})}break}case"LimitClause":{t.limit=M(i[2][1]);break}case"SelectClause":{for(let c of i.slice(2))c[0]==="Select"&&(t.select||(t.select=[]),c.length===2?t.select.push({name:ye(c[1][1])}):t.select.push({name:ye(c[3][1]),expr:M(c[1])}));break}case"RenderClause":{let c=i.find(a=>a[0]==="PageRef");t.render=c[1].slice(2,-2),t.renderAll=!!i.find(a=>a[0]==="all");break}default:throw new Error(`Unknown clause type: ${s}`)}}return t}function ye(e){return e.startsWith("`")&&e.endsWith("`")?e.slice(1,-1):e}function M(e){if(["LVal","Expression","Value"].includes(e[0]))return M(e[1]);switch(e[0]){case"Attribute":return["attr",M(e[1]),ye(e[3][1])];case"Identifier":return["attr",ye(e[1])];case"String":return["string",e[1].slice(1,-1)];case"Number":return["number",+e[1]];case"Bool":return["boolean",e[1][1]==="true"];case"null":return["null"];case"Regex":return["regexp",e[1].slice(1,-1),"i"];case"List":{let t=[];for(let r of e.slice(2))r[0]==="Expression"&&t.push(r);return["array",t.map(M)]}case"Object":{let t=[];for(let r of e.slice(2)){if(typeof r=="string")continue;let[o,n,i,s]=r;t.push([n[1].slice(1,-1),M(s)])}return["object",t]}case"BinExpression":{let t=M(e[1]),r=e[2][0]==="in"?"in":e[2].trim(),o=M(e[3]);return[r,t,o]}case"LogicalExpression":{let t=M(e[1]),r=e[2],o=M(e[3]);return[r[1],t,o]}case"ParenthesizedExpression":return M(e[2]);case"Call":{let t=ye(e[1][1]),r=[];for(let o of e.slice(2))o[0]==="Expression"&&r.push(o);return["call",t,r.map(M)]}case"UnaryExpression":{if(e[1][0]==="not"||e[1][0]==="!")return["not",M(e[2])];if(e[1][0]==="-")return["-",M(e[2])];throw new Error(`Unknown unary expression: ${e[1][0]}`)}case"TopLevelVal":return["attr"];case"GlobalIdentifier":return["global",e[1].substring(1)];case"TernaryExpression":{let[t,r,o,n,i,s]=e;return["?",M(r),M(n),M(s)]}case"QueryExpression":return["query",ar(e[2])];case"PageRef":return["pageref",e[1].slice(2,-2)];default:throw new Error(`Not supported: ${e[0]}`)}}async function cr(e){let t=lt(await Me.parseLanguage("query",e));return ar(t[1])}async function lr(e,t){let r={};await Ce(t,async i=>{if(t!==i&&i.type==="ListItem")return!0;if(i.type==="Attribute"){let s=ct(i,"AttributeName"),c=ct(i,"AttributeValue");if(s&&c){let a=s.children[0].text,p=c.children[0].text;try{r[a]=ce(await B.parse(p))}catch(m){console.error("Error parsing attribute value as YAML",p,m)}}return!0}return!1});let o=R(t),n=await S.applyAttributeExtractors(e,o,t);return r={...r,...n},r}function pt(e,t){if(t(e))return[e];let r=[];if(e.children)for(let o of e.children)r=[...r,...pt(o,t)];return r}function mt(e,t){return pt(e,r=>r.type===t)[0]}function ur(e,t){pt(e,t)}typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function b(e,...t){return globalThis.syscall(e,...t)}var Ie={};U(Ie,{parseMarkdown:()=>Pi,renderParseTree:()=>Ai});function Pi(e){return b("markdown.parseMarkdown",e)}function Ai(e){return b("markdown.renderParseTree",e)}var Oe={};U(Oe,{deleteAttachment:()=>Fi,deleteFile:()=>Di,deletePage:()=>Ci,fileExists:()=>Ui,getAttachmentMeta:()=>Oi,getFileMeta:()=>$i,getPageMeta:()=>vi,listAttachments:()=>Ii,listFiles:()=>Ri,listPages:()=>Si,listPlugs:()=>Mi,readAttachment:()=>ki,readFile:()=>Li,readPage:()=>Ei,writeAttachment:()=>Ni,writeFile:()=>_i,writePage:()=>Ti});function Si(){return b("space.listPages")}function vi(e){return b("space.getPageMeta",e)}function Ei(e){return b("space.readPage",e)}function Ti(e,t){return b("space.writePage",e,t)}function Ci(e){return b("space.deletePage",e)}function Mi(){return b("space.listPlugs")}function Ii(){return b("space.listAttachments")}function Oi(e){return b("space.getAttachmentMeta",e)}function ki(e){return b("space.readAttachment",e)}function Ni(e,t){return b("space.writeAttachment",e,t)}function Fi(e){return b("space.deleteAttachment",e)}function Ri(){return b("space.listFiles")}function Li(e){return b("space.readFile",e)}function $i(e){return b("space.getFileMeta",e)}function _i(e,t){return b("space.writeFile",e,t)}function Di(e){return b("space.deleteFile",e)}function Ui(e){return b("space.fileExists",e)}var ke={};U(ke,{parse:()=>zi,stringify:()=>Ji});function zi(e){return b("yaml.parse",e)}function Ji(e){return b("yaml.stringify",e)}async function rs(e,t){let r=await Oe.readPage(e),o=await Ie.parseMarkdown(r),n;return ur(o,i=>{if(i.type!=="FencedCode")return!1;let s=mt(i,"CodeInfo");if(t&&!s||t&&!t.includes(s.children[0].text))return!1;let c=mt(i,"CodeText");return c?(n=c.children[0].text,!0):!1}),n}async function pr(e,t=["yaml"]){let r=await rs(e,t);if(r!==void 0)try{return ke.parse(r)}catch(o){throw console.error("YAML Page parser error",o),new Error(`YAML Error: ${o.message}`)}}async function Ne(e){try{let r=(await pr("SECRETS",["yaml","secrets"]))[e];if(r===void 0)throw new Error(`No such secret: ${e}`);return r}catch(t){throw t.message==="Not found"?new Error(`No such secret: ${e}`):t}}var le=class{apiKey;baseUrl;name;modelName;requireAuth;constructor(t,r,o,n,i=!0){this.apiKey=t,this.baseUrl=r,this.name=o,this.modelName=n,this.requireAuth=i}};var Fe=class extends le{constructor(t,r,o){super(t,o,"DALL-E",r)}async generateImage(t){try{T||await z();let r=await nativeFetch(`${this.baseUrl}/images/generations`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({model:this.modelName,prompt:t.prompt,n:t.numImages,size:t.size,quality:t.quality,response_format:"b64_json"})});if(!r.ok)throw new Error(`HTTP error, status: ${r.status}`);let o=await r.json();if(!o||o.length===0)throw new Error("Invalid response from DALL-E.");return o}catch(r){throw console.error("Error calling DALL\xB7E image generation endpoint:",r),r}}};var ie=function(e,t){if(!(this instanceof ie))return new ie(e,t);this.INITIALIZING=-1,this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,this.url=e,t=t||{},this.headers=t.headers||{},this.payload=t.payload!==void 0?t.payload:"",this.method=t.method||this.payload&&"POST"||"GET",this.withCredentials=!!t.withCredentials,this.debug=!!t.debug,this.FIELD_SEPARATOR=":",this.listeners={},this.xhr=null,this.readyState=this.INITIALIZING,this.progress=0,this.chunk="",this.addEventListener=function(r,o){this.listeners[r]===void 0&&(this.listeners[r]=[]),this.listeners[r].indexOf(o)===-1&&this.listeners[r].push(o)},this.removeEventListener=function(r,o){if(this.listeners[r]!==void 0){var n=[];this.listeners[r].forEach(function(i){i!==o&&n.push(i)}),n.length===0?delete this.listeners[r]:this.listeners[r]=n}},this.dispatchEvent=function(r){if(!r)return!0;this.debug&&console.debug(r),r.source=this;var o="on"+r.type;return this.hasOwnProperty(o)&&(this[o].call(this,r),r.defaultPrevented)?!1:this.listeners[r.type]?this.listeners[r.type].every(function(n){return n(r),!r.defaultPrevented}):!0},this._setReadyState=function(r){var o=new CustomEvent("readystatechange");o.readyState=r,this.readyState=r,this.dispatchEvent(o)},this._onStreamFailure=function(r){var o=new CustomEvent("error");o.data=r.currentTarget.response,this.dispatchEvent(o),this.close()},this._onStreamAbort=function(r){this.dispatchEvent(new CustomEvent("abort")),this.close()},this._onStreamProgress=function(r){if(this.xhr){if(this.xhr.status!==200){this._onStreamFailure(r);return}this.readyState==this.CONNECTING&&(this.dispatchEvent(new CustomEvent("open")),this._setReadyState(this.OPEN));var o=this.xhr.responseText.substring(this.progress);this.progress+=o.length;var n=(this.chunk+o).split(/(\r\n\r\n|\r\r|\n\n)/g),i=n.pop();n.forEach(function(s){s.trim().length>0&&this.dispatchEvent(this._parseEventChunk(s))}.bind(this)),this.chunk=i}},this._onStreamLoaded=function(r){this._onStreamProgress(r),this.dispatchEvent(this._parseEventChunk(this.chunk)),this.chunk=""},this._parseEventChunk=function(r){if(!r||r.length===0)return null;this.debug&&console.debug(r);var o={id:null,retry:null,data:null,event:null};r.split(/\n|\r\n|\r/).forEach(function(i){var s=i.indexOf(this.FIELD_SEPARATOR),c,a;if(s>0){var p=i[s+1]===" "?2:1;c=i.substring(0,s),a=i.substring(s+p)}else if(s<0)c=i,a="";else return;c in o&&(c==="data"&&o[c]!==null?o.data+=` -`+a:o[c]=a)}.bind(this));var n=new CustomEvent(o.event||"message");return n.data=o.data||"",n.id=o.id,n},this._checkStreamClosed=function(){this.xhr&&this.xhr.readyState===XMLHttpRequest.DONE&&this._setReadyState(this.CLOSED)},this.stream=function(){if(!this.xhr){this._setReadyState(this.CONNECTING),this.xhr=new XMLHttpRequest,this.xhr.addEventListener("progress",this._onStreamProgress.bind(this)),this.xhr.addEventListener("load",this._onStreamLoaded.bind(this)),this.xhr.addEventListener("readystatechange",this._checkStreamClosed.bind(this)),this.xhr.addEventListener("error",this._onStreamFailure.bind(this)),this.xhr.addEventListener("abort",this._onStreamAbort.bind(this)),this.xhr.open(this.method,this.url);for(var r in this.headers)this.xhr.setRequestHeader(r,this.headers[r]);this.xhr.withCredentials=this.withCredentials,this.xhr.send(this.payload)}},this.close=function(){this.readyState!==this.CLOSED&&(this.xhr.abort(),this.xhr=null,this._setReadyState(this.CLOSED))},(t.start===void 0||t.start)&&this.stream()};typeof exports<"u"&&(exports.SSE=ie);var mr={};function Re(e,t){mr[e]=t}function Le(e){return mr[e]}async function $e(...e){let t=e.join(""),r=new TextEncoder().encode(t),o=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(o)).map(s=>s.toString(16).padStart(2,"0")).join("")}var H=class{apiKey;baseUrl;name;modelName;requireAuth;constructor(t,r,o,n,i=!0){this.apiKey=t,this.baseUrl=r,this.name=o,this.modelName=n,this.requireAuth=i}async generateEmbeddings(t){let r=await $e(this.modelName,t.text),o=Le(r);if(o)return o;let n=await this._generateEmbeddings(t);return Re(r,n),n}};async function dt(){let e=await u.getSelection(),t="";return e.from===e.to?t="":t=(await u.getText()).slice(e.from,e.to),{from:e.from,to:e.to,text:t}}async function _e(){let e=await dt(),t=await u.getText();if(e.text==="")return{from:0,to:t.length,text:t,isWholeNote:!0};let r=e.from===0&&e.to===t.length;return{...e,isWholeNote:r}}async function se(){return(await u.getText()).length}function ft(e,t){let r=e.split(` +`}}}return r}function ar(e){let t={querySource:""},[r,o,...n]=e;if(r!=="Query")throw new Error(`Expected query type, got ${r}`);t.querySource=o[1];for(let i of n){let[s]=i;switch(s){case"WhereClause":{t.filter?t.filter=["and",t.filter,M(i[2])]:t.filter=M(i[2]);break}case"OrderClause":{t.orderBy||(t.orderBy=[]);for(let c of i.slice(2))if(c[0]==="OrderBy"){let a=c[1][1];c[2]?t.orderBy.push({expr:M(a),desc:c[2][1][1]==="desc"}):t.orderBy.push({expr:M(a),desc:!1})}break}case"LimitClause":{t.limit=M(i[2][1]);break}case"SelectClause":{for(let c of i.slice(2))c[0]==="Select"&&(t.select||(t.select=[]),c.length===2?t.select.push({name:ye(c[1][1])}):t.select.push({name:ye(c[3][1]),expr:M(c[1])}));break}case"RenderClause":{let c=i.find(a=>a[0]==="PageRef");t.render=c[1].slice(2,-2),t.renderAll=!!i.find(a=>a[0]==="all");break}default:throw new Error(`Unknown clause type: ${s}`)}}return t}function ye(e){return e.startsWith("`")&&e.endsWith("`")?e.slice(1,-1):e}function M(e){if(["LVal","Expression","Value"].includes(e[0]))return M(e[1]);switch(e[0]){case"Attribute":return["attr",M(e[1]),ye(e[3][1])];case"Identifier":return["attr",ye(e[1])];case"String":return["string",e[1].slice(1,-1)];case"Number":return["number",+e[1]];case"Bool":return["boolean",e[1][1]==="true"];case"null":return["null"];case"Regex":return["regexp",e[1].slice(1,-1),"i"];case"List":{let t=[];for(let r of e.slice(2))r[0]==="Expression"&&t.push(r);return["array",t.map(M)]}case"Object":{let t=[];for(let r of e.slice(2)){if(typeof r=="string")continue;let[o,n,i,s]=r;t.push([n[1].slice(1,-1),M(s)])}return["object",t]}case"BinExpression":{let t=M(e[1]),r=e[2][0]==="in"?"in":e[2].trim(),o=M(e[3]);return[r,t,o]}case"LogicalExpression":{let t=M(e[1]),r=e[2],o=M(e[3]);return[r[1],t,o]}case"ParenthesizedExpression":return M(e[2]);case"Call":{let t=ye(e[1][1]),r=[];for(let o of e.slice(2))o[0]==="Expression"&&r.push(o);return["call",t,r.map(M)]}case"UnaryExpression":{if(e[1][0]==="not"||e[1][0]==="!")return["not",M(e[2])];if(e[1][0]==="-")return["-",M(e[2])];throw new Error(`Unknown unary expression: ${e[1][0]}`)}case"TopLevelVal":return["attr"];case"GlobalIdentifier":return["global",e[1].substring(1)];case"TernaryExpression":{let[t,r,o,n,i,s]=e;return["?",M(r),M(n),M(s)]}case"QueryExpression":return["query",ar(e[2])];case"PageRef":return["pageref",e[1].slice(2,-2)];default:throw new Error(`Not supported: ${e[0]}`)}}async function cr(e){let t=lt(await Me.parseLanguage("query",e));return ar(t[1])}async function lr(e,t){let r={};await Ce(t,async i=>{if(t!==i&&i.type==="ListItem")return!0;if(i.type==="Attribute"){let s=ct(i,"AttributeName"),c=ct(i,"AttributeValue");if(s&&c){let a=s.children[0].text,p=c.children[0].text;try{r[a]=ce(await B.parse(p))}catch(m){console.error("Error parsing attribute value as YAML",p,m)}}return!0}return!1});let o=R(t),n=await S.applyAttributeExtractors(e,o,t);return r={...r,...n},r}function pt(e,t){if(t(e))return[e];let r=[];if(e.children)for(let o of e.children)r=[...r,...pt(o,t)];return r}function mt(e,t){return pt(e,r=>r.type===t)[0]}function ur(e,t){pt(e,t)}typeof self>"u"&&(self={syscall:()=>{throw new Error("Not implemented here")}});function b(e,...t){return globalThis.syscall(e,...t)}var Ie={};U(Ie,{parseMarkdown:()=>Pi,renderParseTree:()=>Ai});function Pi(e){return b("markdown.parseMarkdown",e)}function Ai(e){return b("markdown.renderParseTree",e)}var Oe={};U(Oe,{deleteAttachment:()=>Fi,deleteFile:()=>Di,deletePage:()=>Ci,fileExists:()=>Ui,getAttachmentMeta:()=>Oi,getFileMeta:()=>$i,getPageMeta:()=>Ei,listAttachments:()=>Ii,listFiles:()=>Ri,listPages:()=>Si,listPlugs:()=>Mi,readAttachment:()=>Ni,readFile:()=>Li,readPage:()=>vi,writeAttachment:()=>ki,writeFile:()=>_i,writePage:()=>Ti});function Si(){return b("space.listPages")}function Ei(e){return b("space.getPageMeta",e)}function vi(e){return b("space.readPage",e)}function Ti(e,t){return b("space.writePage",e,t)}function Ci(e){return b("space.deletePage",e)}function Mi(){return b("space.listPlugs")}function Ii(){return b("space.listAttachments")}function Oi(e){return b("space.getAttachmentMeta",e)}function Ni(e){return b("space.readAttachment",e)}function ki(e,t){return b("space.writeAttachment",e,t)}function Fi(e){return b("space.deleteAttachment",e)}function Ri(){return b("space.listFiles")}function Li(e){return b("space.readFile",e)}function $i(e){return b("space.getFileMeta",e)}function _i(e,t){return b("space.writeFile",e,t)}function Di(e){return b("space.deleteFile",e)}function Ui(e){return b("space.fileExists",e)}var Ne={};U(Ne,{parse:()=>zi,stringify:()=>Ji});function zi(e){return b("yaml.parse",e)}function Ji(e){return b("yaml.stringify",e)}async function rs(e,t){let r=await Oe.readPage(e),o=await Ie.parseMarkdown(r),n;return ur(o,i=>{if(i.type!=="FencedCode")return!1;let s=mt(i,"CodeInfo");if(t&&!s||t&&!t.includes(s.children[0].text))return!1;let c=mt(i,"CodeText");return c?(n=c.children[0].text,!0):!1}),n}async function pr(e,t=["yaml"]){let r=await rs(e,t);if(r!==void 0)try{return Ne.parse(r)}catch(o){throw console.error("YAML Page parser error",o),new Error(`YAML Error: ${o.message}`)}}async function ke(e){try{let r=(await pr("SECRETS",["yaml","secrets"]))[e];if(r===void 0)throw new Error(`No such secret: ${e}`);return r}catch(t){throw t.message==="Not found"?new Error(`No such secret: ${e}`):t}}var le=class{apiKey;baseUrl;name;modelName;requireAuth;constructor(t,r,o,n,i=!0){this.apiKey=t,this.baseUrl=r,this.name=o,this.modelName=n,this.requireAuth=i}};var Fe=class extends le{constructor(t,r,o){super(t,o,"DALL-E",r)}async generateImage(t){try{T||await z();let r=await nativeFetch(`${this.baseUrl}/images/generations`,{method:"POST",headers:{Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({model:this.modelName,prompt:t.prompt,n:t.numImages,size:t.size,quality:t.quality,response_format:"b64_json"})});if(!r.ok)throw new Error(`HTTP error, status: ${r.status}`);let o=await r.json();if(!o||o.length===0)throw new Error("Invalid response from DALL-E.");return o}catch(r){throw console.error("Error calling DALL\xB7E image generation endpoint:",r),r}}};var ie=function(e,t){if(!(this instanceof ie))return new ie(e,t);this.INITIALIZING=-1,this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,this.url=e,t=t||{},this.headers=t.headers||{},this.payload=t.payload!==void 0?t.payload:"",this.method=t.method||this.payload&&"POST"||"GET",this.withCredentials=!!t.withCredentials,this.debug=!!t.debug,this.FIELD_SEPARATOR=":",this.listeners={},this.xhr=null,this.readyState=this.INITIALIZING,this.progress=0,this.chunk="",this.addEventListener=function(r,o){this.listeners[r]===void 0&&(this.listeners[r]=[]),this.listeners[r].indexOf(o)===-1&&this.listeners[r].push(o)},this.removeEventListener=function(r,o){if(this.listeners[r]!==void 0){var n=[];this.listeners[r].forEach(function(i){i!==o&&n.push(i)}),n.length===0?delete this.listeners[r]:this.listeners[r]=n}},this.dispatchEvent=function(r){if(!r)return!0;this.debug&&console.debug(r),r.source=this;var o="on"+r.type;return this.hasOwnProperty(o)&&(this[o].call(this,r),r.defaultPrevented)?!1:this.listeners[r.type]?this.listeners[r.type].every(function(n){return n(r),!r.defaultPrevented}):!0},this._setReadyState=function(r){var o=new CustomEvent("readystatechange");o.readyState=r,this.readyState=r,this.dispatchEvent(o)},this._onStreamFailure=function(r){var o=new CustomEvent("error");o.data=r.currentTarget.response,this.dispatchEvent(o),this.close()},this._onStreamAbort=function(r){this.dispatchEvent(new CustomEvent("abort")),this.close()},this._onStreamProgress=function(r){if(this.xhr){if(this.xhr.status!==200){this._onStreamFailure(r);return}this.readyState==this.CONNECTING&&(this.dispatchEvent(new CustomEvent("open")),this._setReadyState(this.OPEN));var o=this.xhr.responseText.substring(this.progress);this.progress+=o.length;var n=(this.chunk+o).split(/(\r\n\r\n|\r\r|\n\n)/g),i=n.pop();n.forEach(function(s){s.trim().length>0&&this.dispatchEvent(this._parseEventChunk(s))}.bind(this)),this.chunk=i}},this._onStreamLoaded=function(r){this._onStreamProgress(r),this.dispatchEvent(this._parseEventChunk(this.chunk)),this.chunk=""},this._parseEventChunk=function(r){if(!r||r.length===0)return null;this.debug&&console.debug(r);var o={id:null,retry:null,data:null,event:null};r.split(/\n|\r\n|\r/).forEach(function(i){var s=i.indexOf(this.FIELD_SEPARATOR),c,a;if(s>0){var p=i[s+1]===" "?2:1;c=i.substring(0,s),a=i.substring(s+p)}else if(s<0)c=i,a="";else return;c in o&&(c==="data"&&o[c]!==null?o.data+=` +`+a:o[c]=a)}.bind(this));var n=new CustomEvent(o.event||"message");return n.data=o.data||"",n.id=o.id,n},this._checkStreamClosed=function(){this.xhr&&this.xhr.readyState===XMLHttpRequest.DONE&&this._setReadyState(this.CLOSED)},this.stream=function(){if(!this.xhr){this._setReadyState(this.CONNECTING),this.xhr=new XMLHttpRequest,this.xhr.addEventListener("progress",this._onStreamProgress.bind(this)),this.xhr.addEventListener("load",this._onStreamLoaded.bind(this)),this.xhr.addEventListener("readystatechange",this._checkStreamClosed.bind(this)),this.xhr.addEventListener("error",this._onStreamFailure.bind(this)),this.xhr.addEventListener("abort",this._onStreamAbort.bind(this)),this.xhr.open(this.method,this.url);for(var r in this.headers)this.xhr.setRequestHeader(r,this.headers[r]);this.xhr.withCredentials=this.withCredentials,this.xhr.send(this.payload)}},this.close=function(){this.readyState!==this.CLOSED&&(this.xhr.abort(),this.xhr=null,this._setReadyState(this.CLOSED))},(t.start===void 0||t.start)&&this.stream()};typeof exports<"u"&&(exports.SSE=ie);var mr={};function Re(e,t){mr[e]=t}function Le(e){return mr[e]}async function $e(...e){let t=e.join(""),r=new TextEncoder().encode(t),o=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(o)).map(s=>s.toString(16).padStart(2,"0")).join("")}var G=class{apiKey;baseUrl;name;modelName;requireAuth;constructor(t,r,o,n,i=!0){this.apiKey=t,this.baseUrl=r,this.name=o,this.modelName=n,this.requireAuth=i}async generateEmbeddings(t){let r=await $e(this.modelName,t.text),o=Le(r);if(o)return o;let n=await this._generateEmbeddings(t);return Re(r,n),n}};async function dt(){let e=await u.getSelection(),t="";return e.from===e.to?t="":t=(await u.getText()).slice(e.from,e.to),{from:e.from,to:e.to,text:t}}async function _e(){let e=await dt(),t=await u.getText();if(e.text==="")return{from:0,to:t.length,text:t,isWholeNote:!0};let r=e.from===0&&e.to===t.length;return{...e,isWholeNote:r}}async function se(){return(await u.getText()).length}function ft(e,t){let r=e.split(` `),o=0;for(let n=0;n=r.length?"":r[t]}function fr(e,t){let r=ft(e,t);return gt(e,r)}function gr(e,t){let r=ft(e,t);return gt(e,r-1)}function hr(e,t){let r=ft(e,t);return gt(e,r+1)}function yr(e,t){let r=e.split(` `),o=0,n=0,i=e.length;for(let s=0;s=0;a--)if(a===0||r[a-1].trim()===""){n=a===0?0:r.slice(0,a).join(` `).length+1;break}console.log("Looking forwards for the end of the paragraph");for(let a=s;a{try{if(!g){console.log("No data received from LLM");return}a?(["`","-","*"].includes(g.charAt(0))&&(g=` -`+g),u.replaceRange(c,c+s.length,g),a=!1):u.insertAtPos(g,c),c+=g.length,o&&o(g)}catch(y){console.error("Error handling chat stream data:",y),u.flashNotification("An error occurred while processing chat data.","error")}},d=async g=>{console.log("Response complete:",g);let y=p+g.length;console.log("Start of response:",p),console.log("End of response:",y),console.log("Full response:",g),console.log("Post-processors:",i);let x=g;if(i){let P=await u.getText(),w={response:g,lineBefore:gr(P,p),lineCurrent:fr(P,p),lineAfter:hr(P,y)};for(let k of i)console.log("Applying post-processor:",k),x=await S.invokeSpaceFunction(k,w);console.log("Data changed by post-processors, updating editor"),u.replaceRange(p,y,x)}n&&n(g)};await this.chatWithAI({...t,onDataReceived:m,onResponseComplete:d})}async singleMessageChat(t,r,o=!1){let n=[{role:"user",content:t}];return r&&n.unshift({role:"system",content:r}),o&&(n=await ue(n)),await this.chatWithAI({messages:n,stream:!1})}};var De=class extends Y{name="Gemini";constructor(t,r){super("Gemini",t,"https://generativelanguage.googleapis.com",r)}async listModels(){let t=`${this.baseUrl}/v1beta/models?key=${this.apiKey}`;try{let r=await fetch(t);if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);return(await r.json()).models||[]}catch(r){throw console.error("Failed to fetch models:",r),r}}async chatWithAI({messages:t,stream:r,onDataReceived:o}){return r?await this.streamChat({messages:t,stream:r,onDataReceived:o}):await this.nonStreamingChat(t)}mapRolesForGemini(t){let r=[],o="";return t.forEach(n=>{let i="user";n.role==="system"||n.role==="user"?i="user":n.role==="assistant"&&(i="model"),i==="model"&&(r.length===0||o==="model")||(i==="user"&&o==="user"?r[r.length-1].parts[0].text+=" "+n.content:r.push({role:i,parts:[{text:n.content}]})),o=i}),r}streamChat(t){let{messages:r,onDataReceived:o}=t;try{let n=`${this.baseUrl}/v1beta/models/${this.modelName}:streamGenerateContent?key=${this.apiKey}&alt=sse`,i={"Content-Type":"application/json"},s=this.mapRolesForGemini(r),c={method:"POST",headers:i,payload:JSON.stringify({contents:s}),withCredentials:!1},a=new ie(n,c),p="";a.addEventListener("message",m=>{try{if(m.data=="[DONE]")return a.close(),p;if(!m.data)console.error("Received empty message from Gemini"),console.log("source: ",a);else{let d=JSON.parse(m.data),g=d.candidates[0].content.parts[0].text||d.text||"";p+=g,o&&o(g)}}catch(d){console.error("Error processing message event:",d,m.data)}}),a.addEventListener("end",()=>(a.close(),p)),a.addEventListener("error",m=>{console.error("SSE error:",m),a.close()}),a.stream()}catch(n){throw console.error("Error streaming from Gemini chat endpoint:",n),n}}async nonStreamingChat(t){let r=this.mapRolesForGemini(t),o=await nativeFetch(`${this.baseUrl}/v1beta/models/${this.modelName}:generateContent?key=${this.apiKey}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:r})});if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);return(await o.json()).candidates[0].content.parts[0].text}},Ue=class extends H{constructor(t,r,o="https://generativelanguage.googleapis.com",n=!0){super(t,o,"Gemini",r,n)}async _generateEmbeddings(t){let r=JSON.stringify({model:this.modelName,content:{parts:[{text:t.text}]}}),o={"Content-Type":"application/json"};this.requireAuth&&(o.Authorization=`Bearer ${this.apiKey}`);let n=await nativeFetch(`${this.baseUrl}/v1beta/models/${this.modelName}:embedContent?key=${this.apiKey}`,{method:"POST",headers:o,body:r});if(!n.ok)throw console.error("HTTP response: ",n),console.error("HTTP response body: ",await n.json()),new Error(`HTTP error, status: ${n.status}`);let i=await n.json();if(!i||!i.embedding||!i.embedding.values)throw new Error("Invalid response from Gemini.");return i.embedding.values}};var pe=class extends Y{name="OpenAI";requireAuth;constructor(t,r,o,n){super("OpenAI",t,o,r),this.requireAuth=n}async chatWithAI({messages:t,stream:r,onDataReceived:o,onResponseComplete:n}){return r?await this.streamChat({messages:t,onDataReceived:o,onResponseComplete:n}):await this.nonStreamingChat(t)}async streamChat(t){let{messages:r,onDataReceived:o,onResponseComplete:n}=t;try{let i=`${this.baseUrl}/chat/completions`,s={"Content-Type":"application/json"};this.requireAuth&&(s.Authorization=`Bearer ${this.apiKey}`);let c={method:"POST",headers:s,payload:JSON.stringify({model:this.modelName,stream:!0,messages:r}),withCredentials:!1},a=new ie(i,c),p="";a.addEventListener("message",function(m){try{if(m.data=="[DONE]")return a.close(),n&&n(p),p;{let g=JSON.parse(m.data).choices[0]?.delta?.content||"";p+=g,o&&o(g)}}catch(d){console.error("Error processing message event:",d,m.data)}}),a.addEventListener("end",function(){return a.close(),n&&n(p),p}),a.addEventListener("error",m=>{console.error("SSE error:",m),a.close()}),a.stream()}catch(i){throw console.error("Error streaming from OpenAI chat endpoint:",i),await u.flashNotification("Error streaming from OpenAI chat endpoint.","error"),i}return""}async nonStreamingChat(t){try{let r=JSON.stringify({model:this.modelName,messages:t}),o={Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},n=await nativeFetch(this.baseUrl+"/chat/completions",{method:"POST",headers:o,body:r});if(!n.ok)throw console.error("http response: ",n),console.error("http response body: ",await n.json()),new Error(`HTTP error, status: ${n.status}`);let i=await n.json();if(!i||!i.choices||i.choices.length===0)throw new Error("Invalid response from OpenAI.");return i.choices[0].message.content}catch(r){throw console.error("Error calling OpenAI chat endpoint:",r),await u.flashNotification("Error calling OpenAI chat endpoint.","error"),r}}},je=class extends H{constructor(t,r,o,n=!0){super(t,o,"OpenAI",r,n)}async _generateEmbeddings(t){let r=JSON.stringify({model:this.modelName,input:t.text,encoding_format:"float"}),o={"Content-Type":"application/json"};this.requireAuth&&(o.Authorization=`Bearer ${this.apiKey}`);let n=await nativeFetch(`${this.baseUrl}/embeddings`,{method:"POST",headers:o,body:r});if(!n.ok)throw console.error("HTTP response: ",n),console.error("HTTP response body: ",await n.json()),new Error(`HTTP error, status: ${n.status}`);let i=await n.json();if(!i||!i.data||i.data.length===0)throw new Error("Invalid response from OpenAI.");return i.data[0].embedding}};var qe=class extends Y{name="Ollama";requireAuth;openaiProvider;constructor(t,r,o,n){super("Ollama",t,o,r),this.requireAuth=n,this.openaiProvider=new pe(t,r,o,n)}async chatWithAI({messages:t,stream:r,onDataReceived:o,onResponseComplete:n}){return await this.openaiProvider.chatWithAI({messages:t,stream:r,onDataReceived:o,onResponseComplete:n})}},Be=class extends H{constructor(t,r,o,n=!1){super(t,o,"Ollama",r,n)}async _generateEmbeddings(t){let r=JSON.stringify({model:this.modelName,prompt:t.text}),o={"Content-Type":"application/json"};this.requireAuth&&(o.Authorization=`Bearer ${this.apiKey}`);let n=await nativeFetch(`${this.baseUrl}/api/embeddings`,{method:"POST",headers:o,body:r});if(!n.ok)throw console.error("HTTP response: ",n),console.error("HTTP response body: ",await n.json()),new Error(`HTTP error, status: ${n.status}`);let i=await n.json();if(!i||!i.embedding||i.embedding.length===0)throw new Error("Invalid response from Ollama.");return i.embedding}};var Ke=class extends Y{constructor(t,r,o="http://localhost"){super(t,o,"mock",r)}async chatWithAI(t){let r="This is a mock response from the AI.";if(t.onDataReceived)for(let o of r)await new Promise(n=>setTimeout(n,50)),t.onDataReceived(o);return r}},Ge=class extends le{constructor(t,r,o="http://localhost"){super(t,o,"mock",r)}generateImage(t){return new Promise(r=>{setTimeout(()=>{r("https://example.com/mock-image.jpg")},5)})}},He=class extends H{constructor(t,r,o="http://localhost"){super(t,o,"mock",r)}_generateEmbeddings(t){return new Promise(r=>{setTimeout(()=>{let o=Array(1536).fill(0).map(()=>Math.random());r(o)},5)})}};var T,f,xe,O,Ye,j,ht,ns,be;async function C(){let e=await xr();(!T||!O||!f||!ht||JSON.stringify(e)!==JSON.stringify(ht))&&await z(!0)}async function xr(){if(await S.getEnv()!="server")try{return await Q.get("ai.selectedTextModel")}catch{return}}async function os(){if(await S.getEnv()!="server")try{return await Q.get("ai.selectedImageModel")}catch{return}}async function is(){if(await S.getEnv()!="server")try{return await Q.get("ai.selectedEmbeddingModel")}catch{return}}async function yt(e){await S.getEnv()!="server"&&await Q.set("ai.selectedImageModel",e)}async function xt(e){await S.getEnv()!="server"&&await Q.set("ai.selectedTextModel",e)}async function bt(e){await S.getEnv()!="server"&&await Q.set("ai.selectedEmbeddingModel",e)}async function ss(){let e=await xr()||f.textModels[0];if(!e)throw new Error("No text model selected or available as default.");await we(e)}async function as(){let e=await os()||f.imageModels[0];if(!e)throw new Error("No image model selected or available as default.");await wt(e)}async function cs(){let e=await is()||f.embeddingModels[0];if(!e)throw new Error("No embedding model selected or available as default.");await Pt(e)}function ls(e){let t=e.provider.toLowerCase();switch(_("client","Provider name",t),t){case"dalle":Ye=new Fe(T,e.modelName,e.baseUrl||f.dallEBaseUrl);break;case"mock":Ye=new Ge(T,e.modelName);break;default:throw new Error(`Unsupported image provider: ${e.provider}. Please configure a supported provider.`)}}function us(e){switch(e.provider.toLowerCase()){case"openai":O=new pe(T,e.modelName,e.baseUrl||f.openAIBaseUrl,e.requireAuth||f.requireAuth);break;case"gemini":O=new De(T,e.modelName);break;case"ollama":O=new qe(T,e.modelName,e.baseUrl||"http://localhost:11434/v1",e.requireAuth);break;case"mock":O=new Ke(T,e.modelName,e.baseUrl);break;default:throw new Error(`Unsupported AI provider: ${e.provider}. Please configure a supported provider.`)}return O}function ps(e){switch(e.provider.toLowerCase()){case"openai":j=new je(T,e.modelName,e.baseUrl||f.openAIBaseUrl);break;case"gemini":j=new Ue(T,e.modelName);break;case"ollama":j=new Be(T,e.modelName,e.baseUrl||"http://localhost:11434",e.requireAuth);break;case"mock":j=new He(T,e.modelName,e.baseUrl);break;default:throw new Error(`Unsupported embedding provider: ${e.provider}. Please configure a supported provider.`)}}async function we(e){if(_("client","configureSelectedModel called with:",e),!e)throw new Error("No model provided to configure");if(e.requireAuth=e.requireAuth??f.requireAuth,e.requireAuth)try{let t=await Ne(e.secretName||"OPENAI_API_KEY");t!==T&&(T=t,_("client","API key updated"))}catch(t){throw console.error("Error reading secret:",t),new Error("Failed to read the AI API key. Please check the SECRETS page.")}if(e.requireAuth&&!T)throw new Error("AI API key is missing. Please set it in the secrets page.");return ht=e,us(e)}async function wt(e){if(_("client","configureSelectedImageModel called with:",e),!e)throw new Error("No image model provided to configure");if(e.requireAuth){let t=await Ne(e.secretName||"OPENAI_API_KEY");t!==T&&(T=t,_("client","API key updated for image model"))}if(e.requireAuth&&!T)throw new Error("AI API key is missing for image model. Please set it in the secrets page.");ns=e,ls(e)}async function Pt(e){if(_("client","configureSelectedEmbeddingModel called with:",e),!e)throw new Error("No embedding model provided to configure");if(e.requireAuth){let t=await Ne(e.secretName||"OPENAI_API_KEY");t!==T&&(T=t,_("client","API key updated for embedding model"))}if(e.requireAuth&&!T)throw new Error("AI API key is missing for embedding model. Please set it in the secrets page.");be=e,ps(e)}async function ms(){let e={openAIBaseUrl:"https://api.openai.com/v1",dallEBaseUrl:"https://api.openai.com/v1",requireAuth:!0,secretName:"OPENAI_API_KEY",provider:"OpenAI",chat:{},promptInstructions:{},imageModels:[],embeddingModels:[],textModels:[],indexEmbeddings:!1,indexSummary:!1,indexSummaryModelName:"",indexEmbeddingsExcludePages:[],indexEmbeddingsExcludeStrings:["**user**:"]},t={userInformation:"",userInstructions:"",parseWikiLinks:!0,bakeMessages:!0,customEnrichFunctions:[],searchEmbeddings:!1},r={pageRenameSystem:"",pageRenameRules:"",tagRules:"",indexSummaryPrompt:"",enhanceFrontMatterPrompt:""},o=await S.getSpaceConfig("ai",{}),n={...e,...o};return n.chat={...t,...o.chat||{}},n.promptInstructions={...r,...o.promptInstructions||{}},n}async function z(e=!0){let t=await ms();!f||JSON.stringify(f)!==JSON.stringify(t)?(_("client","aiSettings updating from",f),f=t,_("client","aiSettings updated to",f)):_("client","aiSettings unchanged",f),f.textModels.length===1&&await xt(f.textModels[0]),f.imageModels.length===1&&await yt(f.imageModels[0]),f.embeddingModels.length===1&&await bt(f.embeddingModels[0]),e&&(f.textModels.length>0&&await ss(),f.imageModels.length>0&&await as(),f.embeddingModels.length>0&&await cs()),xe={role:"system",content:"This is an interactive chat session with a user in a markdown-based note-taking tool called SilverBullet."},f.chat.userInformation&&(xe.content+=` +`+g),u.replaceRange(c,c+s.length,g),a=!1):u.insertAtPos(g,c),c+=g.length,o&&o(g)}catch(y){console.error("Error handling chat stream data:",y),u.flashNotification("An error occurred while processing chat data.","error")}},d=async g=>{console.log("Response complete:",g);let y=p+g.length;console.log("Start of response:",p),console.log("End of response:",y),console.log("Full response:",g),console.log("Post-processors:",i);let x=g;if(i){let A=await u.getText(),w={response:g,lineBefore:gr(A,p),lineCurrent:fr(A,p),lineAfter:hr(A,y)};for(let N of i)console.log("Applying post-processor:",N),x=await S.invokeSpaceFunction(N,w);console.log("Data changed by post-processors, updating editor"),u.replaceRange(p,y,x)}n&&n(g)};await this.chatWithAI({...t,onDataReceived:m,onResponseComplete:d})}async singleMessageChat(t,r,o=!1){let n=[{role:"user",content:t}];return r&&n.unshift({role:"system",content:r}),o&&(n=await ue(n)),await this.chatWithAI({messages:n,stream:!1})}};var De=class extends Y{name="Gemini";constructor(t,r){super("Gemini",t,"https://generativelanguage.googleapis.com",r)}async listModels(){let t=`${this.baseUrl}/v1beta/models?key=${this.apiKey}`;try{let r=await fetch(t);if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);return(await r.json()).models||[]}catch(r){throw console.error("Failed to fetch models:",r),r}}async chatWithAI({messages:t,stream:r,onDataReceived:o}){return r?await this.streamChat({messages:t,stream:r,onDataReceived:o}):await this.nonStreamingChat(t)}mapRolesForGemini(t){let r=[],o="";return t.forEach(n=>{let i="user";n.role==="system"||n.role==="user"?i="user":n.role==="assistant"&&(i="model"),i==="model"&&(r.length===0||o==="model")||(i==="user"&&o==="user"?r[r.length-1].parts[0].text+=" "+n.content:r.push({role:i,parts:[{text:n.content}]})),o=i}),r}streamChat(t){let{messages:r,onDataReceived:o}=t;try{let n=`${this.baseUrl}/v1beta/models/${this.modelName}:streamGenerateContent?key=${this.apiKey}&alt=sse`,i={"Content-Type":"application/json"},s=this.mapRolesForGemini(r),c={method:"POST",headers:i,payload:JSON.stringify({contents:s}),withCredentials:!1},a=new ie(n,c),p="";a.addEventListener("message",m=>{try{if(m.data=="[DONE]")return a.close(),p;if(!m.data)console.error("Received empty message from Gemini"),console.log("source: ",a);else{let d=JSON.parse(m.data),g=d.candidates[0].content.parts[0].text||d.text||"";p+=g,o&&o(g)}}catch(d){console.error("Error processing message event:",d,m.data)}}),a.addEventListener("end",()=>(a.close(),p)),a.addEventListener("error",m=>{console.error("SSE error:",m),a.close()}),a.stream()}catch(n){throw console.error("Error streaming from Gemini chat endpoint:",n),n}}async nonStreamingChat(t){let r=this.mapRolesForGemini(t),o=await nativeFetch(`${this.baseUrl}/v1beta/models/${this.modelName}:generateContent?key=${this.apiKey}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:r})});if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);return(await o.json()).candidates[0].content.parts[0].text}},Ue=class extends G{constructor(t,r,o="https://generativelanguage.googleapis.com",n=!0){super(t,o,"Gemini",r,n)}async _generateEmbeddings(t){let r=JSON.stringify({model:this.modelName,content:{parts:[{text:t.text}]}}),o={"Content-Type":"application/json"};this.requireAuth&&(o.Authorization=`Bearer ${this.apiKey}`);let n=await nativeFetch(`${this.baseUrl}/v1beta/models/${this.modelName}:embedContent?key=${this.apiKey}`,{method:"POST",headers:o,body:r});if(!n.ok)throw console.error("HTTP response: ",n),console.error("HTTP response body: ",await n.json()),new Error(`HTTP error, status: ${n.status}`);let i=await n.json();if(!i||!i.embedding||!i.embedding.values)throw new Error("Invalid response from Gemini.");return i.embedding.values}};var pe=class extends Y{name="OpenAI";requireAuth;constructor(t,r,o,n){super("OpenAI",t,o,r),this.requireAuth=n}async chatWithAI({messages:t,stream:r,onDataReceived:o,onResponseComplete:n}){return r?await this.streamChat({messages:t,onDataReceived:o,onResponseComplete:n}):await this.nonStreamingChat(t)}async streamChat(t){let{messages:r,onDataReceived:o,onResponseComplete:n}=t;try{let i=`${this.baseUrl}/chat/completions`,s={"Content-Type":"application/json"};this.requireAuth&&(s.Authorization=`Bearer ${this.apiKey}`);let c={method:"POST",headers:s,payload:JSON.stringify({model:this.modelName,stream:!0,messages:r}),withCredentials:!1},a=new ie(i,c),p="";a.addEventListener("message",function(m){try{if(m.data=="[DONE]")return a.close(),n&&n(p),p;{let g=JSON.parse(m.data).choices[0]?.delta?.content||"";p+=g,o&&o(g)}}catch(d){console.error("Error processing message event:",d,m.data)}}),a.addEventListener("end",function(){return a.close(),n&&n(p),p}),a.addEventListener("error",m=>{console.error("SSE error:",m),a.close()}),a.stream()}catch(i){throw console.error("Error streaming from OpenAI chat endpoint:",i),await u.flashNotification("Error streaming from OpenAI chat endpoint.","error"),i}return""}async nonStreamingChat(t){try{let r=JSON.stringify({model:this.modelName,messages:t}),o={Authorization:`Bearer ${this.apiKey}`,"Content-Type":"application/json"},n=await nativeFetch(this.baseUrl+"/chat/completions",{method:"POST",headers:o,body:r});if(!n.ok)throw console.error("http response: ",n),console.error("http response body: ",await n.json()),new Error(`HTTP error, status: ${n.status}`);let i=await n.json();if(!i||!i.choices||i.choices.length===0)throw new Error("Invalid response from OpenAI.");return i.choices[0].message.content}catch(r){throw console.error("Error calling OpenAI chat endpoint:",r),await u.flashNotification("Error calling OpenAI chat endpoint.","error"),r}}},je=class extends G{constructor(t,r,o,n=!0){super(t,o,"OpenAI",r,n)}async _generateEmbeddings(t){let r=JSON.stringify({model:this.modelName,input:t.text,encoding_format:"float"}),o={"Content-Type":"application/json"};this.requireAuth&&(o.Authorization=`Bearer ${this.apiKey}`);let n=await nativeFetch(`${this.baseUrl}/embeddings`,{method:"POST",headers:o,body:r});if(!n.ok)throw console.error("HTTP response: ",n),console.error("HTTP response body: ",await n.json()),new Error(`HTTP error, status: ${n.status}`);let i=await n.json();if(!i||!i.data||i.data.length===0)throw new Error("Invalid response from OpenAI.");return i.data[0].embedding}};var qe=class extends Y{name="Ollama";requireAuth;openaiProvider;constructor(t,r,o,n){super("Ollama",t,o,r),this.requireAuth=n,this.openaiProvider=new pe(t,r,o,n)}async chatWithAI({messages:t,stream:r,onDataReceived:o,onResponseComplete:n}){return await this.openaiProvider.chatWithAI({messages:t,stream:r,onDataReceived:o,onResponseComplete:n})}},Be=class extends G{constructor(t,r,o,n=!1){super(t,o,"Ollama",r,n)}async _generateEmbeddings(t){let r=JSON.stringify({model:this.modelName,prompt:t.text}),o={"Content-Type":"application/json"};this.requireAuth&&(o.Authorization=`Bearer ${this.apiKey}`);let n=await nativeFetch(`${this.baseUrl}/api/embeddings`,{method:"POST",headers:o,body:r});if(!n.ok)throw console.error("HTTP response: ",n),console.error("HTTP response body: ",await n.json()),new Error(`HTTP error, status: ${n.status}`);let i=await n.json();if(!i||!i.embedding||i.embedding.length===0)throw new Error("Invalid response from Ollama.");return i.embedding}};var He=class extends Y{constructor(t,r,o="http://localhost"){super(t,o,"mock",r)}async chatWithAI(t){let r="This is a mock response from the AI.";if(t.onDataReceived)for(let o of r)await new Promise(n=>setTimeout(n,50)),t.onDataReceived(o);return r}},Ke=class extends le{constructor(t,r,o="http://localhost"){super(t,o,"mock",r)}generateImage(t){return new Promise(r=>{setTimeout(()=>{r("https://example.com/mock-image.jpg")},5)})}},Ge=class extends G{constructor(t,r,o="http://localhost"){super(t,o,"mock",r)}_generateEmbeddings(t){return new Promise(r=>{setTimeout(()=>{let o=Array(1536).fill(0).map(()=>Math.random());r(o)},5)})}};var T,f,xe,O,Ye,j,ht,ns,be;async function C(){let e=await xr();(!T||!O||!f||!ht||JSON.stringify(e)!==JSON.stringify(ht))&&await z(!0)}async function xr(){if(await S.getEnv()!="server")try{return await Q.get("ai.selectedTextModel")}catch{return}}async function os(){if(await S.getEnv()!="server")try{return await Q.get("ai.selectedImageModel")}catch{return}}async function is(){if(await S.getEnv()!="server")try{return await Q.get("ai.selectedEmbeddingModel")}catch{return}}async function yt(e){await S.getEnv()!="server"&&await Q.set("ai.selectedImageModel",e)}async function xt(e){await S.getEnv()!="server"&&await Q.set("ai.selectedTextModel",e)}async function bt(e){await S.getEnv()!="server"&&await Q.set("ai.selectedEmbeddingModel",e)}async function ss(){let e=await xr()||f.textModels[0];if(!e)throw new Error("No text model selected or available as default.");await we(e)}async function as(){let e=await os()||f.imageModels[0];if(!e)throw new Error("No image model selected or available as default.");await wt(e)}async function cs(){let e=await is()||f.embeddingModels[0];if(!e)throw new Error("No embedding model selected or available as default.");await Pt(e)}function ls(e){let t=e.provider.toLowerCase();switch(_("client","Provider name",t),t){case"dalle":Ye=new Fe(T,e.modelName,e.baseUrl||f.dallEBaseUrl);break;case"mock":Ye=new Ke(T,e.modelName);break;default:throw new Error(`Unsupported image provider: ${e.provider}. Please configure a supported provider.`)}}function us(e){switch(e.provider.toLowerCase()){case"openai":O=new pe(T,e.modelName,e.baseUrl||f.openAIBaseUrl,e.requireAuth||f.requireAuth);break;case"gemini":O=new De(T,e.modelName);break;case"ollama":O=new qe(T,e.modelName,e.baseUrl||"http://localhost:11434/v1",e.requireAuth);break;case"mock":O=new He(T,e.modelName,e.baseUrl);break;default:throw new Error(`Unsupported AI provider: ${e.provider}. Please configure a supported provider.`)}return O}function ps(e){switch(e.provider.toLowerCase()){case"openai":j=new je(T,e.modelName,e.baseUrl||f.openAIBaseUrl);break;case"gemini":j=new Ue(T,e.modelName);break;case"ollama":j=new Be(T,e.modelName,e.baseUrl||"http://localhost:11434",e.requireAuth);break;case"mock":j=new Ge(T,e.modelName,e.baseUrl);break;default:throw new Error(`Unsupported embedding provider: ${e.provider}. Please configure a supported provider.`)}}async function we(e){if(_("client","configureSelectedModel called with:",e),!e)throw new Error("No model provided to configure");if(e.requireAuth=e.requireAuth??f.requireAuth,e.requireAuth)try{let t=await ke(e.secretName||"OPENAI_API_KEY");t!==T&&(T=t,_("client","API key updated"))}catch(t){throw console.error("Error reading secret:",t),new Error("Failed to read the AI API key. Please check the SECRETS page.")}if(e.requireAuth&&!T)throw new Error("AI API key is missing. Please set it in the secrets page.");return ht=e,us(e)}async function wt(e){if(_("client","configureSelectedImageModel called with:",e),!e)throw new Error("No image model provided to configure");if(e.requireAuth){let t=await ke(e.secretName||"OPENAI_API_KEY");t!==T&&(T=t,_("client","API key updated for image model"))}if(e.requireAuth&&!T)throw new Error("AI API key is missing for image model. Please set it in the secrets page.");ns=e,ls(e)}async function Pt(e){if(_("client","configureSelectedEmbeddingModel called with:",e),!e)throw new Error("No embedding model provided to configure");if(e.requireAuth){let t=await ke(e.secretName||"OPENAI_API_KEY");t!==T&&(T=t,_("client","API key updated for embedding model"))}if(e.requireAuth&&!T)throw new Error("AI API key is missing for embedding model. Please set it in the secrets page.");be=e,ps(e)}async function ms(){let e={openAIBaseUrl:"https://api.openai.com/v1",dallEBaseUrl:"https://api.openai.com/v1",requireAuth:!0,secretName:"OPENAI_API_KEY",provider:"OpenAI",chat:{},promptInstructions:{},imageModels:[],embeddingModels:[],textModels:[],indexEmbeddings:!1,indexSummary:!1,indexSummaryModelName:"",indexEmbeddingsExcludePages:[],indexEmbeddingsExcludeStrings:["**user**:"]},t={userInformation:"",userInstructions:"",parseWikiLinks:!0,bakeMessages:!0,customEnrichFunctions:[],searchEmbeddings:!1},r={pageRenameSystem:"",pageRenameRules:"",tagRules:"",indexSummaryPrompt:"",enhanceFrontMatterPrompt:""},o=await S.getSpaceConfig("ai",{}),n={...e,...o};return n.chat={...t,...o.chat||{}},n.promptInstructions={...r,...o.promptInstructions||{}},n}async function z(e=!0){let t=await ms();!f||JSON.stringify(f)!==JSON.stringify(t)?(_("client","aiSettings updating from",f),f=t,_("client","aiSettings updated to",f)):_("client","aiSettings unchanged",f),f.textModels.length===1&&await xt(f.textModels[0]),f.imageModels.length===1&&await yt(f.imageModels[0]),f.embeddingModels.length===1&&await bt(f.embeddingModels[0]),e&&(f.textModels.length>0&&await ss(),f.imageModels.length>0&&await as(),f.embeddingModels.length>0&&await cs()),xe={role:"system",content:"This is an interactive chat session with a user in a markdown-based note-taking tool called SilverBullet."},f.chat.userInformation&&(xe.content+=` The user has provided the following information about themselves: ${f.chat.userInformation}`),f.chat.userInstructions&&(xe.content+=` -The user has provided the following instructions for the chat, follow them as closely as possible: ${f.chat.userInstructions}`)}var At="\u{1F916} ";function Pe(e){return!(["SETTINGS","SECRETS",...f.indexEmbeddingsExcludePages].includes(e)||e.startsWith("_")||e.startsWith("Library/")||/\.conflicted\.\d+$/.test(e))}async function br(){return await C(),f.indexEmbeddings&&j!==void 0&&be!==void 0&&f.embeddingModels.length>0&&await S.getEnv()==="server"}async function wr(){return await C(),f.indexEmbeddings&&f.indexSummary&&j!==void 0&&be!==void 0&&f.embeddingModels.length>0&&await S.getEnv()==="server"}async function ds(e){if(!await br()||!Pe(e))return;let t=await $.readPage(e),r=await N.parseMarkdown(t);if(!r.children)return;let o=r.children.filter(a=>a.type==="Paragraph"),n=[],i=Date.now();for(let a of o){let p=R(a).trim();if(!p||p.length<10||f.indexEmbeddingsExcludeStrings.some(y=>p.includes(y)))continue;let m=await j.generateEmbeddings({text:p}),d=a.from??0,g={ref:`${e}@${d}`,page:e,pos:d,embedding:m,text:p,tag:"embedding"};n.push(g)}await Mt(e,n);let c=(Date.now()-i)/1e3;_("any",`AI: Indexed ${n.length} embedding objects for page ${e} in ${c} seconds`)}async function fs(e){if(!await wr()||!Pe(e))return;let t=await $.readPage(e),r=await N.parseMarkdown(t);if(!r.children)return;let o=Date.now(),n=R(r),i=f.textModels.find(x=>x.name===f.indexSummaryModelName);if(!i)throw new Error(`Could not find summary model ${f.indexSummaryModelName}`);let s=await we(i),c;f.promptInstructions.indexSummaryPrompt!==""?c=f.promptInstructions.indexSummaryPrompt:c=`Provide a concise and informative summary of the above page. The summary should capture the key points and be useful for search purposes. Avoid any formatting or extraneous text. No more than one paragraph. Summary: +The user has provided the following instructions for the chat, follow them as closely as possible: ${f.chat.userInstructions}`)}var At="\u{1F916} ";function Pe(e){return!(["SETTINGS","SECRETS",...f.indexEmbeddingsExcludePages].includes(e)||e.startsWith("_")||e.startsWith("Library/")||/\.conflicted\.\d+$/.test(e))}async function br(){return await C(),f.indexEmbeddings&&j!==void 0&&be!==void 0&&f.embeddingModels.length>0&&await S.getEnv()==="server"}async function wr(){return await C(),f.indexEmbeddings&&f.indexSummary&&j!==void 0&&be!==void 0&&f.embeddingModels.length>0&&await S.getEnv()==="server"}async function ds(e){if(!await br()||!Pe(e))return;let t=await $.readPage(e),r=await k.parseMarkdown(t);if(!r.children)return;let o=r.children.filter(a=>a.type==="Paragraph"),n=[],i=Date.now();for(let a of o){let p=R(a).trim();if(!p||p.length<10||f.indexEmbeddingsExcludeStrings.some(y=>p.includes(y)))continue;let m=await j.generateEmbeddings({text:p}),d=a.from??0,g={ref:`${e}@${d}`,page:e,pos:d,embedding:m,text:p,tag:"embedding"};n.push(g)}await Mt(e,n);let c=(Date.now()-i)/1e3;_("any",`AI: Indexed ${n.length} embedding objects for page ${e} in ${c} seconds`)}async function fs(e){if(!await wr()||!Pe(e))return;let t=await $.readPage(e),r=await k.parseMarkdown(t);if(!r.children)return;let o=Date.now(),n=R(r),i=f.textModels.find(x=>x.name===f.indexSummaryModelName);if(!i)throw new Error(`Could not find summary model ${f.indexSummaryModelName}`);let s=await we(i),c;f.promptInstructions.indexSummaryPrompt!==""?c=f.promptInstructions.indexSummaryPrompt:c=`Provide a concise and informative summary of the above page. The summary should capture the key points and be useful for search purposes. Avoid any formatting or extraneous text. No more than one paragraph. Summary: `;let a=await $e(i.name,n,c),p=Le(a);p||(p=await s.singleMessageChat("Contents of "+e+`: `+n+` -`+c),Re(a,p));let m=await j.generateEmbeddings({text:p}),d={ref:`${e}@0`,page:e,embedding:m,text:p,tag:"aiSummary"};await Mt(e,[d]);let y=(Date.now()-o)/1e3;_("any",`AI: Indexed summary for page ${e} in ${y} seconds`)}async function Pr({name:e,tree:t}){await C(),Pe(e)&&t.children&&(await br()&&await oe.send("aiEmbeddingsQueue",e),await wr()&&await oe.send("aiSummaryQueue",e))}async function Ar(e){await C();for(let r of e){let o=r.body;console.log(`AI: Generating and indexing embeddings for file ${o}`),await ds(o)}let t=await oe.getQueueStats("aiEmbeddingsQueue");console.log(`AI: Embeddings queue stats: ${JSON.stringify(t)}`)}async function Sr(e){await C();for(let r of e){let o=r.body;console.log(`AI: Generating and indexing summary for ${o}`),await fs(o)}let t=await oe.getQueueStats("aiSummaryQueue");console.log(`AI: Summary queue stats: ${JSON.stringify(t)}`)}async function vt(){return await It()?await l("system.invokeFunctionOnServer","index.queryObjects","embedding",{}):await Ct("embedding",{})}async function vr(){return await It()?await l("system.invokeFunctionOnServer","index.queryObjects","aiSummary",{}):await Ct("aiSummary",{})}async function Er(e){if(await C(),!j||!be)throw new Error("No embedding provider found");return await j.generateEmbeddings({text:e})}async function Ae(e){return await l("system.invokeFunctionOnServer","silverbullet-ai.generateEmbeddings",e)}function St(e,t){let r=e.reduce((i,s,c)=>i+s*t[c],0),o=Math.sqrt(e.reduce((i,s)=>i+s*s,0)),n=Math.sqrt(t.reduce((i,s)=>i+s*s,0));return r/(o*n)}async function Et(e,t=10,r=!1){await C(),await S.getEnv()==="server"&&(r=!1);let o=Date.now(),n=typeof e=="string"?await Ae(e):e,i=Date.now();console.log(`searchEmbeddings: Query embedding generation took ${i-o} ms`);let s=Date.now(),c=await vt(),a=Date.now();console.log(`Retrieved ${c.length} embeddings in ${a-s} ms`);let p="",m=0;r&&(p=`Retrieved ${c.length} embeddings in ${a-s} ms +`+c),Re(a,p));let m=await j.generateEmbeddings({text:p}),d={ref:`${e}@0`,page:e,embedding:m,text:p,tag:"aiSummary"};await Mt(e,[d]);let y=(Date.now()-o)/1e3;_("any",`AI: Indexed summary for page ${e} in ${y} seconds`)}async function Pr({name:e,tree:t}){await C(),Pe(e)&&t.children&&(await br()&&await oe.send("aiEmbeddingsQueue",e),await wr()&&await oe.send("aiSummaryQueue",e))}async function Ar(e){await C();for(let r of e){let o=r.body;console.log(`AI: Generating and indexing embeddings for file ${o}`),await ds(o)}let t=await oe.getQueueStats("aiEmbeddingsQueue");console.log(`AI: Embeddings queue stats: ${JSON.stringify(t)}`)}async function Sr(e){await C();for(let r of e){let o=r.body;console.log(`AI: Generating and indexing summary for ${o}`),await fs(o)}let t=await oe.getQueueStats("aiSummaryQueue");console.log(`AI: Summary queue stats: ${JSON.stringify(t)}`)}async function Et(){return await It()?await l("system.invokeFunctionOnServer","index.queryObjects","embedding",{}):await Ct("embedding",{})}async function Er(){return await It()?await l("system.invokeFunctionOnServer","index.queryObjects","aiSummary",{}):await Ct("aiSummary",{})}async function vr(e){if(await C(),!j||!be)throw new Error("No embedding provider found");return await j.generateEmbeddings({text:e})}async function Ae(e){return await l("system.invokeFunctionOnServer","silverbullet-ai.generateEmbeddings",e)}function St(e,t){let r=e.reduce((i,s,c)=>i+s*t[c],0),o=Math.sqrt(e.reduce((i,s)=>i+s*s,0)),n=Math.sqrt(t.reduce((i,s)=>i+s*s,0));return r/(o*n)}async function vt(e,t=10,r=!1){await C(),await S.getEnv()==="server"&&(r=!1);let o=Date.now(),n=typeof e=="string"?await Ae(e):e,i=Date.now();console.log(`searchEmbeddings: Query embedding generation took ${i-o} ms`);let s=Date.now(),c=await Et(),a=Date.now();console.log(`Retrieved ${c.length} embeddings in ${a-s} ms`);let p="",m=0;r&&(p=`Retrieved ${c.length} embeddings in ${a-s} ms -`,m=(await u.getText()).length,await u.replaceRange(m,m,p));let d=[],g=Date.now();for(let y=0;y=100)){let P=m+p.length;p=` +`,m=(await u.getText()).length,await u.replaceRange(m,m,p));let d=[],g=Date.now();for(let y=0;y=100)){let A=m+p.length;p=` Processed ${y+1} of ${c.length} embeddings... -`,await u.replaceRange(m,P,p),g=Date.now()}if(r&&y>=c.length-1){let P=m+p.length;await u.replaceRange(m,P,"")}}}if(console.log(`Finished searching embeddings in ${Date.now()-s} ms`),f.indexSummary){let y=Date.now(),x=await vr(),P=Date.now();console.log(`Retrieved ${x.length} summaries in ${P-y} ms`);let w="",k=0;r&&(w=`Retrieved ${x.length} summaries in ${P-y} ms +`,await u.replaceRange(m,A,p),g=Date.now()}if(r&&y>=c.length-1){let A=m+p.length;await u.replaceRange(m,A,"")}}}if(console.log(`Finished searching embeddings in ${Date.now()-s} ms`),f.indexSummary){let y=Date.now(),x=await Er(),A=Date.now();console.log(`Retrieved ${x.length} summaries in ${A-y} ms`);let w="",N=0;r&&(w=`Retrieved ${x.length} summaries in ${A-y} ms -`,k=(await u.getText()).length,await u.replaceRange(k,k,w));let J=[],v=Date.now();for(let F=0;F=100)){let E=k+w.length;w=` +`,N=(await u.getText()).length,await u.replaceRange(N,N,w));let J=[],E=Date.now();for(let F=0;F=100)){let v=N+w.length;w=` Processed ${F+1} of ${x.length} summaries... -`,await u.replaceRange(k,E,w),v=Date.now()}if(r&&F>=x.length-1){let E=k+w.length;await u.replaceRange(k,E,"")}}}console.log(`Finished searching summaries in ${Date.now()-y} ms`),d.push(...J)}return d.sort((y,x)=>x.similarity-y.similarity).slice(0,t)}async function Tr(e,t=10){await C();let r=await Ae(e);return(await vr()).map(i=>({page:i.page,ref:i.ref,text:i.text,similarity:St(r,i.embedding)})).sort((i,s)=>s.similarity-i.similarity).slice(0,t)}async function We(e,t=10,r=.15,o=!1){let n;n=await Et(e,-1,o);let i={};for(let c of n)c.similarityp.similarity-a.similarity).slice(0,t);return Object.values(i).sort((c,a)=>a.score-c.score).slice(0,t)}async function Qe(e,t=10){try{let r=await We(e,t),o="";if(r.length>0)for(let n of r){o+=`>>${n.page}<< +`,await u.replaceRange(N,v,w),E=Date.now()}if(r&&F>=x.length-1){let v=N+w.length;await u.replaceRange(N,v,"")}}}console.log(`Finished searching summaries in ${Date.now()-y} ms`),d.push(...J)}return d.sort((y,x)=>x.similarity-y.similarity).slice(0,t)}async function Tr(e,t=10){await C();let r=await Ae(e);return(await Er()).map(i=>({page:i.page,ref:i.ref,text:i.text,similarity:St(r,i.embedding)})).sort((i,s)=>s.similarity-i.similarity).slice(0,t)}async function We(e,t=10,r=.15,o=!1){let n;n=await vt(e,-1,o);let i={};for(let c of n)c.similarityp.similarity-a.similarity).slice(0,t);return Object.values(i).sort((c,a)=>a.score-c.score).slice(0,t)}async function Qe(e,t=10){try{let r=await We(e,t),o="";if(r.length>0)for(let n of r){o+=`>>${n.page}<< `;for(let i of n.children)o+=`> ${i.text} `}else return"No relevant pages found.";return o}catch(r){return console.error("Error in searchEmbeddingsForChat:",r),"An error occurred during the search."}}function Cr(e){return{data:new TextEncoder().encode(""),meta:{name:e,contentType:"text/markdown",size:0,created:0,lastModified:0,perm:"ro"}}}function Tt(e){return{name:e,contentType:"text/markdown",size:-1,created:0,lastModified:0,perm:"ro"}}function Mr(e){return Tt(e)}async function Ir(){let e=await u.getCurrentPage();if(e.startsWith(At)){await C();let t=e.substring(At.length),r=`# Search results for "${t}"`,o=r+` @@ -58,13 +58,13 @@ Searching for similar embeddings...`,await u.setText(n);let s=[];try{s=await We( `);for(let a of s){o+=`## [[${a.page}]] `;for(let p of a.children){let d=p.ref.split("@")[1].padStart(4," ");o+=`> [[${p.ref}|${d}]] | ${p.text} -`}}await u.replaceRange(0,c,o)}}async function Or(){let e=await u.prompt("Search for: ");e&&await u.navigate({page:`${At}${e}`})}function kr(e){return e.split("/").slice(0,-1).join("/")}async function _(e,...t){(await S.getEnv()===e||e==="any")&&console.log(...t)}async function Se(e,t){let r=await cr(e);return gs(r,t)}async function gs(e,t){e.limit||(e.limit=["number",1e3]);let r=`query:${e.querySource}`,o={query:e};t&&(o.variables=t);let n=await he.dispatchEvent(r,o,30*1e3);if(n.length===0)throw new Error(`Unsupported query source '${e.querySource}'`);return n.flat()}async function Ct(e,t){return await S.invokeFunction("index.queryObjects",e,t)}async function Mt(e,t){return await S.invokeFunction("index.indexObjects",e,t)}async function Ve(e){e||(e=await u.getText());let t=await N.parseMarkdown(e);await V(t,{removeFrontmatterSection:!0}),e=R(t);let r=e.split(` +`}}await u.replaceRange(0,c,o)}}async function Or(){let e=await u.prompt("Search for: ");e&&await u.navigate({page:`${At}${e}`})}function Nr(e){return e.split("/").slice(0,-1).join("/")}async function _(e,...t){(await S.getEnv()===e||e==="any")&&console.log(...t)}async function Se(e,t){let r=await cr(e);return gs(r,t)}async function gs(e,t){e.limit||(e.limit=["number",1e3]);let r=`query:${e.querySource}`,o={query:e};t&&(o.variables=t);let n=await he.dispatchEvent(r,o,30*1e3);if(n.length===0)throw new Error(`Unsupported query source '${e.querySource}'`);return n.flat()}async function Ct(e,t){return await S.invokeFunction("index.queryObjects",e,t)}async function Mt(e,t){return await S.invokeFunction("index.indexObjects",e,t)}async function Ve(e){e||(e=await u.getText());let t=await k.parseMarkdown(e);await V(t,{removeFrontmatterSection:!0}),e=R(t);let r=e.split(` `),o=[],n="user",i="";return r.forEach(s=>{if(s.trim()==="")return;let c=s.match(/^\*\*(\w+)\*\*:/);if(c){let a=c[1].toLowerCase();n&&n!==a&&i.trim()!==""&&(o.push({role:n,content:i.trim()}),i=""),n=a,i+=s.replace(/^\*\*(\w+)\*\*:/,"").trim()+` `}else n&&(i+=s.trim()+` -`)}),i&&n&&o.push({role:n,content:i.trim()}),o}async function Nr(){try{let e=await l("system.getVersion"),[t,r,o]=e.split(".").map(Number),[n,i,s]="0.7.2".split(".").map(Number);return t>n||t===n&&r>i||t===n&&r===i&&o>=s}catch{return!1}}async function It(){try{return(await S.listSyscalls()).some(t=>t.name==="system.invokeFunctionOnServer")}catch{return!1}}async function ue(e,t){let r=[],o,n;try{o=await u.getCurrentPage(),n=await $.getPageMeta(o)}catch(i){return console.error("Error fetching page metadata",i),await u.flashNotification("Error fetching page metadata","error"),[]}for(let i of e){if(i.role==="assistant"||i.role==="system"){r.push(i);continue}let s=await N.parseMarkdown(i.content),c=await lr([],s);if(i.content=i.content.replace(/\[enrich:\s*(false|true)\s*\]\s*/g,""),c.enrich!==void 0&&c.enrich===!1){console.log("Skipping message enrichment due to enrich=false attribute",c),r.push(i);continue}let a=i.content;if(i.role==="user"&&(n?(console.log("Rendering template",i.content,n),a=await ne.renderTemplate(i.content,n,{page:n,...t})):console.log("No page metadata found, skipping template rendering")),f.chat.searchEmbeddings&&f.indexEmbeddings){let g=await Qe(a);g!=="No relevant pages found."&&(a+=` +`)}),i&&n&&o.push({role:n,content:i.trim()}),o}async function kr(){try{let e=await l("system.getVersion"),[t,r,o]=e.split(".").map(Number),[n,i,s]="0.7.2".split(".").map(Number);return t>n||t===n&&r>i||t===n&&r===i&&o>=s}catch{return!1}}async function It(){try{return(await S.listSyscalls()).some(t=>t.name==="system.invokeFunctionOnServer")}catch{return!1}}async function ue(e,t){let r=[],o,n;try{o=await u.getCurrentPage(),n=await $.getPageMeta(o)}catch(i){return console.error("Error fetching page metadata",i),await u.flashNotification("Error fetching page metadata","error"),[]}for(let i of e){if(i.role==="assistant"||i.role==="system"){r.push(i);continue}let s=await k.parseMarkdown(i.content),c=await lr([],s);if(i.content=i.content.replace(/\[enrich:\s*(false|true)\s*\]\s*/g,""),c.enrich!==void 0&&c.enrich===!1){console.log("Skipping message enrichment due to enrich=false attribute",c),r.push(i);continue}let a=i.content;if(i.role==="user"&&(n?(console.log("Rendering template",i.content,n),a=await ne.renderTemplate(i.content,n,{page:n,...t})):console.log("No page metadata found, skipping template rendering")),f.chat.searchEmbeddings&&f.indexEmbeddings){let g=await Qe(a);g!=="No relevant pages found."&&(a+=` The following pages were found to be relevant to the question. You can use them as context to answer the question. Only partial content is shown. Ask for the whole page if needed. Page name is between >> and <<. -`,a+=g)}if(f.chat.parseWikiLinks&&(a=await hs(a)),f.chat.bakeMessages){let g=await N.parseMarkdown(a),y=await S.invokeFunction("markdown.expandCodeWidgets",g,"");a=R(y).trim()}let m=(await he.dispatchEvent("ai:enrichMessage",{enrichedContent:a,message:i})).flat().concat(f.chat.customEnrichFunctions),d=[...new Set(m)];console.log("Received custom enrich message functions",d);for(let g of d)a=await S.invokeSpaceFunction(g,a);r.push({...i,content:a})}return r}async function hs(e){let t=[],r=e,o=/\[\[([^\]]+)\]\]/g,n,i=!1;for(;(n=o.exec(e))!==null;){let s=n[1];if(!t.includes(s)){i||(r+=` +`,a+=g)}if(f.chat.parseWikiLinks&&(a=await hs(a)),f.chat.bakeMessages){let g=await k.parseMarkdown(a),y=await S.invokeFunction("markdown.expandCodeWidgets",g,"");a=R(y).trim()}let m=(await he.dispatchEvent("ai:enrichMessage",{enrichedContent:a,message:i})).flat().concat(f.chat.customEnrichFunctions),d=[...new Set(m)];console.log("Received custom enrich message functions",d);for(let g of d)a=await S.invokeSpaceFunction(g,a);r.push({...i,content:a})}return r}async function hs(e){let t=[],r=e,o=/\[\[([^\]]+)\]\]/g,n,i=!1;for(;(n=o.exec(e))!==null;){let s=n[1];if(!t.includes(s)){i||(r+=` Base your answer on the content of the following referenced pages (referenced above using the >>page name<< format). In these listings ~~~ is used to mark the page's content start and end. If context is missing, always ask me to link directly to a page mentioned in the context.`,i=!0);try{let c=await $.readPage(s);t.push(s),r+=` @@ -72,27 +72,27 @@ Content of the [[${s}]] page: ~~~ ${c} ~~~ -`}catch(c){console.error(`Error fetching page '${s}':`,c)}}}return r=r.replace(o,">>$1<<"),r}async function Fr(e,t={},r={}){try{let o=await N.parseMarkdown(e),n=await V(o,{removeFrontmatterSection:!0,removeTags:["template"]});e=R(o).trimStart();let i;return n.frontmatter&&(typeof n.frontmatter=="string"?i=n.frontmatter:i=await B.stringify(n.frontmatter),i=await ne.renderTemplate(i,t,r)),{frontmatter:n,renderedFrontmatter:i,text:await ne.renderTemplate(e,t,r)}}catch(o){throw console.error("Error rendering template",o),o}}async function Rr(e){return Nr()?{options:(await Se("template where aiprompt and aiprompt.slashCommand")).map(r=>{let o=r.aiprompt;return{label:o.slashCommand,detail:o.description||r.description,order:o.order||0,templatePage:r.ref,pageName:e.pageName,invoke:"silverbullet-ai.insertAiPromptFromTemplate"}})}:void 0}async function Lr(e){let t;if(!e||!e.templatePage){let E=await Se("template where aiprompt");t=await u.filterBox("Prompt Template",E.map(q=>{let Z=q.ref.split("/").pop();return{...q,description:q.aiprompt.description||q.ref,name:q.aiprompt.displayName||Z,systemPrompt:q.aiprompt.systemPrompt||"You are an AI note assistant. Please follow the prompt instructions.",insertAt:q.aiprompt.insertAt||"cursor",chat:q.aiprompt.chat||!1,enrichMessages:q.aiprompt.enrichMessages||!1,postProcessors:q.aiprompt.postProcessors||[]}}),"Select the template to use as the prompt. The prompt will be rendered and sent to the LLM model.")}else{console.log("selectedTemplate from slash completion: ",e);let E=await $.readPage(e.templatePage),q=await N.parseMarkdown(E),{aiprompt:Z}=await V(q);console.log("templatePage from slash completion: ",E),t={ref:e.templatePage,systemPrompt:Z.systemPrompt||Z.system||"You are an AI note assistant. Please follow the prompt instructions.",insertAt:Z.insertAt||"cursor",chat:Z.chat||!1,enrichMessages:Z.enrichMessages||!1,postProcessors:Z.postProcessors||[]}}if(!t){await u.flashNotification("No template selected");return}console.log("User selected prompt template: ",t);let r=["cursor","page-start","page-end","start-of-line","end-of-line","start-of-item","end-of-item","new-line-above","new-line-below","replace-line","replace-paragraph","replace-selection","replace-smart"];if(!r.includes(t.insertAt)){console.error(`Invalid insertAt value: ${t.insertAt}. It must be one of ${r.join(", ")}`),await u.flashNotification(`Invalid insertAt value: ${t.insertAt}. Please select a valid option.`,"error");return}await C();let o,n,i;try{o=await $.readPage(t.ref),n=await u.getCurrentPage(),i=await $.getPageMeta(n)}catch(E){console.error("Error fetching template details or page metadata",E),await u.flashNotification("Error fetching template details or page metadata","error");return}let s,c,a,p,m,d,g,y,x,P,w,k,J;try{s=await u.getText(),a=await u.getCursor();let E=s.split(` +`}catch(c){console.error(`Error fetching page '${s}':`,c)}}}return r=r.replace(o,">>$1<<"),r}async function Fr(e,t={},r={}){try{let o=await k.parseMarkdown(e),n=await V(o,{removeFrontmatterSection:!0,removeTags:["template"]});e=R(o).trimStart();let i;return n.frontmatter&&(typeof n.frontmatter=="string"?i=n.frontmatter:i=await B.stringify(n.frontmatter),i=await ne.renderTemplate(i,t,r)),{frontmatter:n,renderedFrontmatter:i,text:await ne.renderTemplate(e,t,r)}}catch(o){throw console.error("Error rendering template",o),o}}async function Rr(e){return kr()?{options:(await Se("template where aiprompt and aiprompt.slashCommand")).map(r=>{let o=r.aiprompt;return{label:o.slashCommand,detail:o.description||r.description,order:o.order||0,templatePage:r.ref,pageName:e.pageName,invoke:"silverbullet-ai.insertAiPromptFromTemplate"}})}:void 0}async function Lr(e){let t;if(!e||!e.templatePage){let v=await Se("template where aiprompt");t=await u.filterBox("Prompt Template",v.map(q=>{let Z=q.ref.split("/").pop();return{...q,description:q.aiprompt.description||q.ref,name:q.aiprompt.displayName||Z,systemPrompt:q.aiprompt.systemPrompt||"You are an AI note assistant. Please follow the prompt instructions.",insertAt:q.aiprompt.insertAt||"cursor",chat:q.aiprompt.chat||!1,enrichMessages:q.aiprompt.enrichMessages||!1,postProcessors:q.aiprompt.postProcessors||[]}}),"Select the template to use as the prompt. The prompt will be rendered and sent to the LLM model.")}else{console.log("selectedTemplate from slash completion: ",e);let v=await $.readPage(e.templatePage),q=await k.parseMarkdown(v),{aiprompt:Z}=await V(q);console.log("templatePage from slash completion: ",v),t={ref:e.templatePage,systemPrompt:Z.systemPrompt||Z.system||"You are an AI note assistant. Please follow the prompt instructions.",insertAt:Z.insertAt||"cursor",chat:Z.chat||!1,enrichMessages:Z.enrichMessages||!1,postProcessors:Z.postProcessors||[]}}if(!t){await u.flashNotification("No template selected");return}console.log("User selected prompt template: ",t);let r=["cursor","page-start","page-end","start-of-line","end-of-line","start-of-item","end-of-item","new-line-above","new-line-below","replace-line","replace-paragraph","replace-selection","replace-smart"];if(!r.includes(t.insertAt)){console.error(`Invalid insertAt value: ${t.insertAt}. It must be one of ${r.join(", ")}`),await u.flashNotification(`Invalid insertAt value: ${t.insertAt}. Please select a valid option.`,"error");return}await C();let o,n,i;try{o=await $.readPage(t.ref),n=await u.getCurrentPage(),i=await $.getPageMeta(n)}catch(v){console.error("Error fetching template details or page metadata",v),await u.flashNotification("Error fetching template details or page metadata","error");return}let s,c,a,p,m,d,g,y,x,A,w,N,J;try{s=await u.getText(),a=await u.getCursor();let v=s.split(` `);c=s.substring(0,a).split(` `).length,p=a-(s.substring(0,a).split(` -`).pop()?.length||0),m=p+E[c-1].length}catch(E){console.error("Error fetching current page text or cursor position",E),await u.flashNotification("Error fetching current page text or cursor position","error");return}try{(t.insertAt==="start-of-item"||t.insertAt==="end-of-item"||t.insertAt==="replace-smart")&&(d=await S.invokeFunction("editor.determineItemBounds",s,a,void 0,!0),g=s.slice(d.from,d.to),y=await S.invokeFunction("editor.determineItemBounds",s,a,0,!0),x=s.slice(y.from,y.to))}catch(E){console.error("Error fetching current item",E)}try{(t.insertAt==="replace-paragraph"||t.insertAt==="replace-smart")&&(P=yr(s,a))}catch(E){console.error("Error fetching current paragraph",E),await u.flashNotification("Error fetching current paragraph","error");return}try{(t.insertAt=="replace-selection"||t.insertAt=="replace-smart")&&(w=await dt())}catch(E){console.error("Error fetching selected text",E)}let v;switch(t.insertAt){case"page-start":v=0;break;case"page-end":v=await se();break;case"frontmatter":await u.flashNotification("rendering in frontmatter not supported yet","error");break;case"modal":break;case"replace":break;case"replace-line":v=p,await u.replaceRange(p,m,"");break;case"replace-selection":w?.text?(v=w.from,await u.replaceRange(w.from,w.to,"")):v=await u.getCursor();break;case"replace-paragraph":P?.text?(v=P.from,await u.replaceRange(P.from,P.to,"")):await u.flashNotification("Error: current paragraph is undefined","error");break;case"replace-smart":if(w?.text)k="selected-text",J=w.text,v=w.from,await u.replaceRange(w.from,w.to,"");else if(g&&d)k="current-item",J=g,v=d.from,await u.replaceRange(d.from,d.to,` -`);else if(P?.text)k="current-paragraph",J=P.text,v=P.from,await u.replaceRange(P.from,P.to,"");else{await u.flashNotification("Error: replace-smart: no text selected, current paragraph, or current item","error");return}console.log("smartReplaceType: ",k),console.log("smartReplaceText: ",J);break;case"start-of-line":v=p;break;case"end-of-line":v=m;break;case"new-line-above":v=p,await u.insertAtPos(` -`,v),v+=1;break;case"new-line-below":v=m,await u.insertAtPos(` -`,v),v+=1;break;case"start-of-item":v=d.from;break;case"end-of-item":v=d.to;break;case"cursor":default:v=await u.getCursor()}v===void 0&&(v=await se()),console.log("templatetext: ",o);let F=[],X={page:i,currentItemText:g,currentLineNumber:c,lineStartPos:p,lineEndPos:m,currentPageText:s,parentItemText:x,selectedText:w?.text,currentParagraph:P?.text,smartReplaceType:k,smartReplaceText:J};if(t.chat)F=await Ve(o),t.systemPrompt&&F.unshift({role:"system",content:t.systemPrompt}),t.chat&&t.enrichMessages&&(F=await ue(F,X));else{let E=await Fr(o,i,X);console.log("Rendered template:",E),t.systemPrompt&&F.push({role:"system",content:t.systemPrompt}),F.push({role:"user",content:E.text})}console.log("Messages: ",F),await O.streamChatIntoEditor({messages:F,stream:!0,postProcessors:t.postProcessors},v)}var lu=new TextEncoder;function $r(e){let t=atob(e),r=t.length,o=new Uint8Array(r);for(let n=0;n0&&`\0\r +`).pop()?.length||0),m=p+v[c-1].length}catch(v){console.error("Error fetching current page text or cursor position",v),await u.flashNotification("Error fetching current page text or cursor position","error");return}try{(t.insertAt==="start-of-item"||t.insertAt==="end-of-item"||t.insertAt==="replace-smart")&&(d=await S.invokeFunction("editor.determineItemBounds",s,a,void 0,!0),g=s.slice(d.from,d.to),y=await S.invokeFunction("editor.determineItemBounds",s,a,0,!0),x=s.slice(y.from,y.to))}catch(v){console.error("Error fetching current item",v)}try{(t.insertAt==="replace-paragraph"||t.insertAt==="replace-smart")&&(A=yr(s,a))}catch(v){console.error("Error fetching current paragraph",v),await u.flashNotification("Error fetching current paragraph","error");return}try{(t.insertAt=="replace-selection"||t.insertAt=="replace-smart")&&(w=await dt())}catch(v){console.error("Error fetching selected text",v)}let E;switch(t.insertAt){case"page-start":E=0;break;case"page-end":E=await se();break;case"frontmatter":await u.flashNotification("rendering in frontmatter not supported yet","error");break;case"modal":break;case"replace":break;case"replace-line":E=p,await u.replaceRange(p,m,"");break;case"replace-selection":w?.text?(E=w.from,await u.replaceRange(w.from,w.to,"")):E=await u.getCursor();break;case"replace-paragraph":A?.text?(E=A.from,await u.replaceRange(A.from,A.to,"")):await u.flashNotification("Error: current paragraph is undefined","error");break;case"replace-smart":if(w?.text)N="selected-text",J=w.text,E=w.from,await u.replaceRange(w.from,w.to,"");else if(g&&d)N="current-item",J=g,E=d.from,await u.replaceRange(d.from,d.to,` +`);else if(A?.text)N="current-paragraph",J=A.text,E=A.from,await u.replaceRange(A.from,A.to,"");else{await u.flashNotification("Error: replace-smart: no text selected, current paragraph, or current item","error");return}console.log("smartReplaceType: ",N),console.log("smartReplaceText: ",J);break;case"start-of-line":E=p;break;case"end-of-line":E=m;break;case"new-line-above":E=p,await u.insertAtPos(` +`,E),E+=1;break;case"new-line-below":E=m,await u.insertAtPos(` +`,E),E+=1;break;case"start-of-item":E=d.from;break;case"end-of-item":E=d.to;break;case"cursor":default:E=await u.getCursor()}E===void 0&&(E=await se()),console.log("templatetext: ",o);let F=[],X={page:i,currentItemText:g,currentLineNumber:c,lineStartPos:p,lineEndPos:m,currentPageText:s,parentItemText:x,selectedText:w?.text,currentParagraph:A?.text,smartReplaceType:N,smartReplaceText:J};if(t.chat)F=await Ve(o),t.systemPrompt&&F.unshift({role:"system",content:t.systemPrompt}),t.chat&&t.enrichMessages&&(F=await ue(F,X));else{let v=await Fr(o,i,X);console.log("Rendered template:",v),t.systemPrompt&&F.push({role:"system",content:t.systemPrompt}),F.push({role:"user",content:v.text})}console.log("Messages: ",F),await O.streamChatIntoEditor({messages:F,stream:!0,postProcessors:t.postProcessors},E)}var lu=new TextEncoder;function $r(e){let t=atob(e),r=t.length,o=new Uint8Array(r);for(let n=0;n0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>r/2-1){o=" ... ",n+=5;break}let i="",s=this.position;for(;sr/2-1){i=" ... ",s-=5;break}let c=this.buffer.slice(n,s);return`${G(" ",t)}${o}${c}${i} -${G(" ",t+this.position-n+o.length)}^`}toString(t){let r,o="";return this.name&&(o+=`in "${this.name}" `),o+=`at line ${this.line+1}, column ${this.column+1}`,t||(r=this.getSnippet(),r&&(o+=`: -${r}`)),o}};function Ot(e,t,r){let o=[];for(let n of e.include)r=Ot(n,t,r);for(let n of e[t]){for(let i=0;i!o.includes(i))}function ys(...e){let t={fallback:{},mapping:{},scalar:{},sequence:{}};for(let r of e)for(let o of r)o.kind!==null&&(t[o.kind][o.tag]=t.fallback[o.tag]=o);return t}var K=class e{static SCHEMA_DEFAULT;implicit;explicit;include;compiledImplicit;compiledExplicit;compiledTypeMap;constructor(t){this.explicit=t.explicit||[],this.implicit=t.implicit||[],this.include=t.include||[];for(let r of this.implicit)if(r.loadKind&&r.loadKind!=="scalar")throw new ee("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");this.compiledImplicit=Ot(this,"implicit",[]),this.compiledExplicit=Ot(this,"explicit",[]),this.compiledTypeMap=ys(this.compiledImplicit,this.compiledExplicit)}extend(t){return new e({implicit:[...new Set([...this.implicit,...t?.implicit??[]])],explicit:[...new Set([...this.explicit,...t?.explicit??[]])],include:[...new Set([...this.include,...t?.include??[]])]})}static create(){}};var A=class{tag;kind=null;instanceOf;predicate;represent;defaultStyle;styleAliases;loadKind;constructor(t,r){this.tag=t,r&&(this.kind=r.kind,this.resolve=r.resolve||(()=>!0),this.construct=r.construct||(o=>o),this.instanceOf=r.instanceOf,this.predicate=r.predicate,this.represent=r.represent,this.defaultStyle=r.defaultStyle,this.styleAliases=r.styleAliases)}resolve=()=>!0;construct=t=>t};var kt=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function xs(e){if(e===null)return!1;let t,r=0,o=e.length,n=kt;for(let i=0;i64)){if(t<0)return!1;r+=6}return r%8===0}function bs(e){let t=e.replace(/[\r\n=]/g,""),r=t.length,o=kt,n=[],i=0;for(let c=0;c>16&255),n.push(i>>8&255),n.push(i&255)),i=i<<6|o.indexOf(t.charAt(c));let s=r%4*6;return s===0?(n.push(i>>16&255),n.push(i>>8&255),n.push(i&255)):s===18?(n.push(i>>10&255),n.push(i>>2&255)):s===12&&n.push(i>>4&255),new Uint8Array(n)}function ws(e){let t=e.length,r=kt,o="",n=0;for(let s=0;s>18&63],o+=r[n>>12&63],o+=r[n>>6&63],o+=r[n&63]),n=(n<<8)+e[s];let i=t%3;return i===0?(o+=r[n>>18&63],o+=r[n>>12&63],o+=r[n>>6&63],o+=r[n&63]):i===2?(o+=r[n>>10&63],o+=r[n>>4&63],o+=r[n<<2&63],o+=r[64]):i===1&&(o+=r[n>>2&63],o+=r[n<<4&63],o+=r[64],o+=r[64]),o}function Ps(e){return e instanceof Uint8Array}var Nt=new A("tag:yaml.org,2002:binary",{construct:bs,kind:"scalar",predicate:Ps,represent:ws,resolve:xs});function As(e){let t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function Ss(e){return e==="true"||e==="True"||e==="TRUE"}var Ft=new A("tag:yaml.org,2002:bool",{construct:Ss,defaultStyle:"lowercase",kind:"scalar",predicate:_r,represent:{lowercase(e){return e?"true":"false"},uppercase(e){return e?"TRUE":"FALSE"},camelcase(e){return e?"True":"False"}},resolve:As});var vs=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Es(e){return!(!vs.test(e)||e[e.length-1]==="_")}function Ts(e){let t=e.replace(/_/g,"").toLowerCase(),r=t[0]==="-"?-1:1,o=[];if("+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf")return r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY;if(t===".nan")return NaN;if(t.indexOf(":")>=0){t.split(":").forEach(s=>{o.unshift(parseFloat(s))});let n=0,i=1;return o.forEach(s=>{n+=s*i,i*=60}),r*n}return r*parseFloat(t)}var Cs=/^[-+]?[0-9]+e/;function Ms(e,t){if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(ve(e))return"-0.0";let r=e.toString(10);return Cs.test(r)?r.replace("e",".e"):r}function Is(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||ve(e))}var Rt=new A("tag:yaml.org,2002:float",{construct:Ts,defaultStyle:"lowercase",kind:"scalar",predicate:Is,represent:Ms,resolve:Es});function jr(e){let t=new Function(`return ${e}`)();if(!(t instanceof Function))throw new TypeError(`Expected function but got ${typeof t}: ${e}`);return t}var Os=new A("tag:yaml.org,2002:js/function",{kind:"scalar",resolve(e){if(e===null)return!1;try{return jr(`${e}`),!0}catch{return!1}},construct(e){return jr(e)},predicate(e){return e instanceof Function},represent(e){return e.toString()}});function ks(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function Ns(e){return 48<=e&&e<=55}function Fs(e){return 48<=e&&e<=57}function Rs(e){let t=e.length,r=0,o=!1;if(!t)return!1;let n=e[r];if((n==="-"||n==="+")&&(n=e[++r]),n==="0"){if(r+1===t)return!0;if(n=e[++r],n==="b"){for(r++;r{r.unshift(parseInt(c,10))});let i=0,s=1;return r.forEach(c=>{i+=c*s,s*=60}),o*i}return o*parseInt(t,10)}function $s(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!ve(e)}var Lt=new A("tag:yaml.org,2002:int",{construct:Ls,defaultStyle:"decimal",kind:"scalar",predicate:$s,represent:{binary(e){return e>=0?`0b${e.toString(2)}`:`-0b${e.toString(2).slice(1)}`},octal(e){return e>=0?`0${e.toString(8)}`:`-0${e.toString(8).slice(1)}`},decimal(e){return e.toString(10)},hexadecimal(e){return e>=0?`0x${e.toString(16).toUpperCase()}`:`-0x${e.toString(16).toUpperCase().slice(1)}`}},resolve:Rs,styleAliases:{binary:[2,"bin"],decimal:[10,"dec"],hexadecimal:[16,"hex"],octal:[8,"oct"]}});var $t=new A("tag:yaml.org,2002:map",{construct(e){return e!==null?e:{}},kind:"mapping"});function _s(e){return e==="<<"||e===null}var _t=new A("tag:yaml.org,2002:merge",{kind:"scalar",resolve:_s});function Ds(e){let t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function Us(){return null}function js(e){return e===null}var Dt=new A("tag:yaml.org,2002:null",{construct:Us,defaultStyle:"lowercase",kind:"scalar",predicate:js,represent:{canonical(){return"~"},lowercase(){return"null"},uppercase(){return"NULL"},camelcase(){return"Null"}},resolve:Ds});var{hasOwn:qs}=Object,Bs=Object.prototype.toString;function Ks(e){let t=[],r="",o=!1;for(let n of e){if(o=!1,Bs.call(n)!=="[object Object]")return!1;for(r in n)if(qs(n,r))if(!o)o=!0;else return!1;if(!o)return!1;if(t.indexOf(r)===-1)t.push(r);else return!1}return!0}function Gs(e){return e!==null?e:[]}var Ut=new A("tag:yaml.org,2002:omap",{construct:Gs,kind:"sequence",resolve:Ks});var Hs=Object.prototype.toString;function Ys(e){let t=Array.from({length:e.length});for(let r=0;r[\s\S]+)\/(?[gismuy]*)$/,Bt=new A("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve(e){if(e===null||!e.length)return!1;let t=`${e}`;if(t.charAt(0)==="/"){if(!qt.test(e))return!1;let r=[...t.match(qt)?.groups?.modifiers??""];if(new Set(r).size"u"},represent(){return""}});var Qt=new K({explicit:[Ht,Kt,$t]});var Vt=new K({implicit:[Dt,Ft,Lt,Rt],include:[Qt]});var zt=new K({include:[Vt]});var Ee=new K({explicit:[Nt,Ut,jt,Gt],implicit:[Yt,_t],include:[zt]});var ea=new K({explicit:[Bt,Wt],include:[Ee]});var Te=class{constructor(t=Ee){this.schema=t}};var Je=class extends Te{constructor(r,{filename:o,schema:n,onWarning:i,legacy:s=!1,json:c=!1,listener:a=null}){super(n);this.input=r;this.filename=o,this.onWarning=i,this.legacy=s,this.json=c,this.listener=a,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length}documents=[];length;lineIndent=0;lineStart=0;position=0;line=0;filename;onWarning;legacy;json;listener;implicitTypes;typeMap;version;checkLineBreaks;tagMap;anchorMap;tag;anchor;kind;result=""};var{hasOwn:re}=Object,Xe=1,Vr=2,zr=3,Ze=4,Jt=1,ta=2,Kr=3,ra=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,na=/[\x85\u2028\u2029]/,oa=/[,\[\]\{\}]/,Jr=/^(?:!|!!|![a-z\-]+!)$/i,Xr=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Gr(e){return Object.prototype.toString.call(e)}function W(e){return e===10||e===13}function ae(e){return e===9||e===32}function D(e){return e===9||e===32||e===10||e===13}function me(e){return e===44||e===91||e===93||e===123||e===125}function ia(e){if(48<=e&&e<=57)return e-48;let t=e|32;return 97<=t&&t<=102?t-97+10:-1}function sa(e){return e===120?2:e===117?4:e===85?8:0}function aa(e){return 48<=e&&e<=57?e-48:-1}function Hr(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` -`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function ca(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var Zr=Array.from({length:256}),en=Array.from({length:256});for(let e=0;e<256;e++)Zr[e]=Hr(e)?1:0,en[e]=Hr(e);function tn(e,t){return new ee(t,new ze(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function h(e,t){throw tn(e,t)}function et(e,t){e.onWarning&&e.onWarning.call(null,tn(e,t))}var Yr={YAML(e,t,...r){if(e.version!==null)return h(e,"duplication of %YAML directive");if(r.length!==1)return h(e,"YAML directive accepts exactly one argument");let o=/^([0-9]+)\.([0-9]+)$/.exec(r[0]);if(o===null)return h(e,"ill-formed argument of the YAML directive");let n=parseInt(o[1],10),i=parseInt(o[2],10);if(n!==1)return h(e,"unacceptable YAML version of the document");if(e.version=r[0],e.checkLineBreaks=i<2,i!==1&&i!==2)return et(e,"unsupported YAML version of the document")},TAG(e,t,...r){if(r.length!==2)return h(e,"TAG directive accepts exactly two arguments");let o=r[0],n=r[1];if(!Jr.test(o))return h(e,"ill-formed tag handle (first argument) of the TAG directive");if(e.tagMap&&re(e.tagMap,o))return h(e,`there is a previously declared suffix for "${o}" tag handle`);if(!Xr.test(n))return h(e,"ill-formed tag prefix (second argument) of the TAG directive");typeof e.tagMap>"u"&&(e.tagMap=Object.create(null)),e.tagMap[o]=n}};function te(e,t,r,o){let n;if(t1&&(e.result+=G(` -`,t-1))}function la(e,t,r){let o=e.kind,n=e.result,i=e.input.charCodeAt(e.position);if(D(i)||me(i)||i===35||i===38||i===42||i===33||i===124||i===62||i===39||i===34||i===37||i===64||i===96)return!1;let s;if((i===63||i===45)&&(s=e.input.charCodeAt(e.position+1),D(s)||r&&me(s)))return!1;e.kind="scalar",e.result="";let c,a=c=e.position,p=!1,m=0;for(;i!==0;){if(i===58){if(s=e.input.charCodeAt(e.position+1),D(s)||r&&me(s))break}else if(i===35){let d=e.input.charCodeAt(e.position-1);if(D(d))break}else{if(e.position===e.lineStart&&tt(e)||r&&me(i))break;if(W(i)){m=e.line;let d=e.lineStart,g=e.lineIndent;if(I(e,!1,-1),e.lineIndent>=t){p=!0,i=e.input.charCodeAt(e.position);continue}else{e.position=c,e.line=m,e.lineStart=d,e.lineIndent=g;break}}}p&&(te(e,a,c,!1),Zt(e,e.line-m),a=c=e.position,p=!1),ae(i)||(c=e.position+1),i=e.input.charCodeAt(++e.position)}return te(e,a,c,!1),e.result?!0:(e.kind=o,e.result=n,!1)}function ua(e,t){let r,o,n;if(r=e.input.charCodeAt(e.position),r!==39)return!1;for(e.kind="scalar",e.result="",e.position++,o=n=e.position;(r=e.input.charCodeAt(e.position))!==0;)if(r===39)if(te(e,o,e.position,!0),r=e.input.charCodeAt(++e.position),r===39)o=e.position,e.position++,n=e.position;else return!0;else if(W(r))te(e,o,n,!0),Zt(e,I(e,!1,t)),o=n=e.position;else{if(e.position===e.lineStart&&tt(e))return h(e,"unexpected end of the document within a single quoted scalar");e.position++,n=e.position}return h(e,"unexpected end of the stream within a single quoted scalar")}function pa(e,t){let r=e.input.charCodeAt(e.position);if(r!==34)return!1;e.kind="scalar",e.result="",e.position++;let o,n=o=e.position,i;for(;(r=e.input.charCodeAt(e.position))!==0;){if(r===34)return te(e,n,e.position,!0),e.position++,!0;if(r===92){if(te(e,n,e.position,!0),r=e.input.charCodeAt(++e.position),W(r))I(e,!1,t);else if(r<256&&Zr[r])e.result+=en[r],e.position++;else if((i=sa(r))>0){let s=i,c=0;for(;s>0;s--)if(r=e.input.charCodeAt(++e.position),(i=ia(r))>=0)c=(c<<4)+i;else return h(e,"expected hexadecimal character");e.result+=ca(c),e.position++}else return h(e,"unknown escape sequence");n=o=e.position}else if(W(r))te(e,n,o,!0),Zt(e,I(e,!1,t)),n=o=e.position;else{if(e.position===e.lineStart&&tt(e))return h(e,"unexpected end of the document within a double quoted scalar");e.position++,o=e.position}}return h(e,"unexpected end of the stream within a double quoted scalar")}function ma(e,t){let r=e.input.charCodeAt(e.position),o,n=!0,i={};if(r===91)o=93,n=!1,i=[];else if(r===123)o=125;else return!1;e.anchor!==null&&typeof e.anchor<"u"&&typeof e.anchorMap<"u"&&(e.anchorMap[e.anchor]=i),r=e.input.charCodeAt(++e.position);let s=e.tag,c=e.anchor,a=!0,p,m,d=m=p=null,g,y=g=!1,x=0,P=0,w=Object.create(null);for(;r!==0;){if(I(e,!0,t),r=e.input.charCodeAt(e.position),r===o)return e.position++,e.tag=s,e.anchor=c,e.kind=n?"mapping":"sequence",e.result=i,!0;if(!a)return h(e,"missed comma between flow collection entries");d=m=p=null,y=g=!1,r===63&&(x=e.input.charCodeAt(e.position+1),D(x)&&(y=g=!0,e.position++,I(e,!0,t))),P=e.line,fe(e,t,Xe,!1,!0),d=e.tag||null,m=e.result,I(e,!0,t),r=e.input.charCodeAt(e.position),(g||e.line===P)&&r===58&&(y=!0,r=e.input.charCodeAt(++e.position),I(e,!0,t),fe(e,t,Xe,!1,!0),p=e.result),n?de(e,i,w,d,m,p):y?i.push(de(e,null,w,d,m,p)):i.push(m),I(e,!0,t),r=e.input.charCodeAt(e.position),r===44?(a=!0,r=e.input.charCodeAt(++e.position)):a=!1}return h(e,"unexpected end of the stream within a flow collection")}function da(e,t){let r=Jt,o=!1,n=!1,i=t,s=0,c=!1,a=e.input.charCodeAt(e.position),p=!1;if(a===124)p=!1;else if(a===62)p=!0;else return!1;e.kind="scalar",e.result="";let m=0;for(;a!==0;)if(a=e.input.charCodeAt(++e.position),a===43||a===45)if(Jt===r)r=a===43?Kr:ta;else return h(e,"repeat of a chomping mode identifier");else if((m=aa(a))>=0){if(m===0)return h(e,"bad explicit indentation width of a block scalar; it cannot be less than one");if(!n)i=t+m-1,n=!0;else return h(e,"repeat of an indentation width identifier")}else break;if(ae(a)){do a=e.input.charCodeAt(++e.position);while(ae(a));if(a===35)do a=e.input.charCodeAt(++e.position);while(!W(a)&&a!==0)}for(;a!==0;){for(Xt(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!n||e.lineIndenti&&(i=e.lineIndent),W(a)){s++;continue}if(e.lineIndentr/2-1){i=" ... ",s-=5;break}let c=this.buffer.slice(n,s);return`${K(" ",t)}${o}${c}${i} +${K(" ",t+this.position-n+o.length)}^`}toString(t){let r,o="";return this.name&&(o+=`in "${this.name}" `),o+=`at line ${this.line+1}, column ${this.column+1}`,t||(r=this.getSnippet(),r&&(o+=`: +${r}`)),o}};function Ot(e,t,r){let o=[];for(let n of e.include)r=Ot(n,t,r);for(let n of e[t]){for(let[i,s]of r.entries())s.tag===n.tag&&s.kind===n.kind&&o.push(i);r.push(n)}return r.filter((n,i)=>!o.includes(i))}function ys(...e){let t={fallback:{},mapping:{},scalar:{},sequence:{}};for(let r of e)for(let o of r)o.kind!==null&&(t[o.kind][o.tag]=t.fallback[o.tag]=o);return t}var H=class e{static SCHEMA_DEFAULT;implicit;explicit;include;compiledImplicit;compiledExplicit;compiledTypeMap;constructor(t){this.explicit=t.explicit||[],this.implicit=t.implicit||[],this.include=t.include||[];for(let r of this.implicit)if(r.loadKind&&r.loadKind!=="scalar")throw new ee("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");this.compiledImplicit=Ot(this,"implicit",[]),this.compiledExplicit=Ot(this,"explicit",[]),this.compiledTypeMap=ys(this.compiledImplicit,this.compiledExplicit)}extend(t){return new e({implicit:[...new Set([...this.implicit,...t?.implicit??[]])],explicit:[...new Set([...this.explicit,...t?.explicit??[]])],include:[...new Set([...this.include,...t?.include??[]])]})}static create(){}};var P=class{tag;kind=null;instanceOf;predicate;represent;defaultStyle;styleAliases;loadKind;constructor(t,r){this.tag=t,r&&(this.kind=r.kind,this.resolve=r.resolve||(()=>!0),this.construct=r.construct||(o=>o),this.instanceOf=r.instanceOf,this.predicate=r.predicate,this.represent=r.represent,this.defaultStyle=r.defaultStyle,this.styleAliases=r.styleAliases)}resolve=()=>!0;construct=t=>t};var Nt=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function xs(e){if(e===null)return!1;let t,r=0,o=e.length,n=Nt;for(let i=0;i64)){if(t<0)return!1;r+=6}return r%8===0}function bs(e){let t=e.replace(/[\r\n=]/g,""),r=t.length,o=Nt,n=[],i=0;for(let c=0;c>16&255),n.push(i>>8&255),n.push(i&255)),i=i<<6|o.indexOf(t.charAt(c));let s=r%4*6;return s===0?(n.push(i>>16&255),n.push(i>>8&255),n.push(i&255)):s===18?(n.push(i>>10&255),n.push(i>>2&255)):s===12&&n.push(i>>4&255),new Uint8Array(n)}function ws(e){let t=e.length,r=Nt,o="",n=0;for(let s=0;s>18&63],o+=r[n>>12&63],o+=r[n>>6&63],o+=r[n&63]),n=(n<<8)+e[s];let i=t%3;return i===0?(o+=r[n>>18&63],o+=r[n>>12&63],o+=r[n>>6&63],o+=r[n&63]):i===2?(o+=r[n>>10&63],o+=r[n>>4&63],o+=r[n<<2&63],o+=r[64]):i===1&&(o+=r[n>>2&63],o+=r[n<<4&63],o+=r[64],o+=r[64]),o}function Ps(e){return e instanceof Uint8Array}var kt=new P("tag:yaml.org,2002:binary",{construct:bs,kind:"scalar",predicate:Ps,represent:ws,resolve:xs});function As(e){let t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function Ss(e){return e==="true"||e==="True"||e==="TRUE"}var Ft=new P("tag:yaml.org,2002:bool",{construct:Ss,defaultStyle:"lowercase",kind:"scalar",predicate:_r,represent:{lowercase(e){return e?"true":"false"},uppercase(e){return e?"TRUE":"FALSE"},camelcase(e){return e?"True":"False"}},resolve:As});var Es=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function vs(e){return!(!Es.test(e)||e[e.length-1]==="_")}function Ts(e){let t=e.replace(/_/g,"").toLowerCase(),r=t[0]==="-"?-1:1,o=[];if(t[0]&&"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf")return r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY;if(t===".nan")return NaN;if(t.indexOf(":")>=0){t.split(":").forEach(s=>{o.unshift(parseFloat(s))});let n=0,i=1;return o.forEach(s=>{n+=s*i,i*=60}),r*n}return r*parseFloat(t)}var Cs=/^[-+]?[0-9]+e/;function Ms(e,t){if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Ee(e))return"-0.0";let r=e.toString(10);return Cs.test(r)?r.replace("e",".e"):r}function Is(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||Ee(e))}var Rt=new P("tag:yaml.org,2002:float",{construct:Ts,defaultStyle:"lowercase",kind:"scalar",predicate:Is,represent:Ms,resolve:vs});function jr(e){let t=new Function(`return ${e}`)();if(!(t instanceof Function))throw new TypeError(`Expected function but got ${typeof t}: ${e}`);return t}var Os=new P("tag:yaml.org,2002:js/function",{kind:"scalar",resolve(e){if(e===null)return!1;try{return jr(`${e}`),!0}catch{return!1}},construct(e){return jr(e)},predicate(e){return e instanceof Function},represent(e){return e.toString()}});function Ns(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function ks(e){return 48<=e&&e<=55}function Fs(e){return 48<=e&&e<=57}function Rs(e){let t=e.length,r=0,o=!1;if(!t)return!1;let n=e[r];if((n==="-"||n==="+")&&(n=e[++r]),n==="0"){if(r+1===t)return!0;if(n=e[++r],n==="b"){for(r++;r{r.unshift(parseInt(c,10))});let i=0,s=1;return r.forEach(c=>{i+=c*s,s*=60}),o*i}return o*parseInt(t,10)}function $s(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!Ee(e)}var Lt=new P("tag:yaml.org,2002:int",{construct:Ls,defaultStyle:"decimal",kind:"scalar",predicate:$s,represent:{binary(e){return e>=0?`0b${e.toString(2)}`:`-0b${e.toString(2).slice(1)}`},octal(e){return e>=0?`0${e.toString(8)}`:`-0${e.toString(8).slice(1)}`},decimal(e){return e.toString(10)},hexadecimal(e){return e>=0?`0x${e.toString(16).toUpperCase()}`:`-0x${e.toString(16).toUpperCase().slice(1)}`}},resolve:Rs,styleAliases:{binary:[2,"bin"],decimal:[10,"dec"],hexadecimal:[16,"hex"],octal:[8,"oct"]}});var $t=new P("tag:yaml.org,2002:map",{construct(e){return e!==null?e:{}},kind:"mapping"});function _s(e){return e==="<<"||e===null}var _t=new P("tag:yaml.org,2002:merge",{kind:"scalar",resolve:_s});function Ds(e){let t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function Us(){return null}function js(e){return e===null}var Dt=new P("tag:yaml.org,2002:null",{construct:Us,defaultStyle:"lowercase",kind:"scalar",predicate:js,represent:{canonical(){return"~"},lowercase(){return"null"},uppercase(){return"NULL"},camelcase(){return"Null"}},resolve:Ds});var{hasOwn:qs}=Object,Bs=Object.prototype.toString;function Hs(e){let t=[],r="",o=!1;for(let n of e){if(o=!1,Bs.call(n)!=="[object Object]")return!1;for(r in n)if(qs(n,r))if(!o)o=!0;else return!1;if(!o)return!1;if(t.indexOf(r)===-1)t.push(r);else return!1}return!0}function Ks(e){return e!==null?e:[]}var Ut=new P("tag:yaml.org,2002:omap",{construct:Ks,kind:"sequence",resolve:Hs});var Gs=Object.prototype.toString;function Ys(e){let t=Array.from({length:e.length});for(let[r,o]of e.entries()){if(Gs.call(o)!=="[object Object]")return!1;let n=Object.keys(o);if(n.length!==1)return!1;t[r]=[n[0],o[n[0]]]}return!0}function Ws(e){if(e===null)return[];let t=Array.from({length:e.length});for(let r=0;r[\s\S]+)\/(?[gismuy]*)$/,Bt=new P("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve(e){if(e===null||!e.length)return!1;let t=`${e}`;if(t.charAt(0)==="/"){if(!qt.test(e))return!1;let r=[...t.match(qt)?.groups?.modifiers??""];if(new Set(r).size"u"},represent(){return""}});var Qt=new H({explicit:[Gt,Ht,$t]});var Vt=new H({implicit:[Dt,Ft,Lt,Rt],include:[Qt]});var zt=new H({include:[Vt]});var ve=new H({explicit:[kt,Ut,jt,Kt],implicit:[Yt,_t],include:[zt]});var ea=new H({explicit:[Bt,Wt],include:[ve]});var Te=class{constructor(t=ve){this.schema=t}};var Je=class extends Te{constructor(r,{filename:o,schema:n,onWarning:i,legacy:s=!1,json:c=!1,listener:a=null}){super(n);this.input=r;this.filename=o,this.onWarning=i,this.legacy=s,this.json=c,this.listener=a,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length}documents=[];length;lineIndent=0;lineStart=0;position=0;line=0;filename;onWarning;legacy;json;listener;implicitTypes;typeMap;version;checkLineBreaks;tagMap;anchorMap;tag;anchor;kind;result=""};var{hasOwn:re}=Object,Xe=1,Vr=2,zr=3,Ze=4,Jt=1,ta=2,Hr=3,ra=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,na=/[\x85\u2028\u2029]/,oa=/[,\[\]\{\}]/,Jr=/^(?:!|!!|![a-z\-]+!)$/i,Xr=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Kr(e){return Object.prototype.toString.call(e)}function W(e){return e===10||e===13}function ae(e){return e===9||e===32}function D(e){return e===9||e===32||e===10||e===13}function me(e){return e===44||e===91||e===93||e===123||e===125}function ia(e){if(48<=e&&e<=57)return e-48;let t=e|32;return 97<=t&&t<=102?t-97+10:-1}function sa(e){return e===120?2:e===117?4:e===85?8:0}function aa(e){return 48<=e&&e<=57?e-48:-1}function Gr(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` +`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function ca(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var Zr=Array.from({length:256}),en=Array.from({length:256});for(let e=0;e<256;e++)Zr[e]=Gr(e)?1:0,en[e]=Gr(e);function tn(e,t){return new ee(t,new ze(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function h(e,t){throw tn(e,t)}function et(e,t){e.onWarning&&e.onWarning.call(null,tn(e,t))}var Yr={YAML(e,t,...r){if(e.version!==null)return h(e,"duplication of %YAML directive");if(r.length!==1)return h(e,"YAML directive accepts exactly one argument");let o=/^([0-9]+)\.([0-9]+)$/.exec(r[0]);if(o===null)return h(e,"ill-formed argument of the YAML directive");let n=parseInt(o[1],10),i=parseInt(o[2],10);if(n!==1)return h(e,"unacceptable YAML version of the document");if(e.version=r[0],e.checkLineBreaks=i<2,i!==1&&i!==2)return et(e,"unsupported YAML version of the document")},TAG(e,t,...r){if(r.length!==2)return h(e,"TAG directive accepts exactly two arguments");let o=r[0],n=r[1];if(!Jr.test(o))return h(e,"ill-formed tag handle (first argument) of the TAG directive");if(e.tagMap&&re(e.tagMap,o))return h(e,`there is a previously declared suffix for "${o}" tag handle`);if(!Xr.test(n))return h(e,"ill-formed tag prefix (second argument) of the TAG directive");typeof e.tagMap>"u"&&(e.tagMap=Object.create(null)),e.tagMap[o]=n}};function te(e,t,r,o){let n;if(t1&&(e.result+=K(` +`,t-1))}function la(e,t,r){let o=e.kind,n=e.result,i=e.input.charCodeAt(e.position);if(D(i)||me(i)||i===35||i===38||i===42||i===33||i===124||i===62||i===39||i===34||i===37||i===64||i===96)return!1;let s;if((i===63||i===45)&&(s=e.input.charCodeAt(e.position+1),D(s)||r&&me(s)))return!1;e.kind="scalar",e.result="";let c=e.position,a=e.position,p=!1,m=0;for(;i!==0;){if(i===58){if(s=e.input.charCodeAt(e.position+1),D(s)||r&&me(s))break}else if(i===35){let d=e.input.charCodeAt(e.position-1);if(D(d))break}else{if(e.position===e.lineStart&&tt(e)||r&&me(i))break;if(W(i)){m=e.line;let d=e.lineStart,g=e.lineIndent;if(I(e,!1,-1),e.lineIndent>=t){p=!0,i=e.input.charCodeAt(e.position);continue}else{e.position=c,e.line=m,e.lineStart=d,e.lineIndent=g;break}}}p&&(te(e,a,c,!1),Zt(e,e.line-m),a=c=e.position,p=!1),ae(i)||(c=e.position+1),i=e.input.charCodeAt(++e.position)}return te(e,a,c,!1),e.result?!0:(e.kind=o,e.result=n,!1)}function ua(e,t){let r,o,n;if(r=e.input.charCodeAt(e.position),r!==39)return!1;for(e.kind="scalar",e.result="",e.position++,o=n=e.position;(r=e.input.charCodeAt(e.position))!==0;)if(r===39)if(te(e,o,e.position,!0),r=e.input.charCodeAt(++e.position),r===39)o=e.position,e.position++,n=e.position;else return!0;else if(W(r))te(e,o,n,!0),Zt(e,I(e,!1,t)),o=n=e.position;else{if(e.position===e.lineStart&&tt(e))return h(e,"unexpected end of the document within a single quoted scalar");e.position++,n=e.position}return h(e,"unexpected end of the stream within a single quoted scalar")}function pa(e,t){let r=e.input.charCodeAt(e.position);if(r!==34)return!1;e.kind="scalar",e.result="",e.position++;let o=e.position,n=e.position,i;for(;(r=e.input.charCodeAt(e.position))!==0;){if(r===34)return te(e,n,e.position,!0),e.position++,!0;if(r===92){if(te(e,n,e.position,!0),r=e.input.charCodeAt(++e.position),W(r))I(e,!1,t);else if(r<256&&Zr[r])e.result+=en[r],e.position++;else if((i=sa(r))>0){let s=i,c=0;for(;s>0;s--)if(r=e.input.charCodeAt(++e.position),(i=ia(r))>=0)c=(c<<4)+i;else return h(e,"expected hexadecimal character");e.result+=ca(c),e.position++}else return h(e,"unknown escape sequence");n=o=e.position}else if(W(r))te(e,n,o,!0),Zt(e,I(e,!1,t)),n=o=e.position;else{if(e.position===e.lineStart&&tt(e))return h(e,"unexpected end of the document within a double quoted scalar");e.position++,o=e.position}}return h(e,"unexpected end of the stream within a double quoted scalar")}function ma(e,t){let r=e.input.charCodeAt(e.position),o,n=!0,i={};if(r===91)o=93,n=!1,i=[];else if(r===123)o=125;else return!1;e.anchor!==null&&typeof e.anchor<"u"&&typeof e.anchorMap<"u"&&(e.anchorMap[e.anchor]=i),r=e.input.charCodeAt(++e.position);let s=e.tag,c=e.anchor,a=!0,p=null,m=null,d=null,g=!1,y=!1,x=0,A=0,w=Object.create(null);for(;r!==0;){if(I(e,!0,t),r=e.input.charCodeAt(e.position),r===o)return e.position++,e.tag=s,e.anchor=c,e.kind=n?"mapping":"sequence",e.result=i,!0;if(!a)return h(e,"missed comma between flow collection entries");d=m=p=null,y=g=!1,r===63&&(x=e.input.charCodeAt(e.position+1),D(x)&&(y=g=!0,e.position++,I(e,!0,t))),A=e.line,fe(e,t,Xe,!1,!0),d=e.tag||null,m=e.result,I(e,!0,t),r=e.input.charCodeAt(e.position),(g||e.line===A)&&r===58&&(y=!0,r=e.input.charCodeAt(++e.position),I(e,!0,t),fe(e,t,Xe,!1,!0),p=e.result),n?de(e,i,w,d,m,p):y?i.push(de(e,null,w,d,m,p)):i.push(m),I(e,!0,t),r=e.input.charCodeAt(e.position),r===44?(a=!0,r=e.input.charCodeAt(++e.position)):a=!1}return h(e,"unexpected end of the stream within a flow collection")}function da(e,t){let r=Jt,o=!1,n=!1,i=t,s=0,c=!1,a=e.input.charCodeAt(e.position),p=!1;if(a===124)p=!1;else if(a===62)p=!0;else return!1;e.kind="scalar",e.result="";let m=0;for(;a!==0;)if(a=e.input.charCodeAt(++e.position),a===43||a===45)if(Jt===r)r=a===43?Hr:ta;else return h(e,"repeat of a chomping mode identifier");else if((m=aa(a))>=0){if(m===0)return h(e,"bad explicit indentation width of a block scalar; it cannot be less than one");if(!n)i=t+m-1,n=!0;else return h(e,"repeat of an indentation width identifier")}else break;if(ae(a)){do a=e.input.charCodeAt(++e.position);while(ae(a));if(a===35)do a=e.input.charCodeAt(++e.position);while(!W(a)&&a!==0)}for(;a!==0;){for(Xt(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!n||e.lineIndenti&&(i=e.lineIndent),W(a)){s++;continue}if(e.lineIndentt)&&i!==0)return h(e,"bad indentation of a sequence entry");if(e.lineIndentt)&&(fe(e,t,Ze,!0,a)&&(x?g=e.result:y=e.result),x||(de(e,i,s,d,g,y,p,m),d=g=y=null),I(e,!0,-1),w=e.input.charCodeAt(e.position)),e.lineIndent>t&&w!==0)return h(e,"bad indentation of a mapping entry");if(e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndent tag; it should be "${m.kind}", not "${e.kind}"`);if(m.resolve(e.result))e.result=m.construct(e.result),e.anchor!==null&&typeof e.anchorMap<"u"&&(e.anchorMap[e.anchor]=e.result);else return h(e,`cannot resolve a node with !<${e.tag}> explicit tag`)}else return h(e,`unknown tag !<${e.tag}>`);return e.listener&&e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||p}function xa(e){let t=e.position,r,o,n,i=!1,s;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(s=e.input.charCodeAt(e.position))!==0&&(I(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||s!==37));){for(i=!0,s=e.input.charCodeAt(++e.position),r=e.position;s!==0&&!D(s);)s=e.input.charCodeAt(++e.position);if(o=e.input.slice(r,e.position),n=[],o.length<1)return h(e,"directive name must not be less than one character in length");for(;s!==0;){for(;ae(s);)s=e.input.charCodeAt(++e.position);if(s===35){do s=e.input.charCodeAt(++e.position);while(s!==0&&!W(s));break}if(W(s))break;for(r=e.position;s!==0&&!D(s);)s=e.input.charCodeAt(++e.position);n.push(e.input.slice(r,e.position))}s!==0&&Xt(e),re(Yr,o)?Yr[o](e,o,...n):et(e,`unknown document directive "${o}"`)}if(I(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45)e.position+=3,I(e,!0,-1);else if(i)return h(e,"directives end mark is expected");if(fe(e,e.lineIndent-1,Ze,!1,!0),I(e,!0,-1),e.checkLineBreaks&&na.test(e.input.slice(t,e.position))&&et(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&tt(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,I(e,!0,-1));return}if(e.position({...o,name:o.name,description:o.description||`${o.modelName} on ${o.provider}`})),t=await u.filterBox("Select a model",e);if(!t){await u.flashNotification("No model selected.","error");return}let r=t.name;await xt(t),await we(t),await u.flashNotification(`Selected model: ${r}`),console.log("Selected model:",t)}async function cn(){(!f||!f.imageModels)&&await z(!1);let e=f.imageModels.map(o=>({...o,name:o.name,description:o.description||`${o.modelName} on ${o.provider}`})),t=await u.filterBox("Select an image model",e);if(!t){await u.flashNotification("No image model selected.","error");return}let r=t.name;await yt(t),await wt(t),await u.flashNotification(`Selected image model: ${r}`),console.log("Selected image model:",t)}async function ln(){(!f||!f.embeddingModels)&&await z(!1);let e=f.embeddingModels.map(o=>({...o,name:o.name,description:o.description||`${o.modelName} on ${o.provider}`})),t=await u.filterBox("Select an embedding model",e);if(!t){await u.flashNotification("No embedding model selected.","error");return}let r=t.name;await bt(t),await Pt(t),await u.flashNotification(`Selected embedding model: ${r}`),console.log("Selected embedding model:",t)}async function un(){await C();let e=await _e(),t=await u.prompt("Please enter a prompt to send to the LLM. Selected text or the entire note will also be sent as context."),r=await u.getCurrentPage(),o=new Date,n=o.toISOString().split("T")[0],i=o.toLocaleDateString("en-US",{weekday:"long"});await O.streamChatIntoEditor({messages:[{role:"system",content:"You are an AI note assistant. Follow all user instructions and use the note context and note content to help follow those instructions. Use Markdown for any formatting."},{role:"user",content:`Note Context: Today is ${i}, ${n}. The current note name is "${r}". +`);break}p?ae(a)?(c=!0,e.result+=K(` +`,o?1+s:s)):c?(c=!1,e.result+=K(` +`,s+1)):s===0?o&&(e.result+=" "):e.result+=K(` +`,s):e.result+=K(` +`,o?1+s:s),o=!0,n=!0,s=0;let d=e.position;for(;!W(a)&&a!==0;)a=e.input.charCodeAt(++e.position);te(e,d,e.position,!1)}return!0}function Qr(e,t){let r,o,n=!1,i,s=e.tag,c=e.anchor,a=[];for(e.anchor!==null&&typeof e.anchor<"u"&&typeof e.anchorMap<"u"&&(e.anchorMap[e.anchor]=a),i=e.input.charCodeAt(e.position);i!==0&&!(i!==45||(o=e.input.charCodeAt(e.position+1),!D(o)));){if(n=!0,e.position++,I(e,!0,-1)&&e.lineIndent<=t){a.push(null),i=e.input.charCodeAt(e.position);continue}if(r=e.line,fe(e,t,zr,!1,!0),a.push(e.result),I(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&i!==0)return h(e,"bad indentation of a sequence entry");if(e.lineIndentt)&&(fe(e,t,Ze,!0,a)&&(x?g=e.result:y=e.result),x||(de(e,i,s,d,g,y,p,m),d=g=y=null),I(e,!0,-1),w=e.input.charCodeAt(e.position)),e.lineIndent>t&&w!==0)return h(e,"bad indentation of a mapping entry");if(e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndentt?c=1:e.lineIndent===t?c=0:e.lineIndent tag; it should be "${m.kind}", not "${e.kind}"`);if(m.resolve(e.result))e.result=m.construct(e.result),e.anchor!==null&&typeof e.anchorMap<"u"&&(e.anchorMap[e.anchor]=e.result);else return h(e,`cannot resolve a node with !<${e.tag}> explicit tag`)}else return h(e,`unknown tag !<${e.tag}>`);return e.listener&&e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||p}function xa(e){let t=e.position,r,o,n,i=!1,s;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);(s=e.input.charCodeAt(e.position))!==0&&(I(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||s!==37));){for(i=!0,s=e.input.charCodeAt(++e.position),r=e.position;s!==0&&!D(s);)s=e.input.charCodeAt(++e.position);if(o=e.input.slice(r,e.position),n=[],o.length<1)return h(e,"directive name must not be less than one character in length");for(;s!==0;){for(;ae(s);)s=e.input.charCodeAt(++e.position);if(s===35){do s=e.input.charCodeAt(++e.position);while(s!==0&&!W(s));break}if(W(s))break;for(r=e.position;s!==0&&!D(s);)s=e.input.charCodeAt(++e.position);n.push(e.input.slice(r,e.position))}s!==0&&Xt(e),re(Yr,o)?Yr[o](e,o,...n):et(e,`unknown document directive "${o}"`)}if(I(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45)e.position+=3,I(e,!0,-1);else if(i)return h(e,"directives end mark is expected");if(fe(e,e.lineIndent-1,Ze,!1,!0),I(e,!0,-1),e.checkLineBreaks&&na.test(e.input.slice(t,e.position))&&et(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&tt(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,I(e,!0,-1));return}if(e.position({...o,name:o.name,description:o.description||`${o.modelName} on ${o.provider}`})),t=await u.filterBox("Select a model",e);if(!t){await u.flashNotification("No model selected.","error");return}let r=t.name;await xt(t),await we(t),await u.flashNotification(`Selected model: ${r}`),console.log("Selected model:",t)}async function cn(){(!f||!f.imageModels)&&await z(!1);let e=f.imageModels.map(o=>({...o,name:o.name,description:o.description||`${o.modelName} on ${o.provider}`})),t=await u.filterBox("Select an image model",e);if(!t){await u.flashNotification("No image model selected.","error");return}let r=t.name;await yt(t),await wt(t),await u.flashNotification(`Selected image model: ${r}`),console.log("Selected image model:",t)}async function ln(){(!f||!f.embeddingModels)&&await z(!1);let e=f.embeddingModels.map(o=>({...o,name:o.name,description:o.description||`${o.modelName} on ${o.provider}`})),t=await u.filterBox("Select an embedding model",e);if(!t){await u.flashNotification("No embedding model selected.","error");return}let r=t.name;await bt(t),await Pt(t),await u.flashNotification(`Selected embedding model: ${r}`),console.log("Selected embedding model:",t)}async function un(){await C();let e=await _e(),t=await u.prompt("Please enter a prompt to send to the LLM. Selected text or the entire note will also be sent as context."),r=await u.getCurrentPage(),o=new Date,n=o.toISOString().split("T")[0],i=o.toLocaleDateString("en-US",{weekday:"long"});await O.streamChatIntoEditor({messages:[{role:"system",content:"You are an AI note assistant. Follow all user instructions and use the note context and note content to help follow those instructions. Use Markdown for any formatting."},{role:"user",content:`Note Context: Today is ${i}, ${n}. The current note name is "${r}". User Prompt: ${t} Note Content: ${e.text}`}],stream:!0},e.to)}async function pn(){await C();let e=await _e();if(console.log("selectedTextInfo",e),e.text.length>0){let t=await u.getCurrentPage(),r=await O.chatWithAI({messages:[{role:"user",content:`Please summarize this note using markdown for any formatting. Your summary will be appended to the end of this note, do not include any of the note contents yourself. Keep the summary brief. The note name is ${t}. @@ -112,7 +112,7 @@ ${e.text}`}],stream:!1});return console.log("OpenAI response:",r),{summary:r,sel ${f.promptInstructions.tagRules}`,n=`Page Title: ${t} Page Content: -${e}`,s=(await O.singleMessageChat(n,o)).trim().replace(/,/g,"").split(/\s+/),c=await N.parseMarkdown(e),a=await V(c),p=[...new Set([...a.tags||[],...s])];a.tags=p,console.log("Current frontmatter:",a);let m=await ut(c,a);console.log("updatedNoteContent",m),await u.dispatch(m),await u.flashNotification("Note tagged successfully.")}async function tr(){await C();let e=await u.getText(),t=await u.getCurrentPage(),r=[{name:"Generating suggestions...",description:""}];u.filterBox("Loading...",r,"Retrieving suggestions from LLM provider.").then(p=>{console.log("Selected option (initial):",p)});let n="";f.promptInstructions.pageRenameSystem?n=f.promptInstructions.pageRenameSystem:n=`You are an AI note-naming assistant. Your task is to suggest three to five possible names for the provided note content. Please adhere to the following guidelines: +${e}`,s=(await O.singleMessageChat(n,o)).trim().replace(/,/g,"").split(/\s+/),c=await k.parseMarkdown(e),a=await V(c),p=[...new Set([...a.tags||[],...s])];a.tags=p,console.log("Current frontmatter:",a);let m=await ut(c,a);console.log("updatedNoteContent",m),await u.dispatch(m),await u.flashNotification("Note tagged successfully.")}async function tr(){await C();let e=await u.getText(),t=await u.getCurrentPage(),r=[{name:"Generating suggestions...",description:""}];u.filterBox("Loading...",r,"Retrieving suggestions from LLM provider.").then(p=>{console.log("Selected option (initial):",p)});let n="";f.promptInstructions.pageRenameSystem?n=f.promptInstructions.pageRenameSystem:n=`You are an AI note-naming assistant. Your task is to suggest three to five possible names for the provided note content. Please adhere to the following guidelines: - Provide each name on a new line. - Use only spaces, forward slashes (as folder separators), and hyphens as special characters. - Ensure the names are concise, descriptive, and relevant to the content. @@ -142,11 +142,11 @@ ${e}`,`You are an AI note enhancing assistant. Your task is to understand the co Always follow the below rules, if any, given by the user: -${f.promptInstructions.enhanceFrontMatterPrompt}`,!0);console.log("frontmatter returned by enhanceNoteFrontMatter",n);try{let i=nn(n);if(typeof i!="object"||Array.isArray(i)||!i)throw new Error("Invalid YAML: Not an object");r.forEach(m=>{delete i[m]});let s=await N.parseMarkdown(e),a={...await V(s),...i},p=await ut(s,a);console.log("updatedNoteContent",p),await u.dispatch(p)}catch(i){console.error("Invalid YAML returned by enhanceNoteFrontMatter",i),await u.flashNotification("Error: Invalid Frontmatter YAML returned.","error");return}await u.flashNotification("Frontmatter enhanced successfully.","info")}async function fn(){await er(),await rr(),await tr()}async function gn(){let e=await _e(),t=e.to;await O.streamChatIntoEditor({messages:[{role:"system",content:"You are an AI note assistant in a markdown-based note tool."},{role:"user",content:e.text}],stream:!0},t)}async function hn(){await C();let e=await Ve();if(e.length===0){await u.flashNotification("Error: The page does not match the required format for a chat.");return}e.unshift(xe);let t=await ue(e);console.log("enrichedMessages",t);let r=await se();await u.insertAtPos(` +${f.promptInstructions.enhanceFrontMatterPrompt}`,!0);console.log("frontmatter returned by enhanceNoteFrontMatter",n);try{let i=nn(n);if(typeof i!="object"||Array.isArray(i)||!i)throw new Error("Invalid YAML: Not an object");r.forEach(m=>{delete i[m]});let s=await k.parseMarkdown(e),a={...await V(s),...i},p=await ut(s,a);console.log("updatedNoteContent",p),await u.dispatch(p)}catch(i){console.error("Invalid YAML returned by enhanceNoteFrontMatter",i),await u.flashNotification("Error: Invalid Frontmatter YAML returned.","error");return}await u.flashNotification("Frontmatter enhanced successfully.","info")}async function fn(){await er(),await rr(),await tr()}async function gn(){let e=await _e(),t=e.to;await O.streamChatIntoEditor({messages:[{role:"system",content:"You are an AI note assistant in a markdown-based note tool."},{role:"user",content:e.text}],stream:!0},t)}async function hn(){await C();let e=await Ve();if(e.length===0){await u.flashNotification("Error: The page does not match the required format for a chat.");return}e.unshift(xe);let t=await ue(e);console.log("enrichedMessages",t);let r=await se();await u.insertAtPos(` **assistant**: `,r),r+=17,await u.insertAtPos(` -**user**: `,r),await u.moveCursor(r+12);try{await O.streamChatIntoEditor({messages:t,stream:!0},r)}catch(o){console.error("Error streaming chat on page:",o),await u.flashNotification("Error streaming chat on page.","error")}}async function yn(){if(await C(),!f.imageModels||f.imageModels.length===0){await u.flashNotification("No image models available.","error");return}try{let e=await u.prompt("Enter a prompt for DALL\xB7E:");if(!e||!e.trim()){await u.flashNotification("No prompt entered. Operation cancelled.","error");return}let t={prompt:e,numImages:1,size:"1024x1024",quality:"hd"},r=await Ye.generateImage(t);if(r&&r.data&&r.data.length>0){let o=r.data[0].b64_json,n=r.data[0].revised_prompt,i=new Uint8Array($r(o)),s=`dall-e-${Date.now()}.png`,c=kr(await u.getCurrentPage())+"/";c==="/"&&(c=""),await $.writeAttachment(c+s,i);let a=`![${s}](${s}) +**user**: `,r),await u.moveCursor(r+12);try{await O.streamChatIntoEditor({messages:t,stream:!0},r)}catch(o){console.error("Error streaming chat on page:",o),await u.flashNotification("Error streaming chat on page.","error")}}async function yn(){if(await C(),!f.imageModels||f.imageModels.length===0){await u.flashNotification("No image models available.","error");return}try{let e=await u.prompt("Enter a prompt for DALL\xB7E:");if(!e||!e.trim()){await u.flashNotification("No prompt entered. Operation cancelled.","error");return}let t={prompt:e,numImages:1,size:"1024x1024",quality:"hd"},r=await Ye.generateImage(t);if(r&&r.data&&r.data.length>0){let o=r.data[0].b64_json,n=r.data[0].revised_prompt,i=new Uint8Array($r(o)),s=`dall-e-${Date.now()}.png`,c=Nr(await u.getCurrentPage())+"/";c==="/"&&(c=""),await $.writeAttachment(c+s,i);let a=`![${s}](${s}) *${n}*`;await u.insertAtCursor(a),await u.flashNotification("Image generated and inserted with caption successfully.")}else await u.flashNotification("Failed to generate image.","error")}catch(e){console.error("Error generating image with DALL\xB7E:",e),await u.flashNotification("Error generating image.","error")}}async function xn(e,t){try{return await C(),await O.singleMessageChat(e,t||"You are an AI note assistant helping to render content for a note. Please follow user instructions and keep your response short and concise.")}catch(r){throw console.error("Error querying OpenAI:",r),r}}async function bn(){await C();let e=await u.prompt("Enter some text to embed:");if(!e){await u.flashNotification("No text entered.","error");return}let t=await j.generateEmbeddings({text:e});await u.insertAtCursor(` -Embedding: ${t}`)}var wn={aiPromptSlashCommplete:Rr,queryAI:xn,reloadSettingsPageEvent:on,reloadConfigEvent:sn,summarizeNote:dn,insertSummary:mn,callOpenAI:un,tagNoteWithAI:er,promptAndGenerateImage:yn,streamOpenAIWithSelectionAsPrompt:gn,streamChatOnPage:hn,insertAiPromptFromTemplate:Lr,suggestPageName:tr,enhanceNoteFrontMatter:rr,enhanceNoteWithAI:fn,selectTextModel:an,selectImageModel:cn,selectEmbeddingModel:ln,testEmbeddingGeneration:bn,getAllEmbeddings:vt,searchEmbeddings:Et,queueEmbeddingGeneration:Pr,processEmbeddingsQueue:Ar,processSummaryQueue:Sr,generateEmbeddings:Er,generateEmbeddingsOnServer:Ae,searchEmbeddingsForChat:Qe,searchCombinedEmbeddings:We,searchSummaryEmbeddings:Tr,readPageSearchEmbeddings:Cr,writePageSearchEmbeddings:Mr,getPageMetaSearchEmbeddings:Tt,searchCommand:Or,updateSearchPage:Ir},Pn={name:"silverbullet-ai",requiredPermissions:["fetch"],functions:{aiPromptSlashCommplete:{path:"src/prompts.ts:aiPromptSlashComplete",events:["slash:complete"]},queryAI:{path:"sbai.ts:queryAI"},reloadSettingsPageEvent:{path:"sbai.ts:reloadSettingsPage",events:["page:saved"]},reloadConfigEvent:{path:"sbai.ts:reloadConfig",events:["config:loaded"]},summarizeNote:{path:"sbai.ts:openSummaryPanel",command:{name:"AI: Summarize Note and open summary"}},insertSummary:{path:"sbai.ts:insertSummary",command:{name:"AI: Insert Summary"}},callOpenAI:{path:"sbai.ts:callOpenAIwithNote",command:{name:"AI: Call OpenAI with Note as context"}},tagNoteWithAI:{path:"sbai.ts:tagNoteWithAI",command:{name:"AI: Generate tags for note"}},promptAndGenerateImage:{path:"sbai.ts:promptAndGenerateImage",command:{name:"AI: Generate and insert image using DallE"}},streamOpenAIWithSelectionAsPrompt:{path:"sbai.ts:streamOpenAIWithSelectionAsPrompt",command:{name:"AI: Stream response with selection or note as prompt"}},streamChatOnPage:{path:"sbai.ts:streamChatOnPage",command:{name:"AI: Chat on current page",key:"Ctrl-Shift-Enter",mac:"Cmd-Shift-Enter"}},insertAiPromptFromTemplate:{path:"src/prompts.ts:insertAiPromptFromTemplate",command:{name:"AI: Execute AI Prompt from Custom Template"}},suggestPageName:{path:"sbai.ts:suggestPageName",command:{name:"AI: Suggest Page Name"}},enhanceNoteFrontMatter:{path:"sbai.ts:enhanceNoteFrontMatter",command:{name:"AI: Generate Note FrontMatter"}},enhanceNoteWithAI:{path:"sbai.ts:enhanceNoteWithAI",command:{name:"AI: Enhance Note"}},selectTextModel:{path:"sbai.ts:selectModelFromConfig",command:{name:"AI: Select Text Model from Config"}},selectImageModel:{path:"sbai.ts:selectImageModelFromConfig",command:{name:"AI: Select Image Model from Config"}},selectEmbeddingModel:{path:"sbai.ts:selectEmbeddingModelFromConfig",command:{name:"AI: Select Embedding Model from Config"}},testEmbeddingGeneration:{path:"sbai.ts:testEmbeddingGeneration",command:{name:"AI: Test Embedding Generation"}},getAllEmbeddings:{path:"src/embeddings.ts:getAllEmbeddings",env:"server"},searchEmbeddings:{path:"src/embeddings.ts:searchEmbeddings",env:"server"},queueEmbeddingGeneration:{path:"src/embeddings.ts:queueEmbeddingGeneration",env:"server",events:["page:index"]},processEmbeddingsQueue:{path:"src/embeddings.ts:processEmbeddingsQueue",mqSubscriptions:[{queue:"aiEmbeddingsQueue",batchSize:1,autoAck:!0,pollInterval:6e5}]},processSummaryQueue:{path:"src/embeddings.ts:processSummaryQueue",mqSubscriptions:[{queue:"aiSummaryQueue",batchSize:1,autoAck:!0,pollInterval:6e5}]},generateEmbeddings:{path:"src/embeddings.ts:generateEmbeddings"},generateEmbeddingsOnServer:{path:"src/embeddings.ts:generateEmbeddingsOnServer"},searchEmbeddingsForChat:{path:"src/embeddings.ts:searchEmbeddingsForChat"},searchCombinedEmbeddings:{path:"src/embeddings.ts:searchCombinedEmbeddings"},searchSummaryEmbeddings:{path:"src/embeddings.ts:searchSummaryEmbeddings"},readPageSearchEmbeddings:{path:"src/embeddings.ts:readFileEmbeddings",pageNamespace:{pattern:"\u{1F916} .+",operation:"readFile"}},writePageSearchEmbeddings:{path:"src/embeddings.ts:writeFileEmbeddings",pageNamespace:{pattern:"\u{1F916} .+",operation:"writeFile"}},getPageMetaSearchEmbeddings:{path:"src/embeddings.ts:getFileMetaEmbeddings",pageNamespace:{pattern:"\u{1F916} .+",operation:"getFileMeta"}},searchCommand:{path:"src/embeddings.ts:searchCommand",command:{name:"AI: Search"}},updateSearchPage:{path:"src/embeddings.ts:updateSearchPage",events:["editor:pageLoaded","editor:pageReloaded"]}},assets:{}},pd={manifest:Pn,functionMapping:wn};nr(wn,Pn,self.postMessage);export{pd as plug}; +Embedding: ${t}`)}var wn={aiPromptSlashCommplete:Rr,queryAI:xn,reloadSettingsPageEvent:on,reloadConfigEvent:sn,summarizeNote:dn,insertSummary:mn,callOpenAI:un,tagNoteWithAI:er,promptAndGenerateImage:yn,streamOpenAIWithSelectionAsPrompt:gn,streamChatOnPage:hn,insertAiPromptFromTemplate:Lr,suggestPageName:tr,enhanceNoteFrontMatter:rr,enhanceNoteWithAI:fn,selectTextModel:an,selectImageModel:cn,selectEmbeddingModel:ln,testEmbeddingGeneration:bn,getAllEmbeddings:Et,searchEmbeddings:vt,queueEmbeddingGeneration:Pr,processEmbeddingsQueue:Ar,processSummaryQueue:Sr,generateEmbeddings:vr,generateEmbeddingsOnServer:Ae,searchEmbeddingsForChat:Qe,searchCombinedEmbeddings:We,searchSummaryEmbeddings:Tr,readPageSearchEmbeddings:Cr,writePageSearchEmbeddings:Mr,getPageMetaSearchEmbeddings:Tt,searchCommand:Or,updateSearchPage:Ir},Pn={name:"silverbullet-ai",requiredPermissions:["fetch"],functions:{aiPromptSlashCommplete:{path:"src/prompts.ts:aiPromptSlashComplete",events:["slash:complete"]},queryAI:{path:"sbai.ts:queryAI"},reloadSettingsPageEvent:{path:"sbai.ts:reloadSettingsPage",events:["page:saved"]},reloadConfigEvent:{path:"sbai.ts:reloadConfig",events:["config:loaded"]},summarizeNote:{path:"sbai.ts:openSummaryPanel",command:{name:"AI: Summarize Note and open summary"}},insertSummary:{path:"sbai.ts:insertSummary",command:{name:"AI: Insert Summary"}},callOpenAI:{path:"sbai.ts:callOpenAIwithNote",command:{name:"AI: Call OpenAI with Note as context"}},tagNoteWithAI:{path:"sbai.ts:tagNoteWithAI",command:{name:"AI: Generate tags for note"}},promptAndGenerateImage:{path:"sbai.ts:promptAndGenerateImage",command:{name:"AI: Generate and insert image using DallE"}},streamOpenAIWithSelectionAsPrompt:{path:"sbai.ts:streamOpenAIWithSelectionAsPrompt",command:{name:"AI: Stream response with selection or note as prompt"}},streamChatOnPage:{path:"sbai.ts:streamChatOnPage",command:{name:"AI: Chat on current page",key:"Ctrl-Shift-Enter",mac:"Cmd-Shift-Enter"}},insertAiPromptFromTemplate:{path:"src/prompts.ts:insertAiPromptFromTemplate",command:{name:"AI: Execute AI Prompt from Custom Template"}},suggestPageName:{path:"sbai.ts:suggestPageName",command:{name:"AI: Suggest Page Name"}},enhanceNoteFrontMatter:{path:"sbai.ts:enhanceNoteFrontMatter",command:{name:"AI: Generate Note FrontMatter"}},enhanceNoteWithAI:{path:"sbai.ts:enhanceNoteWithAI",command:{name:"AI: Enhance Note"}},selectTextModel:{path:"sbai.ts:selectModelFromConfig",command:{name:"AI: Select Text Model from Config"}},selectImageModel:{path:"sbai.ts:selectImageModelFromConfig",command:{name:"AI: Select Image Model from Config"}},selectEmbeddingModel:{path:"sbai.ts:selectEmbeddingModelFromConfig",command:{name:"AI: Select Embedding Model from Config"}},testEmbeddingGeneration:{path:"sbai.ts:testEmbeddingGeneration",command:{name:"AI: Test Embedding Generation"}},getAllEmbeddings:{path:"src/embeddings.ts:getAllEmbeddings",env:"server"},searchEmbeddings:{path:"src/embeddings.ts:searchEmbeddings",env:"server"},queueEmbeddingGeneration:{path:"src/embeddings.ts:queueEmbeddingGeneration",env:"server",events:["page:index"]},processEmbeddingsQueue:{path:"src/embeddings.ts:processEmbeddingsQueue",mqSubscriptions:[{queue:"aiEmbeddingsQueue",batchSize:1,autoAck:!0,pollInterval:6e5}]},processSummaryQueue:{path:"src/embeddings.ts:processSummaryQueue",mqSubscriptions:[{queue:"aiSummaryQueue",batchSize:1,autoAck:!0,pollInterval:6e5}]},generateEmbeddings:{path:"src/embeddings.ts:generateEmbeddings"},generateEmbeddingsOnServer:{path:"src/embeddings.ts:generateEmbeddingsOnServer"},searchEmbeddingsForChat:{path:"src/embeddings.ts:searchEmbeddingsForChat"},searchCombinedEmbeddings:{path:"src/embeddings.ts:searchCombinedEmbeddings"},searchSummaryEmbeddings:{path:"src/embeddings.ts:searchSummaryEmbeddings"},readPageSearchEmbeddings:{path:"src/embeddings.ts:readFileEmbeddings",pageNamespace:{pattern:"\u{1F916} .+",operation:"readFile"}},writePageSearchEmbeddings:{path:"src/embeddings.ts:writeFileEmbeddings",pageNamespace:{pattern:"\u{1F916} .+",operation:"writeFile"}},getPageMetaSearchEmbeddings:{path:"src/embeddings.ts:getFileMetaEmbeddings",pageNamespace:{pattern:"\u{1F916} .+",operation:"getFileMeta"}},searchCommand:{path:"src/embeddings.ts:searchCommand",command:{name:"AI: Search"}},updateSearchPage:{path:"src/embeddings.ts:updateSearchPage",events:["editor:pageLoaded","editor:pageReloaded"]}},assets:{}},od={manifest:Pn,functionMapping:wn};nr(wn,Pn,self.postMessage);export{od as plug};