@inkeep/open-knowledge 0.0.0-dev-20260423231521 → 0.0.0-dev-20260424010642
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +4 -4
- package/dist/constants-Cs463jly.mjs +2 -0
- package/dist/index.mjs +1 -1
- package/dist/init-2VnOB85F.mjs +1 -0
- package/dist/init-CCx9nR5M.mjs +1 -0
- package/dist/{init-CODC0Drd.mjs → init-DgjpYMQB.mjs} +2 -2
- package/dist/{init-DysAQtCG.mjs → init-Xod4U7aY.mjs} +3 -3
- package/dist/loader-Cm1Bwe2n.mjs +1 -0
- package/dist/{loader-DfTFnc2z.mjs → loader-Dw_7CMz3.mjs} +2 -2
- package/dist/{paths-B9hXoumv.mjs → paths-BQwE2DU0.mjs} +2 -2
- package/dist/paths-a8wNIBFD.mjs +1 -0
- package/dist/{preview-jDZwLSul.mjs → preview-Bn5MTCPO.mjs} +2 -2
- package/dist/preview-_ahVwbF3.mjs +1 -0
- package/dist/public/assets/{GraphPanel-nbYklZ9C.js → GraphPanel-CdNqMYNB.js} +2 -2
- package/dist/public/assets/McpConsentDialogBody-Bgy0eAJw.js +1 -0
- package/dist/public/assets/{SourceEditor-CEqBKP5f.js → SourceEditor-DFAP44AB.js} +2 -2
- package/dist/public/assets/{clipboard-ZQ-AEssh.js → clipboard-Bau-T9ly.js} +6 -6
- package/dist/public/assets/{dialog-C2kd-BJI.js → dialog-XDohhbSr.js} +3 -3
- package/dist/public/assets/index-CVv4yIuY.css +1 -0
- package/dist/public/assets/index-Dpc5ZsZ1.js +27 -0
- package/dist/public/assets/{panel-CnHxXki4.js → panel-B3Oezbzt.js} +1 -1
- package/dist/public/assets/toggle-group-DRnV5hAP.js +1 -0
- package/dist/public/index.html +6 -6
- package/dist/{src-rqPIkHTi.mjs → src-C1Um6yPF.mjs} +3 -3
- package/dist/{src-DHnGx64r.mjs → src-C445dwsE.mjs} +1 -1
- package/dist/src-DblXU7Ud.mjs +1 -0
- package/dist/start-C-cNVeh0.mjs +1 -0
- package/dist/{start-DAAnFlO5.mjs → start-z2CFfZyW.mjs} +2 -2
- package/package.json +1 -1
- package/dist/constants-DA7Qh-Kl.mjs +0 -2
- package/dist/init-CFVYH-16.mjs +0 -1
- package/dist/init-DQNJ_f3z.mjs +0 -1
- package/dist/loader-89zKhhvs.mjs +0 -1
- package/dist/paths-BhmQnYL9.mjs +0 -1
- package/dist/preview-CULBnUoI.mjs +0 -1
- package/dist/public/assets/McpConsentDialogBody-BTLTOjWM.js +0 -1
- package/dist/public/assets/index-CGTgnYOo.css +0 -1
- package/dist/public/assets/index-DUIfxmm6.js +0 -21
- package/dist/public/assets/toggle-group-BNTPJpXY.js +0 -1
- package/dist/src-CBVTx8JJ.mjs +0 -1
- package/dist/start-D0wsbZmD.mjs +0 -1
|
@@ -237,4 +237,4 @@ ${t.slice(l+2)}`,d+=1;else break}t.push({indent:l,number:parseInt(s,10),content:
|
|
|
237
237
|
`,i),o==-1&&(o=e.length-1);var c=e.substring(i,o+1);(r.hasOwnProperty?r.hasOwnProperty(c):r[c]!==void 0)?t+=String.fromCharCode(r[c]):(s==a&&(c=e.substring(i),o=e.length),t+=String.fromCharCode(s),r[c]=s,n[s++]=c),i=o+1}return t}var a=4e4,o=i(e);return a=65535,{chars1:o,chars2:i(t),lineArray:n}},n.prototype.diff_charsToLines_=function(e,t){for(var n=0;n<e.length;n++){for(var r=e[n][1],i=[],a=0;a<r.length;a++)i[a]=t[r.charCodeAt(a)];e[n][1]=i.join(``)}},n.prototype.diff_commonPrefix=function(e,t){if(!e||!t||e.charAt(0)!=t.charAt(0))return 0;for(var n=0,r=Math.min(e.length,t.length),i=r,a=0;n<i;)e.substring(a,i)==t.substring(a,i)?(n=i,a=n):r=i,i=Math.floor((r-n)/2+n);return i},n.prototype.diff_commonSuffix=function(e,t){if(!e||!t||e.charAt(e.length-1)!=t.charAt(t.length-1))return 0;for(var n=0,r=Math.min(e.length,t.length),i=r,a=0;n<i;)e.substring(e.length-i,e.length-a)==t.substring(t.length-i,t.length-a)?(n=i,a=n):r=i,i=Math.floor((r-n)/2+n);return i},n.prototype.diff_commonOverlap_=function(e,t){var n=e.length,r=t.length;if(n==0||r==0)return 0;n>r?e=e.substring(n-r):n<r&&(t=t.substring(0,n));var i=Math.min(n,r);if(e==t)return i;for(var a=0,o=1;;){var s=e.substring(i-o),c=t.indexOf(s);if(c==-1)return a;o+=c,(c==0||e.substring(i-o)==t.substring(0,o))&&(a=o,o++)}},n.prototype.diff_halfMatch_=function(e,t){if(this.Diff_Timeout<=0)return null;var n=e.length>t.length?e:t,r=e.length>t.length?t:e;if(n.length<4||r.length*2<n.length)return null;var i=this;function a(e,t,n){for(var r=e.substring(n,n+Math.floor(e.length/4)),a=-1,o=``,s,c,l,u;(a=t.indexOf(r,a+1))!=-1;){var d=i.diff_commonPrefix(e.substring(n),t.substring(a)),f=i.diff_commonSuffix(e.substring(0,n),t.substring(0,a));o.length<f+d&&(o=t.substring(a-f,a)+t.substring(a,a+d),s=e.substring(0,n-f),c=e.substring(n+d),l=t.substring(0,a-f),u=t.substring(a+d))}return o.length*2>=e.length?[s,c,l,u,o]:null}var o=a(n,r,Math.ceil(n.length/4)),s=a(n,r,Math.ceil(n.length/2)),c;if(!o&&!s)return null;c=s?o&&o[4].length>s[4].length?o:s:o;var l,u,d,f;e.length>t.length?(l=c[0],u=c[1],d=c[2],f=c[3]):(d=c[0],f=c[1],l=c[2],u=c[3]);var p=c[4];return[l,u,d,f,p]},n.prototype.diff_cleanupSemantic=function(e){for(var t=!1,o=[],s=0,c=null,l=0,u=0,d=0,f=0,p=0;l<e.length;)e[l][0]==a?(o[s++]=l,u=f,d=p,f=0,p=0,c=e[l][1]):(e[l][0]==i?f+=e[l][1].length:p+=e[l][1].length,c&&c.length<=Math.max(u,d)&&c.length<=Math.max(f,p)&&(e.splice(o[s-1],0,new n.Diff(r,c)),e[o[s-1]+1][0]=i,s--,s--,l=s>0?o[s-1]:-1,u=0,d=0,f=0,p=0,c=null,t=!0)),l++;for(t&&this.diff_cleanupMerge(e),this.diff_cleanupSemanticLossless(e),l=1;l<e.length;){if(e[l-1][0]==r&&e[l][0]==i){var m=e[l-1][1],h=e[l][1],g=this.diff_commonOverlap_(m,h),_=this.diff_commonOverlap_(h,m);g>=_?(g>=m.length/2||g>=h.length/2)&&(e.splice(l,0,new n.Diff(a,h.substring(0,g))),e[l-1][1]=m.substring(0,m.length-g),e[l+1][1]=h.substring(g),l++):(_>=m.length/2||_>=h.length/2)&&(e.splice(l,0,new n.Diff(a,m.substring(0,_))),e[l-1][0]=i,e[l-1][1]=h.substring(0,h.length-_),e[l+1][0]=r,e[l+1][1]=m.substring(_),l++),l++}l++}},n.prototype.diff_cleanupSemanticLossless=function(e){function t(e,t){if(!e||!t)return 6;var r=e.charAt(e.length-1),i=t.charAt(0),a=r.match(n.nonAlphaNumericRegex_),o=i.match(n.nonAlphaNumericRegex_),s=a&&r.match(n.whitespaceRegex_),c=o&&i.match(n.whitespaceRegex_),l=s&&r.match(n.linebreakRegex_),u=c&&i.match(n.linebreakRegex_),d=l&&e.match(n.blanklineEndRegex_),f=u&&t.match(n.blanklineStartRegex_);return d||f?5:l||u?4:a&&!s&&c?3:s||c?2:a||o?1:0}for(var r=1;r<e.length-1;){if(e[r-1][0]==a&&e[r+1][0]==a){var i=e[r-1][1],o=e[r][1],s=e[r+1][1],c=this.diff_commonSuffix(i,o);if(c){var l=o.substring(o.length-c);i=i.substring(0,i.length-c),o=l+o.substring(0,o.length-c),s=l+s}for(var u=i,d=o,f=s,p=t(i,o)+t(o,s);o.charAt(0)===s.charAt(0);){i+=o.charAt(0),o=o.substring(1)+s.charAt(0),s=s.substring(1);var m=t(i,o)+t(o,s);m>=p&&(p=m,u=i,d=o,f=s)}e[r-1][1]!=u&&(u?e[r-1][1]=u:(e.splice(r-1,1),r--),e[r][1]=d,f?e[r+1][1]=f:(e.splice(r+1,1),r--))}r++}},n.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,n.whitespaceRegex_=/\s/,n.linebreakRegex_=/[\r\n]/,n.blanklineEndRegex_=/\n\r?\n$/,n.blanklineStartRegex_=/^\r?\n\r?\n/,n.prototype.diff_cleanupEfficiency=function(e){for(var t=!1,o=[],s=0,c=null,l=0,u=!1,d=!1,f=!1,p=!1;l<e.length;)e[l][0]==a?(e[l][1].length<this.Diff_EditCost&&(f||p)?(o[s++]=l,u=f,d=p,c=e[l][1]):(s=0,c=null),f=p=!1):(e[l][0]==r?p=!0:f=!0,c&&(u&&d&&f&&p||c.length<this.Diff_EditCost/2&&u+d+f+p==3)&&(e.splice(o[s-1],0,new n.Diff(r,c)),e[o[s-1]+1][0]=i,s--,c=null,u&&d?(f=p=!0,s=0):(s--,l=s>0?o[s-1]:-1,f=p=!1),t=!0)),l++;t&&this.diff_cleanupMerge(e)},n.prototype.diff_cleanupMerge=function(e){e.push(new n.Diff(a,``));for(var t=0,o=0,s=0,c=``,l=``,u;t<e.length;)switch(e[t][0]){case i:s++,l+=e[t][1],t++;break;case r:o++,c+=e[t][1],t++;break;case a:o+s>1?(o!==0&&s!==0&&(u=this.diff_commonPrefix(l,c),u!==0&&(t-o-s>0&&e[t-o-s-1][0]==a?e[t-o-s-1][1]+=l.substring(0,u):(e.splice(0,0,new n.Diff(a,l.substring(0,u))),t++),l=l.substring(u),c=c.substring(u)),u=this.diff_commonSuffix(l,c),u!==0&&(e[t][1]=l.substring(l.length-u)+e[t][1],l=l.substring(0,l.length-u),c=c.substring(0,c.length-u))),t-=o+s,e.splice(t,o+s),c.length&&(e.splice(t,0,new n.Diff(r,c)),t++),l.length&&(e.splice(t,0,new n.Diff(i,l)),t++),t++):t!==0&&e[t-1][0]==a?(e[t-1][1]+=e[t][1],e.splice(t,1)):t++,s=0,o=0,c=``,l=``;break}e[e.length-1][1]===``&&e.pop();var d=!1;for(t=1;t<e.length-1;)e[t-1][0]==a&&e[t+1][0]==a&&(e[t][1].substring(e[t][1].length-e[t-1][1].length)==e[t-1][1]?(e[t][1]=e[t-1][1]+e[t][1].substring(0,e[t][1].length-e[t-1][1].length),e[t+1][1]=e[t-1][1]+e[t+1][1],e.splice(t-1,1),d=!0):e[t][1].substring(0,e[t+1][1].length)==e[t+1][1]&&(e[t-1][1]+=e[t+1][1],e[t][1]=e[t][1].substring(e[t+1][1].length)+e[t+1][1],e.splice(t+1,1),d=!0)),t++;d&&this.diff_cleanupMerge(e)},n.prototype.diff_xIndex=function(e,t){var n=0,a=0,o=0,s=0,c;for(c=0;c<e.length&&(e[c][0]!==i&&(n+=e[c][1].length),e[c][0]!==r&&(a+=e[c][1].length),!(n>t));c++)o=n,s=a;return e.length!=c&&e[c][0]===r?s:s+(t-o)},n.prototype.diff_prettyHtml=function(e){for(var t=[],n=/&/g,o=/</g,s=/>/g,c=/\n/g,l=0;l<e.length;l++){var u=e[l][0],d=e[l][1].replace(n,`&`).replace(o,`<`).replace(s,`>`).replace(c,`¶<br>`);switch(u){case i:t[l]=`<ins style="background:#e6ffe6;">`+d+`</ins>`;break;case r:t[l]=`<del style="background:#ffe6e6;">`+d+`</del>`;break;case a:t[l]=`<span>`+d+`</span>`;break}}return t.join(``)},n.prototype.diff_text1=function(e){for(var t=[],n=0;n<e.length;n++)e[n][0]!==i&&(t[n]=e[n][1]);return t.join(``)},n.prototype.diff_text2=function(e){for(var t=[],n=0;n<e.length;n++)e[n][0]!==r&&(t[n]=e[n][1]);return t.join(``)},n.prototype.diff_levenshtein=function(e){for(var t=0,n=0,o=0,s=0;s<e.length;s++){var c=e[s][0],l=e[s][1];switch(c){case i:n+=l.length;break;case r:o+=l.length;break;case a:t+=Math.max(n,o),n=0,o=0;break}}return t+=Math.max(n,o),t},n.prototype.diff_toDelta=function(e){for(var t=[],n=0;n<e.length;n++)switch(e[n][0]){case i:t[n]=`+`+encodeURI(e[n][1]);break;case r:t[n]=`-`+e[n][1].length;break;case a:t[n]=`=`+e[n][1].length;break}return t.join(` `).replace(/%20/g,` `)},n.prototype.diff_fromDelta=function(e,t){for(var o=[],s=0,c=0,l=t.split(/\t/g),u=0;u<l.length;u++){var d=l[u].substring(1);switch(l[u].charAt(0)){case`+`:try{o[s++]=new n.Diff(i,decodeURI(d))}catch{throw Error(`Illegal escape in diff_fromDelta: `+d)}break;case`-`:case`=`:var f=parseInt(d,10);if(isNaN(f)||f<0)throw Error(`Invalid number in diff_fromDelta: `+d);var p=e.substring(c,c+=f);l[u].charAt(0)==`=`?o[s++]=new n.Diff(a,p):o[s++]=new n.Diff(r,p);break;default:if(l[u])throw Error(`Invalid diff operation in diff_fromDelta: `+l[u])}}if(c!=e.length)throw Error(`Delta length (`+c+`) does not equal source text length (`+e.length+`).`);return o},n.prototype.match_main=function(e,t,n){if(e==null||t==null||n==null)throw Error(`Null input. (match_main)`);return n=Math.max(0,Math.min(n,e.length)),e==t?0:e.length?e.substring(n,n+t.length)==t?n:this.match_bitap_(e,t,n):-1},n.prototype.match_bitap_=function(e,t,n){if(t.length>this.Match_MaxBits)throw Error(`Pattern too long for this browser.`);var r=this.match_alphabet_(t),i=this;function a(e,r){var a=e/t.length,o=Math.abs(n-r);return i.Match_Distance?a+o/i.Match_Distance:o?1:a}var o=this.Match_Threshold,s=e.indexOf(t,n);s!=-1&&(o=Math.min(a(0,s),o),s=e.lastIndexOf(t,n+t.length),s!=-1&&(o=Math.min(a(0,s),o)));var c=1<<t.length-1;s=-1;for(var l,u,d=t.length+e.length,f,p=0;p<t.length;p++){for(l=0,u=d;l<u;)a(p,n+u)<=o?l=u:d=u,u=Math.floor((d-l)/2+l);d=u;var m=Math.max(1,n-u+1),h=Math.min(n+u,e.length)+t.length,g=Array(h+2);g[h+1]=(1<<p)-1;for(var _=h;_>=m;_--){var v=r[e.charAt(_-1)];if(p===0?g[_]=(g[_+1]<<1|1)&v:g[_]=(g[_+1]<<1|1)&v|(f[_+1]|f[_])<<1|1|f[_+1],g[_]&c){var y=a(p,_-1);if(y<=o)if(o=y,s=_-1,s>n)m=Math.max(1,2*n-s);else break}}if(a(p+1,n)>o)break;f=g}return s},n.prototype.match_alphabet_=function(e){for(var t={},n=0;n<e.length;n++)t[e.charAt(n)]=0;for(var n=0;n<e.length;n++)t[e.charAt(n)]|=1<<e.length-n-1;return t},n.prototype.patch_addContext_=function(e,t){if(t.length!=0){if(e.start2===null)throw Error(`patch not initialized`);for(var r=t.substring(e.start2,e.start2+e.length1),i=0;t.indexOf(r)!=t.lastIndexOf(r)&&r.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)i+=this.Patch_Margin,r=t.substring(e.start2-i,e.start2+e.length1+i);i+=this.Patch_Margin;var o=t.substring(e.start2-i,e.start2);o&&e.diffs.unshift(new n.Diff(a,o));var s=t.substring(e.start2+e.length1,e.start2+e.length1+i);s&&e.diffs.push(new n.Diff(a,s)),e.start1-=o.length,e.start2-=o.length,e.length1+=o.length+s.length,e.length2+=o.length+s.length}},n.prototype.patch_make=function(e,t,o){var s,c;if(typeof e==`string`&&typeof t==`string`&&o===void 0)s=e,c=this.diff_main(s,t,!0),c.length>2&&(this.diff_cleanupSemantic(c),this.diff_cleanupEfficiency(c));else if(e&&typeof e==`object`&&t===void 0&&o===void 0)c=e,s=this.diff_text1(c);else if(typeof e==`string`&&t&&typeof t==`object`&&o===void 0)s=e,c=t;else if(typeof e==`string`&&typeof t==`string`&&o&&typeof o==`object`)s=e,c=o;else throw Error(`Unknown call format to patch_make.`);if(c.length===0)return[];for(var l=[],u=new n.patch_obj,d=0,f=0,p=0,m=s,h=s,g=0;g<c.length;g++){var _=c[g][0],v=c[g][1];switch(!d&&_!==a&&(u.start1=f,u.start2=p),_){case i:u.diffs[d++]=c[g],u.length2+=v.length,h=h.substring(0,p)+v+h.substring(p);break;case r:u.length1+=v.length,u.diffs[d++]=c[g],h=h.substring(0,p)+h.substring(p+v.length);break;case a:v.length<=2*this.Patch_Margin&&d&&c.length!=g+1?(u.diffs[d++]=c[g],u.length1+=v.length,u.length2+=v.length):v.length>=2*this.Patch_Margin&&d&&(this.patch_addContext_(u,m),l.push(u),u=new n.patch_obj,d=0,m=h,f=p);break}_!==i&&(f+=v.length),_!==r&&(p+=v.length)}return d&&(this.patch_addContext_(u,m),l.push(u)),l},n.prototype.patch_deepCopy=function(e){for(var t=[],r=0;r<e.length;r++){var i=e[r],a=new n.patch_obj;a.diffs=[];for(var o=0;o<i.diffs.length;o++)a.diffs[o]=new n.Diff(i.diffs[o][0],i.diffs[o][1]);a.start1=i.start1,a.start2=i.start2,a.length1=i.length1,a.length2=i.length2,t[r]=a}return t},n.prototype.patch_apply=function(e,t){if(e.length==0)return[t,[]];e=this.patch_deepCopy(e);var n=this.patch_addPadding(e);t=n+t+n,this.patch_splitMax(e);for(var o=0,s=[],c=0;c<e.length;c++){var l=e[c].start2+o,u=this.diff_text1(e[c].diffs),d,f=-1;if(u.length>this.Match_MaxBits?(d=this.match_main(t,u.substring(0,this.Match_MaxBits),l),d!=-1&&(f=this.match_main(t,u.substring(u.length-this.Match_MaxBits),l+u.length-this.Match_MaxBits),(f==-1||d>=f)&&(d=-1))):d=this.match_main(t,u,l),d==-1)s[c]=!1,o-=e[c].length2-e[c].length1;else{s[c]=!0,o=d-l;var p=f==-1?t.substring(d,d+u.length):t.substring(d,f+this.Match_MaxBits);if(u==p)t=t.substring(0,d)+this.diff_text2(e[c].diffs)+t.substring(d+u.length);else{var m=this.diff_main(u,p,!1);if(u.length>this.Match_MaxBits&&this.diff_levenshtein(m)/u.length>this.Patch_DeleteThreshold)s[c]=!1;else{this.diff_cleanupSemanticLossless(m);for(var h=0,g,_=0;_<e[c].diffs.length;_++){var v=e[c].diffs[_];v[0]!==a&&(g=this.diff_xIndex(m,h)),v[0]===i?t=t.substring(0,d+g)+v[1]+t.substring(d+g):v[0]===r&&(t=t.substring(0,d+g)+t.substring(d+this.diff_xIndex(m,h+v[1].length))),v[0]!==r&&(h+=v[1].length)}}}}}return t=t.substring(n.length,t.length-n.length),[t,s]},n.prototype.patch_addPadding=function(e){for(var t=this.Patch_Margin,r=``,i=1;i<=t;i++)r+=String.fromCharCode(i);for(var i=0;i<e.length;i++)e[i].start1+=t,e[i].start2+=t;var o=e[0],s=o.diffs;if(s.length==0||s[0][0]!=a)s.unshift(new n.Diff(a,r)),o.start1-=t,o.start2-=t,o.length1+=t,o.length2+=t;else if(t>s[0][1].length){var c=t-s[0][1].length;s[0][1]=r.substring(s[0][1].length)+s[0][1],o.start1-=c,o.start2-=c,o.length1+=c,o.length2+=c}if(o=e[e.length-1],s=o.diffs,s.length==0||s[s.length-1][0]!=a)s.push(new n.Diff(a,r)),o.length1+=t,o.length2+=t;else if(t>s[s.length-1][1].length){var c=t-s[s.length-1][1].length;s[s.length-1][1]+=r.substring(0,c),o.length1+=c,o.length2+=c}return r},n.prototype.patch_splitMax=function(e){for(var t=this.Match_MaxBits,o=0;o<e.length;o++)if(!(e[o].length1<=t)){var s=e[o];e.splice(o--,1);for(var c=s.start1,l=s.start2,u=``;s.diffs.length!==0;){var d=new n.patch_obj,f=!0;for(d.start1=c-u.length,d.start2=l-u.length,u!==``&&(d.length1=d.length2=u.length,d.diffs.push(new n.Diff(a,u)));s.diffs.length!==0&&d.length1<t-this.Patch_Margin;){var p=s.diffs[0][0],m=s.diffs[0][1];p===i?(d.length2+=m.length,l+=m.length,d.diffs.push(s.diffs.shift()),f=!1):p===r&&d.diffs.length==1&&d.diffs[0][0]==a&&m.length>2*t?(d.length1+=m.length,c+=m.length,f=!1,d.diffs.push(new n.Diff(p,m)),s.diffs.shift()):(m=m.substring(0,t-d.length1-this.Patch_Margin),d.length1+=m.length,c+=m.length,p===a?(d.length2+=m.length,l+=m.length):f=!1,d.diffs.push(new n.Diff(p,m)),m==s.diffs[0][1]?s.diffs.shift():s.diffs[0][1]=s.diffs[0][1].substring(m.length))}u=this.diff_text2(d.diffs),u=u.substring(u.length-this.Patch_Margin);var h=this.diff_text1(s.diffs).substring(0,this.Patch_Margin);h!==``&&(d.length1+=h.length,d.length2+=h.length,d.diffs.length!==0&&d.diffs[d.diffs.length-1][0]===a?d.diffs[d.diffs.length-1][1]+=h:d.diffs.push(new n.Diff(a,h))),f||e.splice(++o,0,d)}}},n.prototype.patch_toText=function(e){for(var t=[],n=0;n<e.length;n++)t[n]=e[n];return t.join(``)},n.prototype.patch_fromText=function(e){var t=[];if(!e)return t;for(var o=e.split(`
|
|
238
238
|
`),s=0,c=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;s<o.length;){var l=o[s].match(c);if(!l)throw Error(`Invalid patch string: `+o[s]);var u=new n.patch_obj;for(t.push(u),u.start1=parseInt(l[1],10),l[2]===``?(u.start1--,u.length1=1):l[2]==`0`?u.length1=0:(u.start1--,u.length1=parseInt(l[2],10)),u.start2=parseInt(l[3],10),l[4]===``?(u.start2--,u.length2=1):l[4]==`0`?u.length2=0:(u.start2--,u.length2=parseInt(l[4],10)),s++;s<o.length;){var d=o[s].charAt(0);try{var f=decodeURI(o[s].substring(1))}catch{throw Error(`Illegal escape in patch_fromText: `+f)}if(d==`-`)u.diffs.push(new n.Diff(r,f));else if(d==`+`)u.diffs.push(new n.Diff(i,f));else if(d==` `)u.diffs.push(new n.Diff(a,f));else if(d==`@`)break;else if(d!==``)throw Error(`Invalid patch mode "`+d+`" in: `+f);s++}}return t},n.patch_obj=function(){this.diffs=[],this.start1=null,this.start2=null,this.length1=0,this.length2=0},n.patch_obj.prototype.toString=function(){for(var e=this.length1===0?this.start1+`,0`:this.length1==1?this.start1+1:this.start1+1+`,`+this.length1,t=this.length2===0?this.start2+`,0`:this.length2==1?this.start2+1:this.start2+1+`,`+this.length2,n=[`@@ -`+e+` +`+t+` @@
|
|
239
239
|
`],o,s=0;s<this.diffs.length;s++){switch(this.diffs[s][0]){case i:o=`+`;break;case r:o=`-`;break;case a:o=` `;break}n[s+1]=o+encodeURI(this.diffs[s][1])+`
|
|
240
|
-
`}return n.join(``).replace(/%20/g,` `)},t.exports=n,t.exports.diff_match_patch=n,t.exports.DIFF_DELETE=r,t.exports.DIFF_INSERT=i,t.exports.DIFF_EQUAL=a}))(),1);new jG.default,new jG.default;var MG=new jG.default;MG.Match_Threshold=.5;var NG=class extends Error{chunksCompleted;totalChunks;bytesWritten;bytesRemaining;cause;constructor(e,t){let n=e instanceof Error?e.message:typeof e==`string`?e:`unknown error`;super(`chunked insert failed after ${t.chunksCompleted}/${t.totalChunks} chunks (${t.bytesWritten} bytes written, ${t.bytesRemaining} bytes lost): ${n}`),this.name=`ChunkedInsertError`,this.chunksCompleted=t.chunksCompleted,this.totalChunks=t.totalChunks,this.bytesWritten=t.bytesWritten,this.bytesRemaining=t.bytesRemaining,this.cause=e}};async function PG(e,t,n,r,i={}){let a=i.thresholdBytes??512e3,o=i.chunkSizeBytes??51200,s=i.origin,c=i.yieldFn??FG,l=i.resolveOffset??(e=>e);if(r.length<=a){e.transact(()=>{t.insert(n,r)},s);return}let u=Math.ceil(r.length/o),d=0,f=n,p=0,m=0;for(;d<r.length;){let n=Math.min(d+o,r.length),i=r.slice(d,n);try{let n=l(f);e.transact(()=>{t.insert(n,i)},s)}catch(e){throw new NG(e,{chunksCompleted:p,totalChunks:u,bytesWritten:m,bytesRemaining:r.length-d})}p++,m+=i.length,f+=i.length,d=n,d<r.length&&await c()}}function FG(){return new Promise(e=>{let t=globalThis;t.document?.hidden!==!0&&typeof t.requestAnimationFrame==`function`?t.requestAnimationFrame(()=>e()):setTimeout(()=>e(),0)})}function IG(){let e=!1,t=``,n=0;return r=>{let i=LG(r);return e?(i&&i.char===t&&i.len>=n&&!i.hasInfo&&(e=!1,t=``,n=0),!0):i?(e=!0,t=i.char,n=i.len,!0):!1}}function LG(e){let t=(e.endsWith(`\r`)?e.slice(0,-1):e).match(/^ {0,3}([`~])(\1{2,})(.*)$/);return t?{char:t[1],len:1+t[2].length,hasInfo:t[3].trim()!==``}:null}var RG=[`#D97757`,`#1B1912`,`#F9F3E9`,`#7A9DFF`,`#8534F3`,`#9663F0`,`#727CF3`],zG={claude:`#D97757`,cursor:`#1B1912`,windsurf:`#0B100F`,openai:`#7A9DFF`,github:`#8534F3`,cline:`#9663F0`,bot:`#727CF3`},BG=[`#f0ece3`,`#fff5e1`,`#f9e1db`,`#f5def7`,`#ece2fb`,`#dce8fa`,`#DBF3FB`];function VG(e){let t=0;for(let n of e)t=(t<<5)-t+n.charCodeAt(0)|0;return RG[Math.abs(t)%RG.length]}var HG={"claude-code":`claude`,"claude-ai":`claude`,cursor:`cursor`,"cursor-vscode":`cursor`,cascade:`windsurf`,codex:`openai`,copilot:`github`,cline:`cline`};function UG(e){return e?HG[e]??`bot`:`bot`}function WG(e){let t=parseInt(e.slice(1,3),16)/255,n=parseInt(e.slice(3,5),16)/255,r=parseInt(e.slice(5,7),16)/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o=(i+a)/2;if(i===a)return[0,0,o*100];let s=i-a,c=o>.5?s/(2-i-a):s/(i+a),l;return l=i===t?((n-r)/s+(n<r?6:0))/6:i===n?((r-t)/s+2)/6:((t-n)/s+4)/6,[l*360,c*100,o*100]}function GG(e,t,n){let r=t/100,i=n/100,a=r*Math.min(i,1-i),o=t=>{let n=(t+e/30)%12,r=i-a*Math.max(Math.min(n-3,9-n,1),-1);return Math.round(255*r).toString(16).padStart(2,`0`)};return`#${o(0)}${o(8)}${o(4)}`}function KG(e){let[t]=WG(e);return GG(t,45,32)}var qG=[`Curious`,`Brave`,`Clever`,`Swift`,`Gentle`,`Bright`,`Wise`,`Bold`,`Calm`,`Keen`],JG=[`Bird`,`Cat`,`Dog`,`Fish`,`Mouse`,`Rabbit`,`Shrimp`,`Snail`,`Squirrel`,`Turtle`],YG=`ok-user-name-v2`,XG=`ok-user-color-v2`;function ZG(e){return e[Math.floor(Math.random()*e.length)]}function QG(){return`${ZG(qG)} ${ZG(JG)}`}function $G(){return ZG(BG)}function eK(e){try{return localStorage.getItem(e)}catch{return null}}function tK(e,t){try{localStorage.setItem(e,t)}catch{}}function nK(){let e=new URLSearchParams(window.location.search).get(`coeditor`)||`standalone`,t=crypto.randomUUID(),n=eK(YG),r=eK(XG);return n||(n=QG(),tK(YG,n)),r||(r=$G(),tK(XG,r)),{name:n,color:r,coeditor:e,tabId:t}}function rK(e,t){let n=e.trim();if(!n||/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(n)||n.startsWith(`//`)||n.startsWith(`/`)||n.startsWith(`#`))return null;let r=n.indexOf(`#`),i=r>=0?n.slice(0,r):n,a=r>=0?n.slice(r+1):null,o=(i.split(`?`)[0]??``).trim();if(!o)return null;let s=o.endsWith(`.md`)?o.slice(0,-3):o,c=t.includes(`/`)?t.split(`/`).slice(0,-1):[];for(let e of s.split(`/`))if(e===`..`){if(c.length===0)return null;c.pop()}else e!==`.`&&e!==``&&c.push(e);return c.length===0?null:{docName:c.join(`/`),anchor:a||null}}var iK=/^[a-zA-Z][a-zA-Z\d+\-.]*:/;function aK(e){return e.split(`/`).filter(Boolean)}function oK(e){let t=e.trim();return iK.test(t)||t.startsWith(`//`)}function sK(e,t){let n=e.trim();if(!n)return null;if(n.startsWith(`#`)){let e=n.slice(1).trim();return e?{kind:`anchor`,anchor:e}:null}let r=rK(n,t);return r?{kind:`doc`,docName:r.docName,anchor:r.anchor}:n.startsWith(`/`)||oK(n)?{kind:`external`,url:n}:null}function cK(e,t){let n=e.trim();return n?oK(n)?{kind:`external`,url:t?`${n}#${t}`:n}:{kind:`doc`,docName:n,anchor:t?.trim()||null}:null}function lK(e,t,n=null){let r=aK(e);r.pop();let i=aK(t),a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a+=1;let o=r.slice(a).map(()=>`..`),s=i.slice(a),c=[...o,...s].join(`/`);return c||=i.at(-1)??t,!c.startsWith(`./`)&&!c.startsWith(`../`)&&(c=`./${c}`),`${c}.md${n?`#${n}`:``}`}function uK(e){if(!e.startsWith(`#/`))return null;let t=e.slice(2),n=t.indexOf(`?`),r=n>=0?t.slice(0,n):t;if(!r)return null;try{return r.split(`/`).map(decodeURIComponent).join(`/`)}catch{return r}}function dK(e,t){let n=`#/${e}`;return t?`${n}?anchor=${encodeURIComponent(t)}`:n}var fK=null,pK=new Set;function mK(e,t){if(e===t)return!0;if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function hK(e,t){return e===null?!1:e===t?!0:mK(e.pages,t.pages)&&mK(e.folderPaths,t.folderPaths)}function gK(){return fK}function _K(e){if(!hK(fK,e)){fK=e;for(let t of[...pK])try{t(e)}catch(e){console.error(`[page-list-cache] subscriber threw:`,e)}}}function vK(e){if(pK.add(e),fK!==null)try{e(fK)}catch(e){console.error(`[page-list-cache] subscriber threw on replay:`,e)}return()=>{pK.delete(e)}}var yK=`open-knowledge:documents-changed`;function bK(e){return[...new Set(e)]}function xK(e=[`files`]){window.dispatchEvent(new CustomEvent(yK,{detail:{channels:bK(e)}}))}function SK(e){let t=t=>{e((t instanceof CustomEvent?t.detail?.channels:void 0)??[`files`])};return window.addEventListener(yK,t),()=>window.removeEventListener(yK,t)}var CK=(0,k.createContext)(null);function wK(e,t){if(t.size===0)return new Set(e);let n=new Set(e);for(let e of t)n.add(e);return n}function TK(e,t){if(e.size===0)return new Set;let n=new Set;for(let r of e)t.has(r)||n.add(r);return n}function EK(e,t){let n=new Map(e);for(let e of t)n.has(e)||n.set(e,e);return n}async function DK(){let e=await fetch(`/api/pages`);if(!e.ok)throw Error(`/api/pages responded with ${e.status}`);let t=await e.json();return Array.isArray(t.pages)?t.pages:[]}function OK(e){console.error(`[PageListContext] Failed to load pages:`,e)}function kK(e){let t=(0,Fh.c)(33),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=new Set,t[0]=r):r=t[0];let[i,a]=(0,k.useState)(r),o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=new Map,t[1]=o):o=t[1];let[s,c]=(0,k.useState)(o),l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=new Map,t[2]=l):l=t[2];let[u,d]=(0,k.useState)(l),f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=new Set,t[3]=f):f=t[3];let[p,m]=(0,k.useState)(f),[h,g]=(0,k.useState)(!0),[_,v]=(0,k.useState)(null),y=(0,k.useRef)(0),b;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(b=function(){let e=y.current+=1;g(!0),DK().then(t=>{if(e!==y.current)return;let n=new Set(t.map(MK));a(n),c(new Map(t.map(jK))),d(new Map(t.map(AK))),m(e=>TK(e,n)),v(null)}).catch(t=>{e===y.current&&(OK(t),v(t instanceof Error?t.message:`Failed to load pages`))}).finally(()=>{e===y.current&&g(!1)})},t[4]=b):b=t[4];let x=b,S;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(S=function(e){m(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n}),v(null)},t[5]=S):S=t[5];let C=S,w,T;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{x();let e=()=>{document.visibilityState===`visible`&&x()};window.addEventListener(`focus`,e),window.addEventListener(`visibilitychange`,e);let t=SK(e=>{e.includes(`files`)&&x()});return()=>{window.removeEventListener(`focus`,e),window.removeEventListener(`visibilitychange`,e),t()}},T=[],t[6]=w,t[7]=T):(w=t[6],T=t[7]),(0,k.useEffect)(w,T);let E,ee,D,te;if(t[8]!==p||t[9]!==u||t[10]!==s||t[11]!==i){D=wK(i,p);let e;t[16]!==p||t[17]!==s?(e=EK(s,p),t[16]=p,t[17]=s,t[18]=e):e=t[18],ee=e,E=u,te=Gh(D),t[8]=p,t[9]=u,t[10]=s,t[11]=i,t[12]=E,t[13]=ee,t[14]=D,t[15]=te}else E=t[12],ee=t[13],D=t[14],te=t[15];let ne=te,re,ie;t[19]!==ne||t[20]!==D?(re=()=>{_K({pages:D,folderPaths:ne})},ie=[D,ne],t[19]=ne,t[20]=D,t[21]=re,t[22]=ie):(re=t[21],ie=t[22]),(0,k.useEffect)(re,ie);let O;t[23]!==_||t[24]!==ne||t[25]!==h||t[26]!==E||t[27]!==ee||t[28]!==D?(O={pages:D,pageTitles:ee,pageMeta:E,folderPaths:ne,loading:h,error:_,refetch:x,addPage:C},t[23]=_,t[24]=ne,t[25]=h,t[26]=E,t[27]=ee,t[28]=D,t[29]=O):O=t[29];let ae;return t[30]!==n||t[31]!==O?(ae=(0,Ne.jsx)(CK,{value:O,children:n}),t[30]=n,t[31]=O,t[32]=ae):ae=t[32],ae}function AK(e){return[e.docName,{size:e.size,modified:e.modified}]}function jK(e){return[e.docName,e.title]}function MK(e){return e.docName}function NK(){let e=(0,k.use)(CK);if(!e)throw Error(`usePageList must be used within <PageListProvider />`);return e}function PK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`flex h-full min-h-0 flex-col`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`section`,{"data-slot":`panel`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function FK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`shrink-0 flex items-center justify-between px-4 py-3`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`div`,{"data-slot":`panel-header`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function IK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`text-sm font-medium uppercase font-mono tracking-wider text-muted-foreground`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`h2`,{"data-slot":`panel-title`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function LK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`text-xs text-muted-foreground font-mono bg-muted-foreground/5 rounded-md px-2 py-1`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`p`,{"data-slot":`panel-count`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function RK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`subtle-scrollbar min-h-0 flex-1 overflow-y-auto px-4 py-3`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`div`,{"data-slot":`panel-body`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function zK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`text-sm text-muted-foreground/60`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`p`,{"data-slot":`panel-empty`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function BK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`text-sm text-destructive`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`p`,{"data-slot":`panel-error`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}export{Kh as $,Se as $t,SG as A,M as At,My as B,vr as Bt,nK as C,kh as Ct,PG as D,P as Dt,NG as E,oo as Et,oC as F,Ur as Ft,ag as G,lr as Gt,Yv as H,mr as Ht,aC as I,j as It,ng as J,it as Jt,rg as K,dr as Kt,iC as L,hr as Lt,WR as M,N as Mt,KR as N,Pi as Nt,AG as O,xo as Ot,qR as P,A as Pt,qh as Q,Fe as Qt,rC as R,ur as Rt,KG as S,im as St,IG as T,Zu as Tt,Ng as U,gr as Ut,ay as V,fr as Vt,Dg as W,_r as Wt,eg as X,Xe as Xt,$h as Y,rt as Yt,tg as Z,Ie as Zt,sK as _,u as _n,Ip as _t,BK as a,ae as an,Bh as at,zG as b,yf as bt,kK as c,g as cn,lh as ct,SK as d,S as dn,Nh as dt,xe as en,Uh as et,gK as f,x as fn,Ah as ft,lK as g,se as gn,Fp as gt,dK as h,y as hn,Np as ht,zK as i,ue as in,Rh as it,OU as j,to as jt,wG as k,wo as kt,NK as l,w as ln,Jm as lt,uK as m,T as mn,wp as mt,RK as n,ge as nn,Vh as nt,FK as o,oe as on,Lh as ot,vK as p,h as pn,_h as pt,ig as q,pr as qt,LK as r,he as rn,Hh as rt,IK as s,ce as sn,Ih as st,PK as t,be as tn,zh as tt,xK as u,C as un,tm as ut,cK as v,l as vn,nm as vt,UG as w,Ju as wt,VG as x,Cp as xt,oK as y,vh as yt,XS as z,cr as zt};
|
|
240
|
+
`}return n.join(``).replace(/%20/g,` `)},t.exports=n,t.exports.diff_match_patch=n,t.exports.DIFF_DELETE=r,t.exports.DIFF_INSERT=i,t.exports.DIFF_EQUAL=a}))(),1);new jG.default,new jG.default;var MG=new jG.default;MG.Match_Threshold=.5;var NG=class extends Error{chunksCompleted;totalChunks;bytesWritten;bytesRemaining;cause;constructor(e,t){let n=e instanceof Error?e.message:typeof e==`string`?e:`unknown error`;super(`chunked insert failed after ${t.chunksCompleted}/${t.totalChunks} chunks (${t.bytesWritten} bytes written, ${t.bytesRemaining} bytes lost): ${n}`),this.name=`ChunkedInsertError`,this.chunksCompleted=t.chunksCompleted,this.totalChunks=t.totalChunks,this.bytesWritten=t.bytesWritten,this.bytesRemaining=t.bytesRemaining,this.cause=e}};async function PG(e,t,n,r,i={}){let a=i.thresholdBytes??512e3,o=i.chunkSizeBytes??51200,s=i.origin,c=i.yieldFn??FG,l=i.resolveOffset??(e=>e);if(r.length<=a){e.transact(()=>{t.insert(n,r)},s);return}let u=Math.ceil(r.length/o),d=0,f=n,p=0,m=0;for(;d<r.length;){let n=Math.min(d+o,r.length),i=r.slice(d,n);try{let n=l(f);e.transact(()=>{t.insert(n,i)},s)}catch(e){throw new NG(e,{chunksCompleted:p,totalChunks:u,bytesWritten:m,bytesRemaining:r.length-d})}p++,m+=i.length,f+=i.length,d=n,d<r.length&&await c()}}function FG(){return new Promise(e=>{let t=globalThis;t.document?.hidden!==!0&&typeof t.requestAnimationFrame==`function`?t.requestAnimationFrame(()=>e()):setTimeout(()=>e(),0)})}function IG(){let e=!1,t=``,n=0;return r=>{let i=LG(r);return e?(i&&i.char===t&&i.len>=n&&!i.hasInfo&&(e=!1,t=``,n=0),!0):i?(e=!0,t=i.char,n=i.len,!0):!1}}function LG(e){let t=(e.endsWith(`\r`)?e.slice(0,-1):e).match(/^ {0,3}([`~])(\1{2,})(.*)$/);return t?{char:t[1],len:1+t[2].length,hasInfo:t[3].trim()!==``}:null}var RG=[`#D97757`,`#1B1912`,`#F9F3E9`,`#7A9DFF`,`#8534F3`,`#9663F0`,`#727CF3`],zG={claude:`#D97757`,cursor:`#1B1912`,windsurf:`#0B100F`,openai:`#7A9DFF`,github:`#8534F3`,cline:`#9663F0`,bot:`#727CF3`},BG={cursor:`#FFFFFF`,windsurf:`#FFFFFF`},VG=[`#f0ece3`,`#fff5e1`,`#f9e1db`,`#f5def7`,`#ece2fb`,`#dce8fa`,`#DBF3FB`];function HG(e){let t=0;for(let n of e)t=(t<<5)-t+n.charCodeAt(0)|0;return RG[Math.abs(t)%RG.length]}var UG={"claude-code":`claude`,"claude-ai":`claude`,cursor:`cursor`,"cursor-vscode":`cursor`,cascade:`windsurf`,codex:`openai`,copilot:`github`,cline:`cline`};function WG(e){return e?UG[e]??`bot`:`bot`}function GG(e){let t=parseInt(e.slice(1,3),16)/255,n=parseInt(e.slice(3,5),16)/255,r=parseInt(e.slice(5,7),16)/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o=(i+a)/2;if(i===a)return[0,0,o*100];let s=i-a,c=o>.5?s/(2-i-a):s/(i+a),l;return l=i===t?((n-r)/s+(n<r?6:0))/6:i===n?((r-t)/s+2)/6:((t-n)/s+4)/6,[l*360,c*100,o*100]}function KG(e,t,n){let r=t/100,i=n/100,a=r*Math.min(i,1-i),o=t=>{let n=(t+e/30)%12,r=i-a*Math.max(Math.min(n-3,9-n,1),-1);return Math.round(255*r).toString(16).padStart(2,`0`)};return`#${o(0)}${o(8)}${o(4)}`}function qG(e){let[t]=GG(e);return KG(t,45,32)}var JG=[`Curious`,`Brave`,`Clever`,`Swift`,`Gentle`,`Bright`,`Wise`,`Bold`,`Calm`,`Keen`],YG=[`Bird`,`Cat`,`Dog`,`Fish`,`Mouse`,`Rabbit`,`Shrimp`,`Snail`,`Squirrel`,`Turtle`],XG=`ok-user-name-v2`,ZG=`ok-user-color-v2`;function QG(e){return e[Math.floor(Math.random()*e.length)]}function $G(){return`${QG(JG)} ${QG(YG)}`}function eK(){return QG(VG)}function tK(e){try{return localStorage.getItem(e)}catch{return null}}function nK(e,t){try{localStorage.setItem(e,t)}catch{}}function rK(){let e=new URLSearchParams(window.location.search).get(`coeditor`)||`standalone`,t=crypto.randomUUID(),n=tK(XG),r=tK(ZG);return n||(n=$G(),nK(XG,n)),r||(r=eK(),nK(ZG,r)),{name:n,color:r,coeditor:e,tabId:t}}function iK(e,t){let n=e.trim();if(!n||/^[a-zA-Z][a-zA-Z\d+\-.]*:/.test(n)||n.startsWith(`//`)||n.startsWith(`/`)||n.startsWith(`#`))return null;let r=n.indexOf(`#`),i=r>=0?n.slice(0,r):n,a=r>=0?n.slice(r+1):null,o=(i.split(`?`)[0]??``).trim();if(!o)return null;let s=o.endsWith(`.md`)?o.slice(0,-3):o,c=t.includes(`/`)?t.split(`/`).slice(0,-1):[];for(let e of s.split(`/`))if(e===`..`){if(c.length===0)return null;c.pop()}else e!==`.`&&e!==``&&c.push(e);return c.length===0?null:{docName:c.join(`/`),anchor:a||null}}var aK=/^[a-zA-Z][a-zA-Z\d+\-.]*:/;function oK(e){return e.split(`/`).filter(Boolean)}function sK(e){let t=e.trim();return aK.test(t)||t.startsWith(`//`)}function cK(e,t){let n=e.trim();if(!n)return null;if(n.startsWith(`#`)){let e=n.slice(1).trim();return e?{kind:`anchor`,anchor:e}:null}let r=iK(n,t);return r?{kind:`doc`,docName:r.docName,anchor:r.anchor}:n.startsWith(`/`)||sK(n)?{kind:`external`,url:n}:null}function lK(e,t){let n=e.trim();return n?sK(n)?{kind:`external`,url:t?`${n}#${t}`:n}:{kind:`doc`,docName:n,anchor:t?.trim()||null}:null}function uK(e,t,n=null){let r=oK(e);r.pop();let i=oK(t),a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a+=1;let o=r.slice(a).map(()=>`..`),s=i.slice(a),c=[...o,...s].join(`/`);return c||=i.at(-1)??t,!c.startsWith(`./`)&&!c.startsWith(`../`)&&(c=`./${c}`),`${c}.md${n?`#${n}`:``}`}function dK(e){if(!e.startsWith(`#/`))return null;let t=e.slice(2),n=t.indexOf(`?`),r=n>=0?t.slice(0,n):t;if(!r)return null;try{return r.split(`/`).map(decodeURIComponent).join(`/`)}catch{return r}}function fK(e,t){let n=`#/${e}`;return t?`${n}?anchor=${encodeURIComponent(t)}`:n}var pK=null,mK=new Set;function hK(e,t){if(e===t)return!0;if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function gK(e,t){return e===null?!1:e===t?!0:hK(e.pages,t.pages)&&hK(e.folderPaths,t.folderPaths)}function _K(){return pK}function vK(e){if(!gK(pK,e)){pK=e;for(let t of[...mK])try{t(e)}catch(e){console.error(`[page-list-cache] subscriber threw:`,e)}}}function yK(e){if(mK.add(e),pK!==null)try{e(pK)}catch(e){console.error(`[page-list-cache] subscriber threw on replay:`,e)}return()=>{mK.delete(e)}}var bK=`open-knowledge:documents-changed`;function xK(e){return[...new Set(e)]}function SK(e=[`files`]){window.dispatchEvent(new CustomEvent(bK,{detail:{channels:xK(e)}}))}function CK(e){let t=t=>{e((t instanceof CustomEvent?t.detail?.channels:void 0)??[`files`])};return window.addEventListener(bK,t),()=>window.removeEventListener(bK,t)}var wK=(0,k.createContext)(null);function TK(e,t){if(t.size===0)return new Set(e);let n=new Set(e);for(let e of t)n.add(e);return n}function EK(e,t){if(e.size===0)return new Set;let n=new Set;for(let r of e)t.has(r)||n.add(r);return n}function DK(e,t){let n=new Map(e);for(let e of t)n.has(e)||n.set(e,e);return n}async function OK(){let e=await fetch(`/api/pages`);if(!e.ok)throw Error(`/api/pages responded with ${e.status}`);let t=await e.json();return Array.isArray(t.pages)?t.pages:[]}function kK(e){console.error(`[PageListContext] Failed to load pages:`,e)}function AK(e){let t=(0,Fh.c)(33),{children:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=new Set,t[0]=r):r=t[0];let[i,a]=(0,k.useState)(r),o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o=new Map,t[1]=o):o=t[1];let[s,c]=(0,k.useState)(o),l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=new Map,t[2]=l):l=t[2];let[u,d]=(0,k.useState)(l),f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=new Set,t[3]=f):f=t[3];let[p,m]=(0,k.useState)(f),[h,g]=(0,k.useState)(!0),[_,v]=(0,k.useState)(null),y=(0,k.useRef)(0),b;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(b=function(){let e=y.current+=1;g(!0),OK().then(t=>{if(e!==y.current)return;let n=new Set(t.map(NK));a(n),c(new Map(t.map(MK))),d(new Map(t.map(jK))),m(e=>EK(e,n)),v(null)}).catch(t=>{e===y.current&&(kK(t),v(t instanceof Error?t.message:`Failed to load pages`))}).finally(()=>{e===y.current&&g(!1)})},t[4]=b):b=t[4];let x=b,S;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(S=function(e){m(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n}),v(null)},t[5]=S):S=t[5];let C=S,w,T;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{x();let e=()=>{document.visibilityState===`visible`&&x()};window.addEventListener(`focus`,e),window.addEventListener(`visibilitychange`,e);let t=CK(e=>{e.includes(`files`)&&x()});return()=>{window.removeEventListener(`focus`,e),window.removeEventListener(`visibilitychange`,e),t()}},T=[],t[6]=w,t[7]=T):(w=t[6],T=t[7]),(0,k.useEffect)(w,T);let E,ee,D,te;if(t[8]!==p||t[9]!==u||t[10]!==s||t[11]!==i){D=TK(i,p);let e;t[16]!==p||t[17]!==s?(e=DK(s,p),t[16]=p,t[17]=s,t[18]=e):e=t[18],ee=e,E=u,te=Gh(D),t[8]=p,t[9]=u,t[10]=s,t[11]=i,t[12]=E,t[13]=ee,t[14]=D,t[15]=te}else E=t[12],ee=t[13],D=t[14],te=t[15];let ne=te,re,ie;t[19]!==ne||t[20]!==D?(re=()=>{vK({pages:D,folderPaths:ne})},ie=[D,ne],t[19]=ne,t[20]=D,t[21]=re,t[22]=ie):(re=t[21],ie=t[22]),(0,k.useEffect)(re,ie);let O;t[23]!==_||t[24]!==ne||t[25]!==h||t[26]!==E||t[27]!==ee||t[28]!==D?(O={pages:D,pageTitles:ee,pageMeta:E,folderPaths:ne,loading:h,error:_,refetch:x,addPage:C},t[23]=_,t[24]=ne,t[25]=h,t[26]=E,t[27]=ee,t[28]=D,t[29]=O):O=t[29];let ae;return t[30]!==n||t[31]!==O?(ae=(0,Ne.jsx)(wK,{value:O,children:n}),t[30]=n,t[31]=O,t[32]=ae):ae=t[32],ae}function jK(e){return[e.docName,{size:e.size,modified:e.modified}]}function MK(e){return[e.docName,e.title]}function NK(e){return e.docName}function PK(){let e=(0,k.use)(wK);if(!e)throw Error(`usePageList must be used within <PageListProvider />`);return e}function FK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`flex h-full min-h-0 flex-col`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`section`,{"data-slot":`panel`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function IK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`shrink-0 flex items-center justify-between px-4 py-3`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`div`,{"data-slot":`panel-header`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function LK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`text-sm font-medium uppercase font-mono tracking-wider text-muted-foreground`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`h2`,{"data-slot":`panel-title`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function RK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`text-xs text-muted-foreground font-mono bg-muted-foreground/5 rounded-md px-2 py-1`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`p`,{"data-slot":`panel-count`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function zK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`subtle-scrollbar min-h-0 flex-1 overflow-y-auto px-4 py-3`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`div`,{"data-slot":`panel-body`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function BK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`text-sm text-muted-foreground/60`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`p`,{"data-slot":`panel-empty`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}function VK(e){let t=(0,Fh.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`text-sm text-destructive`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,Ne.jsx)(`p`,{"data-slot":`panel-error`,className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o}export{qh as $,Fe as $t,wG as A,wo as At,XS as B,cr as Bt,qG as C,im as Ct,NG as D,oo as Dt,IG as E,Zu as Et,qR as F,A as Ft,Dg as G,_r as Gt,ay as H,fr as Ht,oC as I,Ur as It,ig as J,pr as Jt,ag as K,lr as Kt,aC as L,j as Lt,OU as M,to as Mt,WR as N,N as Nt,PG as O,P as Ot,KR as P,Pi as Pt,tg as Q,Ie as Qt,iC as R,hr as Rt,HG as S,Cp as St,WG as T,Ju as Tt,Yv as U,mr as Ut,My as V,vr as Vt,Ng as W,gr as Wt,$h as X,rt as Xt,ng as Y,it as Yt,eg as Z,Xe as Zt,cK as _,se as _n,Fp as _t,VK as a,ue as an,Rh as at,zG as b,vh as bt,AK as c,ce as cn,Ih as ct,CK as d,C as dn,tm as dt,Se as en,Kh as et,_K as f,S as fn,Nh as ft,uK as g,y as gn,Np as gt,fK as h,T as hn,wp as ht,BK as i,he as in,Hh as it,SG as j,M as jt,AG as k,xo as kt,PK as l,g as ln,lh as lt,dK as m,h as mn,_h as mt,zK as n,be as nn,zh as nt,IK as o,ae as on,Bh as ot,yK as p,x as pn,Ah as pt,rg as q,dr as qt,RK as r,ge as rn,Vh as rt,LK as s,oe as sn,Lh as st,FK as t,xe as tn,Uh as tt,SK as u,w as un,Jm as ut,lK as v,u as vn,Ip as vt,rK as w,kh as wt,BG as x,yf as xt,sK as y,l as yn,nm as yt,rC as z,ur as zt};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e,O as t,S as n,T as r,_ as i,a,b as o,c as s,f as c,g as l,i as u,l as d,n as f,o as p,p as m,r as h,s as g,u as _,w as v,x as y,y as b}from"./button-BuHZQnlF.js";import{Bt as x,Gt as S,Ht as C,Jt as w,Kt as T,Rt as E,Ut as D,Vt as O,et as k,qt as A}from"./panel-B3Oezbzt.js";var j=y(`arrow-up-right`,[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]),M=y(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),N=y(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),P=y(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),ee=t(e(),1),F=t(r(),1),I=v(),te=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),ne=`VisuallyHidden`,L=F.forwardRef((e,t)=>(0,I.jsx)(m.span,{...e,ref:t,style:{...te,...e.style}}));L.displayName=ne;var R=L;function z(e){let t=e+`CollectionProvider`,[n,r]=c(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=F.useRef(null),a=F.useRef(new Map).current;return(0,I.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,u=l(s),d=F.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,I.jsx)(u,{ref:b(t,a(s,n).collectionRef),children:r})});d.displayName=s;let f=e+`CollectionItemSlot`,p=`data-radix-collection-item`,m=l(f),h=F.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=F.useRef(null),s=b(t,o),c=a(f,n);return F.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,I.jsx)(m,{[p]:``,ref:s,children:r})});h.displayName=f;function g(t){let n=a(e+`CollectionConsumer`,t);return F.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:d,ItemSlot:h},g,r]}var re=F.createContext(void 0);function B(e){let t=F.useContext(re);return e||t||`ltr`}function ie(e){let[t,n]=F.useState(void 0);return d(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var V=typeof document<`u`?F.useLayoutEffect:function(){};function H(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!H(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!H(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function ae(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function oe(e,t){let n=ae(e);return Math.round(t*n)/n}function U(e){let t=F.useRef(e);return V(()=>{t.current=e}),t}function se(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=F.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=F.useState(r);H(f,r)||p(r);let[m,h]=F.useState(null),[g,_]=F.useState(null),v=F.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=F.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=F.useRef(null),C=F.useRef(null),w=F.useRef(u),T=c!=null,E=U(c),D=U(i),k=U(l),A=F.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};D.current&&(e.platform=D.current),O(S.current,C.current,e).then(e=>{let t={...e,isPositioned:k.current!==!1};j.current&&!H(w.current,t)&&(w.current=t,ee.flushSync(()=>{d(t)}))})},[f,t,n,D,k]);V(()=>{l===!1&&w.current.isPositioned&&(w.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let j=F.useRef(!1);V(()=>(j.current=!0,()=>{j.current=!1}),[]),V(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(E.current)return E.current(b,x,A);A()}},[b,x,A,E,T]);let M=F.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),N=F.useMemo(()=>({reference:b,floating:x}),[b,x]),P=F.useMemo(()=>{let e={position:n,left:0,top:0};if(!N.floating)return e;let t=oe(N.floating,u.x),r=oe(N.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...ae(N.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,N.floating,u.x,u.y]);return F.useMemo(()=>({...u,update:A,refs:M,elements:N,floatingStyles:P}),[u,A,M,N,P])}var ce=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:E({element:r.current,padding:i}).fn(n):r?E({element:r,padding:i}).fn(n):{}}}},le=(e,t)=>{let n=T(e);return{name:n.name,fn:n.fn,options:[e,t]}},ue=(e,t)=>{let n=A(e);return{name:n.name,fn:n.fn,options:[e,t]}},de=(e,t)=>({fn:S(e).fn,options:[e,t]}),fe=(e,t)=>{let n=C(e);return{name:n.name,fn:n.fn,options:[e,t]}},pe=(e,t)=>{let n=w(e);return{name:n.name,fn:n.fn,options:[e,t]}},me=(e,t)=>{let n=D(e);return{name:n.name,fn:n.fn,options:[e,t]}},he=(e,t)=>{let n=ce(e);return{name:n.name,fn:n.fn,options:[e,t]}},ge=`Arrow`,_e=F.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...a}=e;return(0,I.jsx)(m.svg,{...a,ref:t,width:r,height:i,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,I.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})});_e.displayName=ge;var ve=_e,ye=`Popper`,[be,xe]=c(ye),[Se,Ce]=be(ye),we=e=>{let{__scopePopper:t,children:n}=e,[r,i]=F.useState(null);return(0,I.jsx)(Se,{scope:t,anchor:r,onAnchorChange:i,children:n})};we.displayName=ye;var Te=`PopperAnchor`,Ee=F.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,a=Ce(Te,n),o=F.useRef(null),s=b(t,o),c=F.useRef(null);return F.useEffect(()=>{let e=c.current;c.current=r?.current||o.current,e!==c.current&&a.onAnchorChange(c.current)}),r?null:(0,I.jsx)(m.div,{...i,ref:s})});Ee.displayName=Te;var W=`PopperContent`,[De,Oe]=be(W),ke=F.forwardRef((e,t)=>{let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:o=`center`,alignOffset:s=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:u=[],collisionPadding:f=0,sticky:p=`partial`,hideWhenDetached:h=!1,updatePositionStrategy:g=`optimized`,onPlaced:_,...v}=e,y=Ce(W,n),[S,C]=F.useState(null),w=b(t,e=>C(e)),[T,E]=F.useState(null),D=ie(T),O=D?.width??0,k=D?.height??0,A=r+(o===`center`?``:`-`+o),j=typeof f==`number`?f:{top:0,right:0,bottom:0,left:0,...f},M=Array.isArray(u)?u:[u],N=M.length>0,P={padding:j,boundary:M.filter(Ne),altBoundary:N},{refs:ee,floatingStyles:te,placement:ne,isPositioned:L,middlewareData:R}=se({strategy:`fixed`,placement:A,whileElementsMounted:(...e)=>x(...e,{animationFrame:g===`always`}),elements:{reference:y.anchor},middleware:[le({mainAxis:i+k,alignmentAxis:s}),l&&ue({mainAxis:!0,crossAxis:!1,limiter:p===`partial`?de():void 0,...P}),l&&fe({...P}),pe({...P,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)}}),T&&he({element:T,padding:c}),Pe({arrowWidth:O,arrowHeight:k}),h&&me({strategy:`referenceHidden`,...P})]}),[z,re]=Fe(ne),B=a(_);d(()=>{L&&B?.()},[L,B]);let V=R.arrow?.x,H=R.arrow?.y,ae=R.arrow?.centerOffset!==0,[oe,U]=F.useState();return d(()=>{S&&U(window.getComputedStyle(S).zIndex)},[S]),(0,I.jsx)(`div`,{ref:ee.setFloating,"data-radix-popper-content-wrapper":``,style:{...te,transform:L?te.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:oe,"--radix-popper-transform-origin":[R.transformOrigin?.x,R.transformOrigin?.y].join(` `),...R.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,I.jsx)(De,{scope:n,placedSide:z,onArrowChange:E,arrowX:V,arrowY:H,shouldHideArrow:ae,children:(0,I.jsx)(m.div,{"data-side":z,"data-align":re,...v,ref:w,style:{...v.style,animation:L?void 0:`none`}})})})});ke.displayName=W;var Ae=`PopperArrow`,je={top:`bottom`,right:`left`,bottom:`top`,left:`right`},Me=F.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=Oe(Ae,n),a=je[i.placedSide];return(0,I.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,I.jsx)(ve,{...r,ref:t,style:{...r.style,display:`block`}})})});Me.displayName=Ae;function Ne(e){return e!==null}var Pe=e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=Fe(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function Fe(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var Ie=we,Le=Ee,Re=ke,ze=Me,Be=`rovingFocusGroup.onEntryFocus`,Ve={bubbles:!1,cancelable:!0},G=`RovingFocusGroup`,[He,Ue,We]=z(G),[Ge,Ke]=c(G,[We]),[qe,Je]=Ge(G),Ye=F.forwardRef((e,t)=>(0,I.jsx)(He.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,I.jsx)(He.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,I.jsx)(Xe,{...e,ref:t})})}));Ye.displayName=G;var Xe=F.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:o,currentTabStopId:c,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:u,onEntryFocus:d,preventScrollOnEntryFocus:f=!1,...p}=e,h=F.useRef(null),g=b(t,h),v=B(o),[y,x]=s({prop:c,defaultProp:l??null,onChange:u,caller:G}),[S,C]=F.useState(!1),w=a(d),T=Ue(n),E=F.useRef(!1),[D,O]=F.useState(0);return F.useEffect(()=>{let e=h.current;if(e)return e.addEventListener(Be,w),()=>e.removeEventListener(Be,w)},[w]),(0,I.jsx)(qe,{scope:n,orientation:r,dir:v,loop:i,currentTabStopId:y,onItemFocus:F.useCallback(e=>x(e),[x]),onItemShiftTab:F.useCallback(()=>C(!0),[]),onFocusableItemAdd:F.useCallback(()=>O(e=>e+1),[]),onFocusableItemRemove:F.useCallback(()=>O(e=>e-1),[]),children:(0,I.jsx)(m.div,{tabIndex:S||D===0?-1:0,"data-orientation":r,...p,ref:g,style:{outline:`none`,...e.style},onMouseDown:_(e.onMouseDown,()=>{E.current=!0}),onFocus:_(e.onFocus,e=>{let t=!E.current;if(e.target===e.currentTarget&&t&&!S){let t=new CustomEvent(Be,Ve);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=T().filter(e=>e.focusable);nt([e.find(e=>e.active),e.find(e=>e.id===y),...e].filter(Boolean).map(e=>e.ref.current),f)}}E.current=!1}),onBlur:_(e.onBlur,()=>C(!1))})})}),Ze=`RovingFocusGroupItem`,Qe=F.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=p(),l=a||c,u=Je(Ze,n),d=u.currentTabStopId===l,f=Ue(n),{onFocusableItemAdd:h,onFocusableItemRemove:g,currentTabStopId:v}=u;return F.useEffect(()=>{if(r)return h(),()=>g()},[r,h,g]),(0,I.jsx)(He.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,I.jsx)(m.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:_(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:_(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:_(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=tt(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=f().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?rt(n,r+1):n.slice(r+1)}setTimeout(()=>nt(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:v!=null}):o})})});Qe.displayName=Ze;var $e={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function et(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function tt(e,t,n){let r=et(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return $e[r]}function nt(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function rt(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var it=Ye,at=Qe,ot=`Toggle`,st=F.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,c]=s({prop:n,onChange:i,defaultProp:r??!1,caller:ot});return(0,I.jsx)(m.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:_(e.onClick,()=>{e.disabled||c(!o)})})});st.displayName=ot;var K=`ToggleGroup`,[ct,lt]=c(K,[Ke]),ut=Ke(),dt=F.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,I.jsx)(mt,{...r,ref:t});if(n===`multiple`)return(0,I.jsx)(ht,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${K}\``)});dt.displayName=K;var[ft,pt]=ct(K),mt=F.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,c]=s({prop:n,defaultProp:r??``,onChange:i,caller:K});return(0,I.jsx)(ft,{scope:e.__scopeToggleGroup,type:`single`,value:F.useMemo(()=>o?[o]:[],[o]),onItemActivate:c,onItemDeactivate:F.useCallback(()=>c(``),[c]),children:(0,I.jsx)(vt,{...a,ref:t})})}),ht=F.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,c]=s({prop:n,defaultProp:r??[],onChange:i,caller:K}),l=F.useCallback(e=>c((t=[])=>[...t,e]),[c]),u=F.useCallback(e=>c((t=[])=>t.filter(t=>t!==e)),[c]);return(0,I.jsx)(ft,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:l,onItemDeactivate:u,children:(0,I.jsx)(vt,{...a,ref:t})})});dt.displayName=K;var[gt,_t]=ct(K),vt=F.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=ut(n),u=B(o),d={role:`group`,dir:u,...c};return(0,I.jsx)(gt,{scope:n,rovingFocus:i,disabled:r,children:i?(0,I.jsx)(it,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,I.jsx)(m.div,{...d,ref:t})}):(0,I.jsx)(m.div,{...d,ref:t})})}),q=`ToggleGroupItem`,yt=F.forwardRef((e,t)=>{let n=pt(q,e.__scopeToggleGroup),r=_t(q,e.__scopeToggleGroup),i=ut(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=F.useRef(null);return r.rovingFocus?(0,I.jsx)(at,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,I.jsx)(bt,{...s,ref:t})}):(0,I.jsx)(bt,{...s,ref:t})});yt.displayName=q;var bt=F.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=pt(q,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,I.jsx)(st,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),xt=dt,St=yt,[J,Ct]=c(`Tooltip`,[xe]),Y=xe(),wt=`TooltipProvider`,Tt=700,Et=`tooltip.open`,[Dt,Ot]=J(wt),kt=e=>{let{__scopeTooltip:t,delayDuration:n=Tt,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=F.useRef(!0),s=F.useRef(!1),c=F.useRef(0);return F.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,I.jsx)(Dt,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:F.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:F.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:F.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};kt.displayName=wt;var X=`Tooltip`,[At,Z]=J(X),jt=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:c}=e,l=Ot(X,e.__scopeTooltip),u=Y(t),[d,f]=F.useState(null),m=p(),h=F.useRef(0),g=o??l.disableHoverableContent,_=c??l.delayDuration,v=F.useRef(!1),[y,b]=s({prop:r,defaultProp:i??!1,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(Et))):l.onClose(),a?.(e)},caller:X}),x=F.useMemo(()=>y?v.current?`delayed-open`:`instant-open`:`closed`,[y]),S=F.useCallback(()=>{window.clearTimeout(h.current),h.current=0,v.current=!1,b(!0)},[b]),C=F.useCallback(()=>{window.clearTimeout(h.current),h.current=0,b(!1)},[b]),w=F.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{v.current=!0,b(!0),h.current=0},_)},[_,b]);return F.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]),(0,I.jsx)(Ie,{...u,children:(0,I.jsx)(At,{scope:t,contentId:m,open:y,stateAttribute:x,trigger:d,onTriggerChange:f,onTriggerEnter:F.useCallback(()=>{l.isOpenDelayedRef.current?w():S()},[l.isOpenDelayedRef,w,S]),onTriggerLeave:F.useCallback(()=>{g?C():(window.clearTimeout(h.current),h.current=0)},[C,g]),onOpen:S,onClose:C,disableHoverableContent:g,children:n})})};jt.displayName=X;var Mt=`TooltipTrigger`,Nt=F.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Z(Mt,n),a=Ot(Mt,n),o=Y(n),s=b(t,F.useRef(null),i.onTriggerChange),c=F.useRef(!1),l=F.useRef(!1),u=F.useCallback(()=>c.current=!1,[]);return F.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,I.jsx)(Le,{asChild:!0,...o,children:(0,I.jsx)(m.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:_(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:_(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:_(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:_(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:_(e.onBlur,i.onClose),onClick:_(e.onClick,i.onClose)})})});Nt.displayName=Mt;var Pt=`TooltipPortal`,[Ft,It]=J(Pt,{forceMount:void 0}),Lt=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=Z(Pt,t);return(0,I.jsx)(Ft,{scope:t,forceMount:n,children:(0,I.jsx)(g,{present:n||a.open,children:(0,I.jsx)(h,{asChild:!0,container:i,children:r})})})};Lt.displayName=Pt;var Q=`TooltipContent`,Rt=F.forwardRef((e,t)=>{let n=It(Q,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=Z(Q,e.__scopeTooltip);return(0,I.jsx)(g,{present:r||o.open,children:o.disableHoverableContent?(0,I.jsx)(Ut,{side:i,...a,ref:t}):(0,I.jsx)(zt,{side:i,...a,ref:t})})}),zt=F.forwardRef((e,t)=>{let n=Z(Q,e.__scopeTooltip),r=Ot(Q,e.__scopeTooltip),i=F.useRef(null),a=b(t,i),[o,s]=F.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=F.useCallback(()=>{s(null),d(!1)},[d]),p=F.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=qt(r,Kt(r,n.getBoundingClientRect())),a=Jt(t.getBoundingClientRect());s(Xt([...i,...a])),d(!0)},[d]);return F.useEffect(()=>()=>f(),[f]),F.useEffect(()=>{if(c&&u){let e=e=>p(e,u),t=e=>p(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),F.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!Yt(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,I.jsx)(Ut,{...e,ref:a})}),[Bt,Vt]=J(X,{isInside:!1}),Ht=i(`TooltipContent`),Ut=F.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=Z(Q,n),l=Y(n),{onClose:d}=c;return F.useEffect(()=>(document.addEventListener(Et,d),()=>document.removeEventListener(Et,d)),[d]),F.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&d()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,d]),(0,I.jsx)(u,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,I.jsxs)(Re,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,I.jsx)(Ht,{children:r}),(0,I.jsx)(Bt,{scope:n,isInside:!0,children:(0,I.jsx)(R,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});Rt.displayName=Q;var Wt=`TooltipArrow`,Gt=F.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Y(n);return Vt(Wt,n).isInside?null:(0,I.jsx)(ze,{...i,...r,ref:t})});Gt.displayName=Wt;function Kt(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function qt(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function Jt(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function Yt(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function Xt(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Zt(t)}function Zt(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var Qt=kt,$t=jt,en=Nt,tn=Lt,nn=Rt,rn=Gt,$=n();function an(e){let t=(0,$.c)(6),n,r;t[0]===e?(n=t[1],r=t[2]):({delayDuration:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i=r===void 0?0:r,a;return t[3]!==i||t[4]!==n?(a=(0,I.jsx)(Qt,{"data-slot":`tooltip-provider`,delayDuration:i,...n}),t[3]=i,t[4]=n,t[5]=a):a=t[5],a}function on(e){let t=(0,$.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,I.jsx)($t,{"data-slot":`tooltip`,...n}),t[2]=n,t[3]=r),r}function sn(e){let t=(0,$.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,I.jsx)(en,{"data-slot":`tooltip-trigger`,...n}),t[2]=n,t[3]=r),r}function cn(e){let t=(0,$.c)(13),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({className:r,sideOffset:a,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o=a===void 0?0:a,s;t[5]===r?s=t[6]:(s=f(`z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,r),t[5]=r,t[6]=s);let c;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,I.jsx)(rn,{className:`z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground`}),t[7]=c):c=t[7];let l;return t[8]!==n||t[9]!==i||t[10]!==o||t[11]!==s?(l=(0,I.jsx)(tn,{children:(0,I.jsxs)(nn,{"data-slot":`tooltip-content`,sideOffset:o,className:s,...i,children:[n,c]})}),t[8]=n,t[9]=i,t[10]=o,t[11]=s,t[12]=l):l=t[12],l}function ln(e){switch(e.kind){case`doc`:return`doc`;case`folder`:case`folder-index`:return`folder`;case`missing`:return`missing`}}function un(e,t){let n=k(e,t);return{resolvedTarget:n,hashDocName:n.target,displayState:ln(n)}}var dn=o(`group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent hover:bg-muted`,segmented:`text-muted-foreground hover:bg-muted-foreground/10 data-[state=on]:bg-background data-[state=on]:shadow-sm data-[state=on]:text-foreground dark:data-[state=on]:bg-muted`},size:{default:`h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`,sm:`h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5`,lg:`h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2`}},defaultVariants:{variant:`default`,size:`default`}}),fn=F.createContext({size:`default`,variant:`default`,spacing:0,orientation:`horizontal`});function pn(e){let t=(0,$.c)(29),n,r,i,a,o,s,c;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6],c=t[7]):({className:r,variant:c,size:a,spacing:o,orientation:s,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s,t[7]=c);let l=o===void 0?0:o,u=s===void 0?`horizontal`:s,d;t[8]===l?d=t[9]:(d={"--gap":l},t[8]=l,t[9]=d);let p=d,m;t[10]===r?m=t[11]:(m=f(`group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch`,r),t[10]=r,t[11]=m);let h;t[12]!==u||t[13]!==a||t[14]!==l||t[15]!==c?(h={variant:c,size:a,spacing:l,orientation:u},t[12]=u,t[13]=a,t[14]=l,t[15]=c,t[16]=h):h=t[16];let g;t[17]!==n||t[18]!==h?(g=(0,I.jsx)(fn.Provider,{value:h,children:n}),t[17]=n,t[18]=h,t[19]=g):g=t[19];let _;return t[20]!==u||t[21]!==i||t[22]!==a||t[23]!==l||t[24]!==p||t[25]!==m||t[26]!==g||t[27]!==c?(_=(0,I.jsx)(xt,{"data-slot":`toggle-group`,"data-variant":c,"data-size":a,"data-spacing":l,"data-orientation":u,style:p,className:m,...i,children:g}),t[20]=u,t[21]=i,t[22]=a,t[23]=l,t[24]=p,t[25]=m,t[26]=g,t[27]=c,t[28]=_):_=t[28],_}function mn(e){let t=(0,$.c)(19),n,r,i,a,o;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5]):({className:r,children:n,variant:a,size:o,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o);let s=a===void 0?`default`:a,c=o===void 0?`default`:o,l=F.use(fn),u=l.variant||s,d=l.size||c,p=l.spacing,m;t[6]!==r||t[7]!==l.size||t[8]!==l.variant||t[9]!==c||t[10]!==s?(m=f(`shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t text-muted-foreground data-[state=on]:text-foreground`,dn({variant:l.variant||s,size:l.size||c}),r),t[6]=r,t[7]=l.size,t[8]=l.variant,t[9]=c,t[10]=s,t[11]=m):m=t[11];let h;return t[12]!==n||t[13]!==l.spacing||t[14]!==i||t[15]!==u||t[16]!==d||t[17]!==m?(h=(0,I.jsx)(St,{"data-slot":`toggle-group-item`,"data-variant":u,"data-size":d,"data-spacing":p,className:m,...i,children:n}),t[12]=n,t[13]=l.spacing,t[14]=i,t[15]=u,t[16]=d,t[17]=m,t[18]=h):h=t[18],h}export{j as S,B as _,cn as a,N as b,at as c,Le as d,ze as f,ie as g,xe as h,on as i,it as l,Ie as m,mn as n,an as o,Re as p,un as r,sn as s,pn as t,Ke as u,z as v,M as x,P as y};
|
package/dist/public/index.html
CHANGED
|
@@ -20,17 +20,17 @@
|
|
|
20
20
|
nothing for the formatter to reindent.
|
|
21
21
|
-->
|
|
22
22
|
<script>(() => { let mode = 'wysiwyg'; try { const raw = localStorage.getItem('ok-editor-mode-v1'); if (raw === 'wysiwyg' || raw === 'source') mode = raw; } catch {} window.__OK_EDITOR_MODE__ = mode; })();</script>
|
|
23
|
-
<script type="module" crossorigin src="/assets/index-
|
|
23
|
+
<script type="module" crossorigin src="/assets/index-Dpc5ZsZ1.js"></script>
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/assets/button-BuHZQnlF.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/w3c-keyname-DGDXsZN5.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/assets/dist-1RA1Ivz5.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/assets/dist-B90Tbt-G.js">
|
|
28
|
-
<link rel="modulepreload" crossorigin href="/assets/panel-
|
|
28
|
+
<link rel="modulepreload" crossorigin href="/assets/panel-B3Oezbzt.js">
|
|
29
29
|
<link rel="modulepreload" crossorigin href="/assets/dist-BJa-wTjR.js">
|
|
30
|
-
<link rel="modulepreload" crossorigin href="/assets/dialog-
|
|
31
|
-
<link rel="modulepreload" crossorigin href="/assets/clipboard-
|
|
32
|
-
<link rel="modulepreload" crossorigin href="/assets/toggle-group-
|
|
33
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
30
|
+
<link rel="modulepreload" crossorigin href="/assets/dialog-XDohhbSr.js">
|
|
31
|
+
<link rel="modulepreload" crossorigin href="/assets/clipboard-Bau-T9ly.js">
|
|
32
|
+
<link rel="modulepreload" crossorigin href="/assets/toggle-group-DRnV5hAP.js">
|
|
33
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CVv4yIuY.css">
|
|
34
34
|
</head>
|
|
35
35
|
|
|
36
36
|
<body class="antialiased">
|
|
@@ -57,11 +57,11 @@ caused by: `+i(o,t)):a},a=e=>i(e,new Set),o=(e,t,i)=>{if(!n(e))return``;let a=i?
|
|
|
57
57
|
`||e===`\r`)){d+=1;continue}let i=a.slice(u,d);if(c)bg(i,c)&&(c=null);else{let e=yg(i);e?c=e:s.push(...Ng(i,o+u,t,n,r))}if(d===a.length)break;if(e===`\r`&&a[d+1]===`
|
|
58
58
|
`){d+=2,u=d;continue}d+=1,u=d}return s}function Fg(e){let t=e.getXmlFragment(`default`),n=Dl.serialize(Tl(t,Ol).toJSON()),r=e.getMap(`metadata`).get(`frontmatter`);return M(typeof r==`string`?r:``,n)}async function Ig(e,t,n){let r=e.documents.get(t);if(r)try{return Fg(r)}catch(e){return dg.warn({docName:t,err:e},`[suggest-links] Failed live serialization, falling back to live source text`),r.getText(`source`).toString()}return await Le(n.canonicalPath,`utf-8`)}function Lg(e){return{docName:e.docName,title:e.title,aliases:e.aliases}}async function Rg(e){let{hocuspocus:t,fileIndex:n,docName:r,scanBudgetMs:i=500,now:a=()=>Date.now(),onComplete:o}=e,s=a(),c=n.get(r);if(!c)throw new gg(r);let l=jp(await Ig(t,r,c),r),u=kg(l),d=[...n.keys()].filter(e=>e!==r).sort((e,t)=>e.localeCompare(t)),f=new Map,p=!1;for(let e of d){if(a()-s>i){p=!0;break}let o=n.get(e);if(!o)continue;let c;try{c=await Ig(t,e,o)}catch(t){dg.warn({docName:e,err:t},`[suggest-links] Failed to read source doc`);continue}let l=Pg(c,e,r,u).map(t=>({source:e,excerpt:t.excerpt,offset:t.offset}));l.length>0&&f.set(e,l)}let m=[...f.entries()].sort(([e,t],[n,r])=>r.length===t.length?e===n?(t[0]?.offset??2**53-1)-(r[0]?.offset??2**53-1):e.localeCompare(n):r.length-t.length).flatMap(([,e])=>e),h=a()-s,g={durationMs:h,corpusDocCount:d.length,candidateCount:m.length,truncated:p};return dg.info({docName:r,durationMs:h,corpusDocCount:d.length,candidateCount:m.length,truncated:p,labelCount:u.length,normalizedTarget:_(l.title)},`[suggest-links] scan completed`),o?.(g),{target:Lg(l),mentions:m,truncated:p}}const zg=`%H%x00%aI%x00%an%x00%ae%x00%s%x00%B%x1e`,Bg={entries:[],total:0,hasMore:!1};function Vg(e){return e.startsWith(`checkpoint:`)?`checkpoint`:e.startsWith(`import:`)||e.startsWith(`upstream:`)?`upstream`:`wip`}function Hg(e){return e.trim()?e.split(``).map(e=>{let t=e.trimStart();if(!t)return null;let[n=``,r=``,i=``,a=``,o=``,s=``]=t.split(`\0`),c=Vg(o);return{sha:n.trim(),timestamp:r,author:i,authorEmail:a,type:c,message:o,contributors:Jl(s),checkpoint:c===`checkpoint`?Vl(s):null}}).filter(e=>e!==null&&e.sha.length===40):[]}function Ug(e){return e?Array.isArray(e)?e:e.split(`,`).map(e=>e.trim()).filter(Boolean):[]}function Wg(e,t){return t.length===0?!0:t.some(t=>e.author.toLowerCase().includes(t.toLowerCase())||e.authorEmail.toLowerCase().includes(t.toLowerCase()))}async function Gg(e,t,n=`content`){if(!R(e.workTree)||!R(e.gitDir))return Bg;let r=t.branch??`main`,i=Math.max(1,t.limit??50),a=Math.max(0,t.offset??0),o=Ug(t.type),s=Ug(t.author),c=Ug(t.excludeAuthor),l=n.replace(/^\.\//,``),u=t.docName?l?`${l}/${t.docName}${Up(t.docName)}`:`${t.docName}${Up(t.docName)}`:void 0;try{let t=Sm(e);if(o.length===1&&o[0]===`checkpoint`){let e=(await t.raw(`for-each-ref`,`--sort=-creatordate`,`--format=%(objectname)`,`refs/checkpoints/${r}/`)).trim().split(`
|
|
59
59
|
`).filter(e=>e.length===40),n=[];if(r!==`main`)try{n=(await t.raw(`for-each-ref`,`--sort=-creatordate`,`--format=%(objectname)`,`refs/checkpoints/main/`)).trim().split(`
|
|
60
|
-
`).filter(e=>e.length===40)}catch{}let o=[...e,...n];if(o.length===0)return Bg;let l=Hg(await t.raw(`log`,`--no-walk`,`--author-date-order`,`--format=${zg}`,...o
|
|
60
|
+
`).filter(e=>e.length===40)}catch{}let o=[...e,...n];if(o.length===0)return Bg;let l=Hg(await t.raw(`log`,`--no-walk`,`--author-date-order`,`--format=${zg}`,...o)).map(e=>({...e,type:`checkpoint`}));if(u){let e=await Promise.all(l.map(async e=>{try{return await t.raw(`cat-file`,`-e`,`${e.sha}:${u}`),!0}catch{return!1}}));l=l.filter((t,n)=>e[n])}if(r!==`main`&&e.length>0&&n.length>0){let t=new Set(e),n=l.filter(e=>t.has(e.sha)),r=l.filter(e=>!t.has(e.sha)),i=n.reduce((e,t)=>Math.min(e,new Date(t.timestamp).getTime()),1/0);l=[...n,...r.filter(e=>new Date(e.timestamp).getTime()<i)]}let d=l.filter(e=>Wg(e,s)&&(c.length===0||!Wg(e,c))),f=d.length;return{entries:d.slice(a,a+i),total:f,hasMore:a+i<f}}let n=[],l=[],d=r!==`main`;try{let e=(await t.raw(`for-each-ref`,`--format=%(objectname)`,`refs/checkpoints/${r}/`)).trim().split(`
|
|
61
61
|
`).filter(e=>e.length===40);n.push(...e)}catch{}let f=[];if(d)try{f=(await t.raw(`for-each-ref`,`--format=%(objectname)`,`refs/checkpoints/main/`)).trim().split(`
|
|
62
62
|
`).filter(e=>e.length===40)}catch{}try{let e=(await t.raw(`for-each-ref`,`--format=%(refname)`,`refs/wip/${r}/`)).trim().split(`
|
|
63
63
|
`).filter(Boolean);l.push(...e)}catch{}if(d&&l.length===0)try{let e=(await t.raw(`for-each-ref`,`--format=%(refname)`,`refs/wip/main/`)).trim().split(`
|
|
64
|
-
`).filter(Boolean);l.push(...e)}catch{}if(l.length===0&&n.length===0&&f.length===0)return Bg;let p=[...n,...f],m=[];if(p.length>0){let e=Hg(await t.raw(`log`,`--no-walk`,`--author-date-order`,`--format=${zg}`,...p)).map(e=>({...e,type:`checkpoint`}));if(d&&n.length>0&&f.length>0){let t=new Set(n),r=e.filter(e=>t.has(e.sha)),i=e.filter(e=>!t.has(e.sha)),a=r.reduce((e,t)=>{let n=new Date(t.timestamp).getTime();return n<e?n:e},1/0);m=[...r,...i.filter(e=>new Date(e.timestamp).getTime()<a)]}else m=e}let h=[...l];for(let e of p)h.push(e);let g=[];h.length>0&&(g=Hg(await t.raw(`log`,`--full-history`,`--author-date-order`,`--format=${zg}`,...h,...u?[`--`,u]:[])));let _=[...m,...g],v=new Set,y=[];for(let e of _)v.has(e.sha)||(v.add(e.sha),y.push(e));y.sort((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime());let b=y;o.length>0&&(b=b.filter(e=>o.includes(e.type))),s.length>0&&(b=b.filter(e=>Wg(e,s))),c.length>0&&(b=b.filter(e=>!Wg(e,c)));let x=b.length;return{entries:b.slice(a,a+i),total:x,hasMore:a+i<x}}catch(e){return console.warn(`[timeline] getDocumentHistory failed, returning empty result:`,e),Bg}}var Kg=e(cu(),1);const qg={source:`local`,skipStoreHooks:!1,context:{origin:`rollback-apply`,paired:!0}},Jg={source:`local`,skipStoreHooks:!1,context:{origin:`managed-rename`,paired:!0}},Yg=ln(`api`);function Xg(e,t){if(!e||e.includes(`..`)||e.includes(`\0`))return{error:`Invalid document name`};let n=t.replace(/^\.\//,``),r=Up(e);return{path:n?`${n}/${e}${r}`:`${e}${r}`}}const Zg=new Set(o),Qg=/^(image\.(png|jpe?g|gif|webp)|Clipboard.*|Untitled.*)$/i;function $g(e){let t=e.replace(/[/\\]/g,``),n=Ce(t);return(t.slice(0,t.length-n.length).replace(/[^a-zA-Z0-9_\-.]/g,`_`)||`upload`)+n.replace(/[^a-zA-Z0-9_.]/g,``)}function e_(e,t,n){let r=Ce(t),i=t.slice(0,t.length-r.length),a=[t,...Array.from({length:99},(e,t)=>`${i}-${t+1}${r}`)];for(let t of a){let r=H(e,t);try{let e=de(r,`wx`);try{ve(e,n)}finally{ce(e)}return t}catch(e){if(e.code===`EEXIST`)continue;throw e}}throw Error(`Could not find available filename after 100 attempts`)}function t_(e,t){return new Promise((n,r)=>{let i;try{i=(0,Kg.default)({headers:e.headers,limits:{fileSize:t,files:1}})}catch(e){r(e);return}let a=!1,o=`upload`,s=``,c=``,l=[],u=!1;i.on(`field`,(e,t)=>{e===`parentDocName`&&(c=t)}),i.on(`file`,(t,n,c)=>{o=c.filename||`upload`,s=c.mimeType||``,n.on(`data`,e=>{l.push(e)}),n.on(`limit`,()=>{u=!0,e.unpipe(i),a||(a=!0,r(Error(`Payload too large`)))}),n.on(`error`,e=>{a||(a=!0,r(e))})}),i.on(`finish`,()=>{if(!a){if(u){a=!0,r(Error(`Payload too large`));return}if(!s&&l.length===0){a=!0,r(Error(`No file received`));return}a=!0,n({filename:o,mimeType:s,buffer:Buffer.concat(l),parentDocName:c})}}),i.on(`error`,e=>{a||(a=!0,r(e))}),e.pipe(i)})}function n_(e,t){let n=H(e,t);if(n!==e&&!n.startsWith(`${e}/`))throw Error(`Invalid directory: ${t}`);return n}function r_(e){return!e||e.startsWith(`/`)||e.includes(`\\`)||e.includes(`\0`)?!1:e.split(`/`).every(e=>e&&e!==`.`&&e!==`..`)}function i_(e,t,n){let r=[...e.keys()].filter(e=>t===`file`?e===n:e===n||e.startsWith(`${n}/`));return r.sort((e,t)=>e.localeCompare(t)),r}function a_(e,t,n,r){return t===`file`||e===n?r:`${r}${e.slice(n.length)}`}function o_(e,t,n,r){let{frontmatter:i,body:a}=l(e),o=lg(a,n,r),s=ug(o.markdown,t,n,r);return{markdown:M(i,s.markdown),rewrites:o.rewrites+s.rewrites}}function s_(e,t){let n;try{n=pe(t)}catch{return}let r=e;for(;;)try{if(!Gm(pe(r),n))throw Error(`symlink-escape: path resolves outside content directory`);return}catch(e){let n=e.code;if(n===`ELOOP`)throw Error(`symlink-escape: symlink cycle in path`);if(n!==`ENOENT`)throw e;let i=Se(r);if(i===r||i!==t&&!i.startsWith(`${t}${Ee}`))throw e;r=i}}function c_(e,t,n){if(!r_(n))throw Error(`path must be a relative content path`);let r=H(e),i=H(r,t===`file`?`${n}${Up(n)}`:n);if(i!==r&&!i.startsWith(`${r}${Ee}`))throw Error(`path must not escape content directory`);return s_(i,r),i}function l_(e,t){let n=H(e),r=H(t);return r!==n&&!r.startsWith(`${n}${Ee}`)?null:Te(n,r).split(Ee).join(`/`)}async function u_(e,t,n){if(!e)return!1;let r=l_(e,t),i=l_(e,n);return!r||!i?!1:await oe(async()=>{let t=Fe({baseDir:e,timeout:{block:15e3}});if(!(await t.raw(`ls-files`,`--`,r)).trim())return!1;ue(Se(n),{recursive:!0});try{return await t.raw(`mv`,`--`,r,i),!0}catch(e){return console.warn(`[renameTrackedPathInGit] git mv failed, falling back to fs rename:`,e),!1}})}async function d_(e){let t=[],n=0;for await(let r of e){if(n+=r.length,n>1048576)throw Error(`Payload too large`);t.push(r)}return Buffer.concat(t)}function Y(e,t,n,r){e.writeHead(t,{"Content-Type":`application/json`,"X-Content-Type-Options":`nosniff`,...r}),e.end(JSON.stringify(n))}function f_(e){let t=e;if(e.startsWith(`---
|
|
64
|
+
`).filter(Boolean);l.push(...e)}catch{}if(l.length===0&&n.length===0&&f.length===0)return Bg;let p=[...n,...f],m=[];if(p.length>0){let e=Hg(await t.raw(`log`,`--no-walk`,`--author-date-order`,`--format=${zg}`,...p)).map(e=>({...e,type:`checkpoint`}));if(u){let n=await Promise.all(e.map(async e=>{try{return await t.raw(`cat-file`,`-e`,`${e.sha}:${u}`),!0}catch{return!1}}));e=e.filter((e,t)=>n[t])}if(d&&n.length>0&&f.length>0){let t=new Set(n),r=e.filter(e=>t.has(e.sha)),i=e.filter(e=>!t.has(e.sha)),a=r.reduce((e,t)=>{let n=new Date(t.timestamp).getTime();return n<e?n:e},1/0);m=[...r,...i.filter(e=>new Date(e.timestamp).getTime()<a)]}else m=e}let h=[...l];for(let e of p)h.push(e);let g=[];h.length>0&&(g=Hg(await t.raw(`log`,`--full-history`,`--author-date-order`,`--format=${zg}`,...h,...u?[`--`,u]:[])));let _=[...m,...g],v=new Set,y=[];for(let e of _)v.has(e.sha)||(v.add(e.sha),y.push(e));y.sort((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime());let b=y;o.length>0&&(b=b.filter(e=>o.includes(e.type))),s.length>0&&(b=b.filter(e=>Wg(e,s))),c.length>0&&(b=b.filter(e=>!Wg(e,c)));let x=b.length;return{entries:b.slice(a,a+i),total:x,hasMore:a+i<x}}catch(e){return console.warn(`[timeline] getDocumentHistory failed, returning empty result:`,e),Bg}}var Kg=e(cu(),1);const qg={source:`local`,skipStoreHooks:!1,context:{origin:`rollback-apply`,paired:!0}},Jg={source:`local`,skipStoreHooks:!1,context:{origin:`managed-rename`,paired:!0}},Yg=ln(`api`);function Xg(e,t){if(!e||e.includes(`..`)||e.includes(`\0`))return{error:`Invalid document name`};let n=t.replace(/^\.\//,``),r=Up(e);return{path:n?`${n}/${e}${r}`:`${e}${r}`}}const Zg=new Set(o),Qg=/^(image\.(png|jpe?g|gif|webp)|Clipboard.*|Untitled.*)$/i;function $g(e){let t=e.replace(/[/\\]/g,``),n=Ce(t);return(t.slice(0,t.length-n.length).replace(/[^a-zA-Z0-9_\-.]/g,`_`)||`upload`)+n.replace(/[^a-zA-Z0-9_.]/g,``)}function e_(e,t,n){let r=Ce(t),i=t.slice(0,t.length-r.length),a=[t,...Array.from({length:99},(e,t)=>`${i}-${t+1}${r}`)];for(let t of a){let r=H(e,t);try{let e=de(r,`wx`);try{ve(e,n)}finally{ce(e)}return t}catch(e){if(e.code===`EEXIST`)continue;throw e}}throw Error(`Could not find available filename after 100 attempts`)}function t_(e,t){return new Promise((n,r)=>{let i;try{i=(0,Kg.default)({headers:e.headers,limits:{fileSize:t,files:1}})}catch(e){r(e);return}let a=!1,o=`upload`,s=``,c=``,l=[],u=!1;i.on(`field`,(e,t)=>{e===`parentDocName`&&(c=t)}),i.on(`file`,(t,n,c)=>{o=c.filename||`upload`,s=c.mimeType||``,n.on(`data`,e=>{l.push(e)}),n.on(`limit`,()=>{u=!0,e.unpipe(i),a||(a=!0,r(Error(`Payload too large`)))}),n.on(`error`,e=>{a||(a=!0,r(e))})}),i.on(`finish`,()=>{if(!a){if(u){a=!0,r(Error(`Payload too large`));return}if(!s&&l.length===0){a=!0,r(Error(`No file received`));return}a=!0,n({filename:o,mimeType:s,buffer:Buffer.concat(l),parentDocName:c})}}),i.on(`error`,e=>{a||(a=!0,r(e))}),e.pipe(i)})}function n_(e,t){let n=H(e,t);if(n!==e&&!n.startsWith(`${e}/`))throw Error(`Invalid directory: ${t}`);return n}function r_(e){return!e||e.startsWith(`/`)||e.includes(`\\`)||e.includes(`\0`)?!1:e.split(`/`).every(e=>e&&e!==`.`&&e!==`..`)}function i_(e,t,n){let r=[...e.keys()].filter(e=>t===`file`?e===n:e===n||e.startsWith(`${n}/`));return r.sort((e,t)=>e.localeCompare(t)),r}function a_(e,t,n,r){return t===`file`||e===n?r:`${r}${e.slice(n.length)}`}function o_(e,t,n,r){let{frontmatter:i,body:a}=l(e),o=lg(a,n,r),s=ug(o.markdown,t,n,r);return{markdown:M(i,s.markdown),rewrites:o.rewrites+s.rewrites}}function s_(e,t){let n;try{n=pe(t)}catch{return}let r=e;for(;;)try{if(!Gm(pe(r),n))throw Error(`symlink-escape: path resolves outside content directory`);return}catch(e){let n=e.code;if(n===`ELOOP`)throw Error(`symlink-escape: symlink cycle in path`);if(n!==`ENOENT`)throw e;let i=Se(r);if(i===r||i!==t&&!i.startsWith(`${t}${Ee}`))throw e;r=i}}function c_(e,t,n){if(!r_(n))throw Error(`path must be a relative content path`);let r=H(e),i=H(r,t===`file`?`${n}${Up(n)}`:n);if(i!==r&&!i.startsWith(`${r}${Ee}`))throw Error(`path must not escape content directory`);return s_(i,r),i}function l_(e,t){let n=H(e),r=H(t);return r!==n&&!r.startsWith(`${n}${Ee}`)?null:Te(n,r).split(Ee).join(`/`)}async function u_(e,t,n){if(!e)return!1;let r=l_(e,t),i=l_(e,n);return!r||!i?!1:await oe(async()=>{let t=Fe({baseDir:e,timeout:{block:15e3}});if(!(await t.raw(`ls-files`,`--`,r)).trim())return!1;ue(Se(n),{recursive:!0});try{return await t.raw(`mv`,`--`,r,i),!0}catch(e){return console.warn(`[renameTrackedPathInGit] git mv failed, falling back to fs rename:`,e),!1}})}async function d_(e){let t=[],n=0;for await(let r of e){if(n+=r.length,n>1048576)throw Error(`Payload too large`);t.push(r)}return Buffer.concat(t)}function Y(e,t,n,r){e.writeHead(t,{"Content-Type":`application/json`,"X-Content-Type-Options":`nosniff`,...r}),e.end(JSON.stringify(n))}function f_(e){let t=e;if(e.startsWith(`---
|
|
65
65
|
`)||e.startsWith(`---\r
|
|
66
66
|
`)){let n=e.indexOf(`
|
|
67
67
|
---`,3);n!==-1&&(t=e.slice(n+4))}let n=[],r=new Map,i=D();for(let e of t.split(`
|
|
@@ -89,4 +89,4 @@ caused by: `+i(o,t)):a},a=e=>i(e,new Set),o=(e,t,i)=>{if(!n(e))return``;let a=i?
|
|
|
89
89
|
`).map(e=>e.trim()).filter(Boolean);return n.length===0?!0:(this.error=`External changes pending: ${n.slice(0,3).join(`, `)}${n.length>3?`, +${n.length-3} more`:``}`,this.pausedReason=`external-changes-pending`,this.consecutiveFailures=0,this.transitionTo(`idle`),this.scheduleSaveState(),$.warn({files:n},`[sync] paused — non-content tracked files dirty`),!1)}gatherContentFilesSync(){let e=[],t=n=>{let r;try{r=fe(n,{withFileTypes:!0})}catch{return}for(let i of r){let r=V(n,i.name);if(i.isDirectory()){if(i.name===`node_modules`||i.name===`.git`||i.name.startsWith(`.`)&&i.name!==`.open-knowledge`)continue;t(r)}else if(i.isFile()){let t=Te(this.contentDir,r);if(!t.startsWith(`..`)&&!this.contentFilter.isExcluded(t)){let n=Te(this.projectDir,r);e.push({contentRelPath:t,projectRelPath:n})}}}};return R(this.contentDir)&&t(this.contentDir),e}buildCommitMessage(e){return e.length===0?`Auto-save: changes saved`:e.length<=3?`Auto-save: Updated ${e.join(`, `)}`:`Auto-save: ${e.length} files changed`}async handleMergeConflict(){let e=L(this.projectDir,{credentialArgs:this.credentialArgs}),t=[];try{let n=(await e.git.raw([`diff`,`--name-only`,`--diff-filter=U`])).trim();t=n?n.split(`
|
|
90
90
|
`).map(e=>e.trim()).filter(Boolean):[]}catch(t){$.error({err:t},`[sync] failed to list conflicted files — aborting merge to avoid committing unresolved state`);try{await e.git.raw([`merge`,`--abort`])}catch(e){$.warn({err:e},`[sync] git merge --abort failed during cleanup`)}this.error=`Failed to detect conflict files — merge aborted`,this.pausedReason=void 0,this.transitionTo(`idle`);return}let n=[],r=[];for(let e of t){let t=V(this.projectDir,e),i=Te(this.contentDir,t);!i.startsWith(`..`)&&!this.contentFilter.isExcluded(i)?n.push(e):r.push(e)}for(let t of r)try{await e.git.raw([`checkout`,`--theirs`,`--`,t]),await e.git.raw([`add`,`--`,t]),$.info({file:t},`[sync] auto-resolved non-content conflict with theirs`)}catch(e){$.warn({err:e,file:t},`[sync] auto-resolve failed — escalating to content conflict`),n.push(t)}if(n.length>0){for(let e of n)this.conflictStore.addConflict({file:e,detectedAt:new Date().toISOString()});this.conflictCount=this.conflictStore.count(),this.pullTimer!==null&&(clearTimeout(this.pullTimer),this.pullTimer=null),this.pushTimer!==null&&(clearTimeout(this.pushTimer),this.pushTimer=null),this.transitionTo(`conflict`),$.warn({files:n},`[sync] content conflicts — sync paused until resolved`)}else try{await e.git.raw([`commit`,`--no-edit`]),this.lastSyncUtc=new Date().toISOString(),this.behind=0,this.transitionTo(`idle`),$.info({},`[sync] all conflicts auto-resolved — merge committed`)}catch(t){$.warn({err:t},`[sync] failed to commit after auto-resolving conflicts — aborting merge`);try{await e.git.raw([`merge`,`--abort`])}catch(e){$.warn({err:e},`[sync] git merge --abort failed during cleanup`)}this.transitionTo(`idle`)}}async abortMerge(){let e=L(this.projectDir,{credentialArgs:this.credentialArgs});try{await e.git.raw([`merge`,`--abort`]),$.info({},`[sync] merge aborted`)}catch(e){$.warn({err:e},`[sync] git merge --abort failed — conflicts.json still cleared`)}this.conflictStore.clear(),this.conflictCount=0,this.transitionTo(`idle`),this.scheduleSaveState()}handleError(e){this.error=e.message,$.warn({class:e.class,subclass:e.subclass,retryable:e.retryable,rawStderr:e.rawStderr},`[sync-error] ${e.message}`),e.class===`auth`?(this.transitionTo(`auth-error`),this.pausedReason=`auth-error`):e.class===`semantic`&&e.subclass===`protected-branch`?(this.syncEnabled=!1,this.transitionTo(`disabled`),this.pausedReason=`protected-branch`):e.class===`local`&&e.subclass===`dirty-tree`?(this.consecutiveFailures++,this.transitionTo(`idle`),this.pausedReason=`dirty-tree`,this.schedulePush(0)):e.retryable?(this.consecutiveFailures++,this.transitionTo(`offline`)):(this.consecutiveFailures++,this.transitionTo(`idle`))}transitionTo(e){if(this.state===e)return;let t=this.state;this.state=e,$.info({from:t,to:e},`[sync] state: ${t} → ${e}`),this.onStateChange?.(e),this.cc1Broadcaster?.signal(`sync-status`)}scheduleSaveState(){this.stateSaveTimer===null&&(this.stateSaveTimer=setTimeout(()=>{this.stateSaveTimer=null,this.saveStateNow()},5e3))}saveStateNow(){try{let e={version:1,lastSyncUtc:this.lastSyncUtc,lastFetchUtc:this.lastFetchUtc,lastPushedSha:this.lastPushedSha,consecutiveFailures:this.consecutiveFailures,pausedReason:this.pausedReason,pausedSinceUtc:this.pausedReason?new Date().toISOString():void 0,inflightConflicts:this.conflictStore.list().map(e=>e.file),syncEnabled:this.syncEnabled};B(this.statePath,JSON.stringify(e,null,2),`utf-8`)}catch(e){$.warn({err:e},`[sync] failed to persist sync state`)}}loadState(){if(R(this.statePath))try{let e=z(this.statePath,`utf-8`),t=JSON.parse(e);if(t.version!==1)return;this.lastSyncUtc=t.lastSyncUtc??null,this.lastFetchUtc=t.lastFetchUtc??null,this.lastPushedSha=t.lastPushedSha??null,this.consecutiveFailures=t.consecutiveFailures??0,this.pausedReason=t.pausedReason,t.syncEnabled!==void 0&&(this.syncEnabled=t.syncEnabled);let n=t.inflightConflicts??[];if(n.length>0){for(let e of n)this.conflictStore.list().some(t=>t.file===e)||this.conflictStore.addConflict({file:e,detectedAt:new Date().toISOString()});this.conflictCount=this.conflictStore.count()}}catch(e){$.warn({err:e},`[sync] failed to load sync state`)}}};const Db=(()=>{let e=Object.freeze({origin:`park-snapshot`,paired:!0});return Object.freeze({source:`local`,skipStoreHooks:!1,context:e})})();function Ob(e){let{contentDir:t,projectDir:n=t,quiet:r=!0,debounce:i=2e3,maxDebounce:a=1e4,gitEnabled:o=!0,commitDebounceMs:s=3e4,wipRef:c=`refs/wip/main`,enableTestRoutes:l=!1,shadowRepo:u,contentRoot:d,includePatterns:f=[`**/*.md`,`**/*.mdx`],excludePatterns:p=[],destroyTimeoutMs:m=1e4,localOpCliArgs:h}=e,g=ln(`server`),_=H(t,`.open-knowledge`);re(_,{port:e.port??0,worktreeRoot:n});let v,y,x,S,C,w,T=null,E=null,D=null,O=null;function k(e){T?.signal(e)}try{v=Py({projectDir:n,contentDir:t,includePatterns:f,excludePatterns:p}),y=new vm({projectDir:n,contentDir:t,contentFilter:v}),x={current:u},S=nh({contentDir:t,projectDir:n,gitEnabled:o,commitDebounceMs:s,wipRef:c,shadowRef:x,contentRoot:d,backlinkIndex:y,getCurrentBranch:()=>oe?.getLastKnownBranch()??null,getPrincipal:()=>O}),C=new gy({quiet:r,debounce:i,maxDebounce:a,extensions:[S.extension]}),T=new El(C),E=new un(C),D=new Hn(C),w=new Pl(C);let m=qy({backlinkIndex:y,signalChannel:k});C.configuration.extensions.push(m),C.configuration.extensions.push({async onAuthenticate(e){try{let t=e.token;if(!t)return;let n=JSON.parse(t),r=e.context;typeof n.principalId==`string`&&(O&&n.principalId===O.id?r.principalId=O.id:O?console.warn(JSON.stringify({event:`principal-token-mismatch`,claimed:n.principalId,loaded:O.id})):r.principalId=n.principalId),typeof n.tabSessionId==`string`&&(r.tabSessionId=n.tabSessionId),r.kind=`human`}catch{}}});let g=h_({hocuspocus:C,sessionManager:w,contentDir:t,getFileIndex:()=>I?I.getFileIndex():new Map,getAliasMap:()=>I?I.getAliasMap():new Map,enableTestRoutes:l,shadowRef:x,flushGitCommit:()=>S.flushPendingGitCommit(),getCurrentBranch:()=>oe?.getLastKnownBranch()??null,contentRoot:d,backlinkIndex:y,signalChannel:k,agentFocusBroadcaster:E,agentPresenceBroadcaster:D,onAgentWrite:e.onAgentWrite,getSyncEngine:()=>L,localOpCliArgs:h,projectDir:n,getPrincipal:()=>O});C.configuration.extensions.push(g),C.configuration.extensions.push(eb({mdManager:Dl,schema:Ol,shadowRef:x,contentRoot:d,getCurrentBranch:()=>oe?.getLastKnownBranch()??null}))}catch(e){throw te(_),e}let A=null;function j(e,t){let n=H(e,`rescue`),r=H(n,`${t}${Up(t)}`);return r.startsWith(`${n}/`)?r:null}function N(e){let t=C.documents.get(e);if(!t)return null;let n=Tl(t.getXmlFragment(`default`),Ol).toJSON(),r=Dl.serialize(n),i=t.getMap(`metadata`).get(`frontmatter`);return M(typeof i==`string`?i:``,r)}let P=(e,t)=>zy(C,e,t);function ee(e){return e.kind===`rename`?e.newDocName:e.docName}async function ne(e){try{switch(e.kind){case`create`:g.info({docName:e.docName},`[reconcile] create: ${e.docName}`),y.updateDocumentFromMarkdown(e.docName,e.content),y.saveToDisk().catch(t=>{console.warn(`[backlinks] Failed to persist create for ${e.docName}:`,t)}),k(`files`),k(`backlinks`),k(`graph`);break;case`update`:{let{docName:t,content:n}=e,r=C.documents.get(t);if(!r){y.updateDocumentFromMarkdown(t,n),y.saveToDisk().catch(e=>{console.warn(`[backlinks] Failed to persist closed-doc update for ${t}:`,e)}),k(`backlinks`),k(`graph`);return}let i=Xm(t)??``,a=N(t)??i,o=oh({docName:t,base:i,ours:a,theirs:n}),s=mh(i).slice(0,6),c=mh(a).slice(0,6),l=mh(n).slice(0,6);switch(g.info({docName:t,base:s,ours:c,theirs:l,result:o.kind},`[reconcile] ${t} base=${s} ours=${c} theirs=${l} result=${o.kind}`),o.kind){case`noop`:y.updateDocumentFromMarkdown(t,n),y.saveToDisk().catch(e=>{console.warn(`[backlinks] Failed to persist noop update for ${t}:`,e)}),k(`backlinks`),k(`graph`);break;case`clean`:try{P(t,o.newContent),Zm(t,o.newContent),hn(),y.updateDocumentFromMarkdown(t,n),y.saveToDisk().catch(e=>{console.warn(`[backlinks] Failed to persist clean update for ${t}:`,e)}),k(`backlinks`),k(`graph`)}catch(e){g.error({err:e,docName:t},`[reconcile] failed to apply clean content to Y.Doc for ${t}`),Zm(t,n)}break;case`merged`:try{P(t,o.newContent),Zm(t,o.newContent),hn(),y.updateDocumentFromMarkdown(t,n),y.saveToDisk().catch(e=>{console.warn(`[backlinks] Failed to persist merged update for ${t}:`,e)}),k(`backlinks`),k(`graph`)}catch(e){g.error({err:e,docName:t},`[reconcile] failed to apply merged content to Y.Doc for ${t}`),Zm(t,n)}break;case`conflicts`:try{P(t,o.newContent),Zm(t,o.newContent),hn(),gn(),y.updateDocumentFromMarkdown(t,n),y.saveToDisk().catch(e=>{console.warn(`[backlinks] Failed to persist conflict update for ${t}:`,e)}),k(`backlinks`),k(`graph`)}catch(e){g.error({err:e,docName:t},`[reconcile] failed to apply conflict content to Y.Doc for ${t}`),Zm(t,n)}break;case`refused`:{gn();let e=r.getMap(`lifecycle`);e.set(`status`,`conflict`),e.set(`reason`,o.reason);break}}break}case`delete`:{let{docName:t}=e,n=C.documents.get(t);if(!n){y.deleteDocument(t),y.saveToDisk().catch(e=>{console.warn(`[backlinks] Failed to persist closed-doc delete for ${t}:`,e)}),k(`files`),k(`backlinks`),k(`graph`);return}let r=Xm(t)??``,i=N(t)??``,a=i!==r;if(a&&x.current){let e=x.current,n=oe?.getLastKnownBranch()??`main`;queueMicrotask(()=>{Lm(e,d??``,{kind:`external-change-rescue`,docName:t,contents:i,label:`External change recovered @ ${new Date().toISOString()}`,branch:n,metadata:{incomingDiskSha:``}}).then(()=>{yn(),g.info({docName:t},`[reconcile] rescue checkpoint saved (delete): ${t}`)}).catch(e=>{g.error({docName:t,err:e},`[reconcile] rescue checkpoint write failed: ${t}`)})})}n.getMap(`lifecycle`).set(`status`,`deleted-upstream`),Qm(t),y.deleteDocument(t),y.saveToDisk().catch(e=>{console.warn(`[backlinks] Failed to persist delete for ${t}:`,e)}),g.info({docName:t,isDirty:a},`[reconcile] delete: ${t} (dirty=${a})`),C.closeConnections(t),await C.unloadDocument(n),k(`files`),k(`backlinks`),k(`graph`);break}case`rename`:{let{oldDocName:t,newDocName:n,content:r}=e,i=C.documents.get(t);if(Qm(t),Zm(n,r),y.renameDocument(t,n,r),y.saveToDisk().catch(e=>{console.warn(`[backlinks] Failed to persist rename for ${t} -> ${n}:`,e)}),i){let e=i.getMap(`lifecycle`);e.set(`status`,`renamed`),e.set(`newPath`,n)}g.info({oldDocName:t,newDocName:n},`[reconcile] rename: ${t} → ${n}`),k(`files`),k(`backlinks`),k(`graph`);break}case`conflict`:{let{docName:t}=e,n=C.documents.get(t);if(!n)return;let r=n.getMap(`lifecycle`);r.set(`status`,`conflict`),r.set(`reason`,`conflict-markers`),g.info({docName:t},`[reconcile] conflict markers detected: ${t}`);break}}}catch(t){g.error({err:t,kind:e.kind,docName:ee(e)},`[reconcile] failed to handle ${e.kind} for ${ee(e)}`)}}let F=[];async function ie(e){if(th()){F.push(e);return}await ne(e)}async function ae(){let e=F.splice(0,F.length);for(let t of e)await ne(t)}let I=null,oe=null,L=null,se=null;async function ce(e){if(C.documents.size===0)return;let t=!1,n=new Promise(e=>{C.configuration.extensions.push({async afterUnloadDocument({instance:n}){!t&&n.getDocumentsCount()===0&&(t=!0,e())}})}),r=Array.from(C.documents.keys());C.closeConnections(),C.flushPendingStores();let i,a=new Promise((n,a)=>{i=setTimeout(()=>{t=!0;let n=Array.from(C.documents.keys()),i=[],o=[];if(x.current){for(let e of n)if(!J(e))try{let t=N(e);if(t===null){g.warn({docName:e},`[rescue] skipping ${e} — document dropped from map mid-rescue`),o.push(e);continue}let n=j(x.current.gitDir,e);if(!n){g.warn({docName:e,gitDir:x.current.gitDir},`[rescue] path-traversal guard rejected docName: ${e}`),o.push(e);continue}ue(Se(n),{recursive:!0}),B(n,t,`utf-8`),yn(),i.push(e),g.info({docName:e},`[rescue] rescue buffer saved on flush timeout: ${e}`)}catch(t){o.push(e),g.error({err:t,docName:e},`[rescue] failed to write rescue buffer for ${e}`)}}else g.warn({stillLoadedCount:n.length},`[rescue] shadow repo unavailable at flush timeout — ${n.length} doc(s) will be lost: [${n.join(`, `)}]`),o.push(...n);let s=i.length>0||o.length>0?` — rescued [${i.join(`, `)}]${o.length>0?`, lost [${o.join(`, `)}]`:``}`:``;a(Error(`flushAllStoresAndWait timeout after ${e}ms — ${n.length}/${r.length} docs did not unload: [${n.join(`, `)}]${s}`))},e)});try{await Promise.race([n,a])}finally{i!==void 0&&clearTimeout(i)}}async function le(){return se||(se=(async()=>{let e=Date.now(),t=[],r,i=await Promise.race([pe.then(()=>`completed`,e=>(g.debug({err:e},`[server] init incomplete during shutdown`),`failed`)),new Promise(e=>{r=setTimeout(()=>e(`timeout`),5e3)})]);r!==void 0&&clearTimeout(r),i===`timeout`&&g.warn({},`[server] init did not complete within 5s during shutdown`);let a=C.documents.size;try{try{try{oe&&=(await oe.unsubscribe(),null),I&&=(await I.unsubscribe(),null)}catch(e){t.push({phase:`watcher-unsubscribe`,error:e instanceof Error?e.message:String(e)}),g.error({err:e},`[server] shutdown phase-1 watcher unsubscribe failed`)}try{T?.destroy(),D?.destroy(),A&&=(await A.disconnect(),null)}catch(e){t.push({phase:`cc1-teardown`,error:e instanceof Error?e.message:String(e)}),g.error({err:e},`[server] shutdown phase-1b CC1 teardown failed`)}try{await w.closeAll()}catch(e){t.push({phase:`agent-session-drain`,error:e instanceof Error?e.message:String(e)}),g.error({err:e},`[server] shutdown phase-2 agent session drain failed`)}try{await ce(m)}catch(e){t.push({phase:`flush-all-stores`,error:e instanceof Error?e.message:String(e)}),g.error({err:e},`[server] shutdown phase-3 flush failed`)}let e;try{await Promise.race([(async()=>{await S.flushPendingGitCommit(),await S.waitForPendingCommits()})(),new Promise((t,n)=>{e=setTimeout(()=>n(Error(`L2 git flush timeout`)),m)})])}catch(e){t.push({phase:`git-commit-flush`,error:e instanceof Error?e.message:String(e)}),g.error({err:e},`[server] shutdown phase-4 git commit flush failed`)}finally{e!==void 0&&clearTimeout(e)}try{L&&=(await L.destroy(),null)}catch(e){t.push({phase:`sync-engine-stop`,error:e instanceof Error?e.message:String(e)}),g.error({err:e},`[server] shutdown sync-engine-stop failed`)}}finally{if(x.current){try{let e=(await Fe({baseDir:n,timeout:{block:5e3}}).revparse(`HEAD`)).trim();e&&B(H(x.current.gitDir,`last-known-head`),e,`utf-8`)}catch{}try{wm(x.current)}catch(e){t.push({phase:`shadow-repo-release`,error:e instanceof Error?e.message:String(e)}),g.error({err:e},`[server] shutdown phase-5 destroyShadowRepo failed`)}}let r=Date.now()-e;t.length===0?g.info({documentCount:a,durationMs:r},`[server] shutdown flushed ${a} documents in ${r}ms`):g.warn({documentCount:a,durationMs:r,phaseErrors:t},`[server] shutdown flushed ${a} documents in ${r}ms with ${t.length} phase error(s)`)}}finally{try{te(_)}catch(e){t.push({phase:`server-lock-release`,error:e instanceof Error?e.message:String(e)}),g.error({err:e},`[server] shutdown phase-6 releaseServerLock failed`)}}})(),se)}let de=[];async function fe(){try{O=await Yy(t),g.info({principalId:O.id},`[server] principal loaded`)}catch(e){g.warn({err:e},`[server] principal load failed — browser writes will use SERVICE_WRITER`)}if(!x.current)try{x.current=await Cm(n),g.info({gitDir:x.current.gitDir},`[server] history repo initialized at ${x.current.gitDir}`)}catch(e){g.error({err:e},`[server] history repo init failed`),de.push(`shadow-repo`)}if(x.current)try{await Sm(x.current).raw(`rev-parse`,`--git-dir`)}catch(e){let t=e instanceof Error?e.message:String(e);if(t.includes(`not a git repository`)||t.includes(`invalid object`)){g.warn({},`[server] history repo appears corrupted — reinitializing`);try{x.current=await Cm(n)}catch(e){g.error({err:e},`[server] history repo reinit failed`),x.current=void 0,de.includes(`shadow-repo`)||de.push(`shadow-repo`)}}else g.error({err:e},`[server] history repo check failed (transient?)`)}if(x.current)try{let e=H(x.current.gitDir,`last-known-head`),t=null;try{t=z(e,`utf-8`).trim()||null}catch{}let r=null;try{r=(await Fe({baseDir:n,timeout:{block:1e4}}).revparse(`HEAD`)).trim()||null}catch{}if(r!==null){if(r!==t){let e=`main`;try{let t=(await Fe({baseDir:n,timeout:{block:1e4}}).raw(`rev-parse`,`--abbrev-ref`,`HEAD`)).trim();t&&t!==`HEAD`&&(e=t)}catch{}g.info({lastKnownHead:t,currentHead:r,branch:e},`[head-drift] lastKnownHead=${t??`null`}, currentHead=${r}, action=import`);try{await Pm(x.current,d??``,t,r,e),vn()}catch(e){g.warn({err:e},`[head-drift] commitUpstreamImport failed — continuing`)}}else g.info({currentHead:r},`[head-drift] lastKnownHead=${t??`null`}, currentHead=${r}, action=noop`);try{B(e,r,`utf-8`)}catch(e){g.warn({err:e},`[head-drift] failed to write last-known-head`)}}}catch(e){g.warn({err:e},`[head-drift] check failed — continuing`)}try{let e=Qh(t);e.recovered&&e.journal&&g.warn({sourceDocName:e.journal.sourceDocName,destinationDocName:e.journal.destinationDocName,restoredDocNames:e.restoredDocNames},`[managed-rename] recovered pending rename ${e.journal.sourceDocName} -> ${e.journal.destinationDocName}`)}catch(e){g.error({err:e},`[server] managed rename recovery failed`),de.push(`managed-rename-recovery`)}try{A=await C.openDirectConnection(b)}catch(e){g.error({err:e},`[server] failed to open __system__ direct connection — CC1 push disabled`),de.push(`cc1-push`)}try{I=await Dh(t,ie,v),y.rebuildFromDisk(Ym()),y.saveToDisk().catch(e=>{console.warn(`[backlinks] Failed to persist startup cache for ${Ym()}:`,e)})}catch(e){g.error({err:e},`[server] disk bridge watcher failed to start`),de.push(`file-watcher`)}try{oe=await Wy(n,async({trigger:e})=>{if(g.info({trigger:e},`[batch] begin trigger=${e}`),_n(),C.flushPendingStores(),await S.flushPendingGitCommit(),eh(!0),x.current){let e=Ym(),t=Vy(n),r=t?Uy(t)??e:e,i=[];for(let[e,t]of C.documents){if(J(e))continue;let n=null;if(t.transact(()=>{n=N(e)},Db),n===null)continue;let r=Xm(e)??n;i.push({docName:e,markdown:n,diskSnapshot:r})}if(i.length>0)try{let t=await zm(x.current,e,Mm.id,i,r);t&&(xn(),g.info({count:i.length,branch:e,sha:t.slice(0,8)},`[history] parked ${i.length} docs on ${e} → ${t.slice(0,8)}`))}catch(e){g.error({err:e},`[shadow] park failed`)}}},async e=>{let n=F.length,r=e.newBranch??`main`;if(eh(!1),g.info({kind:e.batchKind,headMoved:e.headMoved,docs:n,timeout:!!e.timeout},`[batch] end kind=${e.batchKind} headMoved=${e.headMoved} docs=${n}${e.timeout?` timeout`:``}`),e.batchKind===`within-branch`)await ae();else{bn(),F.splice(0,F.length),Jm(r),y.switchBranch(r);for(let[e,n]of C.documents)if(!J(e))try{let i=Wm(e,t);if(!R(i)){let t=Xm(e)??``,i=N(e)??``;if(i!==t&&x.current){let t=x.current;queueMicrotask(()=>{Lm(t,d??``,{kind:`external-change-rescue`,docName:e,contents:i,label:`External change recovered @ ${new Date().toISOString()}`,branch:r,metadata:{incomingDiskSha:``}}).then(()=>{yn(),g.info({docName:e},`[reconcile] rescue checkpoint saved on branch switch: ${e}`)}).catch(t=>{g.error({docName:e,err:t},`[reconcile] rescue checkpoint write failed: ${e}`)})})}n.getMap(`lifecycle`).set(`status`,`deleted-upstream`),g.info({docName:e,branch:r},`[branch-switch] tombstone: ${e} (not on ${r})`);continue}let a=z(i,`utf-8`);P(e,a),Zm(e,a),g.info({docName:e},`[branch-switch] reset: ${e}`)}catch(t){g.error({err:t,docName:e},`[branch-switch] failed to reset ${e}`)}if(g.info({branch:r,docCount:C.documents.size},`[branch-switch] loaded branch ${r} (${C.documents.size} docs)`),y.rebuildFromDisk(r),y.saveToDisk(r).catch(e=>{console.warn(`[backlinks] Failed to persist branch cache for ${r}:`,e)}),x.current&&e.batchKind===`cross-branch`){let e=0;for(let[t]of C.documents)if(!J(t))try{let n=await Bm(x.current,r,Mm.id,t);if(!n||n.markdown===n.diskSnapshot)continue;let i=Xm(t);if(!i)continue;let a=oh({docName:t,base:n.diskSnapshot,ours:n.markdown,theirs:i});switch(a.kind){case`merged`:case`clean`:P(t,a.newContent),Zm(t,a.newContent),e++;break;case`conflicts`:P(t,a.newContent),Zm(t,a.newContent),gn(),e++;break;case`noop`:case`refused`:break}}catch(e){g.error({err:e,docName:t},`[branch-switch] restore WIP failed for ${t}`)}e>0&&g.info({count:e,branch:r},`[branch-switch] restored ${e} parked docs on ${r}`)}if(e.oldBranch?.startsWith(`detached-`)&&x.current)try{let t=Sm(x.current),n=(await t.raw(`for-each-ref`,`refs/wip/${e.oldBranch}/`,`--format=%(refname)`)).trim();if(n){for(let e of n.split(`
|
|
91
91
|
`))e&&await t.raw(`update-ref`,`-d`,e);g.info({context:e.oldBranch},`[branch-switch] cleaned up detached context ${e.oldBranch}`)}}catch(e){g.error({err:e},`[branch-switch] detached cleanup failed`)}}if(e.headMoved&&e.newHead&&x.current&&n>0){let t=d??`content`;try{let n=await Pm(x.current,t,e.oldHead,e.newHead,r);vn(),g.info({oldHead:e.oldHead?.slice(0,8)??`null`,newHead:e.newHead.slice(0,8),sha:n.slice(0,8)},`[history] upstream-import from ${e.oldHead?.slice(0,8)??`null`}..${e.newHead.slice(0,8)} → ${n.slice(0,8)}`)}catch(e){g.error({err:e},`[shadow] upstream-import failed`)}}})}catch(e){g.error({err:e},`[server] HEAD watcher failed to start`),de.push(`head-watcher`)}let e=h?.[0]??`open-knowledge`,r=[`-c`,`credential.helper=!${h&&h.length>1?h.join(` `):e} auth git-credential`];try{L=new Eb({projectDir:n,contentDir:t,contentFilter:v,contentRoot:d,credentialArgs:r,cc1Broadcaster:T,setBatchInProgress:eh,onStateChange:e=>{g.info({state:e},`[sync] state → ${e}`)}}),await L.start()}catch(e){g.warn({err:e},`[server] SyncEngine failed to start — sync disabled`),L=null}}let pe=fe();return{hocuspocus:C,sessionManager:w,cc1Broadcaster:T,agentFocusBroadcaster:E,agentPresenceBroadcaster:D,contentFilter:v,destroy:le,ready:pe,degraded:de,lockDir:_,get syncEngine(){return L}}}async function kb(e){let t=e.skipAutoInit??!1,n=e.attachUiSibling??!0,r=e.idleShutdownMs,i=e.log??ln(`boot`),{createServer:a}=await import(`node:http`),{WebSocketServer:o}=await import(`./wrapper-_sZfvZ-v.mjs`),{updateServerLockPort:s}=await import(`./server-lock-zOHsiWX-.mjs`),c=!1;!t&&e.ensureProjectGitFn&&(c=!!(await e.ensureProjectGitFn()).didInit);let l=!1;if(!t&&e.autoInitFn)try{l=!!await e.autoInitFn()}catch(e){i.warn({err:e},`autoInitFn failed`)}let u=Ob({contentDir:e.contentDir,projectDir:e.projectDir,contentRoot:e.contentRoot,port:e.port,host:e.host,quiet:e.quiet??!1,debounce:e.debounce,maxDebounce:e.maxDebounce,gitEnabled:e.gitEnabled,commitDebounceMs:e.commitDebounceMs,wipRef:e.wipRef,enableTestRoutes:e.enableTestRoutes,shadowRepo:e.shadowRepo,includePatterns:e.includePatterns,excludePatterns:e.excludePatterns,destroyTimeoutMs:e.destroyTimeoutMs,localOpCliArgs:e.localOpCliArgs,onAgentWrite:e.onAgentWrite}),{hocuspocus:d,destroy:f,ready:p,degraded:m,lockDir:h,agentPresenceBroadcaster:g}=u,_=a((e,t)=>{let n=e.url?.split(`?`)[0];if(n?.startsWith(`/api/`)){d.hooks(`onRequest`,{request:e,response:t}).then(()=>{t.writableEnded||t.headersSent||(t.statusCode=404,t.setHeader(`Content-Type`,`application/json`),t.end(JSON.stringify({error:`API route not found`,path:n})))}).catch(e=>{i.error({err:e},`Unhandled onRequest error`),!t.writableEnded&&!t.headersSent?(t.writeHead(500),t.end(`Internal server error`)):t.writableEnded||t.end()});return}t.writeHead(404,{"Content-Type":`application/json`}),t.end(JSON.stringify({error:"Not found. The React UI is served by `ok ui` (default port 3000).",path:n??`/`}))}),v=new o({noServer:!0});v.on(`error`,e=>{i.error({err:e},`WebSocketServer error`)});let y=e.keepaliveGraceMs??1e4,b=new Map,x=new Set,S=!1;_.on(`upgrade`,(e,t,n)=>{if(e.url?.startsWith(`/collab/keepalive`)){t.on(`error`,e=>{zn(e)||i.error({err:e},`MCP keepalive socket error`)}),v.handleUpgrade(e,t,n,t=>{let n=Ab(e.url);if(n){let e=b.get(n);e!==void 0&&(clearTimeout(e),b.delete(n),i.info({connectionId:n},`[keepalive] reconnect during grace — timer cancelled`))}let r=setInterval(()=>{try{t.ping()}catch{}},3e4);r.unref?.();let a=n?setInterval(()=>{g?.bumpPresenceTs(mn(n))},3e3):null;a?.unref?.(),t.on(`close`,()=>{if(clearInterval(r),a!==null&&clearInterval(a),!n)return;let e=setTimeout(()=>{if(b.delete(n),S)return;let e=(async()=>{i.info({connectionId:n},`[keepalive] grace expired — cleaning up sessions`);try{await u.sessionManager.closeAllForAgent(n)}catch(e){i.error({err:e,connectionId:n},`[keepalive] closeAllForAgent failed`)}try{u.agentFocusBroadcaster?.clearFocus(n)}catch(e){i.error({err:e,connectionId:n},`[keepalive] clearFocus failed`)}try{g?.clearPresence(mn(n))}catch(e){i.error({err:e,connectionId:n},`[keepalive] clearPresence failed`)}})();x.add(e),e.finally(()=>x.delete(e))},y);e.unref?.(),b.set(n,e),i.info({connectionId:n,graceMs:y},`[keepalive] disconnected — grace timer started`)}),t.on(`error`,e=>{zn(e)||i.error({err:e},`MCP keepalive WS error`),t.terminate()})});return}e.url?.startsWith(`/collab`)&&(t.on(`error`,e=>{zn(e)||i.error({err:e},`Upgrade socket error`)}),v.handleUpgrade(e,t,n,t=>{let n=d.handleConnection(t,e);t.on(`message`,e=>{n.handleMessage((e instanceof ArrayBuffer,new Uint8Array(e)))}),t.on(`close`,(e,t)=>{n.handleClose({code:e,reason:t.toString()})}),t.on(`error`,e=>{zn(e)||i.error({err:e},`WebSocket error`),t.terminate()})}))});let C=null;r!==null&&(C=g_({httpServer:_,thresholdMs:r??18e5,log:i,onShutdown:(e.idleShutdownHandler??(e=>async()=>{await e()}))(async()=>{await f()})})),await new Promise((t,n)=>{let r=e=>n(e);_.once(`error`,r),_.listen(e.port,e.host,()=>{_.removeListener(`error`,r),t()})});let w=_.address(),T=typeof w==`object`&&w?w.port:e.port??0;if(s(h,T),n&&e.spawnUiSiblingFn)try{await e.spawnUiSiblingFn({lockDir:h,log:i})}catch(e){i.warn({err:e},`spawnUiSiblingFn failed`)}let E=!1;return{httpServer:_,destroy:async()=>{if(!E){E=!0,S=!0,C?.detach();for(let e of b.values())clearTimeout(e);b.clear(),x.size>0&&await Promise.allSettled([...x]),await new Promise(e=>{_.close(()=>e())}),await f()}},lockDir:h,contentDir:e.contentDir,port:T,ready:p,degraded:m,didAutoInit:l,didGitInit:c,serverInstance:u}}function Ab(e){if(!e)return null;try{return pn(new URL(e,`http://localhost`).searchParams.get(`connectionId`))}catch{return null}}const jb=He(Me);var Mb=class extends Error{stderr;constructor(e,t=``,n){super(e,n),this.name=`ProjectGitInitError`,this.stderr=t}};async function Nb(e){let t=H(e),n=H(t,`.git`);if(R(n))return{didInit:!1};let r=``;try{r=(await jb(`git`,[`init`,`--initial-branch=main`,t])).stderr??``}catch(e){let n=typeof e==`object`&&e&&`stderr`in e?String(e.stderr??``):``;throw new Mb(`git init failed at ${t}: ${e instanceof Error?e.message:String(e)}`,n,{cause:e})}if(!R(H(n,`HEAD`)))throw new Mb(`git init reported success but ${n}/HEAD is missing (partial init detected)`,r);return console.log(`[project-git] initialized .git/ at ${t} (branch: main)`),{didInit:!0}}export{fm as $,Dh as A,jm as B,mh as C,un as Ct,hh as D,_h as E,cn as Et,oh as F,km as G,Om as H,ah as I,Im as J,Cm as K,nh as L,uh as M,rh as N,fh as O,ih as P,vm as Q,Wm as R,bh as S,pn as St,xh as T,ln as Tt,Pm as U,Mm as V,Em as W,Vm as X,Lm as Y,Sm as Z,qg as _,zn as _t,Ob as a,rp as at,ug as b,fn as bt,Zy as c,Rl as ct,Uy as d,Pl as dt,Mp as et,Ry as f,Al as ft,Jg as g,Vn as gt,g_ as h,Hn as ht,Ab as i,Pp as it,vh as j,yh as k,Yy as l,ru as lt,Py as m,J as mt,Nb as n,Fp as nt,eb as o,$f as ot,zy as p,El as pt,Rm as q,kb as r,Ip as rt,Xy as s,Ll as st,Mb as t,Np as tt,qy as u,Jl as ut,h_ as v,Fn as vt,ph as w,sn as wt,lg as x,mn as xt,n_ as y,Dn as yt,Am as z};
|
|
92
|
-
//# sourceMappingURL=src-
|
|
92
|
+
//# sourceMappingURL=src-C1Um6yPF.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./src-CQw-HNNM.mjs";import{Tt as e,et as t,it as n,n as r,nt as i,r as a,rt as o,t as s,tt as c}from"./src-
|
|
1
|
+
import"./src-CQw-HNNM.mjs";import{Tt as e,et as t,it as n,n as r,nt as i,r as a,rt as o,t as s,tt as c}from"./src-C1Um6yPF.mjs";import{f as l,r as u}from"./server-lock-BI-SqMWk.mjs";export{s as ProjectGitInitError,t as UiLockCollisionError,c as acquireUiLock,a as bootServer,r as ensureProjectGit,e as getLogger,l as isProcessAlive,u as readServerLock,i as readUiLock,o as releaseUiLock,n as updateUiLockPort};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./init-Xod4U7aY.mjs";import"./loader-Dw_7CMz3.mjs";export{};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./start-z2CFfZyW.mjs";export{e as startCommand};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./constants-
|
|
2
|
-
//# sourceMappingURL=start-
|
|
1
|
+
import{a as e}from"./constants-Cs463jly.mjs";import{O as t}from"./src-CQw-HNNM.mjs";import{Command as n}from"commander";import{closeSync as r,existsSync as i,mkdirSync as a,openSync as o}from"node:fs";import{join as s}from"node:path";import{spawn as c}from"node:child_process";function l(){let e=process.execPath,t=process.argv[1];return t?{command:e,prefixArgs:[t]}:(console.warn(`[self-spawn] process.argv[1] is empty — falling back to \`npx @inkeep/open-knowledge\`. This re-introduces the version-drift surface that re-exec was fixing. Observed argv: ${JSON.stringify(process.argv)}`),{command:`npx`,prefixArgs:[`@inkeep/open-knowledge`]})}function u(e){return e.uiLock?e.isAlive(e.uiLock.pid)?{action:`skip`,reason:`alive`,pid:e.uiLock.pid,port:e.uiLock.port}:{action:`spawn`,reason:`stale`,stalePid:e.uiLock.pid}:{action:`spawn`,reason:`absent`}}function d(e){i(e.lockDir)||a(e.lockDir,{recursive:!0});let t=o(s(e.lockDir,`last-spawn-error.log`),`w`),n=e.spawn??c,{PORT:u,...d}=process.env,f=l();try{let r=n(f.command,[...f.prefixArgs,...e.args??[`ui`]],{detached:!0,stdio:[`ignore`,`ignore`,t],cwd:e.cwd,env:d});return r.unref(),r}finally{try{r(t)}catch{}}}async function f(e){let t=e.now()+e.timeoutMs;for(;e.now()<t;){let t=e.readUiLock();if(t&&t.port>0)return t.port;await e.sleep(e.pollIntervalMs)}let n=e.readUiLock();return n&&n.port>0?n.port:null}function p(e){let t=e.sigtermGraceMs??1e4,n=e.sigtermPollIntervalMs??200,r=e.sleep??(e=>new Promise(t=>setTimeout(t,e)));return async()=>{try{let i=e.readUiLock();if(i&&e.isAlive(i.pid))try{e.killPid(i.pid,`SIGTERM`),e.log?.info({pid:i.pid,port:i.port},`idle-shutdown: SIGTERM UI sibling`);let a=Date.now()+t;for(;Date.now()<a&&e.isAlive(i.pid);)await r(n);if(e.isAlive(i.pid))try{e.killPid(i.pid,`SIGKILL`),e.log?.warn({pid:i.pid,graceMs:t},`idle-shutdown: SIGTERM grace expired — escalated to SIGKILL`)}catch(t){e.log?.error({pid:i.pid,err:t instanceof Error?t.message:String(t)},`idle-shutdown: SIGKILL failed`)}}catch(t){e.log?.warn({pid:i.pid,err:t instanceof Error?t.message:String(t)},`idle-shutdown: failed to SIGTERM UI sibling`)}}catch(t){e.log?.warn({err:t instanceof Error?t.message:String(t)},`idle-shutdown: UI lookup failed; proceeding with destroy`)}await e.destroy()}}async function m(e){let{config:n,cwd:r}=e,i=e.skipAutoInit??!1,a=e.skipUiAutoSpawn??!1,o=e.idleThresholdMs??18e5,{existsSync:s,mkdirSync:c}=await import(`node:fs`),{resolve:l}=await import(`node:path`),{bootServer:m,ensureProjectGit:h,getLogger:g,isProcessAlive:_,readUiLock:v}=await import(`./src-C445dwsE.mjs`),{resolveContentDir:y}=await import(`./paths-a8wNIBFD.mjs`),b=e.log??g(`start`),x=y(n,r);s(x)||(c(x,{recursive:!0}),b.info({contentDir:x},`Created content directory`));let S=!s(l(r,t)),C=i?void 0:async()=>{try{let{initContent:e}=await import(`./init-CCx9nR5M.mjs`),t=e(r);return S||t.created.length>0}catch(e){return console.warn(`Auto-init failed:`,e instanceof Error?e.message:e),!1}},w=!1,T=l(x,t),E=n.server.openOnAgentEdit?()=>{if(w)return;let e=v(T);if(!e||e.port<=0||!_(e.pid))return;w=!0;let t=`http://localhost:${e.port}`;import(`./open-browser-CfwaLBtR.mjs`).then(({openBrowser:e})=>e(t)).catch(()=>{})}:void 0,D=null,O=await m({contentDir:x,projectDir:r,contentRoot:n.content.dir,port:n.server.port,host:n.server.host,quiet:!1,debounce:n.persistence.debounceMs,maxDebounce:n.persistence.maxDebounceMs,includePatterns:n.content.include,excludePatterns:n.content.exclude,onAgentWrite:E,localOpCliArgs:[process.execPath,process.argv[1]],attachUiSibling:!0,idleShutdownMs:o,skipAutoInit:i,autoInitFn:C,ensureProjectGitFn:i?void 0:()=>h(r),spawnUiSiblingFn:async({lockDir:t})=>{if(D=u({uiLock:v(t),isAlive:_}),D.action===`spawn`&&!a)try{d({lockDir:t,cwd:r,spawn:e.spawn}),b.info({reason:D.reason},`[start] auto-spawned ok ui sibling`)}catch(e){console.warn(`[start] failed to auto-spawn ok ui: ${e instanceof Error?e.message:String(e)}`)}else D.action===`skip`&&b.info({port:D.port,pid:D.pid},`UI already running at port ${D.port}`)},idleShutdownHandler:e=>p({readUiLock:()=>v(O.lockDir),isAlive:_,killPid:(e,t)=>{process.kill(e,t)},destroy:e,log:b}),log:b});D||={action:`skip`,reason:`alive`,pid:0,port:0};let k=D,A=null;if(k.action===`skip`)A=k.port>0?k.port:null;else if(!a){let t=e.uiBindTimeoutMs??3e3;A=await f({readUiLock:()=>v(O.lockDir),now:Date.now,sleep:e=>new Promise(t=>setTimeout(t,e)),timeoutMs:t,pollIntervalMs:50}),A===null&&b.warn({timeoutMs:t},`[start] ok ui did not bind within timeout — banner falls back to API URL`)}return{httpServer:O.httpServer,destroy:O.destroy,lockDir:O.lockDir,contentDir:x,port:O.port,ready:O.ready,degraded:O.degraded,uiSpawnDecision:D,resolvedUiPort:A,didAutoInit:O.didAutoInit,didGitInit:O.didGitInit}}function h(r){return new n(`start`).description(`Start the knowledge base collab server`).option(`-p, --port <port>`,`Server port`,void 0).option(`-H, --host <host>`,`Server host`,void 0).option(`--open`,`Open browser after start`).option(`--no-init`,`Skip auto-scaffolding of ${t}/`).action(async n=>{let{renderBanner:i}=await import(`./banner-C51OKbnz.mjs`),{dim:a,error:o,info:s,warning:c}=await import(`./colors-xJqYhQcY.mjs`),l=r(),u=process.cwd();n.port!==void 0&&(l.server.port=Number(n.port)),n.host!==void 0&&(l.server.host=n.host);let d;try{d=await m({config:l,cwd:u,skipAutoInit:n.init===!1})}catch(e){let{ProjectGitInitError:t}=await import(`./src-C445dwsE.mjs`);e instanceof t&&(console.error(o(`open-knowledge requires git to initialize a parent repo. Install git or run 'git init' yourself, then re-run.`)),e.stderr&&console.error(a(e.stderr.trim())),process.exit(1)),console.error(`${o(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let f=!1,p=async e=>{if(!f){f=!0,console.log(a(`\nShutting down (${e})...`));try{await d.destroy()}catch(e){console.error(`${o(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)}};process.once(`SIGINT`,()=>{p(`SIGINT`)}),process.once(`SIGTERM`,()=>{p(`SIGTERM`)});let h=`http://${l.server.host}:${d.port}`,g=l.server.host===`0.0.0.0`||l.server.host===`::`?`http://0.0.0.0:${d.port}`:void 0,_=d.resolvedUiPort,v=_!==null&&_>0?`http://${l.server.host}:${_}`:h;console.log(i({name:`open-knowledge`,version:e,localUrl:v,apiUrl:v===h?void 0:h,networkUrl:g})),d.didAutoInit&&(console.log(` ${s(`✓`)} Scaffolded ${t}/ (first run)`),console.log(` ${a("Tip: Run `open-knowledge init` to register MCP tools for Claude Code")}\n`));let y={"shadow-repo":`Version history and branch-switch safety unavailable`,"file-watcher":`External file changes will not sync to the editor`,"head-watcher":`Git branch switches may cause document inconsistency`};d.ready.then(async()=>{if(d.degraded.length>0){console.log();for(let e of d.degraded){let t=y[e]??`${e} (check server logs for details)`;console.warn(` ${c(`⚠`)} ${c(e)}: ${a(t)}`)}console.log()}if(d.didAutoInit||d.didGitInit)if(d.didGitInit&&console.log(`\n ${s(`✓`)} Initialized git repo at ${u}/.git/ (default branch: main)`),d.didAutoInit)try{let{previewContent:e,formatPreviewBlock:t}=await import(`./preview-_ahVwbF3.mjs`),n=e({projectDir:u,contentDir:d.contentDir,include:l.content.include,exclude:l.content.exclude});console.log(`\n${t(n,u)}\n`)}catch(e){console.warn(`Content preview unavailable: ${e instanceof Error?e.message:String(e)}`)}else console.log();if(n.open){let{openBrowser:e}=await import(`./open-browser-CfwaLBtR.mjs`);e(v)}}).catch(e=>{console.error(` ${o(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})})}export{d as a,u as i,m as n,h as o,p as r,l as s,f as t};
|
|
2
|
+
//# sourceMappingURL=start-z2CFfZyW.mjs.map
|
package/package.json
CHANGED
package/dist/init-CFVYH-16.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./init-CODC0Drd.mjs";export{o as CLAUDE_MD_SECTION,n as OK_MARKER_BEGIN,i as OK_MARKER_END,t as PREVIEW_GUIDANCE,e as ensureOkGitignoredAtRoot,r as initContent,a as upsertRootInstructions};
|
package/dist/init-DQNJ_f3z.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./init-DysAQtCG.mjs";export{o as detectInstalledEditors,n as formatInitResult,i as initCommand,t as readExistingMcpEntry,e as runInit,r as writeEditorMcpConfig,a as writeUserMcpConfigs};
|
package/dist/loader-89zKhhvs.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./loader-DfTFnc2z.mjs";export{e as loadConfig};
|
package/dist/paths-BhmQnYL9.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./paths-B9hXoumv.mjs";export{t as resolveContentDir,e as resolveLockDir};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./preview-jDZwLSul.mjs";export{t as formatPreviewBlock,e as previewContent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,n as t,r as n,t as r}from"./index-DUIfxmm6.js";export{r as McpConsentDialogBody,r as default,t as computeInitialSelection,n as selectedIdsOrdered,e as toggleSelectedId};
|