@inkeep/open-knowledge 0.5.0-beta.47 → 0.5.0-beta.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/assets/skills/open-knowledge/SKILL.md +1 -1
  2. package/dist/cli.mjs +4 -4
  3. package/dist/constants-BvIV9-u3.mjs +2 -0
  4. package/dist/index.mjs +1 -1
  5. package/dist/{init-CmQ_C7Dm.mjs → init-C9ho5PLw.mjs} +3 -3
  6. package/dist/init-Dft22e1h.mjs +1 -0
  7. package/dist/loader-B5wdvkGE.mjs +1 -0
  8. package/dist/{loader-CHhQuNxK.mjs → loader-F8wUMFGk.mjs} +2 -2
  9. package/dist/preview-DIuZwdT3.mjs +1 -0
  10. package/dist/{preview-CIgVuEry.mjs → preview-DM4jIpLN.mjs} +2 -2
  11. package/dist/public/assets/{ActivityModeContent-fhFzM0sk.js → ActivityModeContent-B8J4OFHO.js} +1 -1
  12. package/dist/public/assets/ConsentDialogBody-Dfx6N7pC.js +2 -0
  13. package/dist/public/assets/{DocumentContext-LS9HBbXh.js → DocumentContext-fSMev29P.js} +2 -2
  14. package/dist/public/assets/McpConsentDialogBody-fka4wJP7.js +1 -0
  15. package/dist/public/assets/{SettingsDialogBody-alvj4xbx.js → SettingsDialogBody-8zs3jwhI.js} +1 -1
  16. package/dist/public/assets/{SourceEditor-CuJQDNNo.js → SourceEditor-BCHJFeGa.js} +1 -1
  17. package/dist/public/assets/{config-validation-events-Dxvq0Gmu.js → config-validation-events-BtPgkHlf.js} +1 -1
  18. package/dist/public/assets/{index-D6UM1028.js → index-BZCMU4ot.js} +7 -7
  19. package/dist/public/assets/{index-BgKCFonW.css → index-D9afOIIc.css} +1 -1
  20. package/dist/public/assets/{typing-burst-detector-mzjjQOqs.js → typing-burst-detector-Cm3a_0Rp.js} +1 -1
  21. package/dist/public/index.html +5 -5
  22. package/dist/{repair-launch-json-tbV_XaNr.mjs → repair-launch-json-yfbhku73.mjs} +2 -2
  23. package/dist/{repair-mcp-configs-B9q5NKQh.mjs → repair-mcp-configs-3DOkuM0T.mjs} +2 -2
  24. package/dist/{src-CzxqX1w-.mjs → src-6iWoC0XU.mjs} +2 -2
  25. package/dist/{start-B5WsKMpt.mjs → start-CO8Evcw9.mjs} +2 -2
  26. package/dist/start-Caiq4CNh.mjs +1 -0
  27. package/package.json +1 -1
  28. package/dist/constants-BbmMpMCp.mjs +0 -2
  29. package/dist/init-CU0LqAeV.mjs +0 -1
  30. package/dist/loader-CKCKCJLW.mjs +0 -1
  31. package/dist/preview-DA93kG_C.mjs +0 -1
  32. package/dist/public/assets/ConsentDialogBody-CSNo2n5l.js +0 -2
  33. package/dist/public/assets/McpConsentDialogBody-Cp08S9eY.js +0 -1
  34. package/dist/start-Duh1Cxij.mjs +0 -1
@@ -1,2 +1,2 @@
1
- import{o as e}from"./chunk-CFjPhJqf.js";import{n as t,r as n,t as r}from"./compiler-runtime-CVnuRdak.js";import{D as i,E as a,O as o,et as s,fn as c,n as l}from"./DocumentContext-LS9HBbXh.js";import{a as u,c as d,i as f,n as ee,o as te,r as ne,s as re,t as ie,u as ae}from"./panel-Co559KoC.js";import{It as p,s as oe,zt as m}from"./doc-hash-CMD_NjP8.js";import{S as se}from"./button-DBLnjjvQ.js";import{$ as h,At as g,Bt as _,Dt as v,E as y,Et as b,Ft as x,Ht as S,J as C,Mt as w,N as T,Ot as E,Pt as D,Q as O,Rt as k,Ut as A,X as j,_ as ce,_t as M,ct as N,dt as P,et as F,f as I,gt as L,ht as R,l as le,lt as ue,mt as de,nt as fe,ot as pe,rt as me,st as he,tt as ge,ut as _e,wt as z,y as ve,yt as B,zt as ye}from"./dist-D3YXABda.js";import{i as be,n as xe,o as Se,r as Ce}from"./dist-DllAuqQQ.js";var we=e(t(),1),Te=r(),Ee=new Map;function De(e,t){Ee.set(e,t)}function Oe(e){let t=Ee.get(e)??null;return Ee.delete(e),t}function ke(e){Ee.delete(e)}var Ae=typeof String.prototype.normalize==`function`?e=>e.normalize(`NFKD`):e=>e,V=class{constructor(e,t,n=0,r=e.length,i,a){this.test=a,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer=``,this.bufferPos=0,this.iter=e.iterRange(n,r),this.bufferStart=n,this.normalize=i?e=>i(Ae(e)):Ae,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return k(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=A(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=ye(e);let r=this.normalize(t);if(r.length)for(let e=0,i=n;;e++){let a=r.charCodeAt(e),o=this.match(a,i,this.bufferPos+this.bufferStart);if(e==r.length-1){if(o)return this.value=o,this;break}i==n&&e<t.length&&t.charCodeAt(e)==a&&i++}}}match(e,t,n){let r=null;for(let t=0;t<this.matches.length;t+=2){let i=this.matches[t],a=!1;this.query.charCodeAt(i)==e&&(i==this.query.length-1?r={from:this.matches[t+1],to:n}:(this.matches[t]++,a=!0)),a||(this.matches.splice(t,2),t-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?r={from:t,to:n}:this.matches.push(1,t)),r&&this.test&&!this.test(r.from,r.to,this.buffer,this.bufferStart)&&(r=null),r}};typeof Symbol<`u`&&(V.prototype[Symbol.iterator]=function(){return this});var je={from:-1,to:-1,match:/.*/.exec(``)},Me=`gm`+(/x/.unicode==null?``:`u`),Ne=class{constructor(e,t,n,r=0,i=e.length){if(this.text=e,this.to=i,this.curLine=``,this.done=!1,this.value=je,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new Ie(e,t,n,r,i);this.re=new RegExp(t,Me+(n?.ignoreCase?`i`:``)),this.test=n?.test,this.iter=e.iter(),this.curLineStart=e.lineAt(r).from,this.matchPos=Re(e,r),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine=``:(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine=``:this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=Re(this.text,r+ +(n==r)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<r||n>this.value.to)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}},Pe=new WeakMap,Fe=class e{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(t,n,r){let i=Pe.get(t);if(!i||i.from>=r||i.to<=n){let i=new e(n,t.sliceString(n,r));return Pe.set(t,i),i}if(i.from==n&&i.to==r)return i;let{text:a,from:o}=i;return o>n&&(a=t.sliceString(n,o)+a,o=n),i.to<r&&(a+=t.sliceString(i.to,r)),Pe.set(t,new e(o,a)),new e(n,a.slice(n-o,r-o))}},Ie=class{constructor(e,t,n,r,i){this.text=e,this.to=i,this.done=!1,this.value=je,this.matchPos=Re(e,r),this.re=new RegExp(t,Me+(n?.ignoreCase?`i`:``)),this.test=n?.test,this.flat=Fe.get(e,r,this.chunkEnd(r+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,n=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,n,t)))return this.value={from:e,to:n,match:t},this.matchPos=Re(this.text,n+ +(e==n)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Fe.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<`u`&&(Ne.prototype[Symbol.iterator]=Ie.prototype[Symbol.iterator]=function(){return this});function Le(e){try{return new RegExp(e,Me),!0}catch{return!1}}function Re(e,t){if(t>=e.length)return t;let n=e.lineAt(t),r;for(;t<n.to&&(r=n.text.charCodeAt(t-n.from))>=56320&&r<57344;)t++;return t}var ze=e=>{let{state:t}=e,n=String(t.doc.lineAt(e.state.selection.main.head).number),{close:r,result:i}=L(e,{label:t.phrase(`Go to line`),input:{type:`text`,name:`line`,value:n},focus:!0,submitLabel:t.phrase(`go`)});return i.then(n=>{let i=n&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(n.elements.line.value);if(!i){e.dispatch({effects:r});return}let a=t.doc.lineAt(t.selection.main.head),[,o,s,c,l]=i,u=c?+c.slice(1):0,d=s?+s:a.number;if(s&&l){let e=d/100;o&&(e=e*(o==`-`?-1:1)+a.number/t.doc.lines),d=Math.round(t.doc.lines*e)}else s&&o&&(d=d*(o==`-`?-1:1)+a.number);let f=t.doc.line(Math.max(1,Math.min(t.doc.lines,d))),ee=b.cursor(f.from+Math.max(0,Math.min(u,f.length)));e.dispatch({effects:[r,j.scrollIntoView(ee.from,{y:`center`})],selection:ee})}),!0},Be={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Ve=E.define({combine(e){return _(e,Be,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function He(e){let t=[Je,qe];return e&&t.push(Ve.of(e)),t}var Ue=C.mark({class:`cm-selectionMatch`}),We=C.mark({class:`cm-selectionMatch cm-selectionMatch-main`});function Ge(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=z.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=z.Word)}function Ke(e,t,n,r){return e(t.sliceDoc(n,n+1))==z.Word&&e(t.sliceDoc(r-1,r))==z.Word}var qe=O.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(Ve),{state:n}=e,r=n.selection;if(r.ranges.length>1)return C.none;let i=r.main,a,o=null;if(i.empty){if(!t.highlightWordAroundCursor)return C.none;let e=n.wordAt(i.head);if(!e)return C.none;o=n.charCategorizer(i.head),a=n.sliceDoc(e.from,e.to)}else{let e=i.to-i.from;if(e<t.minSelectionLength||e>200)return C.none;if(t.wholeWords){if(a=n.sliceDoc(i.from,i.to),o=n.charCategorizer(i.head),!(Ge(o,n,i.from,i.to)&&Ke(o,n,i.from,i.to)))return C.none}else if(a=n.sliceDoc(i.from,i.to),!a)return C.none}let s=[];for(let r of e.visibleRanges){let e=new V(n.doc,a,r.from,r.to);for(;!e.next().done;){let{from:r,to:a}=e.value;if((!o||Ge(o,n,r,a))&&(i.empty&&r<=i.from&&a>=i.to?s.push(We.range(r,a)):(r>=i.to||a<=i.from)&&s.push(Ue.range(r,a)),s.length>t.maxMatches))return C.none}}return C.set(s)}},{decorations:e=>e.decorations}),Je=j.baseTheme({".cm-selectionMatch":{backgroundColor:`#99ff7780`},".cm-searchMatch .cm-selectionMatch":{backgroundColor:`transparent`}}),Ye=({state:e,dispatch:t})=>{let{selection:n}=e,r=b.create(n.ranges.map(t=>e.wordAt(t.head)||b.cursor(t.head)),n.mainIndex);return r.eq(n)?!1:(t(e.update({selection:r})),!0)};function Xe(e,t){let{main:n,ranges:r}=e.selection,i=e.wordAt(n.head),a=i&&i.from==n.from&&i.to==n.to;for(let n=!1,i=new V(e.doc,t,r[r.length-1].to);;)if(i.next(),i.done){if(n)return null;i=new V(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),n=!0}else{if(n&&r.some(e=>e.from==i.value.from))continue;if(a){let t=e.wordAt(i.value.from);if(!t||t.from!=i.value.from||t.to!=i.value.to)continue}return i.value}}var Ze=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(e=>e.from===e.to))return Ye({state:e,dispatch:t});let r=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some(t=>e.sliceDoc(t.from,t.to)!=r))return!1;let i=Xe(e,r);return i?(t(e.update({selection:e.selection.addRange(b.range(i.from,i.to),!1),effects:j.scrollIntoView(i.to)})),!0):!1},H=E.define({combine(e){return _(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new Et(e),scrollToMatch:e=>j.scrollIntoView(e)})}}),Qe=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||``,this.valid=!!this.search&&(!this.regexp||Le(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(e,t)=>t==`n`?`
1
+ import{o as e}from"./chunk-CFjPhJqf.js";import{n as t,r as n,t as r}from"./compiler-runtime-CVnuRdak.js";import{D as i,E as a,O as o,et as s,fn as c,n as l}from"./DocumentContext-fSMev29P.js";import{a as u,c as d,i as f,n as ee,o as te,r as ne,s as re,t as ie,u as ae}from"./panel-Co559KoC.js";import{It as p,s as oe,zt as m}from"./doc-hash-CMD_NjP8.js";import{S as se}from"./button-DBLnjjvQ.js";import{$ as h,At as g,Bt as _,Dt as v,E as y,Et as b,Ft as x,Ht as S,J as C,Mt as w,N as T,Ot as E,Pt as D,Q as O,Rt as k,Ut as A,X as j,_ as ce,_t as M,ct as N,dt as P,et as F,f as I,gt as L,ht as R,l as le,lt as ue,mt as de,nt as fe,ot as pe,rt as me,st as he,tt as ge,ut as _e,wt as z,y as ve,yt as B,zt as ye}from"./dist-D3YXABda.js";import{i as be,n as xe,o as Se,r as Ce}from"./dist-DllAuqQQ.js";var we=e(t(),1),Te=r(),Ee=new Map;function De(e,t){Ee.set(e,t)}function Oe(e){let t=Ee.get(e)??null;return Ee.delete(e),t}function ke(e){Ee.delete(e)}var Ae=typeof String.prototype.normalize==`function`?e=>e.normalize(`NFKD`):e=>e,V=class{constructor(e,t,n=0,r=e.length,i,a){this.test=a,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer=``,this.bufferPos=0,this.iter=e.iterRange(n,r),this.bufferStart=n,this.normalize=i?e=>i(Ae(e)):Ae,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return k(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=A(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=ye(e);let r=this.normalize(t);if(r.length)for(let e=0,i=n;;e++){let a=r.charCodeAt(e),o=this.match(a,i,this.bufferPos+this.bufferStart);if(e==r.length-1){if(o)return this.value=o,this;break}i==n&&e<t.length&&t.charCodeAt(e)==a&&i++}}}match(e,t,n){let r=null;for(let t=0;t<this.matches.length;t+=2){let i=this.matches[t],a=!1;this.query.charCodeAt(i)==e&&(i==this.query.length-1?r={from:this.matches[t+1],to:n}:(this.matches[t]++,a=!0)),a||(this.matches.splice(t,2),t-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?r={from:t,to:n}:this.matches.push(1,t)),r&&this.test&&!this.test(r.from,r.to,this.buffer,this.bufferStart)&&(r=null),r}};typeof Symbol<`u`&&(V.prototype[Symbol.iterator]=function(){return this});var je={from:-1,to:-1,match:/.*/.exec(``)},Me=`gm`+(/x/.unicode==null?``:`u`),Ne=class{constructor(e,t,n,r=0,i=e.length){if(this.text=e,this.to=i,this.curLine=``,this.done=!1,this.value=je,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new Ie(e,t,n,r,i);this.re=new RegExp(t,Me+(n?.ignoreCase?`i`:``)),this.test=n?.test,this.iter=e.iter(),this.curLineStart=e.lineAt(r).from,this.matchPos=Re(e,r),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine=``:(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine=``:this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=Re(this.text,r+ +(n==r)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<r||n>this.value.to)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}},Pe=new WeakMap,Fe=class e{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(t,n,r){let i=Pe.get(t);if(!i||i.from>=r||i.to<=n){let i=new e(n,t.sliceString(n,r));return Pe.set(t,i),i}if(i.from==n&&i.to==r)return i;let{text:a,from:o}=i;return o>n&&(a=t.sliceString(n,o)+a,o=n),i.to<r&&(a+=t.sliceString(i.to,r)),Pe.set(t,new e(o,a)),new e(n,a.slice(n-o,r-o))}},Ie=class{constructor(e,t,n,r,i){this.text=e,this.to=i,this.done=!1,this.value=je,this.matchPos=Re(e,r),this.re=new RegExp(t,Me+(n?.ignoreCase?`i`:``)),this.test=n?.test,this.flat=Fe.get(e,r,this.chunkEnd(r+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,n=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,n,t)))return this.value={from:e,to:n,match:t},this.matchPos=Re(this.text,n+ +(e==n)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Fe.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}};typeof Symbol<`u`&&(Ne.prototype[Symbol.iterator]=Ie.prototype[Symbol.iterator]=function(){return this});function Le(e){try{return new RegExp(e,Me),!0}catch{return!1}}function Re(e,t){if(t>=e.length)return t;let n=e.lineAt(t),r;for(;t<n.to&&(r=n.text.charCodeAt(t-n.from))>=56320&&r<57344;)t++;return t}var ze=e=>{let{state:t}=e,n=String(t.doc.lineAt(e.state.selection.main.head).number),{close:r,result:i}=L(e,{label:t.phrase(`Go to line`),input:{type:`text`,name:`line`,value:n},focus:!0,submitLabel:t.phrase(`go`)});return i.then(n=>{let i=n&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(n.elements.line.value);if(!i){e.dispatch({effects:r});return}let a=t.doc.lineAt(t.selection.main.head),[,o,s,c,l]=i,u=c?+c.slice(1):0,d=s?+s:a.number;if(s&&l){let e=d/100;o&&(e=e*(o==`-`?-1:1)+a.number/t.doc.lines),d=Math.round(t.doc.lines*e)}else s&&o&&(d=d*(o==`-`?-1:1)+a.number);let f=t.doc.line(Math.max(1,Math.min(t.doc.lines,d))),ee=b.cursor(f.from+Math.max(0,Math.min(u,f.length)));e.dispatch({effects:[r,j.scrollIntoView(ee.from,{y:`center`})],selection:ee})}),!0},Be={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},Ve=E.define({combine(e){return _(e,Be,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function He(e){let t=[Je,qe];return e&&t.push(Ve.of(e)),t}var Ue=C.mark({class:`cm-selectionMatch`}),We=C.mark({class:`cm-selectionMatch cm-selectionMatch-main`});function Ge(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=z.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=z.Word)}function Ke(e,t,n,r){return e(t.sliceDoc(n,n+1))==z.Word&&e(t.sliceDoc(r-1,r))==z.Word}var qe=O.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(Ve),{state:n}=e,r=n.selection;if(r.ranges.length>1)return C.none;let i=r.main,a,o=null;if(i.empty){if(!t.highlightWordAroundCursor)return C.none;let e=n.wordAt(i.head);if(!e)return C.none;o=n.charCategorizer(i.head),a=n.sliceDoc(e.from,e.to)}else{let e=i.to-i.from;if(e<t.minSelectionLength||e>200)return C.none;if(t.wholeWords){if(a=n.sliceDoc(i.from,i.to),o=n.charCategorizer(i.head),!(Ge(o,n,i.from,i.to)&&Ke(o,n,i.from,i.to)))return C.none}else if(a=n.sliceDoc(i.from,i.to),!a)return C.none}let s=[];for(let r of e.visibleRanges){let e=new V(n.doc,a,r.from,r.to);for(;!e.next().done;){let{from:r,to:a}=e.value;if((!o||Ge(o,n,r,a))&&(i.empty&&r<=i.from&&a>=i.to?s.push(We.range(r,a)):(r>=i.to||a<=i.from)&&s.push(Ue.range(r,a)),s.length>t.maxMatches))return C.none}}return C.set(s)}},{decorations:e=>e.decorations}),Je=j.baseTheme({".cm-selectionMatch":{backgroundColor:`#99ff7780`},".cm-searchMatch .cm-selectionMatch":{backgroundColor:`transparent`}}),Ye=({state:e,dispatch:t})=>{let{selection:n}=e,r=b.create(n.ranges.map(t=>e.wordAt(t.head)||b.cursor(t.head)),n.mainIndex);return r.eq(n)?!1:(t(e.update({selection:r})),!0)};function Xe(e,t){let{main:n,ranges:r}=e.selection,i=e.wordAt(n.head),a=i&&i.from==n.from&&i.to==n.to;for(let n=!1,i=new V(e.doc,t,r[r.length-1].to);;)if(i.next(),i.done){if(n)return null;i=new V(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),n=!0}else{if(n&&r.some(e=>e.from==i.value.from))continue;if(a){let t=e.wordAt(i.value.from);if(!t||t.from!=i.value.from||t.to!=i.value.to)continue}return i.value}}var Ze=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some(e=>e.from===e.to))return Ye({state:e,dispatch:t});let r=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some(t=>e.sliceDoc(t.from,t.to)!=r))return!1;let i=Xe(e,r);return i?(t(e.update({selection:e.selection.addRange(b.range(i.from,i.to),!1),effects:j.scrollIntoView(i.to)})),!0):!1},H=E.define({combine(e){return _(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new Et(e),scrollToMatch:e=>j.scrollIntoView(e)})}}),Qe=class{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||``,this.valid=!!this.search&&(!this.regexp||Le(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(e,t)=>t==`n`?`
2
2
  `:t==`r`?`\r`:t==`t`?` `:`\\`)}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new st(this):new nt(this)}getCursor(e,t=0,n){let r=e.doc?e:v.create({doc:e});return n??=r.doc.length,this.regexp?W(this,r,t,n):U(this,r,t,n)}},$e=class{constructor(e){this.spec=e}};function et(e,t,n){return(r,i,a,o)=>n&&!n(r,i,a,o)?!1:e(r>=o&&i<=o+a.length?a.slice(r-o,i-o):t.doc.sliceString(r,i),t,r,i)}function U(e,t,n,r){let i;return e.wholeWord&&(i=tt(t.doc,t.charCategorizer(t.selection.main.head))),e.test&&(i=et(e.test,t,i)),new V(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:e=>e.toLowerCase(),i)}function tt(e,t){return(n,r,i,a)=>((a>n||a+i.length<r)&&(a=Math.max(0,n-2),i=e.sliceString(a,Math.min(e.length,r+2))),(t(it(i,n-a))!=z.Word||t(at(i,n-a))!=z.Word)&&(t(at(i,r-a))!=z.Word||t(it(i,r-a))!=z.Word))}var nt=class extends $e{constructor(e){super(e)}nextMatch(e,t,n){let r=U(this.spec,e,n,e.doc.length).nextOverlapping();if(r.done){let n=Math.min(e.doc.length,t+this.spec.unquoted.length);r=U(this.spec,e,0,n).nextOverlapping()}return r.done||r.value.from==t&&r.value.to==n?null:r.value}prevMatchInRange(e,t,n){for(let r=n;;){let n=Math.max(t,r-1e4-this.spec.unquoted.length),i=U(this.spec,e,n,r),a=null;for(;!i.nextOverlapping().done;)a=i.value;if(a)return a;if(n==t)return null;r-=1e4}}prevMatch(e,t,n){let r=this.prevMatchInRange(e,0,t);return r||=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length),r&&(r.from!=t||r.to!=n)?r:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=U(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let i=U(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!i.next().done;)r(i.value.from,i.value.to)}};function rt(e,t,n){return(r,i,a)=>(!n||n(r,i,a))&&e(a[0],t,r,i)}function W(e,t,n,r){let i;return e.wholeWord&&(i=ot(t.charCategorizer(t.selection.main.head))),e.test&&(i=rt(e.test,t,i)),new Ne(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:i},n,r)}function it(e,t){return e.slice(S(e,t,!1),t)}function at(e,t){return e.slice(t,S(e,t))}function ot(e){return(t,n,r)=>!r[0].length||(e(it(r.input,r.index))!=z.Word||e(at(r.input,r.index))!=z.Word)&&(e(at(r.input,r.index+r[0].length))!=z.Word||e(it(r.input,r.index+r[0].length))!=z.Word)}var st=class extends $e{nextMatch(e,t,n){let r=W(this.spec,e,n,e.doc.length).next();return r.done&&(r=W(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,n){for(let r=1;;r++){let i=Math.max(t,n-r*1e4),a=W(this.spec,e,i,n),o=null;for(;!a.next().done;)o=a.value;if(o&&(i==t||o.from>i+10))return o;if(i==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n==`&`)return e.match[0];if(n==`$`)return`$`;for(let t=n.length;t>0;t--){let r=+n.slice(0,t);if(r>0&&r<e.match.length)return e.match[r]+n.slice(t)}return t})}matchAll(e,t){let n=W(this.spec,e,0,e.doc.length),r=[];for(;!n.next().done;){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let i=W(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!i.next().done;)r(i.value.from,i.value.to)}},G=D.define(),ct=D.define(),K=x.define({create(e){return new lt(bt(e).create(),null)},update(e,t){for(let n of t.effects)n.is(G)?e=new lt(n.value.create(),e.panel):n.is(ct)&&(e=new lt(e.query,n.value?yt:null));return e},provide:e=>M.from(e,e=>e.panel)}),lt=class{constructor(e,t){this.query=e,this.panel=t}},ut=C.mark({class:`cm-searchMatch`}),dt=C.mark({class:`cm-searchMatch cm-searchMatch-selected`}),ft=O.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(K))}update(e){let t=e.state.field(K);(t!=e.startState.field(K)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return C.none;let{view:n}=this,r=new w;for(let t=0,i=n.visibleRanges,a=i.length;t<a;t++){let{from:o,to:s}=i[t];for(;t<a-1&&s>i[t+1].from-500;)s=i[++t].to;e.highlight(n.state,o,s,(e,t)=>{let i=n.state.selection.ranges.some(n=>n.from==e&&n.to==t);r.add(e,t,i?dt:ut)})}return r.finish()}},{decorations:e=>e.decorations});function q(e){return t=>{let n=t.state.field(K,!1);return n&&n.query.spec.valid?e(t,n):Ct(t)}}var pt=q((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let i=b.single(r.from,r.to),a=e.state.facet(H);return e.dispatch({selection:i,effects:[kt(e,r),a.scrollToMatch(i.main,e)],userEvent:`select.search`}),St(e),!0}),mt=q((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,i=t.prevMatch(n,r,r);if(!i)return!1;let a=b.single(i.from,i.to),o=e.state.facet(H);return e.dispatch({selection:a,effects:[kt(e,i),o.scrollToMatch(a.main,e)],userEvent:`select.search`}),St(e),!0}),ht=q((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!n||!n.length?!1:(e.dispatch({selection:b.create(n.map(e=>b.range(e.from,e.to))),userEvent:`select.search.matches`}),!0)}),gt=({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:i}=n.main,a=[],o=0;for(let t=new V(e.doc,e.sliceDoc(r,i));!t.next().done;){if(a.length>1e3)return!1;t.value.from==r&&(o=a.length),a.push(b.range(t.value.from,t.value.to))}return t(e.update({selection:b.create(a,o),userEvent:`select.search.matches`})),!0},_t=q((e,{query:t})=>{let{state:n}=e,{from:r,to:i}=n.selection.main;if(n.readOnly)return!1;let a=t.nextMatch(n,r,r);if(!a)return!1;let o=a,s=[],c,l,u=[];o.from==r&&o.to==i&&(l=n.toText(t.getReplacement(o)),s.push({from:o.from,to:o.to,insert:l}),o=t.nextMatch(n,o.from,o.to),u.push(j.announce.of(n.phrase(`replaced match on line $`,n.doc.lineAt(r).number)+`.`)));let d=e.state.changes(s);return o&&(c=b.single(o.from,o.to).map(d),u.push(kt(e,o)),u.push(n.facet(H).scrollToMatch(c.main,e))),e.dispatch({changes:d,selection:c,effects:u,userEvent:`input.replace`}),!0}),vt=q((e,{query:t})=>{if(e.state.readOnly)return!1;let n=t.matchAll(e.state,1e9).map(e=>{let{from:n,to:r}=e;return{from:n,to:r,insert:t.getReplacement(e)}});if(!n.length)return!1;let r=e.state.phrase(`replaced $ matches`,n.length)+`.`;return e.dispatch({changes:n,effects:j.announce.of(r),userEvent:`input.replace.all`}),!0});function yt(e){return e.state.facet(H).createPanel(e)}function bt(e,t){let n=e.selection.main,r=n.empty||n.to>n.from+100?``:e.sliceDoc(n.from,n.to);if(t&&!r)return t;let i=e.facet(H);return new Qe({search:t?.literal??i.literal?r:r.replace(/\n/g,`\\n`),caseSensitive:t?.caseSensitive??i.caseSensitive,literal:t?.literal??i.literal,regexp:t?.regexp??i.regexp,wholeWord:t?.wholeWord??i.wholeWord})}function xt(e){let t=me(e,yt);return t&&t.dom.querySelector(`[main-field]`)}function St(e){let t=xt(e);t&&t==e.root.activeElement&&t.select()}var Ct=e=>{let t=e.state.field(K,!1);if(t&&t.panel){let n=xt(e);if(n&&n!=e.root.activeElement){let r=bt(e.state,t.query.spec);r.valid&&e.dispatch({effects:G.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[ct.of(!0),t?G.of(bt(e.state,t.query.spec)):D.appendConfig.of(jt)]});return!0},wt=e=>{let t=e.state.field(K,!1);if(!t||!t.panel)return!1;let n=me(e,yt);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:ct.of(!1)}),!0},Tt=[{key:`Mod-f`,run:Ct,scope:`editor search-panel`},{key:`F3`,run:pt,shift:mt,scope:`editor search-panel`,preventDefault:!0},{key:`Mod-g`,run:pt,shift:mt,scope:`editor search-panel`,preventDefault:!0},{key:`Escape`,run:wt,scope:`editor search-panel`},{key:`Mod-Shift-l`,run:gt},{key:`Mod-Alt-g`,run:ze},{key:`Mod-d`,run:Ze,preventDefault:!0}],Et=class{constructor(e){this.view=e;let t=this.query=e.state.field(K).query.spec;this.commit=this.commit.bind(this),this.searchField=B(`input`,{value:t.search,placeholder:J(e,`Find`),"aria-label":J(e,`Find`),class:`cm-textfield`,name:`search`,form:``,"main-field":`true`,onchange:this.commit,onkeyup:this.commit}),this.replaceField=B(`input`,{value:t.replace,placeholder:J(e,`Replace`),"aria-label":J(e,`Replace`),class:`cm-textfield`,name:`replace`,form:``,onchange:this.commit,onkeyup:this.commit}),this.caseField=B(`input`,{type:`checkbox`,name:`case`,form:``,checked:t.caseSensitive,onchange:this.commit}),this.reField=B(`input`,{type:`checkbox`,name:`re`,form:``,checked:t.regexp,onchange:this.commit}),this.wordField=B(`input`,{type:`checkbox`,name:`word`,form:``,checked:t.wholeWord,onchange:this.commit});function n(e,t,n){return B(`button`,{class:`cm-button`,name:e,onclick:t,type:`button`},n)}this.dom=B(`div`,{onkeydown:e=>this.keydown(e),class:`cm-search`},[this.searchField,n(`next`,()=>pt(e),[J(e,`next`)]),n(`prev`,()=>mt(e),[J(e,`previous`)]),n(`select`,()=>ht(e),[J(e,`all`)]),B(`label`,null,[this.caseField,J(e,`match case`)]),B(`label`,null,[this.reField,J(e,`regexp`)]),B(`label`,null,[this.wordField,J(e,`by word`)]),...e.state.readOnly?[]:[B(`br`),this.replaceField,n(`replace`,()=>_t(e),[J(e,`replace`)]),n(`replaceAll`,()=>vt(e),[J(e,`replace all`)])],B(`button`,{name:`close`,onclick:()=>wt(e),"aria-label":J(e,`close`),type:`button`},[`×`])])}commit(){let e=new Qe({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:G.of(e)}))}keydown(e){R(this.view,e,`search-panel`)?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?mt:pt)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),_t(this.view))}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(G)&&!e.value.eq(this.query)&&this.setQuery(e.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(H).top}};function J(e,t){return e.state.phrase(t)}var Dt=30,Ot=/[\s\.,:;?!]/;function kt(e,{from:t,to:n}){let r=e.state.doc.lineAt(t),i=e.state.doc.lineAt(n).to,a=Math.max(r.from,t-Dt),o=Math.min(i,n+Dt),s=e.state.sliceDoc(a,o);if(a!=r.from){for(let e=0;e<Dt;e++)if(!Ot.test(s[e+1])&&Ot.test(s[e])){s=s.slice(e);break}}if(o!=i){for(let e=s.length-1;e>s.length-Dt;e--)if(!Ot.test(s[e-1])&&Ot.test(s[e])){s=s.slice(0,e);break}}return j.announce.of(`${e.state.phrase(`current match`)}. ${s} ${e.state.phrase(`on line`)} ${r.number}.`)}var At=j.baseTheme({".cm-panel.cm-search":{padding:`2px 6px 4px`,position:`relative`,"& [name=close]":{position:`absolute`,top:`0`,right:`4px`,backgroundColor:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0},"& input, & button, & label":{margin:`.2em .6em .2em 0`},"& input[type=checkbox]":{marginRight:`.2em`},"& label":{fontSize:`80%`,whiteSpace:`pre`}},"&light .cm-searchMatch":{backgroundColor:`#ffff0054`},"&dark .cm-searchMatch":{backgroundColor:`#00ffff8a`},"&light .cm-searchMatch-selected":{backgroundColor:`#ff6a0054`},"&dark .cm-searchMatch-selected":{backgroundColor:`#ff00ff8a`}}),jt=[K,g.low(ft),At],Mt=class{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}},Y=class e{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(t,n,r){let i=r.facet(Q).markerFilter;i&&(t=i(t,r));let a=t.slice().sort((e,t)=>e.from-t.from||e.to-t.to),o=new w,s=[],c=0,l=r.doc.iter(),u=0,d=r.doc.length;for(let e=0;;){let t=e==a.length?null:a[e];if(!t&&!s.length)break;let n,r;if(s.length)n=c,r=s.reduce((e,t)=>Math.min(e,t.to),t&&t.from>n?t.from:1e8);else{if(n=t.from,n>d)break;r=t.to,s.push(t),e++}for(;e<a.length;){let t=a[e];if(t.from==n&&(t.to>t.from||t.to==n))s.push(t),e++,r=Math.min(t.to,r);else{r=Math.min(t.from,r);break}}r=Math.min(r,d);let i=!1;if(s.some(e=>e.from==n&&(e.to==r||r==d))&&(i=n==r,!i&&r-n<10)){let e=n-(u+l.value.length);e>0&&(l.next(e),u=n);for(let e=n;;){if(e>=r){i=!0;break}if(!l.lineBreak&&u+l.value.length>e)break;e=u+l.value.length,u+=l.value.length,l.next()}}let f=en(s);if(i)o.add(n,n,C.widget({widget:new qt(f),diagnostics:s.slice()}));else{let e=s.reduce((e,t)=>t.markClass?e+` `+t.markClass:e,``);o.add(n,r,C.mark({class:`cm-lintRange cm-lintRange-`+f+e,diagnostics:s.slice(),inclusiveEnd:s.some(e=>e.to>r)}))}if(c=r,c==d)break;for(let e=0;e<s.length;e++)s[e].to<=c&&s.splice(e--,1)}let f=o.finish();return new e(f,n,X(f))}};function X(e,t=null,n=0){let r=null;return e.between(n,1e9,(e,n,{spec:i})=>{if(!(t&&i.diagnostics.indexOf(t)<0))if(!r)r=new Mt(e,n,t||i.diagnostics[0]);else if(i.diagnostics.indexOf(r.diagnostic)<0)return!1;else r=new Mt(r.from,n,r.diagnostic)}),r}function Nt(e,t){let n=t.pos,r=t.end||n,i=e.state.facet(Q).hideOn(e,n,r);if(i!=null)return i;let a=e.startState.doc.lineAt(t.pos);return!!(e.effects.some(e=>e.is(Ft))||e.changes.touchesRange(a.from,Math.max(a.to,r)))}function Pt(e,t){return e.field(Z,!1)?t:t.concat(D.appendConfig.of(tn))}var Ft=D.define(),It=D.define(),Lt=D.define(),Z=x.define({create(){return new Y(C.none,null,null)},update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),r=null,i=e.panel;if(e.selected){let i=t.changes.mapPos(e.selected.from,1);r=X(n,e.selected.diagnostic,i)||X(n,null,i)}!n.size&&i&&t.state.facet(Q).autoPanel&&(i=null),e=new Y(n,i,r)}for(let n of t.effects)if(n.is(Ft)){let r=t.state.facet(Q).autoPanel?n.value.length?Yt.open:null:e.panel;e=Y.init(n.value,r,t.state)}else n.is(It)?e=new Y(e.diagnostics,n.value?Yt.open:null,e.selected):n.is(Lt)&&(e=new Y(e.diagnostics,e.panel,n.value));return e},provide:e=>[M.from(e,e=>e.panel),j.decorations.from(e,e=>e.diagnostics)]}),Rt=C.mark({class:`cm-lintRange cm-lintRange-active`});function zt(e,t,n){let{diagnostics:r}=e.state.field(Z),i,a=-1,o=-1;r.between(t-+(n<0),t+ +(n>0),(e,r,{spec:s})=>{if(t>=e&&t<=r&&(e==r||(t>e||n>0)&&(t<r||n<0)))return i=s.diagnostics,a=e,o=r,!1});let s=e.state.facet(Q).tooltipFilter;return i&&s&&(i=s(i,e.state)),i?{pos:a,end:o,above:e.state.doc.lineAt(a).to<o,create(){return{dom:Bt(e,i)}}}:null}function Bt(e,t){return B(`ul`,{class:`cm-tooltip-lint`},t.map(t=>Kt(e,t,!1)))}var Vt=e=>{let t=e.state.field(Z,!1);(!t||!t.panel)&&e.dispatch({effects:Pt(e.state,[It.of(!0)])});let n=me(e,Yt.open);return n&&n.dom.querySelector(`.cm-panel-lint ul`).focus(),!0},Ht=e=>{let t=e.state.field(Z,!1);return!t||!t.panel?!1:(e.dispatch({effects:It.of(!1)}),!0)},Ut=[{key:`Mod-Shift-m`,run:Vt,preventDefault:!0},{key:`F8`,run:e=>{let t=e.state.field(Z,!1);if(!t)return!1;let n=e.state.selection.main,r=X(t.diagnostics,null,n.to+1);return!r&&(r=X(t.diagnostics,null,0),!r||r.from==n.from&&r.to==n.to)?!1:(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)}}],Q=E.define({combine(e){return{sources:e.map(e=>e.source).filter(e=>e!=null),..._(e.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Wt,tooltipFilter:Wt,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,r,i)=>e(n,r,i)||t(n,r,i):e:t,autoPanel:(e,t)=>e||t})}}});function Wt(e,t){return e?t?(n,r)=>t(e(n,r),r):e:t}function Gt(e){let t=[];if(e)actions:for(let{name:n}of e){for(let e=0;e<n.length;e++){let r=n[e];if(/[a-zA-Z]/.test(r)&&!t.some(e=>e.toLowerCase()==r.toLowerCase())){t.push(r);continue actions}}t.push(``)}return t}function Kt(e,t,n){let r=n?Gt(t.actions):[];return B(`li`,{class:`cm-diagnostic cm-diagnostic-`+t.severity},B(`span`,{class:`cm-diagnosticText`},t.renderMessage?t.renderMessage(e):t.message),t.actions?.map((n,i)=>{let a=!1,o=r=>{if(r.preventDefault(),a)return;a=!0;let i=X(e.state.field(Z).diagnostics,t);i&&n.apply(e,i.from,i.to)},{name:s}=n,c=r[i]?s.indexOf(r[i]):-1,l=c<0?s:[s.slice(0,c),B(`u`,s.slice(c,c+1)),s.slice(c+1)];return B(`button`,{type:`button`,class:`cm-diagnosticAction`+(n.markClass?` `+n.markClass:``),onclick:o,onmousedown:o,"aria-label":` Action: ${s}${c<0?``:` (access key "${r[i]})"`}.`},l)}),t.source&&B(`div`,{class:`cm-diagnosticSource`},t.source))}var qt=class extends h{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return B(`span`,{class:`cm-lintPoint cm-lintPoint-`+this.sev})}},Jt=class{constructor(e,t){this.diagnostic=t,this.id=`item_`+Math.floor(Math.random()*4294967295).toString(16),this.dom=Kt(e,t,!0),this.dom.id=this.id,this.dom.setAttribute(`role`,`option`)}},Yt=class e{constructor(e){this.view=e,this.items=[],this.list=B(`ul`,{tabIndex:0,role:`listbox`,"aria-label":this.view.state.phrase(`Diagnostics`),onkeydown:t=>{if(!(t.ctrlKey||t.altKey||t.metaKey)){if(t.keyCode==27)Ht(this.view),this.view.focus();else if(t.keyCode==38||t.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(t.keyCode==40||t.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(t.keyCode==36)this.moveSelection(0);else if(t.keyCode==35)this.moveSelection(this.items.length-1);else if(t.keyCode==13)this.view.focus();else if(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:n}=this.items[this.selectedIndex],r=Gt(n.actions);for(let i=0;i<r.length;i++)if(r[i].toUpperCase().charCodeAt(0)==t.keyCode){let t=X(this.view.state.field(Z).diagnostics,n);t&&n.actions[i].apply(e,t.from,t.to)}}else return;t.preventDefault()}},onclick:e=>{for(let t=0;t<this.items.length;t++)this.items[t].dom.contains(e.target)&&this.moveSelection(t)}}),this.dom=B(`div`,{class:`cm-panel-lint`},this.list,B(`button`,{type:`button`,name:`close`,"aria-label":this.view.state.phrase(`close`),onclick:()=>Ht(this.view)},`×`)),this.update()}get selectedIndex(){let e=this.view.state.field(Z).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(Z),n=0,r=!1,i=null,a=new Set;for(e.between(0,this.view.state.doc.length,(e,o,{spec:s})=>{for(let e of s.diagnostics){if(a.has(e))continue;a.add(e);let o=-1,s;for(let t=n;t<this.items.length;t++)if(this.items[t].diagnostic==e){o=t;break}o<0?(s=new Jt(this.view,e),this.items.splice(n,0,s),r=!0):(s=this.items[o],o>n&&(this.items.splice(n,o-n),r=!0)),t&&s.diagnostic==t.diagnostic?s.dom.hasAttribute(`aria-selected`)||(s.dom.setAttribute(`aria-selected`,`true`),i=s):s.dom.hasAttribute(`aria-selected`)&&s.dom.removeAttribute(`aria-selected`),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)r=!0,this.items.pop();this.items.length==0&&(this.items.push(new Jt(this.view,{from:-1,to:-1,severity:`info`,message:this.view.state.phrase(`No diagnostics`)})),r=!0),i?(this.list.setAttribute(`aria-activedescendant`,i.id),this.view.requestMeasure({key:this,read:()=>({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let n=t.height/this.list.offsetHeight;e.top<t.top?this.list.scrollTop-=(t.top-e.top)/n:e.bottom>t.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/n)}})):this.selectedIndex<0&&this.list.removeAttribute(`aria-activedescendant`),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=X(this.view.state.field(Z).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:Lt.of(t)})}static open(t){return new e(t)}};function Xt(e,t=`viewBox="0 0 40 40"`){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${t}>${encodeURIComponent(e)}</svg>')`}function Zt(e){return Xt(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${e}" fill="none" stroke-width=".7"/>`,`width="6" height="3"`)}var Qt=j.baseTheme({".cm-diagnostic":{padding:`3px 6px 3px 8px`,marginLeft:`-1px`,display:`block`,whiteSpace:`pre-wrap`},".cm-diagnostic-error":{borderLeft:`5px solid #d11`},".cm-diagnostic-warning":{borderLeft:`5px solid orange`},".cm-diagnostic-info":{borderLeft:`5px solid #999`},".cm-diagnostic-hint":{borderLeft:`5px solid #66d`},".cm-diagnosticAction":{font:`inherit`,border:`none`,padding:`2px 4px`,backgroundColor:`#444`,color:`white`,borderRadius:`3px`,marginLeft:`8px`,cursor:`pointer`},".cm-diagnosticSource":{fontSize:`70%`,opacity:.7},".cm-lintRange":{backgroundPosition:`left bottom`,backgroundRepeat:`repeat-x`,paddingBottom:`0.7px`},".cm-lintRange-error":{backgroundImage:Zt(`#d11`)},".cm-lintRange-warning":{backgroundImage:Zt(`orange`)},".cm-lintRange-info":{backgroundImage:Zt(`#999`)},".cm-lintRange-hint":{backgroundImage:Zt(`#66d`)},".cm-lintRange-active":{backgroundColor:`#ffdd9980`},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:`relative`,"&:after":{content:`""`,position:`absolute`,bottom:0,left:`-2px`,borderLeft:`3px solid transparent`,borderRight:`3px solid transparent`,borderBottom:`4px solid #d11`}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:`orange`}},".cm-lintPoint-info":{"&:after":{borderBottomColor:`#999`}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:`#66d`}},".cm-panel.cm-panel-lint":{position:`relative`,"& ul":{maxHeight:`100px`,overflowY:`auto`,"& [aria-selected]":{backgroundColor:`#ddd`,"& u":{textDecoration:`underline`}},"&:focus [aria-selected]":{background_fallback:`#bdf`,backgroundColor:`Highlight`,color_fallback:`white`,color:`HighlightText`},"& u":{textDecoration:`none`},padding:0,margin:0},"& [name=close]":{position:`absolute`,top:`0`,right:`2px`,background:`inherit`,border:`none`,font:`inherit`,padding:0,margin:0}},"&dark .cm-lintRange-active":{backgroundColor:`#86714a80`},"&dark .cm-panel.cm-panel-lint ul":{"& [aria-selected]":{backgroundColor:`#2e343e`}}});function $t(e){return e==`error`?4:e==`warning`?3:e==`info`?2:1}function en(e){let t=`hint`,n=1;for(let r of e){let e=$t(r.severity);e>n&&(n=e,t=r.severity)}return t}var tn=[Z,j.decorations.compute([Z],e=>{let{selected:t,panel:n}=e.field(Z);return!t||!n||t.from==t.to?C.none:C.set([Rt.range(t.from,t.to)])}),ue(zt,{hideOn:Nt}),Qt],nn=[P(),he(),N(),i(),ce(),ge(),fe(),v.allowMultipleSelections.of(!0),y(),T(I,{fallback:!0}),le(),Ce(),xe(),de(),F(),pe(),He(),_e.of([...be,...a,...Tt,...o,...ve,...Se,...Ut])];N(),i(),ge(),T(I,{fallback:!0}),_e.of([...a,...o]);function rn(e,t){let n=(0,Te.c)(4),r=t===void 0?!1:t,[i,a]=(0,we.useState)(void 0),o=(0,we.useRef)(null),s,c;return n[0]!==r||n[1]!==e?(s=()=>{if(r||e.length===0){a(void 0);return}let t=function(){let t=window.innerHeight/2,n,r;for(let i of e){let e=document.getElementById(i);if(!e)continue;let a=e.getBoundingClientRect().top;a<0?n=i:r===void 0&&a<t&&(r=i)}a(r??n??e[0])},n=function(){o.current===null&&(o.current=requestAnimationFrame(()=>{o.current=null,t()}))};return document.addEventListener(`scroll`,n,{capture:!0,passive:!0}),t(),()=>{document.removeEventListener(`scroll`,n,{capture:!0}),o.current!==null&&(cancelAnimationFrame(o.current),o.current=null)}},c=[e,r],n[0]=r,n[1]=e,n[2]=s,n[3]=c):(s=n[2],c=n[3]),(0,we.useEffect)(s,c),i}var $=n(),an=300;async function on(e){let t=await fetch(`/api/page-headings?docName=${encodeURIComponent(e)}`),n;try{n=await t.json()}catch(e){throw new s(`Page headings response was not JSON`,{cause:e,status:t.status})}if(!t.ok){let e=m.safeParse(n);throw e.success?Error(e.data.title):new s(`Page headings error response did not match RFC 9457`,{status:t.status})}let r=p.safeParse(n);if(!r.success)throw new s(`Page headings response did not match success schema`,{status:t.status});return r.data.headings??[]}var sn=32,cn=12,ln=6,un=`open-knowledge:outline-nav`;function dn(e){let t=(0,Te.c)(2),n;return t[0]===e?n=t[1]:(n=(0,$.jsx)(c,{name:`outline-panel`,children:(0,$.jsx)(fn,{...e})}),t[0]=e,t[1]=n),n}function fn(e){let t=(0,Te.c)(49),{docName:n,isSourceMode:r,className:i}=e,a=i===void 0?``:i,{pages:o,loading:s}=oe(),c=ae(),{activeProvider:p,activeDocName:m}=l(),h,g;t[0]===n?(h=t[1],g=t[2]):(h=[`page-headings`,n],g=()=>on(n),t[0]=n,t[1]=h,t[2]=g);let _;t[3]!==n||t[4]!==s||t[5]!==o?(_=!s&&o.has(n),t[3]=n,t[4]=s,t[5]=o,t[6]=_):_=t[6];let v;t[7]!==h||t[8]!==g||t[9]!==_?(v={queryKey:h,queryFn:g,enabled:_,staleTime:1/0},t[7]=h,t[8]=g,t[9]=_,t[10]=v):v=t[10];let{data:y,isLoading:b,error:x}=d(v),S;t[11]===y?S=t[12]:(S=y===void 0?[]:y,t[11]=y,t[12]=S);let C=S,w,T;t[13]!==m||t[14]!==p||t[15]!==n||t[16]!==c?(w=()=>{if(!p||m!==n)return;let e=p.document,t=null,r=()=>{t!==null&&clearTimeout(t),t=setTimeout(()=>{t=null,c.invalidateQueries({queryKey:[`page-headings`,n]})},an)};return e.on(`update`,r),()=>{e.off(`update`,r),t!==null&&clearTimeout(t)}},T=[p,m,n,c],t[13]=m,t[14]=p,t[15]=n,t[16]=c,t[17]=w,t[18]=T):(w=t[17],T=t[18]),(0,we.useEffect)(w,T);let E;t[19]===C?E=t[20]:(E=C.map(pn),t[19]=C,t[20]=E);let D=rn(E,r),O;t[21]!==D||t[22]!==C?(O=D?C.findIndex(e=>e.slug===D):-1,t[21]=D,t[22]=C,t[23]=O):O=t[23];let k=O,A;t[24]!==n||t[25]!==r?(A=function(e,t){let i={index:e,slug:t,mode:r?`source`:`wysiwyg`};i.mode===`source`&&De(n,{kind:`outline`,detail:i}),window.dispatchEvent(new CustomEvent(un,{detail:i}))},t[24]=n,t[25]=r,t[26]=A):A=t[26];let j=A,ce=((k>=0?C[k].level:1)-1)*cn+(cn-ln)/2,M=k*sn+(sn-ln)/2,N;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(re,{children:`Outline`}),t[27]=N):N=t[27];let P;t[28]!==C.length||t[29]!==b?(P=!b&&(0,$.jsx)(ne,{children:C.length}),t[28]=C.length,t[29]=b,t[30]=P):P=t[30];let F;t[31]===P?F=t[32]:(F=(0,$.jsxs)(te,{children:[N,P]}),t[31]=P,t[32]=F);let I;t[33]!==k||t[34]!==D||t[35]!==x||t[36]!==j||t[37]!==C||t[38]!==b||t[39]!==ce||t[40]!==M?(I=x?(0,$.jsx)(u,{className:`px-2`,children:x instanceof Error?x.message:`Failed to load headings`}):C.length===0&&!b?(0,$.jsx)(f,{className:`px-2`,children:`No headings yet.`}):(0,$.jsxs)(`nav`,{"aria-label":`Document outline`,className:`relative`,children:[k>=0&&(0,$.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute left-0 top-0 rounded-full bg-primary motion-safe:[transition:transform_0.25s_var(--ease-out-strong)]`,style:{width:ln,height:ln,transform:`translate(${ce}px, ${M}px)`}}),C.map((e,t)=>{let n=e.slug===D;return(0,$.jsx)(`button`,{type:`button`,"aria-current":n?`location`:void 0,onClick:()=>j(t,e.slug),className:se(`w-full cursor-pointer truncate py-1.5 pe-2 text-left text-sm transition-colors`,n?`font-medium text-primary`:`text-muted-foreground hover:text-foreground`),style:{paddingLeft:`${(e.level-1)*cn+20}px`},title:e.text,children:e.text},t)})]}),t[33]=k,t[34]=D,t[35]=x,t[36]=j,t[37]=C,t[38]=b,t[39]=ce,t[40]=M,t[41]=I):I=t[41];let L;t[42]!==b||t[43]!==I?(L=(0,$.jsx)(ee,{className:`px-3 py-2`,"aria-busy":b,children:I}),t[42]=b,t[43]=I,t[44]=L):L=t[44];let R;return t[45]!==a||t[46]!==F||t[47]!==L?(R=(0,$.jsxs)(ie,{className:a,children:[F,L]}),t[45]=a,t[46]=F,t[47]=L,t[48]=R):R=t[48],R}function pn(e){return e.slug}export{Oe as a,ke as i,dn as n,De as o,nn as r,un as t};
@@ -48,7 +48,7 @@
48
48
  -->
49
49
  <script>(() => { let t = 'system'; try { const r = localStorage.getItem('ok-theme-v1'); if (r === 'light' || r === 'dark' || r === 'system') t = r; } catch {} let dark = t === 'dark'; if (t === 'system') { try { dark = window.matchMedia('(prefers-color-scheme: dark)').matches; } catch {} } if (dark) document.documentElement.classList.add('dark'); if (window.okDesktop) document.documentElement.classList.add('electron-mode'); })();</script>
50
50
  <style>html { background-color: #fafafa } html.dark { background-color: #171717 }</style>
51
- <script type="module" crossorigin src="./assets/index-D6UM1028.js"></script>
51
+ <script type="module" crossorigin src="./assets/index-BZCMU4ot.js"></script>
52
52
  <link rel="modulepreload" crossorigin href="./assets/chunk-CFjPhJqf.js">
53
53
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-2ej06EnG.js">
54
54
  <link rel="modulepreload" crossorigin href="./assets/w3c-keyname-B5t0fahT.js">
@@ -65,20 +65,20 @@
65
65
  <link rel="modulepreload" crossorigin href="./assets/propagation-api-3kmMXRwS.js">
66
66
  <link rel="modulepreload" crossorigin href="./assets/collapsible-L2bca9Ur.js">
67
67
  <link rel="modulepreload" crossorigin href="./assets/dialog-DSzqKgdW.js">
68
- <link rel="modulepreload" crossorigin href="./assets/DocumentContext-LS9HBbXh.js">
68
+ <link rel="modulepreload" crossorigin href="./assets/DocumentContext-fSMev29P.js">
69
69
  <link rel="modulepreload" crossorigin href="./assets/panel-Co559KoC.js">
70
- <link rel="modulepreload" crossorigin href="./assets/typing-burst-detector-mzjjQOqs.js">
70
+ <link rel="modulepreload" crossorigin href="./assets/typing-burst-detector-Cm3a_0Rp.js">
71
71
  <link rel="modulepreload" crossorigin href="./assets/checkbox-kroC1jEP.js">
72
72
  <link rel="modulepreload" crossorigin href="./assets/label-CdSs0Skc.js">
73
73
  <link rel="modulepreload" crossorigin href="./assets/toggle-group-DQWMrY_b.js">
74
74
  <link rel="modulepreload" crossorigin href="./assets/textarea-5ach84qM.js">
75
- <link rel="modulepreload" crossorigin href="./assets/config-validation-events-Dxvq0Gmu.js">
75
+ <link rel="modulepreload" crossorigin href="./assets/config-validation-events-BtPgkHlf.js">
76
76
  <link rel="modulepreload" crossorigin href="./assets/agent-presence-8VSgL2U2.js">
77
77
  <link rel="modulepreload" crossorigin href="./assets/target-navigation-intent-DxRtD10o.js">
78
78
  <link rel="modulepreload" crossorigin href="./assets/project-paths-DKT5BePl.js">
79
79
  <link rel="modulepreload" crossorigin href="./assets/mcp-consent-store-BPw6Zd40.js">
80
80
  <link rel="stylesheet" crossorigin href="./assets/DocumentContext-B0sQn39F.css">
81
- <link rel="stylesheet" crossorigin href="./assets/index-BgKCFonW.css">
81
+ <link rel="stylesheet" crossorigin href="./assets/index-D9afOIIc.css">
82
82
  </head>
83
83
 
84
84
  <body class="antialiased">
@@ -1,2 +1,2 @@
1
- import{n as e,u as t}from"./init-CmQ_C7Dm.mjs";import{t as n}from"./is-object-C-4FJ0rP.mjs";import{join as r}from"node:path";import{existsSync as i,readFileSync as a}from"node:fs";const o=[[`@inkeep/open-knowledge`,`ui`],[`-y`,`@inkeep/open-knowledge`,`ui`]];function s(t){if(t.runtimeExecutable!==`npx`||!Array.isArray(t.runtimeArgs))return`preserved`;if(c(t.runtimeArgs,e))return`canonical`;for(let e of o)if(c(t.runtimeArgs,e))return`legacy-bare`;return`preserved`}function c(e,t){if(e.length!==t.length)return!1;for(let n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}function l(e){let o=e.logger??u,c=r(e.projectDir,`.claude`,`launch.json`);if(!i(c))return{outcome:{configPath:c,outcome:`no-file`},repairedCount:0};let l;try{let e=a(c,`utf-8`).trim();l=e?JSON.parse(e):{}}catch(e){let t=e instanceof Error?e.message:String(e);return o({event:`launch-json-repair-read-failed`,configPath:c,error:t}),{outcome:{configPath:c,outcome:`read-failed`,error:t},repairedCount:0}}if(!n(l)){let e=`launch.json root is not an object`;return o({event:`launch-json-repair-read-failed`,configPath:c,error:e}),{outcome:{configPath:c,outcome:`read-failed`,error:e},repairedCount:0}}let d=l.configurations;if(!Array.isArray(d))return{outcome:{configPath:c,outcome:`no-entry`},repairedCount:0};let f=d.find(e=>n(e)&&e.name===`open-knowledge-ui`);if(!f)return{outcome:{configPath:c,outcome:`no-entry`},repairedCount:0};let p=s(f);if(p===`canonical`)return{outcome:{configPath:c,outcome:`canonical`},repairedCount:0};if(p===`preserved`)return{outcome:{configPath:c,outcome:`preserved`},repairedCount:0};let m=t(e.projectDir,{mode:`published`});if(m.action===`failed`){let e=m.error??`unknown write failure`;return o({event:`launch-json-repair-write-failed`,configPath:c,error:e}),{outcome:{configPath:c,outcome:`write-failed`,error:e},repairedCount:0}}return o({event:`launch-json-repair-applied`,configPath:c}),{outcome:{configPath:c,outcome:`repaired`},repairedCount:1}}function u(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{l as repairLaunchJson};
2
- //# sourceMappingURL=repair-launch-json-tbV_XaNr.mjs.map
1
+ import{n as e,u as t}from"./init-C9ho5PLw.mjs";import{t as n}from"./is-object-C-4FJ0rP.mjs";import{join as r}from"node:path";import{existsSync as i,readFileSync as a}from"node:fs";const o=[[`@inkeep/open-knowledge`,`ui`],[`-y`,`@inkeep/open-knowledge`,`ui`]];function s(t){if(t.runtimeExecutable!==`npx`||!Array.isArray(t.runtimeArgs))return`preserved`;if(c(t.runtimeArgs,e))return`canonical`;for(let e of o)if(c(t.runtimeArgs,e))return`legacy-bare`;return`preserved`}function c(e,t){if(e.length!==t.length)return!1;for(let n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}function l(e){let o=e.logger??u,c=r(e.projectDir,`.claude`,`launch.json`);if(!i(c))return{outcome:{configPath:c,outcome:`no-file`},repairedCount:0};let l;try{let e=a(c,`utf-8`).trim();l=e?JSON.parse(e):{}}catch(e){let t=e instanceof Error?e.message:String(e);return o({event:`launch-json-repair-read-failed`,configPath:c,error:t}),{outcome:{configPath:c,outcome:`read-failed`,error:t},repairedCount:0}}if(!n(l)){let e=`launch.json root is not an object`;return o({event:`launch-json-repair-read-failed`,configPath:c,error:e}),{outcome:{configPath:c,outcome:`read-failed`,error:e},repairedCount:0}}let d=l.configurations;if(!Array.isArray(d))return{outcome:{configPath:c,outcome:`no-entry`},repairedCount:0};let f=d.find(e=>n(e)&&e.name===`open-knowledge-ui`);if(!f)return{outcome:{configPath:c,outcome:`no-entry`},repairedCount:0};let p=s(f);if(p===`canonical`)return{outcome:{configPath:c,outcome:`canonical`},repairedCount:0};if(p===`preserved`)return{outcome:{configPath:c,outcome:`preserved`},repairedCount:0};let m=t(e.projectDir,{mode:`published`});if(m.action===`failed`){let e=m.error??`unknown write failure`;return o({event:`launch-json-repair-write-failed`,configPath:c,error:e}),{outcome:{configPath:c,outcome:`write-failed`,error:e},repairedCount:0}}return o({event:`launch-json-repair-applied`,configPath:c}),{outcome:{configPath:c,outcome:`repaired`},repairedCount:1}}function u(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{l as repairLaunchJson};
2
+ //# sourceMappingURL=repair-launch-json-yfbhku73.mjs.map
@@ -1,2 +1,2 @@
1
- import{_ as e,d as t,g as n,m as r,s as i}from"./init-CmQ_C7Dm.mjs";import{homedir as a}from"node:os";const o=[[`@inkeep/open-knowledge`,`mcp`],[`-y`,`@inkeep/open-knowledge`,`mcp`]];function s(t){if(t.command!==`npx`||!Array.isArray(t.args))return`preserved`;if(c(t.args,e))return`canonical`;for(let e of o)if(c(t.args,e))return`legacy-bare`;return`preserved`}function c(e,t){if(e.length!==t.length)return!1;for(let n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}function l(e){let t=e.logger??f,i=e.home??a(),o=[];for(let a of r){let r=n[a],s=u(()=>r.configPath(``,i));if(s!==null&&o.push(d({scope:`user`,editorId:a,target:r,home:i,cwd:``,configPath:s,configPathOverride:void 0,logger:t})),r.projectConfigPath){let n=r.projectConfigPath,i=u(()=>n(e.projectDir));i!==null&&o.push(d({scope:`project`,editorId:a,target:r,home:void 0,cwd:e.projectDir,configPath:i,configPathOverride:i,logger:t}))}}return{outcomes:o,repairedCount:o.filter(e=>e.outcome===`repaired`).length}}function u(e){try{return e()}catch{return null}}function d(e){let n={scope:e.scope,editorId:e.editorId,configPath:e.configPath},r=i(e.target,e.cwd,e.home,e.configPathOverride);if(r===null)return{...n,outcome:`no-entry`};let a=s(r);if(a===`canonical`)return{...n,outcome:`canonical`};if(a===`preserved`)return{...n,outcome:`preserved`};let o=t(e.target,e.cwd,{mode:`published`,skipAvailabilityCheck:!0},e.home,e.configPathOverride);if(o.action===`failed`){let t=o.error??`unknown write failure`;return e.logger({event:`mcp-config-repair-write-failed`,scope:e.scope,editorId:e.editorId,configPath:e.configPath,error:t}),{...n,outcome:`write-failed`,error:t}}return e.logger({event:`mcp-config-repair-applied`,scope:e.scope,editorId:e.editorId,configPath:e.configPath}),{...n,outcome:`repaired`}}function f(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{l as repairMcpConfigs};
2
- //# sourceMappingURL=repair-mcp-configs-B9q5NKQh.mjs.map
1
+ import{_ as e,d as t,g as n,m as r,s as i}from"./init-C9ho5PLw.mjs";import{homedir as a}from"node:os";const o=[[`@inkeep/open-knowledge`,`mcp`],[`-y`,`@inkeep/open-knowledge`,`mcp`]];function s(t){if(t.command!==`npx`||!Array.isArray(t.args))return`preserved`;if(c(t.args,e))return`canonical`;for(let e of o)if(c(t.args,e))return`legacy-bare`;return`preserved`}function c(e,t){if(e.length!==t.length)return!1;for(let n=0;n<t.length;n++)if(e[n]!==t[n])return!1;return!0}function l(e){let t=e.logger??f,i=e.home??a(),o=[];for(let a of r){let r=n[a],s=u(()=>r.configPath(``,i));if(s!==null&&o.push(d({scope:`user`,editorId:a,target:r,home:i,cwd:``,configPath:s,configPathOverride:void 0,logger:t})),r.projectConfigPath){let n=r.projectConfigPath,i=u(()=>n(e.projectDir));i!==null&&o.push(d({scope:`project`,editorId:a,target:r,home:void 0,cwd:e.projectDir,configPath:i,configPathOverride:i,logger:t}))}}return{outcomes:o,repairedCount:o.filter(e=>e.outcome===`repaired`).length}}function u(e){try{return e()}catch{return null}}function d(e){let n={scope:e.scope,editorId:e.editorId,configPath:e.configPath},r=i(e.target,e.cwd,e.home,e.configPathOverride);if(r===null)return{...n,outcome:`no-entry`};let a=s(r);if(a===`canonical`)return{...n,outcome:`canonical`};if(a===`preserved`)return{...n,outcome:`preserved`};let o=t(e.target,e.cwd,{mode:`published`,skipAvailabilityCheck:!0},e.home,e.configPathOverride);if(o.action===`failed`){let t=o.error??`unknown write failure`;return e.logger({event:`mcp-config-repair-write-failed`,scope:e.scope,editorId:e.editorId,configPath:e.configPath,error:t}),{...n,outcome:`write-failed`,error:t}}return e.logger({event:`mcp-config-repair-applied`,scope:e.scope,editorId:e.editorId,configPath:e.configPath}),{...n,outcome:`repaired`}}function f(e){process.stderr.write(`${JSON.stringify(e)}\n`)}export{l as repairMcpConfigs};
2
+ //# sourceMappingURL=repair-mcp-configs-3DOkuM0T.mjs.map
@@ -1,2 +1,2 @@
1
- import{d as e,g as t,u as n}from"./init-CmQ_C7Dm.mjs";import"./loader-CHhQuNxK.mjs";import"./preview-CIgVuEry.mjs";import{dirname as r,isAbsolute as i,join as a,relative as o,resolve as s}from"node:path";import{statSync as c}from"node:fs";import{readFile as l,realpath as u}from"node:fs/promises";function d(e){return e.replace(/:\d+$/,``)}function f(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:d(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[\w.-]+@)?([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:d(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:d(e[1]),owner:e[2],name:e[3]}}{let e=/^(?:[\w.-]+@)?([\w.-]+):([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e?.[1].includes(`.`)||e&&t.startsWith(`git@`))return{protocol:`ssh`,hostname:e[1],owner:e[2],name:e[3]}}{let e=/^git:([\w.-]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:e[1],owner:e[2],name:e[3]}}if(!t.includes(`://`)&&!t.includes(`@`)&&!t.startsWith(`/`)){let e=/^([\w.-]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e)return{protocol:`https`,hostname:`github.com`,owner:e[1],name:e[2]}}return null}function p(e){let t;try{t=new URL(e)}catch{return null}if(t.hostname!==`github.com`&&t.hostname!==`www.github.com`)return null;let n=t.pathname.split(`/`).filter(e=>e.length>0);if(n.length<5||n[2]!==`blob`)return null;let r,i,a,o;try{r=decodeURIComponent(n[0]),i=decodeURIComponent(n[1]),a=decodeURIComponent(n[3]),o=n.slice(4).map(e=>decodeURIComponent(e))}catch{return null}return!r||!i||!a||o.length===0||o.some(e=>e.length===0)?null:{owner:r,repo:i,branch:a,path:o.join(`/`)}}async function m(e,t){let n,o;try{n=await u(s(e)),o=await u(s(r(e)))}catch{return{kind:`not-git`}}if(!h(n,o))return{kind:`symlink-escape`};let d=a(n,`.git`),p;try{p=c(d)}catch{return{kind:`not-git`}}let m;if(p.isDirectory()){let e;try{e=await u(d)}catch{return{kind:`not-git`}}if(!h(e,n))return{kind:`symlink-escape`};m=e}else if(p.isFile()){let e;try{e=await l(d,`utf-8`)}catch{return{kind:`not-git`}}let t=/^gitdir:\s*(.+)$/m.exec(e.trim());if(!t)return{kind:`not-git`};let r=t[1].trim(),a=i(r)?r:s(n,r);try{m=await u(a)}catch{return{kind:`not-git`}}}else return{kind:`not-git`};let g=a(m,`config`),v;try{v=await l(g,`utf-8`)}catch{return{kind:`not-git`}}let y=_(v);if(y===null)return{kind:`no-origin`};let b=f(y);if(b===null||b.hostname!==`github.com`)return{kind:`non-github`};let x=b.owner.toLowerCase()===t.owner.toLowerCase(),S=b.name.toLowerCase()===t.repo.toLowerCase();return!x||!S?{kind:`wrong-repo`,actualOwner:b.owner,actualRepo:b.name}:{kind:`ok`,gitRemoteUrl:`https://github.com/${b.owner}/${b.name}.git`}}function h(e,t){if(e===t)return!0;let n=o(t,e);return n.length>0&&!n.startsWith(`..`)&&!i(n)}function g(e){let t=e.indexOf(`#`),n=e.indexOf(`;`),r=-1;return t>=0&&n>=0?r=Math.min(t,n):t>=0?r=t:n>=0&&(r=n),(r===-1?e:e.slice(0,r)).trim()}function _(e){let t=!1;for(let n of e.split(/\r?\n/)){let e=g(n);if(e.length===0)continue;if(e.startsWith(`[`)){t=/^\[\s*remote\s+["']origin["']\s*\]$/.test(e);continue}if(!t)continue;let r=/^url\s*=\s*(.+)$/.exec(e);if(r)return v(r[1])}return null}function v(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}function y(r,i,a={}){let o=[];for(let n of i){let i=t[n],s=i.projectConfigPath?.(r);if(!s){o.push({editorId:n,outcome:`skipped-no-project-surface`});continue}let c;try{c=e(i,r,a,void 0,s)}catch(e){o.push({editorId:n,outcome:`failed`,error:e instanceof Error?e.message:String(e)});continue}if(c.action===`written`||c.action===`overwritten`){o.push({editorId:n,outcome:c.action});continue}if(c.action===`failed`){o.push({editorId:n,outcome:`failed`,error:c.error});continue}o.push({editorId:n,outcome:`failed`,error:`unexpected project-scope action: ${c.action}`})}return{editorOutcomes:o,claudeLaunchJson:i.includes(`claude`)?n(r,a):void 0}}export{f as i,m as n,p as r,y as t};
2
- //# sourceMappingURL=src-CzxqX1w-.mjs.map
1
+ import{d as e,g as t,u as n}from"./init-C9ho5PLw.mjs";import"./loader-F8wUMFGk.mjs";import"./preview-DM4jIpLN.mjs";import{dirname as r,isAbsolute as i,join as a,relative as o,resolve as s}from"node:path";import{statSync as c}from"node:fs";import{readFile as l,realpath as u}from"node:fs/promises";function d(e){return e.replace(/:\d+$/,``)}function f(e){let t=e.trim();if(!t)return null;{let e=/^https?:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`https`,hostname:d(e[1]),owner:e[2],name:e[3]}}{let e=/^ssh:\/\/(?:[\w.-]+@)?([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`ssh`,hostname:d(e[1]),owner:e[2],name:e[3]}}{let e=/^git:\/\/([^/?#]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:d(e[1]),owner:e[2],name:e[3]}}{let e=/^(?:[\w.-]+@)?([\w.-]+):([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e?.[1].includes(`.`)||e&&t.startsWith(`git@`))return{protocol:`ssh`,hostname:e[1],owner:e[2],name:e[3]}}{let e=/^git:([\w.-]+)\/([\w.\-~%]+)\/([\w.\-~%]+?)(?:\.git)?\/?$/.exec(t);if(e)return{protocol:`git`,hostname:e[1],owner:e[2],name:e[3]}}if(!t.includes(`://`)&&!t.includes(`@`)&&!t.startsWith(`/`)){let e=/^([\w.-]+)\/([\w.\-~%]+?)(?:\.git)?$/.exec(t);if(e)return{protocol:`https`,hostname:`github.com`,owner:e[1],name:e[2]}}return null}function p(e){let t;try{t=new URL(e)}catch{return null}if(t.hostname!==`github.com`&&t.hostname!==`www.github.com`)return null;let n=t.pathname.split(`/`).filter(e=>e.length>0);if(n.length<5||n[2]!==`blob`)return null;let r,i,a,o;try{r=decodeURIComponent(n[0]),i=decodeURIComponent(n[1]),a=decodeURIComponent(n[3]),o=n.slice(4).map(e=>decodeURIComponent(e))}catch{return null}return!r||!i||!a||o.length===0||o.some(e=>e.length===0)?null:{owner:r,repo:i,branch:a,path:o.join(`/`)}}async function m(e,t){let n,o;try{n=await u(s(e)),o=await u(s(r(e)))}catch{return{kind:`not-git`}}if(!h(n,o))return{kind:`symlink-escape`};let d=a(n,`.git`),p;try{p=c(d)}catch{return{kind:`not-git`}}let m;if(p.isDirectory()){let e;try{e=await u(d)}catch{return{kind:`not-git`}}if(!h(e,n))return{kind:`symlink-escape`};m=e}else if(p.isFile()){let e;try{e=await l(d,`utf-8`)}catch{return{kind:`not-git`}}let t=/^gitdir:\s*(.+)$/m.exec(e.trim());if(!t)return{kind:`not-git`};let r=t[1].trim(),a=i(r)?r:s(n,r);try{m=await u(a)}catch{return{kind:`not-git`}}}else return{kind:`not-git`};let g=a(m,`config`),v;try{v=await l(g,`utf-8`)}catch{return{kind:`not-git`}}let y=_(v);if(y===null)return{kind:`no-origin`};let b=f(y);if(b===null||b.hostname!==`github.com`)return{kind:`non-github`};let x=b.owner.toLowerCase()===t.owner.toLowerCase(),S=b.name.toLowerCase()===t.repo.toLowerCase();return!x||!S?{kind:`wrong-repo`,actualOwner:b.owner,actualRepo:b.name}:{kind:`ok`,gitRemoteUrl:`https://github.com/${b.owner}/${b.name}.git`}}function h(e,t){if(e===t)return!0;let n=o(t,e);return n.length>0&&!n.startsWith(`..`)&&!i(n)}function g(e){let t=e.indexOf(`#`),n=e.indexOf(`;`),r=-1;return t>=0&&n>=0?r=Math.min(t,n):t>=0?r=t:n>=0&&(r=n),(r===-1?e:e.slice(0,r)).trim()}function _(e){let t=!1;for(let n of e.split(/\r?\n/)){let e=g(n);if(e.length===0)continue;if(e.startsWith(`[`)){t=/^\[\s*remote\s+["']origin["']\s*\]$/.test(e);continue}if(!t)continue;let r=/^url\s*=\s*(.+)$/.exec(e);if(r)return v(r[1])}return null}function v(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)||t.startsWith(`'`)&&t.endsWith(`'`)?t.slice(1,-1):t}function y(r,i,a={}){let o=[];for(let n of i){let i=t[n],s=i.projectConfigPath?.(r);if(!s){o.push({editorId:n,outcome:`skipped-no-project-surface`});continue}let c;try{c=e(i,r,a,void 0,s)}catch(e){o.push({editorId:n,outcome:`failed`,error:e instanceof Error?e.message:String(e)});continue}if(c.action===`written`||c.action===`overwritten`){o.push({editorId:n,outcome:c.action});continue}if(c.action===`failed`){o.push({editorId:n,outcome:`failed`,error:c.error});continue}o.push({editorId:n,outcome:`failed`,error:`unexpected project-scope action: ${c.action}`})}return{editorOutcomes:o,claudeLaunchJson:i.includes(`claude`)?n(r,a):void 0}}export{f as i,m as n,p as r,y as t};
2
+ //# sourceMappingURL=src-6iWoC0XU.mjs.map
@@ -1,3 +1,3 @@
1
- import{n as e,t}from"./esm-CEs3LWY3.mjs";import{pn as n}from"./dist-DHj61EG5.mjs";import{n as r}from"./constants-BbmMpMCp.mjs";import{spawn as i}from"node:child_process";import{join as a}from"node:path";import{closeSync as o,existsSync as s,mkdirSync as c,openSync as l,statSync as u}from"node:fs";import{homedir as d}from"node:os";import{setTimeout as f}from"node:timers/promises";const p=`Open Knowledge.app`,m=`/Applications/${p}`;function h(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return u(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function g(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(_(e,m))return m;let t=a(e.homeDir??d(),`Applications`,p);return _(e,t)?t:null}function _(e,t){try{let n=a(t,`Contents`,`MacOS`,`Open Knowledge`),r=e.statSync(n);return r&&typeof r.isFile==`function`?r.isFile():!1}catch{return!1}}function v(e){if(e.env.OK_FORCE_BROWSER===`1`)return{available:!1,reason:`force-browser`};if(e.platform!==`darwin`)return{available:!1,reason:`darwin-only`};let t;try{t=g(e)}catch{return{available:!1,reason:`stat-error`}}return t?e.env.OK_FORCE_DESKTOP===`1`?{available:!0,reason:`available`,bundlePath:t}:e.isTTY!==!0||e.env.SSH_CONNECTION||e.env.SSH_TTY?{available:!1,reason:`headless`,bundlePath:t}:{available:!0,reason:`available`,bundlePath:t}:{available:!1,reason:`no-bundle`}}function y(e){(e.log??(e=>console.error(e)))("Launching Open Knowledge desktop (use `ok start` for the browser server, or `OK_FORCE_BROWSER=1` to always skip)");let t={...process.env};delete t.ELECTRON_RUN_AS_NODE,e.spawn(`open`,[`-b`,`com.inkeep.open-knowledge`],{detached:!0,stdio:`ignore`,env:t}).unref()}function b(e=`no-bundle`){switch(e){case`no-bundle`:return`Desktop app not found at ${m}. Install via DMG, or omit --mode for browser mode.`;case`darwin-only`:return`Desktop app is macOS-only on this release. Use --mode=browser, or omit --mode for the server fallback.`;case`headless`:return`Desktop launch is gated in headless contexts (CI, SSH, non-TTY stdout). Set OK_FORCE_DESKTOP=1 to override, or use --mode=browser.`;case`force-browser`:return`OK_FORCE_BROWSER=1 is set — desktop dispatch is disabled. Unset it to use --mode=app.`;case`stat-error`:return`Failed to inspect desktop bundle at ${m} (filesystem error). Check permissions or use --mode=browser.`;case`available`:return`Desktop app appears available at ${m} but launch dispatch did not fire (caller bug).`}}function x(){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 -y @inkeep/open-knowledge@latest\`. This re-introduces the registry-fetch surface that re-exec was fixing. Observed argv: ${JSON.stringify(process.argv)}`),{command:`npx`,prefixArgs:[`-y`,`@inkeep/open-knowledge@latest`]})}function S(e,t){return e.host??t.HOST??`localhost`}var C=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}};function w(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 T(e){s(e.lockDir)||c(e.lockDir,{recursive:!0});let t=l(a(e.lockDir,`last-spawn-error.log`),`w`),n=e.spawn??i,{PORT:r,...u}=process.env,d=x();try{let r=n(d.command,[...d.prefixArgs,...e.args??[`ui`]],{detached:!0,stdio:[`ignore`,`ignore`,t],cwd:e.cwd,env:u});return r.unref(),r}finally{try{o(t)}catch{}}}async function E(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 D(e){let t=e.sigtermGraceMs??1e4,n=e.sigtermPollIntervalMs??200,r=e.sleep??(e=>f(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 O(e){let{config:t,cwd:r,host:i}=e,a=e.skipAutoInit??!1,o=e.skipUiAutoSpawn??!1,s=e.idleThresholdMs??18e5,{existsSync:c,mkdirSync:l}=await import(`node:fs`),{bootServer:u,getLogger:d,isProcessAlive:p,readUiLock:m,resolveContentDir:h}=await import(`./dist-ChwYnRqt.mjs`),g=e.log??d(`start`);if(!a&&!n(r))throw new C(r);try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-B9q5NKQh.mjs`)).repairMcpConfigs)({projectDir:r})}catch(e){g.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-tbV_XaNr.mjs`)).repairLaunchJson)({projectDir:r})}catch(e){g.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}let _=h(t,r);c(_)||(l(_,{recursive:!0}),g.info({contentDir:_},`Created content directory`));let v=null,y=await u({config:t,contentDir:_,projectDir:r,contentRoot:t.content.dir,port:e.port,host:i,quiet:!1,localOpCliArgs:[process.execPath,process.argv[1]],attachUiSibling:!0,idleShutdownMs:s,skipAutoInit:!0,spawnUiSiblingFn:async({lockDir:t})=>{if(v=w({uiLock:m(t),isAlive:p}),v.action===`spawn`&&!o)try{T({lockDir:t,cwd:r,spawn:e.spawn}),g.info({reason:v.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 v.action===`skip`&&g.info({port:v.port,pid:v.pid},`UI already running at port ${v.port}`)},idleShutdownHandler:e=>D({readUiLock:()=>m(y.lockDir),isAlive:p,killPid:(e,t)=>{process.kill(e,t)},destroy:e,log:g}),log:g});v||={action:`skip`,reason:`alive`,pid:0,port:0};let b=v,x=null;if(b.action===`skip`)x=b.port>0?b.port:null;else if(!o){let t=e.uiBindTimeoutMs??3e3;x=await E({readUiLock:()=>m(y.lockDir),now:Date.now,sleep:e=>f(e),timeoutMs:t,pollIntervalMs:50}),x===null&&g.warn({timeoutMs:t},`[start] ok ui did not bind within timeout — banner falls back to API URL`)}return{httpServer:y.httpServer,destroy:y.destroy,lockDir:y.lockDir,contentDir:_,port:y.port,ready:y.ready,degraded:y.degraded,uiSpawnDecision:v,resolvedUiPort:x}}function k(t){if(t===`browser`||t===`app`)return t;throw new e(`--mode must be 'browser' or 'app'`)}async function A(e,t){let{renderBanner:n}=await import(`./banner-COfNQySC.mjs`),{dim:i,error:a,warning:o}=await import(`./colors-BCE2jNgl.mjs`),s=process.cwd(),c=e,l=S(t,process.env),u=t.port===void 0?void 0:Number(t.port),d=process.env.PORT?Number(process.env.PORT):void 0,f=u??d,p;try{p=await O({config:c,cwd:s,host:l,port:f})}catch(e){e instanceof C&&(console.error(a(e.message)),process.exit(1));let t=j(e,s,await import(`./dist-ChwYnRqt.mjs`));t!==null&&(console.error(a(t)),process.exit(1)),console.error(`${a(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let m=!1,h=async e=>{if(!m){m=!0,console.log(i(`\nShutting down (${e})`));try{await p.destroy()}catch(e){console.error(`${a(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)}};process.once(`SIGINT`,()=>{h(`SIGINT`)}),process.once(`SIGTERM`,()=>{h(`SIGTERM`)});let g=`http://${l}:${p.port}`,_=l===`0.0.0.0`||l===`::`?`http://0.0.0.0:${p.port}`:void 0,v=p.resolvedUiPort,y=v!==null&&v>0?`http://${l}:${v}`:g;console.log(n({name:`open-knowledge`,version:r,localUrl:y,apiUrl:y===g?void 0:g,networkUrl:_}));let b={"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`};p.ready.then(async()=>{if(p.degraded.length>0){console.log();for(let e of p.degraded){let t=b[e]??`${e} (check server logs for details)`;console.warn(` ${o(`⚠`)} ${o(e)}: ${i(t)}`)}console.log()}if(t.open){let{openBrowser:e}=await import(`./open-browser-Be-7qaQ9.mjs`);e(y)}}).catch(e=>{console.error(` ${a(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}function j(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=a(t,`.ok`),r=n.readServerLock(e);return r?r.kind===`interactive`?`Open Knowledge desktop is currently running on this project. Quit it or use --cwd to point elsewhere.`:r.kind===`mcp-spawned`?"An MCP-spawned server holds this lock; it should release on idle-shutdown (~30 min). Or run `ok stop`.":"Open Knowledge server is already running on this project — check `ok status` or `ok stop`.":"Open Knowledge server is already running on this project — check `ok status` or `ok stop`."}catch{return null}}function M(e){return new t(`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(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,k).action(async t=>{let n=e();if(t.mode===`app`){t.open&&(process.stderr.write(`error: option '--mode=app' cannot be combined with '--open' (--open opens a browser tab against the local server, which app mode does not boot)
1
+ import{n as e,t}from"./esm-CEs3LWY3.mjs";import{pn as n}from"./dist-DHj61EG5.mjs";import{n as r}from"./constants-BvIV9-u3.mjs";import{spawn as i}from"node:child_process";import{join as a}from"node:path";import{closeSync as o,existsSync as s,mkdirSync as c,openSync as l,statSync as u}from"node:fs";import{homedir as d}from"node:os";import{setTimeout as f}from"node:timers/promises";const p=`Open Knowledge.app`,m=`/Applications/${p}`;function h(){return{platform:process.platform,env:process.env,execPath:process.execPath,isTTY:process.stdout.isTTY,statSync:e=>{try{return u(e,{throwIfNoEntry:!1})??null}catch{return null}}}}function g(e){if(e.env.ELECTRON_RUN_AS_NODE===`1`){let t=/(.+?\.app)\/Contents\/MacOS\//.exec(e.execPath);if(t?.[1])return t[1]}if(_(e,m))return m;let t=a(e.homeDir??d(),`Applications`,p);return _(e,t)?t:null}function _(e,t){try{let n=a(t,`Contents`,`MacOS`,`Open Knowledge`),r=e.statSync(n);return r&&typeof r.isFile==`function`?r.isFile():!1}catch{return!1}}function v(e){if(e.env.OK_FORCE_BROWSER===`1`)return{available:!1,reason:`force-browser`};if(e.platform!==`darwin`)return{available:!1,reason:`darwin-only`};let t;try{t=g(e)}catch{return{available:!1,reason:`stat-error`}}return t?e.env.OK_FORCE_DESKTOP===`1`?{available:!0,reason:`available`,bundlePath:t}:e.isTTY!==!0||e.env.SSH_CONNECTION||e.env.SSH_TTY?{available:!1,reason:`headless`,bundlePath:t}:{available:!0,reason:`available`,bundlePath:t}:{available:!1,reason:`no-bundle`}}function y(e){(e.log??(e=>console.error(e)))("Launching Open Knowledge desktop (use `ok start` for the browser server, or `OK_FORCE_BROWSER=1` to always skip)");let t={...process.env};delete t.ELECTRON_RUN_AS_NODE,e.spawn(`open`,[`-b`,`com.inkeep.open-knowledge`],{detached:!0,stdio:`ignore`,env:t}).unref()}function b(e=`no-bundle`){switch(e){case`no-bundle`:return`Desktop app not found at ${m}. Install via DMG, or omit --mode for browser mode.`;case`darwin-only`:return`Desktop app is macOS-only on this release. Use --mode=browser, or omit --mode for the server fallback.`;case`headless`:return`Desktop launch is gated in headless contexts (CI, SSH, non-TTY stdout). Set OK_FORCE_DESKTOP=1 to override, or use --mode=browser.`;case`force-browser`:return`OK_FORCE_BROWSER=1 is set — desktop dispatch is disabled. Unset it to use --mode=app.`;case`stat-error`:return`Failed to inspect desktop bundle at ${m} (filesystem error). Check permissions or use --mode=browser.`;case`available`:return`Desktop app appears available at ${m} but launch dispatch did not fire (caller bug).`}}function x(){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 -y @inkeep/open-knowledge@latest\`. This re-introduces the registry-fetch surface that re-exec was fixing. Observed argv: ${JSON.stringify(process.argv)}`),{command:`npx`,prefixArgs:[`-y`,`@inkeep/open-knowledge@latest`]})}function S(e,t){return e.host??t.HOST??`localhost`}var C=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}};function w(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 T(e){s(e.lockDir)||c(e.lockDir,{recursive:!0});let t=l(a(e.lockDir,`last-spawn-error.log`),`w`),n=e.spawn??i,{PORT:r,...u}=process.env,d=x();try{let r=n(d.command,[...d.prefixArgs,...e.args??[`ui`]],{detached:!0,stdio:[`ignore`,`ignore`,t],cwd:e.cwd,env:u});return r.unref(),r}finally{try{o(t)}catch{}}}async function E(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 D(e){let t=e.sigtermGraceMs??1e4,n=e.sigtermPollIntervalMs??200,r=e.sleep??(e=>f(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 O(e){let{config:t,cwd:r,host:i}=e,a=e.skipAutoInit??!1,o=e.skipUiAutoSpawn??!1,s=e.idleThresholdMs??18e5,{existsSync:c,mkdirSync:l}=await import(`node:fs`),{bootServer:u,getLogger:d,isProcessAlive:p,readUiLock:m,resolveContentDir:h}=await import(`./dist-ChwYnRqt.mjs`),g=e.log??d(`start`);if(!a&&!n(r))throw new C(r);try{(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-3DOkuM0T.mjs`)).repairMcpConfigs)({projectDir:r})}catch(e){g.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-yfbhku73.mjs`)).repairLaunchJson)({projectDir:r})}catch(e){g.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}let _=h(t,r);c(_)||(l(_,{recursive:!0}),g.info({contentDir:_},`Created content directory`));let v=null,y=await u({config:t,contentDir:_,projectDir:r,contentRoot:t.content.dir,port:e.port,host:i,quiet:!1,localOpCliArgs:[process.execPath,process.argv[1]],attachUiSibling:!0,idleShutdownMs:s,skipAutoInit:!0,spawnUiSiblingFn:async({lockDir:t})=>{if(v=w({uiLock:m(t),isAlive:p}),v.action===`spawn`&&!o)try{T({lockDir:t,cwd:r,spawn:e.spawn}),g.info({reason:v.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 v.action===`skip`&&g.info({port:v.port,pid:v.pid},`UI already running at port ${v.port}`)},idleShutdownHandler:e=>D({readUiLock:()=>m(y.lockDir),isAlive:p,killPid:(e,t)=>{process.kill(e,t)},destroy:e,log:g}),log:g});v||={action:`skip`,reason:`alive`,pid:0,port:0};let b=v,x=null;if(b.action===`skip`)x=b.port>0?b.port:null;else if(!o){let t=e.uiBindTimeoutMs??3e3;x=await E({readUiLock:()=>m(y.lockDir),now:Date.now,sleep:e=>f(e),timeoutMs:t,pollIntervalMs:50}),x===null&&g.warn({timeoutMs:t},`[start] ok ui did not bind within timeout — banner falls back to API URL`)}return{httpServer:y.httpServer,destroy:y.destroy,lockDir:y.lockDir,contentDir:_,port:y.port,ready:y.ready,degraded:y.degraded,uiSpawnDecision:v,resolvedUiPort:x}}function k(t){if(t===`browser`||t===`app`)return t;throw new e(`--mode must be 'browser' or 'app'`)}async function A(e,t){let{renderBanner:n}=await import(`./banner-COfNQySC.mjs`),{dim:i,error:a,warning:o}=await import(`./colors-BCE2jNgl.mjs`),s=process.cwd(),c=e,l=S(t,process.env),u=t.port===void 0?void 0:Number(t.port),d=process.env.PORT?Number(process.env.PORT):void 0,f=u??d,p;try{p=await O({config:c,cwd:s,host:l,port:f})}catch(e){e instanceof C&&(console.error(a(e.message)),process.exit(1));let t=j(e,s,await import(`./dist-ChwYnRqt.mjs`));t!==null&&(console.error(a(t)),process.exit(1)),console.error(`${a(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let m=!1,h=async e=>{if(!m){m=!0,console.log(i(`\nShutting down (${e})`));try{await p.destroy()}catch(e){console.error(`${a(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)}};process.once(`SIGINT`,()=>{h(`SIGINT`)}),process.once(`SIGTERM`,()=>{h(`SIGTERM`)});let g=`http://${l}:${p.port}`,_=l===`0.0.0.0`||l===`::`?`http://0.0.0.0:${p.port}`:void 0,v=p.resolvedUiPort,y=v!==null&&v>0?`http://${l}:${v}`:g;console.log(n({name:`open-knowledge`,version:r,localUrl:y,apiUrl:y===g?void 0:g,networkUrl:_}));let b={"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`};p.ready.then(async()=>{if(p.degraded.length>0){console.log();for(let e of p.degraded){let t=b[e]??`${e} (check server logs for details)`;console.warn(` ${o(`⚠`)} ${o(e)}: ${i(t)}`)}console.log()}if(t.open){let{openBrowser:e}=await import(`./open-browser-Be-7qaQ9.mjs`);e(y)}}).catch(e=>{console.error(` ${a(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}function j(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=a(t,`.ok`),r=n.readServerLock(e);return r?r.kind===`interactive`?`Open Knowledge desktop is currently running on this project. Quit it or use --cwd to point elsewhere.`:r.kind===`mcp-spawned`?"An MCP-spawned server holds this lock; it should release on idle-shutdown (~30 min). Or run `ok stop`.":"Open Knowledge server is already running on this project — check `ok status` or `ok stop`.":"Open Knowledge server is already running on this project — check `ok status` or `ok stop`."}catch{return null}}function M(e){return new t(`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(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,k).action(async t=>{let n=e();if(t.mode===`app`){t.open&&(process.stderr.write(`error: option '--mode=app' cannot be combined with '--open' (--open opens a browser tab against the local server, which app mode does not boot)
2
2
  `),process.exit(2));let e=[];if(t.port!==void 0&&e.push(`--port`),t.host!==void 0&&e.push(`--host`),e.length>0){let t=process.env.OK_LOG_LEVEL??`info`;(t===`debug`||t===`trace`)&&console.error(`--mode=app: ignoring ${e.join(`, `)}`)}let n=v(h());if(n.available){y({spawn:i});return}console.error(b(n.reason)),process.exit(1)}await A(n,t)})}export{w as a,T as c,x as d,h as f,D as i,M as l,y as m,E as n,S as o,v as p,O as r,A as s,C as t,j as u};
3
- //# sourceMappingURL=start-B5WsKMpt.mjs.map
3
+ //# sourceMappingURL=start-CO8Evcw9.mjs.map
@@ -0,0 +1 @@
1
+ import{l as e}from"./start-CO8Evcw9.mjs";export{e as startCommand};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/open-knowledge",
3
- "version": "0.5.0-beta.47",
3
+ "version": "0.5.0-beta.49",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "repository": {
@@ -1,2 +0,0 @@
1
- import"./dist-DHj61EG5.mjs";var e=`0.5.0-beta.47`;const t=`config.yml`,n=e;export{n,t};
2
- //# sourceMappingURL=constants-BbmMpMCp.mjs.map
@@ -1 +0,0 @@
1
- import{l as e}from"./init-CmQ_C7Dm.mjs";export{e as runInit};
@@ -1 +0,0 @@
1
- import{n as e}from"./loader-CHhQuNxK.mjs";export{e as loadConfig};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./preview-CIgVuEry.mjs";export{t as formatPreviewBlock,e as previewContent};
@@ -1,2 +0,0 @@
1
- import{o as e}from"./chunk-CFjPhJqf.js";import{n as t,r as n,t as r}from"./compiler-runtime-CVnuRdak.js";import{t as i}from"./button-DBLnjjvQ.js";import{a,c as o,i as s,n as c,o as l,s as u,t as d,x as f}from"./dialog-DSzqKgdW.js";import{a as p,i as ee,n as m,r as te,t as h}from"./collapsible-L2bca9Ur.js";import{t as ne}from"./checkbox-kroC1jEP.js";import{n as re,r as ie,t as ae}from"./project-paths-DKT5BePl.js";import{t as oe}from"./textarea-5ach84qM.js";var se=r(),g=e(t(),1),_=n(),ce=750,v={root:`You picked the filesystem root (/). Scaffolding here will scan every file on this machine — make sure that's what you want.`,home:`You picked your home directory. OK will index everything in your home tree — large and may surface personal files.`,"home-documents":`You picked ~/Documents. OK will index every markdown file under it. If you only want to manage a sub-folder, choose a smaller scope.`,"home-desktop":`You picked ~/Desktop. OK will index everything on your desktop.`,"home-downloads":`You picked ~/Downloads. Files there are usually transient — consider a stable folder instead.`,"volumes-mount":`This path is on an external volume (/Volumes/...). OK will lose track of files when the drive ejects.`,"drive-root":`This looks like a drive root (e.g., C:\\). Scaffolding here will scan an entire drive.`},y={error:e=>f.error(e)};function le(e){let t=(0,se.c)(9),n;t[0]===e?n=t[1]:(n=e===void 0?{}:e,t[0]=e,t[1]=n);let{store:r,toast:i,payload:a}=n,o=r===void 0?ie:r,s=i===void 0?y:i,c;t[2]!==a||t[3]!==o?(c=a??o.getSnapshot(),t[2]=a,t[3]=o,t[4]=c):c=t[4];let l=c;if(!l)return null;let u;return t[5]!==l||t[6]!==o||t[7]!==s?(u=(0,_.jsx)(ue,{payload:l,store:o,toast:s}),t[5]=l,t[6]=o,t[7]=s,t[8]=u):u=t[8],u}function ue(e){let t=(0,se.c)(100),{payload:n,store:r,toast:f}=e,p=(0,g.useId)(),[m,te]=(0,g.useState)(n.defaultContentDir),[h,ie]=(0,g.useState)(``),v;t[0]===n.editorOptions?v=t[1]:(v=()=>new Set(n.editorOptions.map(fe)),t[0]=n.editorOptions,t[1]=v);let[y,le]=(0,g.useState)(v),[ue,me]=(0,g.useState)(null),[b,he]=(0,g.useState)(!1),[ge,_e]=(0,g.useState)(null),ve,ye;t[2]===m?(ve=t[3],ye=t[4]):(ve=()=>{if(!ae(m)){me(null);return}let e=!1,t=setTimeout(()=>{let t=window.okDesktop;t&&t.onboarding.probeContent({contentDir:m}).then(t=>{e||me(t)}).catch(t=>{e||me({ok:!1,error:t instanceof Error?t.message:`probe failed`})})},ce);return()=>{e=!0,clearTimeout(t)}},ye=[m],t[2]=m,t[3]=ve,t[4]=ye),(0,g.useEffect)(ve,ye);let be;t[5]===m?be=t[6]:(be=ae(m),t[5]=m,t[6]=be);let x=be,S=b||!x,xe;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(xe=function(e){le(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},t[7]=xe):xe=t[7];let Se=xe,C;t[8]===n.projectDir?C=t[9]:(C=async function(){let e=window.okDesktop;if(!e)return;let t;try{t=await e.dialog.openFolder({defaultPath:n.projectDir})}catch(e){let t=e;_e(t instanceof Error?t.message:`Could not open folder picker`);return}if(t===null)return;let r=re(n.projectDir,t);if(r===null){_e(`Selection must be inside the project`);return}_e(null),te(r)},t[8]=n.projectDir,t[9]=C);let Ce=C,w;t[10]!==h||t[11]!==m||t[12]!==y||t[13]!==r||t[14]!==f?(w=async function(){he(!0);let e=await r.confirm({initGit:!0,contentDir:m,additionalIgnores:h,editorIds:Array.from(y)});e.ok||(f.error(e.error),he(!1))},t[10]=h,t[11]=m,t[12]=y,t[13]=r,t[14]=f,t[15]=w):w=t[15];let we=w,T;t[16]!==we||t[17]!==S?(T=function(e){e.preventDefault(),!S&&we()},t[16]=we,t[17]=S,t[18]=T):T=t[18];let Te=T,E;t[19]!==r||t[20]!==f?(E=async function(){he(!0);let e=await r.cancel();e.ok||(f.error(e.error),he(!1))},t[19]=r,t[20]=f,t[21]=E):E=t[21];let D=E,O;t[22]!==b||t[23]!==D?(O=function(e){!e&&!b&&D()},t[22]=b,t[23]=D,t[24]=O):O=t[24];let Ee=O,k;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,_.jsx)(o,{children:`Open this folder with Open Knowledge`}),t[25]=k):k=t[25];let A;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,_.jsxs)(u,{children:[k,(0,_.jsxs)(a,{children:[`Open Knowledge will create a `,(0,_.jsx)(`code`,{children:`.ok/`}),` folder here to track this project's metadata.`]})]}),t[26]=A):A=t[26];let j;t[27]!==n.gitRootPromoted||t[28]!==n.pickedPath||t[29]!==n.projectDir?(j=n.gitRootPromoted?(0,_.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`OK will be initialized at `,(0,_.jsx)(`code`,{children:n.projectDir}),` — the parent of`,` `,(0,_.jsx)(`code`,{children:re(n.projectDir,n.pickedPath)??n.pickedPath}),` `,`because it contains a `,(0,_.jsx)(`code`,{children:`.git`}),` folder (one .ok/ per git repo).`,` `,(0,_.jsx)(`code`,{children:`Content directory`}),` defaults to `,(0,_.jsx)(`code`,{children:`.`}),` (the whole repo); type a sub-folder below to narrow it.`]}):null,t[27]=n.gitRootPromoted,t[28]=n.pickedPath,t[29]=n.projectDir,t[30]=j):j=t[30];let M;t[31]===n.warnings?M=t[32]:(M=n.warnings.length>0?(0,_.jsx)(`div`,{role:`alert`,className:`rounded-md border border-amber-300 bg-amber-50 px-3 py-2 text-sm text-amber-900 dark:border-amber-700 dark:bg-amber-950 dark:text-amber-200`,children:n.warnings.map(de)}):null,t[31]=n.warnings,t[32]=M);let N;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,_.jsx)(`label`,{htmlFor:`consent-content-dir`,className:`text-sm font-medium`,children:`Content directory`}),t[33]=N):N=t[33];let P;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(P=e=>{te(e.target.value),_e(null)},t[34]=P):P=t[34];let De=!x,F;t[35]!==b||t[36]!==m||t[37]!==De?(F=(0,_.jsx)(ee,{id:`consent-content-dir`,value:m,onChange:P,disabled:b,"aria-invalid":De,"data-testid":`consent-content-dir`,className:`flex-1`}),t[35]=b,t[36]=m,t[37]=De,t[38]=F):F=t[38];let I;t[39]===Ce?I=t[40]:(I=()=>void Ce(),t[39]=Ce,t[40]=I);let L;t[41]!==b||t[42]!==I?(L=(0,_.jsx)(i,{type:`button`,variant:`outline`,disabled:b,onClick:I,"data-testid":`consent-content-dir-browse`,children:`Browse`}),t[41]=b,t[42]=I,t[43]=L):L=t[43];let R;t[44]!==F||t[45]!==L?(R=(0,_.jsxs)(`div`,{className:`flex items-stretch gap-2`,children:[F,L]}),t[44]=F,t[45]=L,t[46]=R):R=t[46];let z;t[47]!==ge||t[48]!==x||t[49]!==ue?(z=ge===null?x?(0,_.jsx)(pe,{probe:ue}):(0,_.jsx)(`p`,{className:`text-1sm text-destructive`,"data-testid":`consent-content-dir-error`,children:`Content directory must be inside the project`}):(0,_.jsx)(`p`,{className:`text-1sm text-destructive`,"data-testid":`consent-content-dir-browse-error`,children:ge}),t[47]=ge,t[48]=x,t[49]=ue,t[50]=z):z=t[50];let B;t[51]!==R||t[52]!==z?(B=(0,_.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[N,R,z]}),t[51]=R,t[52]=z,t[53]=B):B=t[53];let Oe;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=(0,_.jsx)(`label`,{htmlFor:`consent-additional-ignores`,className:`text-sm font-medium`,children:`Ignore patterns`}),t[54]=Oe):Oe=t[54];let ke;t[55]===Symbol.for(`react.memo_cache_sentinel`)?(ke=e=>ie(e.target.value),t[55]=ke):ke=t[55];let V;t[56]!==h||t[57]!==b?(V=(0,_.jsx)(oe,{id:`consent-additional-ignores`,value:h,onChange:ke,disabled:b,placeholder:`tmp/
2
- *.draft.md`,rows:3,"data-testid":`consent-additional-ignores`}),t[56]=h,t[57]=b,t[58]=V):V=t[58];let Ae;t[59]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,_.jsxs)(`p`,{className:`text-1sm text-muted-foreground`,children:[`One pattern per line — appended to `,(0,_.jsx)(`code`,{children:`.okignore`}),`.`]}),t[59]=Ae):Ae=t[59];let H;t[60]===V?H=t[61]:(H=(0,_.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[Oe,V,Ae]}),t[60]=V,t[61]=H);let U;t[62]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(`legend`,{className:`text-sm font-medium`,children:`Connect to AI tools`}),t[62]=U):U=t[62];let je;t[63]===Symbol.for(`react.memo_cache_sentinel`)?(je=(0,_.jsxs)(`p`,{className:`text-1sm text-muted-foreground`,children:[`Writes a project-MCP config for each selected tool; Claude also gets`,` `,(0,_.jsx)(`code`,{children:`.claude/launch.json`}),`.`]}),t[63]=je):je=t[63];let W;if(t[64]!==b||t[65]!==y||t[66]!==n.editorOptions){let e;t[68]!==b||t[69]!==y?(e=e=>{let t=`consent-editor-${e.id}-cb`;return(0,_.jsxs)(`label`,{htmlFor:t,className:`flex items-center gap-2 text-sm`,children:[(0,_.jsx)(ne,{id:t,checked:y.has(e.id),onCheckedChange:()=>Se(e.id),disabled:b,"data-testid":`consent-editor-${e.id}`}),(0,_.jsx)(`span`,{children:e.label}),(0,_.jsx)(`span`,{className:`text-xs text-muted-foreground`,"data-testid":`consent-editor-${e.id}-scope`,children:e.hasProjectConfig?`(project + user)`:`(user-level only)`})]},e.id)},t[68]=b,t[69]=y,t[70]=e):e=t[70],W=n.editorOptions.map(e),t[64]=b,t[65]=y,t[66]=n.editorOptions,t[67]=W}else W=t[67];let G;t[71]===W?G=t[72]:(G=(0,_.jsxs)(`fieldset`,{className:`flex flex-col space-y-2 pb-2`,children:[U,je,W]}),t[71]=W,t[72]=G);let K;t[73]!==p||t[74]!==Te||t[75]!==B||t[76]!==H||t[77]!==G?(K=(0,_.jsxs)(`form`,{id:p,onSubmit:Te,"data-testid":`consent-form`,className:`space-y-4`,children:[B,H,G]}),t[73]=p,t[74]=Te,t[75]=B,t[76]=H,t[77]=G,t[78]=K):K=t[78];let q;t[79]!==j||t[80]!==M||t[81]!==K?(q=(0,_.jsxs)(c,{className:`space-y-4`,children:[j,M,K]}),t[79]=j,t[80]=M,t[81]=K,t[82]=q):q=t[82];let J;t[83]===D?J=t[84]:(J=()=>void D(),t[83]=D,t[84]=J);let Y;t[85]!==b||t[86]!==J?(Y=(0,_.jsx)(i,{type:`button`,variant:`outline`,className:`font-mono uppercase`,onClick:J,disabled:b,"data-testid":`consent-cancel`,children:`Cancel`}),t[85]=b,t[86]=J,t[87]=Y):Y=t[87];let X;t[88]!==p||t[89]!==S?(X=(0,_.jsx)(i,{type:`submit`,form:p,disabled:S,"data-testid":`consent-start`,children:`Start`}),t[88]=p,t[89]=S,t[90]=X):X=t[90];let Z;t[91]!==Y||t[92]!==X?(Z=(0,_.jsxs)(l,{children:[Y,X]}),t[91]=Y,t[92]=X,t[93]=Z):Z=t[93];let Q;t[94]!==q||t[95]!==Z?(Q=(0,_.jsxs)(s,{className:`sm:max-w-lg`,children:[A,q,Z]}),t[94]=q,t[95]=Z,t[96]=Q):Q=t[96];let $;return t[97]!==Ee||t[98]!==Q?($=(0,_.jsx)(d,{open:!0,onOpenChange:Ee,children:Q}),t[97]=Ee,t[98]=Q,t[99]=$):$=t[99],$}function de(e){return(0,_.jsx)(`p`,{className:`mb-1 last:mb-0`,children:v[e.kind]},e.kind)}function fe(e){return e.id}function pe(e){let t=(0,se.c)(21),{probe:n}=e;if(n===null){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,_.jsx)(`p`,{className:`text-1sm text-muted-foreground`,"data-testid":`consent-preview`,children:`Counting markdown files`}),t[0]=e):e=t[0],e}if(!n.ok){let e;return t[1]===n.error?e=t[2]:(e=(0,_.jsxs)(`p`,{className:`text-1sm text-muted-foreground`,"data-testid":`consent-preview`,children:[`Preview unavailable: `,n.error]}),t[1]=n.error,t[2]=e),e}let r=`Found ${n.truncated?`≥ 50,000`:String(n.count)} markdown files`;if(n.sample.length===0){let e;return t[3]===r?e=t[4]:(e=(0,_.jsx)(`p`,{className:`text-1sm text-muted-foreground`,"data-testid":`consent-preview`,children:r}),t[3]=r,t[4]=e),e}let i=n.truncated?null:n.count-n.sample.length,a;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,_.jsx)(p,{className:`size-3 transition-transform motion-reduce:transition-none`,"aria-hidden":!0}),t[5]=a):a=t[5];let o;t[6]===r?o=t[7]:(o=(0,_.jsxs)(te,{className:`flex items-center gap-1 text-1sm text-muted-foreground hover:text-foreground [&[data-state=open]>svg]:rotate-90`,children:[a,(0,_.jsx)(`span`,{children:r})]}),t[6]=r,t[7]=o);let s;t[8]===n.sample?s=t[9]:(s=n.sample.map(me),t[8]=n.sample,t[9]=s);let c;t[10]===s?c=t[11]:(c=(0,_.jsx)(`ul`,{className:`space-y-1.5 font-mono`,children:s}),t[10]=s,t[11]=c);let l;t[12]!==n.truncated||t[13]!==i?(l=n.truncated||i!==null&&i>0?(0,_.jsxs)(`p`,{className:`mt-1 italic`,children:[`and `,n.truncated?`more`:`${i} more`]}):null,t[12]=n.truncated,t[13]=i,t[14]=l):l=t[14];let u;t[15]!==c||t[16]!==l?(u=(0,_.jsxs)(m,{className:`pt-1 pl-4 text-1sm text-muted-foreground`,children:[c,l]}),t[15]=c,t[16]=l,t[17]=u):u=t[17];let d;return t[18]!==o||t[19]!==u?(d=(0,_.jsxs)(h,{"data-testid":`consent-preview`,children:[o,u]}),t[18]=o,t[19]=u,t[20]=d):d=t[20],d}function me(e){return(0,_.jsx)(`li`,{children:e},e)}export{le as default};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-CFjPhJqf.js";import{n as t,r as n,t as r}from"./compiler-runtime-CVnuRdak.js";import{t as i}from"./button-DBLnjjvQ.js";import{a,c as o,i as s,n as c,o as l,s as u,t as d,x as f}from"./dialog-DSzqKgdW.js";import{t as p}from"./checkbox-kroC1jEP.js";import{t as m}from"./label-CdSs0Skc.js";import{n as h}from"./mcp-consent-store-BPw6Zd40.js";var g=r(),_=e(t(),1),v=n();function y(e){let t=new Set;for(let n of e)n.detected&&t.add(n.id);return t}function b(e,t){let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n}function x(e,t){let n=[];for(let r of t)e.has(r.id)&&n.push(r.id);return n}var S={error:e=>f.error(e)};function C(e){let t=(0,g.c)(9),n;t[0]===e?n=t[1]:(n=e===void 0?{}:e,t[0]=e,t[1]=n);let{store:r,toast:i,payload:a}=n,o=r===void 0?h:r,s=i===void 0?S:i,c;t[2]!==a||t[3]!==o?(c=a??o.getSnapshot(),t[2]=a,t[3]=o,t[4]=c):c=t[4];let l=c;if(!l)return null;let u;return t[5]!==l||t[6]!==o||t[7]!==s?(u=(0,v.jsx)(w,{payload:l,store:o,toast:s}),t[5]=l,t[6]=o,t[7]=s,t[8]=u):u=t[8],u}function w(e){let t=(0,g.c)(50),{payload:n,store:r,toast:f}=e,h=n.detectedEditors,S;t[0]===h?S=t[1]:(S=()=>y(h),t[0]=h,t[1]=S);let[C,w]=(0,_.useState)(S),[T,E]=(0,_.useState)(!1),D=(0,_.useId)(),O;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(O=function(e){w(t=>b(t,e))},t[2]=O):O=t[2];let k=O,A;t[3]!==h||t[4]!==C||t[5]!==r||t[6]!==f?(A=async function(){E(!0);let e=await r.confirm(x(C,h));e.ok||(f.error(e.error),E(!1))},t[3]=h,t[4]=C,t[5]=r,t[6]=f,t[7]=A):A=t[7];let j=A,M;t[8]!==r||t[9]!==f?(M=async function(){E(!0);let e=await r.skip();e.ok||(f.error(e.error),E(!1))},t[8]=r,t[9]=f,t[10]=M):M=t[10];let N=M,P;t[11]!==T||t[12]!==N?(P=function(e){!e&&!T&&N()},t[11]=T,t[12]=N,t[13]=P):P=t[13];let F=P,I;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,v.jsx)(o,{children:`Add Open Knowledge to your AI tools`}),t[14]=I):I=t[14];let L;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,v.jsx)(`code`,{children:`open-knowledge`}),t[15]=L):L=t[15];let R;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,v.jsx)(`code`,{children:`open-knowledge-ui`}),t[16]=R):R=t[16];let z;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,v.jsx)(`code`,{children:`ok`}),t[17]=z):z=t[17];let B;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,v.jsxs)(u,{children:[I,(0,v.jsxs)(a,{children:[`Open Knowledge will manage the `,L,` MCP server name, the`,` `,R,` launch config, and `,z,` /`,` `,(0,v.jsx)(`code`,{children:`open-knowledge`}),` on PATH, including OK-owned symlinks in writable non-system PATH directories. If you use a custom wrapper, register it under a different name.`]})]}),t[18]=B):B=t[18];let V;if(t[19]!==T||t[20]!==h||t[21]!==D||t[22]!==C){let e;t[24]!==T||t[25]!==D||t[26]!==C?(e=e=>{let t=C.has(e.id),n=`${D}-${e.id}`,r=e.willReplace?`Will replace existing Open Knowledge entry`:e.detected?`Detected on this machine`:`Not detected`,i=e.willReplace?`text-xs text-amber-600 dark:text-amber-400`:`text-xs text-muted-foreground`;return(0,v.jsx)(`li`,{children:(0,v.jsxs)(m,{htmlFor:n,className:`flex cursor-pointer items-start gap-2.5 px-3 py-2.5 font-normal hover:bg-accent`,children:[(0,v.jsx)(p,{id:n,checked:t,disabled:T,onCheckedChange:()=>k(e.id),className:`mt-0.5`,"data-testid":`mcp-consent-checkbox-${e.id}`}),(0,v.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,v.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:e.label}),(0,v.jsx)(`span`,{className:i,"data-testid":`mcp-consent-status-${e.id}`,children:r})]})]})},e.id)},t[24]=T,t[25]=D,t[26]=C,t[27]=e):e=t[27],V=h.map(e),t[19]=T,t[20]=h,t[21]=D,t[22]=C,t[23]=V}else V=t[23];let H;t[28]===V?H=t[29]:(H=(0,v.jsx)(c,{children:(0,v.jsx)(`ul`,{className:`rounded-md border border-border bg-card/50 divide-y divide-border overflow-hidden`,children:V})}),t[28]=V,t[29]=H);let U;t[30]===N?U=t[31]:(U=()=>void N(),t[30]=N,t[31]=U);let W;t[32]!==T||t[33]!==U?(W=(0,v.jsx)(i,{variant:`outline`,className:`font-mono uppercase`,onClick:U,disabled:T,"data-testid":`mcp-consent-skip`,children:`Skip`}),t[32]=T,t[33]=U,t[34]=W):W=t[34];let G;t[35]===j?G=t[36]:(G=()=>void j(),t[35]=j,t[36]=G);let K=T||C.size===0,q=T?`Working`:`Add`,J;t[37]!==G||t[38]!==K||t[39]!==q?(J=(0,v.jsx)(i,{onClick:G,disabled:K,"data-testid":`mcp-consent-add`,children:q}),t[37]=G,t[38]=K,t[39]=q,t[40]=J):J=t[40];let Y;t[41]!==W||t[42]!==J?(Y=(0,v.jsxs)(l,{children:[W,J]}),t[41]=W,t[42]=J,t[43]=Y):Y=t[43];let X;t[44]!==H||t[45]!==Y?(X=(0,v.jsxs)(s,{className:`sm:max-w-md`,children:[B,H,Y]}),t[44]=H,t[45]=Y,t[46]=X):X=t[46];let Z;return t[47]!==F||t[48]!==X?(Z=(0,v.jsx)(d,{open:!0,onOpenChange:F,children:X}),t[47]=F,t[48]=X,t[49]=Z):Z=t[49],Z}export{C as McpConsentDialogBody,C as default,y as computeInitialSelection,x as selectedIdsOrdered,b as toggleSelectedId};
@@ -1 +0,0 @@
1
- import{l as e}from"./start-B5WsKMpt.mjs";export{e as startCommand};